@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,164 +1,364 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import
|
|
3
|
-
import {
|
|
4
|
-
import { Validation } from '../validation';
|
|
5
|
-
import {
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
/**
|
|
11
|
-
* Base
|
|
12
|
-
*/
|
|
13
|
-
export class SacBaseDateTimeControl extends SacBaseModelControl {
|
|
14
|
-
// #endregion Properties
|
|
15
|
-
// #region Constructors
|
|
16
|
-
/**
|
|
17
|
-
* Constructor
|
|
18
|
-
* @param formlayout SacFormLayoutCommon to define scoped layout settings
|
|
19
|
-
* @param injector Injector for injecting services
|
|
20
|
-
* @param elementRef
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
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
|
-
|
|
102
|
-
|
|
103
|
-
this.
|
|
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
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFzZWRhdGV0aW1lY29udHJvbC5qcyIsInNvdXJjZVJvb3QiOiJDOi9EYXRlbi9qTmV0d29yay9jaC5qbmV0d29yay5hbmd1bGFyY29udHJvbHMtbmcxMC9jaC5qbmV0d29yay5zYWMtY29udHJvbHMvcHJvamVjdHMvc2FjLWNvbW1vbi9zcmMvIiwic291cmNlcyI6WyJjb21tb24vYmFzZWRhdGV0aW1lY29udHJvbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBRUwsU0FBUyxFQUNULFVBQVUsRUFDVixRQUFRLEVBQ1IsS0FBSyxHQUNOLE1BQU0sZUFBZSxDQUFDO0FBRXZCLE9BQU8sS0FBSyxPQUFPLE1BQU0sUUFBUSxDQUFDO0FBRWxDLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBRXBFLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0MsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDekQ7O0dBRUc7QUFDSCxNQUFNLE1BQU0sR0FBRyxPQUFPLENBQUMsU0FBUyxDQUFDLENBQUM7QUFDbEM7O0dBRUc7QUFFSCxNQUFNLE9BQWdCLHNCQUNwQixTQUFRLG1CQUF5QjtJQXVDakMsd0JBQXdCO0lBRXhCLHVCQUF1QjtJQUV2Qjs7Ozs7T0FLRztJQUNILFlBQ0UsVUFBK0IsRUFDL0IsUUFBa0IsRUFDUixVQUFzQjtRQUVoQyxLQUFLLENBQUMsVUFBVSxFQUFFLFFBQVEsQ0FBQyxDQUFDO1FBRmxCLGVBQVUsR0FBVixVQUFVLENBQVk7UUFqRGxDLHFCQUFxQjtRQUVyQjs7V0FFRztRQUNPLG1CQUFjLEdBQUcsRUFBRSxDQUFDO1FBRTlCOztXQUVHO1FBQ2EsZUFBVSxHQUFZLEtBQUssQ0FBQztRQUM1Qzs7V0FFRztRQUNhLGdCQUFXLEdBQVcsSUFBSSxDQUFDO1FBQzNDOztXQUVHO1FBQ2Esb0NBQStCLEdBQzdDLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyw2QkFB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QixJQUFJLENBQUMseUJBQXlCLEVBQzlCLElBQUksQ0FBQyxnQ0FBZ0MsQ0FDdEMsQ0FBQyxDQUFDLENBQUMsQ0FBQztTQUNOO1FBRUQsT0FBTyxLQUFLLENBQUM7SUFDZixDQUFDO0lBRUQ7O09BRUc7SUFDSSxVQUFVLENBQUMsS0FBb0I7UUFDcEMsSUFBSSxLQUFLLEtBQUssRUFBRSxJQUFJLEtBQUssS0FBSyxJQUFJLElBQUksS0FBSyxLQUFLLFNBQVMsRUFBRTtZQUN6RCxxRkFBcUY7WUFDckYsSUFBSSxDQUFDLGNBQWMsR0FBRyxFQUFFLENBQUM7WUFDekIsd0JBQXdCO1lBQ3hCLElBQUksQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDO1NBQ3BCO2FBQU07WUFDTCxJQUFJLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUMsTUFBTSxFQUFFLENBQUM7U0FDNUM7UUFFRCxLQUFLLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUNoQyxDQUFDO0lBZUQscUNBQXFDO0lBRXJDLDBCQUEwQjtJQUVsQixpQkFBaUI7UUFDdkIsbUlBQW1JO1FBQ25JLElBQUksSUFBSSxDQUFDLFNBQVMsRUFBRTtZQUNqQixJQUFJLENBQUMsU0FBeUMsQ0FBQyxvQkFBb0I7Z0JBQ2xFLElBQUksQ0FBQyx1QkFBdUIsRUFBRSxDQUFDO1NBQ2xDO0lBQ0gsQ0FBQzs7O1lBMUxGLFNBQVM7OztZQVhELG1CQUFtQjtZQU4xQixRQUFRO1lBRFIsVUFBVTs7O3lCQWlDVCxLQUFLOzBCQUlMLEtBQUs7OENBSUwsS0FBSztxREFLTCxLQUFLO3dDQUtMLEtBQUs7K0NBS0wsS0FBSzswQkE0QkwsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XHJcbiAgQWZ0ZXJWaWV3SW5pdCxcclxuICBEaXJlY3RpdmUsXHJcbiAgRWxlbWVudFJlZixcclxuICBJbmplY3RvcixcclxuICBJbnB1dCxcclxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgQWJzdHJhY3RDb250cm9sLCBWYWxpZGF0aW9uRXJyb3JzIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5pbXBvcnQgKiBhcyBtb21lbnRfIGZyb20gJ21vbWVudCc7XHJcbmltcG9ydCB7IE1vbWVudCB9IGZyb20gJ21vbWVudCc7XHJcbmltcG9ydCB7IFNhY0Zvcm1MYXlvdXRDb21tb24gfSBmcm9tICcuLi9jb250cm9scy9sYXlvdXQvZm9ybWxheW91dCc7XHJcbmltcG9ydCB7IElEYXRlVGltZUNvbnRyb2wgfSBmcm9tICcuLi9pbnRlcmZhY2VzL2lkYXRldGltZWNvbnRyb2wnO1xyXG5pbXBvcnQgeyBWYWxpZGF0aW9uIH0gZnJvbSAnLi4vdmFsaWRhdGlvbic7XHJcbmltcG9ydCB7IFNhY0Jhc2VNb2RlbENvbnRyb2wgfSBmcm9tICcuL2Jhc2Vtb2RlbGNvbnRyb2wnO1xyXG4vKipcclxuICogTW9tZW50XHJcbiAqL1xyXG5jb25zdCBtb21lbnQgPSBtb21lbnRfWydkZWZhdWx0J107XHJcbi8qKlxyXG4gKiBCYXNlIEtsYXNzZSBmw7xyIERhdGUvVGltZSBDb250cm9sc1xyXG4gKi9cclxuQERpcmVjdGl2ZSgpXHJcbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBTYWNCYXNlRGF0ZVRpbWVDb250cm9sXHJcbiAgZXh0ZW5kcyBTYWNCYXNlTW9kZWxDb250cm9sPERhdGU+XHJcbiAgaW1wbGVtZW50cyBBZnRlclZpZXdJbml0XHJcbntcclxuICAvLyAjcmVnaW9uIFByb3BlcnRpZXNcclxuXHJcbiAgLyoqXHJcbiAgICogZGFzIHByb3BlcnR5IGVudGhpZWx0IGRhcyBWYWx1ZSBhbHMgc3RyaW5nLiBEZWZhdWx0IGlzdCAnJ1xyXG4gICAqL1xyXG4gIHByb3RlY3RlZCBfdmFsdWVBc1N0cmluZyA9ICcnO1xyXG5cclxuICAvKipcclxuICAgKiBEZWZpbmllcnQgZGFzIENvbnRyb2wgYWxzIFJlcXVpcmVkXHJcbiAgICovXHJcbiAgQElucHV0KCkgcHVibGljIGlzcmVxdWlyZWQ6IGJvb2xlYW4gPSBmYWxzZTtcclxuICAvKipcclxuICAgKiBUZXh0Qm94IFBsYWNlaG9sZGVyXHJcbiAgICovXHJcbiAgQElucHV0KCkgcHVibGljIHBsYWNlaG9sZGVyOiBzdHJpbmcgPSBudWxsO1xyXG4gIC8qKlxyXG4gICAqIFJlc291cmNlIEtleSBmw7xyIFZhbGlkYXRpb24gTWVzc2FnZSBEYXRlVGltZUZvcm1hdCBiZWkgQ29udHJvbFxyXG4gICAqL1xyXG4gIEBJbnB1dCgpIHB1YmxpYyB2YWxpZGF0aW9ubWVzc2FnZWRhdGV0aW1lZm9ybWF0OiBzdHJpbmcgPVxyXG4gICAgdGhpcy52YWxpZGF0aW9uS2V5U2VydmljZS5WYWxpZGF0aW9uRXJyb3JEYXRldGltZUZvcm1hdDtcclxuICAvKipcclxuICAgKiBSZXNvdXJjZSBLZXkgZsO8ciBWYWxpZGF0aW9uIE1lc3NhZ2UgRGF0ZVRpbWVGb3JtYXQgaW4gVmFsaWRhdGlvbiBTdW1tYXJ5XHJcbiAgICovXHJcbiAgQElucHV0KCkgcHVibGljIHZhbGlkYXRpb25tZXNzYWdlZGF0ZXRpbWVmb3JtYXRzdW1tYXJ5OiBzdHJpbmcgPVxyXG4gICAgdGhpcy52YWxpZGF0aW9uS2V5U2VydmljZS5WYWxpZGF0aW9uRXJyb3JTdW1tYXJ5RGF0ZXRpbWVGb3JtYXQ7XHJcbiAgLyoqXHJcbiAgICogUmVzb3VyY2UgS2V5IGbDvHIgVmFsaWRhdGlvbiBNZXNzYWdlIFJlcXVpcmVkIGJlaSBDb250cm9sXHJcbiAgICovXHJcbiAgQElucHV0KCkgcHVibGljIHZhbGlkYXRpb25tZXNzYWdlcmVxdWlyZWQ6IHN0cmluZyA9XHJcbiAgICB0aGlzLnZhbGlkYXRpb25LZXlTZXJ2aWNlLlZhbGlkYXRpb25FcnJvclJlcXVpcmVkO1xyXG4gIC8qKlxyXG4gICAqIFJlc291cmNlIEtleSBmw7xyIFZhbGlkYXRpb24gTWVzc2FnZSBSZXF1aXJlZCBpbiBWYWxpZGF0aW9uIFN1bW1hcnlcclxuICAgKi9cclxuICBASW5wdXQoKSBwdWJsaWMgdmFsaWRhdGlvbm1lc3NhZ2VyZXF1aXJlZHN1bW1hcnk6IHN0cmluZyA9XHJcbiAgICB0aGlzLnZhbGlkYXRpb25LZXlTZXJ2aWNlLlZhbGlkYXRpb25FcnJvclN1bW1hcnlSZXF1aXJlZDtcclxuXHJcbiAgLy8gI2VuZHJlZ2lvbiBQcm9wZXJ0aWVzXHJcblxyXG4gIC8vICNyZWdpb24gQ29uc3RydWN0b3JzXHJcblxyXG4gIC8qKlxyXG4gICAqIENvbnN0cnVjdG9yXHJcbiAgICogQHBhcmFtIGZvcm1sYXlvdXQgU2FjRm9ybUxheW91dENvbW1vbiB0byBkZWZpbmUgc2NvcGVkIGxheW91dCBzZXR0aW5nc1xyXG4gICAqIEBwYXJhbSBpbmplY3RvciBJbmplY3RvciBmb3IgaW5qZWN0aW5nIHNlcnZpY2VzXHJcbiAgICogQHBhcmFtIGVsZW1lbnRSZWYgcmVmZXJlbmNlIHRvIGh0bWwgZWxlbWVudFxyXG4gICAqL1xyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgZm9ybWxheW91dDogU2FjRm9ybUxheW91dENvbW1vbixcclxuICAgIGluamVjdG9yOiBJbmplY3RvcixcclxuICAgIHByb3RlY3RlZCBlbGVtZW50UmVmOiBFbGVtZW50UmVmXHJcbiAgKSB7XHJcbiAgICBzdXBlcihmb3JtbGF5b3V0LCBpbmplY3Rvcik7XHJcbiAgfVxyXG5cclxuICAvLyAjZW5kcmVnaW9uIENvbnN0cnVjdG9yc1xyXG5cclxuICAvLyAjcmVnaW9uIFB1YmxpYyBHZXR0ZXJzIEFuZCBTZXR0ZXJzXHJcblxyXG4gIC8qKlxyXG4gICAqIERhcyBJbnB1dCBiZWtvbW10IGRhcyB2YWx1ZSB2b24gdHlwIHN0cmluZ1xyXG4gICAqL1xyXG4gIEBJbnB1dCgpXHJcbiAgcHVibGljIHNldCB2YWx1ZXN0cmluZyh2OiBzdHJpbmcpIHtcclxuICAgIHRoaXMuX3ZhbHVlQXNTdHJpbmcgPSB2O1xyXG4gICAgbGV0IGRhdGU6IE1vbWVudCA9IG1vbWVudCh2LCBbdGhpcy5HZXREYXRlVGltZUZvcm1hdFN0cmluZygpXSwgdHJ1ZSk7XHJcblxyXG4gICAgZGF0ZSA9IHRoaXMuTW9kaWZ5UGFyc2VkRGF0ZVRpbWVWYWx1ZShkYXRlKS51dGMoKTtcclxuXHJcbiAgICBpZiAoZGF0ZS5pc1ZhbGlkKCkpIHtcclxuICAgICAgdGhpcy52YWx1ZSA9IGRhdGUudG9EYXRlKCk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLnZhbHVlID0gbnVsbDtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIGdldHRlciBmw7xyIHZhbHVlc3RyaW5nXHJcbiAgICovXHJcbiAgcHVibGljIGdldCB2YWx1ZXN0cmluZygpOiBzdHJpbmcge1xyXG4gICAgaWYgKHRoaXMudmFsdWUgPT09IG51bGwpIHtcclxuICAgICAgcmV0dXJuIHRoaXMuX3ZhbHVlQXNTdHJpbmc7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICBjb25zdCBkYXRlID0gbW9tZW50LnV0Yyh0aGlzLnZhbHVlKTtcclxuICAgICAgcmV0dXJuIGRhdGUubG9jYWwoKS5mb3JtYXQodGhpcy5HZXREYXRlVGltZUZvcm1hdFN0cmluZygpKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIC8vICNlbmRyZWdpb24gUHVibGljIEdldHRlcnMgQW5kIFNldHRlcnNcclxuXHJcbiAgLy8gI3JlZ2lvbiBQdWJsaWMgTWV0aG9kc1xyXG5cclxuICAvKipcclxuICAgKiBKU09OIERhdGUgU3RyaW5nIGluIGVpbiBVVEMgRGF0ZVRpbWUgT2JqZWN0IGtvbnZlcnRpZXJlbiwgd2VsY2hlcyB2b20gQ29udHJvbCB2ZXJ3ZW5kZXRlIHdlcmRlbiBrYW5uXHJcbiAgICovXHJcbiAgcHVibGljIGdldERhdGUodGltZXN0YW1wKSB7XHJcbiAgICBjb25zdCBkYXRlID0gbmV3IERhdGUodGltZXN0YW1wKTtcclxuICAgIGNvbnN0IHllYXIgPSBkYXRlLmdldFVUQ0Z1bGxZZWFyKCk7XHJcbiAgICBjb25zdCBtb250aCA9IGRhdGUuZ2V0VVRDTW9udGgoKTtcclxuICAgIGNvbnN0IGRheSA9IGRhdGUuZ2V0VVRDRGF0ZSgpO1xyXG4gICAgY29uc3QgaG91cnMgPSBkYXRlLmdldFVUQ0hvdXJzKCk7XHJcbiAgICBjb25zdCBtaW51dGVzID0gZGF0ZS5nZXRVVENNaW51dGVzKCk7XHJcbiAgICBjb25zdCBzZWNvbmRzID0gZGF0ZS5nZXRVVENTZWNvbmRzKCk7XHJcblxyXG4gICAgcmV0dXJuIG1vbWVudChEYXRlLlVUQyh5ZWFyLCBtb250aCwgZGF5LCBob3VycywgbWludXRlcywgc2Vjb25kcykpO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogSW5pdCBFdmVudFxyXG4gICAqL1xyXG4gIHB1YmxpYyBuZ0FmdGVyVmlld0luaXQoKTogdm9pZCB7XHJcbiAgICBzdXBlci5uZ0FmdGVyVmlld0luaXQoKTtcclxuICAgIHRoaXMuU2V0RGF0ZVRpbWVGb3JtYXQoKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIHNldHp0IGRhcyB2YWx1ZSB2b24gdHlwIHN0cmluZyB6dSBwcm9wZXJ0eSB2YWx1ZXN0cmluZ1xyXG4gICAqL1xyXG4gIHB1YmxpYyBzZXRWYWx1ZVN0cmluZyh2OiBzdHJpbmcpIHtcclxuICAgIHRoaXMudmFsdWVzdHJpbmcgPSB2O1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogVmFsaWRhdG9yXHJcbiAgICovXHJcbiAgcHVibGljIHZhbGlkYXRlRGF0YShjOiBBYnN0cmFjdENvbnRyb2wpOiBWYWxpZGF0aW9uRXJyb3JzIHwgbnVsbCB7XHJcbiAgICBsZXQgZXJyb3I6IFZhbGlkYXRpb25FcnJvcnMgfCBudWxsID0gbnVsbDtcclxuXHJcbiAgICBlcnJvciA9IFZhbGlkYXRpb24uaXNWYWxpZERhdGUoXHJcbiAgICAgIHRoaXMudmFsaWRhdGlvbm1lc3NhZ2VkYXRldGltZWZvcm1hdCxcclxuICAgICAgdGhpcy52YWxpZGF0aW9ubWVzc2FnZWRhdGV0aW1lZm9ybWF0c3VtbWFyeVxyXG4gICAgKShjKTtcclxuXHJcbiAgICBpZiAodGhpcy5pc3JlcXVpcmVkKSB7XHJcbiAgICAgIGVycm9yID0gVmFsaWRhdGlvbi5yZXF1aXJlZChcclxuICAgICAgICB0aGlzLnZhbGlkYXRpb25tZXNzYWdlcmVxdWlyZWQsXHJcbiAgICAgICAgdGhpcy52YWxpZGF0aW9ubWVzc2FnZXJlcXVpcmVkc3VtbWFyeVxyXG4gICAgICApKGMpO1xyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiBlcnJvcjtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIE92ZXJ3cml0ZSBXcml0ZVZhbHVlIHRvIFNldCBjb3JyZWN0IERhdGUgT2JqZWN0XHJcbiAgICovXHJcbiAgcHVibGljIHdyaXRlVmFsdWUodmFsdWU6IERhdGUgfCBzdHJpbmcpIHtcclxuICAgIGlmICh2YWx1ZSA9PT0gJycgfHwgdmFsdWUgPT09IG51bGwgfHwgdmFsdWUgPT09IHVuZGVmaW5lZCkge1xyXG4gICAgICAvLyBSZXNldCBWYWx1ZSBTdHJpbmcsIGRhbWl0IGJlaW0gVXBkYXRlIGRlcyBNb2RlbHMgYXVjaCBkYXMgSW5wdXQgRmVsZCBnZWxlZXJ0IHdpcmQuXHJcbiAgICAgIHRoaXMuX3ZhbHVlQXNTdHJpbmcgPSAnJztcclxuICAgICAgLy8gU2V0IEludGVybmFsIFByb3BlcnR5XHJcbiAgICAgIHRoaXMuX3ZhbHVlID0gbnVsbDtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMuX3ZhbHVlID0gdGhpcy5nZXREYXRlKHZhbHVlKS50b0RhdGUoKTtcclxuICAgIH1cclxuXHJcbiAgICBzdXBlci53cml0ZVZhbHVlKHRoaXMuX3ZhbHVlKTtcclxuICB9XHJcblxyXG4gIC8vICNlbmRyZWdpb24gUHVibGljIE1ldGhvZHNcclxuXHJcbiAgLy8gI3JlZ2lvbiBQdWJsaWMgQWJzdHJhY3QgTWV0aG9kc1xyXG5cclxuICAvKipcclxuICAgKiBEaWUgbWV0aG9kZSByZXR1cm5zIGRhdGVUaW1lIGluIHN0cmluZ1xyXG4gICAqL1xyXG4gIHB1YmxpYyBhYnN0cmFjdCBHZXREYXRlVGltZUZvcm1hdFN0cmluZygpOiBzdHJpbmc7XHJcbiAgLyoqXHJcbiAgICogRGllIG1ldGhvZGUgbW9kaWZpemllcnQgZGFzIGVpbmdlZ2ViZW5lIFZhbHVlIHZvbiB0eXAgTW9tZW50XHJcbiAgICovXHJcbiAgcHVibGljIGFic3RyYWN0IE1vZGlmeVBhcnNlZERhdGVUaW1lVmFsdWUodjogTW9tZW50KTogTW9tZW50O1xyXG5cclxuICAvLyAjZW5kcmVnaW9uIFB1YmxpYyBBYnN0cmFjdCBNZXRob2RzXHJcblxyXG4gIC8vICNyZWdpb24gUHJpdmF0ZSBNZXRob2RzXHJcblxyXG4gIHByaXZhdGUgU2V0RGF0ZVRpbWVGb3JtYXQoKTogdm9pZCB7XHJcbiAgICAvLyBIQUNLOiBBZGQgYWRkaXRpb24gcHJvcGVydHkgdG8gRm9ybUNvbnRyb2wuIENhbiBiZSBmaXhlZCBpZiBzb2x1dGlvbiBmb3IgdGlja2V0OiBodHRwczovL2dpdGh1Yi5jb20vYW5ndWxhci9hbmd1bGFyL2lzc3Vlcy8xOTY4NlxyXG4gICAgaWYgKHRoaXMubmdDb250cm9sKSB7XHJcbiAgICAgICh0aGlzLm5nQ29udHJvbCBhcyB1bmtub3duIGFzIElEYXRlVGltZUNvbnRyb2wpLmRhdGV0aW1lZm9ybWF0c3RyaW5nID1cclxuICAgICAgICB0aGlzLkdldERhdGVUaW1lRm9ybWF0U3RyaW5nKCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAvLyAjZW5kcmVnaW9uIFByaXZhdGUgTWV0aG9kc1xyXG59XHJcbiJdfQ==
|
|
1
|
+
import { SacFormLayoutCommon } from '../controls/layout/formlayout';
|
|
2
|
+
import { TooltipPosition } from '../utilities/enums';
|
|
3
|
+
import { PopUpHelper } from '../utilities/popuphelper';
|
|
4
|
+
import { Validation } from '../validation';
|
|
5
|
+
import { CreateValidationError } from '../validation/validationerrorcreator';
|
|
6
|
+
import { SacBaseModelControl } from './basemodelcontrol';
|
|
7
|
+
import { ChangeDetectorRef, Directive, ElementRef, Injector, Input, ViewChild } from '@angular/core';
|
|
8
|
+
import { IMaskDirective } from 'angular-imask';
|
|
9
|
+
import * as moment_ from 'moment';
|
|
10
|
+
/**
|
|
11
|
+
* Base class for Date/Time controls
|
|
12
|
+
*/
|
|
13
|
+
export class SacBaseDateTimeControl extends SacBaseModelControl {
|
|
14
|
+
// #endregion Properties
|
|
15
|
+
// #region Constructors
|
|
16
|
+
/**
|
|
17
|
+
* Constructor
|
|
18
|
+
* @param formlayout SacFormLayoutCommon to define scoped layout settings
|
|
19
|
+
* @param injector Injector for injecting services
|
|
20
|
+
* @param elementRef Reference to html element
|
|
21
|
+
* @param cdRef Change detector reference for updating component view
|
|
22
|
+
*/
|
|
23
|
+
constructor(formlayout, injector, elementRef, cdRef) {
|
|
24
|
+
super(formlayout, injector);
|
|
25
|
+
this.elementRef = elementRef;
|
|
26
|
+
this.cdRef = cdRef;
|
|
27
|
+
// #region Properties
|
|
28
|
+
/**
|
|
29
|
+
* Helper class to display tooltips in the correct position
|
|
30
|
+
*/
|
|
31
|
+
this.popupHelper = new PopUpHelper();
|
|
32
|
+
/**
|
|
33
|
+
* This property contains the value as a string. Default is ''
|
|
34
|
+
*/
|
|
35
|
+
this._valueAsString = '';
|
|
36
|
+
/**
|
|
37
|
+
* Property for enum in Angular HTML template
|
|
38
|
+
*/
|
|
39
|
+
this.TooltipPosition = TooltipPosition;
|
|
40
|
+
/**
|
|
41
|
+
* Defines whether the date selector is displayed
|
|
42
|
+
*/
|
|
43
|
+
this._showselector = false;
|
|
44
|
+
/**
|
|
45
|
+
* Defines the control as required
|
|
46
|
+
*/
|
|
47
|
+
this.isrequired = false;
|
|
48
|
+
/**
|
|
49
|
+
* Moment JS Instance
|
|
50
|
+
*/
|
|
51
|
+
this.moment = moment_['default'];
|
|
52
|
+
/**
|
|
53
|
+
* Arrow Item of Picker Element. Required to set the position of arrow correctly
|
|
54
|
+
*/
|
|
55
|
+
this.pickerPosition = TooltipPosition;
|
|
56
|
+
/**
|
|
57
|
+
* TextBox Placeholder
|
|
58
|
+
*/
|
|
59
|
+
this.placeholder = null;
|
|
60
|
+
/**
|
|
61
|
+
* Position of the picker arrow at the left
|
|
62
|
+
*/
|
|
63
|
+
this.posArrowLeft = null;
|
|
64
|
+
/**
|
|
65
|
+
* Position of the picker arrow at the top
|
|
66
|
+
*/
|
|
67
|
+
this.posArrowTop = null;
|
|
68
|
+
/**
|
|
69
|
+
* Position of the picker at the left
|
|
70
|
+
*/
|
|
71
|
+
this.posPopupLeft = 0;
|
|
72
|
+
/**
|
|
73
|
+
* Position of the picker at the top
|
|
74
|
+
*/
|
|
75
|
+
this.posPopupTop = 0;
|
|
76
|
+
/**
|
|
77
|
+
* Position of the datetime picker. Values: left|top|right|bottom|auto
|
|
78
|
+
*
|
|
79
|
+
* Value 'auto' can be combined with another value.
|
|
80
|
+
*/
|
|
81
|
+
this.position = 'bottomend|topend';
|
|
82
|
+
/**
|
|
83
|
+
* Resource Key for Validation Message DateTimeFormat at Control
|
|
84
|
+
*/
|
|
85
|
+
this.validationmessagedatetimeformat = this.validationKeyService.ValidationErrorDatetimeFormat;
|
|
86
|
+
/**
|
|
87
|
+
* Resource Key for Validation Message DateTimeFormat in Validation Summary
|
|
88
|
+
*/
|
|
89
|
+
this.validationmessagedatetimeformatsummary = this.validationKeyService.ValidationErrorSummaryDatetimeFormat;
|
|
90
|
+
/**
|
|
91
|
+
* Resource Key for Validation Message Required at Control
|
|
92
|
+
*/
|
|
93
|
+
this.validationmessagerequired = this.validationKeyService.ValidationErrorRequired;
|
|
94
|
+
/**
|
|
95
|
+
* Resource Key for Validation Message Required in Validation Summary
|
|
96
|
+
*/
|
|
97
|
+
this.validationmessagerequiredsummary = this.validationKeyService.ValidationErrorSummaryRequired;
|
|
98
|
+
// #endregion Protected Methods
|
|
99
|
+
// #region Private Methods
|
|
100
|
+
/**
|
|
101
|
+
* method if content has changed and proportions need to be reset in the UI.
|
|
102
|
+
*/
|
|
103
|
+
this.onContentChange = () => {
|
|
104
|
+
// Do nothing if is not visible
|
|
105
|
+
if (!this._showselector) {
|
|
106
|
+
return;
|
|
107
|
+
}
|
|
108
|
+
setTimeout(() => {
|
|
109
|
+
this.getPositionLeft();
|
|
110
|
+
this.getPositionTop();
|
|
111
|
+
});
|
|
112
|
+
};
|
|
113
|
+
}
|
|
114
|
+
// #endregion Constructors
|
|
115
|
+
// #region Public Getters And Setters
|
|
116
|
+
/**
|
|
117
|
+
* Setter for the name of the container for the tooltip. Required because the tooltip can be hidden via ngIf.
|
|
118
|
+
*/
|
|
119
|
+
set picker(picker) {
|
|
120
|
+
if (picker !== undefined) {
|
|
121
|
+
document.body.appendChild(picker.nativeElement);
|
|
122
|
+
}
|
|
123
|
+
this.pickercontainer = picker;
|
|
124
|
+
this.onContentChange();
|
|
125
|
+
this.cdRef.detectChanges();
|
|
126
|
+
}
|
|
127
|
+
get tooltop() {
|
|
128
|
+
return this.pickercontainer;
|
|
129
|
+
}
|
|
130
|
+
/**
|
|
131
|
+
* Getter for valuestring
|
|
132
|
+
*/
|
|
133
|
+
get valuestring() {
|
|
134
|
+
if (this.value === null) {
|
|
135
|
+
return this._valueAsString;
|
|
136
|
+
}
|
|
137
|
+
else {
|
|
138
|
+
const date = this.moment.utc(this.value);
|
|
139
|
+
return date.local().format(this.GetDateTimeFormatString());
|
|
140
|
+
}
|
|
141
|
+
}
|
|
142
|
+
/**
|
|
143
|
+
* The input receives the value of type string
|
|
144
|
+
*/
|
|
145
|
+
set valuestring(v) {
|
|
146
|
+
this._valueAsString = v;
|
|
147
|
+
let date = this.moment(v, [this.GetDateTimeFormatString()], true);
|
|
148
|
+
date = this.ModifyParsedDateTimeValue(date).utc();
|
|
149
|
+
if (date.isValid()) {
|
|
150
|
+
this.value = date.toDate();
|
|
151
|
+
}
|
|
152
|
+
else {
|
|
153
|
+
this.value = null;
|
|
154
|
+
}
|
|
155
|
+
// update imaks reference
|
|
156
|
+
this.cdRef.detectChanges();
|
|
157
|
+
this.iMask.maskRef.updateValue();
|
|
158
|
+
this.iMask.maskRef.updateControl();
|
|
159
|
+
}
|
|
160
|
+
/**
|
|
161
|
+
* Returns the position of the tooltip
|
|
162
|
+
*/
|
|
163
|
+
GetPickerPosition() {
|
|
164
|
+
return this.popupHelper.getDisplayPosition(this.pickerbutton, this.pickercontainer, this.getArrowWidth(), this.getArrowHeight(), this.position, false);
|
|
165
|
+
}
|
|
166
|
+
/**
|
|
167
|
+
* Converts a JSON date string into a UTC DateTime object that can be used by the control
|
|
168
|
+
* @param timestamp Date timestamp to convert
|
|
169
|
+
* @returns Moment object in UTC
|
|
170
|
+
*/
|
|
171
|
+
getDate(timestamp) {
|
|
172
|
+
const date = new Date(timestamp);
|
|
173
|
+
const year = date.getUTCFullYear();
|
|
174
|
+
const month = date.getUTCMonth();
|
|
175
|
+
const day = date.getUTCDate();
|
|
176
|
+
const hours = date.getUTCHours();
|
|
177
|
+
const minutes = date.getUTCMinutes();
|
|
178
|
+
const seconds = date.getUTCSeconds();
|
|
179
|
+
return this.moment(Date.UTC(year, month, day, hours, minutes, seconds));
|
|
180
|
+
}
|
|
181
|
+
/**
|
|
182
|
+
* Calculates the height of the tooltip
|
|
183
|
+
*/
|
|
184
|
+
getPickerHeight() {
|
|
185
|
+
return this.popupHelper.getPopupHeight(this.pickercontainer);
|
|
186
|
+
}
|
|
187
|
+
/**
|
|
188
|
+
* Calculates the width of the picker
|
|
189
|
+
*/
|
|
190
|
+
getPickerWidth() {
|
|
191
|
+
return this.popupHelper.getPopupWidth(this.pickercontainer);
|
|
192
|
+
}
|
|
193
|
+
/**
|
|
194
|
+
* Clean up resources when the control is destroyed.
|
|
195
|
+
*
|
|
196
|
+
* Removes the picker element from the DOM if visible and unregisters global resize/scroll listeners.
|
|
197
|
+
*/
|
|
198
|
+
ngOnDestroy() {
|
|
199
|
+
var _a;
|
|
200
|
+
// Remove Picker if is visible
|
|
201
|
+
if (this._showselector && ((_a = this.pickercontainer) === null || _a === void 0 ? void 0 : _a.nativeElement)) {
|
|
202
|
+
document.body.removeChild(this.pickercontainer.nativeElement);
|
|
203
|
+
}
|
|
204
|
+
// Unregister Event Listener
|
|
205
|
+
window.removeEventListener('scroll', this.onContentChange, true);
|
|
206
|
+
window.removeEventListener('resize', this.onContentChange, true);
|
|
207
|
+
}
|
|
208
|
+
/**
|
|
209
|
+
* Init Event
|
|
210
|
+
*/
|
|
211
|
+
ngOnInit() {
|
|
212
|
+
super.ngOnInit();
|
|
213
|
+
this.setDateTimeFormat();
|
|
214
|
+
// Register Event Listener
|
|
215
|
+
window.addEventListener('scroll', this.onContentChange, true);
|
|
216
|
+
window.addEventListener('resize', this.onContentChange, true);
|
|
217
|
+
}
|
|
218
|
+
/**
|
|
219
|
+
* Sets the value of type string to the property valuestring
|
|
220
|
+
* @param v String value to set
|
|
221
|
+
*/
|
|
222
|
+
setValueString(v) {
|
|
223
|
+
this.valuestring = v;
|
|
224
|
+
}
|
|
225
|
+
/**
|
|
226
|
+
* Validates the datetime control value format and required status.
|
|
227
|
+
*
|
|
228
|
+
* @param c AbstractControl instance to validate.
|
|
229
|
+
* @returns ValidationErrors if invalid, otherwise null.
|
|
230
|
+
*/
|
|
231
|
+
validateData(c) {
|
|
232
|
+
let error = null;
|
|
233
|
+
if (this.valuestring !== null && this.valuestring.indexOf('_') >= 0) {
|
|
234
|
+
error = CreateValidationError('invalidtype', this.validationmessagedatetimeformat, this.validationmessagedatetimeformatsummary);
|
|
235
|
+
if (error) {
|
|
236
|
+
return error;
|
|
237
|
+
}
|
|
238
|
+
}
|
|
239
|
+
error = Validation.isValidDate(this.validationmessagedatetimeformat, this.validationmessagedatetimeformatsummary)(c);
|
|
240
|
+
if (this.isrequired) {
|
|
241
|
+
error = Validation.required(this.validationmessagerequired, this.validationmessagerequiredsummary)(c);
|
|
242
|
+
}
|
|
243
|
+
return error;
|
|
244
|
+
}
|
|
245
|
+
/**
|
|
246
|
+
* Overwrite WriteValue to Set correct Date Object
|
|
247
|
+
* @param value Date or string value to write to the control
|
|
248
|
+
*/
|
|
249
|
+
writeValue(value) {
|
|
250
|
+
if (value === '' || value === null || value === undefined) {
|
|
251
|
+
// Reset value string so that when the model is updated the input field is also cleared.
|
|
252
|
+
this._valueAsString = '';
|
|
253
|
+
// Set Internal Property
|
|
254
|
+
this._value = null;
|
|
255
|
+
}
|
|
256
|
+
else {
|
|
257
|
+
this._value = this.getDate(value).toDate();
|
|
258
|
+
}
|
|
259
|
+
super.writeValue(this._value);
|
|
260
|
+
// force detect changes and update imask directive
|
|
261
|
+
this.cdRef.detectChanges();
|
|
262
|
+
this.iMask.maskRef.updateValue();
|
|
263
|
+
}
|
|
264
|
+
// #endregion Public Methods
|
|
265
|
+
// #region Protected Methods
|
|
266
|
+
/**
|
|
267
|
+
* Gets the height of the arrow element
|
|
268
|
+
* @returns The height in pixels of the arrow element, or 0 if not present
|
|
269
|
+
*/
|
|
270
|
+
getArrowHeight() {
|
|
271
|
+
return this.pickerarrow ? this.pickerarrow.nativeElement.offsetHeight : 0;
|
|
272
|
+
}
|
|
273
|
+
/**
|
|
274
|
+
* Gets the width of the arrow element
|
|
275
|
+
* @returns The width in pixels of the arrow element, or 0 if not present
|
|
276
|
+
*/
|
|
277
|
+
getArrowWidth() {
|
|
278
|
+
return this.pickerarrow ? this.pickerarrow.nativeElement.offsetWidth : 0;
|
|
279
|
+
}
|
|
280
|
+
/**
|
|
281
|
+
* Calculates the position of the tooltip from links
|
|
282
|
+
*/
|
|
283
|
+
getPositionLeft() {
|
|
284
|
+
const value = this.popupHelper.getPositionLeft(this.pickerbutton, this.pickercontainer, this.elementRef, this.getArrowWidth(), this.getArrowHeight(), this.position, false);
|
|
285
|
+
// Ensure that pop-ups never appear outside the visible area on the left
|
|
286
|
+
if (value < 0) {
|
|
287
|
+
this.posPopupLeft = 5;
|
|
288
|
+
}
|
|
289
|
+
else {
|
|
290
|
+
this.posPopupLeft = value;
|
|
291
|
+
}
|
|
292
|
+
switch (this.GetPickerPosition()) {
|
|
293
|
+
case TooltipPosition.top:
|
|
294
|
+
case TooltipPosition.bottom:
|
|
295
|
+
this.posArrowLeft = this.getPickerWidth() / 2 - -this.getArrowWidth();
|
|
296
|
+
break;
|
|
297
|
+
case TooltipPosition.topend:
|
|
298
|
+
case TooltipPosition.bottomend:
|
|
299
|
+
this.posArrowLeft =
|
|
300
|
+
this.getPickerWidth() -
|
|
301
|
+
this.getArrowWidth() / 2 -
|
|
302
|
+
this.popupHelper.getContainerWidth(this.pickerbutton, false) / 2;
|
|
303
|
+
// Correction by Arrow if popup is outside the left margin
|
|
304
|
+
if (value < 0) {
|
|
305
|
+
this.posArrowLeft -= value * -1 + 5;
|
|
306
|
+
}
|
|
307
|
+
break;
|
|
308
|
+
default:
|
|
309
|
+
this.posArrowLeft = null;
|
|
310
|
+
break;
|
|
311
|
+
}
|
|
312
|
+
return value;
|
|
313
|
+
}
|
|
314
|
+
/**
|
|
315
|
+
* Calculates the position of the tooltip from the top
|
|
316
|
+
*/
|
|
317
|
+
getPositionTop() {
|
|
318
|
+
const value = this.popupHelper.getPositionTop(this.pickerbutton, this.pickercontainer, this.elementRef, this.getArrowWidth(), this.getArrowHeight(), this.position, false);
|
|
319
|
+
this.posPopupTop = value;
|
|
320
|
+
switch (this.GetPickerPosition()) {
|
|
321
|
+
case TooltipPosition.left:
|
|
322
|
+
case TooltipPosition.right:
|
|
323
|
+
this.posArrowTop = this.getPickerHeight() / 2 - 6.5;
|
|
324
|
+
break;
|
|
325
|
+
default:
|
|
326
|
+
this.posArrowTop = null;
|
|
327
|
+
break;
|
|
328
|
+
}
|
|
329
|
+
return value;
|
|
330
|
+
}
|
|
331
|
+
/**
|
|
332
|
+
* Sets the date-time format string from the configured format property
|
|
333
|
+
*/
|
|
334
|
+
setDateTimeFormat() {
|
|
335
|
+
// HACK: Add addition property to FormControl. Can be fixed if solution for ticket: https://github.com/angular/angular/issues/19686
|
|
336
|
+
if (this.ngControl) {
|
|
337
|
+
this.ngControl.datetimeformatstring = this.GetDateTimeFormatString();
|
|
338
|
+
}
|
|
339
|
+
}
|
|
340
|
+
}
|
|
341
|
+
SacBaseDateTimeControl.decorators = [
|
|
342
|
+
{ type: Directive }
|
|
343
|
+
];
|
|
344
|
+
SacBaseDateTimeControl.ctorParameters = () => [
|
|
345
|
+
{ type: SacFormLayoutCommon },
|
|
346
|
+
{ type: Injector },
|
|
347
|
+
{ type: ElementRef },
|
|
348
|
+
{ type: ChangeDetectorRef }
|
|
349
|
+
];
|
|
350
|
+
SacBaseDateTimeControl.propDecorators = {
|
|
351
|
+
iMask: [{ type: ViewChild, args: [IMaskDirective, { static: false },] }],
|
|
352
|
+
isrequired: [{ type: Input }],
|
|
353
|
+
pickerarrow: [{ type: ViewChild, args: ['pickerarrow', { static: false },] }],
|
|
354
|
+
pickerbutton: [{ type: ViewChild, args: ['pickerbutton', { static: true },] }],
|
|
355
|
+
placeholder: [{ type: Input }],
|
|
356
|
+
position: [{ type: Input }],
|
|
357
|
+
validationmessagedatetimeformat: [{ type: Input }],
|
|
358
|
+
validationmessagedatetimeformatsummary: [{ type: Input }],
|
|
359
|
+
validationmessagerequired: [{ type: Input }],
|
|
360
|
+
validationmessagerequiredsummary: [{ type: Input }],
|
|
361
|
+
picker: [{ type: ViewChild, args: ['picker', { static: false },] }],
|
|
362
|
+
valuestring: [{ type: Input }]
|
|
363
|
+
};
|
|
364
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFzZWRhdGV0aW1lY29udHJvbC5qcyIsInNvdXJjZVJvb3QiOiIvaG9tZS9ydW5uZXIvd29yay9zaW1wbGVhbmd1bGFyY29udHJvbHMvc2ltcGxlYW5ndWxhcmNvbnRyb2xzL2NoLmpuZXR3b3JrLnNhYy1jb250cm9scy9wcm9qZWN0cy9zYWMtY29tbW9uL3NyYy8iLCJzb3VyY2VzIjpbImNvbW1vbi9iYXNlZGF0ZXRpbWVjb250cm9sLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBRXBFLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUNyRCxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDdkQsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzQyxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxzQ0FBc0MsQ0FBQztBQUM3RSxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUN6RCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsU0FBUyxFQUFFLFVBQVUsRUFBRSxRQUFRLEVBQUUsS0FBSyxFQUFxQixTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFeEgsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMvQyxPQUFPLEtBQUssT0FBTyxNQUFNLFFBQVEsQ0FBQztBQUVsQzs7R0FFRztBQUVILE1BQU0sT0FBZ0Isc0JBQXVCLFNBQVEsbUJBQXlCO0lBbUgxRSx3QkFBd0I7SUFFeEIsdUJBQXVCO0lBRXZCOzs7Ozs7T0FNRztJQUNILFlBQ0ksVUFBK0IsRUFDL0IsUUFBa0IsRUFDUixVQUFzQixFQUNmLEtBQXdCO1FBRXpDLEtBQUssQ0FBQyxVQUFVLEVBQUUsUUFBUSxDQUFDLENBQUM7UUFIbEIsZUFBVSxHQUFWLFVBQVUsQ0FBWTtRQUNmLFVBQUssR0FBTCxLQUFLLENB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b24gfSBmcm9tICcuLi9jb250cm9scy9sYXlvdXQvZm9ybWxheW91dCc7XG5pbXBvcnQgeyBJRGF0ZVRpbWVDb250cm9sIH0gZnJvbSAnLi4vaW50ZXJmYWNlcy9pZGF0ZXRpbWVjb250cm9sJztcbmltcG9ydCB7IFRvb2x0aXBQb3NpdGlvbiB9IGZyb20gJy4uL3V0aWxpdGllcy9lbnVtcyc7XG5pbXBvcnQgeyBQb3BVcEhlbHBlciB9IGZyb20gJy4uL3V0aWxpdGllcy9wb3B1cGhlbHBlcic7XG5pbXBvcnQgeyBWYWxpZGF0aW9uIH0gZnJvbSAnLi4vdmFsaWRhdGlvbic7XG5pbXBvcnQgeyBDcmVhdGVWYWxpZGF0aW9uRXJyb3IgfSBmcm9tICcuLi92YWxpZGF0aW9uL3ZhbGlkYXRpb25lcnJvcmNyZWF0b3InO1xuaW1wb3J0IHsgU2FjQmFzZU1vZGVsQ29udHJvbCB9IGZyb20gJy4vYmFzZW1vZGVsY29udHJvbCc7XG5pbXBvcnQgeyBDaGFuZ2VEZXRlY3RvclJlZiwgRGlyZWN0aXZlLCBFbGVtZW50UmVmLCBJbmplY3RvciwgSW5wdXQsIE9uRGVzdHJveSwgT25Jbml0LCBWaWV3Q2hpbGQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEFic3RyYWN0Q29udHJvbCwgVmFsaWRhdGlvbkVycm9ycyB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IElNYXNrRGlyZWN0aXZlIH0gZnJvbSAnYW5ndWxhci1pbWFzayc7XG5pbXBvcnQgKiBhcyBtb21lbnRfIGZyb20gJ21vbWVudCc7XG5cbi8qKlxuICogQmFzZSBjbGFzcyBmb3IgRGF0ZS9UaW1lIGNvbnRyb2xzXG4gKi9cbkBEaXJlY3RpdmUoKVxuZXhwb3J0IGFic3RyYWN0IGNsYXNzIFNhY0Jhc2VEYXRlVGltZUNvbnRyb2wgZXh0ZW5kcyBTYWNCYXNlTW9kZWxDb250cm9sPERhdGU+IGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3kge1xuICAgIC8vICNyZWdpb24gUHJvcGVydGllc1xuXG4gICAgLyoqXG4gICAgICogSGVscGVyIGNsYXNzIHRvIGRpc3BsYXkgdG9vbHRpcHMgaW4gdGhlIGNvcnJlY3QgcG9zaXRpb25cbiAgICAgKi9cbiAgICBwcml2YXRlIHJlYWRvbmx5IHBvcHVwSGVscGVyOiBQb3BVcEhlbHBlciA9IG5ldyBQb3BVcEhlbHBlcigpO1xuXG4gICAgLyoqXG4gICAgICogVGhpcyBwcm9wZXJ0eSBjb250YWlucyB0aGUgdmFsdWUgYXMgYSBzdHJpbmcuIERlZmF1bHQgaXMgJydcbiAgICAgKi9cbiAgICBwcm90ZWN0ZWQgX3ZhbHVlQXNTdHJpbmcgPSAnJztcblxuICAgIC8qKlxuICAgICAqIENvbnRhaW5lcnMgZm9yIHRoZSBkYXRldGltZSBwaWNrZXJcbiAgICAgKi9cbiAgICBwcm90ZWN0ZWQgcGlja2VyY29udGFpbmVyOiBFbGVtZW50UmVmPEhUTUxFbGVtZW50PjtcblxuICAgIC8qKlxuICAgICAqIFByb3BlcnR5IGZvciBlbnVtIGluIEFuZ3VsYXIgSFRNTCB0ZW1wbGF0ZVxuICAgICAqL1xuICAgIHB1YmxpYyBUb29sdGlwUG9zaXRpb24gPSBUb29sdGlwUG9zaXRpb247XG5cbiAgICAvKipcbiAgICAgKiBEZWZpbmVzIHdoZXRoZXIgdGhlIGRhdGUgc2VsZWN0b3IgaXMgZGlzcGxheWVkXG4gICAgICovXG4gICAgcHVibGljIF9zaG93c2VsZWN0b3IgPSBmYWxzZTtcblxuICAgIC8qKlxuICAgICAqIFJlZmVyZW5jZSB0byBpbWFzayBkaXJlY3RpdmUgaW4gYW55IGRhdGV0aW1lIGNvbnRyb2xzXG4gICAgICovXG4gICAgQFZpZXdDaGlsZChJTWFza0RpcmVjdGl2ZSwgeyBzdGF0aWM6IGZhbHNlIH0pXG4gICAgcHVibGljIGlNYXNrOiBJTWFza0RpcmVjdGl2ZTxhbnk+O1xuXG4gICAgLyoqXG4gICAgICogRGVmaW5lcyB0aGUgY29udHJvbCBhcyByZXF1aXJlZFxuICAgICAqL1xuICAgIEBJbnB1dCgpIHB1YmxpYyBpc3JlcXVpcmVkID0gZmFsc2U7XG5cbiAgICAvKipcbiAgICAgKiBNb21lbnQgSlMgSW5zdGFuY2VcbiAgICAgKi9cbiAgICBwdWJsaWMgbW9tZW50ID0gbW9tZW50X1snZGVmYXVsdCddO1xuXG4gICAgLyoqXG4gICAgICogQXJyb3cgSXRlbSBvZiBQaWNrZXIgRWxlbWVudC4gUmVxdWlyZWQgdG8gc2V0IHRoZSBwb3NpdGlvbiBvZiBhcnJvdyBjb3JyZWN0bHlcbiAgICAgKi9cbiAgICBwdWJsaWMgcGlja2VyUG9zaXRpb24gPSBUb29sdGlwUG9zaXRpb247XG5cbiAgICAvKipcbiAgICAgKiBSZWZlcmVuY2UgdG8gdGhlIHBpY2tlciBhcnJvdyBlbGVtZW50IHVzZWQgZm9yIGNhbGN1bGF0aW5nIHRvb2x0aXAgYXJyb3cgcG9zaXRpb24uXG4gICAgICovXG4gICAgQFZpZXdDaGlsZCgncGlja2VyYXJyb3cnLCB7IHN0YXRpYzogZmFsc2UgfSlcbiAgICBwdWJsaWMgcGlja2VyYXJyb3c6IEVsZW1lbnRSZWY8SFRNTEVsZW1lbnQ+IHwgbnVsbDtcblxuICAgIC8qKlxuICAgICAqIE5hbWUgb2YgdGhlIGNvbnRhaW5lciBmb3IgY29udGVudCAoZS5nLiBpY29uKSBvbiB3aGljaCB0aGUgdG9vbHRpcCBpcyBkaXNwbGF5ZWQuXG4gICAgICovXG4gICAgQFZpZXdDaGlsZCgncGlja2VyYnV0dG9uJywgeyBzdGF0aWM6IHRydWUgfSlcbiAgICBwdWJsaWMgcGlja2VyYnV0dG9uOiBFbGVtZW50UmVmPEhUTUxFbGVtZW50PjtcblxuICAgIC8qKlxuICAgICAqIFRleHRCb3ggUGxhY2Vob2xkZXJcbiAgICAgKi9cbiAgICBASW5wdXQoKSBwdWJsaWMgcGxhY2Vob2xkZXI6IHN0cmluZyA9IG51bGw7XG5cbiAgICAvKipcbiAgICAgKiBQb3NpdGlvbiBvZiB0aGUgcGlja2VyIGFycm93IGF0IHRoZSBsZWZ0XG4gICAgICovXG4gICAgcHVibGljIHBvc0Fycm93TGVmdDogbnVtYmVyIHwgbnVsbCA9IG51bGw7XG5cbiAgICAvKipcbiAgICAgKiBQb3NpdGlvbiBvZiB0aGUgcGlja2VyIGFycm93IGF0IHRoZSB0b3BcbiAgICAgKi9cbiAgICBwdWJsaWMgcG9zQXJyb3dUb3A6IG51bWJlciB8IG51bGwgPSBudWxsO1xuXG4gICAgLyoqXG4gICAgICogUG9zaXRpb24gb2YgdGhlIHBpY2tlciBhdCB0aGUgbGVmdFxuICAgICAqL1xuICAgIHB1YmxpYyBwb3NQb3B1cExlZnQgPSAwO1xuXG4gICAgLyoqXG4gICAgICogUG9zaXRpb24gb2YgdGhlIHBpY2tlciBhdCB0aGUgdG9wXG4gICAgICovXG4gICAgcHVibGljIHBvc1BvcHVwVG9wID0gMDtcblxuICAgIC8qKlxuICAgICAqIFBvc2l0aW9uIG9mIHRoZSBkYXRldGltZSBwaWNrZXIuIFZhbHVlczogbGVmdHx0b3B8cmlnaHR8Ym90dG9tfGF1dG9cbiAgICAgKlxuICAgICAqIFZhbHVlICdhdXRvJyBjYW4gYmUgY29tYmluZWQgd2l0aCBhbm90aGVyIHZhbHVlLlxuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIHBvc2l0aW9uID0gJ2JvdHRvbWVuZHx0b3BlbmQnO1xuXG4gICAgLyoqXG4gICAgICogUmVzb3VyY2UgS2V5IGZvciBWYWxpZGF0aW9uIE1lc3NhZ2UgRGF0ZVRpbWVGb3JtYXQgYXQgQ29udHJvbFxuICAgICAqL1xuICAgIEBJbnB1dCgpIHB1YmxpYyB2YWxpZGF0aW9ubWVzc2FnZWRhdGV0aW1lZm9ybWF0OiBzdHJpbmcgPSB0aGlzLnZhbGlkYXRpb25LZXlTZXJ2aWNlLlZhbGlkYXRpb25FcnJvckRhdGV0aW1lRm9ybWF0O1xuXG4gICAgLyoqXG4gICAgICogUmVzb3VyY2UgS2V5IGZvciBWYWxpZGF0aW9uIE1lc3NhZ2UgRGF0ZVRpbWVGb3JtYXQgaW4gVmFsaWRhdGlvbiBTdW1tYXJ5XG4gICAgICovXG4gICAgQElucHV0KCkgcHVibGljIHZhbGlkYXRpb25tZXNzYWdlZGF0ZXRpbWVmb3JtYXRzdW1tYXJ5OiBzdHJpbmcgPVxuICAgICAgICB0aGlzLnZhbGlkYXRpb25LZXlTZXJ2aWNlLlZhbGlkYXRpb25FcnJvclN1bW1hcnlEYXRldGltZUZvcm1hdDtcblxuICAgIC8qKlxuICAgICAqIFJlc291cmNlIEtleSBmb3IgVmFsaWRhdGlvbiBNZXNzYWdlIFJlcXVpcmVkIGF0IENvbnRyb2xcbiAgICAgKi9cbiAgICBASW5wdXQoKSBwdWJsaWMgdmFsaWRhdGlvbm1lc3NhZ2VyZXF1aXJlZDogc3RyaW5nID0gdGhpcy52YWxpZGF0aW9uS2V5U2VydmljZS5WYWxpZGF0aW9uRXJyb3JSZXF1aXJlZDtcblxuICAgIC8qKlxuICAgICAqIFJlc291cmNlIEtleSBmb3IgVmFsaWRhdGlvbiBNZXNzYWdlIFJlcXVpcmVkIGluIFZhbGlkYXRpb24gU3VtbWFyeVxuICAgICAqL1xuICAgIEBJbnB1dCgpIHB1YmxpYyB2YWxpZGF0aW9ubWVzc2FnZXJlcXVpcmVkc3VtbWFyeTogc3RyaW5nID0gdGhpcy52YWxpZGF0aW9uS2V5U2VydmljZS5WYWxpZGF0aW9uRXJyb3JTdW1tYXJ5UmVxdWlyZWQ7XG5cbiAgICAvLyAjZW5kcmVnaW9uIFByb3BlcnRpZXNcblxuICAgIC8vICNyZWdpb24gQ29uc3RydWN0b3JzXG5cbiAgICAvKipcbiAgICAgKiBDb25zdHJ1Y3RvclxuICAgICAqIEBwYXJhbSBmb3JtbGF5b3V0IFNhY0Zvcm1MYXlvdXRDb21tb24gdG8gZGVmaW5lIHNjb3BlZCBsYXlvdXQgc2V0dGluZ3NcbiAgICAgKiBAcGFyYW0gaW5qZWN0b3IgSW5qZWN0b3IgZm9yIGluamVjdGluZyBzZXJ2aWNlc1xuICAgICAqIEBwYXJhbSBlbGVtZW50UmVmIFJlZmVyZW5jZSB0byBodG1sIGVsZW1lbnRcbiAgICAgKiBAcGFyYW0gY2RSZWYgQ2hhbmdlIGRldGVjdG9yIHJlZmVyZW5jZSBmb3IgdXBkYXRpbmcgY29tcG9uZW50IHZpZXdcbiAgICAgKi9cbiAgICBjb25zdHJ1Y3RvcihcbiAgICAgICAgZm9ybWxheW91dDogU2FjRm9ybUxheW91dENvbW1vbixcbiAgICAgICAgaW5qZWN0b3I6IEluamVjdG9yLFxuICAgICAgICBwcm90ZWN0ZWQgZWxlbWVudFJlZjogRWxlbWVudFJlZixcbiAgICAgICAgcHJpdmF0ZSByZWFkb25seSBjZFJlZjogQ2hhbmdlRGV0ZWN0b3JSZWZcbiAgICApIHtcbiAgICAgICAgc3VwZXIoZm9ybWxheW91dCwgaW5qZWN0b3IpO1xuICAgIH1cblxuICAgIC8vICNlbmRyZWdpb24gQ29uc3RydWN0b3JzXG5cbiAgICAvLyAjcmVnaW9uIFB1YmxpYyBHZXR0ZXJzIEFuZCBTZXR0ZXJzXG5cbiAgICAvKipcbiAgICAgKiBTZXR0ZXIgZm9yIHRoZSBuYW1lIG9mIHRoZSBjb250YWluZXIgZm9yIHRoZSB0b29sdGlwLiBSZXF1aXJlZCBiZWNhdXNlIHRoZSB0b29sdGlwIGNhbiBiZSBoaWRkZW4gdmlhIG5nSWYuXG4gICAgICovXG4gICAgQFZpZXdDaGlsZCgncGlja2VyJywgeyBzdGF0aWM6IGZhbHNlIH0pXG4gICAgcHVibGljIHNldCBwaWNrZXIocGlja2VyOiBFbGVtZW50UmVmKSB7XG4gICAgICAgIGlmIChwaWNrZXIgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChwaWNrZXIubmF0aXZlRWxlbWVudCk7XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLnBpY2tlcmNvbnRhaW5lciA9IHBpY2tlcjtcbiAgICAgICAgdGhpcy5vbkNvbnRlbnRDaGFuZ2UoKTtcbiAgICAgICAgdGhpcy5jZFJlZi5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgfVxuXG4gICAgcHVibGljIGdldCB0b29sdG9wKCk6IEVsZW1lbnRSZWYge1xuICAgICAgICByZXR1cm4gdGhpcy5waWNrZXJjb250YWluZXI7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogR2V0dGVyIGZvciB2YWx1ZXN0cmluZ1xuICAgICAqL1xuICAgIHB1YmxpYyBnZXQgdmFsdWVzdHJpbmcoKTogc3RyaW5nIHtcbiAgICAgICAgaWYgKHRoaXMudmFsdWUgPT09IG51bGwpIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLl92YWx1ZUFzU3RyaW5nO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgY29uc3QgZGF0ZSA9IHRoaXMubW9tZW50LnV0Yyh0aGlzLnZhbHVlKTtcbiAgICAgICAgICAgIHJldHVybiBkYXRlLmxvY2FsKCkuZm9ybWF0KHRoaXMuR2V0RGF0ZVRpbWVGb3JtYXRTdHJpbmcoKSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBUaGUgaW5wdXQgcmVjZWl2ZXMgdGhlIHZhbHVlIG9mIHR5cGUgc3RyaW5nXG4gICAgICovXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgc2V0IHZhbHVlc3RyaW5nKHY6IHN0cmluZykge1xuICAgICAgICB0aGlzLl92YWx1ZUFzU3RyaW5nID0gdjtcbiAgICAgICAgbGV0IGRhdGU6IG1vbWVudF8uTW9tZW50ID0gdGhpcy5tb21lbnQodiwgW3RoaXMuR2V0RGF0ZVRpbWVGb3JtYXRTdHJpbmcoKV0sIHRydWUpO1xuXG4gICAgICAgIGRhdGUgPSB0aGlzLk1vZGlmeVBhcnNlZERhdGVUaW1lVmFsdWUoZGF0ZSkudXRjKCk7XG5cbiAgICAgICAgaWYgKGRhdGUuaXNWYWxpZCgpKSB7XG4gICAgICAgICAgICB0aGlzLnZhbHVlID0gZGF0ZS50b0RhdGUoKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMudmFsdWUgPSBudWxsO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gdXBkYXRlIGltYWtzIHJlZmVyZW5jZVxuICAgICAgICB0aGlzLmNkUmVmLmRldGVjdENoYW5nZXMoKTtcbiAgICAgICAgdGhpcy5pTWFzay5tYXNrUmVmLnVwZGF0ZVZhbHVlKCk7XG4gICAgICAgIHRoaXMuaU1hc2subWFza1JlZi51cGRhdGVDb250cm9sKCk7XG4gICAgfVxuXG4gICAgLy8gI2VuZHJlZ2lvbiBQdWJsaWMgR2V0dGVycyBBbmQgU2V0dGVyc1xuXG4gICAgLy8gI3JlZ2lvbiBQdWJsaWMgTWV0aG9kc1xuXG4gICAgLyoqXG4gICAgICogVGhlIG1ldGhvZCByZXR1cm5zIGRhdGVUaW1lIGFzIGEgc3RyaW5nXG4gICAgICovXG4gICAgcHVibGljIGFic3RyYWN0IEdldERhdGVUaW1lRm9ybWF0U3RyaW5nKCk6IHN0cmluZztcblxuICAgIC8qKlxuICAgICAqIFJldHVybnMgdGhlIHBvc2l0aW9uIG9mIHRoZSB0b29sdGlwXG4gICAgICovXG4gICAgcHVibGljIEdldFBpY2tlclBvc2l0aW9uKCk6IFRvb2x0aXBQb3NpdGlvbiB7XG4gICAgICAgIHJldHVybiB0aGlzLnBvcHVwSGVscGVyLmdldERpc3BsYXlQb3NpdGlvbihcbiAgICAgICAgICAgIHRoaXMucGlja2VyYnV0dG9uLFxuICAgICAgICAgICAgdGhpcy5waWNrZXJjb250YWluZXIsXG4gICAgICAgICAgICB0aGlzLmdldEFycm93V2lkdGgoKSxcbiAgICAgICAgICAgIHRoaXMuZ2V0QXJyb3dIZWlnaHQoKSxcbiAgICAgICAgICAgIHRoaXMucG9zaXRpb24sXG4gICAgICAgICAgICBmYWxzZVxuICAgICAgICApO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFRoZSBtZXRob2QgbW9kaWZpZXMgdGhlIGVudGVyZWQgdmFsdWUgb2YgdHlwZSBNb21lbnRcbiAgICAgKi9cbiAgICBwdWJsaWMgYWJzdHJhY3QgTW9kaWZ5UGFyc2VkRGF0ZVRpbWVWYWx1ZSh2OiBtb21lbnRfLk1vbWVudCk6IG1vbWVudF8uTW9tZW50O1xuXG4gICAgLyoqXG4gICAgICogQ29udmVydHMgYSBKU09OIGRhdGUgc3RyaW5nIGludG8gYSBVVEMgRGF0ZVRpbWUgb2JqZWN0IHRoYXQgY2FuIGJlIHVzZWQgYnkgdGhlIGNvbnRyb2xcbiAgICAgKiBAcGFyYW0gdGltZXN0YW1wIERhdGUgdGltZXN0YW1wIHRvIGNvbnZlcnRcbiAgICAgKiBAcmV0dXJucyBNb21lbnQgb2JqZWN0IGluIFVUQ1xuICAgICAqL1xuICAgIHB1YmxpYyBnZXREYXRlKHRpbWVzdGFtcCk6IG1vbWVudC5Nb21lbnQge1xuICAgICAgICBjb25zdCBkYXRlID0gbmV3IERhdGUodGltZXN0YW1wKTtcbiAgICAgICAgY29uc3QgeWVhciA9IGRhdGUuZ2V0VVRDRnVsbFllYXIoKTtcbiAgICAgICAgY29uc3QgbW9udGggPSBkYXRlLmdldFVUQ01vbnRoKCk7XG4gICAgICAgIGNvbnN0IGRheSA9IGRhdGUuZ2V0VVRDRGF0ZSgpO1xuICAgICAgICBjb25zdCBob3VycyA9IGRhdGUuZ2V0VVRDSG91cnMoKTtcbiAgICAgICAgY29uc3QgbWludXRlcyA9IGRhdGUuZ2V0VVRDTWludXRlcygpO1xuICAgICAgICBjb25zdCBzZWNvbmRzID0gZGF0ZS5nZXRVVENTZWNvbmRzKCk7XG5cbiAgICAgICAgcmV0dXJuIHRoaXMubW9tZW50KERhdGUuVVRDKHllYXIsIG1vbnRoLCBkYXksIGhvdXJzLCBtaW51dGVzLCBzZWNvbmRzKSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQ2FsY3VsYXRlcyB0aGUgaGVpZ2h0IG9mIHRoZSB0b29sdGlwXG4gICAgICovXG4gICAgcHVibGljIGdldFBpY2tlckhlaWdodCgpOiBudW1iZXIge1xuICAgICAgICByZXR1cm4gdGhpcy5wb3B1cEhlbHBlci5nZXRQb3B1cEhlaWdodCh0aGlzLnBpY2tlcmNvbnRhaW5lcik7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQ2FsY3VsYXRlcyB0aGUgd2lkdGggb2YgdGhlIHBpY2tlclxuICAgICAqL1xuICAgIHB1YmxpYyBnZXRQaWNrZXJXaWR0aCgpOiBudW1iZXIge1xuICAgICAgICByZXR1cm4gdGhpcy5wb3B1cEhlbHBlci5nZXRQb3B1cFdpZHRoKHRoaXMucGlja2VyY29udGFpbmVyKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBDbGVhbiB1cCByZXNvdXJjZXMgd2hlbiB0aGUgY29udHJvbCBpcyBkZXN0cm95ZWQuXG4gICAgICpcbiAgICAgKiBSZW1vdmVzIHRoZSBwaWNrZXIgZWxlbWVudCBmcm9tIHRoZSBET00gaWYgdmlzaWJsZSBhbmQgdW5yZWdpc3RlcnMgZ2xvYmFsIHJlc2l6ZS9zY3JvbGwgbGlzdGVuZXJzLlxuICAgICAqL1xuICAgIHB1YmxpYyBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICAgICAgLy8gUmVtb3ZlIFBpY2tlciBpZiBpcyB2aXNpYmxlXG4gICAgICAgIGlmICh0aGlzLl9zaG93c2VsZWN0b3IgJiYgdGhpcy5waWNrZXJjb250YWluZXI/Lm5hdGl2ZUVsZW1lbnQpIHtcbiAgICAgICAgICAgIGRvY3VtZW50LmJvZHkucmVtb3ZlQ2hpbGQodGhpcy5waWNrZXJjb250YWluZXIubmF0aXZlRWxlbWVudCk7XG4gICAgICAgIH1cblxuICAgICAgICAvLyBVbnJlZ2lzdGVyIEV2ZW50IExpc3RlbmVyXG4gICAgICAgIHdpbmRvdy5yZW1vdmVFdmVudExpc3RlbmVyKCdzY3JvbGwnLCB0aGlzLm9uQ29udGVudENoYW5nZSwgdHJ1ZSk7XG4gICAgICAgIHdpbmRvdy5yZW1vdmVFdmVudExpc3RlbmVyKCdyZXNpemUnLCB0aGlzLm9uQ29udGVudENoYW5nZSwgdHJ1ZSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogSW5pdCBFdmVudFxuICAgICAqL1xuICAgIHB1YmxpYyBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICAgICAgc3VwZXIubmdPbkluaXQoKTtcbiAgICAgICAgdGhpcy5zZXREYXRlVGltZUZvcm1hdCgpO1xuXG4gICAgICAgIC8vIFJlZ2lzdGVyIEV2ZW50IExpc3RlbmVyXG4gICAgICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdzY3JvbGwnLCB0aGlzLm9uQ29udGVudENoYW5nZSwgdHJ1ZSk7XG4gICAgICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdyZXNpemUnLCB0aGlzLm9uQ29udGVudENoYW5nZSwgdHJ1ZSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogU2V0cyB0aGUgdmFsdWUgb2YgdHlwZSBzdHJpbmcgdG8gdGhlIHByb3BlcnR5IHZhbHVlc3RyaW5nXG4gICAgICogQHBhcmFtIHYgU3RyaW5nIHZhbHVlIHRvIHNldFxuICAgICAqL1xuICAgIHB1YmxpYyBzZXRWYWx1ZVN0cmluZyh2OiBzdHJpbmcpIHtcbiAgICAgICAgdGhpcy52YWx1ZXN0cmluZyA9IHY7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogVmFsaWRhdGVzIHRoZSBkYXRldGltZSBjb250cm9sIHZhbHVlIGZvcm1hdCBhbmQgcmVxdWlyZWQgc3RhdHVzLlxuICAgICAqXG4gICAgICogQHBhcmFtIGMgQWJzdHJhY3RDb250cm9sIGluc3RhbmNlIHRvIHZhbGlkYXRlLlxuICAgICAqIEByZXR1cm5zIFZhbGlkYXRpb25FcnJvcnMgaWYgaW52YWxpZCwgb3RoZXJ3aXNlIG51bGwuXG4gICAgICovXG4gICAgcHVibGljIHZhbGlkYXRlRGF0YShjOiBBYnN0cmFjdENvbnRyb2wpOiBWYWxpZGF0aW9uRXJyb3JzIHwgbnVsbCB7XG4gICAgICAgIGxldCBlcnJvcjogVmFsaWRhdGlvbkVycm9ycyB8IG51bGwgPSBudWxsO1xuXG4gICAgICAgIGlmICh0aGlzLnZhbHVlc3RyaW5nICE9PSBudWxsICYmIHRoaXMudmFsdWVzdHJpbmcuaW5kZXhPZignXycpID49IDApIHtcbiAgICAgICAgICAgIGVycm9yID0gQ3JlYXRlVmFsaWRhdGlvbkVycm9yKFxuICAgICAgICAgICAgICAgICdpbnZhbGlkdHlwZScsXG4gICAgICAgICAgICAgICAgdGhpcy52YWxpZGF0aW9ubWVzc2FnZWRhdGV0aW1lZm9ybWF0LFxuICAgICAgICAgICAgICAgIHRoaXMudmFsaWRhdGlvbm1lc3NhZ2VkYXRldGltZWZvcm1hdHN1bW1hcnlcbiAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgIGlmIChlcnJvcikge1xuICAgICAgICAgICAgICAgIHJldHVybiBlcnJvcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIGVycm9yID0gVmFsaWRhdGlvbi5pc1ZhbGlkRGF0ZShcbiAgICAgICAgICAgIHRoaXMudmFsaWRhdGlvbm1lc3NhZ2VkYXRldGltZWZvcm1hdCxcbiAgICAgICAgICAgIHRoaXMudmFsaWRhdGlvbm1lc3NhZ2VkYXRldGltZWZvcm1hdHN1bW1hcnlcbiAgICAgICAgKShjKTtcblxuICAgICAgICBpZiAodGhpcy5pc3JlcXVpcmVkKSB7XG4gICAgICAgICAgICBlcnJvciA9IFZhbGlkYXRpb24ucmVxdWlyZWQodGhpcy52YWxpZGF0aW9ubWVzc2FnZXJlcXVpcmVkLCB0aGlzLnZhbGlkYXRpb25tZXNzYWdlcmVxdWlyZWRzdW1tYXJ5KShjKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBlcnJvcjtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBPdmVyd3JpdGUgV3JpdGVWYWx1ZSB0byBTZXQgY29ycmVjdCBEYXRlIE9iamVjdFxuICAgICAqIEBwYXJhbSB2YWx1ZSBEYXRlIG9yIHN0cmluZyB2YWx1ZSB0byB3cml0ZSB0byB0aGUgY29udHJvbFxuICAgICAqL1xuICAgIHB1YmxpYyB3cml0ZVZhbHVlKHZhbHVlOiBEYXRlIHwgc3RyaW5nKSB7XG4gICAgICAgIGlmICh2YWx1ZSA9PT0gJycgfHwgdmFsdWUgPT09IG51bGwgfHwgdmFsdWUgPT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgLy8gUmVzZXQgdmFsdWUgc3RyaW5nIHNvIHRoYXQgd2hlbiB0aGUgbW9kZWwgaXMgdXBkYXRlZCB0aGUgaW5wdXQgZmllbGQgaXMgYWxzbyBjbGVhcmVkLlxuICAgICAgICAgICAgdGhpcy5fdmFsdWVBc1N0cmluZyA9ICcnO1xuICAgICAgICAgICAgLy8gU2V0IEludGVybmFsIFByb3BlcnR5XG4gICAgICAgICAgICB0aGlzLl92YWx1ZSA9IG51bGw7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLl92YWx1ZSA9IHRoaXMuZ2V0RGF0ZSh2YWx1ZSkudG9EYXRlKCk7XG4gICAgICAgIH1cblxuICAgICAgICBzdXBlci53cml0ZVZhbHVlKHRoaXMuX3ZhbHVlKTtcblxuICAgICAgICAvLyBmb3JjZSBkZXRlY3QgY2hhbmdlcyBhbmQgdXBkYXRlIGltYXNrIGRpcmVjdGl2ZVxuICAgICAgICB0aGlzLmNkUmVmLmRldGVjdENoYW5nZXMoKTtcbiAgICAgICAgdGhpcy5pTWFzay5tYXNrUmVmLnVwZGF0ZVZhbHVlKCk7XG4gICAgfVxuXG4gICAgLy8gI2VuZHJlZ2lvbiBQdWJsaWMgTWV0aG9kc1xuXG4gICAgLy8gI3JlZ2lvbiBQcm90ZWN0ZWQgTWV0aG9kc1xuXG4gICAgLyoqXG4gICAgICogR2V0cyB0aGUgaGVpZ2h0IG9mIHRoZSBhcnJvdyBlbGVtZW50XG4gICAgICogQHJldHVybnMgVGhlIGhlaWdodCBpbiBwaXhlbHMgb2YgdGhlIGFycm93IGVsZW1lbnQsIG9yIDAgaWYgbm90IHByZXNlbnRcbiAgICAgKi9cbiAgICBwcm90ZWN0ZWQgZ2V0QXJyb3dIZWlnaHQoKTogbnVtYmVyIHtcbiAgICAgICAgcmV0dXJuIHRoaXMucGlja2VyYXJyb3cgPyB0aGlzLnBpY2tlcmFycm93Lm5hdGl2ZUVsZW1lbnQub2Zmc2V0SGVpZ2h0IDogMDtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBHZXRzIHRoZSB3aWR0aCBvZiB0aGUgYXJyb3cgZWxlbWVudFxuICAgICAqIEByZXR1cm5zIFRoZSB3aWR0aCBpbiBwaXhlbHMgb2YgdGhlIGFycm93IGVsZW1lbnQsIG9yIDAgaWYgbm90IHByZXNlbnRcbiAgICAgKi9cbiAgICBwcm90ZWN0ZWQgZ2V0QXJyb3dXaWR0aCgpOiBudW1iZXIge1xuICAgICAgICByZXR1cm4gdGhpcy5waWNrZXJhcnJvdyA/IHRoaXMucGlja2VyYXJyb3cubmF0aXZlRWxlbWVudC5vZmZzZXRXaWR0aCA6IDA7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQ2FsY3VsYXRlcyB0aGUgcG9zaXRpb24gb2YgdGhlIHRvb2x0aXAgZnJvbSBsaW5rc1xuICAgICAqL1xuICAgIHByb3RlY3RlZCBnZXRQb3NpdGlvbkxlZnQoKTogbnVtYmVyIHtcbiAgICAgICAgY29uc3QgdmFsdWUgPSB0aGlzLnBvcHVwSGVscGVyLmdldFBvc2l0aW9uTGVmdChcbiAgICAgICAgICAgIHRoaXMucGlja2VyYnV0dG9uLFxuICAgICAgICAgICAgdGhpcy5waWNrZXJjb250YWluZXIsXG4gICAgICAgICAgICB0aGlzLmVsZW1lbnRSZWYsXG4gICAgICAgICAgICB0aGlzLmdldEFycm93V2lkdGgoKSxcbiAgICAgICAgICAgIHRoaXMuZ2V0QXJyb3dIZWlnaHQoKSxcbiAgICAgICAgICAgIHRoaXMucG9zaXRpb24sXG4gICAgICAgICAgICBmYWxzZVxuICAgICAgICApO1xuXG4gICAgICAgIC8vIEVuc3VyZSB0aGF0IHBvcC11cHMgbmV2ZXIgYXBwZWFyIG91dHNpZGUgdGhlIHZpc2libGUgYXJlYSBvbiB0aGUgbGVmdFxuICAgICAgICBpZiAodmFsdWUgPCAwKSB7XG4gICAgICAgICAgICB0aGlzLnBvc1BvcHVwTGVmdCA9IDU7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLnBvc1BvcHVwTGVmdCA9IHZhbHVlO1xuICAgICAgICB9XG5cbiAgICAgICAgc3dpdGNoICh0aGlzLkdldFBpY2tlclBvc2l0aW9uKCkpIHtcbiAgICAgICAgICAgIGNhc2UgVG9vbHRpcFBvc2l0aW9uLnRvcDpcbiAgICAgICAgICAgIGNhc2UgVG9vbHRpcFBvc2l0aW9uLmJvdHRvbTpcbiAgICAgICAgICAgICAgICB0aGlzLnBvc0Fycm93TGVmdCA9IHRoaXMuZ2V0UGlja2VyV2lkdGgoKSAvIDIgLSAtdGhpcy5nZXRBcnJvd1dpZHRoKCk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBjYXNlIFRvb2x0aXBQb3NpdGlvbi50b3BlbmQ6XG4gICAgICAgICAgICBjYXNlIFRvb2x0aXBQb3NpdGlvbi5ib3R0b21lbmQ6XG4gICAgICAgICAgICAgICAgdGhpcy5wb3NBcnJvd0xlZnQgPVxuICAgICAgICAgICAgICAgICAgICB0aGlzLmdldFBpY2tlcldpZHRoKCkgLVxuICAgICAgICAgICAgICAgICAgICB0aGlzLmdldEFycm93V2lkdGgoKSAvIDIgLVxuICAgICAgICAgICAgICAgICAgICB0aGlzLnBvcHVwSGVscGVyLmdldENvbnRhaW5lcldpZHRoKHRoaXMucGlja2VyYnV0dG9uLCBmYWxzZSkgLyAyO1xuXG4gICAgICAgICAgICAgICAgLy8gQ29ycmVjdGlvbiBieSBBcnJvdyBpZiBwb3B1cCBpcyBvdXRzaWRlIHRoZSBsZWZ0IG1hcmdpblxuICAgICAgICAgICAgICAgIGlmICh2YWx1ZSA8IDApIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5wb3NBcnJvd0xlZnQgLT0gdmFsdWUgKiAtMSArIDU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgICAgICB0aGlzLnBvc0Fycm93TGVmdCA9IG51bGw7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gdmFsdWU7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQ2FsY3VsYXRlcyB0aGUgcG9zaXRpb24gb2YgdGhlIHRvb2x0aXAgZnJvbSB0aGUgdG9wXG4gICAgICovXG4gICAgcHJvdGVjdGVkIGdldFBvc2l0aW9uVG9wKCk6IG51bWJlciB7XG4gICAgICAgIGNvbnN0IHZhbHVlID0gdGhpcy5wb3B1cEhlbHBlci5nZXRQb3NpdGlvblRvcChcbiAgICAgICAgICAgIHRoaXMucGlja2VyYnV0dG9uLFxuICAgICAgICAgICAgdGhpcy5waWNrZXJjb250YWluZXIsXG4gICAgICAgICAgICB0aGlzLmVsZW1lbnRSZWYsXG4gICAgICAgICAgICB0aGlzLmdldEFycm93V2lkdGgoKSxcbiAgICAgICAgICAgIHRoaXMuZ2V0QXJyb3dIZWlnaHQoKSxcbiAgICAgICAgICAgIHRoaXMucG9zaXRpb24sXG4gICAgICAgICAgICBmYWxzZVxuICAgICAgICApO1xuICAgICAgICB0aGlzLnBvc1BvcHVwVG9wID0gdmFsdWU7XG5cbiAgICAgICAgc3dpdGNoICh0aGlzLkdldFBpY2tlclBvc2l0aW9uKCkpIHtcbiAgICAgICAgICAgIGNhc2UgVG9vbHRpcFBvc2l0aW9uLmxlZnQ6XG4gICAgICAgICAgICBjYXNlIFRvb2x0aXBQb3NpdGlvbi5yaWdodDpcbiAgICAgICAgICAgICAgICB0aGlzLnBvc0Fycm93VG9wID0gdGhpcy5nZXRQaWNrZXJIZWlnaHQoKSAvIDIgLSA2LjU7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgICAgIHRoaXMucG9zQXJyb3dUb3AgPSBudWxsO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIHZhbHVlO1xuICAgIH1cblxuICAgIC8vICNlbmRyZWdpb24gUHJvdGVjdGVkIE1ldGhvZHNcblxuICAgIC8vICNyZWdpb24gUHJpdmF0ZSBNZXRob2RzXG5cbiAgICAvKipcbiAgICAgKiBtZXRob2QgaWYgY29udGVudCBoYXMgY2hhbmdlZCBhbmQgcHJvcG9ydGlvbnMgbmVlZCB0byBiZSByZXNldCBpbiB0aGUgVUkuXG4gICAgICovXG4gICAgcHJpdmF0ZSByZWFkb25seSBvbkNvbnRlbnRDaGFuZ2UgPSAoKTogdm9pZCA9PiB7XG4gICAgICAgIC8vIERvIG5vdGhpbmcgaWYgaXMgbm90IHZpc2libGVcbiAgICAgICAgaWYgKCF0aGlzLl9zaG93c2VsZWN0b3IpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICAgICAgdGhpcy5nZXRQb3NpdGlvbkxlZnQoKTtcbiAgICAgICAgICAgIHRoaXMuZ2V0UG9zaXRpb25Ub3AoKTtcbiAgICAgICAgfSk7XG4gICAgfTtcblxuICAgIC8qKlxuICAgICAqIFNldHMgdGhlIGRhdGUtdGltZSBmb3JtYXQgc3RyaW5nIGZyb20gdGhlIGNvbmZpZ3VyZWQgZm9ybWF0IHByb3BlcnR5XG4gICAgICovXG4gICAgcHJpdmF0ZSBzZXREYXRlVGltZUZvcm1hdCgpOiB2b2lkIHtcbiAgICAgICAgLy8gSEFDSzogQWRkIGFkZGl0aW9uIHByb3BlcnR5IHRvIEZvcm1Db250cm9sLiBDYW4gYmUgZml4ZWQgaWYgc29sdXRpb24gZm9yIHRpY2tldDogaHR0cHM6Ly9naXRodWIuY29tL2FuZ3VsYXIvYW5ndWxhci9pc3N1ZXMvMTk2ODZcbiAgICAgICAgaWYgKHRoaXMubmdDb250cm9sKSB7XG4gICAgICAgICAgICAodGhpcy5uZ0NvbnRyb2wgYXMgdW5rbm93biBhcyBJRGF0ZVRpbWVDb250cm9sKS5kYXRldGltZWZvcm1hdHN0cmluZyA9IHRoaXMuR2V0RGF0ZVRpbWVGb3JtYXRTdHJpbmcoKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8vICNlbmRyZWdpb24gUHJpdmF0ZSBNZXRob2RzXG59XG4iXX0=
|
|
@@ -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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFzZWRhdGV0aW1lY29udHJvbC5uZ2ZhY3RvcnkuanMiLCJzb3VyY2VSb290IjoiL2hvbWUvcnVubmVyL3dvcmsvc2ltcGxlYW5ndWxhcmNvbnRyb2xzL3NpbXBsZWFuZ3VsYXJjb250cm9scy9jaC5qbmV0d29yay5zYWMtY29udHJvbHMvcHJvamVjdHMvc2FjLWNvbW1vbi9zcmMvIiwic291cmNlcyI6WyJjb21tb24vYmFzZWRhdGV0aW1lY29udHJvbC5uZ2ZhY3RvcnkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAqIGFzIGkwIGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaTAuQ29tcG9uZW50RmFjdG9yeTtcbiJdfQ==
|