@simpleangularcontrols/sac-bootstrap5 10.0.0-rc.1
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 +18 -0
- package/bundles/simpleangularcontrols-sac-bootstrap5.umd.js +3286 -0
- package/bundles/simpleangularcontrols-sac-bootstrap5.umd.js.map +1 -0
- package/bundles/simpleangularcontrols-sac-bootstrap5.umd.min.js +2 -0
- package/bundles/simpleangularcontrols-sac-bootstrap5.umd.min.js.map +1 -0
- package/components/browser/browser.d.ts +46 -0
- package/components/browser/browser.d.ts.map +1 -0
- package/components/browser/browser.module.d.ts +3 -0
- package/components/browser/browser.module.d.ts.map +1 -0
- package/components/browser/browser.module.ngfactory.d.ts +4 -0
- package/components/browser/browser.module.ngfactory.d.ts.map +1 -0
- package/components/browser/browser.ngfactory.d.ts +2 -0
- package/components/browser/browser.ngfactory.d.ts.map +1 -0
- package/controls/buttons/button.d.ts +9 -0
- package/controls/buttons/button.d.ts.map +1 -0
- package/controls/buttons/button.module.d.ts +3 -0
- package/controls/buttons/button.module.d.ts.map +1 -0
- package/controls/buttons/button.module.ngfactory.d.ts +4 -0
- package/controls/buttons/button.module.ngfactory.d.ts.map +1 -0
- package/controls/buttons/button.ngfactory.d.ts +2 -0
- package/controls/buttons/button.ngfactory.d.ts.map +1 -0
- package/controls/checkbox/checkbox.d.ts +15 -0
- package/controls/checkbox/checkbox.d.ts.map +1 -0
- package/controls/checkbox/checkbox.module.d.ts +3 -0
- package/controls/checkbox/checkbox.module.d.ts.map +1 -0
- package/controls/checkbox/checkbox.module.ngfactory.d.ts +4 -0
- package/controls/checkbox/checkbox.module.ngfactory.d.ts.map +1 -0
- package/controls/checkbox/checkbox.ngfactory.d.ts +2 -0
- package/controls/checkbox/checkbox.ngfactory.d.ts.map +1 -0
- package/controls/checkbox/checkbox.scss.ngstyle.d.ts +2 -0
- package/controls/checkbox/checkbox.scss.ngstyle.d.ts.map +1 -0
- package/controls/checkbox/checkbox.scss.shim.ngstyle.d.ts +2 -0
- package/controls/checkbox/checkbox.scss.shim.ngstyle.d.ts.map +1 -0
- package/controls/checkbox/radiobutton.d.ts +13 -0
- package/controls/checkbox/radiobutton.d.ts.map +1 -0
- package/controls/checkbox/radiobutton.ngfactory.d.ts +2 -0
- package/controls/checkbox/radiobutton.ngfactory.d.ts.map +1 -0
- package/controls/checkbox/radiobutton.scss.ngstyle.d.ts +2 -0
- package/controls/checkbox/radiobutton.scss.ngstyle.d.ts.map +1 -0
- package/controls/checkbox/radiobutton.scss.shim.ngstyle.d.ts +2 -0
- package/controls/checkbox/radiobutton.scss.shim.ngstyle.d.ts.map +1 -0
- package/controls/checkbox/radiobuttons.d.ts +15 -0
- package/controls/checkbox/radiobuttons.d.ts.map +1 -0
- package/controls/checkbox/radiobuttons.ngfactory.d.ts +2 -0
- package/controls/checkbox/radiobuttons.ngfactory.d.ts.map +1 -0
- package/controls/confirm/confirm.d.ts +7 -0
- package/controls/confirm/confirm.d.ts.map +1 -0
- package/controls/confirm/confirm.module.d.ts +12 -0
- package/controls/confirm/confirm.module.d.ts.map +1 -0
- package/controls/confirm/confirm.module.ngfactory.d.ts +4 -0
- package/controls/confirm/confirm.module.ngfactory.d.ts.map +1 -0
- package/controls/confirm/confirm.ngfactory.d.ts +2 -0
- package/controls/confirm/confirm.ngfactory.d.ts.map +1 -0
- package/controls/confirm/confirm.service.d.ts +55 -0
- package/controls/confirm/confirm.service.d.ts.map +1 -0
- package/controls/confirm/confirm.service.ngfactory.d.ts +2 -0
- package/controls/confirm/confirm.service.ngfactory.d.ts.map +1 -0
- package/controls/contextmenu/contextmenu.d.ts +17 -0
- package/controls/contextmenu/contextmenu.d.ts.map +1 -0
- package/controls/contextmenu/contextmenu.module.d.ts +3 -0
- package/controls/contextmenu/contextmenu.module.d.ts.map +1 -0
- package/controls/contextmenu/contextmenu.module.ngfactory.d.ts +4 -0
- package/controls/contextmenu/contextmenu.module.ngfactory.d.ts.map +1 -0
- package/controls/contextmenu/contextmenu.ngfactory.d.ts +2 -0
- package/controls/contextmenu/contextmenu.ngfactory.d.ts.map +1 -0
- package/controls/contextmenu/contextmenuanchor.d.ts +13 -0
- package/controls/contextmenu/contextmenuanchor.d.ts.map +1 -0
- package/controls/contextmenu/contextmenuanchor.ngfactory.d.ts +2 -0
- package/controls/contextmenu/contextmenuanchor.ngfactory.d.ts.map +1 -0
- package/controls/contextmenu/contextmenucontainer.d.ts +13 -0
- package/controls/contextmenu/contextmenucontainer.d.ts.map +1 -0
- package/controls/contextmenu/contextmenucontainer.ngfactory.d.ts +2 -0
- package/controls/contextmenu/contextmenucontainer.ngfactory.d.ts.map +1 -0
- package/controls/contextmenu/contextmenuitembutton.d.ts +12 -0
- package/controls/contextmenu/contextmenuitembutton.d.ts.map +1 -0
- package/controls/contextmenu/contextmenuitembutton.ngfactory.d.ts +2 -0
- package/controls/contextmenu/contextmenuitembutton.ngfactory.d.ts.map +1 -0
- package/controls/contextmenu/contextmenuitemsplitter.d.ts +7 -0
- package/controls/contextmenu/contextmenuitemsplitter.d.ts.map +1 -0
- package/controls/contextmenu/contextmenuitemsplitter.ngfactory.d.ts +2 -0
- package/controls/contextmenu/contextmenuitemsplitter.ngfactory.d.ts.map +1 -0
- package/controls/datetime/date.d.ts +16 -0
- package/controls/datetime/date.d.ts.map +1 -0
- package/controls/datetime/date.ngfactory.d.ts +2 -0
- package/controls/datetime/date.ngfactory.d.ts.map +1 -0
- package/controls/datetime/dateselector.d.ts +7 -0
- package/controls/datetime/dateselector.d.ts.map +1 -0
- package/controls/datetime/dateselector.ngfactory.d.ts +2 -0
- package/controls/datetime/dateselector.ngfactory.d.ts.map +1 -0
- package/controls/datetime/datetime.d.ts +16 -0
- package/controls/datetime/datetime.d.ts.map +1 -0
- package/controls/datetime/datetime.module.d.ts +3 -0
- package/controls/datetime/datetime.module.d.ts.map +1 -0
- package/controls/datetime/datetime.module.ngfactory.d.ts +4 -0
- package/controls/datetime/datetime.module.ngfactory.d.ts.map +1 -0
- package/controls/datetime/datetime.ngfactory.d.ts +2 -0
- package/controls/datetime/datetime.ngfactory.d.ts.map +1 -0
- package/controls/datetime/time.d.ts +16 -0
- package/controls/datetime/time.d.ts.map +1 -0
- package/controls/datetime/time.ngfactory.d.ts +2 -0
- package/controls/datetime/time.ngfactory.d.ts.map +1 -0
- package/controls/dialog/dialog.d.ts +26 -0
- package/controls/dialog/dialog.d.ts.map +1 -0
- package/controls/dialog/dialog.module.d.ts +3 -0
- package/controls/dialog/dialog.module.d.ts.map +1 -0
- package/controls/dialog/dialog.module.ngfactory.d.ts +4 -0
- package/controls/dialog/dialog.module.ngfactory.d.ts.map +1 -0
- package/controls/dialog/dialog.ngfactory.d.ts +2 -0
- package/controls/dialog/dialog.ngfactory.d.ts.map +1 -0
- package/controls/form/form.d.ts +26 -0
- package/controls/form/form.d.ts.map +1 -0
- package/controls/form/form.module.d.ts +3 -0
- package/controls/form/form.module.d.ts.map +1 -0
- package/controls/form/form.module.ngfactory.d.ts +4 -0
- package/controls/form/form.module.ngfactory.d.ts.map +1 -0
- package/controls/form/form.ngfactory.d.ts +2 -0
- package/controls/form/form.ngfactory.d.ts.map +1 -0
- package/controls/form/inheritform.directive.d.ts +48 -0
- package/controls/form/inheritform.directive.d.ts.map +1 -0
- package/controls/form/inheritform.directive.ngfactory.d.ts +2 -0
- package/controls/form/inheritform.directive.ngfactory.d.ts.map +1 -0
- package/controls/grid/grid.d.ts +21 -0
- package/controls/grid/grid.d.ts.map +1 -0
- package/controls/grid/grid.module.d.ts +3 -0
- package/controls/grid/grid.module.d.ts.map +1 -0
- package/controls/grid/grid.module.ngfactory.d.ts +4 -0
- package/controls/grid/grid.module.ngfactory.d.ts.map +1 -0
- package/controls/grid/grid.ngfactory.d.ts +2 -0
- package/controls/grid/grid.ngfactory.d.ts.map +1 -0
- package/controls/grid/gridbutton.d.ts +20 -0
- package/controls/grid/gridbutton.d.ts.map +1 -0
- package/controls/grid/gridbutton.ngfactory.d.ts +2 -0
- package/controls/grid/gridbutton.ngfactory.d.ts.map +1 -0
- package/controls/grid/gridcolumn.d.ts +15 -0
- package/controls/grid/gridcolumn.d.ts.map +1 -0
- package/controls/grid/gridcolumn.ngfactory.d.ts +2 -0
- package/controls/grid/gridcolumn.ngfactory.d.ts.map +1 -0
- package/controls/grid/gridcolumnaction.d.ts +15 -0
- package/controls/grid/gridcolumnaction.d.ts.map +1 -0
- package/controls/grid/gridcolumnaction.ngfactory.d.ts +2 -0
- package/controls/grid/gridcolumnaction.ngfactory.d.ts.map +1 -0
- package/controls/grid/gridimage.d.ts +12 -0
- package/controls/grid/gridimage.d.ts.map +1 -0
- package/controls/grid/gridimage.ngfactory.d.ts +2 -0
- package/controls/grid/gridimage.ngfactory.d.ts.map +1 -0
- package/controls/grid/paging.d.ts +13 -0
- package/controls/grid/paging.d.ts.map +1 -0
- package/controls/grid/paging.ngfactory.d.ts +2 -0
- package/controls/grid/paging.ngfactory.d.ts.map +1 -0
- package/controls/input/input.d.ts +15 -0
- package/controls/input/input.d.ts.map +1 -0
- package/controls/input/input.module.d.ts +3 -0
- package/controls/input/input.module.d.ts.map +1 -0
- package/controls/input/input.module.ngfactory.d.ts +4 -0
- package/controls/input/input.module.ngfactory.d.ts.map +1 -0
- package/controls/input/input.ngfactory.d.ts +2 -0
- package/controls/input/input.ngfactory.d.ts.map +1 -0
- package/controls/input/inputarea.d.ts +15 -0
- package/controls/input/inputarea.d.ts.map +1 -0
- package/controls/input/inputarea.ngfactory.d.ts +2 -0
- package/controls/input/inputarea.ngfactory.d.ts.map +1 -0
- package/controls/input/inputcurrency.d.ts +15 -0
- package/controls/input/inputcurrency.d.ts.map +1 -0
- package/controls/input/inputcurrency.ngfactory.d.ts +2 -0
- package/controls/input/inputcurrency.ngfactory.d.ts.map +1 -0
- package/controls/input/inputdecimal.d.ts +15 -0
- package/controls/input/inputdecimal.d.ts.map +1 -0
- package/controls/input/inputdecimal.ngfactory.d.ts +2 -0
- package/controls/input/inputdecimal.ngfactory.d.ts.map +1 -0
- package/controls/input/inputemail.d.ts +15 -0
- package/controls/input/inputemail.d.ts.map +1 -0
- package/controls/input/inputemail.ngfactory.d.ts +2 -0
- package/controls/input/inputemail.ngfactory.d.ts.map +1 -0
- package/controls/input/inputinteger.d.ts +15 -0
- package/controls/input/inputinteger.d.ts.map +1 -0
- package/controls/input/inputinteger.ngfactory.d.ts +2 -0
- package/controls/input/inputinteger.ngfactory.d.ts.map +1 -0
- package/controls/input/inputpassword.d.ts +15 -0
- package/controls/input/inputpassword.d.ts.map +1 -0
- package/controls/input/inputpassword.ngfactory.d.ts +2 -0
- package/controls/input/inputpassword.ngfactory.d.ts.map +1 -0
- package/controls/input/inputsearch.d.ts +15 -0
- package/controls/input/inputsearch.d.ts.map +1 -0
- package/controls/input/inputsearch.ngfactory.d.ts +2 -0
- package/controls/input/inputsearch.ngfactory.d.ts.map +1 -0
- package/controls/layout/formlayout.directive.d.ts +4 -0
- package/controls/layout/formlayout.directive.d.ts.map +1 -0
- package/controls/layout/formlayout.directive.ngfactory.d.ts +2 -0
- package/controls/layout/formlayout.directive.ngfactory.d.ts.map +1 -0
- package/controls/layout/layout.module.d.ts +3 -0
- package/controls/layout/layout.module.d.ts.map +1 -0
- package/controls/layout/layout.module.ngfactory.d.ts +4 -0
- package/controls/layout/layout.module.ngfactory.d.ts.map +1 -0
- package/controls/layout/tocontrolheight.pipe.d.ts +10 -0
- package/controls/layout/tocontrolheight.pipe.d.ts.map +1 -0
- package/controls/layout/tocontrolheight.pipe.ngfactory.d.ts +2 -0
- package/controls/layout/tocontrolheight.pipe.ngfactory.d.ts.map +1 -0
- package/controls/layout/tocontrolwidthcss.pipe.d.ts +17 -0
- package/controls/layout/tocontrolwidthcss.pipe.d.ts.map +1 -0
- package/controls/layout/tocontrolwidthcss.pipe.ngfactory.d.ts +2 -0
- package/controls/layout/tocontrolwidthcss.pipe.ngfactory.d.ts.map +1 -0
- package/controls/layout/tolabelheight.pipe.d.ts +10 -0
- package/controls/layout/tolabelheight.pipe.d.ts.map +1 -0
- package/controls/layout/tolabelheight.pipe.ngfactory.d.ts +2 -0
- package/controls/layout/tolabelheight.pipe.ngfactory.d.ts.map +1 -0
- package/controls/layout/tolabelwidthcss.pipe.d.ts +11 -0
- package/controls/layout/tolabelwidthcss.pipe.d.ts.map +1 -0
- package/controls/layout/tolabelwidthcss.pipe.ngfactory.d.ts +2 -0
- package/controls/layout/tolabelwidthcss.pipe.ngfactory.d.ts.map +1 -0
- package/controls/list/dropdown.d.ts +29 -0
- package/controls/list/dropdown.d.ts.map +1 -0
- package/controls/list/dropdown.module.d.ts +3 -0
- package/controls/list/dropdown.module.d.ts.map +1 -0
- package/controls/list/dropdown.module.ngfactory.d.ts +4 -0
- package/controls/list/dropdown.module.ngfactory.d.ts.map +1 -0
- package/controls/list/dropdown.ngfactory.d.ts +2 -0
- package/controls/list/dropdown.ngfactory.d.ts.map +1 -0
- package/controls/list/list.module.d.ts +3 -0
- package/controls/list/list.module.d.ts.map +1 -0
- package/controls/list/list.module.ngfactory.d.ts +4 -0
- package/controls/list/list.module.ngfactory.d.ts.map +1 -0
- package/controls/list/listbox.d.ts +27 -0
- package/controls/list/listbox.d.ts.map +1 -0
- package/controls/list/listbox.ngfactory.d.ts +2 -0
- package/controls/list/listbox.ngfactory.d.ts.map +1 -0
- package/controls/multilanguage/multilanguage.module.d.ts +3 -0
- package/controls/multilanguage/multilanguage.module.d.ts.map +1 -0
- package/controls/multilanguage/multilanguage.module.ngfactory.d.ts +4 -0
- package/controls/multilanguage/multilanguage.module.ngfactory.d.ts.map +1 -0
- package/controls/multilanguage/multilanguageinput.d.ts +19 -0
- package/controls/multilanguage/multilanguageinput.d.ts.map +1 -0
- package/controls/multilanguage/multilanguageinput.ngfactory.d.ts +2 -0
- package/controls/multilanguage/multilanguageinput.ngfactory.d.ts.map +1 -0
- package/controls/multilanguage/multilanguageinputarea.d.ts +19 -0
- package/controls/multilanguage/multilanguageinputarea.d.ts.map +1 -0
- package/controls/multilanguage/multilanguageinputarea.ngfactory.d.ts +2 -0
- package/controls/multilanguage/multilanguageinputarea.ngfactory.d.ts.map +1 -0
- package/controls/multilanguage/multilanguagemenu.d.ts +25 -0
- package/controls/multilanguage/multilanguagemenu.d.ts.map +1 -0
- package/controls/multilanguage/multilanguagemenu.ngfactory.d.ts +2 -0
- package/controls/multilanguage/multilanguagemenu.ngfactory.d.ts.map +1 -0
- package/controls/multilanguage/multilanguagemenuanchor.d.ts +13 -0
- package/controls/multilanguage/multilanguagemenuanchor.d.ts.map +1 -0
- package/controls/multilanguage/multilanguagemenuanchor.ngfactory.d.ts +2 -0
- package/controls/multilanguage/multilanguagemenuanchor.ngfactory.d.ts.map +1 -0
- package/controls/multilanguage/multilanguagemenucontainer.d.ts +13 -0
- package/controls/multilanguage/multilanguagemenucontainer.d.ts.map +1 -0
- package/controls/multilanguage/multilanguagemenucontainer.ngfactory.d.ts +2 -0
- package/controls/multilanguage/multilanguagemenucontainer.ngfactory.d.ts.map +1 -0
- package/controls/multilanguage/multilanguagemenuitembutton.d.ts +12 -0
- package/controls/multilanguage/multilanguagemenuitembutton.d.ts.map +1 -0
- package/controls/multilanguage/multilanguagemenuitembutton.ngfactory.d.ts +2 -0
- package/controls/multilanguage/multilanguagemenuitembutton.ngfactory.d.ts.map +1 -0
- package/controls/static/formcontainer.d.ts +26 -0
- package/controls/static/formcontainer.d.ts.map +1 -0
- package/controls/static/formcontainer.ngfactory.d.ts +2 -0
- package/controls/static/formcontainer.ngfactory.d.ts.map +1 -0
- package/controls/static/staticlabel.d.ts +15 -0
- package/controls/static/staticlabel.d.ts.map +1 -0
- package/controls/static/staticlabel.module.d.ts +3 -0
- package/controls/static/staticlabel.module.d.ts.map +1 -0
- package/controls/static/staticlabel.module.ngfactory.d.ts +4 -0
- package/controls/static/staticlabel.module.ngfactory.d.ts.map +1 -0
- package/controls/static/staticlabel.ngfactory.d.ts +2 -0
- package/controls/static/staticlabel.ngfactory.d.ts.map +1 -0
- package/controls/tabs/tab.d.ts +18 -0
- package/controls/tabs/tab.d.ts.map +1 -0
- package/controls/tabs/tab.ngfactory.d.ts +2 -0
- package/controls/tabs/tab.ngfactory.d.ts.map +1 -0
- package/controls/tabs/tabitem.d.ts +7 -0
- package/controls/tabs/tabitem.d.ts.map +1 -0
- package/controls/tabs/tabitem.ngfactory.d.ts +2 -0
- package/controls/tabs/tabitem.ngfactory.d.ts.map +1 -0
- package/controls/tabs/tabs.module.d.ts +3 -0
- package/controls/tabs/tabs.module.d.ts.map +1 -0
- package/controls/tabs/tabs.module.ngfactory.d.ts +4 -0
- package/controls/tabs/tabs.module.ngfactory.d.ts.map +1 -0
- package/controls/tinymce/tinymce.d.ts +21 -0
- package/controls/tinymce/tinymce.d.ts.map +1 -0
- package/controls/tinymce/tinymce.module.d.ts +3 -0
- package/controls/tinymce/tinymce.module.d.ts.map +1 -0
- package/controls/tinymce/tinymce.module.ngfactory.d.ts +4 -0
- package/controls/tinymce/tinymce.module.ngfactory.d.ts.map +1 -0
- package/controls/tinymce/tinymce.ngfactory.d.ts +2 -0
- package/controls/tinymce/tinymce.ngfactory.d.ts.map +1 -0
- package/controls/tinymce/tinymce.scss.ngstyle.d.ts +2 -0
- package/controls/tinymce/tinymce.scss.ngstyle.d.ts.map +1 -0
- package/controls/tinymce/tinymce.scss.shim.ngstyle.d.ts +2 -0
- package/controls/tinymce/tinymce.scss.shim.ngstyle.d.ts.map +1 -0
- package/controls/upload/dropzone.scss.ngstyle.d.ts +2 -0
- package/controls/upload/dropzone.scss.ngstyle.d.ts.map +1 -0
- package/controls/upload/dropzone.scss.shim.ngstyle.d.ts +2 -0
- package/controls/upload/dropzone.scss.shim.ngstyle.d.ts.map +1 -0
- package/controls/upload/dropzonemultiple.d.ts +22 -0
- package/controls/upload/dropzonemultiple.d.ts.map +1 -0
- package/controls/upload/dropzonemultiple.ngfactory.d.ts +2 -0
- package/controls/upload/dropzonemultiple.ngfactory.d.ts.map +1 -0
- package/controls/upload/dropzonesingle.d.ts +22 -0
- package/controls/upload/dropzonesingle.d.ts.map +1 -0
- package/controls/upload/dropzonesingle.ngfactory.d.ts +2 -0
- package/controls/upload/dropzonesingle.ngfactory.d.ts.map +1 -0
- package/controls/upload/upload.d.ts +18 -0
- package/controls/upload/upload.d.ts.map +1 -0
- package/controls/upload/upload.module.d.ts +3 -0
- package/controls/upload/upload.module.d.ts.map +1 -0
- package/controls/upload/upload.module.ngfactory.d.ts +4 -0
- package/controls/upload/upload.module.ngfactory.d.ts.map +1 -0
- package/controls/upload/upload.ngfactory.d.ts +2 -0
- package/controls/upload/upload.ngfactory.d.ts.map +1 -0
- package/controls/upload/upload.scss.ngstyle.d.ts +2 -0
- package/controls/upload/upload.scss.ngstyle.d.ts.map +1 -0
- package/controls/upload/upload.scss.shim.ngstyle.d.ts +2 -0
- package/controls/upload/upload.scss.shim.ngstyle.d.ts.map +1 -0
- package/controls/upload/uploadmultiple.d.ts +18 -0
- package/controls/upload/uploadmultiple.d.ts.map +1 -0
- package/controls/upload/uploadmultiple.ngfactory.d.ts +2 -0
- package/controls/upload/uploadmultiple.ngfactory.d.ts.map +1 -0
- package/controls/validation/validationsummary.d.ts +15 -0
- package/controls/validation/validationsummary.d.ts.map +1 -0
- package/controls/validation/validationsummary.module.d.ts +3 -0
- package/controls/validation/validationsummary.module.d.ts.map +1 -0
- package/controls/validation/validationsummary.module.ngfactory.d.ts +4 -0
- package/controls/validation/validationsummary.module.ngfactory.d.ts.map +1 -0
- package/controls/validation/validationsummary.ngfactory.d.ts +2 -0
- package/controls/validation/validationsummary.ngfactory.d.ts.map +1 -0
- package/controls/wizard/wizard.d.ts +18 -0
- package/controls/wizard/wizard.d.ts.map +1 -0
- package/controls/wizard/wizard.module.d.ts +3 -0
- package/controls/wizard/wizard.module.d.ts.map +1 -0
- package/controls/wizard/wizard.module.ngfactory.d.ts +4 -0
- package/controls/wizard/wizard.module.ngfactory.d.ts.map +1 -0
- package/controls/wizard/wizard.ngfactory.d.ts +2 -0
- package/controls/wizard/wizard.ngfactory.d.ts.map +1 -0
- package/controls/wizard/wizarditem.d.ts +7 -0
- package/controls/wizard/wizarditem.d.ts.map +1 -0
- package/controls/wizard/wizarditem.ngfactory.d.ts +2 -0
- package/controls/wizard/wizarditem.ngfactory.d.ts.map +1 -0
- package/esm2015/components/browser/browser.js +109 -0
- package/esm2015/components/browser/browser.module.js +28 -0
- package/esm2015/components/browser/browser.module.ngfactory.js +7 -0
- package/esm2015/components/browser/browser.ngfactory.js +7 -0
- package/esm2015/controls/buttons/button.js +16 -0
- package/esm2015/controls/buttons/button.module.js +15 -0
- package/esm2015/controls/buttons/button.module.ngfactory.js +7 -0
- package/esm2015/controls/buttons/button.ngfactory.js +7 -0
- package/esm2015/controls/checkbox/checkbox.js +44 -0
- package/esm2015/controls/checkbox/checkbox.module.js +24 -0
- package/esm2015/controls/checkbox/checkbox.module.ngfactory.js +7 -0
- package/esm2015/controls/checkbox/checkbox.ngfactory.js +7 -0
- package/esm2015/controls/checkbox/checkbox.scss.ngstyle.js +7 -0
- package/esm2015/controls/checkbox/checkbox.scss.shim.ngstyle.js +7 -0
- package/esm2015/controls/checkbox/radiobutton.js +26 -0
- package/esm2015/controls/checkbox/radiobutton.ngfactory.js +7 -0
- package/esm2015/controls/checkbox/radiobutton.scss.ngstyle.js +7 -0
- package/esm2015/controls/checkbox/radiobutton.scss.shim.ngstyle.js +7 -0
- package/esm2015/controls/checkbox/radiobuttons.js +42 -0
- package/esm2015/controls/checkbox/radiobuttons.ngfactory.js +7 -0
- package/esm2015/controls/confirm/confirm.js +14 -0
- package/esm2015/controls/confirm/confirm.module.js +31 -0
- package/esm2015/controls/confirm/confirm.module.ngfactory.js +7 -0
- package/esm2015/controls/confirm/confirm.ngfactory.js +7 -0
- package/esm2015/controls/confirm/confirm.service.js +102 -0
- package/esm2015/controls/confirm/confirm.service.ngfactory.js +7 -0
- package/esm2015/controls/contextmenu/contextmenu.js +40 -0
- package/esm2015/controls/contextmenu/contextmenu.module.js +28 -0
- package/esm2015/controls/contextmenu/contextmenu.module.ngfactory.js +7 -0
- package/esm2015/controls/contextmenu/contextmenu.ngfactory.js +7 -0
- package/esm2015/controls/contextmenu/contextmenuanchor.js +30 -0
- package/esm2015/controls/contextmenu/contextmenuanchor.ngfactory.js +7 -0
- package/esm2015/controls/contextmenu/contextmenucontainer.js +30 -0
- package/esm2015/controls/contextmenu/contextmenucontainer.ngfactory.js +7 -0
- package/esm2015/controls/contextmenu/contextmenuitembutton.js +24 -0
- package/esm2015/controls/contextmenu/contextmenuitembutton.ngfactory.js +7 -0
- package/esm2015/controls/contextmenu/contextmenuitemsplitter.js +14 -0
- package/esm2015/controls/contextmenu/contextmenuitemsplitter.ngfactory.js +7 -0
- package/esm2015/controls/datetime/date.js +50 -0
- package/esm2015/controls/datetime/date.ngfactory.js +7 -0
- package/esm2015/controls/datetime/dateselector.js +14 -0
- package/esm2015/controls/datetime/dateselector.ngfactory.js +7 -0
- package/esm2015/controls/datetime/datetime.js +44 -0
- package/esm2015/controls/datetime/datetime.module.js +28 -0
- package/esm2015/controls/datetime/datetime.module.ngfactory.js +7 -0
- package/esm2015/controls/datetime/datetime.ngfactory.js +7 -0
- package/esm2015/controls/datetime/time.js +44 -0
- package/esm2015/controls/datetime/time.ngfactory.js +7 -0
- package/esm2015/controls/dialog/dialog.js +44 -0
- package/esm2015/controls/dialog/dialog.module.js +15 -0
- package/esm2015/controls/dialog/dialog.module.ngfactory.js +7 -0
- package/esm2015/controls/dialog/dialog.ngfactory.js +7 -0
- package/esm2015/controls/form/form.js +41 -0
- package/esm2015/controls/form/form.module.js +15 -0
- package/esm2015/controls/form/form.module.ngfactory.js +7 -0
- package/esm2015/controls/form/form.ngfactory.js +7 -0
- package/esm2015/controls/form/inheritform.directive.js +71 -0
- package/esm2015/controls/form/inheritform.directive.ngfactory.js +7 -0
- package/esm2015/controls/grid/grid.js +44 -0
- package/esm2015/controls/grid/grid.module.js +21 -0
- package/esm2015/controls/grid/grid.module.ngfactory.js +7 -0
- package/esm2015/controls/grid/grid.ngfactory.js +7 -0
- package/esm2015/controls/grid/gridbutton.js +47 -0
- package/esm2015/controls/grid/gridbutton.ngfactory.js +7 -0
- package/esm2015/controls/grid/gridcolumn.js +34 -0
- package/esm2015/controls/grid/gridcolumn.ngfactory.js +7 -0
- package/esm2015/controls/grid/gridcolumnaction.js +35 -0
- package/esm2015/controls/grid/gridcolumnaction.ngfactory.js +7 -0
- package/esm2015/controls/grid/gridimage.js +28 -0
- package/esm2015/controls/grid/gridimage.ngfactory.js +7 -0
- package/esm2015/controls/grid/paging.js +34 -0
- package/esm2015/controls/grid/paging.ngfactory.js +7 -0
- package/esm2015/controls/input/input.js +38 -0
- package/esm2015/controls/input/input.module.js +39 -0
- package/esm2015/controls/input/input.module.ngfactory.js +7 -0
- package/esm2015/controls/input/input.ngfactory.js +7 -0
- package/esm2015/controls/input/inputarea.js +42 -0
- package/esm2015/controls/input/inputarea.ngfactory.js +7 -0
- package/esm2015/controls/input/inputcurrency.js +42 -0
- package/esm2015/controls/input/inputcurrency.ngfactory.js +7 -0
- package/esm2015/controls/input/inputdecimal.js +42 -0
- package/esm2015/controls/input/inputdecimal.ngfactory.js +7 -0
- package/esm2015/controls/input/inputemail.js +42 -0
- package/esm2015/controls/input/inputemail.ngfactory.js +7 -0
- package/esm2015/controls/input/inputinteger.js +42 -0
- package/esm2015/controls/input/inputinteger.ngfactory.js +7 -0
- package/esm2015/controls/input/inputpassword.js +42 -0
- package/esm2015/controls/input/inputpassword.ngfactory.js +7 -0
- package/esm2015/controls/input/inputsearch.js +42 -0
- package/esm2015/controls/input/inputsearch.ngfactory.js +7 -0
- package/esm2015/controls/layout/formlayout.directive.js +10 -0
- package/esm2015/controls/layout/formlayout.directive.ngfactory.js +7 -0
- package/esm2015/controls/layout/layout.module.js +29 -0
- package/esm2015/controls/layout/layout.module.ngfactory.js +7 -0
- package/esm2015/controls/layout/tocontrolheight.pipe.js +29 -0
- package/esm2015/controls/layout/tocontrolheight.pipe.ngfactory.js +7 -0
- package/esm2015/controls/layout/tocontrolwidthcss.pipe.js +53 -0
- package/esm2015/controls/layout/tocontrolwidthcss.pipe.ngfactory.js +7 -0
- package/esm2015/controls/layout/tolabelheight.pipe.js +29 -0
- package/esm2015/controls/layout/tolabelheight.pipe.ngfactory.js +7 -0
- package/esm2015/controls/layout/tolabelwidthcss.pipe.js +37 -0
- package/esm2015/controls/layout/tolabelwidthcss.pipe.ngfactory.js +7 -0
- package/esm2015/controls/list/dropdown.js +71 -0
- package/esm2015/controls/list/dropdown.module.js +14 -0
- package/esm2015/controls/list/dropdown.module.ngfactory.js +7 -0
- package/esm2015/controls/list/dropdown.ngfactory.js +7 -0
- package/esm2015/controls/list/list.module.js +14 -0
- package/esm2015/controls/list/list.module.ngfactory.js +7 -0
- package/esm2015/controls/list/listbox.js +67 -0
- package/esm2015/controls/list/listbox.ngfactory.js +7 -0
- package/esm2015/controls/multilanguage/multilanguage.module.js +26 -0
- package/esm2015/controls/multilanguage/multilanguage.module.ngfactory.js +7 -0
- package/esm2015/controls/multilanguage/multilanguageinput.js +48 -0
- package/esm2015/controls/multilanguage/multilanguageinput.ngfactory.js +7 -0
- package/esm2015/controls/multilanguage/multilanguageinputarea.js +48 -0
- package/esm2015/controls/multilanguage/multilanguageinputarea.ngfactory.js +7 -0
- package/esm2015/controls/multilanguage/multilanguagemenu.js +45 -0
- package/esm2015/controls/multilanguage/multilanguagemenu.ngfactory.js +7 -0
- package/esm2015/controls/multilanguage/multilanguagemenuanchor.js +30 -0
- package/esm2015/controls/multilanguage/multilanguagemenuanchor.ngfactory.js +7 -0
- package/esm2015/controls/multilanguage/multilanguagemenucontainer.js +30 -0
- package/esm2015/controls/multilanguage/multilanguagemenucontainer.ngfactory.js +7 -0
- package/esm2015/controls/multilanguage/multilanguagemenuitembutton.js +24 -0
- package/esm2015/controls/multilanguage/multilanguagemenuitembutton.ngfactory.js +7 -0
- package/esm2015/controls/static/formcontainer.js +53 -0
- package/esm2015/controls/static/formcontainer.ngfactory.js +7 -0
- package/esm2015/controls/static/staticlabel.js +42 -0
- package/esm2015/controls/static/staticlabel.module.js +15 -0
- package/esm2015/controls/static/staticlabel.module.ngfactory.js +7 -0
- package/esm2015/controls/static/staticlabel.ngfactory.js +7 -0
- package/esm2015/controls/tabs/tab.js +25 -0
- package/esm2015/controls/tabs/tab.ngfactory.js +7 -0
- package/esm2015/controls/tabs/tabitem.js +14 -0
- package/esm2015/controls/tabs/tabitem.ngfactory.js +7 -0
- package/esm2015/controls/tabs/tabs.module.js +14 -0
- package/esm2015/controls/tabs/tabs.module.ngfactory.js +7 -0
- package/esm2015/controls/tinymce/tinymce.js +54 -0
- package/esm2015/controls/tinymce/tinymce.module.js +27 -0
- package/esm2015/controls/tinymce/tinymce.module.ngfactory.js +7 -0
- package/esm2015/controls/tinymce/tinymce.ngfactory.js +7 -0
- package/esm2015/controls/tinymce/tinymce.scss.ngstyle.js +7 -0
- package/esm2015/controls/tinymce/tinymce.scss.shim.ngstyle.js +7 -0
- package/esm2015/controls/upload/dropzone.scss.ngstyle.js +7 -0
- package/esm2015/controls/upload/dropzone.scss.shim.ngstyle.js +7 -0
- package/esm2015/controls/upload/dropzonemultiple.js +55 -0
- package/esm2015/controls/upload/dropzonemultiple.ngfactory.js +7 -0
- package/esm2015/controls/upload/dropzonesingle.js +55 -0
- package/esm2015/controls/upload/dropzonesingle.ngfactory.js +7 -0
- package/esm2015/controls/upload/upload.js +47 -0
- package/esm2015/controls/upload/upload.module.js +28 -0
- package/esm2015/controls/upload/upload.module.ngfactory.js +7 -0
- package/esm2015/controls/upload/upload.ngfactory.js +7 -0
- package/esm2015/controls/upload/upload.scss.ngstyle.js +7 -0
- package/esm2015/controls/upload/upload.scss.shim.ngstyle.js +7 -0
- package/esm2015/controls/upload/uploadmultiple.js +47 -0
- package/esm2015/controls/upload/uploadmultiple.ngfactory.js +7 -0
- package/esm2015/controls/validation/validationsummary.js +37 -0
- package/esm2015/controls/validation/validationsummary.module.js +15 -0
- package/esm2015/controls/validation/validationsummary.module.ngfactory.js +7 -0
- package/esm2015/controls/validation/validationsummary.ngfactory.js +7 -0
- package/esm2015/controls/wizard/wizard.js +30 -0
- package/esm2015/controls/wizard/wizard.module.js +15 -0
- package/esm2015/controls/wizard/wizard.module.ngfactory.js +7 -0
- package/esm2015/controls/wizard/wizard.ngfactory.js +7 -0
- package/esm2015/controls/wizard/wizarditem.js +14 -0
- package/esm2015/controls/wizard/wizarditem.ngfactory.js +7 -0
- package/esm2015/public-api.js +25 -0
- package/esm2015/public-api.ngfactory.js +7 -0
- package/esm2015/simpleangularcontrols-sac-bootstrap5.js +61 -0
- package/esm2015/simpleangularcontrols-sac-bootstrap5.ngfactory.js +7 -0
- package/fesm2015/simpleangularcontrols-sac-bootstrap5.js +2495 -0
- package/fesm2015/simpleangularcontrols-sac-bootstrap5.js.map +1 -0
- package/package.json +32 -0
- package/public-api.d.ts +22 -0
- package/public-api.d.ts.map +1 -0
- package/public-api.ngfactory.d.ts +2 -0
- package/public-api.ngfactory.d.ts.map +1 -0
- package/simpleangularcontrols-sac-bootstrap5-10.0.0-rc.1.tgz +0 -0
- package/simpleangularcontrols-sac-bootstrap5.d.ts +61 -0
- package/simpleangularcontrols-sac-bootstrap5.d.ts.map +1 -0
- package/simpleangularcontrols-sac-bootstrap5.metadata.json +1 -0
- package/simpleangularcontrols-sac-bootstrap5.ngfactory.d.ts +2 -0
- package/simpleangularcontrols-sac-bootstrap5.ngfactory.d.ts.map +1 -0
|
@@ -0,0 +1,2495 @@
|
|
|
1
|
+
import { CommonModule, DOCUMENT } from '@angular/common';
|
|
2
|
+
import { HttpClient, HttpClientModule } from '@angular/common/http';
|
|
3
|
+
import { Component, NgModule, ElementRef, ChangeDetectorRef, Injectable, ComponentFactoryResolver, Inject, ApplicationRef, Injector, forwardRef, NgZone, Renderer2, Directive, HostBinding, SkipSelf, Pipe, Host, Optional, ViewChild, ContentChild, TemplateRef, Input, ContentChildren } from '@angular/core';
|
|
4
|
+
import { NgForm, ControlContainer, FormsModule, NG_VALUE_ACCESSOR, NG_VALIDATORS } from '@angular/forms';
|
|
5
|
+
import { SacButtonCommon, SacDialogCommon, SacConfirmCommon, ServiceConfirmCommon, isDefined, SacConfirmButton, SacContextmenuCommon, SacContextmenuItemButtonCommon, SacContextmenuItemCommon, SacContextmenuAnchorCommon, SacContextMenuContrainerCommon, SacFormCommon, SacFormLayoutCommon, ControlHeight, SacDropzoneMultipleCommon, SacDropzoneSingleCommon, SacUploadSingleCommon, SacUploadMultipleCommon, SacFileBrowserCommon, SacCheckboxCommon, SacRadiobuttonsCommon, SacRadiobuttonCommon, SacDateCommon, SacDateSelectorCommon, SacDateTimeCommon, SacTimeCommon, SacGridCommon, SacGridButtonCommon, SacGridColumnCommon, SacGridColumnBaseCommon, SacGridColumnActionCommon, SacGridImageCommon, SacPagingCommon, SacInputCommon, SacInputAreaCommon, SacInputCurrencyCommon, SacInputDecimalCommon, SacInputEmailCommon, SacInputIntegerCommon, SacInputPasswordCommon, SacInputSearchCommon, SacDropdownCommon, SacDropdownOptionCommon, SacListboxCommon, SacListboxOptionCommon, SacMultilanguageInputCommon, IconType, SacMultilanguageInputAreaCommon, SacStaticFormContainerCommon, SacStaticLabelCommon, SacTabItemCommon, SacTabCommon, SacTinyMceCommon, SacValidationSummaryCommon, SacWizardItemCommon, SacWizardCommon } from '@simpleangularcontrols/sac-common';
|
|
6
|
+
import { forkJoin, Observable } from 'rxjs';
|
|
7
|
+
import { take } from 'rxjs/operators';
|
|
8
|
+
import { IMaskModule } from 'angular-imask';
|
|
9
|
+
import moment_ from 'moment';
|
|
10
|
+
import { EditorModule } from '@tinymce/tinymce-angular';
|
|
11
|
+
|
|
12
|
+
/**
|
|
13
|
+
* Button Component
|
|
14
|
+
*
|
|
15
|
+
* <example-url>http://localhost/demo/mysample.component.html</example-url>
|
|
16
|
+
*/
|
|
17
|
+
class SacButtonComponent extends SacButtonCommon {
|
|
18
|
+
}
|
|
19
|
+
SacButtonComponent.decorators = [
|
|
20
|
+
{ type: Component, args: [{
|
|
21
|
+
selector: 'sac-button',
|
|
22
|
+
template: "<button\r\n [id]=\"name\"\r\n type=\"button\"\r\n class=\"btn d-flex justify-content-center align-items-center\"\r\n [attr.disabled]=\"_isdisabled || isloading ? 'disabled' : null\"\r\n (click)=\"buttonClick()\"\r\n [class.btn-primary]=\"role === 'primary'\"\r\n [class.btn-secondary]=\"role === 'secondary' || role === 'default'\"\r\n [class.btn-success]=\"role === 'success'\"\r\n [class.btn-danger]=\"role === 'danger'\"\r\n [class.btn-warning]=\"role === 'warning'\"\r\n [class.btn-info]=\"role === 'info'\"\r\n [class.btn-link]=\"role === 'link'\"\r\n>\r\n <span\r\n *ngIf=\"isloading\"\r\n class=\"spinner-border spinner-border-sm me-2\"\r\n role=\"status\"\r\n aria-hidden=\"true\"\r\n ></span>\r\n <i *ngIf=\"!isloading && icon !== ''\" [ngClass]=\"icon\" [class.me-2]=\"text\"></i\r\n >{{text}}\r\n</button>\r\n"
|
|
23
|
+
},] }
|
|
24
|
+
];
|
|
25
|
+
|
|
26
|
+
class SACBootstrap5ButtonModule {
|
|
27
|
+
}
|
|
28
|
+
SACBootstrap5ButtonModule.decorators = [
|
|
29
|
+
{ type: NgModule, args: [{
|
|
30
|
+
declarations: [SacButtonComponent],
|
|
31
|
+
imports: [
|
|
32
|
+
CommonModule
|
|
33
|
+
],
|
|
34
|
+
exports: [SacButtonComponent]
|
|
35
|
+
},] }
|
|
36
|
+
];
|
|
37
|
+
|
|
38
|
+
/**
|
|
39
|
+
* Dialog Komponente
|
|
40
|
+
*/
|
|
41
|
+
class SacDialogComponent extends SacDialogCommon {
|
|
42
|
+
/**
|
|
43
|
+
* Konstruktor
|
|
44
|
+
* @param el DOM Element Referenz
|
|
45
|
+
* @param cdRef Change Detection Service
|
|
46
|
+
*/
|
|
47
|
+
constructor(el, cdRef) {
|
|
48
|
+
super(cdRef);
|
|
49
|
+
this.element = el.nativeElement;
|
|
50
|
+
}
|
|
51
|
+
/**
|
|
52
|
+
* Event wenn Komponente initialisiert wird
|
|
53
|
+
*/
|
|
54
|
+
ngOnInit() {
|
|
55
|
+
// Element an Body für korrektes Styling unter Bootstrap 3 verschieben
|
|
56
|
+
document.body.appendChild(this.element);
|
|
57
|
+
}
|
|
58
|
+
/**
|
|
59
|
+
* Event wenn Element entfernt wird
|
|
60
|
+
*/
|
|
61
|
+
ngOnDestroy() {
|
|
62
|
+
this.hide();
|
|
63
|
+
if (document.body.contains(this.element)) {
|
|
64
|
+
document.body.removeChild(this.element);
|
|
65
|
+
}
|
|
66
|
+
super.ngOnDestroy();
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
SacDialogComponent.decorators = [
|
|
70
|
+
{ type: Component, args: [{
|
|
71
|
+
selector: 'sac-dialog',
|
|
72
|
+
template: "<div\r\n #dialog\r\n class=\"modal show\"\r\n style=\"display: block\"\r\n tabindex=\"-1\"\r\n role=\"dialog\"\r\n *ngIf=\"_show\"\r\n>\r\n <div\r\n class=\"modal-dialog modal-lg modal-dialog-centered modal-dialog-scrollable\"\r\n role=\"document\"\r\n [class.modal-xl]=\"_size === 'extralarge'\"\r\n [class.modal-lg]=\"_size === 'large'\"\r\n [class.modal-sm]=\"_size === 'small'\"\r\n >\r\n <div class=\"modal-content\">\r\n <div class=\"modal-header\">\r\n <h5 class=\"modal-title\">{{title}}</h5>\r\n <button\r\n type=\"button\"\r\n class=\"btn-close\"\r\n data-dismiss=\"modal\"\r\n aria-label=\"Close\"\r\n (click)=\"hide()\"\r\n *ngIf=\"closebutton\"\r\n ></button>\r\n </div>\r\n <div class=\"modal-body\" [style.height]=\"height\">\r\n <ng-content select=\"[dialogbody]\"></ng-content>\r\n </div>\r\n <div class=\"modal-footer\">\r\n <ng-content select=\"[dialogfooter]\"></ng-content>\r\n </div>\r\n </div>\r\n <!-- /.modal-content -->\r\n </div>\r\n <!-- /.modal-dialog -->\r\n</div>\r\n<!-- /.modal -->\r\n<div class=\"modal-backdrop show\" *ngIf=\"_show && backdrop\" #backdrop></div>\r\n"
|
|
73
|
+
},] }
|
|
74
|
+
];
|
|
75
|
+
SacDialogComponent.ctorParameters = () => [
|
|
76
|
+
{ type: ElementRef },
|
|
77
|
+
{ type: ChangeDetectorRef }
|
|
78
|
+
];
|
|
79
|
+
|
|
80
|
+
class SACBootstrap5DialogModule {
|
|
81
|
+
}
|
|
82
|
+
SACBootstrap5DialogModule.decorators = [
|
|
83
|
+
{ type: NgModule, args: [{
|
|
84
|
+
declarations: [SacDialogComponent],
|
|
85
|
+
imports: [
|
|
86
|
+
CommonModule
|
|
87
|
+
],
|
|
88
|
+
exports: [SacDialogComponent]
|
|
89
|
+
},] }
|
|
90
|
+
];
|
|
91
|
+
|
|
92
|
+
/**
|
|
93
|
+
* Confirm Komponente
|
|
94
|
+
*/
|
|
95
|
+
class SacConfirmComponent extends SacConfirmCommon {
|
|
96
|
+
}
|
|
97
|
+
SacConfirmComponent.decorators = [
|
|
98
|
+
{ type: Component, args: [{
|
|
99
|
+
selector: 'sac-confirm',
|
|
100
|
+
template: "<sac-dialog\r\n [(isvisible)]=\"isvisible\"\r\n [title]=\"title\"\r\n [allowesc]=\"false\"\r\n [closebutton]=\"false\"\r\n dialogsize=\"small\"\r\n>\r\n <div dialogbody>\r\n <div class=\"d-flex align-items-center\">\r\n <div class=\"me-2\">\r\n <img\r\n [attr.src]=\"image\"\r\n class=\"align-self-center mr-3\"\r\n *ngIf=\"hasImage()\"\r\n />\r\n </div>\r\n <div class=\"flex-grow-1\">{{message}}</div>\r\n </div>\r\n </div>\r\n <ng-container dialogfooter>\r\n <ng-container *ngFor=\"let button of buttons\">\r\n <sac-button\r\n [name]=\"button.key\"\r\n [text]=\"button.text\"\r\n [role]=\"button.role || 'default'\"\r\n (clicked)=\"confirm(button.key)\"\r\n ></sac-button>\r\n </ng-container>\r\n </ng-container>\r\n</sac-dialog>\r\n"
|
|
101
|
+
},] }
|
|
102
|
+
];
|
|
103
|
+
|
|
104
|
+
/**
|
|
105
|
+
* Service für Confirm Messages in TypeScript Code
|
|
106
|
+
*
|
|
107
|
+
* @example
|
|
108
|
+
* // Beispiel für ConfirmMessage mit Standard Buttons (Ja / Nein).
|
|
109
|
+
* confirmService.ConfirmMessage('titel', 'frage').subscribe(action => { // Action Code });
|
|
110
|
+
*
|
|
111
|
+
* @example
|
|
112
|
+
* // Beispiel für ConfirmMessage mit eigenen Buttons
|
|
113
|
+
* let buttons: SacConfirmButton[] = [];
|
|
114
|
+
* buttons.push(new SacConfirmButton('ActionKey','Text Primary'));
|
|
115
|
+
* buttons.push(new SacConfirmButton('ActionKey2','Text Button 2'));
|
|
116
|
+
* confirmService.ConfirmMessage('titel', 'frage', buttons).subscribe(action => { // Action Code });
|
|
117
|
+
*/
|
|
118
|
+
class ServiceConfirm extends ServiceConfirmCommon {
|
|
119
|
+
// #endregion Properties
|
|
120
|
+
// #region Constructors
|
|
121
|
+
/**
|
|
122
|
+
* Konstruktor
|
|
123
|
+
* @param componentFactoryResolver Component Factory Resolver Instanz
|
|
124
|
+
* @param appRef Application Referenz. Wird benötigt um den Dialog am Body anzuhängen
|
|
125
|
+
* @param injector Injector. Wird benötigt um den Dialog dynamisch zu erzeugen
|
|
126
|
+
*/
|
|
127
|
+
constructor(componentFactoryResolver, appRef, injector) {
|
|
128
|
+
super(appRef, injector);
|
|
129
|
+
this.componentFactoryResolver = componentFactoryResolver;
|
|
130
|
+
// #region Properties
|
|
131
|
+
/**
|
|
132
|
+
* Collection von Buttons die angezeigt werden müssen.
|
|
133
|
+
*/
|
|
134
|
+
this.buttons = [];
|
|
135
|
+
/**
|
|
136
|
+
* Message die in Dialog angezeigt werden soll.
|
|
137
|
+
*/
|
|
138
|
+
this.message = '';
|
|
139
|
+
/**
|
|
140
|
+
* Titel der im Dialog angezeigt werden soll.
|
|
141
|
+
*/
|
|
142
|
+
this.title = '';
|
|
143
|
+
}
|
|
144
|
+
// #endregion Constructors
|
|
145
|
+
// #region Public Methods
|
|
146
|
+
/**
|
|
147
|
+
* Confirm Dialog anzeigen
|
|
148
|
+
* @param message Nachricht die angezeigt werden soll.
|
|
149
|
+
* @returns EventEmitter mit Key des Buttons, welcher geklickt wurde.
|
|
150
|
+
*/
|
|
151
|
+
ConfirmMessage(title, message, buttons = null) {
|
|
152
|
+
this.title = title;
|
|
153
|
+
this.message = message;
|
|
154
|
+
// Default Buttons setzen, wenn keine Buttons angegeben sind
|
|
155
|
+
if (!isDefined(buttons)) {
|
|
156
|
+
this.buttons = [];
|
|
157
|
+
forkJoin({
|
|
158
|
+
button_yes: this.localisationService.GetString(this.validationKeyService.ConfirmDefaultButtonYes),
|
|
159
|
+
button_no: this.localisationService.GetString(this.validationKeyService.ConfirmDefaultButtonNo),
|
|
160
|
+
})
|
|
161
|
+
.pipe(take(1))
|
|
162
|
+
.subscribe((texte) => {
|
|
163
|
+
this.buttons.push(new SacConfirmButton('yes', texte.button_yes, 'primary'));
|
|
164
|
+
this.buttons.push(new SacConfirmButton('no', texte.button_no));
|
|
165
|
+
});
|
|
166
|
+
}
|
|
167
|
+
else {
|
|
168
|
+
this.buttons = buttons;
|
|
169
|
+
}
|
|
170
|
+
return super.Confirm();
|
|
171
|
+
}
|
|
172
|
+
/**
|
|
173
|
+
* Erzeugen einer Component Factory für einen Dialog
|
|
174
|
+
*/
|
|
175
|
+
GetComponentFactory() {
|
|
176
|
+
return this.componentFactoryResolver.resolveComponentFactory(SacConfirmComponent);
|
|
177
|
+
}
|
|
178
|
+
// #endregion Public Methods
|
|
179
|
+
// #region Protected Methods
|
|
180
|
+
/**
|
|
181
|
+
* Konfiguration des Dialogs
|
|
182
|
+
* @param instance Instanz eines SacConfirm Dialogs
|
|
183
|
+
*/
|
|
184
|
+
ConfigureDialog(instance) {
|
|
185
|
+
// Text in Dialog setzen
|
|
186
|
+
instance.title = this.title;
|
|
187
|
+
instance.message = this.message;
|
|
188
|
+
instance.buttons = this.buttons;
|
|
189
|
+
instance.image = this.iconService.ConfirmDefaultImage;
|
|
190
|
+
}
|
|
191
|
+
}
|
|
192
|
+
ServiceConfirm.decorators = [
|
|
193
|
+
{ type: Injectable }
|
|
194
|
+
];
|
|
195
|
+
ServiceConfirm.ctorParameters = () => [
|
|
196
|
+
{ type: ComponentFactoryResolver, decorators: [{ type: Inject, args: [ComponentFactoryResolver,] }] },
|
|
197
|
+
{ type: ApplicationRef },
|
|
198
|
+
{ type: Injector }
|
|
199
|
+
];
|
|
200
|
+
|
|
201
|
+
/**
|
|
202
|
+
* Module für Confirm Messages
|
|
203
|
+
*
|
|
204
|
+
* In NgModule der Applikation folgenden Eintrag bei Imports einfügen: SACBootstrap5ConfirmModule.forRoot()
|
|
205
|
+
*
|
|
206
|
+
*/
|
|
207
|
+
class SACBootstrap5ConfirmModule {
|
|
208
|
+
// #region Public Static Methods
|
|
209
|
+
static forRoot() {
|
|
210
|
+
return {
|
|
211
|
+
ngModule: SACBootstrap5ConfirmModule,
|
|
212
|
+
providers: [ServiceConfirm],
|
|
213
|
+
};
|
|
214
|
+
}
|
|
215
|
+
}
|
|
216
|
+
SACBootstrap5ConfirmModule.decorators = [
|
|
217
|
+
{ type: NgModule, args: [{
|
|
218
|
+
declarations: [SacConfirmComponent],
|
|
219
|
+
imports: [CommonModule, SACBootstrap5DialogModule, SACBootstrap5ButtonModule],
|
|
220
|
+
exports: [SacConfirmComponent],
|
|
221
|
+
entryComponents: [SacConfirmComponent],
|
|
222
|
+
},] }
|
|
223
|
+
];
|
|
224
|
+
|
|
225
|
+
/**
|
|
226
|
+
* Component für Contextmenü
|
|
227
|
+
*/
|
|
228
|
+
class SacContextmenuComponent extends SacContextmenuCommon {
|
|
229
|
+
// #region Constructors
|
|
230
|
+
/**
|
|
231
|
+
* Constructor
|
|
232
|
+
* @param document Referenz auf HTML Document
|
|
233
|
+
* @param ngZone Angular Zone Service
|
|
234
|
+
* @param elementRef Referenz auf HTML Element der aktuellen Komponente
|
|
235
|
+
* @param renderer Render Service von Angular
|
|
236
|
+
* @param injector injector to resolve services
|
|
237
|
+
*/
|
|
238
|
+
constructor(document, ngZone, elementRef, renderer, injector) {
|
|
239
|
+
super(document, ngZone, elementRef, renderer, injector);
|
|
240
|
+
}
|
|
241
|
+
}
|
|
242
|
+
SacContextmenuComponent.decorators = [
|
|
243
|
+
{ type: Component, args: [{
|
|
244
|
+
selector: 'sac-contextmenu',
|
|
245
|
+
template: "<div class=\"dropdown\" [ngClass]=\"cssclass\">\r\n <ng-container\r\n [ngTemplateOutlet]=\"buttontemplate || defaultButtonTemplate\"\r\n ></ng-container>\r\n\r\n <ul\r\n class=\"dropdown-menu dropdown-menu-end\"\r\n sacContextMenuContainer\r\n [class.show]=\"isopen\"\r\n >\r\n <ng-content></ng-content>\r\n </ul>\r\n</div>\r\n\r\n<ng-template #defaultButtonTemplate>\r\n <button\r\n sacContextMenuAnchor\r\n class=\"btn btn-sm btn-link text-secondary text-decoration-none\"\r\n type=\"button\"\r\n (click)=\"toggle()\"\r\n >\r\n <i [class]=\"IconContextMenu\"></i>\r\n </button>\r\n</ng-template>\r\n",
|
|
246
|
+
providers: [
|
|
247
|
+
{
|
|
248
|
+
provide: SacContextmenuCommon,
|
|
249
|
+
useExisting: forwardRef(() => SacContextmenuComponent),
|
|
250
|
+
},
|
|
251
|
+
]
|
|
252
|
+
},] }
|
|
253
|
+
];
|
|
254
|
+
SacContextmenuComponent.ctorParameters = () => [
|
|
255
|
+
{ type: undefined, decorators: [{ type: Inject, args: [DOCUMENT,] }] },
|
|
256
|
+
{ type: NgZone },
|
|
257
|
+
{ type: ElementRef },
|
|
258
|
+
{ type: Renderer2 },
|
|
259
|
+
{ type: Injector }
|
|
260
|
+
];
|
|
261
|
+
|
|
262
|
+
/**
|
|
263
|
+
* Component für Menü Eintrag in Context Menü
|
|
264
|
+
*/
|
|
265
|
+
class SacContextmenuItemButtonComponent extends SacContextmenuItemButtonCommon {
|
|
266
|
+
/**
|
|
267
|
+
* Constructor
|
|
268
|
+
* @param contextmenu Instance von Context Menü
|
|
269
|
+
*/
|
|
270
|
+
constructor(contextmenu) {
|
|
271
|
+
super(contextmenu);
|
|
272
|
+
}
|
|
273
|
+
}
|
|
274
|
+
SacContextmenuItemButtonComponent.decorators = [
|
|
275
|
+
{ type: Component, args: [{
|
|
276
|
+
selector: 'sac-contextmenubutton',
|
|
277
|
+
template: "<li>\r\n <button\r\n type=\"button\"\r\n class=\"dropdown-item\"\r\n (click)=\"callaction($event)\"\r\n [class.disabled]=\"isdisabled\"\r\n [ngClass]=\"cssclass\"\r\n [attr.disabled]=\"isdisabled ? 'disabled' : null\"\r\n >\r\n <div class=\"d-flex\">\r\n <div *ngIf=\"!isicondisabled\" style=\"min-width: 1.5rem\">\r\n <img *ngIf=\"image\" [src]=\"image\" class=\"align-baseline\" />\r\n <i *ngIf=\"icon\" [class]=\"iconstyle + ' ' + icon\"></i>\r\n </div>\r\n <div class=\"flex-grow-1\">{{ text }}</div>\r\n </div>\r\n </button>\r\n</li>\r\n"
|
|
278
|
+
},] }
|
|
279
|
+
];
|
|
280
|
+
SacContextmenuItemButtonComponent.ctorParameters = () => [
|
|
281
|
+
{ type: SacContextmenuCommon }
|
|
282
|
+
];
|
|
283
|
+
|
|
284
|
+
/**
|
|
285
|
+
* Splitter Komponente in Context Menü
|
|
286
|
+
*/
|
|
287
|
+
class SacContextmenuItemSplitterComponent extends SacContextmenuItemCommon {
|
|
288
|
+
}
|
|
289
|
+
SacContextmenuItemSplitterComponent.decorators = [
|
|
290
|
+
{ type: Component, args: [{
|
|
291
|
+
selector: 'sac-contextmenusplitter',
|
|
292
|
+
template: "<li><div class=\"dropdown-divider\"></div></li>\r\n"
|
|
293
|
+
},] }
|
|
294
|
+
];
|
|
295
|
+
|
|
296
|
+
/**
|
|
297
|
+
* Anker Komponente für Context Menü. Wird zum positionieren des Context Menü in der Page benötigt.
|
|
298
|
+
*/
|
|
299
|
+
class SacContextmenuAnchorDirective extends SacContextmenuAnchorCommon {
|
|
300
|
+
// #region Constructors
|
|
301
|
+
/**
|
|
302
|
+
* Konstruktor
|
|
303
|
+
* @param elementRef HTML DOM Referenz
|
|
304
|
+
*/
|
|
305
|
+
constructor(elementRef) {
|
|
306
|
+
super(elementRef);
|
|
307
|
+
}
|
|
308
|
+
}
|
|
309
|
+
SacContextmenuAnchorDirective.decorators = [
|
|
310
|
+
{ type: Directive, args: [{
|
|
311
|
+
selector: '[sacContextMenuAnchor]',
|
|
312
|
+
providers: [
|
|
313
|
+
{
|
|
314
|
+
provide: SacContextmenuAnchorCommon,
|
|
315
|
+
useExisting: forwardRef(() => SacContextmenuAnchorDirective),
|
|
316
|
+
},
|
|
317
|
+
],
|
|
318
|
+
},] }
|
|
319
|
+
];
|
|
320
|
+
SacContextmenuAnchorDirective.ctorParameters = () => [
|
|
321
|
+
{ type: ElementRef }
|
|
322
|
+
];
|
|
323
|
+
|
|
324
|
+
/**
|
|
325
|
+
* Marker Komponente für Context Menü
|
|
326
|
+
*/
|
|
327
|
+
class SacContextmenuContainerDirective extends SacContextMenuContrainerCommon {
|
|
328
|
+
// #region Constructors
|
|
329
|
+
/**
|
|
330
|
+
* Konstruktor
|
|
331
|
+
* @param elementRef Referenz auf DOM Element
|
|
332
|
+
*/
|
|
333
|
+
constructor(elementRef) {
|
|
334
|
+
super(elementRef);
|
|
335
|
+
}
|
|
336
|
+
}
|
|
337
|
+
SacContextmenuContainerDirective.decorators = [
|
|
338
|
+
{ type: Directive, args: [{
|
|
339
|
+
selector: '[sacContextMenuContainer]',
|
|
340
|
+
providers: [
|
|
341
|
+
{
|
|
342
|
+
provide: SacContextMenuContrainerCommon,
|
|
343
|
+
useExisting: forwardRef(() => SacContextmenuContainerDirective),
|
|
344
|
+
},
|
|
345
|
+
],
|
|
346
|
+
},] }
|
|
347
|
+
];
|
|
348
|
+
SacContextmenuContainerDirective.ctorParameters = () => [
|
|
349
|
+
{ type: ElementRef }
|
|
350
|
+
];
|
|
351
|
+
|
|
352
|
+
class SACBootstrap5ContextmenuModule {
|
|
353
|
+
}
|
|
354
|
+
SACBootstrap5ContextmenuModule.decorators = [
|
|
355
|
+
{ type: NgModule, args: [{
|
|
356
|
+
declarations: [
|
|
357
|
+
SacContextmenuComponent,
|
|
358
|
+
SacContextmenuItemButtonComponent,
|
|
359
|
+
SacContextmenuItemSplitterComponent,
|
|
360
|
+
SacContextmenuAnchorDirective,
|
|
361
|
+
SacContextmenuContainerDirective,
|
|
362
|
+
],
|
|
363
|
+
imports: [CommonModule],
|
|
364
|
+
exports: [
|
|
365
|
+
SacContextmenuComponent,
|
|
366
|
+
SacContextmenuItemButtonComponent,
|
|
367
|
+
SacContextmenuItemSplitterComponent,
|
|
368
|
+
SacContextmenuAnchorDirective,
|
|
369
|
+
],
|
|
370
|
+
},] }
|
|
371
|
+
];
|
|
372
|
+
|
|
373
|
+
/**
|
|
374
|
+
* Erweiterung / Hooking für automatismen in Formular. Wird als Container für alle Controls benötigt.
|
|
375
|
+
*
|
|
376
|
+
* @example Beispiel über Div Container
|
|
377
|
+
*
|
|
378
|
+
* <div ngForm></div>
|
|
379
|
+
*
|
|
380
|
+
* @example Beispiel über Form Tag
|
|
381
|
+
*
|
|
382
|
+
* <form></form>
|
|
383
|
+
*
|
|
384
|
+
*/
|
|
385
|
+
class SacFormDirective extends SacFormCommon {
|
|
386
|
+
/**
|
|
387
|
+
* Konstruktor
|
|
388
|
+
* @param form Instanz von NgForm für eigene automatische Formular Logik
|
|
389
|
+
*/
|
|
390
|
+
constructor(form) {
|
|
391
|
+
super(form);
|
|
392
|
+
/**
|
|
393
|
+
* Setzt die Standard CSS Klasse für auf dem Form Container
|
|
394
|
+
*/
|
|
395
|
+
this.cssClassForm = true;
|
|
396
|
+
}
|
|
397
|
+
}
|
|
398
|
+
SacFormDirective.decorators = [
|
|
399
|
+
{ type: Directive, args: [{
|
|
400
|
+
selector: 'form:not([ngNoForm]):not([formGroup]),[ngForm]',
|
|
401
|
+
exportAs: 'sacform',
|
|
402
|
+
},] }
|
|
403
|
+
];
|
|
404
|
+
SacFormDirective.ctorParameters = () => [
|
|
405
|
+
{ type: NgForm }
|
|
406
|
+
];
|
|
407
|
+
SacFormDirective.propDecorators = {
|
|
408
|
+
cssClassForm: [{ type: HostBinding, args: ['class.form',] }]
|
|
409
|
+
};
|
|
410
|
+
|
|
411
|
+
/**
|
|
412
|
+
* Factory Methode für SacForm
|
|
413
|
+
* @param form SacFormular
|
|
414
|
+
*/
|
|
415
|
+
function SACFORM_FACTORY(form) {
|
|
416
|
+
return form;
|
|
417
|
+
}
|
|
418
|
+
/**
|
|
419
|
+
* Factory Methode für NgForm
|
|
420
|
+
* @param form NgForm
|
|
421
|
+
*/
|
|
422
|
+
function NGFORM_FACTORY(form) {
|
|
423
|
+
return form;
|
|
424
|
+
}
|
|
425
|
+
/**
|
|
426
|
+
* Directive zum erben eines NgForm/NgFormular einer übergeordneten Komponente
|
|
427
|
+
*
|
|
428
|
+
* @example Implementation in Markup
|
|
429
|
+
*
|
|
430
|
+
* <div sacInheritForm>
|
|
431
|
+
* </div>
|
|
432
|
+
*
|
|
433
|
+
* @example Model an Sub-Komponente übergeben
|
|
434
|
+
*
|
|
435
|
+
* <div sacInheritForm>
|
|
436
|
+
* <div>SubForm</div>
|
|
437
|
+
* <div>
|
|
438
|
+
* <ngInput [(ngModel)]="mymodel.fieldarea2" name="subformField3" label="field 3" [isrequired]="true"></ngInput>
|
|
439
|
+
* </div>
|
|
440
|
+
* </div>
|
|
441
|
+
*
|
|
442
|
+
*
|
|
443
|
+
* (at)Component({
|
|
444
|
+
* selector: 'sacInheritForm',
|
|
445
|
+
* templateUrl: './subform.component.html'
|
|
446
|
+
* })
|
|
447
|
+
* export class SubFormComponent implements DoCheck {
|
|
448
|
+
*
|
|
449
|
+
* (at)Input() mymodel;
|
|
450
|
+
* (at)Output() mymodelChange = new EventEmitter();
|
|
451
|
+
*
|
|
452
|
+
* ngDoCheck() {
|
|
453
|
+
* this.mymodelChange.next(this.mymodel);
|
|
454
|
+
* }
|
|
455
|
+
*}
|
|
456
|
+
*
|
|
457
|
+
*/
|
|
458
|
+
class SacInheritFormDirective {
|
|
459
|
+
}
|
|
460
|
+
SacInheritFormDirective.decorators = [
|
|
461
|
+
{ type: Directive, args: [{
|
|
462
|
+
selector: '[sacInheritForm]',
|
|
463
|
+
providers: [
|
|
464
|
+
{
|
|
465
|
+
provide: SacFormDirective,
|
|
466
|
+
useFactory: SACFORM_FACTORY,
|
|
467
|
+
deps: [[new SkipSelf(), SacFormDirective]]
|
|
468
|
+
}, {
|
|
469
|
+
provide: ControlContainer,
|
|
470
|
+
useFactory: NGFORM_FACTORY,
|
|
471
|
+
deps: [NgForm]
|
|
472
|
+
}
|
|
473
|
+
]
|
|
474
|
+
},] }
|
|
475
|
+
];
|
|
476
|
+
|
|
477
|
+
class SACBootstrap5FormModule {
|
|
478
|
+
}
|
|
479
|
+
SACBootstrap5FormModule.decorators = [
|
|
480
|
+
{ type: NgModule, args: [{
|
|
481
|
+
declarations: [SacFormDirective, SacInheritFormDirective],
|
|
482
|
+
imports: [CommonModule, FormsModule],
|
|
483
|
+
exports: [SacFormDirective, SacInheritFormDirective],
|
|
484
|
+
},] }
|
|
485
|
+
];
|
|
486
|
+
|
|
487
|
+
class SacFormLayoutDirective extends SacFormLayoutCommon {
|
|
488
|
+
}
|
|
489
|
+
SacFormLayoutDirective.decorators = [
|
|
490
|
+
{ type: Directive, args: [{
|
|
491
|
+
selector: '[sacFormLayout]',
|
|
492
|
+
},] }
|
|
493
|
+
];
|
|
494
|
+
|
|
495
|
+
class SacToControlHeightPipe {
|
|
496
|
+
// #region Public Methods
|
|
497
|
+
/**
|
|
498
|
+
* Returns the CSS class that defines the height for the control
|
|
499
|
+
* @param value ControlHeight value or null
|
|
500
|
+
*/
|
|
501
|
+
transform(value) {
|
|
502
|
+
// Return default value
|
|
503
|
+
if (!value) {
|
|
504
|
+
return '';
|
|
505
|
+
}
|
|
506
|
+
switch (value) {
|
|
507
|
+
case ControlHeight.Small:
|
|
508
|
+
return 'form-control-sm';
|
|
509
|
+
case ControlHeight.Large:
|
|
510
|
+
return 'form-control-lg';
|
|
511
|
+
default:
|
|
512
|
+
return '';
|
|
513
|
+
}
|
|
514
|
+
}
|
|
515
|
+
}
|
|
516
|
+
SacToControlHeightPipe.decorators = [
|
|
517
|
+
{ type: Pipe, args: [{
|
|
518
|
+
name: 'toControlHeight',
|
|
519
|
+
},] }
|
|
520
|
+
];
|
|
521
|
+
|
|
522
|
+
class SacToControlWidthCssPipe {
|
|
523
|
+
// #region Public Methods
|
|
524
|
+
/**
|
|
525
|
+
* Get CSS classes from label width configuration to set control size
|
|
526
|
+
* @param value Configuration with grid columns for different viewports
|
|
527
|
+
* @returns string with css classe for bootstrap3
|
|
528
|
+
*/
|
|
529
|
+
transform(value) {
|
|
530
|
+
const classes = [];
|
|
531
|
+
if (value.labelSizeXs) {
|
|
532
|
+
classes.push('col-' + this.calcControlSize(value.labelSizeXs));
|
|
533
|
+
}
|
|
534
|
+
if (value.labelSizeSm) {
|
|
535
|
+
classes.push('col-sm-' + this.calcControlSize(value.labelSizeSm));
|
|
536
|
+
}
|
|
537
|
+
if (value.labelSizeMd) {
|
|
538
|
+
classes.push('col-md-' + this.calcControlSize(value.labelSizeMd));
|
|
539
|
+
}
|
|
540
|
+
if (value.labelSizeLg) {
|
|
541
|
+
classes.push('col-lg-' + this.calcControlSize(value.labelSizeLg));
|
|
542
|
+
}
|
|
543
|
+
if (value.labelSizeXl) {
|
|
544
|
+
classes.push('col-xl-' + this.calcControlSize(value.labelSizeXl));
|
|
545
|
+
}
|
|
546
|
+
if (value.labelSizeXxl) {
|
|
547
|
+
classes.push('col-xxl-' + this.calcControlSize(value.labelSizeXxl));
|
|
548
|
+
}
|
|
549
|
+
return classes.join(' ');
|
|
550
|
+
}
|
|
551
|
+
// #endregion Public Methods
|
|
552
|
+
// #region Private Methods
|
|
553
|
+
/**
|
|
554
|
+
* calculate the control size
|
|
555
|
+
* @param labelsize grid size of label
|
|
556
|
+
* @returns grid size for control. should be between 1 and 12
|
|
557
|
+
*/
|
|
558
|
+
calcControlSize(labelsize) {
|
|
559
|
+
if (labelsize === 12) {
|
|
560
|
+
return 12;
|
|
561
|
+
}
|
|
562
|
+
if (!labelsize) {
|
|
563
|
+
return 12;
|
|
564
|
+
}
|
|
565
|
+
return 12 - labelsize;
|
|
566
|
+
}
|
|
567
|
+
}
|
|
568
|
+
SacToControlWidthCssPipe.decorators = [
|
|
569
|
+
{ type: Pipe, args: [{
|
|
570
|
+
name: 'toControlWidthCss',
|
|
571
|
+
},] }
|
|
572
|
+
];
|
|
573
|
+
|
|
574
|
+
class SacToLabelHeightPipe {
|
|
575
|
+
// #region Public Methods
|
|
576
|
+
/**
|
|
577
|
+
* Returns the CSS class that defines the height for the control
|
|
578
|
+
* @param value ControlHeight value or null
|
|
579
|
+
*/
|
|
580
|
+
transform(value) {
|
|
581
|
+
// Return default value
|
|
582
|
+
if (!value) {
|
|
583
|
+
return '';
|
|
584
|
+
}
|
|
585
|
+
switch (value) {
|
|
586
|
+
case ControlHeight.Small:
|
|
587
|
+
return 'col-form-label-sm';
|
|
588
|
+
case ControlHeight.Large:
|
|
589
|
+
return 'col-form-label-lg';
|
|
590
|
+
default:
|
|
591
|
+
return '';
|
|
592
|
+
}
|
|
593
|
+
}
|
|
594
|
+
}
|
|
595
|
+
SacToLabelHeightPipe.decorators = [
|
|
596
|
+
{ type: Pipe, args: [{
|
|
597
|
+
name: 'toLabelHeight',
|
|
598
|
+
},] }
|
|
599
|
+
];
|
|
600
|
+
|
|
601
|
+
class SacToLabelWidthCssPipe {
|
|
602
|
+
// #region Public Methods
|
|
603
|
+
/**
|
|
604
|
+
* Get CSS classes from label width configuration to set label size
|
|
605
|
+
* @param value Configuration with grid columns for different viewports
|
|
606
|
+
* @returns string with css classe for bootstrap3
|
|
607
|
+
*/
|
|
608
|
+
transform(value) {
|
|
609
|
+
const classes = [];
|
|
610
|
+
if (value.labelSizeXs) {
|
|
611
|
+
classes.push('col-' + value.labelSizeXs);
|
|
612
|
+
}
|
|
613
|
+
if (value.labelSizeSm) {
|
|
614
|
+
classes.push('col-sm-' + value.labelSizeSm);
|
|
615
|
+
}
|
|
616
|
+
if (value.labelSizeMd) {
|
|
617
|
+
classes.push('col-md-' + value.labelSizeMd);
|
|
618
|
+
}
|
|
619
|
+
if (value.labelSizeLg) {
|
|
620
|
+
classes.push('col-lg-' + value.labelSizeLg);
|
|
621
|
+
}
|
|
622
|
+
if (value.labelSizeXl) {
|
|
623
|
+
classes.push('col-xl-' + value.labelSizeXl);
|
|
624
|
+
}
|
|
625
|
+
if (value.labelSizeXxl) {
|
|
626
|
+
classes.push('col-xxl-' + value.labelSizeXxl);
|
|
627
|
+
}
|
|
628
|
+
return classes.join(' ');
|
|
629
|
+
}
|
|
630
|
+
}
|
|
631
|
+
SacToLabelWidthCssPipe.decorators = [
|
|
632
|
+
{ type: Pipe, args: [{
|
|
633
|
+
name: 'toLabelWidthCss',
|
|
634
|
+
},] }
|
|
635
|
+
];
|
|
636
|
+
|
|
637
|
+
class SACBootstrap5LayoutModule {
|
|
638
|
+
}
|
|
639
|
+
SACBootstrap5LayoutModule.decorators = [
|
|
640
|
+
{ type: NgModule, args: [{
|
|
641
|
+
declarations: [
|
|
642
|
+
SacFormLayoutDirective,
|
|
643
|
+
SacToControlHeightPipe,
|
|
644
|
+
SacToControlWidthCssPipe,
|
|
645
|
+
SacToLabelHeightPipe,
|
|
646
|
+
SacToLabelWidthCssPipe,
|
|
647
|
+
],
|
|
648
|
+
imports: [CommonModule],
|
|
649
|
+
exports: [
|
|
650
|
+
SacFormLayoutDirective,
|
|
651
|
+
SacToControlHeightPipe,
|
|
652
|
+
SacToControlWidthCssPipe,
|
|
653
|
+
SacToLabelHeightPipe,
|
|
654
|
+
SacToLabelWidthCssPipe,
|
|
655
|
+
],
|
|
656
|
+
},] }
|
|
657
|
+
];
|
|
658
|
+
|
|
659
|
+
/**
|
|
660
|
+
* Dropzone Komponente für mehrere Uploads
|
|
661
|
+
* @see https://github.com/kukhariev/ngx-uploadx/
|
|
662
|
+
*/
|
|
663
|
+
class SacDropzoneMultipleComponent extends SacDropzoneMultipleCommon {
|
|
664
|
+
// #region Constructors
|
|
665
|
+
/**
|
|
666
|
+
* Constructor
|
|
667
|
+
* @param formLayout SacFormLayout to define scoped layout settings
|
|
668
|
+
* @param injector Injector for injecting services
|
|
669
|
+
* @param renderer Angular rendering engine
|
|
670
|
+
* @param ngZone ngZone to manage external javascripts
|
|
671
|
+
*/
|
|
672
|
+
constructor(formLayout, injector, renderer, ngZone) {
|
|
673
|
+
super(formLayout, injector, renderer, ngZone);
|
|
674
|
+
}
|
|
675
|
+
// #endregion Constructors
|
|
676
|
+
// #region Public Methods
|
|
677
|
+
/**
|
|
678
|
+
* Initialisiert das Control
|
|
679
|
+
*/
|
|
680
|
+
ngOnInit() {
|
|
681
|
+
super.ngOnInit();
|
|
682
|
+
}
|
|
683
|
+
}
|
|
684
|
+
SacDropzoneMultipleComponent.decorators = [
|
|
685
|
+
{ type: Component, args: [{
|
|
686
|
+
selector: 'sac-dropzonemultiple',
|
|
687
|
+
template: "<div class=\"row mb-3\" [class.g-0]=\"disablelabel\">\r\n <label\r\n *ngIf=\"disablelabel === false && !isAdaptiveLabel\"\r\n id=\"{{name}}_label\"\r\n for=\"{{name}}\"\r\n class=\"col-12 col-form-label\"\r\n [ngClass]=\"[disablelabel === false ? (this.labelSizes | toLabelWidthCss) : 'visually-hidden', componentHeight | toLabelHeight]\"\r\n >{{label}}</label\r\n >\r\n <div\r\n class=\"col-12\"\r\n [ngClass]=\"[disablelabel === false ? (this.labelSizes | toControlWidthCss) : '']\"\r\n >\r\n <div\r\n class=\"dropzone d-flex justify-content-center position-relative\"\r\n (drop)=\"dropHandler($event)\"\r\n (dragover)=\"onDragOver($event)\"\r\n (dragleave)=\"onDragLeave($event)\"\r\n [class.active]=\"active\"\r\n [style.min-height]=\"uploadheight\"\r\n [class.is-invalid]=\"invalid && (dirty || touched)\"\r\n >\r\n <div\r\n class=\"content d-flex justify-content-center\"\r\n *ngIf=\"uploads.length === 0\"\r\n >\r\n <div class=\"align-self-center text-center\">\r\n <div\r\n [class.is-invalid]=\"isinlineerrorenabled && invalid && (dirty || touched)\"\r\n >\r\n <ng-content></ng-content>\r\n </div>\r\n </div>\r\n </div>\r\n <div\r\n class=\"content d-flex justify-content-center align-items-center w-50 my-3\"\r\n *ngIf=\"uploads.length > 0\"\r\n >\r\n <div class=\"flex-fill progress-container\">\r\n <div\r\n class=\"dropzone-uploadstates\"\r\n [class.mt-1]=\"i > 0\"\r\n *ngFor=\"let file of uploads; let i = index\"\r\n >\r\n <div\r\n class=\"input-group upload-component upload-component-multiple\"\r\n [class.input-group-sm]=\"componentHeight === ControlHeight.Small\"\r\n [class.input-group-lg]=\"componentHeight === ControlHeight.Large\"\r\n >\r\n <div class=\"form-control upload-progress border-secondary\">\r\n <div class=\"progress\">\r\n <div\r\n class=\"progress-bar\"\r\n [class.progress-bar-success]=\"file.progress===100\"\r\n role=\"progressbar\"\r\n [attr.aria-valuenow]=\"file.progress\"\r\n aria-valuemin=\"0\"\r\n aria-valuemax=\"100\"\r\n [style.width.%]=\"file.progress\"\r\n >\r\n <span class=\"progress-text text-dark\">{{ file.name }}</span>\r\n </div>\r\n </div>\r\n </div>\r\n <a\r\n class=\"btn\"\r\n (click)=\"cancel(file.uploadId)\"\r\n [class.btn-secondary]=\"!(invalid && (dirty || touched))\"\r\n [class.btn-danger]=\"invalid && (dirty || touched)\"\r\n >\r\n <span [class]=\"IconDelete\"></span>\r\n </a>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n <input\r\n #files\r\n multiple\r\n id=\"{{ name }}_uploadinput\"\r\n type=\"file\"\r\n class=\"custom-file-input\"\r\n (click)=\"files.value = ''\"\r\n (uploadxState)=\"onUpload($event)\"\r\n [disabled]=\"HasQueueItem()\"\r\n />\r\n </div>\r\n <div\r\n *ngIf=\"isinlineerrorenabled && invalid && (dirty || touched)\"\r\n class=\"invalid-feedback\"\r\n >\r\n {{ GetErrorMessage() | async }}\r\n </div>\r\n </div>\r\n</div>\r\n",
|
|
688
|
+
providers: [
|
|
689
|
+
{
|
|
690
|
+
provide: NG_VALUE_ACCESSOR,
|
|
691
|
+
multi: true,
|
|
692
|
+
useExisting: SacDropzoneMultipleComponent,
|
|
693
|
+
},
|
|
694
|
+
{
|
|
695
|
+
provide: NG_VALIDATORS,
|
|
696
|
+
multi: true,
|
|
697
|
+
useExisting: forwardRef(() => SacDropzoneMultipleComponent),
|
|
698
|
+
},
|
|
699
|
+
],
|
|
700
|
+
styles: [".dropzone{background:transparent;border:.125rem dashed #d3d3d3;border-radius:.5rem;min-height:9.75rem}.dropzone.is-invalid{border-color:var(--bs-form-invalid-border-color)}.dropzone .content{bottom:0;left:0;position:relative;right:0;top:0}.dropzone .content .is-invalid{color:var(--bs-form-invalid-border-color)}.dropzone .content .progress-container{min-width:50%;z-index:100}.dropzone .content .dropzone-uploadstates .upload-progress{padding:0}.dropzone .content .dropzone-uploadstates .upload-progress .progress{border-bottom-right-radius:0;border-top-right-radius:0;height:100%}.dropzone .content .dropzone-uploadstates .upload-progress .progress .progress-text{left:0;position:absolute;right:0}.dropzone .custom-file-input{height:unset;min-height:100%;opacity:0;position:absolute;width:100%}"]
|
|
701
|
+
},] }
|
|
702
|
+
];
|
|
703
|
+
SacDropzoneMultipleComponent.ctorParameters = () => [
|
|
704
|
+
{ type: SacFormLayoutDirective, decorators: [{ type: Host }, { type: Optional }] },
|
|
705
|
+
{ type: Injector },
|
|
706
|
+
{ type: Renderer2 },
|
|
707
|
+
{ type: NgZone }
|
|
708
|
+
];
|
|
709
|
+
|
|
710
|
+
/**
|
|
711
|
+
* Dropzone Komponente für den Upload eines Files
|
|
712
|
+
* @see https://github.com/kukhariev/ngx-uploadx/
|
|
713
|
+
*/
|
|
714
|
+
class SacDropzoneSingleComponent extends SacDropzoneSingleCommon {
|
|
715
|
+
// #region Constructors
|
|
716
|
+
/**
|
|
717
|
+
* Constructor
|
|
718
|
+
* @param formLayout SacFormLayout to define scoped layout settings
|
|
719
|
+
* @param injector Injector for injecting services
|
|
720
|
+
* @param renderer Angular rendering engine
|
|
721
|
+
* @param ngZone ngZone to manage external javascripts
|
|
722
|
+
*/
|
|
723
|
+
constructor(formLayout, injector, renderer, ngZone) {
|
|
724
|
+
super(formLayout, injector, renderer, ngZone);
|
|
725
|
+
}
|
|
726
|
+
// #endregion Constructors
|
|
727
|
+
// #region Public Methods
|
|
728
|
+
/**
|
|
729
|
+
* Initialisiert das Control
|
|
730
|
+
*/
|
|
731
|
+
ngOnInit() {
|
|
732
|
+
super.ngOnInit();
|
|
733
|
+
}
|
|
734
|
+
}
|
|
735
|
+
SacDropzoneSingleComponent.decorators = [
|
|
736
|
+
{ type: Component, args: [{
|
|
737
|
+
selector: 'sac-dropzonesingle',
|
|
738
|
+
template: "<div class=\"row mb-3\" [class.g-0]=\"disablelabel\">\r\n <label\r\n *ngIf=\"disablelabel === false && !isAdaptiveLabel\"\r\n id=\"{{name}}_label\"\r\n for=\"{{name}}\"\r\n class=\"col-12 col-form-label\"\r\n [ngClass]=\"[disablelabel === false ? (this.labelSizes | toLabelWidthCss) : 'visually-hidden', componentHeight | toLabelHeight]\"\r\n >{{label}}</label\r\n >\r\n <div\r\n class=\"col-12\"\r\n [ngClass]=\"[disablelabel === false ? (this.labelSizes | toControlWidthCss) : '']\"\r\n >\r\n <div\r\n class=\"dropzone d-flex justify-content-center position-relative\"\r\n (drop)=\"dropHandler($event)\"\r\n (dragover)=\"onDragOver($event)\"\r\n (dragleave)=\"onDragLeave($event)\"\r\n [style.min-height]=\"uploadheight\"\r\n [class.active]=\"active\"\r\n [class.is-invalid]=\"invalid && (dirty || touched)\"\r\n >\r\n <div\r\n class=\"content d-flex justify-content-center position-relative\"\r\n *ngIf=\"uploads.length === 0\"\r\n >\r\n <div class=\"align-self-center text-center\">\r\n <div\r\n [class.is-invalid]=\"isinlineerrorenabled && invalid && (dirty || touched)\"\r\n >\r\n <ng-content></ng-content>\r\n </div>\r\n </div>\r\n </div>\r\n <div\r\n class=\"content d-flex justify-content-center align-items-center w-50 my-3\"\r\n *ngIf=\"uploads.length > 0\"\r\n >\r\n <div class=\"flex-fill progress-container\">\r\n <div class=\"dropzone-uploadstates\" *ngFor=\"let file of uploads\">\r\n <div\r\n class=\"input-group upload-component upload-component-multiple\"\r\n [class.input-group-sm]=\"componentHeight === ControlHeight.Small\"\r\n [class.input-group-lg]=\"componentHeight === ControlHeight.Large\"\r\n >\r\n <div class=\"form-control upload-progress border-secondary\">\r\n <div class=\"progress\">\r\n <div\r\n class=\"progress-bar\"\r\n [class.progress-bar-success]=\"file.progress===100\"\r\n role=\"progressbar\"\r\n [attr.aria-valuenow]=\"file.progress\"\r\n aria-valuemin=\"0\"\r\n aria-valuemax=\"100\"\r\n [style.width.%]=\"file.progress\"\r\n >\r\n <span class=\"progress-text text-dark\">{{ file.name }}</span>\r\n </div>\r\n </div>\r\n </div>\r\n <a\r\n class=\"btn\"\r\n (click)=\"cancel(file.uploadId)\"\r\n [class.btn-secondary]=\"!(invalid && (dirty || touched))\"\r\n [class.btn-danger]=\"invalid && (dirty || touched)\"\r\n >\r\n <span [class]=\"IconDelete\"></span>\r\n </a>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n <input\r\n #files\r\n id=\"{{ name }}_uploadinput\"\r\n type=\"file\"\r\n class=\"custom-file-input\"\r\n (click)=\"files.value = ''\"\r\n (uploadxState)=\"onUpload($event)\"\r\n [disabled]=\"HasQueueItem()\"\r\n />\r\n </div>\r\n <div\r\n *ngIf=\"isinlineerrorenabled && invalid && (dirty || touched)\"\r\n class=\"invalid-feedback\"\r\n >\r\n {{ GetErrorMessage() | async }}\r\n </div>\r\n </div>\r\n</div>\r\n",
|
|
739
|
+
providers: [
|
|
740
|
+
{
|
|
741
|
+
provide: NG_VALUE_ACCESSOR,
|
|
742
|
+
multi: true,
|
|
743
|
+
useExisting: SacDropzoneSingleComponent,
|
|
744
|
+
},
|
|
745
|
+
{
|
|
746
|
+
provide: NG_VALIDATORS,
|
|
747
|
+
multi: true,
|
|
748
|
+
useExisting: forwardRef(() => SacDropzoneSingleComponent),
|
|
749
|
+
},
|
|
750
|
+
],
|
|
751
|
+
styles: [".dropzone{background:transparent;border:.125rem dashed #d3d3d3;border-radius:.5rem;min-height:9.75rem}.dropzone.is-invalid{border-color:var(--bs-form-invalid-border-color)}.dropzone .content{bottom:0;left:0;position:relative;right:0;top:0}.dropzone .content .is-invalid{color:var(--bs-form-invalid-border-color)}.dropzone .content .progress-container{min-width:50%;z-index:100}.dropzone .content .dropzone-uploadstates .upload-progress{padding:0}.dropzone .content .dropzone-uploadstates .upload-progress .progress{border-bottom-right-radius:0;border-top-right-radius:0;height:100%}.dropzone .content .dropzone-uploadstates .upload-progress .progress .progress-text{left:0;position:absolute;right:0}.dropzone .custom-file-input{height:unset;min-height:100%;opacity:0;position:absolute;width:100%}"]
|
|
752
|
+
},] }
|
|
753
|
+
];
|
|
754
|
+
SacDropzoneSingleComponent.ctorParameters = () => [
|
|
755
|
+
{ type: SacFormLayoutDirective, decorators: [{ type: Host }, { type: Optional }] },
|
|
756
|
+
{ type: Injector },
|
|
757
|
+
{ type: Renderer2 },
|
|
758
|
+
{ type: NgZone }
|
|
759
|
+
];
|
|
760
|
+
|
|
761
|
+
/**
|
|
762
|
+
* Upload Komponten
|
|
763
|
+
* @see https://github.com/kukhariev/ngx-uploadx/
|
|
764
|
+
*/
|
|
765
|
+
class SacUploadComponent extends SacUploadSingleCommon {
|
|
766
|
+
// #region Constructors
|
|
767
|
+
/**
|
|
768
|
+
* Constructor
|
|
769
|
+
* @param formLayout SacFormLayout to define scoped layout settings
|
|
770
|
+
* @param injector Injector for injecting services
|
|
771
|
+
* @param renderer Angular rendering engine
|
|
772
|
+
* @param ngZone ngZone to manage external javascripts
|
|
773
|
+
*/
|
|
774
|
+
constructor(formLayout, injector, renderer, ngZone) {
|
|
775
|
+
super(formLayout, injector, renderer, ngZone);
|
|
776
|
+
}
|
|
777
|
+
}
|
|
778
|
+
SacUploadComponent.decorators = [
|
|
779
|
+
{ type: Component, args: [{
|
|
780
|
+
selector: 'sac-upload',
|
|
781
|
+
template: "<div class=\"row mb-3\" [class.g-0]=\"disablelabel\">\r\n <label\r\n *ngIf=\"disablelabel === false && !isAdaptiveLabel\"\r\n id=\"{{name}}_label\"\r\n for=\"{{name}}\"\r\n class=\"col-12 col-form-label\"\r\n [ngClass]=\"[disablelabel === false ? (this.labelSizes | toLabelWidthCss) : 'visually-hidden', componentHeight | toLabelHeight]\"\r\n >{{label}}</label\r\n >\r\n <div\r\n class=\"col-12\"\r\n [ngClass]=\"[disablelabel === false ? (this.labelSizes | toControlWidthCss) : '']\"\r\n >\r\n <div\r\n class=\"input-group upload-component upload-single\"\r\n [class.input-group-sm]=\"componentHeight === ControlHeight.Small\"\r\n [class.input-group-lg]=\"componentHeight === ControlHeight.Large\"\r\n [class.is-invalid]=\"isinlineerrorenabled && invalid && (dirty || touched)\"\r\n >\r\n <!-- image-preview-input -->\r\n <div\r\n class=\"btn upload-input custom-file\"\r\n [class.disabled]=\"HasQueueItem()\"\r\n [class.btn-secondary]=\"!(invalid && (dirty || touched))\"\r\n [class.btn-danger]=\"invalid && (dirty || touched)\"\r\n >\r\n <i class=\"pe-2\" [class]=\"IconBrowse\"></i>\r\n <span class=\"upload-browse\"\r\n >{{\r\n lngResourceService.GetString(validationKeyService.UploadButtonBrowse)\r\n | async }}</span\r\n >\r\n <input\r\n type=\"file\"\r\n class=\"custom-file-input\"\r\n #files\r\n (click)=\"files.value = ''\"\r\n (uploadxState)=\"onUpload($event)\"\r\n multiple\r\n [disabled]=\"HasQueueItem()\"\r\n />\r\n </div>\r\n <div\r\n class=\"form-control upload-progress\"\r\n [ngClass]=\"[componentHeight | toControlHeight]\"\r\n [class.is-invalid]=\"invalid && (dirty || touched)\"\r\n >\r\n <div class=\"progress\">\r\n <div\r\n class=\"progress-bar\"\r\n [class.progress-bar-success]=\"Progress()===100\"\r\n role=\"progressbar\"\r\n [attr.aria-valuenow]=\"Progress()\"\r\n aria-valuemin=\"0\"\r\n aria-valuemax=\"100\"\r\n [style.width.%]=\"Progress()\"\r\n >\r\n <span class=\"progress-text text-dark\"\r\n >{{ Filename() | async }}</span\r\n >\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <button\r\n class=\"btn\"\r\n (click)=\"cancelAll()\"\r\n [attr.disabled]=\"HasQueueItem() === false ? 'disabled' : null\"\r\n [class.disabled]=\"HasQueueItem() === false ? 'disabled' : null\"\r\n [class.btn-secondary]=\"!(invalid && (dirty || touched))\"\r\n [class.btn-danger]=\"invalid && (dirty || touched)\"\r\n >\r\n <span [class]=\"IconDelete\"></span>\r\n </button>\r\n <button\r\n *ngIf=\"(autoupload === false && enablepause) || (autoupload && enablepause && IsPaused() === false)\"\r\n class=\"btn\"\r\n (click)=\"pauseAll()\"\r\n [attr.disabled]=\"IsUploading() === false ? 'disabled' : null\"\r\n [class.disabled]=\"IsUploading() === false ? 'disabled' : null\"\r\n [class.btn-secondary]=\"!(invalid && (dirty || touched))\"\r\n [class.btn-danger]=\"invalid && (dirty || touched)\"\r\n >\r\n <span [class]=\"IconPause\"></span>\r\n </button>\r\n <button\r\n *ngIf=\"autoupload && enablepause && IsPaused()\"\r\n class=\"btn\"\r\n (click)=\"uploadAll()\"\r\n [class.btn-secondary]=\"!(invalid && (dirty || touched))\"\r\n [class.btn-danger]=\"invalid && (dirty || touched)\"\r\n >\r\n <span [class]=\"IconContinue\"></span>\r\n </button>\r\n <button\r\n *ngIf=\"autoupload === false\"\r\n class=\"btn text-nowrap\"\r\n (click)=\"uploadAll()\"\r\n [attr.disabled]=\"IsStateToUpload() === false ? 'disabled' : null\"\r\n [class.disabled]=\"IsStateToUpload() === false ? 'disabled' : null\"\r\n [class.btn-secondary]=\"!(invalid && (dirty || touched))\"\r\n [class.btn-danger]=\"invalid && (dirty || touched)\"\r\n >\r\n <span [class]=\"IconUpload\" class=\"pe-2\"></span>{{\r\n lngResourceService.GetString(validationKeyService.UploadButtonUpload) |\r\n async }}\r\n </button>\r\n </div>\r\n <div\r\n *ngIf=\"isinlineerrorenabled && invalid && (dirty || touched)\"\r\n class=\"invalid-feedback\"\r\n >\r\n {{ GetErrorMessage() | async }}\r\n </div>\r\n </div>\r\n</div>\r\n",
|
|
782
|
+
providers: [
|
|
783
|
+
{
|
|
784
|
+
provide: NG_VALUE_ACCESSOR,
|
|
785
|
+
multi: true,
|
|
786
|
+
useExisting: SacUploadComponent,
|
|
787
|
+
},
|
|
788
|
+
{
|
|
789
|
+
provide: NG_VALIDATORS,
|
|
790
|
+
multi: true,
|
|
791
|
+
useExisting: forwardRef(() => SacUploadComponent),
|
|
792
|
+
},
|
|
793
|
+
],
|
|
794
|
+
styles: [".upload-component .custom-file{height:100%}.upload-component .custom-file .custom-file-input{bottom:0;left:0;opacity:0;position:absolute;right:0;top:0}.upload-component.upload-multiple .upload-progress .progress{border-bottom-right-radius:0;border-top-right-radius:0}.upload-component.upload-single .upload-progress .progress{border-radius:0}.upload-component .upload-progress{border:0;padding:0}.upload-component .upload-progress .progress{height:100%}.upload-component .upload-progress .progress .progress-text{left:0;position:absolute;right:0}"]
|
|
795
|
+
},] }
|
|
796
|
+
];
|
|
797
|
+
SacUploadComponent.ctorParameters = () => [
|
|
798
|
+
{ type: SacFormLayoutDirective, decorators: [{ type: Host }, { type: Optional }] },
|
|
799
|
+
{ type: Injector },
|
|
800
|
+
{ type: Renderer2 },
|
|
801
|
+
{ type: NgZone }
|
|
802
|
+
];
|
|
803
|
+
|
|
804
|
+
/**
|
|
805
|
+
* Upload Komponente für den Upload mehrer Files
|
|
806
|
+
* @see https://github.com/kukhariev/ngx-uploadx/
|
|
807
|
+
*/
|
|
808
|
+
class SacUploadMultipleComponent extends SacUploadMultipleCommon {
|
|
809
|
+
// #region Constructors
|
|
810
|
+
/**
|
|
811
|
+
* Constructor
|
|
812
|
+
* @param formLayout SacFormLayout to define scoped layout settings
|
|
813
|
+
* @param injector Injector for injecting services
|
|
814
|
+
* @param renderer Angular rendering engine
|
|
815
|
+
* @param ngZone ngZone to manage external javascripts
|
|
816
|
+
*/
|
|
817
|
+
constructor(formLayout, injector, renderer, ngZone) {
|
|
818
|
+
super(formLayout, injector, renderer, ngZone);
|
|
819
|
+
}
|
|
820
|
+
}
|
|
821
|
+
SacUploadMultipleComponent.decorators = [
|
|
822
|
+
{ type: Component, args: [{
|
|
823
|
+
selector: 'sac-uploadmultiple',
|
|
824
|
+
template: "<div class=\"row mb-3\" [class.g-0]=\"disablelabel\">\r\n <label\r\n *ngIf=\"disablelabel === false && !isAdaptiveLabel\"\r\n id=\"{{name}}_label\"\r\n for=\"{{name}}\"\r\n class=\"col-12 col-form-label\"\r\n [ngClass]=\"[disablelabel === false ? (this.labelSizes | toLabelWidthCss) : 'visually-hidden', componentHeight | toLabelHeight]\"\r\n >{{label}}</label\r\n >\r\n <div\r\n class=\"col-12\"\r\n [ngClass]=\"[disablelabel === false ? (this.labelSizes | toControlWidthCss) : '']\"\r\n >\r\n <div class=\"upload-component\">\r\n <div class=\"row\">\r\n <div class=\"col-12\">\r\n <div\r\n class=\"btn-group\"\r\n [class.btn-group-sm]=\"componentHeight === ControlHeight.Small\"\r\n [class.btn-group-lg]=\"componentHeight === ControlHeight.Large\"\r\n [class.is-invalid]=\"isinlineerrorenabled && invalid && (dirty || touched)\"\r\n >\r\n <div\r\n class=\"btn upload-input custom-file\"\r\n [class.disabled]=\"maxfiles > 0 && uploads.length >= maxfiles\"\r\n [class.btn-secondary]=\"!(invalid && (dirty || touched))\"\r\n [class.btn-danger]=\"invalid && (dirty || touched)\"\r\n >\r\n <i [class]=\"IconBrowse\" class=\"pe-2\"></i>\r\n <span class=\"upload-browse\">Browse</span>\r\n <input\r\n type=\"file\"\r\n class=\"custom-file-input\"\r\n #files\r\n (click)=\"files.value = ''\"\r\n (uploadxState)=\"onUpload($event)\"\r\n multiple\r\n [disabled]=\"maxfiles > 0 && uploads.length >= maxfiles\"\r\n />\r\n </div>\r\n\r\n <div\r\n class=\"btn-group\"\r\n [class.btn-group-sm]=\"componentHeight === ControlHeight.Small\"\r\n [class.btn-group-lg]=\"componentHeight === ControlHeight.Large\"\r\n >\r\n <!-- image-preview-clear button -->\r\n <button\r\n class=\"btn\"\r\n (click)=\"cancelAll()\"\r\n [attr.disabled]=\"HasQueueItem() === false ? 'disabled' : null\"\r\n [class.btn-secondary]=\"!(invalid && (dirty || touched))\"\r\n [class.btn-danger]=\"invalid && (dirty || touched)\"\r\n >\r\n <span [class]=\"IconDelete\"></span>\r\n </button>\r\n <button\r\n *ngIf=\"(autoupload === false && enablepause) || (autoupload && enablepause && IsPaused() === false)\"\r\n class=\"btn\"\r\n (click)=\"pauseAll()\"\r\n [attr.disabled]=\"IsUploading() === false ? 'disabled' : null\"\r\n [class.btn-secondary]=\"!(invalid && (dirty || touched))\"\r\n [class.btn-danger]=\"invalid && (dirty || touched)\"\r\n >\r\n <span [class]=\"IconPause\"></span>\r\n </button>\r\n <button\r\n *ngIf=\"autoupload && enablepause && IsPaused() === true\"\r\n class=\"btn\"\r\n (click)=\"uploadAll()\"\r\n [class.btn-secondary]=\"!(invalid && (dirty || touched))\"\r\n [class.btn-danger]=\"invalid && (dirty || touched)\"\r\n >\r\n <span [class]=\"IconContinue\"></span>\r\n </button>\r\n <button\r\n *ngIf=\"autoupload === false\"\r\n class=\"btn text-nowrap\"\r\n (click)=\"uploadAll()\"\r\n [attr.disabled]=\"IsStateToUpload() === false ? 'disabled' : null\"\r\n [class.btn-secondary]=\"!(invalid && (dirty || touched))\"\r\n [class.btn-danger]=\"invalid && (dirty || touched)\"\r\n >\r\n <span [class]=\"IconUpload\" class=\"pe-2\"></span> {{\r\n lngResourceService.GetString(validationKeyService.UploadButtonUpload)\r\n | async }}\r\n </button>\r\n </div>\r\n </div>\r\n <div\r\n *ngIf=\"isinlineerrorenabled && invalid && (dirty || touched)\"\r\n class=\"invalid-feedback\"\r\n >\r\n {{ GetErrorMessage() | async }}\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div *ngFor=\"let file of uploads\" style=\"margin-top: 5px\">\r\n <div\r\n class=\"input-group upload-component upload-multiple\"\r\n [class.input-group-sm]=\"componentHeight === ControlHeight.Small\"\r\n [class.input-group-lg]=\"componentHeight === ControlHeight.Large\"\r\n >\r\n <div\r\n class=\"form-control upload-progress\"\r\n [class.is-invalid]=\"invalid && (dirty || touched)\"\r\n >\r\n <div class=\"progress\">\r\n <div\r\n class=\"progress-bar\"\r\n [class.progress-bar-success]=\"file.progress===100\"\r\n role=\"progressbar\"\r\n [attr.aria-valuenow]=\"file.progress\"\r\n aria-valuemin=\"0\"\r\n aria-valuemax=\"100\"\r\n [style.width.%]=\"file.progress\"\r\n >\r\n <span class=\"progress-text text-dark\">{{ file.name }}</span>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <button\r\n class=\"btn\"\r\n (click)=\"cancel(file.uploadId)\"\r\n [class.btn-secondary]=\"!(invalid && (dirty || touched))\"\r\n [class.btn-danger]=\"invalid && (dirty || touched)\"\r\n >\r\n <span [class]=\"IconDelete\"></span>\r\n </button>\r\n <button\r\n *ngIf=\"(autoupload === false && enablepause) || (autoupload && enablepause && file.status !== 'paused')\"\r\n class=\"btn\"\r\n (click)=\"pause(file.uploadId)\"\r\n [attr.disabled]=\"file.status !== 'uploading' ? 'disabled' : null\"\r\n [class.btn-secondary]=\"!(invalid && (dirty || touched))\"\r\n [class.btn-danger]=\"invalid && (dirty || touched)\"\r\n >\r\n <span [class]=\"IconPause\"></span>\r\n </button>\r\n <button\r\n *ngIf=\"autoupload && enablepause && file.status === 'paused'\"\r\n class=\"btn\"\r\n (click)=\"upload(file.uploadId)\"\r\n [class.btn-secondary]=\"!(invalid && (dirty || touched))\"\r\n [class.btn-danger]=\"invalid && (dirty || touched)\"\r\n >\r\n <span [class]=\"IconContinue\"></span>\r\n </button>\r\n <button\r\n *ngIf=\"autoupload === false\"\r\n class=\"btn text-nowrap\"\r\n (click)=\"upload(file.uploadId)\"\r\n [attr.disabled]=\"file.status !== 'added' && file.status !== 'paused' ? 'disabled' : null\"\r\n [class.btn-secondary]=\"!(invalid && (dirty || touched))\"\r\n [class.btn-danger]=\"invalid && (dirty || touched)\"\r\n >\r\n <span [class]=\"IconUpload\" class=\"pe-2\"></span>{{\r\n lngResourceService.GetString(validationKeyService.UploadButtonUpload)\r\n | async }}\r\n </button>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n</div>\r\n",
|
|
825
|
+
providers: [
|
|
826
|
+
{
|
|
827
|
+
provide: NG_VALUE_ACCESSOR,
|
|
828
|
+
multi: true,
|
|
829
|
+
useExisting: SacUploadMultipleComponent,
|
|
830
|
+
},
|
|
831
|
+
{
|
|
832
|
+
provide: NG_VALIDATORS,
|
|
833
|
+
multi: true,
|
|
834
|
+
useExisting: forwardRef(() => SacUploadMultipleComponent),
|
|
835
|
+
},
|
|
836
|
+
],
|
|
837
|
+
styles: [".upload-component .custom-file{height:100%}.upload-component .custom-file .custom-file-input{bottom:0;left:0;opacity:0;position:absolute;right:0;top:0}.upload-component.upload-multiple .upload-progress .progress{border-bottom-right-radius:0;border-top-right-radius:0}.upload-component.upload-single .upload-progress .progress{border-radius:0}.upload-component .upload-progress{border:0;padding:0}.upload-component .upload-progress .progress{height:100%}.upload-component .upload-progress .progress .progress-text{left:0;position:absolute;right:0}"]
|
|
838
|
+
},] }
|
|
839
|
+
];
|
|
840
|
+
SacUploadMultipleComponent.ctorParameters = () => [
|
|
841
|
+
{ type: SacFormLayoutDirective, decorators: [{ type: Host }, { type: Optional }] },
|
|
842
|
+
{ type: Injector },
|
|
843
|
+
{ type: Renderer2 },
|
|
844
|
+
{ type: NgZone }
|
|
845
|
+
];
|
|
846
|
+
|
|
847
|
+
class SACBootstrap5UploadModule {
|
|
848
|
+
}
|
|
849
|
+
SACBootstrap5UploadModule.decorators = [
|
|
850
|
+
{ type: NgModule, args: [{
|
|
851
|
+
declarations: [
|
|
852
|
+
SacUploadComponent,
|
|
853
|
+
SacUploadMultipleComponent,
|
|
854
|
+
SacDropzoneSingleComponent,
|
|
855
|
+
SacDropzoneMultipleComponent,
|
|
856
|
+
],
|
|
857
|
+
imports: [CommonModule, FormsModule, SACBootstrap5LayoutModule],
|
|
858
|
+
exports: [
|
|
859
|
+
SacUploadComponent,
|
|
860
|
+
SacUploadMultipleComponent,
|
|
861
|
+
SacDropzoneSingleComponent,
|
|
862
|
+
SacDropzoneMultipleComponent,
|
|
863
|
+
],
|
|
864
|
+
},] }
|
|
865
|
+
];
|
|
866
|
+
|
|
867
|
+
/**
|
|
868
|
+
* Server File Browser Komponente
|
|
869
|
+
*/
|
|
870
|
+
class SacBrowserComponent extends SacFileBrowserCommon {
|
|
871
|
+
// #endregion Properties
|
|
872
|
+
// #region Constructors
|
|
873
|
+
/**
|
|
874
|
+
* Konstruktor
|
|
875
|
+
* @param httpClient HTTP Client
|
|
876
|
+
* @param injector Angular Dependency Injection Service
|
|
877
|
+
* @param confirmService Confirm Service
|
|
878
|
+
*/
|
|
879
|
+
constructor(httpClient, injector, confirmService) {
|
|
880
|
+
super(httpClient, injector);
|
|
881
|
+
this.confirmService = confirmService;
|
|
882
|
+
}
|
|
883
|
+
// #endregion Constructors
|
|
884
|
+
// #region Public Methods
|
|
885
|
+
/**
|
|
886
|
+
* Confirm Action wenn ein File gelöscht werden soll
|
|
887
|
+
* @param file File das gelöscht werden soll.
|
|
888
|
+
* @returns Observable ob File gelöscht werden kann.
|
|
889
|
+
*/
|
|
890
|
+
confirmDeleteFile(file) {
|
|
891
|
+
return new Observable((observer) => {
|
|
892
|
+
forkJoin({
|
|
893
|
+
title: this.lngResourceService.GetString(this.validationKeyService.FilebrowserButtonDelete),
|
|
894
|
+
message: this.lngResourceService.GetString(this.validationKeyService.FilebrowserButtonDelete),
|
|
895
|
+
}).subscribe((text) => {
|
|
896
|
+
this.confirmService
|
|
897
|
+
.ConfirmMessage(text.title, text.message)
|
|
898
|
+
.subscribe((result) => {
|
|
899
|
+
if (result === 'yes') {
|
|
900
|
+
observer.next(true);
|
|
901
|
+
}
|
|
902
|
+
else {
|
|
903
|
+
observer.next(false);
|
|
904
|
+
}
|
|
905
|
+
observer.complete();
|
|
906
|
+
});
|
|
907
|
+
});
|
|
908
|
+
});
|
|
909
|
+
}
|
|
910
|
+
/**
|
|
911
|
+
* Confirm Action wenn ein Ordner gelöscht werden soll
|
|
912
|
+
* @param node Ordner der gelöscht werden soll
|
|
913
|
+
* @returns Observable ob Ordner gelöscht kann.
|
|
914
|
+
*/
|
|
915
|
+
confirmDeleteNode(node) {
|
|
916
|
+
return new Observable((observer) => {
|
|
917
|
+
forkJoin({
|
|
918
|
+
title: this.lngResourceService.GetString(this.validationKeyService.FilebrowserButtonDelete),
|
|
919
|
+
message: this.lngResourceService.GetString(this.validationKeyService.FilebrowserConfirmTextDeleteFolder),
|
|
920
|
+
}).subscribe((text) => {
|
|
921
|
+
this.confirmService
|
|
922
|
+
.ConfirmMessage(text.title, text.message)
|
|
923
|
+
.subscribe((result) => {
|
|
924
|
+
if (result === 'yes') {
|
|
925
|
+
observer.next(true);
|
|
926
|
+
}
|
|
927
|
+
else {
|
|
928
|
+
observer.next(false);
|
|
929
|
+
}
|
|
930
|
+
observer.complete();
|
|
931
|
+
});
|
|
932
|
+
});
|
|
933
|
+
});
|
|
934
|
+
}
|
|
935
|
+
/**
|
|
936
|
+
* Erzeugt ein Array von einer bestimmten grösse
|
|
937
|
+
* @param anzahl Grösse des Array
|
|
938
|
+
* @returns Array
|
|
939
|
+
*/
|
|
940
|
+
count(anzahl) {
|
|
941
|
+
return new Array(anzahl);
|
|
942
|
+
}
|
|
943
|
+
/**
|
|
944
|
+
* Methode wird aufgerufen, wenn eine Datei verschoben wird
|
|
945
|
+
* @param uploadid Upload ID
|
|
946
|
+
*/
|
|
947
|
+
uploadedFileMoved(uploadid) {
|
|
948
|
+
const item = this.uploadComponent.uploads.find((itm) => itm.documentid === uploadid);
|
|
949
|
+
if (item) {
|
|
950
|
+
this.uploadComponent.cancel(item.uploadId);
|
|
951
|
+
}
|
|
952
|
+
}
|
|
953
|
+
}
|
|
954
|
+
SacBrowserComponent.decorators = [
|
|
955
|
+
{ type: Component, args: [{
|
|
956
|
+
selector: 'sac-filebrowser',
|
|
957
|
+
template: "<div class=\"row\">\r\n <div class=\"col-12 col-md-5 col-lg-4\">\r\n <ul class=\"list-group list-group-flush\">\r\n <ng-template\r\n [ngTemplateOutlet]=\"treeItem\"\r\n [ngTemplateOutletContext]=\"{node: rootNode, deep: 0}\"\r\n ></ng-template>\r\n </ul>\r\n\r\n <ng-template #treeItem let-node=\"node\" let-deep=\"deep\">\r\n <li\r\n class=\"list-group-item py-1 px-2 d-flex align-items-center\"\r\n [class.list-group-item-secondary]=\"node === selectedNode\"\r\n (click)=\"selectNode(node)\"\r\n style=\"cursor: pointer\"\r\n >\r\n <div class=\"mx-3\" *ngFor=\"let i of count(deep)\"></div>\r\n <div\r\n (click)=\"switchExpandNode(node);$event.stopPropagation();\"\r\n class=\"me-2\"\r\n [ngClass]=\"node.ChildNodes.length === 0 ? iconFolderEmpty: (!node.IsExpanded && node.ChildNodes.length > 0 ? iconFolderCollabsed : (node.IsExpanded && node.ChildNodes.length > 0 ? iconFolderOpen : ''))\"\r\n ></div>\r\n <ng-container *ngIf=\"!node.IsEditMode\">\r\n <div class=\"flex-grow-1\">{{ node.Name }}</div>\r\n </ng-container>\r\n <ng-container *ngIf=\"node.IsEditMode\">\r\n <div class=\"flex-grow-1\" ngForm>\r\n <input\r\n name=\"editFolder\"\r\n class=\"form-control form-control-sm\"\r\n [ngModel]=\"node.Name\"\r\n [ngModelOptions]=\"{updateOn: 'blur'}\"\r\n (ngModelChange)=\"renameNode(node, $event)\"\r\n (keydown.enter)=\"$event.target.blur();false;\"\r\n (blur)=\"renameNode(node, null)\"\r\n (click)=\"$event.stopPropagation()\"\r\n />\r\n </div>\r\n </ng-container>\r\n <div class=\"flex-shrink-0\">\r\n <a\r\n *ngIf=\"node.Path !== '/' && allowfolderrename\"\r\n class=\"btn btn-sm btn-link text-secondary\"\r\n (click)=\"editNode(node);$event.stopPropagation();\"\r\n >\r\n <i [class]=\"iconEdit\"></i>\r\n </a>\r\n <sac-contextmenu cssclass=\"d-inline-block\">\r\n <sac-contextmenubutton\r\n *ngIf=\"allowfoldercreate\"\r\n text=\"{{ lngResourceService.GetString(validationKeyService.FilebrowserButtonNewFolder) | async }}\"\r\n [icon]=\"iconFolderNew\"\r\n (clicked)=\"newNode(node)\"\r\n ></sac-contextmenubutton>\r\n <sac-contextmenubutton\r\n *ngIf=\"node.Path !== '/' && allowfolderdelete\"\r\n text=\"{{ lngResourceService.GetString(validationKeyService.FilebrowserButtonDelete) | async }}\"\r\n [icon]=\"iconDelete\"\r\n (clicked)=\"deleteNode(node)\"\r\n ></sac-contextmenubutton>\r\n <sac-contextmenusplitter\r\n *ngIf=\"allowfoldercreate || (node.Path !== '/' && allowfolderdelete)\"\r\n ></sac-contextmenusplitter>\r\n <sac-contextmenubutton\r\n text=\"{{ lngResourceService.GetString(validationKeyService.FilebrowserButtonRefresh) | async }}\"\r\n [icon]=\"iconRefresh\"\r\n (clicked)=\"refreshNode(node)\"\r\n ></sac-contextmenubutton>\r\n </sac-contextmenu>\r\n </div>\r\n </li>\r\n\r\n <ng-container *ngIf=\"node.IsExpanded\">\r\n <ng-template\r\n *ngFor=\"let child of node.ChildNodes\"\r\n [ngTemplateOutlet]=\"treeItem\"\r\n [ngTemplateOutletContext]=\"{node: child, deep: deep + 1}\"\r\n ></ng-template>\r\n </ng-container>\r\n </ng-template>\r\n </div>\r\n <div class=\"col-12 col-md-7 col-lg-8\">\r\n <ng-container *ngIf=\"selectedNode && selectedNode.Files\">\r\n <div *ngIf=\"allowfileupload\" ngForm>\r\n <sac-dropzonemultiple\r\n [disablelabel]=\"true\"\r\n [endpoint]=\"apiurl + '/uploadregister'\"\r\n name=\"upload\"\r\n uploadheight=\"5rem\"\r\n [ngModel]=\"uploads\"\r\n (ngModelChange)=\"uploadComplete(selectedNode,$event)\"\r\n [allowedtypes]=\"allowedtypes\"\r\n >{{\r\n lngResourceService.GetString(validationKeyService.FilebrowserButtonUpload)\r\n | async }}</sac-dropzonemultiple\r\n >\r\n </div>\r\n <div class=\"table-responsive\">\r\n <table class=\"table table-striped table-hover align-middle\">\r\n <thead>\r\n <th>\r\n {{\r\n lngResourceService.GetString(validationKeyService.FilebrowserGridFilename)\r\n | async }}\r\n </th>\r\n <th>\r\n {{\r\n lngResourceService.GetString(validationKeyService.FilebrowserGridSize)\r\n | async }}\r\n </th>\r\n <th style=\"width: 80px\"></th>\r\n </thead>\r\n <tbody>\r\n <ng-container *ngIf=\"selectedNode.Files.length === 0\">\r\n <tr>\r\n <td colspan=\"3\">\r\n {{\r\n lngResourceService.GetString(validationKeyService.FilebrowserGridNoFiles)\r\n | async }}\r\n </td>\r\n </tr>\r\n </ng-container>\r\n <ng-container *ngIf=\"selectedNode.Files.length > 0\">\r\n <tr\r\n *ngFor=\"let item of selectedNode.Files\"\r\n (click)=\"selectFile(item)\"\r\n [class.table-primary]=\"selectedFileItem === item\"\r\n >\r\n <td [class.p-2]=\"item.IsEditMode\">\r\n <ng-container *ngIf=\"!item.IsEditMode\">\r\n {{ item.Filename }}\r\n </ng-container>\r\n <ng-container *ngIf=\"item.IsEditMode\">\r\n <div>\r\n <input\r\n name=\"editFolder\"\r\n class=\"form-control form-control-sm\"\r\n [ngModel]=\"item.Filename\"\r\n [ngModelOptions]=\"{updateOn: 'blur'}\"\r\n (ngModelChange)=\"renameFile(item, $event)\"\r\n (keydown.enter)=\"$event.target.blur();false\"\r\n (blur)=\"renameFile(item, null)\"\r\n (click)=\"$event.stopPropagation();\"\r\n />\r\n </div>\r\n </ng-container>\r\n </td>\r\n <td>{{ item.Size}}</td>\r\n <td class=\"p-2\">\r\n <div class=\"btn-toolbar\" role=\"toolbar\">\r\n <div class=\"btn-group ml-auto\" role=\"group\">\r\n <a\r\n *ngIf=\"allowfilerename\"\r\n class=\"btn btn-sm btn-link text-secondary\"\r\n (click)=\"editFile(item);$event.stopPropagation();\"\r\n ><i [class]=\"iconEdit\"></i\r\n ></a>\r\n </div>\r\n <div class=\"btn-group\" role=\"group\">\r\n <a\r\n *ngIf=\"allowfiledelete\"\r\n class=\"btn btn-sm btn-link text-secondary\"\r\n (click)=\"deleteFile(item);$event.stopPropagation();\"\r\n ><i [class]=\"iconDelete\"></i\r\n ></a>\r\n </div>\r\n </div>\r\n </td>\r\n </tr>\r\n </ng-container>\r\n </tbody>\r\n </table>\r\n </div>\r\n </ng-container>\r\n </div>\r\n</div>\r\n",
|
|
958
|
+
providers: [ServiceConfirm]
|
|
959
|
+
},] }
|
|
960
|
+
];
|
|
961
|
+
SacBrowserComponent.ctorParameters = () => [
|
|
962
|
+
{ type: HttpClient },
|
|
963
|
+
{ type: Injector },
|
|
964
|
+
{ type: ServiceConfirm }
|
|
965
|
+
];
|
|
966
|
+
SacBrowserComponent.propDecorators = {
|
|
967
|
+
uploadComponent: [{ type: ViewChild, args: [SacDropzoneMultipleComponent, { static: false },] }]
|
|
968
|
+
};
|
|
969
|
+
|
|
970
|
+
class SACBootstrap5BrowserModule {
|
|
971
|
+
}
|
|
972
|
+
SACBootstrap5BrowserModule.decorators = [
|
|
973
|
+
{ type: NgModule, args: [{
|
|
974
|
+
declarations: [SacBrowserComponent],
|
|
975
|
+
imports: [
|
|
976
|
+
CommonModule,
|
|
977
|
+
HttpClientModule,
|
|
978
|
+
SACBootstrap5ConfirmModule,
|
|
979
|
+
SACBootstrap5ContextmenuModule,
|
|
980
|
+
SACBootstrap5UploadModule,
|
|
981
|
+
SACBootstrap5FormModule,
|
|
982
|
+
FormsModule,
|
|
983
|
+
],
|
|
984
|
+
exports: [SacBrowserComponent],
|
|
985
|
+
bootstrap: [SacBrowserComponent],
|
|
986
|
+
},] }
|
|
987
|
+
];
|
|
988
|
+
|
|
989
|
+
/**
|
|
990
|
+
* Checkbox Kompontente
|
|
991
|
+
*/
|
|
992
|
+
class SacCheckboxComponent extends SacCheckboxCommon {
|
|
993
|
+
// #region Constructors
|
|
994
|
+
/**
|
|
995
|
+
* Constructor
|
|
996
|
+
* @param formLayout SacFormLayout to define scoped layout settings
|
|
997
|
+
* @param injector Injector for injecting services
|
|
998
|
+
*/
|
|
999
|
+
constructor(formLayout, injector) {
|
|
1000
|
+
super(formLayout, injector);
|
|
1001
|
+
}
|
|
1002
|
+
}
|
|
1003
|
+
SacCheckboxComponent.decorators = [
|
|
1004
|
+
{ type: Component, args: [{
|
|
1005
|
+
selector: 'sac-checkbox',
|
|
1006
|
+
template: "<div class=\"row\" [class.g-0]=\"disablelabel\" [class.mb-3]=\"!stacked\">\r\n <div\r\n class=\"col-12\"\r\n [ngClass]=\"[!disablelabel && !stacked ? (this.labelSizes | toLabelWidthCss) : 'visually-hidden' ]\"\r\n >\r\n <label\r\n *ngIf=\"!disablelabel && !stacked\"\r\n for=\"{{name}}\"\r\n class=\"col-form-label\"\r\n [ngClass]=\"componentHeight | toLabelHeight\"\r\n >{{label}}</label\r\n >\r\n </div>\r\n <div\r\n class=\"align-self-center col-12\"\r\n [ngClass]=\"[!disablelabel && !stacked ? (this.labelSizes | toControlWidthCss) : '']\"\r\n >\r\n <div\r\n class=\"form-check\"\r\n [class.form-check-sm]=\"componentHeight === ControlHeight.Small\"\r\n [class.form-check-lg]=\"componentHeight === ControlHeight.Large\"\r\n >\r\n <input\r\n class=\"form-check-input\"\r\n [class.form-check-input-sm]=\"componentHeight === ControlHeight.Small\"\r\n [class.form-check-input-lg]=\"componentHeight === ControlHeight.Large\"\r\n id=\"{{name}}\"\r\n name=\"{{name}}\"\r\n type=\"checkbox\"\r\n [checked]=\"value\"\r\n (blur)=\"onTouch()\"\r\n (change)=\"setValue($event.target.checked)\"\r\n [disabled]=\"isdisabled\"\r\n />\r\n <label\r\n for=\"{{name}}\"\r\n class=\"form-check-label\"\r\n [class.form-check-label-sm]=\"componentHeight === ControlHeight.Small\"\r\n [class.form-check-label-lg]=\"componentHeight === ControlHeight.Large\"\r\n >\r\n <ng-container *ngIf=\"checkboxtext\">{{checkboxtext}}</ng-container>\r\n </label>\r\n </div>\r\n </div>\r\n</div>\r\n",
|
|
1007
|
+
// Value Access Provider registrieren, damit Wert via Model geschrieben und gelesen werden kann
|
|
1008
|
+
providers: [
|
|
1009
|
+
{
|
|
1010
|
+
provide: NG_VALUE_ACCESSOR,
|
|
1011
|
+
multi: true,
|
|
1012
|
+
useExisting: SacCheckboxComponent,
|
|
1013
|
+
},
|
|
1014
|
+
{
|
|
1015
|
+
provide: NG_VALIDATORS,
|
|
1016
|
+
useExisting: forwardRef(() => SacCheckboxComponent),
|
|
1017
|
+
multi: true,
|
|
1018
|
+
},
|
|
1019
|
+
],
|
|
1020
|
+
styles: [".form-check-lg{padding-left:1.75rem}.form-check-input{height:1rem;width:1rem}.form-check-input-sm{height:.875rem;margin-top:.4rem;width:.875rem}.form-check-input-lg{height:1.25rem;margin-left:-1.75rem;width:1.25rem}.form-check-label-sm{font-size:.875rem}.form-check-label-lg{font-size:1.25rem}"]
|
|
1021
|
+
},] }
|
|
1022
|
+
];
|
|
1023
|
+
SacCheckboxComponent.ctorParameters = () => [
|
|
1024
|
+
{ type: SacFormLayoutDirective, decorators: [{ type: Host }, { type: Optional }] },
|
|
1025
|
+
{ type: Injector }
|
|
1026
|
+
];
|
|
1027
|
+
|
|
1028
|
+
/**
|
|
1029
|
+
* Radiobuttons Group Komponente
|
|
1030
|
+
*/
|
|
1031
|
+
class SacRadiobuttonsComponent extends SacRadiobuttonsCommon {
|
|
1032
|
+
// #region Constructors
|
|
1033
|
+
/**
|
|
1034
|
+
* Constructor
|
|
1035
|
+
* @param formLayout SacFormLayout to define scoped layout settings
|
|
1036
|
+
* @param injector Injector for injecting services
|
|
1037
|
+
*/
|
|
1038
|
+
constructor(formLayout, injector) {
|
|
1039
|
+
super(formLayout, injector);
|
|
1040
|
+
}
|
|
1041
|
+
}
|
|
1042
|
+
SacRadiobuttonsComponent.decorators = [
|
|
1043
|
+
{ type: Component, args: [{
|
|
1044
|
+
selector: 'sac-radiobuttons',
|
|
1045
|
+
template: "<div class=\"row mb-3\" [class.g-0]=\"disablelabel\">\r\n <div\r\n *ngIf=\"disablelabel === false\"\r\n class=\"col-12 pt-0\"\r\n [ngClass]=\"[disablelabel === false ? (this.labelSizes | toLabelWidthCss) : 'visually-hidden' ]\"\r\n >\r\n <label\r\n class=\"col-form-label\"\r\n [ngClass]=\"componentHeight | toLabelHeight\"\r\n *ngIf=\"!disablelabel\"\r\n >{{label}}</label\r\n >\r\n </div>\r\n <div\r\n class=\"col-12\"\r\n [ngClass]=\"[disablelabel === false ? (this.labelSizes | toControlWidthCss) : '']\"\r\n [class.pt-1]=\"componentHeight === ControlHeight.Small\"\r\n [class.pt-2]=\"componentHeight !== ControlHeight.Small\"\r\n >\r\n <ng-content></ng-content>\r\n </div>\r\n</div>\r\n",
|
|
1046
|
+
// Value Access Provider registrieren, damit Wert via Model geschrieben und gelesen werden kann
|
|
1047
|
+
providers: [
|
|
1048
|
+
{
|
|
1049
|
+
provide: NG_VALUE_ACCESSOR,
|
|
1050
|
+
useExisting: forwardRef(() => SacRadiobuttonsComponent),
|
|
1051
|
+
multi: true,
|
|
1052
|
+
},
|
|
1053
|
+
{
|
|
1054
|
+
provide: NG_VALIDATORS,
|
|
1055
|
+
useExisting: forwardRef(() => SacRadiobuttonsComponent),
|
|
1056
|
+
multi: true,
|
|
1057
|
+
},
|
|
1058
|
+
]
|
|
1059
|
+
},] }
|
|
1060
|
+
];
|
|
1061
|
+
SacRadiobuttonsComponent.ctorParameters = () => [
|
|
1062
|
+
{ type: SacFormLayoutDirective, decorators: [{ type: Host }, { type: Optional }] },
|
|
1063
|
+
{ type: Injector }
|
|
1064
|
+
];
|
|
1065
|
+
|
|
1066
|
+
/**
|
|
1067
|
+
* Radiobutton Komponente
|
|
1068
|
+
*/
|
|
1069
|
+
class SacRadiobuttonComponent extends SacRadiobuttonCommon {
|
|
1070
|
+
/**
|
|
1071
|
+
* Konstruktor
|
|
1072
|
+
* @param SacRadioButtons Radio Buttons Group Komponente
|
|
1073
|
+
*/
|
|
1074
|
+
constructor(sacRadioButtons) {
|
|
1075
|
+
super(sacRadioButtons);
|
|
1076
|
+
}
|
|
1077
|
+
}
|
|
1078
|
+
SacRadiobuttonComponent.decorators = [
|
|
1079
|
+
{ type: Component, args: [{
|
|
1080
|
+
selector: 'sac-radiobutton',
|
|
1081
|
+
template: "<div\r\n class=\"form-check\"\r\n [class.form-check-sm]=\"componentHeight === ControlHeight.Small\"\r\n [class.form-check-lg]=\"componentHeight === ControlHeight.Large\"\r\n *ngIf=\"hidden===false\"\r\n>\r\n <input\r\n id=\"{{getName}}_{{getIndex}}\"\r\n name=\"{{getName}}\"\r\n type=\"radio\"\r\n class=\"form-check-input\"\r\n [class.form-check-input-sm]=\"componentHeight === ControlHeight.Small\"\r\n [class.form-check-input-lg]=\"componentHeight === ControlHeight.Large\"\r\n [value]=\"value\"\r\n [checked]=\"checked\"\r\n (change)=\"ChangeEvent()\"\r\n [disabled]=\"isDisabled\"\r\n />\r\n <label\r\n for=\"{{getName}}_{{getIndex}}\"\r\n class=\"form-check-label\"\r\n [class.form-check-label-sm]=\"componentHeight === ControlHeight.Small\"\r\n [class.form-check-label-lg]=\"componentHeight === ControlHeight.Large\"\r\n >\r\n <ng-template\r\n *ngTemplateOutlet=\"labeltemplate || defaultItemLabelTemplate;context:{ label: label }\"\r\n >\r\n </ng-template>\r\n </label>\r\n</div>\r\n\r\n<ng-template #defaultItemLabelTemplate let-label=\"label\">{{label}}</ng-template>\r\n",
|
|
1082
|
+
styles: [".form-check-lg{padding-left:1.75rem}.form-check-input{height:1rem;width:1rem}.form-check-input-sm{height:.875rem;margin-top:.4rem;width:.875rem}.form-check-input-lg{height:1.25rem;margin-left:-1.75rem;margin-top:.4rem;width:1.25rem}.form-check-label-sm{font-size:.875rem}.form-check-label-lg{font-size:1.25rem}"]
|
|
1083
|
+
},] }
|
|
1084
|
+
];
|
|
1085
|
+
SacRadiobuttonComponent.ctorParameters = () => [
|
|
1086
|
+
{ type: SacRadiobuttonsComponent, decorators: [{ type: Host }] }
|
|
1087
|
+
];
|
|
1088
|
+
|
|
1089
|
+
class SACBootstrap5CheckboxModule {
|
|
1090
|
+
}
|
|
1091
|
+
SACBootstrap5CheckboxModule.decorators = [
|
|
1092
|
+
{ type: NgModule, args: [{
|
|
1093
|
+
declarations: [
|
|
1094
|
+
SacCheckboxComponent,
|
|
1095
|
+
SacRadiobuttonComponent,
|
|
1096
|
+
SacRadiobuttonsComponent,
|
|
1097
|
+
],
|
|
1098
|
+
imports: [CommonModule, SACBootstrap5LayoutModule],
|
|
1099
|
+
exports: [
|
|
1100
|
+
SacCheckboxComponent,
|
|
1101
|
+
SacRadiobuttonComponent,
|
|
1102
|
+
SacRadiobuttonsComponent,
|
|
1103
|
+
],
|
|
1104
|
+
},] }
|
|
1105
|
+
];
|
|
1106
|
+
|
|
1107
|
+
/**
|
|
1108
|
+
* Referenz auf Moment.JS
|
|
1109
|
+
*/
|
|
1110
|
+
const moment = moment_;
|
|
1111
|
+
/**
|
|
1112
|
+
* Komponente für Datumauswahl
|
|
1113
|
+
*/
|
|
1114
|
+
class SacDateComponent extends SacDateCommon {
|
|
1115
|
+
// #region Constructors
|
|
1116
|
+
/**
|
|
1117
|
+
* Constructor
|
|
1118
|
+
* @param formLayout SacFormLayout to define scoped layout settings
|
|
1119
|
+
* @param injector Injector for injecting services
|
|
1120
|
+
* @param elementRef Reference to html dom element
|
|
1121
|
+
*/
|
|
1122
|
+
constructor(formLayout, injector, elementRef) {
|
|
1123
|
+
super(formLayout, injector, elementRef);
|
|
1124
|
+
}
|
|
1125
|
+
}
|
|
1126
|
+
SacDateComponent.decorators = [
|
|
1127
|
+
{ type: Component, args: [{
|
|
1128
|
+
selector: 'sac-date',
|
|
1129
|
+
template: "<div class=\"row mb-3\" [class.g-0]=\"disablelabel\">\r\n <label\r\n for=\"{{name}}\"\r\n class=\"col-12 col-form-label\"\r\n [ngClass]=\"[disablelabel === false ? (this.labelSizes | toLabelWidthCss) : 'visually-hidden', componentHeight | toLabelHeight]\"\r\n >{{label}}</label\r\n >\r\n <div\r\n class=\"col-12 position-relative\"\r\n [ngClass]=\"[disablelabel === false ? (this.labelSizes | toControlWidthCss) : '']\"\r\n >\r\n <div\r\n class=\"input-group\"\r\n [class.input-group-sm]=\"componentHeight === ControlHeight.Small\"\r\n [class.input-group-lg]=\"componentHeight === ControlHeight.Large\"\r\n [class.has-validation]=\"isinlineerrorenabled && invalid && (dirty || touched)\"\r\n >\r\n <input\r\n id=\"{{name}}\"\r\n name=\"{{name}}\"\r\n type=\"text\"\r\n class=\"form-control\"\r\n [imask]=\"imaskDate\"\r\n [attr.placeholder]=\"placeholder\"\r\n [value]=\"valuestring\"\r\n [class.is-invalid]=\"invalid && (dirty || touched)\"\r\n [ngClass]=\"[componentHeight | toControlHeight]\"\r\n (blur)=\"onTouch()\"\r\n (accept)=\"setValueString($event)\"\r\n [disabled]=\"isdisabled\"\r\n />\r\n <button\r\n class=\"btn btn-secondary\"\r\n type=\"button\"\r\n (click)=\"showDateSelector()\"\r\n [disabled]=\"isdisabled\"\r\n >\r\n <i [class]=\"IconSelector\"></i>\r\n </button>\r\n <div\r\n *ngIf=\"isinlineerrorenabled && invalid && (dirty || touched)\"\r\n class=\"invalid-feedback\"\r\n >\r\n {{ GetErrorMessage() | async }}\r\n </div>\r\n </div>\r\n <div\r\n class=\"popover fade bs-popover-bottom show position-absolute\"\r\n role=\"tooltip\"\r\n *ngIf=\"_showselector\"\r\n style=\"\r\n display: block;\r\n left: unset;\r\n right: 0px;\r\n top: unset;\r\n max-width: 325px;\r\n margin-top: 7px;\r\n \"\r\n >\r\n <div\r\n class=\"popover-arrow position-absolute\"\r\n style=\"left: unset\"\r\n [style.right.rem]=\"componentHeight === ControlHeight.Small ? 1.1 : componentHeight === ControlHeight.Large ? 1.8 : 1.4\"\r\n ></div>\r\n <h3 class=\"popover-header\" style=\"display: none\"></h3>\r\n <div class=\"popover-body\">\r\n <sac-dateselector\r\n [initialvalue]=\"value\"\r\n (selectdate)=\"dateselect($event)\"\r\n dateselection=\"true\"\r\n ></sac-dateselector>\r\n </div>\r\n </div>\r\n </div>\r\n</div>\r\n",
|
|
1130
|
+
// Value Access Provider registrieren, damit Wert via Model geschrieben und gelesen werden kann
|
|
1131
|
+
providers: [
|
|
1132
|
+
{
|
|
1133
|
+
provide: NG_VALUE_ACCESSOR,
|
|
1134
|
+
multi: true,
|
|
1135
|
+
useExisting: forwardRef(() => SacDateComponent),
|
|
1136
|
+
},
|
|
1137
|
+
{
|
|
1138
|
+
provide: NG_VALIDATORS,
|
|
1139
|
+
multi: true,
|
|
1140
|
+
useExisting: forwardRef(() => SacDateComponent),
|
|
1141
|
+
},
|
|
1142
|
+
]
|
|
1143
|
+
},] }
|
|
1144
|
+
];
|
|
1145
|
+
SacDateComponent.ctorParameters = () => [
|
|
1146
|
+
{ type: SacFormLayoutDirective, decorators: [{ type: Host }, { type: Optional }] },
|
|
1147
|
+
{ type: Injector },
|
|
1148
|
+
{ type: ElementRef }
|
|
1149
|
+
];
|
|
1150
|
+
|
|
1151
|
+
/**
|
|
1152
|
+
* DateTime Selektor Komponente
|
|
1153
|
+
*/
|
|
1154
|
+
class SacDateSelectorComponent extends SacDateSelectorCommon {
|
|
1155
|
+
}
|
|
1156
|
+
SacDateSelectorComponent.decorators = [
|
|
1157
|
+
{ type: Component, args: [{
|
|
1158
|
+
selector: 'sac-dateselector',
|
|
1159
|
+
template: "<div class=\"calendar-selector\">\r\n <div *ngIf=\"dateselection\">\r\n <div class=\"container\">\r\n <div class=\"row\">\r\n <div class=\"col text-start\">\r\n <a (click)=\"monthBack()\"><span [class]=\"iconMonthPrev\"></span></a>\r\n </div>\r\n <div class=\"col text-center\">{{month+1}}/{{year}}</div>\r\n <div class=\"col text-end\">\r\n <a (click)=\"monthNext()\"><span [class]=\"iconMonthNext\"></span></a>\r\n </div>\r\n </div>\r\n </div>\r\n <div></div>\r\n <div class=\"container\">\r\n <div class=\"row\">\r\n <ng-container *ngFor=\"let week of dates; let i=index\">\r\n <ng-container *ngFor=\"let item of week\">\r\n <div\r\n class=\"p-2 col text-center\"\r\n [ngStyle]=\"{'cursor': item.isenabled ? 'pointer' : null}\"\r\n [ngClass]=\"{'day-current': item.iscurrent, 'day-selected': item.isselected, 'day-new': item.isnew, 'day-disabled': !item.isenabled}\"\r\n (click)=\"selectDate(item)\"\r\n >\r\n {{ item.displaytext }}\r\n </div>\r\n </ng-container>\r\n <div class=\"w-100\"></div>\r\n </ng-container>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"d-flex justify-content-start\" *ngIf=\"timeselection\">\r\n <div class=\"p-2\">\r\n <div class=\"form-group\">\r\n <label>Stunde</label>\r\n <input\r\n type=\"number\"\r\n class=\"form-control form-control-sm\"\r\n [value]=\"getHours()\"\r\n (input)=\"setHours($event.target.value)\"\r\n min=\"0\"\r\n max=\"23\"\r\n />\r\n </div>\r\n </div>\r\n <div class=\"p-2\">\r\n <div class=\"form-group\">\r\n <label>Minute</label>\r\n <input\r\n type=\"number\"\r\n class=\"form-control form-control-sm\"\r\n [value]=\"getMinutes()\"\r\n (input)=\"setMinutes($event.target.value)\"\r\n min=\"0\"\r\n max=\"59\"\r\n />\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"d-flex flex-row\">\r\n <div class=\"flex-grow-1 p-2\">\r\n <button type=\"button\" class=\"btn btn-secondary\" (click)=\"setToday()\">\r\n Heute\r\n </button>\r\n </div>\r\n <div class=\"p-2\">\r\n <button\r\n type=\"button\"\r\n class=\"btn btn-secondary\"\r\n (click)=\"resetSelection()\"\r\n >\r\n Reset\r\n </button>\r\n </div>\r\n <div class=\"p-2\">\r\n <button type=\"button\" class=\"btn btn-primary\" (click)=\"applySelection()\">\r\n Apply\r\n </button>\r\n </div>\r\n </div>\r\n</div>\r\n"
|
|
1160
|
+
},] }
|
|
1161
|
+
];
|
|
1162
|
+
|
|
1163
|
+
/**
|
|
1164
|
+
* Date und Time Komponente
|
|
1165
|
+
*/
|
|
1166
|
+
class SacDateTimeComponent extends SacDateTimeCommon {
|
|
1167
|
+
// #region Constructors
|
|
1168
|
+
/**
|
|
1169
|
+
* Constructor
|
|
1170
|
+
* @param formLayout SacFormLayout to define scoped layout settings
|
|
1171
|
+
* @param injector Injector for injecting services
|
|
1172
|
+
* @param elementRef Reference to html dom element
|
|
1173
|
+
*/
|
|
1174
|
+
constructor(formLayout, injector, elementRef) {
|
|
1175
|
+
super(formLayout, injector, elementRef);
|
|
1176
|
+
}
|
|
1177
|
+
}
|
|
1178
|
+
SacDateTimeComponent.decorators = [
|
|
1179
|
+
{ type: Component, args: [{
|
|
1180
|
+
selector: 'sac-datetime',
|
|
1181
|
+
template: "<div class=\"row mb-3\" [class.g-0]=\"disablelabel\">\r\n <label\r\n for=\"{{name}}\"\r\n class=\"col-12 col-form-label\"\r\n [ngClass]=\"[disablelabel === false ? (this.labelSizes | toLabelWidthCss) : 'visually-hidden', componentHeight | toLabelHeight]\"\r\n >{{label}}</label\r\n >\r\n <div\r\n class=\"col-12 position-relative\"\r\n [ngClass]=\"[disablelabel === false ? (this.labelSizes | toControlWidthCss) : '']\"\r\n >\r\n <div\r\n class=\"input-group\"\r\n [class.input-group-sm]=\"componentHeight === ControlHeight.Small\"\r\n [class.input-group-lg]=\"componentHeight === ControlHeight.Large\"\r\n [class.has-validation]=\"isinlineerrorenabled && invalid && (dirty || touched)\"\r\n >\r\n <input\r\n id=\"{{name}}\"\r\n name=\"{{name}}\"\r\n type=\"text\"\r\n class=\"form-control\"\r\n [imask]=\"imaskDate\"\r\n [attr.placeholder]=\"placeholder\"\r\n [value]=\"valuestring\"\r\n [class.is-invalid]=\"invalid && (dirty || touched)\"\r\n [ngClass]=\"[componentHeight | toControlHeight]\"\r\n (blur)=\"onTouch()\"\r\n (accept)=\"setValueString($event)\"\r\n [disabled]=\"isdisabled\"\r\n />\r\n <button\r\n class=\"btn btn-secondary\"\r\n type=\"button\"\r\n (click)=\"showDateSelector()\"\r\n [disabled]=\"isdisabled\"\r\n >\r\n <i [class]=\"IconSelector\"></i>\r\n </button>\r\n <div\r\n *ngIf=\"isinlineerrorenabled && invalid && (dirty || touched)\"\r\n class=\"invalid-feedback\"\r\n >\r\n {{ GetErrorMessage() | async }}\r\n </div>\r\n </div>\r\n <div\r\n class=\"popover fade bs-popover-bottom show position-absolute\"\r\n role=\"tooltip\"\r\n *ngIf=\"_showselector\"\r\n style=\"\r\n display: block;\r\n left: unset;\r\n right: 0px;\r\n top: unset;\r\n max-width: 325px;\r\n margin-top: 7px;\r\n \"\r\n >\r\n <div\r\n class=\"popover-arrow position-absolute\"\r\n style=\"left: unset\"\r\n [style.right.rem]=\"componentHeight === ControlHeight.Small ? 1.1 : componentHeight === ControlHeight.Large ? 1.8 : 1.4\"\r\n ></div>\r\n <h3 class=\"popover-header\" style=\"display: none\"></h3>\r\n <div class=\"popover-body\">\r\n <sac-dateselector\r\n [initialvalue]=\"value\"\r\n (selectdate)=\"dateselect($event)\"\r\n dateselection=\"true\"\r\n timeselection=\"true\"\r\n ></sac-dateselector>\r\n </div>\r\n </div>\r\n </div>\r\n</div>\r\n",
|
|
1182
|
+
// Value Access Provider registrieren, damit Wert via Model geschrieben und gelesen werden kann
|
|
1183
|
+
providers: [
|
|
1184
|
+
{
|
|
1185
|
+
provide: NG_VALUE_ACCESSOR,
|
|
1186
|
+
multi: true,
|
|
1187
|
+
useExisting: forwardRef(() => SacDateTimeComponent),
|
|
1188
|
+
},
|
|
1189
|
+
{
|
|
1190
|
+
provide: NG_VALIDATORS,
|
|
1191
|
+
multi: true,
|
|
1192
|
+
useExisting: forwardRef(() => SacDateTimeComponent),
|
|
1193
|
+
},
|
|
1194
|
+
]
|
|
1195
|
+
},] }
|
|
1196
|
+
];
|
|
1197
|
+
SacDateTimeComponent.ctorParameters = () => [
|
|
1198
|
+
{ type: SacFormLayoutDirective, decorators: [{ type: Host }, { type: Optional }] },
|
|
1199
|
+
{ type: Injector },
|
|
1200
|
+
{ type: ElementRef }
|
|
1201
|
+
];
|
|
1202
|
+
|
|
1203
|
+
/**
|
|
1204
|
+
* Time Auswahl Komponente
|
|
1205
|
+
*/
|
|
1206
|
+
class SacTimeComponent extends SacTimeCommon {
|
|
1207
|
+
// #region Constructors
|
|
1208
|
+
/**
|
|
1209
|
+
* Constructor
|
|
1210
|
+
* @param formLayout SacFormLayout to define scoped layout settings
|
|
1211
|
+
* @param injector Injector for injecting services
|
|
1212
|
+
* @param elementRef Reference to html dom element
|
|
1213
|
+
*/
|
|
1214
|
+
constructor(formLayout, injector, elementRef) {
|
|
1215
|
+
super(formLayout, injector, elementRef);
|
|
1216
|
+
}
|
|
1217
|
+
}
|
|
1218
|
+
SacTimeComponent.decorators = [
|
|
1219
|
+
{ type: Component, args: [{
|
|
1220
|
+
selector: 'sac-time',
|
|
1221
|
+
template: "<div class=\"row mb-3\" [class.g-0]=\"disablelabel\">\r\n <label\r\n for=\"{{name}}\"\r\n class=\"col-12 col-form-label\"\r\n [ngClass]=\"[disablelabel === false ? (this.labelSizes | toLabelWidthCss) : 'visually-hidden', componentHeight | toLabelHeight]\"\r\n >{{label}}</label\r\n >\r\n <div\r\n class=\"col-12 position-relative\"\r\n [ngClass]=\"[disablelabel === false ? (this.labelSizes | toControlWidthCss) : '']\"\r\n >\r\n <div\r\n class=\"input-group\"\r\n [class.input-group-sm]=\"componentHeight === ControlHeight.Small\"\r\n [class.input-group-lg]=\"componentHeight === ControlHeight.Large\"\r\n [class.has-validation]=\"isinlineerrorenabled && invalid && (dirty || touched)\"\r\n >\r\n <input\r\n id=\"{{name}}\"\r\n name=\"{{name}}\"\r\n type=\"text\"\r\n class=\"form-control\"\r\n [imask]=\"imaskDate\"\r\n [attr.placeholder]=\"placeholder\"\r\n [value]=\"valuestring\"\r\n [class.is-invalid]=\"invalid && (dirty || touched)\"\r\n [ngClass]=\"[componentHeight | toControlHeight]\"\r\n (blur)=\"onTouch()\"\r\n (accept)=\"setValueString($event)\"\r\n [disabled]=\"isdisabled\"\r\n />\r\n <button\r\n class=\"btn btn-secondary\"\r\n type=\"button\"\r\n (click)=\"showTimeSelector()\"\r\n [disabled]=\"isdisabled\"\r\n >\r\n <i [class]=\"IconSelector\"></i>\r\n </button>\r\n <div\r\n *ngIf=\"isinlineerrorenabled && invalid && (dirty || touched)\"\r\n class=\"invalid-feedback\"\r\n >\r\n {{ GetErrorMessage() | async }}\r\n </div>\r\n </div>\r\n <div\r\n class=\"popover fade bs-popover-bottom show position-absolute\"\r\n role=\"tooltip\"\r\n *ngIf=\"_showselector\"\r\n style=\"\r\n display: block;\r\n left: unset;\r\n right: 0px;\r\n top: unset;\r\n max-width: 325px;\r\n margin-top: 7px;\r\n \"\r\n >\r\n <div\r\n class=\"popover-arrow position-absolute\"\r\n style=\"left: unset\"\r\n [style.right.rem]=\"componentHeight === ControlHeight.Small ? 1.1 : componentHeight === ControlHeight.Large ? 1.8 : 1.4\"\r\n ></div>\r\n <h3 class=\"popover-header\" style=\"display: none\"></h3>\r\n <div class=\"popover-body\">\r\n <sac-dateselector\r\n [initialvalue]=\"value\"\r\n (selectdate)=\"timeselect($event)\"\r\n timeselection=\"true\"\r\n ></sac-dateselector>\r\n </div>\r\n </div>\r\n </div>\r\n</div>\r\n",
|
|
1222
|
+
// Value Access Provider registrieren, damit Wert via Model geschrieben und gelesen werden kann
|
|
1223
|
+
providers: [
|
|
1224
|
+
{
|
|
1225
|
+
provide: NG_VALUE_ACCESSOR,
|
|
1226
|
+
multi: true,
|
|
1227
|
+
useExisting: forwardRef(() => SacTimeComponent),
|
|
1228
|
+
},
|
|
1229
|
+
{
|
|
1230
|
+
provide: NG_VALIDATORS,
|
|
1231
|
+
multi: true,
|
|
1232
|
+
useExisting: forwardRef(() => SacTimeComponent),
|
|
1233
|
+
},
|
|
1234
|
+
]
|
|
1235
|
+
},] }
|
|
1236
|
+
];
|
|
1237
|
+
SacTimeComponent.ctorParameters = () => [
|
|
1238
|
+
{ type: SacFormLayoutDirective, decorators: [{ type: Host }, { type: Optional }] },
|
|
1239
|
+
{ type: Injector },
|
|
1240
|
+
{ type: ElementRef }
|
|
1241
|
+
];
|
|
1242
|
+
|
|
1243
|
+
class SACBootstrap5DateTimeModule {
|
|
1244
|
+
}
|
|
1245
|
+
SACBootstrap5DateTimeModule.decorators = [
|
|
1246
|
+
{ type: NgModule, args: [{
|
|
1247
|
+
declarations: [
|
|
1248
|
+
SacDateComponent,
|
|
1249
|
+
SacDateTimeComponent,
|
|
1250
|
+
SacTimeComponent,
|
|
1251
|
+
SacDateSelectorComponent,
|
|
1252
|
+
],
|
|
1253
|
+
imports: [CommonModule, IMaskModule, SACBootstrap5LayoutModule],
|
|
1254
|
+
exports: [
|
|
1255
|
+
SacDateComponent,
|
|
1256
|
+
SacDateTimeComponent,
|
|
1257
|
+
SacTimeComponent,
|
|
1258
|
+
SacDateSelectorComponent,
|
|
1259
|
+
],
|
|
1260
|
+
},] }
|
|
1261
|
+
];
|
|
1262
|
+
|
|
1263
|
+
/**
|
|
1264
|
+
* Grid Komponente
|
|
1265
|
+
*/
|
|
1266
|
+
class SacGridComponent extends SacGridCommon {
|
|
1267
|
+
// #endregion Properties
|
|
1268
|
+
// #region Constructors
|
|
1269
|
+
/**
|
|
1270
|
+
* Konstrukor
|
|
1271
|
+
* @param cdRef Change Detection Reference
|
|
1272
|
+
*/
|
|
1273
|
+
constructor(cdRef, injector) {
|
|
1274
|
+
super(cdRef, injector);
|
|
1275
|
+
/**
|
|
1276
|
+
* Setzt die Ellipsis Funktion auf der Column
|
|
1277
|
+
*/
|
|
1278
|
+
this.ellipsis = false;
|
|
1279
|
+
}
|
|
1280
|
+
}
|
|
1281
|
+
SacGridComponent.decorators = [
|
|
1282
|
+
{ type: Component, args: [{
|
|
1283
|
+
selector: 'sac-grid',
|
|
1284
|
+
template: "<div class=\"table-responsive\">\r\n <table class=\"table table-striped table-hover\" id={{name}}>\r\n <thead class=\"thead-light\">\r\n <tr>\r\n <ng-container *ngTemplateOutlet=\"template; context { row: {}, type: 'header'}\">\r\n </ng-container>\r\n </tr>\r\n </thead>\r\n <tbody>\r\n <ng-container *ngFor=\"let item of value; let i=index\">\r\n <tr>\r\n <ng-container *ngTemplateOutlet=\"template; context { row: item, type: 'body'}\">\r\n </ng-container>\r\n </tr>\r\n </ng-container>\r\n <tr *ngIf=\"value === undefined || value === null || value.length===0\">\r\n <td [attr.colspan]=\"ColumnCount\">{{emptytext}}</td>\r\n </tr>\r\n <tr>\r\n <td [attr.colspan]=\"ColumnCount\">\r\n <div class=\"container-fluid\">\r\n <sac-paging name=\"{{name}}Paging\" (paging)=\"pageChange($event)\" [pagerdata]=\"pagerdata\" [pagesizes]=\"pagesizes\" [pagingtext]=\"pagingtext\" [pagesizetext]=\"pagesizetext\" [pagesizedisabled]=\"pagesizedisabled\"></sac-paging>\r\n </div>\r\n </td>\r\n </tr>\r\n </tbody>\r\n </table>\r\n</div>\r\n",
|
|
1285
|
+
// Value Access Provider registrieren, damit Wert via Model geschrieben und gelesen werden kann
|
|
1286
|
+
providers: [
|
|
1287
|
+
{ provide: NG_VALUE_ACCESSOR, multi: true, useExisting: SacGridComponent },
|
|
1288
|
+
{
|
|
1289
|
+
provide: NG_VALIDATORS,
|
|
1290
|
+
multi: true,
|
|
1291
|
+
useExisting: forwardRef(() => SacGridComponent),
|
|
1292
|
+
},
|
|
1293
|
+
]
|
|
1294
|
+
},] }
|
|
1295
|
+
];
|
|
1296
|
+
SacGridComponent.ctorParameters = () => [
|
|
1297
|
+
{ type: ChangeDetectorRef },
|
|
1298
|
+
{ type: Injector }
|
|
1299
|
+
];
|
|
1300
|
+
SacGridComponent.propDecorators = {
|
|
1301
|
+
template: [{ type: ContentChild, args: [TemplateRef, { static: false },] }]
|
|
1302
|
+
};
|
|
1303
|
+
|
|
1304
|
+
/**
|
|
1305
|
+
* Grid Action Button
|
|
1306
|
+
*
|
|
1307
|
+
* @example Standard Action
|
|
1308
|
+
*
|
|
1309
|
+
* <ngGridButton icon="edit" (clicked)="action('edit')" [isdisabled]="true"></ngGridButton>
|
|
1310
|
+
*
|
|
1311
|
+
* @example Custom Action
|
|
1312
|
+
*
|
|
1313
|
+
* <ngGridButton iconstyle="sprite" icon="icon-sprite-base-main_info" (clicked)="action("info")"></ngGridButton>
|
|
1314
|
+
*
|
|
1315
|
+
*/
|
|
1316
|
+
class SacGridButtonComponent extends SacGridButtonCommon {
|
|
1317
|
+
/**
|
|
1318
|
+
* Gibt das Icon für den Button zurück
|
|
1319
|
+
*/
|
|
1320
|
+
getIconClass() {
|
|
1321
|
+
let iconset = this.iconstyle;
|
|
1322
|
+
let iconcss = this.icon;
|
|
1323
|
+
if (iconset === '') {
|
|
1324
|
+
switch (this.icon) {
|
|
1325
|
+
case 'edit':
|
|
1326
|
+
iconset = 'sprite';
|
|
1327
|
+
iconcss = 'icon-sprite-base-main_edit';
|
|
1328
|
+
break;
|
|
1329
|
+
case 'delete':
|
|
1330
|
+
iconset = 'sprite';
|
|
1331
|
+
iconcss = 'icon-sprite-base-main_delete';
|
|
1332
|
+
break;
|
|
1333
|
+
}
|
|
1334
|
+
}
|
|
1335
|
+
if (this._isdisabledvalue) {
|
|
1336
|
+
iconcss += '_disabled';
|
|
1337
|
+
}
|
|
1338
|
+
const result = iconset + ' ' + iconcss;
|
|
1339
|
+
return result.trim();
|
|
1340
|
+
}
|
|
1341
|
+
}
|
|
1342
|
+
SacGridButtonComponent.decorators = [
|
|
1343
|
+
{ type: Component, args: [{
|
|
1344
|
+
selector: 'sac-gridbutton',
|
|
1345
|
+
template: "<a (click)=\"callaction()\" style=\"padding-right: 5px;\" [class.disabled]=\"isdisabled\" [attr.disabled]=\"isdisabled ? 'disabled' : null\"><span class=\"{{getIconClass()}}\"></span></a>\r\n"
|
|
1346
|
+
},] }
|
|
1347
|
+
];
|
|
1348
|
+
|
|
1349
|
+
/**
|
|
1350
|
+
* Grid Column Komponente
|
|
1351
|
+
*/
|
|
1352
|
+
class SacGridColumnComponent extends SacGridColumnCommon {
|
|
1353
|
+
/**
|
|
1354
|
+
* Konstruktor
|
|
1355
|
+
* @param grid Grid Referenz
|
|
1356
|
+
* @param el HTML DOM Element
|
|
1357
|
+
*/
|
|
1358
|
+
constructor(grid, injector, el) {
|
|
1359
|
+
super(grid, injector, el);
|
|
1360
|
+
}
|
|
1361
|
+
}
|
|
1362
|
+
SacGridColumnComponent.decorators = [
|
|
1363
|
+
{ type: Component, args: [{
|
|
1364
|
+
selector: 'sac-gridcolumn',
|
|
1365
|
+
template: "<th\r\n scope=\"col\"\r\n *ngIf=\"IsHeader()\"\r\n [style.width]=\"width\"\r\n (click)=\"SortByColumn()\"\r\n>\r\n <span>{{header}}</span>\r\n <span\r\n class=\"ps-2\"\r\n [class]=\"IconSortUp\"\r\n *ngIf=\"IsSortedColumn() && GetSortDirection() ==='asc'\"\r\n ></span>\r\n <span\r\n class=\"ps-2\"\r\n [class]=\"IconSortDown\"\r\n *ngIf=\"IsSortedColumn() && GetSortDirection() ==='desc'\"\r\n ></span>\r\n</th>\r\n<td\r\n scope=\"col\"\r\n *ngIf=\"IsBody()\"\r\n [style.width]=\"width\"\r\n [class.ellipsis]=\"IsEllipsis()\"\r\n>\r\n <span [attr.title]=\"IsEllipsis() ? value : null\"> {{value}} </span>\r\n</td>\r\n",
|
|
1366
|
+
providers: [
|
|
1367
|
+
{
|
|
1368
|
+
provide: SacGridColumnBaseCommon,
|
|
1369
|
+
useExisting: forwardRef(() => SacGridColumnComponent),
|
|
1370
|
+
},
|
|
1371
|
+
]
|
|
1372
|
+
},] }
|
|
1373
|
+
];
|
|
1374
|
+
SacGridColumnComponent.ctorParameters = () => [
|
|
1375
|
+
{ type: SacGridComponent },
|
|
1376
|
+
{ type: Injector },
|
|
1377
|
+
{ type: ElementRef }
|
|
1378
|
+
];
|
|
1379
|
+
|
|
1380
|
+
/**
|
|
1381
|
+
* Grid Action Komponent
|
|
1382
|
+
*/
|
|
1383
|
+
class SacGridColumnActionComponent extends SacGridColumnActionCommon {
|
|
1384
|
+
/**
|
|
1385
|
+
* Konstruktor
|
|
1386
|
+
* @param grid Referenz auf Grid
|
|
1387
|
+
* @param el HTML Element Referenz
|
|
1388
|
+
*/
|
|
1389
|
+
constructor(grid, injector, el) {
|
|
1390
|
+
super(grid, injector, el);
|
|
1391
|
+
this.width = '60px';
|
|
1392
|
+
}
|
|
1393
|
+
}
|
|
1394
|
+
SacGridColumnActionComponent.decorators = [
|
|
1395
|
+
{ type: Component, args: [{
|
|
1396
|
+
selector: 'sac-gridcolumnaction',
|
|
1397
|
+
template: "<th scope=\"col\" *ngIf=\"IsHeader()\" [style.width]=\"width\"><span></span></th>\r\n<td scope=\"col\" class=\"px-2\" *ngIf=\"IsBody()\">\r\n <ng-content></ng-content>\r\n</td>\r\n",
|
|
1398
|
+
providers: [
|
|
1399
|
+
{
|
|
1400
|
+
provide: SacGridColumnBaseCommon,
|
|
1401
|
+
useExisting: forwardRef(() => SacGridColumnActionComponent),
|
|
1402
|
+
},
|
|
1403
|
+
]
|
|
1404
|
+
},] }
|
|
1405
|
+
];
|
|
1406
|
+
SacGridColumnActionComponent.ctorParameters = () => [
|
|
1407
|
+
{ type: SacGridComponent },
|
|
1408
|
+
{ type: Injector },
|
|
1409
|
+
{ type: ElementRef }
|
|
1410
|
+
];
|
|
1411
|
+
|
|
1412
|
+
/**
|
|
1413
|
+
* Image Item für Grid
|
|
1414
|
+
*/
|
|
1415
|
+
class SacGridImageComponent extends SacGridImageCommon {
|
|
1416
|
+
/**
|
|
1417
|
+
* Gibt die CSS Klassen für Sprite Images zurück
|
|
1418
|
+
* @returns CSS Klasse
|
|
1419
|
+
*/
|
|
1420
|
+
getIconClass() {
|
|
1421
|
+
switch (this.iconstyle) {
|
|
1422
|
+
case 'edit':
|
|
1423
|
+
return 'sprite icon-sprite-base-main_edit';
|
|
1424
|
+
case 'delete':
|
|
1425
|
+
return 'sprite icon-sprite-base-main_delete';
|
|
1426
|
+
default:
|
|
1427
|
+
return this.iconstyle;
|
|
1428
|
+
}
|
|
1429
|
+
}
|
|
1430
|
+
}
|
|
1431
|
+
SacGridImageComponent.decorators = [
|
|
1432
|
+
{ type: Component, args: [{
|
|
1433
|
+
selector: 'sac-gridimage',
|
|
1434
|
+
template: "<span><span class=\"{{getIconClass()}}\"></span></span>\r\n"
|
|
1435
|
+
},] }
|
|
1436
|
+
];
|
|
1437
|
+
|
|
1438
|
+
/**
|
|
1439
|
+
* Paging Komponente
|
|
1440
|
+
*/
|
|
1441
|
+
class SacPagingComponent extends SacPagingCommon {
|
|
1442
|
+
/**
|
|
1443
|
+
* Konstruktor
|
|
1444
|
+
* @param injector Angular Dependency Injection Service
|
|
1445
|
+
*/
|
|
1446
|
+
constructor(injector) {
|
|
1447
|
+
super(injector);
|
|
1448
|
+
}
|
|
1449
|
+
}
|
|
1450
|
+
SacPagingComponent.decorators = [
|
|
1451
|
+
{ type: Component, args: [{
|
|
1452
|
+
selector: 'sac-paging',
|
|
1453
|
+
template: "<div\r\n class=\"d-flex justify-content-between align-items-center flex-wrap\"\r\n id=\"{{name}}\"\r\n>\r\n <div class=\"col-pagination order-2 order-md-1\" id=\"{{name}}_pages\">\r\n <ul class=\"pagination mb-4 mb-md-0\">\r\n <li\r\n class=\"page-item\"\r\n [ngClass]=\"{'aspNetDisabled disabled': activePageIndex === firstPageIndex}\"\r\n >\r\n <a class=\"page-link\" (click)=\"firstPage()\">\u00AB</a>\r\n </li>\r\n <li\r\n class=\"page-item\"\r\n *ngFor=\"let page of paginators; let i = index\"\r\n [ngClass]=\"{'active': page === activePageIndex}\"\r\n >\r\n <a class=\"page-link\" (click)=\"changePage(page)\">{{page + 1 }}</a>\r\n </li>\r\n <li\r\n class=\"page-item\"\r\n [ngClass]=\"{'aspNetDisabled disabled': activePageIndex === lastPageIndex}\"\r\n >\r\n <a class=\"page-link\" (click)=\"lastPage()\">\u00BB</a>\r\n </li>\r\n </ul>\r\n </div>\r\n <div class=\"col-summary order-1 order-md-2\">\r\n <div class=\"mb-4 mb-md-0 mr-4 mb-md-0\">{{ PagingText | async }}</div>\r\n </div>\r\n <div class=\"col-pagesize order-3\" *ngIf=\"!pagesizedisabled\">\r\n <div class=\"d-flex align-items-center\" id=\"{{name}}_size\">\r\n <select\r\n class=\"form-select form-select-sm\"\r\n style=\"width: 85px\"\r\n [ngModel]=\"pageSize\"\r\n (ngModelChange)=\"changePageSize($event)\"\r\n >\r\n <option [ngValue]=\"size\" *ngFor=\"let size of getPageSizes\">\r\n {{size}}\r\n </option>\r\n </select>\r\n <div class=\"ms-2\">{{ PageSizeText | async }}</div>\r\n </div>\r\n </div>\r\n</div>\r\n",
|
|
1454
|
+
// Value Access Provider registrieren, damit Wert via Model geschrieben und gelesen werden kann
|
|
1455
|
+
providers: [
|
|
1456
|
+
{ provide: NG_VALUE_ACCESSOR, multi: true, useExisting: SacPagingComponent },
|
|
1457
|
+
{
|
|
1458
|
+
provide: NG_VALIDATORS,
|
|
1459
|
+
multi: true,
|
|
1460
|
+
useExisting: forwardRef(() => SacPagingComponent),
|
|
1461
|
+
},
|
|
1462
|
+
]
|
|
1463
|
+
},] }
|
|
1464
|
+
];
|
|
1465
|
+
SacPagingComponent.ctorParameters = () => [
|
|
1466
|
+
{ type: Injector }
|
|
1467
|
+
];
|
|
1468
|
+
|
|
1469
|
+
class SACBootstrap5GridModule {
|
|
1470
|
+
}
|
|
1471
|
+
SACBootstrap5GridModule.decorators = [
|
|
1472
|
+
{ type: NgModule, args: [{
|
|
1473
|
+
declarations: [SacGridComponent, SacGridColumnComponent, SacGridColumnActionComponent, SacPagingComponent, SacGridButtonComponent, SacGridImageComponent],
|
|
1474
|
+
imports: [
|
|
1475
|
+
CommonModule, FormsModule
|
|
1476
|
+
],
|
|
1477
|
+
exports: [SacGridComponent, SacGridColumnComponent, SacGridColumnActionComponent, SacPagingComponent, SacGridButtonComponent, SacGridImageComponent]
|
|
1478
|
+
},] }
|
|
1479
|
+
];
|
|
1480
|
+
|
|
1481
|
+
/**
|
|
1482
|
+
* Input Komponente
|
|
1483
|
+
*/
|
|
1484
|
+
class SacInputComponent extends SacInputCommon {
|
|
1485
|
+
// #region Constructors
|
|
1486
|
+
/**
|
|
1487
|
+
* Constructor
|
|
1488
|
+
* @param formLayout SacFormLayout to define scoped layout settings
|
|
1489
|
+
* @param injector Injector for injecting services
|
|
1490
|
+
*/
|
|
1491
|
+
constructor(formLayout, injector) {
|
|
1492
|
+
super(formLayout, injector);
|
|
1493
|
+
}
|
|
1494
|
+
}
|
|
1495
|
+
SacInputComponent.decorators = [
|
|
1496
|
+
{ type: Component, args: [{
|
|
1497
|
+
selector: 'sac-input',
|
|
1498
|
+
template: "<div class=\"row mb-3\" [class.g-0]=\"disablelabel\">\r\n <label\r\n for=\"{{name}}\"\r\n class=\"col-12 col-form-label\"\r\n [ngClass]=\"[disablelabel === false ? (this.labelSizes | toLabelWidthCss) : 'visually-hidden', componentHeight | toLabelHeight]\"\r\n >{{label}}</label\r\n >\r\n <div\r\n class=\"col-12\"\r\n [ngClass]=\"[disablelabel === false ? (this.labelSizes | toControlWidthCss) : '']\"\r\n >\r\n <input\r\n id=\"{{name}}\"\r\n name=\"{{name}}\"\r\n type=\"text\"\r\n class=\"form-control\"\r\n [value]=\"value\"\r\n [attr.placeholder]=\"placeholder\"\r\n [readonly]=\"readonly\"\r\n (blur)=\"onTouch()\"\r\n (input)=\"setValue($event.target.value)\"\r\n (keypress)=\"onKeyPress($event)\"\r\n [attr.maxlength]=\"maxlength\"\r\n [class.is-invalid]=\"invalid && (dirty || touched)\"\r\n [ngClass]=\"[componentHeight | toControlHeight]\"\r\n [disabled]=\"isdisabled\"\r\n />\r\n <div\r\n *ngIf=\"isinlineerrorenabled && invalid && (dirty || touched)\"\r\n class=\"invalid-feedback\"\r\n >\r\n {{ GetErrorMessage() | async }}\r\n </div>\r\n </div>\r\n</div>\r\n",
|
|
1499
|
+
// Value Access Provider registrieren, damit Wert via Model geschrieben und gelesen werden kann
|
|
1500
|
+
providers: [
|
|
1501
|
+
{ provide: NG_VALUE_ACCESSOR, multi: true, useExisting: SacInputComponent },
|
|
1502
|
+
{
|
|
1503
|
+
provide: NG_VALIDATORS,
|
|
1504
|
+
multi: true,
|
|
1505
|
+
useExisting: forwardRef(() => SacInputComponent),
|
|
1506
|
+
},
|
|
1507
|
+
]
|
|
1508
|
+
},] }
|
|
1509
|
+
];
|
|
1510
|
+
SacInputComponent.ctorParameters = () => [
|
|
1511
|
+
{ type: SacFormLayoutDirective, decorators: [{ type: Host }, { type: Optional }] },
|
|
1512
|
+
{ type: Injector }
|
|
1513
|
+
];
|
|
1514
|
+
|
|
1515
|
+
/**
|
|
1516
|
+
* Input Box für lange Texte
|
|
1517
|
+
*/
|
|
1518
|
+
class SacInputAreaComponent extends SacInputAreaCommon {
|
|
1519
|
+
// #region Constructors
|
|
1520
|
+
/**
|
|
1521
|
+
* Constructor
|
|
1522
|
+
* @param formLayout SacFormLayout to define scoped layout settings
|
|
1523
|
+
* @param injector Injector for injecting services
|
|
1524
|
+
*/
|
|
1525
|
+
constructor(formLayout, injector) {
|
|
1526
|
+
super(formLayout, injector);
|
|
1527
|
+
}
|
|
1528
|
+
}
|
|
1529
|
+
SacInputAreaComponent.decorators = [
|
|
1530
|
+
{ type: Component, args: [{
|
|
1531
|
+
selector: 'sac-inputarea',
|
|
1532
|
+
template: "<div class=\"row mb-3\" [class.g-0]=\"disablelabel\">\r\n <label\r\n for=\"{{name}}\"\r\n class=\"col-12 col-form-label\"\r\n [ngClass]=\"[disablelabel === false ? (this.labelSizes | toLabelWidthCss) : 'visually-hidden', componentHeight | toLabelHeight]\"\r\n >{{label}}</label\r\n >\r\n <div\r\n class=\"col-12\"\r\n [ngClass]=\"[disablelabel === false ? (this.labelSizes | toControlWidthCss) : '']\"\r\n >\r\n <textarea\r\n id=\"{{name}}\"\r\n name=\"{{name}}\"\r\n type=\"\"\r\n class=\"form-control\"\r\n [value]=\"value\"\r\n [attr.placeholder]=\"placeholder\"\r\n (blur)=\"onTouch()\"\r\n (input)=\"setValue($event.target.value)\"\r\n (keypress)=\"onKeyPress($event)\"\r\n [attr.rows]=\"rows\"\r\n [class.is-invalid]=\"invalid && (dirty || touched)\"\r\n [ngClass]=\"[componentHeight | toControlHeight]\"\r\n [disabled]=\"isdisabled\"\r\n [attr.maxlength]=\"maxlength\"\r\n [readonly]=\"readonly\"\r\n ></textarea>\r\n <div\r\n *ngIf=\"isinlineerrorenabled && invalid && (dirty || touched)\"\r\n class=\"invalid-feedback\"\r\n >\r\n {{ GetErrorMessage() | async }}\r\n </div>\r\n </div>\r\n</div>\r\n",
|
|
1533
|
+
// Value Access Provider registrieren, damit Wert via Model geschrieben und gelesen werden kann
|
|
1534
|
+
providers: [
|
|
1535
|
+
{
|
|
1536
|
+
provide: NG_VALUE_ACCESSOR,
|
|
1537
|
+
multi: true,
|
|
1538
|
+
useExisting: forwardRef(() => SacInputAreaComponent),
|
|
1539
|
+
},
|
|
1540
|
+
{
|
|
1541
|
+
provide: NG_VALIDATORS,
|
|
1542
|
+
multi: true,
|
|
1543
|
+
useExisting: forwardRef(() => SacInputAreaComponent),
|
|
1544
|
+
},
|
|
1545
|
+
]
|
|
1546
|
+
},] }
|
|
1547
|
+
];
|
|
1548
|
+
SacInputAreaComponent.ctorParameters = () => [
|
|
1549
|
+
{ type: SacFormLayoutDirective, decorators: [{ type: Host }, { type: Optional }] },
|
|
1550
|
+
{ type: Injector }
|
|
1551
|
+
];
|
|
1552
|
+
|
|
1553
|
+
/**
|
|
1554
|
+
* Input Control für Währungen
|
|
1555
|
+
*/
|
|
1556
|
+
class SacInputCurrencyComponent extends SacInputCurrencyCommon {
|
|
1557
|
+
// #region Constructors
|
|
1558
|
+
/**
|
|
1559
|
+
* Constructor
|
|
1560
|
+
* @param formLayout SacFormLayout to define scoped layout settings
|
|
1561
|
+
* @param injector Injector for injecting services
|
|
1562
|
+
*/
|
|
1563
|
+
constructor(formLayout, injector) {
|
|
1564
|
+
super(formLayout, injector);
|
|
1565
|
+
}
|
|
1566
|
+
}
|
|
1567
|
+
SacInputCurrencyComponent.decorators = [
|
|
1568
|
+
{ type: Component, args: [{
|
|
1569
|
+
selector: 'sac-inputcurrency',
|
|
1570
|
+
template: "<div class=\"row mb-3\" [class.g-0]=\"disablelabel\">\r\n <label\r\n for=\"{{name}}\"\r\n class=\"col-12 col-form-label\"\r\n [ngClass]=\"[disablelabel === false ? (this.labelSizes | toLabelWidthCss) : 'visually-hidden', componentHeight | toLabelHeight]\"\r\n >{{label}}</label\r\n >\r\n <div\r\n class=\"col-12\"\r\n [ngClass]=\"[disablelabel === false ? (this.labelSizes | toControlWidthCss) : '']\"\r\n >\r\n <div\r\n class=\"input-group input-group-sm\"\r\n [class.input-group-sm]=\"componentHeight === ControlHeight.Small\"\r\n [class.input-group-lg]=\"componentHeight === ControlHeight.Large\"\r\n [class.has-validation]=\"isinlineerrorenabled && invalid && (dirty || touched)\"\r\n >\r\n <input\r\n id=\"{{name}}\"\r\n name=\"{{name}}\"\r\n type=\"text\"\r\n class=\"form-control\"\r\n [value]=\"value\"\r\n (blur)=\"onTouch()\"\r\n (input)=\"setValue($event.target.value)\"\r\n [attr.placeholder]=\"placeholder\"\r\n (keypress)=\"onKeyPress($event)\"\r\n [disabled]=\"isdisabled\"\r\n [readonly]=\"readonly\"\r\n [class.is-invalid]=\"invalid && (dirty || touched)\"\r\n [ngClass]=\"[componentHeight | toControlHeight]\"\r\n />\r\n <span class=\"input-group-text\">{{currency}}</span>\r\n <div\r\n *ngIf=\"isinlineerrorenabled && invalid && (dirty || touched)\"\r\n class=\"invalid-feedback\"\r\n >\r\n {{ GetErrorMessage() | async }}\r\n </div>\r\n </div>\r\n </div>\r\n</div>\r\n",
|
|
1571
|
+
// Value Access Provider registrieren, damit Wert via Model geschrieben und gelesen werden kann
|
|
1572
|
+
providers: [
|
|
1573
|
+
{
|
|
1574
|
+
provide: NG_VALUE_ACCESSOR,
|
|
1575
|
+
multi: true,
|
|
1576
|
+
useExisting: forwardRef(() => SacInputCurrencyComponent),
|
|
1577
|
+
},
|
|
1578
|
+
{
|
|
1579
|
+
provide: NG_VALIDATORS,
|
|
1580
|
+
multi: true,
|
|
1581
|
+
useExisting: forwardRef(() => SacInputCurrencyComponent),
|
|
1582
|
+
},
|
|
1583
|
+
]
|
|
1584
|
+
},] }
|
|
1585
|
+
];
|
|
1586
|
+
SacInputCurrencyComponent.ctorParameters = () => [
|
|
1587
|
+
{ type: SacFormLayoutDirective, decorators: [{ type: Host }, { type: Optional }] },
|
|
1588
|
+
{ type: Injector }
|
|
1589
|
+
];
|
|
1590
|
+
|
|
1591
|
+
/**
|
|
1592
|
+
* Input Komponente für Zahlen
|
|
1593
|
+
*/
|
|
1594
|
+
class SacInputDecimalComponent extends SacInputDecimalCommon {
|
|
1595
|
+
// #region Constructors
|
|
1596
|
+
/**
|
|
1597
|
+
* Constructor
|
|
1598
|
+
* @param formLayout SacFormLayout to define scoped layout settings
|
|
1599
|
+
* @param injector Injector for injecting services
|
|
1600
|
+
*/
|
|
1601
|
+
constructor(formLayout, injector) {
|
|
1602
|
+
super(formLayout, injector);
|
|
1603
|
+
}
|
|
1604
|
+
}
|
|
1605
|
+
SacInputDecimalComponent.decorators = [
|
|
1606
|
+
{ type: Component, args: [{
|
|
1607
|
+
selector: 'sac-inputdecimal',
|
|
1608
|
+
template: "<div class=\"row mb-3\" [class.g-0]=\"disablelabel\">\r\n <label\r\n for=\"{{name}}\"\r\n class=\"col-12 col-form-label\"\r\n [ngClass]=\"[disablelabel === false ? (this.labelSizes | toLabelWidthCss) : 'visually-hidden', componentHeight | toLabelHeight]\"\r\n >{{label}}</label\r\n >\r\n <div\r\n class=\"col-12\"\r\n [ngClass]=\"[disablelabel === false ? (this.labelSizes | toControlWidthCss) : '']\"\r\n >\r\n <input\r\n id=\"{{name}}\"\r\n name=\"{{name}}\"\r\n type=\"text\"\r\n class=\"form-control\"\r\n [value]=\"value\"\r\n (blur)=\"onTouch()\"\r\n (input)=\"setValue($event.target.value)\"\r\n [attr.placeholder]=\"placeholder\"\r\n [readonly]=\"readonly\"\r\n (keypress)=\"onKeyPress($event)\"\r\n [disabled]=\"isdisabled\"\r\n [class.is-invalid]=\"invalid && (dirty || touched)\"\r\n [ngClass]=\"[componentHeight | toControlHeight]\"\r\n />\r\n <div\r\n *ngIf=\"isinlineerrorenabled && invalid && (dirty || touched)\"\r\n class=\"invalid-feedback\"\r\n >\r\n {{ GetErrorMessage() | async }}\r\n </div>\r\n </div>\r\n</div>\r\n",
|
|
1609
|
+
// Value Access Provider registrieren, damit Wert via Model geschrieben und gelesen werden kann
|
|
1610
|
+
providers: [
|
|
1611
|
+
{
|
|
1612
|
+
provide: NG_VALUE_ACCESSOR,
|
|
1613
|
+
multi: true,
|
|
1614
|
+
useExisting: forwardRef(() => SacInputDecimalComponent),
|
|
1615
|
+
},
|
|
1616
|
+
{
|
|
1617
|
+
provide: NG_VALIDATORS,
|
|
1618
|
+
multi: true,
|
|
1619
|
+
useExisting: forwardRef(() => SacInputDecimalComponent),
|
|
1620
|
+
},
|
|
1621
|
+
]
|
|
1622
|
+
},] }
|
|
1623
|
+
];
|
|
1624
|
+
SacInputDecimalComponent.ctorParameters = () => [
|
|
1625
|
+
{ type: SacFormLayoutDirective, decorators: [{ type: Host }, { type: Optional }] },
|
|
1626
|
+
{ type: Injector }
|
|
1627
|
+
];
|
|
1628
|
+
|
|
1629
|
+
/**
|
|
1630
|
+
* Input Box für E-Mail Adressen
|
|
1631
|
+
*/
|
|
1632
|
+
class SacInputEmailComponent extends SacInputEmailCommon {
|
|
1633
|
+
// #region Constructors
|
|
1634
|
+
/**
|
|
1635
|
+
* Constructor
|
|
1636
|
+
* @param formLayout SacFormLayout to define scoped layout settings
|
|
1637
|
+
* @param injector Injector for injecting services
|
|
1638
|
+
*/
|
|
1639
|
+
constructor(formLayout, injector) {
|
|
1640
|
+
super(formLayout, injector);
|
|
1641
|
+
}
|
|
1642
|
+
}
|
|
1643
|
+
SacInputEmailComponent.decorators = [
|
|
1644
|
+
{ type: Component, args: [{
|
|
1645
|
+
selector: 'sac-inputemail',
|
|
1646
|
+
template: "<div class=\"row mb-3\" [class.g-0]=\"disablelabel\">\r\n <label\r\n for=\"{{name}}\"\r\n class=\"col-12 col-form-label\"\r\n [ngClass]=\"[disablelabel === false ? (this.labelSizes | toLabelWidthCss) : 'visually-hidden', componentHeight | toLabelHeight]\"\r\n >{{label}}</label\r\n >\r\n <div\r\n class=\"col-12\"\r\n [ngClass]=\"[disablelabel === false ? (this.labelSizes | toControlWidthCss) : '']\"\r\n >\r\n <div\r\n class=\"input-group\"\r\n [class.input-group-sm]=\"componentHeight === ControlHeight.Small\"\r\n [class.input-group-lg]=\"componentHeight === ControlHeight.Large\"\r\n [class.has-validation]=\"isinlineerrorenabled && invalid && (dirty || touched)\"\r\n >\r\n <span class=\"input-group-text\">@</span>\r\n <input\r\n id=\"{{name}}\"\r\n name=\"{{name}}\"\r\n type=\"text\"\r\n class=\"form-control\"\r\n [value]=\"value\"\r\n (blur)=\"onTouch()\"\r\n (input)=\"setValue($event.target.value)\"\r\n [attr.placeholder]=\"placeholder\"\r\n [attr.maxlength]=\"maxlength\"\r\n autocomplete=\"email\"\r\n [class.is-invalid]=\"invalid && (dirty || touched)\"\r\n [ngClass]=\"[componentHeight | toControlHeight]\"\r\n [disabled]=\"isdisabled\"\r\n [readonly]=\"readonly\"\r\n />\r\n <div\r\n *ngIf=\"isinlineerrorenabled && invalid && (dirty || touched)\"\r\n class=\"invalid-feedback\"\r\n >\r\n {{ GetErrorMessage() | async }}\r\n </div>\r\n </div>\r\n </div>\r\n</div>\r\n",
|
|
1647
|
+
// Value Access Provider registrieren, damit Wert via Model geschrieben und gelesen werden kann
|
|
1648
|
+
providers: [
|
|
1649
|
+
{
|
|
1650
|
+
provide: NG_VALUE_ACCESSOR,
|
|
1651
|
+
multi: true,
|
|
1652
|
+
useExisting: forwardRef(() => SacInputEmailComponent),
|
|
1653
|
+
},
|
|
1654
|
+
{
|
|
1655
|
+
provide: NG_VALIDATORS,
|
|
1656
|
+
multi: true,
|
|
1657
|
+
useExisting: forwardRef(() => SacInputEmailComponent),
|
|
1658
|
+
},
|
|
1659
|
+
]
|
|
1660
|
+
},] }
|
|
1661
|
+
];
|
|
1662
|
+
SacInputEmailComponent.ctorParameters = () => [
|
|
1663
|
+
{ type: SacFormLayoutDirective, decorators: [{ type: Host }, { type: Optional }] },
|
|
1664
|
+
{ type: Injector }
|
|
1665
|
+
];
|
|
1666
|
+
|
|
1667
|
+
/**
|
|
1668
|
+
* Input Komponten für Ganzzahlen
|
|
1669
|
+
*/
|
|
1670
|
+
class SacInputIntegerComponent extends SacInputIntegerCommon {
|
|
1671
|
+
// #region Constructors
|
|
1672
|
+
/**
|
|
1673
|
+
* Constructor
|
|
1674
|
+
* @param formLayout SacFormLayout to define scoped layout settings
|
|
1675
|
+
* @param injector Injector for injecting services
|
|
1676
|
+
*/
|
|
1677
|
+
constructor(formLayout, injector) {
|
|
1678
|
+
super(formLayout, injector);
|
|
1679
|
+
}
|
|
1680
|
+
}
|
|
1681
|
+
SacInputIntegerComponent.decorators = [
|
|
1682
|
+
{ type: Component, args: [{
|
|
1683
|
+
selector: 'sac-inputinteger',
|
|
1684
|
+
template: "<div class=\"row mb-3\" [class.g-0]=\"disablelabel\">\r\n <label\r\n for=\"{{name}}\"\r\n class=\"col-12 col-form-label\"\r\n [ngClass]=\"[disablelabel === false ? (this.labelSizes | toLabelWidthCss) : 'visually-hidden', componentHeight | toLabelHeight]\"\r\n >{{label}}</label\r\n >\r\n <div\r\n class=\"col-12\"\r\n [ngClass]=\"[disablelabel === false ? (this.labelSizes | toControlWidthCss) : '']\"\r\n >\r\n <input\r\n id=\"{{name}}\"\r\n name=\"{{name}}\"\r\n type=\"text\"\r\n class=\"form-control\"\r\n [value]=\"value\"\r\n (blur)=\"onTouch()\"\r\n (input)=\"setValue($event.target.value)\"\r\n [attr.placeholder]=\"placeholder\"\r\n (keypress)=\"onKeyPress($event)\"\r\n [disabled]=\"isdisabled\"\r\n [readonly]=\"readonly\"\r\n [class.is-invalid]=\"invalid && (dirty || touched)\"\r\n [ngClass]=\"[componentHeight | toControlHeight]\"\r\n />\r\n <div\r\n *ngIf=\"isinlineerrorenabled && invalid && (dirty || touched)\"\r\n class=\"invalid-feedback\"\r\n >\r\n {{ GetErrorMessage() | async }}\r\n </div>\r\n </div>\r\n</div>\r\n",
|
|
1685
|
+
// Value Access Provider registrieren, damit Wert via Model geschrieben und gelesen werden kann
|
|
1686
|
+
providers: [
|
|
1687
|
+
{
|
|
1688
|
+
provide: NG_VALUE_ACCESSOR,
|
|
1689
|
+
multi: true,
|
|
1690
|
+
useExisting: SacInputIntegerComponent,
|
|
1691
|
+
},
|
|
1692
|
+
{
|
|
1693
|
+
provide: NG_VALIDATORS,
|
|
1694
|
+
multi: true,
|
|
1695
|
+
useExisting: forwardRef(() => SacInputIntegerComponent),
|
|
1696
|
+
},
|
|
1697
|
+
]
|
|
1698
|
+
},] }
|
|
1699
|
+
];
|
|
1700
|
+
SacInputIntegerComponent.ctorParameters = () => [
|
|
1701
|
+
{ type: SacFormLayoutDirective, decorators: [{ type: Host }, { type: Optional }] },
|
|
1702
|
+
{ type: Injector }
|
|
1703
|
+
];
|
|
1704
|
+
|
|
1705
|
+
/**
|
|
1706
|
+
* Input Box für Passwörter
|
|
1707
|
+
*/
|
|
1708
|
+
class SacInputPasswordComponent extends SacInputPasswordCommon {
|
|
1709
|
+
// #region Constructors
|
|
1710
|
+
/**
|
|
1711
|
+
* Constructor
|
|
1712
|
+
* @param formLayout SacFormLayout to define scoped layout settings
|
|
1713
|
+
* @param injector Injector for injecting services
|
|
1714
|
+
*/
|
|
1715
|
+
constructor(formLayout, injector) {
|
|
1716
|
+
super(formLayout, injector);
|
|
1717
|
+
}
|
|
1718
|
+
}
|
|
1719
|
+
SacInputPasswordComponent.decorators = [
|
|
1720
|
+
{ type: Component, args: [{
|
|
1721
|
+
selector: 'sac-inputpassword',
|
|
1722
|
+
template: "<div class=\"row mb-3\" [class.g-0]=\"disablelabel\">\r\n <label\r\n for=\"{{name}}\"\r\n class=\"col-12 col-form-label\"\r\n [ngClass]=\"[disablelabel === false ? (this.labelSizes | toLabelWidthCss) : 'visually-hidden', componentHeight | toLabelHeight]\"\r\n >{{label}}</label\r\n >\r\n <div\r\n class=\"col-12\"\r\n [ngClass]=\"[disablelabel === false ? (this.labelSizes | toControlWidthCss) : '']\"\r\n >\r\n <input\r\n id=\"{{name}}\"\r\n name=\"{{name}}\"\r\n type=\"password\"\r\n class=\"form-control\"\r\n [attr.placeholder]=\"placeholder\"\r\n [value]=\"value\"\r\n (blur)=\"onTouch()\"\r\n (input)=\"setValue($event.target.value)\"\r\n [attr.maxlength]=\"maxlength\"\r\n autocomplete=\"new-password\"\r\n [class.is-invalid]=\"invalid && (dirty || touched)\"\r\n [ngClass]=\"[componentHeight | toControlHeight]\"\r\n [disabled]=\"isdisabled\"\r\n [readonly]=\"readonly\"\r\n />\r\n <div\r\n *ngIf=\"isinlineerrorenabled && invalid && (dirty || touched)\"\r\n class=\"invalid-feedback\"\r\n >\r\n {{ GetErrorMessage() | async }}\r\n </div>\r\n </div>\r\n</div>\r\n",
|
|
1723
|
+
// Value Access Provider registrieren, damit Wert via Model geschrieben und gelesen werden kann
|
|
1724
|
+
providers: [
|
|
1725
|
+
{
|
|
1726
|
+
provide: NG_VALUE_ACCESSOR,
|
|
1727
|
+
multi: true,
|
|
1728
|
+
useExisting: SacInputPasswordComponent,
|
|
1729
|
+
},
|
|
1730
|
+
{
|
|
1731
|
+
provide: NG_VALIDATORS,
|
|
1732
|
+
multi: true,
|
|
1733
|
+
useExisting: forwardRef(() => SacInputPasswordComponent),
|
|
1734
|
+
},
|
|
1735
|
+
]
|
|
1736
|
+
},] }
|
|
1737
|
+
];
|
|
1738
|
+
SacInputPasswordComponent.ctorParameters = () => [
|
|
1739
|
+
{ type: SacFormLayoutDirective, decorators: [{ type: Host }, { type: Optional }] },
|
|
1740
|
+
{ type: Injector }
|
|
1741
|
+
];
|
|
1742
|
+
|
|
1743
|
+
/**
|
|
1744
|
+
* Input Box für Suche
|
|
1745
|
+
*/
|
|
1746
|
+
class SacInputSearchComponent extends SacInputSearchCommon {
|
|
1747
|
+
// #region Constructors
|
|
1748
|
+
/**
|
|
1749
|
+
* Constructor
|
|
1750
|
+
* @param formLayout SacFormLayout to define scoped layout settings
|
|
1751
|
+
* @param injector Injector for injecting services
|
|
1752
|
+
*/
|
|
1753
|
+
constructor(formLayout, injector) {
|
|
1754
|
+
super(formLayout, injector);
|
|
1755
|
+
}
|
|
1756
|
+
}
|
|
1757
|
+
SacInputSearchComponent.decorators = [
|
|
1758
|
+
{ type: Component, args: [{
|
|
1759
|
+
selector: 'sac-inputsearch',
|
|
1760
|
+
template: "<div class=\"row mb-3\" [class.g-0]=\"disablelabel\">\r\n <label\r\n *ngIf=\"disablelabel === false && !isAdaptiveLabel\"\r\n id=\"{{name}}_label\"\r\n for=\"{{name}}\"\r\n class=\"col-12 col-form-label\"\r\n [ngClass]=\"[disablelabel === false ? (this.labelSizes | toLabelWidthCss) : 'visually-hidden', componentHeight | toLabelHeight]\"\r\n [class.required]=\"isrequired\"\r\n >{{label}}</label\r\n >\r\n <div\r\n class=\"col-12\"\r\n [ngClass]=\"[disablelabel === false ? (this.labelSizes | toControlWidthCss) : '']\"\r\n >\r\n <div\r\n class=\"input-group\"\r\n [class.input-group-sm]=\"componentHeight === ControlHeight.Small\"\r\n [class.input-group-lg]=\"componentHeight === ControlHeight.Large\"\r\n >\r\n <input\r\n id=\"{{name}}\"\r\n name=\"{{name}}\"\r\n type=\"text\"\r\n class=\"form-control\"\r\n [value]=\"value\"\r\n [attr.placeholder]=\"placeholder\"\r\n (blur)=\"onTouch()\"\r\n (input)=\"setValue($event.target.value)\"\r\n [attr.maxlength]=\"maxlength\"\r\n [class.is-invalid]=\"invalid && (dirty || touched)\"\r\n [ngClass]=\"[componentHeight | toControlHeight]\"\r\n [disabled]=\"isdisabled\"\r\n [readonly]=\"readonly\"\r\n />\r\n <input\r\n type=\"submit\"\r\n class=\"btn btn-secondary\"\r\n id=\"{{name}}_search\"\r\n (click)=\"searchClick()\"\r\n [value]=\"buttontext\"\r\n />\r\n </div>\r\n </div>\r\n</div>\r\n",
|
|
1761
|
+
// Value Access Provider registrieren, damit Wert via Model geschrieben und gelesen werden kann
|
|
1762
|
+
providers: [
|
|
1763
|
+
{
|
|
1764
|
+
provide: NG_VALUE_ACCESSOR,
|
|
1765
|
+
multi: true,
|
|
1766
|
+
useExisting: SacInputSearchComponent,
|
|
1767
|
+
},
|
|
1768
|
+
{
|
|
1769
|
+
provide: NG_VALIDATORS,
|
|
1770
|
+
multi: true,
|
|
1771
|
+
useExisting: forwardRef(() => SacInputSearchComponent),
|
|
1772
|
+
},
|
|
1773
|
+
]
|
|
1774
|
+
},] }
|
|
1775
|
+
];
|
|
1776
|
+
SacInputSearchComponent.ctorParameters = () => [
|
|
1777
|
+
{ type: SacFormLayoutDirective, decorators: [{ type: Host }, { type: Optional }] },
|
|
1778
|
+
{ type: Injector }
|
|
1779
|
+
];
|
|
1780
|
+
|
|
1781
|
+
class SACBootstrap5InputModule {
|
|
1782
|
+
}
|
|
1783
|
+
SACBootstrap5InputModule.decorators = [
|
|
1784
|
+
{ type: NgModule, args: [{
|
|
1785
|
+
declarations: [
|
|
1786
|
+
SacInputComponent,
|
|
1787
|
+
SacInputAreaComponent,
|
|
1788
|
+
SacInputCurrencyComponent,
|
|
1789
|
+
SacInputDecimalComponent,
|
|
1790
|
+
SacInputEmailComponent,
|
|
1791
|
+
SacInputIntegerComponent,
|
|
1792
|
+
SacInputPasswordComponent,
|
|
1793
|
+
SacInputSearchComponent,
|
|
1794
|
+
],
|
|
1795
|
+
imports: [CommonModule, SACBootstrap5LayoutModule],
|
|
1796
|
+
exports: [
|
|
1797
|
+
SacInputComponent,
|
|
1798
|
+
SacInputAreaComponent,
|
|
1799
|
+
SacInputCurrencyComponent,
|
|
1800
|
+
SacInputDecimalComponent,
|
|
1801
|
+
SacInputEmailComponent,
|
|
1802
|
+
SacInputIntegerComponent,
|
|
1803
|
+
SacInputPasswordComponent,
|
|
1804
|
+
SacInputSearchComponent,
|
|
1805
|
+
],
|
|
1806
|
+
},] }
|
|
1807
|
+
];
|
|
1808
|
+
|
|
1809
|
+
// #region Classes
|
|
1810
|
+
/**
|
|
1811
|
+
* Dropdown Komponente
|
|
1812
|
+
*/
|
|
1813
|
+
class SacDropdownComponent extends SacDropdownCommon {
|
|
1814
|
+
// #region Constructors
|
|
1815
|
+
/**
|
|
1816
|
+
* Constructor
|
|
1817
|
+
* @param formLayout SacFormLayout to define scoped layout settings
|
|
1818
|
+
* @param injector Injector for injecting services
|
|
1819
|
+
* @param renderer Angular rendering engine
|
|
1820
|
+
* @param elementRef Reference to html dom element
|
|
1821
|
+
*/
|
|
1822
|
+
constructor(formLayout, injector, renderer, elementRef) {
|
|
1823
|
+
super(formLayout, injector, renderer, elementRef);
|
|
1824
|
+
}
|
|
1825
|
+
}
|
|
1826
|
+
SacDropdownComponent.decorators = [
|
|
1827
|
+
{ type: Component, args: [{
|
|
1828
|
+
selector: 'sac-dropdown',
|
|
1829
|
+
template: "<div class=\"row mb-3\" [class.g-0]=\"disablelabel\">\r\n <label\r\n for=\"{{name}}\"\r\n class=\"col-12 col-form-label\"\r\n [ngClass]=\"[disablelabel === false ? (this.labelSizes | toLabelWidthCss) : 'visually-hidden', componentHeight | toLabelHeight]\"\r\n >{{label}}</label\r\n >\r\n <div\r\n class=\"col-12\"\r\n [ngClass]=\"[disablelabel === false ? (this.labelSizes | toControlWidthCss) : '']\"\r\n >\r\n <select\r\n #dropdownitem\r\n id=\"{{name}}\"\r\n name=\"{{name}}\"\r\n class=\"form-select\"\r\n [class.form-select-sm]=\"componentHeight === ControlHeight.Small\"\r\n [class.form-select-lg]=\"componentHeight === ControlHeight.Large\"\r\n [ngClass]=\"{'is-invalid': invalid && (dirty || touched) }\"\r\n (blur)=\"onTouch()\"\r\n (change)=\"setValue(dropdownitem.value)\"\r\n [disabled]=\"isdisabled\"\r\n >\r\n <option *ngIf=\"emptylabel !== ''\" [ngValue]=\"emptyvalue\">\r\n {{emptylabel}}\r\n </option>\r\n\r\n <ng-content></ng-content>\r\n\r\n <ng-container *ngIf=\"groupitems === ''\">\r\n <option\r\n *ngFor=\"let item of options\"\r\n [ngValue]=\"optionvalue ? item[optionvalue] : item\"\r\n [disabled]=\"optionenabled !== '' && item[optionenabled] === false\"\r\n >\r\n <ng-template\r\n *ngTemplateOutlet=\"optionlabeltemplate || defaultItemLabelTemplate;context:{ label: item[optionlabel], item: item }\"\r\n >\r\n </ng-template>\r\n </option>\r\n </ng-container>\r\n\r\n <ng-container *ngIf=\"groupitems !== ''\">\r\n <optgroup\r\n *ngFor=\"let group of options\"\r\n [attr.label]=\"group[grouplabel]\"\r\n >\r\n <option\r\n *ngFor=\"let item of group[groupitems]\"\r\n [ngValue]=\"optionvalue ? item[optionvalue] : item\"\r\n [disabled]=\"optionenabled !== '' && item[optionenabled] === false\"\r\n >\r\n <ng-template\r\n *ngTemplateOutlet=\"optionlabeltemplate || defaultItemLabelTemplate;context:{ label: item[optionlabel], item: item }\"\r\n >\r\n </ng-template>\r\n </option>\r\n </optgroup>\r\n </ng-container>\r\n </select>\r\n <div\r\n class=\"invalid-feedback\"\r\n *ngIf=\"isinlineerrorenabled && invalid && (dirty || touched)\"\r\n >\r\n {{ GetErrorMessage() | async }}\r\n </div>\r\n </div>\r\n</div>\r\n\r\n<ng-template #defaultItemLabelTemplate let-label=\"label\">\r\n {{label}}\r\n</ng-template>\r\n",
|
|
1830
|
+
// Value Access Provider registrieren, damit Wert via Model geschrieben und gelesen werden kann
|
|
1831
|
+
providers: [
|
|
1832
|
+
{
|
|
1833
|
+
provide: NG_VALUE_ACCESSOR,
|
|
1834
|
+
multi: true,
|
|
1835
|
+
useExisting: SacDropdownComponent,
|
|
1836
|
+
},
|
|
1837
|
+
{
|
|
1838
|
+
provide: NG_VALIDATORS,
|
|
1839
|
+
multi: true,
|
|
1840
|
+
useExisting: forwardRef(() => SacDropdownComponent),
|
|
1841
|
+
},
|
|
1842
|
+
]
|
|
1843
|
+
},] }
|
|
1844
|
+
];
|
|
1845
|
+
SacDropdownComponent.ctorParameters = () => [
|
|
1846
|
+
{ type: SacFormLayoutDirective, decorators: [{ type: Host }, { type: Optional }] },
|
|
1847
|
+
{ type: Injector },
|
|
1848
|
+
{ type: Renderer2 },
|
|
1849
|
+
{ type: ElementRef }
|
|
1850
|
+
];
|
|
1851
|
+
/**
|
|
1852
|
+
* Direktive für Dropdown Option List
|
|
1853
|
+
*/
|
|
1854
|
+
class SacDropdownOptionDirective extends SacDropdownOptionCommon {
|
|
1855
|
+
// #region Constructors
|
|
1856
|
+
/**
|
|
1857
|
+
* Konstruktor
|
|
1858
|
+
* @param elementRef Referenz auf HTML DOM Element
|
|
1859
|
+
* @param renderer Angular Rendering Engine
|
|
1860
|
+
* @param dropdownList Referenz auf DropDown Komponente
|
|
1861
|
+
*/
|
|
1862
|
+
constructor(elementRef, renderer, dropdownList) {
|
|
1863
|
+
super(elementRef, renderer, dropdownList);
|
|
1864
|
+
}
|
|
1865
|
+
}
|
|
1866
|
+
SacDropdownOptionDirective.decorators = [
|
|
1867
|
+
{ type: Directive, args: [{ selector: '[sacOption],option' },] }
|
|
1868
|
+
];
|
|
1869
|
+
SacDropdownOptionDirective.ctorParameters = () => [
|
|
1870
|
+
{ type: ElementRef },
|
|
1871
|
+
{ type: Renderer2 },
|
|
1872
|
+
{ type: SacDropdownComponent, decorators: [{ type: Optional }, { type: Host }] }
|
|
1873
|
+
];
|
|
1874
|
+
// #endregion Classes
|
|
1875
|
+
|
|
1876
|
+
class SACBootstrap5DropdownModule {
|
|
1877
|
+
}
|
|
1878
|
+
SACBootstrap5DropdownModule.decorators = [
|
|
1879
|
+
{ type: NgModule, args: [{
|
|
1880
|
+
declarations: [SacDropdownComponent, SacDropdownOptionDirective],
|
|
1881
|
+
imports: [CommonModule, SACBootstrap5LayoutModule],
|
|
1882
|
+
exports: [SacDropdownComponent, SacDropdownOptionDirective],
|
|
1883
|
+
},] }
|
|
1884
|
+
];
|
|
1885
|
+
|
|
1886
|
+
// #region Classes
|
|
1887
|
+
/**
|
|
1888
|
+
* Listbox Komponente
|
|
1889
|
+
*/
|
|
1890
|
+
class SacListboxComponent extends SacListboxCommon {
|
|
1891
|
+
// #region Constructors
|
|
1892
|
+
/**
|
|
1893
|
+
* Constructor
|
|
1894
|
+
* @param formLayout SacFormLayout to define scoped layout settings
|
|
1895
|
+
* @param injector Injector for injecting services
|
|
1896
|
+
*/
|
|
1897
|
+
constructor(formLayout, injector) {
|
|
1898
|
+
super(formLayout, injector);
|
|
1899
|
+
}
|
|
1900
|
+
}
|
|
1901
|
+
SacListboxComponent.decorators = [
|
|
1902
|
+
{ type: Component, args: [{
|
|
1903
|
+
selector: 'sac-listbox',
|
|
1904
|
+
template: "<div class=\"row mb-3\" [class.g-0]=\"disablelabel\">\r\n <label\r\n for=\"{{name}}\"\r\n class=\"col-12 col-form-label\"\r\n [ngClass]=\"[disablelabel === false ? (this.labelSizes | toLabelWidthCss) : 'visually-hidden', componentHeight | toLabelHeight]\"\r\n >{{label}}</label\r\n >\r\n <div\r\n class=\"col-12\"\r\n [ngClass]=\"[disablelabel === false ? (this.labelSizes | toControlWidthCss) : '']\"\r\n >\r\n <select\r\n multiple\r\n id=\"{{name}}\"\r\n name=\"{{name}}\"\r\n class=\"form-select\"\r\n [class.form-select-sm]=\"componentHeight === ControlHeight.Small\"\r\n [class.form-select-lg]=\"componentHeight === ControlHeight.Large\"\r\n [size]=\"rowsize\"\r\n [ngClass]=\"{'is-invalid': invalid && (dirty || touched) }\"\r\n (blur)=\"onTouch()\"\r\n (change)=\"getSelectedItems($event.target)\"\r\n [disabled]=\"isdisabled\"\r\n >\r\n <ng-content></ng-content>\r\n <ng-container *ngIf=\"groupitems === ''\">\r\n <option\r\n *ngFor=\"let option of options\"\r\n [value]=\"option[optionvalue]\"\r\n [disabled]=\"optionenabled !== '' && option[optionenabled] === false\"\r\n >\r\n {{option[optionlabel]}}\r\n </option>\r\n </ng-container>\r\n <ng-container *ngIf=\"groupitems !== ''\">\r\n <optgroup\r\n *ngFor=\"let option of options\"\r\n [attr.label]=\"option[grouplabel]\"\r\n >\r\n <option\r\n *ngFor=\"let item of option[groupitems]\"\r\n [value]=\"item[optionvalue]\"\r\n [disabled]=\"optionenabled !== '' && item[optionenabled] === false\"\r\n >\r\n {{item[optionlabel]}}\r\n </option>\r\n </optgroup>\r\n </ng-container>\r\n </select>\r\n <div\r\n class=\"invalid-feedback\"\r\n *ngIf=\"isinlineerrorenabled && invalid && (dirty || touched)\"\r\n >\r\n {{ GetErrorMessage() | async }}\r\n </div>\r\n </div>\r\n</div>\r\n",
|
|
1905
|
+
// Value Access Provider registrieren, damit Wert via Model geschrieben und gelesen werden kann
|
|
1906
|
+
providers: [
|
|
1907
|
+
{
|
|
1908
|
+
provide: NG_VALUE_ACCESSOR,
|
|
1909
|
+
multi: true,
|
|
1910
|
+
useExisting: SacListboxComponent,
|
|
1911
|
+
},
|
|
1912
|
+
{
|
|
1913
|
+
provide: NG_VALIDATORS,
|
|
1914
|
+
multi: true,
|
|
1915
|
+
useExisting: forwardRef(() => SacListboxComponent),
|
|
1916
|
+
},
|
|
1917
|
+
]
|
|
1918
|
+
},] }
|
|
1919
|
+
];
|
|
1920
|
+
SacListboxComponent.ctorParameters = () => [
|
|
1921
|
+
{ type: SacFormLayoutDirective, decorators: [{ type: Host }, { type: Optional }] },
|
|
1922
|
+
{ type: Injector }
|
|
1923
|
+
];
|
|
1924
|
+
/**
|
|
1925
|
+
* Option Item in Listbox
|
|
1926
|
+
*/
|
|
1927
|
+
class SacListboxOptionDirective extends SacListboxOptionCommon {
|
|
1928
|
+
// #region Constructors
|
|
1929
|
+
/**
|
|
1930
|
+
* Konstruktor
|
|
1931
|
+
* @param elementRef Referenz auf DOM Element
|
|
1932
|
+
* @param renderer Angular Rendering Engine
|
|
1933
|
+
* @param listbox Referenz auf Listbox Komponente
|
|
1934
|
+
*/
|
|
1935
|
+
constructor(elementRef, renderer, listbox) {
|
|
1936
|
+
super(elementRef, renderer, listbox);
|
|
1937
|
+
}
|
|
1938
|
+
}
|
|
1939
|
+
SacListboxOptionDirective.decorators = [
|
|
1940
|
+
{ type: Directive, args: [{ selector: '[sacOption],option' },] }
|
|
1941
|
+
];
|
|
1942
|
+
SacListboxOptionDirective.ctorParameters = () => [
|
|
1943
|
+
{ type: ElementRef },
|
|
1944
|
+
{ type: Renderer2 },
|
|
1945
|
+
{ type: SacListboxComponent, decorators: [{ type: Optional }, { type: Host }] }
|
|
1946
|
+
];
|
|
1947
|
+
// #endregion Classes
|
|
1948
|
+
|
|
1949
|
+
class SACBootstrap5ListModule {
|
|
1950
|
+
}
|
|
1951
|
+
SACBootstrap5ListModule.decorators = [
|
|
1952
|
+
{ type: NgModule, args: [{
|
|
1953
|
+
declarations: [SacListboxComponent, SacListboxOptionDirective],
|
|
1954
|
+
imports: [CommonModule, SACBootstrap5LayoutModule],
|
|
1955
|
+
exports: [SacListboxComponent, SacListboxOptionDirective],
|
|
1956
|
+
},] }
|
|
1957
|
+
];
|
|
1958
|
+
|
|
1959
|
+
/**
|
|
1960
|
+
* Componente für Mehrsprache Texte
|
|
1961
|
+
*/
|
|
1962
|
+
class SacMultilanguageInputComponent extends SacMultilanguageInputCommon {
|
|
1963
|
+
// #endregion Properties
|
|
1964
|
+
// #region Constructors
|
|
1965
|
+
/**
|
|
1966
|
+
* Constructor
|
|
1967
|
+
* @param formLayout SacFormLayout to define scoped layout settings
|
|
1968
|
+
* @param injector Injector for injecting services
|
|
1969
|
+
*/
|
|
1970
|
+
constructor(formLayout, injector) {
|
|
1971
|
+
super(formLayout, injector);
|
|
1972
|
+
// #region Properties
|
|
1973
|
+
/**
|
|
1974
|
+
* Enum für IconType in HTML Template
|
|
1975
|
+
*/
|
|
1976
|
+
this.IconType = IconType;
|
|
1977
|
+
}
|
|
1978
|
+
}
|
|
1979
|
+
SacMultilanguageInputComponent.decorators = [
|
|
1980
|
+
{ type: Component, args: [{
|
|
1981
|
+
selector: 'sac-multilanguageinput',
|
|
1982
|
+
template: "<div class=\"row mb-3\" [class.g-0]=\"disablelabel\">\r\n <label\r\n for=\"{{name}}\"\r\n class=\"col-12 col-form-label\"\r\n [ngClass]=\"[disablelabel === false ? (this.labelSizes | toLabelWidthCss) : 'visually-hidden', componentHeight | toLabelHeight]\"\r\n >{{label}}</label\r\n >\r\n <div\r\n class=\"col-12\"\r\n [ngClass]=\"[disablelabel === false ? (this.labelSizes | toControlWidthCss) : '']\"\r\n >\r\n <div\r\n class=\"input-group\"\r\n [class.input-group-sm]=\"componentHeight === ControlHeight.Small\"\r\n [class.input-group-lg]=\"componentHeight === ControlHeight.Large\"\r\n [class.has-validation]=\"isinlineerrorenabled && invalid && (dirty || touched)\"\r\n placement=\"bottom-right\"\r\n sac-multilanguagemenu\r\n [buttontemplate]=\"menuButton\"\r\n [inputtemplate]=\"menuInput\"\r\n [validationtemplate]=\"validationMessage\"\r\n #contextmenu\r\n >\r\n <ng-template #menuInput>\r\n <input\r\n id=\"{{name}}\"\r\n name=\"{{name}}\"\r\n type=\"text\"\r\n class=\"form-control\"\r\n [value]=\"LanguageValue\"\r\n [attr.placeholder]=\"placeholder\"\r\n (blur)=\"onTouch()\"\r\n (input)=\"SetLanguageValue($event.target.value)\"\r\n [attr.maxlength]=\"maxlength\"\r\n [class.is-invalid]=\"invalid && (dirty || touched)\"\r\n [ngClass]=\"[componentHeight | toControlHeight]\"\r\n [disabled]=\"isdisabled\"\r\n />\r\n </ng-template>\r\n\r\n <ng-template #menuButton>\r\n <button\r\n sacMultilanguageMenuAnchor\r\n [id]=\"name + '_dropdownitem'\"\r\n type=\"button\"\r\n class=\"btn dropdown-toggle\"\r\n (click)=\"contextmenu.toggle()\"\r\n [ngClass]=\"[IsAnyEmpty() ? 'btn-warning' : 'btn-secondary']\"\r\n >\r\n <img\r\n src=\"{{SelectedIcon}}\"\r\n class=\"align-baseline mr-1 ml-1\"\r\n *ngIf=\"SelectedIconType === IconType.Image\"\r\n />\r\n <span\r\n [ngClass]=\"SelectedIcon\"\r\n class=\"align-baseline mr-1 ml-1\"\r\n *ngIf=\"SelectedIconType === IconType.CssSprite\"\r\n ></span>\r\n </button>\r\n </ng-template>\r\n\r\n <ng-template #validationMessage>\r\n <div\r\n *ngIf=\"isinlineerrorenabled && invalid && (dirty || touched)\"\r\n class=\"invalid-feedback\"\r\n >\r\n {{ GetErrorMessage() | async }}\r\n </div></ng-template\r\n >\r\n\r\n <ng-container *ngFor=\"let sprache of Languages\">\r\n <sac-multilanguagemenubutton\r\n *ngIf=\"sprache.IconType === IconType.Image\"\r\n text=\"{{sprache.Text}}\"\r\n image=\"{{sprache.Icon}}\"\r\n [cssclass]=\"IsEmpty(sprache) ? 'text-danger border-left border-danger': ''\"\r\n (clicked)=\"SelectLanguage(sprache)\"\r\n ></sac-multilanguagemenubutton>\r\n <sac-multilanguagemenubutton\r\n *ngIf=\"sprache.IconType === IconType.CssSprite\"\r\n text=\"{{sprache.Text}}\"\r\n icon=\"{{sprache.Icon}}\"\r\n [cssclass]=\"IsEmpty(sprache) ? 'text-danger border-left border-danger': ''\"\r\n (clicked)=\"SelectLanguage(sprache)\"\r\n ></sac-multilanguagemenubutton>\r\n </ng-container>\r\n </div>\r\n </div>\r\n</div>\r\n<div class=\"row\">\r\n <div class=\"col text-right\"></div>\r\n</div>\r\n",
|
|
1983
|
+
// Value Access Provider registrieren, damit Wert via Model geschrieben und gelesen werden kann
|
|
1984
|
+
providers: [
|
|
1985
|
+
{
|
|
1986
|
+
provide: NG_VALUE_ACCESSOR,
|
|
1987
|
+
multi: true,
|
|
1988
|
+
useExisting: SacMultilanguageInputComponent,
|
|
1989
|
+
},
|
|
1990
|
+
{
|
|
1991
|
+
provide: NG_VALIDATORS,
|
|
1992
|
+
multi: true,
|
|
1993
|
+
useExisting: forwardRef(() => SacMultilanguageInputComponent),
|
|
1994
|
+
},
|
|
1995
|
+
]
|
|
1996
|
+
},] }
|
|
1997
|
+
];
|
|
1998
|
+
SacMultilanguageInputComponent.ctorParameters = () => [
|
|
1999
|
+
{ type: SacFormLayoutDirective, decorators: [{ type: Host }, { type: Optional }] },
|
|
2000
|
+
{ type: Injector }
|
|
2001
|
+
];
|
|
2002
|
+
|
|
2003
|
+
/**
|
|
2004
|
+
* Componente für Mehrsprache Texte als mehrzeiliger Text
|
|
2005
|
+
*/
|
|
2006
|
+
class SacMultilanguageInputAreaComponent extends SacMultilanguageInputAreaCommon {
|
|
2007
|
+
// #endregion Properties
|
|
2008
|
+
// #region Constructors
|
|
2009
|
+
/**
|
|
2010
|
+
* Constructor
|
|
2011
|
+
* @param formLayout SacFormLayout to define scoped layout settings
|
|
2012
|
+
* @param injector Injector for injecting services
|
|
2013
|
+
*/
|
|
2014
|
+
constructor(formLayout, injector) {
|
|
2015
|
+
super(formLayout, injector);
|
|
2016
|
+
// #region Properties
|
|
2017
|
+
/**
|
|
2018
|
+
* Enum für IconType in HTML Template
|
|
2019
|
+
*/
|
|
2020
|
+
this.IconType = IconType;
|
|
2021
|
+
}
|
|
2022
|
+
}
|
|
2023
|
+
SacMultilanguageInputAreaComponent.decorators = [
|
|
2024
|
+
{ type: Component, args: [{
|
|
2025
|
+
selector: 'sac-multilanguageinputarea',
|
|
2026
|
+
template: "<div class=\"row mb-3\" [class.g-0]=\"disablelabel\">\r\n <label\r\n for=\"{{name}}\"\r\n class=\"col-12 col-form-label\"\r\n [ngClass]=\"[disablelabel === false ? (this.labelSizes | toLabelWidthCss) : 'visually-hidden', componentHeight | toLabelHeight]\"\r\n >{{label}}</label\r\n >\r\n <div\r\n class=\"col-12\"\r\n [ngClass]=\"[disablelabel === false ? (this.labelSizes | toControlWidthCss) : '']\"\r\n >\r\n <div\r\n class=\"input-group\"\r\n [class.input-group-sm]=\"componentHeight === ControlHeight.Small\"\r\n [class.input-group-lg]=\"componentHeight === ControlHeight.Large\"\r\n [class.has-validation]=\"isinlineerrorenabled && invalid && (dirty || touched)\"\r\n placement=\"bottom-right\"\r\n sac-multilanguagemenu\r\n [buttontemplate]=\"menuButton\"\r\n [inputtemplate]=\"menuInput\"\r\n [validationtemplate]=\"validationMessage\"\r\n #contextmenu\r\n >\r\n <ng-template #menuInput>\r\n <textarea\r\n id=\"{{name}}\"\r\n name=\"{{name}}\"\r\n type=\"text\"\r\n class=\"form-control\"\r\n [value]=\"LanguageValue\"\r\n [attr.placeholder]=\"placeholder\"\r\n (blur)=\"onTouch()\"\r\n style=\"height: auto\"\r\n (input)=\"SetLanguageValue($event.target.value)\"\r\n [attr.rows]=\"rows\"\r\n [attr.maxlength]=\"maxlength\"\r\n [class.is-invalid]=\"invalid && (dirty || touched)\"\r\n [ngClass]=\"[componentHeight | toControlHeight]\"\r\n [disabled]=\"isdisabled\"\r\n ></textarea>\r\n </ng-template>\r\n\r\n <ng-template #menuButton>\r\n <button\r\n sacMultilanguageMenuAnchor\r\n [id]=\"name + '_dropdownitem'\"\r\n type=\"button\"\r\n class=\"btn dropdown-toggle\"\r\n (click)=\"contextmenu.toggle()\"\r\n [ngClass]=\"[IsAnyEmpty() ? 'btn-warning' : 'btn-secondary']\"\r\n >\r\n <img\r\n src=\"{{SelectedIcon}}\"\r\n class=\"align-baseline mr-1 ml-1\"\r\n *ngIf=\"SelectedIconType === IconType.Image\"\r\n />\r\n <i\r\n [ngClass]=\"SelectedIcon\"\r\n class=\"align-baseline mr-1 ml-1\"\r\n *ngIf=\"SelectedIconType === IconType.CssSprite\"\r\n ></i>\r\n </button>\r\n </ng-template>\r\n\r\n <ng-template #validationMessage>\r\n <div\r\n *ngIf=\"isinlineerrorenabled && invalid && (dirty || touched)\"\r\n class=\"invalid-feedback\"\r\n >\r\n {{ GetErrorMessage() | async }}\r\n </div></ng-template\r\n >\r\n\r\n <ng-container *ngFor=\"let sprache of Languages\">\r\n <sac-multilanguagemenubutton\r\n *ngIf=\"sprache.IconType === IconType.Image\"\r\n text=\"{{sprache.Text}}\"\r\n image=\"{{sprache.Icon}}\"\r\n [cssclass]=\"IsEmpty(sprache) ? 'text-danger border-left border-danger': ''\"\r\n (clicked)=\"SelectLanguage(sprache)\"\r\n ></sac-multilanguagemenubutton>\r\n <sac-multilanguagemenubutton\r\n *ngIf=\"sprache.IconType === IconType.CssSprite\"\r\n text=\"{{sprache.Text}}\"\r\n icon=\"{{sprache.Icon}}\"\r\n [cssclass]=\"IsEmpty(sprache) ? 'text-danger border-left border-danger': ''\"\r\n (clicked)=\"SelectLanguage(sprache)\"\r\n ></sac-multilanguagemenubutton>\r\n </ng-container>\r\n </div>\r\n </div>\r\n</div>\r\n<div class=\"row\">\r\n <div class=\"col text-right\"></div>\r\n</div>\r\n",
|
|
2027
|
+
// Value Access Provider registrieren, damit Wert via Model geschrieben und gelesen werden kann
|
|
2028
|
+
providers: [
|
|
2029
|
+
{
|
|
2030
|
+
provide: NG_VALUE_ACCESSOR,
|
|
2031
|
+
multi: true,
|
|
2032
|
+
useExisting: SacMultilanguageInputAreaComponent,
|
|
2033
|
+
},
|
|
2034
|
+
{
|
|
2035
|
+
provide: NG_VALIDATORS,
|
|
2036
|
+
multi: true,
|
|
2037
|
+
useExisting: forwardRef(() => SacMultilanguageInputAreaComponent),
|
|
2038
|
+
},
|
|
2039
|
+
]
|
|
2040
|
+
},] }
|
|
2041
|
+
];
|
|
2042
|
+
SacMultilanguageInputAreaComponent.ctorParameters = () => [
|
|
2043
|
+
{ type: SacFormLayoutDirective, decorators: [{ type: Host }, { type: Optional }] },
|
|
2044
|
+
{ type: Injector }
|
|
2045
|
+
];
|
|
2046
|
+
|
|
2047
|
+
/**
|
|
2048
|
+
* Component für Contextmenü
|
|
2049
|
+
*/
|
|
2050
|
+
class SacMultilanguagemenuComponent extends SacContextmenuCommon {
|
|
2051
|
+
// #endregion Properties
|
|
2052
|
+
// #region Constructors
|
|
2053
|
+
/**
|
|
2054
|
+
* Constructor
|
|
2055
|
+
* @param document Referenz auf HTML Document
|
|
2056
|
+
* @param ngZone Angular Zone Service
|
|
2057
|
+
* @param elementRef Referenz auf HTML Element der aktuellen Komponente
|
|
2058
|
+
* @param renderer Render Service von Angular
|
|
2059
|
+
* @param injector injector to resolve services in base component
|
|
2060
|
+
*/
|
|
2061
|
+
constructor(document, ngZone, elementRef, renderer, injector) {
|
|
2062
|
+
super(document, ngZone, elementRef, renderer, injector);
|
|
2063
|
+
}
|
|
2064
|
+
}
|
|
2065
|
+
SacMultilanguagemenuComponent.decorators = [
|
|
2066
|
+
{ type: Component, args: [{
|
|
2067
|
+
selector: '[sac-multilanguagemenu]',
|
|
2068
|
+
template: "<ng-container\r\n [ngTemplateOutlet]=\"inputtemplate || defaultInputTemplate\"\r\n></ng-container>\r\n<ng-container\r\n [ngTemplateOutlet]=\"buttontemplate || defaultButtonTemplate\"\r\n></ng-container>\r\n<ng-container\r\n [ngTemplateOutlet]=\"validationtemplate || defaultValidationTemplate\"\r\n></ng-container>\r\n\r\n<ul\r\n class=\"dropdown-menu dropdown-menu-right\"\r\n sacMultilanguageMenuContainer\r\n [class.show]=\"isopen\"\r\n>\r\n <ng-content></ng-content>\r\n</ul>\r\n\r\n<ng-template #defaultButtonTemplate>\r\n <button\r\n sacMultilanguageMenuAnchor\r\n class=\"btn btn-secondary dropdown-toggle\"\r\n type=\"button\"\r\n (click)=\"toggle()\"\r\n ></button>\r\n</ng-template>\r\n\r\n<ng-template #defaultInputTemplate>\r\n <input type=\"text\" class=\"form-control\" />\r\n</ng-template>\r\n\r\n<ng-template #defaultValidationTemplate></ng-template>\r\n",
|
|
2069
|
+
providers: [
|
|
2070
|
+
{
|
|
2071
|
+
provide: SacContextmenuCommon,
|
|
2072
|
+
useExisting: forwardRef(() => SacMultilanguagemenuComponent),
|
|
2073
|
+
},
|
|
2074
|
+
]
|
|
2075
|
+
},] }
|
|
2076
|
+
];
|
|
2077
|
+
SacMultilanguagemenuComponent.ctorParameters = () => [
|
|
2078
|
+
{ type: undefined, decorators: [{ type: Inject, args: [DOCUMENT,] }] },
|
|
2079
|
+
{ type: NgZone },
|
|
2080
|
+
{ type: ElementRef },
|
|
2081
|
+
{ type: Renderer2 },
|
|
2082
|
+
{ type: Injector }
|
|
2083
|
+
];
|
|
2084
|
+
SacMultilanguagemenuComponent.propDecorators = {
|
|
2085
|
+
inputtemplate: [{ type: Input }],
|
|
2086
|
+
validationtemplate: [{ type: Input }]
|
|
2087
|
+
};
|
|
2088
|
+
|
|
2089
|
+
/**
|
|
2090
|
+
* Anker Komponente für Context Menü. Wird zum positionieren des Context Menü in der Page benötigt.
|
|
2091
|
+
*/
|
|
2092
|
+
class SacMultilanguagemenuAnchorDirective extends SacContextmenuAnchorCommon {
|
|
2093
|
+
// #region Constructors
|
|
2094
|
+
/**
|
|
2095
|
+
* Konstruktor
|
|
2096
|
+
* @param elementRef HTML DOM Referenz
|
|
2097
|
+
*/
|
|
2098
|
+
constructor(elementRef) {
|
|
2099
|
+
super(elementRef);
|
|
2100
|
+
}
|
|
2101
|
+
}
|
|
2102
|
+
SacMultilanguagemenuAnchorDirective.decorators = [
|
|
2103
|
+
{ type: Directive, args: [{
|
|
2104
|
+
selector: '[sacMultilanguageMenuAnchor]',
|
|
2105
|
+
providers: [
|
|
2106
|
+
{
|
|
2107
|
+
provide: SacContextmenuAnchorCommon,
|
|
2108
|
+
useExisting: forwardRef(() => SacMultilanguagemenuAnchorDirective),
|
|
2109
|
+
},
|
|
2110
|
+
],
|
|
2111
|
+
},] }
|
|
2112
|
+
];
|
|
2113
|
+
SacMultilanguagemenuAnchorDirective.ctorParameters = () => [
|
|
2114
|
+
{ type: ElementRef }
|
|
2115
|
+
];
|
|
2116
|
+
|
|
2117
|
+
/**
|
|
2118
|
+
* Marker Komponente für Context Menü
|
|
2119
|
+
*/
|
|
2120
|
+
class SacMultilanguagemenuContainerDirective extends SacContextMenuContrainerCommon {
|
|
2121
|
+
// #region Constructors
|
|
2122
|
+
/**
|
|
2123
|
+
* Konstruktor
|
|
2124
|
+
* @param elementRef Referenz auf DOM Element
|
|
2125
|
+
*/
|
|
2126
|
+
constructor(elementRef) {
|
|
2127
|
+
super(elementRef);
|
|
2128
|
+
}
|
|
2129
|
+
}
|
|
2130
|
+
SacMultilanguagemenuContainerDirective.decorators = [
|
|
2131
|
+
{ type: Directive, args: [{
|
|
2132
|
+
selector: '[sacMultilanguageMenuContainer]',
|
|
2133
|
+
providers: [
|
|
2134
|
+
{
|
|
2135
|
+
provide: SacContextMenuContrainerCommon,
|
|
2136
|
+
useExisting: forwardRef(() => SacMultilanguagemenuContainerDirective),
|
|
2137
|
+
},
|
|
2138
|
+
],
|
|
2139
|
+
},] }
|
|
2140
|
+
];
|
|
2141
|
+
SacMultilanguagemenuContainerDirective.ctorParameters = () => [
|
|
2142
|
+
{ type: ElementRef }
|
|
2143
|
+
];
|
|
2144
|
+
|
|
2145
|
+
/**
|
|
2146
|
+
* Component für Menü Eintrag in Context Menü
|
|
2147
|
+
*/
|
|
2148
|
+
class SacMultilanguagemenuItemButtonComponent extends SacContextmenuItemButtonCommon {
|
|
2149
|
+
/**
|
|
2150
|
+
* Constructor
|
|
2151
|
+
* @param contextmenu Instance von Context Menü
|
|
2152
|
+
*/
|
|
2153
|
+
constructor(contextmenu) {
|
|
2154
|
+
super(contextmenu);
|
|
2155
|
+
}
|
|
2156
|
+
}
|
|
2157
|
+
SacMultilanguagemenuItemButtonComponent.decorators = [
|
|
2158
|
+
{ type: Component, args: [{
|
|
2159
|
+
selector: 'sac-multilanguagemenubutton',
|
|
2160
|
+
template: "<li>\r\n <button\r\n type=\"button\"\r\n class=\"dropdown-item\"\r\n (click)=\"callaction($event)\"\r\n [class.disabled]=\"isdisabled\"\r\n [ngClass]=\"cssclass\"\r\n [attr.disabled]=\"isdisabled ? 'disabled' : null\"\r\n >\r\n <div class=\"d-flex\">\r\n <div *ngIf=\"!isicondisabled\" style=\"min-width: 1.5rem\">\r\n <img *ngIf=\"image\" [src]=\"image\" class=\"align-baseline\" />\r\n <i *ngIf=\"icon\" [class]=\"iconstyle + ' ' + icon\"></i>\r\n </div>\r\n <div class=\"flex-grow-1\">{{ text }}</div>\r\n </div>\r\n </button>\r\n</li>\r\n"
|
|
2161
|
+
},] }
|
|
2162
|
+
];
|
|
2163
|
+
SacMultilanguagemenuItemButtonComponent.ctorParameters = () => [
|
|
2164
|
+
{ type: SacContextmenuCommon }
|
|
2165
|
+
];
|
|
2166
|
+
|
|
2167
|
+
class SACBootstrap5MultilanguageModule {
|
|
2168
|
+
}
|
|
2169
|
+
SACBootstrap5MultilanguageModule.decorators = [
|
|
2170
|
+
{ type: NgModule, args: [{
|
|
2171
|
+
declarations: [
|
|
2172
|
+
SacMultilanguageInputComponent,
|
|
2173
|
+
SacMultilanguageInputAreaComponent,
|
|
2174
|
+
SacMultilanguagemenuComponent,
|
|
2175
|
+
SacMultilanguagemenuAnchorDirective,
|
|
2176
|
+
SacMultilanguagemenuContainerDirective,
|
|
2177
|
+
SacMultilanguagemenuItemButtonComponent,
|
|
2178
|
+
],
|
|
2179
|
+
imports: [CommonModule, SACBootstrap5LayoutModule],
|
|
2180
|
+
exports: [SacMultilanguageInputComponent, SacMultilanguageInputAreaComponent],
|
|
2181
|
+
},] }
|
|
2182
|
+
];
|
|
2183
|
+
|
|
2184
|
+
/**
|
|
2185
|
+
* Component für einbindung eines beliebigen Controls in die Form Struktur
|
|
2186
|
+
*
|
|
2187
|
+
* @example
|
|
2188
|
+
* <ngStaticFormContainer name='myformcontainer' label="My Custom Form Control" [isrequired]='false'>
|
|
2189
|
+
* <input type="range" class="form-control" />
|
|
2190
|
+
* </ngStaticFormContainer>
|
|
2191
|
+
*
|
|
2192
|
+
* @example
|
|
2193
|
+
* <ngStaticFormContainer name='myformcintainer' label="My Custom Form Control" [isrequired]='false' tooltiptext="Dies ist ein Tooltip Text">
|
|
2194
|
+
* <input type="range" class="form-control" />
|
|
2195
|
+
* </ngStaticFormContainer>
|
|
2196
|
+
*
|
|
2197
|
+
**/
|
|
2198
|
+
class SacStaticFormContainerComponent extends SacStaticFormContainerCommon {
|
|
2199
|
+
// #region Constructors
|
|
2200
|
+
/**
|
|
2201
|
+
* Constructor
|
|
2202
|
+
* @param formLayout SacFormLayout to define scoped layout settings
|
|
2203
|
+
* @param injector Injector for injecting services
|
|
2204
|
+
*/
|
|
2205
|
+
constructor(formLayout, injector) {
|
|
2206
|
+
super(formLayout, injector);
|
|
2207
|
+
}
|
|
2208
|
+
}
|
|
2209
|
+
SacStaticFormContainerComponent.decorators = [
|
|
2210
|
+
{ type: Component, args: [{
|
|
2211
|
+
selector: 'sac-staticformcontainer',
|
|
2212
|
+
template: "<div class=\"row mb-3\" [class.g-0]=\"disablelabel\">\r\n <label\r\n *ngIf=\"disablelabel === false && !isAdaptiveLabel\"\r\n id=\"{{name}}_label\"\r\n for=\"{{name}}\"\r\n class=\"col-12 col-form-label\"\r\n [ngClass]=\"[disablelabel === false ? (this.labelSizes | toLabelWidthCss) : 'visually-hidden', componentHeight | toLabelHeight]\"\r\n [class.required]=\"isrequired\"\r\n >{{label}}</label\r\n >\r\n <div\r\n class=\"col-12\"\r\n [ngClass]=\"[disablelabel === false ? (this.labelSizes | toControlWidthCss) : '']\"\r\n >\r\n <ng-content></ng-content>\r\n <label\r\n for=\"{{name}}\"\r\n class=\"form-label-adaptive form-label-fixed\"\r\n [ngClass]=\"{ 'required': isrequired }\"\r\n *ngIf=\"isAdaptiveLabel && !disablelabel\"\r\n >{{label}}</label\r\n >\r\n <div\r\n class=\"invalid-feedback\"\r\n *ngIf=\"isinlineerrorenabled && invalid && (dirty || touched)\"\r\n >\r\n {{ GetErrorMessage() | async }}\r\n </div>\r\n </div>\r\n</div>\r\n",
|
|
2213
|
+
// Value Access Provider registrieren, damit Wert via Model geschrieben und gelesen werden kann
|
|
2214
|
+
providers: [
|
|
2215
|
+
{
|
|
2216
|
+
provide: NG_VALUE_ACCESSOR,
|
|
2217
|
+
multi: true,
|
|
2218
|
+
useExisting: SacStaticFormContainerComponent,
|
|
2219
|
+
},
|
|
2220
|
+
{
|
|
2221
|
+
provide: NG_VALIDATORS,
|
|
2222
|
+
multi: true,
|
|
2223
|
+
useExisting: forwardRef(() => SacStaticFormContainerComponent),
|
|
2224
|
+
},
|
|
2225
|
+
]
|
|
2226
|
+
},] }
|
|
2227
|
+
];
|
|
2228
|
+
SacStaticFormContainerComponent.ctorParameters = () => [
|
|
2229
|
+
{ type: SacFormLayoutDirective, decorators: [{ type: Host }, { type: Optional }] },
|
|
2230
|
+
{ type: Injector }
|
|
2231
|
+
];
|
|
2232
|
+
|
|
2233
|
+
/**
|
|
2234
|
+
* Komponente für statischen Text in einem Formular
|
|
2235
|
+
*/
|
|
2236
|
+
class SacStaticLabelComponent extends SacStaticLabelCommon {
|
|
2237
|
+
// #region Constructors
|
|
2238
|
+
/**
|
|
2239
|
+
* Constructor
|
|
2240
|
+
* @param formLayout SacFormLayout to define scoped layout settings
|
|
2241
|
+
* @param injector Injector for injecting services
|
|
2242
|
+
*/
|
|
2243
|
+
constructor(formLayout, injector) {
|
|
2244
|
+
super(formLayout, injector);
|
|
2245
|
+
}
|
|
2246
|
+
}
|
|
2247
|
+
SacStaticLabelComponent.decorators = [
|
|
2248
|
+
{ type: Component, args: [{
|
|
2249
|
+
selector: 'sac-staticlabel',
|
|
2250
|
+
template: "<div class=\"row mb-3\" [class.g-0]=\"disablelabel\">\r\n <label\r\n *ngIf=\"disablelabel === false && !isAdaptiveLabel\"\r\n id=\"{{name}}_label\"\r\n for=\"{{name}}\"\r\n class=\"col-12 col-form-label\"\r\n [ngClass]=\"[disablelabel === false ? (this.labelSizes | toLabelWidthCss) : 'visually-hidden', componentHeight | toLabelHeight]\"\r\n >{{label}}</label\r\n >\r\n <div\r\n class=\"col-12\"\r\n [ngClass]=\"[disablelabel === false ? (this.labelSizes | toControlWidthCss) : '']\"\r\n >\r\n <div\r\n class=\"form-control-plaintext\"\r\n [ngClass]=\"[componentHeight | toControlHeight]\"\r\n [innerHTML]=\"value\"\r\n ></div>\r\n <label\r\n for=\"{{name}}\"\r\n class=\"col-left control-label\"\r\n *ngIf=\"isAdaptiveLabel && !disablelabel\"\r\n >{{label}}</label\r\n >\r\n </div>\r\n</div>\r\n",
|
|
2251
|
+
// Value Access Provider registrieren, damit Wert via Model geschrieben und gelesen werden kann
|
|
2252
|
+
providers: [
|
|
2253
|
+
{
|
|
2254
|
+
provide: NG_VALUE_ACCESSOR,
|
|
2255
|
+
multi: true,
|
|
2256
|
+
useExisting: SacStaticLabelComponent,
|
|
2257
|
+
},
|
|
2258
|
+
{
|
|
2259
|
+
provide: NG_VALIDATORS,
|
|
2260
|
+
multi: true,
|
|
2261
|
+
useExisting: forwardRef(() => SacStaticLabelComponent),
|
|
2262
|
+
},
|
|
2263
|
+
]
|
|
2264
|
+
},] }
|
|
2265
|
+
];
|
|
2266
|
+
SacStaticLabelComponent.ctorParameters = () => [
|
|
2267
|
+
{ type: SacFormLayoutDirective, decorators: [{ type: Host }, { type: Optional }] },
|
|
2268
|
+
{ type: Injector }
|
|
2269
|
+
];
|
|
2270
|
+
|
|
2271
|
+
class SACBootstrap5StaticLabelModule {
|
|
2272
|
+
}
|
|
2273
|
+
SACBootstrap5StaticLabelModule.decorators = [
|
|
2274
|
+
{ type: NgModule, args: [{
|
|
2275
|
+
declarations: [SacStaticLabelComponent, SacStaticFormContainerComponent],
|
|
2276
|
+
imports: [CommonModule, SACBootstrap5LayoutModule],
|
|
2277
|
+
exports: [SacStaticLabelComponent, SacStaticFormContainerComponent],
|
|
2278
|
+
},] }
|
|
2279
|
+
];
|
|
2280
|
+
|
|
2281
|
+
/**
|
|
2282
|
+
* Tab Item Komponente
|
|
2283
|
+
*/
|
|
2284
|
+
class SacTabItemComponent extends SacTabItemCommon {
|
|
2285
|
+
}
|
|
2286
|
+
SacTabItemComponent.decorators = [
|
|
2287
|
+
{ type: Component, args: [{
|
|
2288
|
+
selector: 'sac-tabitem',
|
|
2289
|
+
template: "<div [id]=\"id\" [hidden]=\"unloadwhenhidden === false && active === false\" *ngIf=\"(unloadwhenhidden === true && active === true) || unloadwhenhidden === false\" class=\"tab-pane\">\r\n <ng-template [ngTemplateOutlet]=\"templateRef\"></ng-template>\r\n</div>\r\n"
|
|
2290
|
+
},] }
|
|
2291
|
+
];
|
|
2292
|
+
|
|
2293
|
+
/**
|
|
2294
|
+
* Komponente für Tabs
|
|
2295
|
+
*/
|
|
2296
|
+
class SacTabComponent extends SacTabCommon {
|
|
2297
|
+
/**
|
|
2298
|
+
* Gibt die TabItems zurück
|
|
2299
|
+
* @returns Array von TabItems
|
|
2300
|
+
*/
|
|
2301
|
+
tabItems() {
|
|
2302
|
+
return this._tabItems.toArray();
|
|
2303
|
+
}
|
|
2304
|
+
}
|
|
2305
|
+
SacTabComponent.decorators = [
|
|
2306
|
+
{ type: Component, args: [{
|
|
2307
|
+
selector: 'sac-tab',
|
|
2308
|
+
template: "<!-- Nav tabs -->\r\n<ul class=\"nav nav-tabs\" role=\"tablist\">\r\n <li class=\"nav-item\" *ngFor=\"let item of _tabItems\">\r\n <a\r\n role=\"tab\"\r\n class=\"nav-link\"\r\n data-toggle=\"tab\"\r\n [ngClass]=\"{ 'active': item.active, 'disabled': item.disabled }\"\r\n (click)=\"selectTab(item)\"\r\n [ngStyle]=\"{'cursor': item.disabled ? 'not-allowed' : 'pointer'}\"\r\n >{{item.label}}</a\r\n >\r\n </li>\r\n</ul>\r\n\r\n<!-- Tab panes -->\r\n<div class=\"tab-content pl-3 pt-2\">\r\n <ng-content></ng-content>\r\n</div>\r\n"
|
|
2309
|
+
},] }
|
|
2310
|
+
];
|
|
2311
|
+
SacTabComponent.propDecorators = {
|
|
2312
|
+
_tabItems: [{ type: ContentChildren, args: [SacTabItemComponent,] }]
|
|
2313
|
+
};
|
|
2314
|
+
|
|
2315
|
+
class SACBootstrap5TabsModule {
|
|
2316
|
+
}
|
|
2317
|
+
SACBootstrap5TabsModule.decorators = [
|
|
2318
|
+
{ type: NgModule, args: [{
|
|
2319
|
+
declarations: [SacTabComponent, SacTabItemComponent],
|
|
2320
|
+
imports: [CommonModule],
|
|
2321
|
+
exports: [SacTabComponent, SacTabItemComponent],
|
|
2322
|
+
},] }
|
|
2323
|
+
];
|
|
2324
|
+
|
|
2325
|
+
/**
|
|
2326
|
+
* TinyMCE Komponente
|
|
2327
|
+
*/
|
|
2328
|
+
class SacTinyMceComponent extends SacTinyMceCommon {
|
|
2329
|
+
// #region Constructors
|
|
2330
|
+
/**
|
|
2331
|
+
* Constructor
|
|
2332
|
+
* @param formLayout SacFormLayout to define scoped layout settings
|
|
2333
|
+
* @param injector Injector for injecting services
|
|
2334
|
+
* @param ngZone ngZone to manage external javascripts
|
|
2335
|
+
*/
|
|
2336
|
+
constructor(formLayout, injector, ngZone) {
|
|
2337
|
+
super(formLayout, injector, ngZone);
|
|
2338
|
+
}
|
|
2339
|
+
// #endregion Constructors
|
|
2340
|
+
// #region Public Methods
|
|
2341
|
+
/**
|
|
2342
|
+
* overwrite tinymce defaults
|
|
2343
|
+
* @returns boostrap4 has no overwrites
|
|
2344
|
+
*/
|
|
2345
|
+
overwriteDefaultSettings() {
|
|
2346
|
+
return {};
|
|
2347
|
+
}
|
|
2348
|
+
}
|
|
2349
|
+
SacTinyMceComponent.decorators = [
|
|
2350
|
+
{ type: Component, args: [{
|
|
2351
|
+
selector: 'sac-tinymce',
|
|
2352
|
+
template: "<div class=\"row mb-3\" [class.g-0]=\"disablelabel\">\r\n <div\r\n class=\"col\"\r\n [ngClass]=\"[disablelabel === false ? (this.labelSizes | toLabelWidthCss) : 'visually-hidden', componentHeight | toLabelHeight]\"\r\n >\r\n <label for=\"{{name}}\" class=\"form-control-label\">{{label}}</label>\r\n </div>\r\n <div\r\n class=\"col-12\"\r\n [ngClass]=\"[disablelabel === false ? (this.labelSizes | toControlWidthCss) : '']\"\r\n >\r\n <editor\r\n [id]=\"name + '_tinymce'\"\r\n [init]=\"_config\"\r\n [initialValue]=\"value\"\r\n ngModel\r\n [ngModelOptions]=\"{standalone: true}\"\r\n (ngModelChange)=\"setValue($event)\"\r\n (onSaveContent)=\"save($event.event.content)\"\r\n [disabled]=\"disabled\"\r\n [class.is-invalid]=\"isinlineerrorenabled && invalid && (dirty || touched)\"\r\n ></editor>\r\n <div\r\n *ngIf=\"isinlineerrorenabled && invalid && (dirty || touched)\"\r\n class=\"invalid-feedback\"\r\n >\r\n {{ GetErrorMessage() | async }}\r\n </div>\r\n </div>\r\n</div>\r\n\r\n<sac-dialog\r\n *ngIf=\"selectdialogvisible\"\r\n [allowesc]=\"false\"\r\n [backdrop]=\"true\"\r\n [(isvisible)]=\"selectdialogvisible\"\r\n title=\"{{ lngResourceService.GetString(validationKeyService.TinyMceFileselectDialogtitle) | async }}\"\r\n size=\"large\"\r\n height=\"500px\"\r\n>\r\n <ng-container dialogbody>\r\n <sac-filebrowser\r\n [apiurl]=\"filebrowserapiurl\"\r\n (file)=\"selectDialogSettings.value = $event\"\r\n [allowfoldercreate]=\"allowfoldercreate\"\r\n [allowfolderrename]=\"allowfolderrename\"\r\n [allowfolderdelete]=\"allowfolderdelete\"\r\n [allowfileupload]=\"allowfileupload\"\r\n [allowfilerename]=\"allowfilerename\"\r\n [allowfiledelete]=\"allowfiledelete\"\r\n [selectedfile]=\"selectDialogSettings.value\"\r\n [allowedtypes]=\"selectDialogSettings.allowedtypes\"\r\n ></sac-filebrowser>\r\n </ng-container>\r\n <ng-container dialogfooter>\r\n <sac-button\r\n role=\"primary\"\r\n [name]=\"name + '_modalOk'\"\r\n text=\"{{ lngResourceService.GetString(validationKeyService.TinyMceFileselectOk) | async }}\"\r\n (clicked)=\"setSelectDialogResult()\"\r\n ></sac-button>\r\n <sac-button\r\n [name]=\"name + '_modalClose'\"\r\n text=\"{{ lngResourceService.GetString(validationKeyService.TinyMceFileselectCancel) | async }}\"\r\n (clicked)=\"closeSelectDialog()\"\r\n ></sac-button>\r\n </ng-container>\r\n</sac-dialog>\r\n",
|
|
2353
|
+
// Value Access Provider registrieren, damit Wert via Model geschrieben und gelesen werden kann
|
|
2354
|
+
providers: [
|
|
2355
|
+
{
|
|
2356
|
+
provide: NG_VALUE_ACCESSOR,
|
|
2357
|
+
multi: true,
|
|
2358
|
+
useExisting: SacTinyMceComponent,
|
|
2359
|
+
},
|
|
2360
|
+
{
|
|
2361
|
+
provide: NG_VALIDATORS,
|
|
2362
|
+
useExisting: forwardRef(() => SacTinyMceComponent),
|
|
2363
|
+
multi: true,
|
|
2364
|
+
},
|
|
2365
|
+
],
|
|
2366
|
+
styles: [".is-invalid{border:1px solid var(--bs-form-invalid-border-color)}"]
|
|
2367
|
+
},] }
|
|
2368
|
+
];
|
|
2369
|
+
SacTinyMceComponent.ctorParameters = () => [
|
|
2370
|
+
{ type: SacFormLayoutDirective, decorators: [{ type: Host }, { type: Optional }] },
|
|
2371
|
+
{ type: Injector },
|
|
2372
|
+
{ type: NgZone }
|
|
2373
|
+
];
|
|
2374
|
+
|
|
2375
|
+
class SACBootstrap5TinyMceModule {
|
|
2376
|
+
}
|
|
2377
|
+
SACBootstrap5TinyMceModule.decorators = [
|
|
2378
|
+
{ type: NgModule, args: [{
|
|
2379
|
+
declarations: [SacTinyMceComponent],
|
|
2380
|
+
imports: [
|
|
2381
|
+
CommonModule,
|
|
2382
|
+
FormsModule,
|
|
2383
|
+
EditorModule,
|
|
2384
|
+
SACBootstrap5ButtonModule,
|
|
2385
|
+
SACBootstrap5DialogModule,
|
|
2386
|
+
SACBootstrap5BrowserModule,
|
|
2387
|
+
SACBootstrap5LayoutModule,
|
|
2388
|
+
],
|
|
2389
|
+
exports: [SacTinyMceComponent],
|
|
2390
|
+
},] }
|
|
2391
|
+
];
|
|
2392
|
+
|
|
2393
|
+
/**
|
|
2394
|
+
* Validation Summary Kompontente
|
|
2395
|
+
*/
|
|
2396
|
+
class SacValidationSummaryComponent extends SacValidationSummaryCommon {
|
|
2397
|
+
// #region Constructors
|
|
2398
|
+
/**
|
|
2399
|
+
* Constructor
|
|
2400
|
+
* @param formControl Instance of Form Component to receive invalid form controls
|
|
2401
|
+
* @param injector Injector for injecting services
|
|
2402
|
+
*/
|
|
2403
|
+
constructor(formControl, injector) {
|
|
2404
|
+
super(formControl, injector);
|
|
2405
|
+
}
|
|
2406
|
+
}
|
|
2407
|
+
SacValidationSummaryComponent.decorators = [
|
|
2408
|
+
{ type: Component, args: [{
|
|
2409
|
+
selector: 'sac-validationsummary',
|
|
2410
|
+
template: "<div class=\"alert alert-danger\" role=\"alert\" *ngIf=\"hasErrors\">\r\n <ul class=\"mb-0\">\r\n <li *ngFor=\"let error of formErrors\">{{error | async}}</li>\r\n </ul>\r\n</div>\r\n",
|
|
2411
|
+
// Value Access Provider registrieren, damit Wert via Model geschrieben und gelesen werden kann
|
|
2412
|
+
providers: [
|
|
2413
|
+
{
|
|
2414
|
+
provide: NG_VALUE_ACCESSOR,
|
|
2415
|
+
multi: true,
|
|
2416
|
+
useExisting: SacValidationSummaryComponent,
|
|
2417
|
+
},
|
|
2418
|
+
]
|
|
2419
|
+
},] }
|
|
2420
|
+
];
|
|
2421
|
+
SacValidationSummaryComponent.ctorParameters = () => [
|
|
2422
|
+
{ type: SacFormDirective, decorators: [{ type: Host }, { type: Optional }] },
|
|
2423
|
+
{ type: Injector }
|
|
2424
|
+
];
|
|
2425
|
+
|
|
2426
|
+
class SACBootstrap5ValidationSummaryModule {
|
|
2427
|
+
}
|
|
2428
|
+
SACBootstrap5ValidationSummaryModule.decorators = [
|
|
2429
|
+
{ type: NgModule, args: [{
|
|
2430
|
+
declarations: [SacValidationSummaryComponent],
|
|
2431
|
+
imports: [
|
|
2432
|
+
CommonModule
|
|
2433
|
+
],
|
|
2434
|
+
exports: [SacValidationSummaryComponent]
|
|
2435
|
+
},] }
|
|
2436
|
+
];
|
|
2437
|
+
|
|
2438
|
+
/**
|
|
2439
|
+
* Wizard Komponente Item
|
|
2440
|
+
*/
|
|
2441
|
+
class SacWizardItemComponent extends SacWizardItemCommon {
|
|
2442
|
+
}
|
|
2443
|
+
SacWizardItemComponent.decorators = [
|
|
2444
|
+
{ type: Component, args: [{
|
|
2445
|
+
selector: 'sac-wizarditem',
|
|
2446
|
+
template: ""
|
|
2447
|
+
},] }
|
|
2448
|
+
];
|
|
2449
|
+
|
|
2450
|
+
/**
|
|
2451
|
+
* Wizard Komponente
|
|
2452
|
+
*/
|
|
2453
|
+
class SacWizardComponent extends SacWizardCommon {
|
|
2454
|
+
/**
|
|
2455
|
+
* Gibt die Wizard Items zurück
|
|
2456
|
+
* @returns Collection von WizardItems
|
|
2457
|
+
*/
|
|
2458
|
+
wizardItems() {
|
|
2459
|
+
return this._wizardItems;
|
|
2460
|
+
}
|
|
2461
|
+
}
|
|
2462
|
+
SacWizardComponent.decorators = [
|
|
2463
|
+
{ type: Component, args: [{
|
|
2464
|
+
selector: 'sac-wizard',
|
|
2465
|
+
template: "<ul class=\"nav nav-wizard\" role=\"tablist\">\r\n <li *ngFor=\"let item of _wizardItems\" class=\"nav-item\" [ngClass]=\"{ 'active': item._active, 'disabled': item._disabled, 'success': item._iscomplete }\"\r\n [ngStyle]=\"{'cursor': item._disabled ? 'not-allowed' : 'pointer'}\">\r\n <a role=\"tab\" (click)=\"selectStep(item)\">\r\n <div class=\"circle\">\r\n <span class=\"step\"></span>\r\n </div>\r\n </a>\r\n <div class=\"info\">\r\n <a (click)=\"selectStep(item)\">{{item._label}}</a>\r\n </div>\r\n </li>\r\n</ul>\r\n",
|
|
2466
|
+
// Value Access Provider registrieren, damit Wert via Model geschrieben und gelesen werden kann
|
|
2467
|
+
providers: [
|
|
2468
|
+
{ provide: NG_VALUE_ACCESSOR, multi: true, useExisting: SacWizardComponent },
|
|
2469
|
+
]
|
|
2470
|
+
},] }
|
|
2471
|
+
];
|
|
2472
|
+
SacWizardComponent.propDecorators = {
|
|
2473
|
+
_wizardItems: [{ type: ContentChildren, args: [SacWizardItemComponent,] }]
|
|
2474
|
+
};
|
|
2475
|
+
|
|
2476
|
+
class SACBootstrap5WizardModule {
|
|
2477
|
+
}
|
|
2478
|
+
SACBootstrap5WizardModule.decorators = [
|
|
2479
|
+
{ type: NgModule, args: [{
|
|
2480
|
+
declarations: [SacWizardComponent, SacWizardItemComponent],
|
|
2481
|
+
imports: [CommonModule, SACBootstrap5LayoutModule],
|
|
2482
|
+
exports: [SacWizardComponent, SacWizardItemComponent],
|
|
2483
|
+
},] }
|
|
2484
|
+
];
|
|
2485
|
+
|
|
2486
|
+
/*
|
|
2487
|
+
* Public API Surface of sac-bootstrap5
|
|
2488
|
+
*/
|
|
2489
|
+
|
|
2490
|
+
/**
|
|
2491
|
+
* Generated bundle index. Do not edit.
|
|
2492
|
+
*/
|
|
2493
|
+
|
|
2494
|
+
export { SACBootstrap5BrowserModule, SACBootstrap5ButtonModule, SACBootstrap5CheckboxModule, SACBootstrap5ConfirmModule, SACBootstrap5ContextmenuModule, SACBootstrap5DateTimeModule, SACBootstrap5DialogModule, SACBootstrap5DropdownModule, SACBootstrap5FormModule, SACBootstrap5GridModule, SACBootstrap5InputModule, SACBootstrap5LayoutModule, SACBootstrap5ListModule, SACBootstrap5MultilanguageModule, SACBootstrap5StaticLabelModule, SACBootstrap5TabsModule, SACBootstrap5TinyMceModule, SACBootstrap5UploadModule, SACBootstrap5ValidationSummaryModule, SACBootstrap5WizardModule, SacFormDirective, ServiceConfirm, SacBrowserComponent as ɵa, SacDropzoneMultipleComponent as ɵb, SacTimeComponent as ɵba, SacDateSelectorComponent as ɵbb, SacGridComponent as ɵbc, SacGridColumnComponent as ɵbd, SacGridColumnActionComponent as ɵbe, SacPagingComponent as ɵbf, SacGridButtonComponent as ɵbg, SacGridImageComponent as ɵbh, SacInputComponent as ɵbi, SacInputAreaComponent as ɵbj, SacInputCurrencyComponent as ɵbk, SacInputDecimalComponent as ɵbl, SacInputEmailComponent as ɵbm, SacInputIntegerComponent as ɵbn, SacInputPasswordComponent as ɵbo, SacInputSearchComponent as ɵbp, SacDropdownComponent as ɵbq, SacDropdownOptionDirective as ɵbr, SacListboxComponent as ɵbs, SacListboxOptionDirective as ɵbt, SacMultilanguageInputComponent as ɵbu, SacMultilanguageInputAreaComponent as ɵbv, SacMultilanguagemenuComponent as ɵbw, SacMultilanguagemenuAnchorDirective as ɵbx, SacMultilanguagemenuContainerDirective as ɵby, SacMultilanguagemenuItemButtonComponent as ɵbz, SacFormLayoutDirective as ɵc, SacStaticLabelComponent as ɵca, SacStaticFormContainerComponent as ɵcb, SacTabComponent as ɵcc, SacTabItemComponent as ɵcd, SacTinyMceComponent as ɵce, SacValidationSummaryComponent as ɵcf, SacWizardComponent as ɵcg, SacWizardItemComponent as ɵch, SacConfirmComponent as ɵd, SacDialogComponent as ɵe, SacButtonComponent as ɵf, SacContextmenuComponent as ɵg, SacContextmenuItemButtonComponent as ɵh, SacContextmenuItemSplitterComponent as ɵi, SacContextmenuAnchorDirective as ɵj, SacContextmenuContainerDirective as ɵk, SacUploadComponent as ɵl, SacUploadMultipleComponent as ɵm, SacDropzoneSingleComponent as ɵn, SacToControlHeightPipe as ɵo, SacToControlWidthCssPipe as ɵp, SacToLabelHeightPipe as ɵq, SacToLabelWidthCssPipe as ɵr, SACFORM_FACTORY as ɵs, NGFORM_FACTORY as ɵt, SacInheritFormDirective as ɵu, SacCheckboxComponent as ɵv, SacRadiobuttonComponent as ɵw, SacRadiobuttonsComponent as ɵx, SacDateComponent as ɵy, SacDateTimeComponent as ɵz };
|
|
2495
|
+
//# sourceMappingURL=simpleangularcontrols-sac-bootstrap5.js.map
|