@simpleangularcontrols/sac-common 13.0.0-rc.12 → 13.0.0-rc.14
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +15 -15
- package/common/basedatetimecontrol.d.ts +172 -172
- package/common/basedatetimecontrol.ngfactory.d.ts +3 -3
- package/common/basedatetimecontrol.ngsummary.d.ts +1 -1
- package/common/baseinputcontrol.d.ts +41 -41
- package/common/baseinputcontrol.ngfactory.d.ts +3 -3
- package/common/baseinputcontrol.ngsummary.d.ts +1 -1
- package/common/baselistcontrol.d.ts +46 -46
- package/common/baselistcontrol.ngfactory.d.ts +3 -3
- package/common/baselistcontrol.ngsummary.d.ts +1 -1
- package/common/basemodelcontrol.d.ts +283 -283
- package/common/basemodelcontrol.ngfactory.d.ts +3 -3
- package/common/basemodelcontrol.ngsummary.d.ts +1 -1
- package/common/baseselectcontrol.d.ts +17 -17
- package/common/baseselectcontrol.ngfactory.d.ts +3 -3
- package/common/baseselectcontrol.ngsummary.d.ts +1 -1
- package/common/baseuploadcontrol.d.ts +303 -303
- package/common/baseuploadcontrol.ngfactory.d.ts +3 -3
- package/common/baseuploadcontrol.ngsummary.d.ts +1 -1
- package/components/browser/browser.d.ts +270 -270
- package/components/browser/browser.ngfactory.d.ts +3 -3
- package/components/browser/browser.ngsummary.d.ts +1 -1
- package/components/browser/models/browserfile.d.ts +17 -17
- package/components/browser/models/browserfile.ngfactory.d.ts +1 -1
- package/components/browser/models/browserfile.ngsummary.d.ts +1 -1
- package/components/browser/models/browserfiledeleterequest.d.ts +18 -18
- package/components/browser/models/browserfiledeleterequest.ngfactory.d.ts +1 -1
- package/components/browser/models/browserfiledeleterequest.ngsummary.d.ts +1 -1
- package/components/browser/models/browserfilerenamerequest.d.ts +22 -22
- package/components/browser/models/browserfilerenamerequest.ngfactory.d.ts +1 -1
- package/components/browser/models/browserfilerenamerequest.ngsummary.d.ts +1 -1
- package/components/browser/models/browserfileresponse.d.ts +10 -10
- package/components/browser/models/browserfileresponse.ngfactory.d.ts +1 -1
- package/components/browser/models/browserfileresponse.ngsummary.d.ts +1 -1
- package/components/browser/models/browserfilesaverequest.d.ts +22 -22
- package/components/browser/models/browserfilesaverequest.ngfactory.d.ts +1 -1
- package/components/browser/models/browserfilesaverequest.ngsummary.d.ts +1 -1
- package/components/browser/models/browsernode.d.ts +34 -34
- package/components/browser/models/browsernode.ngfactory.d.ts +1 -1
- package/components/browser/models/browsernode.ngsummary.d.ts +1 -1
- package/components/browser/models/browsernodedeleterequest.d.ts +14 -14
- package/components/browser/models/browsernodedeleterequest.ngfactory.d.ts +1 -1
- package/components/browser/models/browsernodedeleterequest.ngsummary.d.ts +1 -1
- package/components/browser/models/browsernodenewrequest.d.ts +18 -18
- package/components/browser/models/browsernodenewrequest.ngfactory.d.ts +1 -1
- package/components/browser/models/browsernodenewrequest.ngsummary.d.ts +1 -1
- package/components/browser/models/browsernoderenamerequest.d.ts +18 -18
- package/components/browser/models/browsernoderenamerequest.ngfactory.d.ts +1 -1
- package/components/browser/models/browsernoderenamerequest.ngsummary.d.ts +1 -1
- package/components/browser/models/browsernoderequest.d.ts +18 -18
- package/components/browser/models/browsernoderequest.ngfactory.d.ts +1 -1
- package/components/browser/models/browsernoderequest.ngsummary.d.ts +1 -1
- package/components/browser/models/browsernoderesponse.d.ts +10 -10
- package/components/browser/models/browsernoderesponse.ngfactory.d.ts +1 -1
- package/components/browser/models/browsernoderesponse.ngsummary.d.ts +1 -1
- package/controls/buttons/button.d.ts +73 -73
- package/controls/buttons/button.ngfactory.d.ts +3 -3
- package/controls/buttons/button.ngsummary.d.ts +1 -1
- package/controls/checkbox/checkbox.d.ts +35 -35
- package/controls/checkbox/checkbox.ngfactory.d.ts +3 -3
- package/controls/checkbox/checkbox.ngsummary.d.ts +1 -1
- package/controls/checkbox/radiobutton.d.ts +117 -117
- package/controls/checkbox/radiobutton.ngfactory.d.ts +3 -3
- package/controls/checkbox/radiobutton.ngsummary.d.ts +1 -1
- package/controls/checkbox/radiobuttons.d.ts +63 -63
- package/controls/checkbox/radiobuttons.ngfactory.d.ts +3 -3
- package/controls/checkbox/radiobuttons.ngsummary.d.ts +1 -1
- package/controls/confirm/confirm.button.d.ts +25 -25
- package/controls/confirm/confirm.button.ngfactory.d.ts +1 -1
- package/controls/confirm/confirm.button.ngsummary.d.ts +1 -1
- package/controls/confirm/confirm.d.ts +52 -52
- package/controls/confirm/confirm.ngfactory.d.ts +3 -3
- package/controls/confirm/confirm.ngsummary.d.ts +1 -1
- package/controls/confirm/confirm.service.d.ts +63 -63
- package/controls/confirm/confirm.service.ngfactory.d.ts +1 -1
- package/controls/confirm/confirm.service.ngsummary.d.ts +1 -1
- package/controls/contextmenu/contextmenu.d.ts +123 -123
- package/controls/contextmenu/contextmenu.interface.d.ts +3 -3
- package/controls/contextmenu/contextmenu.interface.ngfactory.d.ts +1 -1
- package/controls/contextmenu/contextmenu.interface.ngsummary.d.ts +1 -1
- package/controls/contextmenu/contextmenu.ngfactory.d.ts +3 -3
- package/controls/contextmenu/contextmenu.ngsummary.d.ts +1 -1
- package/controls/contextmenu/contextmenuanchor.d.ts +18 -18
- package/controls/contextmenu/contextmenuanchor.ngfactory.d.ts +3 -3
- package/controls/contextmenu/contextmenuanchor.ngsummary.d.ts +1 -1
- package/controls/contextmenu/contextmenucontainer.d.ts +18 -18
- package/controls/contextmenu/contextmenucontainer.ngfactory.d.ts +3 -3
- package/controls/contextmenu/contextmenucontainer.ngsummary.d.ts +1 -1
- package/controls/contextmenu/contextmenuitem.d.ts +13 -13
- package/controls/contextmenu/contextmenuitem.ngfactory.d.ts +3 -3
- package/controls/contextmenu/contextmenuitem.ngsummary.d.ts +1 -1
- package/controls/contextmenu/contextmenuitembutton.d.ts +70 -70
- package/controls/contextmenu/contextmenuitembutton.ngfactory.d.ts +3 -3
- package/controls/contextmenu/contextmenuitembutton.ngsummary.d.ts +1 -1
- package/controls/datetime/date.d.ts +120 -120
- package/controls/datetime/date.ngfactory.d.ts +3 -3
- package/controls/datetime/date.ngsummary.d.ts +1 -1
- package/controls/datetime/dateselector.d.ts +164 -164
- package/controls/datetime/dateselector.ngfactory.d.ts +3 -3
- package/controls/datetime/dateselector.ngsummary.d.ts +1 -1
- package/controls/datetime/datetime.d.ts +134 -134
- package/controls/datetime/datetime.ngfactory.d.ts +3 -3
- package/controls/datetime/datetime.ngsummary.d.ts +1 -1
- package/controls/datetime/time.d.ts +114 -114
- package/controls/datetime/time.ngfactory.d.ts +3 -3
- package/controls/datetime/time.ngsummary.d.ts +1 -1
- package/controls/dialog/dialog.d.ts +96 -96
- package/controls/dialog/dialog.ngfactory.d.ts +3 -3
- package/controls/dialog/dialog.ngsummary.d.ts +1 -1
- package/controls/form/form.d.ts +50 -50
- package/controls/form/form.ngfactory.d.ts +3 -3
- package/controls/form/form.ngsummary.d.ts +1 -1
- package/controls/grid/grid.d.ts +130 -130
- package/controls/grid/grid.ngfactory.d.ts +3 -3
- package/controls/grid/grid.ngsummary.d.ts +1 -1
- package/controls/grid/gridbutton.d.ts +36 -36
- package/controls/grid/gridbutton.ngfactory.d.ts +3 -3
- package/controls/grid/gridbutton.ngsummary.d.ts +1 -1
- package/controls/grid/gridcolumn.d.ts +31 -31
- package/controls/grid/gridcolumn.ngfactory.d.ts +3 -3
- package/controls/grid/gridcolumn.ngsummary.d.ts +1 -1
- package/controls/grid/gridcolumnaction.d.ts +18 -18
- package/controls/grid/gridcolumnaction.ngfactory.d.ts +3 -3
- package/controls/grid/gridcolumnaction.ngsummary.d.ts +1 -1
- package/controls/grid/gridcolumnbase.d.ts +97 -97
- package/controls/grid/gridcolumnbase.ngfactory.d.ts +3 -3
- package/controls/grid/gridcolumnbase.ngsummary.d.ts +1 -1
- package/controls/grid/gridimage.d.ts +12 -12
- package/controls/grid/gridimage.ngfactory.d.ts +3 -3
- package/controls/grid/gridimage.ngsummary.d.ts +1 -1
- package/controls/grid/model.d.ts +92 -92
- package/controls/grid/model.ngfactory.d.ts +1 -1
- package/controls/grid/model.ngsummary.d.ts +1 -1
- package/controls/grid/paging.d.ts +148 -148
- package/controls/grid/paging.ngfactory.d.ts +3 -3
- package/controls/grid/paging.ngsummary.d.ts +1 -1
- package/controls/input/input.d.ts +38 -38
- package/controls/input/input.d.ts.map +1 -1
- package/controls/input/input.ngfactory.d.ts +3 -3
- package/controls/input/input.ngsummary.d.ts +1 -1
- package/controls/input/inputarea.d.ts +29 -29
- package/controls/input/inputarea.d.ts.map +1 -1
- package/controls/input/inputarea.ngfactory.d.ts +3 -3
- package/controls/input/inputarea.ngsummary.d.ts +1 -1
- package/controls/input/inputcurrency.d.ts +14 -14
- package/controls/input/inputcurrency.ngfactory.d.ts +3 -3
- package/controls/input/inputcurrency.ngsummary.d.ts +1 -1
- package/controls/input/inputdecimal.d.ts +62 -62
- package/controls/input/inputdecimal.ngfactory.d.ts +3 -3
- package/controls/input/inputdecimal.ngsummary.d.ts +1 -1
- package/controls/input/inputemail.d.ts +22 -22
- package/controls/input/inputemail.ngfactory.d.ts +3 -3
- package/controls/input/inputemail.ngsummary.d.ts +1 -1
- package/controls/input/inputinteger.d.ts +62 -62
- package/controls/input/inputinteger.ngfactory.d.ts +3 -3
- package/controls/input/inputinteger.ngsummary.d.ts +1 -1
- package/controls/input/inputpassword.d.ts +26 -26
- package/controls/input/inputpassword.d.ts.map +1 -1
- package/controls/input/inputpassword.ngfactory.d.ts +3 -3
- package/controls/input/inputpassword.ngsummary.d.ts +1 -1
- package/controls/input/inputsearch.d.ts +35 -35
- package/controls/input/inputsearch.ngfactory.d.ts +3 -3
- package/controls/input/inputsearch.ngsummary.d.ts +1 -1
- package/controls/layout/formlayout.d.ts +65 -65
- package/controls/layout/formlayout.ngfactory.d.ts +3 -3
- package/controls/layout/formlayout.ngsummary.d.ts +1 -1
- package/controls/list/buildvaluestring.d.ts +6 -6
- package/controls/list/buildvaluestring.ngfactory.d.ts +1 -1
- package/controls/list/buildvaluestring.ngsummary.d.ts +1 -1
- package/controls/list/dropdown.d.ts +99 -99
- package/controls/list/dropdown.ngfactory.d.ts +3 -3
- package/controls/list/dropdown.ngsummary.d.ts +1 -1
- package/controls/list/dropdownoptions.d.ts +41 -41
- package/controls/list/dropdownoptions.ngfactory.d.ts +3 -3
- package/controls/list/dropdownoptions.ngsummary.d.ts +1 -1
- package/controls/list/list.module.d.ts +6 -6
- package/controls/list/list.module.ngfactory.d.ts +3 -3
- package/controls/list/list.module.ngsummary.d.ts +1 -1
- package/controls/list/listbox.d.ts +91 -91
- package/controls/list/listbox.ngfactory.d.ts +4 -4
- package/controls/list/listbox.ngsummary.d.ts +2 -2
- package/controls/multilanguage/multilanguageinput.d.ts +105 -105
- package/controls/multilanguage/multilanguageinput.d.ts.map +1 -1
- package/controls/multilanguage/multilanguageinput.ngfactory.d.ts +3 -3
- package/controls/multilanguage/multilanguageinput.ngsummary.d.ts +1 -1
- package/controls/multilanguage/multilanguageinputarea.d.ts +110 -110
- package/controls/multilanguage/multilanguageinputarea.d.ts.map +1 -1
- package/controls/multilanguage/multilanguageinputarea.ngfactory.d.ts +3 -3
- package/controls/multilanguage/multilanguageinputarea.ngsummary.d.ts +1 -1
- package/controls/static/formcontainer.d.ts +38 -38
- package/controls/static/formcontainer.ngfactory.d.ts +3 -3
- package/controls/static/formcontainer.ngsummary.d.ts +1 -1
- package/controls/static/staticlabel.d.ts +21 -21
- package/controls/static/staticlabel.ngfactory.d.ts +3 -3
- package/controls/static/staticlabel.ngsummary.d.ts +1 -1
- package/controls/tabs/tab.d.ts +48 -48
- package/controls/tabs/tab.ngfactory.d.ts +3 -3
- package/controls/tabs/tab.ngsummary.d.ts +1 -1
- package/controls/tabs/tabitem.d.ts +33 -33
- package/controls/tabs/tabitem.ngfactory.d.ts +3 -3
- package/controls/tabs/tabitem.ngsummary.d.ts +1 -1
- package/controls/tinymce/tinymce.d.ts +152 -152
- package/controls/tinymce/tinymce.ngfactory.d.ts +3 -3
- package/controls/tinymce/tinymce.ngsummary.d.ts +1 -1
- package/controls/tinymce/tinymcedialogsettings.d.ts +27 -27
- package/controls/tinymce/tinymcedialogsettings.ngfactory.d.ts +1 -1
- package/controls/tinymce/tinymcedialogsettings.ngsummary.d.ts +1 -1
- package/controls/tinymce/tinymcedialogsettingsmeta.d.ts +9 -9
- package/controls/tinymce/tinymcedialogsettingsmeta.ngfactory.d.ts +4 -1
- package/controls/tinymce/tinymcedialogsettingsmeta.ngfactory.d.ts.map +1 -1
- package/controls/tinymce/tinymcedialogsettingsmeta.ngsummary.d.ts +1 -1
- package/controls/tinymce/tinymceinstance.d.ts +10 -10
- package/controls/tinymce/tinymceinstance.ngfactory.d.ts +1 -1
- package/controls/tinymce/tinymceinstance.ngsummary.d.ts +1 -1
- package/controls/tooltip/tooltip.d.ts +148 -148
- package/controls/tooltip/tooltip.ngfactory.d.ts +3 -3
- package/controls/tooltip/tooltip.ngsummary.d.ts +1 -1
- package/controls/treeview/treeview.d.ts +188 -188
- package/controls/treeview/treeview.ngfactory.d.ts +3 -3
- package/controls/treeview/treeview.ngsummary.d.ts +1 -1
- package/controls/upload/dropzonemultiple.d.ts +73 -73
- package/controls/upload/dropzonemultiple.d.ts.map +1 -1
- package/controls/upload/dropzonemultiple.ngfactory.d.ts +3 -3
- package/controls/upload/dropzonemultiple.ngsummary.d.ts +1 -1
- package/controls/upload/dropzonesingle.d.ts +50 -50
- package/controls/upload/dropzonesingle.d.ts.map +1 -1
- package/controls/upload/dropzonesingle.ngfactory.d.ts +3 -3
- package/controls/upload/dropzonesingle.ngsummary.d.ts +1 -1
- package/controls/upload/uploadmultiple.d.ts +53 -53
- package/controls/upload/uploadmultiple.d.ts.map +1 -1
- package/controls/upload/uploadmultiple.ngfactory.d.ts +3 -3
- package/controls/upload/uploadmultiple.ngsummary.d.ts +1 -1
- package/controls/upload/uploadsingle.d.ts +30 -30
- package/controls/upload/uploadsingle.d.ts.map +1 -1
- package/controls/upload/uploadsingle.ngfactory.d.ts +3 -3
- package/controls/upload/uploadsingle.ngsummary.d.ts +1 -1
- package/controls/validation/validationsummary.d.ts +63 -63
- package/controls/validation/validationsummary.ngfactory.d.ts +3 -3
- package/controls/validation/validationsummary.ngsummary.d.ts +1 -1
- package/controls/wizard/wizard.d.ts +76 -76
- package/controls/wizard/wizard.ngfactory.d.ts +3 -3
- package/controls/wizard/wizard.ngsummary.d.ts +1 -1
- package/controls/wizard/wizarditem.d.ts +28 -28
- package/controls/wizard/wizarditem.ngfactory.d.ts +3 -3
- package/controls/wizard/wizarditem.ngsummary.d.ts +1 -1
- package/enums/ButtonRoleType.d.ts +1 -1
- package/enums/ButtonRoleType.ngfactory.d.ts +1 -1
- package/enums/ButtonRoleType.ngsummary.d.ts +1 -1
- package/enums/ControlHeight.d.ts +17 -17
- package/enums/ControlHeight.ngfactory.d.ts +1 -1
- package/enums/ControlHeight.ngsummary.d.ts +1 -1
- package/enums/IconType.d.ts +7 -7
- package/enums/IconType.ngfactory.d.ts +1 -1
- package/enums/IconType.ngsummary.d.ts +1 -1
- package/esm2020/common/basedatetimecontrol.mjs +84 -84
- package/esm2020/common/basedatetimecontrol.ngfactory.mjs +3 -3
- package/esm2020/common/basedatetimecontrol.ngsummary.mjs +3 -3
- package/esm2020/common/baseinputcontrol.mjs +25 -25
- package/esm2020/common/baseinputcontrol.ngfactory.mjs +3 -3
- package/esm2020/common/baseinputcontrol.ngsummary.mjs +3 -3
- package/esm2020/common/baselistcontrol.mjs +19 -19
- package/esm2020/common/baselistcontrol.ngfactory.mjs +3 -3
- package/esm2020/common/baselistcontrol.ngsummary.mjs +3 -3
- package/esm2020/common/basemodelcontrol.mjs +143 -143
- package/esm2020/common/basemodelcontrol.ngfactory.mjs +3 -3
- package/esm2020/common/basemodelcontrol.ngsummary.mjs +3 -3
- package/esm2020/common/baseselectcontrol.mjs +9 -9
- package/esm2020/common/baseselectcontrol.ngfactory.mjs +3 -3
- package/esm2020/common/baseselectcontrol.ngsummary.mjs +3 -3
- package/esm2020/common/baseuploadcontrol.mjs +140 -140
- package/esm2020/common/baseuploadcontrol.ngfactory.mjs +3 -3
- package/esm2020/common/baseuploadcontrol.ngsummary.mjs +3 -3
- package/esm2020/components/browser/browser.mjs +141 -141
- package/esm2020/components/browser/browser.ngfactory.mjs +3 -3
- package/esm2020/components/browser/browser.ngsummary.mjs +3 -3
- package/esm2020/components/browser/models/browserfile.mjs +3 -3
- package/esm2020/components/browser/models/browserfile.ngfactory.mjs +3 -3
- package/esm2020/components/browser/models/browserfile.ngsummary.mjs +3 -3
- package/esm2020/components/browser/models/browserfiledeleterequest.mjs +8 -8
- package/esm2020/components/browser/models/browserfiledeleterequest.ngfactory.mjs +3 -3
- package/esm2020/components/browser/models/browserfiledeleterequest.ngsummary.mjs +3 -3
- package/esm2020/components/browser/models/browserfilerenamerequest.mjs +8 -8
- package/esm2020/components/browser/models/browserfilerenamerequest.ngfactory.mjs +3 -3
- package/esm2020/components/browser/models/browserfilerenamerequest.ngsummary.mjs +3 -3
- package/esm2020/components/browser/models/browserfileresponse.mjs +3 -3
- package/esm2020/components/browser/models/browserfileresponse.ngfactory.mjs +3 -3
- package/esm2020/components/browser/models/browserfileresponse.ngsummary.mjs +3 -3
- package/esm2020/components/browser/models/browserfilesaverequest.mjs +8 -8
- package/esm2020/components/browser/models/browserfilesaverequest.ngfactory.mjs +3 -3
- package/esm2020/components/browser/models/browserfilesaverequest.ngsummary.mjs +3 -3
- package/esm2020/components/browser/models/browsernode.mjs +3 -3
- package/esm2020/components/browser/models/browsernode.ngfactory.mjs +3 -3
- package/esm2020/components/browser/models/browsernode.ngsummary.mjs +3 -3
- package/esm2020/components/browser/models/browsernodedeleterequest.mjs +8 -8
- package/esm2020/components/browser/models/browsernodedeleterequest.ngfactory.mjs +3 -3
- package/esm2020/components/browser/models/browsernodedeleterequest.ngsummary.mjs +3 -3
- package/esm2020/components/browser/models/browsernodenewrequest.mjs +8 -8
- package/esm2020/components/browser/models/browsernodenewrequest.ngfactory.mjs +3 -3
- package/esm2020/components/browser/models/browsernodenewrequest.ngsummary.mjs +3 -3
- package/esm2020/components/browser/models/browsernoderenamerequest.mjs +8 -8
- package/esm2020/components/browser/models/browsernoderenamerequest.ngfactory.mjs +3 -3
- package/esm2020/components/browser/models/browsernoderenamerequest.ngsummary.mjs +3 -3
- package/esm2020/components/browser/models/browsernoderequest.mjs +8 -8
- package/esm2020/components/browser/models/browsernoderequest.ngfactory.mjs +3 -3
- package/esm2020/components/browser/models/browsernoderequest.ngsummary.mjs +3 -3
- package/esm2020/components/browser/models/browsernoderesponse.mjs +3 -3
- package/esm2020/components/browser/models/browsernoderesponse.ngfactory.mjs +3 -3
- package/esm2020/components/browser/models/browsernoderesponse.ngsummary.mjs +3 -3
- package/esm2020/controls/buttons/button.mjs +43 -43
- package/esm2020/controls/buttons/button.ngfactory.mjs +3 -3
- package/esm2020/controls/buttons/button.ngsummary.mjs +3 -3
- package/esm2020/controls/checkbox/checkbox.mjs +15 -15
- package/esm2020/controls/checkbox/checkbox.ngfactory.mjs +3 -3
- package/esm2020/controls/checkbox/checkbox.ngsummary.mjs +3 -3
- package/esm2020/controls/checkbox/radiobutton.mjs +47 -47
- package/esm2020/controls/checkbox/radiobutton.ngfactory.mjs +3 -3
- package/esm2020/controls/checkbox/radiobutton.ngsummary.mjs +3 -3
- package/esm2020/controls/checkbox/radiobuttons.mjs +33 -33
- package/esm2020/controls/checkbox/radiobuttons.ngfactory.mjs +3 -3
- package/esm2020/controls/checkbox/radiobuttons.ngsummary.mjs +3 -3
- package/esm2020/controls/confirm/confirm.button.mjs +17 -17
- package/esm2020/controls/confirm/confirm.button.ngfactory.mjs +3 -3
- package/esm2020/controls/confirm/confirm.button.ngsummary.mjs +3 -3
- package/esm2020/controls/confirm/confirm.mjs +29 -29
- package/esm2020/controls/confirm/confirm.ngfactory.mjs +3 -3
- package/esm2020/controls/confirm/confirm.ngsummary.mjs +3 -3
- package/esm2020/controls/confirm/confirm.service.mjs +33 -33
- package/esm2020/controls/confirm/confirm.service.ngfactory.mjs +3 -3
- package/esm2020/controls/confirm/confirm.service.ngsummary.mjs +3 -3
- package/esm2020/controls/contextmenu/contextmenu.interface.mjs +3 -3
- package/esm2020/controls/contextmenu/contextmenu.interface.ngfactory.mjs +3 -3
- package/esm2020/controls/contextmenu/contextmenu.interface.ngsummary.mjs +3 -3
- package/esm2020/controls/contextmenu/contextmenu.mjs +58 -58
- package/esm2020/controls/contextmenu/contextmenu.ngfactory.mjs +3 -3
- package/esm2020/controls/contextmenu/contextmenu.ngsummary.mjs +3 -3
- package/esm2020/controls/contextmenu/contextmenuanchor.mjs +8 -8
- package/esm2020/controls/contextmenu/contextmenuanchor.ngfactory.mjs +3 -3
- package/esm2020/controls/contextmenu/contextmenuanchor.ngsummary.mjs +3 -3
- package/esm2020/controls/contextmenu/contextmenucontainer.mjs +8 -8
- package/esm2020/controls/contextmenu/contextmenucontainer.ngfactory.mjs +3 -3
- package/esm2020/controls/contextmenu/contextmenucontainer.ngsummary.mjs +3 -3
- package/esm2020/controls/contextmenu/contextmenuitem.mjs +8 -8
- package/esm2020/controls/contextmenu/contextmenuitem.ngfactory.mjs +3 -3
- package/esm2020/controls/contextmenu/contextmenuitem.ngsummary.mjs +3 -3
- package/esm2020/controls/contextmenu/contextmenuitembutton.mjs +32 -32
- package/esm2020/controls/contextmenu/contextmenuitembutton.ngfactory.mjs +3 -3
- package/esm2020/controls/contextmenu/contextmenuitembutton.ngsummary.mjs +3 -3
- package/esm2020/controls/datetime/date.mjs +51 -51
- package/esm2020/controls/datetime/date.ngfactory.mjs +3 -3
- package/esm2020/controls/datetime/date.ngsummary.mjs +3 -3
- package/esm2020/controls/datetime/dateselector.mjs +111 -111
- package/esm2020/controls/datetime/dateselector.ngfactory.mjs +3 -3
- package/esm2020/controls/datetime/dateselector.ngsummary.mjs +3 -3
- package/esm2020/controls/datetime/datetime.mjs +53 -53
- package/esm2020/controls/datetime/datetime.ngfactory.mjs +3 -3
- package/esm2020/controls/datetime/datetime.ngsummary.mjs +3 -3
- package/esm2020/controls/datetime/time.mjs +50 -50
- package/esm2020/controls/datetime/time.ngfactory.mjs +3 -3
- package/esm2020/controls/datetime/time.ngsummary.mjs +3 -3
- package/esm2020/controls/dialog/dialog.mjs +48 -48
- package/esm2020/controls/dialog/dialog.ngfactory.mjs +3 -3
- package/esm2020/controls/dialog/dialog.ngsummary.mjs +3 -3
- package/esm2020/controls/form/form.mjs +31 -31
- package/esm2020/controls/form/form.ngfactory.mjs +3 -3
- package/esm2020/controls/form/form.ngsummary.mjs +3 -3
- package/esm2020/controls/grid/grid.mjs +46 -46
- package/esm2020/controls/grid/grid.ngfactory.mjs +3 -3
- package/esm2020/controls/grid/grid.ngsummary.mjs +3 -3
- package/esm2020/controls/grid/gridbutton.mjs +20 -20
- package/esm2020/controls/grid/gridbutton.ngfactory.mjs +3 -3
- package/esm2020/controls/grid/gridbutton.ngsummary.mjs +3 -3
- package/esm2020/controls/grid/gridcolumn.mjs +18 -18
- package/esm2020/controls/grid/gridcolumn.ngfactory.mjs +3 -3
- package/esm2020/controls/grid/gridcolumn.ngsummary.mjs +3 -3
- package/esm2020/controls/grid/gridcolumnaction.mjs +10 -10
- package/esm2020/controls/grid/gridcolumnaction.ngfactory.mjs +3 -3
- package/esm2020/controls/grid/gridcolumnaction.ngsummary.mjs +3 -3
- package/esm2020/controls/grid/gridcolumnbase.mjs +36 -36
- package/esm2020/controls/grid/gridcolumnbase.ngfactory.mjs +3 -3
- package/esm2020/controls/grid/gridcolumnbase.ngsummary.mjs +3 -3
- package/esm2020/controls/grid/gridimage.mjs +5 -5
- package/esm2020/controls/grid/gridimage.ngfactory.mjs +3 -3
- package/esm2020/controls/grid/gridimage.ngsummary.mjs +3 -3
- package/esm2020/controls/grid/model.mjs +47 -47
- package/esm2020/controls/grid/model.ngfactory.mjs +3 -3
- package/esm2020/controls/grid/model.ngsummary.mjs +3 -3
- package/esm2020/controls/grid/paging.mjs +80 -80
- package/esm2020/controls/grid/paging.ngfactory.mjs +3 -3
- package/esm2020/controls/grid/paging.ngsummary.mjs +3 -3
- package/esm2020/controls/input/input.mjs +21 -21
- package/esm2020/controls/input/input.ngfactory.mjs +3 -3
- package/esm2020/controls/input/input.ngsummary.mjs +3 -3
- package/esm2020/controls/input/inputarea.mjs +21 -16
- package/esm2020/controls/input/inputarea.ngfactory.mjs +3 -3
- package/esm2020/controls/input/inputarea.ngsummary.mjs +3 -3
- package/esm2020/controls/input/inputcurrency.mjs +9 -9
- package/esm2020/controls/input/inputcurrency.ngfactory.mjs +3 -3
- package/esm2020/controls/input/inputcurrency.ngsummary.mjs +3 -3
- package/esm2020/controls/input/inputdecimal.mjs +39 -39
- package/esm2020/controls/input/inputdecimal.ngfactory.mjs +3 -3
- package/esm2020/controls/input/inputdecimal.ngsummary.mjs +3 -3
- package/esm2020/controls/input/inputemail.mjs +13 -13
- package/esm2020/controls/input/inputemail.ngfactory.mjs +3 -3
- package/esm2020/controls/input/inputemail.ngsummary.mjs +3 -3
- package/esm2020/controls/input/inputinteger.mjs +38 -38
- package/esm2020/controls/input/inputinteger.ngfactory.mjs +3 -3
- package/esm2020/controls/input/inputinteger.ngsummary.mjs +3 -3
- package/esm2020/controls/input/inputpassword.mjs +15 -15
- package/esm2020/controls/input/inputpassword.ngfactory.mjs +3 -3
- package/esm2020/controls/input/inputpassword.ngsummary.mjs +3 -3
- package/esm2020/controls/input/inputsearch.mjs +18 -18
- package/esm2020/controls/input/inputsearch.ngfactory.mjs +3 -3
- package/esm2020/controls/input/inputsearch.ngsummary.mjs +3 -3
- package/esm2020/controls/layout/formlayout.mjs +31 -31
- package/esm2020/controls/layout/formlayout.ngfactory.mjs +3 -3
- package/esm2020/controls/layout/formlayout.ngsummary.mjs +3 -3
- package/esm2020/controls/list/buildvaluestring.mjs +10 -10
- package/esm2020/controls/list/buildvaluestring.ngfactory.mjs +3 -3
- package/esm2020/controls/list/buildvaluestring.ngsummary.mjs +3 -3
- package/esm2020/controls/list/dropdown.mjs +60 -60
- package/esm2020/controls/list/dropdown.ngfactory.mjs +3 -3
- package/esm2020/controls/list/dropdown.ngsummary.mjs +3 -3
- package/esm2020/controls/list/dropdownoptions.mjs +22 -22
- package/esm2020/controls/list/dropdownoptions.ngfactory.mjs +3 -3
- package/esm2020/controls/list/dropdownoptions.ngsummary.mjs +3 -3
- package/esm2020/controls/list/list.module.mjs +3 -3
- package/esm2020/controls/list/list.module.ngfactory.mjs +3 -3
- package/esm2020/controls/list/list.module.ngsummary.mjs +3 -3
- package/esm2020/controls/list/listbox.mjs +51 -51
- package/esm2020/controls/list/listbox.ngfactory.mjs +3 -3
- package/esm2020/controls/list/listbox.ngsummary.mjs +3 -3
- package/esm2020/controls/multilanguage/multilanguageinput.mjs +58 -58
- package/esm2020/controls/multilanguage/multilanguageinput.ngfactory.mjs +3 -3
- package/esm2020/controls/multilanguage/multilanguageinput.ngsummary.mjs +3 -3
- package/esm2020/controls/multilanguage/multilanguageinputarea.mjs +61 -61
- package/esm2020/controls/multilanguage/multilanguageinputarea.ngfactory.mjs +3 -3
- package/esm2020/controls/multilanguage/multilanguageinputarea.ngsummary.mjs +3 -3
- package/esm2020/controls/static/formcontainer.mjs +25 -25
- package/esm2020/controls/static/formcontainer.ngfactory.mjs +3 -3
- package/esm2020/controls/static/formcontainer.ngsummary.mjs +3 -3
- package/esm2020/controls/static/staticlabel.mjs +13 -13
- package/esm2020/controls/static/staticlabel.ngfactory.mjs +3 -3
- package/esm2020/controls/static/staticlabel.ngsummary.mjs +3 -3
- package/esm2020/controls/tabs/tab.mjs +24 -24
- package/esm2020/controls/tabs/tab.ngfactory.mjs +3 -3
- package/esm2020/controls/tabs/tab.ngsummary.mjs +3 -3
- package/esm2020/controls/tabs/tabitem.mjs +11 -11
- package/esm2020/controls/tabs/tabitem.ngfactory.mjs +3 -3
- package/esm2020/controls/tabs/tabitem.ngsummary.mjs +3 -3
- package/esm2020/controls/tinymce/tinymce.mjs +75 -75
- package/esm2020/controls/tinymce/tinymce.ngfactory.mjs +3 -3
- package/esm2020/controls/tinymce/tinymce.ngsummary.mjs +3 -3
- package/esm2020/controls/tinymce/tinymcedialogsettings.mjs +8 -8
- package/esm2020/controls/tinymce/tinymcedialogsettings.ngfactory.mjs +3 -3
- package/esm2020/controls/tinymce/tinymcedialogsettings.ngsummary.mjs +3 -3
- package/esm2020/controls/tinymce/tinymcedialogsettingsmeta.mjs +5 -5
- package/esm2020/controls/tinymce/tinymcedialogsettingsmeta.ngfactory.mjs +5 -3
- package/esm2020/controls/tinymce/tinymcedialogsettingsmeta.ngsummary.mjs +3 -3
- package/esm2020/controls/tinymce/tinymceinstance.mjs +3 -3
- package/esm2020/controls/tinymce/tinymceinstance.ngfactory.mjs +3 -3
- package/esm2020/controls/tinymce/tinymceinstance.ngsummary.mjs +3 -3
- package/esm2020/controls/tooltip/tooltip.mjs +77 -77
- package/esm2020/controls/tooltip/tooltip.ngfactory.mjs +3 -3
- package/esm2020/controls/tooltip/tooltip.ngsummary.mjs +3 -3
- package/esm2020/controls/treeview/treeview.mjs +99 -99
- package/esm2020/controls/treeview/treeview.ngfactory.mjs +3 -3
- package/esm2020/controls/treeview/treeview.ngsummary.mjs +3 -3
- package/esm2020/controls/upload/dropzonemultiple.mjs +45 -45
- package/esm2020/controls/upload/dropzonemultiple.ngfactory.mjs +3 -3
- package/esm2020/controls/upload/dropzonemultiple.ngsummary.mjs +3 -3
- package/esm2020/controls/upload/dropzonesingle.mjs +31 -28
- package/esm2020/controls/upload/dropzonesingle.ngfactory.mjs +3 -3
- package/esm2020/controls/upload/dropzonesingle.ngsummary.mjs +3 -3
- package/esm2020/controls/upload/uploadmultiple.mjs +34 -34
- package/esm2020/controls/upload/uploadmultiple.ngfactory.mjs +3 -3
- package/esm2020/controls/upload/uploadmultiple.ngsummary.mjs +3 -3
- package/esm2020/controls/upload/uploadsingle.mjs +20 -17
- package/esm2020/controls/upload/uploadsingle.ngfactory.mjs +3 -3
- package/esm2020/controls/upload/uploadsingle.ngsummary.mjs +3 -3
- package/esm2020/controls/validation/validationsummary.mjs +27 -27
- package/esm2020/controls/validation/validationsummary.ngfactory.mjs +3 -3
- package/esm2020/controls/validation/validationsummary.ngsummary.mjs +3 -3
- package/esm2020/controls/wizard/wizard.mjs +37 -37
- package/esm2020/controls/wizard/wizard.ngfactory.mjs +3 -3
- package/esm2020/controls/wizard/wizard.ngsummary.mjs +3 -3
- package/esm2020/controls/wizard/wizarditem.mjs +9 -9
- package/esm2020/controls/wizard/wizarditem.ngfactory.mjs +3 -3
- package/esm2020/controls/wizard/wizarditem.ngsummary.mjs +3 -3
- package/esm2020/enums/ButtonRoleType.mjs +3 -3
- package/esm2020/enums/ButtonRoleType.ngfactory.mjs +3 -3
- package/esm2020/enums/ButtonRoleType.ngsummary.mjs +3 -3
- package/esm2020/enums/ControlHeight.mjs +11 -11
- package/esm2020/enums/ControlHeight.ngfactory.mjs +3 -3
- package/esm2020/enums/ControlHeight.ngsummary.mjs +3 -3
- package/esm2020/enums/IconType.mjs +5 -5
- package/esm2020/enums/IconType.ngfactory.mjs +3 -3
- package/esm2020/enums/IconType.ngsummary.mjs +3 -3
- package/esm2020/interfaces/ISacConfigurationService.mjs +3 -3
- package/esm2020/interfaces/ISacConfigurationService.ngfactory.mjs +3 -3
- package/esm2020/interfaces/ISacConfigurationService.ngsummary.mjs +3 -3
- package/esm2020/interfaces/ISacFileBrowserService.mjs +3 -3
- package/esm2020/interfaces/ISacFileBrowserService.ngfactory.mjs +3 -3
- package/esm2020/interfaces/ISacFileBrowserService.ngsummary.mjs +3 -3
- package/esm2020/interfaces/ISacIconService.mjs +3 -3
- package/esm2020/interfaces/ISacIconService.ngfactory.mjs +3 -3
- package/esm2020/interfaces/ISacIconService.ngsummary.mjs +3 -3
- package/esm2020/interfaces/ISacLabelSizes.mjs +3 -3
- package/esm2020/interfaces/ISacLabelSizes.ngfactory.mjs +3 -3
- package/esm2020/interfaces/ISacLabelSizes.ngsummary.mjs +3 -3
- package/esm2020/interfaces/ISacLanguageService.mjs +3 -3
- package/esm2020/interfaces/ISacLanguageService.ngfactory.mjs +3 -3
- package/esm2020/interfaces/ISacLanguageService.ngsummary.mjs +3 -3
- package/esm2020/interfaces/ISacLocalisationService.mjs +3 -3
- package/esm2020/interfaces/ISacLocalisationService.ngfactory.mjs +3 -3
- package/esm2020/interfaces/ISacLocalisationService.ngsummary.mjs +3 -3
- package/esm2020/interfaces/ISacUploadEventCompleteState.mjs +3 -3
- package/esm2020/interfaces/ISacUploadEventCompleteState.ngfactory.mjs +3 -3
- package/esm2020/interfaces/ISacUploadEventCompleteState.ngsummary.mjs +3 -3
- package/esm2020/interfaces/ISacValidationKeyService.mjs +3 -3
- package/esm2020/interfaces/ISacValidationKeyService.ngfactory.mjs +3 -3
- package/esm2020/interfaces/ISacValidationKeyService.ngsummary.mjs +3 -3
- package/esm2020/interfaces/iabstractcontrollabel.mjs +3 -3
- package/esm2020/interfaces/iabstractcontrollabel.ngfactory.mjs +3 -3
- package/esm2020/interfaces/iabstractcontrollabel.ngsummary.mjs +3 -3
- package/esm2020/interfaces/iconfirmcomponent.mjs +3 -3
- package/esm2020/interfaces/iconfirmcomponent.ngfactory.mjs +3 -3
- package/esm2020/interfaces/iconfirmcomponent.ngsummary.mjs +3 -3
- package/esm2020/interfaces/idatetimecontrol.mjs +3 -3
- package/esm2020/interfaces/idatetimecontrol.ngfactory.mjs +3 -3
- package/esm2020/interfaces/idatetimecontrol.ngsummary.mjs +3 -3
- package/esm2020/interfaces/iuploadcontrol.mjs +3 -3
- package/esm2020/interfaces/iuploadcontrol.ngfactory.mjs +3 -3
- package/esm2020/interfaces/iuploadcontrol.ngsummary.mjs +3 -3
- package/esm2020/interfaces/treeviewaction.interface.mjs +3 -3
- package/esm2020/interfaces/treeviewaction.interface.ngfactory.mjs +3 -3
- package/esm2020/interfaces/treeviewaction.interface.ngsummary.mjs +3 -3
- package/esm2020/models/languagemodel.mjs +7 -7
- package/esm2020/models/languagemodel.ngfactory.mjs +3 -3
- package/esm2020/models/languagemodel.ngsummary.mjs +3 -3
- package/esm2020/public_api.mjs +5 -5
- package/esm2020/public_api.ngfactory.mjs +3 -3
- package/esm2020/public_api.ngsummary.mjs +3 -3
- package/esm2020/services/index.mjs +3 -3
- package/esm2020/services/index.ngfactory.mjs +3 -3
- package/esm2020/services/index.ngsummary.mjs +3 -3
- package/esm2020/services/sac-configuration.service.mjs +35 -35
- package/esm2020/services/sac-configuration.service.ngfactory.mjs +3 -3
- package/esm2020/services/sac-configuration.service.ngsummary.mjs +3 -3
- package/esm2020/services/sac-filebrowser.service.mjs +53 -53
- package/esm2020/services/sac-filebrowser.service.ngfactory.mjs +3 -3
- package/esm2020/services/sac-filebrowser.service.ngsummary.mjs +3 -3
- package/esm2020/services/sac-icon.service.mjs +65 -65
- package/esm2020/services/sac-icon.service.ngfactory.mjs +3 -3
- package/esm2020/services/sac-icon.service.ngsummary.mjs +3 -3
- package/esm2020/services/sac-language.service.mjs +11 -11
- package/esm2020/services/sac-language.service.ngfactory.mjs +3 -3
- package/esm2020/services/sac-language.service.ngsummary.mjs +3 -3
- package/esm2020/services/sac-localisation.service.mjs +36 -35
- package/esm2020/services/sac-localisation.service.ngfactory.mjs +3 -3
- package/esm2020/services/sac-localisation.service.ngsummary.mjs +3 -3
- package/esm2020/services/sac-validationkey.service.mjs +7 -7
- package/esm2020/services/sac-validationkey.service.ngfactory.mjs +3 -3
- package/esm2020/services/sac-validationkey.service.ngsummary.mjs +3 -3
- package/esm2020/simpleangularcontrols-sac-common.mjs +4 -4
- package/esm2020/utilities/convertion.mjs +12 -12
- package/esm2020/utilities/convertion.ngfactory.mjs +3 -3
- package/esm2020/utilities/convertion.ngsummary.mjs +3 -3
- package/esm2020/utilities/datatypes.mjs +7 -7
- package/esm2020/utilities/datatypes.ngfactory.mjs +3 -3
- package/esm2020/utilities/datatypes.ngsummary.mjs +3 -3
- package/esm2020/utilities/enums.mjs +11 -11
- package/esm2020/utilities/enums.ngfactory.mjs +3 -3
- package/esm2020/utilities/enums.ngsummary.mjs +3 -3
- package/esm2020/utilities/guid.mjs +8 -8
- package/esm2020/utilities/guid.ngfactory.mjs +3 -3
- package/esm2020/utilities/guid.ngsummary.mjs +3 -3
- package/esm2020/utilities/interpolation.mjs +15 -15
- package/esm2020/utilities/interpolation.ngfactory.mjs +3 -3
- package/esm2020/utilities/interpolation.ngsummary.mjs +3 -3
- package/esm2020/utilities/popuphelper.mjs +79 -79
- package/esm2020/utilities/popuphelper.ngfactory.mjs +3 -3
- package/esm2020/utilities/popuphelper.ngsummary.mjs +3 -3
- package/esm2020/utilities/positioning.mjs +56 -56
- package/esm2020/utilities/positioning.ngfactory.mjs +3 -3
- package/esm2020/utilities/positioning.ngsummary.mjs +3 -3
- package/esm2020/validation/email.validator.mjs +3 -3
- package/esm2020/validation/email.validator.ngfactory.mjs +3 -3
- package/esm2020/validation/email.validator.ngsummary.mjs +3 -3
- package/esm2020/validation/equals.validator.mjs +3 -3
- package/esm2020/validation/equals.validator.ngfactory.mjs +3 -3
- package/esm2020/validation/equals.validator.ngsummary.mjs +3 -3
- package/esm2020/validation/index.mjs +3 -3
- package/esm2020/validation/index.ngfactory.mjs +3 -3
- package/esm2020/validation/index.ngsummary.mjs +3 -3
- package/esm2020/validation/invaliddate.validator.mjs +3 -3
- package/esm2020/validation/invaliddate.validator.ngfactory.mjs +3 -3
- package/esm2020/validation/invaliddate.validator.ngsummary.mjs +3 -3
- package/esm2020/validation/isDateValid.mjs +10 -10
- package/esm2020/validation/isDateValid.ngfactory.mjs +3 -3
- package/esm2020/validation/isDateValid.ngsummary.mjs +3 -3
- package/esm2020/validation/maxdate.validator.mjs +4 -4
- package/esm2020/validation/maxdate.validator.ngfactory.mjs +3 -3
- package/esm2020/validation/maxdate.validator.ngsummary.mjs +3 -3
- package/esm2020/validation/maxtime.validator.mjs +4 -4
- package/esm2020/validation/maxtime.validator.ngfactory.mjs +3 -3
- package/esm2020/validation/maxtime.validator.ngsummary.mjs +3 -3
- package/esm2020/validation/maxvalue.validator.mjs +3 -3
- package/esm2020/validation/maxvalue.validator.ngfactory.mjs +3 -3
- package/esm2020/validation/maxvalue.validator.ngsummary.mjs +3 -3
- package/esm2020/validation/mindate.validator.mjs +4 -4
- package/esm2020/validation/mindate.validator.ngfactory.mjs +3 -3
- package/esm2020/validation/mindate.validator.ngsummary.mjs +3 -3
- package/esm2020/validation/minfiles.validator.mjs +4 -4
- package/esm2020/validation/minfiles.validator.ngfactory.mjs +3 -3
- package/esm2020/validation/minfiles.validator.ngsummary.mjs +3 -3
- package/esm2020/validation/mintextlength.validator.mjs +5 -0
- package/esm2020/validation/mintextlength.validator.ngfactory.mjs +3 -0
- package/esm2020/validation/mintextlength.validator.ngsummary.mjs +3 -0
- package/esm2020/validation/mintime.validator.mjs +4 -4
- package/esm2020/validation/mintime.validator.ngfactory.mjs +3 -3
- package/esm2020/validation/mintime.validator.ngsummary.mjs +3 -3
- package/esm2020/validation/minvalue.validator.mjs +3 -3
- package/esm2020/validation/minvalue.validator.ngfactory.mjs +3 -3
- package/esm2020/validation/minvalue.validator.ngsummary.mjs +3 -3
- package/esm2020/validation/multilanguagerequired.validator.mjs +3 -3
- package/esm2020/validation/multilanguagerequired.validator.ngfactory.mjs +3 -3
- package/esm2020/validation/multilanguagerequired.validator.ngsummary.mjs +3 -3
- package/esm2020/validation/multilanguagerequiredany.validator.mjs +3 -3
- package/esm2020/validation/multilanguagerequiredany.validator.ngfactory.mjs +3 -3
- package/esm2020/validation/multilanguagerequiredany.validator.ngsummary.mjs +3 -3
- package/esm2020/validation/notequals.validator.mjs +3 -3
- package/esm2020/validation/notequals.validator.ngfactory.mjs +3 -3
- package/esm2020/validation/notequals.validator.ngsummary.mjs +3 -3
- package/esm2020/validation/pattern.validator.mjs +3 -3
- package/esm2020/validation/pattern.validator.ngfactory.mjs +3 -3
- package/esm2020/validation/pattern.validator.ngsummary.mjs +3 -3
- package/esm2020/validation/required.validator.mjs +3 -3
- package/esm2020/validation/required.validator.ngfactory.mjs +3 -3
- package/esm2020/validation/required.validator.ngsummary.mjs +3 -3
- package/esm2020/validation/validation.mjs +128 -123
- package/esm2020/validation/validation.ngfactory.mjs +3 -3
- package/esm2020/validation/validation.ngsummary.mjs +3 -3
- package/esm2020/validation/validationerrorcreator.mjs +3 -3
- package/esm2020/validation/validationerrorcreator.ngfactory.mjs +3 -3
- package/esm2020/validation/validationerrorcreator.ngsummary.mjs +3 -3
- package/esm2020/validation/validationerroritem.mjs +15 -15
- package/esm2020/validation/validationerroritem.ngfactory.mjs +3 -3
- package/esm2020/validation/validationerroritem.ngsummary.mjs +3 -3
- package/fesm2015/simpleangularcontrols-sac-common.mjs +2873 -2854
- package/fesm2015/simpleangularcontrols-sac-common.mjs.map +1 -1
- package/fesm2020/simpleangularcontrols-sac-common.mjs +2873 -2854
- package/fesm2020/simpleangularcontrols-sac-common.mjs.map +1 -1
- package/interfaces/ISacConfigurationService.d.ts +58 -58
- package/interfaces/ISacConfigurationService.ngfactory.d.ts +1 -1
- package/interfaces/ISacConfigurationService.ngsummary.d.ts +1 -1
- package/interfaces/ISacFileBrowserService.d.ts +65 -65
- package/interfaces/ISacFileBrowserService.ngfactory.d.ts +1 -1
- package/interfaces/ISacFileBrowserService.ngsummary.d.ts +1 -1
- package/interfaces/ISacIconService.d.ts +113 -113
- package/interfaces/ISacIconService.ngfactory.d.ts +1 -1
- package/interfaces/ISacIconService.ngsummary.d.ts +1 -1
- package/interfaces/ISacLabelSizes.d.ts +26 -26
- package/interfaces/ISacLabelSizes.ngfactory.d.ts +1 -1
- package/interfaces/ISacLabelSizes.ngsummary.d.ts +1 -1
- package/interfaces/ISacLanguageService.d.ts +12 -12
- package/interfaces/ISacLanguageService.ngfactory.d.ts +1 -1
- package/interfaces/ISacLanguageService.ngsummary.d.ts +1 -1
- package/interfaces/ISacLocalisationService.d.ts +10 -10
- package/interfaces/ISacLocalisationService.ngfactory.d.ts +1 -1
- package/interfaces/ISacLocalisationService.ngsummary.d.ts +1 -1
- package/interfaces/ISacUploadEventCompleteState.d.ts +5 -5
- package/interfaces/ISacUploadEventCompleteState.ngfactory.d.ts +1 -1
- package/interfaces/ISacUploadEventCompleteState.ngsummary.d.ts +1 -1
- package/interfaces/ISacValidationKeyService.d.ts +52 -52
- package/interfaces/ISacValidationKeyService.d.ts.map +1 -1
- package/interfaces/ISacValidationKeyService.ngfactory.d.ts +1 -1
- package/interfaces/ISacValidationKeyService.ngsummary.d.ts +1 -1
- package/interfaces/iabstractcontrollabel.d.ts +6 -6
- package/interfaces/iabstractcontrollabel.ngfactory.d.ts +1 -1
- package/interfaces/iabstractcontrollabel.ngsummary.d.ts +1 -1
- package/interfaces/iconfirmcomponent.d.ts +18 -18
- package/interfaces/iconfirmcomponent.ngfactory.d.ts +1 -1
- package/interfaces/iconfirmcomponent.ngsummary.d.ts +1 -1
- package/interfaces/idatetimecontrol.d.ts +7 -7
- package/interfaces/idatetimecontrol.ngfactory.d.ts +1 -1
- package/interfaces/idatetimecontrol.ngsummary.d.ts +1 -1
- package/interfaces/iuploadcontrol.d.ts +9 -9
- package/interfaces/iuploadcontrol.ngfactory.d.ts +1 -1
- package/interfaces/iuploadcontrol.ngsummary.d.ts +1 -1
- package/interfaces/treeviewaction.interface.d.ts +4 -4
- package/interfaces/treeviewaction.interface.ngfactory.d.ts +1 -1
- package/interfaces/treeviewaction.interface.ngsummary.d.ts +1 -1
- package/models/languagemodel.d.ts +22 -22
- package/models/languagemodel.ngfactory.d.ts +1 -1
- package/models/languagemodel.ngsummary.d.ts +1 -1
- package/package.json +1 -1
- package/public_api.d.ts +86 -86
- package/public_api.ngfactory.d.ts +1 -1
- package/public_api.ngsummary.d.ts +1 -1
- package/services/index.d.ts +6 -6
- package/services/index.ngfactory.d.ts +1 -1
- package/services/index.ngsummary.d.ts +1 -1
- package/services/sac-configuration.service.d.ts +126 -126
- package/services/sac-configuration.service.ngfactory.d.ts +4 -4
- package/services/sac-configuration.service.ngsummary.d.ts +2 -2
- package/services/sac-filebrowser.service.d.ts +145 -145
- package/services/sac-filebrowser.service.ngfactory.d.ts +4 -4
- package/services/sac-filebrowser.service.ngsummary.d.ts +2 -2
- package/services/sac-icon.service.d.ts +237 -237
- package/services/sac-icon.service.ngfactory.d.ts +4 -4
- package/services/sac-icon.service.ngsummary.d.ts +2 -2
- package/services/sac-language.service.d.ts +31 -31
- package/services/sac-language.service.ngfactory.d.ts +4 -4
- package/services/sac-language.service.ngsummary.d.ts +2 -2
- package/services/sac-localisation.service.d.ts +142 -142
- package/services/sac-localisation.service.d.ts.map +1 -1
- package/services/sac-localisation.service.ngfactory.d.ts +4 -4
- package/services/sac-localisation.service.ngsummary.d.ts +2 -2
- package/services/sac-validationkey.service.d.ts +58 -58
- package/services/sac-validationkey.service.d.ts.map +1 -1
- package/services/sac-validationkey.service.ngfactory.d.ts +3 -3
- package/services/sac-validationkey.service.ngsummary.d.ts +1 -1
- package/simpleangularcontrols-sac-common-13.0.0-rc.14.tgz +0 -0
- package/simpleangularcontrols-sac-common.d.ts +5 -5
- package/utilities/convertion.d.ts +15 -15
- package/utilities/convertion.ngfactory.d.ts +1 -1
- package/utilities/convertion.ngsummary.d.ts +1 -1
- package/utilities/datatypes.d.ts +6 -6
- package/utilities/datatypes.ngfactory.d.ts +1 -1
- package/utilities/datatypes.ngsummary.d.ts +1 -1
- package/utilities/enums.d.ts +12 -12
- package/utilities/enums.ngfactory.d.ts +1 -1
- package/utilities/enums.ngsummary.d.ts +1 -1
- package/utilities/guid.d.ts +4 -4
- package/utilities/guid.ngfactory.d.ts +1 -1
- package/utilities/guid.ngsummary.d.ts +1 -1
- package/utilities/interpolation.d.ts +21 -21
- package/utilities/interpolation.ngfactory.d.ts +1 -1
- package/utilities/interpolation.ngsummary.d.ts +1 -1
- package/utilities/popuphelper.d.ts +83 -83
- package/utilities/popuphelper.ngfactory.d.ts +1 -1
- package/utilities/popuphelper.ngsummary.d.ts +1 -1
- package/utilities/positioning.d.ts +82 -82
- package/utilities/positioning.ngfactory.d.ts +1 -1
- package/utilities/positioning.ngsummary.d.ts +1 -1
- package/validation/email.validator.d.ts +2 -2
- package/validation/email.validator.ngfactory.d.ts +1 -1
- package/validation/email.validator.ngsummary.d.ts +1 -1
- package/validation/equals.validator.d.ts +2 -2
- package/validation/equals.validator.ngfactory.d.ts +1 -1
- package/validation/equals.validator.ngsummary.d.ts +1 -1
- package/validation/index.d.ts +2 -2
- package/validation/index.ngfactory.d.ts +1 -1
- package/validation/index.ngsummary.d.ts +1 -1
- package/validation/invaliddate.validator.d.ts +2 -2
- package/validation/invaliddate.validator.ngfactory.d.ts +1 -1
- package/validation/invaliddate.validator.ngsummary.d.ts +1 -1
- package/validation/isDateValid.d.ts +5 -5
- package/validation/isDateValid.ngfactory.d.ts +1 -1
- package/validation/isDateValid.ngsummary.d.ts +1 -1
- package/validation/maxdate.validator.d.ts +2 -2
- package/validation/maxdate.validator.ngfactory.d.ts +1 -1
- package/validation/maxdate.validator.ngsummary.d.ts +1 -1
- package/validation/maxtime.validator.d.ts +2 -2
- package/validation/maxtime.validator.ngfactory.d.ts +1 -1
- package/validation/maxtime.validator.ngsummary.d.ts +1 -1
- package/validation/maxvalue.validator.d.ts +2 -2
- package/validation/maxvalue.validator.ngfactory.d.ts +1 -1
- package/validation/maxvalue.validator.ngsummary.d.ts +1 -1
- package/validation/mindate.validator.d.ts +2 -2
- package/validation/mindate.validator.ngfactory.d.ts +1 -1
- package/validation/mindate.validator.ngsummary.d.ts +1 -1
- package/validation/minfiles.validator.d.ts +2 -2
- package/validation/minfiles.validator.ngfactory.d.ts +1 -1
- package/validation/minfiles.validator.ngsummary.d.ts +1 -1
- package/validation/mintextlength.validator.d.ts +3 -0
- package/validation/mintextlength.validator.d.ts.map +1 -0
- package/validation/mintextlength.validator.ngfactory.d.ts +2 -0
- package/validation/mintextlength.validator.ngfactory.d.ts.map +1 -0
- package/validation/mintextlength.validator.ngsummary.d.ts +2 -0
- package/validation/mintextlength.validator.ngsummary.d.ts.map +1 -0
- package/validation/mintime.validator.d.ts +2 -2
- package/validation/mintime.validator.ngfactory.d.ts +1 -1
- package/validation/mintime.validator.ngsummary.d.ts +1 -1
- package/validation/minvalue.validator.d.ts +2 -2
- package/validation/minvalue.validator.ngfactory.d.ts +1 -1
- package/validation/minvalue.validator.ngsummary.d.ts +1 -1
- package/validation/multilanguagerequired.validator.d.ts +3 -3
- package/validation/multilanguagerequired.validator.ngfactory.d.ts +1 -1
- package/validation/multilanguagerequired.validator.ngsummary.d.ts +1 -1
- package/validation/multilanguagerequiredany.validator.d.ts +3 -3
- package/validation/multilanguagerequiredany.validator.ngfactory.d.ts +1 -1
- package/validation/multilanguagerequiredany.validator.ngsummary.d.ts +1 -1
- package/validation/notequals.validator.d.ts +2 -2
- package/validation/notequals.validator.ngfactory.d.ts +1 -1
- package/validation/notequals.validator.ngsummary.d.ts +1 -1
- package/validation/pattern.validator.d.ts +2 -2
- package/validation/pattern.validator.ngfactory.d.ts +1 -1
- package/validation/pattern.validator.ngsummary.d.ts +1 -1
- package/validation/required.validator.d.ts +2 -2
- package/validation/required.validator.ngfactory.d.ts +1 -1
- package/validation/required.validator.ngsummary.d.ts +1 -1
- package/validation/validation.d.ts +157 -157
- package/validation/validation.d.ts.map +1 -1
- package/validation/validation.ngfactory.d.ts +1 -1
- package/validation/validation.ngsummary.d.ts +1 -1
- package/validation/validationerrorcreator.d.ts +1 -1
- package/validation/validationerrorcreator.ngfactory.d.ts +1 -1
- package/validation/validationerrorcreator.ngsummary.d.ts +1 -1
- package/validation/validationerroritem.d.ts +33 -33
- package/validation/validationerroritem.ngfactory.d.ts +1 -1
- package/validation/validationerroritem.ngsummary.d.ts +1 -1
- package/esm2020/validation/minlength.validator.mjs +0 -3
- package/esm2020/validation/minlength.validator.ngfactory.mjs +0 -3
- package/esm2020/validation/minlength.validator.ngsummary.mjs +0 -3
- package/simpleangularcontrols-sac-common-13.0.0-rc.12.tgz +0 -0
- package/validation/minlength.validator.d.ts +0 -3
- package/validation/minlength.validator.d.ts.map +0 -1
- package/validation/minlength.validator.ngfactory.d.ts +0 -2
- package/validation/minlength.validator.ngfactory.d.ts.map +0 -1
- package/validation/minlength.validator.ngsummary.d.ts +0 -2
- package/validation/minlength.validator.ngsummary.d.ts.map +0 -1
|
@@ -1,58 +1,58 @@
|
|
|
1
|
-
function cov_38kxbnd9b(){var path="C:\\Projekte\\simpleangularcontrols-ng13\\ch.jnetwork.sac-controls\\dist\\sac-common\\esm2020\\utilities\\positioning.mjs";var hash="dfa8ea7cf619b4ac1f83e0a158664836484ea7f6";var global=new Function("return this")();var gcv="__coverage__";var coverageData={path:"C:\\Projekte\\simpleangularcontrols-ng13\\ch.jnetwork.sac-controls\\dist\\sac-common\\esm2020\\utilities\\positioning.mjs",statementMap:{"0":{start:{line:12,column:8},end:{line:12,column:48}},"1":{start:{line:21,column:8},end:{line:21,column:48}},"2":{start:{line:29,column:8},end:{line:29,column:77}},"3":{start:{line:37,column:29},end:{line:37,column:77}},"4":{start:{line:38,column:8},end:{line:42,column:9}},"5":{start:{line:41,column:12},end:{line:41,column:57}},"6":{start:{line:43,column:8},end:{line:43,column:58}},"7":{start:{line:53,column:27},end:{line:60,column:9}},"8":{start:{line:61,column:8},end:{line:80,column:9}},"9":{start:{line:62,column:12},end:{line:62,column:57}},"10":{start:{line:63,column:12},end:{line:70,column:14}},"11":{start:{line:73,column:35},end:{line:73,column:61}},"12":{start:{line:74,column:12},end:{line:74,column:53}},"13":{start:{line:75,column:12},end:{line:77,column:13}},"14":{start:{line:76,column:16},end:{line:76,column:66}},"15":{start:{line:78,column:12},end:{line:78,column:57}},"16":{start:{line:79,column:12},end:{line:79,column:59}},"17":{start:{line:81,column:8},end:{line:81,column:43}},"18":{start:{line:82,column:8},end:{line:82,column:46}},"19":{start:{line:83,column:8},end:{line:83,column:45}},"20":{start:{line:84,column:8},end:{line:84,column:46}},"21":{start:{line:85,column:8},end:{line:90,column:9}},"22":{start:{line:86,column:12},end:{line:86,column:56}},"23":{start:{line:87,column:12},end:{line:87,column:62}},"24":{start:{line:88,column:12},end:{line:88,column:58}},"25":{start:{line:89,column:12},end:{line:89,column:60}},"26":{start:{line:91,column:8},end:{line:91,column:26}},"27":{start:{line:100,column:22},end:{line:100,column:53}},"28":{start:{line:101,column:31},end:{line:104,column:9}},"29":{start:{line:105,column:25},end:{line:112,column:9}},"30":{start:{line:113,column:8},end:{line:120,column:9}},"31":{start:{line:114,column:12},end:{line:114,column:58}},"32":{start:{line:115,column:12},end:{line:115,column:56}},"33":{start:{line:116,column:12},end:{line:116,column:52}},"34":{start:{line:117,column:12},end:{line:117,column:58}},"35":{start:{line:118,column:12},end:{line:118,column:54}},"36":{start:{line:119,column:12},end:{line:119,column:56}},"37":{start:{line:121,column:8},end:{line:121,column:24}},"38":{start:{line:128,column:74},end:{line:128,column:94}},"39":{start:{line:129,column:31},end:{line:131,column:47}},"40":{start:{line:132,column:31},end:{line:132,column:63}},"41":{start:{line:133,column:26},end:{line:133,column:62}},"42":{start:{line:134,column:29},end:{line:134,column:68}},"43":{start:{line:135,column:27},end:{line:135,column:64}},"44":{start:{line:136,column:28},end:{line:136,column:66}},"45":{start:{line:137,column:26},end:{line:137,column:27}},"46":{start:{line:138,column:27},end:{line:138,column:28}},"47":{start:{line:139,column:8},end:{line:156,column:9}},"48":{start:{line:141,column:16},end:{line:143,column:80}},"49":{start:{line:144,column:16},end:{line:144,column:22}},"50":{start:{line:146,column:16},end:{line:146,column:73}},"51":{start:{line:147,column:16},end:{line:147,column:22}},"52":{start:{line:149,column:16},end:{line:151,column:79}},"53":{start:{line:152,column:16},end:{line:152,column:22}},"54":{start:{line:154,column:16},end:{line:154,column:74}},"55":{start:{line:155,column:16},end:{line:155,column:22}},"56":{start:{line:157,column:8},end:{line:190,column:9}},"57":{start:{line:159,column:16},end:{line:159,column:49}},"58":{start:{line:160,column:16},end:{line:160,column:22}},"59":{start:{line:162,column:16},end:{line:165,column:51}},"60":{start:{line:166,column:16},end:{line:166,column:22}},"61":{start:{line:168,column:16},end:{line:168,column:51}},"62":{start:{line:169,column:16},end:{line:169,column:22}},"63":{start:{line:171,column:16},end:{line:174,column:50}},"64":{start:{line:175,column:16},end:{line:175,column:22}},"65":{start:{line:177,column:16},end:{line:188,column:17}},"66":{start:{line:178,column:20},end:{line:181,column:58}},"67":{start:{line:184,column:20},end:{line:187,column:59}},"68":{start:{line:189,column:16},end:{line:189,column:22}},"69":{start:{line:193,column:8},end:{line:193,column:113}},"70":{start:{line:195,column:28},end:{line:195,column:65}},"71":{start:{line:196,column:21},end:{line:196,column:45}},"72":{start:{line:197,column:29},end:{line:197,column:68}},"73":{start:{line:198,column:28},end:{line:198,column:65}},"74":{start:{line:199,column:8},end:{line:202,column:48}},"75":{start:{line:208,column:27},end:{line:208,column:32}},"76":{start:{line:212,column:31},end:{line:212,column:48}},"77":{start:{line:224,column:26},end:{line:226,column:45}},"78":{start:{line:227,column:30},end:{line:240,column:5}},"79":{start:{line:241,column:22},end:{line:241,column:45}},"80":{start:{line:242,column:31},end:{line:255,column:5}},"81":{start:{line:243,column:37},end:{line:243,column:63}},"82":{start:{line:244,column:24},end:{line:244,column:26}},"83":{start:{line:245,column:8},end:{line:253,column:9}},"84":{start:{line:246,column:12},end:{line:246,column:52}},"85":{start:{line:247,column:12},end:{line:249,column:13}},"86":{start:{line:248,column:16},end:{line:248,column:69}},"87":{start:{line:250,column:12},end:{line:252,column:15}},"88":{start:{line:251,column:16},end:{line:251,column:41}},"89":{start:{line:254,column:8},end:{line:254,column:23}},"90":{start:{line:257,column:4},end:{line:261,column:5}},"91":{start:{line:258,column:8},end:{line:260,column:11}},"92":{start:{line:259,column:12},end:{line:259,column:66}},"93":{start:{line:263,column:18},end:{line:263,column:66}},"94":{start:{line:263,column:51},end:{line:263,column:65}},"95":{start:{line:264,column:4},end:{line:270,column:5}},"96":{start:{line:265,column:8},end:{line:269,column:11}},"97":{start:{line:266,column:12},end:{line:268,column:13}},"98":{start:{line:266,column:44},end:{line:266,column:72}},"99":{start:{line:267,column:16},end:{line:267,column:56}},"100":{start:{line:273,column:18},end:{line:273,column:37}},"101":{start:{line:274,column:4},end:{line:274,column:32}},"102":{start:{line:275,column:4},end:{line:275,column:20}},"103":{start:{line:276,column:4},end:{line:276,column:21}},"104":{start:{line:277,column:4},end:{line:277,column:39}},"105":{start:{line:278,column:24},end:{line:278,column:28}},"106":{start:{line:279,column:23},end:{line:279,column:28}},"107":{start:{line:280,column:4},end:{line:292,column:5}},"108":{start:{line:281,column:29},end:{line:281,column:62}},"109":{start:{line:282,column:8},end:{line:285,column:9}},"110":{start:{line:283,column:12},end:{line:283,column:32}},"111":{start:{line:284,column:12},end:{line:284,column:18}},"112":{start:{line:287,column:8},end:{line:291,column:9}},"113":{start:{line:288,column:12},end:{line:290,column:15}},"114":{start:{line:289,column:16},end:{line:289,column:44}},"115":{start:{line:293,column:4},end:{line:298,column:5}},"116":{start:{line:295,column:8},end:{line:295,column:41}},"117":{start:{line:296,column:8},end:{line:296,column:42}},"118":{start:{line:297,column:8},end:{line:297,column:98}},"119":{start:{line:299,column:4},end:{line:299,column:25}}},fnMap:{"0":{name:"(anonymous_0)",decl:{start:{line:11,column:4},end:{line:11,column:5}},loc:{start:{line:11,column:26},end:{line:13,column:5}},line:11},"1":{name:"(anonymous_1)",decl:{start:{line:20,column:4},end:{line:20,column:5}},loc:{start:{line:20,column:28},end:{line:22,column:5}},line:20},"2":{name:"(anonymous_2)",decl:{start:{line:28,column:4},end:{line:28,column:5}},loc:{start:{line:28,column:32},end:{line:30,column:5}},line:28},"3":{name:"(anonymous_3)",decl:{start:{line:36,column:4},end:{line:36,column:5}},loc:{start:{line:36,column:26},end:{line:44,column:5}},line:36},"4":{name:"(anonymous_4)",decl:{start:{line:51,column:4},end:{line:51,column:5}},loc:{start:{line:51,column:36},end:{line:92,column:5}},line:51},"5":{name:"(anonymous_5)",decl:{start:{line:99,column:4},end:{line:99,column:5}},loc:{start:{line:99,column:34},end:{line:122,column:5}},line:99},"6":{name:"(anonymous_6)",decl:{start:{line:127,column:4},end:{line:127,column:5}},loc:{start:{line:127,column:74},end:{line:203,column:5}},line:127},"7":{name:"positionElements",decl:{start:{line:223,column:16},end:{line:223,column:32}},loc:{start:{line:223,column:97},end:{line:300,column:1}},line:223},"8":{name:"(anonymous_8)",decl:{start:{line:242,column:31},end:{line:242,column:32}},loc:{start:{line:242,column:52},end:{line:255,column:5}},line:242},"9":{name:"(anonymous_9)",decl:{start:{line:250,column:28},end:{line:250,column:29}},loc:{start:{line:250,column:43},end:{line:252,column:13}},line:250},"10":{name:"(anonymous_10)",decl:{start:{line:258,column:34},end:{line:258,column:35}},loc:{start:{line:258,column:57},end:{line:260,column:9}},line:258},"11":{name:"(anonymous_11)",decl:{start:{line:263,column:42},end:{line:263,column:43}},loc:{start:{line:263,column:51},end:{line:263,column:65}},line:263},"12":{name:"(anonymous_12)",decl:{start:{line:265,column:34},end:{line:265,column:35}},loc:{start:{line:265,column:49},end:{line:269,column:9}},line:265},"13":{name:"(anonymous_13)",decl:{start:{line:266,column:35},end:{line:266,column:36}},loc:{start:{line:266,column:44},end:{line:266,column:72}},line:266},"14":{name:"(anonymous_14)",decl:{start:{line:288,column:33},end:{line:288,column:34}},loc:{start:{line:288,column:48},end:{line:290,column:13}},line:288}},branchMap:{"0":{loc:{start:{line:29,column:16},end:{line:29,column:62}},type:"binary-expr",locations:[{start:{line:29,column:16},end:{line:29,column:50}},{start:{line:29,column:54},end:{line:29,column:62}}],line:29},"1":{loc:{start:{line:37,column:29},end:{line:37,column:77}},type:"binary-expr",locations:[{start:{line:37,column:29},end:{line:37,column:49}},{start:{line:37,column:53},end:{line:37,column:77}}],line:37},"2":{loc:{start:{line:38,column:15},end:{line:40,column:51}},type:"binary-expr",locations:[{start:{line:38,column:15},end:{line:38,column:29}},{start:{line:39,column:12},end:{line:39,column:55}},{start:{line:40,column:12},end:{line:40,column:51}}],line:38},"3":{loc:{start:{line:43,column:15},end:{line:43,column:57}},type:"binary-expr",locations:[{start:{line:43,column:15},end:{line:43,column:29}},{start:{line:43,column:33},end:{line:43,column:57}}],line:43},"4":{loc:{start:{line:51,column:22},end:{line:51,column:34}},type:"default-arg",locations:[{start:{line:51,column:30},end:{line:51,column:34}}],line:51},"5":{loc:{start:{line:61,column:8},end:{line:80,column:9}},type:"if",locations:[{start:{line:61,column:8},end:{line:80,column:9}},{start:{line:61,column:8},end:{line:80,column:9}}],line:61},"6":{loc:{start:{line:75,column:12},end:{line:77,column:13}},type:"if",locations:[{start:{line:75,column:12},end:{line:77,column:13}},{start:{line:75,column:12},end:{line:77,column:13}}],line:75},"7":{loc:{start:{line:85,column:8},end:{line:90,column:9}},type:"if",locations:[{start:{line:85,column:8},end:{line:90,column:9}},{start:{line:85,column:8},end:{line:90,column:9}}],line:85},"8":{loc:{start:{line:99,column:20},end:{line:99,column:32}},type:"default-arg",locations:[{start:{line:99,column:28},end:{line:99,column:32}}],line:99},"9":{loc:{start:{line:106,column:20},end:{line:106,column:56}},type:"binary-expr",locations:[{start:{line:106,column:20},end:{line:106,column:32}},{start:{line:106,column:36},end:{line:106,column:56}}],line:106},"10":{loc:{start:{line:107,column:19},end:{line:107,column:53}},type:"binary-expr",locations:[{start:{line:107,column:19},end:{line:107,column:30}},{start:{line:107,column:34},end:{line:107,column:53}}],line:107},"11":{loc:{start:{line:113,column:8},end:{line:120,column:9}},type:"if",locations:[{start:{line:113,column:8},end:{line:120,column:9}},{start:{line:113,column:8},end:{line:120,column:9}}],line:113},"12":{loc:{start:{line:128,column:15},end:{line:128,column:39}},type:"default-arg",locations:[{start:{line:128,column:34},end:{line:128,column:39}}],line:128},"13":{loc:{start:{line:128,column:41},end:{line:128,column:70}},type:"default-arg",locations:[{start:{line:128,column:62},end:{line:128,column:70}}],line:128},"14":{loc:{start:{line:129,column:31},end:{line:131,column:47}},type:"cond-expr",locations:[{start:{line:130,column:14},end:{line:130,column:45}},{start:{line:131,column:14},end:{line:131,column:47}}],line:129},"15":{loc:{start:{line:139,column:8},end:{line:156,column:9}},type:"switch",locations:[{start:{line:140,column:12},end:{line:144,column:22}},{start:{line:145,column:12},end:{line:147,column:22}},{start:{line:148,column:12},end:{line:152,column:22}},{start:{line:153,column:12},end:{line:155,column:22}}],line:139},"16":{loc:{start:{line:157,column:8},end:{line:190,column:9}},type:"switch",locations:[{start:{line:158,column:12},end:{line:160,column:22}},{start:{line:161,column:12},end:{line:166,column:22}},{start:{line:167,column:12},end:{line:169,column:22}},{start:{line:170,column:12},end:{line:175,column:22}},{start:{line:176,column:12},end:{line:189,column:22}}],line:157},"17":{loc:{start:{line:177,column:16},end:{line:188,column:17}},type:"if",locations:[{start:{line:177,column:16},end:{line:188,column:17}},{start:{line:177,column:16},end:{line:188,column:17}}],line:177},"18":{loc:{start:{line:177,column:20},end:{line:177,column:79}},type:"binary-expr",locations:[{start:{line:177,column:20},end:{line:177,column:46}},{start:{line:177,column:50},end:{line:177,column:79}}],line:177},"19":{loc:{start:{line:197,column:29},end:{line:197,column:68}},type:"binary-expr",locations:[{start:{line:197,column:29},end:{line:197,column:47}},{start:{line:197,column:51},end:{line:197,column:68}}],line:197},"20":{loc:{start:{line:198,column:28},end:{line:198,column:65}},type:"binary-expr",locations:[{start:{line:198,column:28},end:{line:198,column:45}},{start:{line:198,column:49},end:{line:198,column:65}}],line:198},"21":{loc:{start:{line:199,column:16},end:{line:202,column:46}},type:"binary-expr",locations:[{start:{line:199,column:16},end:{line:199,column:37}},{start:{line:200,column:12},end:{line:200,column:32}},{start:{line:201,column:12},end:{line:201,column:44}},{start:{line:202,column:12},end:{line:202,column:46}}],line:199},"22":{loc:{start:{line:224,column:26},end:{line:226,column:45}},type:"cond-expr",locations:[{start:{line:225,column:10},end:{line:225,column:19}},{start:{line:226,column:10},end:{line:226,column:45}}],line:224},"23":{loc:{start:{line:245,column:8},end:{line:253,column:9}},type:"if",locations:[{start:{line:245,column:8},end:{line:253,column:9}},{start:{line:245,column:8},end:{line:253,column:9}}],line:245},"24":{loc:{start:{line:247,column:12},end:{line:249,column:13}},type:"if",locations:[{start:{line:247,column:12},end:{line:249,column:13}},{start:{line:247,column:12},end:{line:249,column:13}}],line:247},"25":{loc:{start:{line:257,column:4},end:{line:261,column:5}},type:"if",locations:[{start:{line:257,column:4},end:{line:261,column:5}},{start:{line:257,column:4},end:{line:261,column:5}}],line:257},"26":{loc:{start:{line:264,column:4},end:{line:270,column:5}},type:"if",locations:[{start:{line:264,column:4},end:{line:270,column:5}},{start:{line:264,column:4},end:{line:270,column:5}}],line:264},"27":{loc:{start:{line:266,column:12},end:{line:268,column:13}},type:"if",locations:[{start:{line:266,column:12},end:{line:268,column:13}},{start:{line:266,column:12},end:{line:268,column:13}}],line:266},"28":{loc:{start:{line:282,column:8},end:{line:285,column:9}},type:"if",locations:[{start:{line:282,column:8},end:{line:285,column:9}},{start:{line:282,column:8},end:{line:285,column:9}}],line:282},"29":{loc:{start:{line:287,column:8},end:{line:291,column:9}},type:"if",locations:[{start:{line:287,column:8},end:{line:291,column:9}},{start:{line:287,column:8},end:{line:291,column:9}}],line:287},"30":{loc:{start:{line:293,column:4},end:{line:298,column:5}},type:"if",locations:[{start:{line:293,column:4},end:{line:298,column:5}},{start:{line:293,column:4},end:{line:298,column:5}}],line:293}},s:{"0":0,"1":0,"2":0,"3":0,"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0,"13":0,"14":0,"15":0,"16":0,"17":0,"18":0,"19":0,"20":0,"21":0,"22":0,"23":0,"24":0,"25":0,"26":0,"27":0,"28":0,"29":0,"30":0,"31":0,"32":0,"33":0,"34":0,"35":0,"36":0,"37":0,"38":0,"39":0,"40":0,"41":0,"42":0,"43":0,"44":0,"45":0,"46":0,"47":0,"48":0,"49":0,"50":0,"51":0,"52":0,"53":0,"54":0,"55":0,"56":0,"57":0,"58":0,"59":0,"60":0,"61":0,"62":0,"63":0,"64":0,"65":0,"66":0,"67":0,"68":0,"69":0,"70":0,"71":0,"72":0,"73":0,"74":0,"75":0,"76":0,"77":0,"78":0,"79":0,"80":0,"81":0,"82":0,"83":0,"84":0,"85":0,"86":0,"87":0,"88":0,"89":0,"90":0,"91":0,"92":0,"93":0,"94":0,"95":0,"96":0,"97":0,"98":0,"99":0,"100":0,"101":0,"102":0,"103":0,"104":0,"105":0,"106":0,"107":0,"108":0,"109":0,"110":0,"111":0,"112":0,"113":0,"114":0,"115":0,"116":0,"117":0,"118":0,"119":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},b:{"0":[0,0],"1":[0,0],"2":[0,0,0],"3":[0,0],"4":[0],"5":[0,0],"6":[0,0],"7":[0,0],"8":[0],"9":[0,0],"10":[0,0],"11":[0,0],"12":[0],"13":[0],"14":[0,0],"15":[0,0,0,0],"16":[0,0,0,0,0],"17":[0,0],"18":[0,0],"19":[0,0],"20":[0,0],"21":[0,0,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]},inputSourceMap:{version:3,file:"positioning.js",sourceRoot:"",sources:["../../../../projects/sac-common/src/utilities/positioning.ts"],names:[],mappings:"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",sourcesContent:["interface ClientRect {\r\n top: number;\r\n bottom: number;\r\n left: number;\r\n right: number;\r\n height: number;\r\n width: number;\r\n}\r\n\r\n/**\r\n * Position Utility Klasse\r\n * @see https://github.com/ng-bootstrap/ng-bootstrap/blob/master/src/util/positioning.ts\r\n */\r\nexport class Positioning {\r\n /**\r\n * Get all Styles of Element\r\n * @param element HTML Element\r\n * @returns All Styles of element\r\n */\r\n private getAllStyles(element: HTMLElement) {\r\n return window.getComputedStyle(element);\r\n }\r\n\r\n /**\r\n * Get Style value of element\r\n * @param element HTML Element\r\n * @param prop Style\r\n * @returns Value of Style\r\n */\r\n private getStyle(element: HTMLElement, prop: string): string {\r\n return this.getAllStyles(element)[prop];\r\n }\r\n\r\n /**\r\n * Check if the element has an static position\r\n * @param element HTML Element\r\n * @returns Item has a static position\r\n */\r\n private isStaticPositioned(element: HTMLElement): boolean {\r\n return (this.getStyle(element, 'position') || 'static') === 'static';\r\n }\r\n\r\n /**\r\n * Get the Offset of the parent element\r\n * @param element HTML Element\r\n * @returns HTML ELement\r\n */\r\n private offsetParent(element: HTMLElement): HTMLElement {\r\n let offsetParentEl =\r\n <HTMLElement>element.offsetParent || document.documentElement;\r\n\r\n while (\r\n offsetParentEl &&\r\n offsetParentEl !== document.documentElement &&\r\n this.isStaticPositioned(offsetParentEl)\r\n ) {\r\n offsetParentEl = <HTMLElement>offsetParentEl.offsetParent;\r\n }\r\n\r\n return offsetParentEl || document.documentElement;\r\n }\r\n\r\n /**\r\n * Get Element Position\r\n * @param element HTML Element for Position\r\n * @param round Round Values\r\n * @returns Position Values\r\n */\r\n position(element: HTMLElement, round = true): ClientRect {\r\n let elPosition: ClientRect;\r\n let parentOffset: ClientRect = {\r\n width: 0,\r\n height: 0,\r\n top: 0,\r\n bottom: 0,\r\n left: 0,\r\n right: 0,\r\n };\r\n\r\n if (this.getStyle(element, 'position') === 'fixed') {\r\n elPosition = element.getBoundingClientRect();\r\n elPosition = {\r\n top: elPosition.top,\r\n bottom: elPosition.bottom,\r\n left: elPosition.left,\r\n right: elPosition.right,\r\n height: elPosition.height,\r\n width: elPosition.width,\r\n };\r\n } else {\r\n const offsetParentEl = this.offsetParent(element);\r\n\r\n elPosition = this.offset(element, false);\r\n\r\n if (offsetParentEl !== document.documentElement) {\r\n parentOffset = this.offset(offsetParentEl, false);\r\n }\r\n\r\n parentOffset.top += offsetParentEl.clientTop;\r\n parentOffset.left += offsetParentEl.clientLeft;\r\n }\r\n\r\n elPosition.top -= parentOffset.top;\r\n elPosition.bottom -= parentOffset.top;\r\n elPosition.left -= parentOffset.left;\r\n elPosition.right -= parentOffset.left;\r\n\r\n if (round) {\r\n elPosition.top = Math.round(elPosition.top);\r\n elPosition.bottom = Math.round(elPosition.bottom);\r\n elPosition.left = Math.round(elPosition.left);\r\n elPosition.right = Math.round(elPosition.right);\r\n }\r\n\r\n return elPosition;\r\n }\r\n\r\n /**\r\n * Get Offset of Item\r\n * @param element HTML Element for Offset\r\n * @param round Round the Values\r\n * @returns Return Offset Position\r\n */\r\n offset(element: HTMLElement, round = true): ClientRect {\r\n const elBcr = element.getBoundingClientRect();\r\n const viewportOffset = {\r\n top: window.pageYOffset - document.documentElement.clientTop,\r\n left: window.pageXOffset - document.documentElement.clientLeft,\r\n };\r\n\r\n const elOffset = {\r\n height: elBcr.height || element.offsetHeight,\r\n width: elBcr.width || element.offsetWidth,\r\n top: elBcr.top + viewportOffset.top,\r\n bottom: elBcr.bottom + viewportOffset.top,\r\n left: elBcr.left + viewportOffset.left,\r\n right: elBcr.right + viewportOffset.left,\r\n };\r\n\r\n if (round) {\r\n elOffset.height = Math.round(elOffset.height);\r\n elOffset.width = Math.round(elOffset.width);\r\n elOffset.top = Math.round(elOffset.top);\r\n elOffset.bottom = Math.round(elOffset.bottom);\r\n elOffset.left = Math.round(elOffset.left);\r\n elOffset.right = Math.round(elOffset.right);\r\n }\r\n\r\n return elOffset;\r\n }\r\n\r\n /**\r\n * Return false if the element to position is outside the viewport\r\n * @returns position is inside viewport\r\n */\r\n positionElements(\r\n hostElement: HTMLElement,\r\n targetElement: HTMLElement,\r\n placement: string,\r\n appendToBody?: boolean\r\n ): boolean {\r\n const [placementPrimary = 'top', placementSecondary = 'center'] =\r\n placement.split('-');\r\n\r\n const hostElPosition = appendToBody\r\n ? this.offset(hostElement, false)\r\n : this.position(hostElement, false);\r\n const targetElStyles = this.getAllStyles(targetElement);\r\n\r\n const marginTop = parseFloat(targetElStyles.marginTop);\r\n const marginBottom = parseFloat(targetElStyles.marginBottom);\r\n const marginLeft = parseFloat(targetElStyles.marginLeft);\r\n const marginRight = parseFloat(targetElStyles.marginRight);\r\n\r\n let topPosition = 0;\r\n let leftPosition = 0;\r\n\r\n switch (placementPrimary) {\r\n case 'top':\r\n topPosition =\r\n hostElPosition.top -\r\n (targetElement.offsetHeight + marginTop + marginBottom);\r\n break;\r\n case 'bottom':\r\n topPosition = hostElPosition.top + hostElPosition.height;\r\n break;\r\n case 'left':\r\n leftPosition =\r\n hostElPosition.left -\r\n (targetElement.offsetWidth + marginLeft + marginRight);\r\n break;\r\n case 'right':\r\n leftPosition = hostElPosition.left + hostElPosition.width;\r\n break;\r\n }\r\n\r\n switch (placementSecondary) {\r\n case 'top':\r\n topPosition = hostElPosition.top;\r\n break;\r\n case 'bottom':\r\n topPosition =\r\n hostElPosition.top +\r\n hostElPosition.height -\r\n targetElement.offsetHeight;\r\n break;\r\n case 'left':\r\n leftPosition = hostElPosition.left;\r\n break;\r\n case 'right':\r\n leftPosition =\r\n hostElPosition.left +\r\n hostElPosition.width -\r\n targetElement.offsetWidth;\r\n break;\r\n case 'center':\r\n if (placementPrimary === 'top' || placementPrimary === 'bottom') {\r\n leftPosition =\r\n hostElPosition.left +\r\n hostElPosition.width / 2 -\r\n targetElement.offsetWidth / 2;\r\n } else {\r\n topPosition =\r\n hostElPosition.top +\r\n hostElPosition.height / 2 -\r\n targetElement.offsetHeight / 2;\r\n }\r\n break;\r\n }\r\n\r\n /// The translate3d/gpu acceleration render a blurry text on chrome, the next line is commented until a browser fix\r\n // targetElement.style.transform = `translate3d(${Math.round(leftPosition)}px, ${Math.floor(topPosition)}px, 0px)`;\r\n targetElement.style.transform = `translate(${Math.round(\r\n leftPosition\r\n )}px, ${Math.round(topPosition)}px)`;\r\n\r\n // Check if the targetElement is inside the viewport\r\n const targetElBCR = targetElement.getBoundingClientRect();\r\n const html = document.documentElement;\r\n const windowHeight = window.innerHeight || html.clientHeight;\r\n const windowWidth = window.innerWidth || html.clientWidth;\r\n\r\n return (\r\n targetElBCR.left >= 0 &&\r\n targetElBCR.top >= 0 &&\r\n targetElBCR.right <= windowWidth &&\r\n targetElBCR.bottom <= windowHeight\r\n );\r\n }\r\n}\r\n\r\n/**\r\n * Placement Separator Regex\r\n */\r\nconst placementSeparator = /\\s+/;\r\n/**\r\n * Global Position Service\r\n */\r\nexport const positionService = new Positioning();\r\n\r\n/**\r\n * Accept the placement array and applies the appropriate placement dependent on the viewport.\r\n * Returns the applied placement.\r\n * In case of auto placement, placements are selected in order\r\n * 'top', 'bottom', 'left', 'right',\r\n * 'top-left', 'top-right',\r\n * 'bottom-left', 'bottom-right',\r\n * 'left-top', 'left-bottom',\r\n * 'right-top', 'right-bottom'.\r\n */\r\nexport function positionElements(\r\n hostElement: HTMLElement,\r\n targetElement: HTMLElement,\r\n placement: string | Placement | PlacementArray,\r\n appendToBody?: boolean,\r\n baseClass?: string\r\n): Placement | null {\r\n const placementVals: Array<Placement> = Array.isArray(placement)\r\n ? placement\r\n : (placement.split(placementSeparator) as Array<Placement>);\r\n\r\n const allowedPlacements = [\r\n 'top',\r\n 'bottom',\r\n 'left',\r\n 'right',\r\n 'top-left',\r\n 'top-right',\r\n 'bottom-left',\r\n 'bottom-right',\r\n 'left-top',\r\n 'left-bottom',\r\n 'right-top',\r\n 'right-bottom',\r\n ];\r\n\r\n const classList = targetElement.classList;\r\n const addClassesToTarget = (targetPlacement: Placement): Array<string> => {\r\n const [primary, secondary] = targetPlacement.split('-');\r\n const classes: string[] = [];\r\n if (baseClass) {\r\n classes.push(`${baseClass}-${primary}`);\r\n if (secondary) {\r\n classes.push(`${baseClass}-${primary}-${secondary}`);\r\n }\r\n\r\n classes.forEach((classname) => {\r\n classList.add(classname);\r\n });\r\n }\r\n return classes;\r\n };\r\n\r\n // Remove old placement classes to avoid issues\r\n if (baseClass) {\r\n allowedPlacements.forEach((placementToRemove) => {\r\n classList.remove(`${baseClass}-${placementToRemove}`);\r\n });\r\n }\r\n\r\n // replace auto placement with other placements\r\n let hasAuto = placementVals.findIndex((val) => val === 'auto');\r\n if (hasAuto >= 0) {\r\n allowedPlacements.forEach(function (obj) {\r\n if (placementVals.find((val) => val.search('^' + obj) !== -1) == null) {\r\n placementVals.splice(hasAuto++, 1, obj as Placement);\r\n }\r\n });\r\n }\r\n\r\n // coordinates where to position\r\n\r\n // Required for transform:\r\n const style = targetElement.style;\r\n style.position = 'absolute';\r\n style.top = '0';\r\n style.left = '0';\r\n style['will-change'] = 'transform';\r\n\r\n let testPlacement: Placement | null = null;\r\n let isInViewport = false;\r\n for (testPlacement of placementVals) {\r\n const addedClasses = addClassesToTarget(testPlacement);\r\n\r\n if (\r\n positionService.positionElements(\r\n hostElement,\r\n targetElement,\r\n testPlacement,\r\n appendToBody\r\n )\r\n ) {\r\n isInViewport = true;\r\n break;\r\n }\r\n\r\n // Remove the baseClasses for further calculation\r\n if (baseClass) {\r\n addedClasses.forEach((classname) => {\r\n classList.remove(classname);\r\n });\r\n }\r\n }\r\n\r\n if (!isInViewport) {\r\n // If nothing match, the first placement is the default one\r\n testPlacement = placementVals[0];\r\n addClassesToTarget(testPlacement);\r\n positionService.positionElements(\r\n hostElement,\r\n targetElement,\r\n testPlacement,\r\n appendToBody\r\n );\r\n }\r\n\r\n return testPlacement;\r\n}\r\n\r\n/**\r\n * Placement Typen\r\n */\r\nexport type Placement =\r\n | 'auto'\r\n | 'top'\r\n | 'bottom'\r\n | 'left'\r\n | 'right'\r\n | 'top-left'\r\n | 'top-right'\r\n | 'bottom-left'\r\n | 'bottom-right'\r\n | 'left-top'\r\n | 'left-bottom'\r\n | 'right-top'\r\n | 'right-bottom';\r\n\r\n/**\r\n * Placement Array\r\n */\r\nexport type PlacementArray = Placement | Array<Placement> | string;\r\n"]},_coverageSchema:"1a1c01bbd47fc00a2c39e90264f33305004495a9",hash:"dfa8ea7cf619b4ac1f83e0a158664836484ea7f6"};var coverage=global[gcv]||(global[gcv]={});if(!coverage[path]||coverage[path].hash!==hash){coverage[path]=coverageData;}var actualCoverage=coverage[path];{// @ts-ignore
|
|
2
|
-
|
|
3
|
-
* Position Utility Klasse
|
|
4
|
-
* @see https://github.com/ng-bootstrap/ng-bootstrap/blob/master/src/util/positioning.ts
|
|
5
|
-
*/export class Positioning{/**
|
|
6
|
-
* Get all Styles of Element
|
|
7
|
-
* @param element HTML Element
|
|
8
|
-
* @returns All Styles of element
|
|
9
|
-
*/getAllStyles(element){
|
|
10
|
-
* Get Style value of element
|
|
11
|
-
* @param element HTML Element
|
|
12
|
-
* @param prop Style
|
|
13
|
-
* @returns Value of Style
|
|
14
|
-
*/getStyle(element,prop){
|
|
15
|
-
* Check if the element has an static position
|
|
16
|
-
* @param element HTML Element
|
|
17
|
-
* @returns Item has a static position
|
|
18
|
-
*/isStaticPositioned(element){
|
|
19
|
-
* Get the Offset of the parent element
|
|
20
|
-
* @param element HTML Element
|
|
21
|
-
* @returns HTML ELement
|
|
22
|
-
*/offsetParent(element){
|
|
23
|
-
* Get Element Position
|
|
24
|
-
* @param element HTML Element for Position
|
|
25
|
-
* @param round Round Values
|
|
26
|
-
* @returns Position Values
|
|
27
|
-
*/position(element,round=(
|
|
28
|
-
* Get Offset of Item
|
|
29
|
-
* @param element HTML Element for Offset
|
|
30
|
-
* @param round Round the Values
|
|
31
|
-
* @returns Return Offset Position
|
|
32
|
-
*/offset(element,round=(
|
|
33
|
-
* Return false if the element to position is outside the viewport
|
|
34
|
-
* @returns position is inside viewport
|
|
35
|
-
*/positionElements(hostElement,targetElement,placement,appendToBody){
|
|
1
|
+
function cov_1pmkm5ec0z(){var path="/home/runner/work/simpleangularcontrols/simpleangularcontrols/ch.jnetwork.sac-controls/dist/sac-common/esm2020/utilities/positioning.mjs";var hash="2388c98b2a6f5ba1b840e5cf3da5d38a59877911";var global=new Function("return this")();var gcv="__coverage__";var coverageData={path:"/home/runner/work/simpleangularcontrols/simpleangularcontrols/ch.jnetwork.sac-controls/dist/sac-common/esm2020/utilities/positioning.mjs",statementMap:{"0":{start:{line:12,column:8},end:{line:12,column:48}},"1":{start:{line:21,column:8},end:{line:21,column:48}},"2":{start:{line:29,column:8},end:{line:29,column:77}},"3":{start:{line:37,column:29},end:{line:37,column:77}},"4":{start:{line:38,column:8},end:{line:42,column:9}},"5":{start:{line:41,column:12},end:{line:41,column:57}},"6":{start:{line:43,column:8},end:{line:43,column:58}},"7":{start:{line:53,column:27},end:{line:60,column:9}},"8":{start:{line:61,column:8},end:{line:80,column:9}},"9":{start:{line:62,column:12},end:{line:62,column:57}},"10":{start:{line:63,column:12},end:{line:70,column:14}},"11":{start:{line:73,column:35},end:{line:73,column:61}},"12":{start:{line:74,column:12},end:{line:74,column:53}},"13":{start:{line:75,column:12},end:{line:77,column:13}},"14":{start:{line:76,column:16},end:{line:76,column:66}},"15":{start:{line:78,column:12},end:{line:78,column:57}},"16":{start:{line:79,column:12},end:{line:79,column:59}},"17":{start:{line:81,column:8},end:{line:81,column:43}},"18":{start:{line:82,column:8},end:{line:82,column:46}},"19":{start:{line:83,column:8},end:{line:83,column:45}},"20":{start:{line:84,column:8},end:{line:84,column:46}},"21":{start:{line:85,column:8},end:{line:90,column:9}},"22":{start:{line:86,column:12},end:{line:86,column:56}},"23":{start:{line:87,column:12},end:{line:87,column:62}},"24":{start:{line:88,column:12},end:{line:88,column:58}},"25":{start:{line:89,column:12},end:{line:89,column:60}},"26":{start:{line:91,column:8},end:{line:91,column:26}},"27":{start:{line:100,column:22},end:{line:100,column:53}},"28":{start:{line:101,column:31},end:{line:104,column:9}},"29":{start:{line:105,column:25},end:{line:112,column:9}},"30":{start:{line:113,column:8},end:{line:120,column:9}},"31":{start:{line:114,column:12},end:{line:114,column:58}},"32":{start:{line:115,column:12},end:{line:115,column:56}},"33":{start:{line:116,column:12},end:{line:116,column:52}},"34":{start:{line:117,column:12},end:{line:117,column:58}},"35":{start:{line:118,column:12},end:{line:118,column:54}},"36":{start:{line:119,column:12},end:{line:119,column:56}},"37":{start:{line:121,column:8},end:{line:121,column:24}},"38":{start:{line:128,column:74},end:{line:128,column:94}},"39":{start:{line:129,column:31},end:{line:131,column:47}},"40":{start:{line:132,column:31},end:{line:132,column:63}},"41":{start:{line:133,column:26},end:{line:133,column:62}},"42":{start:{line:134,column:29},end:{line:134,column:68}},"43":{start:{line:135,column:27},end:{line:135,column:64}},"44":{start:{line:136,column:28},end:{line:136,column:66}},"45":{start:{line:137,column:26},end:{line:137,column:27}},"46":{start:{line:138,column:27},end:{line:138,column:28}},"47":{start:{line:139,column:8},end:{line:156,column:9}},"48":{start:{line:141,column:16},end:{line:143,column:80}},"49":{start:{line:144,column:16},end:{line:144,column:22}},"50":{start:{line:146,column:16},end:{line:146,column:73}},"51":{start:{line:147,column:16},end:{line:147,column:22}},"52":{start:{line:149,column:16},end:{line:151,column:79}},"53":{start:{line:152,column:16},end:{line:152,column:22}},"54":{start:{line:154,column:16},end:{line:154,column:74}},"55":{start:{line:155,column:16},end:{line:155,column:22}},"56":{start:{line:157,column:8},end:{line:190,column:9}},"57":{start:{line:159,column:16},end:{line:159,column:49}},"58":{start:{line:160,column:16},end:{line:160,column:22}},"59":{start:{line:162,column:16},end:{line:165,column:51}},"60":{start:{line:166,column:16},end:{line:166,column:22}},"61":{start:{line:168,column:16},end:{line:168,column:51}},"62":{start:{line:169,column:16},end:{line:169,column:22}},"63":{start:{line:171,column:16},end:{line:174,column:50}},"64":{start:{line:175,column:16},end:{line:175,column:22}},"65":{start:{line:177,column:16},end:{line:188,column:17}},"66":{start:{line:178,column:20},end:{line:181,column:58}},"67":{start:{line:184,column:20},end:{line:187,column:59}},"68":{start:{line:189,column:16},end:{line:189,column:22}},"69":{start:{line:193,column:8},end:{line:193,column:113}},"70":{start:{line:195,column:28},end:{line:195,column:65}},"71":{start:{line:196,column:21},end:{line:196,column:45}},"72":{start:{line:197,column:29},end:{line:197,column:68}},"73":{start:{line:198,column:28},end:{line:198,column:65}},"74":{start:{line:199,column:8},end:{line:202,column:48}},"75":{start:{line:208,column:27},end:{line:208,column:32}},"76":{start:{line:212,column:31},end:{line:212,column:48}},"77":{start:{line:224,column:26},end:{line:226,column:45}},"78":{start:{line:227,column:30},end:{line:240,column:5}},"79":{start:{line:241,column:22},end:{line:241,column:45}},"80":{start:{line:242,column:31},end:{line:255,column:5}},"81":{start:{line:243,column:37},end:{line:243,column:63}},"82":{start:{line:244,column:24},end:{line:244,column:26}},"83":{start:{line:245,column:8},end:{line:253,column:9}},"84":{start:{line:246,column:12},end:{line:246,column:52}},"85":{start:{line:247,column:12},end:{line:249,column:13}},"86":{start:{line:248,column:16},end:{line:248,column:69}},"87":{start:{line:250,column:12},end:{line:252,column:15}},"88":{start:{line:251,column:16},end:{line:251,column:41}},"89":{start:{line:254,column:8},end:{line:254,column:23}},"90":{start:{line:257,column:4},end:{line:261,column:5}},"91":{start:{line:258,column:8},end:{line:260,column:11}},"92":{start:{line:259,column:12},end:{line:259,column:66}},"93":{start:{line:263,column:18},end:{line:263,column:66}},"94":{start:{line:263,column:51},end:{line:263,column:65}},"95":{start:{line:264,column:4},end:{line:270,column:5}},"96":{start:{line:265,column:8},end:{line:269,column:11}},"97":{start:{line:266,column:12},end:{line:268,column:13}},"98":{start:{line:266,column:44},end:{line:266,column:72}},"99":{start:{line:267,column:16},end:{line:267,column:56}},"100":{start:{line:273,column:18},end:{line:273,column:37}},"101":{start:{line:274,column:4},end:{line:274,column:32}},"102":{start:{line:275,column:4},end:{line:275,column:20}},"103":{start:{line:276,column:4},end:{line:276,column:21}},"104":{start:{line:277,column:4},end:{line:277,column:39}},"105":{start:{line:278,column:24},end:{line:278,column:28}},"106":{start:{line:279,column:23},end:{line:279,column:28}},"107":{start:{line:280,column:4},end:{line:292,column:5}},"108":{start:{line:281,column:29},end:{line:281,column:62}},"109":{start:{line:282,column:8},end:{line:285,column:9}},"110":{start:{line:283,column:12},end:{line:283,column:32}},"111":{start:{line:284,column:12},end:{line:284,column:18}},"112":{start:{line:287,column:8},end:{line:291,column:9}},"113":{start:{line:288,column:12},end:{line:290,column:15}},"114":{start:{line:289,column:16},end:{line:289,column:44}},"115":{start:{line:293,column:4},end:{line:298,column:5}},"116":{start:{line:295,column:8},end:{line:295,column:41}},"117":{start:{line:296,column:8},end:{line:296,column:42}},"118":{start:{line:297,column:8},end:{line:297,column:98}},"119":{start:{line:299,column:4},end:{line:299,column:25}}},fnMap:{"0":{name:"(anonymous_0)",decl:{start:{line:11,column:4},end:{line:11,column:5}},loc:{start:{line:11,column:26},end:{line:13,column:5}},line:11},"1":{name:"(anonymous_1)",decl:{start:{line:20,column:4},end:{line:20,column:5}},loc:{start:{line:20,column:28},end:{line:22,column:5}},line:20},"2":{name:"(anonymous_2)",decl:{start:{line:28,column:4},end:{line:28,column:5}},loc:{start:{line:28,column:32},end:{line:30,column:5}},line:28},"3":{name:"(anonymous_3)",decl:{start:{line:36,column:4},end:{line:36,column:5}},loc:{start:{line:36,column:26},end:{line:44,column:5}},line:36},"4":{name:"(anonymous_4)",decl:{start:{line:51,column:4},end:{line:51,column:5}},loc:{start:{line:51,column:36},end:{line:92,column:5}},line:51},"5":{name:"(anonymous_5)",decl:{start:{line:99,column:4},end:{line:99,column:5}},loc:{start:{line:99,column:34},end:{line:122,column:5}},line:99},"6":{name:"(anonymous_6)",decl:{start:{line:127,column:4},end:{line:127,column:5}},loc:{start:{line:127,column:74},end:{line:203,column:5}},line:127},"7":{name:"positionElements",decl:{start:{line:223,column:16},end:{line:223,column:32}},loc:{start:{line:223,column:97},end:{line:300,column:1}},line:223},"8":{name:"(anonymous_8)",decl:{start:{line:242,column:31},end:{line:242,column:32}},loc:{start:{line:242,column:52},end:{line:255,column:5}},line:242},"9":{name:"(anonymous_9)",decl:{start:{line:250,column:28},end:{line:250,column:29}},loc:{start:{line:250,column:43},end:{line:252,column:13}},line:250},"10":{name:"(anonymous_10)",decl:{start:{line:258,column:34},end:{line:258,column:35}},loc:{start:{line:258,column:57},end:{line:260,column:9}},line:258},"11":{name:"(anonymous_11)",decl:{start:{line:263,column:42},end:{line:263,column:43}},loc:{start:{line:263,column:51},end:{line:263,column:65}},line:263},"12":{name:"(anonymous_12)",decl:{start:{line:265,column:34},end:{line:265,column:35}},loc:{start:{line:265,column:49},end:{line:269,column:9}},line:265},"13":{name:"(anonymous_13)",decl:{start:{line:266,column:35},end:{line:266,column:36}},loc:{start:{line:266,column:44},end:{line:266,column:72}},line:266},"14":{name:"(anonymous_14)",decl:{start:{line:288,column:33},end:{line:288,column:34}},loc:{start:{line:288,column:48},end:{line:290,column:13}},line:288}},branchMap:{"0":{loc:{start:{line:29,column:16},end:{line:29,column:62}},type:"binary-expr",locations:[{start:{line:29,column:16},end:{line:29,column:50}},{start:{line:29,column:54},end:{line:29,column:62}}],line:29},"1":{loc:{start:{line:37,column:29},end:{line:37,column:77}},type:"binary-expr",locations:[{start:{line:37,column:29},end:{line:37,column:49}},{start:{line:37,column:53},end:{line:37,column:77}}],line:37},"2":{loc:{start:{line:38,column:15},end:{line:40,column:51}},type:"binary-expr",locations:[{start:{line:38,column:15},end:{line:38,column:29}},{start:{line:39,column:12},end:{line:39,column:55}},{start:{line:40,column:12},end:{line:40,column:51}}],line:38},"3":{loc:{start:{line:43,column:15},end:{line:43,column:57}},type:"binary-expr",locations:[{start:{line:43,column:15},end:{line:43,column:29}},{start:{line:43,column:33},end:{line:43,column:57}}],line:43},"4":{loc:{start:{line:51,column:22},end:{line:51,column:34}},type:"default-arg",locations:[{start:{line:51,column:30},end:{line:51,column:34}}],line:51},"5":{loc:{start:{line:61,column:8},end:{line:80,column:9}},type:"if",locations:[{start:{line:61,column:8},end:{line:80,column:9}},{start:{line:61,column:8},end:{line:80,column:9}}],line:61},"6":{loc:{start:{line:75,column:12},end:{line:77,column:13}},type:"if",locations:[{start:{line:75,column:12},end:{line:77,column:13}},{start:{line:75,column:12},end:{line:77,column:13}}],line:75},"7":{loc:{start:{line:85,column:8},end:{line:90,column:9}},type:"if",locations:[{start:{line:85,column:8},end:{line:90,column:9}},{start:{line:85,column:8},end:{line:90,column:9}}],line:85},"8":{loc:{start:{line:99,column:20},end:{line:99,column:32}},type:"default-arg",locations:[{start:{line:99,column:28},end:{line:99,column:32}}],line:99},"9":{loc:{start:{line:106,column:20},end:{line:106,column:56}},type:"binary-expr",locations:[{start:{line:106,column:20},end:{line:106,column:32}},{start:{line:106,column:36},end:{line:106,column:56}}],line:106},"10":{loc:{start:{line:107,column:19},end:{line:107,column:53}},type:"binary-expr",locations:[{start:{line:107,column:19},end:{line:107,column:30}},{start:{line:107,column:34},end:{line:107,column:53}}],line:107},"11":{loc:{start:{line:113,column:8},end:{line:120,column:9}},type:"if",locations:[{start:{line:113,column:8},end:{line:120,column:9}},{start:{line:113,column:8},end:{line:120,column:9}}],line:113},"12":{loc:{start:{line:128,column:15},end:{line:128,column:39}},type:"default-arg",locations:[{start:{line:128,column:34},end:{line:128,column:39}}],line:128},"13":{loc:{start:{line:128,column:41},end:{line:128,column:70}},type:"default-arg",locations:[{start:{line:128,column:62},end:{line:128,column:70}}],line:128},"14":{loc:{start:{line:129,column:31},end:{line:131,column:47}},type:"cond-expr",locations:[{start:{line:130,column:14},end:{line:130,column:45}},{start:{line:131,column:14},end:{line:131,column:47}}],line:129},"15":{loc:{start:{line:139,column:8},end:{line:156,column:9}},type:"switch",locations:[{start:{line:140,column:12},end:{line:144,column:22}},{start:{line:145,column:12},end:{line:147,column:22}},{start:{line:148,column:12},end:{line:152,column:22}},{start:{line:153,column:12},end:{line:155,column:22}}],line:139},"16":{loc:{start:{line:157,column:8},end:{line:190,column:9}},type:"switch",locations:[{start:{line:158,column:12},end:{line:160,column:22}},{start:{line:161,column:12},end:{line:166,column:22}},{start:{line:167,column:12},end:{line:169,column:22}},{start:{line:170,column:12},end:{line:175,column:22}},{start:{line:176,column:12},end:{line:189,column:22}}],line:157},"17":{loc:{start:{line:177,column:16},end:{line:188,column:17}},type:"if",locations:[{start:{line:177,column:16},end:{line:188,column:17}},{start:{line:177,column:16},end:{line:188,column:17}}],line:177},"18":{loc:{start:{line:177,column:20},end:{line:177,column:79}},type:"binary-expr",locations:[{start:{line:177,column:20},end:{line:177,column:46}},{start:{line:177,column:50},end:{line:177,column:79}}],line:177},"19":{loc:{start:{line:197,column:29},end:{line:197,column:68}},type:"binary-expr",locations:[{start:{line:197,column:29},end:{line:197,column:47}},{start:{line:197,column:51},end:{line:197,column:68}}],line:197},"20":{loc:{start:{line:198,column:28},end:{line:198,column:65}},type:"binary-expr",locations:[{start:{line:198,column:28},end:{line:198,column:45}},{start:{line:198,column:49},end:{line:198,column:65}}],line:198},"21":{loc:{start:{line:199,column:16},end:{line:202,column:46}},type:"binary-expr",locations:[{start:{line:199,column:16},end:{line:199,column:37}},{start:{line:200,column:12},end:{line:200,column:32}},{start:{line:201,column:12},end:{line:201,column:44}},{start:{line:202,column:12},end:{line:202,column:46}}],line:199},"22":{loc:{start:{line:224,column:26},end:{line:226,column:45}},type:"cond-expr",locations:[{start:{line:225,column:10},end:{line:225,column:19}},{start:{line:226,column:10},end:{line:226,column:45}}],line:224},"23":{loc:{start:{line:245,column:8},end:{line:253,column:9}},type:"if",locations:[{start:{line:245,column:8},end:{line:253,column:9}},{start:{line:245,column:8},end:{line:253,column:9}}],line:245},"24":{loc:{start:{line:247,column:12},end:{line:249,column:13}},type:"if",locations:[{start:{line:247,column:12},end:{line:249,column:13}},{start:{line:247,column:12},end:{line:249,column:13}}],line:247},"25":{loc:{start:{line:257,column:4},end:{line:261,column:5}},type:"if",locations:[{start:{line:257,column:4},end:{line:261,column:5}},{start:{line:257,column:4},end:{line:261,column:5}}],line:257},"26":{loc:{start:{line:264,column:4},end:{line:270,column:5}},type:"if",locations:[{start:{line:264,column:4},end:{line:270,column:5}},{start:{line:264,column:4},end:{line:270,column:5}}],line:264},"27":{loc:{start:{line:266,column:12},end:{line:268,column:13}},type:"if",locations:[{start:{line:266,column:12},end:{line:268,column:13}},{start:{line:266,column:12},end:{line:268,column:13}}],line:266},"28":{loc:{start:{line:282,column:8},end:{line:285,column:9}},type:"if",locations:[{start:{line:282,column:8},end:{line:285,column:9}},{start:{line:282,column:8},end:{line:285,column:9}}],line:282},"29":{loc:{start:{line:287,column:8},end:{line:291,column:9}},type:"if",locations:[{start:{line:287,column:8},end:{line:291,column:9}},{start:{line:287,column:8},end:{line:291,column:9}}],line:287},"30":{loc:{start:{line:293,column:4},end:{line:298,column:5}},type:"if",locations:[{start:{line:293,column:4},end:{line:298,column:5}},{start:{line:293,column:4},end:{line:298,column:5}}],line:293}},s:{"0":0,"1":0,"2":0,"3":0,"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0,"13":0,"14":0,"15":0,"16":0,"17":0,"18":0,"19":0,"20":0,"21":0,"22":0,"23":0,"24":0,"25":0,"26":0,"27":0,"28":0,"29":0,"30":0,"31":0,"32":0,"33":0,"34":0,"35":0,"36":0,"37":0,"38":0,"39":0,"40":0,"41":0,"42":0,"43":0,"44":0,"45":0,"46":0,"47":0,"48":0,"49":0,"50":0,"51":0,"52":0,"53":0,"54":0,"55":0,"56":0,"57":0,"58":0,"59":0,"60":0,"61":0,"62":0,"63":0,"64":0,"65":0,"66":0,"67":0,"68":0,"69":0,"70":0,"71":0,"72":0,"73":0,"74":0,"75":0,"76":0,"77":0,"78":0,"79":0,"80":0,"81":0,"82":0,"83":0,"84":0,"85":0,"86":0,"87":0,"88":0,"89":0,"90":0,"91":0,"92":0,"93":0,"94":0,"95":0,"96":0,"97":0,"98":0,"99":0,"100":0,"101":0,"102":0,"103":0,"104":0,"105":0,"106":0,"107":0,"108":0,"109":0,"110":0,"111":0,"112":0,"113":0,"114":0,"115":0,"116":0,"117":0,"118":0,"119":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},b:{"0":[0,0],"1":[0,0],"2":[0,0,0],"3":[0,0],"4":[0],"5":[0,0],"6":[0,0],"7":[0,0],"8":[0],"9":[0,0],"10":[0,0],"11":[0,0],"12":[0],"13":[0],"14":[0,0],"15":[0,0,0,0],"16":[0,0,0,0,0],"17":[0,0],"18":[0,0],"19":[0,0],"20":[0,0],"21":[0,0,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]},inputSourceMap:{version:3,file:"positioning.js",sourceRoot:"",sources:["../../../../projects/sac-common/src/utilities/positioning.ts"],names:[],mappings:"AASA;;;GAGG;AACH,MAAM,OAAO,WAAW;IACtB;;;;OAIG;IACK,YAAY,CAAC,OAAoB;QACvC,OAAO,MAAM,CAAC,gBAAgB,CAAC,OAAO,CAAC,CAAC;IAC1C,CAAC;IAED;;;;;OAKG;IACK,QAAQ,CAAC,OAAoB,EAAE,IAAY;QACjD,OAAO,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC;IAC1C,CAAC;IAED;;;;OAIG;IACK,kBAAkB,CAAC,OAAoB;QAC7C,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE,UAAU,CAAC,IAAI,QAAQ,CAAC,KAAK,QAAQ,CAAC;IACvE,CAAC;IAED;;;;OAIG;IACK,YAAY,CAAC,OAAoB;QACvC,IAAI,cAAc,GACH,OAAO,CAAC,YAAY,IAAI,QAAQ,CAAC,eAAe,CAAC;QAEhE,OACE,cAAc;YACd,cAAc,KAAK,QAAQ,CAAC,eAAe;YAC3C,IAAI,CAAC,kBAAkB,CAAC,cAAc,CAAC,EACvC;YACA,cAAc,GAAgB,cAAc,CAAC,YAAY,CAAC;SAC3D;QAED,OAAO,cAAc,IAAI,QAAQ,CAAC,eAAe,CAAC;IACpD,CAAC;IAED;;;;;OAKG;IACH,QAAQ,CAAC,OAAoB,EAAE,KAAK,GAAG,IAAI;QACzC,IAAI,UAAsB,CAAC;QAC3B,IAAI,YAAY,GAAe;YAC7B,KAAK,EAAE,CAAC;YACR,MAAM,EAAE,CAAC;YACT,GAAG,EAAE,CAAC;YACN,MAAM,EAAE,CAAC;YACT,IAAI,EAAE,CAAC;YACP,KAAK,EAAE,CAAC;SACT,CAAC;QAEF,IAAI,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE,UAAU,CAAC,KAAK,OAAO,EAAE;YAClD,UAAU,GAAG,OAAO,CAAC,qBAAqB,EAAE,CAAC;YAC7C,UAAU,GAAG;gBACX,GAAG,EAAE,UAAU,CAAC,GAAG;gBACnB,MAAM,EAAE,UAAU,CAAC,MAAM;gBACzB,IAAI,EAAE,UAAU,CAAC,IAAI;gBACrB,KAAK,EAAE,UAAU,CAAC,KAAK;gBACvB,MAAM,EAAE,UAAU,CAAC,MAAM;gBACzB,KAAK,EAAE,UAAU,CAAC,KAAK;aACxB,CAAC;SACH;aAAM;YACL,MAAM,cAAc,GAAG,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC;YAElD,UAAU,GAAG,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;YAEzC,IAAI,cAAc,KAAK,QAAQ,CAAC,eAAe,EAAE;gBAC/C,YAAY,GAAG,IAAI,CAAC,MAAM,CAAC,cAAc,EAAE,KAAK,CAAC,CAAC;aACnD;YAED,YAAY,CAAC,GAAG,IAAI,cAAc,CAAC,SAAS,CAAC;YAC7C,YAAY,CAAC,IAAI,IAAI,cAAc,CAAC,UAAU,CAAC;SAChD;QAED,UAAU,CAAC,GAAG,IAAI,YAAY,CAAC,GAAG,CAAC;QACnC,UAAU,CAAC,MAAM,IAAI,YAAY,CAAC,GAAG,CAAC;QACtC,UAAU,CAAC,IAAI,IAAI,YAAY,CAAC,IAAI,CAAC;QACrC,UAAU,CAAC,KAAK,IAAI,YAAY,CAAC,IAAI,CAAC;QAEtC,IAAI,KAAK,EAAE;YACT,UAAU,CAAC,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;YAC5C,UAAU,CAAC,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;YAClD,UAAU,CAAC,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;YAC9C,UAAU,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;SACjD;QAED,OAAO,UAAU,CAAC;IACpB,CAAC;IAED;;;;;OAKG;IACH,MAAM,CAAC,OAAoB,EAAE,KAAK,GAAG,IAAI;QACvC,MAAM,KAAK,GAAG,OAAO,CAAC,qBAAqB,EAAE,CAAC;QAC9C,MAAM,cAAc,GAAG;YACrB,GAAG,EAAE,MAAM,CAAC,WAAW,GAAG,QAAQ,CAAC,eAAe,CAAC,SAAS;YAC5D,IAAI,EAAE,MAAM,CAAC,WAAW,GAAG,QAAQ,CAAC,eAAe,CAAC,UAAU;SAC/D,CAAC;QAEF,MAAM,QAAQ,GAAG;YACf,MAAM,EAAE,KAAK,CAAC,MAAM,IAAI,OAAO,CAAC,YAAY;YAC5C,KAAK,EAAE,KAAK,CAAC,KAAK,IAAI,OAAO,CAAC,WAAW;YACzC,GAAG,EAAE,KAAK,CAAC,GAAG,GAAG,cAAc,CAAC,GAAG;YACnC,MAAM,EAAE,KAAK,CAAC,MAAM,GAAG,cAAc,CAAC,GAAG;YACzC,IAAI,EAAE,KAAK,CAAC,IAAI,GAAG,cAAc,CAAC,IAAI;YACtC,KAAK,EAAE,KAAK,CAAC,KAAK,GAAG,cAAc,CAAC,IAAI;SACzC,CAAC;QAEF,IAAI,KAAK,EAAE;YACT,QAAQ,CAAC,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;YAC9C,QAAQ,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;YAC5C,QAAQ,CAAC,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;YACxC,QAAQ,CAAC,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;YAC9C,QAAQ,CAAC,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;YAC1C,QAAQ,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;SAC7C;QAED,OAAO,QAAQ,CAAC;IAClB,CAAC;IAED;;;OAGG;IACH,gBAAgB,CACd,WAAwB,EACxB,aAA0B,EAC1B,SAAiB,EACjB,YAAsB;QAEtB,MAAM,CAAC,gBAAgB,GAAG,KAAK,EAAE,kBAAkB,GAAG,QAAQ,CAAC,GAC7D,SAAS,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QAEvB,MAAM,cAAc,GAAG,YAAY;YACjC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,WAAW,EAAE,KAAK,CAAC;YACjC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,WAAW,EAAE,KAAK,CAAC,CAAC;QACtC,MAAM,cAAc,GAAG,IAAI,CAAC,YAAY,CAAC,aAAa,CAAC,CAAC;QAExD,MAAM,SAAS,GAAG,UAAU,CAAC,cAAc,CAAC,SAAS,CAAC,CAAC;QACvD,MAAM,YAAY,GAAG,UAAU,CAAC,cAAc,CAAC,YAAY,CAAC,CAAC;QAC7D,MAAM,UAAU,GAAG,UAAU,CAAC,cAAc,CAAC,UAAU,CAAC,CAAC;QACzD,MAAM,WAAW,GAAG,UAAU,CAAC,cAAc,CAAC,WAAW,CAAC,CAAC;QAE3D,IAAI,WAAW,GAAG,CAAC,CAAC;QACpB,IAAI,YAAY,GAAG,CAAC,CAAC;QAErB,QAAQ,gBAAgB,EAAE;YACxB,KAAK,KAAK;gBACR,WAAW;oBACT,cAAc,CAAC,GAAG;wBAClB,CAAC,aAAa,CAAC,YAAY,GAAG,SAAS,GAAG,YAAY,CAAC,CAAC;gBAC1D,MAAM;YACR,KAAK,QAAQ;gBACX,WAAW,GAAG,cAAc,CAAC,GAAG,GAAG,cAAc,CAAC,MAAM,CAAC;gBACzD,MAAM;YACR,KAAK,MAAM;gBACT,YAAY;oBACV,cAAc,CAAC,IAAI;wBACnB,CAAC,aAAa,CAAC,WAAW,GAAG,UAAU,GAAG,WAAW,CAAC,CAAC;gBACzD,MAAM;YACR,KAAK,OAAO;gBACV,YAAY,GAAG,cAAc,CAAC,IAAI,GAAG,cAAc,CAAC,KAAK,CAAC;gBAC1D,MAAM;SACT;QAED,QAAQ,kBAAkB,EAAE;YAC1B,KAAK,KAAK;gBACR,WAAW,GAAG,cAAc,CAAC,GAAG,CAAC;gBACjC,MAAM;YACR,KAAK,QAAQ;gBACX,WAAW;oBACT,cAAc,CAAC,GAAG;wBAClB,cAAc,CAAC,MAAM;wBACrB,aAAa,CAAC,YAAY,CAAC;gBAC7B,MAAM;YACR,KAAK,MAAM;gBACT,YAAY,GAAG,cAAc,CAAC,IAAI,CAAC;gBACnC,MAAM;YACR,KAAK,OAAO;gBACV,YAAY;oBACV,cAAc,CAAC,IAAI;wBACnB,cAAc,CAAC,KAAK;wBACpB,aAAa,CAAC,WAAW,CAAC;gBAC5B,MAAM;YACR,KAAK,QAAQ;gBACX,IAAI,gBAAgB,KAAK,KAAK,IAAI,gBAAgB,KAAK,QAAQ,EAAE;oBAC/D,YAAY;wBACV,cAAc,CAAC,IAAI;4BACnB,cAAc,CAAC,KAAK,GAAG,CAAC;4BACxB,aAAa,CAAC,WAAW,GAAG,CAAC,CAAC;iBACjC;qBAAM;oBACL,WAAW;wBACT,cAAc,CAAC,GAAG;4BAClB,cAAc,CAAC,MAAM,GAAG,CAAC;4BACzB,aAAa,CAAC,YAAY,GAAG,CAAC,CAAC;iBAClC;gBACD,MAAM;SACT;QAED,mHAAmH;QACnH,mHAAmH;QACnH,aAAa,CAAC,KAAK,CAAC,SAAS,GAAG,aAAa,IAAI,CAAC,KAAK,CACrD,YAAY,CACb,OAAO,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,KAAK,CAAC;QAErC,oDAAoD;QACpD,MAAM,WAAW,GAAG,aAAa,CAAC,qBAAqB,EAAE,CAAC;QAC1D,MAAM,IAAI,GAAG,QAAQ,CAAC,eAAe,CAAC;QACtC,MAAM,YAAY,GAAG,MAAM,CAAC,WAAW,IAAI,IAAI,CAAC,YAAY,CAAC;QAC7D,MAAM,WAAW,GAAG,MAAM,CAAC,UAAU,IAAI,IAAI,CAAC,WAAW,CAAC;QAE1D,OAAO,CACL,WAAW,CAAC,IAAI,IAAI,CAAC;YACrB,WAAW,CAAC,GAAG,IAAI,CAAC;YACpB,WAAW,CAAC,KAAK,IAAI,WAAW;YAChC,WAAW,CAAC,MAAM,IAAI,YAAY,CACnC,CAAC;IACJ,CAAC;CACF;AAED;;GAEG;AACH,MAAM,kBAAkB,GAAG,KAAK,CAAC;AACjC;;GAEG;AACH,MAAM,CAAC,MAAM,eAAe,GAAG,IAAI,WAAW,EAAE,CAAC;AAEjD;;;;;;;;;GASG;AACH,MAAM,UAAU,gBAAgB,CAC9B,WAAwB,EACxB,aAA0B,EAC1B,SAA8C,EAC9C,YAAsB,EACtB,SAAkB;IAElB,MAAM,aAAa,GAAqB,KAAK,CAAC,OAAO,CAAC,SAAS,CAAC;QAC9D,CAAC,CAAC,SAAS;QACX,CAAC,CAAE,SAAS,CAAC,KAAK,CAAC,kBAAkB,CAAsB,CAAC;IAE9D,MAAM,iBAAiB,GAAG;QACxB,KAAK;QACL,QAAQ;QACR,MAAM;QACN,OAAO;QACP,UAAU;QACV,WAAW;QACX,aAAa;QACb,cAAc;QACd,UAAU;QACV,aAAa;QACb,WAAW;QACX,cAAc;KACf,CAAC;IAEF,MAAM,SAAS,GAAG,aAAa,CAAC,SAAS,CAAC;IAC1C,MAAM,kBAAkB,GAAG,CAAC,eAA0B,EAAiB,EAAE;QACvE,MAAM,CAAC,OAAO,EAAE,SAAS,CAAC,GAAG,eAAe,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QACxD,MAAM,OAAO,GAAa,EAAE,CAAC;QAC7B,IAAI,SAAS,EAAE;YACb,OAAO,CAAC,IAAI,CAAC,GAAG,SAAS,IAAI,OAAO,EAAE,CAAC,CAAC;YACxC,IAAI,SAAS,EAAE;gBACb,OAAO,CAAC,IAAI,CAAC,GAAG,SAAS,IAAI,OAAO,IAAI,SAAS,EAAE,CAAC,CAAC;aACtD;YAED,OAAO,CAAC,OAAO,CAAC,CAAC,SAAS,EAAE,EAAE;gBAC5B,SAAS,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;YAC3B,CAAC,CAAC,CAAC;SACJ;QACD,OAAO,OAAO,CAAC;IACjB,CAAC,CAAC;IAEF,+CAA+C;IAC/C,IAAI,SAAS,EAAE;QACb,iBAAiB,CAAC,OAAO,CAAC,CAAC,iBAAiB,EAAE,EAAE;YAC9C,SAAS,CAAC,MAAM,CAAC,GAAG,SAAS,IAAI,iBAAiB,EAAE,CAAC,CAAC;QACxD,CAAC,CAAC,CAAC;KACJ;IAED,+CAA+C;IAC/C,IAAI,OAAO,GAAG,aAAa,CAAC,SAAS,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,KAAK,MAAM,CAAC,CAAC;IAC/D,IAAI,OAAO,IAAI,CAAC,EAAE;QAChB,iBAAiB,CAAC,OAAO,CAAC,UAAU,GAAG;YACrC,IAAI,aAAa,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,MAAM,CAAC,GAAG,GAAG,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,IAAI,EAAE;gBACrE,aAAa,CAAC,MAAM,CAAC,OAAO,EAAE,EAAE,CAAC,EAAE,GAAgB,CAAC,CAAC;aACtD;QACH,CAAC,CAAC,CAAC;KACJ;IAED,gCAAgC;IAEhC,0BAA0B;IAC1B,MAAM,KAAK,GAAG,aAAa,CAAC,KAAK,CAAC;IAClC,KAAK,CAAC,QAAQ,GAAG,UAAU,CAAC;IAC5B,KAAK,CAAC,GAAG,GAAG,GAAG,CAAC;IAChB,KAAK,CAAC,IAAI,GAAG,GAAG,CAAC;IACjB,KAAK,CAAC,aAAa,CAAC,GAAG,WAAW,CAAC;IAEnC,IAAI,aAAa,GAAqB,IAAI,CAAC;IAC3C,IAAI,YAAY,GAAG,KAAK,CAAC;IACzB,KAAK,aAAa,IAAI,aAAa,EAAE;QACnC,MAAM,YAAY,GAAG,kBAAkB,CAAC,aAAa,CAAC,CAAC;QAEvD,IACE,eAAe,CAAC,gBAAgB,CAC9B,WAAW,EACX,aAAa,EACb,aAAa,EACb,YAAY,CACb,EACD;YACA,YAAY,GAAG,IAAI,CAAC;YACpB,MAAM;SACP;QAED,iDAAiD;QACjD,IAAI,SAAS,EAAE;YACb,YAAY,CAAC,OAAO,CAAC,CAAC,SAAS,EAAE,EAAE;gBACjC,SAAS,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;YAC9B,CAAC,CAAC,CAAC;SACJ;KACF;IAED,IAAI,CAAC,YAAY,EAAE;QACjB,2DAA2D;QAC3D,aAAa,GAAG,aAAa,CAAC,CAAC,CAAC,CAAC;QACjC,kBAAkB,CAAC,aAAa,CAAC,CAAC;QAClC,eAAe,CAAC,gBAAgB,CAC9B,WAAW,EACX,aAAa,EACb,aAAa,EACb,YAAY,CACb,CAAC;KACH;IAED,OAAO,aAAa,CAAC;AACvB,CAAC",sourcesContent:["interface ClientRect {\n top: number;\n bottom: number;\n left: number;\n right: number;\n height: number;\n width: number;\n}\n\n/**\n * Position Utility Klasse\n * @see https://github.com/ng-bootstrap/ng-bootstrap/blob/master/src/util/positioning.ts\n */\nexport class Positioning {\n /**\n * Get all Styles of Element\n * @param element HTML Element\n * @returns All Styles of element\n */\n private getAllStyles(element: HTMLElement) {\n return window.getComputedStyle(element);\n }\n\n /**\n * Get Style value of element\n * @param element HTML Element\n * @param prop Style\n * @returns Value of Style\n */\n private getStyle(element: HTMLElement, prop: string): string {\n return this.getAllStyles(element)[prop];\n }\n\n /**\n * Check if the element has an static position\n * @param element HTML Element\n * @returns Item has a static position\n */\n private isStaticPositioned(element: HTMLElement): boolean {\n return (this.getStyle(element, 'position') || 'static') === 'static';\n }\n\n /**\n * Get the Offset of the parent element\n * @param element HTML Element\n * @returns HTML ELement\n */\n private offsetParent(element: HTMLElement): HTMLElement {\n let offsetParentEl =\n <HTMLElement>element.offsetParent || document.documentElement;\n\n while (\n offsetParentEl &&\n offsetParentEl !== document.documentElement &&\n this.isStaticPositioned(offsetParentEl)\n ) {\n offsetParentEl = <HTMLElement>offsetParentEl.offsetParent;\n }\n\n return offsetParentEl || document.documentElement;\n }\n\n /**\n * Get Element Position\n * @param element HTML Element for Position\n * @param round Round Values\n * @returns Position Values\n */\n position(element: HTMLElement, round = true): ClientRect {\n let elPosition: ClientRect;\n let parentOffset: ClientRect = {\n width: 0,\n height: 0,\n top: 0,\n bottom: 0,\n left: 0,\n right: 0,\n };\n\n if (this.getStyle(element, 'position') === 'fixed') {\n elPosition = element.getBoundingClientRect();\n elPosition = {\n top: elPosition.top,\n bottom: elPosition.bottom,\n left: elPosition.left,\n right: elPosition.right,\n height: elPosition.height,\n width: elPosition.width,\n };\n } else {\n const offsetParentEl = this.offsetParent(element);\n\n elPosition = this.offset(element, false);\n\n if (offsetParentEl !== document.documentElement) {\n parentOffset = this.offset(offsetParentEl, false);\n }\n\n parentOffset.top += offsetParentEl.clientTop;\n parentOffset.left += offsetParentEl.clientLeft;\n }\n\n elPosition.top -= parentOffset.top;\n elPosition.bottom -= parentOffset.top;\n elPosition.left -= parentOffset.left;\n elPosition.right -= parentOffset.left;\n\n if (round) {\n elPosition.top = Math.round(elPosition.top);\n elPosition.bottom = Math.round(elPosition.bottom);\n elPosition.left = Math.round(elPosition.left);\n elPosition.right = Math.round(elPosition.right);\n }\n\n return elPosition;\n }\n\n /**\n * Get Offset of Item\n * @param element HTML Element for Offset\n * @param round Round the Values\n * @returns Return Offset Position\n */\n offset(element: HTMLElement, round = true): ClientRect {\n const elBcr = element.getBoundingClientRect();\n const viewportOffset = {\n top: window.pageYOffset - document.documentElement.clientTop,\n left: window.pageXOffset - document.documentElement.clientLeft,\n };\n\n const elOffset = {\n height: elBcr.height || element.offsetHeight,\n width: elBcr.width || element.offsetWidth,\n top: elBcr.top + viewportOffset.top,\n bottom: elBcr.bottom + viewportOffset.top,\n left: elBcr.left + viewportOffset.left,\n right: elBcr.right + viewportOffset.left,\n };\n\n if (round) {\n elOffset.height = Math.round(elOffset.height);\n elOffset.width = Math.round(elOffset.width);\n elOffset.top = Math.round(elOffset.top);\n elOffset.bottom = Math.round(elOffset.bottom);\n elOffset.left = Math.round(elOffset.left);\n elOffset.right = Math.round(elOffset.right);\n }\n\n return elOffset;\n }\n\n /**\n * Return false if the element to position is outside the viewport\n * @returns position is inside viewport\n */\n positionElements(\n hostElement: HTMLElement,\n targetElement: HTMLElement,\n placement: string,\n appendToBody?: boolean\n ): boolean {\n const [placementPrimary = 'top', placementSecondary = 'center'] =\n placement.split('-');\n\n const hostElPosition = appendToBody\n ? this.offset(hostElement, false)\n : this.position(hostElement, false);\n const targetElStyles = this.getAllStyles(targetElement);\n\n const marginTop = parseFloat(targetElStyles.marginTop);\n const marginBottom = parseFloat(targetElStyles.marginBottom);\n const marginLeft = parseFloat(targetElStyles.marginLeft);\n const marginRight = parseFloat(targetElStyles.marginRight);\n\n let topPosition = 0;\n let leftPosition = 0;\n\n switch (placementPrimary) {\n case 'top':\n topPosition =\n hostElPosition.top -\n (targetElement.offsetHeight + marginTop + marginBottom);\n break;\n case 'bottom':\n topPosition = hostElPosition.top + hostElPosition.height;\n break;\n case 'left':\n leftPosition =\n hostElPosition.left -\n (targetElement.offsetWidth + marginLeft + marginRight);\n break;\n case 'right':\n leftPosition = hostElPosition.left + hostElPosition.width;\n break;\n }\n\n switch (placementSecondary) {\n case 'top':\n topPosition = hostElPosition.top;\n break;\n case 'bottom':\n topPosition =\n hostElPosition.top +\n hostElPosition.height -\n targetElement.offsetHeight;\n break;\n case 'left':\n leftPosition = hostElPosition.left;\n break;\n case 'right':\n leftPosition =\n hostElPosition.left +\n hostElPosition.width -\n targetElement.offsetWidth;\n break;\n case 'center':\n if (placementPrimary === 'top' || placementPrimary === 'bottom') {\n leftPosition =\n hostElPosition.left +\n hostElPosition.width / 2 -\n targetElement.offsetWidth / 2;\n } else {\n topPosition =\n hostElPosition.top +\n hostElPosition.height / 2 -\n targetElement.offsetHeight / 2;\n }\n break;\n }\n\n /// The translate3d/gpu acceleration render a blurry text on chrome, the next line is commented until a browser fix\n // targetElement.style.transform = `translate3d(${Math.round(leftPosition)}px, ${Math.floor(topPosition)}px, 0px)`;\n targetElement.style.transform = `translate(${Math.round(\n leftPosition\n )}px, ${Math.round(topPosition)}px)`;\n\n // Check if the targetElement is inside the viewport\n const targetElBCR = targetElement.getBoundingClientRect();\n const html = document.documentElement;\n const windowHeight = window.innerHeight || html.clientHeight;\n const windowWidth = window.innerWidth || html.clientWidth;\n\n return (\n targetElBCR.left >= 0 &&\n targetElBCR.top >= 0 &&\n targetElBCR.right <= windowWidth &&\n targetElBCR.bottom <= windowHeight\n );\n }\n}\n\n/**\n * Placement Separator Regex\n */\nconst placementSeparator = /\\s+/;\n/**\n * Global Position Service\n */\nexport const positionService = new Positioning();\n\n/**\n * Accept the placement array and applies the appropriate placement dependent on the viewport.\n * Returns the applied placement.\n * In case of auto placement, placements are selected in order\n * 'top', 'bottom', 'left', 'right',\n * 'top-left', 'top-right',\n * 'bottom-left', 'bottom-right',\n * 'left-top', 'left-bottom',\n * 'right-top', 'right-bottom'.\n */\nexport function positionElements(\n hostElement: HTMLElement,\n targetElement: HTMLElement,\n placement: string | Placement | PlacementArray,\n appendToBody?: boolean,\n baseClass?: string\n): Placement | null {\n const placementVals: Array<Placement> = Array.isArray(placement)\n ? placement\n : (placement.split(placementSeparator) as Array<Placement>);\n\n const allowedPlacements = [\n 'top',\n 'bottom',\n 'left',\n 'right',\n 'top-left',\n 'top-right',\n 'bottom-left',\n 'bottom-right',\n 'left-top',\n 'left-bottom',\n 'right-top',\n 'right-bottom',\n ];\n\n const classList = targetElement.classList;\n const addClassesToTarget = (targetPlacement: Placement): Array<string> => {\n const [primary, secondary] = targetPlacement.split('-');\n const classes: string[] = [];\n if (baseClass) {\n classes.push(`${baseClass}-${primary}`);\n if (secondary) {\n classes.push(`${baseClass}-${primary}-${secondary}`);\n }\n\n classes.forEach((classname) => {\n classList.add(classname);\n });\n }\n return classes;\n };\n\n // Remove old placement classes to avoid issues\n if (baseClass) {\n allowedPlacements.forEach((placementToRemove) => {\n classList.remove(`${baseClass}-${placementToRemove}`);\n });\n }\n\n // replace auto placement with other placements\n let hasAuto = placementVals.findIndex((val) => val === 'auto');\n if (hasAuto >= 0) {\n allowedPlacements.forEach(function (obj) {\n if (placementVals.find((val) => val.search('^' + obj) !== -1) == null) {\n placementVals.splice(hasAuto++, 1, obj as Placement);\n }\n });\n }\n\n // coordinates where to position\n\n // Required for transform:\n const style = targetElement.style;\n style.position = 'absolute';\n style.top = '0';\n style.left = '0';\n style['will-change'] = 'transform';\n\n let testPlacement: Placement | null = null;\n let isInViewport = false;\n for (testPlacement of placementVals) {\n const addedClasses = addClassesToTarget(testPlacement);\n\n if (\n positionService.positionElements(\n hostElement,\n targetElement,\n testPlacement,\n appendToBody\n )\n ) {\n isInViewport = true;\n break;\n }\n\n // Remove the baseClasses for further calculation\n if (baseClass) {\n addedClasses.forEach((classname) => {\n classList.remove(classname);\n });\n }\n }\n\n if (!isInViewport) {\n // If nothing match, the first placement is the default one\n testPlacement = placementVals[0];\n addClassesToTarget(testPlacement);\n positionService.positionElements(\n hostElement,\n targetElement,\n testPlacement,\n appendToBody\n );\n }\n\n return testPlacement;\n}\n\n/**\n * Placement Typen\n */\nexport type Placement =\n | 'auto'\n | 'top'\n | 'bottom'\n | 'left'\n | 'right'\n | 'top-left'\n | 'top-right'\n | 'bottom-left'\n | 'bottom-right'\n | 'left-top'\n | 'left-bottom'\n | 'right-top'\n | 'right-bottom';\n\n/**\n * Placement Array\n */\nexport type PlacementArray = Placement | Array<Placement> | string;\n"]},_coverageSchema:"1a1c01bbd47fc00a2c39e90264f33305004495a9",hash:"2388c98b2a6f5ba1b840e5cf3da5d38a59877911"};var coverage=global[gcv]||(global[gcv]={});if(!coverage[path]||coverage[path].hash!==hash){coverage[path]=coverageData;}var actualCoverage=coverage[path];{// @ts-ignore
|
|
2
|
+
cov_1pmkm5ec0z=function(){return actualCoverage;};}return actualCoverage;}cov_1pmkm5ec0z();/**
|
|
3
|
+
* Position Utility Klasse
|
|
4
|
+
* @see https://github.com/ng-bootstrap/ng-bootstrap/blob/master/src/util/positioning.ts
|
|
5
|
+
*/export class Positioning{/**
|
|
6
|
+
* Get all Styles of Element
|
|
7
|
+
* @param element HTML Element
|
|
8
|
+
* @returns All Styles of element
|
|
9
|
+
*/getAllStyles(element){cov_1pmkm5ec0z().f[0]++;cov_1pmkm5ec0z().s[0]++;return window.getComputedStyle(element);}/**
|
|
10
|
+
* Get Style value of element
|
|
11
|
+
* @param element HTML Element
|
|
12
|
+
* @param prop Style
|
|
13
|
+
* @returns Value of Style
|
|
14
|
+
*/getStyle(element,prop){cov_1pmkm5ec0z().f[1]++;cov_1pmkm5ec0z().s[1]++;return this.getAllStyles(element)[prop];}/**
|
|
15
|
+
* Check if the element has an static position
|
|
16
|
+
* @param element HTML Element
|
|
17
|
+
* @returns Item has a static position
|
|
18
|
+
*/isStaticPositioned(element){cov_1pmkm5ec0z().f[2]++;cov_1pmkm5ec0z().s[2]++;return((cov_1pmkm5ec0z().b[0][0]++,this.getStyle(element,'position'))||(cov_1pmkm5ec0z().b[0][1]++,'static'))==='static';}/**
|
|
19
|
+
* Get the Offset of the parent element
|
|
20
|
+
* @param element HTML Element
|
|
21
|
+
* @returns HTML ELement
|
|
22
|
+
*/offsetParent(element){cov_1pmkm5ec0z().f[3]++;let offsetParentEl=(cov_1pmkm5ec0z().s[3]++,(cov_1pmkm5ec0z().b[1][0]++,element.offsetParent)||(cov_1pmkm5ec0z().b[1][1]++,document.documentElement));cov_1pmkm5ec0z().s[4]++;while((cov_1pmkm5ec0z().b[2][0]++,offsetParentEl)&&(cov_1pmkm5ec0z().b[2][1]++,offsetParentEl!==document.documentElement)&&(cov_1pmkm5ec0z().b[2][2]++,this.isStaticPositioned(offsetParentEl))){cov_1pmkm5ec0z().s[5]++;offsetParentEl=offsetParentEl.offsetParent;}cov_1pmkm5ec0z().s[6]++;return(cov_1pmkm5ec0z().b[3][0]++,offsetParentEl)||(cov_1pmkm5ec0z().b[3][1]++,document.documentElement);}/**
|
|
23
|
+
* Get Element Position
|
|
24
|
+
* @param element HTML Element for Position
|
|
25
|
+
* @param round Round Values
|
|
26
|
+
* @returns Position Values
|
|
27
|
+
*/position(element,round=(cov_1pmkm5ec0z().b[4][0]++,true)){cov_1pmkm5ec0z().f[4]++;let elPosition;let parentOffset=(cov_1pmkm5ec0z().s[7]++,{width:0,height:0,top:0,bottom:0,left:0,right:0});cov_1pmkm5ec0z().s[8]++;if(this.getStyle(element,'position')==='fixed'){cov_1pmkm5ec0z().b[5][0]++;cov_1pmkm5ec0z().s[9]++;elPosition=element.getBoundingClientRect();cov_1pmkm5ec0z().s[10]++;elPosition={top:elPosition.top,bottom:elPosition.bottom,left:elPosition.left,right:elPosition.right,height:elPosition.height,width:elPosition.width};}else{cov_1pmkm5ec0z().b[5][1]++;const offsetParentEl=(cov_1pmkm5ec0z().s[11]++,this.offsetParent(element));cov_1pmkm5ec0z().s[12]++;elPosition=this.offset(element,false);cov_1pmkm5ec0z().s[13]++;if(offsetParentEl!==document.documentElement){cov_1pmkm5ec0z().b[6][0]++;cov_1pmkm5ec0z().s[14]++;parentOffset=this.offset(offsetParentEl,false);}else{cov_1pmkm5ec0z().b[6][1]++;}cov_1pmkm5ec0z().s[15]++;parentOffset.top+=offsetParentEl.clientTop;cov_1pmkm5ec0z().s[16]++;parentOffset.left+=offsetParentEl.clientLeft;}cov_1pmkm5ec0z().s[17]++;elPosition.top-=parentOffset.top;cov_1pmkm5ec0z().s[18]++;elPosition.bottom-=parentOffset.top;cov_1pmkm5ec0z().s[19]++;elPosition.left-=parentOffset.left;cov_1pmkm5ec0z().s[20]++;elPosition.right-=parentOffset.left;cov_1pmkm5ec0z().s[21]++;if(round){cov_1pmkm5ec0z().b[7][0]++;cov_1pmkm5ec0z().s[22]++;elPosition.top=Math.round(elPosition.top);cov_1pmkm5ec0z().s[23]++;elPosition.bottom=Math.round(elPosition.bottom);cov_1pmkm5ec0z().s[24]++;elPosition.left=Math.round(elPosition.left);cov_1pmkm5ec0z().s[25]++;elPosition.right=Math.round(elPosition.right);}else{cov_1pmkm5ec0z().b[7][1]++;}cov_1pmkm5ec0z().s[26]++;return elPosition;}/**
|
|
28
|
+
* Get Offset of Item
|
|
29
|
+
* @param element HTML Element for Offset
|
|
30
|
+
* @param round Round the Values
|
|
31
|
+
* @returns Return Offset Position
|
|
32
|
+
*/offset(element,round=(cov_1pmkm5ec0z().b[8][0]++,true)){cov_1pmkm5ec0z().f[5]++;const elBcr=(cov_1pmkm5ec0z().s[27]++,element.getBoundingClientRect());const viewportOffset=(cov_1pmkm5ec0z().s[28]++,{top:window.pageYOffset-document.documentElement.clientTop,left:window.pageXOffset-document.documentElement.clientLeft});const elOffset=(cov_1pmkm5ec0z().s[29]++,{height:(cov_1pmkm5ec0z().b[9][0]++,elBcr.height)||(cov_1pmkm5ec0z().b[9][1]++,element.offsetHeight),width:(cov_1pmkm5ec0z().b[10][0]++,elBcr.width)||(cov_1pmkm5ec0z().b[10][1]++,element.offsetWidth),top:elBcr.top+viewportOffset.top,bottom:elBcr.bottom+viewportOffset.top,left:elBcr.left+viewportOffset.left,right:elBcr.right+viewportOffset.left});cov_1pmkm5ec0z().s[30]++;if(round){cov_1pmkm5ec0z().b[11][0]++;cov_1pmkm5ec0z().s[31]++;elOffset.height=Math.round(elOffset.height);cov_1pmkm5ec0z().s[32]++;elOffset.width=Math.round(elOffset.width);cov_1pmkm5ec0z().s[33]++;elOffset.top=Math.round(elOffset.top);cov_1pmkm5ec0z().s[34]++;elOffset.bottom=Math.round(elOffset.bottom);cov_1pmkm5ec0z().s[35]++;elOffset.left=Math.round(elOffset.left);cov_1pmkm5ec0z().s[36]++;elOffset.right=Math.round(elOffset.right);}else{cov_1pmkm5ec0z().b[11][1]++;}cov_1pmkm5ec0z().s[37]++;return elOffset;}/**
|
|
33
|
+
* Return false if the element to position is outside the viewport
|
|
34
|
+
* @returns position is inside viewport
|
|
35
|
+
*/positionElements(hostElement,targetElement,placement,appendToBody){cov_1pmkm5ec0z().f[6]++;const[placementPrimary=(cov_1pmkm5ec0z().b[12][0]++,'top'),placementSecondary=(cov_1pmkm5ec0z().b[13][0]++,'center')]=(cov_1pmkm5ec0z().s[38]++,placement.split('-'));const hostElPosition=(cov_1pmkm5ec0z().s[39]++,appendToBody?(cov_1pmkm5ec0z().b[14][0]++,this.offset(hostElement,false)):(cov_1pmkm5ec0z().b[14][1]++,this.position(hostElement,false)));const targetElStyles=(cov_1pmkm5ec0z().s[40]++,this.getAllStyles(targetElement));const marginTop=(cov_1pmkm5ec0z().s[41]++,parseFloat(targetElStyles.marginTop));const marginBottom=(cov_1pmkm5ec0z().s[42]++,parseFloat(targetElStyles.marginBottom));const marginLeft=(cov_1pmkm5ec0z().s[43]++,parseFloat(targetElStyles.marginLeft));const marginRight=(cov_1pmkm5ec0z().s[44]++,parseFloat(targetElStyles.marginRight));let topPosition=(cov_1pmkm5ec0z().s[45]++,0);let leftPosition=(cov_1pmkm5ec0z().s[46]++,0);cov_1pmkm5ec0z().s[47]++;switch(placementPrimary){case'top':cov_1pmkm5ec0z().b[15][0]++;cov_1pmkm5ec0z().s[48]++;topPosition=hostElPosition.top-(targetElement.offsetHeight+marginTop+marginBottom);cov_1pmkm5ec0z().s[49]++;break;case'bottom':cov_1pmkm5ec0z().b[15][1]++;cov_1pmkm5ec0z().s[50]++;topPosition=hostElPosition.top+hostElPosition.height;cov_1pmkm5ec0z().s[51]++;break;case'left':cov_1pmkm5ec0z().b[15][2]++;cov_1pmkm5ec0z().s[52]++;leftPosition=hostElPosition.left-(targetElement.offsetWidth+marginLeft+marginRight);cov_1pmkm5ec0z().s[53]++;break;case'right':cov_1pmkm5ec0z().b[15][3]++;cov_1pmkm5ec0z().s[54]++;leftPosition=hostElPosition.left+hostElPosition.width;cov_1pmkm5ec0z().s[55]++;break;}cov_1pmkm5ec0z().s[56]++;switch(placementSecondary){case'top':cov_1pmkm5ec0z().b[16][0]++;cov_1pmkm5ec0z().s[57]++;topPosition=hostElPosition.top;cov_1pmkm5ec0z().s[58]++;break;case'bottom':cov_1pmkm5ec0z().b[16][1]++;cov_1pmkm5ec0z().s[59]++;topPosition=hostElPosition.top+hostElPosition.height-targetElement.offsetHeight;cov_1pmkm5ec0z().s[60]++;break;case'left':cov_1pmkm5ec0z().b[16][2]++;cov_1pmkm5ec0z().s[61]++;leftPosition=hostElPosition.left;cov_1pmkm5ec0z().s[62]++;break;case'right':cov_1pmkm5ec0z().b[16][3]++;cov_1pmkm5ec0z().s[63]++;leftPosition=hostElPosition.left+hostElPosition.width-targetElement.offsetWidth;cov_1pmkm5ec0z().s[64]++;break;case'center':cov_1pmkm5ec0z().b[16][4]++;cov_1pmkm5ec0z().s[65]++;if((cov_1pmkm5ec0z().b[18][0]++,placementPrimary==='top')||(cov_1pmkm5ec0z().b[18][1]++,placementPrimary==='bottom')){cov_1pmkm5ec0z().b[17][0]++;cov_1pmkm5ec0z().s[66]++;leftPosition=hostElPosition.left+hostElPosition.width/2-targetElement.offsetWidth/2;}else{cov_1pmkm5ec0z().b[17][1]++;cov_1pmkm5ec0z().s[67]++;topPosition=hostElPosition.top+hostElPosition.height/2-targetElement.offsetHeight/2;}cov_1pmkm5ec0z().s[68]++;break;}/// The translate3d/gpu acceleration render a blurry text on chrome, the next line is commented until a browser fix
|
|
36
36
|
// targetElement.style.transform = `translate3d(${Math.round(leftPosition)}px, ${Math.floor(topPosition)}px, 0px)`;
|
|
37
|
-
|
|
38
|
-
const targetElBCR=(
|
|
39
|
-
* Placement Separator Regex
|
|
40
|
-
*/const placementSeparator=(
|
|
41
|
-
* Global Position Service
|
|
42
|
-
*/export const positionService=(
|
|
43
|
-
* Accept the placement array and applies the appropriate placement dependent on the viewport.
|
|
44
|
-
* Returns the applied placement.
|
|
45
|
-
* In case of auto placement, placements are selected in order
|
|
46
|
-
* 'top', 'bottom', 'left', 'right',
|
|
47
|
-
* 'top-left', 'top-right',
|
|
48
|
-
* 'bottom-left', 'bottom-right',
|
|
49
|
-
* 'left-top', 'left-bottom',
|
|
50
|
-
* 'right-top', 'right-bottom'.
|
|
51
|
-
*/export function positionElements(hostElement,targetElement,placement,appendToBody,baseClass){
|
|
52
|
-
|
|
53
|
-
let hasAuto=(
|
|
37
|
+
cov_1pmkm5ec0z().s[69]++;targetElement.style.transform=`translate(${Math.round(leftPosition)}px, ${Math.round(topPosition)}px)`;// Check if the targetElement is inside the viewport
|
|
38
|
+
const targetElBCR=(cov_1pmkm5ec0z().s[70]++,targetElement.getBoundingClientRect());const html=(cov_1pmkm5ec0z().s[71]++,document.documentElement);const windowHeight=(cov_1pmkm5ec0z().s[72]++,(cov_1pmkm5ec0z().b[19][0]++,window.innerHeight)||(cov_1pmkm5ec0z().b[19][1]++,html.clientHeight));const windowWidth=(cov_1pmkm5ec0z().s[73]++,(cov_1pmkm5ec0z().b[20][0]++,window.innerWidth)||(cov_1pmkm5ec0z().b[20][1]++,html.clientWidth));cov_1pmkm5ec0z().s[74]++;return(cov_1pmkm5ec0z().b[21][0]++,targetElBCR.left>=0)&&(cov_1pmkm5ec0z().b[21][1]++,targetElBCR.top>=0)&&(cov_1pmkm5ec0z().b[21][2]++,targetElBCR.right<=windowWidth)&&(cov_1pmkm5ec0z().b[21][3]++,targetElBCR.bottom<=windowHeight);}}/**
|
|
39
|
+
* Placement Separator Regex
|
|
40
|
+
*/const placementSeparator=(cov_1pmkm5ec0z().s[75]++,/\s+/);/**
|
|
41
|
+
* Global Position Service
|
|
42
|
+
*/export const positionService=(cov_1pmkm5ec0z().s[76]++,new Positioning());/**
|
|
43
|
+
* Accept the placement array and applies the appropriate placement dependent on the viewport.
|
|
44
|
+
* Returns the applied placement.
|
|
45
|
+
* In case of auto placement, placements are selected in order
|
|
46
|
+
* 'top', 'bottom', 'left', 'right',
|
|
47
|
+
* 'top-left', 'top-right',
|
|
48
|
+
* 'bottom-left', 'bottom-right',
|
|
49
|
+
* 'left-top', 'left-bottom',
|
|
50
|
+
* 'right-top', 'right-bottom'.
|
|
51
|
+
*/export function positionElements(hostElement,targetElement,placement,appendToBody,baseClass){cov_1pmkm5ec0z().f[7]++;const placementVals=(cov_1pmkm5ec0z().s[77]++,Array.isArray(placement)?(cov_1pmkm5ec0z().b[22][0]++,placement):(cov_1pmkm5ec0z().b[22][1]++,placement.split(placementSeparator)));const allowedPlacements=(cov_1pmkm5ec0z().s[78]++,['top','bottom','left','right','top-left','top-right','bottom-left','bottom-right','left-top','left-bottom','right-top','right-bottom']);const classList=(cov_1pmkm5ec0z().s[79]++,targetElement.classList);cov_1pmkm5ec0z().s[80]++;const addClassesToTarget=targetPlacement=>{cov_1pmkm5ec0z().f[8]++;const[primary,secondary]=(cov_1pmkm5ec0z().s[81]++,targetPlacement.split('-'));const classes=(cov_1pmkm5ec0z().s[82]++,[]);cov_1pmkm5ec0z().s[83]++;if(baseClass){cov_1pmkm5ec0z().b[23][0]++;cov_1pmkm5ec0z().s[84]++;classes.push(`${baseClass}-${primary}`);cov_1pmkm5ec0z().s[85]++;if(secondary){cov_1pmkm5ec0z().b[24][0]++;cov_1pmkm5ec0z().s[86]++;classes.push(`${baseClass}-${primary}-${secondary}`);}else{cov_1pmkm5ec0z().b[24][1]++;}cov_1pmkm5ec0z().s[87]++;classes.forEach(classname=>{cov_1pmkm5ec0z().f[9]++;cov_1pmkm5ec0z().s[88]++;classList.add(classname);});}else{cov_1pmkm5ec0z().b[23][1]++;}cov_1pmkm5ec0z().s[89]++;return classes;};// Remove old placement classes to avoid issues
|
|
52
|
+
cov_1pmkm5ec0z().s[90]++;if(baseClass){cov_1pmkm5ec0z().b[25][0]++;cov_1pmkm5ec0z().s[91]++;allowedPlacements.forEach(placementToRemove=>{cov_1pmkm5ec0z().f[10]++;cov_1pmkm5ec0z().s[92]++;classList.remove(`${baseClass}-${placementToRemove}`);});}else{cov_1pmkm5ec0z().b[25][1]++;}// replace auto placement with other placements
|
|
53
|
+
let hasAuto=(cov_1pmkm5ec0z().s[93]++,placementVals.findIndex(val=>{cov_1pmkm5ec0z().f[11]++;cov_1pmkm5ec0z().s[94]++;return val==='auto';}));cov_1pmkm5ec0z().s[95]++;if(hasAuto>=0){cov_1pmkm5ec0z().b[26][0]++;cov_1pmkm5ec0z().s[96]++;allowedPlacements.forEach(function(obj){cov_1pmkm5ec0z().f[12]++;cov_1pmkm5ec0z().s[97]++;if(placementVals.find(val=>{cov_1pmkm5ec0z().f[13]++;cov_1pmkm5ec0z().s[98]++;return val.search('^'+obj)!==-1;})==null){cov_1pmkm5ec0z().b[27][0]++;cov_1pmkm5ec0z().s[99]++;placementVals.splice(hasAuto++,1,obj);}else{cov_1pmkm5ec0z().b[27][1]++;}});}else{cov_1pmkm5ec0z().b[26][1]++;}// coordinates where to position
|
|
54
54
|
// Required for transform:
|
|
55
|
-
const style=(
|
|
56
|
-
|
|
57
|
-
testPlacement=placementVals[0];cov_38kxbnd9b().s[117]++;addClassesToTarget(testPlacement);cov_38kxbnd9b().s[118]++;positionService.positionElements(hostElement,targetElement,testPlacement,appendToBody);}else{cov_38kxbnd9b().b[30][1]++;}cov_38kxbnd9b().s[119]++;return testPlacement;}//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicG9zaXRpb25pbmcuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9zYWMtY29tbW9uL3NyYy91dGlsaXRpZXMvcG9zaXRpb25pbmcudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBU0E7OztHQUdHO0FBQ0gsTUFBTSxPQUFPLFdBQVc7SUFDdEI7Ozs7T0FJRztJQUNLLFlBQVksQ0FBQyxPQUFvQjtRQUN2QyxPQUFPLE1BQU0sQ0FBQyxnQkFBZ0IsQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUMxQyxDQUFDO0lBRUQ7Ozs7O09BS0c7SUFDSyxRQUFRLENBQUMsT0FBb0IsRUFBRSxJQUFZO1FBQ2pELE9BQU8sSUFBSSxDQUFDLFlBQVksQ0FBQyxPQUFPLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUMxQyxDQUFDO0lBRUQ7Ozs7T0FJRztJQUNLLGtCQUFrQixDQUFDLE9BQW9CO1FBQzdDLE9BQU8sQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxVQUFVLENBQUMsSUFBSSxRQUFRLENBQUMsS0FBSyxRQUFRLENBQUM7SUFDdkUsQ0FBQztJQUVEOzs7O09BSUc7SUFDSyxZQUFZLENBQUMsT0FBb0I7UUFDdkMsSUFBSSxjQUFjLEdBQ0gsT0FBTyxDQUFDLFlBQVksSUFBSSxRQUFRLENBQUMsZUFBZSxDQUFDO1FBRWhFLE9BQ0UsY0FBYztZQUNkLGNBQWMsS0FBSyxRQUFRLENBQUMsZUFBZTtZQUMzQyxJQUFJLENBQUMsa0JBQWtCLENBQUMsY0FBYyxDQUFDLEVBQ3ZDO1lBQ0EsY0FBYyxHQUFnQixjQUFjLENBQUMsWUFBWSxDQUFDO1NBQzNEO1FBRUQsT0FBTyxjQUFjLElBQUksUUFBUSxDQUFDLGVBQWUsQ0FBQztJQUNwRCxDQUFDO0lBRUQ7Ozs7O09BS0c7SUFDSCxRQUFRLENBQUMsT0FBb0IsRUFBRSxLQUFLLEdBQUcsSUFBSTtRQUN6QyxJQUFJLFVBQXNCLENBQUM7UUFDM0IsSUFBSSxZQUFZLEdB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YUFBYSxDQUFDLEtBQUssQ0FBQztJQUNsQyxLQUFLLENBQUMsUUFBUSxHQUFHLFVBQVUsQ0FBQztJQUM1QixLQUFLLENBQUMsR0FBRyxHQUFHLEdBQUcsQ0FBQztJQUNoQixLQUFLLENBQUMsSUFBSSxHQUFHLEdBQUcsQ0FBQztJQUNqQixLQUFLLENBQUMsYUFBYSxDQUFDLEdBQUcsV0FBVyxDQUFDO0lBRW5DLElBQUksYUFBYSxHQUFxQixJQUFJLENBQUM7SUFDM0MsSUFBSSxZQUFZLEdBQUcsS0FBSyxDQUFDO0lBQ3pCLEtBQUssYUFBYSxJQUFJLGFBQWEsRUFBRTtRQUNuQyxNQUFNLFlBQVksR0FBRyxrQkFBa0IsQ0FBQyxhQUFhLENBQUMsQ0FBQztRQUV2RCxJQUNFLGVBQWUsQ0FBQyxnQkFBZ0IsQ0FDOUIsV0FBVyxFQUNYLGFBQWEsRUFDYixhQUFhLEVBQ2IsWUFBWSxDQUNiLEVBQ0Q7WUFDQSxZQUFZLEdBQUcsSUFBSSxDQUFDO1lBQ3BCLE1BQU07U0FDUDtRQUVELGlEQUFpRDtRQUNqRCxJQUFJLFNBQVMsRUFBRTtZQUNiLFlBQVksQ0FBQyxPQUFPLENBQUMsQ0FBQyxTQUFTLEVBQUUsRUFBRTtnQkFDakMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxTQUFTLENBQUMsQ0FBQztZQUM5QixDQUFDLENBQUMsQ0FBQztTQUNKO0tBQ0Y7SUFFRCxJQUFJLENBQUMsWUFBWSxFQUFFO1FBQ2pCLDJEQUEyRDtRQUMzRCxhQUFhLEdBQUcsYUFBYSxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ2pDLGtCQUFrQixDQUFDLGFBQWEsQ0FBQyxDQUFDO1FBQ2xDLGVBQWUsQ0FBQyxnQkFBZ0IsQ0FDOUIsV0FBVyxFQUNYLGFBQWEsRUFDYixhQUFhLEVBQ2IsWUFBWSxDQUNiLENBQUM7S0FDSDtJQUVELE9BQU8sYUFBYSxDQUFDO0FBQ3ZCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbnRlcmZhY2UgQ2xpZW50UmVjdCB7XHJcbiAgdG9wOiBudW1iZXI7XHJcbiAgYm90dG9tOiBudW1iZXI7XHJcbiAgbGVmdDogbnVtYmVyO1xyXG4gIHJpZ2h0OiBudW1iZXI7XHJcbiAgaGVpZ2h0OiBudW1iZXI7XHJcbiAgd2lkdGg6IG51bWJlcjtcclxufVxyXG5cclxuLyoqXHJcbiAqIFBvc2l0aW9uIFV0aWxpdHkgS2xhc3NlXHJcbiAqIEBzZWUgaHR0cHM6Ly9naXRodWIuY29tL25nLWJvb3RzdHJhcC9uZy1ib290c3RyYXAvYmxvYi9tYXN0ZXIvc3JjL3V0aWwvcG9zaXRpb25pbmcudHNcclxuICovXHJcbmV4cG9ydCBjbGFzcyBQb3NpdGlvbmluZyB7XHJcbiAgLyoqXHJcbiAgICogR2V0IGFsbCBTdHlsZXMgb2YgRWxlbWVudFxyXG4gICAqIEBwYXJhbSBlbGVtZW50IEhUTUwgRWxlbWVudFxyXG4gICAqIEByZXR1cm5zIEFsbCBTdHlsZXMgb2YgZWxlbWVudFxyXG4gICAqL1xyXG4gIHByaXZhdGUgZ2V0QWxsU3R5bGVzKGVsZW1lbnQ6IEhUTUxFbGVtZW50KSB7XHJcbiAgICByZXR1cm4gd2luZG93LmdldENvbXB1dGVkU3R5bGUoZWxlbWVudCk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBHZXQgU3R5bGUgdmFsdWUgb2YgZWxlbWVudFxyXG4gICAqIEBwYXJhbSBlbGVtZW50IEhUTUwgRWxlbWVudFxyXG4gICAqIEBwYXJhbSBwcm9wIFN0eWxlXHJcbiAgICogQHJldHVybnMgVmFsdWUgb2YgU3R5bGVcclxuICAgKi9cclxuICBwcml2YXRlIGdldFN0eWxlKGVsZW1lbnQ6IEhUTUxFbGVtZW50LCBwcm9wOiBzdHJpbmcpOiBzdHJpbmcge1xyXG4gICAgcmV0dXJuIHRoaXMuZ2V0QWxsU3R5bGVzKGVsZW1lbnQpW3Byb3BdO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogQ2hlY2sgaWYgdGhlIGVsZW1lbnQgaGFzIGFuIHN0YXRpYyBwb3NpdGlvblxyXG4gICAqIEBwYXJhbSBlbGVtZW50IEhUTUwgRWxlbWVudFxyXG4gICAqIEByZXR1cm5zIEl0ZW0gaGFzIGEgc3RhdGljIHBvc2l0aW9uXHJcbiAgICovXHJcbiAgcHJpdmF0ZSBpc1N0YXRpY1Bvc2l0aW9uZWQoZWxlbWVudDogSFRNTEVsZW1lbnQpOiBib29sZWFuIHtcclxuICAgIHJldHVybiAodGhpcy5nZXRTdHlsZShlbGVtZW50LCAncG9zaXRpb24nKSB8fCAnc3RhdGljJykgPT09ICdzdGF0aWMnO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogR2V0IHRoZSBPZmZzZXQgb2YgdGhlIHBhcmVudCBlbGVtZW50XHJcbiAgICogQHBhcmFtIGVsZW1lbnQgSFRNTCBFbGVtZW50XHJcbiAgICogQHJldHVybnMgSFRNTCBFTGVtZW50XHJcbiAgICovXHJcbiAgcHJpdmF0ZSBvZmZzZXRQYXJlbnQoZWxlbWVudDogSFRNTEVsZW1lbnQpOiBIVE1MRWxlbWVudCB7XHJcbiAgICBsZXQgb2Zmc2V0UGFyZW50RWwgPVxyXG4gICAgICA8SFRNTEVsZW1lbnQ+ZWxlbWVudC5vZmZzZXRQYXJlbnQgfHwgZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50O1xyXG5cclxuICAgIHdoaWxlIChcclxuICAgICAgb2Zmc2V0UGFyZW50RWwgJiZcclxuICAgICAgb2Zmc2V0UGFyZW50RWwgIT09IGRvY3VtZW50LmRvY3VtZW50RWxlbWVudCAmJlxyXG4gICAgICB0aGlzLmlzU3RhdGljUG9zaXRpb25lZChvZmZzZXRQYXJlbnRFbClcclxuICAgICkge1xyXG4gICAgICBvZmZzZXRQYXJlbnRFbCA9IDxIVE1MRWxlbWVudD5vZmZzZXRQYXJlbnRFbC5vZmZzZXRQYXJlbnQ7XHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuIG9mZnNldFBhcmVudEVsIHx8IGRvY3VtZW50LmRvY3VtZW50RWxlbWVudDtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIEdldCBFbGVtZW50IFBvc2l0aW9uXHJcbiAgICogQHBhcmFtIGVsZW1lbnQgSFRNTCBFbGVtZW50IGZvciBQb3NpdGlvblxyXG4gICAqIEBwYXJhbSByb3VuZCBSb3VuZCBWYWx1ZXNcclxuICAgKiBAcmV0dXJucyBQb3NpdGlvbiBWYWx1ZXNcclxuICAgKi9cclxuICBwb3NpdGlvbihlbGVtZW50OiBIVE1MRWxlbWVudCwgcm91bmQgPSB0cnVlKTogQ2xpZW50UmVjdCB7XHJcbiAgICBsZXQgZWxQb3NpdGlvbjogQ2xpZW50UmVjdDtcclxuICAgIGxldCBwYXJlbnRPZmZzZXQ6IENsaWVudFJlY3QgPSB7XHJcbiAgICAgIHdpZHRoOiAwLFxyXG4gICAgICBoZWlnaHQ6IDAsXHJcbiAgICAgIHRvcDogMCxcclxuICAgICAgYm90dG9tOiAwLFxyXG4gICAgICBsZWZ0OiAwLFxyXG4gICAgICByaWdodDogMCxcclxuICAgIH07XHJcblxyXG4gICAgaWYgKHRoaXMuZ2V0U3R5bGUoZWxlbWVudCwgJ3Bvc2l0aW9uJykgPT09ICdmaXhlZCcpIHtcclxuICAgICAgZWxQb3NpdGlvbiA9IGVsZW1lbnQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7XHJcbiAgICAgIGVsUG9zaXRpb24gPSB7XHJcbiAgICAgICAgdG9wOiBlbFBvc2l0aW9uLnRvcCxcclxuICAgICAgICBib3R0b206IGVsUG9zaXRpb24uYm90dG9tLFxyXG4gICAgICAgIGxlZnQ6IGVsUG9zaXRpb24ubGVmdCxcclxuICAgICAgICByaWdodDogZWxQb3NpdGlvbi5yaWdodCxcclxuICAgICAgICBoZWlnaHQ6IGVsUG9zaXRpb24uaGVpZ2h0LFxyXG4gICAgICAgIHdpZHRoOiBlbFBvc2l0aW9uLndpZHRoLFxyXG4gICAgICB9O1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgY29uc3Qgb2Zmc2V0UGFyZW50RWwgPSB0aGlzLm9mZnNldFBhcmVudChlbGVtZW50KTtcclxuXHJcbiAgICAgIGVsUG9zaXRpb24gPSB0aGlzLm9mZnNldChlbGVtZW50LCBmYWxzZSk7XHJcblxyXG4gICAgICBpZiAob2Zmc2V0UGFyZW50RWwgIT09IGRvY3VtZW50LmRvY3VtZW50RWxlbWVudCkge1xyXG4gICAgICAgIHBhcmVudE9mZnNldCA9IHRoaXMub2Zmc2V0KG9mZnNldFBhcmVudEVsLCBmYWxzZSk7XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIHBhcmVudE9mZnNldC50b3AgKz0gb2Zmc2V0UGFyZW50RWwuY2xpZW50VG9wO1xyXG4gICAgICBwYXJlbnRPZmZzZXQubGVmdCArPSBvZmZzZXRQYXJlbnRFbC5jbGllbnRMZWZ0O1xyXG4gICAgfVxyXG5cclxuICAgIGVsUG9zaXRpb24udG9wIC09IHBhcmVudE9mZnNldC50b3A7XHJcbiAgICBlbFBvc2l0aW9uLmJvdHRvbSAtPSBwYXJlbnRPZmZzZXQudG9wO1xyXG4gICAgZWxQb3NpdGlvbi5sZWZ0IC09IHBhcmVudE9mZnNldC5sZWZ0O1xyXG4gICAgZWxQb3NpdGlvbi5yaWdodCAtPSBwYXJlbnRPZmZzZXQubGVmdDtcclxuXHJcbiAgICBpZiAocm91bmQpIHtcclxuICAgICAgZWxQb3NpdGlvbi50b3AgPSBNYXRoLnJvdW5kKGVsUG9zaXRpb24udG9wKTtcclxuICAgICAgZWxQb3NpdGlvbi5ib3R0b20gPSBNYXRoLnJvdW5kKGVsUG9zaXRpb24uYm90dG9tKTtcclxuICAgICAgZWxQb3NpdGlvbi5sZWZ0ID0gTWF0aC5yb3VuZChlbFBvc2l0aW9uLmxlZnQpO1xyXG4gICAgICBlbFBvc2l0aW9uLnJpZ2h0ID0gTWF0aC5yb3VuZChlbFBvc2l0aW9uLnJpZ2h0KTtcclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4gZWxQb3NpdGlvbjtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIEdldCBPZmZzZXQgb2YgSXRlbVxyXG4gICAqIEBwYXJhbSBlbGVtZW50IEhUTUwgRWxlbWVudCBmb3IgT2Zmc2V0XHJcbiAgICogQHBhcmFtIHJvdW5kIFJvdW5kIHRoZSBWYWx1ZXNcclxuICAgKiBAcmV0dXJucyBSZXR1cm4gT2Zmc2V0IFBvc2l0aW9uXHJcbiAgICovXHJcbiAgb2Zmc2V0KGVsZW1lbnQ6IEhUTUxFbGVtZW50LCByb3VuZCA9IHRydWUpOiBDbGllbnRSZWN0IHtcclxuICAgIGNvbnN0IGVsQmNyID0gZWxlbWVudC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtcclxuICAgIGNvbnN0IHZpZXdwb3J0T2Zmc2V0ID0ge1xyXG4gICAgICB0b3A6IHdpbmRvdy5wYWdlWU9mZnNldCAtIGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5jbGllbnRUb3AsXHJcbiAgICAgIGxlZnQ6IHdpbmRvdy5wYWdlWE9mZnNldCAtIGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5jbGllbnRMZWZ0LFxyXG4gICAgfTtcclxuXHJcbiAgICBjb25zdCBlbE9mZnNldCA9IHtcclxuICAgICAgaGVpZ2h0OiBlbEJjci5oZWlnaHQgfHwgZWxlbWVudC5vZmZzZXRIZWlnaHQsXHJcbiAgICAgIHdpZHRoOiBlbEJjci53aWR0aCB8fCBlbGVtZW50Lm9mZnNldFdpZHRoLFxyXG4gICAgICB0b3A6IGVsQmNyLnRvcCArIHZpZXdwb3J0T2Zmc2V0LnRvcCxcclxuICAgICAgYm90dG9tOiBlbEJjci5ib3R0b20gKyB2aWV3cG9ydE9mZnNldC50b3AsXHJcbiAgICAgIGxlZnQ6IGVsQmNyLmxlZnQgKyB2aWV3cG9ydE9mZnNldC5sZWZ0LFxyXG4gICAgICByaWdodDogZWxCY3IucmlnaHQgKyB2aWV3cG9ydE9mZnNldC5sZWZ0LFxyXG4gICAgfTtcclxuXHJcbiAgICBpZiAocm91bmQpIHtcclxuICAgICAgZWxPZmZzZXQuaGVpZ2h0ID0gTWF0aC5yb3VuZChlbE9mZnNldC5oZWlnaHQpO1xyXG4gICAgICBlbE9mZnNldC53aWR0aCA9IE1hdGgucm91bmQoZWxPZmZzZXQud2lkdGgpO1xyXG4gICAgICBlbE9mZnNldC50b3AgPSBNYXRoLnJvdW5kKGVsT2Zmc2V0LnRvcCk7XHJcbiAgICAgIGVsT2Zmc2V0LmJvdHRvbSA9IE1hdGgucm91bmQoZWxPZmZzZXQuYm90dG9tKTtcclxuICAgICAgZWxPZmZzZXQubGVmdCA9IE1hdGgucm91bmQoZWxPZmZzZXQubGVmdCk7XHJcbiAgICAgIGVsT2Zmc2V0LnJpZ2h0ID0gTWF0aC5yb3VuZChlbE9mZnNldC5yaWdodCk7XHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuIGVsT2Zmc2V0O1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogUmV0dXJuIGZhbHNlIGlmIHRoZSBlbGVtZW50IHRvIHBvc2l0aW9uIGlzIG91dHNpZGUgdGhlIHZpZXdwb3J0XHJcbiAgICogQHJldHVybnMgcG9zaXRpb24gaXMgaW5zaWRlIHZpZXdwb3J0XHJcbiAgICovXHJcbiAgcG9zaXRpb25FbGVtZW50cyhcclxuICAgIGhvc3RFbGVtZW50OiBIVE1MRWxlbWVudCxcclxuICAgIHRhcmdldEVsZW1lbnQ6IEhUTUxFbGVtZW50LFxyXG4gICAgcGxhY2VtZW50OiBzdHJpbmcsXHJcbiAgICBhcHBlbmRUb0JvZHk/OiBib29sZWFuXHJcbiAgKTogYm9vbGVhbiB7XHJcbiAgICBjb25zdCBbcGxhY2VtZW50UHJpbWFyeSA9ICd0b3AnLCBwbGFjZW1lbnRTZWNvbmRhcnkgPSAnY2VudGVyJ10gPVxyXG4gICAgICBwbGFjZW1lbnQuc3BsaXQoJy0nKTtcclxuXHJcbiAgICBjb25zdCBob3N0RWxQb3NpdGlvbiA9IGFwcGVuZFRvQm9keVxyXG4gICAgICA/IHRoaXMub2Zmc2V0KGhvc3RFbGVtZW50LCBmYWxzZSlcclxuICAgICAgOiB0aGlzLnBvc2l0aW9uKGhvc3RFbGVtZW50LCBmYWxzZSk7XHJcbiAgICBjb25zdCB0YXJnZXRFbFN0eWxlcyA9IHRoaXMuZ2V0QWxsU3R5bGVzKHRhcmdldEVsZW1lbnQpO1xyXG5cclxuICAgIGNvbnN0IG1hcmdpblRvcCA9IHBhcnNlRmxvYXQodGFyZ2V0RWxTdHlsZXMubWFyZ2luVG9wKTtcclxuICAgIGNvbnN0IG1hcmdpbkJvdHRvbSA9IHBhcnNlRmxvYXQodGFyZ2V0RWxTdHlsZXMubWFyZ2luQm90dG9tKTtcclxuICAgIGNvbnN0IG1hcmdpbkxlZnQgPSBwYXJzZUZsb2F0KHRhcmdldEVsU3R5bGVzLm1hcmdpbkxlZnQpO1xyXG4gICAgY29uc3QgbWFyZ2luUmlnaHQgPSBwYXJzZUZsb2F0KHRhcmdldEVsU3R5bGVzLm1hcmdpblJpZ2h0KTtcclxuXHJcbiAgICBsZXQgdG9wUG9zaXRpb24gPSAwO1xyXG4gICAgbGV0IGxlZnRQb3NpdGlvbiA9IDA7XHJcblxyXG4gICAgc3dpdGNoIChwbGFjZW1lbnRQcmltYXJ5KSB7XHJcbiAgICAgIGNhc2UgJ3RvcCc6XHJcbiAgICAgICAgdG9wUG9zaXRpb24gPVxyXG4gICAgICAgICAgaG9zdEVsUG9zaXRpb24udG9wIC1cclxuICAgICAgICAgICh0YXJnZXRFbGVtZW50Lm9mZnNldEhlaWdodCArIG1hcmdpblRvcCArIG1hcmdpbkJvdHRvbSk7XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIGNhc2UgJ2JvdHRvbSc6XHJcbiAgICAgICAgdG9wUG9zaXRpb24gPSBob3N0RWxQb3NpdGlvbi50b3AgKyBob3N0RWxQb3NpdGlvbi5oZWlnaHQ7XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIGNhc2UgJ2xlZnQnOlxyXG4gICAgICAgIGxlZnRQb3NpdGlvbiA9XHJcbiAgICAgICAgICBob3N0RWxQb3NpdGlvbi5sZWZ0IC1cclxuICAgICAgICAgICh0YXJnZXRFbGVtZW50Lm9mZnNldFdpZHRoICsgbWFyZ2luTGVmdCArIG1hcmdpblJpZ2h0KTtcclxuICAgICAgICBicmVhaztcclxuICAgICAgY2FzZSAncmlnaHQnOlxyXG4gICAgICAgIGxlZnRQb3NpdGlvbiA9IGhvc3RFbFBvc2l0aW9uLmxlZnQgKyBob3N0RWxQb3NpdGlvbi53aWR0aDtcclxuICAgICAgICBicmVhaztcclxuICAgIH1cclxuXHJcbiAgICBzd2l0Y2ggKHBsYWNlbWVudFNlY29uZGFyeSkge1xyXG4gICAgICBjYXNlICd0b3AnOlxyXG4gICAgICAgIHRvcFBvc2l0aW9uID0gaG9zdEVsUG9zaXRpb24udG9wO1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICBjYXNlICdib3R0b20nOlxyXG4gICAgICAgIHRvcFBvc2l0aW9uID1cclxuICAgICAgICAgIGhvc3RFbFBvc2l0aW9uLnRvcCArXHJcbiAgICAgICAgICBob3N0RWxQb3NpdGlvbi5oZWlnaHQgLVxyXG4gICAgICAgICAgdGFyZ2V0RWxlbWVudC5vZmZzZXRIZWlnaHQ7XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIGNhc2UgJ2xlZnQnOlxyXG4gICAgICAgIGxlZnRQb3NpdGlvbiA9IGhvc3RFbFBvc2l0aW9uLmxlZnQ7XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIGNhc2UgJ3JpZ2h0JzpcclxuICAgICAgICBsZWZ0UG9zaXRpb24gPVxyXG4gICAgICAgICAgaG9zdEVsUG9zaXRpb24ubGVmdCArXHJcbiAgICAgICAgICBob3N0RWxQb3NpdGlvbi53aWR0aCAtXHJcbiAgICAgICAgICB0YXJnZXRFbGVtZW50Lm9mZnNldFdpZHRoO1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICBjYXNlICdjZW50ZXInOlxyXG4gICAgICAgIGlmIChwbGFjZW1lbnRQcmltYXJ5ID09PSAndG9wJyB8fCBwbGFjZW1lbnRQcmltYXJ5ID09PSAnYm90dG9tJykge1xyXG4gICAgICAgICAgbGVmdFBvc2l0aW9uID1cclxuICAgICAgICAgICAgaG9zdEVsUG9zaXRpb24ubGVmdCArXHJcbiAgICAgICAgICAgIGhvc3RFbFBvc2l0aW9uLndpZHRoIC8gMiAtXHJcbiAgICAgICAgICAgIHRhcmdldEVsZW1lbnQub2Zmc2V0V2lkdGggLyAyO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICB0b3BQb3NpdGlvbiA9XHJcbiAgICAgICAgICAgIGhvc3RFbFBvc2l0aW9uLnRvcCArXHJcbiAgICAgICAgICAgIGhvc3RFbFBvc2l0aW9uLmhlaWdodCAvIDIgLVxyXG4gICAgICAgICAgICB0YXJnZXRFbGVtZW50Lm9mZnNldEhlaWdodCAvIDI7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgfVxyXG5cclxuICAgIC8vLyBUaGUgdHJhbnNsYXRlM2QvZ3B1IGFjY2VsZXJhdGlvbiByZW5kZXIgYSBibHVycnkgdGV4dCBvbiBjaHJvbWUsIHRoZSBuZXh0IGxpbmUgaXMgY29tbWVudGVkIHVudGlsIGEgYnJvd3NlciBmaXhcclxuICAgIC8vIHRhcmdldEVsZW1lbnQuc3R5bGUudHJhbnNmb3JtID0gYHRyYW5zbGF0ZTNkKCR7TWF0aC5yb3VuZChsZWZ0UG9zaXRpb24pfXB4LCAke01hdGguZmxvb3IodG9wUG9zaXRpb24pfXB4LCAwcHgpYDtcclxuICAgIHRhcmdldEVsZW1lbnQuc3R5bGUudHJhbnNmb3JtID0gYHRyYW5zbGF0ZSgke01hdGgucm91bmQoXHJcbiAgICAgIGxlZnRQb3NpdGlvblxyXG4gICAgKX1weCwgJHtNYXRoLnJvdW5kKHRvcFBvc2l0aW9uKX1weClgO1xyXG5cclxuICAgIC8vIENoZWNrIGlmIHRoZSB0YXJnZXRFbGVtZW50IGlzIGluc2lkZSB0aGUgdmlld3BvcnRcclxuICAgIGNvbnN0IHRhcmdldEVsQkNSID0gdGFyZ2V0RWxlbWVudC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtcclxuICAgIGNvbnN0IGh0bWwgPSBkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQ7XHJcbiAgICBjb25zdCB3aW5kb3dIZWlnaHQgPSB3aW5kb3cuaW5uZXJIZWlnaHQgfHwgaHRtbC5jbGllbnRIZWlnaHQ7XHJcbiAgICBjb25zdCB3aW5kb3dXaWR0aCA9IHdpbmRvdy5pbm5lcldpZHRoIHx8IGh0bWwuY2xpZW50V2lkdGg7XHJcblxyXG4gICAgcmV0dXJuIChcclxuICAgICAgdGFyZ2V0RWxCQ1IubGVmdCA+PSAwICYmXHJcbiAgICAgIHRhcmdldEVsQkNSLnRvcCA+PSAwICYmXHJcbiAgICAgIHRhcmdldEVsQkNSLnJpZ2h0IDw9IHdpbmRvd1dpZHRoICYmXHJcbiAgICAgIHRhcmdldEVsQkNSLmJvdHRvbSA8PSB3aW5kb3dIZWlnaHRcclxuICAgICk7XHJcbiAgfVxyXG59XHJcblxyXG4vKipcclxuICogUGxhY2VtZW50IFNlcGFyYXRvciBSZWdleFxyXG4gKi9cclxuY29uc3QgcGxhY2VtZW50U2VwYXJhdG9yID0gL1xccysvO1xyXG4vKipcclxuICogR2xvYmFsIFBvc2l0aW9uIFNlcnZpY2VcclxuICovXHJcbmV4cG9ydCBjb25zdCBwb3NpdGlvblNlcnZpY2UgPSBuZXcgUG9zaXRpb25pbmcoKTtcclxuXHJcbi8qKlxyXG4gKiBBY2NlcHQgdGhlIHBsYWNlbWVudCBhcnJheSBhbmQgYXBwbGllcyB0aGUgYXBwcm9wcmlhdGUgcGxhY2VtZW50IGRlcGVuZGVudCBvbiB0aGUgdmlld3BvcnQuXHJcbiAqIFJldHVybnMgdGhlIGFwcGxpZWQgcGxhY2VtZW50LlxyXG4gKiBJbiBjYXNlIG9mIGF1dG8gcGxhY2VtZW50LCBwbGFjZW1lbnRzIGFyZSBzZWxlY3RlZCBpbiBvcmRlclxyXG4gKiAgICd0b3AnLCAnYm90dG9tJywgJ2xlZnQnLCAncmlnaHQnLFxyXG4gKiAgICd0b3AtbGVmdCcsICd0b3AtcmlnaHQnLFxyXG4gKiAgICdib3R0b20tbGVmdCcsICdib3R0b20tcmlnaHQnLFxyXG4gKiAgICdsZWZ0LXRvcCcsICdsZWZ0LWJvdHRvbScsXHJcbiAqICAgJ3JpZ2h0LXRvcCcsICdyaWdodC1ib3R0b20nLlxyXG4gKi9cclxuZXhwb3J0IGZ1bmN0aW9uIHBvc2l0aW9uRWxlbWVudHMoXHJcbiAgaG9zdEVsZW1lbnQ6IEhUTUxFbGVtZW50LFxyXG4gIHRhcmdldEVsZW1lbnQ6IEhUTUxFbGVtZW50LFxyXG4gIHBsYWNlbWVudDogc3RyaW5nIHwgUGxhY2VtZW50IHwgUGxhY2VtZW50QXJyYXksXHJcbiAgYXBwZW5kVG9Cb2R5PzogYm9vbGVhbixcclxuICBiYXNlQ2xhc3M/OiBzdHJpbmdcclxuKTogUGxhY2VtZW50IHwgbnVsbCB7XHJcbiAgY29uc3QgcGxhY2VtZW50VmFsczogQXJyYXk8UGxhY2VtZW50PiA9IEFycmF5LmlzQXJyYXkocGxhY2VtZW50KVxyXG4gICAgPyBwbGFjZW1lbnRcclxuICAgIDogKHBsYWNlbWVudC5zcGxpdChwbGFjZW1lbnRTZXBhcmF0b3IpIGFzIEFycmF5PFBsYWNlbWVudD4pO1xyXG5cclxuICBjb25zdCBhbGxvd2VkUGxhY2VtZW50cyA9IFtcclxuICAgICd0b3AnLFxyXG4gICAgJ2JvdHRvbScsXHJcbiAgICAnbGVmdCcsXHJcbiAgICAncmlnaHQnLFxyXG4gICAgJ3RvcC1sZWZ0JyxcclxuICAgICd0b3AtcmlnaHQnLFxyXG4gICAgJ2JvdHRvbS1sZWZ0JyxcclxuICAgICdib3R0b20tcmlnaHQnLFxyXG4gICAgJ2xlZnQtdG9wJyxcclxuICAgICdsZWZ0LWJvdHRvbScsXHJcbiAgICAncmlnaHQtdG9wJyxcclxuICAgICdyaWdodC1ib3R0b20nLFxyXG4gIF07XHJcblxyXG4gIGNvbnN0IGNsYXNzTGlzdCA9IHRhcmdldEVsZW1lbnQuY2xhc3NMaXN0O1xyXG4gIGNvbnN0IGFkZENsYXNzZXNUb1RhcmdldCA9ICh0YXJnZXRQbGFjZW1lbnQ6IFBsYWNlbWVudCk6IEFycmF5PHN0cmluZz4gPT4ge1xyXG4gICAgY29uc3QgW3ByaW1hcnksIHNlY29uZGFyeV0gPSB0YXJnZXRQbGFjZW1lbnQuc3BsaXQoJy0nKTtcclxuICAgIGNvbnN0IGNsYXNzZXM6IHN0cmluZ1tdID0gW107XHJcbiAgICBpZiAoYmFzZUNsYXNzKSB7XHJcbiAgICAgIGNsYXNzZXMucHVzaChgJHtiYXNlQ2xhc3N9LSR7cHJpbWFyeX1gKTtcclxuICAgICAgaWYgKHNlY29uZGFyeSkge1xyXG4gICAgICAgIGNsYXNzZXMucHVzaChgJHtiYXNlQ2xhc3N9LSR7cHJpbWFyeX0tJHtzZWNvbmRhcnl9YCk7XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIGNsYXNzZXMuZm9yRWFjaCgoY2xhc3NuYW1lKSA9PiB7XHJcbiAgICAgICAgY2xhc3NMaXN0LmFkZChjbGFzc25hbWUpO1xyXG4gICAgICB9KTtcclxuICAgIH1cclxuICAgIHJldHVybiBjbGFzc2VzO1xyXG4gIH07XHJcblxyXG4gIC8vIFJlbW92ZSBvbGQgcGxhY2VtZW50IGNsYXNzZXMgdG8gYXZvaWQgaXNzdWVzXHJcbiAgaWYgKGJhc2VDbGFzcykge1xyXG4gICAgYWxsb3dlZFBsYWNlbWVudHMuZm9yRWFjaCgocGxhY2VtZW50VG9SZW1vdmUpID0+IHtcclxuICAgICAgY2xhc3NMaXN0LnJlbW92ZShgJHtiYXNlQ2xhc3N9LSR7cGxhY2VtZW50VG9SZW1vdmV9YCk7XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIC8vIHJlcGxhY2UgYXV0byBwbGFjZW1lbnQgd2l0aCBvdGhlciBwbGFjZW1lbnRzXHJcbiAgbGV0IGhhc0F1dG8gPSBwbGFjZW1lbnRWYWxzLmZpbmRJbmRleCgodmFsKSA9PiB2YWwgPT09ICdhdXRvJyk7XHJcbiAgaWYgKGhhc0F1dG8gPj0gMCkge1xyXG4gICAgYWxsb3dlZFBsYWNlbWVudHMuZm9yRWFjaChmdW5jdGlvbiAob2JqKSB7XHJcbiAgICAgIGlmIChwbGFjZW1lbnRWYWxzLmZpbmQoKHZhbCkgPT4gdmFsLnNlYXJjaCgnXicgKyBvYmopICE9PSAtMSkgPT0gbnVsbCkge1xyXG4gICAgICAgIHBsYWNlbWVudFZhbHMuc3BsaWNlKGhhc0F1dG8rKywgMSwgb2JqIGFzIFBsYWNlbWVudCk7XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgLy8gY29vcmRpbmF0ZXMgd2hlcmUgdG8gcG9zaXRpb25cclxuXHJcbiAgLy8gUmVxdWlyZWQgZm9yIHRyYW5zZm9ybTpcclxuICBjb25zdCBzdHlsZSA9IHRhcmdldEVsZW1lbnQuc3R5bGU7XHJcbiAgc3R5bGUucG9zaXRpb24gPSAnYWJzb2x1dGUnO1xyXG4gIHN0eWxlLnRvcCA9ICcwJztcclxuICBzdHlsZS5sZWZ0ID0gJzAnO1xyXG4gIHN0eWxlWyd3aWxsLWNoYW5nZSddID0gJ3RyYW5zZm9ybSc7XHJcblxyXG4gIGxldCB0ZXN0UGxhY2VtZW50OiBQbGFjZW1lbnQgfCBudWxsID0gbnVsbDtcclxuICBsZXQgaXNJblZpZXdwb3J0ID0gZmFsc2U7XHJcbiAgZm9yICh0ZXN0UGxhY2VtZW50IG9mIHBsYWNlbWVudFZhbHMpIHtcclxuICAgIGNvbnN0IGFkZGVkQ2xhc3NlcyA9IGFkZENsYXNzZXNUb1RhcmdldCh0ZXN0UGxhY2VtZW50KTtcclxuXHJcbiAgICBpZiAoXHJcbiAgICAgIHBvc2l0aW9uU2VydmljZS5wb3NpdGlvbkVsZW1lbnRzKFxyXG4gICAgICAgIGhvc3RFbGVtZW50LFxyXG4gICAgICAgIHRhcmdldEVsZW1lbnQsXHJcbiAgICAgICAgdGVzdFBsYWNlbWVudCxcclxuICAgICAgICBhcHBlbmRUb0JvZHlcclxuICAgICAgKVxyXG4gICAgKSB7XHJcbiAgICAgIGlzSW5WaWV3cG9ydCA9IHRydWU7XHJcbiAgICAgIGJyZWFrO1xyXG4gICAgfVxyXG5cclxuICAgIC8vIFJlbW92ZSB0aGUgYmFzZUNsYXNzZXMgZm9yIGZ1cnRoZXIgY2FsY3VsYXRpb25cclxuICAgIGlmIChiYXNlQ2xhc3MpIHtcclxuICAgICAgYWRkZWRDbGFzc2VzLmZvckVhY2goKGNsYXNzbmFtZSkgPT4ge1xyXG4gICAgICAgIGNsYXNzTGlzdC5yZW1vdmUoY2xhc3NuYW1lKTtcclxuICAgICAgfSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBpZiAoIWlzSW5WaWV3cG9ydCkge1xyXG4gICAgLy8gSWYgbm90aGluZyBtYXRjaCwgdGhlIGZpcnN0IHBsYWNlbWVudCBpcyB0aGUgZGVmYXVsdCBvbmVcclxuICAgIHRlc3RQbGFjZW1lbnQgPSBwbGFjZW1lbnRWYWxzWzBdO1xyXG4gICAgYWRkQ2xhc3Nlc1RvVGFyZ2V0KHRlc3RQbGFjZW1lbnQpO1xyXG4gICAgcG9zaXRpb25TZXJ2aWNlLnBvc2l0aW9uRWxlbWVudHMoXHJcbiAgICAgIGhvc3RFbGVtZW50LFxyXG4gICAgICB0YXJnZXRFbGVtZW50LFxyXG4gICAgICB0ZXN0UGxhY2VtZW50LFxyXG4gICAgICBhcHBlbmRUb0JvZHlcclxuICAgICk7XHJcbiAgfVxyXG5cclxuICByZXR1cm4gdGVzdFBsYWNlbWVudDtcclxufVxyXG5cclxuLyoqXHJcbiAqIFBsYWNlbWVudCBUeXBlblxyXG4gKi9cclxuZXhwb3J0IHR5cGUgUGxhY2VtZW50ID1cclxuICB8ICdhdXRvJ1xyXG4gIHwgJ3RvcCdcclxuICB8ICdib3R0b20nXHJcbiAgfCAnbGVmdCdcclxuICB8ICdyaWdodCdcclxuICB8ICd0b3AtbGVmdCdcclxuICB8ICd0b3AtcmlnaHQnXHJcbiAgfCAnYm90dG9tLWxlZnQnXHJcbiAgfCAnYm90dG9tLXJpZ2h0J1xyXG4gIHwgJ2xlZnQtdG9wJ1xyXG4gIHwgJ2xlZnQtYm90dG9tJ1xyXG4gIHwgJ3JpZ2h0LXRvcCdcclxuICB8ICdyaWdodC1ib3R0b20nO1xyXG5cclxuLyoqXHJcbiAqIFBsYWNlbWVudCBBcnJheVxyXG4gKi9cclxuZXhwb3J0IHR5cGUgUGxhY2VtZW50QXJyYXkgPSBQbGFjZW1lbnQgfCBBcnJheTxQbGFjZW1lbnQ+IHwgc3RyaW5nO1xyXG4iXX0=
|
|
58
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJQb3NpdGlvbmluZyIsImdldEFsbFN0eWxlcyIsImVsZW1lbnQiLCJjb3ZfMzhreGJuZDliIiwiZiIsInMiLCJ3aW5kb3ciLCJnZXRDb21wdXRlZFN0eWxlIiwiZ2V0U3R5bGUiLCJwcm9wIiwiaXNTdGF0aWNQb3NpdGlvbmVkIiwiYiIsIm9mZnNldFBhcmVudCIsIm9mZnNldFBhcmVudEVsIiwiZG9jdW1lbnQiLCJkb2N1bWVudEVsZW1lbnQiLCJwb3NpdGlvbiIsInJvdW5kIiwiZWxQb3NpdGlvbiIsInBhcmVudE9mZnNldCIsIndpZHRoIiwiaGVpZ2h0IiwidG9wIiwiYm90dG9tIiwibGVmdCIsInJpZ2h0IiwiZ2V0Qm91bmRpbmdDbGllbnRSZWN0Iiwib2Zmc2V0IiwiY2xpZW50VG9wIiwiY2xpZW50TGVmdCIsIk1hdGgiLCJlbEJjciIsInZpZXdwb3J0T2Zmc2V0IiwicGFnZVlPZmZzZXQiLCJwYWdlWE9mZnNldCIsImVsT2Zmc2V0Iiwib2Zmc2V0SGVpZ2h0Iiwib2Zmc2V0V2lkdGgiLCJwb3NpdGlvbkVsZW1lbnRzIiwiaG9zdEVsZW1lbnQiLCJ0YXJnZXRFbGVtZW50IiwicGxhY2VtZW50IiwiYXBwZW5kVG9Cb2R5IiwicGxhY2VtZW50UHJpbWFyeSIsInBsYWNlbWVudFNlY29uZGFyeSIsInNwbGl0IiwiaG9zdEVsUG9zaXRpb24iLCJ0YXJnZXRFbFN0eWxlcyIsIm1hcmdpblRvcCIsInBhcnNlRmxvYXQiLCJtYXJnaW5Cb3R0b20iLCJtYXJnaW5MZWZ0IiwibWFyZ2luUmlnaHQiLCJ0b3BQb3NpdGlvbiIsImxlZnRQb3NpdGlvbiIsInN0eWxlIiwidHJhbnNmb3JtIiwidGFyZ2V0RWxCQ1IiLCJodG1sIiwid2luZG93SGVpZ2h0IiwiaW5uZXJIZWlnaHQiLCJjbGllbnRIZWlnaHQiLCJ3aW5kb3dXaWR0aCIsImlubmVyV2lkdGgiLCJjbGllbnRXaWR0aCIsInBsYWNlbWVudFNlcGFyYXRvciIsInBvc2l0aW9uU2VydmljZSIsImJhc2VDbGFzcyIsInBsYWNlbWVudFZhbHMiLCJBcnJheSIsImlzQXJyYXkiLCJhbGxvd2VkUGxhY2VtZW50cyIsImNsYXNzTGlzdCIsImFkZENsYXNzZXNUb1RhcmdldCIsInRhcmdldFBsYWNlbWVudCIsInByaW1hcnkiLCJzZWNvbmRhcnkiLCJjbGFzc2VzIiwicHVzaCIsImZvckVhY2giLCJjbGFzc25hbWUiLCJhZGQiLCJwbGFjZW1lbnRUb1JlbW92ZSIsInJlbW92ZSIsImhhc0F1dG8iLCJmaW5kSW5kZXgiLCJ2YWwiLCJvYmoiLCJmaW5kIiwic2VhcmNoIiwic3BsaWNlIiwidGVzdFBsYWNlbWVudCIsImlzSW5WaWV3cG9ydCIsImFkZGVkQ2xhc3NlcyJdLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL3NhYy1jb21tb24vc3JjL3V0aWxpdGllcy9wb3NpdGlvbmluZy50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbnRlcmZhY2UgQ2xpZW50UmVjdCB7XHJcbiAgdG9wOiBudW1iZXI7XHJcbiAgYm90dG9tOiBudW1iZXI7XHJcbiAgbGVmdDogbnVtYmVyO1xyXG4gIHJpZ2h0OiBudW1iZXI7XHJcbiAgaGVpZ2h0OiBudW1iZXI7XHJcbiAgd2lkdGg6IG51bWJlcjtcclxufVxyXG5cclxuLyoqXHJcbiAqIFBvc2l0aW9uIFV0aWxpdHkgS2xhc3NlXHJcbiAqIEBzZWUgaHR0cHM6Ly9naXRodWIuY29tL25nLWJvb3RzdHJhcC9uZy1ib290c3RyYXAvYmxvYi9tYXN0ZXIvc3JjL3V0aWwvcG9zaXRpb25pbmcudHNcclxuICovXHJcbmV4cG9ydCBjbGFzcyBQb3NpdGlvbmluZyB7XHJcbiAgLyoqXHJcbiAgICogR2V0IGFsbCBTdHlsZXMgb2YgRWxlbWVudFxyXG4gICAqIEBwYXJhbSBlbGVtZW50IEhUTUwgRWxlbWVudFxyXG4gICAqIEByZXR1cm5zIEFsbCBTdHlsZXMgb2YgZWxlbWVudFxyXG4gICAqL1xyXG4gIHByaXZhdGUgZ2V0QWxsU3R5bGVzKGVsZW1lbnQ6IEhUTUxFbGVtZW50KSB7XHJcbiAgICByZXR1cm4gd2luZG93LmdldENvbXB1dGVkU3R5bGUoZWxlbWVudCk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBHZXQgU3R5bGUgdmFsdWUgb2YgZWxlbWVudFxyXG4gICAqIEBwYXJhbSBlbGVtZW50IEhUTUwgRWxlbWVudFxyXG4gICAqIEBwYXJhbSBwcm9wIFN0eWxlXHJcbiAgICogQHJldHVybnMgVmFsdWUgb2YgU3R5bGVcclxuICAgKi9cclxuICBwcml2YXRlIGdldFN0eWxlKGVsZW1lbnQ6IEhUTUxFbGVtZW50LCBwcm9wOiBzdHJpbmcpOiBzdHJpbmcge1xyXG4gICAgcmV0dXJuIHRoaXMuZ2V0QWxsU3R5bGVzKGVsZW1lbnQpW3Byb3BdO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogQ2hlY2sgaWYgdGhlIGVsZW1lbnQgaGFzIGFuIHN0YXRpYyBwb3NpdGlvblxyXG4gICAqIEBwYXJhbSBlbGVtZW50IEhUTUwgRWxlbWVudFxyXG4gICAqIEByZXR1cm5zIEl0ZW0gaGFzIGEgc3RhdGljIHBvc2l0aW9uXHJcbiAgICovXHJcbiAgcHJpdmF0ZSBpc1N0YXRpY1Bvc2l0aW9uZWQoZWxlbWVudDogSFRNTEVsZW1lbnQpOiBib29sZWFuIHtcclxuICAgIHJldHVybiAodGhpcy5nZXRTdHlsZShlbGVtZW50LCAncG9zaXRpb24nKSB8fCAnc3RhdGljJykgPT09ICdzdGF0aWMnO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogR2V0IHRoZSBPZmZzZXQgb2YgdGhlIHBhcmVudCBlbGVtZW50XHJcbiAgICogQHBhcmFtIGVsZW1lbnQgSFRNTCBFbGVtZW50XHJcbiAgICogQHJldHVybnMgSFRNTCBFTGVtZW50XHJcbiAgICovXHJcbiAgcHJpdmF0ZSBvZmZzZXRQYXJlbnQoZWxlbWVudDogSFRNTEVsZW1lbnQpOiBIVE1MRWxlbWVudCB7XHJcbiAgICBsZXQgb2Zmc2V0UGFyZW50RWwgPVxyXG4gICAgICA8SFRNTEVsZW1lbnQ+ZWxlbWVudC5vZmZzZXRQYXJlbnQgfHwgZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50O1xyXG5cclxuICAgIHdoaWxlIChcclxuICAgICAgb2Zmc2V0UGFyZW50RWwgJiZcclxuICAgICAgb2Zmc2V0UGFyZW50RWwgIT09IGRvY3VtZW50LmRvY3VtZW50RWxlbWVudCAmJlxyXG4gICAgICB0aGlzLmlzU3RhdGljUG9zaXRpb25lZChvZmZzZXRQYXJlbnRFbClcclxuICAgICkge1xyXG4gICAgICBvZmZzZXRQYXJlbnRFbCA9IDxIVE1MRWxlbWVudD5vZmZzZXRQYXJlbnRFbC5vZmZzZXRQYXJlbnQ7XHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuIG9mZnNldFBhcmVudEVsIHx8IGRvY3VtZW50LmRvY3VtZW50RWxlbWVudDtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIEdldCBFbGVtZW50IFBvc2l0aW9uXHJcbiAgICogQHBhcmFtIGVsZW1lbnQgSFRNTCBFbGVtZW50IGZvciBQb3NpdGlvblxyXG4gICAqIEBwYXJhbSByb3VuZCBSb3VuZCBWYWx1ZXNcclxuICAgKiBAcmV0dXJucyBQb3NpdGlvbiBWYWx1ZXNcclxuICAgKi9cclxuICBwb3NpdGlvbihlbGVtZW50OiBIVE1MRWxlbWVudCwgcm91bmQgPSB0cnVlKTogQ2xpZW50UmVjdCB7XHJcbiAgICBsZXQgZWxQb3NpdGlvbjogQ2xpZW50UmVjdDtcclxuICAgIGxldCBwYXJlbnRPZmZzZXQ6IENsaWVudFJlY3QgPSB7XHJcbiAgICAgIHdpZHRoOiAwLFxyXG4gICAgICBoZWlnaHQ6IDAsXHJcbiAgICAgIHRvcDogMCxcclxuICAgICAgYm90dG9tOiAwLFxyXG4gICAgICBsZWZ0OiAwLFxyXG4gICAgICByaWdodDogMCxcclxuICAgIH07XHJcblxyXG4gICAgaWYgKHRoaXMuZ2V0U3R5bGUoZWxlbWVudCwgJ3Bvc2l0aW9uJykgPT09ICdmaXhlZCcpIHtcclxuICAgICAgZWxQb3NpdGlvbiA9IGVsZW1lbnQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7XHJcbiAgICAgIGVsUG9zaXRpb24gPSB7XHJcbiAgICAgICAgdG9wOiBlbFBvc2l0aW9uLnRvcCxcclxuICAgICAgICBib3R0b206IGVsUG9zaXRpb24uYm90dG9tLFxyXG4gICAgICAgIGxlZnQ6IGVsUG9zaXRpb24ubGVmdCxcclxuICAgICAgICByaWdodDogZWxQb3NpdGlvbi5yaWdodCxcclxuICAgICAgICBoZWlnaHQ6IGVsUG9zaXRpb24uaGVpZ2h0LFxyXG4gICAgICAgIHdpZHRoOiBlbFBvc2l0aW9uLndpZHRoLFxyXG4gICAgICB9O1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgY29uc3Qgb2Zmc2V0UGFyZW50RWwgPSB0aGlzLm9mZnNldFBhcmVudChlbGVtZW50KTtcclxuXHJcbiAgICAgIGVsUG9zaXRpb24gPSB0aGlzLm9mZnNldChlbGVtZW50LCBmYWxzZSk7XHJcblxyXG4gICAgICBpZiAob2Zmc2V0UGFyZW50RWwgIT09IGRvY3VtZW50LmRvY3VtZW50RWxlbWVudCkge1xyXG4gICAgICAgIHBhcmVudE9mZnNldCA9IHRoaXMub2Zmc2V0KG9mZnNldFBhcmVudEVsLCBmYWxzZSk7XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIHBhcmVudE9mZnNldC50b3AgKz0gb2Zmc2V0UGFyZW50RWwuY2xpZW50VG9wO1xyXG4gICAgICBwYXJlbnRPZmZzZXQubGVmdCArPSBvZmZzZXRQYXJlbnRFbC5jbGllbnRMZWZ0O1xyXG4gICAgfVxyXG5cclxuICAgIGVsUG9zaXRpb24udG9wIC09IHBhcmVudE9mZnNldC50b3A7XHJcbiAgICBlbFBvc2l0aW9uLmJvdHRvbSAtPSBwYXJlbnRPZmZzZXQudG9wO1xyXG4gICAgZWxQb3NpdGlvbi5sZWZ0IC09IHBhcmVudE9mZnNldC5sZWZ0O1xyXG4gICAgZWxQb3NpdGlvbi5yaWdodCAtPSBwYXJlbnRPZmZzZXQubGVmdDtcclxuXHJcbiAgICBpZiAocm91bmQpIHtcclxuICAgICAgZWxQb3NpdGlvbi50b3AgPSBNYXRoLnJvdW5kKGVsUG9zaXRpb24udG9wKTtcclxuICAgICAgZWxQb3NpdGlvbi5ib3R0b20gPSBNYXRoLnJvdW5kKGVsUG9zaXRpb24uYm90dG9tKTtcclxuICAgICAgZWxQb3NpdGlvbi5sZWZ0ID0gTWF0aC5yb3VuZChlbFBvc2l0aW9uLmxlZnQpO1xyXG4gICAgICBlbFBvc2l0aW9uLnJpZ2h0ID0gTWF0aC5yb3VuZChlbFBvc2l0aW9uLnJpZ2h0KTtcclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4gZWxQb3NpdGlvbjtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIEdldCBPZmZzZXQgb2YgSXRlbVxyXG4gICAqIEBwYXJhbSBlbGVtZW50IEhUTUwgRWxlbWVudCBmb3IgT2Zmc2V0XHJcbiAgICogQHBhcmFtIHJvdW5kIFJvdW5kIHRoZSBWYWx1ZXNcclxuICAgKiBAcmV0dXJucyBSZXR1cm4gT2Zmc2V0IFBvc2l0aW9uXHJcbiAgICovXHJcbiAgb2Zmc2V0KGVsZW1lbnQ6IEhUTUxFbGVtZW50LCByb3VuZCA9IHRydWUpOiBDbGllbnRSZWN0IHtcclxuICAgIGNvbnN0IGVsQmNyID0gZWxlbWVudC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtcclxuICAgIGNvbnN0IHZpZXdwb3J0T2Zmc2V0ID0ge1xyXG4gICAgICB0b3A6IHdpbmRvdy5wYWdlWU9mZnNldCAtIGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5jbGllbnRUb3AsXHJcbiAgICAgIGxlZnQ6IHdpbmRvdy5wYWdlWE9mZnNldCAtIGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5jbGllbnRMZWZ0LFxyXG4gICAgfTtcclxuXHJcbiAgICBjb25zdCBlbE9mZnNldCA9IHtcclxuICAgICAgaGVpZ2h0OiBlbEJjci5oZWlnaHQgfHwgZWxlbWVudC5vZmZzZXRIZWlnaHQsXHJcbiAgICAgIHdpZHRoOiBlbEJjci53aWR0aCB8fCBlbGVtZW50Lm9mZnNldFdpZHRoLFxyXG4gICAgICB0b3A6IGVsQmNyLnRvcCArIHZpZXdwb3J0T2Zmc2V0LnRvcCxcclxuICAgICAgYm90dG9tOiBlbEJjci5ib3R0b20gKyB2aWV3cG9ydE9mZnNldC50b3AsXHJcbiAgICAgIGxlZnQ6IGVsQmNyLmxlZnQgKyB2aWV3cG9ydE9mZnNldC5sZWZ0LFxyXG4gICAgICByaWdodDogZWxCY3IucmlnaHQgKyB2aWV3cG9ydE9mZnNldC5sZWZ0LFxyXG4gICAgfTtcclxuXHJcbiAgICBpZiAocm91bmQpIHtcclxuICAgICAgZWxPZmZzZXQuaGVpZ2h0ID0gTWF0aC5yb3VuZChlbE9mZnNldC5oZWlnaHQpO1xyXG4gICAgICBlbE9mZnNldC53aWR0aCA9IE1hdGgucm91bmQoZWxPZmZzZXQud2lkdGgpO1xyXG4gICAgICBlbE9mZnNldC50b3AgPSBNYXRoLnJvdW5kKGVsT2Zmc2V0LnRvcCk7XHJcbiAgICAgIGVsT2Zmc2V0LmJvdHRvbSA9IE1hdGgucm91bmQoZWxPZmZzZXQuYm90dG9tKTtcclxuICAgICAgZWxPZmZzZXQubGVmdCA9IE1hdGgucm91bmQoZWxPZmZzZXQubGVmdCk7XHJcbiAgICAgIGVsT2Zmc2V0LnJpZ2h0ID0gTWF0aC5yb3VuZChlbE9mZnNldC5yaWdodCk7XHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuIGVsT2Zmc2V0O1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogUmV0dXJuIGZhbHNlIGlmIHRoZSBlbGVtZW50IHRvIHBvc2l0aW9uIGlzIG91dHNpZGUgdGhlIHZpZXdwb3J0XHJcbiAgICogQHJldHVybnMgcG9zaXRpb24gaXMgaW5zaWRlIHZpZXdwb3J0XHJcbiAgICovXHJcbiAgcG9zaXRpb25FbGVtZW50cyhcclxuICAgIGhvc3RFbGVtZW50OiBIVE1MRWxlbWVudCxcclxuICAgIHRhcmdldEVsZW1lbnQ6IEhUTUxFbGVtZW50LFxyXG4gICAgcGxhY2VtZW50OiBzdHJpbmcsXHJcbiAgICBhcHBlbmRUb0JvZHk/OiBib29sZWFuXHJcbiAgKTogYm9vbGVhbiB7XHJcbiAgICBjb25zdCBbcGxhY2VtZW50UHJpbWFyeSA9ICd0b3AnLCBwbGFjZW1lbnRTZWNvbmRhcnkgPSAnY2VudGVyJ10gPVxyXG4gICAgICBwbGFjZW1lbnQuc3BsaXQoJy0nKTtcclxuXHJcbiAgICBjb25zdCBob3N0RWxQb3NpdGlvbiA9IGFwcGVuZFRvQm9keVxyXG4gICAgICA/IHRoaXMub2Zmc2V0KGhvc3RFbGVtZW50LCBmYWxzZSlcclxuICAgICAgOiB0aGlzLnBvc2l0aW9uKGhvc3RFbGVtZW50LCBmYWxzZSk7XHJcbiAgICBjb25zdCB0YXJnZXRFbFN0eWxlcyA9IHRoaXMuZ2V0QWxsU3R5bGVzKHRhcmdldEVsZW1lbnQpO1xyXG5cclxuICAgIGNvbnN0IG1hcmdpblRvcCA9IHBhcnNlRmxvYXQodGFyZ2V0RWxTdHlsZXMubWFyZ2luVG9wKTtcclxuICAgIGNvbnN0IG1hcmdpbkJvdHRvbSA9IHBhcnNlRmxvYXQodGFyZ2V0RWxTdHlsZXMubWFyZ2luQm90dG9tKTtcclxuICAgIGNvbnN0IG1hcmdpbkxlZnQgPSBwYXJzZUZsb2F0KHRhcmdldEVsU3R5bGVzLm1hcmdpbkxlZnQpO1xyXG4gICAgY29uc3QgbWFyZ2luUmlnaHQgPSBwYXJzZUZsb2F0KHRhcmdldEVsU3R5bGVzLm1hcmdpblJpZ2h0KTtcclxuXHJcbiAgICBsZXQgdG9wUG9zaXRpb24gPSAwO1xyXG4gICAgbGV0IGxlZnRQb3NpdGlvbiA9IDA7XHJcblxyXG4gICAgc3dpdGNoIChwbGFjZW1lbnRQcmltYXJ5KSB7XHJcbiAgICAgIGNhc2UgJ3RvcCc6XHJcbiAgICAgICAgdG9wUG9zaXRpb24gPVxyXG4gICAgICAgICAgaG9zdEVsUG9zaXRpb24udG9wIC1cclxuICAgICAgICAgICh0YXJnZXRFbGVtZW50Lm9mZnNldEhlaWdodCArIG1hcmdpblRvcCArIG1hcmdpbkJvdHRvbSk7XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIGNhc2UgJ2JvdHRvbSc6XHJcbiAgICAgICAgdG9wUG9zaXRpb24gPSBob3N0RWxQb3NpdGlvbi50b3AgKyBob3N0RWxQb3NpdGlvbi5oZWlnaHQ7XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIGNhc2UgJ2xlZnQnOlxyXG4gICAgICAgIGxlZnRQb3NpdGlvbiA9XHJcbiAgICAgICAgICBob3N0RWxQb3NpdGlvbi5sZWZ0IC1cclxuICAgICAgICAgICh0YXJnZXRFbGVtZW50Lm9mZnNldFdpZHRoICsgbWFyZ2luTGVmdCArIG1hcmdpblJpZ2h0KTtcclxuICAgICAgICBicmVhaztcclxuICAgICAgY2FzZSAncmlnaHQnOlxyXG4gICAgICAgIGxlZnRQb3NpdGlvbiA9IGhvc3RFbFBvc2l0aW9uLmxlZnQgKyBob3N0RWxQb3NpdGlvbi53aWR0aDtcclxuICAgICAgICBicmVhaztcclxuICAgIH1cclxuXHJcbiAgICBzd2l0Y2ggKHBsYWNlbWVudFNlY29uZGFyeSkge1xyXG4gICAgICBjYXNlICd0b3AnOlxyXG4gICAgICAgIHRvcFBvc2l0aW9uID0gaG9zdEVsUG9zaXRpb24udG9wO1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICBjYXNlICdib3R0b20nOlxyXG4gICAgICAgIHRvcFBvc2l0aW9uID1cclxuICAgICAgICAgIGhvc3RFbFBvc2l0aW9uLnRvcCArXHJcbiAgICAgICAgICBob3N0RWxQb3NpdGlvbi5oZWlnaHQgLVxyXG4gICAgICAgICAgdGFyZ2V0RWxlbWVudC5vZmZzZXRIZWlnaHQ7XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIGNhc2UgJ2xlZnQnOlxyXG4gICAgICAgIGxlZnRQb3NpdGlvbiA9IGhvc3RFbFBvc2l0aW9uLmxlZnQ7XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIGNhc2UgJ3JpZ2h0JzpcclxuICAgICAgICBsZWZ0UG9zaXRpb24gPVxyXG4gICAgICAgICAgaG9zdEVsUG9zaXRpb24ubGVmdCArXHJcbiAgICAgICAgICBob3N0RWxQb3NpdGlvbi53aWR0aCAtXHJcbiAgICAgICAgICB0YXJnZXRFbGVtZW50Lm9mZnNldFdpZHRoO1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICBjYXNlICdjZW50ZXInOlxyXG4gICAgICAgIGlmIChwbGFjZW1lbnRQcmltYXJ5ID09PSAndG9wJyB8fCBwbGFjZW1lbnRQcmltYXJ5ID09PSAnYm90dG9tJykge1xyXG4gICAgICAgICAgbGVmdFBvc2l0aW9uID1cclxuICAgICAgICAgICAgaG9zdEVsUG9zaXRpb24ubGVmdCArXHJcbiAgICAgICAgICAgIGhvc3RFbFBvc2l0aW9uLndpZHRoIC8gMiAtXHJcbiAgICAgICAgICAgIHRhcmdldEVsZW1lbnQub2Zmc2V0V2lkdGggLyAyO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICB0b3BQb3NpdGlvbiA9XHJcbiAgICAgICAgICAgIGhvc3RFbFBvc2l0aW9uLnRvcCArXHJcbiAgICAgICAgICAgIGhvc3RFbFBvc2l0aW9uLmhlaWdodCAvIDIgLVxyXG4gICAgICAgICAgICB0YXJnZXRFbGVtZW50Lm9mZnNldEhlaWdodCAvIDI7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgfVxyXG5cclxuICAgIC8vLyBUaGUgdHJhbnNsYXRlM2QvZ3B1IGFjY2VsZXJhdGlvbiByZW5kZXIgYSBibHVycnkgdGV4dCBvbiBjaHJvbWUsIHRoZSBuZXh0IGxpbmUgaXMgY29tbWVudGVkIHVudGlsIGEgYnJvd3NlciBmaXhcclxuICAgIC8vIHRhcmdldEVsZW1lbnQuc3R5bGUudHJhbnNmb3JtID0gYHRyYW5zbGF0ZTNkKCR7TWF0aC5yb3VuZChsZWZ0UG9zaXRpb24pfXB4LCAke01hdGguZmxvb3IodG9wUG9zaXRpb24pfXB4LCAwcHgpYDtcclxuICAgIHRhcmdldEVsZW1lbnQuc3R5bGUudHJhbnNmb3JtID0gYHRyYW5zbGF0ZSgke01hdGgucm91bmQoXHJcbiAgICAgIGxlZnRQb3NpdGlvblxyXG4gICAgKX1weCwgJHtNYXRoLnJvdW5kKHRvcFBvc2l0aW9uKX1weClgO1xyXG5cclxuICAgIC8vIENoZWNrIGlmIHRoZSB0YXJnZXRFbGVtZW50IGlzIGluc2lkZSB0aGUgdmlld3BvcnRcclxuICAgIGNvbnN0IHRhcmdldEVsQkNSID0gdGFyZ2V0RWxlbWVudC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtcclxuICAgIGNvbnN0IGh0bWwgPSBkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQ7XHJcbiAgICBjb25zdCB3aW5kb3dIZWlnaHQgPSB3aW5kb3cuaW5uZXJIZWlnaHQgfHwgaHRtbC5jbGllbnRIZWlnaHQ7XHJcbiAgICBjb25zdCB3aW5kb3dXaWR0aCA9IHdpbmRvdy5pbm5lcldpZHRoIHx8IGh0bWwuY2xpZW50V2lkdGg7XHJcblxyXG4gICAgcmV0dXJuIChcclxuICAgICAgdGFyZ2V0RWxCQ1IubGVmdCA+PSAwICYmXHJcbiAgICAgIHRhcmdldEVsQkNSLnRvcCA+PSAwICYmXHJcbiAgICAgIHRhcmdldEVsQkNSLnJpZ2h0IDw9IHdpbmRvd1dpZHRoICYmXHJcbiAgICAgIHRhcmdldEVsQkNSLmJvdHRvbSA8PSB3aW5kb3dIZWlnaHRcclxuICAgICk7XHJcbiAgfVxyXG59XHJcblxyXG4vKipcclxuICogUGxhY2VtZW50IFNlcGFyYXRvciBSZWdleFxyXG4gKi9cclxuY29uc3QgcGxhY2VtZW50U2VwYXJhdG9yID0gL1xccysvO1xyXG4vKipcclxuICogR2xvYmFsIFBvc2l0aW9uIFNlcnZpY2VcclxuICovXHJcbmV4cG9ydCBjb25zdCBwb3NpdGlvblNlcnZpY2UgPSBuZXcgUG9zaXRpb25pbmcoKTtcclxuXHJcbi8qKlxyXG4gKiBBY2NlcHQgdGhlIHBsYWNlbWVudCBhcnJheSBhbmQgYXBwbGllcyB0aGUgYXBwcm9wcmlhdGUgcGxhY2VtZW50IGRlcGVuZGVudCBvbiB0aGUgdmlld3BvcnQuXHJcbiAqIFJldHVybnMgdGhlIGFwcGxpZWQgcGxhY2VtZW50LlxyXG4gKiBJbiBjYXNlIG9mIGF1dG8gcGxhY2VtZW50LCBwbGFjZW1lbnRzIGFyZSBzZWxlY3RlZCBpbiBvcmRlclxyXG4gKiAgICd0b3AnLCAnYm90dG9tJywgJ2xlZnQnLCAncmlnaHQnLFxyXG4gKiAgICd0b3AtbGVmdCcsICd0b3AtcmlnaHQnLFxyXG4gKiAgICdib3R0b20tbGVmdCcsICdib3R0b20tcmlnaHQnLFxyXG4gKiAgICdsZWZ0LXRvcCcsICdsZWZ0LWJvdHRvbScsXHJcbiAqICAgJ3JpZ2h0LXRvcCcsICdyaWdodC1ib3R0b20nLlxyXG4gKi9cclxuZXhwb3J0IGZ1bmN0aW9uIHBvc2l0aW9uRWxlbWVudHMoXHJcbiAgaG9zdEVsZW1lbnQ6IEhUTUxFbGVtZW50LFxyXG4gIHRhcmdldEVsZW1lbnQ6IEhUTUxFbGVtZW50LFxyXG4gIHBsYWNlbWVudDogc3RyaW5nIHwgUGxhY2VtZW50IHwgUGxhY2VtZW50QXJyYXksXHJcbiAgYXBwZW5kVG9Cb2R5PzogYm9vbGVhbixcclxuICBiYXNlQ2xhc3M/OiBzdHJpbmdcclxuKTogUGxhY2VtZW50IHwgbnVsbCB7XHJcbiAgY29uc3QgcGxhY2VtZW50VmFsczogQXJyYXk8UGxhY2VtZW50PiA9IEFycmF5LmlzQXJyYXkocGxhY2VtZW50KVxyXG4gICAgPyBwbGFjZW1lbnRcclxuICAgIDogKHBsYWNlbWVudC5zcGxpdChwbGFjZW1lbnRTZXBhcmF0b3IpIGFzIEFycmF5PFBsYWNlbWVudD4pO1xyXG5cclxuICBjb25zdCBhbGxvd2VkUGxhY2VtZW50cyA9IFtcclxuICAgICd0b3AnLFxyXG4gICAgJ2JvdHRvbScsXHJcbiAgICAnbGVmdCcsXHJcbiAgICAncmlnaHQnLFxyXG4gICAgJ3RvcC1sZWZ0JyxcclxuICAgICd0b3AtcmlnaHQnLFxyXG4gICAgJ2JvdHRvbS1sZWZ0JyxcclxuICAgICdib3R0b20tcmlnaHQnLFxyXG4gICAgJ2xlZnQtdG9wJyxcclxuICAgICdsZWZ0LWJvdHRvbScsXHJcbiAgICAncmlnaHQtdG9wJyxcclxuICAgICdyaWdodC1ib3R0b20nLFxyXG4gIF07XHJcblxyXG4gIGNvbnN0IGNsYXNzTGlzdCA9IHRhcmdldEVsZW1lbnQuY2xhc3NMaXN0O1xyXG4gIGNvbnN0IGFkZENsYXNzZXNUb1RhcmdldCA9ICh0YXJnZXRQbGFjZW1lbnQ6IFBsYWNlbWVudCk6IEFycmF5PHN0cmluZz4gPT4ge1xyXG4gICAgY29uc3QgW3ByaW1hcnksIHNlY29uZGFyeV0gPSB0YXJnZXRQbGFjZW1lbnQuc3BsaXQoJy0nKTtcclxuICAgIGNvbnN0IGNsYXNzZXM6IHN0cmluZ1tdID0gW107XHJcbiAgICBpZiAoYmFzZUNsYXNzKSB7XHJcbiAgICAgIGNsYXNzZXMucHVzaChgJHtiYXNlQ2xhc3N9LSR7cHJpbWFyeX1gKTtcclxuICAgICAgaWYgKHNlY29uZGFyeSkge1xyXG4gICAgICAgIGNsYXNzZXMucHVzaChgJHtiYXNlQ2xhc3N9LSR7cHJpbWFyeX0tJHtzZWNvbmRhcnl9YCk7XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIGNsYXNzZXMuZm9yRWFjaCgoY2xhc3NuYW1lKSA9PiB7XHJcbiAgICAgICAgY2xhc3NMaXN0LmFkZChjbGFzc25hbWUpO1xyXG4gICAgICB9KTtcclxuICAgIH1cclxuICAgIHJldHVybiBjbGFzc2VzO1xyXG4gIH07XHJcblxyXG4gIC8vIFJlbW92ZSBvbGQgcGxhY2VtZW50IGNsYXNzZXMgdG8gYXZvaWQgaXNzdWVzXHJcbiAgaWYgKGJhc2VDbGFzcykge1xyXG4gICAgYWxsb3dlZFBsYWNlbWVudHMuZm9yRWFjaCgocGxhY2VtZW50VG9SZW1vdmUpID0+IHtcclxuICAgICAgY2xhc3NMaXN0LnJlbW92ZShgJHtiYXNlQ2xhc3N9LSR7cGxhY2VtZW50VG9SZW1vdmV9YCk7XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIC8vIHJlcGxhY2UgYXV0byBwbGFjZW1lbnQgd2l0aCBvdGhlciBwbGFjZW1lbnRzXHJcbiAgbGV0IGhhc0F1dG8gPSBwbGFjZW1lbnRWYWxzLmZpbmRJbmRleCgodmFsKSA9PiB2YWwgPT09ICdhdXRvJyk7XHJcbiAgaWYgKGhhc0F1dG8gPj0gMCkge1xyXG4gICAgYWxsb3dlZFBsYWNlbWVudHMuZm9yRWFjaChmdW5jdGlvbiAob2JqKSB7XHJcbiAgICAgIGlmIChwbGFjZW1lbnRWYWxzLmZpbmQoKHZhbCkgPT4gdmFsLnNlYXJjaCgnXicgKyBvYmopICE9PSAtMSkgPT0gbnVsbCkge1xyXG4gICAgICAgIHBsYWNlbWVudFZhbHMuc3BsaWNlKGhhc0F1dG8rKywgMSwgb2JqIGFzIFBsYWNlbWVudCk7XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgLy8gY29vcmRpbmF0ZXMgd2hlcmUgdG8gcG9zaXRpb25cclxuXHJcbiAgLy8gUmVxdWlyZWQgZm9yIHRyYW5zZm9ybTpcclxuICBjb25zdCBzdHlsZSA9IHRhcmdldEVsZW1lbnQuc3R5bGU7XHJcbiAgc3R5bGUucG9zaXRpb24gPSAnYWJzb2x1dGUnO1xyXG4gIHN0eWxlLnRvcCA9ICcwJztcclxuICBzdHlsZS5sZWZ0ID0gJzAnO1xyXG4gIHN0eWxlWyd3aWxsLWNoYW5nZSddID0gJ3RyYW5zZm9ybSc7XHJcblxyXG4gIGxldCB0ZXN0UGxhY2VtZW50OiBQbGFjZW1lbnQgfCBudWxsID0gbnVsbDtcclxuICBsZXQgaXNJblZpZXdwb3J0ID0gZmFsc2U7XHJcbiAgZm9yICh0ZXN0UGxhY2VtZW50IG9mIHBsYWNlbWVudFZhbHMpIHtcclxuICAgIGNvbnN0IGFkZGVkQ2xhc3NlcyA9IGFkZENsYXNzZXNUb1RhcmdldCh0ZXN0UGxhY2VtZW50KTtcclxuXHJcbiAgICBpZiAoXHJcbiAgICAgIHBvc2l0aW9uU2VydmljZS5wb3NpdGlvbkVsZW1lbnRzKFxyXG4gICAgICAgIGhvc3RFbGVtZW50LFxyXG4gICAgICAgIHRhcmdldEVsZW1lbnQsXHJcbiAgICAgICAgdGVzdFBsYWNlbWVudCxcclxuICAgICAgICBhcHBlbmRUb0JvZHlcclxuICAgICAgKVxyXG4gICAgKSB7XHJcbiAgICAgIGlzSW5WaWV3cG9ydCA9IHRydWU7XHJcbiAgICAgIGJyZWFrO1xyXG4gICAgfVxyXG5cclxuICAgIC8vIFJlbW92ZSB0aGUgYmFzZUNsYXNzZXMgZm9yIGZ1cnRoZXIgY2FsY3VsYXRpb25cclxuICAgIGlmIChiYXNlQ2xhc3MpIHtcclxuICAgICAgYWRkZWRDbGFzc2VzLmZvckVhY2goKGNsYXNzbmFtZSkgPT4ge1xyXG4gICAgICAgIGNsYXNzTGlzdC5yZW1vdmUoY2xhc3NuYW1lKTtcclxuICAgICAgfSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBpZiAoIWlzSW5WaWV3cG9ydCkge1xyXG4gICAgLy8gSWYgbm90aGluZyBtYXRjaCwgdGhlIGZpcnN0IHBsYWNlbWVudCBpcyB0aGUgZGVmYXVsdCBvbmVcclxuICAgIHRlc3RQbGFjZW1lbnQgPSBwbGFjZW1lbnRWYWxzWzBdO1xyXG4gICAgYWRkQ2xhc3Nlc1RvVGFyZ2V0KHRlc3RQbGFjZW1lbnQpO1xyXG4gICAgcG9zaXRpb25TZXJ2aWNlLnBvc2l0aW9uRWxlbWVudHMoXHJcbiAgICAgIGhvc3RFbGVtZW50LFxyXG4gICAgICB0YXJnZXRFbGVtZW50LFxyXG4gICAgICB0ZXN0UGxhY2VtZW50LFxyXG4gICAgICBhcHBlbmRUb0JvZHlcclxuICAgICk7XHJcbiAgfVxyXG5cclxuICByZXR1cm4gdGVzdFBsYWNlbWVudDtcclxufVxyXG5cclxuLyoqXHJcbiAqIFBsYWNlbWVudCBUeXBlblxyXG4gKi9cclxuZXhwb3J0IHR5cGUgUGxhY2VtZW50ID1cclxuICB8ICdhdXRvJ1xyXG4gIHwgJ3RvcCdcclxuICB8ICdib3R0b20nXHJcbiAgfCAnbGVmdCdcclxuICB8ICdyaWdodCdcclxuICB8ICd0b3AtbGVmdCdcclxuICB8ICd0b3AtcmlnaHQnXHJcbiAgfCAnYm90dG9tLWxlZnQnXHJcbiAgfCAnYm90dG9tLXJpZ2h0J1xyXG4gIHwgJ2xlZnQtdG9wJ1xyXG4gIHwgJ2xlZnQtYm90dG9tJ1xyXG4gIHwgJ3JpZ2h0LXRvcCdcclxuICB8ICdyaWdodC1ib3R0b20nO1xyXG5cclxuLyoqXHJcbiAqIFBsYWNlbWVudCBBcnJheVxyXG4gKi9cclxuZXhwb3J0IHR5cGUgUGxhY2VtZW50QXJyYXkgPSBQbGFjZW1lbnQgfCBBcnJheTxQbGFjZW1lbnQ+IHwgc3RyaW5nO1xyXG4iXSwibWFwcGluZ3MiOiI7eUZBU0E7OztHQUlBLE1BQU0sTUFBTyxDQUFBQSxXQUFXLENBQ3RCOzs7O09BS1FDLFlBQVlB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
|
|
55
|
+
const style=(cov_1pmkm5ec0z().s[100]++,targetElement.style);cov_1pmkm5ec0z().s[101]++;style.position='absolute';cov_1pmkm5ec0z().s[102]++;style.top='0';cov_1pmkm5ec0z().s[103]++;style.left='0';cov_1pmkm5ec0z().s[104]++;style['will-change']='transform';let testPlacement=(cov_1pmkm5ec0z().s[105]++,null);let isInViewport=(cov_1pmkm5ec0z().s[106]++,false);cov_1pmkm5ec0z().s[107]++;for(testPlacement of placementVals){const addedClasses=(cov_1pmkm5ec0z().s[108]++,addClassesToTarget(testPlacement));cov_1pmkm5ec0z().s[109]++;if(positionService.positionElements(hostElement,targetElement,testPlacement,appendToBody)){cov_1pmkm5ec0z().b[28][0]++;cov_1pmkm5ec0z().s[110]++;isInViewport=true;cov_1pmkm5ec0z().s[111]++;break;}else{cov_1pmkm5ec0z().b[28][1]++;}// Remove the baseClasses for further calculation
|
|
56
|
+
cov_1pmkm5ec0z().s[112]++;if(baseClass){cov_1pmkm5ec0z().b[29][0]++;cov_1pmkm5ec0z().s[113]++;addedClasses.forEach(classname=>{cov_1pmkm5ec0z().f[14]++;cov_1pmkm5ec0z().s[114]++;classList.remove(classname);});}else{cov_1pmkm5ec0z().b[29][1]++;}}cov_1pmkm5ec0z().s[115]++;if(!isInViewport){cov_1pmkm5ec0z().b[30][0]++;cov_1pmkm5ec0z().s[116]++;// If nothing match, the first placement is the default one
|
|
57
|
+
testPlacement=placementVals[0];cov_1pmkm5ec0z().s[117]++;addClassesToTarget(testPlacement);cov_1pmkm5ec0z().s[118]++;positionService.positionElements(hostElement,targetElement,testPlacement,appendToBody);}else{cov_1pmkm5ec0z().b[30][1]++;}cov_1pmkm5ec0z().s[119]++;return testPlacement;}//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicG9zaXRpb25pbmcuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9zYWMtY29tbW9uL3NyYy91dGlsaXRpZXMvcG9zaXRpb25pbmcudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBU0E7OztHQUdHO0FBQ0gsTUFBTSxPQUFPLFdBQVc7SUFDdEI7Ozs7T0FJRztJQUNLLFlBQVksQ0FBQyxPQUFvQjtRQUN2QyxPQUFPLE1BQU0sQ0FBQyxnQkFBZ0IsQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUMxQyxDQUFDO0lBRUQ7Ozs7O09BS0c7SUFDSyxRQUFRLENBQUMsT0FBb0IsRUFBRSxJQUFZO1FBQ2pELE9BQU8sSUFBSSxDQUFDLFlBQVksQ0FBQyxPQUFPLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUMxQyxDQUFDO0lBRUQ7Ozs7T0FJRztJQUNLLGtCQUFrQixDQUFDLE9BQW9CO1FBQzdDLE9BQU8sQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxVQUFVLENBQUMsSUFBSSxRQUFRLENBQUMsS0FBSyxRQUFRLENBQUM7SUFDdkUsQ0FBQztJQUVEOzs7O09BSUc7SUFDSyxZQUFZLENBQUMsT0FBb0I7UUFDdkMsSUFBSSxjQUFjLEdBQ0gsT0FBTyxDQUFDLFlBQVksSUFBSSxRQUFRLENBQUMsZUFBZSxDQUFDO1FBRWhFLE9BQ0UsY0FBYztZQUNkLGNBQWMsS0FBSyxRQUFRLENBQUMsZUFBZTtZQUMzQyxJQUFJLENBQUMsa0JBQWtCLENBQUMsY0FBYyxDQUFDLEVBQ3ZDO1lBQ0EsY0FBYyxHQUFnQixjQUFjLENBQUMsWUFBWSxDQUFDO1NBQzNEO1FBRUQsT0FBTyxjQUFjLElBQUksUUFBUSxDQUFDLGVBQWUsQ0FBQztJQUNwRCxDQUFDO0lBRUQ7Ozs7O09BS0c7SUFDSCxRQUFRLENBQUMsT0FBb0IsRUFBRSxLQUFLLEdBQUcsSUFBSTtRQUN6QyxJQUFJLFVBQXNCLENBQUM7UUFDM0IsSUFBSSxZQUFZLEdB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YUFBYSxDQUFDLEtBQUssQ0FBQztJQUNsQyxLQUFLLENBQUMsUUFBUSxHQUFHLFVBQVUsQ0FBQztJQUM1QixLQUFLLENBQUMsR0FBRyxHQUFHLEdBQUcsQ0FBQztJQUNoQixLQUFLLENBQUMsSUFBSSxHQUFHLEdBQUcsQ0FBQztJQUNqQixLQUFLLENBQUMsYUFBYSxDQUFDLEdBQUcsV0FBVyxDQUFDO0lBRW5DLElBQUksYUFBYSxHQUFxQixJQUFJLENBQUM7SUFDM0MsSUFBSSxZQUFZLEdBQUcsS0FBSyxDQUFDO0lBQ3pCLEtBQUssYUFBYSxJQUFJLGFBQWEsRUFBRTtRQUNuQyxNQUFNLFlBQVksR0FBRyxrQkFBa0IsQ0FBQyxhQUFhLENBQUMsQ0FBQztRQUV2RCxJQUNFLGVBQWUsQ0FBQyxnQkFBZ0IsQ0FDOUIsV0FBVyxFQUNYLGFBQWEsRUFDYixhQUFhLEVBQ2IsWUFBWSxDQUNiLEVBQ0Q7WUFDQSxZQUFZLEdBQUcsSUFBSSxDQUFDO1lBQ3BCLE1BQU07U0FDUDtRQUVELGlEQUFpRDtRQUNqRCxJQUFJLFNBQVMsRUFBRTtZQUNiLFlBQVksQ0FBQyxPQUFPLENBQUMsQ0FBQyxTQUFTLEVBQUUsRUFBRTtnQkFDakMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxTQUFTLENBQUMsQ0FBQztZQUM5QixDQUFDLENBQUMsQ0FBQztTQUNKO0tBQ0Y7SUFFRCxJQUFJLENBQUMsWUFBWSxFQUFFO1FBQ2pCLDJEQUEyRDtRQUMzRCxhQUFhLEdBQUcsYUFBYSxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ2pDLGtCQUFrQixDQUFDLGFBQWEsQ0FBQyxDQUFDO1FBQ2xDLGVBQWUsQ0FBQyxnQkFBZ0IsQ0FDOUIsV0FBVyxFQUNYLGFBQWEsRUFDYixhQUFhLEVBQ2IsWUFBWSxDQUNiLENBQUM7S0FDSDtJQUVELE9BQU8sYUFBYSxDQUFDO0FBQ3ZCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbnRlcmZhY2UgQ2xpZW50UmVjdCB7XG4gIHRvcDogbnVtYmVyO1xuICBib3R0b206IG51bWJlcjtcbiAgbGVmdDogbnVtYmVyO1xuICByaWdodDogbnVtYmVyO1xuICBoZWlnaHQ6IG51bWJlcjtcbiAgd2lkdGg6IG51bWJlcjtcbn1cblxuLyoqXG4gKiBQb3NpdGlvbiBVdGlsaXR5IEtsYXNzZVxuICogQHNlZSBodHRwczovL2dpdGh1Yi5jb20vbmctYm9vdHN0cmFwL25nLWJvb3RzdHJhcC9ibG9iL21hc3Rlci9zcmMvdXRpbC9wb3NpdGlvbmluZy50c1xuICovXG5leHBvcnQgY2xhc3MgUG9zaXRpb25pbmcge1xuICAvKipcbiAgICogR2V0IGFsbCBTdHlsZXMgb2YgRWxlbWVudFxuICAgKiBAcGFyYW0gZWxlbWVudCBIVE1MIEVsZW1lbnRcbiAgICogQHJldHVybnMgQWxsIFN0eWxlcyBvZiBlbGVtZW50XG4gICAqL1xuICBwcml2YXRlIGdldEFsbFN0eWxlcyhlbGVtZW50OiBIVE1MRWxlbWVudCkge1xuICAgIHJldHVybiB3aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZShlbGVtZW50KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXQgU3R5bGUgdmFsdWUgb2YgZWxlbWVudFxuICAgKiBAcGFyYW0gZWxlbWVudCBIVE1MIEVsZW1lbnRcbiAgICogQHBhcmFtIHByb3AgU3R5bGVcbiAgICogQHJldHVybnMgVmFsdWUgb2YgU3R5bGVcbiAgICovXG4gIHByaXZhdGUgZ2V0U3R5bGUoZWxlbWVudDogSFRNTEVsZW1lbnQsIHByb3A6IHN0cmluZyk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMuZ2V0QWxsU3R5bGVzKGVsZW1lbnQpW3Byb3BdO1xuICB9XG5cbiAgLyoqXG4gICAqIENoZWNrIGlmIHRoZSBlbGVtZW50IGhhcyBhbiBzdGF0aWMgcG9zaXRpb25cbiAgICogQHBhcmFtIGVsZW1lbnQgSFRNTCBFbGVtZW50XG4gICAqIEByZXR1cm5zIEl0ZW0gaGFzIGEgc3RhdGljIHBvc2l0aW9uXG4gICAqL1xuICBwcml2YXRlIGlzU3RhdGljUG9zaXRpb25lZChlbGVtZW50OiBIVE1MRWxlbWVudCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiAodGhpcy5nZXRTdHlsZShlbGVtZW50LCAncG9zaXRpb24nKSB8fCAnc3RhdGljJykgPT09ICdzdGF0aWMnO1xuICB9XG5cbiAgLyoqXG4gICAqIEdldCB0aGUgT2Zmc2V0IG9mIHRoZSBwYXJlbnQgZWxlbWVudFxuICAgKiBAcGFyYW0gZWxlbWVudCBIVE1MIEVsZW1lbnRcbiAgICogQHJldHVybnMgSFRNTCBFTGVtZW50XG4gICAqL1xuICBwcml2YXRlIG9mZnNldFBhcmVudChlbGVtZW50OiBIVE1MRWxlbWVudCk6IEhUTUxFbGVtZW50IHtcbiAgICBsZXQgb2Zmc2V0UGFyZW50RWwgPVxuICAgICAgPEhUTUxFbGVtZW50PmVsZW1lbnQub2Zmc2V0UGFyZW50IHx8IGRvY3VtZW50LmRvY3VtZW50RWxlbWVudDtcblxuICAgIHdoaWxlIChcbiAgICAgIG9mZnNldFBhcmVudEVsICYmXG4gICAgICBvZmZzZXRQYXJlbnRFbCAhPT0gZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50ICYmXG4gICAgICB0aGlzLmlzU3RhdGljUG9zaXRpb25lZChvZmZzZXRQYXJlbnRFbClcbiAgICApIHtcbiAgICAgIG9mZnNldFBhcmVudEVsID0gPEhUTUxFbGVtZW50Pm9mZnNldFBhcmVudEVsLm9mZnNldFBhcmVudDtcbiAgICB9XG5cbiAgICByZXR1cm4gb2Zmc2V0UGFyZW50RWwgfHwgZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50O1xuICB9XG5cbiAgLyoqXG4gICAqIEdldCBFbGVtZW50IFBvc2l0aW9uXG4gICAqIEBwYXJhbSBlbGVtZW50IEhUTUwgRWxlbWVudCBmb3IgUG9zaXRpb25cbiAgICogQHBhcmFtIHJvdW5kIFJvdW5kIFZhbHVlc1xuICAgKiBAcmV0dXJucyBQb3NpdGlvbiBWYWx1ZXNcbiAgICovXG4gIHBvc2l0aW9uKGVsZW1lbnQ6IEhUTUxFbGVtZW50LCByb3VuZCA9IHRydWUpOiBDbGllbnRSZWN0IHtcbiAgICBsZXQgZWxQb3NpdGlvbjogQ2xpZW50UmVjdDtcbiAgICBsZXQgcGFyZW50T2Zmc2V0OiBDbGllbnRSZWN0ID0ge1xuICAgICAgd2lkdGg6IDAsXG4gICAgICBoZWlnaHQ6IDAsXG4gICAgICB0b3A6IDAsXG4gICAgICBib3R0b206IDAsXG4gICAgICBsZWZ0OiAwLFxuICAgICAgcmlnaHQ6IDAsXG4gICAgfTtcblxuICAgIGlmICh0aGlzLmdldFN0eWxlKGVsZW1lbnQsICdwb3NpdGlvbicpID09PSAnZml4ZWQnKSB7XG4gICAgICBlbFBvc2l0aW9uID0gZWxlbWVudC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtcbiAgICAgIGVsUG9zaXRpb24gPSB7XG4gICAgICAgIHRvcDogZWxQb3NpdGlvbi50b3AsXG4gICAgICAgIGJvdHRvbTogZWxQb3NpdGlvbi5ib3R0b20sXG4gICAgICAgIGxlZnQ6IGVsUG9zaXRpb24ubGVmdCxcbiAgICAgICAgcmlnaHQ6IGVsUG9zaXRpb24ucmlnaHQsXG4gICAgICAgIGhlaWdodDogZWxQb3NpdGlvbi5oZWlnaHQsXG4gICAgICAgIHdpZHRoOiBlbFBvc2l0aW9uLndpZHRoLFxuICAgICAgfTtcbiAgICB9IGVsc2Uge1xuICAgICAgY29uc3Qgb2Zmc2V0UGFyZW50RWwgPSB0aGlzLm9mZnNldFBhcmVudChlbGVtZW50KTtcblxuICAgICAgZWxQb3NpdGlvbiA9IHRoaXMub2Zmc2V0KGVsZW1lbnQsIGZhbHNlKTtcblxuICAgICAgaWYgKG9mZnNldFBhcmVudEVsICE9PSBkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQpIHtcbiAgICAgICAgcGFyZW50T2Zmc2V0ID0gdGhpcy5vZmZzZXQob2Zmc2V0UGFyZW50RWwsIGZhbHNlKTtcbiAgICAgIH1cblxuICAgICAgcGFyZW50T2Zmc2V0LnRvcCArPSBvZmZzZXRQYXJlbnRFbC5jbGllbnRUb3A7XG4gICAgICBwYXJlbnRPZmZzZXQubGVmdCArPSBvZmZzZXRQYXJlbnRFbC5jbGllbnRMZWZ0O1xuICAgIH1cblxuICAgIGVsUG9zaXRpb24udG9wIC09IHBhcmVudE9mZnNldC50b3A7XG4gICAgZWxQb3NpdGlvbi5ib3R0b20gLT0gcGFyZW50T2Zmc2V0LnRvcDtcbiAgICBlbFBvc2l0aW9uLmxlZnQgLT0gcGFyZW50T2Zmc2V0LmxlZnQ7XG4gICAgZWxQb3NpdGlvbi5yaWdodCAtPSBwYXJlbnRPZmZzZXQubGVmdDtcblxuICAgIGlmIChyb3VuZCkge1xuICAgICAgZWxQb3NpdGlvbi50b3AgPSBNYXRoLnJvdW5kKGVsUG9zaXRpb24udG9wKTtcbiAgICAgIGVsUG9zaXRpb24uYm90dG9tID0gTWF0aC5yb3VuZChlbFBvc2l0aW9uLmJvdHRvbSk7XG4gICAgICBlbFBvc2l0aW9uLmxlZnQgPSBNYXRoLnJvdW5kKGVsUG9zaXRpb24ubGVmdCk7XG4gICAgICBlbFBvc2l0aW9uLnJpZ2h0ID0gTWF0aC5yb3VuZChlbFBvc2l0aW9uLnJpZ2h0KTtcbiAgICB9XG5cbiAgICByZXR1cm4gZWxQb3NpdGlvbjtcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXQgT2Zmc2V0IG9mIEl0ZW1cbiAgICogQHBhcmFtIGVsZW1lbnQgSFRNTCBFbGVtZW50IGZvciBPZmZzZXRcbiAgICogQHBhcmFtIHJvdW5kIFJvdW5kIHRoZSBWYWx1ZXNcbiAgICogQHJldHVybnMgUmV0dXJuIE9mZnNldCBQb3NpdGlvblxuICAgKi9cbiAgb2Zmc2V0KGVsZW1lbnQ6IEhUTUxFbGVtZW50LCByb3VuZCA9IHRydWUpOiBDbGllbnRSZWN0IHtcbiAgICBjb25zdCBlbEJjciA9IGVsZW1lbnQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7XG4gICAgY29uc3Qgdmlld3BvcnRPZmZzZXQgPSB7XG4gICAgICB0b3A6IHdpbmRvdy5wYWdlWU9mZnNldCAtIGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5jbGllbnRUb3AsXG4gICAgICBsZWZ0OiB3aW5kb3cucGFnZVhPZmZzZXQgLSBkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuY2xpZW50TGVmdCxcbiAgICB9O1xuXG4gICAgY29uc3QgZWxPZmZzZXQgPSB7XG4gICAgICBoZWlnaHQ6IGVsQmNyLmhlaWdodCB8fCBlbGVtZW50Lm9mZnNldEhlaWdodCxcbiAgICAgIHdpZHRoOiBlbEJjci53aWR0aCB8fCBlbGVtZW50Lm9mZnNldFdpZHRoLFxuICAgICAgdG9wOiBlbEJjci50b3AgKyB2aWV3cG9ydE9mZnNldC50b3AsXG4gICAgICBib3R0b206IGVsQmNyLmJvdHRvbSArIHZpZXdwb3J0T2Zmc2V0LnRvcCxcbiAgICAgIGxlZnQ6IGVsQmNyLmxlZnQgKyB2aWV3cG9ydE9mZnNldC5sZWZ0LFxuICAgICAgcmlnaHQ6IGVsQmNyLnJpZ2h0ICsgdmlld3BvcnRPZmZzZXQubGVmdCxcbiAgICB9O1xuXG4gICAgaWYgKHJvdW5kKSB7XG4gICAgICBlbE9mZnNldC5oZWlnaHQgPSBNYXRoLnJvdW5kKGVsT2Zmc2V0LmhlaWdodCk7XG4gICAgICBlbE9mZnNldC53aWR0aCA9IE1hdGgucm91bmQoZWxPZmZzZXQud2lkdGgpO1xuICAgICAgZWxPZmZzZXQudG9wID0gTWF0aC5yb3VuZChlbE9mZnNldC50b3ApO1xuICAgICAgZWxPZmZzZXQuYm90dG9tID0gTWF0aC5yb3VuZChlbE9mZnNldC5ib3R0b20pO1xuICAgICAgZWxPZmZzZXQubGVmdCA9IE1hdGgucm91bmQoZWxPZmZzZXQubGVmdCk7XG4gICAgICBlbE9mZnNldC5yaWdodCA9IE1hdGgucm91bmQoZWxPZmZzZXQucmlnaHQpO1xuICAgIH1cblxuICAgIHJldHVybiBlbE9mZnNldDtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm4gZmFsc2UgaWYgdGhlIGVsZW1lbnQgdG8gcG9zaXRpb24gaXMgb3V0c2lkZSB0aGUgdmlld3BvcnRcbiAgICogQHJldHVybnMgcG9zaXRpb24gaXMgaW5zaWRlIHZpZXdwb3J0XG4gICAqL1xuICBwb3NpdGlvbkVsZW1lbnRzKFxuICAgIGhvc3RFbGVtZW50OiBIVE1MRWxlbWVudCxcbiAgICB0YXJnZXRFbGVtZW50OiBIVE1MRWxlbWVudCxcbiAgICBwbGFjZW1lbnQ6IHN0cmluZyxcbiAgICBhcHBlbmRUb0JvZHk/OiBib29sZWFuXG4gICk6IGJvb2xlYW4ge1xuICAgIGNvbnN0IFtwbGFjZW1lbnRQcmltYXJ5ID0gJ3RvcCcsIHBsYWNlbWVudFNlY29uZGFyeSA9ICdjZW50ZXInXSA9XG4gICAgICBwbGFjZW1lbnQuc3BsaXQoJy0nKTtcblxuICAgIGNvbnN0IGhvc3RFbFBvc2l0aW9uID0gYXBwZW5kVG9Cb2R5XG4gICAgICA/IHRoaXMub2Zmc2V0KGhvc3RFbGVtZW50LCBmYWxzZSlcbiAgICAgIDogdGhpcy5wb3NpdGlvbihob3N0RWxlbWVudCwgZmFsc2UpO1xuICAgIGNvbnN0IHRhcmdldEVsU3R5bGVzID0gdGhpcy5nZXRBbGxTdHlsZXModGFyZ2V0RWxlbWVudCk7XG5cbiAgICBjb25zdCBtYXJnaW5Ub3AgPSBwYXJzZUZsb2F0KHRhcmdldEVsU3R5bGVzLm1hcmdpblRvcCk7XG4gICAgY29uc3QgbWFyZ2luQm90dG9tID0gcGFyc2VGbG9hdCh0YXJnZXRFbFN0eWxlcy5tYXJnaW5Cb3R0b20pO1xuICAgIGNvbnN0IG1hcmdpbkxlZnQgPSBwYXJzZUZsb2F0KHRhcmdldEVsU3R5bGVzLm1hcmdpbkxlZnQpO1xuICAgIGNvbnN0IG1hcmdpblJpZ2h0ID0gcGFyc2VGbG9hdCh0YXJnZXRFbFN0eWxlcy5tYXJnaW5SaWdodCk7XG5cbiAgICBsZXQgdG9wUG9zaXRpb24gPSAwO1xuICAgIGxldCBsZWZ0UG9zaXRpb24gPSAwO1xuXG4gICAgc3dpdGNoIChwbGFjZW1lbnRQcmltYXJ5KSB7XG4gICAgICBjYXNlICd0b3AnOlxuICAgICAgICB0b3BQb3NpdGlvbiA9XG4gICAgICAgICAgaG9zdEVsUG9zaXRpb24udG9wIC1cbiAgICAgICAgICAodGFyZ2V0RWxlbWVudC5vZmZzZXRIZWlnaHQgKyBtYXJnaW5Ub3AgKyBtYXJnaW5Cb3R0b20pO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgJ2JvdHRvbSc6XG4gICAgICAgIHRvcFBvc2l0aW9uID0gaG9zdEVsUG9zaXRpb24udG9wICsgaG9zdEVsUG9zaXRpb24uaGVpZ2h0O1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgJ2xlZnQnOlxuICAgICAgICBsZWZ0UG9zaXRpb24gPVxuICAgICAgICAgIGhvc3RFbFBvc2l0aW9uLmxlZnQgLVxuICAgICAgICAgICh0YXJnZXRFbGVtZW50Lm9mZnNldFdpZHRoICsgbWFyZ2luTGVmdCArIG1hcmdpblJpZ2h0KTtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlICdyaWdodCc6XG4gICAgICAgIGxlZnRQb3NpdGlvbiA9IGhvc3RFbFBvc2l0aW9uLmxlZnQgKyBob3N0RWxQb3NpdGlvbi53aWR0aDtcbiAgICAgICAgYnJlYWs7XG4gICAgfVxuXG4gICAgc3dpdGNoIChwbGFjZW1lbnRTZWNvbmRhcnkpIHtcbiAgICAgIGNhc2UgJ3RvcCc6XG4gICAgICAgIHRvcFBvc2l0aW9uID0gaG9zdEVsUG9zaXRpb24udG9wO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgJ2JvdHRvbSc6XG4gICAgICAgIHRvcFBvc2l0aW9uID1cbiAgICAgICAgICBob3N0RWxQb3NpdGlvbi50b3AgK1xuICAgICAgICAgIGhvc3RFbFBvc2l0aW9uLmhlaWdodCAtXG4gICAgICAgICAgdGFyZ2V0RWxlbWVudC5vZmZzZXRIZWlnaHQ7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSAnbGVmdCc6XG4gICAgICAgIGxlZnRQb3NpdGlvbiA9IGhvc3RFbFBvc2l0aW9uLmxlZnQ7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSAncmlnaHQnOlxuICAgICAgICBsZWZ0UG9zaXRpb24gPVxuICAgICAgICAgIGhvc3RFbFBvc2l0aW9uLmxlZnQgK1xuICAgICAgICAgIGhvc3RFbFBvc2l0aW9uLndpZHRoIC1cbiAgICAgICAgICB0YXJnZXRFbGVtZW50Lm9mZnNldFdpZHRoO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgJ2NlbnRlcic6XG4gICAgICAgIGlmIChwbGFjZW1lbnRQcmltYXJ5ID09PSAndG9wJyB8fCBwbGFjZW1lbnRQcmltYXJ5ID09PSAnYm90dG9tJykge1xuICAgICAgICAgIGxlZnRQb3NpdGlvbiA9XG4gICAgICAgICAgICBob3N0RWxQb3NpdGlvbi5sZWZ0ICtcbiAgICAgICAgICAgIGhvc3RFbFBvc2l0aW9uLndpZHRoIC8gMiAtXG4gICAgICAgICAgICB0YXJnZXRFbGVtZW50Lm9mZnNldFdpZHRoIC8gMjtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICB0b3BQb3NpdGlvbiA9XG4gICAgICAgICAgICBob3N0RWxQb3NpdGlvbi50b3AgK1xuICAgICAgICAgICAgaG9zdEVsUG9zaXRpb24uaGVpZ2h0IC8gMiAtXG4gICAgICAgICAgICB0YXJnZXRFbGVtZW50Lm9mZnNldEhlaWdodCAvIDI7XG4gICAgICAgIH1cbiAgICAgICAgYnJlYWs7XG4gICAgfVxuXG4gICAgLy8vIFRoZSB0cmFuc2xhdGUzZC9ncHUgYWNjZWxlcmF0aW9uIHJlbmRlciBhIGJsdXJyeSB0ZXh0IG9uIGNocm9tZSwgdGhlIG5leHQgbGluZSBpcyBjb21tZW50ZWQgdW50aWwgYSBicm93c2VyIGZpeFxuICAgIC8vIHRhcmdldEVsZW1lbnQuc3R5bGUudHJhbnNmb3JtID0gYHRyYW5zbGF0ZTNkKCR7TWF0aC5yb3VuZChsZWZ0UG9zaXRpb24pfXB4LCAke01hdGguZmxvb3IodG9wUG9zaXRpb24pfXB4LCAwcHgpYDtcbiAgICB0YXJnZXRFbGVtZW50LnN0eWxlLnRyYW5zZm9ybSA9IGB0cmFuc2xhdGUoJHtNYXRoLnJvdW5kKFxuICAgICAgbGVmdFBvc2l0aW9uXG4gICAgKX1weCwgJHtNYXRoLnJvdW5kKHRvcFBvc2l0aW9uKX1weClgO1xuXG4gICAgLy8gQ2hlY2sgaWYgdGhlIHRhcmdldEVsZW1lbnQgaXMgaW5zaWRlIHRoZSB2aWV3cG9ydFxuICAgIGNvbnN0IHRhcmdldEVsQkNSID0gdGFyZ2V0RWxlbWVudC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtcbiAgICBjb25zdCBodG1sID0gZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50O1xuICAgIGNvbnN0IHdpbmRvd0hlaWdodCA9IHdpbmRvdy5pbm5lckhlaWdodCB8fCBodG1sLmNsaWVudEhlaWdodDtcbiAgICBjb25zdCB3aW5kb3dXaWR0aCA9IHdpbmRvdy5pbm5lcldpZHRoIHx8IGh0bWwuY2xpZW50V2lkdGg7XG5cbiAgICByZXR1cm4gKFxuICAgICAgdGFyZ2V0RWxCQ1IubGVmdCA+PSAwICYmXG4gICAgICB0YXJnZXRFbEJDUi50b3AgPj0gMCAmJlxuICAgICAgdGFyZ2V0RWxCQ1IucmlnaHQgPD0gd2luZG93V2lkdGggJiZcbiAgICAgIHRhcmdldEVsQkNSLmJvdHRvbSA8PSB3aW5kb3dIZWlnaHRcbiAgICApO1xuICB9XG59XG5cbi8qKlxuICogUGxhY2VtZW50IFNlcGFyYXRvciBSZWdleFxuICovXG5jb25zdCBwbGFjZW1lbnRTZXBhcmF0b3IgPSAvXFxzKy87XG4vKipcbiAqIEdsb2JhbCBQb3NpdGlvbiBTZXJ2aWNlXG4gKi9cbmV4cG9ydCBjb25zdCBwb3NpdGlvblNlcnZpY2UgPSBuZXcgUG9zaXRpb25pbmcoKTtcblxuLyoqXG4gKiBBY2NlcHQgdGhlIHBsYWNlbWVudCBhcnJheSBhbmQgYXBwbGllcyB0aGUgYXBwcm9wcmlhdGUgcGxhY2VtZW50IGRlcGVuZGVudCBvbiB0aGUgdmlld3BvcnQuXG4gKiBSZXR1cm5zIHRoZSBhcHBsaWVkIHBsYWNlbWVudC5cbiAqIEluIGNhc2Ugb2YgYXV0byBwbGFjZW1lbnQsIHBsYWNlbWVudHMgYXJlIHNlbGVjdGVkIGluIG9yZGVyXG4gKiAgICd0b3AnLCAnYm90dG9tJywgJ2xlZnQnLCAncmlnaHQnLFxuICogICAndG9wLWxlZnQnLCAndG9wLXJpZ2h0JyxcbiAqICAgJ2JvdHRvbS1sZWZ0JywgJ2JvdHRvbS1yaWdodCcsXG4gKiAgICdsZWZ0LXRvcCcsICdsZWZ0LWJvdHRvbScsXG4gKiAgICdyaWdodC10b3AnLCAncmlnaHQtYm90dG9tJy5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHBvc2l0aW9uRWxlbWVudHMoXG4gIGhvc3RFbGVtZW50OiBIVE1MRWxlbWVudCxcbiAgdGFyZ2V0RWxlbWVudDogSFRNTEVsZW1lbnQsXG4gIHBsYWNlbWVudDogc3RyaW5nIHwgUGxhY2VtZW50IHwgUGxhY2VtZW50QXJyYXksXG4gIGFwcGVuZFRvQm9keT86IGJvb2xlYW4sXG4gIGJhc2VDbGFzcz86IHN0cmluZ1xuKTogUGxhY2VtZW50IHwgbnVsbCB7XG4gIGNvbnN0IHBsYWNlbWVudFZhbHM6IEFycmF5PFBsYWNlbWVudD4gPSBBcnJheS5pc0FycmF5KHBsYWNlbWVudClcbiAgICA/IHBsYWNlbWVudFxuICAgIDogKHBsYWNlbWVudC5zcGxpdChwbGFjZW1lbnRTZXBhcmF0b3IpIGFzIEFycmF5PFBsYWNlbWVudD4pO1xuXG4gIGNvbnN0IGFsbG93ZWRQbGFjZW1lbnRzID0gW1xuICAgICd0b3AnLFxuICAgICdib3R0b20nLFxuICAgICdsZWZ0JyxcbiAgICAncmlnaHQnLFxuICAgICd0b3AtbGVmdCcsXG4gICAgJ3RvcC1yaWdodCcsXG4gICAgJ2JvdHRvbS1sZWZ0JyxcbiAgICAnYm90dG9tLXJpZ2h0JyxcbiAgICAnbGVmdC10b3AnLFxuICAgICdsZWZ0LWJvdHRvbScsXG4gICAgJ3JpZ2h0LXRvcCcsXG4gICAgJ3JpZ2h0LWJvdHRvbScsXG4gIF07XG5cbiAgY29uc3QgY2xhc3NMaXN0ID0gdGFyZ2V0RWxlbWVudC5jbGFzc0xpc3Q7XG4gIGNvbnN0IGFkZENsYXNzZXNUb1RhcmdldCA9ICh0YXJnZXRQbGFjZW1lbnQ6IFBsYWNlbWVudCk6IEFycmF5PHN0cmluZz4gPT4ge1xuICAgIGNvbnN0IFtwcmltYXJ5LCBzZWNvbmRhcnldID0gdGFyZ2V0UGxhY2VtZW50LnNwbGl0KCctJyk7XG4gICAgY29uc3QgY2xhc3Nlczogc3RyaW5nW10gPSBbXTtcbiAgICBpZiAoYmFzZUNsYXNzKSB7XG4gICAgICBjbGFzc2VzLnB1c2goYCR7YmFzZUNsYXNzfS0ke3ByaW1hcnl9YCk7XG4gICAgICBpZiAoc2Vjb25kYXJ5KSB7XG4gICAgICAgIGNsYXNzZXMucHVzaChgJHtiYXNlQ2xhc3N9LSR7cHJpbWFyeX0tJHtzZWNvbmRhcnl9YCk7XG4gICAgICB9XG5cbiAgICAgIGNsYXNzZXMuZm9yRWFjaCgoY2xhc3NuYW1lKSA9PiB7XG4gICAgICAgIGNsYXNzTGlzdC5hZGQoY2xhc3NuYW1lKTtcbiAgICAgIH0pO1xuICAgIH1cbiAgICByZXR1cm4gY2xhc3NlcztcbiAgfTtcblxuICAvLyBSZW1vdmUgb2xkIHBsYWNlbWVudCBjbGFzc2VzIHRvIGF2b2lkIGlzc3Vlc1xuICBpZiAoYmFzZUNsYXNzKSB7XG4gICAgYWxsb3dlZFBsYWNlbWVudHMuZm9yRWFjaCgocGxhY2VtZW50VG9SZW1vdmUpID0+IHtcbiAgICAgIGNsYXNzTGlzdC5yZW1vdmUoYCR7YmFzZUNsYXNzfS0ke3BsYWNlbWVudFRvUmVtb3ZlfWApO1xuICAgIH0pO1xuICB9XG5cbiAgLy8gcmVwbGFjZSBhdXRvIHBsYWNlbWVudCB3aXRoIG90aGVyIHBsYWNlbWVudHNcbiAgbGV0IGhhc0F1dG8gPSBwbGFjZW1lbnRWYWxzLmZpbmRJbmRleCgodmFsKSA9PiB2YWwgPT09ICdhdXRvJyk7XG4gIGlmIChoYXNBdXRvID49IDApIHtcbiAgICBhbGxvd2VkUGxhY2VtZW50cy5mb3JFYWNoKGZ1bmN0aW9uIChvYmopIHtcbiAgICAgIGlmIChwbGFjZW1lbnRWYWxzLmZpbmQoKHZhbCkgPT4gdmFsLnNlYXJjaCgnXicgKyBvYmopICE9PSAtMSkgPT0gbnVsbCkge1xuICAgICAgICBwbGFjZW1lbnRWYWxzLnNwbGljZShoYXNBdXRvKyssIDEsIG9iaiBhcyBQbGFjZW1lbnQpO1xuICAgICAgfVxuICAgIH0pO1xuICB9XG5cbiAgLy8gY29vcmRpbmF0ZXMgd2hlcmUgdG8gcG9zaXRpb25cblxuICAvLyBSZXF1aXJlZCBmb3IgdHJhbnNmb3JtOlxuICBjb25zdCBzdHlsZSA9IHRhcmdldEVsZW1lbnQuc3R5bGU7XG4gIHN0eWxlLnBvc2l0aW9uID0gJ2Fic29sdXRlJztcbiAgc3R5bGUudG9wID0gJzAnO1xuICBzdHlsZS5sZWZ0ID0gJzAnO1xuICBzdHlsZVsnd2lsbC1jaGFuZ2UnXSA9ICd0cmFuc2Zvcm0nO1xuXG4gIGxldCB0ZXN0UGxhY2VtZW50OiBQbGFjZW1lbnQgfCBudWxsID0gbnVsbDtcbiAgbGV0IGlzSW5WaWV3cG9ydCA9IGZhbHNlO1xuICBmb3IgKHRlc3RQbGFjZW1lbnQgb2YgcGxhY2VtZW50VmFscykge1xuICAgIGNvbnN0IGFkZGVkQ2xhc3NlcyA9IGFkZENsYXNzZXNUb1RhcmdldCh0ZXN0UGxhY2VtZW50KTtcblxuICAgIGlmIChcbiAgICAgIHBvc2l0aW9uU2VydmljZS5wb3NpdGlvbkVsZW1lbnRzKFxuICAgICAgICBob3N0RWxlbWVudCxcbiAgICAgICAgdGFyZ2V0RWxlbWVudCxcbiAgICAgICAgdGVzdFBsYWNlbWVudCxcbiAgICAgICAgYXBwZW5kVG9Cb2R5XG4gICAgICApXG4gICAgKSB7XG4gICAgICBpc0luVmlld3BvcnQgPSB0cnVlO1xuICAgICAgYnJlYWs7XG4gICAgfVxuXG4gICAgLy8gUmVtb3ZlIHRoZSBiYXNlQ2xhc3NlcyBmb3IgZnVydGhlciBjYWxjdWxhdGlvblxuICAgIGlmIChiYXNlQ2xhc3MpIHtcbiAgICAgIGFkZGVkQ2xhc3Nlcy5mb3JFYWNoKChjbGFzc25hbWUpID0+IHtcbiAgICAgICAgY2xhc3NMaXN0LnJlbW92ZShjbGFzc25hbWUpO1xuICAgICAgfSk7XG4gICAgfVxuICB9XG5cbiAgaWYgKCFpc0luVmlld3BvcnQpIHtcbiAgICAvLyBJZiBub3RoaW5nIG1hdGNoLCB0aGUgZmlyc3QgcGxhY2VtZW50IGlzIHRoZSBkZWZhdWx0IG9uZVxuICAgIHRlc3RQbGFjZW1lbnQgPSBwbGFjZW1lbnRWYWxzWzBdO1xuICAgIGFkZENsYXNzZXNUb1RhcmdldCh0ZXN0UGxhY2VtZW50KTtcbiAgICBwb3NpdGlvblNlcnZpY2UucG9zaXRpb25FbGVtZW50cyhcbiAgICAgIGhvc3RFbGVtZW50LFxuICAgICAgdGFyZ2V0RWxlbWVudCxcbiAgICAgIHRlc3RQbGFjZW1lbnQsXG4gICAgICBhcHBlbmRUb0JvZHlcbiAgICApO1xuICB9XG5cbiAgcmV0dXJuIHRlc3RQbGFjZW1lbnQ7XG59XG5cbi8qKlxuICogUGxhY2VtZW50IFR5cGVuXG4gKi9cbmV4cG9ydCB0eXBlIFBsYWNlbWVudCA9XG4gIHwgJ2F1dG8nXG4gIHwgJ3RvcCdcbiAgfCAnYm90dG9tJ1xuICB8ICdsZWZ0J1xuICB8ICdyaWdodCdcbiAgfCAndG9wLWxlZnQnXG4gIHwgJ3RvcC1yaWdodCdcbiAgfCAnYm90dG9tLWxlZnQnXG4gIHwgJ2JvdHRvbS1yaWdodCdcbiAgfCAnbGVmdC10b3AnXG4gIHwgJ2xlZnQtYm90dG9tJ1xuICB8ICdyaWdodC10b3AnXG4gIHwgJ3JpZ2h0LWJvdHRvbSc7XG5cbi8qKlxuICogUGxhY2VtZW50IEFycmF5XG4gKi9cbmV4cG9ydCB0eXBlIFBsYWNlbWVudEFycmF5ID0gUGxhY2VtZW50IHwgQXJyYXk8UGxhY2VtZW50PiB8IHN0cmluZztcbiJdfQ==
|
|
58
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJQb3NpdGlvbmluZyIsImdldEFsbFN0eWxlcyIsImVsZW1lbnQiLCJjb3ZfMXBta201ZWMweiIsImYiLCJzIiwid2luZG93IiwiZ2V0Q29tcHV0ZWRTdHlsZSIsImdldFN0eWxlIiwicHJvcCIsImlzU3RhdGljUG9zaXRpb25lZCIsImIiLCJvZmZzZXRQYXJlbnQiLCJvZmZzZXRQYXJlbnRFbCIsImRvY3VtZW50IiwiZG9jdW1lbnRFbGVtZW50IiwicG9zaXRpb24iLCJyb3VuZCIsImVsUG9zaXRpb24iLCJwYXJlbnRPZmZzZXQiLCJ3aWR0aCIsImhlaWdodCIsInRvcCIsImJvdHRvbSIsImxlZnQiLCJyaWdodCIsImdldEJvdW5kaW5nQ2xpZW50UmVjdCIsIm9mZnNldCIsImNsaWVudFRvcCIsImNsaWVudExlZnQiLCJNYXRoIiwiZWxCY3IiLCJ2aWV3cG9ydE9mZnNldCIsInBhZ2VZT2Zmc2V0IiwicGFnZVhPZmZzZXQiLCJlbE9mZnNldCIsIm9mZnNldEhlaWdodCIsIm9mZnNldFdpZHRoIiwicG9zaXRpb25FbGVtZW50cyIsImhvc3RFbGVtZW50IiwidGFyZ2V0RWxlbWVudCIsInBsYWNlbWVudCIsImFwcGVuZFRvQm9keSIsInBsYWNlbWVudFByaW1hcnkiLCJwbGFjZW1lbnRTZWNvbmRhcnkiLCJzcGxpdCIsImhvc3RFbFBvc2l0aW9uIiwidGFyZ2V0RWxTdHlsZXMiLCJtYXJnaW5Ub3AiLCJwYXJzZUZsb2F0IiwibWFyZ2luQm90dG9tIiwibWFyZ2luTGVmdCIsIm1hcmdpblJpZ2h0IiwidG9wUG9zaXRpb24iLCJsZWZ0UG9zaXRpb24iLCJzdHlsZSIsInRyYW5zZm9ybSIsInRhcmdldEVsQkNSIiwiaHRtbCIsIndpbmRvd0hlaWdodCIsImlubmVySGVpZ2h0IiwiY2xpZW50SGVpZ2h0Iiwid2luZG93V2lkdGgiLCJpbm5lcldpZHRoIiwiY2xpZW50V2lkdGgiLCJwbGFjZW1lbnRTZXBhcmF0b3IiLCJwb3NpdGlvblNlcnZpY2UiLCJiYXNlQ2xhc3MiLCJwbGFjZW1lbnRWYWxzIiwiQXJyYXkiLCJpc0FycmF5IiwiYWxsb3dlZFBsYWNlbWVudHMiLCJjbGFzc0xpc3QiLCJhZGRDbGFzc2VzVG9UYXJnZXQiLCJ0YXJnZXRQbGFjZW1lbnQiLCJwcmltYXJ5Iiwic2Vjb25kYXJ5IiwiY2xhc3NlcyIsInB1c2giLCJmb3JFYWNoIiwiY2xhc3NuYW1lIiwiYWRkIiwicGxhY2VtZW50VG9SZW1vdmUiLCJyZW1vdmUiLCJoYXNBdXRvIiwiZmluZEluZGV4IiwidmFsIiwib2JqIiwiZmluZCIsInNlYXJjaCIsInNwbGljZSIsInRlc3RQbGFjZW1lbnQiLCJpc0luVmlld3BvcnQiLCJhZGRlZENsYXNzZXMiXSwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9zYWMtY29tbW9uL3NyYy91dGlsaXRpZXMvcG9zaXRpb25pbmcudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW50ZXJmYWNlIENsaWVudFJlY3Qge1xuICB0b3A6IG51bWJlcjtcbiAgYm90dG9tOiBudW1iZXI7XG4gIGxlZnQ6IG51bWJlcjtcbiAgcmlnaHQ6IG51bWJlcjtcbiAgaGVpZ2h0OiBudW1iZXI7XG4gIHdpZHRoOiBudW1iZXI7XG59XG5cbi8qKlxuICogUG9zaXRpb24gVXRpbGl0eSBLbGFzc2VcbiAqIEBzZWUgaHR0cHM6Ly9naXRodWIuY29tL25nLWJvb3RzdHJhcC9uZy1ib290c3RyYXAvYmxvYi9tYXN0ZXIvc3JjL3V0aWwvcG9zaXRpb25pbmcudHNcbiAqL1xuZXhwb3J0IGNsYXNzIFBvc2l0aW9uaW5nIHtcbiAgLyoqXG4gICAqIEdldCBhbGwgU3R5bGVzIG9mIEVsZW1lbnRcbiAgICogQHBhcmFtIGVsZW1lbnQgSFRNTCBFbGVtZW50XG4gICAqIEByZXR1cm5zIEFsbCBTdHlsZXMgb2YgZWxlbWVudFxuICAgKi9cbiAgcHJpdmF0ZSBnZXRBbGxTdHlsZXMoZWxlbWVudDogSFRNTEVsZW1lbnQpIHtcbiAgICByZXR1cm4gd2luZG93LmdldENvbXB1dGVkU3R5bGUoZWxlbWVudCk7XG4gIH1cblxuICAvKipcbiAgICogR2V0IFN0eWxlIHZhbHVlIG9mIGVsZW1lbnRcbiAgICogQHBhcmFtIGVsZW1lbnQgSFRNTCBFbGVtZW50XG4gICAqIEBwYXJhbSBwcm9wIFN0eWxlXG4gICAqIEByZXR1cm5zIFZhbHVlIG9mIFN0eWxlXG4gICAqL1xuICBwcml2YXRlIGdldFN0eWxlKGVsZW1lbnQ6IEhUTUxFbGVtZW50LCBwcm9wOiBzdHJpbmcpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLmdldEFsbFN0eWxlcyhlbGVtZW50KVtwcm9wXTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDaGVjayBpZiB0aGUgZWxlbWVudCBoYXMgYW4gc3RhdGljIHBvc2l0aW9uXG4gICAqIEBwYXJhbSBlbGVtZW50IEhUTUwgRWxlbWVudFxuICAgKiBAcmV0dXJucyBJdGVtIGhhcyBhIHN0YXRpYyBwb3NpdGlvblxuICAgKi9cbiAgcHJpdmF0ZSBpc1N0YXRpY1Bvc2l0aW9uZWQoZWxlbWVudDogSFRNTEVsZW1lbnQpOiBib29sZWFuIHtcbiAgICByZXR1cm4gKHRoaXMuZ2V0U3R5bGUoZWxlbWVudCwgJ3Bvc2l0aW9uJykgfHwgJ3N0YXRpYycpID09PSAnc3RhdGljJztcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXQgdGhlIE9mZnNldCBvZiB0aGUgcGFyZW50IGVsZW1lbnRcbiAgICogQHBhcmFtIGVsZW1lbnQgSFRNTCBFbGVtZW50XG4gICAqIEByZXR1cm5zIEhUTUwgRUxlbWVudFxuICAgKi9cbiAgcHJpdmF0ZSBvZmZzZXRQYXJlbnQoZWxlbWVudDogSFRNTEVsZW1lbnQpOiBIVE1MRWxlbWVudCB7XG4gICAgbGV0IG9mZnNldFBhcmVudEVsID1cbiAgICAgIDxIVE1MRWxlbWVudD5lbGVtZW50Lm9mZnNldFBhcmVudCB8fCBkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQ7XG5cbiAgICB3aGlsZSAoXG4gICAgICBvZmZzZXRQYXJlbnRFbCAmJlxuICAgICAgb2Zmc2V0UGFyZW50RWwgIT09IGRvY3VtZW50LmRvY3VtZW50RWxlbWVudCAmJlxuICAgICAgdGhpcy5pc1N0YXRpY1Bvc2l0aW9uZWQob2Zmc2V0UGFyZW50RWwpXG4gICAgKSB7XG4gICAgICBvZmZzZXRQYXJlbnRFbCA9IDxIVE1MRWxlbWVudD5vZmZzZXRQYXJlbnRFbC5vZmZzZXRQYXJlbnQ7XG4gICAgfVxuXG4gICAgcmV0dXJuIG9mZnNldFBhcmVudEVsIHx8IGRvY3VtZW50LmRvY3VtZW50RWxlbWVudDtcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXQgRWxlbWVudCBQb3NpdGlvblxuICAgKiBAcGFyYW0gZWxlbWVudCBIVE1MIEVsZW1lbnQgZm9yIFBvc2l0aW9uXG4gICAqIEBwYXJhbSByb3VuZCBSb3VuZCBWYWx1ZXNcbiAgICogQHJldHVybnMgUG9zaXRpb24gVmFsdWVzXG4gICAqL1xuICBwb3NpdGlvbihlbGVtZW50OiBIVE1MRWxlbWVudCwgcm91bmQgPSB0cnVlKTogQ2xpZW50UmVjdCB7XG4gICAgbGV0IGVsUG9zaXRpb246IENsaWVudFJlY3Q7XG4gICAgbGV0IHBhcmVudE9mZnNldDogQ2xpZW50UmVjdCA9IHtcbiAgICAgIHdpZHRoOiAwLFxuICAgICAgaGVpZ2h0OiAwLFxuICAgICAgdG9wOiAwLFxuICAgICAgYm90dG9tOiAwLFxuICAgICAgbGVmdDogMCxcbiAgICAgIHJpZ2h0OiAwLFxuICAgIH07XG5cbiAgICBpZiAodGhpcy5nZXRTdHlsZShlbGVtZW50LCAncG9zaXRpb24nKSA9PT0gJ2ZpeGVkJykge1xuICAgICAgZWxQb3NpdGlvbiA9IGVsZW1lbnQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7XG4gICAgICBlbFBvc2l0aW9uID0ge1xuICAgICAgICB0b3A6IGVsUG9zaXRpb24udG9wLFxuICAgICAgICBib3R0b206IGVsUG9zaXRpb24uYm90dG9tLFxuICAgICAgICBsZWZ0OiBlbFBvc2l0aW9uLmxlZnQsXG4gICAgICAgIHJpZ2h0OiBlbFBvc2l0aW9uLnJpZ2h0LFxuICAgICAgICBoZWlnaHQ6IGVsUG9zaXRpb24uaGVpZ2h0LFxuICAgICAgICB3aWR0aDogZWxQb3NpdGlvbi53aWR0aCxcbiAgICAgIH07XG4gICAgfSBlbHNlIHtcbiAgICAgIGNvbnN0IG9mZnNldFBhcmVudEVsID0gdGhpcy5vZmZzZXRQYXJlbnQoZWxlbWVudCk7XG5cbiAgICAgIGVsUG9zaXRpb24gPSB0aGlzLm9mZnNldChlbGVtZW50LCBmYWxzZSk7XG5cbiAgICAgIGlmIChvZmZzZXRQYXJlbnRFbCAhPT0gZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50KSB7XG4gICAgICAgIHBhcmVudE9mZnNldCA9IHRoaXMub2Zmc2V0KG9mZnNldFBhcmVudEVsLCBmYWxzZSk7XG4gICAgICB9XG5cbiAgICAgIHBhcmVudE9mZnNldC50b3AgKz0gb2Zmc2V0UGFyZW50RWwuY2xpZW50VG9wO1xuICAgICAgcGFyZW50T2Zmc2V0LmxlZnQgKz0gb2Zmc2V0UGFyZW50RWwuY2xpZW50TGVmdDtcbiAgICB9XG5cbiAgICBlbFBvc2l0aW9uLnRvcCAtPSBwYXJlbnRPZmZzZXQudG9wO1xuICAgIGVsUG9zaXRpb24uYm90dG9tIC09IHBhcmVudE9mZnNldC50b3A7XG4gICAgZWxQb3NpdGlvbi5sZWZ0IC09IHBhcmVudE9mZnNldC5sZWZ0O1xuICAgIGVsUG9zaXRpb24ucmlnaHQgLT0gcGFyZW50T2Zmc2V0LmxlZnQ7XG5cbiAgICBpZiAocm91bmQpIHtcbiAgICAgIGVsUG9zaXRpb24udG9wID0gTWF0aC5yb3VuZChlbFBvc2l0aW9uLnRvcCk7XG4gICAgICBlbFBvc2l0aW9uLmJvdHRvbSA9IE1hdGgucm91bmQoZWxQb3NpdGlvbi5ib3R0b20pO1xuICAgICAgZWxQb3NpdGlvbi5sZWZ0ID0gTWF0aC5yb3VuZChlbFBvc2l0aW9uLmxlZnQpO1xuICAgICAgZWxQb3NpdGlvbi5yaWdodCA9IE1hdGgucm91bmQoZWxQb3NpdGlvbi5yaWdodCk7XG4gICAgfVxuXG4gICAgcmV0dXJuIGVsUG9zaXRpb247XG4gIH1cblxuICAvKipcbiAgICogR2V0IE9mZnNldCBvZiBJdGVtXG4gICAqIEBwYXJhbSBlbGVtZW50IEhUTUwgRWxlbWVudCBmb3IgT2Zmc2V0XG4gICAqIEBwYXJhbSByb3VuZCBSb3VuZCB0aGUgVmFsdWVzXG4gICAqIEByZXR1cm5zIFJldHVybiBPZmZzZXQgUG9zaXRpb25cbiAgICovXG4gIG9mZnNldChlbGVtZW50OiBIVE1MRWxlbWVudCwgcm91bmQgPSB0cnVlKTogQ2xpZW50UmVjdCB7XG4gICAgY29uc3QgZWxCY3IgPSBlbGVtZW50LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO1xuICAgIGNvbnN0IHZpZXdwb3J0T2Zmc2V0ID0ge1xuICAgICAgdG9wOiB3aW5kb3cucGFnZVlPZmZzZXQgLSBkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuY2xpZW50VG9wLFxuICAgICAgbGVmdDogd2luZG93LnBhZ2VYT2Zmc2V0IC0gZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LmNsaWVudExlZnQsXG4gICAgfTtcblxuICAgIGNvbnN0IGVsT2Zmc2V0ID0ge1xuICAgICAgaGVpZ2h0OiBlbEJjci5oZWlnaHQgfHwgZWxlbWVudC5vZmZzZXRIZWlnaHQsXG4gICAgICB3aWR0aDogZWxCY3Iud2lkdGggfHwgZWxlbWVudC5vZmZzZXRXaWR0aCxcbiAgICAgIHRvcDogZWxCY3IudG9wICsgdmlld3BvcnRPZmZzZXQudG9wLFxuICAgICAgYm90dG9tOiBlbEJjci5ib3R0b20gKyB2aWV3cG9ydE9mZnNldC50b3AsXG4gICAgICBsZWZ0OiBlbEJjci5sZWZ0ICsgdmlld3BvcnRPZmZzZXQubGVmdCxcbiAgICAgIHJpZ2h0OiBlbEJjci5yaWdodCArIHZpZXdwb3J0T2Zmc2V0LmxlZnQsXG4gICAgfTtcblxuICAgIGlmIChyb3VuZCkge1xuICAgICAgZWxPZmZzZXQuaGVpZ2h0ID0gTWF0aC5yb3VuZChlbE9mZnNldC5oZWlnaHQpO1xuICAgICAgZWxPZmZzZXQud2lkdGggPSBNYXRoLnJvdW5kKGVsT2Zmc2V0LndpZHRoKTtcbiAgICAgIGVsT2Zmc2V0LnRvcCA9IE1hdGgucm91bmQoZWxPZmZzZXQudG9wKTtcbiAgICAgIGVsT2Zmc2V0LmJvdHRvbSA9IE1hdGgucm91bmQoZWxPZmZzZXQuYm90dG9tKTtcbiAgICAgIGVsT2Zmc2V0LmxlZnQgPSBNYXRoLnJvdW5kKGVsT2Zmc2V0LmxlZnQpO1xuICAgICAgZWxPZmZzZXQucmlnaHQgPSBNYXRoLnJvdW5kKGVsT2Zmc2V0LnJpZ2h0KTtcbiAgICB9XG5cbiAgICByZXR1cm4gZWxPZmZzZXQ7XG4gIH1cblxuICAvKipcbiAgICogUmV0dXJuIGZhbHNlIGlmIHRoZSBlbGVtZW50IHRvIHBvc2l0aW9uIGlzIG91dHNpZGUgdGhlIHZpZXdwb3J0XG4gICAqIEByZXR1cm5zIHBvc2l0aW9uIGlzIGluc2lkZSB2aWV3cG9ydFxuICAgKi9cbiAgcG9zaXRpb25FbGVtZW50cyhcbiAgICBob3N0RWxlbWVudDogSFRNTEVsZW1lbnQsXG4gICAgdGFyZ2V0RWxlbWVudDogSFRNTEVsZW1lbnQsXG4gICAgcGxhY2VtZW50OiBzdHJpbmcsXG4gICAgYXBwZW5kVG9Cb2R5PzogYm9vbGVhblxuICApOiBib29sZWFuIHtcbiAgICBjb25zdCBbcGxhY2VtZW50UHJpbWFyeSA9ICd0b3AnLCBwbGFjZW1lbnRTZWNvbmRhcnkgPSAnY2VudGVyJ10gPVxuICAgICAgcGxhY2VtZW50LnNwbGl0KCctJyk7XG5cbiAgICBjb25zdCBob3N0RWxQb3NpdGlvbiA9IGFwcGVuZFRvQm9keVxuICAgICAgPyB0aGlzLm9mZnNldChob3N0RWxlbWVudCwgZmFsc2UpXG4gICAgICA6IHRoaXMucG9zaXRpb24oaG9zdEVsZW1lbnQsIGZhbHNlKTtcbiAgICBjb25zdCB0YXJnZXRFbFN0eWxlcyA9IHRoaXMuZ2V0QWxsU3R5bGVzKHRhcmdldEVsZW1lbnQpO1xuXG4gICAgY29uc3QgbWFyZ2luVG9wID0gcGFyc2VGbG9hdCh0YXJnZXRFbFN0eWxlcy5tYXJnaW5Ub3ApO1xuICAgIGNvbnN0IG1hcmdpbkJvdHRvbSA9IHBhcnNlRmxvYXQodGFyZ2V0RWxTdHlsZXMubWFyZ2luQm90dG9tKTtcbiAgICBjb25zdCBtYXJnaW5MZWZ0ID0gcGFyc2VGbG9hdCh0YXJnZXRFbFN0eWxlcy5tYXJnaW5MZWZ0KTtcbiAgICBjb25zdCBtYXJnaW5SaWdodCA9IHBhcnNlRmxvYXQodGFyZ2V0RWxTdHlsZXMubWFyZ2luUmlnaHQpO1xuXG4gICAgbGV0IHRvcFBvc2l0aW9uID0gMDtcbiAgICBsZXQgbGVmdFBvc2l0aW9uID0gMDtcblxuICAgIHN3aXRjaCAocGxhY2VtZW50UHJpbWFyeSkge1xuICAgICAgY2FzZSAndG9wJzpcbiAgICAgICAgdG9wUG9zaXRpb24gPVxuICAgICAgICAgIGhvc3RFbFBvc2l0aW9uLnRvcCAtXG4gICAgICAgICAgKHRhcmdldEVsZW1lbnQub2Zmc2V0SGVpZ2h0ICsgbWFyZ2luVG9wICsgbWFyZ2luQm90dG9tKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlICdib3R0b20nOlxuICAgICAgICB0b3BQb3NpdGlvbiA9IGhvc3RFbFBvc2l0aW9uLnRvcCArIGhvc3RFbFBvc2l0aW9uLmhlaWdodDtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlICdsZWZ0JzpcbiAgICAgICAgbGVmdFBvc2l0aW9uID1cbiAgICAgICAgICBob3N0RWxQb3NpdGlvbi5sZWZ0IC1cbiAgICAgICAgICAodGFyZ2V0RWxlbWVudC5vZmZzZXRXaWR0aCArIG1hcmdpbkxlZnQgKyBtYXJnaW5SaWdodCk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSAncmlnaHQnOlxuICAgICAgICBsZWZ0UG9zaXRpb24gPSBob3N0RWxQb3NpdGlvbi5sZWZ0ICsgaG9zdEVsUG9zaXRpb24ud2lkdGg7XG4gICAgICAgIGJyZWFrO1xuICAgIH1cblxuICAgIHN3aXRjaCAocGxhY2VtZW50U2Vjb25kYXJ5KSB7XG4gICAgICBjYXNlICd0b3AnOlxuICAgICAgICB0b3BQb3NpdGlvbiA9IGhvc3RFbFBvc2l0aW9uLnRvcDtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlICdib3R0b20nOlxuICAgICAgICB0b3BQb3NpdGlvbiA9XG4gICAgICAgICAgaG9zdEVsUG9zaXRpb24udG9wICtcbiAgICAgICAgICBob3N0RWxQb3NpdGlvbi5oZWlnaHQgLVxuICAgICAgICAgIHRhcmdldEVsZW1lbnQub2Zmc2V0SGVpZ2h0O1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgJ2xlZnQnOlxuICAgICAgICBsZWZ0UG9zaXRpb24gPSBob3N0RWxQb3NpdGlvbi5sZWZ0O1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgJ3JpZ2h0JzpcbiAgICAgICAgbGVmdFBvc2l0aW9uID1cbiAgICAgICAgICBob3N0RWxQb3NpdGlvbi5sZWZ0ICtcbiAgICAgICAgICBob3N0RWxQb3NpdGlvbi53aWR0aCAtXG4gICAgICAgICAgdGFyZ2V0RWxlbWVudC5vZmZzZXRXaWR0aDtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlICdjZW50ZXInOlxuICAgICAgICBpZiAocGxhY2VtZW50UHJpbWFyeSA9PT0gJ3RvcCcgfHwgcGxhY2VtZW50UHJpbWFyeSA9PT0gJ2JvdHRvbScpIHtcbiAgICAgICAgICBsZWZ0UG9zaXRpb24gPVxuICAgICAgICAgICAgaG9zdEVsUG9zaXRpb24ubGVmdCArXG4gICAgICAgICAgICBob3N0RWxQb3NpdGlvbi53aWR0aCAvIDIgLVxuICAgICAgICAgICAgdGFyZ2V0RWxlbWVudC5vZmZzZXRXaWR0aCAvIDI7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgdG9wUG9zaXRpb24gPVxuICAgICAgICAgICAgaG9zdEVsUG9zaXRpb24udG9wICtcbiAgICAgICAgICAgIGhvc3RFbFBvc2l0aW9uLmhlaWdodCAvIDIgLVxuICAgICAgICAgICAgdGFyZ2V0RWxlbWVudC5vZmZzZXRIZWlnaHQgLyAyO1xuICAgICAgICB9XG4gICAgICAgIGJyZWFrO1xuICAgIH1cblxuICAgIC8vLyBUaGUgdHJhbnNsYXRlM2QvZ3B1IGFjY2VsZXJhdGlvbiByZW5kZXIgYSBibHVycnkgdGV4dCBvbiBjaHJvbWUsIHRoZSBuZXh0IGxpbmUgaXMgY29tbWVudGVkIHVudGlsIGEgYnJvd3NlciBmaXhcbiAgICAvLyB0YXJnZXRFbGVtZW50LnN0eWxlLnRyYW5zZm9ybSA9IGB0cmFuc2xhdGUzZCgke01hdGgucm91bmQobGVmdFBvc2l0aW9uKX1weCwgJHtNYXRoLmZsb29yKHRvcFBvc2l0aW9uKX1weCwgMHB4KWA7XG4gICAgdGFyZ2V0RWxlbWVudC5zdHlsZS50cmFuc2Zvcm0gPSBgdHJhbnNsYXRlKCR7TWF0aC5yb3VuZChcbiAgICAgIGxlZnRQb3NpdGlvblxuICAgICl9cHgsICR7TWF0aC5yb3VuZCh0b3BQb3NpdGlvbil9cHgpYDtcblxuICAgIC8vIENoZWNrIGlmIHRoZSB0YXJnZXRFbGVtZW50IGlzIGluc2lkZSB0aGUgdmlld3BvcnRcbiAgICBjb25zdCB0YXJnZXRFbEJDUiA9IHRhcmdldEVsZW1lbnQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7XG4gICAgY29uc3QgaHRtbCA9IGRvY3VtZW50LmRvY3VtZW50RWxlbWVudDtcbiAgICBjb25zdCB3aW5kb3dIZWlnaHQgPSB3aW5kb3cuaW5uZXJIZWlnaHQgfHwgaHRtbC5jbGllbnRIZWlnaHQ7XG4gICAgY29uc3Qgd2luZG93V2lkdGggPSB3aW5kb3cuaW5uZXJXaWR0aCB8fCBodG1sLmNsaWVudFdpZHRoO1xuXG4gICAgcmV0dXJuIChcbiAgICAgIHRhcmdldEVsQkNSLmxlZnQgPj0gMCAmJlxuICAgICAgdGFyZ2V0RWxCQ1IudG9wID49IDAgJiZcbiAgICAgIHRhcmdldEVsQkNSLnJpZ2h0IDw9IHdpbmRvd1dpZHRoICYmXG4gICAgICB0YXJnZXRFbEJDUi5ib3R0b20gPD0gd2luZG93SGVpZ2h0XG4gICAgKTtcbiAgfVxufVxuXG4vKipcbiAqIFBsYWNlbWVudCBTZXBhcmF0b3IgUmVnZXhcbiAqL1xuY29uc3QgcGxhY2VtZW50U2VwYXJhdG9yID0gL1xccysvO1xuLyoqXG4gKiBHbG9iYWwgUG9zaXRpb24gU2VydmljZVxuICovXG5leHBvcnQgY29uc3QgcG9zaXRpb25TZXJ2aWNlID0gbmV3IFBvc2l0aW9uaW5nKCk7XG5cbi8qKlxuICogQWNjZXB0IHRoZSBwbGFjZW1lbnQgYXJyYXkgYW5kIGFwcGxpZXMgdGhlIGFwcHJvcHJpYXRlIHBsYWNlbWVudCBkZXBlbmRlbnQgb24gdGhlIHZpZXdwb3J0LlxuICogUmV0dXJucyB0aGUgYXBwbGllZCBwbGFjZW1lbnQuXG4gKiBJbiBjYXNlIG9mIGF1dG8gcGxhY2VtZW50LCBwbGFjZW1lbnRzIGFyZSBzZWxlY3RlZCBpbiBvcmRlclxuICogICAndG9wJywgJ2JvdHRvbScsICdsZWZ0JywgJ3JpZ2h0JyxcbiAqICAgJ3RvcC1sZWZ0JywgJ3RvcC1yaWdodCcsXG4gKiAgICdib3R0b20tbGVmdCcsICdib3R0b20tcmlnaHQnLFxuICogICAnbGVmdC10b3AnLCAnbGVmdC1ib3R0b20nLFxuICogICAncmlnaHQtdG9wJywgJ3JpZ2h0LWJvdHRvbScuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBwb3NpdGlvbkVsZW1lbnRzKFxuICBob3N0RWxlbWVudDogSFRNTEVsZW1lbnQsXG4gIHRhcmdldEVsZW1lbnQ6IEhUTUxFbGVtZW50LFxuICBwbGFjZW1lbnQ6IHN0cmluZyB8IFBsYWNlbWVudCB8IFBsYWNlbWVudEFycmF5LFxuICBhcHBlbmRUb0JvZHk/OiBib29sZWFuLFxuICBiYXNlQ2xhc3M/OiBzdHJpbmdcbik6IFBsYWNlbWVudCB8IG51bGwge1xuICBjb25zdCBwbGFjZW1lbnRWYWxzOiBBcnJheTxQbGFjZW1lbnQ+ID0gQXJyYXkuaXNBcnJheShwbGFjZW1lbnQpXG4gICAgPyBwbGFjZW1lbnRcbiAgICA6IChwbGFjZW1lbnQuc3BsaXQocGxhY2VtZW50U2VwYXJhdG9yKSBhcyBBcnJheTxQbGFjZW1lbnQ+KTtcblxuICBjb25zdCBhbGxvd2VkUGxhY2VtZW50cyA9IFtcbiAgICAndG9wJyxcbiAgICAnYm90dG9tJyxcbiAgICAnbGVmdCcsXG4gICAgJ3JpZ2h0JyxcbiAgICAndG9wLWxlZnQnLFxuICAgICd0b3AtcmlnaHQnLFxuICAgICdib3R0b20tbGVmdCcsXG4gICAgJ2JvdHRvbS1yaWdodCcsXG4gICAgJ2xlZnQtdG9wJyxcbiAgICAnbGVmdC1ib3R0b20nLFxuICAgICdyaWdodC10b3AnLFxuICAgICdyaWdodC1ib3R0b20nLFxuICBdO1xuXG4gIGNvbnN0IGNsYXNzTGlzdCA9IHRhcmdldEVsZW1lbnQuY2xhc3NMaXN0O1xuICBjb25zdCBhZGRDbGFzc2VzVG9UYXJnZXQgPSAodGFyZ2V0UGxhY2VtZW50OiBQbGFjZW1lbnQpOiBBcnJheTxzdHJpbmc+ID0+IHtcbiAgICBjb25zdCBbcHJpbWFyeSwgc2Vjb25kYXJ5XSA9IHRhcmdldFBsYWNlbWVudC5zcGxpdCgnLScpO1xuICAgIGNvbnN0IGNsYXNzZXM6IHN0cmluZ1tdID0gW107XG4gICAgaWYgKGJhc2VDbGFzcykge1xuICAgICAgY2xhc3Nlcy5wdXNoKGAke2Jhc2VDbGFzc30tJHtwcmltYXJ5fWApO1xuICAgICAgaWYgKHNlY29uZGFyeSkge1xuICAgICAgICBjbGFzc2VzLnB1c2goYCR7YmFzZUNsYXNzfS0ke3ByaW1hcnl9LSR7c2Vjb25kYXJ5fWApO1xuICAgICAgfVxuXG4gICAgICBjbGFzc2VzLmZvckVhY2goKGNsYXNzbmFtZSkgPT4ge1xuICAgICAgICBjbGFzc0xpc3QuYWRkKGNsYXNzbmFtZSk7XG4gICAgICB9KTtcbiAgICB9XG4gICAgcmV0dXJuIGNsYXNzZXM7XG4gIH07XG5cbiAgLy8gUmVtb3ZlIG9sZCBwbGFjZW1lbnQgY2xhc3NlcyB0byBhdm9pZCBpc3N1ZXNcbiAgaWYgKGJhc2VDbGFzcykge1xuICAgIGFsbG93ZWRQbGFjZW1lbnRzLmZvckVhY2goKHBsYWNlbWVudFRvUmVtb3ZlKSA9PiB7XG4gICAgICBjbGFzc0xpc3QucmVtb3ZlKGAke2Jhc2VDbGFzc30tJHtwbGFjZW1lbnRUb1JlbW92ZX1gKTtcbiAgICB9KTtcbiAgfVxuXG4gIC8vIHJlcGxhY2UgYXV0byBwbGFjZW1lbnQgd2l0aCBvdGhlciBwbGFjZW1lbnRzXG4gIGxldCBoYXNBdXRvID0gcGxhY2VtZW50VmFscy5maW5kSW5kZXgoKHZhbCkgPT4gdmFsID09PSAnYXV0bycpO1xuICBpZiAoaGFzQXV0byA+PSAwKSB7XG4gICAgYWxsb3dlZFBsYWNlbWVudHMuZm9yRWFjaChmdW5jdGlvbiAob2JqKSB7XG4gICAgICBpZiAocGxhY2VtZW50VmFscy5maW5kKCh2YWwpID0+IHZhbC5zZWFyY2goJ14nICsgb2JqKSAhPT0gLTEpID09IG51bGwpIHtcbiAgICAgICAgcGxhY2VtZW50VmFscy5zcGxpY2UoaGFzQXV0bysrLCAxLCBvYmogYXMgUGxhY2VtZW50KTtcbiAgICAgIH1cbiAgICB9KTtcbiAgfVxuXG4gIC8vIGNvb3JkaW5hdGVzIHdoZXJlIHRvIHBvc2l0aW9uXG5cbiAgLy8gUmVxdWlyZWQgZm9yIHRyYW5zZm9ybTpcbiAgY29uc3Qgc3R5bGUgPSB0YXJnZXRFbGVtZW50LnN0eWxlO1xuICBzdHlsZS5wb3NpdGlvbiA9ICdhYnNvbHV0ZSc7XG4gIHN0eWxlLnRvcCA9ICcwJztcbiAgc3R5bGUubGVmdCA9ICcwJztcbiAgc3R5bGVbJ3dpbGwtY2hhbmdlJ10gPSAndHJhbnNmb3JtJztcblxuICBsZXQgdGVzdFBsYWNlbWVudDogUGxhY2VtZW50IHwgbnVsbCA9IG51bGw7XG4gIGxldCBpc0luVmlld3BvcnQgPSBmYWxzZTtcbiAgZm9yICh0ZXN0UGxhY2VtZW50IG9mIHBsYWNlbWVudFZhbHMpIHtcbiAgICBjb25zdCBhZGRlZENsYXNzZXMgPSBhZGRDbGFzc2VzVG9UYXJnZXQodGVzdFBsYWNlbWVudCk7XG5cbiAgICBpZiAoXG4gICAgICBwb3NpdGlvblNlcnZpY2UucG9zaXRpb25FbGVtZW50cyhcbiAgICAgICAgaG9zdEVsZW1lbnQsXG4gICAgICAgIHRhcmdldEVsZW1lbnQsXG4gICAgICAgIHRlc3RQbGFjZW1lbnQsXG4gICAgICAgIGFwcGVuZFRvQm9keVxuICAgICAgKVxuICAgICkge1xuICAgICAgaXNJblZpZXdwb3J0ID0gdHJ1ZTtcbiAgICAgIGJyZWFrO1xuICAgIH1cblxuICAgIC8vIFJlbW92ZSB0aGUgYmFzZUNsYXNzZXMgZm9yIGZ1cnRoZXIgY2FsY3VsYXRpb25cbiAgICBpZiAoYmFzZUNsYXNzKSB7XG4gICAgICBhZGRlZENsYXNzZXMuZm9yRWFjaCgoY2xhc3NuYW1lKSA9PiB7XG4gICAgICAgIGNsYXNzTGlzdC5yZW1vdmUoY2xhc3NuYW1lKTtcbiAgICAgIH0pO1xuICAgIH1cbiAgfVxuXG4gIGlmICghaXNJblZpZXdwb3J0KSB7XG4gICAgLy8gSWYgbm90aGluZyBtYXRjaCwgdGhlIGZpcnN0IHBsYWNlbWVudCBpcyB0aGUgZGVmYXVsdCBvbmVcbiAgICB0ZXN0UGxhY2VtZW50ID0gcGxhY2VtZW50VmFsc1swXTtcbiAgICBhZGRDbGFzc2VzVG9UYXJnZXQodGVzdFBsYWNlbWVudCk7XG4gICAgcG9zaXRpb25TZXJ2aWNlLnBvc2l0aW9uRWxlbWVudHMoXG4gICAgICBob3N0RWxlbWVudCxcbiAgICAgIHRhcmdldEVsZW1lbnQsXG4gICAgICB0ZXN0UGxhY2VtZW50LFxuICAgICAgYXBwZW5kVG9Cb2R5XG4gICAgKTtcbiAgfVxuXG4gIHJldHVybiB0ZXN0UGxhY2VtZW50O1xufVxuXG4vKipcbiAqIFBsYWNlbWVudCBUeXBlblxuICovXG5leHBvcnQgdHlwZSBQbGFjZW1lbnQgPVxuICB8ICdhdXRvJ1xuICB8ICd0b3AnXG4gIHwgJ2JvdHRvbSdcbiAgfCAnbGVmdCdcbiAgfCAncmlnaHQnXG4gIHwgJ3RvcC1sZWZ0J1xuICB8ICd0b3AtcmlnaHQnXG4gIHwgJ2JvdHRvbS1sZWZ0J1xuICB8ICdib3R0b20tcmlnaHQnXG4gIHwgJ2xlZnQtdG9wJ1xuICB8ICdsZWZ0LWJvdHRvbSdcbiAgfCAncmlnaHQtdG9wJ1xuICB8ICdyaWdodC1ib3R0b20nO1xuXG4vKipcbiAqIFBsYWNlbWVudCBBcnJheVxuICovXG5leHBvcnQgdHlwZSBQbGFjZW1lbnRBcnJheSA9IFBsYWNlbWVudCB8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
|