@sebgroup/green-angular 3.6.2 → 3.7.0

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 (206) hide show
  1. package/esm2020/lib/context-menu/context-menu.component.mjs +5 -5
  2. package/esm2020/lib/context-menu/context-menu.module.mjs +2 -2
  3. package/esm2020/lib/datepicker/datepicker.component.mjs +5 -5
  4. package/esm2020/lib/datepicker/datepicker.module.mjs +5 -6
  5. package/esm2020/lib/dropdown/dropdown.component.mjs +5 -5
  6. package/esm2020/lib/dropdown/dropdown.module.mjs +2 -2
  7. package/esm2020/lib/shared/index.mjs +2 -1
  8. package/esm2020/src/lib/accordion/accordion-list-item.component.mjs +47 -0
  9. package/esm2020/src/lib/accordion/accordion.component.mjs +72 -0
  10. package/esm2020/src/lib/accordion/accordion.module.mjs +19 -0
  11. package/esm2020/src/lib/accordion/index.mjs +4 -0
  12. package/esm2020/src/lib/accordion/sebgroup-green-angular-src-lib-accordion.mjs +5 -0
  13. package/esm2020/src/lib/badge/badge.component.mjs +80 -0
  14. package/esm2020/src/lib/badge/badge.module.mjs +18 -0
  15. package/esm2020/src/lib/badge/index.mjs +3 -0
  16. package/esm2020/src/lib/badge/sebgroup-green-angular-src-lib-badge.mjs +5 -0
  17. package/esm2020/src/lib/button/button.component.mjs +28 -0
  18. package/esm2020/src/lib/button/button.module.mjs +18 -0
  19. package/esm2020/src/lib/button/index.mjs +3 -0
  20. package/esm2020/src/lib/button/sebgroup-green-angular-src-lib-button.mjs +5 -0
  21. package/esm2020/src/lib/cell-table/cell-table-item.component.mjs +91 -0
  22. package/esm2020/src/lib/cell-table/cell-table.component.mjs +97 -0
  23. package/esm2020/src/lib/cell-table/cell-table.module.mjs +26 -0
  24. package/esm2020/src/lib/cell-table/cell-table.types.mjs +7 -0
  25. package/esm2020/src/lib/cell-table/cell-underline.directive.mjs +55 -0
  26. package/esm2020/src/lib/cell-table/index.mjs +4 -0
  27. package/esm2020/src/lib/cell-table/sebgroup-green-angular-src-lib-cell-table.mjs +5 -0
  28. package/esm2020/src/lib/context-menu/context-menu.component.mjs +80 -0
  29. package/esm2020/src/lib/context-menu/context-menu.module.mjs +20 -0
  30. package/esm2020/src/lib/context-menu/index.mjs +3 -0
  31. package/esm2020/src/lib/context-menu/sebgroup-green-angular-src-lib-context-menu.mjs +5 -0
  32. package/esm2020/src/lib/datepicker/datepicker.component.mjs +138 -0
  33. package/esm2020/src/lib/datepicker/datepicker.module.mjs +20 -0
  34. package/esm2020/src/lib/datepicker/index.mjs +3 -0
  35. package/esm2020/src/lib/datepicker/sebgroup-green-angular-src-lib-datepicker.mjs +5 -0
  36. package/esm2020/src/lib/dropdown/dropdown-button.directive.mjs +16 -0
  37. package/esm2020/src/lib/dropdown/dropdown-option.directive.mjs +16 -0
  38. package/esm2020/src/lib/dropdown/dropdown.component.mjs +212 -0
  39. package/esm2020/src/lib/dropdown/dropdown.module.mjs +34 -0
  40. package/esm2020/src/lib/dropdown/index.mjs +5 -0
  41. package/esm2020/src/lib/dropdown/sebgroup-green-angular-src-lib-dropdown.mjs +5 -0
  42. package/esm2020/src/lib/in-page-wizard/in-page-wizard-step-card.component.mjs +50 -0
  43. package/esm2020/src/lib/in-page-wizard/in-page-wizard.module.mjs +18 -0
  44. package/esm2020/src/lib/in-page-wizard/index.mjs +3 -0
  45. package/esm2020/src/lib/in-page-wizard/sebgroup-green-angular-src-lib-in-page-wizard.mjs +5 -0
  46. package/esm2020/src/lib/modal/index.mjs +5 -0
  47. package/esm2020/src/lib/modal/modal-footer.directive.mjs +16 -0
  48. package/esm2020/src/lib/modal/modal-header.directive.mjs +16 -0
  49. package/esm2020/src/lib/modal/modal.component.mjs +251 -0
  50. package/esm2020/src/lib/modal/modal.module.mjs +41 -0
  51. package/esm2020/src/lib/modal/sebgroup-green-angular-src-lib-modal.mjs +5 -0
  52. package/esm2020/src/lib/pagination/index.mjs +3 -0
  53. package/esm2020/src/lib/pagination/pagination.component.mjs +175 -0
  54. package/esm2020/src/lib/pagination/pagination.module.mjs +18 -0
  55. package/esm2020/src/lib/pagination/sebgroup-green-angular-src-lib-pagination.mjs +5 -0
  56. package/esm2020/src/lib/progress-circle/index.mjs +3 -0
  57. package/esm2020/src/lib/progress-circle/progress-circle.component.mjs +41 -0
  58. package/esm2020/src/lib/progress-circle/progress-circle.module.mjs +18 -0
  59. package/esm2020/src/lib/progress-circle/sebgroup-green-angular-src-lib-progress-circle.mjs +5 -0
  60. package/esm2020/src/lib/segmented-control/index.mjs +3 -0
  61. package/esm2020/src/lib/segmented-control/sebgroup-green-angular-src-lib-segmented-control.mjs +5 -0
  62. package/esm2020/src/lib/segmented-control/segmented-control.component.mjs +35 -0
  63. package/esm2020/src/lib/segmented-control/segmented-control.module.mjs +19 -0
  64. package/esm2020/src/lib/shared/core-element/core-element.directive.mjs +33 -0
  65. package/esm2020/src/lib/shared/core-element/core-element.module.mjs +18 -0
  66. package/esm2020/src/lib/shared/core-element/index.mjs +3 -0
  67. package/esm2020/src/lib/shared/index.mjs +4 -0
  68. package/esm2020/src/lib/shared/on-scroll.directive.mjs +47 -0
  69. package/esm2020/src/lib/shared/sebgroup-green-angular-src-lib-shared.mjs +5 -0
  70. package/esm2020/src/lib/shared/shared.module.mjs +18 -0
  71. package/esm2020/src/lib/slider/index.mjs +3 -0
  72. package/esm2020/src/lib/slider/sebgroup-green-angular-src-lib-slider.mjs +5 -0
  73. package/esm2020/src/lib/slider/slider.component.mjs +113 -0
  74. package/esm2020/src/lib/slider/slider.module.mjs +19 -0
  75. package/esm2020/src/lib/sortable-list/index.mjs +3 -0
  76. package/esm2020/src/lib/sortable-list/sebgroup-green-angular-src-lib-sortable-list.mjs +5 -0
  77. package/esm2020/src/lib/sortable-list/sortable-list.component.mjs +181 -0
  78. package/esm2020/src/lib/sortable-list/sortable-list.module.mjs +20 -0
  79. package/fesm2015/sebgroup-green-angular-src-lib-accordion.mjs +140 -0
  80. package/fesm2015/sebgroup-green-angular-src-lib-accordion.mjs.map +1 -0
  81. package/fesm2015/sebgroup-green-angular-src-lib-badge.mjs +102 -0
  82. package/fesm2015/sebgroup-green-angular-src-lib-badge.mjs.map +1 -0
  83. package/fesm2015/sebgroup-green-angular-src-lib-button.mjs +50 -0
  84. package/fesm2015/sebgroup-green-angular-src-lib-button.mjs.map +1 -0
  85. package/fesm2015/sebgroup-green-angular-src-lib-cell-table.mjs +272 -0
  86. package/fesm2015/sebgroup-green-angular-src-lib-cell-table.mjs.map +1 -0
  87. package/fesm2015/sebgroup-green-angular-src-lib-context-menu.mjs +104 -0
  88. package/fesm2015/sebgroup-green-angular-src-lib-context-menu.mjs.map +1 -0
  89. package/fesm2015/sebgroup-green-angular-src-lib-datepicker.mjs +166 -0
  90. package/fesm2015/sebgroup-green-angular-src-lib-datepicker.mjs.map +1 -0
  91. package/fesm2015/sebgroup-green-angular-src-lib-dropdown.mjs +266 -0
  92. package/fesm2015/sebgroup-green-angular-src-lib-dropdown.mjs.map +1 -0
  93. package/fesm2015/sebgroup-green-angular-src-lib-in-page-wizard.mjs +72 -0
  94. package/fesm2015/sebgroup-green-angular-src-lib-in-page-wizard.mjs.map +1 -0
  95. package/fesm2015/sebgroup-green-angular-src-lib-modal.mjs +321 -0
  96. package/fesm2015/sebgroup-green-angular-src-lib-modal.mjs.map +1 -0
  97. package/fesm2015/sebgroup-green-angular-src-lib-pagination.mjs +197 -0
  98. package/fesm2015/sebgroup-green-angular-src-lib-pagination.mjs.map +1 -0
  99. package/fesm2015/sebgroup-green-angular-src-lib-progress-circle.mjs +63 -0
  100. package/fesm2015/sebgroup-green-angular-src-lib-progress-circle.mjs.map +1 -0
  101. package/fesm2015/sebgroup-green-angular-src-lib-segmented-control.mjs +58 -0
  102. package/fesm2015/sebgroup-green-angular-src-lib-segmented-control.mjs.map +1 -0
  103. package/fesm2015/sebgroup-green-angular-src-lib-shared.mjs +114 -0
  104. package/fesm2015/sebgroup-green-angular-src-lib-shared.mjs.map +1 -0
  105. package/fesm2015/sebgroup-green-angular-src-lib-slider.mjs +136 -0
  106. package/fesm2015/sebgroup-green-angular-src-lib-slider.mjs.map +1 -0
  107. package/fesm2015/sebgroup-green-angular-src-lib-sortable-list.mjs +204 -0
  108. package/fesm2015/sebgroup-green-angular-src-lib-sortable-list.mjs.map +1 -0
  109. package/fesm2015/sebgroup-green-angular.mjs +84 -80
  110. package/fesm2015/sebgroup-green-angular.mjs.map +1 -1
  111. package/fesm2020/sebgroup-green-angular-src-lib-accordion.mjs +138 -0
  112. package/fesm2020/sebgroup-green-angular-src-lib-accordion.mjs.map +1 -0
  113. package/fesm2020/sebgroup-green-angular-src-lib-badge.mjs +102 -0
  114. package/fesm2020/sebgroup-green-angular-src-lib-badge.mjs.map +1 -0
  115. package/fesm2020/sebgroup-green-angular-src-lib-button.mjs +50 -0
  116. package/fesm2020/sebgroup-green-angular-src-lib-button.mjs.map +1 -0
  117. package/fesm2020/sebgroup-green-angular-src-lib-cell-table.mjs +270 -0
  118. package/fesm2020/sebgroup-green-angular-src-lib-cell-table.mjs.map +1 -0
  119. package/fesm2020/sebgroup-green-angular-src-lib-context-menu.mjs +104 -0
  120. package/fesm2020/sebgroup-green-angular-src-lib-context-menu.mjs.map +1 -0
  121. package/fesm2020/sebgroup-green-angular-src-lib-datepicker.mjs +162 -0
  122. package/fesm2020/sebgroup-green-angular-src-lib-datepicker.mjs.map +1 -0
  123. package/fesm2020/sebgroup-green-angular-src-lib-dropdown.mjs +274 -0
  124. package/fesm2020/sebgroup-green-angular-src-lib-dropdown.mjs.map +1 -0
  125. package/fesm2020/sebgroup-green-angular-src-lib-in-page-wizard.mjs +72 -0
  126. package/fesm2020/sebgroup-green-angular-src-lib-in-page-wizard.mjs.map +1 -0
  127. package/fesm2020/sebgroup-green-angular-src-lib-modal.mjs +319 -0
  128. package/fesm2020/sebgroup-green-angular-src-lib-modal.mjs.map +1 -0
  129. package/fesm2020/sebgroup-green-angular-src-lib-pagination.mjs +197 -0
  130. package/fesm2020/sebgroup-green-angular-src-lib-pagination.mjs.map +1 -0
  131. package/fesm2020/sebgroup-green-angular-src-lib-progress-circle.mjs +63 -0
  132. package/fesm2020/sebgroup-green-angular-src-lib-progress-circle.mjs.map +1 -0
  133. package/fesm2020/sebgroup-green-angular-src-lib-segmented-control.mjs +58 -0
  134. package/fesm2020/sebgroup-green-angular-src-lib-segmented-control.mjs.map +1 -0
  135. package/fesm2020/sebgroup-green-angular-src-lib-shared.mjs +113 -0
  136. package/fesm2020/sebgroup-green-angular-src-lib-shared.mjs.map +1 -0
  137. package/fesm2020/sebgroup-green-angular-src-lib-slider.mjs +135 -0
  138. package/fesm2020/sebgroup-green-angular-src-lib-slider.mjs.map +1 -0
  139. package/fesm2020/sebgroup-green-angular-src-lib-sortable-list.mjs +204 -0
  140. package/fesm2020/sebgroup-green-angular-src-lib-sortable-list.mjs.map +1 -0
  141. package/fesm2020/sebgroup-green-angular.mjs +84 -80
  142. package/fesm2020/sebgroup-green-angular.mjs.map +1 -1
  143. package/lib/context-menu/context-menu.component.d.ts +2 -2
  144. package/lib/context-menu/context-menu.module.d.ts +1 -1
  145. package/lib/datepicker/datepicker.component.d.ts +1 -1
  146. package/lib/datepicker/datepicker.module.d.ts +2 -3
  147. package/lib/dropdown/dropdown.component.d.ts +2 -2
  148. package/lib/dropdown/dropdown.module.d.ts +1 -1
  149. package/lib/shared/index.d.ts +1 -0
  150. package/package.json +122 -2
  151. package/src/lib/accordion/accordion-list-item.component.d.ts +15 -0
  152. package/src/lib/accordion/accordion.component.d.ts +16 -0
  153. package/src/lib/accordion/accordion.module.d.ts +9 -0
  154. package/src/lib/accordion/index.d.ts +3 -0
  155. package/src/lib/badge/badge.component.d.ts +25 -0
  156. package/src/lib/badge/badge.module.d.ts +8 -0
  157. package/src/lib/badge/index.d.ts +2 -0
  158. package/src/lib/button/button.component.d.ts +9 -0
  159. package/src/lib/button/button.module.d.ts +8 -0
  160. package/src/lib/button/index.d.ts +2 -0
  161. package/src/lib/cell-table/cell-table-item.component.d.ts +14 -0
  162. package/src/lib/cell-table/cell-table.component.d.ts +44 -0
  163. package/src/lib/cell-table/cell-table.module.d.ts +10 -0
  164. package/src/lib/cell-table/cell-table.types.d.ts +34 -0
  165. package/src/lib/cell-table/cell-underline.directive.d.ts +14 -0
  166. package/src/lib/cell-table/index.d.ts +3 -0
  167. package/src/lib/context-menu/context-menu.component.d.ts +49 -0
  168. package/src/lib/context-menu/context-menu.module.d.ts +9 -0
  169. package/src/lib/context-menu/index.d.ts +2 -0
  170. package/src/lib/datepicker/datepicker.component.d.ts +66 -0
  171. package/src/lib/datepicker/datepicker.module.d.ts +9 -0
  172. package/src/lib/datepicker/index.d.ts +2 -0
  173. package/src/lib/dropdown/dropdown-button.directive.d.ts +8 -0
  174. package/src/lib/dropdown/dropdown-option.directive.d.ts +8 -0
  175. package/src/lib/dropdown/dropdown.component.d.ts +79 -0
  176. package/src/lib/dropdown/dropdown.module.d.ts +11 -0
  177. package/src/lib/dropdown/index.d.ts +4 -0
  178. package/src/lib/in-page-wizard/in-page-wizard-step-card.component.d.ts +17 -0
  179. package/src/lib/in-page-wizard/in-page-wizard.module.d.ts +8 -0
  180. package/src/lib/in-page-wizard/index.d.ts +2 -0
  181. package/src/lib/modal/index.d.ts +4 -0
  182. package/src/lib/modal/modal-footer.directive.d.ts +8 -0
  183. package/src/lib/modal/modal-header.directive.d.ts +8 -0
  184. package/src/lib/modal/modal.component.d.ts +65 -0
  185. package/src/lib/modal/modal.module.d.ts +11 -0
  186. package/src/lib/pagination/index.d.ts +2 -0
  187. package/src/lib/pagination/pagination.component.d.ts +42 -0
  188. package/src/lib/pagination/pagination.module.d.ts +8 -0
  189. package/src/lib/progress-circle/index.d.ts +2 -0
  190. package/src/lib/progress-circle/progress-circle.component.d.ts +14 -0
  191. package/src/lib/progress-circle/progress-circle.module.d.ts +8 -0
  192. package/src/lib/segmented-control/index.d.ts +2 -0
  193. package/src/lib/segmented-control/segmented-control.component.d.ts +11 -0
  194. package/src/lib/segmented-control/segmented-control.module.d.ts +9 -0
  195. package/src/lib/shared/core-element/core-element.directive.d.ts +13 -0
  196. package/src/lib/shared/core-element/core-element.module.d.ts +8 -0
  197. package/src/lib/shared/core-element/index.d.ts +2 -0
  198. package/src/lib/shared/index.d.ts +3 -0
  199. package/src/lib/shared/on-scroll.directive.d.ts +14 -0
  200. package/src/lib/shared/shared.module.d.ts +8 -0
  201. package/src/lib/slider/index.d.ts +2 -0
  202. package/src/lib/slider/slider.component.d.ts +38 -0
  203. package/src/lib/slider/slider.module.d.ts +9 -0
  204. package/src/lib/sortable-list/index.d.ts +2 -0
  205. package/src/lib/sortable-list/sortable-list.component.d.ts +91 -0
  206. package/src/lib/sortable-list/sortable-list.module.d.ts +10 -0
@@ -0,0 +1,272 @@
1
+ import * as i0 from '@angular/core';
2
+ import { Directive, Input, Component, QueryList, EventEmitter, ChangeDetectionStrategy, ViewChildren, Output, NgModule } from '@angular/core';
3
+ import * as i2 from '@angular/common';
4
+ import { CommonModule } from '@angular/common';
5
+ import * as i1 from '@angular/platform-browser';
6
+
7
+ class SlidingUnderlineDirective {
8
+ constructor(element) {
9
+ this.element = element;
10
+ }
11
+ ngOnInit() {
12
+ var _a;
13
+ if ((_a = this.element) === null || _a === void 0 ? void 0 : _a.nativeElement) {
14
+ this.element.nativeElement.classList.add('slider');
15
+ this.element.nativeElement.addEventListener('animationend', () => {
16
+ this.element.nativeElement.classList.remove('left', 'slider-positive', 'slider-negative');
17
+ });
18
+ }
19
+ }
20
+ ngOnChanges(changes) {
21
+ var _a;
22
+ if (!this.disabled) {
23
+ if (changes.slidingUnderline &&
24
+ changes.key &&
25
+ !changes.slidingUnderline.isFirstChange() &&
26
+ !((_a = changes === null || changes === void 0 ? void 0 : changes.key) === null || _a === void 0 ? void 0 : _a.isFirstChange())) {
27
+ if (changes.key.currentValue === changes.key.previousValue) {
28
+ this.addAnimation(changes.slidingUnderline.currentValue, changes.slidingUnderline.previousValue);
29
+ }
30
+ }
31
+ else {
32
+ if (changes.slidingUnderline &&
33
+ !changes.slidingUnderline.isFirstChange()) {
34
+ this.addAnimation(changes.slidingUnderline.currentValue, changes.slidingUnderline.previousValue);
35
+ }
36
+ }
37
+ }
38
+ }
39
+ addAnimation(current, previous) {
40
+ if (current > previous)
41
+ this.element.nativeElement.classList.add('slider-positive');
42
+ else
43
+ this.element.nativeElement.classList.add('slider-negative');
44
+ this.element.nativeElement.classList.add('left');
45
+ }
46
+ }
47
+ SlidingUnderlineDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: SlidingUnderlineDirective, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Directive });
48
+ SlidingUnderlineDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.2.9", type: SlidingUnderlineDirective, selector: "[nggSlidingUnderline]", inputs: { nggSlidingUnderline: "nggSlidingUnderline", key: "key", disabled: "disabled" }, usesOnChanges: true, ngImport: i0 });
49
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: SlidingUnderlineDirective, decorators: [{
50
+ type: Directive,
51
+ args: [{
52
+ selector: '[nggSlidingUnderline]',
53
+ }]
54
+ }], ctorParameters: function () { return [{ type: i0.ElementRef }]; }, propDecorators: { nggSlidingUnderline: [{
55
+ type: Input
56
+ }], key: [{
57
+ type: Input
58
+ }], disabled: [{
59
+ type: Input
60
+ }] } });
61
+
62
+ class CellTableItemComponent {
63
+ constructor(sanitizer) {
64
+ this.sanitizer = sanitizer;
65
+ this.valueType = 'string';
66
+ this.id = '';
67
+ this.getSignColor = (value) => {
68
+ if (/[−-]/.test(String(value)))
69
+ return 'text-danger';
70
+ else if (/[1-9]/.test(String(value)))
71
+ return 'text-success';
72
+ return '';
73
+ };
74
+ }
75
+ transformHTML(value) {
76
+ if (value && value.length) {
77
+ return this.sanitizer.bypassSecurityTrustHtml(value);
78
+ }
79
+ else {
80
+ return '';
81
+ }
82
+ }
83
+ }
84
+ CellTableItemComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: CellTableItemComponent, deps: [{ token: i1.DomSanitizer }], target: i0.ɵɵFactoryTarget.Component });
85
+ CellTableItemComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.9", type: CellTableItemComponent, selector: "[nggCellTableItem]", inputs: { row: "row", valueType: "valueType", id: "id" }, ngImport: i0, template: `
86
+ <ng-container [ngSwitch]="valueType">
87
+ <span *ngSwitchCase="'string'">{{ row || '–' }}</span>
88
+ <span *ngSwitchCase="'number'">{{ (row | number) || '–' }}</span>
89
+ <span *ngSwitchCase="'datetime'">{{
90
+ (row | date: 'HH:mm:ss') || '–'
91
+ }}</span>
92
+ <span *ngSwitchCase="'date'">{{
93
+ (row | date: 'YYYY-MM-dd') || '–'
94
+ }}</span>
95
+ <span
96
+ *ngSwitchCase="'custom-html'"
97
+ [innerHtml]="transformHTML(row) || '–'"
98
+ ></span>
99
+ <span *ngSwitchCase="'sign'" [ngClass]="getSignColor(row)">{{
100
+ row || '–'
101
+ }}</span>
102
+ <span *ngSwitchCase="'pct'">{{ row || '–' }}</span>
103
+ <span *ngSwitchCase="'streamSign'" [nggSlidingUnderline]="row">{{
104
+ row || '–'
105
+ }}</span>
106
+ <span *ngSwitchDefault>–</span>
107
+ </ng-container>
108
+ `, isInline: true, dependencies: [{ kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { kind: "directive", type: i2.NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }, { kind: "directive", type: i2.NgSwitchDefault, selector: "[ngSwitchDefault]" }, { kind: "directive", type: SlidingUnderlineDirective, selector: "[nggSlidingUnderline]", inputs: ["nggSlidingUnderline", "key", "disabled"] }, { kind: "pipe", type: i2.DecimalPipe, name: "number" }, { kind: "pipe", type: i2.DatePipe, name: "date" }] });
109
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: CellTableItemComponent, decorators: [{
110
+ type: Component,
111
+ args: [{
112
+ // eslint-disable-next-line @angular-eslint/component-selector
113
+ selector: '[nggCellTableItem]',
114
+ template: `
115
+ <ng-container [ngSwitch]="valueType">
116
+ <span *ngSwitchCase="'string'">{{ row || '–' }}</span>
117
+ <span *ngSwitchCase="'number'">{{ (row | number) || '–' }}</span>
118
+ <span *ngSwitchCase="'datetime'">{{
119
+ (row | date: 'HH:mm:ss') || '–'
120
+ }}</span>
121
+ <span *ngSwitchCase="'date'">{{
122
+ (row | date: 'YYYY-MM-dd') || '–'
123
+ }}</span>
124
+ <span
125
+ *ngSwitchCase="'custom-html'"
126
+ [innerHtml]="transformHTML(row) || '–'"
127
+ ></span>
128
+ <span *ngSwitchCase="'sign'" [ngClass]="getSignColor(row)">{{
129
+ row || '–'
130
+ }}</span>
131
+ <span *ngSwitchCase="'pct'">{{ row || '–' }}</span>
132
+ <span *ngSwitchCase="'streamSign'" [nggSlidingUnderline]="row">{{
133
+ row || '–'
134
+ }}</span>
135
+ <span *ngSwitchDefault>–</span>
136
+ </ng-container>
137
+ `,
138
+ }]
139
+ }], ctorParameters: function () { return [{ type: i1.DomSanitizer }]; }, propDecorators: { row: [{
140
+ type: Input
141
+ }], valueType: [{
142
+ type: Input
143
+ }], id: [{
144
+ type: Input
145
+ }] } });
146
+
147
+ class NggCellTableComponent {
148
+ constructor() {
149
+ this.items = new QueryList();
150
+ /** Make the most left element wrap */
151
+ this.overflowReverse = false;
152
+ /** List of table headers */
153
+ this.headerList = [];
154
+ /** List of data */
155
+ this.rows = [];
156
+ /** Make rows clickable and add arrow to the right */
157
+ this.clickableRows = false;
158
+ /** Label for the chevron of clickable rows */
159
+ this.clickLabel = 'View details';
160
+ /** Callback when a row is clicked */
161
+ this.rowClicked = new EventEmitter();
162
+ // ------------- EVENTS ------------------
163
+ /**
164
+ * handles the logic for when a row is clicked
165
+ * @param {TableRowClickedEvent} value the TableRowClickedEvent
166
+ */
167
+ this.handleClickRow = (value) => {
168
+ if (this.clickableRows)
169
+ this.rowClicked.emit(value);
170
+ };
171
+ this.getValueTypeFromMain = () => {
172
+ const getMain = this.headerList.find((x) => x.main);
173
+ if (getMain)
174
+ return getMain.valueType || '';
175
+ return '';
176
+ };
177
+ this.getTableHeaderListValueFromNonMain = (header) => {
178
+ if (header.valueType)
179
+ return header.valueType || '';
180
+ return '';
181
+ };
182
+ this.mainHeader = (row) => {
183
+ const getMain = this.headerList.find((x) => x.main);
184
+ if (row && getMain) {
185
+ return {
186
+ value: row[getMain.tableKeySelector],
187
+ valueType: getMain.valueType || 'string',
188
+ tableKeySelector: getMain.tableKeySelector,
189
+ };
190
+ }
191
+ return {
192
+ value: '-',
193
+ valueType: 'string',
194
+ tableKeySelector: '-',
195
+ };
196
+ };
197
+ this.headerNoneMain = (headers) => {
198
+ if (this.overflowReverse)
199
+ return headers.filter((x) => !x.main).reverse();
200
+ return headers.filter((x) => !x.main);
201
+ };
202
+ this.getTableKeySelector = (row) => {
203
+ return this.mainHeader(row).tableKeySelector + row.rowId;
204
+ };
205
+ }
206
+ // ------- TRACKBY FOR STREAM ------------
207
+ trackByrowId(_, b) {
208
+ return b.rowId;
209
+ }
210
+ KeySelector(_, b) {
211
+ return b.tableKeySelector;
212
+ }
213
+ }
214
+ NggCellTableComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: NggCellTableComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
215
+ NggCellTableComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.9", type: NggCellTableComponent, selector: "ngg-cell-table", inputs: { minWidth: "minWidth", overflowReverse: "overflowReverse", className: "className", headerList: "headerList", rows: "rows", clickableRows: "clickableRows", clickLabel: "clickLabel" }, outputs: { rowClicked: "rowClicked" }, viewQueries: [{ propertyName: "items", predicate: ["items"], descendants: true }], ngImport: i0, template: "<div #targetElement role=\"table\" [ngClass]=\"className\">\n <div class=\"cell-table-table d-flex flex-column\">\n <div\n *ngFor=\"let row of rows; trackBy: trackByrowId\"\n (click)=\"handleClickRow(row)\"\n class=\"cell-table--row-wrapper\"\n role=\"rowgroup\"\n [class.is-clickable]=\"clickableRows\"\n >\n <div>\n <div #items [class.overflow-reverse]=\"overflowReverse\">\n <!-- Main header -->\n <div role=\"row\">\n <div\n nggCellTableItem\n [row]=\"mainHeader(row).value\"\n [valueType]=\"getValueTypeFromMain()\"\n [attr.valueType]=\"getValueTypeFromMain()\"\n [attr.id]=\"getTableKeySelector(row)\"\n role=\"rowheader\"\n aria-rowspan=\"3\"\n aria-colspan=\"3\"\n ></div>\n </div>\n <div role=\"row\">\n <div class=\"d-flex\">\n <!-- Sub Header -->\n <div\n nggCellTableItem\n class=\"sub-header py-0 fw-bold\"\n [row]=\"header.label\"\n [valueType]=\"getTableHeaderListValueFromNonMain(header)\"\n role=\"columnheader\"\n *ngFor=\"\n let header of headerNoneMain(headerList);\n trackBy: KeySelector\n \"\n ></div>\n </div>\n </div>\n\n <div role=\"row\">\n <!-- Sub Values -->\n <div class=\"d-flex\">\n <div\n nggCellTableItem\n class=\"sub-value py-0\"\n [row]=\"row[header.tableKeySelector]\"\n [valueType]=\"getTableHeaderListValueFromNonMain(header)\"\n [attr.valueType]=\"header.valueType\"\n role=\"cell\"\n *ngFor=\"\n let header of headerNoneMain(headerList);\n trackBy: KeySelector\n \"\n ></div>\n </div>\n </div>\n </div>\n </div>\n <div\n *ngIf=\"clickableRows\"\n role=\"row\"\n class=\"d-grid align-items-center ms-4 me-4 cell-table--arrow-container\"\n >\n <div role=\"cell\">\n <div\n role=\"button\"\n [attr.aria-label]=\"clickLabel\"\n tabindex=\"0\"\n [attr.aria-describedby]=\"getTableKeySelector(row)\"\n (keydown.enter)=\"handleClickRow(row)\"\n >\n <svg\n data-prefix=\"far\"\n data-icon=\"chevron-right\"\n class=\"svg-inline--fa fa-chevron-right fa-w-10\"\n xmlns=\"http://www.w3.org/2000/svg\"\n viewBox=\"0 0 320 512\"\n >\n <path\n fill=\"currentColor\"\n d=\"M113.3 47.41l183.1 191.1c4.469 4.625 6.688 10.62 6.688 16.59s-2.219 11.97-6.688 16.59l-183.1 191.1c-9.152 9.594-24.34 9.906-33.9 .7187c-9.625-9.125-9.938-24.38-.7187-33.91l168-175.4L78.71 80.6c-9.219-9.5-8.906-24.78 .7187-33.91C88.99 37.5 104.2 37.82 113.3 47.41z\"\n ></path>\n </svg>\n </div>\n </div>\n </div>\n </div>\n </div>\n</div>\n", styles: ["[role=rowheader]{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;margin-bottom:.5rem}[role=cell],[role=columnheader]{flex:1 1 0;margin-bottom:.125rem}.cell-table--row-wrapper{border-top:1px solid var(--gds-ref-pallet-base400);display:flex;padding:1rem}.cell-table--row-wrapper>div:first-child{flex:1 1 0}.cell-table--row-wrapper.is-clickable{cursor:pointer}.cell-table--row-wrapper.is-clickable:hover{background-color:var(--gds-ref-pallet-base100)}.cell-table--arrow-container{flex:0 0 auto;width:10px}.cell-table--arrow-container [tabindex=\"0\"]:focus{outline:2px solid var(--gds-ref-pallet-base800)}\n"], dependencies: [{ kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: CellTableItemComponent, selector: "[nggCellTableItem]", inputs: ["row", "valueType", "id"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
216
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: NggCellTableComponent, decorators: [{
217
+ type: Component,
218
+ args: [{ selector: 'ngg-cell-table', changeDetection: ChangeDetectionStrategy.OnPush, template: "<div #targetElement role=\"table\" [ngClass]=\"className\">\n <div class=\"cell-table-table d-flex flex-column\">\n <div\n *ngFor=\"let row of rows; trackBy: trackByrowId\"\n (click)=\"handleClickRow(row)\"\n class=\"cell-table--row-wrapper\"\n role=\"rowgroup\"\n [class.is-clickable]=\"clickableRows\"\n >\n <div>\n <div #items [class.overflow-reverse]=\"overflowReverse\">\n <!-- Main header -->\n <div role=\"row\">\n <div\n nggCellTableItem\n [row]=\"mainHeader(row).value\"\n [valueType]=\"getValueTypeFromMain()\"\n [attr.valueType]=\"getValueTypeFromMain()\"\n [attr.id]=\"getTableKeySelector(row)\"\n role=\"rowheader\"\n aria-rowspan=\"3\"\n aria-colspan=\"3\"\n ></div>\n </div>\n <div role=\"row\">\n <div class=\"d-flex\">\n <!-- Sub Header -->\n <div\n nggCellTableItem\n class=\"sub-header py-0 fw-bold\"\n [row]=\"header.label\"\n [valueType]=\"getTableHeaderListValueFromNonMain(header)\"\n role=\"columnheader\"\n *ngFor=\"\n let header of headerNoneMain(headerList);\n trackBy: KeySelector\n \"\n ></div>\n </div>\n </div>\n\n <div role=\"row\">\n <!-- Sub Values -->\n <div class=\"d-flex\">\n <div\n nggCellTableItem\n class=\"sub-value py-0\"\n [row]=\"row[header.tableKeySelector]\"\n [valueType]=\"getTableHeaderListValueFromNonMain(header)\"\n [attr.valueType]=\"header.valueType\"\n role=\"cell\"\n *ngFor=\"\n let header of headerNoneMain(headerList);\n trackBy: KeySelector\n \"\n ></div>\n </div>\n </div>\n </div>\n </div>\n <div\n *ngIf=\"clickableRows\"\n role=\"row\"\n class=\"d-grid align-items-center ms-4 me-4 cell-table--arrow-container\"\n >\n <div role=\"cell\">\n <div\n role=\"button\"\n [attr.aria-label]=\"clickLabel\"\n tabindex=\"0\"\n [attr.aria-describedby]=\"getTableKeySelector(row)\"\n (keydown.enter)=\"handleClickRow(row)\"\n >\n <svg\n data-prefix=\"far\"\n data-icon=\"chevron-right\"\n class=\"svg-inline--fa fa-chevron-right fa-w-10\"\n xmlns=\"http://www.w3.org/2000/svg\"\n viewBox=\"0 0 320 512\"\n >\n <path\n fill=\"currentColor\"\n d=\"M113.3 47.41l183.1 191.1c4.469 4.625 6.688 10.62 6.688 16.59s-2.219 11.97-6.688 16.59l-183.1 191.1c-9.152 9.594-24.34 9.906-33.9 .7187c-9.625-9.125-9.938-24.38-.7187-33.91l168-175.4L78.71 80.6c-9.219-9.5-8.906-24.78 .7187-33.91C88.99 37.5 104.2 37.82 113.3 47.41z\"\n ></path>\n </svg>\n </div>\n </div>\n </div>\n </div>\n </div>\n</div>\n", styles: ["[role=rowheader]{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;margin-bottom:.5rem}[role=cell],[role=columnheader]{flex:1 1 0;margin-bottom:.125rem}.cell-table--row-wrapper{border-top:1px solid var(--gds-ref-pallet-base400);display:flex;padding:1rem}.cell-table--row-wrapper>div:first-child{flex:1 1 0}.cell-table--row-wrapper.is-clickable{cursor:pointer}.cell-table--row-wrapper.is-clickable:hover{background-color:var(--gds-ref-pallet-base100)}.cell-table--arrow-container{flex:0 0 auto;width:10px}.cell-table--arrow-container [tabindex=\"0\"]:focus{outline:2px solid var(--gds-ref-pallet-base800)}\n"] }]
219
+ }], propDecorators: { items: [{
220
+ type: ViewChildren,
221
+ args: ['items']
222
+ }], minWidth: [{
223
+ type: Input
224
+ }], overflowReverse: [{
225
+ type: Input
226
+ }], className: [{
227
+ type: Input
228
+ }], headerList: [{
229
+ type: Input
230
+ }], rows: [{
231
+ type: Input
232
+ }], clickableRows: [{
233
+ type: Input
234
+ }], clickLabel: [{
235
+ type: Input
236
+ }], rowClicked: [{
237
+ type: Output
238
+ }] } });
239
+
240
+ class NggCellTableModule {
241
+ }
242
+ NggCellTableModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: NggCellTableModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
243
+ NggCellTableModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "15.2.9", ngImport: i0, type: NggCellTableModule, declarations: [NggCellTableComponent,
244
+ CellTableItemComponent,
245
+ SlidingUnderlineDirective], imports: [CommonModule], exports: [NggCellTableComponent] });
246
+ NggCellTableModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: NggCellTableModule, imports: [CommonModule] });
247
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: NggCellTableModule, decorators: [{
248
+ type: NgModule,
249
+ args: [{
250
+ imports: [CommonModule],
251
+ exports: [NggCellTableComponent],
252
+ declarations: [
253
+ NggCellTableComponent,
254
+ CellTableItemComponent,
255
+ SlidingUnderlineDirective,
256
+ ],
257
+ }]
258
+ }] });
259
+
260
+ class Table {
261
+ constructor(table) {
262
+ this.data = table.data;
263
+ this.header = table.header;
264
+ }
265
+ }
266
+
267
+ /**
268
+ * Generated bundle index. Do not edit.
269
+ */
270
+
271
+ export { NggCellTableComponent, NggCellTableModule };
272
+ //# sourceMappingURL=sebgroup-green-angular-src-lib-cell-table.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sebgroup-green-angular-src-lib-cell-table.mjs","sources":["../../../../libs/angular/src/lib/cell-table/cell-underline.directive.ts","../../../../libs/angular/src/lib/cell-table/cell-table-item.component.ts","../../../../libs/angular/src/lib/cell-table/cell-table.component.ts","../../../../libs/angular/src/lib/cell-table/cell-table.component.html","../../../../libs/angular/src/lib/cell-table/cell-table.module.ts","../../../../libs/angular/src/lib/cell-table/cell-table.types.ts","../../../../libs/angular/src/lib/cell-table/sebgroup-green-angular-src-lib-cell-table.ts"],"sourcesContent":["import {\n Directive,\n ElementRef,\n Input,\n SimpleChanges,\n OnChanges,\n OnInit,\n} from '@angular/core'\n\n@Directive({\n selector: '[nggSlidingUnderline]',\n})\nexport class SlidingUnderlineDirective implements OnInit, OnChanges {\n constructor(private element: ElementRef<HTMLElement>) {}\n\n @Input() public nggSlidingUnderline: any\n @Input() public key?: any\n @Input() public disabled?: boolean\n\n ngOnInit(): void {\n if (this.element?.nativeElement) {\n this.element.nativeElement.classList.add('slider')\n\n this.element.nativeElement.addEventListener('animationend', () => {\n this.element.nativeElement.classList.remove(\n 'left',\n 'slider-positive',\n 'slider-negative',\n )\n })\n }\n }\n\n ngOnChanges(changes: SimpleChanges) {\n if (!this.disabled) {\n if (\n changes.slidingUnderline &&\n changes.key &&\n !changes.slidingUnderline.isFirstChange() &&\n !changes?.key?.isFirstChange()\n ) {\n if (changes.key.currentValue === changes.key.previousValue) {\n this.addAnimation(\n changes.slidingUnderline.currentValue,\n changes.slidingUnderline.previousValue,\n )\n }\n } else {\n if (\n changes.slidingUnderline &&\n !changes.slidingUnderline.isFirstChange()\n ) {\n this.addAnimation(\n changes.slidingUnderline.currentValue,\n changes.slidingUnderline.previousValue,\n )\n }\n }\n }\n }\n\n addAnimation(current: any, previous: any) {\n if (current > previous)\n this.element.nativeElement.classList.add('slider-positive')\n else this.element.nativeElement.classList.add('slider-negative')\n this.element.nativeElement.classList.add('left')\n }\n}\n","import { Component, Input } from '@angular/core'\nimport { TableHeaderListValueType } from './cell-table.types'\nimport { DomSanitizer, SafeHtml } from '@angular/platform-browser'\n\n@Component({\n // eslint-disable-next-line @angular-eslint/component-selector\n selector: '[nggCellTableItem]',\n template: `\n <ng-container [ngSwitch]=\"valueType\">\n <span *ngSwitchCase=\"'string'\">{{ row || '–' }}</span>\n <span *ngSwitchCase=\"'number'\">{{ (row | number) || '–' }}</span>\n <span *ngSwitchCase=\"'datetime'\">{{\n (row | date: 'HH:mm:ss') || '–'\n }}</span>\n <span *ngSwitchCase=\"'date'\">{{\n (row | date: 'YYYY-MM-dd') || '–'\n }}</span>\n <span\n *ngSwitchCase=\"'custom-html'\"\n [innerHtml]=\"transformHTML(row) || '–'\"\n ></span>\n <span *ngSwitchCase=\"'sign'\" [ngClass]=\"getSignColor(row)\">{{\n row || '–'\n }}</span>\n <span *ngSwitchCase=\"'pct'\">{{ row || '–' }}</span>\n <span *ngSwitchCase=\"'streamSign'\" [nggSlidingUnderline]=\"row\">{{\n row || '–'\n }}</span>\n <span *ngSwitchDefault>–</span>\n </ng-container>\n `,\n})\nexport class CellTableItemComponent {\n @Input() row: any\n @Input() valueType: TableHeaderListValueType = 'string'\n @Input() id = ''\n\n constructor(private sanitizer: DomSanitizer) {}\n\n getSignColor = (value: string | number) => {\n if (/[−-]/.test(String(value))) return 'text-danger'\n else if (/[1-9]/.test(String(value))) return 'text-success'\n return ''\n }\n\n transformHTML(value: string): SafeHtml {\n if (value && value.length) {\n return this.sanitizer.bypassSecurityTrustHtml(value)\n } else {\n return ''\n }\n }\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n ElementRef,\n EventEmitter,\n Input,\n Output,\n QueryList,\n ViewChildren,\n} from '@angular/core'\nimport {\n TableHeaderListItem,\n TableHeaderListValueType,\n TableRow,\n} from './cell-table.types'\n\n@Component({\n selector: 'ngg-cell-table',\n templateUrl: './cell-table.component.html',\n styleUrls: ['./cell-table.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class NggCellTableComponent {\n @ViewChildren('items') items: QueryList<ElementRef> =\n new QueryList<ElementRef>()\n\n /** Cell min-width to force same width on small screens */\n @Input() minWidth?: number\n\n /** Make the most left element wrap */\n @Input() overflowReverse = false\n\n /** Element class name */\n @Input() className?: string\n\n /** List of table headers */\n @Input() headerList: TableHeaderListItem[] = []\n\n /** List of data */\n @Input() rows: TableRow[] = []\n\n /** Make rows clickable and add arrow to the right */\n @Input() clickableRows = false\n\n /** Label for the chevron of clickable rows */\n @Input() clickLabel = 'View details'\n\n /** Callback when a row is clicked */\n @Output() rowClicked: EventEmitter<TableRow> = new EventEmitter()\n\n // ------------- EVENTS ------------------\n /**\n * handles the logic for when a row is clicked\n * @param {TableRowClickedEvent} value the TableRowClickedEvent\n */\n handleClickRow = (value: TableRow): void => {\n if (this.clickableRows) this.rowClicked.emit(value)\n }\n\n getValueTypeFromMain = (): TableHeaderListValueType => {\n const getMain = this.headerList.find((x) => x.main)\n if (getMain) return getMain.valueType || ''\n return ''\n }\n\n getTableHeaderListValueFromNonMain = (\n header: TableHeaderListItem,\n ): TableHeaderListValueType => {\n if (header.valueType) return header.valueType || ''\n return ''\n }\n\n mainHeader = (row: TableRow) => {\n const getMain = this.headerList.find((x) => x.main)\n if (row && getMain) {\n return {\n value: row[getMain.tableKeySelector],\n valueType: getMain.valueType || 'string',\n tableKeySelector: getMain.tableKeySelector,\n }\n }\n return {\n value: '-',\n valueType: 'string',\n tableKeySelector: '-',\n }\n }\n\n headerNoneMain = (headers: TableHeaderListItem[]) => {\n if (this.overflowReverse) return headers.filter((x) => !x.main).reverse()\n return headers.filter((x) => !x.main)\n }\n\n getTableKeySelector = (row: TableRow) => {\n return this.mainHeader(row).tableKeySelector + row.rowId\n }\n\n // ------- TRACKBY FOR STREAM ------------\n trackByrowId(_: any, b: TableRow) {\n return b.rowId\n }\n KeySelector(_: any, b: TableHeaderListItem) {\n return b.tableKeySelector\n }\n}\n","<div #targetElement role=\"table\" [ngClass]=\"className\">\n <div class=\"cell-table-table d-flex flex-column\">\n <div\n *ngFor=\"let row of rows; trackBy: trackByrowId\"\n (click)=\"handleClickRow(row)\"\n class=\"cell-table--row-wrapper\"\n role=\"rowgroup\"\n [class.is-clickable]=\"clickableRows\"\n >\n <div>\n <div #items [class.overflow-reverse]=\"overflowReverse\">\n <!-- Main header -->\n <div role=\"row\">\n <div\n nggCellTableItem\n [row]=\"mainHeader(row).value\"\n [valueType]=\"getValueTypeFromMain()\"\n [attr.valueType]=\"getValueTypeFromMain()\"\n [attr.id]=\"getTableKeySelector(row)\"\n role=\"rowheader\"\n aria-rowspan=\"3\"\n aria-colspan=\"3\"\n ></div>\n </div>\n <div role=\"row\">\n <div class=\"d-flex\">\n <!-- Sub Header -->\n <div\n nggCellTableItem\n class=\"sub-header py-0 fw-bold\"\n [row]=\"header.label\"\n [valueType]=\"getTableHeaderListValueFromNonMain(header)\"\n role=\"columnheader\"\n *ngFor=\"\n let header of headerNoneMain(headerList);\n trackBy: KeySelector\n \"\n ></div>\n </div>\n </div>\n\n <div role=\"row\">\n <!-- Sub Values -->\n <div class=\"d-flex\">\n <div\n nggCellTableItem\n class=\"sub-value py-0\"\n [row]=\"row[header.tableKeySelector]\"\n [valueType]=\"getTableHeaderListValueFromNonMain(header)\"\n [attr.valueType]=\"header.valueType\"\n role=\"cell\"\n *ngFor=\"\n let header of headerNoneMain(headerList);\n trackBy: KeySelector\n \"\n ></div>\n </div>\n </div>\n </div>\n </div>\n <div\n *ngIf=\"clickableRows\"\n role=\"row\"\n class=\"d-grid align-items-center ms-4 me-4 cell-table--arrow-container\"\n >\n <div role=\"cell\">\n <div\n role=\"button\"\n [attr.aria-label]=\"clickLabel\"\n tabindex=\"0\"\n [attr.aria-describedby]=\"getTableKeySelector(row)\"\n (keydown.enter)=\"handleClickRow(row)\"\n >\n <svg\n data-prefix=\"far\"\n data-icon=\"chevron-right\"\n class=\"svg-inline--fa fa-chevron-right fa-w-10\"\n xmlns=\"http://www.w3.org/2000/svg\"\n viewBox=\"0 0 320 512\"\n >\n <path\n fill=\"currentColor\"\n d=\"M113.3 47.41l183.1 191.1c4.469 4.625 6.688 10.62 6.688 16.59s-2.219 11.97-6.688 16.59l-183.1 191.1c-9.152 9.594-24.34 9.906-33.9 .7187c-9.625-9.125-9.938-24.38-.7187-33.91l168-175.4L78.71 80.6c-9.219-9.5-8.906-24.78 .7187-33.91C88.99 37.5 104.2 37.82 113.3 47.41z\"\n ></path>\n </svg>\n </div>\n </div>\n </div>\n </div>\n </div>\n</div>\n","import { CommonModule } from '@angular/common'\nimport { NgModule } from '@angular/core'\n\nimport { NggCellTableComponent } from './cell-table.component'\nimport { CellTableItemComponent } from './cell-table-item.component'\nimport { SlidingUnderlineDirective } from './cell-underline.directive'\n\n@NgModule({\n imports: [CommonModule],\n exports: [NggCellTableComponent],\n declarations: [\n NggCellTableComponent,\n CellTableItemComponent,\n SlidingUnderlineDirective,\n ],\n})\nexport class NggCellTableModule {}\n","export default class Table {\n constructor(table: { data: TableRow[]; header: TableHeaderListItem[] }) {\n this.data = table.data\n this.header = table.header\n }\n data: TableRow[]\n header: TableHeaderListItem[]\n}\n\n/** The type of a data the values in a column represent */\nexport type TableHeaderListValueType =\n | 'number'\n | 'string'\n | 'date'\n | 'datetime'\n | 'bool'\n | 'custom-html'\n | 'sign'\n | 'streamSign'\n | ''\n\n/** Table Header List Item Interface */\nexport interface TableHeaderListItem<\n T extends Record<string, unknown> = Record<string, unknown>,\n> {\n /** The label displayed */\n label: string\n /** the key selector corresponding to to the TableList Item which this column is targeting */\n // tableKeySelector: keyof T;\n tableKeySelector: string\n /** the type of value: string, date or number */\n valueType?: TableHeaderListValueType\n\n /** the main field for stacked table */\n main?: boolean\n}\n\nexport interface TableRow {\n [prop: string]: any\n rowId: string | number\n}\n\n/** The information on the currently selected sort: column name, type and asc/desc */\nexport interface SortInfo<\n T extends Record<string, unknown> = { [k: string]: any },\n> {\n /** column name */\n column: keyof T\n /** is ascending (false for descending) */\n isAscending: boolean\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i3.SlidingUnderlineDirective","i1","i2.CellTableItemComponent"],"mappings":"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"}
@@ -0,0 +1,104 @@
1
+ import * as i0 from '@angular/core';
2
+ import { EventEmitter, Component, Input, Output, ViewChild, NgModule, CUSTOM_ELEMENTS_SCHEMA } from '@angular/core';
3
+ import '@sebgroup/green-core/components/context-menu/index.js';
4
+ import * as ContextMenuTransStyles from '@sebgroup/green-core/components/context-menu/context-menu.trans.styles.js';
5
+ import * as i1 from '@angular/common';
6
+ import { CommonModule } from '@angular/common';
7
+ import * as i2 from '@sebgroup/green-angular/src/lib/shared';
8
+ import { NggCoreWrapperModule } from '@sebgroup/green-angular/src/lib/shared';
9
+
10
+ class NggContextMenuComponent {
11
+ constructor(elementRef) {
12
+ this.elementRef = elementRef;
13
+ /**
14
+ * Placement of the popover relative to the anchor element.
15
+ */
16
+ this.direction = 'ltr';
17
+ /**
18
+ * List of items to be displayed in the context menu.
19
+ */
20
+ this.menuItems = [];
21
+ /**
22
+ * Custom menu item template.
23
+ */
24
+ this.menuItemTemplate = null;
25
+ /**
26
+ * Custom menu trigger template.
27
+ */
28
+ this.menuAnchorTemplate = null;
29
+ /**
30
+ * @deprecated
31
+ * This property no longer has any effect and will be removed in a future version.
32
+ */
33
+ this.closeOnScroll = false;
34
+ /**
35
+ * Emits when a menu item is clicked.
36
+ */
37
+ this.contextMenuItemClicked = new EventEmitter();
38
+ this.isActive = false;
39
+ ContextMenuTransStyles.register();
40
+ }
41
+ get placement() {
42
+ return this.direction === 'ltr' ? 'bottom-start' : 'bottom-end';
43
+ }
44
+ open() {
45
+ if (this.isActive) {
46
+ this.close();
47
+ return;
48
+ }
49
+ this.isActive = true;
50
+ }
51
+ close() {
52
+ this.isActive = false;
53
+ }
54
+ onItemClick(item) {
55
+ this.contextMenuItemClicked.emit(item);
56
+ this.close();
57
+ }
58
+ }
59
+ NggContextMenuComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: NggContextMenuComponent, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component });
60
+ NggContextMenuComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.9", type: NggContextMenuComponent, selector: "ngg-context-menu", inputs: { direction: "direction", menuItems: "menuItems", menuItemTemplate: "menuItemTemplate", menuAnchorTemplate: "menuAnchorTemplate", closeOnScroll: "closeOnScroll" }, outputs: { contextMenuItemClicked: "contextMenuItemClicked" }, viewQueries: [{ propertyName: "popover", first: true, predicate: ["contextMenuPopover"], descendants: true }, { propertyName: "anchor", first: true, predicate: ["contextMenuAnchor"], descendants: true }], ngImport: i0, template: "<gds-context-menu\n *nggCoreElement\n data-testid=\"context-menu\"\n [placement]=\"placement\"\n [open]=\"isActive\"\n>\n <div style=\"display: contents\" slot=\"trigger\">\n <ng-container\n [ngTemplateOutlet]=\"menuAnchorTemplate ?? defaultButtonTemplate\"\n >\n </ng-container>\n </div>\n <ng-container *ngFor=\"let menuItem of menuItems\">\n <gds-menu-item *nggCoreElement (click)=\"onItemClick(menuItem)\">\n <ng-container\n [ngTemplateOutlet]=\"menuItemTemplate ?? defaultMenuItemTemplate\"\n [ngTemplateOutletContext]=\"{ $implicit: menuItem }\"\n >\n </ng-container>\n </gds-menu-item>\n </ng-container>\n</gds-context-menu>\n\n<ng-template #defaultMenuItemTemplate let-menuItem>\n <span>{{ menuItem.label }}</span>\n</ng-template>\n\n<ng-template #defaultButtonTemplate>\n <i class=\"sg-icon sg-icon-ellipsis\">Open context menu</i>\n</ng-template>\n", dependencies: [{ kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i2.NggCoreElementDirective, selector: "[nggCoreElement]" }] });
61
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: NggContextMenuComponent, decorators: [{
62
+ type: Component,
63
+ args: [{ selector: 'ngg-context-menu', template: "<gds-context-menu\n *nggCoreElement\n data-testid=\"context-menu\"\n [placement]=\"placement\"\n [open]=\"isActive\"\n>\n <div style=\"display: contents\" slot=\"trigger\">\n <ng-container\n [ngTemplateOutlet]=\"menuAnchorTemplate ?? defaultButtonTemplate\"\n >\n </ng-container>\n </div>\n <ng-container *ngFor=\"let menuItem of menuItems\">\n <gds-menu-item *nggCoreElement (click)=\"onItemClick(menuItem)\">\n <ng-container\n [ngTemplateOutlet]=\"menuItemTemplate ?? defaultMenuItemTemplate\"\n [ngTemplateOutletContext]=\"{ $implicit: menuItem }\"\n >\n </ng-container>\n </gds-menu-item>\n </ng-container>\n</gds-context-menu>\n\n<ng-template #defaultMenuItemTemplate let-menuItem>\n <span>{{ menuItem.label }}</span>\n</ng-template>\n\n<ng-template #defaultButtonTemplate>\n <i class=\"sg-icon sg-icon-ellipsis\">Open context menu</i>\n</ng-template>\n" }]
64
+ }], ctorParameters: function () { return [{ type: i0.ElementRef }]; }, propDecorators: { direction: [{
65
+ type: Input
66
+ }], menuItems: [{
67
+ type: Input
68
+ }], menuItemTemplate: [{
69
+ type: Input
70
+ }], menuAnchorTemplate: [{
71
+ type: Input
72
+ }], closeOnScroll: [{
73
+ type: Input
74
+ }], contextMenuItemClicked: [{
75
+ type: Output
76
+ }], popover: [{
77
+ type: ViewChild,
78
+ args: ['contextMenuPopover']
79
+ }], anchor: [{
80
+ type: ViewChild,
81
+ args: ['contextMenuAnchor']
82
+ }] } });
83
+
84
+ class NggContextMenuModule {
85
+ }
86
+ NggContextMenuModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: NggContextMenuModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
87
+ NggContextMenuModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "15.2.9", ngImport: i0, type: NggContextMenuModule, declarations: [NggContextMenuComponent], imports: [CommonModule, NggCoreWrapperModule], exports: [NggContextMenuComponent] });
88
+ NggContextMenuModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: NggContextMenuModule, imports: [CommonModule, NggCoreWrapperModule] });
89
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: NggContextMenuModule, decorators: [{
90
+ type: NgModule,
91
+ args: [{
92
+ declarations: [NggContextMenuComponent],
93
+ imports: [CommonModule, NggCoreWrapperModule],
94
+ exports: [NggContextMenuComponent],
95
+ schemas: [CUSTOM_ELEMENTS_SCHEMA],
96
+ }]
97
+ }] });
98
+
99
+ /**
100
+ * Generated bundle index. Do not edit.
101
+ */
102
+
103
+ export { NggContextMenuComponent, NggContextMenuModule };
104
+ //# sourceMappingURL=sebgroup-green-angular-src-lib-context-menu.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sebgroup-green-angular-src-lib-context-menu.mjs","sources":["../../../../libs/angular/src/lib/context-menu/context-menu.component.ts","../../../../libs/angular/src/lib/context-menu/context-menu.component.html","../../../../libs/angular/src/lib/context-menu/context-menu.module.ts","../../../../libs/angular/src/lib/context-menu/sebgroup-green-angular-src-lib-context-menu.ts"],"sourcesContent":["import {\n Input,\n Output,\n Component,\n ViewChild,\n ElementRef,\n EventEmitter,\n TemplateRef,\n} from '@angular/core'\nimport { DropdownOption } from '@sebgroup/green-angular/src/lib/dropdown'\n\n/**\n * MenuItems extends DropDown option and adds the posibility to pass a custom template for just one item.\n */\ninterface MenuItems extends DropdownOption {\n template?: TemplateRef<unknown>\n}\n\nimport '@sebgroup/green-core/components/context-menu/index.js'\nimport * as ContextMenuTransStyles from '@sebgroup/green-core/components/context-menu/context-menu.trans.styles.js'\n\n@Component({\n selector: 'ngg-context-menu',\n templateUrl: './context-menu.component.html',\n})\nexport class NggContextMenuComponent {\n /**\n * Placement of the popover relative to the anchor element.\n */\n @Input() direction: 'ltr' | 'rtl' = 'ltr'\n\n /**\n * List of items to be displayed in the context menu.\n */\n @Input() menuItems: MenuItems[] = []\n\n /**\n * Custom menu item template.\n */\n @Input() menuItemTemplate: TemplateRef<unknown> | null = null\n\n /**\n * Custom menu trigger template.\n */\n @Input() menuAnchorTemplate: TemplateRef<unknown> | null = null\n\n /**\n * @deprecated\n * This property no longer has any effect and will be removed in a future version.\n */\n @Input() closeOnScroll = false\n\n /**\n * Emits when a menu item is clicked.\n */\n @Output() contextMenuItemClicked: EventEmitter<DropdownOption> =\n new EventEmitter<DropdownOption>()\n\n @ViewChild('contextMenuPopover') popover!: ElementRef<HTMLElement>\n @ViewChild('contextMenuAnchor') anchor!: ElementRef<HTMLElement>\n\n isActive = false\n\n constructor(private elementRef: ElementRef<HTMLElement>) {\n ContextMenuTransStyles.register()\n }\n\n get placement(): string {\n return this.direction === 'ltr' ? 'bottom-start' : 'bottom-end'\n }\n\n open(): void {\n if (this.isActive) {\n this.close()\n return\n }\n\n this.isActive = true\n }\n\n close(): void {\n this.isActive = false\n }\n\n onItemClick(item: DropdownOption): void {\n this.contextMenuItemClicked.emit(item)\n this.close()\n }\n}\n","<gds-context-menu\n *nggCoreElement\n data-testid=\"context-menu\"\n [placement]=\"placement\"\n [open]=\"isActive\"\n>\n <div style=\"display: contents\" slot=\"trigger\">\n <ng-container\n [ngTemplateOutlet]=\"menuAnchorTemplate ?? defaultButtonTemplate\"\n >\n </ng-container>\n </div>\n <ng-container *ngFor=\"let menuItem of menuItems\">\n <gds-menu-item *nggCoreElement (click)=\"onItemClick(menuItem)\">\n <ng-container\n [ngTemplateOutlet]=\"menuItemTemplate ?? defaultMenuItemTemplate\"\n [ngTemplateOutletContext]=\"{ $implicit: menuItem }\"\n >\n </ng-container>\n </gds-menu-item>\n </ng-container>\n</gds-context-menu>\n\n<ng-template #defaultMenuItemTemplate let-menuItem>\n <span>{{ menuItem.label }}</span>\n</ng-template>\n\n<ng-template #defaultButtonTemplate>\n <i class=\"sg-icon sg-icon-ellipsis\">Open context menu</i>\n</ng-template>\n","import { CommonModule } from '@angular/common'\nimport { CUSTOM_ELEMENTS_SCHEMA, NgModule } from '@angular/core'\nimport { NggContextMenuComponent } from './context-menu.component'\nimport { NggCoreWrapperModule } from '@sebgroup/green-angular/src/lib/shared'\n\n@NgModule({\n declarations: [NggContextMenuComponent],\n imports: [CommonModule, NggCoreWrapperModule],\n exports: [NggContextMenuComponent],\n schemas: [CUSTOM_ELEMENTS_SCHEMA],\n})\nexport class NggContextMenuModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
@@ -0,0 +1,166 @@
1
+ import * as i0 from '@angular/core';
2
+ import { EventEmitter, Component, ChangeDetectionStrategy, Input, Output, NgModule, CUSTOM_ELEMENTS_SCHEMA } from '@angular/core';
3
+ import { NG_VALUE_ACCESSOR } from '@angular/forms';
4
+ import { randomId } from '@sebgroup/extract';
5
+ import { startOfDay, endOfDay } from 'date-fns';
6
+ import '@sebgroup/green-core/components/datepicker/index.js';
7
+ import * as DatepickerTransStyles from '@sebgroup/green-core/components/datepicker/datepicker.trans.styles.js';
8
+ import * as i1 from '@sebgroup/green-angular/src/lib/shared';
9
+ import { NggCoreWrapperModule } from '@sebgroup/green-angular/src/lib/shared';
10
+ import { CommonModule } from '@angular/common';
11
+
12
+ class NggDatepickerComponent {
13
+ constructor(_cdr) {
14
+ this._cdr = _cdr;
15
+ this.id = randomId();
16
+ this.isValid = null;
17
+ this.valueChange = new EventEmitter();
18
+ DatepickerTransStyles.register();
19
+ }
20
+ get options() {
21
+ return this._options;
22
+ }
23
+ set options(value) {
24
+ this._options = value;
25
+ }
26
+ get showWeekNumbers() {
27
+ var _a, _b;
28
+ return (_b = (_a = this.options) === null || _a === void 0 ? void 0 : _a.showWeeks) !== null && _b !== void 0 ? _b : false;
29
+ }
30
+ get dateFormat() {
31
+ var _a, _b;
32
+ return (_b = (_a = this.options) === null || _a === void 0 ? void 0 : _a.dateFormat) !== null && _b !== void 0 ? _b : 'y-m-d';
33
+ }
34
+ get value() {
35
+ return this._value;
36
+ }
37
+ set value(newValue) {
38
+ if (typeof newValue === 'string') {
39
+ newValue = new Date(newValue);
40
+ }
41
+ if (newValue !== this._value) {
42
+ this._value = newValue || undefined;
43
+ }
44
+ }
45
+ get min() {
46
+ var _a;
47
+ const minDate = (_a = this.options) === null || _a === void 0 ? void 0 : _a.minDate;
48
+ return minDate ? minDate : new Date(new Date().getFullYear() - 10, 0, 1);
49
+ }
50
+ get max() {
51
+ var _a;
52
+ const maxDate = (_a = this.options) === null || _a === void 0 ? void 0 : _a.maxDate;
53
+ return maxDate ? maxDate : new Date(new Date().getFullYear() + 10, 0, 1);
54
+ }
55
+ writeValue(value) {
56
+ this.value = value;
57
+ this._cdr.detectChanges();
58
+ }
59
+ registerOnChange(fn) {
60
+ this.onChangeFn = fn;
61
+ }
62
+ registerOnTouched(fn) {
63
+ this.onTouchedFn = fn;
64
+ }
65
+ onDateChange(evt) {
66
+ const e = evt;
67
+ this.value = e.detail.value;
68
+ this.valueChange.emit(e.detail.value);
69
+ this.onChangeFn && this.onChangeFn(e.detail.value);
70
+ }
71
+ ngAfterViewInit() {
72
+ this._cdr.detectChanges();
73
+ }
74
+ }
75
+ NggDatepickerComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: NggDatepickerComponent, deps: [{ token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
76
+ NggDatepickerComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.9", type: NggDatepickerComponent, selector: "ngg-datepicker", inputs: { size: "size", hideLabel: "hideLabel", disabledWeekends: "disabledWeekends", disabledDates: "disabledDates", options: "options", value: "value", id: "id", label: "label", isValid: "isValid" }, outputs: { valueChange: "valueChange" }, providers: [
77
+ {
78
+ provide: NG_VALUE_ACCESSOR,
79
+ useExisting: NggDatepickerComponent,
80
+ multi: true,
81
+ },
82
+ ], ngImport: i0, template: "<div class=\"form-group\">\n <gds-datepicker\n *nggCoreElement\n [attr.id]=\"id\"\n [label]=\"label\"\n [value]=\"value\"\n (change)=\"onDateChange($event)\"\n [invalid]=\"isValid === false\"\n [min]=\"min\"\n [max]=\"max\"\n [showWeekNumbers]=\"showWeekNumbers\"\n [dateformat]=\"dateFormat\"\n [size]=\"size\"\n [hideLabel]=\"hideLabel\"\n [disabledWeekends]=\"disabledWeekends\"\n [disabledDates]=\"disabledDates\"\n >\n <span slot=\"message\">\n <ng-content select=\"[data-form-info]\"></ng-content>\n </span>\n </gds-datepicker>\n</div>\n", dependencies: [{ kind: "directive", type: i1.NggCoreElementDirective, selector: "[nggCoreElement]" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
83
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: NggDatepickerComponent, decorators: [{
84
+ type: Component,
85
+ args: [{ selector: 'ngg-datepicker', providers: [
86
+ {
87
+ provide: NG_VALUE_ACCESSOR,
88
+ useExisting: NggDatepickerComponent,
89
+ multi: true,
90
+ },
91
+ ], changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"form-group\">\n <gds-datepicker\n *nggCoreElement\n [attr.id]=\"id\"\n [label]=\"label\"\n [value]=\"value\"\n (change)=\"onDateChange($event)\"\n [invalid]=\"isValid === false\"\n [min]=\"min\"\n [max]=\"max\"\n [showWeekNumbers]=\"showWeekNumbers\"\n [dateformat]=\"dateFormat\"\n [size]=\"size\"\n [hideLabel]=\"hideLabel\"\n [disabledWeekends]=\"disabledWeekends\"\n [disabledDates]=\"disabledDates\"\n >\n <span slot=\"message\">\n <ng-content select=\"[data-form-info]\"></ng-content>\n </span>\n </gds-datepicker>\n</div>\n" }]
92
+ }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }]; }, propDecorators: { size: [{
93
+ type: Input
94
+ }], hideLabel: [{
95
+ type: Input
96
+ }], disabledWeekends: [{
97
+ type: Input
98
+ }], disabledDates: [{
99
+ type: Input
100
+ }], options: [{
101
+ type: Input
102
+ }], value: [{
103
+ type: Input
104
+ }], id: [{
105
+ type: Input
106
+ }], label: [{
107
+ type: Input
108
+ }], isValid: [{
109
+ type: Input
110
+ }], valueChange: [{
111
+ type: Output
112
+ }] } });
113
+ function dateValidator(dates) {
114
+ return (control) => {
115
+ const value = control.value;
116
+ if (!value) {
117
+ return null;
118
+ }
119
+ const newDate = new Date(value);
120
+ const isValidDate = !isNaN(newDate.getTime());
121
+ if (!isValidDate) {
122
+ return { validDate: true };
123
+ }
124
+ const validMinDate = (dates === null || dates === void 0 ? void 0 : dates.min) ? newDate >= startOfDay(dates.min) : true;
125
+ const validMaxDate = (dates === null || dates === void 0 ? void 0 : dates.max) ? newDate <= endOfDay(dates.max) : true;
126
+ if (!validMinDate && (dates === null || dates === void 0 ? void 0 : dates.min)) {
127
+ return {
128
+ validDate: {
129
+ minDate: startOfDay(dates.min),
130
+ actualDate: newDate,
131
+ },
132
+ };
133
+ }
134
+ if (!validMaxDate && (dates === null || dates === void 0 ? void 0 : dates.max)) {
135
+ return {
136
+ validDate: {
137
+ maxDate: endOfDay(dates.max),
138
+ actualDate: newDate,
139
+ },
140
+ };
141
+ }
142
+ return null;
143
+ };
144
+ }
145
+
146
+ class NggDatepickerModule {
147
+ }
148
+ NggDatepickerModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: NggDatepickerModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
149
+ NggDatepickerModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "15.2.9", ngImport: i0, type: NggDatepickerModule, declarations: [NggDatepickerComponent], imports: [CommonModule, NggCoreWrapperModule], exports: [NggDatepickerComponent] });
150
+ NggDatepickerModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: NggDatepickerModule, imports: [CommonModule, NggCoreWrapperModule] });
151
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: NggDatepickerModule, decorators: [{
152
+ type: NgModule,
153
+ args: [{
154
+ declarations: [NggDatepickerComponent],
155
+ imports: [CommonModule, NggCoreWrapperModule],
156
+ exports: [NggDatepickerComponent],
157
+ schemas: [CUSTOM_ELEMENTS_SCHEMA],
158
+ }]
159
+ }] });
160
+
161
+ /**
162
+ * Generated bundle index. Do not edit.
163
+ */
164
+
165
+ export { NggDatepickerComponent, NggDatepickerModule, dateValidator };
166
+ //# sourceMappingURL=sebgroup-green-angular-src-lib-datepicker.mjs.map