@simpleangularcontrols/sac-common 10.0.0-rc.27 → 10.0.0-rc.29

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.
Files changed (123) hide show
  1. package/bundles/simpleangularcontrols-sac-common.umd.js +729 -369
  2. package/bundles/simpleangularcontrols-sac-common.umd.js.map +1 -1
  3. package/bundles/simpleangularcontrols-sac-common.umd.min.js +1 -1
  4. package/bundles/simpleangularcontrols-sac-common.umd.min.js.map +1 -1
  5. package/common/basedatetimecontrol.d.ts +5 -0
  6. package/common/basemodelcontrol.d.ts +4 -0
  7. package/common/baseuploadcontrol.d.ts +4 -0
  8. package/controls/buttons/button.d.ts +25 -21
  9. package/controls/checkbox/checkbox.d.ts +1 -1
  10. package/controls/confirm/confirm.d.ts +19 -19
  11. package/controls/confirm/confirm.service.d.ts +10 -10
  12. package/controls/contextmenu/contextmenu.d.ts +8 -0
  13. package/controls/datetime/dateselector.d.ts +9 -1
  14. package/controls/dialog/dialog.d.ts +5 -1
  15. package/controls/form/form.d.ts +4 -4
  16. package/controls/grid/grid.d.ts +22 -18
  17. package/controls/grid/gridbutton.d.ts +23 -4
  18. package/controls/grid/gridcolumn.d.ts +5 -5
  19. package/controls/grid/gridcolumnaction.d.ts +1 -1
  20. package/controls/grid/gridcolumnbase.d.ts +21 -5
  21. package/controls/grid/model.d.ts +17 -17
  22. package/controls/grid/paging.d.ts +33 -29
  23. package/controls/input/inputdecimal.d.ts +1 -1
  24. package/controls/input/inputemail.d.ts +1 -1
  25. package/controls/input/inputinteger.d.ts +1 -1
  26. package/controls/input/inputsearch.d.ts +5 -5
  27. package/controls/list/dropdown.d.ts +3 -3
  28. package/controls/list/dropdownoptions.d.ts +1 -1
  29. package/controls/list/listbox.d.ts +1 -1
  30. package/controls/multilanguage/multilanguageinput.d.ts +2 -2
  31. package/controls/static/staticlabel.d.ts +1 -1
  32. package/controls/tabs/tab.d.ts +19 -15
  33. package/controls/tabs/tabitem.d.ts +4 -4
  34. package/controls/tinymce/tinymce.d.ts +26 -22
  35. package/controls/tinymce/tinymcedialogsettings.d.ts +9 -9
  36. package/controls/tooltip/tooltip.d.ts +8 -0
  37. package/controls/treeview/treeview.d.ts +1 -1
  38. package/controls/upload/dropzonemultiple.d.ts +4 -0
  39. package/controls/upload/dropzonesingle.d.ts +4 -0
  40. package/controls/upload/uploadmultiple.d.ts +4 -0
  41. package/controls/upload/uploadsingle.d.ts +4 -0
  42. package/controls/validation/validationsummary.d.ts +8 -4
  43. package/controls/wizard/wizard.d.ts +30 -30
  44. package/controls/wizard/wizarditem.d.ts +4 -4
  45. package/esm2015/common/basedatetimecontrol.js +6 -1
  46. package/esm2015/common/basemodelcontrol.js +6 -1
  47. package/esm2015/common/baseuploadcontrol.js +18 -5
  48. package/esm2015/controls/buttons/button.js +37 -32
  49. package/esm2015/controls/checkbox/checkbox.js +2 -2
  50. package/esm2015/controls/confirm/confirm.button.js +1 -1
  51. package/esm2015/controls/confirm/confirm.js +33 -35
  52. package/esm2015/controls/confirm/confirm.service.js +2 -2
  53. package/esm2015/controls/contextmenu/contextmenu.js +12 -1
  54. package/esm2015/controls/contextmenu/contextmenuanchor.js +1 -1
  55. package/esm2015/controls/contextmenu/contextmenucontainer.js +1 -1
  56. package/esm2015/controls/datetime/dateselector.js +41 -19
  57. package/esm2015/controls/dialog/dialog.js +22 -12
  58. package/esm2015/controls/form/form.js +3 -4
  59. package/esm2015/controls/grid/grid.js +23 -13
  60. package/esm2015/controls/grid/gridbutton.js +55 -14
  61. package/esm2015/controls/grid/gridcolumn.js +8 -8
  62. package/esm2015/controls/grid/gridcolumnaction.js +2 -2
  63. package/esm2015/controls/grid/gridcolumnbase.js +23 -7
  64. package/esm2015/controls/grid/gridimage.js +1 -1
  65. package/esm2015/controls/grid/model.js +23 -23
  66. package/esm2015/controls/grid/paging.js +48 -38
  67. package/esm2015/controls/input/inputdecimal.js +2 -2
  68. package/esm2015/controls/input/inputemail.js +2 -2
  69. package/esm2015/controls/input/inputinteger.js +2 -2
  70. package/esm2015/controls/input/inputsearch.js +8 -8
  71. package/esm2015/controls/layout/formlayout.js +6 -2
  72. package/esm2015/controls/list/buildvaluestring.js +3 -1
  73. package/esm2015/controls/list/dropdown.js +11 -2
  74. package/esm2015/controls/list/dropdownoptions.js +9 -2
  75. package/esm2015/controls/list/list.module.js +2 -2
  76. package/esm2015/controls/list/listbox.js +4 -4
  77. package/esm2015/controls/multilanguage/multilanguageinput.js +2 -2
  78. package/esm2015/controls/static/staticlabel.js +6 -2
  79. package/esm2015/controls/tabs/tab.js +38 -28
  80. package/esm2015/controls/tabs/tabitem.js +5 -3
  81. package/esm2015/controls/tinymce/tinymce.js +33 -32
  82. package/esm2015/controls/tinymce/tinymcedialogsettings.js +3 -1
  83. package/esm2015/controls/tinymce/tinymcedialogsettingsmeta.js +1 -4
  84. package/esm2015/controls/tinymce/tinymceinstance.js +1 -1
  85. package/esm2015/controls/tooltip/tooltip.js +12 -1
  86. package/esm2015/controls/treeview/treeview.js +9 -9
  87. package/esm2015/controls/upload/dropzonemultiple.js +10 -2
  88. package/esm2015/controls/upload/dropzonesingle.js +10 -2
  89. package/esm2015/controls/upload/uploadmultiple.js +10 -2
  90. package/esm2015/controls/upload/uploadsingle.js +10 -2
  91. package/esm2015/controls/validation/validationsummary.js +12 -6
  92. package/esm2015/controls/wizard/wizard.js +55 -49
  93. package/esm2015/controls/wizard/wizarditem.js +8 -6
  94. package/esm2015/interfaces/ISacConfigurationService.js +1 -1
  95. package/esm2015/interfaces/ISacIconService.js +1 -1
  96. package/esm2015/public_api.js +4 -1
  97. package/esm2015/services/sac-configuration.service.js +15 -5
  98. package/esm2015/services/sac-filebrowser.service.js +68 -62
  99. package/esm2015/services/sac-icon.service.js +31 -1
  100. package/esm2015/services/sac-language.service.js +6 -2
  101. package/esm2015/utilities/guid.js +4 -4
  102. package/esm2015/utilities/popuphelper.js +2 -2
  103. package/esm2015/utilities/testingattribute.pipe.js +39 -0
  104. package/esm2015/utilities/testingattribute.pipe.ngfactory.js +7 -0
  105. package/esm2015/utilities/utilities.module.js +12 -0
  106. package/esm2015/utilities/utilities.module.ngfactory.js +7 -0
  107. package/fesm2015/simpleangularcontrols-sac-common.js +721 -390
  108. package/fesm2015/simpleangularcontrols-sac-common.js.map +1 -1
  109. package/interfaces/ISacConfigurationService.d.ts +4 -0
  110. package/interfaces/ISacIconService.d.ts +20 -0
  111. package/package.json +1 -1
  112. package/public_api.d.ts +2 -0
  113. package/services/sac-configuration.service.d.ts +13 -5
  114. package/services/sac-filebrowser.service.d.ts +59 -59
  115. package/services/sac-icon.service.d.ts +40 -0
  116. package/services/sac-language.service.d.ts +2 -2
  117. package/simpleangularcontrols-sac-common-10.0.0-rc.29.tgz +0 -0
  118. package/simpleangularcontrols-sac-common.metadata.json +1 -1
  119. package/utilities/testingattribute.pipe.d.ts +12 -0
  120. package/utilities/testingattribute.pipe.ngfactory.d.ts +1 -0
  121. package/utilities/utilities.module.d.ts +2 -0
  122. package/utilities/utilities.module.ngfactory.d.ts +3 -0
  123. package/simpleangularcontrols-sac-common-10.0.0-rc.27.tgz +0 -0
@@ -1,8 +1,9 @@
1
- import { EventEmitter, Directive, Input, Output, ɵɵdefineInjectable, Injectable, InjectionToken, ɵɵinject, Inject, Host, Injector, ChangeDetectorRef, ViewChild, HostListener, Renderer2, ElementRef, ViewChildren, ContentChild, TemplateRef, NgZone, ContentChildren, NgModule } from '@angular/core';
1
+ import { EventEmitter, Directive, Output, Input, InjectionToken, ɵɵdefineInjectable, Injectable, ɵɵinject, Inject, Host, Injector, ChangeDetectorRef, ViewChild, HostListener, Renderer2, ElementRef, ViewChildren, ContentChild, TemplateRef, NgZone, ContentChildren, Pipe, NgModule } from '@angular/core';
2
2
  import { HttpClient } from '@angular/common/http';
3
3
  import { Observable, of } from 'rxjs';
4
4
  import { NgControl, FormControlName, FormGroupDirective, Validators, FormGroup, NgForm } from '@angular/forms';
5
5
  import moment_, { ISO_8601 } from 'moment';
6
+ import { IMaskDirective } from 'angular-imask';
6
7
  import { MaskedRange } from 'imask';
7
8
  import { UploadxService } from 'ngx-uploadx';
8
9
  import { DOCUMENT } from '@angular/common';
@@ -22,33 +23,46 @@ class SacButtonCommon {
22
23
  */
23
24
  this._role = 'default';
24
25
  /**
25
- * Input Property für Icon Style Klasse; default Wert - ''
26
- */
27
- this.icon = '';
28
- /**
29
- * Input Property für Name; default Wert - ''
30
- */
31
- this.name = '';
32
- /**
33
- * Input Property für Text des Buttons; default Wert - ''
26
+ * Das boolean property ist benutzt für Aktivation des Spinner des Button. Default ist false.
34
27
  */
35
- this.text = '';
28
+ this._isloadingvalue = false;
36
29
  /**
37
30
  * Output Event Emitter
38
31
  */
39
32
  this.clicked = new EventEmitter();
40
33
  /**
41
- * Das boolean property ist benutzt für Aktivation des Spinner des Button. Default ist false.
34
+ * Identifier used for the E2E data attribute.
42
35
  */
43
- this._isloadingvalue = false;
36
+ this.e2eidentifier = null;
44
37
  /**
45
38
  * Boolean Property für Error; default Wert - false
46
39
  */
47
40
  this.hasError = false;
41
+ /**
42
+ * Input Property für Icon Style Klasse; default Wert - ''
43
+ */
44
+ this.icon = '';
45
+ /**
46
+ * Input Property für Name; default Wert - ''
47
+ */
48
+ this.name = '';
49
+ /**
50
+ * Input Property für Text des Buttons; default Wert - ''
51
+ */
52
+ this.text = '';
48
53
  // #endregion Public Methods
49
54
  }
50
55
  // #endregion Properties
51
56
  // #region Public Getters And Setters
57
+ /**
58
+ * Getter Methode. Ergibt boolean Wert. Definiert, ob das Button desabled ist.
59
+ */
60
+ get _isdisabled() {
61
+ return this._isdisabledvalue;
62
+ }
63
+ get isdisabled() {
64
+ return this._isdisabledvalue;
65
+ }
52
66
  /**
53
67
  * Deaktivieren von Buttons
54
68
  * @param v Deaktiviert den Button
@@ -62,6 +76,9 @@ class SacButtonCommon {
62
76
  this._isdisabledvalue = v === 'true';
63
77
  }
64
78
  }
79
+ get isloading() {
80
+ return this._isloadingvalue;
81
+ }
65
82
  /**
66
83
  * Das Input property. Definiert der Status des islaoding property. Es ist benutzt für Aktivation des Spinner des Button.
67
84
  */
@@ -73,6 +90,12 @@ class SacButtonCommon {
73
90
  this._isloadingvalue = v === 'true';
74
91
  }
75
92
  }
93
+ /**
94
+ * Die Methode returns die definierte Style-Rolle des Buttons
95
+ */
96
+ get role() {
97
+ return this._role;
98
+ }
76
99
  /**
77
100
  * Definiert den Style des Buttons
78
101
  * @param v Definiert den Style des Buttons.
@@ -105,24 +128,6 @@ class SacButtonCommon {
105
128
  throw new Error('Invalid role " + v + " for button.');
106
129
  }
107
130
  }
108
- /**
109
- * Getter Methode. Ergibt boolean Wert. Definiert, ob das Button desabled ist.
110
- */
111
- get _isdisabled() {
112
- return this._isdisabledvalue;
113
- }
114
- get isdisabled() {
115
- return this._isdisabledvalue;
116
- }
117
- get isloading() {
118
- return this._isloadingvalue;
119
- }
120
- /**
121
- * Die Methode returns die definierte Style-Rolle des Buttons
122
- */
123
- get role() {
124
- return this._role;
125
- }
126
131
  // #endregion Public Getters And Setters
127
132
  // #region Public Methods
128
133
  /**
@@ -138,10 +143,11 @@ SacButtonCommon.decorators = [
138
143
  { type: Directive }
139
144
  ];
140
145
  SacButtonCommon.propDecorators = {
146
+ clicked: [{ type: Output }],
147
+ e2eidentifier: [{ type: Input }],
141
148
  icon: [{ type: Input }],
142
149
  name: [{ type: Input }],
143
150
  text: [{ type: Input }],
144
- clicked: [{ type: Output }],
145
151
  isdisabled: [{ type: Input }],
146
152
  isloading: [{ type: Input }],
147
153
  role: [{ type: Input }]
@@ -171,6 +177,7 @@ var ControlHeight;
171
177
  */
172
178
  class SacFormLayoutCommon {
173
179
  constructor() {
180
+ // #region Properties
174
181
  /**
175
182
  * Defines the default display for a checkbox. You can choose between a checkbox and a switch. If no style is defined, the global style or the style on the control is used.
176
183
  */
@@ -219,7 +226,10 @@ class SacFormLayoutCommon {
219
226
  * Detach label text and tooltip from each other in Label so that label and tooltip can be aligned differently. This is in Bootstrap 3 not supported!
220
227
  */
221
228
  this.splitlabelandhelptext = null;
229
+ // #endregion Public Getters And Setters
222
230
  }
231
+ // #endregion Properties
232
+ // #region Public Getters And Setters
223
233
  /**
224
234
  * Returns whether the inline error messages for the form are active.
225
235
  */
@@ -246,6 +256,13 @@ SacFormLayoutCommon.propDecorators = {
246
256
  splitlabelandhelptext: [{ type: Input }]
247
257
  };
248
258
 
259
+ // #region Variables
260
+ /**
261
+ * injection token for component configuration service
262
+ */
263
+ const SACCONFIGURATION_SERVICE = new InjectionToken('SacConfigurationService');
264
+ // #endregion Variables
265
+ // #region Exported Classes
249
266
  /**
250
267
  * abstract class for configuration settings providing in components
251
268
  */
@@ -259,6 +276,7 @@ SacAbstractConfigurationService.decorators = [
259
276
  * default configuration service for components
260
277
  * */
261
278
  class SacDefaultConfigurationService extends SacAbstractConfigurationService {
279
+ // #region Public Getters And Setters
262
280
  /**
263
281
  * @inheritdoc
264
282
  */
@@ -277,6 +295,12 @@ class SacDefaultConfigurationService extends SacAbstractConfigurationService {
277
295
  get CurrencyText() {
278
296
  return 'CHF';
279
297
  }
298
+ /**
299
+ * @inheritdoc
300
+ */
301
+ get EnableE2EAttributes() {
302
+ return false;
303
+ }
280
304
  /**
281
305
  * @inheritdoc
282
306
  */
@@ -342,10 +366,6 @@ SacDefaultConfigurationService.ɵprov = ɵɵdefineInjectable({ factory: function
342
366
  SacDefaultConfigurationService.decorators = [
343
367
  { type: Injectable, args: [{ providedIn: 'root' },] }
344
368
  ];
345
- /**
346
- * injection token for component configuration service
347
- */
348
- const SACCONFIGURATION_SERVICE = new InjectionToken('SacConfigurationService');
349
369
 
350
370
  /**
351
371
  * Klasse für API Request zum löschen eines Files
@@ -438,10 +458,13 @@ class BrowserNodeRequest {
438
458
  }
439
459
  }
440
460
 
461
+ // #region Variables
441
462
  /**
442
463
  * Injection Token für Language Service
443
464
  */
444
465
  const SACFILEBROWSER_SERVICE = new InjectionToken('FileBrowserService');
466
+ // #endregion Variables
467
+ // #region Exported Classes
445
468
  /**
446
469
  * Abstrakte Implementierung des File Service für die Browser Component
447
470
  */
@@ -457,6 +480,7 @@ SacAbstractFileBrowserService.decorators = [
457
480
  * Standardimplementierung des Backend Service für die File Browser Component
458
481
  */
459
482
  class SacDefaultFileBrowserService extends SacAbstractFileBrowserService {
483
+ // #region Constructors
460
484
  /**
461
485
  * Konstruktor
462
486
  * @param httpclient HTTP Client Service
@@ -465,18 +489,20 @@ class SacDefaultFileBrowserService extends SacAbstractFileBrowserService {
465
489
  super();
466
490
  this.httpclient = httpclient;
467
491
  }
492
+ // #endregion Constructors
493
+ // #region Public Methods
468
494
  /**
469
- * Gibt einen Node zurück
495
+ * Löscht eine Datei
470
496
  * @param apiurl URL zu API Service
471
- * @param path Pfad des Node welcher angefordert wird
472
- * @param allowedextensions Erlaubte Extensions die angezeigt werden dürfen
497
+ * @param path Pfad des Files welches gelöscht werden soll
498
+ * @param allowedextensions Erlaubte Extensions für Files
473
499
  */
474
- GetNode(apiurl, path, allowedextensions) {
475
- const url = `${apiurl}/getnodes`;
500
+ DeleteFile(apiurl, path, allowedextensions) {
501
+ const url = `${apiurl}/deletefile`;
476
502
  if (!path) {
477
503
  path = '';
478
504
  }
479
- const request = new BrowserNodeRequest({
505
+ const request = new BrowserFileDeleteRequest({
480
506
  Path: path,
481
507
  AllowedTypes: allowedextensions,
482
508
  });
@@ -485,113 +511,115 @@ class SacDefaultFileBrowserService extends SacAbstractFileBrowserService {
485
511
  });
486
512
  }
487
513
  /**
488
- * Speichert einen Node
514
+ * Löscht einen Node
489
515
  * @param apiurl URL zu API Service
490
- * @param path Pfad in welchem der Node gespeichert werden soll
491
- * @param newFoldername Name des neuen Nodes
516
+ * @param path Pfad des Nodes welcher gelöscht werden soll
492
517
  */
493
- SaveNode(apiurl, path, newFoldername) {
494
- const url = `${apiurl}/newnode`;
518
+ DeleteNode(apiurl, path) {
519
+ const url = `${apiurl}/deletenode`;
495
520
  if (!path) {
496
521
  path = '';
497
522
  }
498
- const request = new BrowserNodeNewRequest({
523
+ const request = new BrowserNodeDeleteRequest({
499
524
  Path: path,
500
- NewFoldername: newFoldername,
501
525
  });
502
526
  return this.httpclient.post(url, request, {
503
527
  withCredentials: true,
504
528
  });
505
529
  }
506
530
  /**
507
- * Rename eines Nodes
531
+ * Methode welche die Dateien eines Nodes ausliest
508
532
  * @param apiurl URL zu API Service
509
- * @param path Pfad des Nodes welcher umbenannt werden soll
510
- * @param newFoldername Neuer Name des Nodes
533
+ * @param path Pfad des Nodes in welchem die Files gelesen werden sollen
534
+ * @param allowedextensions Erlaubte File Extensions
511
535
  */
512
- RenameNode(apiurl, path, newFoldername) {
513
- const url = `${apiurl}/renamenode`;
536
+ GetFiles(apiurl, path, allowedextensions) {
537
+ const url = `${apiurl}/getfiles`;
514
538
  if (!path) {
515
539
  path = '';
516
540
  }
517
- const request = new BrowserNodeRenameRequest({
541
+ const request = new BrowserNodeRequest({
518
542
  Path: path,
519
- NewFoldername: newFoldername,
543
+ AllowedTypes: allowedextensions,
520
544
  });
521
- return this.httpclient.put(url, request, {
545
+ return this.httpclient.post(url, request, {
522
546
  withCredentials: true,
523
547
  });
524
548
  }
525
549
  /**
526
- * Löscht einen Node
550
+ * Gibt einen Node zurück
527
551
  * @param apiurl URL zu API Service
528
- * @param path Pfad des Nodes welcher gelöscht werden soll
552
+ * @param path Pfad des Node welcher angefordert wird
553
+ * @param allowedextensions Erlaubte Extensions die angezeigt werden dürfen
529
554
  */
530
- DeleteNode(apiurl, path) {
531
- const url = `${apiurl}/deletenode`;
555
+ GetNode(apiurl, path, allowedextensions) {
556
+ const url = `${apiurl}/getnodes`;
532
557
  if (!path) {
533
558
  path = '';
534
559
  }
535
- const request = new BrowserNodeDeleteRequest({
560
+ const request = new BrowserNodeRequest({
536
561
  Path: path,
562
+ AllowedTypes: allowedextensions,
537
563
  });
538
564
  return this.httpclient.post(url, request, {
539
565
  withCredentials: true,
540
566
  });
541
567
  }
542
568
  /**
543
- * Methode welche die Dateien eines Nodes ausliest
569
+ * Methode welche eine Datei umbenannt
544
570
  * @param apiurl URL zu API Service
545
- * @param path Pfad des Nodes in welchem die Files gelesen werden sollen
546
- * @param allowedextensions Erlaubte File Extensions
571
+ * @param path Pfad zum File welches umbenannt werden soll
572
+ * @param newFilename Neuer Dateiname
573
+ * @param allowedextensions Erlaubte Extension für Files
547
574
  */
548
- GetFiles(apiurl, path, allowedextensions) {
549
- const url = `${apiurl}/getfiles`;
575
+ RenameFile(apiurl, path, newFilename, allowedextensions) {
576
+ const url = `${apiurl}/renamefile`;
550
577
  if (!path) {
551
578
  path = '';
552
579
  }
553
- const request = new BrowserNodeRequest({
580
+ const request = new BrowserFileRenameRequest({
554
581
  Path: path,
582
+ NewFilename: newFilename,
555
583
  AllowedTypes: allowedextensions,
556
584
  });
557
- return this.httpclient.post(url, request, {
585
+ return this.httpclient.put(url, request, {
558
586
  withCredentials: true,
559
587
  });
560
588
  }
561
589
  /**
562
- * Speichert eine Hochgeladene Datei in der Struktur
590
+ * Rename eines Nodes
563
591
  * @param apiurl URL zu API Service
564
- * @param path Pfad in welchem das neue File gespeichert werden soll
565
- * @param id ID des Uploads
566
- * @param allowedextensions Erlaubte Extensions für den Upload
592
+ * @param path Pfad des Nodes welcher umbenannt werden soll
593
+ * @param newFoldername Neuer Name des Nodes
567
594
  */
568
- SaveFile(apiurl, path, id, allowedextensions) {
569
- const url = `${apiurl}/uploadfile`;
595
+ RenameNode(apiurl, path, newFoldername) {
596
+ const url = `${apiurl}/renamenode`;
570
597
  if (!path) {
571
598
  path = '';
572
599
  }
573
- const request = new BrowserFileSaveRequest({
600
+ const request = new BrowserNodeRenameRequest({
574
601
  Path: path,
575
- UploadId: id,
576
- AllowedTypes: allowedextensions,
602
+ NewFoldername: newFoldername,
577
603
  });
578
- return this.httpclient.post(url, request, {
604
+ return this.httpclient.put(url, request, {
579
605
  withCredentials: true,
580
606
  });
581
607
  }
582
608
  /**
583
- * Löscht eine Datei
609
+ * Speichert eine Hochgeladene Datei in der Struktur
584
610
  * @param apiurl URL zu API Service
585
- * @param path Pfad des Files welches gelöscht werden soll
586
- * @param allowedextensions Erlaubte Extensions für Files
611
+ * @param path Pfad in welchem das neue File gespeichert werden soll
612
+ * @param id ID des Uploads
613
+ * @param allowedextensions Erlaubte Extensions für den Upload
587
614
  */
588
- DeleteFile(apiurl, path, allowedextensions) {
589
- const url = `${apiurl}/deletefile`;
615
+ SaveFile(apiurl, path, id, allowedextensions) {
616
+ const url = `${apiurl}/uploadfile`;
590
617
  if (!path) {
591
618
  path = '';
592
619
  }
593
- const request = new BrowserFileDeleteRequest({
620
+ const request = new BrowserFileSaveRequest({
594
621
  Path: path,
622
+ UploadId: id,
595
623
  AllowedTypes: allowedextensions,
596
624
  });
597
625
  return this.httpclient.post(url, request, {
@@ -599,23 +627,21 @@ class SacDefaultFileBrowserService extends SacAbstractFileBrowserService {
599
627
  });
600
628
  }
601
629
  /**
602
- * Methode welche eine Datei umbenannt
630
+ * Speichert einen Node
603
631
  * @param apiurl URL zu API Service
604
- * @param path Pfad zum File welches umbenannt werden soll
605
- * @param newFilename Neuer Dateiname
606
- * @param allowedextensions Erlaubte Extension für Files
632
+ * @param path Pfad in welchem der Node gespeichert werden soll
633
+ * @param newFoldername Name des neuen Nodes
607
634
  */
608
- RenameFile(apiurl, path, newFilename, allowedextensions) {
609
- const url = `${apiurl}/renamefile`;
635
+ SaveNode(apiurl, path, newFoldername) {
636
+ const url = `${apiurl}/newnode`;
610
637
  if (!path) {
611
638
  path = '';
612
639
  }
613
- const request = new BrowserFileRenameRequest({
640
+ const request = new BrowserNodeNewRequest({
614
641
  Path: path,
615
- NewFilename: newFilename,
616
- AllowedTypes: allowedextensions,
642
+ NewFoldername: newFoldername,
617
643
  });
618
- return this.httpclient.put(url, request, {
644
+ return this.httpclient.post(url, request, {
619
645
  withCredentials: true,
620
646
  });
621
647
  }
@@ -735,6 +761,36 @@ class SacDefaultIconService extends SacAbstractIconService {
735
761
  get GenericHelptextIcon() {
736
762
  return 'fa fa-info-circle';
737
763
  }
764
+ /**
765
+ * @inheritdoc
766
+ */
767
+ get GridButtonDefaultDeleteIcon() {
768
+ return 'fa-trash';
769
+ }
770
+ /**
771
+ * @inheritdoc
772
+ */
773
+ get GridButtonDefaultDeleteIconSet() {
774
+ return 'fa';
775
+ }
776
+ /**
777
+ * @inheritdoc
778
+ */
779
+ get GridButtonDefaultEditIcon() {
780
+ return 'fa-pen';
781
+ }
782
+ /**
783
+ * @inheritdoc
784
+ */
785
+ get GridButtonDefaultEditIconSet() {
786
+ return 'fa';
787
+ }
788
+ /**
789
+ * @inheritdoc
790
+ */
791
+ get GridButtonDisabledIconSuffix() {
792
+ return ' disabled';
793
+ }
738
794
  /**
739
795
  * @inheritdoc
740
796
  */
@@ -840,10 +896,13 @@ var IconType;
840
896
  IconType[IconType["CssSprite"] = 2] = "CssSprite";
841
897
  })(IconType || (IconType = {}));
842
898
 
899
+ // #region Variables
843
900
  /**
844
901
  * injection token for language service
845
902
  */
846
903
  const SACLANGUAGE_SERVICE = new InjectionToken('SacLanguageService');
904
+ // #endregion Variables
905
+ // #region Exported Classes
847
906
  /**
848
907
  * abstract class for languages provides in components
849
908
  */
@@ -857,6 +916,7 @@ SacAbstractLanguageService.decorators = [
857
916
  * default service for languages
858
917
  * */
859
918
  class SacDefaultLanguageService extends SacAbstractLanguageService {
919
+ // #region Public Methods
860
920
  /**
861
921
  * @inheritdoc
862
922
  */
@@ -1469,10 +1529,10 @@ function mapToObject(map) {
1469
1529
  return obj;
1470
1530
  }
1471
1531
 
1472
- // #region Functions
1473
1532
  /**
1474
1533
  * create a guid with crypto library if availabe and a fallback to Math.Random implementation
1475
1534
  */
1535
+ // #region Exported Functions
1476
1536
  function createGuid() {
1477
1537
  if (typeof crypto !== undefined && crypto['randomUUID'] !== undefined) {
1478
1538
  // return guid without hyphen
@@ -1480,12 +1540,12 @@ function createGuid() {
1480
1540
  }
1481
1541
  else {
1482
1542
  return 'xxxxxxxxxxxx4xxxyxxxxxxxxxxxxxxx'.replace(/[xy]/g, function (c) {
1483
- var r = (Math.random() * 16) | 0, v = c == 'x' ? r : (r & 0x3) | 0x8;
1543
+ const r = (Math.random() * 16) | 0, v = c === 'x' ? r : (r & 0x3) | 0x8;
1484
1544
  return v.toString(16);
1485
1545
  });
1486
1546
  }
1487
1547
  }
1488
- // #endregion Functions
1548
+ // #endregion Exported Functions
1489
1549
 
1490
1550
  /**
1491
1551
  * Abstract Klasse für SacBaseModelControl. Implements ControlValueAccessor, Validator, OnInit
@@ -1545,6 +1605,10 @@ class SacBaseModelControl {
1545
1605
  * Deaktiviert das Label im Template
1546
1606
  */
1547
1607
  this.disablelabel = false;
1608
+ /**
1609
+ * Identifier used for the E2E data attribute.
1610
+ */
1611
+ this.e2eidentifier = null;
1548
1612
  /**
1549
1613
  * Text to support the user during input.
1550
1614
  */
@@ -1995,6 +2059,7 @@ SacBaseModelControl.propDecorators = {
1995
2059
  componentHeight: [{ type: Input }],
1996
2060
  disabled: [{ type: Input }],
1997
2061
  disablelabel: [{ type: Input }],
2062
+ e2eidentifier: [{ type: Input }],
1998
2063
  helptext: [{ type: Input }],
1999
2064
  helptextmode: [{ type: Input }],
2000
2065
  inlineError: [{ type: Input }],
@@ -2854,12 +2919,15 @@ SacRadiobuttonCommon.propDecorators = {
2854
2919
  * Base Komponente für Dialog
2855
2920
  */
2856
2921
  class SacDialogCommon {
2922
+ // #endregion Properties
2923
+ // #region Constructors
2857
2924
  /**
2858
2925
  * Konstruktor
2859
2926
  * Inject des Formulars
2860
2927
  */
2861
2928
  constructor(cdRef) {
2862
2929
  this.cdRef = cdRef;
2930
+ // #region Properties
2863
2931
  this.hasSetBodyTag = false;
2864
2932
  /**
2865
2933
  * Boolean Property definiert ob das Dialog angezeigt wird
@@ -2882,19 +2950,25 @@ class SacDialogCommon {
2882
2950
  * Steuert ob im Header des Dialogs ein Button angezeigt wird.
2883
2951
  */
2884
2952
  this.closebutton = true;
2953
+ /**
2954
+ * Identifier used for the E2E data attribute.
2955
+ */
2956
+ this.e2eidentifier = null;
2885
2957
  /**
2886
2958
  * Output Emitter. Wird aufgerufen, wenn das Wert des _show property geändert ist - damait das Dialog geöfnet/geschlossen wird.
2887
2959
  */
2888
2960
  this.isvisibleChange = new EventEmitter();
2889
2961
  /**
2890
- * Input Property. Erhält den Namen des Dialog - benutzt für das ID. Default Value: ''
2962
+ * name of control
2891
2963
  */
2892
- this.name = '';
2964
+ this.name = createGuid();
2893
2965
  /**
2894
2966
  * Input Property. Erhält den Title des Dialog. Default Value: 'Dialog'.
2895
2967
  */
2896
2968
  this.title = 'Dialog';
2897
2969
  }
2970
+ // #endregion Constructors
2971
+ // #region Public Getters And Setters
2898
2972
  /**
2899
2973
  * Implementation als Setter, da mit ngIf das Element bei Unsichtbarkeit UNDEFINED ist.
2900
2974
  */
@@ -2911,15 +2985,11 @@ class SacDialogCommon {
2911
2985
  * Setter. Erhält das boolen Wert des _show property
2912
2986
  */
2913
2987
  set isvisible(v) {
2914
- if (v &&
2915
- !this.hasSetBodyTag &&
2916
- !document.body.classList.contains('modal-open')) {
2988
+ if (v && !this.hasSetBodyTag && !document.body.classList.contains('modal-open')) {
2917
2989
  document.body.classList.add('modal-open');
2918
2990
  this.hasSetBodyTag = true;
2919
2991
  }
2920
- if (!v &&
2921
- this.hasSetBodyTag &&
2922
- document.body.classList.contains('modal-open')) {
2992
+ if (!v && this.hasSetBodyTag && document.body.classList.contains('modal-open')) {
2923
2993
  document.body.classList.remove('modal-open');
2924
2994
  this.hasSetBodyTag = false;
2925
2995
  }
@@ -2934,12 +3004,16 @@ class SacDialogCommon {
2934
3004
  set size(v) {
2935
3005
  this._size = v;
2936
3006
  }
3007
+ // #endregion Public Getters And Setters
3008
+ // #region Protected Getters And Setters
2937
3009
  /**
2938
3010
  * Getter for ChangeDetector.
2939
3011
  */
2940
3012
  get ChangeDetector() {
2941
3013
  return this.cdRef;
2942
3014
  }
3015
+ // #endregion Protected Getters And Setters
3016
+ // #region Public Methods
2943
3017
  /**
2944
3018
  * Die Methode setz den Wert des _show property auf false
2945
3019
  */
@@ -2986,8 +3060,7 @@ class SacDialogCommon {
2986
3060
  */
2987
3061
  show() {
2988
3062
  this._show = true;
2989
- if (!this.hasSetBodyTag &&
2990
- !document.body.classList.contains('modal-open')) {
3063
+ if (!this.hasSetBodyTag && !document.body.classList.contains('modal-open')) {
2991
3064
  document.body.classList.add('modal-open');
2992
3065
  this.hasSetBodyTag = true;
2993
3066
  }
@@ -3004,6 +3077,7 @@ SacDialogCommon.propDecorators = {
3004
3077
  allowesc: [{ type: Input }],
3005
3078
  backdrop: [{ type: Input }],
3006
3079
  closebutton: [{ type: Input }],
3080
+ e2eidentifier: [{ type: Input }],
3007
3081
  isvisibleChange: [{ type: Output }],
3008
3082
  name: [{ type: Input }],
3009
3083
  title: [{ type: Input }],
@@ -3014,8 +3088,7 @@ SacDialogCommon.propDecorators = {
3014
3088
  onKeydownHandler: [{ type: HostListener, args: ['document:keydown', ['$event'],] }]
3015
3089
  };
3016
3090
 
3017
- // #endregion Type aliases
3018
- // #region Classes
3091
+ // #region Exported Classes
3019
3092
  /**
3020
3093
  * Base Komponente für SacFormular
3021
3094
  */
@@ -3120,7 +3193,7 @@ SacFormCommon.ctorParameters = () => [
3120
3193
  SacFormCommon.propDecorators = {
3121
3194
  updateon: [{ type: Input }]
3122
3195
  };
3123
- // #endregion Classes
3196
+ // #endregion Exported Types
3124
3197
 
3125
3198
  /**
3126
3199
  * Abstract Klasse für SacBaseListControl. Extendes SacBaseModelControl
@@ -3204,6 +3277,7 @@ SacBaseSelectControl.propDecorators = {
3204
3277
  * @param id ID
3205
3278
  * @param value Wert der an das Element gebunden werden soll
3206
3279
  */
3280
+ // #region Exported Functions
3207
3281
  function _buildValueString(id, value) {
3208
3282
  // Wenn ID null ist Object zurückgeben
3209
3283
  if (id == null) {
@@ -3216,11 +3290,14 @@ function _buildValueString(id, value) {
3216
3290
  // String als ID
3217
3291
  return `${id}: ${value}`.slice(0, 50);
3218
3292
  }
3293
+ // #endregion Exported Functions
3219
3294
 
3220
3295
  /**
3221
3296
  * Base Dropdown Komponente
3222
3297
  */
3223
3298
  class SacDropdownCommon extends SacBaseSelectControl {
3299
+ // #endregion Properties
3300
+ // #region Constructors
3224
3301
  /**
3225
3302
  * Constructor
3226
3303
  * @param formlayout SacFormLayoutCommon to define scoped layout settings
@@ -3232,6 +3309,7 @@ class SacDropdownCommon extends SacBaseSelectControl {
3232
3309
  super(formlayout, injector);
3233
3310
  this.renderer = renderer;
3234
3311
  this.elementRef = elementRef;
3312
+ // #region Properties
3235
3313
  /**
3236
3314
  * compareWith-Funktion
3237
3315
  */
@@ -3261,6 +3339,8 @@ class SacDropdownCommon extends SacBaseSelectControl {
3261
3339
  */
3262
3340
  this.validationmessagesummaryrequired = this.validationKeyService.ValidationErrorSummaryRequired;
3263
3341
  }
3342
+ // #endregion Constructors
3343
+ // #region Public Getters And Setters
3264
3344
  /**
3265
3345
  * compareWith-Funktion
3266
3346
  */
@@ -3270,6 +3350,8 @@ class SacDropdownCommon extends SacBaseSelectControl {
3270
3350
  }
3271
3351
  this._compareWith = fn;
3272
3352
  }
3353
+ // #endregion Public Getters And Setters
3354
+ // #region Public Methods
3273
3355
  /**
3274
3356
  * Registriert das OptionID-Counter als String
3275
3357
  */
@@ -3320,6 +3402,8 @@ class SacDropdownCommon extends SacBaseSelectControl {
3320
3402
  this.setSelectedValue(value);
3321
3403
  super.writeValue(value);
3322
3404
  }
3405
+ // #endregion Public Methods
3406
+ // #region Private Methods
3323
3407
  /**
3324
3408
  * ID extrahieren
3325
3409
  * @param valueString String bei welchem die ID Extrahiert werden soll
@@ -3388,6 +3472,8 @@ SacDropdownCommon.propDecorators = {
3388
3472
  * SacDropdownOption-Klasse
3389
3473
  */
3390
3474
  class SacDropdownOptionCommon {
3475
+ // #endregion Properties
3476
+ // #region Constructors
3391
3477
  /**
3392
3478
  * Konstruktor
3393
3479
  * @param _element Referenz auf HTML Element
@@ -3398,6 +3484,7 @@ class SacDropdownOptionCommon {
3398
3484
  this._element = _element;
3399
3485
  this._renderer = _renderer;
3400
3486
  this._dropdown = _dropdown;
3487
+ // #region Properties
3401
3488
  /**
3402
3489
  * ID-String
3403
3490
  */
@@ -3406,6 +3493,8 @@ class SacDropdownOptionCommon {
3406
3493
  this.id = this._dropdown.registerOption();
3407
3494
  }
3408
3495
  }
3496
+ // #endregion Constructors
3497
+ // #region Public Getters And Setters
3409
3498
  /**
3410
3499
  * Option ngValue
3411
3500
  */
@@ -3424,6 +3513,8 @@ class SacDropdownOptionCommon {
3424
3513
  set value(value) {
3425
3514
  this._setElementValue(value);
3426
3515
  }
3516
+ // #endregion Public Getters And Setters
3517
+ // #region Public Methods
3427
3518
  /**
3428
3519
  * Den Wert vom Option-Element einstellen
3429
3520
  * @param value Wert
@@ -3485,7 +3576,7 @@ class SacListboxOptionCommon {
3485
3576
  /**
3486
3577
  * NgValue des Controls. Wird für die Mehrfachauswahl benötigt
3487
3578
  */
3488
- set ngvalue(value) {
3579
+ set ngValue(value) {
3489
3580
  if (this._listbox) {
3490
3581
  this._value = value;
3491
3582
  }
@@ -3528,7 +3619,7 @@ SacListboxOptionCommon.ctorParameters = () => [
3528
3619
  { type: SacListboxCommon }
3529
3620
  ];
3530
3621
  SacListboxOptionCommon.propDecorators = {
3531
- ngvalue: [{ type: Input }],
3622
+ ngValue: [{ type: Input }],
3532
3623
  value: [{ type: Input }]
3533
3624
  };
3534
3625
  /**
@@ -3642,41 +3733,40 @@ class HTMLCollection {
3642
3733
  */
3643
3734
  class SacTabCommon {
3644
3735
  constructor() {
3736
+ // #region Properties
3645
3737
  /**
3646
- * control name
3738
+ * Identifier used for the E2E data attribute.
3647
3739
  */
3648
- this.name = '';
3740
+ this.e2eidentifier = null;
3649
3741
  /**
3650
- * dispose tabs when they are hidden
3742
+ * name of control
3651
3743
  */
3652
- this.unloadtabitemswhenhidden = null;
3744
+ this.name = createGuid();
3653
3745
  /**
3654
3746
  * Event when new tab is selected
3655
3747
  */
3656
3748
  this.tabselected = new EventEmitter();
3749
+ /**
3750
+ * dispose tabs when they are hidden
3751
+ */
3752
+ this.unloadtabitemswhenhidden = null;
3753
+ // #endregion Private Methods
3657
3754
  }
3658
- // #region Control initialisieren
3755
+ // #endregion Properties
3756
+ // #region Public Methods
3659
3757
  /**
3660
- * AfterContentInit Event
3758
+ * get id of tab button
3759
+ * @param tabitemid id of tab
3661
3760
  */
3662
- ngAfterContentInit() {
3663
- this.initTabs();
3761
+ GetTabItemButtonId(tabitemid) {
3762
+ return this.name + '_' + tabitemid;
3664
3763
  }
3665
3764
  /**
3666
- * Initialisiert die Tabs
3765
+ * AfterContentInit Event
3667
3766
  */
3668
- initTabs() {
3669
- const activeTab = this.tabItems().filter((tab) => tab.active);
3670
- this.tabItems().forEach((itm) => {
3671
- if (this.unloadtabitemswhenhidden !== null) {
3672
- itm.unloadwhenhidden = this.unloadtabitemswhenhidden;
3673
- }
3674
- });
3675
- if (activeTab.length === 0) {
3676
- this.selectTab(this.tabItems()[0]);
3677
- }
3767
+ ngAfterContentInit() {
3768
+ this.initTabs();
3678
3769
  }
3679
- // #endregion
3680
3770
  /**
3681
3771
  * select new tab
3682
3772
  * @param tab tab that should be selected
@@ -3690,22 +3780,32 @@ class SacTabCommon {
3690
3780
  tab.active = true;
3691
3781
  this.tabselected.emit(tab.id);
3692
3782
  }
3783
+ // #endregion Public Methods
3784
+ // #region Private Methods
3693
3785
  /**
3694
- * get id of tab button
3695
- * @param tabitemid id of tab
3786
+ * Initialisiert die Tabs
3696
3787
  */
3697
- GetTabItemButtonId(tabitemid) {
3698
- return this.name + '_' + tabitemid;
3788
+ initTabs() {
3789
+ const activeTab = this.tabItems().filter((tab) => tab.active);
3790
+ this.tabItems().forEach((itm) => {
3791
+ if (this.unloadtabitemswhenhidden !== null) {
3792
+ itm.unloadwhenhidden = this.unloadtabitemswhenhidden;
3793
+ }
3794
+ });
3795
+ if (activeTab.length === 0) {
3796
+ this.selectTab(this.tabItems()[0]);
3797
+ }
3699
3798
  }
3700
3799
  }
3701
3800
  SacTabCommon.decorators = [
3702
3801
  { type: Directive }
3703
3802
  ];
3704
3803
  SacTabCommon.propDecorators = {
3804
+ e2eidentifier: [{ type: Input }],
3705
3805
  name: [{ type: Input }],
3706
3806
  tablabeltemplate: [{ type: Input }],
3707
- unloadtabitemswhenhidden: [{ type: Input }],
3708
- tabselected: [{ type: Output }]
3807
+ tabselected: [{ type: Output }],
3808
+ unloadtabitemswhenhidden: [{ type: Input }]
3709
3809
  };
3710
3810
 
3711
3811
  /**
@@ -3713,6 +3813,7 @@ SacTabCommon.propDecorators = {
3713
3813
  */
3714
3814
  class SacTabItemCommon {
3715
3815
  constructor() {
3816
+ // #region Properties
3716
3817
  /**
3717
3818
  * Boolean Property prüft ob das Tab aktiv ist
3718
3819
  */
@@ -3725,6 +3826,7 @@ class SacTabItemCommon {
3725
3826
  * Das Input property ekzeptiert boolen Wert. Default ist true. Definiert, ob die Komponente hidden sein sollte.
3726
3827
  */
3727
3828
  this.unloadwhenhidden = true;
3829
+ // #endregion Properties
3728
3830
  }
3729
3831
  }
3730
3832
  SacTabItemCommon.decorators = [
@@ -3735,8 +3837,8 @@ SacTabItemCommon.propDecorators = {
3735
3837
  disabled: [{ type: Input }],
3736
3838
  id: [{ type: Input }],
3737
3839
  label: [{ type: Input }],
3738
- unloadwhenhidden: [{ type: Input }],
3739
- templateRef: [{ type: ContentChild, args: [TemplateRef, { static: true },] }]
3840
+ templateRef: [{ type: ContentChild, args: [TemplateRef, { static: true },] }],
3841
+ unloadwhenhidden: [{ type: Input }]
3740
3842
  };
3741
3843
 
3742
3844
  /**
@@ -3751,9 +3853,13 @@ class SacValidationSummaryCommon {
3751
3853
  */
3752
3854
  constructor(parent, injector) {
3753
3855
  /**
3754
- * Name-Property
3856
+ * Identifier used for the E2E data attribute.
3755
3857
  */
3756
- this.name = '';
3858
+ this.e2eidentifier = null;
3859
+ /**
3860
+ * name of control
3861
+ */
3862
+ this.name = createGuid();
3757
3863
  this.parent = parent;
3758
3864
  this.validationKeyService = injector.get(SACVALIDATIONKEY_SERVICE, new SacDefaultValidationKeyService());
3759
3865
  this.lngResourceService = injector.get(SACLOCALISATION_SERVICE, new SacDefaultLocalisationService(this.validationKeyService));
@@ -3862,6 +3968,7 @@ SacValidationSummaryCommon.ctorParameters = () => [
3862
3968
  { type: Injector }
3863
3969
  ];
3864
3970
  SacValidationSummaryCommon.propDecorators = {
3971
+ e2eidentifier: [{ type: Input }],
3865
3972
  form: [{ type: Input }],
3866
3973
  formGroupName: [{ type: Input }],
3867
3974
  name: [{ type: Input }]
@@ -4481,14 +4588,14 @@ class SacInputSearchCommon extends SacInputCommon {
4481
4588
  * Text welcher auf dem Button angezeigt wird
4482
4589
  */
4483
4590
  this.buttontext = '';
4484
- /**
4485
- * Name des Such-Icons
4486
- */
4487
- this.iconname = '';
4488
4591
  /**
4489
4592
  * Event wenn auf das Such-Icon geclickt wird
4490
4593
  */
4491
4594
  this.clicked = new EventEmitter();
4595
+ /**
4596
+ * Name des Such-Icons
4597
+ */
4598
+ this.iconname = '';
4492
4599
  // #endregion Private Methods
4493
4600
  }
4494
4601
  // #endregion Properties
@@ -4530,14 +4637,34 @@ SacInputSearchCommon.decorators = [
4530
4637
  SacInputSearchCommon.propDecorators = {
4531
4638
  buttonmode: [{ type: Input }],
4532
4639
  buttontext: [{ type: Input }],
4533
- iconname: [{ type: Input }],
4534
- clicked: [{ type: Output }]
4640
+ clicked: [{ type: Output }],
4641
+ iconname: [{ type: Input }]
4535
4642
  };
4536
4643
 
4537
- // #region Classes
4538
4644
  /**
4539
4645
  * GridResponse class
4540
4646
  */
4647
+ // #region Exported Enums
4648
+ /**
4649
+ * Enum for sorting
4650
+ */
4651
+ var SortOrder;
4652
+ (function (SortOrder) {
4653
+ /**
4654
+ * No sorting
4655
+ */
4656
+ SortOrder[SortOrder["None"] = 0] = "None";
4657
+ /**
4658
+ * Ascending
4659
+ */
4660
+ SortOrder[SortOrder["Ascending"] = 1] = "Ascending";
4661
+ /**
4662
+ * Descending
4663
+ */
4664
+ SortOrder[SortOrder["Descending"] = 2] = "Descending";
4665
+ })(SortOrder || (SortOrder = {}));
4666
+ // #endregion Exported Enums
4667
+ // #region Exported Classes
4541
4668
  class GridResponse {
4542
4669
  }
4543
4670
  /**
@@ -4612,27 +4739,7 @@ class SortDescriptor {
4612
4739
  this.SortOrder = sortorder;
4613
4740
  }
4614
4741
  }
4615
- // #endregion Classes
4616
- // #region Enums
4617
- /**
4618
- * Enum for sorting
4619
- */
4620
- var SortOrder;
4621
- (function (SortOrder) {
4622
- /**
4623
- * No sorting
4624
- */
4625
- SortOrder[SortOrder["None"] = 0] = "None";
4626
- /**
4627
- * Ascending
4628
- */
4629
- SortOrder[SortOrder["Ascending"] = 1] = "Ascending";
4630
- /**
4631
- * Descending
4632
- */
4633
- SortOrder[SortOrder["Descending"] = 2] = "Descending";
4634
- })(SortOrder || (SortOrder = {}));
4635
- // #endregion Enums
4742
+ // #endregion Exported Classes
4636
4743
 
4637
4744
  /**
4638
4745
  * Basic component for SacGrid
@@ -4660,6 +4767,18 @@ class SacGridCommon {
4660
4767
  * Contains Array of Pages.
4661
4768
  */
4662
4769
  this.paginators = [];
4770
+ /**
4771
+ * Number of columns in the grid
4772
+ */
4773
+ this.ColumnCount = 0;
4774
+ /**
4775
+ * Identifier used for the E2E data attribute.
4776
+ */
4777
+ this.e2eidentifier = null;
4778
+ /**
4779
+ * name of control
4780
+ */
4781
+ this.name = createGuid();
4663
4782
  /**
4664
4783
  * Deactivates the selection of the PageSize in the pager
4665
4784
  */
@@ -4672,14 +4791,6 @@ class SacGridCommon {
4672
4791
  * Event when the pager is clicked.
4673
4792
  */
4674
4793
  this.paging = new EventEmitter();
4675
- /**
4676
- * Event when a header is clicked so that the grid is sorted.
4677
- */
4678
- this.sorting = new EventEmitter();
4679
- /**
4680
- * Number of columns in the grid
4681
- */
4682
- this.ColumnCount = 0;
4683
4794
  /**
4684
4795
  * Column by which currently sorted.
4685
4796
  */
@@ -4688,6 +4799,10 @@ class SacGridCommon {
4688
4799
  * Current direction of sorting
4689
4800
  */
4690
4801
  this.sortDirection = SortOrder.None;
4802
+ /**
4803
+ * Event when a header is clicked so that the grid is sorted.
4804
+ */
4805
+ this.sorting = new EventEmitter();
4691
4806
  this.validationKeyService = injector.get(SACVALIDATIONKEY_SERVICE, new SacDefaultValidationKeyService());
4692
4807
  // Set Default Values from Injector
4693
4808
  this.pagesizetext = this.validationKeyService.PagingEntries;
@@ -4760,6 +4875,7 @@ SacGridCommon.ctorParameters = () => [
4760
4875
  ];
4761
4876
  SacGridCommon.propDecorators = {
4762
4877
  body: [{ type: Input }],
4878
+ e2eidentifier: [{ type: Input }],
4763
4879
  emptytext: [{ type: Input }],
4764
4880
  headers: [{ type: Input }],
4765
4881
  maxvisiblepagenumbers: [{ type: Input }],
@@ -4768,10 +4884,10 @@ SacGridCommon.propDecorators = {
4768
4884
  pagesizedisabled: [{ type: Input }],
4769
4885
  pagesizes: [{ type: Input }],
4770
4886
  pagesizetext: [{ type: Input }],
4771
- pagingtext: [{ type: Input }],
4772
- value: [{ type: Input }],
4773
4887
  paging: [{ type: Output }],
4888
+ pagingtext: [{ type: Input }],
4774
4889
  sorting: [{ type: Output }],
4890
+ value: [{ type: Input }],
4775
4891
  sortdata: [{ type: Input }]
4776
4892
  };
4777
4893
 
@@ -4779,24 +4895,34 @@ SacGridCommon.propDecorators = {
4779
4895
  * Base Grid Action Button
4780
4896
  */
4781
4897
  class SacGridButtonCommon {
4782
- constructor() {
4783
- // #region Properties
4898
+ // #endregion Properties
4899
+ // #region Constructors
4900
+ /**
4901
+ * Constructor
4902
+ *
4903
+ * @param injector Injector to resovle services
4904
+ */
4905
+ constructor(injector) {
4906
+ this.injector = injector;
4784
4907
  /**
4785
4908
  * Button is deactivated
4786
4909
  */
4787
4910
  this._isdisabledvalue = false;
4788
- /**
4789
- * Input property for styling the button. Defines the CSS classes of the button
4790
- */
4791
- this.iconstyle = '';
4792
4911
  /**
4793
4912
  * Event when the button is clicked
4794
4913
  */
4795
4914
  this.clicked = new EventEmitter();
4796
- // #endregion Public Methods
4915
+ /**
4916
+ * Input property for styling the button. Defines the CSS classes of the button
4917
+ */
4918
+ this.iconstyle = '';
4919
+ this.iconService = injector.get(SACICON_SERVICE, new SacDefaultIconService());
4797
4920
  }
4798
- // #endregion Properties
4921
+ // #endregion Constructors
4799
4922
  // #region Public Getters And Setters
4923
+ get isdisabled() {
4924
+ return this._isdisabledvalue;
4925
+ }
4800
4926
  /**
4801
4927
  * Deactivating buttons
4802
4928
  * @param v Deactivates the button. Can be a Boolean or the strings `true` or `false`.
@@ -4810,9 +4936,6 @@ class SacGridButtonCommon {
4810
4936
  this._isdisabledvalue = v === 'true';
4811
4937
  }
4812
4938
  }
4813
- get isdisabled() {
4814
- return this._isdisabledvalue;
4815
- }
4816
4939
  // #endregion Public Getters And Setters
4817
4940
  // #region Public Methods
4818
4941
  /**
@@ -4823,14 +4946,47 @@ class SacGridButtonCommon {
4823
4946
  this.clicked.emit(this.iconstyle);
4824
4947
  }
4825
4948
  }
4949
+ /**
4950
+ * Defines the CSS class for the icon on the button
4951
+ */
4952
+ getIconClass() {
4953
+ let cssclass;
4954
+ // Handle Default Icons
4955
+ if (this.iconstyle === '') {
4956
+ switch (this.icon) {
4957
+ case 'edit':
4958
+ cssclass = `${this.iconService.GridButtonDefaultEditIconSet} ${this.iconService.GridButtonDefaultEditIcon}`;
4959
+ break;
4960
+ case 'delete':
4961
+ cssclass = `${this.iconService.GridButtonDefaultDeleteIconSet} ${this.iconService.GridButtonDefaultDeleteIcon}`;
4962
+ break;
4963
+ default:
4964
+ cssclass = this.icon;
4965
+ break;
4966
+ }
4967
+ }
4968
+ else {
4969
+ cssclass = `${this.iconstyle} ${this.icon}`;
4970
+ }
4971
+ // trim style
4972
+ cssclass = cssclass.trim();
4973
+ if (this._isdisabledvalue) {
4974
+ cssclass += this.iconService.GridButtonDisabledIconSuffix;
4975
+ }
4976
+ return cssclass;
4977
+ }
4826
4978
  }
4827
4979
  SacGridButtonCommon.decorators = [
4828
4980
  { type: Directive }
4829
4981
  ];
4982
+ SacGridButtonCommon.ctorParameters = () => [
4983
+ { type: Injector }
4984
+ ];
4830
4985
  SacGridButtonCommon.propDecorators = {
4986
+ clicked: [{ type: Output }],
4831
4987
  icon: [{ type: Input }],
4832
4988
  iconstyle: [{ type: Input }],
4833
- clicked: [{ type: Output }],
4989
+ name: [{ type: Input }],
4834
4990
  isdisabled: [{ type: Input }]
4835
4991
  };
4836
4992
 
@@ -4850,6 +5006,14 @@ class SacGridColumnBaseCommon {
4850
5006
  this.grid = grid;
4851
5007
  this.injector = injector;
4852
5008
  this.el = el;
5009
+ /**
5010
+ * Align the column
5011
+ */
5012
+ this.alignment = 'left';
5013
+ /**
5014
+ * defines the style of the row
5015
+ */
5016
+ this.contextstyle = 'none';
4853
5017
  /**
4854
5018
  * Click on Column Element
4855
5019
  */
@@ -4921,9 +5085,7 @@ class SacGridColumnBaseCommon {
4921
5085
  * Triggers the events so that the table is sorted according to this column.
4922
5086
  */
4923
5087
  SortByColumn() {
4924
- if (this.sortkey !== undefined &&
4925
- this.sortkey !== null &&
4926
- this.sortkey !== '') {
5088
+ if (this.sortkey !== undefined && this.sortkey !== null && this.sortkey !== '') {
4927
5089
  return this.grid.SortBy(this.sortkey);
4928
5090
  }
4929
5091
  }
@@ -4931,6 +5093,12 @@ class SacGridColumnBaseCommon {
4931
5093
  * Called when the component is destroyed.
4932
5094
  */
4933
5095
  ngOnDestroy() {
5096
+ if (this.headerElement) {
5097
+ this.headerElement.nativeElement.remove();
5098
+ }
5099
+ if (this.bodyElement) {
5100
+ this.bodyElement.nativeElement.remove();
5101
+ }
4934
5102
  if (this.IsHeader()) {
4935
5103
  this.grid.UnregisterColumn();
4936
5104
  }
@@ -4959,13 +5127,17 @@ SacGridColumnBaseCommon.ctorParameters = () => [
4959
5127
  { type: ElementRef }
4960
5128
  ];
4961
5129
  SacGridColumnBaseCommon.propDecorators = {
5130
+ alignment: [{ type: Input }],
5131
+ bodyElement: [{ type: ViewChild, args: ['bodyElement', { static: false },] }],
5132
+ contextstyle: [{ type: Input }],
4962
5133
  header: [{ type: Input }],
5134
+ headerElement: [{ type: ViewChild, args: ['headerElement', { static: false },] }],
4963
5135
  name: [{ type: Input }],
5136
+ rowclicked: [{ type: Output }],
4964
5137
  sortkey: [{ type: Input }],
4965
5138
  type: [{ type: Input }],
4966
5139
  value: [{ type: Input }],
4967
- width: [{ type: Input }],
4968
- rowclicked: [{ type: Output }]
5140
+ width: [{ type: Input }]
4969
5141
  };
4970
5142
 
4971
5143
  /**
@@ -4987,18 +5159,18 @@ class SacGridColumnCommon extends SacGridColumnBaseCommon {
4987
5159
  }
4988
5160
  // #endregion Constructors
4989
5161
  // #region Public Getters And Setters
4990
- /**
4991
- * Sets the ellipsis property. Can be a Boolean or the strings `true` or `false`.
4992
- */
4993
- set ellipsis(v) {
4994
- this._ellipsis = convertToBoolean(v);
4995
- }
4996
5162
  /**
4997
5163
  * Getter for the ellipsis property. Always returns a boolean type.
4998
5164
  */
4999
5165
  get ellipsis() {
5000
5166
  return this._ellipsis;
5001
5167
  }
5168
+ /**
5169
+ * Sets the ellipsis property. Can be a Boolean or the strings `true` or `false`.
5170
+ */
5171
+ set ellipsis(v) {
5172
+ this._ellipsis = convertToBoolean(v);
5173
+ }
5002
5174
  // #endregion Public Getters And Setters
5003
5175
  // #region Public Methods
5004
5176
  /**
@@ -5072,6 +5244,30 @@ class SacPagingCommon {
5072
5244
  * Total number of rows
5073
5245
  */
5074
5246
  this.totalRowCount = 0;
5247
+ /**
5248
+ * Active page index
5249
+ */
5250
+ this.activePageIndex = 0;
5251
+ /**
5252
+ * Identifier used for the E2E data attribute.
5253
+ */
5254
+ this.e2eidentifier = null;
5255
+ /**
5256
+ * First page index
5257
+ */
5258
+ this.firstPageIndex = 0;
5259
+ /**
5260
+ * Last page index
5261
+ */
5262
+ this.lastPageIndex = 0;
5263
+ /**
5264
+ * name of control
5265
+ */
5266
+ this.name = createGuid();
5267
+ /**
5268
+ * Number of elements per page
5269
+ */
5270
+ this.pageSize = 20;
5075
5271
  /**
5076
5272
  * Deactivate page size selection
5077
5273
  */
@@ -5089,35 +5285,19 @@ class SacPagingCommon {
5089
5285
  */
5090
5286
  this.pagesizetext = '';
5091
5287
  /**
5092
- * Text in pager for 'Page x of y'. The following interpolation texts are available:
5093
- * {{CURRENTPAGE}}: Current page
5094
- * {{TOTALPAGES}}: Number of pages
5288
+ * Item for each paging element (page number)
5095
5289
  */
5096
- this.pagingtext = '';
5290
+ this.paginators = [];
5097
5291
  /**
5098
5292
  * Event when the page is changed in the grid. The new PageIndex is given as a parameter.
5099
5293
  */
5100
5294
  this.paging = new EventEmitter();
5101
5295
  /**
5102
- * Active page index
5103
- */
5104
- this.activePageIndex = 0;
5105
- /**
5106
- * First page index
5107
- */
5108
- this.firstPageIndex = 0;
5109
- /**
5110
- * Last page index
5111
- */
5112
- this.lastPageIndex = 0;
5113
- /**
5114
- * Number of elements per page
5115
- */
5116
- this.pageSize = 20;
5117
- /**
5118
- * Item for each paging element (page number)
5296
+ * Text in pager for 'Page x of y'. The following interpolation texts are available:
5297
+ * {{CURRENTPAGE}}: Current page
5298
+ * {{TOTALPAGES}}: Number of pages
5119
5299
  */
5120
- this.paginators = [];
5300
+ this.pagingtext = '';
5121
5301
  this.validationKeyService = injector.get(SACVALIDATIONKEY_SERVICE, new SacDefaultValidationKeyService());
5122
5302
  // Set Default Values from Injector
5123
5303
  this.pagesizetext = this.validationKeyService.PagingEntries;
@@ -5126,17 +5306,6 @@ class SacPagingCommon {
5126
5306
  }
5127
5307
  // #endregion Constructors
5128
5308
  // #region Public Getters And Setters
5129
- /**
5130
- * Property for Pager Data
5131
- */
5132
- set pagerdata(p) {
5133
- if (p != null) {
5134
- this.totalRowCount = p.TotalRowCount;
5135
- this.activePageIndex = p.CurrentPageIndex;
5136
- this.pageSize = p.PageSize;
5137
- }
5138
- this.createPager();
5139
- }
5140
5309
  /**
5141
5310
  * Property with text for total entries in page
5142
5311
  */
@@ -5158,6 +5327,17 @@ class SacPagingCommon {
5158
5327
  get getPageSizes() {
5159
5328
  return this.pagesizes.split('|').map((itm) => Number(itm));
5160
5329
  }
5330
+ /**
5331
+ * Property for Pager Data
5332
+ */
5333
+ set pagerdata(p) {
5334
+ if (p != null) {
5335
+ this.totalRowCount = p.TotalRowCount;
5336
+ this.activePageIndex = p.CurrentPageIndex;
5337
+ this.pageSize = p.PageSize;
5338
+ }
5339
+ this.createPager();
5340
+ }
5161
5341
  // #endregion Public Getters And Setters
5162
5342
  // #region Public Methods
5163
5343
  /**
@@ -5295,12 +5475,13 @@ SacPagingCommon.ctorParameters = () => [
5295
5475
  { type: Injector }
5296
5476
  ];
5297
5477
  SacPagingCommon.propDecorators = {
5478
+ e2eidentifier: [{ type: Input }],
5298
5479
  name: [{ type: Input }],
5299
5480
  pagesizedisabled: [{ type: Input }],
5300
5481
  pagesizes: [{ type: Input }],
5301
5482
  pagesizetext: [{ type: Input }],
5302
- pagingtext: [{ type: Input }],
5303
5483
  paging: [{ type: Output }],
5484
+ pagingtext: [{ type: Input }],
5304
5485
  pagerdata: [{ type: Input }]
5305
5486
  };
5306
5487
 
@@ -5635,7 +5816,7 @@ class PopUpHelper {
5635
5816
  return element.offsetTop;
5636
5817
  }
5637
5818
  const parentValue = this.getOffsetTopParent(element.offsetParent);
5638
- let offset = element.offsetTop;
5819
+ const offset = element.offsetTop;
5639
5820
  return parentValue + offset;
5640
5821
  }
5641
5822
  /**
@@ -5810,6 +5991,9 @@ class SacBaseDateTimeControl extends SacBaseModelControl {
5810
5991
  else {
5811
5992
  this.value = null;
5812
5993
  }
5994
+ // update imaks reference
5995
+ this.cdRef.detectChanges();
5996
+ this.iMask.maskRef.updateControl();
5813
5997
  }
5814
5998
  /**
5815
5999
  * Returns the position of the tooltip
@@ -5979,6 +6163,7 @@ SacBaseDateTimeControl.ctorParameters = () => [
5979
6163
  { type: ChangeDetectorRef }
5980
6164
  ];
5981
6165
  SacBaseDateTimeControl.propDecorators = {
6166
+ iMask: [{ type: ViewChild, args: [IMaskDirective, { static: false },] }],
5982
6167
  isrequired: [{ type: Input }],
5983
6168
  pickerarrow: [{ type: ViewChild, args: ['pickerarrow', { static: false },] }],
5984
6169
  pickerbutton: [{ type: ViewChild, args: ['pickerbutton', { static: true },] }],
@@ -6249,6 +6434,14 @@ class DateSelectorItem {
6249
6434
  this.isnew = isnew;
6250
6435
  }
6251
6436
  }
6437
+ // #endregion Classes
6438
+ // #region Variables
6439
+ /**
6440
+ * Moment
6441
+ */
6442
+ const moment$2 = moment_;
6443
+ // #endregion Variables
6444
+ // #region Exported Classes
6252
6445
  /**
6253
6446
  *Basis Komponente für SacDateSelector
6254
6447
  */
@@ -6272,10 +6465,18 @@ class SacDateSelectorCommon {
6272
6465
  * Datum Selector
6273
6466
  */
6274
6467
  this.dateselection = false;
6468
+ /**
6469
+ * Identifier used for the E2E data attribute.
6470
+ */
6471
+ this.e2eidentifier = null;
6275
6472
  /**
6276
6473
  * Monat
6277
6474
  */
6278
6475
  this.month = 4;
6476
+ /**
6477
+ * name of control
6478
+ */
6479
+ this.name = createGuid();
6279
6480
  /**
6280
6481
  * Output Event beim Datum Selektieren
6281
6482
  */
@@ -6344,6 +6545,10 @@ class SacDateSelectorCommon {
6344
6545
  tempValue.year(1900);
6345
6546
  this._selectedValue = tempValue.utc();
6346
6547
  }
6548
+ if (this._selectedValue === null && this._initialValue !== null) {
6549
+ this.selectdate.emit({ date: this._initialValue.local() });
6550
+ return;
6551
+ }
6347
6552
  this.selectdate.emit({
6348
6553
  date: this._selectedValue,
6349
6554
  });
@@ -6445,12 +6650,8 @@ class SacDateSelectorCommon {
6445
6650
  */
6446
6651
  selectDate(v) {
6447
6652
  if (v.isenabled) {
6448
- this.dates.forEach((date) => date
6449
- .filter((filter) => filter.isnew)
6450
- .forEach((itm) => (itm.isnew = false)));
6451
- this.dates.forEach((date) => date
6452
- .filter((filter) => filter.isselected)
6453
- .forEach((itm) => (itm.isselected = false)));
6653
+ this.dates.forEach((date) => date.filter((filter) => filter.isnew).forEach((itm) => (itm.isnew = false)));
6654
+ this.dates.forEach((date) => date.filter((filter) => filter.isselected).forEach((itm) => (itm.isselected = false)));
6454
6655
  v.isnew = true;
6455
6656
  v.isselected = true;
6456
6657
  const dateValue = moment$2(v.date);
@@ -6478,6 +6679,9 @@ class SacDateSelectorCommon {
6478
6679
  * Setter für Stunden Uhrzeit
6479
6680
  */
6480
6681
  setHours(v) {
6682
+ if (v >= 24) {
6683
+ return;
6684
+ }
6481
6685
  /**
6482
6686
  * Select Value setzen falls leer
6483
6687
  */
@@ -6493,6 +6697,9 @@ class SacDateSelectorCommon {
6493
6697
  * Setter für Minuten Uhrzeit
6494
6698
  */
6495
6699
  setMinutes(v) {
6700
+ if (v >= 60) {
6701
+ return;
6702
+ }
6496
6703
  /**
6497
6704
  * Select Value setzen falls leer
6498
6705
  */
@@ -6570,9 +6777,7 @@ class SacDateSelectorCommon {
6570
6777
  for (let dayinmonth = 1; dayinmonth <= currentMonth.daysInMonth(); dayinmonth++) {
6571
6778
  let isSelectedDate = false;
6572
6779
  let isNewDate = false;
6573
- const isCurrentDate = moment$2().month() === this.month &&
6574
- moment$2().year() === this.year &&
6575
- moment$2().date() === dayinmonth;
6780
+ const isCurrentDate = moment$2().month() === this.month && moment$2().year() === this.year && moment$2().date() === dayinmonth;
6576
6781
  // Initial Wert setzen, falls vorhanden
6577
6782
  if (this._initialValue !== null) {
6578
6783
  isSelectedDate =
@@ -6624,6 +6829,11 @@ class SacDateSelectorCommon {
6624
6829
  if (this._selectedValue === null) {
6625
6830
  if (this._initialValue === null) {
6626
6831
  this._selectedValue = moment$2();
6832
+ /**
6833
+ * clean seconds and miliseconds for initial values
6834
+ */
6835
+ this._selectedValue.second(0);
6836
+ this._selectedValue.millisecond(0);
6627
6837
  }
6628
6838
  else {
6629
6839
  this._selectedValue = this._initialValue;
@@ -6640,19 +6850,15 @@ SacDateSelectorCommon.ctorParameters = () => [
6640
6850
  SacDateSelectorCommon.propDecorators = {
6641
6851
  autoapplyselection: [{ type: Input }],
6642
6852
  dateselection: [{ type: Input }],
6853
+ e2eidentifier: [{ type: Input }],
6643
6854
  month: [{ type: Input }],
6855
+ name: [{ type: Input }],
6644
6856
  selectdate: [{ type: Output }],
6645
6857
  timeselection: [{ type: Input }],
6646
6858
  year: [{ type: Input }],
6647
6859
  initialvalue: [{ type: Input }]
6648
6860
  };
6649
- // #endregion Classes
6650
- // #region Variables
6651
- /**
6652
- * Moment
6653
- */
6654
- const moment$2 = moment_;
6655
- // #endregion Variables
6861
+ // #endregion Exported Classes
6656
6862
 
6657
6863
  /**
6658
6864
  * Komponente für SacDateTimeCommon. Extends SacBaseDateTimeControl
@@ -7143,12 +7349,16 @@ SacStaticFormContainerCommon.propDecorators = {
7143
7349
  **/
7144
7350
  class SacStaticLabelCommon extends SacInputBase {
7145
7351
  constructor() {
7352
+ // #region Properties
7146
7353
  super(...arguments);
7147
7354
  /**
7148
7355
  * Erlaubt HTML Content in der Anzeige des Wertes
7149
7356
  */
7150
7357
  this.allowhtml = false;
7358
+ // #endregion Public Methods
7151
7359
  }
7360
+ // #endregion Properties
7361
+ // #region Public Methods
7152
7362
  /**
7153
7363
  * Validierung des Controls
7154
7364
  *
@@ -7172,18 +7382,15 @@ SacStaticLabelCommon.propDecorators = {
7172
7382
  */
7173
7383
  class SacWizardCommon {
7174
7384
  constructor() {
7175
- /**
7176
- * Name des Controls
7177
- */
7178
- this.name = '';
7385
+ // #region Properties
7179
7386
  /**
7180
7387
  * Boolean Property prüft ob Navigation im Wizard disabled ist; default Wert - false
7181
7388
  */
7182
7389
  this.disablenavigation = false;
7183
7390
  /**
7184
- * EventEmitter wenn der Schritt geändert wird
7391
+ * Name des Controls
7185
7392
  */
7186
- this.stepchanged = new EventEmitter();
7393
+ this.name = '';
7187
7394
  /**
7188
7395
  * Leere Implementation von 'propagateChange'. Muss gemacht werden, damit kein Fehler entsteht
7189
7396
  */
@@ -7192,52 +7399,26 @@ class SacWizardCommon {
7192
7399
  * Leere Implementation von 'propagateTouch'. Muss gemacht werden, damit kein Fehler entsteht
7193
7400
  */
7194
7401
  this.propagateTouch = () => { };
7402
+ /**
7403
+ * EventEmitter wenn der Schritt geändert wird
7404
+ */
7405
+ this.stepchanged = new EventEmitter();
7406
+ // #endregion Private Methods
7195
7407
  }
7196
- /**
7197
- * Setter und Getter für aktueller Schritt
7198
- */
7199
- set currentstep(v) {
7200
- this.changeStep(v);
7201
- this.propagateChange(this._currentstep);
7202
- }
7203
- get currentstep() {
7204
- return this._currentstep;
7205
- }
7206
- setStepInternal(step) {
7207
- this._currentstep = step;
7208
- this.propagateChange(this._currentstep);
7209
- }
7210
- // #region Control initialisieren
7211
- /**
7212
- * AfterContentInit Event
7213
- */
7214
- ngAfterContentInit() {
7215
- this.initSteps();
7216
- }
7217
- /**
7218
- * Ursprünglicher Schritt wird selektiert
7219
- */
7220
- initSteps() {
7221
- const activeStep = this.wizardItems().filter((step) => step.active);
7222
- if (activeStep.length === 0) {
7223
- const initStep = this.wizardItems().toArray()[0];
7224
- this.selectStep(initStep);
7225
- initStep.disabled = false;
7226
- this.setStepInternal(initStep.id);
7227
- }
7408
+ // #endregion Properties
7409
+ // #region Public Getters And Setters
7410
+ get currentstep() {
7411
+ return this._currentstep;
7228
7412
  }
7229
- // #endregion
7230
7413
  /**
7231
- * Schritt selektieren
7232
- * @param step Step welcher selektiert werden soll
7414
+ * Setter und Getter für aktueller Schritt
7233
7415
  */
7234
- selectStep(step) {
7235
- // Cancel if Navigation disabled
7236
- if (this.disablenavigation) {
7237
- return;
7238
- }
7239
- this.changeStep(step.id);
7416
+ set currentstep(v) {
7417
+ this.changeStep(v);
7418
+ this.propagateChange(this._currentstep);
7240
7419
  }
7420
+ // #endregion Public Getters And Setters
7421
+ // #region Public Methods
7241
7422
  /**
7242
7423
  * Auf nächsten/vorherigen Schritt gehen
7243
7424
  * @param step Step auf welchen gewechselt werden soll
@@ -7248,7 +7429,7 @@ class SacWizardCommon {
7248
7429
  }
7249
7430
  const wizardItemsArray = this.wizardItems().toArray();
7250
7431
  const itemsCount = wizardItemsArray.length;
7251
- const currentItemIndex = wizardItemsArray.findIndex(itm => itm.id === step);
7432
+ const currentItemIndex = wizardItemsArray.findIndex((itm) => itm.id === step);
7252
7433
  for (let i = 0; i < itemsCount; i++) {
7253
7434
  const item = wizardItemsArray[i];
7254
7435
  if (i < currentItemIndex) {
@@ -7273,6 +7454,12 @@ class SacWizardCommon {
7273
7454
  this.setStepInternal(step);
7274
7455
  this.stepchanged.emit(step);
7275
7456
  }
7457
+ /**
7458
+ * AfterContentInit Event
7459
+ */
7460
+ ngAfterContentInit() {
7461
+ this.initSteps();
7462
+ }
7276
7463
  /**
7277
7464
  * Methode, damit andere Controls änderungen im Control mitbekommen können
7278
7465
  * Zur Änderungsinfo die Methode propagateChange aufrufen.
@@ -7286,6 +7473,17 @@ class SacWizardCommon {
7286
7473
  registerOnTouched(fn) {
7287
7474
  this.propagateTouch = (obj) => fn(obj);
7288
7475
  }
7476
+ /**
7477
+ * Schritt selektieren
7478
+ * @param step Step welcher selektiert werden soll
7479
+ */
7480
+ selectStep(step) {
7481
+ // Cancel if Navigation disabled
7482
+ if (this.disablenavigation) {
7483
+ return;
7484
+ }
7485
+ this.changeStep(step.id);
7486
+ }
7289
7487
  /**
7290
7488
  * Methode zum schreiben von Werten aus dem Model in das Control
7291
7489
  */
@@ -7294,15 +7492,33 @@ class SacWizardCommon {
7294
7492
  this.changeStep(value);
7295
7493
  }
7296
7494
  }
7495
+ // #endregion Public Methods
7496
+ // #region Private Methods
7497
+ /**
7498
+ * Ursprünglicher Schritt wird selektiert
7499
+ */
7500
+ initSteps() {
7501
+ const activeStep = this.wizardItems().filter((step) => step.active);
7502
+ if (activeStep.length === 0) {
7503
+ const initStep = this.wizardItems().toArray()[0];
7504
+ this.selectStep(initStep);
7505
+ initStep.disabled = false;
7506
+ this.setStepInternal(initStep.id);
7507
+ }
7508
+ }
7509
+ setStepInternal(step) {
7510
+ this._currentstep = step;
7511
+ this.propagateChange(this._currentstep);
7512
+ }
7297
7513
  }
7298
7514
  SacWizardCommon.decorators = [
7299
7515
  { type: Directive }
7300
7516
  ];
7301
7517
  SacWizardCommon.propDecorators = {
7302
- name: [{ type: Input }],
7303
7518
  disablenavigation: [{ type: Input }],
7304
- currentstep: [{ type: Input }],
7305
- stepchanged: [{ type: Output }]
7519
+ name: [{ type: Input }],
7520
+ stepchanged: [{ type: Output }],
7521
+ currentstep: [{ type: Input }]
7306
7522
  };
7307
7523
 
7308
7524
  /**
@@ -7310,14 +7526,16 @@ SacWizardCommon.propDecorators = {
7310
7526
  */
7311
7527
  class SacWizardItemCommon {
7312
7528
  constructor() {
7313
- /**
7314
- * Prüft ob der Schritt abgeschlossen wurde.
7315
- */
7316
- this.iscomplete = false;
7529
+ // #region Properties
7317
7530
  /**
7318
7531
  * Prüft ob der Schritt disabled ist.
7319
7532
  */
7320
7533
  this.disabled = true;
7534
+ /**
7535
+ * Prüft ob der Schritt abgeschlossen wurde.
7536
+ */
7537
+ this.iscomplete = false;
7538
+ // #endregion Properties
7321
7539
  }
7322
7540
  }
7323
7541
  SacWizardItemCommon.decorators = [
@@ -7325,9 +7543,9 @@ SacWizardItemCommon.decorators = [
7325
7543
  ];
7326
7544
  SacWizardItemCommon.propDecorators = {
7327
7545
  active: [{ type: Input }],
7328
- iscomplete: [{ type: Input }],
7329
7546
  disabled: [{ type: Input }],
7330
7547
  id: [{ type: Input }],
7548
+ iscomplete: [{ type: Input }],
7331
7549
  label: [{ type: Input }]
7332
7550
  };
7333
7551
 
@@ -7335,6 +7553,8 @@ SacWizardItemCommon.propDecorators = {
7335
7553
  * Settings für TinyMCE Dialog
7336
7554
  */
7337
7555
  class TinyMceDialogSettings {
7556
+ // #endregion Properties
7557
+ // #region Constructors
7338
7558
  /**
7339
7559
  * Konstruktor
7340
7560
  * @param init Initale Werte
@@ -7372,6 +7592,10 @@ class SacTinyMceCommon extends SacBaseModelControl {
7372
7592
  file_picker_callback: this.showSelectDialog,
7373
7593
  save_onsavecallback: () => { },
7374
7594
  };
7595
+ /**
7596
+ * TinyMCE Config
7597
+ */
7598
+ this._config = {};
7375
7599
  /**
7376
7600
  * Erlaubt im Filebrowser das löschen von Dateien
7377
7601
  */
@@ -7420,26 +7644,22 @@ class SacTinyMceCommon extends SacBaseModelControl {
7420
7644
  * Definiert das Control als Required
7421
7645
  */
7422
7646
  this.isrequired = false;
7423
- /**
7424
- * Resource Key für Validation Message Required bei Control
7425
- */
7426
- this.validationmessagerequired = this.validationKeyService.ValidationErrorRequired;
7427
- /**
7428
- * Resource Key für Validation Message Required in Validation Summary
7429
- */
7430
- this.validationmessagesummaryrequired = this.validationKeyService.ValidationErrorSummaryRequired;
7431
7647
  /**
7432
7648
  * Event wenn Save Action in TinyMCE ausgelöst wird
7433
7649
  */
7434
7650
  this.onsave = new EventEmitter();
7435
- /**
7436
- * TinyMCE Config
7437
- */
7438
- this._config = {};
7439
7651
  /**
7440
7652
  * Der Select Dialog wird angezeigt
7441
7653
  */
7442
7654
  this.selectdialogvisible = false;
7655
+ /**
7656
+ * Resource Key für Validation Message Required bei Control
7657
+ */
7658
+ this.validationmessagerequired = this.validationKeyService.ValidationErrorRequired;
7659
+ /**
7660
+ * Resource Key für Validation Message Required in Validation Summary
7661
+ */
7662
+ this.validationmessagesummaryrequired = this.validationKeyService.ValidationErrorSummaryRequired;
7443
7663
  this.validationKeyService = injector.get(SACVALIDATIONKEY_SERVICE, new SacDefaultValidationKeyService());
7444
7664
  this.lngResourceService = injector.get(SACLOCALISATION_SERVICE, new SacDefaultLocalisationService(this.validationKeyService));
7445
7665
  this.config = {};
@@ -7448,19 +7668,25 @@ class SacTinyMceCommon extends SacBaseModelControl {
7448
7668
  // #region Public Getters And Setters
7449
7669
  /**
7450
7670
  * TinyMCE Konfiguration
7451
- * @link https://www.tiny.cloud/docs/configure/
7452
7671
  */
7453
- set config(v) {
7454
- this._config = Object.assign(Object.assign(Object.assign(Object.assign({}, this.getDynamicSettings()), this.baseConfig), this.overwriteDefaultSettings()), v);
7672
+ get config() {
7673
+ return this._config;
7455
7674
  }
7456
7675
  /**
7457
7676
  * TinyMCE Konfiguration
7677
+ * @link https://www.tiny.cloud/docs/configure/
7458
7678
  */
7459
- get config() {
7460
- return this._config;
7679
+ set config(v) {
7680
+ this._config = Object.assign(Object.assign(Object.assign(Object.assign({}, this.getDynamicSettings()), this.baseConfig), this.overwriteDefaultSettings()), v);
7461
7681
  }
7462
7682
  // #endregion Public Getters And Setters
7463
7683
  // #region Public Methods
7684
+ /**
7685
+ * event when control is touched
7686
+ */
7687
+ blur() {
7688
+ this.propagateTouch();
7689
+ }
7464
7690
  /**
7465
7691
  * Schliesst den Dateiauswahl Dialog
7466
7692
  */
@@ -7479,10 +7705,8 @@ class SacTinyMceCommon extends SacBaseModelControl {
7479
7705
  */
7480
7706
  setSelectDialogResult() {
7481
7707
  if (this.selectDialogSettings.value) {
7482
- if (this.selectDialogSettings.value.startsWith('/') ||
7483
- this.selectDialogSettings.value.startsWith('\\')) {
7484
- this.selectDialogSettings.value =
7485
- this.selectDialogSettings.value.substring(1);
7708
+ if (this.selectDialogSettings.value.startsWith('/') || this.selectDialogSettings.value.startsWith('\\')) {
7709
+ this.selectDialogSettings.value = this.selectDialogSettings.value.substring(1);
7486
7710
  }
7487
7711
  this.selectDialogSettings.callback(this.selectDialogSettings.value);
7488
7712
  }
@@ -7507,16 +7731,13 @@ class SacTinyMceCommon extends SacBaseModelControl {
7507
7731
  });
7508
7732
  switch (meta.filetype) {
7509
7733
  case 'image':
7510
- this.settings.angular.selectDialogSettings.allowedtypes =
7511
- this.settings.angular.filetypesimages;
7734
+ this.settings.angular.selectDialogSettings.allowedtypes = this.settings.angular.filetypesimages;
7512
7735
  break;
7513
7736
  case 'media':
7514
- this.settings.angular.selectDialogSettings.allowedtypes =
7515
- this.settings.angular.filetypesvideo;
7737
+ this.settings.angular.selectDialogSettings.allowedtypes = this.settings.angular.filetypesvideo;
7516
7738
  break;
7517
7739
  default:
7518
- this.settings.angular.selectDialogSettings.allowedtypes =
7519
- this.settings.angular.filetypesfiles;
7740
+ this.settings.angular.selectDialogSettings.allowedtypes = this.settings.angular.filetypesfiles;
7520
7741
  break;
7521
7742
  }
7522
7743
  });
@@ -7534,7 +7755,7 @@ class SacTinyMceCommon extends SacBaseModelControl {
7534
7755
  }
7535
7756
  return error;
7536
7757
  }
7537
- // #endregion Public Abstract Methods
7758
+ // #endregion Public Methods
7538
7759
  // #region Private Methods
7539
7760
  /**
7540
7761
  * Gibt die TinyMCE Settings zurück, die aus den Properties der Angular Komponenten erzeugt werden
@@ -7569,9 +7790,9 @@ SacTinyMceCommon.propDecorators = {
7569
7790
  filetypesvideo: [{ type: Input }],
7570
7791
  height: [{ type: Input }],
7571
7792
  isrequired: [{ type: Input }],
7793
+ onsave: [{ type: Output }],
7572
7794
  validationmessagerequired: [{ type: Input }],
7573
7795
  validationmessagesummaryrequired: [{ type: Input }],
7574
- onsave: [{ type: Output }],
7575
7796
  config: [{ type: Input }]
7576
7797
  };
7577
7798
 
@@ -7603,7 +7824,7 @@ class SacTreeviewCommon extends SacBaseModelControl {
7603
7824
  /**
7604
7825
  * Property on the 'data' object that stores the expanded state. Property must be of type boolean. Default is 'expanded'
7605
7826
  */
7606
- this.attrexanded = 'expanded';
7827
+ this.attrexpanded = 'expanded';
7607
7828
  /**
7608
7829
  * 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.
7609
7830
  */
@@ -7743,10 +7964,10 @@ class SacTreeviewCommon extends SacBaseModelControl {
7743
7964
  return value === true || value === 'true';
7744
7965
  }
7745
7966
  isExpandedState(node) {
7746
- if (!node || !this.attrexanded) {
7967
+ if (!node || !this.attrexpanded) {
7747
7968
  return false;
7748
7969
  }
7749
- let value = node[this.attrexanded];
7970
+ let value = node[this.attrexpanded];
7750
7971
  return value === true || value === 'true';
7751
7972
  }
7752
7973
  isHoverState(node) {
@@ -7876,21 +8097,21 @@ class SacTreeviewCommon extends SacBaseModelControl {
7876
8097
  return null;
7877
8098
  }
7878
8099
  invertExpandedState(node) {
7879
- if (!node || !this.attrexanded) {
8100
+ if (!node || !this.attrexpanded) {
7880
8101
  return;
7881
8102
  }
7882
8103
  // Items with no children cannot be collabsed
7883
8104
  if (!this.hasChildren(node) && !(this.enableasynchload === true || this.enableasynchload === 'true')) {
7884
8105
  return;
7885
8106
  }
7886
- let value = node[this.attrexanded];
8107
+ let value = node[this.attrexpanded];
7887
8108
  if (value === true || value === 'true') {
7888
8109
  this.collabsed.emit(node);
7889
- node[this.attrexanded] = false;
8110
+ node[this.attrexpanded] = false;
7890
8111
  }
7891
8112
  else {
7892
8113
  this.expanded.emit(node);
7893
- node[this.attrexanded] = true;
8114
+ node[this.attrexpanded] = true;
7894
8115
  }
7895
8116
  }
7896
8117
  resetSelectedState(node) {
@@ -7914,7 +8135,7 @@ SacTreeviewCommon.propDecorators = {
7914
8135
  actionclicked: [{ type: Output }],
7915
8136
  attrchildren: [{ type: Input }],
7916
8137
  attrdisableaction: [{ type: Input }],
7917
- attrexanded: [{ type: Input }],
8138
+ attrexpanded: [{ type: Input }],
7918
8139
  attrhoverstate: [{ type: Input }],
7919
8140
  attricon: [{ type: Input }],
7920
8141
  attrid: [{ type: Input }],
@@ -7984,6 +8205,14 @@ class SacTooltipCommon {
7984
8205
  * Position of the tooltip at the top
7985
8206
  */
7986
8207
  this.TopPos = 0;
8208
+ /**
8209
+ * Identifier used for the E2E data attribute.
8210
+ */
8211
+ this.e2eidentifier = null;
8212
+ /**
8213
+ * name of control
8214
+ */
8215
+ this.name = createGuid();
7987
8216
  /**
7988
8217
  * Position of the picker arrow at the left
7989
8218
  */
@@ -8170,6 +8399,8 @@ SacTooltipCommon.ctorParameters = () => [
8170
8399
  ];
8171
8400
  SacTooltipCommon.propDecorators = {
8172
8401
  content: [{ type: ViewChild, args: ['container', { static: true },] }],
8402
+ e2eidentifier: [{ type: Input }],
8403
+ name: [{ type: Input }],
8173
8404
  position: [{ type: Input }],
8174
8405
  tooltiptext: [{ type: Input }],
8175
8406
  inlinemode: [{ type: Input }],
@@ -8223,9 +8454,22 @@ class SacUploadBase extends SacBaseModelControl {
8223
8454
  * Handling von neuen Files im Input Control
8224
8455
  */
8225
8456
  this.fileListener = () => {
8226
- if (this.uploadInput.nativeElement.files) {
8227
- this.uploadService.handleFileList(this.uploadInput.nativeElement.files);
8457
+ // exit if files is null or undefined
8458
+ if (!this.uploadInput.nativeElement.files) {
8459
+ return;
8228
8460
  }
8461
+ if (this.GetMaxFiles() > 0) {
8462
+ const maxFiles = this.GetMaxFiles() + this.UploadedFileCount();
8463
+ const possibleFiles = maxFiles - this.uploadInput.nativeElement.files.length;
8464
+ if (possibleFiles < 0) {
8465
+ const dataTransfer = new DataTransfer();
8466
+ const files = Array.from(this.uploadInput.nativeElement.files).splice(0, this.uploadInput.nativeElement.files.length + possibleFiles);
8467
+ // clone files
8468
+ files.forEach((file) => dataTransfer.items.add(file));
8469
+ this.uploadInput.nativeElement.files = dataTransfer.files;
8470
+ }
8471
+ }
8472
+ this.uploadService.handleFileList(this.uploadInput.nativeElement.files);
8229
8473
  };
8230
8474
  /**
8231
8475
  * Definiert das Control als Required
@@ -8552,7 +8796,7 @@ class SacUploadBase extends SacBaseModelControl {
8552
8796
  }
8553
8797
  return error;
8554
8798
  }
8555
- // #endregion Public Methods
8799
+ // #endregion Protected Methods
8556
8800
  // #region Private Methods
8557
8801
  UpdateFileCount() {
8558
8802
  // HACK: Add addition property to FormControl. Can be fixed if solution for ticket: https://github.com/angular/angular/issues/19686
@@ -8689,7 +8933,7 @@ class SacDropzoneMultipleCommon extends SacUploadBase {
8689
8933
  * Resource Key für Validation Message Required in Validation Summary
8690
8934
  */
8691
8935
  this.validationmessagesummaryminfiles = this.validationKeyService.ValidationErrorSummaryFilesMin;
8692
- // #endregion Public Methods
8936
+ // #endregion Protected Methods
8693
8937
  }
8694
8938
  // #endregion Properties
8695
8939
  // #region Public Methods
@@ -8804,6 +9048,14 @@ class SacDropzoneMultipleCommon extends SacUploadBase {
8804
9048
  }
8805
9049
  return error;
8806
9050
  }
9051
+ // #endregion Public Methods
9052
+ // #region Protected Methods
9053
+ /**
9054
+ * @inheritdoc
9055
+ */
9056
+ GetMaxFiles() {
9057
+ return this.maxfiles;
9058
+ }
8807
9059
  }
8808
9060
  SacDropzoneMultipleCommon.decorators = [
8809
9061
  { type: Directive }
@@ -8831,7 +9083,7 @@ class SacDropzoneSingleCommon extends SacUploadBase {
8831
9083
  * Höhe der Dropzone. Wert wird mit Einheit angegeben.
8832
9084
  */
8833
9085
  this.uploadheight = null;
8834
- // #endregion Public Methods
9086
+ // #endregion Protected Methods
8835
9087
  }
8836
9088
  // #endregion Properties
8837
9089
  // #region Public Methods
@@ -8914,6 +9166,14 @@ class SacDropzoneSingleCommon extends SacUploadBase {
8914
9166
  this.active = true;
8915
9167
  }
8916
9168
  }
9169
+ // #endregion Public Methods
9170
+ // #region Protected Methods
9171
+ /**
9172
+ * @inheritdoc
9173
+ */
9174
+ GetMaxFiles() {
9175
+ return 1;
9176
+ }
8917
9177
  }
8918
9178
  SacDropzoneSingleCommon.decorators = [
8919
9179
  { type: Directive }
@@ -8953,7 +9213,7 @@ class SacUploadMultipleCommon extends SacUploadBase {
8953
9213
  * Resource Key für Validation Message Required in Validation Summary
8954
9214
  */
8955
9215
  this.validationmessagesummaryminfiles = this.validationKeyService.ValidationErrorSummaryFilesMin;
8956
- // #endregion Public Methods
9216
+ // #endregion Protected Methods
8957
9217
  }
8958
9218
  // #endregion Properties
8959
9219
  // #region Public Methods
@@ -9027,6 +9287,14 @@ class SacUploadMultipleCommon extends SacUploadBase {
9027
9287
  }
9028
9288
  return error;
9029
9289
  }
9290
+ // #endregion Public Methods
9291
+ // #region Protected Methods
9292
+ /**
9293
+ * @inheritdoc
9294
+ */
9295
+ GetMaxFiles() {
9296
+ return this.maxfiles;
9297
+ }
9030
9298
  }
9031
9299
  SacUploadMultipleCommon.decorators = [
9032
9300
  { type: Directive }
@@ -9055,7 +9323,7 @@ class SacUploadSingleCommon extends SacUploadBase {
9055
9323
  * Label für Upload Button
9056
9324
  */
9057
9325
  this.buttonupload = '';
9058
- // #endregion Public Methods
9326
+ // #endregion Protected Methods
9059
9327
  }
9060
9328
  // #endregion Properties
9061
9329
  // #region Public Methods
@@ -9088,6 +9356,14 @@ class SacUploadSingleCommon extends SacUploadBase {
9088
9356
  }
9089
9357
  }
9090
9358
  }
9359
+ // #endregion Public Methods
9360
+ // #region Protected Methods
9361
+ /**
9362
+ * @inheritdoc
9363
+ */
9364
+ GetMaxFiles() {
9365
+ return 1;
9366
+ }
9091
9367
  }
9092
9368
  SacUploadSingleCommon.decorators = [
9093
9369
  { type: Directive }
@@ -9539,43 +9815,35 @@ SacMultilanguageInputAreaCommon.propDecorators = {
9539
9815
  */
9540
9816
  class SacConfirmCommon {
9541
9817
  constructor() {
9542
- //#region Input / Output Properties
9543
- /**
9544
- * Event wenn Dialog geschlossen wird
9545
- */
9546
- this.onconfirm = new EventEmitter();
9547
- /**
9548
- * Dialog Titel für Confirm Dialog
9549
- */
9550
- this.title = '';
9818
+ // #region Properties
9551
9819
  /**
9552
- * Nachricht die auf dem Dialog angezeigt wird
9820
+ * Map mit Buttons die in Dialog angezeigt werden.
9553
9821
  */
9554
- this.message = '';
9822
+ this.buttons = [];
9555
9823
  /**
9556
9824
  * Icon welches auf dem Dialog angezeigt wird
9557
9825
  */
9558
9826
  this.image = '';
9559
- /**
9560
- * Map mit Buttons die in Dialog angezeigt werden.
9561
- */
9562
- this.buttons = [];
9563
- //#endregion
9564
- //#region Internal Properties and Methods
9565
9827
  /**
9566
9828
  * Definiert ob der Dialog sichtbar ist
9567
9829
  */
9568
9830
  this.isvisible = false;
9569
- //#endregion
9570
- }
9571
- /**
9572
- * Definiert, ob für den Dialog ein Image definiert wurde
9573
- */
9574
- hasImage() {
9575
- return this.image !== '';
9831
+ /**
9832
+ * Nachricht die auf dem Dialog angezeigt wird
9833
+ */
9834
+ this.message = '';
9835
+ /**
9836
+ * Event wenn Dialog geschlossen wird
9837
+ */
9838
+ this.onconfirm = new EventEmitter();
9839
+ /**
9840
+ * Dialog Titel für Confirm Dialog
9841
+ */
9842
+ this.title = '';
9843
+ // #endregion Public Methods
9576
9844
  }
9577
- //#endregion
9578
- //#region Public Methods
9845
+ // #endregion Properties
9846
+ // #region Public Methods
9579
9847
  /**
9580
9848
  * Action wenn Button auf Dialog geklickt wurde. Löst den EventEmitter aus und blendet den Dialog aus.
9581
9849
  * @param action
@@ -9585,10 +9853,10 @@ class SacConfirmCommon {
9585
9853
  this.isvisible = false;
9586
9854
  }
9587
9855
  /**
9588
- * Zeigt den Dialog an
9856
+ * Definiert, ob für den Dialog ein Image definiert wurde
9589
9857
  */
9590
- show() {
9591
- this.isvisible = true;
9858
+ hasImage() {
9859
+ return this.image !== '';
9592
9860
  }
9593
9861
  /**
9594
9862
  * Blendet den Dialog aus
@@ -9596,16 +9864,22 @@ class SacConfirmCommon {
9596
9864
  hide() {
9597
9865
  this.isvisible = false;
9598
9866
  }
9867
+ /**
9868
+ * Zeigt den Dialog an
9869
+ */
9870
+ show() {
9871
+ this.isvisible = true;
9872
+ }
9599
9873
  }
9600
9874
  SacConfirmCommon.decorators = [
9601
9875
  { type: Directive }
9602
9876
  ];
9603
9877
  SacConfirmCommon.propDecorators = {
9604
- onconfirm: [{ type: Output }],
9605
- title: [{ type: Input }],
9606
- message: [{ type: Input }],
9878
+ buttons: [{ type: Input }],
9607
9879
  image: [{ type: Input }],
9608
- buttons: [{ type: Input }]
9880
+ message: [{ type: Input }],
9881
+ onconfirm: [{ type: Output }],
9882
+ title: [{ type: Input }]
9609
9883
  };
9610
9884
 
9611
9885
  /**
@@ -10119,10 +10393,18 @@ class SacContextmenuCommon {
10119
10393
  * Extra CSS Klassen für das Control
10120
10394
  */
10121
10395
  this.cssclass = '';
10396
+ /**
10397
+ * Identifier used for the E2E data attribute.
10398
+ */
10399
+ this.e2eidentifier = null;
10122
10400
  /**
10123
10401
  * Definiert ob das Dropdown offen ist.
10124
10402
  */
10125
10403
  this.isopen = false;
10404
+ /**
10405
+ * name of control
10406
+ */
10407
+ this.name = createGuid();
10126
10408
  /**
10127
10409
  * The preferred placement of the dropdown.
10128
10410
  *
@@ -10268,8 +10550,10 @@ SacContextmenuCommon.propDecorators = {
10268
10550
  buttontemplate: [{ type: Input }],
10269
10551
  container: [{ type: Input }],
10270
10552
  cssclass: [{ type: Input }],
10553
+ e2eidentifier: [{ type: Input }],
10271
10554
  isopen: [{ type: Input }],
10272
10555
  menuitems: [{ type: ContentChildren, args: [SacContextmenuItemCommon,] }],
10556
+ name: [{ type: Input }],
10273
10557
  placement: [{ type: Input }],
10274
10558
  onClick: [{ type: HostListener, args: ['document:click', ['$event.target'],] }]
10275
10559
  };
@@ -10918,6 +11202,53 @@ SacFileBrowserCommon.propDecorators = {
10918
11202
  exitEditMode: [{ type: HostListener, args: ['document:click', ['$event.target'],] }]
10919
11203
  };
10920
11204
 
11205
+ class SacTestingAttributePipe {
11206
+ // #endregion Properties
11207
+ // #region Constructors
11208
+ /**
11209
+ *
11210
+ */
11211
+ constructor(injector) {
11212
+ // get attribute state from config
11213
+ const configurationService = injector.get(SACCONFIGURATION_SERVICE, new SacDefaultConfigurationService());
11214
+ this.isEnabled = configurationService.EnableE2EAttributes;
11215
+ }
11216
+ // #endregion Constructors
11217
+ // #region Public Methods
11218
+ transform(controlname, e2eattribute) {
11219
+ // return null to disable attribute if disabled
11220
+ if (!this.isEnabled) {
11221
+ return null;
11222
+ }
11223
+ if (e2eattribute) {
11224
+ return e2eattribute;
11225
+ }
11226
+ if (controlname) {
11227
+ return controlname;
11228
+ }
11229
+ // disable attribute if name and e2e attribute is not set
11230
+ return null;
11231
+ }
11232
+ }
11233
+ SacTestingAttributePipe.decorators = [
11234
+ { type: Pipe, args: [{
11235
+ name: 'testingattribute',
11236
+ },] }
11237
+ ];
11238
+ SacTestingAttributePipe.ctorParameters = () => [
11239
+ { type: Injector }
11240
+ ];
11241
+
11242
+ class SACCommonUtliltiesModule {
11243
+ }
11244
+ SACCommonUtliltiesModule.decorators = [
11245
+ { type: NgModule, args: [{
11246
+ declarations: [SacTestingAttributePipe],
11247
+ imports: [],
11248
+ exports: [SacTestingAttributePipe],
11249
+ },] }
11250
+ ];
11251
+
10921
11252
  /**
10922
11253
  * Model für Sprachen
10923
11254
  */
@@ -10936,7 +11267,7 @@ SACCommonListboxOptionModule.decorators = [
10936
11267
  { type: NgModule, args: [{
10937
11268
  declarations: [],
10938
11269
  imports: [],
10939
- exports: []
11270
+ exports: [],
10940
11271
  },] }
10941
11272
  ];
10942
11273
 
@@ -10948,5 +11279,5 @@ SACCommonListboxOptionModule.decorators = [
10948
11279
  * Generated bundle index. Do not edit.
10949
11280
  */
10950
11281
 
10951
- 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 };
11282
+ export { ControlHeight, GridResponse, IconType, Interpolation, LanguageModel, PagerData, PagerRequest, Positioning, SACCONFIGURATION_SERVICE, SACCommonListboxOptionModule, SACCommonUtliltiesModule, 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, SacTestingAttributePipe, SacTimeCommon, SacTinyMceCommon, SacTooltipCommon, SacTreeviewCommon, SacUploadBase, SacUploadFile, SacUploadMultipleCommon, SacUploadSingleCommon, SacValidationSummaryCommon, SacWizardCommon, SacWizardItemCommon, ServiceConfirmCommon, SortDescriptor, SortOrder, TooltipPosition, Validation, ValidationErrorItem, convertToBoolean, convertToNumber, isDefined, mapToObject, positionElements, positionService };
10952
11283
  //# sourceMappingURL=simpleangularcontrols-sac-common.js.map