@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.
- package/esm2020/lib/context-menu/context-menu.component.mjs +5 -5
- package/esm2020/lib/context-menu/context-menu.module.mjs +2 -2
- package/esm2020/lib/datepicker/datepicker.component.mjs +5 -5
- package/esm2020/lib/datepicker/datepicker.module.mjs +5 -6
- package/esm2020/lib/dropdown/dropdown.component.mjs +5 -5
- package/esm2020/lib/dropdown/dropdown.module.mjs +2 -2
- package/esm2020/lib/shared/index.mjs +2 -1
- package/esm2020/src/lib/accordion/accordion-list-item.component.mjs +47 -0
- package/esm2020/src/lib/accordion/accordion.component.mjs +72 -0
- package/esm2020/src/lib/accordion/accordion.module.mjs +19 -0
- package/esm2020/src/lib/accordion/index.mjs +4 -0
- package/esm2020/src/lib/accordion/sebgroup-green-angular-src-lib-accordion.mjs +5 -0
- package/esm2020/src/lib/badge/badge.component.mjs +80 -0
- package/esm2020/src/lib/badge/badge.module.mjs +18 -0
- package/esm2020/src/lib/badge/index.mjs +3 -0
- package/esm2020/src/lib/badge/sebgroup-green-angular-src-lib-badge.mjs +5 -0
- package/esm2020/src/lib/button/button.component.mjs +28 -0
- package/esm2020/src/lib/button/button.module.mjs +18 -0
- package/esm2020/src/lib/button/index.mjs +3 -0
- package/esm2020/src/lib/button/sebgroup-green-angular-src-lib-button.mjs +5 -0
- package/esm2020/src/lib/cell-table/cell-table-item.component.mjs +91 -0
- package/esm2020/src/lib/cell-table/cell-table.component.mjs +97 -0
- package/esm2020/src/lib/cell-table/cell-table.module.mjs +26 -0
- package/esm2020/src/lib/cell-table/cell-table.types.mjs +7 -0
- package/esm2020/src/lib/cell-table/cell-underline.directive.mjs +55 -0
- package/esm2020/src/lib/cell-table/index.mjs +4 -0
- package/esm2020/src/lib/cell-table/sebgroup-green-angular-src-lib-cell-table.mjs +5 -0
- package/esm2020/src/lib/context-menu/context-menu.component.mjs +80 -0
- package/esm2020/src/lib/context-menu/context-menu.module.mjs +20 -0
- package/esm2020/src/lib/context-menu/index.mjs +3 -0
- package/esm2020/src/lib/context-menu/sebgroup-green-angular-src-lib-context-menu.mjs +5 -0
- package/esm2020/src/lib/datepicker/datepicker.component.mjs +138 -0
- package/esm2020/src/lib/datepicker/datepicker.module.mjs +20 -0
- package/esm2020/src/lib/datepicker/index.mjs +3 -0
- package/esm2020/src/lib/datepicker/sebgroup-green-angular-src-lib-datepicker.mjs +5 -0
- package/esm2020/src/lib/dropdown/dropdown-button.directive.mjs +16 -0
- package/esm2020/src/lib/dropdown/dropdown-option.directive.mjs +16 -0
- package/esm2020/src/lib/dropdown/dropdown.component.mjs +212 -0
- package/esm2020/src/lib/dropdown/dropdown.module.mjs +34 -0
- package/esm2020/src/lib/dropdown/index.mjs +5 -0
- package/esm2020/src/lib/dropdown/sebgroup-green-angular-src-lib-dropdown.mjs +5 -0
- package/esm2020/src/lib/in-page-wizard/in-page-wizard-step-card.component.mjs +50 -0
- package/esm2020/src/lib/in-page-wizard/in-page-wizard.module.mjs +18 -0
- package/esm2020/src/lib/in-page-wizard/index.mjs +3 -0
- package/esm2020/src/lib/in-page-wizard/sebgroup-green-angular-src-lib-in-page-wizard.mjs +5 -0
- package/esm2020/src/lib/modal/index.mjs +5 -0
- package/esm2020/src/lib/modal/modal-footer.directive.mjs +16 -0
- package/esm2020/src/lib/modal/modal-header.directive.mjs +16 -0
- package/esm2020/src/lib/modal/modal.component.mjs +251 -0
- package/esm2020/src/lib/modal/modal.module.mjs +41 -0
- package/esm2020/src/lib/modal/sebgroup-green-angular-src-lib-modal.mjs +5 -0
- package/esm2020/src/lib/pagination/index.mjs +3 -0
- package/esm2020/src/lib/pagination/pagination.component.mjs +175 -0
- package/esm2020/src/lib/pagination/pagination.module.mjs +18 -0
- package/esm2020/src/lib/pagination/sebgroup-green-angular-src-lib-pagination.mjs +5 -0
- package/esm2020/src/lib/progress-circle/index.mjs +3 -0
- package/esm2020/src/lib/progress-circle/progress-circle.component.mjs +41 -0
- package/esm2020/src/lib/progress-circle/progress-circle.module.mjs +18 -0
- package/esm2020/src/lib/progress-circle/sebgroup-green-angular-src-lib-progress-circle.mjs +5 -0
- package/esm2020/src/lib/segmented-control/index.mjs +3 -0
- package/esm2020/src/lib/segmented-control/sebgroup-green-angular-src-lib-segmented-control.mjs +5 -0
- package/esm2020/src/lib/segmented-control/segmented-control.component.mjs +35 -0
- package/esm2020/src/lib/segmented-control/segmented-control.module.mjs +19 -0
- package/esm2020/src/lib/shared/core-element/core-element.directive.mjs +33 -0
- package/esm2020/src/lib/shared/core-element/core-element.module.mjs +18 -0
- package/esm2020/src/lib/shared/core-element/index.mjs +3 -0
- package/esm2020/src/lib/shared/index.mjs +4 -0
- package/esm2020/src/lib/shared/on-scroll.directive.mjs +47 -0
- package/esm2020/src/lib/shared/sebgroup-green-angular-src-lib-shared.mjs +5 -0
- package/esm2020/src/lib/shared/shared.module.mjs +18 -0
- package/esm2020/src/lib/slider/index.mjs +3 -0
- package/esm2020/src/lib/slider/sebgroup-green-angular-src-lib-slider.mjs +5 -0
- package/esm2020/src/lib/slider/slider.component.mjs +113 -0
- package/esm2020/src/lib/slider/slider.module.mjs +19 -0
- package/esm2020/src/lib/sortable-list/index.mjs +3 -0
- package/esm2020/src/lib/sortable-list/sebgroup-green-angular-src-lib-sortable-list.mjs +5 -0
- package/esm2020/src/lib/sortable-list/sortable-list.component.mjs +181 -0
- package/esm2020/src/lib/sortable-list/sortable-list.module.mjs +20 -0
- package/fesm2015/sebgroup-green-angular-src-lib-accordion.mjs +140 -0
- package/fesm2015/sebgroup-green-angular-src-lib-accordion.mjs.map +1 -0
- package/fesm2015/sebgroup-green-angular-src-lib-badge.mjs +102 -0
- package/fesm2015/sebgroup-green-angular-src-lib-badge.mjs.map +1 -0
- package/fesm2015/sebgroup-green-angular-src-lib-button.mjs +50 -0
- package/fesm2015/sebgroup-green-angular-src-lib-button.mjs.map +1 -0
- package/fesm2015/sebgroup-green-angular-src-lib-cell-table.mjs +272 -0
- package/fesm2015/sebgroup-green-angular-src-lib-cell-table.mjs.map +1 -0
- package/fesm2015/sebgroup-green-angular-src-lib-context-menu.mjs +104 -0
- package/fesm2015/sebgroup-green-angular-src-lib-context-menu.mjs.map +1 -0
- package/fesm2015/sebgroup-green-angular-src-lib-datepicker.mjs +166 -0
- package/fesm2015/sebgroup-green-angular-src-lib-datepicker.mjs.map +1 -0
- package/fesm2015/sebgroup-green-angular-src-lib-dropdown.mjs +266 -0
- package/fesm2015/sebgroup-green-angular-src-lib-dropdown.mjs.map +1 -0
- package/fesm2015/sebgroup-green-angular-src-lib-in-page-wizard.mjs +72 -0
- package/fesm2015/sebgroup-green-angular-src-lib-in-page-wizard.mjs.map +1 -0
- package/fesm2015/sebgroup-green-angular-src-lib-modal.mjs +321 -0
- package/fesm2015/sebgroup-green-angular-src-lib-modal.mjs.map +1 -0
- package/fesm2015/sebgroup-green-angular-src-lib-pagination.mjs +197 -0
- package/fesm2015/sebgroup-green-angular-src-lib-pagination.mjs.map +1 -0
- package/fesm2015/sebgroup-green-angular-src-lib-progress-circle.mjs +63 -0
- package/fesm2015/sebgroup-green-angular-src-lib-progress-circle.mjs.map +1 -0
- package/fesm2015/sebgroup-green-angular-src-lib-segmented-control.mjs +58 -0
- package/fesm2015/sebgroup-green-angular-src-lib-segmented-control.mjs.map +1 -0
- package/fesm2015/sebgroup-green-angular-src-lib-shared.mjs +114 -0
- package/fesm2015/sebgroup-green-angular-src-lib-shared.mjs.map +1 -0
- package/fesm2015/sebgroup-green-angular-src-lib-slider.mjs +136 -0
- package/fesm2015/sebgroup-green-angular-src-lib-slider.mjs.map +1 -0
- package/fesm2015/sebgroup-green-angular-src-lib-sortable-list.mjs +204 -0
- package/fesm2015/sebgroup-green-angular-src-lib-sortable-list.mjs.map +1 -0
- package/fesm2015/sebgroup-green-angular.mjs +84 -80
- package/fesm2015/sebgroup-green-angular.mjs.map +1 -1
- package/fesm2020/sebgroup-green-angular-src-lib-accordion.mjs +138 -0
- package/fesm2020/sebgroup-green-angular-src-lib-accordion.mjs.map +1 -0
- package/fesm2020/sebgroup-green-angular-src-lib-badge.mjs +102 -0
- package/fesm2020/sebgroup-green-angular-src-lib-badge.mjs.map +1 -0
- package/fesm2020/sebgroup-green-angular-src-lib-button.mjs +50 -0
- package/fesm2020/sebgroup-green-angular-src-lib-button.mjs.map +1 -0
- package/fesm2020/sebgroup-green-angular-src-lib-cell-table.mjs +270 -0
- package/fesm2020/sebgroup-green-angular-src-lib-cell-table.mjs.map +1 -0
- package/fesm2020/sebgroup-green-angular-src-lib-context-menu.mjs +104 -0
- package/fesm2020/sebgroup-green-angular-src-lib-context-menu.mjs.map +1 -0
- package/fesm2020/sebgroup-green-angular-src-lib-datepicker.mjs +162 -0
- package/fesm2020/sebgroup-green-angular-src-lib-datepicker.mjs.map +1 -0
- package/fesm2020/sebgroup-green-angular-src-lib-dropdown.mjs +274 -0
- package/fesm2020/sebgroup-green-angular-src-lib-dropdown.mjs.map +1 -0
- package/fesm2020/sebgroup-green-angular-src-lib-in-page-wizard.mjs +72 -0
- package/fesm2020/sebgroup-green-angular-src-lib-in-page-wizard.mjs.map +1 -0
- package/fesm2020/sebgroup-green-angular-src-lib-modal.mjs +319 -0
- package/fesm2020/sebgroup-green-angular-src-lib-modal.mjs.map +1 -0
- package/fesm2020/sebgroup-green-angular-src-lib-pagination.mjs +197 -0
- package/fesm2020/sebgroup-green-angular-src-lib-pagination.mjs.map +1 -0
- package/fesm2020/sebgroup-green-angular-src-lib-progress-circle.mjs +63 -0
- package/fesm2020/sebgroup-green-angular-src-lib-progress-circle.mjs.map +1 -0
- package/fesm2020/sebgroup-green-angular-src-lib-segmented-control.mjs +58 -0
- package/fesm2020/sebgroup-green-angular-src-lib-segmented-control.mjs.map +1 -0
- package/fesm2020/sebgroup-green-angular-src-lib-shared.mjs +113 -0
- package/fesm2020/sebgroup-green-angular-src-lib-shared.mjs.map +1 -0
- package/fesm2020/sebgroup-green-angular-src-lib-slider.mjs +135 -0
- package/fesm2020/sebgroup-green-angular-src-lib-slider.mjs.map +1 -0
- package/fesm2020/sebgroup-green-angular-src-lib-sortable-list.mjs +204 -0
- package/fesm2020/sebgroup-green-angular-src-lib-sortable-list.mjs.map +1 -0
- package/fesm2020/sebgroup-green-angular.mjs +84 -80
- package/fesm2020/sebgroup-green-angular.mjs.map +1 -1
- package/lib/context-menu/context-menu.component.d.ts +2 -2
- package/lib/context-menu/context-menu.module.d.ts +1 -1
- package/lib/datepicker/datepicker.component.d.ts +1 -1
- package/lib/datepicker/datepicker.module.d.ts +2 -3
- package/lib/dropdown/dropdown.component.d.ts +2 -2
- package/lib/dropdown/dropdown.module.d.ts +1 -1
- package/lib/shared/index.d.ts +1 -0
- package/package.json +122 -2
- package/src/lib/accordion/accordion-list-item.component.d.ts +15 -0
- package/src/lib/accordion/accordion.component.d.ts +16 -0
- package/src/lib/accordion/accordion.module.d.ts +9 -0
- package/src/lib/accordion/index.d.ts +3 -0
- package/src/lib/badge/badge.component.d.ts +25 -0
- package/src/lib/badge/badge.module.d.ts +8 -0
- package/src/lib/badge/index.d.ts +2 -0
- package/src/lib/button/button.component.d.ts +9 -0
- package/src/lib/button/button.module.d.ts +8 -0
- package/src/lib/button/index.d.ts +2 -0
- package/src/lib/cell-table/cell-table-item.component.d.ts +14 -0
- package/src/lib/cell-table/cell-table.component.d.ts +44 -0
- package/src/lib/cell-table/cell-table.module.d.ts +10 -0
- package/src/lib/cell-table/cell-table.types.d.ts +34 -0
- package/src/lib/cell-table/cell-underline.directive.d.ts +14 -0
- package/src/lib/cell-table/index.d.ts +3 -0
- package/src/lib/context-menu/context-menu.component.d.ts +49 -0
- package/src/lib/context-menu/context-menu.module.d.ts +9 -0
- package/src/lib/context-menu/index.d.ts +2 -0
- package/src/lib/datepicker/datepicker.component.d.ts +66 -0
- package/src/lib/datepicker/datepicker.module.d.ts +9 -0
- package/src/lib/datepicker/index.d.ts +2 -0
- package/src/lib/dropdown/dropdown-button.directive.d.ts +8 -0
- package/src/lib/dropdown/dropdown-option.directive.d.ts +8 -0
- package/src/lib/dropdown/dropdown.component.d.ts +79 -0
- package/src/lib/dropdown/dropdown.module.d.ts +11 -0
- package/src/lib/dropdown/index.d.ts +4 -0
- package/src/lib/in-page-wizard/in-page-wizard-step-card.component.d.ts +17 -0
- package/src/lib/in-page-wizard/in-page-wizard.module.d.ts +8 -0
- package/src/lib/in-page-wizard/index.d.ts +2 -0
- package/src/lib/modal/index.d.ts +4 -0
- package/src/lib/modal/modal-footer.directive.d.ts +8 -0
- package/src/lib/modal/modal-header.directive.d.ts +8 -0
- package/src/lib/modal/modal.component.d.ts +65 -0
- package/src/lib/modal/modal.module.d.ts +11 -0
- package/src/lib/pagination/index.d.ts +2 -0
- package/src/lib/pagination/pagination.component.d.ts +42 -0
- package/src/lib/pagination/pagination.module.d.ts +8 -0
- package/src/lib/progress-circle/index.d.ts +2 -0
- package/src/lib/progress-circle/progress-circle.component.d.ts +14 -0
- package/src/lib/progress-circle/progress-circle.module.d.ts +8 -0
- package/src/lib/segmented-control/index.d.ts +2 -0
- package/src/lib/segmented-control/segmented-control.component.d.ts +11 -0
- package/src/lib/segmented-control/segmented-control.module.d.ts +9 -0
- package/src/lib/shared/core-element/core-element.directive.d.ts +13 -0
- package/src/lib/shared/core-element/core-element.module.d.ts +8 -0
- package/src/lib/shared/core-element/index.d.ts +2 -0
- package/src/lib/shared/index.d.ts +3 -0
- package/src/lib/shared/on-scroll.directive.d.ts +14 -0
- package/src/lib/shared/shared.module.d.ts +8 -0
- package/src/lib/slider/index.d.ts +2 -0
- package/src/lib/slider/slider.component.d.ts +38 -0
- package/src/lib/slider/slider.module.d.ts +9 -0
- package/src/lib/sortable-list/index.d.ts +2 -0
- package/src/lib/sortable-list/sortable-list.component.d.ts +91 -0
- 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":";;;;;;;;;MAyBa,uBAAuB,CAAA;AAsClC,IAAA,WAAA,CAAoB,UAAmC,EAAA;AAAnC,QAAA,IAAU,CAAA,UAAA,GAAV,UAAU,CAAyB;AArCvD;;AAEG;AACM,QAAA,IAAS,CAAA,SAAA,GAAkB,KAAK,CAAA;AAEzC;;AAEG;AACM,QAAA,IAAS,CAAA,SAAA,GAAgB,EAAE,CAAA;AAEpC;;AAEG;AACM,QAAA,IAAgB,CAAA,gBAAA,GAAgC,IAAI,CAAA;AAE7D;;AAEG;AACM,QAAA,IAAkB,CAAA,kBAAA,GAAgC,IAAI,CAAA;AAE/D;;;AAGG;AACM,QAAA,IAAa,CAAA,aAAA,GAAG,KAAK,CAAA;AAE9B;;AAEG;AACO,QAAA,IAAA,CAAA,sBAAsB,GAC9B,IAAI,YAAY,EAAkB,CAAA;AAKpC,QAAA,IAAQ,CAAA,QAAA,GAAG,KAAK,CAAA;QAGd,sBAAsB,CAAC,QAAQ,EAAE,CAAA;KAClC;AAED,IAAA,IAAI,SAAS,GAAA;AACX,QAAA,OAAO,IAAI,CAAC,SAAS,KAAK,KAAK,GAAG,cAAc,GAAG,YAAY,CAAA;KAChE;IAED,IAAI,GAAA;QACF,IAAI,IAAI,CAAC,QAAQ,EAAE;YACjB,IAAI,CAAC,KAAK,EAAE,CAAA;YACZ,OAAM;AACP,SAAA;AAED,QAAA,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAA;KACrB;IAED,KAAK,GAAA;AACH,QAAA,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAA;KACtB;AAED,IAAA,WAAW,CAAC,IAAoB,EAAA;AAC9B,QAAA,IAAI,CAAC,sBAAsB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;QACtC,IAAI,CAAC,KAAK,EAAE,CAAA;KACb;;oHA9DU,uBAAuB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,UAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAvB,uBAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,uBAAuB,gfCzBpC,u5BA8BA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,cAAA,EAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,gBAAA,EAAA,QAAA,EAAA,oBAAA,EAAA,MAAA,EAAA,CAAA,yBAAA,EAAA,kBAAA,EAAA,0BAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,uBAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,CAAA,EAAA,CAAA,CAAA;2FDLa,uBAAuB,EAAA,UAAA,EAAA,CAAA;kBAJnC,SAAS;+BACE,kBAAkB,EAAA,QAAA,EAAA,u5BAAA,EAAA,CAAA;iGAOnB,SAAS,EAAA,CAAA;sBAAjB,KAAK;gBAKG,SAAS,EAAA,CAAA;sBAAjB,KAAK;gBAKG,gBAAgB,EAAA,CAAA;sBAAxB,KAAK;gBAKG,kBAAkB,EAAA,CAAA;sBAA1B,KAAK;gBAMG,aAAa,EAAA,CAAA;sBAArB,KAAK;gBAKI,sBAAsB,EAAA,CAAA;sBAA/B,MAAM;gBAG0B,OAAO,EAAA,CAAA;sBAAvC,SAAS;uBAAC,oBAAoB,CAAA;gBACC,MAAM,EAAA,CAAA;sBAArC,SAAS;uBAAC,mBAAmB,CAAA;;;MEhDnB,oBAAoB,CAAA;;iHAApB,oBAAoB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA;AAApB,oBAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,oBAAoB,iBALhB,uBAAuB,CAAA,EAAA,OAAA,EAAA,CAC5B,YAAY,EAAE,oBAAoB,aAClC,uBAAuB,CAAA,EAAA,CAAA,CAAA;kHAGtB,oBAAoB,EAAA,OAAA,EAAA,CAJrB,YAAY,EAAE,oBAAoB,CAAA,EAAA,CAAA,CAAA;2FAIjC,oBAAoB,EAAA,UAAA,EAAA,CAAA;kBANhC,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;oBACR,YAAY,EAAE,CAAC,uBAAuB,CAAC;AACvC,oBAAA,OAAO,EAAE,CAAC,YAAY,EAAE,oBAAoB,CAAC;oBAC7C,OAAO,EAAE,CAAC,uBAAuB,CAAC;oBAClC,OAAO,EAAE,CAAC,sBAAsB,CAAC;iBAClC,CAAA;;;ACVD;;AAEG;;;;"}
|
|
@@ -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
|