@simpleangularcontrols/sac-common 10.0.0-rc.3 → 10.0.0-rc.30
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 +16 -16
- package/bundles/simpleangularcontrols-sac-common.umd.js +13451 -11757
- package/bundles/simpleangularcontrols-sac-common.umd.js.map +1 -1
- package/bundles/simpleangularcontrols-sac-common.umd.min.js +1 -1
- package/bundles/simpleangularcontrols-sac-common.umd.min.js.map +1 -1
- package/common/basedatetimecontrol.d.ts +200 -83
- package/common/basedatetimecontrol.ngfactory.d.ts +1 -1
- package/common/baseinputcontrol.d.ts +40 -42
- package/common/baseinputcontrol.ngfactory.d.ts +1 -1
- package/common/baselistcontrol.d.ts +43 -43
- package/common/baselistcontrol.ngfactory.d.ts +1 -1
- package/common/basemodelcontrol.d.ts +300 -252
- package/common/basemodelcontrol.ngfactory.d.ts +1 -1
- package/common/baseselectcontrol.d.ts +14 -14
- package/common/baseselectcontrol.ngfactory.d.ts +1 -1
- package/common/baseuploadcontrol.d.ts +324 -284
- package/common/baseuploadcontrol.ngfactory.d.ts +1 -1
- package/components/browser/browser.d.ts +264 -267
- package/components/browser/browser.ngfactory.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/browserfiledeleterequest.d.ts +18 -18
- package/components/browser/models/browserfiledeleterequest.ngfactory.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/browserfileresponse.d.ts +10 -10
- package/components/browser/models/browserfileresponse.ngfactory.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/browsernode.d.ts +34 -34
- package/components/browser/models/browsernode.ngfactory.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/browsernodenewrequest.d.ts +18 -18
- package/components/browser/models/browsernodenewrequest.ngfactory.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/browsernoderequest.d.ts +18 -18
- package/components/browser/models/browsernoderequest.ngfactory.d.ts +1 -1
- package/components/browser/models/browsernoderesponse.d.ts +10 -10
- package/components/browser/models/browsernoderesponse.ngfactory.d.ts +1 -1
- package/controls/buttons/button.d.ts +80 -70
- package/controls/buttons/button.ngfactory.d.ts +1 -1
- package/controls/checkbox/checkbox.d.ts +32 -23
- package/controls/checkbox/checkbox.ngfactory.d.ts +1 -1
- package/controls/checkbox/radiobutton.d.ts +120 -79
- package/controls/checkbox/radiobutton.ngfactory.d.ts +1 -1
- package/controls/checkbox/radiobuttons.d.ts +63 -60
- package/controls/checkbox/radiobuttons.ngfactory.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.d.ts +50 -49
- package/controls/confirm/confirm.ngfactory.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/contextmenu/contextmenu.d.ts +134 -113
- package/controls/contextmenu/contextmenu.interface.d.ts +9 -0
- package/{utilities/positioning.ngfactory.d.ts → controls/contextmenu/contextmenu.interface.ngfactory.d.ts} +1 -1
- package/controls/contextmenu/contextmenu.ngfactory.d.ts +1 -1
- package/controls/contextmenu/contextmenuanchor.d.ts +15 -15
- package/controls/contextmenu/contextmenuanchor.ngfactory.d.ts +1 -1
- package/controls/contextmenu/contextmenucontainer.d.ts +15 -15
- package/controls/contextmenu/contextmenucontainer.ngfactory.d.ts +1 -1
- package/controls/contextmenu/contextmenuitem.d.ts +10 -5
- package/controls/contextmenu/contextmenuitem.ngfactory.d.ts +1 -1
- package/controls/contextmenu/contextmenuitembutton.d.ts +67 -66
- package/controls/contextmenu/contextmenuitembutton.ngfactory.d.ts +1 -1
- package/controls/datetime/date.d.ts +117 -120
- package/controls/datetime/date.ngfactory.d.ts +1 -1
- package/controls/datetime/dateselector.d.ts +176 -161
- package/controls/datetime/dateselector.ngfactory.d.ts +1 -1
- package/controls/datetime/datetime.d.ts +129 -135
- package/controls/datetime/datetime.ngfactory.d.ts +1 -1
- package/controls/datetime/time.d.ts +121 -115
- package/controls/datetime/time.ngfactory.d.ts +1 -1
- package/controls/dialog/dialog.d.ts +103 -105
- package/controls/dialog/dialog.ngfactory.d.ts +1 -1
- package/controls/form/form.d.ts +52 -47
- package/controls/form/form.ngfactory.d.ts +1 -1
- package/controls/grid/grid.d.ts +132 -125
- package/controls/grid/grid.ngfactory.d.ts +1 -1
- package/controls/grid/gridbutton.d.ts +53 -33
- package/controls/grid/gridbutton.ngfactory.d.ts +1 -1
- package/controls/grid/gridcolumn.d.ts +32 -28
- package/controls/grid/gridcolumn.ngfactory.d.ts +1 -1
- package/controls/grid/gridcolumnaction.d.ts +15 -15
- package/controls/grid/gridcolumnaction.ngfactory.d.ts +1 -1
- package/controls/grid/gridcolumnbase.d.ts +115 -86
- package/controls/grid/gridcolumnbase.ngfactory.d.ts +1 -1
- package/controls/grid/gridimage.d.ts +9 -9
- package/controls/grid/gridimage.ngfactory.d.ts +1 -1
- package/controls/grid/model.d.ts +95 -83
- package/controls/grid/model.ngfactory.d.ts +1 -1
- package/controls/grid/paging.d.ts +148 -147
- package/controls/grid/paging.ngfactory.d.ts +1 -1
- package/controls/input/input.d.ts +35 -35
- package/controls/input/input.ngfactory.d.ts +1 -1
- package/controls/input/inputarea.d.ts +28 -26
- package/controls/input/inputarea.ngfactory.d.ts +1 -1
- package/controls/input/inputcurrency.d.ts +14 -11
- package/controls/input/inputcurrency.ngfactory.d.ts +1 -1
- package/controls/input/inputdecimal.d.ts +59 -59
- package/controls/input/inputdecimal.ngfactory.d.ts +1 -1
- package/controls/input/inputemail.d.ts +19 -19
- package/controls/input/inputemail.ngfactory.d.ts +1 -1
- package/controls/input/inputinteger.d.ts +59 -59
- package/controls/input/inputinteger.ngfactory.d.ts +1 -1
- package/controls/input/inputpassword.d.ts +43 -23
- package/controls/input/inputpassword.ngfactory.d.ts +1 -1
- package/controls/input/inputsearch.d.ts +35 -23
- package/controls/input/inputsearch.ngfactory.d.ts +1 -1
- package/controls/layout/formlayout.d.ts +65 -46
- package/controls/layout/formlayout.ngfactory.d.ts +1 -1
- package/controls/list/buildvaluestring.d.ts +6 -0
- package/controls/{treeview/ngtreeitemaction.ngfactory.d.ts → list/buildvaluestring.ngfactory.d.ts} +1 -1
- package/controls/list/dropdown.d.ts +97 -138
- package/controls/list/dropdown.ngfactory.d.ts +1 -1
- package/controls/list/dropdownoptions.d.ts +38 -0
- package/{validation/minlength.validator.ngfactory.d.ts → controls/list/dropdownoptions.ngfactory.d.ts} +1 -1
- package/controls/list/list.module.d.ts +2 -2
- package/controls/list/list.module.ngfactory.d.ts +3 -3
- package/controls/list/listbox.d.ts +88 -86
- package/controls/list/listbox.ngfactory.d.ts +1 -1
- package/controls/multilanguage/multilanguageinput.d.ts +102 -102
- package/controls/multilanguage/multilanguageinput.ngfactory.d.ts +1 -1
- package/controls/multilanguage/multilanguageinputarea.d.ts +107 -107
- package/controls/multilanguage/multilanguageinputarea.ngfactory.d.ts +1 -1
- package/controls/static/formcontainer.d.ts +35 -31
- package/controls/static/formcontainer.ngfactory.d.ts +1 -1
- package/controls/static/staticlabel.d.ts +18 -18
- package/controls/static/staticlabel.ngfactory.d.ts +1 -1
- package/controls/tabs/tab.d.ts +49 -45
- package/controls/tabs/tab.ngfactory.d.ts +1 -1
- package/controls/tabs/tabitem.d.ts +30 -30
- package/controls/tabs/tabitem.ngfactory.d.ts +1 -1
- package/controls/tinymce/tinymce.d.ts +153 -149
- package/controls/tinymce/tinymce.ngfactory.d.ts +1 -1
- package/controls/tinymce/tinymcedialogsettings.d.ts +27 -27
- package/controls/tinymce/tinymcedialogsettings.ngfactory.d.ts +1 -1
- package/controls/tinymce/tinymcedialogsettingsmeta.d.ts +9 -9
- package/controls/tinymce/tinymcedialogsettingsmeta.ngfactory.d.ts +1 -1
- package/controls/tinymce/tinymceinstance.d.ts +10 -10
- package/controls/tinymce/tinymceinstance.ngfactory.d.ts +1 -1
- package/controls/tooltip/tooltip.d.ts +158 -138
- package/controls/tooltip/tooltip.ngfactory.d.ts +1 -1
- package/controls/treeview/treeview.d.ts +230 -185
- package/controls/treeview/treeview.ngfactory.d.ts +1 -1
- package/controls/upload/dropzonemultiple.d.ts +74 -70
- package/controls/upload/dropzonemultiple.ngfactory.d.ts +1 -1
- package/controls/upload/dropzonesingle.d.ts +51 -47
- package/controls/upload/dropzonesingle.ngfactory.d.ts +1 -1
- package/controls/upload/uploadmultiple.d.ts +54 -50
- package/controls/upload/uploadmultiple.ngfactory.d.ts +1 -1
- package/controls/upload/uploadsingle.d.ts +31 -27
- package/controls/upload/uploadsingle.ngfactory.d.ts +1 -1
- package/controls/validation/validationsummary.d.ts +65 -60
- package/controls/validation/validationsummary.ngfactory.d.ts +1 -1
- package/controls/wizard/wizard.d.ts +80 -73
- package/controls/wizard/wizard.ngfactory.d.ts +1 -1
- package/controls/wizard/wizarditem.d.ts +25 -25
- package/controls/wizard/wizarditem.ngfactory.d.ts +1 -1
- package/enums/ButtonRoleType.d.ts +26 -1
- package/enums/ButtonRoleType.ngfactory.d.ts +1 -1
- package/enums/ControlHeight.d.ts +17 -17
- package/enums/ControlHeight.ngfactory.d.ts +1 -1
- package/enums/IconType.d.ts +7 -7
- package/enums/IconType.ngfactory.d.ts +1 -1
- package/esm2015/common/basedatetimecontrol.js +364 -164
- package/esm2015/common/basedatetimecontrol.ngfactory.js +7 -7
- package/esm2015/common/baseinputcontrol.js +75 -78
- package/esm2015/common/baseinputcontrol.ngfactory.js +7 -7
- package/esm2015/common/baselistcontrol.js +59 -55
- package/esm2015/common/baselistcontrol.ngfactory.js +7 -7
- package/esm2015/common/basemodelcontrol.js +563 -483
- package/esm2015/common/basemodelcontrol.ngfactory.js +7 -7
- package/esm2015/common/baseselectcontrol.js +28 -26
- package/esm2015/common/baseselectcontrol.ngfactory.js +7 -7
- package/esm2015/common/baseuploadcontrol.js +523 -457
- package/esm2015/common/baseuploadcontrol.ngfactory.js +7 -7
- package/esm2015/components/browser/browser.js +533 -545
- package/esm2015/components/browser/browser.ngfactory.js +7 -7
- package/esm2015/components/browser/models/browserfile.js +1 -1
- package/esm2015/components/browser/models/browserfile.ngfactory.js +7 -7
- package/esm2015/components/browser/models/browserfiledeleterequest.js +15 -13
- package/esm2015/components/browser/models/browserfiledeleterequest.ngfactory.js +7 -7
- package/esm2015/components/browser/models/browserfilerenamerequest.js +15 -13
- package/esm2015/components/browser/models/browserfilerenamerequest.ngfactory.js +7 -7
- package/esm2015/components/browser/models/browserfileresponse.js +1 -1
- package/esm2015/components/browser/models/browserfileresponse.ngfactory.js +7 -7
- package/esm2015/components/browser/models/browserfilesaverequest.js +15 -13
- package/esm2015/components/browser/models/browserfilesaverequest.ngfactory.js +7 -7
- package/esm2015/components/browser/models/browsernode.js +1 -1
- package/esm2015/components/browser/models/browsernode.ngfactory.js +7 -7
- package/esm2015/components/browser/models/browsernodedeleterequest.js +15 -13
- package/esm2015/components/browser/models/browsernodedeleterequest.ngfactory.js +7 -7
- package/esm2015/components/browser/models/browsernodenewrequest.js +15 -13
- package/esm2015/components/browser/models/browsernodenewrequest.ngfactory.js +7 -7
- package/esm2015/components/browser/models/browsernoderenamerequest.js +15 -13
- package/esm2015/components/browser/models/browsernoderenamerequest.ngfactory.js +7 -7
- package/esm2015/components/browser/models/browsernoderequest.js +15 -13
- package/esm2015/components/browser/models/browsernoderequest.ngfactory.js +7 -7
- package/esm2015/components/browser/models/browsernoderesponse.js +1 -1
- package/esm2015/components/browser/models/browsernoderesponse.ngfactory.js +7 -7
- package/esm2015/controls/buttons/button.js +152 -141
- package/esm2015/controls/buttons/button.ngfactory.js +7 -7
- package/esm2015/controls/checkbox/checkbox.js +56 -33
- package/esm2015/controls/checkbox/checkbox.ngfactory.js +7 -7
- package/esm2015/controls/checkbox/radiobutton.js +173 -115
- package/esm2015/controls/checkbox/radiobutton.ngfactory.js +7 -7
- package/esm2015/controls/checkbox/radiobuttons.js +116 -113
- package/esm2015/controls/checkbox/radiobuttons.ngfactory.js +7 -7
- package/esm2015/controls/confirm/confirm.button.js +32 -32
- package/esm2015/controls/confirm/confirm.button.ngfactory.js +7 -7
- package/esm2015/controls/confirm/confirm.js +74 -75
- package/esm2015/controls/confirm/confirm.ngfactory.js +7 -7
- package/esm2015/controls/confirm/confirm.service.js +87 -87
- package/esm2015/controls/confirm/confirm.service.ngfactory.js +7 -7
- package/esm2015/controls/contextmenu/contextmenu.interface.js +1 -0
- package/esm2015/controls/contextmenu/contextmenu.interface.ngfactory.js +7 -0
- package/esm2015/controls/contextmenu/contextmenu.js +210 -194
- package/esm2015/controls/contextmenu/contextmenu.ngfactory.js +7 -7
- package/esm2015/controls/contextmenu/contextmenuanchor.js +22 -22
- package/esm2015/controls/contextmenu/contextmenuanchor.ngfactory.js +7 -7
- package/esm2015/controls/contextmenu/contextmenucontainer.js +22 -22
- package/esm2015/controls/contextmenu/contextmenucontainer.ngfactory.js +7 -7
- package/esm2015/controls/contextmenu/contextmenuitem.js +21 -10
- package/esm2015/controls/contextmenu/contextmenuitem.ngfactory.js +7 -7
- package/esm2015/controls/contextmenu/contextmenuitembutton.js +106 -97
- package/esm2015/controls/contextmenu/contextmenuitembutton.ngfactory.js +7 -7
- package/esm2015/controls/datetime/date.js +213 -212
- package/esm2015/controls/datetime/date.ngfactory.js +7 -7
- package/esm2015/controls/datetime/dateselector.js +481 -458
- package/esm2015/controls/datetime/dateselector.ngfactory.js +7 -7
- package/esm2015/controls/datetime/datetime.js +227 -229
- package/esm2015/controls/datetime/datetime.ngfactory.js +7 -7
- package/esm2015/controls/datetime/time.js +222 -212
- package/esm2015/controls/datetime/time.ngfactory.js +7 -7
- package/esm2015/controls/dialog/dialog.js +182 -207
- package/esm2015/controls/dialog/dialog.ngfactory.js +7 -7
- package/esm2015/controls/form/form.js +114 -110
- package/esm2015/controls/form/form.ngfactory.js +7 -7
- package/esm2015/controls/grid/grid.js +155 -144
- package/esm2015/controls/grid/grid.ngfactory.js +7 -7
- package/esm2015/controls/grid/gridbutton.js +102 -54
- package/esm2015/controls/grid/gridbutton.ngfactory.js +7 -7
- package/esm2015/controls/grid/gridcolumn.js +60 -49
- package/esm2015/controls/grid/gridcolumn.ngfactory.js +7 -7
- package/esm2015/controls/grid/gridcolumnaction.js +27 -26
- package/esm2015/controls/grid/gridcolumnaction.ngfactory.js +7 -7
- package/esm2015/controls/grid/gridcolumnbase.js +159 -126
- package/esm2015/controls/grid/gridcolumnbase.ngfactory.js +7 -7
- package/esm2015/controls/grid/gridimage.js +13 -13
- package/esm2015/controls/grid/gridimage.ngfactory.js +7 -7
- package/esm2015/controls/grid/model.js +103 -79
- package/esm2015/controls/grid/model.ngfactory.js +7 -7
- package/esm2015/controls/grid/paging.js +261 -254
- package/esm2015/controls/grid/paging.ngfactory.js +7 -7
- package/esm2015/controls/input/input.js +64 -66
- package/esm2015/controls/input/input.ngfactory.js +7 -7
- package/esm2015/controls/input/inputarea.js +63 -54
- package/esm2015/controls/input/inputarea.ngfactory.js +7 -7
- package/esm2015/controls/input/inputcurrency.js +34 -31
- package/esm2015/controls/input/inputcurrency.ngfactory.js +7 -7
- package/esm2015/controls/input/inputdecimal.js +140 -146
- package/esm2015/controls/input/inputdecimal.ngfactory.js +7 -7
- package/esm2015/controls/input/inputemail.js +41 -41
- package/esm2015/controls/input/inputemail.ngfactory.js +7 -7
- package/esm2015/controls/input/inputinteger.js +126 -130
- package/esm2015/controls/input/inputinteger.ngfactory.js +7 -7
- package/esm2015/controls/input/inputpassword.js +78 -46
- package/esm2015/controls/input/inputpassword.ngfactory.js +7 -7
- package/esm2015/controls/input/inputsearch.js +69 -37
- package/esm2015/controls/input/inputsearch.ngfactory.js +7 -7
- package/esm2015/controls/layout/formlayout.js +89 -70
- package/esm2015/controls/layout/formlayout.ngfactory.js +7 -7
- package/esm2015/controls/list/buildvaluestring.js +20 -0
- package/esm2015/controls/list/buildvaluestring.ngfactory.js +7 -0
- package/esm2015/controls/list/dropdown.js +182 -270
- package/esm2015/controls/list/dropdown.ngfactory.js +7 -7
- package/esm2015/controls/list/dropdownoptions.js +79 -0
- package/esm2015/controls/list/dropdownoptions.ngfactory.js +7 -0
- package/esm2015/controls/list/list.module.js +11 -11
- package/esm2015/controls/list/list.module.ngfactory.js +7 -7
- package/esm2015/controls/list/listbox.js +189 -187
- package/esm2015/controls/list/listbox.ngfactory.js +7 -7
- package/esm2015/controls/multilanguage/multilanguageinput.js +224 -230
- package/esm2015/controls/multilanguage/multilanguageinput.ngfactory.js +7 -7
- package/esm2015/controls/multilanguage/multilanguageinputarea.js +225 -231
- package/esm2015/controls/multilanguage/multilanguageinputarea.ngfactory.js +7 -7
- package/esm2015/controls/static/formcontainer.js +61 -50
- package/esm2015/controls/static/formcontainer.ngfactory.js +7 -7
- package/esm2015/controls/static/staticlabel.js +35 -31
- package/esm2015/controls/static/staticlabel.ngfactory.js +7 -7
- package/esm2015/controls/tabs/tab.js +82 -72
- package/esm2015/controls/tabs/tab.ngfactory.js +7 -7
- package/esm2015/controls/tabs/tabitem.js +34 -32
- package/esm2015/controls/tabs/tabitem.ngfactory.js +7 -7
- package/esm2015/controls/tinymce/tinymce.js +239 -238
- package/esm2015/controls/tinymce/tinymce.ngfactory.js +7 -7
- package/esm2015/controls/tinymce/tinymcedialogsettings.js +15 -13
- package/esm2015/controls/tinymce/tinymcedialogsettings.ngfactory.js +7 -7
- package/esm2015/controls/tinymce/tinymcedialogsettingsmeta.js +1 -4
- package/esm2015/controls/tinymce/tinymcedialogsettingsmeta.ngfactory.js +7 -7
- package/esm2015/controls/tinymce/tinymceinstance.js +1 -1
- package/esm2015/controls/tinymce/tinymceinstance.ngfactory.js +7 -7
- package/esm2015/controls/tooltip/tooltip.js +258 -361
- package/esm2015/controls/tooltip/tooltip.ngfactory.js +7 -7
- package/esm2015/controls/treeview/treeview.js +412 -322
- package/esm2015/controls/treeview/treeview.ngfactory.js +7 -7
- package/esm2015/controls/upload/dropzonemultiple.js +169 -163
- package/esm2015/controls/upload/dropzonemultiple.ngfactory.js +7 -7
- package/esm2015/controls/upload/dropzonesingle.js +116 -108
- package/esm2015/controls/upload/dropzonesingle.ngfactory.js +7 -7
- package/esm2015/controls/upload/uploadmultiple.js +129 -121
- package/esm2015/controls/upload/uploadmultiple.ngfactory.js +7 -7
- package/esm2015/controls/upload/uploadsingle.js +67 -55
- package/esm2015/controls/upload/uploadsingle.ngfactory.js +7 -7
- package/esm2015/controls/validation/validationsummary.js +140 -133
- package/esm2015/controls/validation/validationsummary.ngfactory.js +7 -7
- package/esm2015/controls/wizard/wizard.js +152 -139
- package/esm2015/controls/wizard/wizard.ngfactory.js +7 -7
- package/esm2015/controls/wizard/wizarditem.js +29 -27
- package/esm2015/controls/wizard/wizarditem.ngfactory.js +7 -7
- package/esm2015/enums/ButtonRoleType.js +1 -1
- package/esm2015/enums/ButtonRoleType.ngfactory.js +7 -7
- package/esm2015/enums/ControlHeight.js +19 -19
- package/esm2015/enums/ControlHeight.ngfactory.js +7 -7
- package/esm2015/enums/IconType.js +9 -9
- package/esm2015/enums/IconType.ngfactory.js +7 -7
- package/esm2015/interfaces/ISacConfigurationService.js +1 -1
- package/esm2015/interfaces/ISacConfigurationService.ngfactory.js +7 -7
- package/esm2015/interfaces/ISacFileBrowserService.js +1 -1
- package/esm2015/interfaces/ISacFileBrowserService.ngfactory.js +7 -7
- package/esm2015/interfaces/ISacIconService.js +1 -1
- package/esm2015/interfaces/ISacIconService.ngfactory.js +7 -7
- package/esm2015/interfaces/ISacLabelSizes.js +1 -1
- package/esm2015/interfaces/ISacLabelSizes.ngfactory.js +7 -7
- package/esm2015/interfaces/ISacLanguageService.js +1 -1
- package/esm2015/interfaces/ISacLanguageService.ngfactory.js +7 -7
- package/esm2015/interfaces/ISacLocalisationService.js +1 -1
- package/esm2015/interfaces/ISacLocalisationService.ngfactory.js +7 -7
- package/esm2015/interfaces/ISacUploadEventCompleteState.js +1 -0
- package/esm2015/interfaces/ISacUploadEventCompleteState.ngfactory.js +7 -0
- package/esm2015/interfaces/ISacValidationKeyService.js +1 -1
- package/esm2015/interfaces/ISacValidationKeyService.ngfactory.js +7 -7
- package/esm2015/interfaces/iabstractcontrollabel.js +1 -1
- package/esm2015/interfaces/iabstractcontrollabel.ngfactory.js +7 -7
- package/esm2015/interfaces/iconfirmcomponent.js +1 -1
- package/esm2015/interfaces/iconfirmcomponent.ngfactory.js +7 -7
- package/esm2015/interfaces/idatetimecontrol.js +1 -1
- package/esm2015/interfaces/idatetimecontrol.ngfactory.js +7 -7
- package/esm2015/interfaces/iuploadcontrol.js +1 -1
- package/esm2015/interfaces/iuploadcontrol.ngfactory.js +7 -7
- package/esm2015/interfaces/treeviewaction.interface.js +1 -0
- package/esm2015/interfaces/treeviewaction.interface.ngfactory.js +7 -0
- package/esm2015/models/languagemodel.js +15 -13
- package/esm2015/models/languagemodel.ngfactory.js +7 -7
- package/esm2015/public_api.js +112 -101
- package/esm2015/public_api.ngfactory.js +7 -7
- package/esm2015/services/index.js +7 -7
- package/esm2015/services/index.ngfactory.js +7 -7
- package/esm2015/services/sac-configuration.service.js +119 -77
- package/esm2015/services/sac-configuration.service.ngfactory.js +7 -7
- package/esm2015/services/sac-filebrowser.service.js +217 -203
- package/esm2015/services/sac-filebrowser.service.ngfactory.js +7 -7
- package/esm2015/services/sac-icon.service.js +233 -155
- package/esm2015/services/sac-icon.service.ngfactory.js +7 -7
- package/esm2015/services/sac-language.service.js +47 -43
- package/esm2015/services/sac-language.service.ngfactory.js +7 -7
- package/esm2015/services/sac-localisation.service.js +353 -460
- package/esm2015/services/sac-localisation.service.ngfactory.js +7 -7
- package/esm2015/services/sac-validationkey.service.js +306 -156
- package/esm2015/services/sac-validationkey.service.ngfactory.js +7 -7
- package/esm2015/simpleangularcontrols-sac-common.js +5 -11
- package/esm2015/simpleangularcontrols-sac-common.ngfactory.js +7 -7
- package/esm2015/utilities/convertion.js +34 -32
- package/esm2015/utilities/convertion.ngfactory.js +7 -7
- package/esm2015/utilities/datatypes.js +11 -9
- package/esm2015/utilities/datatypes.ngfactory.js +7 -7
- package/esm2015/utilities/enums.js +21 -16
- package/esm2015/utilities/enums.ngfactory.js +7 -7
- package/esm2015/utilities/guid.js +18 -16
- package/esm2015/utilities/guid.ngfactory.js +7 -7
- package/esm2015/utilities/interpolation.js +57 -50
- package/esm2015/utilities/interpolation.ngfactory.js +7 -7
- package/esm2015/utilities/popuphelper.js +380 -0
- package/esm2015/utilities/popuphelper.ngfactory.js +7 -0
- package/esm2015/utilities/positioncalculator.js +209 -0
- package/esm2015/utilities/positioncalculator.ngfactory.js +7 -0
- package/esm2015/utilities/positionelements.js +108 -0
- package/esm2015/utilities/positionelements.ngfactory.js +7 -0
- package/esm2015/utilities/testingattribute.pipe.js +54 -0
- package/esm2015/utilities/testingattribute.pipe.ngfactory.js +7 -0
- package/esm2015/utilities/utilities.module.js +12 -0
- package/esm2015/utilities/utilities.module.ngfactory.js +7 -0
- package/esm2015/validation/email.validator.js +22 -13
- package/esm2015/validation/email.validator.ngfactory.js +7 -7
- package/esm2015/validation/equals.validator.js +24 -0
- package/esm2015/validation/equals.validator.ngfactory.js +7 -0
- package/esm2015/validation/index.js +3 -3
- package/esm2015/validation/index.ngfactory.js +7 -7
- package/esm2015/validation/invaliddate.validator.js +23 -14
- package/esm2015/validation/invaliddate.validator.ngfactory.js +7 -7
- package/esm2015/validation/isDateValid.js +24 -15
- package/esm2015/validation/isDateValid.ngfactory.js +7 -7
- package/esm2015/validation/maxdate.validator.js +31 -21
- package/esm2015/validation/maxdate.validator.ngfactory.js +7 -7
- package/esm2015/validation/maxtime.validator.js +31 -21
- package/esm2015/validation/maxtime.validator.ngfactory.js +7 -7
- package/esm2015/validation/maxvalue.validator.js +26 -16
- package/esm2015/validation/maxvalue.validator.ngfactory.js +7 -7
- package/esm2015/validation/mindate.validator.js +31 -21
- package/esm2015/validation/mindate.validator.ngfactory.js +7 -7
- package/esm2015/validation/minfiles.validator.js +29 -19
- package/esm2015/validation/minfiles.validator.ngfactory.js +7 -7
- package/esm2015/validation/mintextlength.validator.js +31 -0
- package/esm2015/validation/mintextlength.validator.ngfactory.js +7 -0
- package/esm2015/validation/mintime.validator.js +31 -21
- package/esm2015/validation/mintime.validator.ngfactory.js +7 -7
- package/esm2015/validation/minvalue.validator.js +26 -16
- package/esm2015/validation/minvalue.validator.ngfactory.js +7 -7
- package/esm2015/validation/multilanguagerequired.validator.js +32 -22
- package/esm2015/validation/multilanguagerequired.validator.ngfactory.js +7 -7
- package/esm2015/validation/multilanguagerequiredany.validator.js +32 -22
- package/esm2015/validation/multilanguagerequiredany.validator.ngfactory.js +7 -7
- package/esm2015/validation/notequals.validator.js +24 -0
- package/esm2015/validation/notequals.validator.ngfactory.js +7 -0
- package/esm2015/validation/pattern.validator.js +26 -16
- package/esm2015/validation/pattern.validator.ngfactory.js +7 -7
- package/esm2015/validation/required.validator.js +22 -13
- package/esm2015/validation/required.validator.ngfactory.js +7 -7
- package/esm2015/validation/validation.class.js +201 -189
- package/esm2015/validation/validation.class.ngfactory.js +7 -7
- package/esm2015/validation/validationerrorcreator.js +22 -11
- package/esm2015/validation/validationerrorcreator.ngfactory.js +7 -7
- package/esm2015/validation/validationerroritem.js +29 -27
- package/esm2015/validation/validationerroritem.ngfactory.js +7 -7
- package/fesm2015/simpleangularcontrols-sac-common.js +11670 -10109
- package/fesm2015/simpleangularcontrols-sac-common.js.map +1 -1
- package/interfaces/ISacConfigurationService.d.ts +70 -38
- package/interfaces/ISacConfigurationService.ngfactory.d.ts +1 -1
- package/interfaces/ISacFileBrowserService.d.ts +65 -65
- package/interfaces/ISacFileBrowserService.ngfactory.d.ts +1 -1
- package/interfaces/ISacIconService.d.ts +141 -89
- package/interfaces/ISacIconService.ngfactory.d.ts +1 -1
- package/interfaces/ISacLabelSizes.d.ts +29 -26
- package/interfaces/ISacLabelSizes.ngfactory.d.ts +1 -1
- package/interfaces/ISacLanguageService.d.ts +12 -12
- package/interfaces/ISacLanguageService.ngfactory.d.ts +1 -1
- package/interfaces/ISacLocalisationService.d.ts +10 -10
- package/interfaces/ISacLocalisationService.ngfactory.d.ts +1 -1
- package/interfaces/ISacUploadEventCompleteState.d.ts +11 -0
- package/{controls/treeview/treeviewchild.ngfactory.d.ts → interfaces/ISacUploadEventCompleteState.ngfactory.d.ts} +1 -1
- package/interfaces/ISacValidationKeyService.d.ts +52 -52
- package/interfaces/ISacValidationKeyService.ngfactory.d.ts +1 -1
- package/interfaces/iabstractcontrollabel.d.ts +9 -6
- package/interfaces/iabstractcontrollabel.ngfactory.d.ts +1 -1
- package/interfaces/iconfirmcomponent.d.ts +18 -18
- package/interfaces/iconfirmcomponent.ngfactory.d.ts +1 -1
- package/interfaces/idatetimecontrol.d.ts +16 -7
- package/interfaces/idatetimecontrol.ngfactory.d.ts +1 -1
- package/interfaces/iuploadcontrol.d.ts +9 -9
- package/interfaces/iuploadcontrol.ngfactory.d.ts +1 -1
- package/interfaces/treeviewaction.interface.d.ts +13 -0
- package/interfaces/treeviewaction.interface.ngfactory.d.ts +1 -0
- package/models/languagemodel.d.ts +22 -22
- package/models/languagemodel.ngfactory.d.ts +1 -1
- package/package.json +1 -1
- package/public_api.d.ts +89 -79
- package/public_api.ngfactory.d.ts +1 -1
- package/services/index.d.ts +6 -6
- package/services/index.ngfactory.d.ts +1 -1
- package/services/sac-configuration.service.d.ts +137 -81
- package/services/sac-configuration.service.ngfactory.d.ts +1 -1
- package/services/sac-filebrowser.service.d.ts +148 -140
- package/services/sac-filebrowser.service.ngfactory.d.ts +1 -1
- package/services/sac-icon.service.d.ts +288 -184
- package/services/sac-icon.service.ngfactory.d.ts +1 -1
- package/services/sac-language.service.d.ts +26 -26
- package/services/sac-language.service.ngfactory.d.ts +1 -1
- package/services/sac-localisation.service.d.ts +141 -137
- package/services/sac-localisation.service.ngfactory.d.ts +1 -1
- package/services/sac-validationkey.service.d.ts +202 -55
- package/services/sac-validationkey.service.ngfactory.d.ts +1 -1
- package/simpleangularcontrols-sac-common-10.0.0-rc.30.tgz +0 -0
- package/simpleangularcontrols-sac-common.d.ts +4 -10
- package/simpleangularcontrols-sac-common.metadata.json +1 -1
- package/simpleangularcontrols-sac-common.ngfactory.d.ts +1 -1
- package/utilities/convertion.d.ts +15 -15
- package/utilities/convertion.ngfactory.d.ts +1 -1
- package/utilities/datatypes.d.ts +6 -6
- package/utilities/datatypes.ngfactory.d.ts +1 -1
- package/utilities/enums.d.ts +19 -10
- package/utilities/enums.ngfactory.d.ts +1 -1
- package/utilities/guid.d.ts +4 -4
- package/utilities/guid.ngfactory.d.ts +1 -1
- package/utilities/interpolation.d.ts +22 -21
- package/utilities/interpolation.ngfactory.d.ts +1 -1
- package/utilities/popuphelper.d.ts +120 -0
- package/utilities/popuphelper.ngfactory.d.ts +1 -0
- package/utilities/positioncalculator.d.ts +82 -0
- package/utilities/positioncalculator.ngfactory.d.ts +1 -0
- package/utilities/positionelements.d.ts +30 -0
- package/utilities/positionelements.ngfactory.d.ts +1 -0
- package/utilities/testingattribute.pipe.d.ts +27 -0
- package/utilities/testingattribute.pipe.ngfactory.d.ts +1 -0
- package/utilities/utilities.module.d.ts +2 -0
- package/utilities/utilities.module.ngfactory.d.ts +3 -0
- package/validation/email.validator.d.ts +9 -2
- package/validation/email.validator.ngfactory.d.ts +1 -1
- package/validation/equals.validator.d.ts +10 -0
- package/validation/equals.validator.ngfactory.d.ts +1 -0
- package/validation/index.d.ts +2 -2
- package/validation/index.ngfactory.d.ts +1 -1
- package/validation/invaliddate.validator.d.ts +9 -2
- package/validation/invaliddate.validator.ngfactory.d.ts +1 -1
- package/validation/isDateValid.d.ts +8 -5
- package/validation/isDateValid.ngfactory.d.ts +1 -1
- package/validation/maxdate.validator.d.ts +10 -2
- package/validation/maxdate.validator.ngfactory.d.ts +1 -1
- package/validation/maxtime.validator.d.ts +10 -2
- package/validation/maxtime.validator.ngfactory.d.ts +1 -1
- package/validation/maxvalue.validator.d.ts +10 -2
- package/validation/maxvalue.validator.ngfactory.d.ts +1 -1
- package/validation/mindate.validator.d.ts +10 -2
- package/validation/mindate.validator.ngfactory.d.ts +1 -1
- package/validation/minfiles.validator.d.ts +10 -2
- package/validation/minfiles.validator.ngfactory.d.ts +1 -1
- package/validation/mintextlength.validator.d.ts +10 -0
- package/validation/mintextlength.validator.ngfactory.d.ts +1 -0
- package/validation/mintime.validator.d.ts +10 -2
- package/validation/mintime.validator.ngfactory.d.ts +1 -1
- package/validation/minvalue.validator.d.ts +10 -2
- package/validation/minvalue.validator.ngfactory.d.ts +1 -1
- package/validation/multilanguagerequired.validator.d.ts +11 -3
- package/validation/multilanguagerequired.validator.ngfactory.d.ts +1 -1
- package/validation/multilanguagerequiredany.validator.d.ts +11 -3
- package/validation/multilanguagerequiredany.validator.ngfactory.d.ts +1 -1
- package/validation/notequals.validator.d.ts +10 -0
- package/validation/notequals.validator.ngfactory.d.ts +1 -0
- package/validation/pattern.validator.d.ts +10 -2
- package/validation/pattern.validator.ngfactory.d.ts +1 -1
- package/validation/required.validator.d.ts +9 -2
- package/validation/required.validator.ngfactory.d.ts +1 -1
- package/validation/validation.class.d.ts +141 -139
- package/validation/validation.class.ngfactory.d.ts +1 -1
- package/validation/validationerrorcreator.d.ts +10 -1
- package/validation/validationerrorcreator.ngfactory.d.ts +1 -1
- package/validation/validationerroritem.d.ts +33 -33
- package/validation/validationerroritem.ngfactory.d.ts +1 -1
- package/controls/treeview/ngtreeitemaction.d.ts +0 -40
- package/controls/treeview/treeviewchild.d.ts +0 -12
- package/esm2015/controls/treeview/ngtreeitemaction.js +0 -60
- package/esm2015/controls/treeview/ngtreeitemaction.ngfactory.js +0 -7
- package/esm2015/controls/treeview/treeviewchild.js +0 -18
- package/esm2015/controls/treeview/treeviewchild.ngfactory.js +0 -7
- package/esm2015/utilities/positioning.js +0 -301
- package/esm2015/utilities/positioning.ngfactory.js +0 -7
- package/esm2015/validation/minlength.validator.js +0 -21
- package/esm2015/validation/minlength.validator.ngfactory.js +0 -7
- package/simpleangularcontrols-sac-common-10.0.0-rc.3.tgz +0 -0
- package/utilities/positioning.d.ts +0 -82
- package/validation/minlength.validator.d.ts +0 -2
|
@@ -1,194 +1,210 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
4
|
-
import {
|
|
5
|
-
import {
|
|
6
|
-
import {
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
*
|
|
17
|
-
* @param
|
|
18
|
-
* @param
|
|
19
|
-
* @param
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
this.
|
|
25
|
-
this.
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
*
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
*
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
*
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
this.
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
if (
|
|
129
|
-
|
|
130
|
-
}
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
this.
|
|
142
|
-
if (
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
renderer.
|
|
164
|
-
renderer.
|
|
165
|
-
renderer.
|
|
166
|
-
}
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
}
|
|
194
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udGV4dG1lbnUuanMiLCJzb3VyY2VSb290IjoiQzovRGF0ZW4vak5ldHdvcmsvY2guam5ldHdvcmsuYW5ndWxhcmNvbnRyb2xzLW5nMTAvY2guam5ldHdvcmsuc2FjLWNvbnRyb2xzL3Byb2plY3RzL3NhYy1jb21tb24vc3JjLyIsInNvdXJjZXMiOlsiY29udHJvbHMvY29udGV4dG1lbnUvY29udGV4dG1lbnUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQzNDLE9BQU8sRUFDTCxZQUFZLEVBQ1osU0FBUyxFQUNULFVBQVUsRUFDVixZQUFZLEVBQ1osTUFBTSxFQUNOLFFBQVEsRUFDUixLQUFLLEVBQ0wsTUFBTSxFQUVOLFNBQVMsRUFDVCxXQUFXLEVBQ1gsU0FBUyxHQUNWLE1BQU0sZUFBZSxDQUFDO0FBR3ZCLE9BQU8sRUFBRSxlQUFlLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUN4RSxPQUFPLEVBQWtCLGdCQUFnQixFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFDL0UsT0FBTyxFQUFFLDBCQUEwQixFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDakUsT0FBTyxFQUFFLDhCQUE4QixFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFFeEU7O0dBRUc7QUFFSCxNQUFNLE9BQU8sb0JBQW9CO0lBeUUvQix3QkFBd0I7SUFFeEIsdUJBQXVCO0lBRXZCOzs7Ozs7O09BT0c7SUFDSCxZQUM0QixRQUFhLEVBQy9CLE1BQWMsRUFDZCxVQUFtQyxFQUNuQyxRQUFtQixFQUMzQixRQUFrQjtRQUpRLGFBQVEsR0FBUixRQUFRLENBQUs7UUFDL0IsV0FBTSxHQUFOLE1BQU0sQ0FBUTtRQUNkLGVBQVUsR0FBVixVQUFVLENBQXlCO1FBQ25DLGFBQVEsR0FBUixRQUFRLENBQVc7UUF0RTdCOztXQUVHO1FBQ0ssa0JBQWEsR0FBdUIsSUFBSSxDQUFDO1FBZ0JqRDs7V0FFRztRQUVJ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UUFBUSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsYUFBYSxDQUFDLENBQUM7WUFDN0QsSUFBSSxDQUFDLGFBQWEsR0FBRyxJQUFJLENBQUM7U0FDM0I7SUFDSCxDQUFDOzs7WUFuUEYsU0FBUzs7OzRDQXVGTCxNQUFNLFNBQUMsUUFBUTtZQXZHbEIsTUFBTTtZQUxOLFVBQVU7WUFPVixTQUFTO1lBSlQsUUFBUTs7OzhCQXlCUCxZQUFZLFNBQUMsMEJBQTBCLEVBQUUsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFO3NCQUsxRCxTQUFTLFNBQUMsMEJBQTBCLEVBQUUsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFO29CQUt2RCxTQUFTLFNBQUMsOEJBQThCLEVBQUUsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFOzZCQW9CM0QsS0FBSzt3QkFLTCxLQUFLO3VCQUtMLEtBQUs7cUJBS0wsS0FBSzt3QkFlTCxLQUFLO3NCQXNETCxZQUFZLFNBQUMsZ0JBQWdCLEVBQUUsQ0FBQyxlQUFlLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBET0NVTUVOVCB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XHJcbmltcG9ydCB7XHJcbiAgQ29udGVudENoaWxkLFxyXG4gIERpcmVjdGl2ZSxcclxuICBFbGVtZW50UmVmLFxyXG4gIEhvc3RMaXN0ZW5lcixcclxuICBJbmplY3QsXHJcbiAgSW5qZWN0b3IsXHJcbiAgSW5wdXQsXHJcbiAgTmdab25lLFxyXG4gIE9uRGVzdHJveSxcclxuICBSZW5kZXJlcjIsXHJcbiAgVGVtcGxhdGVSZWYsXHJcbiAgVmlld0NoaWxkLFxyXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBTdWJzY3JpcHRpb24gfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgSVNhY0ljb25TZXJ2aWNlIH0gZnJvbSAnLi4vLi4vaW50ZXJmYWNlcy9JU2FjSWNvblNlcnZpY2UnO1xyXG5pbXBvcnQgeyBTQUNJQ09OX1NFUlZJQ0UsIFNhY0RlZmF1bHRJY29uU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzJztcclxuaW1wb3J0IHsgUGxhY2VtZW50QXJyYXksIHBvc2l0aW9uRWxlbWVudHMgfSBmcm9tICcuLi8uLi91dGlsaXRpZXMvcG9zaXRpb25pbmcnO1xyXG5pbXBvcnQgeyBTYWNDb250ZXh0bWVudUFuY2hvckNvbW1vbiB9IGZyb20gJy4vY29udGV4dG1lbnVhbmNob3InO1xyXG5pbXBvcnQgeyBTYWNDb250ZXh0TWVudUNvbnRyYWluZXJDb21tb24gfSBmcm9tICcuL2NvbnRleHRtZW51Y29udGFpbmVyJztcclxuXHJcbi8qKlxyXG4gKiBCYXNlIENvbnRleHQgTWVuw7wgRWxlbWVudC4gRGllIExvZ2lrIHd1cmRlIGF1cyBORy1CT09UU1RSQVAgw7xiZXJub21tZW4uXHJcbiAqL1xyXG5ARGlyZWN0aXZlKClcclxuZXhwb3J0IGNsYXNzIFNhY0NvbnRleHRtZW51Q29tbW9uIGltcGxlbWVudHMgT25EZXN0cm95IHtcclxuICAvLyAjcmVnaW9uIFByb3BlcnRpZXNcclxuXHJcbiAgLyoqXHJcbiAgICogQnV0dG9uIGbDvHIgT3Blbi9DbG9zZSBFdmVudCBhdXMgVGVtcGxhdGVcclxuICAgKi9cclxuICBAQ29udGVudENoaWxkKFNhY0NvbnRleHRtZW51QW5jaG9yQ29tbW9uLCB7IHN0YXRpYzogZmFsc2UgfSlcclxuICBwcml2YXRlIF9hbmNob3JUZW1wbGF0ZTogU2FjQ29udGV4dG1lbnVBbmNob3JDb21tb247XHJcbiAgLyoqXHJcbiAgICogQnV0dG9uIGbDvHIgT3Blbi9DbG9zZSBFdmVudFxyXG4gICAqL1xyXG4gIEBWaWV3Q2hpbGQoU2FjQ29udGV4dG1lbnVBbmNob3JDb21tb24sIHsgc3RhdGljOiBmYWxzZSB9KVxyXG4gIHByaXZhdGUgX2FuY2hvcjogU2FjQ29udGV4dG1lbnVBbmNob3JDb21tb247XHJcbiAgLyoqXHJcbiAgICogQ29udGFpbmVyIEVsZW1lbnQgZsO8ciBEcm9wZG93blxyXG4gICAqL1xyXG4gIEBWaWV3Q2hpbGQoU2FjQ29udGV4dE1lbnVDb250cmFpbmVyQ29tbW9uLCB7IHN0YXRpYzogZmFsc2UgfSlcclxuICBwcml2YXRlIF9tZW51OiBTYWNDb250ZXh0TWVudUNvbnRyYWluZXJDb21tb247XHJcblxyXG4gIC8qKlxyXG4gICAqIEJvZHkgSFRNTCBFbGVtZW50XHJcbiAgICovXHJcbiAgcHJpdmF0ZSBib2R5Q29udGFpbmVyOiBIVE1MRWxlbWVudCB8IG51bGwgPSBudWxsO1xyXG4gIC8qKlxyXG4gICAqIFpvbmUgU3Vic2NyaXB0aW9uIGbDvHIgUG9zdGl0b25pZXJ1bmcgZGVzIEVsZW1lbnRzXHJcbiAgICovXHJcbiAgcHJpdmF0ZSB6b25lU3Vic2NyaXB0aW9uOiBTdWJzY3JpcHRpb247XHJcblxyXG4gIC8qKlxyXG4gICAqIGljb24gc2VydmljZVxyXG4gICAqL1xyXG4gIHByb3RlY3RlZCBpY29uU2VydmljZTogSVNhY0ljb25TZXJ2aWNlO1xyXG5cclxuICAvKipcclxuICAgKiBDdXN0b20gSFRNTCBUZW1wbGF0ZSBmw7xyIERyb3Bkb3duIEJ1dHRvbi4gQnV0dG9uIG11c3MgZGVuIE1hcmtlciBcIm5nQ29udGV4dG1lbnVBbmNob3JcIiBiZWluaGFsdGVuLCBkYW1pdCBkYXMgQ29udHJvbCBrb3JyZWt0IGZ1bmt0aW9uaWVydC5cclxuICAgKi9cclxuICBASW5wdXQoKVxyXG4gIHB1YmxpYyBidXR0b250ZW1wbGF0ZTogVGVtcGxhdGVSZWY8YW55PjtcclxuICAvKipcclxuICAgKiBDb250YWluZXIgYW4gd2VsY2hlbSBkaWUgUG9zaXRpb24gYXVzZ2VyaWNodGV0IHdpcmQuIEFrdHVlbGwgd2lyZCBudW4gQm9keSBTdXBwb3J0ZWRcclxuICAgKi9cclxuICBASW5wdXQoKVxyXG4gIHB1YmxpYyBjb250YWluZXI6IG51bGwgfCAnYm9keScgPSAnYm9keSc7XHJcbiAgLyoqXHJcbiAgICogRXh0cmEgQ1NTIEtsYXNzZW4gZsO8ciBkYXMgQ29udHJvbFxyXG4gICAqL1xyXG4gIEBJbnB1dCgpXHJcbiAgcHVibGljIGNzc2NsYXNzOiBzdHJpbmcgPSAnJztcclxuICAvKipcclxuICAgKiBEZWZpbmllcnQgb2IgZGFzIERyb3Bkb3duIG9mZmVuIGlzdC5cclxuICAgKi9cclxuICBASW5wdXQoKVxyXG4gIHB1YmxpYyBpc29wZW46IGJvb2xlYW4gPSBmYWxzZTtcclxuICAvKipcclxuICAgKiBUaGUgcHJlZmVycmVkIHBsYWNlbWVudCBvZiB0aGUgZHJvcGRvd24uXHJcbiAgICpcclxuICAgKiBQb3NzaWJsZSB2YWx1ZXMgYXJlIGBcInRvcFwiYCwgYFwidG9wLWxlZnRcImAsIGBcInRvcC1yaWdodFwiYCwgYFwiYm90dG9tXCJgLCBgXCJib3R0b20tbGVmdFwiYCxcclxuICAgKiBgXCJib3R0b20tcmlnaHRcImAsIGBcImxlZnRcImAsIGBcImxlZnQtdG9wXCJgLCBgXCJsZWZ0LWJvdHRvbVwiYCwgYFwicmlnaHRcImAsIGBcInJpZ2h0LXRvcFwiYCxcclxuICAgKiBgXCJyaWdodC1ib3R0b21cImBcclxuICAgKlxyXG4gICAqIEFjY2VwdHMgYW4gYXJyYXkgb2Ygc3RyaW5ncyBvciBhIHN0cmluZyB3aXRoIHNwYWNlIHNlcGFyYXRlZCBwb3NzaWJsZSB2YWx1ZXMuXHJcbiAgICpcclxuICAgKiBUaGUgZGVmYXVsdCBvcmRlciBvZiBwcmVmZXJlbmNlIGlzIGBcImJvdHRvbS1sZWZ0IGJvdHRvbS1yaWdodCB0b3AtbGVmdCB0b3AtcmlnaHRcImBcclxuICAgKlxyXG4gICAqIFBsZWFzZSBzZWUgdGhlIFtwb3NpdGlvbmluZyBvdmVydmlld10oIy9wb3NpdGlvbmluZykgZm9yIG1vcmUgZGV0YWlscy5cclxuICAgKi9cclxuICBASW5wdXQoKSBwdWJsaWMgcGxhY2VtZW50OiBQbGFjZW1lbnRBcnJheSA9IFtcclxuICAgICdib3R0b20tbGVmdCcsXHJcbiAgICAnYm90dG9tLXJpZ2h0JyxcclxuICAgICd0b3AtbGVmdCcsXHJcbiAgICAndG9wLXJpZ2h0JyxcclxuICBdO1xyXG5cclxuICAvLyAjZW5kcmVnaW9uIFByb3BlcnRpZXNcclxuXHJcbiAgLy8gI3JlZ2lvbiBDb25zdHJ1Y3RvcnNcclxuXHJcbiAgLyoqXHJcbiAgICogS29uc3RydWt0b3JcclxuICAgKiBAcGFyYW0gZG9jdW1lbnQgSFRNTCBEb2N1bWVudCBFbGVtZW50XHJcbiAgICogQHBhcmFtIG5nWm9uZSBBbmd1bGFyIFpvbmUgU2VydmljZVxyXG4gICAqIEBwYXJhbSBlbGVtZW50UmVmIEhUTUwgRWxlbWVudCBkZXMgYWt0dWVsbGVuIENvbnRyb2xzXHJcbiAgICogQHBhcmFtIHJlbmRlcmVyIEFuZ3VsYXIgUmVuZGVyaW5nIFNlcnZpY2VcclxuICAgKiBAcGFyYW0gaW5qZWN0b3IgaW5qZWN0b3IgdG8gcmVzb2x2ZSB0aGUgaWNvbiBzZXJ2aWNlXHJcbiAgICovXHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBASW5qZWN0KERPQ1VNRU5UKSBwcml2YXRlIGRvY3VtZW50OiBhbnksXHJcbiAgICBwcml2YXRlIG5nWm9uZTogTmdab25lLFxyXG4gICAgcHJpdmF0ZSBlbGVtZW50UmVmOiBFbGVtZW50UmVmPEhUTUxFbGVtZW50PixcclxuICAgIHByaXZhdGUgcmVuZGVyZXI6IFJlbmRlcmVyMixcclxuICAgIGluamVjdG9yOiBJbmplY3RvclxyXG4gICkge1xyXG4gICAgdGhpcy56b25lU3Vic2NyaXB0aW9uID0gdGhpcy5uZ1pvbmUub25TdGFibGUuc3Vic2NyaWJlKCgpID0+IHtcclxuICAgICAgdGhpcy5fcG9zaXRpb25NZW51KCk7XHJcbiAgICB9KTtcclxuXHJcbiAgICB0aGlzLmljb25TZXJ2aWNlID0gaW5qZWN0b3IuZ2V0KFxyXG4gICAgICBTQUNJQ09OX1NFUlZJQ0UsXHJcbiAgICAgIG5ldyBTYWNEZWZhdWx0SWNvblNlcnZpY2UoKVxyXG4gICAgKTtcclxuICB9XHJcblxyXG4gIC8vICNlbmRyZWdpb24gQ29uc3RydWN0b3JzXHJcblxyXG4gIC8vICNyZWdpb24gUHVibGljIEdldHRlcnMgQW5kIFNldHRlcnNcclxuXHJcbiAgLyoqXHJcbiAgICogaWNvbiBmb3IgZGVmYXVsdCBjb250ZXh0IG1lbsO8IGJ1dHRvblxyXG4gICAqL1xyXG4gIHB1YmxpYyBnZXQgSWNvbkNvbnRleHRNZW51KCk6IHN0cmluZyB7XHJcbiAgICByZXR1cm4gdGhpcy5pY29uU2VydmljZS5Db250ZXh0TWVudU9wZW5JY29uO1xyXG4gIH1cclxuXHJcbiAgLy8gI2VuZHJlZ2lvbiBQdWJsaWMgR2V0dGVycyBBbmQgU2V0dGVyc1xyXG5cclxuICAvLyAjcmVnaW9uIFB1YmxpYyBNZXRob2RzXHJcblxyXG4gIC8qKlxyXG4gICAqIEhvc3RMaXN0ZW5lciB1bSBkYXMgRHJvcGRvd24genUgc2NobGllc3NlbiB3ZW5uIG5pY2h0IGF1ZiBkYXMgRWxlbWVudCBnZWtsaWNrdCB3aXJkLlxyXG4gICAqL1xyXG4gIEBIb3N0TGlzdGVuZXIoJ2RvY3VtZW50OmNsaWNrJywgWyckZXZlbnQudGFyZ2V0J10pXHJcbiAgLyoqXHJcbiAgICogQ2xpY2sgRXZlbnRcclxuICAgKi9cclxuICBwdWJsaWMgb25DbGljayh0YXJnZXRFbGVtZW50KSB7XHJcbiAgICBjb25zdCBhbmNob3I6IFNhY0NvbnRleHRtZW51QW5jaG9yQ29tbW9uID1cclxuICAgICAgdGhpcy5fYW5jaG9yIHx8IHRoaXMuX2FuY2hvclRlbXBsYXRlO1xyXG5cclxuICAgIGlmIChcclxuICAgICAgdGhpcy5fbWVudSAmJlxyXG4gICAgICAhdGhpcy5fbWVudS5uYXRpdmVFbGVtZW50LmNvbnRhaW5zKHRhcmdldEVsZW1lbnQpICYmXHJcbiAgICAgICFhbmNob3IubmF0aXZlRWxlbWVudC5jb250YWlucyh0YXJnZXRFbGVtZW50KVxyXG4gICAgKSB7XHJcbiAgICAgIHRoaXMuY2xvc2UoKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFNjaGxpZXNzdCBkYXMgRHJvcGRvd25cclxuICAgKi9cclxuICBwdWJsaWMgY2xvc2UoKTogdm9pZCB7XHJcbiAgICB0aGlzLl9yZXNldENvbnRhaW5lcigpO1xyXG4gICAgdGhpcy5pc29wZW4gPSBmYWxzZTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIEV2ZW50IHdlbm4gQ29tcG9uZW50IGVudGZlcm50IHdpcmQuXHJcbiAgICovXHJcbiAgcHVibGljIG5nT25EZXN0cm95KCk6IHZvaWQge1xyXG4gICAgaWYgKHRoaXMuaXNvcGVuKSB7XHJcbiAgICAgIHRoaXMuY2xvc2UoKTtcclxuICAgIH1cclxuXHJcbiAgICB0aGlzLnpvbmVTdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIMOWZmZuZXQgZGFzIERyb3Bkb3duIC8gWmVpZ3QgZGFzIE1lbsO8IGFuLlxyXG4gICAqL1xyXG4gIHB1YmxpYyBvcGVuKCk6IHZvaWQge1xyXG4gICAgdGhpcy5fYXBwbHlDb250YWluZXIodGhpcy5jb250YWluZXIpO1xyXG4gICAgdGhpcy5pc29wZW4gPSB0cnVlO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogVG9nZ2xlIHZvbiBEcm9wZG93blxyXG4gICAqL1xyXG4gIHB1YmxpYyB0b2dnbGUoKTogdm9pZCB7XHJcbiAgICBpZiAodGhpcy5pc29wZW4pIHtcclxuICAgICAgdGhpcy5jbG9zZSgpO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy5vcGVuKCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAvLyAjZW5kcmVnaW9uIFB1YmxpYyBNZXRob2RzXHJcblxyXG4gIC8vICNyZWdpb24gUHJvdGVjdGVkIE1ldGhvZHNcclxuXHJcbiAgLyoqXHJcbiAgICogU2V0enQgZGllIFBvc2l0aW9uIGRlcyBNZW7DvHMgaW0gTWFya3VwXHJcbiAgICovXHJcbiAgcHJvdGVjdGVkIF9wb3NpdGlvbk1lbnUoKSB7XHJcbiAgICBjb25zdCBhbmNob3I6IFNhY0NvbnRleHRtZW51QW5jaG9yQ29tbW9uID1cclxuICAgICAgdGhpcy5fYW5jaG9yIHx8IHRoaXMuX2FuY2hvclRlbXBsYXRlO1xyXG5cclxuICAgIGlmIChhbmNob3IgJiYgdGhpcy5fbWVudSkge1xyXG4gICAgICBwb3NpdGlvbkVsZW1lbnRzKFxyXG4gICAgICAgIGFuY2hvci5uYXRpdmVFbGVtZW50LFxyXG4gICAgICAgIHRoaXMuYm9keUNvbnRhaW5lciB8fCB0aGlzLl9tZW51Lm5hdGl2ZUVsZW1lbnQsXHJcbiAgICAgICAgdGhpcy5wbGFjZW1lbnQsXHJcbiAgICAgICAgdGhpcy5jb250YWluZXIgPT09ICdib2R5J1xyXG4gICAgICApO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLy8gI2VuZHJlZ2lvbiBQcm90ZWN0ZWQgTWV0aG9kc1xyXG5cclxuICAvLyAjcmVnaW9uIFByaXZhdGUgTWV0aG9kc1xyXG5cclxuICAvKipcclxuICAgKiBTZXR6dCBkaWUgUG9zaXRpb24gZGVzIE1lbsO8cyBpbm5lcmhhbGIgZGVyIFNlaXRlLiBEaWUgQXVzcmljaHR1bmcgcGFzc2llcnQgaW5uZXJoYWxiIGRlciBTZWl0ZVxyXG4gICAqIGRhbWl0IGRhcyBNZW7DvCBpbm5lcmhhbGIgZWluZXMgRGlhbG9ncyBzYXViZXIgZnVua3Rpb25pb25pZXJ0LlxyXG4gICAqIEBwYXJhbSBjb250YWluZXIgRGVmaW5pZXJ0IHdvIGRhcyBNZW7DvCBhdXNnZXJpY2h0ZXQgd2lyZC4gSW0gTW9tZW50IG51ciBCT0RZIFN1cHBvcnRlZFxyXG4gICAqL1xyXG4gIHByaXZhdGUgX2FwcGx5Q29udGFpbmVyKGNvbnRhaW5lcjogbnVsbCB8ICdib2R5JyA9IG51bGwpIHtcclxuICAgIC8vIFJlc2V0IENsYXNzZXMgb24gQ29udGFpbmVyXHJcbiAgICB0aGlzLl9yZXNldENvbnRhaW5lcigpO1xyXG5cclxuICAgIGlmIChjb250YWluZXIgPT09ICdib2R5Jykge1xyXG4gICAgICBjb25zdCByZW5kZXJlciA9IHRoaXMucmVuZGVyZXI7XHJcbiAgICAgIGNvbnN0IGRyb3Bkb3duTWVudUVsZW1lbnQgPSB0aGlzLl9tZW51Lm5hdGl2ZUVsZW1lbnQ7XHJcbiAgICAgIGNvbnN0IGJvZHlDb250YWluZXIgPSAodGhpcy5ib2R5Q29udGFpbmVyID1cclxuICAgICAgICB0aGlzLmJvZHlDb250YWluZXIgfHwgcmVuZGVyZXIuY3JlYXRlRWxlbWVudCgnZGl2JykpO1xyXG5cclxuICAgICAgLy8gT3ZlcnJpZGUgc29tZSBzdHlsZXMgdG8gaGF2ZSB0aGUgcG9zaXRpb25pbmcgd29ya2luZ1xyXG4gICAgICByZW5kZXJlci5zZXRTdHlsZShib2R5Q29udGFpbmVyLCAncG9zaXRpb24nLCAnYWJzb2x1dGUnKTtcclxuICAgICAgcmVuZGVyZXIuc2V0U3R5bGUoZHJvcGRvd25NZW51RWxlbWVudCwgJ3Bvc2l0aW9uJywgJ3N0YXRpYycpO1xyXG4gICAgICByZW5kZXJlci5zZXRTdHlsZShib2R5Q29udGFpbmVyLCAnei1pbmRleCcsICcxMDUwJyk7XHJcblxyXG4gICAgICByZW5kZXJlci5hcHBlbmRDaGlsZChib2R5Q29udGFpbmVyLCBkcm9wZG93bk1lbnVFbGVtZW50KTtcclxuICAgICAgcmVuZGVyZXIuYXBwZW5kQ2hpbGQodGhpcy5kb2N1bWVudC5ib2R5LCBib2R5Q29udGFpbmVyKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFNldHp0IGRpZSBDU1MgS2xhc3NlbiBhdWYgZGVtIE1lbsO8IENvbnRhaW5lciBhdWYgZGVuIFN0YW5kYXJkIHp1csO8Y2tcclxuICAgKi9cclxuICBwcml2YXRlIF9yZXNldENvbnRhaW5lcigpIHtcclxuICAgIGNvbnN0IHJlbmRlcmVyID0gdGhpcy5yZW5kZXJlcjtcclxuICAgIGlmICh0aGlzLl9tZW51KSB7XHJcbiAgICAgIGNvbnN0IGRyb3Bkb3duRWxlbWVudCA9IHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50O1xyXG4gICAgICBjb25zdCBkcm9wZG93bk1lbnVFbGVtZW50ID0gdGhpcy5fbWVudS5uYXRpdmVFbGVtZW50O1xyXG5cclxuICAgICAgcmVuZGVyZXIuYXBwZW5kQ2hpbGQoZHJvcGRvd25FbGVtZW50LCBkcm9wZG93bk1lbnVFbGVtZW50KTtcclxuICAgICAgcmVuZGVyZXIucmVtb3ZlU3R5bGUoZHJvcGRvd25NZW51RWxlbWVudCwgJ3Bvc2l0aW9uJyk7XHJcbiAgICAgIHJlbmRlcmVyLnJlbW92ZVN0eWxlKGRyb3Bkb3duTWVudUVsZW1lbnQsICd0cmFuc2Zvcm0nKTtcclxuICAgIH1cclxuICAgIGlmICh0aGlzLmJvZHlDb250YWluZXIpIHtcclxuICAgICAgcmVuZGVyZXIucmVtb3ZlQ2hpbGQodGhpcy5kb2N1bWVudC5ib2R5LCB0aGlzLmJvZHlDb250YWluZXIpO1xyXG4gICAgICB0aGlzLmJvZHlDb250YWluZXIgPSBudWxsO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLy8gI2VuZHJlZ2lvbiBQcml2YXRlIE1ldGhvZHNcclxufVxyXG4iXX0=
|
|
1
|
+
import { SACICON_SERVICE, SacDefaultIconService } from '../../services';
|
|
2
|
+
import { createGuid } from '../../utilities/guid';
|
|
3
|
+
import { positionElements } from '../../utilities/positionelements';
|
|
4
|
+
import { SacContextmenuAnchorCommon } from './contextmenuanchor';
|
|
5
|
+
import { SacContextMenuContrainerCommon } from './contextmenucontainer';
|
|
6
|
+
import { SacContextmenuItemCommon } from './contextmenuitem';
|
|
7
|
+
import { DOCUMENT } from '@angular/common';
|
|
8
|
+
import { ContentChild, ContentChildren, Directive, ElementRef, HostListener, Inject, Injector, Input, NgZone, QueryList, Renderer2, TemplateRef, ViewChild, } from '@angular/core';
|
|
9
|
+
/**
|
|
10
|
+
* Base context menu element. The logic was taken from NG-BOOTSTRAP.
|
|
11
|
+
*/
|
|
12
|
+
export class SacContextmenuCommon {
|
|
13
|
+
// #endregion Properties
|
|
14
|
+
// #region Constructors
|
|
15
|
+
/**
|
|
16
|
+
* Constructor
|
|
17
|
+
* @param document HTML document element
|
|
18
|
+
* @param ngZone Angular zone service
|
|
19
|
+
* @param elementRef HTML element of the current control
|
|
20
|
+
* @param renderer Angular rendering service
|
|
21
|
+
* @param injector Injector to resolve the icon service
|
|
22
|
+
*/
|
|
23
|
+
constructor(document, ngZone, elementRef, renderer, injector) {
|
|
24
|
+
this.document = document;
|
|
25
|
+
this.ngZone = ngZone;
|
|
26
|
+
this.elementRef = elementRef;
|
|
27
|
+
this.renderer = renderer;
|
|
28
|
+
/**
|
|
29
|
+
* Body HTML Element
|
|
30
|
+
*/
|
|
31
|
+
this.bodyContainer = null;
|
|
32
|
+
/**
|
|
33
|
+
* Container to which the position is aligned. Currently only body is supported.
|
|
34
|
+
*/
|
|
35
|
+
this.container = 'body';
|
|
36
|
+
/**
|
|
37
|
+
* Extra CSS classes for the control
|
|
38
|
+
*/
|
|
39
|
+
this.cssclass = '';
|
|
40
|
+
/**
|
|
41
|
+
* Identifier used for the E2E data attribute.
|
|
42
|
+
*/
|
|
43
|
+
this.e2eidentifier = null;
|
|
44
|
+
/**
|
|
45
|
+
* Defines whether the dropdown is open.
|
|
46
|
+
*/
|
|
47
|
+
this.isopen = false;
|
|
48
|
+
/**
|
|
49
|
+
* name of control
|
|
50
|
+
*/
|
|
51
|
+
this.name = createGuid();
|
|
52
|
+
/**
|
|
53
|
+
* The preferred placement of the dropdown.
|
|
54
|
+
*
|
|
55
|
+
* Possible values are `"top"`, `"top-left"`, `"top-right"`, `"bottom"`, `"bottom-left"`,
|
|
56
|
+
* `"bottom-right"`, `"left"`, `"left-top"`, `"left-bottom"`, `"right"`, `"right-top"`,
|
|
57
|
+
* `"right-bottom"`
|
|
58
|
+
*
|
|
59
|
+
* Accepts an array of strings or a string with space separated possible values.
|
|
60
|
+
*
|
|
61
|
+
* The default order of preference is `"bottom-left bottom-right top-left top-right"`
|
|
62
|
+
*
|
|
63
|
+
* Please see the [positioning overview](#/positioning) for more details.
|
|
64
|
+
*/
|
|
65
|
+
this.placement = ['bottom-left', 'bottom-right', 'top-left', 'top-right'];
|
|
66
|
+
this.zoneSubscription = this.ngZone.onStable.subscribe(() => {
|
|
67
|
+
this._positionMenu();
|
|
68
|
+
});
|
|
69
|
+
this.iconService = injector.get(SACICON_SERVICE, new SacDefaultIconService());
|
|
70
|
+
}
|
|
71
|
+
// #endregion Constructors
|
|
72
|
+
// #region Public Getters And Setters
|
|
73
|
+
/**
|
|
74
|
+
* Icon for default context menu button
|
|
75
|
+
*/
|
|
76
|
+
get IconContextMenu() {
|
|
77
|
+
return this.iconService.ContextMenuOpenIcon;
|
|
78
|
+
}
|
|
79
|
+
// #endregion Public Getters And Setters
|
|
80
|
+
// #region Public Methods
|
|
81
|
+
/**
|
|
82
|
+
* Closes the dropdown
|
|
83
|
+
*/
|
|
84
|
+
close() {
|
|
85
|
+
this._resetContainer();
|
|
86
|
+
this.isopen = false;
|
|
87
|
+
}
|
|
88
|
+
/**
|
|
89
|
+
* Lifecycle hook that is called after content projection is completed.
|
|
90
|
+
*
|
|
91
|
+
* Associates each menu item with this context menu instance so that item
|
|
92
|
+
* events can delegate to the parent menu.
|
|
93
|
+
*/
|
|
94
|
+
ngAfterContentInit() {
|
|
95
|
+
this.menuitems.forEach((button) => (button.contextmenu = this));
|
|
96
|
+
}
|
|
97
|
+
/**
|
|
98
|
+
* Event when component is destroyed.
|
|
99
|
+
*/
|
|
100
|
+
ngOnDestroy() {
|
|
101
|
+
if (this.isopen) {
|
|
102
|
+
this.close();
|
|
103
|
+
}
|
|
104
|
+
this.zoneSubscription.unsubscribe();
|
|
105
|
+
}
|
|
106
|
+
/**
|
|
107
|
+
* HostListener to close the dropdown when clicking outside the element.
|
|
108
|
+
*/
|
|
109
|
+
onClick(targetElement) {
|
|
110
|
+
const anchor = this._anchor || this._anchorTemplate;
|
|
111
|
+
if (this._menu &&
|
|
112
|
+
!this._menu.nativeElement.contains(targetElement) &&
|
|
113
|
+
!anchor.nativeElement.contains(targetElement)) {
|
|
114
|
+
this.close();
|
|
115
|
+
}
|
|
116
|
+
}
|
|
117
|
+
/**
|
|
118
|
+
* Opens the dropdown / shows the menu.
|
|
119
|
+
*/
|
|
120
|
+
open() {
|
|
121
|
+
this._applyContainer(this.container);
|
|
122
|
+
this.isopen = true;
|
|
123
|
+
}
|
|
124
|
+
/**
|
|
125
|
+
* Toggle dropdown
|
|
126
|
+
*/
|
|
127
|
+
toggle() {
|
|
128
|
+
if (this.isopen) {
|
|
129
|
+
this.close();
|
|
130
|
+
}
|
|
131
|
+
else {
|
|
132
|
+
this.open();
|
|
133
|
+
}
|
|
134
|
+
}
|
|
135
|
+
// #endregion Public Methods
|
|
136
|
+
// #region Protected Methods
|
|
137
|
+
/**
|
|
138
|
+
* Sets the position of the menu in the markup
|
|
139
|
+
*/
|
|
140
|
+
_positionMenu() {
|
|
141
|
+
const anchor = this._anchor || this._anchorTemplate;
|
|
142
|
+
if (anchor && this._menu) {
|
|
143
|
+
positionElements(anchor.nativeElement, this.bodyContainer || this._menu.nativeElement, this.placement, this.container === 'body');
|
|
144
|
+
}
|
|
145
|
+
}
|
|
146
|
+
// #endregion Protected Methods
|
|
147
|
+
// #region Private Methods
|
|
148
|
+
/**
|
|
149
|
+
* Sets the position of the menu within the page. The alignment happens within the page
|
|
150
|
+
* so that the menu works correctly inside a dialog.
|
|
151
|
+
* @param container Defines where the menu is aligned. Currently only BODY is supported
|
|
152
|
+
*/
|
|
153
|
+
_applyContainer(container = null) {
|
|
154
|
+
// Reset Classes on Container
|
|
155
|
+
this._resetContainer();
|
|
156
|
+
if (container === 'body') {
|
|
157
|
+
const renderer = this.renderer;
|
|
158
|
+
const dropdownMenuElement = this._menu.nativeElement;
|
|
159
|
+
const bodyContainer = (this.bodyContainer = this.bodyContainer || renderer.createElement('div'));
|
|
160
|
+
// Override some styles to have the positioning working
|
|
161
|
+
renderer.setStyle(bodyContainer, 'position', 'absolute');
|
|
162
|
+
renderer.setStyle(dropdownMenuElement, 'position', 'static');
|
|
163
|
+
renderer.setStyle(bodyContainer, 'z-index', '1050');
|
|
164
|
+
renderer.appendChild(bodyContainer, dropdownMenuElement);
|
|
165
|
+
renderer.appendChild(this.document.body, bodyContainer);
|
|
166
|
+
}
|
|
167
|
+
}
|
|
168
|
+
/**
|
|
169
|
+
* Resets the CSS classes on the menu container to default
|
|
170
|
+
*/
|
|
171
|
+
_resetContainer() {
|
|
172
|
+
const renderer = this.renderer;
|
|
173
|
+
if (this._menu) {
|
|
174
|
+
const dropdownElement = this.elementRef.nativeElement;
|
|
175
|
+
const dropdownMenuElement = this._menu.nativeElement;
|
|
176
|
+
renderer.appendChild(dropdownElement, dropdownMenuElement);
|
|
177
|
+
renderer.removeStyle(dropdownMenuElement, 'position');
|
|
178
|
+
renderer.removeStyle(dropdownMenuElement, 'transform');
|
|
179
|
+
}
|
|
180
|
+
if (this.bodyContainer) {
|
|
181
|
+
renderer.removeChild(this.document.body, this.bodyContainer);
|
|
182
|
+
this.bodyContainer = null;
|
|
183
|
+
}
|
|
184
|
+
}
|
|
185
|
+
}
|
|
186
|
+
SacContextmenuCommon.decorators = [
|
|
187
|
+
{ type: Directive }
|
|
188
|
+
];
|
|
189
|
+
SacContextmenuCommon.ctorParameters = () => [
|
|
190
|
+
{ type: undefined, decorators: [{ type: Inject, args: [DOCUMENT,] }] },
|
|
191
|
+
{ type: NgZone },
|
|
192
|
+
{ type: ElementRef },
|
|
193
|
+
{ type: Renderer2 },
|
|
194
|
+
{ type: Injector }
|
|
195
|
+
];
|
|
196
|
+
SacContextmenuCommon.propDecorators = {
|
|
197
|
+
_anchor: [{ type: ViewChild, args: [SacContextmenuAnchorCommon, { static: false },] }],
|
|
198
|
+
_anchorTemplate: [{ type: ContentChild, args: [SacContextmenuAnchorCommon, { static: false },] }],
|
|
199
|
+
_menu: [{ type: ViewChild, args: [SacContextMenuContrainerCommon, { static: false },] }],
|
|
200
|
+
buttontemplate: [{ type: Input }],
|
|
201
|
+
container: [{ type: Input }],
|
|
202
|
+
cssclass: [{ type: Input }],
|
|
203
|
+
e2eidentifier: [{ type: Input }],
|
|
204
|
+
isopen: [{ type: Input }],
|
|
205
|
+
menuitems: [{ type: ContentChildren, args: [SacContextmenuItemCommon,] }],
|
|
206
|
+
name: [{ type: Input }],
|
|
207
|
+
placement: [{ type: Input }],
|
|
208
|
+
onClick: [{ type: HostListener, args: ['document:click', ['$event.target'],] }]
|
|
209
|
+
};
|
|
210
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udGV4dG1lbnUuanMiLCJzb3VyY2VSb290IjoiL2hvbWUvcnVubmVyL3dvcmsvc2ltcGxlYW5ndWxhcmNvbnRyb2xzL3NpbXBsZWFuZ3VsYXJjb250cm9scy9jaC5qbmV0d29yay5zYWMtY29udHJvbHMvcHJvamVjdHMvc2FjLWNvbW1vbi9zcmMvIiwic291cmNlcyI6WyJjb250cm9scy9jb250ZXh0bWVudS9jb250ZXh0bWVudS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUsZUFBZSxFQUFFLHFCQUFxQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDeEUsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ2xELE9BQU8sRUFBa0IsZ0JBQWdCLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQztBQUVwRixPQUFPLEVBQUUsMEJBQTBCLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUNqRSxPQUFPLEVBQUUsOEJBQThCLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUN4RSxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUM3RCxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDM0MsT0FBTyxFQUVILFlBQVksRUFDWixlQUFlLEVBQ2YsU0FBUyxFQUNULFVBQVUsRUFDVixZQUFZLEVBQ1osTUFBTSxFQUNOLFFBQVEsRUFDUixLQUFLLEVBQ0wsTUFBTSxFQUVOLFNBQVMsRUFDVCxTQUFTLEVBQ1QsV0FBVyxFQUNYLFNBQVMsR0FDWixNQUFNLGVBQWUsQ0FBQztBQUd2Qjs7R0FFRztBQUVILE1BQU0sT0FBTyxvQkFBb0I7SUE2RjdCLHdCQUF3QjtJQUV4Qix1QkFBdUI7SUFFdkI7Ozs7Ozs7T0FPRztJQUNILFlBQ3VDLFFBQWEsRUFDL0IsTUFBYyxFQUNkLFVBQW1DLEVBQ25DLFFBQW1CLEVBQ3BDLFFBQWtCO1FBSmlCLGFBQVEsR0FBUixRQUFRLENBQUs7UUFDL0IsV0FBTSxHQUFO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ZXJ2aWNlIH0gZnJvbSAnLi4vLi4vaW50ZXJmYWNlcy9JU2FjSWNvblNlcnZpY2UnO1xuaW1wb3J0IHsgU0FDSUNPTl9TRVJWSUNFLCBTYWNEZWZhdWx0SWNvblNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcyc7XG5pbXBvcnQgeyBjcmVhdGVHdWlkIH0gZnJvbSAnLi4vLi4vdXRpbGl0aWVzL2d1aWQnO1xuaW1wb3J0IHsgUGxhY2VtZW50QXJyYXksIHBvc2l0aW9uRWxlbWVudHMgfSBmcm9tICcuLi8uLi91dGlsaXRpZXMvcG9zaXRpb25lbGVtZW50cyc7XG5pbXBvcnQgeyBJU2FjQ29udGV4dG1lbnVDb21tb24gfSBmcm9tICcuL2NvbnRleHRtZW51LmludGVyZmFjZSc7XG5pbXBvcnQgeyBTYWNDb250ZXh0bWVudUFuY2hvckNvbW1vbiB9IGZyb20gJy4vY29udGV4dG1lbnVhbmNob3InO1xuaW1wb3J0IHsgU2FjQ29udGV4dE1lbnVDb250cmFpbmVyQ29tbW9uIH0gZnJvbSAnLi9jb250ZXh0bWVudWNvbnRhaW5lcic7XG5pbXBvcnQgeyBTYWNDb250ZXh0bWVudUl0ZW1Db21tb24gfSBmcm9tICcuL2NvbnRleHRtZW51aXRlbSc7XG5pbXBvcnQgeyBET0NVTUVOVCB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQge1xuICAgIEFmdGVyQ29udGVudEluaXQsXG4gICAgQ29udGVudENoaWxkLFxuICAgIENvbnRlbnRDaGlsZHJlbixcbiAgICBEaXJlY3RpdmUsXG4gICAgRWxlbWVudFJlZixcbiAgICBIb3N0TGlzdGVuZXIsXG4gICAgSW5qZWN0LFxuICAgIEluamVjdG9yLFxuICAgIElucHV0LFxuICAgIE5nWm9uZSxcbiAgICBPbkRlc3Ryb3ksXG4gICAgUXVlcnlMaXN0LFxuICAgIFJlbmRlcmVyMixcbiAgICBUZW1wbGF0ZVJlZixcbiAgICBWaWV3Q2hpbGQsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgU3Vic2NyaXB0aW9uIH0gZnJvbSAncnhqcyc7XG5cbi8qKlxuICogQmFzZSBjb250ZXh0IG1lbnUgZWxlbWVudC4gVGhlIGxvZ2ljIHdhcyB0YWtlbiBmcm9tIE5HLUJPT1RTVFJBUC5cbiAqL1xuQERpcmVjdGl2ZSgpXG5leHBvcnQgY2xhc3MgU2FjQ29udGV4dG1lbnVDb21tb24gaW1wbGVtZW50cyBJU2FjQ29udGV4dG1lbnVDb21tb24sIEFmdGVyQ29udGVudEluaXQsIE9uRGVzdHJveSB7XG4gICAgLy8gI3JlZ2lvbiBQcm9wZXJ0aWVzXG5cbiAgICAvKipcbiAgICAgKiBCdXR0b24gZm9yIG9wZW4vY2xvc2UgZXZlbnRcbiAgICAgKi9cbiAgICBAVmlld0NoaWxkKFNhY0NvbnRleHRtZW51QW5jaG9yQ29tbW9uLCB7IHN0YXRpYzogZmFsc2UgfSlcbiAgICBwcml2YXRlIHJlYWRvbmx5IF9hbmNob3I6IFNhY0NvbnRleHRtZW51QW5jaG9yQ29tbW9uO1xuXG4gICAgLyoqXG4gICAgICogQnV0dG9uIGZvciBvcGVuL2Nsb3NlIGV2ZW50IGZyb20gdGVtcGxhdGVcbiAgICAgKi9cbiAgICBAQ29udGVudENoaWxkKFNhY0NvbnRleHRtZW51QW5jaG9yQ29tbW9uLCB7IHN0YXRpYzogZmFsc2UgfSlcbiAgICBwcml2YXRlIHJlYWRvbmx5IF9hbmNob3JUZW1wbGF0ZTogU2FjQ29udGV4dG1lbnVBbmNob3JDb21tb247XG5cbiAgICAvKipcbiAgICAgKiBDb250YWluZXIgZWxlbWVudCBmb3IgZHJvcGRvd25cbiAgICAgKi9cbiAgICBAVmlld0NoaWxkKFNhY0NvbnRleHRNZW51Q29udHJhaW5lckNvbW1vbiwgeyBzdGF0aWM6IGZhbHNlIH0pXG4gICAgcHJpdmF0ZSByZWFkb25seSBfbWVudTogU2FjQ29udGV4dE1lbnVDb250cmFpbmVyQ29tbW9uO1xuXG4gICAgLyoqXG4gICAgICogWm9uZSBzdWJzY3JpcHRpb24gZm9yIHBvc2l0aW9uaW5nIHRoZSBlbGVtZW50XG4gICAgICovXG4gICAgcHJpdmF0ZSByZWFkb25seSB6b25lU3Vic2NyaXB0aW9uOiBTdWJzY3JpcHRpb247XG5cbiAgICAvKipcbiAgICAgKiBCb2R5IEhUTUwgRWxlbWVudFxuICAgICAqL1xuICAgIHByaXZhdGUgYm9keUNvbnRhaW5lcjogSFRNTEVsZW1lbnQgfCBudWxsID0gbnVsbDtcblxuICAgIC8qKlxuICAgICAqIGljb24gc2VydmljZVxuICAgICAqL1xuICAgIHByb3RlY3RlZCBpY29uU2VydmljZTogSVNhY0ljb25TZXJ2aWNlO1xuXG4gICAgLyoqXG4gICAgICogQ3VzdG9tIEhUTUwgdGVtcGxhdGUgZm9yIGRyb3Bkb3duIGJ1dHRvbi4gQnV0dG9uIG11c3QgY29udGFpbiB0aGUgbWFya2VyIFwibmdDb250ZXh0bWVudUFuY2hvclwiIGZvciB0aGUgY29udHJvbCB0byB3b3JrIGNvcnJlY3RseS5cbiAgICAgKi9cbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBidXR0b250ZW1wbGF0ZTogVGVtcGxhdGVSZWY8YW55PjtcblxuICAgIC8qKlxuICAgICAqIENvbnRhaW5lciB0byB3aGljaCB0aGUgcG9zaXRpb24gaXMgYWxpZ25lZC4gQ3VycmVudGx5IG9ubHkgYm9keSBpcyBzdXBwb3J0ZWQuXG4gICAgICovXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgY29udGFpbmVyOiBudWxsIHwgJ2JvZHknID0gJ2JvZHknO1xuXG4gICAgLyoqXG4gICAgICogRXh0cmEgQ1NTIGNsYXNzZXMgZm9yIHRoZSBjb250cm9sXG4gICAgICovXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgY3NzY2xhc3MgPSAnJztcblxuICAgIC8qKlxuICAgICAqIElkZW50aWZpZXIgdXNlZCBmb3IgdGhlIEUyRSBkYXRhIGF0dHJpYnV0ZS5cbiAgICAgKi9cbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBlMmVpZGVudGlmaWVyOiBzdHJpbmcgfCBudWxsID0gbnVsbDtcblxuICAgIC8qKlxuICAgICAqIERlZmluZXMgd2hldGhlciB0aGUgZHJvcGRvd24gaXMgb3Blbi5cbiAgICAgKi9cbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBpc29wZW4gPSBmYWxzZTtcblxuICAgIC8qKlxuICAgICAqIEFsbCBkaXJlY3RseSBhc3NpZ25lZCBjb250ZXh0IG1lbnUgZWxlbWVudHMgdGhhdCBhcmUgZGVmaW5lZCBpbiB0aGUgZGlyZWN0IHRlbXBsYXRlIGZvciB0aGUgY29udGV4dCBtZW51LlxuICAgICAqL1xuICAgIEBDb250ZW50Q2hpbGRyZW4oU2FjQ29udGV4dG1lbnVJdGVtQ29tbW9uKVxuICAgIHB1YmxpYyBtZW51aXRlbXMhOiBRdWVyeUxpc3Q8U2FjQ29udGV4dG1lbnVJdGVtQ29tbW9uPjtcblxuICAgIC8qKlxuICAgICAqIG5hbWUgb2YgY29udHJvbFxuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIG5hbWU6IHN0cmluZyA9IGNyZWF0ZUd1aWQoKTtcblxuICAgIC8qKlxuICAgICAqIFRoZSBwcmVmZXJyZWQgcGxhY2VtZW50IG9mIHRoZSBkcm9wZG93bi5cbiAgICAgKlxuICAgICAqIFBvc3NpYmxlIHZhbHVlcyBhcmUgYFwidG9wXCJgLCBgXCJ0b3AtbGVmdFwiYCwgYFwidG9wLXJpZ2h0XCJgLCBgXCJib3R0b21cImAsIGBcImJvdHRvbS1sZWZ0XCJgLFxuICAgICAqIGBcImJvdHRvbS1yaWdodFwiYCwgYFwibGVmdFwiYCwgYFwibGVmdC10b3BcImAsIGBcImxlZnQtYm90dG9tXCJgLCBgXCJyaWdodFwiYCwgYFwicmlnaHQtdG9wXCJgLFxuICAgICAqIGBcInJpZ2h0LWJvdHRvbVwiYFxuICAgICAqXG4gICAgICogQWNjZXB0cyBhbiBhcnJheSBvZiBzdHJpbmdzIG9yIGEgc3RyaW5nIHdpdGggc3BhY2Ugc2VwYXJhdGVkIHBvc3NpYmxlIHZhbHVlcy5cbiAgICAgKlxuICAgICAqIFRoZSBkZWZhdWx0IG9yZGVyIG9mIHByZWZlcmVuY2UgaXMgYFwiYm90dG9tLWxlZnQgYm90dG9tLXJpZ2h0IHRvcC1sZWZ0IHRvcC1yaWdodFwiYFxuICAgICAqXG4gICAgICogUGxlYXNlIHNlZSB0aGUgW3Bvc2l0aW9uaW5nIG92ZXJ2aWV3XSgjL3Bvc2l0aW9uaW5nKSBmb3IgbW9yZSBkZXRhaWxzLlxuICAgICAqL1xuICAgIEBJbnB1dCgpIHB1YmxpYyBwbGFjZW1lbnQ6IFBsYWNlbWVudEFycmF5ID0gWydib3R0b20tbGVmdCcsICdib3R0b20tcmlnaHQnLCAndG9wLWxlZnQnLCAndG9wLXJpZ2h0J107XG5cbiAgICAvLyAjZW5kcmVnaW9uIFByb3BlcnRpZXNcblxuICAgIC8vICNyZWdpb24gQ29uc3RydWN0b3JzXG5cbiAgICAvKipcbiAgICAgKiBDb25zdHJ1Y3RvclxuICAgICAqIEBwYXJhbSBkb2N1bWVudCBIVE1MIGRvY3VtZW50IGVsZW1lbnRcbiAgICAgKiBAcGFyYW0gbmdab25lIEFuZ3VsYXIgem9uZSBzZXJ2aWNlXG4gICAgICogQHBhcmFtIGVsZW1lbnRSZWYgSFRNTCBlbGVtZW50IG9mIHRoZSBjdXJyZW50IGNvbnRyb2xcbiAgICAgKiBAcGFyYW0gcmVuZGVyZXIgQW5ndWxhciByZW5kZXJpbmcgc2VydmljZVxuICAgICAqIEBwYXJhbSBpbmplY3RvciBJbmplY3RvciB0byByZXNvbHZlIHRoZSBpY29uIHNlcnZpY2VcbiAgICAgKi9cbiAgICBjb25zdHJ1Y3RvcihcbiAgICAgICAgQEluamVjdChET0NVTUVOVCkgcHJpdmF0ZSByZWFkb25seSBkb2N1bWVudDogYW55LFxuICAgICAgICBwcml2YXRlIHJlYWRvbmx5IG5nWm9uZTogTmdab25lLFxuICAgICAgICBwcml2YXRlIHJlYWRvbmx5IGVsZW1lbnRSZWY6IEVsZW1lbnRSZWY8SFRNTEVsZW1lbnQ+LFxuICAgICAgICBwcml2YXRlIHJlYWRvbmx5IHJlbmRlcmVyOiBSZW5kZXJlcjIsXG4gICAgICAgIGluamVjdG9yOiBJbmplY3RvclxuICAgICkge1xuICAgICAgICB0aGlzLnpvbmVTdWJzY3JpcHRpb24gPSB0aGlzLm5nWm9uZS5vblN0YWJsZS5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICAgICAgdGhpcy5fcG9zaXRpb25NZW51KCk7XG4gICAgICAgIH0pO1xuXG4gICAgICAgIHRoaXMuaWNvblNlcnZpY2UgPSBpbmplY3Rvci5nZXQoU0FDSUNPTl9TRVJWSUNFLCBuZXcgU2FjRGVmYXVsdEljb25TZXJ2aWNlKCkpO1xuICAgIH1cblxuICAgIC8vICNlbmRyZWdpb24gQ29uc3RydWN0b3JzXG5cbiAgICAvLyAjcmVnaW9uIFB1YmxpYyBHZXR0ZXJzIEFuZCBTZXR0ZXJzXG5cbiAgICAvKipcbiAgICAgKiBJY29uIGZvciBkZWZhdWx0IGNvbnRleHQgbWVudSBidXR0b25cbiAgICAgKi9cbiAgICBwdWJsaWMgZ2V0IEljb25Db250ZXh0TWVudSgpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gdGhpcy5pY29uU2VydmljZS5Db250ZXh0TWVudU9wZW5JY29uO1xuICAgIH1cblxuICAgIC8vICNlbmRyZWdpb24gUHVibGljIEdldHRlcnMgQW5kIFNldHRlcnNcblxuICAgIC8vICNyZWdpb24gUHVibGljIE1ldGhvZHNcblxuICAgIC8qKlxuICAgICAqIENsb3NlcyB0aGUgZHJvcGRvd25cbiAgICAgKi9cbiAgICBwdWJsaWMgY2xvc2UoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuX3Jlc2V0Q29udGFpbmVyKCk7XG4gICAgICAgIHRoaXMuaXNvcGVuID0gZmFsc2U7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogTGlmZWN5Y2xlIGhvb2sgdGhhdCBpcyBjYWxsZWQgYWZ0ZXIgY29udGVudCBwcm9qZWN0aW9uIGlzIGNvbXBsZXRlZC5cbiAgICAgKlxuICAgICAqIEFzc29jaWF0ZXMgZWFjaCBtZW51IGl0ZW0gd2l0aCB0aGlzIGNvbnRleHQgbWVudSBpbnN0YW5jZSBzbyB0aGF0IGl0ZW1cbiAgICAgKiBldmVudHMgY2FuIGRlbGVnYXRlIHRvIHRoZSBwYXJlbnQgbWVudS5cbiAgICAgKi9cbiAgICBwdWJsaWMgbmdBZnRlckNvbnRlbnRJbml0KCk6IHZvaWQge1xuICAgICAgICB0aGlzLm1lbnVpdGVtcy5mb3JFYWNoKChidXR0b24pID0+IChidXR0b24uY29udGV4dG1lbnUgPSB0aGlzKSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogRXZlbnQgd2hlbiBjb21wb25lbnQgaXMgZGVzdHJveWVkLlxuICAgICAqL1xuICAgIHB1YmxpYyBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICAgICAgaWYgKHRoaXMuaXNvcGVuKSB7XG4gICAgICAgICAgICB0aGlzLmNsb3NlKCk7XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLnpvbmVTdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBIb3N0TGlzdGVuZXIgdG8gY2xvc2UgdGhlIGRyb3Bkb3duIHdoZW4gY2xpY2tpbmcgb3V0c2lkZSB0aGUgZWxlbWVudC5cbiAgICAgKi9cbiAgICBASG9zdExpc3RlbmVyKCdkb2N1bWVudDpjbGljaycsIFsnJGV2ZW50LnRhcmdldCddKVxuICAgIC8qKlxuICAgICAqIENsaWNrIEV2ZW50XG4gICAgICogQHBhcmFtIHRhcmdldEVsZW1lbnQgVGhlIHRhcmdldCBlbGVtZW50IGZyb20gdGhlIGNsaWNrIGV2ZW50XG4gICAgICovXG4gICAgcHVibGljIG9uQ2xpY2sodGFyZ2V0RWxlbWVudCkge1xuICAgICAgICBjb25zdCBhbmNob3I6IFNhY0NvbnRleHRtZW51QW5jaG9yQ29tbW9uID0gdGhpcy5fYW5jaG9yIHx8IHRoaXMuX2FuY2hvclRlbXBsYXRlO1xuXG4gICAgICAgIGlmIChcbiAgICAgICAgICAgIHRoaXMuX21lbnUgJiZcbiAgICAgICAgICAgICF0aGlzLl9tZW51Lm5hdGl2ZUVsZW1lbnQuY29udGFpbnModGFyZ2V0RWxlbWVudCkgJiZcbiAgICAgICAgICAgICFhbmNob3IubmF0aXZlRWxlbWVudC5jb250YWlucyh0YXJnZXRFbGVtZW50KVxuICAgICAgICApIHtcbiAgICAgICAgICAgIHRoaXMuY2xvc2UoKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKlxuICAgICAqIE9wZW5zIHRoZSBkcm9wZG93biAvIHNob3dzIHRoZSBtZW51LlxuICAgICAqL1xuICAgIHB1YmxpYyBvcGVuKCk6IHZvaWQge1xuICAgICAgICB0aGlzLl9hcHBseUNvbnRhaW5lcih0aGlzLmNvbnRhaW5lcik7XG4gICAgICAgIHRoaXMuaXNvcGVuID0gdHJ1ZTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBUb2dnbGUgZHJvcGRvd25cbiAgICAgKi9cbiAgICBwdWJsaWMgdG9nZ2xlKCk6IHZvaWQge1xuICAgICAgICBpZiAodGhpcy5pc29wZW4pIHtcbiAgICAgICAgICAgIHRoaXMuY2xvc2UoKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMub3BlbigpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLy8gI2VuZHJlZ2lvbiBQdWJsaWMgTWV0aG9kc1xuXG4gICAgLy8gI3JlZ2lvbiBQcm90ZWN0ZWQgTWV0aG9kc1xuXG4gICAgLyoqXG4gICAgICogU2V0cyB0aGUgcG9zaXRpb24gb2YgdGhlIG1lbnUgaW4gdGhlIG1hcmt1cFxuICAgICAqL1xuICAgIHByb3RlY3RlZCBfcG9zaXRpb25NZW51KCkge1xuICAgICAgICBjb25zdCBhbmNob3I6IFNhY0NvbnRleHRtZW51QW5jaG9yQ29tbW9uID0gdGhpcy5fYW5jaG9yIHx8IHRoaXMuX2FuY2hvclRlbXBsYXRlO1xuXG4gICAgICAgIGlmIChhbmNob3IgJiYgdGhpcy5fbWVudSkge1xuICAgICAgICAgICAgcG9zaXRpb25FbGVtZW50cyhcbiAgICAgICAgICAgICAgICBhbmNob3IubmF0aXZlRWxlbWVudCxcbiAgICAgICAgICAgICAgICB0aGlzLmJvZHlDb250YWluZXIgfHwgdGhpcy5fbWVudS5uYXRpdmVFbGVtZW50LFxuICAgICAgICAgICAgICAgIHRoaXMucGxhY2VtZW50LFxuICAgICAgICAgICAgICAgIHRoaXMuY29udGFpbmVyID09PSAnYm9keSdcbiAgICAgICAgICAgICk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvLyAjZW5kcmVnaW9uIFByb3RlY3RlZCBNZXRob2RzXG5cbiAgICAvLyAjcmVnaW9uIFByaXZhdGUgTWV0aG9kc1xuXG4gICAgLyoqXG4gICAgICogU2V0cyB0aGUgcG9zaXRpb24gb2YgdGhlIG1lbnUgd2l0aGluIHRoZSBwYWdlLiBUaGUgYWxpZ25tZW50IGhhcHBlbnMgd2l0aGluIHRoZSBwYWdlXG4gICAgICogc28gdGhhdCB0aGUgbWVudSB3b3JrcyBjb3JyZWN0bHkgaW5zaWRlIGEgZGlhbG9nLlxuICAgICAqIEBwYXJhbSBjb250YWluZXIgRGVmaW5lcyB3aGVyZSB0aGUgbWVudSBpcyBhbGlnbmVkLiBDdXJyZW50bHkgb25seSBCT0RZIGlzIHN1cHBvcnRlZFxuICAgICAqL1xuICAgIHByaXZhdGUgX2FwcGx5Q29udGFpbmVyKGNvbnRhaW5lcjogbnVsbCB8ICdib2R5JyA9IG51bGwpIHtcbiAgICAgICAgLy8gUmVzZXQgQ2xhc3NlcyBvbiBDb250YWluZXJcbiAgICAgICAgdGhpcy5fcmVzZXRDb250YWluZXIoKTtcblxuICAgICAgICBpZiAoY29udGFpbmVyID09PSAnYm9keScpIHtcbiAgICAgICAgICAgIGNvbnN0IHJlbmRlcmVyID0gdGhpcy5yZW5kZXJlcjtcbiAgICAgICAgICAgIGNvbnN0IGRyb3Bkb3duTWVudUVsZW1lbnQgPSB0aGlzLl9tZW51Lm5hdGl2ZUVsZW1lbnQ7XG4gICAgICAgICAgICBjb25zdCBib2R5Q29udGFpbmVyID0gKHRoaXMuYm9keUNvbnRhaW5lciA9IHRoaXMuYm9keUNvbnRhaW5lciB8fCByZW5kZXJlci5jcmVhdGVFbGVtZW50KCdkaXYnKSk7XG5cbiAgICAgICAgICAgIC8vIE92ZXJyaWRlIHNvbWUgc3R5bGVzIHRvIGhhdmUgdGhlIHBvc2l0aW9uaW5nIHdvcmtpbmdcbiAgICAgICAgICAgIHJlbmRlcmVyLnNldFN0eWxlKGJvZHlDb250YWluZXIsICdwb3NpdGlvbicsICdhYnNvbHV0ZScpO1xuICAgICAgICAgICAgcmVuZGVyZXIuc2V0U3R5bGUoZHJvcGRvd25NZW51RWxlbWVudCwgJ3Bvc2l0aW9uJywgJ3N0YXRpYycpO1xuICAgICAgICAgICAgcmVuZGVyZXIuc2V0U3R5bGUoYm9keUNvbnRhaW5lciwgJ3otaW5kZXgnLCAnMTA1MCcpO1xuXG4gICAgICAgICAgICByZW5kZXJlci5hcHBlbmRDaGlsZChib2R5Q29udGFpbmVyLCBkcm9wZG93bk1lbnVFbGVtZW50KTtcbiAgICAgICAgICAgIHJlbmRlcmVyLmFwcGVuZENoaWxkKHRoaXMuZG9jdW1lbnQuYm9keSwgYm9keUNvbnRhaW5lcik7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBSZXNldHMgdGhlIENTUyBjbGFzc2VzIG9uIHRoZSBtZW51IGNvbnRhaW5lciB0byBkZWZhdWx0XG4gICAgICovXG4gICAgcHJpdmF0ZSBfcmVzZXRDb250YWluZXIoKSB7XG4gICAgICAgIGNvbnN0IHJlbmRlcmVyID0gdGhpcy5yZW5kZXJlcjtcbiAgICAgICAgaWYgKHRoaXMuX21lbnUpIHtcbiAgICAgICAgICAgIGNvbnN0IGRyb3Bkb3duRWxlbWVudCA9IHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50O1xuICAgICAgICAgICAgY29uc3QgZHJvcGRvd25NZW51RWxlbWVudCA9IHRoaXMuX21lbnUubmF0aXZlRWxlbWVudDtcblxuICAgICAgICAgICAgcmVuZGVyZXIuYXBwZW5kQ2hpbGQoZHJvcGRvd25FbGVtZW50LCBkcm9wZG93bk1lbnVFbGVtZW50KTtcbiAgICAgICAgICAgIHJlbmRlcmVyLnJlbW92ZVN0eWxlKGRyb3Bkb3duTWVudUVsZW1lbnQsICdwb3NpdGlvbicpO1xuICAgICAgICAgICAgcmVuZGVyZXIucmVtb3ZlU3R5bGUoZHJvcGRvd25NZW51RWxlbWVudCwgJ3RyYW5zZm9ybScpO1xuICAgICAgICB9XG4gICAgICAgIGlmICh0aGlzLmJvZHlDb250YWluZXIpIHtcbiAgICAgICAgICAgIHJlbmRlcmVyLnJlbW92ZUNoaWxkKHRoaXMuZG9jdW1lbnQuYm9keSwgdGhpcy5ib2R5Q29udGFpbmVyKTtcbiAgICAgICAgICAgIHRoaXMuYm9keUNvbnRhaW5lciA9IG51bGw7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvLyAjZW5kcmVnaW9uIFByaXZhdGUgTWV0aG9kc1xufVxuIl19
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* @fileoverview This file was generated by the Angular template compiler. Do not edit.
|
|
3
|
-
*
|
|
4
|
-
* @suppress {suspiciousCode,uselessCode,missingProperties,missingOverride,checkTypes,extraRequire}
|
|
5
|
-
* tslint:disable
|
|
6
|
-
*/
|
|
7
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
1
|
+
/**
|
|
2
|
+
* @fileoverview This file was generated by the Angular template compiler. Do not edit.
|
|
3
|
+
*
|
|
4
|
+
* @suppress {suspiciousCode,uselessCode,missingProperties,missingOverride,checkTypes,extraRequire}
|
|
5
|
+
* tslint:disable
|
|
6
|
+
*/
|
|
7
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udGV4dG1lbnUubmdmYWN0b3J5LmpzIiwic291cmNlUm9vdCI6Ii9ob21lL3J1bm5lci93b3JrL3NpbXBsZWFuZ3VsYXJjb250cm9scy9zaW1wbGVhbmd1bGFyY29udHJvbHMvY2guam5ldHdvcmsuc2FjLWNvbnRyb2xzL3Byb2plY3RzL3NhYy1jb21tb24vc3JjLyIsInNvdXJjZXMiOlsiY29udHJvbHMvY29udGV4dG1lbnUvY29udGV4dG1lbnUubmdmYWN0b3J5LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgKiBhcyBpMCBmcm9tICdAYW5ndWxhci9jb3JlJztcbmkwLkNvbXBvbmVudEZhY3Rvcnk7XG4iXX0=
|
|
@@ -1,22 +1,22 @@
|
|
|
1
|
-
import { Directive, ElementRef } from '@angular/core';
|
|
2
|
-
/**
|
|
3
|
-
* Base
|
|
4
|
-
*/
|
|
5
|
-
export class SacContextmenuAnchorCommon {
|
|
6
|
-
// #endregion Properties
|
|
7
|
-
// #region Constructors
|
|
8
|
-
/**
|
|
9
|
-
*
|
|
10
|
-
* @param elementRef
|
|
11
|
-
*/
|
|
12
|
-
constructor(elementRef) {
|
|
13
|
-
this.nativeElement = elementRef.nativeElement;
|
|
14
|
-
}
|
|
15
|
-
}
|
|
16
|
-
SacContextmenuAnchorCommon.decorators = [
|
|
17
|
-
{ type: Directive }
|
|
18
|
-
];
|
|
19
|
-
SacContextmenuAnchorCommon.ctorParameters = () => [
|
|
20
|
-
{ type: ElementRef }
|
|
21
|
-
];
|
|
22
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
1
|
+
import { Directive, ElementRef } from '@angular/core';
|
|
2
|
+
/**
|
|
3
|
+
* Base context menu anchor component for open/close event
|
|
4
|
+
*/
|
|
5
|
+
export class SacContextmenuAnchorCommon {
|
|
6
|
+
// #endregion Properties
|
|
7
|
+
// #region Constructors
|
|
8
|
+
/**
|
|
9
|
+
* Constructor
|
|
10
|
+
* @param elementRef Reference to the HTML element used as anchor for the context menu
|
|
11
|
+
*/
|
|
12
|
+
constructor(elementRef) {
|
|
13
|
+
this.nativeElement = elementRef.nativeElement;
|
|
14
|
+
}
|
|
15
|
+
}
|
|
16
|
+
SacContextmenuAnchorCommon.decorators = [
|
|
17
|
+
{ type: Directive }
|
|
18
|
+
];
|
|
19
|
+
SacContextmenuAnchorCommon.ctorParameters = () => [
|
|
20
|
+
{ type: ElementRef }
|
|
21
|
+
];
|
|
22
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udGV4dG1lbnVhbmNob3IuanMiLCJzb3VyY2VSb290IjoiL2hvbWUvcnVubmVyL3dvcmsvc2ltcGxlYW5ndWxhcmNvbnRyb2xzL3NpbXBsZWFuZ3VsYXJjb250cm9scy9jaC5qbmV0d29yay5zYWMtY29udHJvbHMvcHJvamVjdHMvc2FjLWNvbW1vbi9zcmMvIiwic291cmNlcyI6WyJjb250cm9scy9jb250ZXh0bWVudS9jb250ZXh0bWVudWFuY2hvci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUV0RDs7R0FFRztBQUVILE1BQU0sT0FBTywwQkFBMEI7SUFRbkMsd0JBQXdCO0lBRXhCLHVCQUF1QjtJQUV2Qjs7O09BR0c7SUFDSCxZQUFZLFVBQW1DO1FBQzNDLElBQUksQ0FBQyxhQUFhLEdBQUcsVUFBVSxDQUFDLGFBQWEsQ0FBQztJQUNsRCxDQUFDOzs7WUFuQkosU0FBUzs7O1lBTFUsVUFBVSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERpcmVjdGl2ZSwgRWxlbWVudFJlZiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG4vKipcbiAqIEJhc2UgY29udGV4dCBtZW51IGFuY2hvciBjb21wb25lbnQgZm9yIG9wZW4vY2xvc2UgZXZlbnRcbiAqL1xuQERpcmVjdGl2ZSgpXG5leHBvcnQgY2xhc3MgU2FjQ29udGV4dG1lbnVBbmNob3JDb21tb24ge1xuICAgIC8vICNyZWdpb24gUHJvcGVydGllc1xuXG4gICAgLyoqXG4gICAgICogUmVmZXJlbmNlIHRvIHRoZSBuYXRpdmUgSFRNTCBlbGVtZW50XG4gICAgICovXG4gICAgcHVibGljIG5hdGl2ZUVsZW1lbnQ6IEhUTUxFbGVtZW50O1xuXG4gICAgLy8gI2VuZHJlZ2lvbiBQcm9wZXJ0aWVzXG5cbiAgICAvLyAjcmVnaW9uIENvbnN0cnVjdG9yc1xuXG4gICAgLyoqXG4gICAgICogQ29uc3RydWN0b3JcbiAgICAgKiBAcGFyYW0gZWxlbWVudFJlZiBSZWZlcmVuY2UgdG8gdGhlIEhUTUwgZWxlbWVudCB1c2VkIGFzIGFuY2hvciBmb3IgdGhlIGNvbnRleHQgbWVudVxuICAgICAqL1xuICAgIGNvbnN0cnVjdG9yKGVsZW1lbnRSZWY6IEVsZW1lbnRSZWY8SFRNTEVsZW1lbnQ+KSB7XG4gICAgICAgIHRoaXMubmF0aXZlRWxlbWVudCA9IGVsZW1lbnRSZWYubmF0aXZlRWxlbWVudDtcbiAgICB9XG5cbiAgICAvLyAjZW5kcmVnaW9uIENvbnN0cnVjdG9yc1xufVxuIl19
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* @fileoverview This file was generated by the Angular template compiler. Do not edit.
|
|
3
|
-
*
|
|
4
|
-
* @suppress {suspiciousCode,uselessCode,missingProperties,missingOverride,checkTypes,extraRequire}
|
|
5
|
-
* tslint:disable
|
|
6
|
-
*/
|
|
7
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
1
|
+
/**
|
|
2
|
+
* @fileoverview This file was generated by the Angular template compiler. Do not edit.
|
|
3
|
+
*
|
|
4
|
+
* @suppress {suspiciousCode,uselessCode,missingProperties,missingOverride,checkTypes,extraRequire}
|
|
5
|
+
* tslint:disable
|
|
6
|
+
*/
|
|
7
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udGV4dG1lbnVhbmNob3IubmdmYWN0b3J5LmpzIiwic291cmNlUm9vdCI6Ii9ob21lL3J1bm5lci93b3JrL3NpbXBsZWFuZ3VsYXJjb250cm9scy9zaW1wbGVhbmd1bGFyY29udHJvbHMvY2guam5ldHdvcmsuc2FjLWNvbnRyb2xzL3Byb2plY3RzL3NhYy1jb21tb24vc3JjLyIsInNvdXJjZXMiOlsiY29udHJvbHMvY29udGV4dG1lbnUvY29udGV4dG1lbnVhbmNob3IubmdmYWN0b3J5LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgKiBhcyBpMCBmcm9tICdAYW5ndWxhci9jb3JlJztcbmkwLkNvbXBvbmVudEZhY3Rvcnk7XG4iXX0=
|
|
@@ -1,22 +1,22 @@
|
|
|
1
|
-
import { Directive, ElementRef } from '@angular/core';
|
|
2
|
-
/**
|
|
3
|
-
* Common
|
|
4
|
-
*/
|
|
5
|
-
export class SacContextMenuContrainerCommon {
|
|
6
|
-
// #endregion Properties
|
|
7
|
-
// #region Constructors
|
|
8
|
-
/**
|
|
9
|
-
*
|
|
10
|
-
* @param elementRef
|
|
11
|
-
*/
|
|
12
|
-
constructor(elementRef) {
|
|
13
|
-
this.nativeElement = elementRef.nativeElement;
|
|
14
|
-
}
|
|
15
|
-
}
|
|
16
|
-
SacContextMenuContrainerCommon.decorators = [
|
|
17
|
-
{ type: Directive }
|
|
18
|
-
];
|
|
19
|
-
SacContextMenuContrainerCommon.ctorParameters = () => [
|
|
20
|
-
{ type: ElementRef }
|
|
21
|
-
];
|
|
22
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
1
|
+
import { Directive, ElementRef } from '@angular/core';
|
|
2
|
+
/**
|
|
3
|
+
* Common marker class for the menu container
|
|
4
|
+
*/
|
|
5
|
+
export class SacContextMenuContrainerCommon {
|
|
6
|
+
// #endregion Properties
|
|
7
|
+
// #region Constructors
|
|
8
|
+
/**
|
|
9
|
+
* Constructor
|
|
10
|
+
* @param elementRef Reference to the HTML element with the marker directive
|
|
11
|
+
*/
|
|
12
|
+
constructor(elementRef) {
|
|
13
|
+
this.nativeElement = elementRef.nativeElement;
|
|
14
|
+
}
|
|
15
|
+
}
|
|
16
|
+
SacContextMenuContrainerCommon.decorators = [
|
|
17
|
+
{ type: Directive }
|
|
18
|
+
];
|
|
19
|
+
SacContextMenuContrainerCommon.ctorParameters = () => [
|
|
20
|
+
{ type: ElementRef }
|
|
21
|
+
];
|
|
22
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udGV4dG1lbnVjb250YWluZXIuanMiLCJzb3VyY2VSb290IjoiL2hvbWUvcnVubmVyL3dvcmsvc2ltcGxlYW5ndWxhcmNvbnRyb2xzL3NpbXBsZWFuZ3VsYXJjb250cm9scy9jaC5qbmV0d29yay5zYWMtY29udHJvbHMvcHJvamVjdHMvc2FjLWNvbW1vbi9zcmMvIiwic291cmNlcyI6WyJjb250cm9scy9jb250ZXh0bWVudS9jb250ZXh0bWVudWNvbnRhaW5lci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUV0RDs7R0FFRztBQUVILE1BQU0sT0FBTyw4QkFBOEI7SUFRdkMsd0JBQXdCO0lBRXhCLHVCQUF1QjtJQUV2Qjs7O09BR0c7SUFDSCxZQUFZLFVBQW1DO1FBQzNDLElBQUksQ0FBQyxhQUFhLEdBQUcsVUFBVSxDQUFDLGFBQWEsQ0FBQztJQUNsRCxDQUFDOzs7WUFuQkosU0FBUzs7O1lBTFUsVUFBVSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERpcmVjdGl2ZSwgRWxlbWVudFJlZiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG4vKipcbiAqIENvbW1vbiBtYXJrZXIgY2xhc3MgZm9yIHRoZSBtZW51IGNvbnRhaW5lclxuICovXG5ARGlyZWN0aXZlKClcbmV4cG9ydCBjbGFzcyBTYWNDb250ZXh0TWVudUNvbnRyYWluZXJDb21tb24ge1xuICAgIC8vICNyZWdpb24gUHJvcGVydGllc1xuXG4gICAgLyoqXG4gICAgICogUmVmZXJlbmNlIHRvIHRoZSBIVE1MIGVsZW1lbnQgb2YgdGhlIG1lbnUgY29udGFpbmVyXG4gICAgICovXG4gICAgcHVibGljIG5hdGl2ZUVsZW1lbnQ6IEhUTUxFbGVtZW50O1xuXG4gICAgLy8gI2VuZHJlZ2lvbiBQcm9wZXJ0aWVzXG5cbiAgICAvLyAjcmVnaW9uIENvbnN0cnVjdG9yc1xuXG4gICAgLyoqXG4gICAgICogQ29uc3RydWN0b3JcbiAgICAgKiBAcGFyYW0gZWxlbWVudFJlZiBSZWZlcmVuY2UgdG8gdGhlIEhUTUwgZWxlbWVudCB3aXRoIHRoZSBtYXJrZXIgZGlyZWN0aXZlXG4gICAgICovXG4gICAgY29uc3RydWN0b3IoZWxlbWVudFJlZjogRWxlbWVudFJlZjxIVE1MRWxlbWVudD4pIHtcbiAgICAgICAgdGhpcy5uYXRpdmVFbGVtZW50ID0gZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50O1xuICAgIH1cblxuICAgIC8vICNlbmRyZWdpb24gQ29uc3RydWN0b3JzXG59XG4iXX0=
|