@simpleangularcontrols/sac-common 10.0.0-rc.12 → 10.0.0-rc.13
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/bundles/simpleangularcontrols-sac-common.umd.js +356 -408
- package/bundles/simpleangularcontrols-sac-common.umd.js.map +1 -1
- package/bundles/simpleangularcontrols-sac-common.umd.min.js +1 -1
- package/bundles/simpleangularcontrols-sac-common.umd.min.js.map +1 -1
- package/common/basemodelcontrol.d.ts +4 -8
- package/controls/contextmenu/contextmenu.d.ts +26 -19
- package/controls/contextmenu/contextmenu.interface.d.ts +3 -0
- package/controls/contextmenu/contextmenuitem.d.ts +5 -0
- package/controls/contextmenu/contextmenuitembutton.d.ts +21 -20
- package/controls/treeview/treeview.d.ts +87 -121
- package/esm2015/common/basemodelcontrol.js +28 -24
- package/esm2015/controls/contextmenu/contextmenu.interface.js +1 -0
- package/esm2015/controls/contextmenu/contextmenu.interface.ngfactory.js +7 -0
- package/esm2015/controls/contextmenu/contextmenu.js +22 -23
- package/esm2015/controls/contextmenu/contextmenuitem.js +13 -2
- package/esm2015/controls/contextmenu/contextmenuitembutton.js +34 -25
- package/esm2015/controls/treeview/treeview.js +232 -247
- package/esm2015/interfaces/ISacIconService.js +1 -1
- package/esm2015/interfaces/treeviewaction.interface.js +1 -0
- package/esm2015/interfaces/treeviewaction.interface.ngfactory.js +7 -0
- package/esm2015/public_api.js +4 -5
- package/esm2015/services/sac-icon.service.js +25 -1
- package/fesm2015/simpleangularcontrols-sac-common.js +343 -389
- package/fesm2015/simpleangularcontrols-sac-common.js.map +1 -1
- package/interfaces/ISacIconService.d.ts +16 -0
- package/interfaces/treeviewaction.interface.d.ts +4 -0
- package/package.json +1 -1
- package/public_api.d.ts +3 -4
- package/services/sac-icon.service.d.ts +33 -1
- package/simpleangularcontrols-sac-common-10.0.0-rc.13.tgz +0 -0
- package/simpleangularcontrols-sac-common.metadata.json +1 -1
- package/controls/treeview/ngtreeitemaction.d.ts +0 -40
- package/controls/treeview/treeviewchild.d.ts +0 -12
- package/esm2015/controls/treeview/ngtreeitemaction.js +0 -60
- package/esm2015/controls/treeview/ngtreeitemaction.ngfactory.js +0 -7
- package/esm2015/controls/treeview/treeviewchild.js +0 -18
- package/esm2015/controls/treeview/treeviewchild.ngfactory.js +0 -7
- package/simpleangularcontrols-sac-common-10.0.0-rc.12.tgz +0 -0
- /package/controls/{treeview/ngtreeitemaction.ngfactory.d.ts → contextmenu/contextmenu.interface.ngfactory.d.ts} +0 -0
- /package/{controls/treeview/treeviewchild.ngfactory.d.ts → interfaces/treeviewaction.interface.ngfactory.d.ts} +0 -0
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import { EventEmitter, Directive, Input, Output, ɵɵdefineInjectable, Injectable, InjectionToken, ɵɵinject, Inject, Host, Injector, ChangeDetectorRef, ViewChild, HostListener, Renderer2, ElementRef, ViewChildren, ContentChild, TemplateRef, NgZone, NgModule } from '@angular/core';
|
|
1
|
+
import { EventEmitter, Directive, Input, Output, ɵɵdefineInjectable, Injectable, InjectionToken, ɵɵinject, Inject, Host, Injector, ChangeDetectorRef, ViewChild, HostListener, Renderer2, ElementRef, ViewChildren, ContentChild, TemplateRef, NgZone, ContentChildren, forwardRef, NgModule } from '@angular/core';
|
|
2
|
+
import { HttpClient } from '@angular/common/http';
|
|
2
3
|
import { Observable, of } from 'rxjs';
|
|
3
4
|
import { NgControl, FormControlName, FormGroupDirective, Validators, FormGroup, NgForm } from '@angular/forms';
|
|
4
|
-
import { HttpClient } from '@angular/common/http';
|
|
5
5
|
import moment_, { ISO_8601 } from 'moment';
|
|
6
6
|
import { MaskedRange } from 'imask';
|
|
7
7
|
import { UploadxService } from 'ngx-uploadx';
|
|
@@ -753,6 +753,30 @@ class SacDefaultIconService extends SacAbstractIconService {
|
|
|
753
753
|
get TimeComponentSelectorIcon() {
|
|
754
754
|
return 'fa fa-clock';
|
|
755
755
|
}
|
|
756
|
+
/**
|
|
757
|
+
* @inheritdoc
|
|
758
|
+
*/
|
|
759
|
+
get TreeviewNodeActionIcon() {
|
|
760
|
+
return 'fa fa-pen';
|
|
761
|
+
}
|
|
762
|
+
/**
|
|
763
|
+
* @inheritdoc
|
|
764
|
+
*/
|
|
765
|
+
get TreeviewNodeClosedIcon() {
|
|
766
|
+
return 'fa fa-folder-plus';
|
|
767
|
+
}
|
|
768
|
+
/**
|
|
769
|
+
* @inheritdoc
|
|
770
|
+
*/
|
|
771
|
+
get TreeviewNodeEmptyIcon() {
|
|
772
|
+
return 'fa fa-folder';
|
|
773
|
+
}
|
|
774
|
+
/**
|
|
775
|
+
* @inheritdoc
|
|
776
|
+
*/
|
|
777
|
+
get TreeviewNodeOpenIcon() {
|
|
778
|
+
return 'fa fa-folder-open';
|
|
779
|
+
}
|
|
756
780
|
/**
|
|
757
781
|
* @inheritdoc
|
|
758
782
|
*/
|
|
@@ -1563,6 +1587,8 @@ function createGuid() {
|
|
|
1563
1587
|
* Abstract Klasse für SacBaseModelControl. Implements ControlValueAccessor, Validator, OnInit
|
|
1564
1588
|
*/
|
|
1565
1589
|
class SacBaseModelControl {
|
|
1590
|
+
// #endregion Properties
|
|
1591
|
+
// #region Constructors
|
|
1566
1592
|
/**
|
|
1567
1593
|
* Constructor
|
|
1568
1594
|
* @param formlayout SacFormLayoutCommon to define scoped layout settings
|
|
@@ -1570,6 +1596,7 @@ class SacBaseModelControl {
|
|
|
1570
1596
|
*/
|
|
1571
1597
|
constructor(formlayout, injector) {
|
|
1572
1598
|
this.injector = injector;
|
|
1599
|
+
// #region Properties
|
|
1573
1600
|
/**
|
|
1574
1601
|
* Inline Errors für das Control
|
|
1575
1602
|
*/
|
|
@@ -1672,6 +1699,8 @@ class SacBaseModelControl {
|
|
|
1672
1699
|
this.configurationService = injector.get(SACCONFIGURATION_SERVICE, new SacDefaultConfigurationService());
|
|
1673
1700
|
this.iconService = injector.get(SACICON_SERVICE, new SacDefaultIconService());
|
|
1674
1701
|
}
|
|
1702
|
+
// #endregion Constructors
|
|
1703
|
+
// #region Public Getters And Setters
|
|
1675
1704
|
/**
|
|
1676
1705
|
* Get Icon for Helptext Tooltip
|
|
1677
1706
|
*/
|
|
@@ -1682,7 +1711,7 @@ class SacBaseModelControl {
|
|
|
1682
1711
|
* Methode ergibt Boolean Wert für dirty
|
|
1683
1712
|
*/
|
|
1684
1713
|
get dirty() {
|
|
1685
|
-
if (this.ngControl !== null) {
|
|
1714
|
+
if (this.ngControl !== null && this.ngControl !== undefined) {
|
|
1686
1715
|
this._dirty = this.ngControl.dirty;
|
|
1687
1716
|
}
|
|
1688
1717
|
return this._dirty;
|
|
@@ -1708,9 +1737,7 @@ class SacBaseModelControl {
|
|
|
1708
1737
|
* Methode ergibt boolean Wert wenn Form invalid oder nicht invalid ist
|
|
1709
1738
|
*/
|
|
1710
1739
|
get invalid() {
|
|
1711
|
-
return
|
|
1712
|
-
this.ngControl !== null &&
|
|
1713
|
-
this.ngControl.invalid);
|
|
1740
|
+
return this.ngControl !== undefined && this.ngControl !== null && this.ngControl.invalid;
|
|
1714
1741
|
}
|
|
1715
1742
|
/**
|
|
1716
1743
|
* Definiert ob das Control disabled ist
|
|
@@ -1726,8 +1753,7 @@ class SacBaseModelControl {
|
|
|
1726
1753
|
if (this._inlineerrorenabled !== null) {
|
|
1727
1754
|
return this._inlineerrorenabled;
|
|
1728
1755
|
}
|
|
1729
|
-
if (this.formlayout !== null &&
|
|
1730
|
-
this.formlayout.IsInlineErrorEnabled !== null) {
|
|
1756
|
+
if (this.formlayout !== null && this.formlayout.IsInlineErrorEnabled !== null) {
|
|
1731
1757
|
return (_a = this.formlayout) === null || _a === void 0 ? void 0 : _a.IsInlineErrorEnabled;
|
|
1732
1758
|
}
|
|
1733
1759
|
if (this.configurationService.InlineErrorEnabled !== null) {
|
|
@@ -1765,7 +1791,7 @@ class SacBaseModelControl {
|
|
|
1765
1791
|
* Methode ergibt Boolean Wert für touched
|
|
1766
1792
|
*/
|
|
1767
1793
|
get touched() {
|
|
1768
|
-
if (this.ngControl !== null) {
|
|
1794
|
+
if (this.ngControl !== null && this.ngControl !== undefined) {
|
|
1769
1795
|
this._touched = this.ngControl.touched;
|
|
1770
1796
|
}
|
|
1771
1797
|
return this._touched;
|
|
@@ -1787,6 +1813,8 @@ class SacBaseModelControl {
|
|
|
1787
1813
|
this._value = this.ConvertInputValue(v);
|
|
1788
1814
|
this.propagateChange(this._value);
|
|
1789
1815
|
}
|
|
1816
|
+
// #endregion Public Getters And Setters
|
|
1817
|
+
// #region Public Methods
|
|
1790
1818
|
/**
|
|
1791
1819
|
* Methode ergibt Error anhand von gegebenen Kriterien
|
|
1792
1820
|
*/
|
|
@@ -1823,24 +1851,21 @@ class SacBaseModelControl {
|
|
|
1823
1851
|
return this.lngResourceService.GetString(errorItem.errorMessageKey, parameters);
|
|
1824
1852
|
}
|
|
1825
1853
|
/**
|
|
1826
|
-
*
|
|
1854
|
+
* Init Event
|
|
1827
1855
|
*/
|
|
1828
|
-
|
|
1856
|
+
ngOnInit() {
|
|
1829
1857
|
// receive form via formcontrolname or formcontrol instance
|
|
1830
1858
|
const formControl = this.injector.get(NgControl, null);
|
|
1831
1859
|
if (formControl instanceof FormControlName) {
|
|
1832
1860
|
const form = this.injector.get(FormGroupDirective, null);
|
|
1833
1861
|
this.ngControl = form.getControl(formControl);
|
|
1834
1862
|
}
|
|
1835
|
-
else
|
|
1836
|
-
|
|
1863
|
+
else {
|
|
1864
|
+
if (formControl) {
|
|
1865
|
+
this.ngControl = formControl.control;
|
|
1866
|
+
}
|
|
1837
1867
|
}
|
|
1838
1868
|
this.UpdateLabelToControl();
|
|
1839
|
-
}
|
|
1840
|
-
/**
|
|
1841
|
-
* Init Event
|
|
1842
|
-
*/
|
|
1843
|
-
ngOnInit() {
|
|
1844
1869
|
// set label sizes from formlayout directive
|
|
1845
1870
|
this.setLabelSizes();
|
|
1846
1871
|
// set component heigth from fromlayout directive
|
|
@@ -1904,6 +1929,8 @@ class SacBaseModelControl {
|
|
|
1904
1929
|
writeValue(value) {
|
|
1905
1930
|
this._value = value;
|
|
1906
1931
|
}
|
|
1932
|
+
// #endregion Public Methods
|
|
1933
|
+
// #region Protected Methods
|
|
1907
1934
|
/**
|
|
1908
1935
|
* Method can Overwriten in Parent Classes
|
|
1909
1936
|
* @param value Wert welcher in den korrekten Typ konvertiert werden soll
|
|
@@ -1930,6 +1957,8 @@ class SacBaseModelControl {
|
|
|
1930
1957
|
this.ngControl.updateValueAndValidity({ onlySelf: true });
|
|
1931
1958
|
}
|
|
1932
1959
|
}
|
|
1960
|
+
// #endregion Protected Methods
|
|
1961
|
+
// #region Private Methods
|
|
1933
1962
|
UpdateLabelToControl() {
|
|
1934
1963
|
// HACK: Add addition property to FormControl. Can be fixed if solution for ticket: https://github.com/angular/angular/issues/19686
|
|
1935
1964
|
if (this.ngControl) {
|
|
@@ -2046,8 +2075,7 @@ class SacBaseModelControl {
|
|
|
2046
2075
|
this.splitlabelandhelptext = this.formlayout.splitlabelandhelptext;
|
|
2047
2076
|
}
|
|
2048
2077
|
else {
|
|
2049
|
-
this.splitlabelandhelptext =
|
|
2050
|
-
this.configurationService.SplitLabelAndHelptext;
|
|
2078
|
+
this.splitlabelandhelptext = this.configurationService.SplitLabelAndHelptext;
|
|
2051
2079
|
}
|
|
2052
2080
|
}
|
|
2053
2081
|
}
|
|
@@ -7579,401 +7607,308 @@ SacTinyMceCommon.propDecorators = {
|
|
|
7579
7607
|
};
|
|
7580
7608
|
|
|
7581
7609
|
/**
|
|
7582
|
-
*Basis Komponente für
|
|
7610
|
+
* Basis Komponente für SacTreeView
|
|
7583
7611
|
*/
|
|
7584
|
-
class
|
|
7612
|
+
class SacTreeviewCommon extends SacBaseModelControl {
|
|
7613
|
+
// #endregion Properties
|
|
7614
|
+
// #region Constructors
|
|
7585
7615
|
/**
|
|
7586
|
-
*
|
|
7587
|
-
* @param
|
|
7616
|
+
* Constructor
|
|
7617
|
+
* @param injector Service Injector
|
|
7588
7618
|
*/
|
|
7589
|
-
constructor(
|
|
7590
|
-
|
|
7619
|
+
constructor(formlayout, injector) {
|
|
7620
|
+
super(formlayout, injector);
|
|
7621
|
+
// #region Properties
|
|
7591
7622
|
/**
|
|
7592
|
-
* Event
|
|
7623
|
+
* Event when Action is clicked on Node. An object of the type 'TreeviewAction' is returned. In the default case, 'action' in this object is always the value 'default'. The value can be changed via the 'templateaction'.
|
|
7593
7624
|
*/
|
|
7594
|
-
this.
|
|
7595
|
-
}
|
|
7596
|
-
/**
|
|
7597
|
-
* lifecycle OnInit hook. Wird aufgeruren sobald das Komponent initialisiert ist.
|
|
7598
|
-
*/
|
|
7599
|
-
ngOnInit() {
|
|
7600
|
-
let rootElement = this.el.nativeElement;
|
|
7601
|
-
let parentElement = rootElement.parentElement;
|
|
7602
|
-
while (rootElement.firstChild) {
|
|
7603
|
-
parentElement.insertBefore(rootElement.firstChild, rootElement);
|
|
7604
|
-
}
|
|
7605
|
-
parentElement.removeChild(rootElement);
|
|
7606
|
-
}
|
|
7607
|
-
/**
|
|
7608
|
-
* Die Methode erstellt die CSS Klasse des Icon. Akzeptiert ein Key-word und baut ein vollständige CSS Klasse.
|
|
7609
|
-
*/
|
|
7610
|
-
transformClass(initialClass) {
|
|
7611
|
-
switch (initialClass) {
|
|
7612
|
-
case 'add':
|
|
7613
|
-
return 'jstree-icon icon icon-base-add jstree-add';
|
|
7614
|
-
case 'delete':
|
|
7615
|
-
return 'jstree-icon icon icon-base-delete jstree-delete';
|
|
7616
|
-
default:
|
|
7617
|
-
return initialClass;
|
|
7618
|
-
}
|
|
7619
|
-
}
|
|
7620
|
-
/**
|
|
7621
|
-
* Die Methode wird das cklickaction Emitter aktivieren.
|
|
7622
|
-
*/
|
|
7623
|
-
iconaction() {
|
|
7624
|
-
this.clicked.emit();
|
|
7625
|
-
}
|
|
7626
|
-
}
|
|
7627
|
-
SacTreeItemActionCommon.decorators = [
|
|
7628
|
-
{ type: Directive }
|
|
7629
|
-
];
|
|
7630
|
-
SacTreeItemActionCommon.ctorParameters = () => [
|
|
7631
|
-
{ type: ElementRef }
|
|
7632
|
-
];
|
|
7633
|
-
SacTreeItemActionCommon.propDecorators = {
|
|
7634
|
-
item: [{ type: Input }],
|
|
7635
|
-
title: [{ type: Input }],
|
|
7636
|
-
iconstyle: [{ type: Input }],
|
|
7637
|
-
clicked: [{ type: Output }]
|
|
7638
|
-
};
|
|
7639
|
-
|
|
7640
|
-
/**
|
|
7641
|
-
* Basis Komponente für SacTreeView
|
|
7642
|
-
*/
|
|
7643
|
-
class SacTreeViewCommon {
|
|
7644
|
-
constructor() {
|
|
7625
|
+
this.actionclicked = new EventEmitter();
|
|
7645
7626
|
/**
|
|
7646
|
-
*
|
|
7627
|
+
* Property on the data object that contains the children of the structure element. Must be an array of objects. The default value is 'children'
|
|
7647
7628
|
*/
|
|
7648
|
-
this.
|
|
7629
|
+
this.attrchildren = 'children';
|
|
7649
7630
|
/**
|
|
7650
|
-
*
|
|
7631
|
+
* Defines the property on the 'data' object with which the actions for a node can be deactivated. A 'disabled' property is used by default.
|
|
7651
7632
|
*/
|
|
7652
|
-
this.
|
|
7633
|
+
this.attrdisableaction = 'disabled';
|
|
7653
7634
|
/**
|
|
7654
|
-
*
|
|
7635
|
+
* Property on the 'data' object that stores the expanded state. Property must be of type boolean. Default is 'expanded'
|
|
7655
7636
|
*/
|
|
7656
|
-
this.
|
|
7637
|
+
this.attrexanded = 'expanded';
|
|
7657
7638
|
/**
|
|
7658
|
-
*
|
|
7639
|
+
* Property for saving the HoverState on the field. If the property is not present on the node, it is automatically created and removed again. The value can usually be left at the default value unless there is a conflict with a property on the node that is required for other purposes.
|
|
7659
7640
|
*/
|
|
7660
|
-
this.
|
|
7641
|
+
this.attrhoverstate = 'hoverstate';
|
|
7661
7642
|
/**
|
|
7662
|
-
*
|
|
7643
|
+
* Property on 'data' object, which contains the icon for the node. By default, the property is not set, which hides the icon in the node.
|
|
7663
7644
|
*/
|
|
7664
|
-
this.
|
|
7645
|
+
this.attricon = null;
|
|
7665
7646
|
/**
|
|
7666
|
-
*
|
|
7647
|
+
* property on the 'data' object contains an ID of the node. The default is 'id'. If the property is set to NULL, the selectedId event is no longer triggered.
|
|
7667
7648
|
*/
|
|
7668
|
-
this.
|
|
7649
|
+
this.attrid = 'id';
|
|
7669
7650
|
/**
|
|
7670
|
-
*
|
|
7671
|
-
* is false).
|
|
7651
|
+
* Property on 'data' object, which contains the label for the node. Default is 'label'
|
|
7672
7652
|
*/
|
|
7673
|
-
this.
|
|
7653
|
+
this.attrlabel = 'label';
|
|
7674
7654
|
/**
|
|
7675
|
-
*
|
|
7655
|
+
* Property on 'data' object, which defines whether the node is selected or not. It should be ensured that only 1 node has the value for Selected set to true. Default is 'selected'.
|
|
7676
7656
|
*/
|
|
7677
|
-
this.
|
|
7657
|
+
this.attrselected = 'selected';
|
|
7678
7658
|
/**
|
|
7679
|
-
*
|
|
7659
|
+
* Event when a node is collapsed. Returns the node element as a parameter
|
|
7680
7660
|
*/
|
|
7681
|
-
this.
|
|
7661
|
+
this.collabsed = new EventEmitter();
|
|
7682
7662
|
/**
|
|
7683
|
-
*
|
|
7663
|
+
* The property contains an array of nodes. The data must already map the tree via child properties.
|
|
7684
7664
|
*/
|
|
7685
|
-
this.
|
|
7665
|
+
this.data = [];
|
|
7686
7666
|
/**
|
|
7687
|
-
*
|
|
7667
|
+
* Activates the 'expand' and 'collabse' event even if a node has no children. This is helpful if node elements are to be reloaded at runtime.
|
|
7688
7668
|
*/
|
|
7689
|
-
this.
|
|
7669
|
+
this.enableasynchload = false;
|
|
7690
7670
|
/**
|
|
7691
|
-
*
|
|
7671
|
+
* Activates Ellipsis on the node labels
|
|
7692
7672
|
*/
|
|
7693
|
-
this.
|
|
7673
|
+
this.enableellipsis = true;
|
|
7694
7674
|
/**
|
|
7695
|
-
*
|
|
7675
|
+
* Event when a node is expanded. Returns the node element as a parameter
|
|
7696
7676
|
*/
|
|
7697
|
-
this.
|
|
7677
|
+
this.expanded = new EventEmitter();
|
|
7698
7678
|
/**
|
|
7699
|
-
*
|
|
7679
|
+
* Defines whether an icon for the expanded/collapsed status should be displayed.
|
|
7700
7680
|
*/
|
|
7701
|
-
this.
|
|
7702
|
-
|
|
7703
|
-
|
|
7704
|
-
|
|
7705
|
-
|
|
7706
|
-
|
|
7707
|
-
|
|
7681
|
+
this.expandedstate = true;
|
|
7682
|
+
/**
|
|
7683
|
+
* A node must be selected
|
|
7684
|
+
*/
|
|
7685
|
+
this.isrequired = false;
|
|
7686
|
+
/**
|
|
7687
|
+
* Name of the TreeView control
|
|
7688
|
+
*/
|
|
7689
|
+
this.name = '';
|
|
7690
|
+
/**
|
|
7691
|
+
* Event when a node is selected. Returns the id attribute as a parameter. The event is not triggered if 'attrid' is not set.
|
|
7692
|
+
*/
|
|
7693
|
+
this.selected = new EventEmitter();
|
|
7694
|
+
/**
|
|
7695
|
+
* Event when a node is selected. Returns the node element as a parameter.
|
|
7696
|
+
*/
|
|
7697
|
+
this.selectednode = new EventEmitter();
|
|
7698
|
+
/**
|
|
7699
|
+
* Resource Key für Validation Message Required bei Control
|
|
7700
|
+
*/
|
|
7701
|
+
this.validationmessagerequired = this.validationKeyService.ValidationErrorRequired;
|
|
7702
|
+
/**
|
|
7703
|
+
* Resource Key für Validation Message Required in Validation Summary
|
|
7704
|
+
*/
|
|
7705
|
+
this.validationmessagesummaryrequired = this.validationKeyService.ValidationErrorSummaryRequired;
|
|
7708
7706
|
}
|
|
7709
|
-
|
|
7710
|
-
|
|
7711
|
-
|
|
7712
|
-
|
|
7713
|
-
this._data = value;
|
|
7714
|
-
this.nodes = value;
|
|
7715
|
-
// this.nodes.forEach(node => node["typeId"] = "13")
|
|
7716
|
-
this.LoadTree();
|
|
7717
|
-
if (this._collapseAll !== undefined) {
|
|
7718
|
-
this.collapseAllNode(this._collapseAll);
|
|
7719
|
-
}
|
|
7707
|
+
// #endregion Constructors
|
|
7708
|
+
// #region Public Getters And Setters
|
|
7709
|
+
get iconAction() {
|
|
7710
|
+
return this.iconService.TreeviewNodeActionIcon;
|
|
7720
7711
|
}
|
|
7721
7712
|
/**
|
|
7722
|
-
*
|
|
7713
|
+
* CSS icon for folders in tree there are collabsed
|
|
7714
|
+
* @returns css class with icon
|
|
7723
7715
|
*/
|
|
7724
|
-
|
|
7725
|
-
this.
|
|
7716
|
+
get iconFolderCollabsed() {
|
|
7717
|
+
return this.iconService.TreeviewNodeClosedIcon;
|
|
7726
7718
|
}
|
|
7727
7719
|
/**
|
|
7728
|
-
*
|
|
7720
|
+
* CSS icon class for folders without subfolders
|
|
7721
|
+
* @returns css class with icon
|
|
7729
7722
|
*/
|
|
7730
|
-
get
|
|
7731
|
-
return this.
|
|
7723
|
+
get iconFolderEmpty() {
|
|
7724
|
+
return this.iconService.TreeviewNodeEmptyIcon;
|
|
7732
7725
|
}
|
|
7733
7726
|
/**
|
|
7734
|
-
*
|
|
7727
|
+
* CSS icon for folders in tree there are expanded
|
|
7728
|
+
* @returns css class with icon
|
|
7735
7729
|
*/
|
|
7736
|
-
|
|
7737
|
-
this.
|
|
7730
|
+
get iconFolderOpen() {
|
|
7731
|
+
return this.iconService.TreeviewNodeOpenIcon;
|
|
7738
7732
|
}
|
|
7733
|
+
// #endregion Public Getters And Setters
|
|
7734
|
+
// #region Public Methods
|
|
7739
7735
|
/**
|
|
7740
|
-
*
|
|
7736
|
+
* Creates an array of a certain size. Is required for a For in the UI, as Angular does not support counting loops
|
|
7737
|
+
* @param size Size of the array
|
|
7738
|
+
* @returns Array
|
|
7741
7739
|
*/
|
|
7742
|
-
|
|
7743
|
-
return
|
|
7740
|
+
count(size) {
|
|
7741
|
+
return new Array(size);
|
|
7744
7742
|
}
|
|
7745
|
-
|
|
7746
|
-
|
|
7747
|
-
|
|
7748
|
-
*/
|
|
7749
|
-
set collapseall(value) {
|
|
7750
|
-
this._collapseAll = value;
|
|
7751
|
-
if (this.nodes && this.nodes.length && this.nodes.length > 0) {
|
|
7752
|
-
this.collapseAllNode(this._collapseAll);
|
|
7743
|
+
getChildren(node) {
|
|
7744
|
+
if (!node || !this.attrchildren) {
|
|
7745
|
+
return [];
|
|
7753
7746
|
}
|
|
7754
|
-
|
|
7755
|
-
|
|
7756
|
-
|
|
7757
|
-
|
|
7758
|
-
|
|
7759
|
-
* Getter für das collapse property. Ergibt boolean Wert, ob die Items collapsed/expand sind.
|
|
7760
|
-
*/
|
|
7761
|
-
get collapseall() {
|
|
7762
|
-
return this._collapseAll;
|
|
7747
|
+
let children = node[this.attrchildren];
|
|
7748
|
+
if (!Array.isArray(children)) {
|
|
7749
|
+
return [];
|
|
7750
|
+
}
|
|
7751
|
+
return children;
|
|
7763
7752
|
}
|
|
7764
|
-
|
|
7765
|
-
|
|
7766
|
-
|
|
7767
|
-
|
|
7768
|
-
|
|
7769
|
-
|
|
7770
|
-
|
|
7753
|
+
getStringField(node, fieldname) {
|
|
7754
|
+
if (!node) {
|
|
7755
|
+
return '';
|
|
7756
|
+
}
|
|
7757
|
+
if (!fieldname) {
|
|
7758
|
+
return node;
|
|
7759
|
+
}
|
|
7760
|
+
let value = node[fieldname];
|
|
7761
|
+
if (!value) {
|
|
7762
|
+
return '';
|
|
7763
|
+
}
|
|
7764
|
+
return value;
|
|
7771
7765
|
}
|
|
7772
|
-
|
|
7773
|
-
|
|
7774
|
-
*/
|
|
7775
|
-
set selectedid(v) {
|
|
7776
|
-
this.selectedNode = this.findNode(this.nodes, v, this.idAttr);
|
|
7777
|
-
// if (this.selectedNode) {
|
|
7778
|
-
// this.selectedIdEmitter.emit(this.selectedNode[this.idAttr]);
|
|
7779
|
-
// this.selectedTextEmitter.emit(this.selectedNode[this.textAttr]);
|
|
7780
|
-
// }
|
|
7766
|
+
hasChildren(node) {
|
|
7767
|
+
return this.getChildren(node).length > 0;
|
|
7781
7768
|
}
|
|
7782
|
-
|
|
7783
|
-
|
|
7784
|
-
|
|
7785
|
-
get selectedId() {
|
|
7786
|
-
return this.selectedNode ? this.selectedNode[this.idAttr] : null;
|
|
7787
|
-
}
|
|
7788
|
-
/**
|
|
7789
|
-
* Setter für das selektierte Wert(node). Wenn aufgerufen das ID und TextAttr des selected Node wird emitted
|
|
7790
|
-
*/
|
|
7791
|
-
set selectedNode(v) {
|
|
7792
|
-
this._selectedNode = v;
|
|
7793
|
-
if (this._selectedNode) {
|
|
7794
|
-
this.selectedidchange.emit(this.selectedId);
|
|
7795
|
-
this.selectedtextchanged.emit(v[this.textAttr]);
|
|
7769
|
+
isDisabledState(node) {
|
|
7770
|
+
if (!node || !this.attrdisableaction) {
|
|
7771
|
+
return false;
|
|
7796
7772
|
}
|
|
7773
|
+
let value = node[this.attrdisableaction];
|
|
7774
|
+
return value === true || value === 'true';
|
|
7797
7775
|
}
|
|
7798
|
-
|
|
7799
|
-
|
|
7800
|
-
|
|
7801
|
-
get selectedNode() {
|
|
7802
|
-
return this._selectedNode;
|
|
7803
|
-
}
|
|
7804
|
-
/**
|
|
7805
|
-
* A lifecycle hook that is called after Angular has initialized all data-bound properties of a directive.
|
|
7806
|
-
* Define an ngOnInit() method to handle any additional initialization tasks.
|
|
7807
|
-
*/
|
|
7808
|
-
ngOnInit() {
|
|
7809
|
-
this.collapseAllNode(this._collapseAll);
|
|
7810
|
-
if (this.selectedId)
|
|
7811
|
-
this.openSelectedNode(this.nodes);
|
|
7812
|
-
}
|
|
7813
|
-
/**
|
|
7814
|
-
* Funktion setzt alle parent items recusiv zum selected node
|
|
7815
|
-
* auf collapsed = false
|
|
7816
|
-
*/
|
|
7817
|
-
openSelectedNode(data) {
|
|
7818
|
-
let result = false;
|
|
7819
|
-
for (let i = 0; i < data.length; i++) {
|
|
7820
|
-
if (data[i][this.childrenAttr].length &&
|
|
7821
|
-
data[i][this.idAttr] != this.selectedId)
|
|
7822
|
-
result = this.openSelectedNode(data[i][this.childrenAttr]);
|
|
7823
|
-
if (result || data[i][this.idAttr] == this.selectedId) {
|
|
7824
|
-
data[i][this.collapseAttr] = false;
|
|
7825
|
-
return true;
|
|
7826
|
-
}
|
|
7776
|
+
isExpandedState(node) {
|
|
7777
|
+
if (!node || !this.attrexanded) {
|
|
7778
|
+
return false;
|
|
7827
7779
|
}
|
|
7828
|
-
|
|
7780
|
+
let value = node[this.attrexanded];
|
|
7781
|
+
return value === true || value === 'true';
|
|
7829
7782
|
}
|
|
7830
|
-
|
|
7831
|
-
|
|
7832
|
-
|
|
7833
|
-
|
|
7834
|
-
|
|
7835
|
-
|
|
7836
|
-
// If data is flat, prepare data with recursive function.
|
|
7837
|
-
this.nodes = this.prepareData ? this._getPreparedData(cloned) : this._data;
|
|
7783
|
+
isHoverState(node) {
|
|
7784
|
+
if (!node || !this.attrhoverstate) {
|
|
7785
|
+
return false;
|
|
7786
|
+
}
|
|
7787
|
+
let value = node[this.attrhoverstate];
|
|
7788
|
+
return value === true || value === 'true';
|
|
7838
7789
|
}
|
|
7839
|
-
|
|
7840
|
-
|
|
7841
|
-
|
|
7842
|
-
onCollapseClick(node) {
|
|
7843
|
-
if (node[this.childrenAttr].length) {
|
|
7844
|
-
node[this.collapseAttr] = !node[this.collapseAttr];
|
|
7790
|
+
isSelectedState(node) {
|
|
7791
|
+
if (!node || !this.attrselected) {
|
|
7792
|
+
return false;
|
|
7845
7793
|
}
|
|
7794
|
+
let value = node[this.attrselected];
|
|
7795
|
+
return value === true || value === 'true';
|
|
7846
7796
|
}
|
|
7847
7797
|
/**
|
|
7848
|
-
*
|
|
7798
|
+
* Method is called by clicking an action
|
|
7799
|
+
* @param action action and node
|
|
7849
7800
|
*/
|
|
7850
|
-
|
|
7851
|
-
this.
|
|
7852
|
-
this.selecteditem.emit(this.selectedNode);
|
|
7853
|
-
// this.cd.detectChanges();
|
|
7801
|
+
onActionClicked(action) {
|
|
7802
|
+
this.actionclicked.emit(action);
|
|
7854
7803
|
}
|
|
7855
|
-
|
|
7856
|
-
|
|
7857
|
-
|
|
7858
|
-
|
|
7859
|
-
this.
|
|
7804
|
+
onNodeClicked(node) {
|
|
7805
|
+
if (this.isDisabledState(node) || this.isSelectedState(node)) {
|
|
7806
|
+
this.invertExpandedState(node);
|
|
7807
|
+
}
|
|
7808
|
+
this.setSelectedState(node);
|
|
7860
7809
|
}
|
|
7861
|
-
|
|
7862
|
-
|
|
7863
|
-
|
|
7864
|
-
|
|
7865
|
-
|
|
7866
|
-
|
|
7867
|
-
|
|
7868
|
-
|
|
7869
|
-
|
|
7870
|
-
|
|
7871
|
-
node[collapseAttr] = command;
|
|
7872
|
-
node.children.forEach((child) => {
|
|
7873
|
-
if (child[childrenAttr].length) {
|
|
7874
|
-
collapseAllHIdden(child, collapseAttr, command, childrenAttr);
|
|
7875
|
-
}
|
|
7876
|
-
});
|
|
7810
|
+
setHoverState(node, state) {
|
|
7811
|
+
if (!node || !this.attrhoverstate) {
|
|
7812
|
+
return;
|
|
7813
|
+
}
|
|
7814
|
+
if (state) {
|
|
7815
|
+
node[this.attrhoverstate] = true;
|
|
7816
|
+
return;
|
|
7817
|
+
}
|
|
7818
|
+
if (!node.hasOwnProperty(this.attrhoverstate)) {
|
|
7819
|
+
return;
|
|
7877
7820
|
}
|
|
7821
|
+
delete node[this.attrhoverstate];
|
|
7878
7822
|
}
|
|
7879
|
-
|
|
7880
|
-
|
|
7881
|
-
|
|
7882
|
-
* @param data Liste der nodes
|
|
7883
|
-
* @param searchValue Das gesuchte value
|
|
7884
|
-
* @param attr Der namen des Attributs auf dem das value gesucht wird
|
|
7885
|
-
*/
|
|
7886
|
-
findNode(data, searchValue, attr) {
|
|
7887
|
-
let result = null;
|
|
7888
|
-
for (let i = 0; i < data.length; i++) {
|
|
7889
|
-
if (data[i][attr] == searchValue)
|
|
7890
|
-
result = data[i];
|
|
7891
|
-
else {
|
|
7892
|
-
if (data[i][this.childrenAttr].length) {
|
|
7893
|
-
let recursiveResult = this.findNode(data[i][this.childrenAttr], searchValue, attr);
|
|
7894
|
-
if (recursiveResult)
|
|
7895
|
-
result = recursiveResult;
|
|
7896
|
-
}
|
|
7897
|
-
}
|
|
7823
|
+
setSelectedState(node) {
|
|
7824
|
+
if (!node || !this.attrselected) {
|
|
7825
|
+
return;
|
|
7898
7826
|
}
|
|
7899
|
-
|
|
7827
|
+
// reset selected state of any node
|
|
7828
|
+
this.data.forEach((rootNode) => this.resetSelectedState(rootNode));
|
|
7829
|
+
// set selected node as selected
|
|
7830
|
+
node[this.attrselected] = true;
|
|
7831
|
+
// Update ngModel
|
|
7832
|
+
this.setValue(node);
|
|
7833
|
+
// Raise Selected Events
|
|
7834
|
+
this.selectednode.emit(node);
|
|
7835
|
+
if (!this.attrid) {
|
|
7836
|
+
return;
|
|
7837
|
+
}
|
|
7838
|
+
let id = this.getStringField(node, this.attrid);
|
|
7839
|
+
this.selected.emit(id);
|
|
7900
7840
|
}
|
|
7901
|
-
|
|
7902
|
-
|
|
7903
|
-
|
|
7904
|
-
|
|
7905
|
-
if (Array.isArray(list)) {
|
|
7906
|
-
for (let i = 0, len = list.length; i < len; i++) {
|
|
7907
|
-
list[i][attr] = value;
|
|
7908
|
-
if (list[i][childrenAttr].length) {
|
|
7909
|
-
this._recursiveEdit(list[i][childrenAttr], childrenAttr, attr, value);
|
|
7910
|
-
}
|
|
7911
|
-
}
|
|
7841
|
+
validateData(c) {
|
|
7842
|
+
let error = null;
|
|
7843
|
+
if (this.isrequired) {
|
|
7844
|
+
error = Validation.required(this.validationmessagerequired, this.validationmessagesummaryrequired)(c);
|
|
7912
7845
|
}
|
|
7846
|
+
return error;
|
|
7913
7847
|
}
|
|
7914
|
-
|
|
7915
|
-
|
|
7916
|
-
|
|
7917
|
-
|
|
7918
|
-
|
|
7919
|
-
for (let i = 0, len = list.length; i < len; i++) {
|
|
7920
|
-
lookup[list[i][this.idAttr]] = list[i];
|
|
7921
|
-
list[i][this.childrenAttr] = [];
|
|
7922
|
-
list[i][this.collapseAttr] = true;
|
|
7923
|
-
list[i][this.selectAttr] = false;
|
|
7924
|
-
list[i][this.inDeterminateAttr] = false;
|
|
7848
|
+
// #endregion Public Methods
|
|
7849
|
+
// #region Private Methods
|
|
7850
|
+
invertExpandedState(node) {
|
|
7851
|
+
if (!node || !this.attrexanded) {
|
|
7852
|
+
return;
|
|
7925
7853
|
}
|
|
7926
|
-
|
|
7927
|
-
|
|
7928
|
-
|
|
7929
|
-
|
|
7930
|
-
|
|
7931
|
-
|
|
7932
|
-
|
|
7854
|
+
// Items with no children cannot be collabsed
|
|
7855
|
+
if (!this.hasChildren(node) && !(this.enableasynchload === true || this.enableasynchload === 'true')) {
|
|
7856
|
+
return;
|
|
7857
|
+
}
|
|
7858
|
+
let value = node[this.attrexanded];
|
|
7859
|
+
if (value === true || value === 'true') {
|
|
7860
|
+
this.collabsed.emit(node);
|
|
7861
|
+
node[this.attrexanded] = false;
|
|
7862
|
+
}
|
|
7863
|
+
else {
|
|
7864
|
+
this.expanded.emit(node);
|
|
7865
|
+
node[this.attrexanded] = true;
|
|
7933
7866
|
}
|
|
7934
|
-
|
|
7867
|
+
}
|
|
7868
|
+
resetSelectedState(node) {
|
|
7869
|
+
if (!node || !this.attrselected) {
|
|
7870
|
+
return;
|
|
7871
|
+
}
|
|
7872
|
+
node[this.attrselected] = false;
|
|
7873
|
+
this.getChildren(node).forEach((child) => {
|
|
7874
|
+
this.resetSelectedState(child);
|
|
7875
|
+
});
|
|
7935
7876
|
}
|
|
7936
7877
|
}
|
|
7937
|
-
|
|
7878
|
+
SacTreeviewCommon.decorators = [
|
|
7938
7879
|
{ type: Directive }
|
|
7939
7880
|
];
|
|
7940
|
-
|
|
7881
|
+
SacTreeviewCommon.ctorParameters = () => [
|
|
7882
|
+
{ type: SacFormLayoutCommon, decorators: [{ type: Host }] },
|
|
7883
|
+
{ type: Injector }
|
|
7884
|
+
];
|
|
7885
|
+
SacTreeviewCommon.propDecorators = {
|
|
7886
|
+
actionclicked: [{ type: Output }],
|
|
7887
|
+
attrchildren: [{ type: Input }],
|
|
7888
|
+
attrdisableaction: [{ type: Input }],
|
|
7889
|
+
attrexanded: [{ type: Input }],
|
|
7890
|
+
attrhoverstate: [{ type: Input }],
|
|
7891
|
+
attricon: [{ type: Input }],
|
|
7892
|
+
attrid: [{ type: Input }],
|
|
7893
|
+
attrlabel: [{ type: Input }],
|
|
7894
|
+
attrselected: [{ type: Input }],
|
|
7895
|
+
collabsed: [{ type: Output }],
|
|
7941
7896
|
data: [{ type: Input }],
|
|
7942
|
-
|
|
7943
|
-
|
|
7944
|
-
|
|
7945
|
-
|
|
7897
|
+
enableasynchload: [{ type: Input }],
|
|
7898
|
+
enableellipsis: [{ type: Input }],
|
|
7899
|
+
expanded: [{ type: Output }],
|
|
7900
|
+
expandedstate: [{ type: Input }],
|
|
7901
|
+
isrequired: [{ type: Input }],
|
|
7946
7902
|
name: [{ type: Input }],
|
|
7947
|
-
|
|
7948
|
-
|
|
7949
|
-
|
|
7950
|
-
|
|
7951
|
-
|
|
7952
|
-
|
|
7953
|
-
|
|
7954
|
-
selectall: [{ type: Input }],
|
|
7955
|
-
selectedid: [{ type: Input }],
|
|
7956
|
-
selectedidchange: [{ type: Output }],
|
|
7957
|
-
selectedtextchanged: [{ type: Output }],
|
|
7958
|
-
selecteditem: [{ type: Output }]
|
|
7903
|
+
selected: [{ type: Output }],
|
|
7904
|
+
selectednode: [{ type: Output }],
|
|
7905
|
+
showactionalways: [{ type: Input }],
|
|
7906
|
+
templateaction: [{ type: Input }],
|
|
7907
|
+
templatelabel: [{ type: Input }],
|
|
7908
|
+
validationmessagerequired: [{ type: Input }],
|
|
7909
|
+
validationmessagesummaryrequired: [{ type: Input }]
|
|
7959
7910
|
};
|
|
7960
7911
|
|
|
7961
|
-
/**
|
|
7962
|
-
* Komponente für SacTreeViewChildCommon. Extends SacTreeViewCommon
|
|
7963
|
-
*/
|
|
7964
|
-
class SacTreeViewChildCommon extends SacTreeViewCommon {
|
|
7965
|
-
/**
|
|
7966
|
-
* A lifecycle hook that is called after Angular has initialized all data-bound properties of a directive.
|
|
7967
|
-
* Define an ngOnInit() method to handle any additional initialization tasks.
|
|
7968
|
-
*/
|
|
7969
|
-
ngOnInit() {
|
|
7970
|
-
this.collapseAllNode(this.collapseall);
|
|
7971
|
-
}
|
|
7972
|
-
}
|
|
7973
|
-
SacTreeViewChildCommon.decorators = [
|
|
7974
|
-
{ type: Directive }
|
|
7975
|
-
];
|
|
7976
|
-
|
|
7977
7912
|
/**
|
|
7978
7913
|
* Tooltip Component
|
|
7979
7914
|
*
|
|
@@ -10080,6 +10015,26 @@ SacContextMenuContrainerCommon.ctorParameters = () => [
|
|
|
10080
10015
|
{ type: ElementRef }
|
|
10081
10016
|
];
|
|
10082
10017
|
|
|
10018
|
+
/**
|
|
10019
|
+
* Base Context Menu Item
|
|
10020
|
+
*/
|
|
10021
|
+
class SacContextmenuItemCommon {
|
|
10022
|
+
constructor() {
|
|
10023
|
+
// #region Properties
|
|
10024
|
+
/**
|
|
10025
|
+
* Reference to the higher-level context menu. This property is always set automatically by the context menu. However, it may be necessary to set the reference manually.
|
|
10026
|
+
*/
|
|
10027
|
+
this.contextmenu = null;
|
|
10028
|
+
// #endregion Properties
|
|
10029
|
+
}
|
|
10030
|
+
}
|
|
10031
|
+
SacContextmenuItemCommon.decorators = [
|
|
10032
|
+
{ type: Directive }
|
|
10033
|
+
];
|
|
10034
|
+
SacContextmenuItemCommon.propDecorators = {
|
|
10035
|
+
contextmenu: [{ type: Input }]
|
|
10036
|
+
};
|
|
10037
|
+
|
|
10083
10038
|
/**
|
|
10084
10039
|
* Base Context Menü Element. Die Logik wurde aus NG-BOOTSTRAP übernommen.
|
|
10085
10040
|
*/
|
|
@@ -10128,12 +10083,7 @@ class SacContextmenuCommon {
|
|
|
10128
10083
|
*
|
|
10129
10084
|
* Please see the [positioning overview](#/positioning) for more details.
|
|
10130
10085
|
*/
|
|
10131
|
-
this.placement = [
|
|
10132
|
-
'bottom-left',
|
|
10133
|
-
'bottom-right',
|
|
10134
|
-
'top-left',
|
|
10135
|
-
'top-right',
|
|
10136
|
-
];
|
|
10086
|
+
this.placement = ['bottom-left', 'bottom-right', 'top-left', 'top-right'];
|
|
10137
10087
|
this.zoneSubscription = this.ngZone.onStable.subscribe(() => {
|
|
10138
10088
|
this._positionMenu();
|
|
10139
10089
|
});
|
|
@@ -10149,17 +10099,6 @@ class SacContextmenuCommon {
|
|
|
10149
10099
|
}
|
|
10150
10100
|
// #endregion Public Getters And Setters
|
|
10151
10101
|
// #region Public Methods
|
|
10152
|
-
/**
|
|
10153
|
-
* HostListener um das Dropdown zu schliessen wenn nicht auf das Element geklickt wird.
|
|
10154
|
-
*/
|
|
10155
|
-
onClick(targetElement) {
|
|
10156
|
-
const anchor = this._anchor || this._anchorTemplate;
|
|
10157
|
-
if (this._menu &&
|
|
10158
|
-
!this._menu.nativeElement.contains(targetElement) &&
|
|
10159
|
-
!anchor.nativeElement.contains(targetElement)) {
|
|
10160
|
-
this.close();
|
|
10161
|
-
}
|
|
10162
|
-
}
|
|
10163
10102
|
/**
|
|
10164
10103
|
* Schliesst das Dropdown
|
|
10165
10104
|
*/
|
|
@@ -10167,6 +10106,9 @@ class SacContextmenuCommon {
|
|
|
10167
10106
|
this._resetContainer();
|
|
10168
10107
|
this.isopen = false;
|
|
10169
10108
|
}
|
|
10109
|
+
ngAfterContentInit() {
|
|
10110
|
+
this.menuitems.forEach((button) => (button.contextmenu = this));
|
|
10111
|
+
}
|
|
10170
10112
|
/**
|
|
10171
10113
|
* Event wenn Component entfernt wird.
|
|
10172
10114
|
*/
|
|
@@ -10176,6 +10118,17 @@ class SacContextmenuCommon {
|
|
|
10176
10118
|
}
|
|
10177
10119
|
this.zoneSubscription.unsubscribe();
|
|
10178
10120
|
}
|
|
10121
|
+
/**
|
|
10122
|
+
* HostListener um das Dropdown zu schliessen wenn nicht auf das Element geklickt wird.
|
|
10123
|
+
*/
|
|
10124
|
+
onClick(targetElement) {
|
|
10125
|
+
const anchor = this._anchor || this._anchorTemplate;
|
|
10126
|
+
if (this._menu &&
|
|
10127
|
+
!this._menu.nativeElement.contains(targetElement) &&
|
|
10128
|
+
!anchor.nativeElement.contains(targetElement)) {
|
|
10129
|
+
this.close();
|
|
10130
|
+
}
|
|
10131
|
+
}
|
|
10179
10132
|
/**
|
|
10180
10133
|
* Öffnet das Dropdown / Zeigt das Menü an.
|
|
10181
10134
|
*/
|
|
@@ -10218,8 +10171,7 @@ class SacContextmenuCommon {
|
|
|
10218
10171
|
if (container === 'body') {
|
|
10219
10172
|
const renderer = this.renderer;
|
|
10220
10173
|
const dropdownMenuElement = this._menu.nativeElement;
|
|
10221
|
-
const bodyContainer = (this.bodyContainer =
|
|
10222
|
-
this.bodyContainer || renderer.createElement('div'));
|
|
10174
|
+
const bodyContainer = (this.bodyContainer = this.bodyContainer || renderer.createElement('div'));
|
|
10223
10175
|
// Override some styles to have the positioning working
|
|
10224
10176
|
renderer.setStyle(bodyContainer, 'position', 'absolute');
|
|
10225
10177
|
renderer.setStyle(dropdownMenuElement, 'position', 'static');
|
|
@@ -10257,37 +10209,30 @@ SacContextmenuCommon.ctorParameters = () => [
|
|
|
10257
10209
|
{ type: Injector }
|
|
10258
10210
|
];
|
|
10259
10211
|
SacContextmenuCommon.propDecorators = {
|
|
10260
|
-
_anchorTemplate: [{ type: ContentChild, args: [SacContextmenuAnchorCommon, { static: false },] }],
|
|
10261
10212
|
_anchor: [{ type: ViewChild, args: [SacContextmenuAnchorCommon, { static: false },] }],
|
|
10213
|
+
_anchorTemplate: [{ type: ContentChild, args: [SacContextmenuAnchorCommon, { static: false },] }],
|
|
10262
10214
|
_menu: [{ type: ViewChild, args: [SacContextMenuContrainerCommon, { static: false },] }],
|
|
10263
10215
|
buttontemplate: [{ type: Input }],
|
|
10264
10216
|
container: [{ type: Input }],
|
|
10265
10217
|
cssclass: [{ type: Input }],
|
|
10266
10218
|
isopen: [{ type: Input }],
|
|
10219
|
+
menuitems: [{ type: ContentChildren, args: [forwardRef(() => SacContextmenuItemCommon),] }],
|
|
10267
10220
|
placement: [{ type: Input }],
|
|
10268
10221
|
onClick: [{ type: HostListener, args: ['document:click', ['$event.target'],] }]
|
|
10269
10222
|
};
|
|
10270
10223
|
|
|
10271
|
-
/**
|
|
10272
|
-
* Base Context Menu Item
|
|
10273
|
-
*/
|
|
10274
|
-
class SacContextmenuItemCommon {
|
|
10275
|
-
}
|
|
10276
|
-
SacContextmenuItemCommon.decorators = [
|
|
10277
|
-
{ type: Directive }
|
|
10278
|
-
];
|
|
10279
|
-
|
|
10280
10224
|
/**
|
|
10281
10225
|
* Base Context Menu Button Item
|
|
10282
10226
|
*/
|
|
10283
10227
|
class SacContextmenuItemButtonCommon extends SacContextmenuItemCommon {
|
|
10228
|
+
// #endregion Properties
|
|
10229
|
+
// #region Constructors
|
|
10284
10230
|
/**
|
|
10285
10231
|
* Constructor
|
|
10286
|
-
* @param contextmenu Instance of Context Menü.
|
|
10287
10232
|
*/
|
|
10288
|
-
constructor(
|
|
10233
|
+
constructor() {
|
|
10289
10234
|
super();
|
|
10290
|
-
|
|
10235
|
+
// #region Properties
|
|
10291
10236
|
/**
|
|
10292
10237
|
* Menu Item ist deaktiviert
|
|
10293
10238
|
*/
|
|
@@ -10296,6 +10241,10 @@ class SacContextmenuItemButtonCommon extends SacContextmenuItemCommon {
|
|
|
10296
10241
|
* Icon Column in Menü ist deaktiviert
|
|
10297
10242
|
*/
|
|
10298
10243
|
this._isicondisabled = false;
|
|
10244
|
+
/**
|
|
10245
|
+
* Event wenn auf den Button geklickt wird
|
|
10246
|
+
*/
|
|
10247
|
+
this.clicked = new EventEmitter();
|
|
10299
10248
|
/**
|
|
10300
10249
|
* css class for button styling
|
|
10301
10250
|
*/
|
|
@@ -10305,9 +10254,17 @@ class SacContextmenuItemButtonCommon extends SacContextmenuItemCommon {
|
|
|
10305
10254
|
*/
|
|
10306
10255
|
this.iconstyle = '';
|
|
10307
10256
|
/**
|
|
10308
|
-
*
|
|
10257
|
+
* name of button. used for generate id and name
|
|
10309
10258
|
*/
|
|
10310
|
-
this.
|
|
10259
|
+
this.name = '';
|
|
10260
|
+
}
|
|
10261
|
+
// #endregion Constructors
|
|
10262
|
+
// #region Public Getters And Setters
|
|
10263
|
+
/**
|
|
10264
|
+
* Menu Item ist deaktiviert
|
|
10265
|
+
*/
|
|
10266
|
+
get isdisabled() {
|
|
10267
|
+
return this._isdisabled;
|
|
10311
10268
|
}
|
|
10312
10269
|
/**
|
|
10313
10270
|
* Menu Item ist deaktiviert
|
|
@@ -10321,10 +10278,10 @@ class SacContextmenuItemButtonCommon extends SacContextmenuItemCommon {
|
|
|
10321
10278
|
}
|
|
10322
10279
|
}
|
|
10323
10280
|
/**
|
|
10324
|
-
*
|
|
10281
|
+
* Icon Column in Menü ist deaktiviert
|
|
10325
10282
|
*/
|
|
10326
|
-
get
|
|
10327
|
-
return this.
|
|
10283
|
+
get isicondisabled() {
|
|
10284
|
+
return this._isicondisabled;
|
|
10328
10285
|
}
|
|
10329
10286
|
/**
|
|
10330
10287
|
* Icon Column in Menü ist deaktiviert
|
|
@@ -10337,19 +10294,17 @@ class SacContextmenuItemButtonCommon extends SacContextmenuItemCommon {
|
|
|
10337
10294
|
this._isicondisabled = v === 'true';
|
|
10338
10295
|
}
|
|
10339
10296
|
}
|
|
10340
|
-
|
|
10341
|
-
|
|
10342
|
-
*/
|
|
10343
|
-
get isicondisabled() {
|
|
10344
|
-
return this._isicondisabled;
|
|
10345
|
-
}
|
|
10297
|
+
// #endregion Public Getters And Setters
|
|
10298
|
+
// #region Public Methods
|
|
10346
10299
|
/**
|
|
10347
10300
|
* Die Methode wird das cklickaction Emitter aktivieren
|
|
10348
10301
|
*/
|
|
10349
10302
|
callaction(event) {
|
|
10350
10303
|
if (!this._isdisabled) {
|
|
10351
10304
|
this.clicked.emit();
|
|
10352
|
-
this.contextmenu
|
|
10305
|
+
if (this.contextmenu !== null) {
|
|
10306
|
+
this.contextmenu.close();
|
|
10307
|
+
}
|
|
10353
10308
|
}
|
|
10354
10309
|
event.stopPropagation();
|
|
10355
10310
|
}
|
|
@@ -10357,18 +10312,17 @@ class SacContextmenuItemButtonCommon extends SacContextmenuItemCommon {
|
|
|
10357
10312
|
SacContextmenuItemButtonCommon.decorators = [
|
|
10358
10313
|
{ type: Directive }
|
|
10359
10314
|
];
|
|
10360
|
-
SacContextmenuItemButtonCommon.ctorParameters = () => [
|
|
10361
|
-
{ type: SacContextmenuCommon }
|
|
10362
|
-
];
|
|
10315
|
+
SacContextmenuItemButtonCommon.ctorParameters = () => [];
|
|
10363
10316
|
SacContextmenuItemButtonCommon.propDecorators = {
|
|
10364
|
-
|
|
10317
|
+
clicked: [{ type: Output }],
|
|
10365
10318
|
cssclass: [{ type: Input }],
|
|
10319
|
+
icon: [{ type: Input }],
|
|
10366
10320
|
iconstyle: [{ type: Input }],
|
|
10367
10321
|
image: [{ type: Input }],
|
|
10368
|
-
|
|
10369
|
-
isicondisabled: [{ type: Input }],
|
|
10322
|
+
name: [{ type: Input }],
|
|
10370
10323
|
text: [{ type: Input }],
|
|
10371
|
-
|
|
10324
|
+
isdisabled: [{ type: Input }],
|
|
10325
|
+
isicondisabled: [{ type: Input }]
|
|
10372
10326
|
};
|
|
10373
10327
|
|
|
10374
10328
|
/**
|
|
@@ -10941,5 +10895,5 @@ SACCommonListboxOptionModule.decorators = [
|
|
|
10941
10895
|
* Generated bundle index. Do not edit.
|
|
10942
10896
|
*/
|
|
10943
10897
|
|
|
10944
|
-
export { ControlHeight, GridResponse, IconType, Interpolation, LanguageModel, PagerData, PagerRequest, Positioning, SACCONFIGURATION_SERVICE, SACCommonListboxOptionModule, SACFILEBROWSER_SERVICE, SACICON_SERVICE, SACLANGUAGE_SERVICE, SACLOCALISATION_SERVICE, SACVALIDATIONKEY_SERVICE, SacAbstractConfigurationService, SacAbstractFileBrowserService, SacAbstractIconService, SacAbstractLanguageService, SacAbstractLocalisationService, SacBaseDateTimeControl, SacBaseListControl, SacBaseModelControl, SacBaseSelectControl, SacButtonCommon, SacCheckboxCommon, SacConfirmButton, SacConfirmCommon, SacContextMenuContrainerCommon, SacContextmenuAnchorCommon, SacContextmenuCommon, SacContextmenuItemButtonCommon, SacContextmenuItemCommon, SacDateCommon, SacDateSelectorCommon, SacDateTimeCommon, SacDialogCommon, SacDropdownCommon, SacDropdownOptionCommon, SacDropzoneMultipleCommon, SacDropzoneSingleCommon, SacFileBrowserCommon, SacFormCommon, SacFormLayoutCommon, SacGridButtonCommon, SacGridColumnActionCommon, SacGridColumnBaseCommon, SacGridColumnCommon, SacGridCommon, SacGridImageCommon, SacInputAreaCommon, SacInputBase, SacInputCommon, SacInputCurrencyCommon, SacInputDecimalCommon, SacInputEmailCommon, SacInputIntegerCommon, SacInputPasswordCommon, SacInputSearchCommon, SacListboxCommon, SacListboxOptionCommon, SacMultilanguageInputAreaCommon, SacMultilanguageInputCommon, SacPagingCommon, SacRadiobuttonCommon, SacRadiobuttonsCommon, SacStaticFormContainerCommon, SacStaticLabelCommon, SacTabCommon, SacTabItemCommon, SacTimeCommon, SacTinyMceCommon, SacTooltipCommon,
|
|
10898
|
+
export { ControlHeight, GridResponse, IconType, Interpolation, LanguageModel, PagerData, PagerRequest, Positioning, SACCONFIGURATION_SERVICE, SACCommonListboxOptionModule, SACFILEBROWSER_SERVICE, SACICON_SERVICE, SACLANGUAGE_SERVICE, SACLOCALISATION_SERVICE, SACVALIDATIONKEY_SERVICE, SacAbstractConfigurationService, SacAbstractFileBrowserService, SacAbstractIconService, SacAbstractLanguageService, SacAbstractLocalisationService, SacBaseDateTimeControl, SacBaseListControl, SacBaseModelControl, SacBaseSelectControl, SacButtonCommon, SacCheckboxCommon, SacConfirmButton, SacConfirmCommon, SacContextMenuContrainerCommon, SacContextmenuAnchorCommon, SacContextmenuCommon, SacContextmenuItemButtonCommon, SacContextmenuItemCommon, SacDateCommon, SacDateSelectorCommon, SacDateTimeCommon, SacDialogCommon, SacDropdownCommon, SacDropdownOptionCommon, SacDropzoneMultipleCommon, SacDropzoneSingleCommon, SacFileBrowserCommon, SacFormCommon, SacFormLayoutCommon, SacGridButtonCommon, SacGridColumnActionCommon, SacGridColumnBaseCommon, SacGridColumnCommon, SacGridCommon, SacGridImageCommon, SacInputAreaCommon, SacInputBase, SacInputCommon, SacInputCurrencyCommon, SacInputDecimalCommon, SacInputEmailCommon, SacInputIntegerCommon, SacInputPasswordCommon, SacInputSearchCommon, SacListboxCommon, SacListboxOptionCommon, SacMultilanguageInputAreaCommon, SacMultilanguageInputCommon, SacPagingCommon, SacRadiobuttonCommon, SacRadiobuttonsCommon, SacStaticFormContainerCommon, SacStaticLabelCommon, SacTabCommon, SacTabItemCommon, SacTimeCommon, SacTinyMceCommon, SacTooltipCommon, SacTreeviewCommon, SacUploadBase, SacUploadFile, SacUploadMultipleCommon, SacUploadSingleCommon, SacValidationSummaryCommon, SacWizardCommon, SacWizardItemCommon, ServiceConfirmCommon, SortDescriptor, SortOrder, TooltipPosition, Validation, ValidationErrorItem, convertToBoolean, convertToNumber, isDefined, mapToObject, positionElements, positionService };
|
|
10945
10899
|
//# sourceMappingURL=simpleangularcontrols-sac-common.js.map
|