@sebgroup/green-angular 4.6.2 → 4.6.4
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/esm2022/src/v-angular/base-control-value-accessor/base-control-value-accessor.component.mjs +9 -9
- package/esm2022/src/v-angular/button/button.component.mjs +5 -5
- package/esm2022/src/v-angular/character-countdown/character-countdown.directive.mjs +5 -5
- package/esm2022/src/v-angular/core/core.globals.mjs +3 -3
- package/esm2022/src/v-angular/dropdown/dropdown-list/dropdown-list.component.mjs +4 -4
- package/esm2022/src/v-angular/dropdown/typeahead/typeahead-dropdown-list/typeahead-dropdown-list.component.mjs +5 -5
- package/esm2022/src/v-angular/dropdown/typeahead/typeahead.directive.mjs +7 -7
- package/esm2022/src/v-angular/info-circle/info-circle.component.mjs +4 -4
- package/esm2022/src/v-angular/input/input.component.mjs +7 -7
- package/esm2022/src/v-angular/input-mask/input-mask-format.pipe.mjs +5 -4
- package/esm2022/src/v-angular/input-mask/input-mask.directive.mjs +8 -8
- package/esm2022/src/v-angular/modal/dialog/dialog.component.mjs +16 -16
- package/esm2022/src/v-angular/modal/fold-out/fold-out.component.mjs +2 -2
- package/esm2022/src/v-angular/modal/fold-out/fold-out.directive.mjs +3 -3
- package/esm2022/src/v-angular/modal/modal.globals.mjs +3 -3
- package/esm2022/src/v-angular/modal/slide-out/slide-out.component.mjs +15 -15
- package/esm2022/src/v-angular/textarea/textarea.component.mjs +4 -3
- package/esm2022/src/v-angular/textarea/textarea.module.mjs +5 -4
- package/esm2022/src/v-angular/tooltip/tooltip.directive.mjs +13 -13
- package/esm2022/v-angular/base-control-value-accessor/base-control-value-accessor.component.mjs +9 -9
- package/esm2022/v-angular/button/button.component.mjs +5 -5
- package/esm2022/v-angular/character-countdown/character-countdown.directive.mjs +51 -0
- package/esm2022/v-angular/character-countdown/character-countdown.module.mjs +18 -0
- package/esm2022/v-angular/character-countdown/index.mjs +3 -0
- package/esm2022/v-angular/dropdown/dropdown-list/dropdown-list.component.mjs +4 -4
- package/esm2022/v-angular/dropdown/typeahead/typeahead-dropdown-list/typeahead-dropdown-list.component.mjs +5 -5
- package/esm2022/v-angular/dropdown/typeahead/typeahead.directive.mjs +7 -7
- package/esm2022/v-angular/index.mjs +2 -1
- package/esm2022/v-angular/info-circle/info-circle.component.mjs +4 -4
- package/esm2022/v-angular/input/input.component.mjs +7 -7
- package/esm2022/v-angular/input-mask/input-mask-format.pipe.mjs +5 -4
- package/esm2022/v-angular/input-mask/input-mask.directive.mjs +8 -8
- package/esm2022/v-angular/modal/dialog/dialog.component.mjs +16 -16
- package/esm2022/v-angular/modal/fold-out/fold-out.component.mjs +2 -2
- package/esm2022/v-angular/modal/fold-out/fold-out.directive.mjs +3 -3
- package/esm2022/v-angular/modal/modal.globals.mjs +3 -3
- package/esm2022/v-angular/modal/slide-out/slide-out.component.mjs +15 -15
- package/esm2022/v-angular/textarea/textarea.component.mjs +4 -3
- package/esm2022/v-angular/textarea/textarea.module.mjs +5 -4
- package/esm2022/v-angular/tooltip/tooltip.directive.mjs +13 -13
- package/esm2022/v-angular/v-angular.module.mjs +5 -1
- package/fesm2022/sebgroup-green-angular-src-v-angular-base-control-value-accessor.mjs +8 -8
- package/fesm2022/sebgroup-green-angular-src-v-angular-base-control-value-accessor.mjs.map +1 -1
- package/fesm2022/sebgroup-green-angular-src-v-angular-button.mjs +4 -4
- package/fesm2022/sebgroup-green-angular-src-v-angular-button.mjs.map +1 -1
- package/fesm2022/sebgroup-green-angular-src-v-angular-character-countdown.mjs +4 -4
- package/fesm2022/sebgroup-green-angular-src-v-angular-character-countdown.mjs.map +1 -1
- package/fesm2022/sebgroup-green-angular-src-v-angular-core.mjs +2 -2
- package/fesm2022/sebgroup-green-angular-src-v-angular-core.mjs.map +1 -1
- package/fesm2022/sebgroup-green-angular-src-v-angular-dropdown.mjs +13 -13
- package/fesm2022/sebgroup-green-angular-src-v-angular-dropdown.mjs.map +1 -1
- package/fesm2022/sebgroup-green-angular-src-v-angular-info-circle.mjs +3 -3
- package/fesm2022/sebgroup-green-angular-src-v-angular-info-circle.mjs.map +1 -1
- package/fesm2022/sebgroup-green-angular-src-v-angular-input-mask.mjs +11 -10
- package/fesm2022/sebgroup-green-angular-src-v-angular-input-mask.mjs.map +1 -1
- package/fesm2022/sebgroup-green-angular-src-v-angular-input.mjs +6 -6
- package/fesm2022/sebgroup-green-angular-src-v-angular-input.mjs.map +1 -1
- package/fesm2022/sebgroup-green-angular-src-v-angular-modal.mjs +34 -34
- package/fesm2022/sebgroup-green-angular-src-v-angular-modal.mjs.map +1 -1
- package/fesm2022/sebgroup-green-angular-src-v-angular-textarea.mjs +7 -5
- package/fesm2022/sebgroup-green-angular-src-v-angular-textarea.mjs.map +1 -1
- package/fesm2022/sebgroup-green-angular-src-v-angular-tooltip.mjs +12 -12
- package/fesm2022/sebgroup-green-angular-src-v-angular-tooltip.mjs.map +1 -1
- package/fesm2022/sebgroup-green-angular-v-angular.mjs +164 -97
- package/fesm2022/sebgroup-green-angular-v-angular.mjs.map +1 -1
- package/package.json +2 -2
- package/src/v-angular/base-control-value-accessor/base-control-value-accessor.component.d.ts +3 -3
- package/src/v-angular/button/button.component.d.ts +2 -2
- package/src/v-angular/character-countdown/character-countdown.directive.d.ts +1 -1
- package/src/v-angular/core/core.globals.d.ts +1 -1
- package/src/v-angular/dropdown/typeahead/typeahead.directive.d.ts +2 -2
- package/src/v-angular/info-circle/info-circle.component.d.ts +1 -1
- package/src/v-angular/input/input.component.d.ts +3 -3
- package/src/v-angular/input-mask/input-mask-format.pipe.d.ts +1 -1
- package/src/v-angular/input-mask/input-mask.directive.d.ts +2 -2
- package/src/v-angular/modal/dialog/dialog.component.d.ts +5 -5
- package/src/v-angular/modal/fold-out/fold-out.component.d.ts +1 -1
- package/src/v-angular/modal/fold-out/fold-out.directive.d.ts +1 -1
- package/src/v-angular/modal/modal.globals.d.ts +1 -1
- package/src/v-angular/modal/slide-out/slide-out.component.d.ts +6 -6
- package/src/v-angular/textarea/textarea.module.d.ts +2 -1
- package/src/v-angular/tooltip/tooltip.directive.d.ts +4 -4
- package/v-angular/base-control-value-accessor/base-control-value-accessor.component.d.ts +3 -3
- package/v-angular/button/button.component.d.ts +2 -2
- package/v-angular/character-countdown/character-countdown.directive.d.ts +17 -0
- package/v-angular/character-countdown/character-countdown.module.d.ts +8 -0
- package/v-angular/character-countdown/index.d.ts +2 -0
- package/v-angular/dropdown/typeahead/typeahead.directive.d.ts +2 -2
- package/v-angular/index.d.ts +1 -0
- package/v-angular/info-circle/info-circle.component.d.ts +1 -1
- package/v-angular/input/input.component.d.ts +3 -3
- package/v-angular/input-mask/input-mask-format.pipe.d.ts +1 -1
- package/v-angular/input-mask/input-mask.directive.d.ts +2 -2
- package/v-angular/modal/dialog/dialog.component.d.ts +5 -5
- package/v-angular/modal/fold-out/fold-out.component.d.ts +1 -1
- package/v-angular/modal/fold-out/fold-out.directive.d.ts +1 -1
- package/v-angular/modal/modal.globals.d.ts +1 -1
- package/v-angular/modal/slide-out/slide-out.component.d.ts +6 -6
- package/v-angular/textarea/textarea.module.d.ts +2 -1
- package/v-angular/tooltip/tooltip.directive.d.ts +4 -4
- package/v-angular/v-angular.module.d.ts +13 -12
|
@@ -2,7 +2,7 @@ import * as i1 from '@angular/common';
|
|
|
2
2
|
import { CommonModule } from '@angular/common';
|
|
3
3
|
import * as i0 from '@angular/core';
|
|
4
4
|
import { EventEmitter, Component, ViewChild, HostBinding, Input, Output, HostListener, ElementRef, Directive, NgModule, CUSTOM_ELEMENTS_SCHEMA } from '@angular/core';
|
|
5
|
-
import '@sebgroup/green-core/components/icon/icons/dot-grid-one-horizontal';
|
|
5
|
+
import '@sebgroup/green-core/components/icon/icons/dot-grid-one-horizontal.js';
|
|
6
6
|
import { fromEvent } from 'rxjs';
|
|
7
7
|
import { trigger, transition, query, style, group, animate } from '@angular/animations';
|
|
8
8
|
import { NgvButtonModule } from '@sebgroup/green-angular/src/v-angular/button';
|
|
@@ -10,8 +10,8 @@ import { NgvButtonModule } from '@sebgroup/green-angular/src/v-angular/button';
|
|
|
10
10
|
;
|
|
11
11
|
(() => {
|
|
12
12
|
// Make sure there is an incremental ID each component can use
|
|
13
|
-
if (typeof window !== 'undefined' && !window.
|
|
14
|
-
window.
|
|
13
|
+
if (typeof window !== 'undefined' && !window.nggv) {
|
|
14
|
+
window.nggv = {
|
|
15
15
|
ids: { default: -1 },
|
|
16
16
|
nextId(namespace = 'default') {
|
|
17
17
|
let id = this.ids[namespace] || 0;
|
|
@@ -49,10 +49,10 @@ class NgvDialogComponent {
|
|
|
49
49
|
this.closeModalOnEscape = true;
|
|
50
50
|
// /** @internal */
|
|
51
51
|
// closeIcon = faTimes
|
|
52
|
-
this.
|
|
53
|
-
this.
|
|
54
|
-
this.
|
|
55
|
-
this.
|
|
52
|
+
this.nggvCloseEvent = new EventEmitter();
|
|
53
|
+
this.nggvPositiveEvent = new EventEmitter();
|
|
54
|
+
this.nggvNeutralEvent = new EventEmitter();
|
|
55
|
+
this.nggvNegativeEvent = new EventEmitter();
|
|
56
56
|
}
|
|
57
57
|
/** @internal */
|
|
58
58
|
get ariaHidden() {
|
|
@@ -64,9 +64,9 @@ class NgvDialogComponent {
|
|
|
64
64
|
}
|
|
65
65
|
ngOnInit() {
|
|
66
66
|
this.dialogTitleId =
|
|
67
|
-
this.dialogTitleId ?? 'sdv-dialog-title-' + window.
|
|
67
|
+
this.dialogTitleId ?? 'sdv-dialog-title-' + window.nggv?.nextId();
|
|
68
68
|
this.dialogBodyId =
|
|
69
|
-
this.dialogBodyId ?? 'sdv-dialog-body-' + window.
|
|
69
|
+
this.dialogBodyId ?? 'sdv-dialog-body-' + window.nggv?.nextId();
|
|
70
70
|
this.shown = this.initiallyShown;
|
|
71
71
|
if (this.shown)
|
|
72
72
|
this._limitFocusable();
|
|
@@ -79,13 +79,13 @@ class NgvDialogComponent {
|
|
|
79
79
|
};
|
|
80
80
|
switch (action) {
|
|
81
81
|
case 'positive':
|
|
82
|
-
this.
|
|
82
|
+
this.nggvPositiveEvent.emit(emitEvent);
|
|
83
83
|
break;
|
|
84
84
|
case 'neutral':
|
|
85
|
-
this.
|
|
85
|
+
this.nggvNeutralEvent.emit(emitEvent);
|
|
86
86
|
break;
|
|
87
87
|
case 'negative':
|
|
88
|
-
this.
|
|
88
|
+
this.nggvNegativeEvent.emit(emitEvent);
|
|
89
89
|
break;
|
|
90
90
|
// case 'close' is handled by if-statement below with call to this.close()
|
|
91
91
|
}
|
|
@@ -120,7 +120,7 @@ class NgvDialogComponent {
|
|
|
120
120
|
original: event,
|
|
121
121
|
payload: this.payload,
|
|
122
122
|
};
|
|
123
|
-
this.
|
|
123
|
+
this.nggvCloseEvent.emit(emitEvent);
|
|
124
124
|
}
|
|
125
125
|
this.shown = false;
|
|
126
126
|
window.setTimeout(() => {
|
|
@@ -150,7 +150,7 @@ class NgvDialogComponent {
|
|
|
150
150
|
}
|
|
151
151
|
}
|
|
152
152
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: NgvDialogComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
153
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: NgvDialogComponent, selector: "nggv-dialog", inputs: { thook: "thook", shown: "shown", initiallyShown: "initiallyShown", heading: "heading", title: "title", content: "content", autoClose: "autoClose", payload: "payload", dialogTitleId: "dialogTitleId", dialogBodyId: "dialogBodyId", closeModalOnEscape: "closeModalOnEscape", buttons: "buttons" }, outputs: {
|
|
153
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: NgvDialogComponent, selector: "nggv-dialog", inputs: { thook: "thook", shown: "shown", initiallyShown: "initiallyShown", heading: "heading", title: "title", content: "content", autoClose: "autoClose", payload: "payload", dialogTitleId: "dialogTitleId", dialogBodyId: "dialogBodyId", closeModalOnEscape: "closeModalOnEscape", buttons: "buttons" }, outputs: { nggvCloseEvent: "nggvCloseEvent", nggvPositiveEvent: "nggvPositiveEvent", nggvNeutralEvent: "nggvNeutralEvent", nggvNegativeEvent: "nggvNegativeEvent" }, host: { listeners: { "click": "close($event,\"host\")", "document:keydown.escape": "close($event)", "keydown": "focusTrap($event)" }, properties: { "attr.data-thook": "this.thook", "class.sdv-modal-dialog": "this.baseClass", "class.-active": "this.shown", "attr.aria-hidden": "this.ariaHidden" } }, viewQueries: [{ propertyName: "dialogRef", first: true, predicate: ["dialog"], descendants: true }], exportAs: ["dialog"], ngImport: i0, template: "<div\n class=\"sdv-modal-dialog__container\"\n *transloco=\"let t\"\n #dialog\n role=\"dialog\"\n aria-dialog=\"true\"\n [attr.aria-labelledby]=\"dialogTitleId\"\n [attr.aria-describedby]=\"dialogBodyId\"\n>\n <header class=\"sdv-modal-dialog__heading\">\n <h3 [attr.id]=\"dialogTitleId\">{{ t(heading || title || '') }}</h3>\n <button\n type=\"button\"\n data-thook=\"dialog-close\"\n (click)=\"onAction($event, 'close')\"\n (keydown.enter)=\"onAction($event, 'close')\"\n class=\"close\"\n >\n <gds-icon-cross-small\n *nggCoreElement\n width=\"24\"\n height=\"24\"\n ></gds-icon-cross-small>\n </button>\n </header>\n <section class=\"sdv-modal-dialog__body\" [attr.id]=\"dialogBodyId\">\n <div [innerHtml]=\"content\"></div>\n <ng-content></ng-content>\n </section>\n <footer class=\"sdv-modal-dialog__actions\">\n <button\n class=\"sdv-button sdv-button-delete\"\n type=\"reset\"\n [attr.data-thook]=\"'dialog-' + (_buttons?.negative || 'negative')\"\n (click)=\"onAction($event, 'negative')\"\n (keydown.enter)=\"onAction($event, 'negative')\"\n *ngIf=\"_buttons && _buttons.negative\"\n >\n {{ t(_buttons.negative) }}\n </button>\n <button\n class=\"sdv-button sdv-button-secondary\"\n type=\"button\"\n [attr.data-thook]=\"'dialog-' + (_buttons?.neutral || 'neutral')\"\n (click)=\"onAction($event, 'neutral')\"\n (keydown.enter)=\"onAction($event, 'neutral')\"\n *ngIf=\"_buttons && _buttons.neutral\"\n >\n {{ t(_buttons.neutral) }}\n </button>\n <button\n class=\"sdv-button\"\n type=\"submit\"\n [attr.data-thook]=\"'dialog-' + (_buttons?.positive || 'positive')\"\n (click)=\"onAction($event, 'positive')\"\n (keydown.enter)=\"onAction($event, 'positive')\"\n *ngIf=\"_buttons && _buttons.positive\"\n >\n {{ t(_buttons.positive) }}\n </button>\n </footer>\n</div>\n\n<div class=\"sdv-modal-backdrop\"></div>\n", styles: [":host{inset:0;position:fixed;display:grid;place-content:center;z-index:calc(var(--sg-z-index-modal-backdrop) + 1)}:host .sdv-modal-dialog__container{background:var(--sg-modal-background);display:flex;flex-direction:column;box-shadow:var(--sg-modal-box-shadow);position:absolute;width:100%;z-index:var(--sg-z-index-modal);position:initial;width:375px;max-width:95vw}:host .sdv-modal-dialog__container>.header,:host .sdv-modal-dialog__container>header{padding:1rem;border-bottom:solid var(--sg-border-width) var(--sg-border-color);--border-color: var(--sg-border-color);display:inline-flex;justify-content:space-between;align-items:center;width:100%}:host .sdv-modal-dialog__container>.header h3,:host .sdv-modal-dialog__container>.header .h3,:host .sdv-modal-dialog__container>header h3,:host .sdv-modal-dialog__container>header .h3{margin-bottom:0;margin-top:0}:host .sdv-modal-dialog__container>.header h3+.close,:host .sdv-modal-dialog__container>.header .h3+.close,:host .sdv-modal-dialog__container>header h3+.close,:host .sdv-modal-dialog__container>header .h3+.close{margin:-7px}:host .sdv-modal-dialog__container>.body{padding:1rem;overflow:auto;width:100%}:host .sdv-modal-dialog__container>.body p{margin-bottom:0;margin-top:0}:host .sdv-modal-dialog__container>.footer,:host .sdv-modal-dialog__container>footer{padding:1rem;width:100%}@media (min-width: 36em){:host .sdv-modal-dialog__container>.footer,:host .sdv-modal-dialog__container>footer{display:flex;justify-content:flex-end}}@media (max-width: 35.98em){:host .sdv-modal-dialog__container>.footer button+button,:host .sdv-modal-dialog__container>.footer button+.button,:host .sdv-modal-dialog__container>.footer .button+button,:host .sdv-modal-dialog__container>.footer .button+.button,:host .sdv-modal-dialog__container>footer button+button,:host .sdv-modal-dialog__container>footer button+.button,:host .sdv-modal-dialog__container>footer .button+button,:host .sdv-modal-dialog__container>footer .button+.button{margin-top:.75rem}}@media (min-width: 36em){:host .sdv-modal-dialog__container>.footer button+button,:host .sdv-modal-dialog__container>.footer button+.button,:host .sdv-modal-dialog__container>.footer .button+button,:host .sdv-modal-dialog__container>.footer .button+.button,:host .sdv-modal-dialog__container>footer button+button,:host .sdv-modal-dialog__container>footer button+.button,:host .sdv-modal-dialog__container>footer .button+button,:host .sdv-modal-dialog__container>footer .button+.button{margin-left:.75rem}}:host .sdv-modal-dialog__container.medium{width:512px}:host .sdv-modal-dialog__container.large{width:720px}:host .sdv-modal-dialog__heading{padding:1rem;border-bottom:solid var(--sg-border-width) var(--sg-border-color);--border-color: var(--sg-border-color);display:inline-flex;justify-content:space-between;align-items:center;width:100%}:host .sdv-modal-dialog__heading h3,:host .sdv-modal-dialog__heading .h3{margin-bottom:0;margin-top:0}:host .sdv-modal-dialog__heading h3+.close,:host .sdv-modal-dialog__heading .h3+.close{margin:-7px}:host .sdv-modal-dialog__heading button{display:grid;place-content:center}:host .sdv-modal-dialog__body{padding:1rem;overflow:auto;width:100%}:host .sdv-modal-dialog__body p{margin-bottom:0;margin-top:0}:host .sdv-modal-backdrop{background:#00000059;inset:0;position:fixed;z-index:999;display:block;transition:opacity .5s cubic-bezier(.33,1,.68,1)}:host .sdv-modal-backdrop--transparent{opacity:0}:host .sdv-modal-backdrop--transparent.entered,:host .sdv-modal-backdrop--transparent.is-entering{opacity:1}:host .sdv-modal-backdrop--transparent.is-exiting{opacity:0}\n"], dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] }); }
|
|
154
154
|
}
|
|
155
155
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: NgvDialogComponent, decorators: [{
|
|
156
156
|
type: Component,
|
|
@@ -194,13 +194,13 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
194
194
|
type: Input
|
|
195
195
|
}], buttons: [{
|
|
196
196
|
type: Input
|
|
197
|
-
}],
|
|
197
|
+
}], nggvCloseEvent: [{
|
|
198
198
|
type: Output
|
|
199
|
-
}],
|
|
199
|
+
}], nggvPositiveEvent: [{
|
|
200
200
|
type: Output
|
|
201
|
-
}],
|
|
201
|
+
}], nggvNeutralEvent: [{
|
|
202
202
|
type: Output
|
|
203
|
-
}],
|
|
203
|
+
}], nggvNegativeEvent: [{
|
|
204
204
|
type: Output
|
|
205
205
|
}], close: [{
|
|
206
206
|
type: HostListener,
|
|
@@ -269,12 +269,12 @@ class NgvFoldOutOptionDirective {
|
|
|
269
269
|
this.baseClass = true;
|
|
270
270
|
}
|
|
271
271
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: NgvFoldOutOptionDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
272
|
-
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.2.12", type: NgvFoldOutOptionDirective, selector: "[
|
|
272
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.2.12", type: NgvFoldOutOptionDirective, selector: "[nggvOption]", host: { properties: { "class.sdv-field-dropdown__options__label": "this.baseClass" } }, ngImport: i0 }); }
|
|
273
273
|
}
|
|
274
274
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: NgvFoldOutOptionDirective, decorators: [{
|
|
275
275
|
type: Directive,
|
|
276
276
|
args: [{
|
|
277
|
-
selector: '[
|
|
277
|
+
selector: '[nggvOption]',
|
|
278
278
|
}]
|
|
279
279
|
}], propDecorators: { baseClass: [{
|
|
280
280
|
type: HostBinding,
|
|
@@ -317,10 +317,10 @@ class NgvSlideOutComponent {
|
|
|
317
317
|
/** Special property used for selecting DOM elements during automated UI testing. */
|
|
318
318
|
this.thook = 'slideout';
|
|
319
319
|
/** Will emit true on closing event. */
|
|
320
|
-
this.
|
|
321
|
-
this.
|
|
322
|
-
this.
|
|
323
|
-
this.
|
|
320
|
+
this.nggvCloseEvent = new EventEmitter();
|
|
321
|
+
this.nggvPositiveEvent = new EventEmitter();
|
|
322
|
+
this.nggvNeutralEvent = new EventEmitter();
|
|
323
|
+
this.nggvNegativeEvent = new EventEmitter();
|
|
324
324
|
// appends methods for opening and closing modal to native element
|
|
325
325
|
this.host.nativeElement.open = this.open.bind(this);
|
|
326
326
|
this.host.nativeElement.close = this.close.bind(this);
|
|
@@ -334,13 +334,13 @@ class NgvSlideOutComponent {
|
|
|
334
334
|
event.preventDefault();
|
|
335
335
|
switch (action) {
|
|
336
336
|
case 'positive':
|
|
337
|
-
this.
|
|
337
|
+
this.nggvPositiveEvent.emit();
|
|
338
338
|
break;
|
|
339
339
|
case 'neutral':
|
|
340
|
-
this.
|
|
340
|
+
this.nggvNeutralEvent.emit();
|
|
341
341
|
break;
|
|
342
342
|
case 'negative':
|
|
343
|
-
this.
|
|
343
|
+
this.nggvNegativeEvent.emit();
|
|
344
344
|
break;
|
|
345
345
|
}
|
|
346
346
|
this.close(event, 'action');
|
|
@@ -358,7 +358,7 @@ class NgvSlideOutComponent {
|
|
|
358
358
|
return true;
|
|
359
359
|
}
|
|
360
360
|
/**
|
|
361
|
-
* Called on a modal element. Closes the modal and emits a `
|
|
361
|
+
* Called on a modal element. Closes the modal and emits a `nggvCloseEvent`. Sets focus to the lats focused element if an element was sent in to open function.
|
|
362
362
|
*
|
|
363
363
|
* @param event
|
|
364
364
|
* @param initiator
|
|
@@ -369,7 +369,7 @@ class NgvSlideOutComponent {
|
|
|
369
369
|
event.target !== event.currentTarget)
|
|
370
370
|
return;
|
|
371
371
|
if (this.shown && this.closable) {
|
|
372
|
-
this.
|
|
372
|
+
this.nggvCloseEvent.emit(this.shown);
|
|
373
373
|
this.shown = false;
|
|
374
374
|
window.setTimeout(() => {
|
|
375
375
|
if (this.previous)
|
|
@@ -411,7 +411,7 @@ class NgvSlideOutComponent {
|
|
|
411
411
|
});
|
|
412
412
|
}
|
|
413
413
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: NgvSlideOutComponent, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
414
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: NgvSlideOutComponent, selector: "nggv-slideout-modal", inputs: { side: "side", shown: "shown", initiallyShown: "initiallyShown", heading: "heading", title: "title", content: "content", closable: "closable", autoWidth: "autoWidth", thook: "thook", buttons: "buttons" }, outputs: {
|
|
414
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: NgvSlideOutComponent, selector: "nggv-slideout-modal", inputs: { side: "side", shown: "shown", initiallyShown: "initiallyShown", heading: "heading", title: "title", content: "content", closable: "closable", autoWidth: "autoWidth", thook: "thook", buttons: "buttons" }, outputs: { nggvCloseEvent: "nggvCloseEvent", nggvPositiveEvent: "nggvPositiveEvent", nggvNeutralEvent: "nggvNeutralEvent", nggvNegativeEvent: "nggvNegativeEvent" }, host: { listeners: { "click": "close($event,\"host\")", "document:keydown.escape": "close($event)", "keydown": "focusTrap($event)" } }, viewQueries: [{ propertyName: "slideOutRef", first: true, predicate: ["slideOut"], descendants: true }], ngImport: i0, template: "<ng-container *ngIf=\"shown\">\n <div\n [ngClass]=\"{\n 'gds-slide-out--left': fromLeft,\n 'gds-slide-out--right': !fromLeft\n }\"\n *transloco=\"let t\"\n [class.-active]=\"shown\"\n [attr.data-thook]=\"thook\"\n [attr.aria-hidden]=\"!shown\"\n [@modalAnimation]\n >\n <div\n #slideOut\n class=\"gds-slide-out\"\n [class.auto-width]=\"autoWidth\"\n [class.entered]=\"shown\"\n role=\"dialog\"\n aria-modal=\"true\"\n aria-labelledby=\"sdv-modal-title\"\n aria-describedby=\"sdv-modal-body\"\n >\n <header class=\"gds-slide-out__header\">\n <h3 class=\"gds-slide-out__heading\" id=\"sdv-modal-title\">\n {{ heading || title || '' }}\n </h3>\n <button\n data-testid=\"modal-close-button\"\n class=\"close\"\n (click)=\"this.close()\"\n >\n <span className=\"sr-only\">Close</span>\n <i></i>\n </button>\n </header>\n\n <section id=\"sdv-modal-body\">\n <div class=\"gds-slide-out__content hide-if-empty\">\n <div *ngIf=\"content\" [innerHtml]=\"content\"></div>\n <ng-content></ng-content>\n </div>\n <ng-content select=\"[slot='outside-content']\"></ng-content>\n </section>\n\n <footer class=\"sdv-modal-dialog__actions\">\n <button\n class=\"danger\"\n type=\"reset\"\n [attr.data-thook]=\"'dialog-' + (_buttons?.negative || 'negative')\"\n (click)=\"onAction($event, 'negative')\"\n (keydown.enter)=\"onAction($event, 'negative')\"\n *ngIf=\"_buttons && _buttons.negative\"\n >\n {{ t(_buttons.negative) }}\n </button>\n\n <button\n class=\"secondary\"\n type=\"button\"\n [attr.data-thook]=\"'dialog-' + (_buttons?.neutral || 'neutral')\"\n (click)=\"onAction($event, 'neutral')\"\n (keydown.enter)=\"onAction($event, 'neutral')\"\n *ngIf=\"_buttons && _buttons.neutral\"\n >\n {{ t(_buttons.neutral) }}\n </button>\n\n <button\n type=\"submit\"\n [attr.data-thook]=\"'dialog-' + (_buttons?.positive || 'positive')\"\n (click)=\"onAction($event, 'positive')\"\n (keydown.enter)=\"onAction($event, 'positive')\"\n *ngIf=\"_buttons && _buttons.positive\"\n >\n {{ t(_buttons.positive) }}\n </button>\n </footer>\n </div>\n\n <div\n class=\"gds-backdrop\"\n data-thook=\"slideout-backdrop\"\n (click)=\"close()\"\n ></div>\n </div>\n</ng-container>\n", styles: [":host .gds-slide-out{background:var(--sg-modal-background);display:flex;flex-direction:column;box-shadow:var(--sg-modal-box-shadow);position:absolute;width:100%;z-index:var(--sg-z-index-modal);position:fixed;height:100dvh;max-width:512px;min-height:-webkit-fill-available;min-height:-moz-available;min-height:stretch;right:0;top:0;transition:transform .35s cubic-bezier(.33,1,.68,1);transform:translate(100%);z-index:1050}:host .gds-slide-out>.header,:host .gds-slide-out>header{padding:1rem;border-bottom:solid var(--sg-border-width) var(--sg-border-color);--border-color: var(--sg-border-color);display:inline-flex;justify-content:space-between;align-items:center;width:100%}:host .gds-slide-out>.header h3,:host .gds-slide-out>.header .h3,:host .gds-slide-out>header h3,:host .gds-slide-out>header .h3{margin-bottom:0;margin-top:0}:host .gds-slide-out>.header h3+.close,:host .gds-slide-out>.header .h3+.close,:host .gds-slide-out>header h3+.close,:host .gds-slide-out>header .h3+.close{margin:-7px}:host .gds-slide-out>.body{padding:1rem;overflow:auto;width:100%}:host .gds-slide-out>.body p{margin-bottom:0;margin-top:0}:host .gds-slide-out>.footer,:host .gds-slide-out>footer{padding:1rem;width:100%}@media (min-width: 36em){:host .gds-slide-out>.footer,:host .gds-slide-out>footer{display:flex;justify-content:flex-end}}@media (max-width: 35.98em){:host .gds-slide-out>.footer button+button,:host .gds-slide-out>.footer button+.button,:host .gds-slide-out>.footer .button+button,:host .gds-slide-out>.footer .button+.button,:host .gds-slide-out>footer button+button,:host .gds-slide-out>footer button+.button,:host .gds-slide-out>footer .button+button,:host .gds-slide-out>footer .button+.button{margin-top:.75rem}}@media (min-width: 36em){:host .gds-slide-out>.footer button+button,:host .gds-slide-out>.footer button+.button,:host .gds-slide-out>.footer .button+button,:host .gds-slide-out>.footer .button+.button,:host .gds-slide-out>footer button+button,:host .gds-slide-out>footer button+.button,:host .gds-slide-out>footer .button+button,:host .gds-slide-out>footer .button+.button{margin-left:.75rem}}:host .gds-slide-out.is-entering,:host .gds-slide-out.entered{transform:translate(0)}:host .gds-slide-out.is-exiting{transform:translate(100%)}:host .gds-slide-out.large{max-width:720px}:host .gds-slide-out>.body{flex:1 0}:host .gds-slide-out.left{left:0}:host .gds-slide-out.gds-slide-out--768{max-width:48rem}:host .gds-slide-out.gds-slide-out--960{max-width:60rem}:host .gds-slide-out.gds-slide-out--768 header,:host .gds-slide-out.gds-slide-out--960 header{padding:1.5rem 2rem 1rem}:host .gds-slide-out.gds-slide-out--768 .body,:host .gds-slide-out.gds-slide-out--960 .body{padding:2rem 2rem 1rem}:host .gds-slide-out.gds-slide-out--768 footer,:host .gds-slide-out.gds-slide-out--960 footer{padding:1rem 2rem 2rem}:host .gds-slide-out.auto-width{width:auto;max-width:initial}:host .hide-if-empty:empty{display:none}:host .gds-backdrop{background:#00000059;inset:0;position:fixed;z-index:1040;display:block;transition:opacity .5s cubic-bezier(.33,1,.68,1)}:host .gds-backdrop--transparent{opacity:0}:host .gds-backdrop--transparent.entered,:host .gds-backdrop--transparent.is-entering{opacity:1}:host .gds-backdrop--transparent.is-exiting{opacity:0}:host .gds-slide-out__content{padding:1rem;overflow:auto;width:100%}:host .gds-slide-out__content p{margin-bottom:0;margin-top:0}:host #sdv-modal-body{flex:1}\n"], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], animations: [
|
|
415
415
|
trigger('modalAnimation', [
|
|
416
416
|
transition(':enter', [
|
|
417
417
|
query('.gds-slide-out', style({ transform: 'translateX(100%)' }), {
|
|
@@ -487,13 +487,13 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
487
487
|
type: Input
|
|
488
488
|
}], buttons: [{
|
|
489
489
|
type: Input
|
|
490
|
-
}],
|
|
490
|
+
}], nggvCloseEvent: [{
|
|
491
491
|
type: Output
|
|
492
|
-
}],
|
|
492
|
+
}], nggvPositiveEvent: [{
|
|
493
493
|
type: Output
|
|
494
|
-
}],
|
|
494
|
+
}], nggvNeutralEvent: [{
|
|
495
495
|
type: Output
|
|
496
|
-
}],
|
|
496
|
+
}], nggvNegativeEvent: [{
|
|
497
497
|
type: Output
|
|
498
498
|
}], close: [{
|
|
499
499
|
type: HostListener,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sebgroup-green-angular-src-v-angular-modal.mjs","sources":["../../../../libs/angular/src/v-angular/modal/modal.globals.ts","../../../../libs/angular/src/v-angular/modal/dialog/dialog.component.ts","../../../../libs/angular/src/v-angular/modal/dialog/dialog.component.html","../../../../libs/angular/src/v-angular/modal/fold-out/fold-out.component.ts","../../../../libs/angular/src/v-angular/modal/fold-out/fold-out.component.html","../../../../libs/angular/src/v-angular/modal/fold-out/fold-out.directive.ts","../../../../libs/angular/src/v-angular/modal/slide-out/slide-out.component.ts","../../../../libs/angular/src/v-angular/modal/slide-out/slide-out.component.html","../../../../libs/angular/src/v-angular/modal/modal.module.ts","../../../../libs/angular/src/v-angular/modal/sebgroup-green-angular-src-v-angular-modal.ts"],"sourcesContent":["// We must force tsc to interpret this file as a module, resolves\n// \"Augmentations for the global scope can only be directly nested in external modules or ambient module declarations.\"\nexport {}\n\ndeclare global {\n interface Window {\n /** Counter for unique identifiers */\n ngv: {\n ids: { [namespace: string]: number; default: number }\n nextId: (namespace?: string) => string\n }\n }\n}\n\n;(() => {\n // Make sure there is an incremental ID each component can use\n if (typeof window !== 'undefined' && !window.ngv) {\n window.ngv = {\n ids: { default: -1 },\n nextId(namespace = 'default'): string {\n let id = this.ids[namespace] || 0\n if (typeof this.ids[namespace] === 'number') id++\n this.ids[namespace] = id\n return namespace === 'default'\n ? `nggv-${id}`\n : `nggv-${namespace}-${id}`\n },\n }\n }\n})()\n","import {\n Component,\n ElementRef,\n EventEmitter,\n HostBinding,\n HostListener,\n Input,\n OnInit,\n Output,\n ViewChild,\n} from '@angular/core'\n\nimport { DialogButtons } from '../modal.types'\n\nexport interface DialogEvent<T = any> {\n original: Event | undefined\n payload: T | undefined\n}\n\n@Component({\n selector: 'nggv-dialog',\n templateUrl: './dialog.component.html',\n styleUrls: ['./dialog.component.scss'],\n exportAs: 'dialog',\n})\nexport class NgvDialogComponent implements OnInit {\n @ViewChild('dialog') dialogRef: ElementRef | undefined\n\n /** Special property used for selecting DOM elements during automated UI testing. */\n @HostBinding('attr.data-thook') @Input() thook = 'dialog'\n /** @internal */\n @HostBinding('class.sdv-modal-dialog') baseClass = true\n /** @internal Defines the default visibility state of the dialog. */\n @HostBinding('class.-active') @Input() shown = false\n /** @internal */\n @HostBinding('attr.aria-hidden') get ariaHidden() {\n return !this.shown\n }\n /** Defines the default visibility state of the dialog. */\n @Input() initiallyShown = false\n /** Sets modal heading. Will be translated (using transloco) if the string matches a cms key. */\n @Input() heading!: string\n /**\n * Sets modal title. Will be translated (using transloco) if the string matches a cms key.\n * @deprecated - use heading instead.\n */\n @Input() title = 'Attention'\n /** Sets content body and can contain html code. The content body can also be set by nesting children to the dialog tag. */\n @Input() content?: string\n /** Defines if dialog should close on action. */\n @Input() autoClose = true\n /** An array of event payloads that will be added to every click context menu item click. */\n @Input() payload: any = {}\n\n @Input() dialogTitleId!: string\n @Input() dialogBodyId!: string\n /** It gives an ability for parent component to control if modal should be closed on esc button click. */\n @Input() closeModalOnEscape = true\n\n _buttons: DialogButtons | undefined\n /** Buttons are defined as a key-value pair where key is one of \"positive|neutral|negative\" and value is the button label. */\n @Input() set buttons(buttons: DialogButtons) {\n this._buttons = buttons\n }\n // /** @internal */\n // closeIcon = faTimes\n\n @Output() ngvCloseEvent = new EventEmitter<DialogEvent>()\n @Output() ngvPositiveEvent = new EventEmitter<DialogEvent>()\n @Output() ngvNeutralEvent = new EventEmitter<DialogEvent>()\n @Output() ngvNegativeEvent = new EventEmitter<DialogEvent>()\n\n protected _previous: HTMLElement | undefined\n protected _firstFocusable: HTMLElement | undefined\n protected _lastFocusable: HTMLElement | undefined\n\n ngOnInit() {\n this.dialogTitleId =\n this.dialogTitleId ?? 'sdv-dialog-title-' + window.ngv?.nextId()\n this.dialogBodyId =\n this.dialogBodyId ?? 'sdv-dialog-body-' + window.ngv?.nextId()\n\n this.shown = this.initiallyShown\n if (this.shown) this._limitFocusable()\n }\n\n public onAction(event: Event, action: string) {\n event.preventDefault()\n const emitEvent = {\n original: event,\n payload: this.payload,\n }\n switch (action) {\n case 'positive':\n this.ngvPositiveEvent.emit(emitEvent)\n break\n case 'neutral':\n this.ngvNeutralEvent.emit(emitEvent)\n break\n case 'negative':\n this.ngvNegativeEvent.emit(emitEvent)\n break\n // case 'close' is handled by if-statement below with call to this.close()\n }\n if (this.autoClose) this.close(event, 'action')\n }\n\n open(opener?: HTMLElement) {\n this.shown = true\n this._previous = opener || (document.activeElement as HTMLElement)\n this._limitFocusable()\n return true\n }\n\n protected _limitFocusable() {\n window.setTimeout(() => {\n if (!this.dialogRef) return\n const focusable = this.dialogRef.nativeElement.querySelectorAll(\n 'button, [href], input, select, textarea, [tabindex]:not([tabindex=\"-1\"])',\n )\n this._firstFocusable = focusable[0]\n this._lastFocusable = focusable[focusable.length - 1]\n if (this._lastFocusable) this._lastFocusable.focus()\n })\n }\n\n @HostListener('click', ['$event', '\"host\"'])\n @HostListener('document:keydown.escape', ['$event'])\n close(event?: Event, initiator?: string) {\n if (initiator === 'host' && event instanceof MouseEvent) return\n // prevent modal from closing on esc button click when closeModalOnEscape is set to false\n if (!this.closeModalOnEscape) return\n if (this.shown) {\n const emitEvent = {\n original: event,\n payload: this.payload,\n }\n this.ngvCloseEvent.emit(emitEvent)\n }\n this.shown = false\n window.setTimeout(() => {\n if (this._previous) this._previous.focus()\n this._previous = undefined\n })\n }\n\n @HostListener('keydown', ['$event'])\n focusTrap(event: KeyboardEvent) {\n if (event.key !== 'Tab') return\n if (event.shiftKey) {\n // shift + tab\n if (\n this._lastFocusable &&\n document.activeElement === this._firstFocusable\n ) {\n this._lastFocusable.focus()\n event.preventDefault()\n }\n } else {\n // tab\n if (\n this._firstFocusable &&\n document.activeElement === this._lastFocusable\n ) {\n this._firstFocusable.focus()\n event.preventDefault()\n }\n }\n }\n}\n","<div\n class=\"sdv-modal-dialog__container\"\n *transloco=\"let t\"\n #dialog\n role=\"dialog\"\n aria-dialog=\"true\"\n [attr.aria-labelledby]=\"dialogTitleId\"\n [attr.aria-describedby]=\"dialogBodyId\"\n>\n <header class=\"sdv-modal-dialog__heading\">\n <h3 [attr.id]=\"dialogTitleId\">{{ t(heading || title || '') }}</h3>\n <button\n type=\"button\"\n data-thook=\"dialog-close\"\n (click)=\"onAction($event, 'close')\"\n (keydown.enter)=\"onAction($event, 'close')\"\n class=\"close\"\n >\n <gds-icon-cross-small\n *nggCoreElement\n width=\"24\"\n height=\"24\"\n ></gds-icon-cross-small>\n </button>\n </header>\n <section class=\"sdv-modal-dialog__body\" [attr.id]=\"dialogBodyId\">\n <div [innerHtml]=\"content\"></div>\n <ng-content></ng-content>\n </section>\n <footer class=\"sdv-modal-dialog__actions\">\n <button\n class=\"sdv-button sdv-button-delete\"\n type=\"reset\"\n [attr.data-thook]=\"'dialog-' + (_buttons?.negative || 'negative')\"\n (click)=\"onAction($event, 'negative')\"\n (keydown.enter)=\"onAction($event, 'negative')\"\n *ngIf=\"_buttons && _buttons.negative\"\n >\n {{ t(_buttons.negative) }}\n </button>\n <button\n class=\"sdv-button sdv-button-secondary\"\n type=\"button\"\n [attr.data-thook]=\"'dialog-' + (_buttons?.neutral || 'neutral')\"\n (click)=\"onAction($event, 'neutral')\"\n (keydown.enter)=\"onAction($event, 'neutral')\"\n *ngIf=\"_buttons && _buttons.neutral\"\n >\n {{ t(_buttons.neutral) }}\n </button>\n <button\n class=\"sdv-button\"\n type=\"submit\"\n [attr.data-thook]=\"'dialog-' + (_buttons?.positive || 'positive')\"\n (click)=\"onAction($event, 'positive')\"\n (keydown.enter)=\"onAction($event, 'positive')\"\n *ngIf=\"_buttons && _buttons.positive\"\n >\n {{ t(_buttons.positive) }}\n </button>\n </footer>\n</div>\n\n<div class=\"sdv-modal-backdrop\"></div>\n","import {\n AfterViewInit,\n Component,\n ElementRef,\n HostBinding,\n HostListener,\n Input,\n OnDestroy,\n ViewChild,\n} from '@angular/core'\nimport '@sebgroup/green-core/components/icon/icons/dot-grid-one-horizontal'\nimport { fromEvent, Subscription } from 'rxjs'\nimport { filter, map } from 'rxjs/operators'\n\n@Component({\n selector: 'nggv-fold-out',\n templateUrl: './fold-out.component.html',\n styleUrls: ['./fold-out.component.scss'],\n})\nexport class NgvFoldOutComponent implements OnDestroy {\n /** Special property used for selecting DOM elements during automated UI testing. */\n @HostBinding('attr.data-thook') @Input() thook = 'fold-out'\n\n @ViewChild('foldout', { read: ElementRef }) inputRef?: ElementRef\n\n /** Aligns the dropdown list with the buttons right or left side */\n @Input() alignOptions!: 'left' | 'right'\n\n onClickSubscription: Subscription | undefined\n // /** @internal */\n // faEllipsisH: IconDefinition = faEllipsisH\n /** @internal */\n shown = false\n\n constructor() {\n // Empty constructor\n }\n\n ngOnDestroy(): void {\n this.onClickSubscription?.unsubscribe()\n }\n\n /** Toggle display of the option list */\n toggleVisibility(event?: Event, setVisibility?: boolean): void {\n this.shown = setVisibility !== undefined ? setVisibility : !this.shown\n if (this.shown) this.subscribeToOutsideClickEvent()\n }\n\n /**\n * Closes the fold-out on click outside.\n */\n subscribeToOutsideClickEvent(): void {\n this.onClickSubscription = fromEvent(document, 'click').subscribe({\n next: (event: Event) => {\n if (\n this.shown &&\n !this.inputRef?.nativeElement.contains(event.target)\n ) {\n this.toggleVisibility()\n this.onClickSubscription?.unsubscribe()\n }\n },\n })\n }\n}\n","<div #foldout class=\"sdv-field-dropdown\">\n <button\n data-thook=\"fold-out-toggle\"\n class=\"sdv-button fold-out-button\"\n (click)=\"toggleVisibility($event)\"\n >\n <gds-icon-dot-grid-one-horizontal\n width=\"24\"\n height=\"24\"\n *nggCoreElement\n ></gds-icon-dot-grid-one-horizontal>\n </button>\n\n <div\n class=\"gds-fold-out__popover\"\n [ngClass]=\"{ 'flex-right': alignOptions === 'right' }\"\n [class.gds-fold-out__popover-expanded]=\"shown\"\n (click)=\"toggleVisibility($event, false)\"\n >\n <ng-content></ng-content>\n </div>\n</div>\n","import { Directive, HostBinding } from '@angular/core'\n\n@Directive({\n selector: '[ngvOption]',\n})\nexport class NgvFoldOutOptionDirective {\n @HostBinding('class.sdv-field-dropdown__options__label') baseClass = true\n}\n","import {\n Component,\n ElementRef,\n EventEmitter,\n HostListener,\n Input,\n OnInit,\n Output,\n ViewChild,\n} from '@angular/core'\n\nimport {\n trigger,\n query,\n style,\n animate,\n transition,\n group,\n} from '@angular/animations'\n\n// import { faTimes } from '@fortawesome/pro-regular-svg-icons';\n\nimport { DialogButtons } from '../modal.types'\n\n/** Modal slide-out component based on vanilla pattern library design.\n * The modal title can be set using the @Input heading, and will automatically be translated if\n * the string matches a cms key.\n * Content can be injected into the body of the slide-out by either setting the @Input content to any type of\n * markdown, or using content projection (adding content between the `nggv-slideout-modal`-start and end tag).\n * If the content needs to stretch outside the normal padded area, add the attribute `slot=\"outside-content\"` to the\n * projected content main element.\n * Test hooks:\n * The modal hook defaults to 'slideout' but is customizeable.\n * The closing button can be selected using 'slideout-close'.\n * The backdrop is selectable using 'slideout-backdrop'.\n */\n@Component({\n selector: 'nggv-slideout-modal',\n templateUrl: './slide-out.component.html',\n styleUrls: ['./slide-out.component.scss'],\n animations: [\n trigger('modalAnimation', [\n transition(':enter', [\n query('.gds-slide-out', style({ transform: 'translateX(100%)' }), {\n optional: true,\n }),\n query('.gds-backdrop, [role=dialog]', style({ opacity: '0' }), {\n optional: true,\n }),\n group([\n query(\n '.gds-slide-out',\n animate(\n '350ms cubic-bezier(0.33, 1, 0.68, 1)',\n style({ transform: 'translateX(0)' }),\n ),\n { optional: true },\n ),\n query(\n '.gds-backdrop, [role=dialog]',\n animate(\n '350ms cubic-bezier(0.33, 1, 0.68, 1)',\n style({ opacity: '1' }),\n ),\n { optional: true },\n ),\n ]),\n ]),\n transition(':leave', [\n query('.gds-slide-out', style({ transform: 'translateX(0)' }), {\n optional: true,\n }),\n group([\n query(\n '.gds-slide-out',\n animate(\n '350ms cubic-bezier(0.33, 1, 0.68, 1)',\n style({ transform: 'translateX(100%)' }),\n ),\n { optional: true },\n ),\n query(\n '.gds-backdrop, [role=dialog]',\n animate(\n '350ms cubic-bezier(0.33, 1, 0.68, 1)',\n style({ opacity: '0' }),\n ),\n { optional: true },\n ),\n ]),\n ]),\n ]),\n ],\n})\nexport class NgvSlideOutComponent implements OnInit {\n /** @internal */\n @ViewChild('slideOut') slideOutRef: ElementRef | undefined\n\n /** Sets from which side the modal should open. */\n @Input() side: 'left' | 'right' = 'right'\n /** Defines the default visibility state of the slide-out. */\n @Input() shown = false\n /** Defines the default visibility state of the modal. */\n @Input() initiallyShown = false\n /** Sets modal heading. Will be translated (using transloco) if the string matches a cms key. */\n @Input() heading!: string\n /**\n * Sets modal title. Will be translated (using transloco) if the string matches a cms key.\n * @deprecated - use @Input() heading instead.\n */\n @Input() title!: string\n /** Sets content body of the modal and can contain html code. The content body can also be set by nesting children to the modal tag. */\n @Input() content?: string\n /** Sets whether it is possible to close the modal from the top right corner. */\n @Input() closable = true\n /** Allows the modal content to decide the width of the modal. */\n @Input() autoWidth = false\n\n /** Special property used for selecting DOM elements during automated UI testing. */\n @Input() thook = 'slideout'\n\n /** @internal */\n get fromLeft(): boolean {\n return this.side === 'left'\n }\n\n // /** @internal */\n // closeIcon = faTimes;\n\n _buttons: DialogButtons | undefined\n /** Buttons are defined as a key-value pair where key is one of \"positive|neutral|negative\" and value is the button label. */\n @Input() set buttons(buttons: DialogButtons) {\n this._buttons = buttons\n }\n\n /** Will emit true on closing event. */\n @Output() ngvCloseEvent = new EventEmitter<boolean>()\n @Output() ngvPositiveEvent = new EventEmitter<void>()\n @Output() ngvNeutralEvent = new EventEmitter<void>()\n @Output() ngvNegativeEvent = new EventEmitter<void>()\n\n private previous: HTMLElement | undefined\n private firstFocusable: HTMLElement | undefined\n private lastFocusable: HTMLElement | undefined\n\n constructor(private host: ElementRef) {\n // appends methods for opening and closing modal to native element\n this.host.nativeElement.open = this.open.bind(this)\n this.host.nativeElement.close = this.close.bind(this)\n }\n\n ngOnInit() {\n this.shown = this.initiallyShown\n if (this.shown) this.limitFocusable()\n }\n\n public onAction(event: Event, action: string) {\n event.preventDefault()\n switch (action) {\n case 'positive':\n this.ngvPositiveEvent.emit()\n break\n case 'neutral':\n this.ngvNeutralEvent.emit()\n break\n case 'negative':\n this.ngvNegativeEvent.emit()\n break\n }\n this.close(event, 'action')\n }\n\n /**\n * Called on a modal element. Opens the modal and sets focus to the last focusable element in the modal.\n *\n * @param opener - reference to last focused element before opening modal\n * @returns - true\n */\n open(opener?: HTMLElement): boolean {\n this.shown = true\n this.previous = opener || (document.activeElement as HTMLElement)\n this.limitFocusable()\n return true\n }\n\n /**\n * Called on a modal element. Closes the modal and emits a `ngvCloseEvent`. Sets focus to the lats focused element if an element was sent in to open function.\n *\n * @param event\n * @param initiator\n */\n @HostListener('click', ['$event', '\"host\"'])\n @HostListener('document:keydown.escape', ['$event'])\n close(event?: Event, initiator?: string): void {\n if (\n initiator === 'host' &&\n event instanceof MouseEvent &&\n event.target !== event.currentTarget\n )\n return\n if (this.shown && this.closable) {\n this.ngvCloseEvent.emit(this.shown)\n this.shown = false\n window.setTimeout(() => {\n if (this.previous) this.previous.focus()\n this.previous = undefined\n })\n }\n }\n\n /** @internal */\n @HostListener('keydown', ['$event'])\n focusTrap(event: KeyboardEvent) {\n if (event.key !== 'Tab') return\n if (event.shiftKey) {\n // shift + tab\n if (\n this.lastFocusable &&\n document.activeElement === this.firstFocusable\n ) {\n this.lastFocusable.focus()\n event.preventDefault()\n }\n } else {\n // tab\n if (\n this.firstFocusable &&\n document.activeElement === this.lastFocusable\n ) {\n this.firstFocusable.focus()\n event.preventDefault()\n }\n }\n }\n\n private limitFocusable() {\n window.setTimeout(() => {\n if (!this.slideOutRef) return\n const focusable = this.slideOutRef.nativeElement.querySelectorAll(\n 'button, [href], input, select, textarea, [tabindex]:not([tabindex=\"-1\"])',\n )\n this.firstFocusable = focusable[0]\n this.lastFocusable = focusable[focusable.length - 1]\n if (this.lastFocusable) this.lastFocusable.focus()\n })\n }\n}\n","<ng-container *ngIf=\"shown\">\n <div\n [ngClass]=\"{\n 'gds-slide-out--left': fromLeft,\n 'gds-slide-out--right': !fromLeft\n }\"\n *transloco=\"let t\"\n [class.-active]=\"shown\"\n [attr.data-thook]=\"thook\"\n [attr.aria-hidden]=\"!shown\"\n [@modalAnimation]\n >\n <div\n #slideOut\n class=\"gds-slide-out\"\n [class.auto-width]=\"autoWidth\"\n [class.entered]=\"shown\"\n role=\"dialog\"\n aria-modal=\"true\"\n aria-labelledby=\"sdv-modal-title\"\n aria-describedby=\"sdv-modal-body\"\n >\n <header class=\"gds-slide-out__header\">\n <h3 class=\"gds-slide-out__heading\" id=\"sdv-modal-title\">\n {{ heading || title || '' }}\n </h3>\n <button\n data-testid=\"modal-close-button\"\n class=\"close\"\n (click)=\"this.close()\"\n >\n <span className=\"sr-only\">Close</span>\n <i></i>\n </button>\n </header>\n\n <section id=\"sdv-modal-body\">\n <div class=\"gds-slide-out__content hide-if-empty\">\n <div *ngIf=\"content\" [innerHtml]=\"content\"></div>\n <ng-content></ng-content>\n </div>\n <ng-content select=\"[slot='outside-content']\"></ng-content>\n </section>\n\n <footer class=\"sdv-modal-dialog__actions\">\n <button\n class=\"danger\"\n type=\"reset\"\n [attr.data-thook]=\"'dialog-' + (_buttons?.negative || 'negative')\"\n (click)=\"onAction($event, 'negative')\"\n (keydown.enter)=\"onAction($event, 'negative')\"\n *ngIf=\"_buttons && _buttons.negative\"\n >\n {{ t(_buttons.negative) }}\n </button>\n\n <button\n class=\"secondary\"\n type=\"button\"\n [attr.data-thook]=\"'dialog-' + (_buttons?.neutral || 'neutral')\"\n (click)=\"onAction($event, 'neutral')\"\n (keydown.enter)=\"onAction($event, 'neutral')\"\n *ngIf=\"_buttons && _buttons.neutral\"\n >\n {{ t(_buttons.neutral) }}\n </button>\n\n <button\n type=\"submit\"\n [attr.data-thook]=\"'dialog-' + (_buttons?.positive || 'positive')\"\n (click)=\"onAction($event, 'positive')\"\n (keydown.enter)=\"onAction($event, 'positive')\"\n *ngIf=\"_buttons && _buttons.positive\"\n >\n {{ t(_buttons.positive) }}\n </button>\n </footer>\n </div>\n\n <div\n class=\"gds-backdrop\"\n data-thook=\"slideout-backdrop\"\n (click)=\"close()\"\n ></div>\n </div>\n</ng-container>\n","import './modal.globals'\nimport { CommonModule } from '@angular/common'\nimport { NgModule, CUSTOM_ELEMENTS_SCHEMA } from '@angular/core'\nimport { NgvDialogComponent } from './dialog/dialog.component'\nimport { NgvFoldOutComponent } from './fold-out/fold-out.component'\nimport { NgvFoldOutOptionDirective } from './fold-out/fold-out.directive'\nimport { NgvSlideOutComponent } from './slide-out/slide-out.component'\nimport { NgvButtonModule } from '@sebgroup/green-angular/src/v-angular/button'\n\n@NgModule({\n imports: [CommonModule, NgvButtonModule],\n declarations: [\n NgvDialogComponent,\n NgvSlideOutComponent,\n NgvFoldOutComponent,\n NgvFoldOutOptionDirective,\n ],\n exports: [\n NgvDialogComponent,\n NgvSlideOutComponent,\n NgvFoldOutComponent,\n NgvFoldOutOptionDirective,\n ],\n schemas: [CUSTOM_ELEMENTS_SCHEMA],\n})\nexport class NgvModalModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"sebgroup-green-angular-src-v-angular-modal.mjs","sources":["../../../../libs/angular/src/v-angular/modal/modal.globals.ts","../../../../libs/angular/src/v-angular/modal/dialog/dialog.component.ts","../../../../libs/angular/src/v-angular/modal/dialog/dialog.component.html","../../../../libs/angular/src/v-angular/modal/fold-out/fold-out.component.ts","../../../../libs/angular/src/v-angular/modal/fold-out/fold-out.component.html","../../../../libs/angular/src/v-angular/modal/fold-out/fold-out.directive.ts","../../../../libs/angular/src/v-angular/modal/slide-out/slide-out.component.ts","../../../../libs/angular/src/v-angular/modal/slide-out/slide-out.component.html","../../../../libs/angular/src/v-angular/modal/modal.module.ts","../../../../libs/angular/src/v-angular/modal/sebgroup-green-angular-src-v-angular-modal.ts"],"sourcesContent":["// We must force tsc to interpret this file as a module, resolves\n// \"Augmentations for the global scope can only be directly nested in external modules or ambient module declarations.\"\nexport {}\n\ndeclare global {\n interface Window {\n /** Counter for unique identifiers */\n nggv: {\n ids: { [namespace: string]: number; default: number }\n nextId: (namespace?: string) => string\n }\n }\n}\n\n;(() => {\n // Make sure there is an incremental ID each component can use\n if (typeof window !== 'undefined' && !window.nggv) {\n window.nggv = {\n ids: { default: -1 },\n nextId(namespace = 'default'): string {\n let id = this.ids[namespace] || 0\n if (typeof this.ids[namespace] === 'number') id++\n this.ids[namespace] = id\n return namespace === 'default'\n ? `nggv-${id}`\n : `nggv-${namespace}-${id}`\n },\n }\n }\n})()\n","import {\n Component,\n ElementRef,\n EventEmitter,\n HostBinding,\n HostListener,\n Input,\n OnInit,\n Output,\n ViewChild,\n} from '@angular/core'\n\nimport { DialogButtons } from '../modal.types'\n\nexport interface DialogEvent<T = any> {\n original: Event | undefined\n payload: T | undefined\n}\n\n@Component({\n selector: 'nggv-dialog',\n templateUrl: './dialog.component.html',\n styleUrls: ['./dialog.component.scss'],\n exportAs: 'dialog',\n})\nexport class NgvDialogComponent implements OnInit {\n @ViewChild('dialog') dialogRef: ElementRef | undefined\n\n /** Special property used for selecting DOM elements during automated UI testing. */\n @HostBinding('attr.data-thook') @Input() thook = 'dialog'\n /** @internal */\n @HostBinding('class.sdv-modal-dialog') baseClass = true\n /** @internal Defines the default visibility state of the dialog. */\n @HostBinding('class.-active') @Input() shown = false\n /** @internal */\n @HostBinding('attr.aria-hidden') get ariaHidden() {\n return !this.shown\n }\n /** Defines the default visibility state of the dialog. */\n @Input() initiallyShown = false\n /** Sets modal heading. Will be translated (using transloco) if the string matches a cms key. */\n @Input() heading!: string\n /**\n * Sets modal title. Will be translated (using transloco) if the string matches a cms key.\n * @deprecated - use heading instead.\n */\n @Input() title = 'Attention'\n /** Sets content body and can contain html code. The content body can also be set by nesting children to the dialog tag. */\n @Input() content?: string\n /** Defines if dialog should close on action. */\n @Input() autoClose = true\n /** An array of event payloads that will be added to every click context menu item click. */\n @Input() payload: any = {}\n\n @Input() dialogTitleId!: string\n @Input() dialogBodyId!: string\n /** It gives an ability for parent component to control if modal should be closed on esc button click. */\n @Input() closeModalOnEscape = true\n\n _buttons: DialogButtons | undefined\n /** Buttons are defined as a key-value pair where key is one of \"positive|neutral|negative\" and value is the button label. */\n @Input() set buttons(buttons: DialogButtons) {\n this._buttons = buttons\n }\n // /** @internal */\n // closeIcon = faTimes\n\n @Output() nggvCloseEvent = new EventEmitter<DialogEvent>()\n @Output() nggvPositiveEvent = new EventEmitter<DialogEvent>()\n @Output() nggvNeutralEvent = new EventEmitter<DialogEvent>()\n @Output() nggvNegativeEvent = new EventEmitter<DialogEvent>()\n\n protected _previous: HTMLElement | undefined\n protected _firstFocusable: HTMLElement | undefined\n protected _lastFocusable: HTMLElement | undefined\n\n ngOnInit() {\n this.dialogTitleId =\n this.dialogTitleId ?? 'sdv-dialog-title-' + window.nggv?.nextId()\n this.dialogBodyId =\n this.dialogBodyId ?? 'sdv-dialog-body-' + window.nggv?.nextId()\n\n this.shown = this.initiallyShown\n if (this.shown) this._limitFocusable()\n }\n\n public onAction(event: Event, action: string) {\n event.preventDefault()\n const emitEvent = {\n original: event,\n payload: this.payload,\n }\n switch (action) {\n case 'positive':\n this.nggvPositiveEvent.emit(emitEvent)\n break\n case 'neutral':\n this.nggvNeutralEvent.emit(emitEvent)\n break\n case 'negative':\n this.nggvNegativeEvent.emit(emitEvent)\n break\n // case 'close' is handled by if-statement below with call to this.close()\n }\n if (this.autoClose) this.close(event, 'action')\n }\n\n open(opener?: HTMLElement) {\n this.shown = true\n this._previous = opener || (document.activeElement as HTMLElement)\n this._limitFocusable()\n return true\n }\n\n protected _limitFocusable() {\n window.setTimeout(() => {\n if (!this.dialogRef) return\n const focusable = this.dialogRef.nativeElement.querySelectorAll(\n 'button, [href], input, select, textarea, [tabindex]:not([tabindex=\"-1\"])',\n )\n this._firstFocusable = focusable[0]\n this._lastFocusable = focusable[focusable.length - 1]\n if (this._lastFocusable) this._lastFocusable.focus()\n })\n }\n\n @HostListener('click', ['$event', '\"host\"'])\n @HostListener('document:keydown.escape', ['$event'])\n close(event?: Event, initiator?: string) {\n if (initiator === 'host' && event instanceof MouseEvent) return\n // prevent modal from closing on esc button click when closeModalOnEscape is set to false\n if (!this.closeModalOnEscape) return\n if (this.shown) {\n const emitEvent = {\n original: event,\n payload: this.payload,\n }\n this.nggvCloseEvent.emit(emitEvent)\n }\n this.shown = false\n window.setTimeout(() => {\n if (this._previous) this._previous.focus()\n this._previous = undefined\n })\n }\n\n @HostListener('keydown', ['$event'])\n focusTrap(event: KeyboardEvent) {\n if (event.key !== 'Tab') return\n if (event.shiftKey) {\n // shift + tab\n if (\n this._lastFocusable &&\n document.activeElement === this._firstFocusable\n ) {\n this._lastFocusable.focus()\n event.preventDefault()\n }\n } else {\n // tab\n if (\n this._firstFocusable &&\n document.activeElement === this._lastFocusable\n ) {\n this._firstFocusable.focus()\n event.preventDefault()\n }\n }\n }\n}\n","<div\n class=\"sdv-modal-dialog__container\"\n *transloco=\"let t\"\n #dialog\n role=\"dialog\"\n aria-dialog=\"true\"\n [attr.aria-labelledby]=\"dialogTitleId\"\n [attr.aria-describedby]=\"dialogBodyId\"\n>\n <header class=\"sdv-modal-dialog__heading\">\n <h3 [attr.id]=\"dialogTitleId\">{{ t(heading || title || '') }}</h3>\n <button\n type=\"button\"\n data-thook=\"dialog-close\"\n (click)=\"onAction($event, 'close')\"\n (keydown.enter)=\"onAction($event, 'close')\"\n class=\"close\"\n >\n <gds-icon-cross-small\n *nggCoreElement\n width=\"24\"\n height=\"24\"\n ></gds-icon-cross-small>\n </button>\n </header>\n <section class=\"sdv-modal-dialog__body\" [attr.id]=\"dialogBodyId\">\n <div [innerHtml]=\"content\"></div>\n <ng-content></ng-content>\n </section>\n <footer class=\"sdv-modal-dialog__actions\">\n <button\n class=\"sdv-button sdv-button-delete\"\n type=\"reset\"\n [attr.data-thook]=\"'dialog-' + (_buttons?.negative || 'negative')\"\n (click)=\"onAction($event, 'negative')\"\n (keydown.enter)=\"onAction($event, 'negative')\"\n *ngIf=\"_buttons && _buttons.negative\"\n >\n {{ t(_buttons.negative) }}\n </button>\n <button\n class=\"sdv-button sdv-button-secondary\"\n type=\"button\"\n [attr.data-thook]=\"'dialog-' + (_buttons?.neutral || 'neutral')\"\n (click)=\"onAction($event, 'neutral')\"\n (keydown.enter)=\"onAction($event, 'neutral')\"\n *ngIf=\"_buttons && _buttons.neutral\"\n >\n {{ t(_buttons.neutral) }}\n </button>\n <button\n class=\"sdv-button\"\n type=\"submit\"\n [attr.data-thook]=\"'dialog-' + (_buttons?.positive || 'positive')\"\n (click)=\"onAction($event, 'positive')\"\n (keydown.enter)=\"onAction($event, 'positive')\"\n *ngIf=\"_buttons && _buttons.positive\"\n >\n {{ t(_buttons.positive) }}\n </button>\n </footer>\n</div>\n\n<div class=\"sdv-modal-backdrop\"></div>\n","import {\n AfterViewInit,\n Component,\n ElementRef,\n HostBinding,\n HostListener,\n Input,\n OnDestroy,\n ViewChild,\n} from '@angular/core'\nimport '@sebgroup/green-core/components/icon/icons/dot-grid-one-horizontal.js'\nimport { fromEvent, Subscription } from 'rxjs'\nimport { filter, map } from 'rxjs/operators'\n\n@Component({\n selector: 'nggv-fold-out',\n templateUrl: './fold-out.component.html',\n styleUrls: ['./fold-out.component.scss'],\n})\nexport class NgvFoldOutComponent implements OnDestroy {\n /** Special property used for selecting DOM elements during automated UI testing. */\n @HostBinding('attr.data-thook') @Input() thook = 'fold-out'\n\n @ViewChild('foldout', { read: ElementRef }) inputRef?: ElementRef\n\n /** Aligns the dropdown list with the buttons right or left side */\n @Input() alignOptions!: 'left' | 'right'\n\n onClickSubscription: Subscription | undefined\n // /** @internal */\n // faEllipsisH: IconDefinition = faEllipsisH\n /** @internal */\n shown = false\n\n constructor() {\n // Empty constructor\n }\n\n ngOnDestroy(): void {\n this.onClickSubscription?.unsubscribe()\n }\n\n /** Toggle display of the option list */\n toggleVisibility(event?: Event, setVisibility?: boolean): void {\n this.shown = setVisibility !== undefined ? setVisibility : !this.shown\n if (this.shown) this.subscribeToOutsideClickEvent()\n }\n\n /**\n * Closes the fold-out on click outside.\n */\n subscribeToOutsideClickEvent(): void {\n this.onClickSubscription = fromEvent(document, 'click').subscribe({\n next: (event: Event) => {\n if (\n this.shown &&\n !this.inputRef?.nativeElement.contains(event.target)\n ) {\n this.toggleVisibility()\n this.onClickSubscription?.unsubscribe()\n }\n },\n })\n }\n}\n","<div #foldout class=\"sdv-field-dropdown\">\n <button\n data-thook=\"fold-out-toggle\"\n class=\"sdv-button fold-out-button\"\n (click)=\"toggleVisibility($event)\"\n >\n <gds-icon-dot-grid-one-horizontal\n width=\"24\"\n height=\"24\"\n *nggCoreElement\n ></gds-icon-dot-grid-one-horizontal>\n </button>\n\n <div\n class=\"gds-fold-out__popover\"\n [ngClass]=\"{ 'flex-right': alignOptions === 'right' }\"\n [class.gds-fold-out__popover-expanded]=\"shown\"\n (click)=\"toggleVisibility($event, false)\"\n >\n <ng-content></ng-content>\n </div>\n</div>\n","import { Directive, HostBinding } from '@angular/core'\n\n@Directive({\n selector: '[nggvOption]',\n})\nexport class NgvFoldOutOptionDirective {\n @HostBinding('class.sdv-field-dropdown__options__label') baseClass = true\n}\n","import {\n Component,\n ElementRef,\n EventEmitter,\n HostListener,\n Input,\n OnInit,\n Output,\n ViewChild,\n} from '@angular/core'\n\nimport {\n trigger,\n query,\n style,\n animate,\n transition,\n group,\n} from '@angular/animations'\n\n// import { faTimes } from '@fortawesome/pro-regular-svg-icons';\n\nimport { DialogButtons } from '../modal.types'\n\n/** Modal slide-out component based on vanilla pattern library design.\n * The modal title can be set using the @Input heading, and will automatically be translated if\n * the string matches a cms key.\n * Content can be injected into the body of the slide-out by either setting the @Input content to any type of\n * markdown, or using content projection (adding content between the `nggv-slideout-modal`-start and end tag).\n * If the content needs to stretch outside the normal padded area, add the attribute `slot=\"outside-content\"` to the\n * projected content main element.\n * Test hooks:\n * The modal hook defaults to 'slideout' but is customizeable.\n * The closing button can be selected using 'slideout-close'.\n * The backdrop is selectable using 'slideout-backdrop'.\n */\n@Component({\n selector: 'nggv-slideout-modal',\n templateUrl: './slide-out.component.html',\n styleUrls: ['./slide-out.component.scss'],\n animations: [\n trigger('modalAnimation', [\n transition(':enter', [\n query('.gds-slide-out', style({ transform: 'translateX(100%)' }), {\n optional: true,\n }),\n query('.gds-backdrop, [role=dialog]', style({ opacity: '0' }), {\n optional: true,\n }),\n group([\n query(\n '.gds-slide-out',\n animate(\n '350ms cubic-bezier(0.33, 1, 0.68, 1)',\n style({ transform: 'translateX(0)' }),\n ),\n { optional: true },\n ),\n query(\n '.gds-backdrop, [role=dialog]',\n animate(\n '350ms cubic-bezier(0.33, 1, 0.68, 1)',\n style({ opacity: '1' }),\n ),\n { optional: true },\n ),\n ]),\n ]),\n transition(':leave', [\n query('.gds-slide-out', style({ transform: 'translateX(0)' }), {\n optional: true,\n }),\n group([\n query(\n '.gds-slide-out',\n animate(\n '350ms cubic-bezier(0.33, 1, 0.68, 1)',\n style({ transform: 'translateX(100%)' }),\n ),\n { optional: true },\n ),\n query(\n '.gds-backdrop, [role=dialog]',\n animate(\n '350ms cubic-bezier(0.33, 1, 0.68, 1)',\n style({ opacity: '0' }),\n ),\n { optional: true },\n ),\n ]),\n ]),\n ]),\n ],\n})\nexport class NgvSlideOutComponent implements OnInit {\n /** @internal */\n @ViewChild('slideOut') slideOutRef: ElementRef | undefined\n\n /** Sets from which side the modal should open. */\n @Input() side: 'left' | 'right' = 'right'\n /** Defines the default visibility state of the slide-out. */\n @Input() shown = false\n /** Defines the default visibility state of the modal. */\n @Input() initiallyShown = false\n /** Sets modal heading. Will be translated (using transloco) if the string matches a cms key. */\n @Input() heading!: string\n /**\n * Sets modal title. Will be translated (using transloco) if the string matches a cms key.\n * @deprecated - use @Input() heading instead.\n */\n @Input() title!: string\n /** Sets content body of the modal and can contain html code. The content body can also be set by nesting children to the modal tag. */\n @Input() content?: string\n /** Sets whether it is possible to close the modal from the top right corner. */\n @Input() closable = true\n /** Allows the modal content to decide the width of the modal. */\n @Input() autoWidth = false\n\n /** Special property used for selecting DOM elements during automated UI testing. */\n @Input() thook = 'slideout'\n\n /** @internal */\n get fromLeft(): boolean {\n return this.side === 'left'\n }\n\n // /** @internal */\n // closeIcon = faTimes;\n\n _buttons: DialogButtons | undefined\n /** Buttons are defined as a key-value pair where key is one of \"positive|neutral|negative\" and value is the button label. */\n @Input() set buttons(buttons: DialogButtons) {\n this._buttons = buttons\n }\n\n /** Will emit true on closing event. */\n @Output() nggvCloseEvent = new EventEmitter<boolean>()\n @Output() nggvPositiveEvent = new EventEmitter<void>()\n @Output() nggvNeutralEvent = new EventEmitter<void>()\n @Output() nggvNegativeEvent = new EventEmitter<void>()\n\n private previous: HTMLElement | undefined\n private firstFocusable: HTMLElement | undefined\n private lastFocusable: HTMLElement | undefined\n\n constructor(private host: ElementRef) {\n // appends methods for opening and closing modal to native element\n this.host.nativeElement.open = this.open.bind(this)\n this.host.nativeElement.close = this.close.bind(this)\n }\n\n ngOnInit() {\n this.shown = this.initiallyShown\n if (this.shown) this.limitFocusable()\n }\n\n public onAction(event: Event, action: string) {\n event.preventDefault()\n switch (action) {\n case 'positive':\n this.nggvPositiveEvent.emit()\n break\n case 'neutral':\n this.nggvNeutralEvent.emit()\n break\n case 'negative':\n this.nggvNegativeEvent.emit()\n break\n }\n this.close(event, 'action')\n }\n\n /**\n * Called on a modal element. Opens the modal and sets focus to the last focusable element in the modal.\n *\n * @param opener - reference to last focused element before opening modal\n * @returns - true\n */\n open(opener?: HTMLElement): boolean {\n this.shown = true\n this.previous = opener || (document.activeElement as HTMLElement)\n this.limitFocusable()\n return true\n }\n\n /**\n * Called on a modal element. Closes the modal and emits a `nggvCloseEvent`. Sets focus to the lats focused element if an element was sent in to open function.\n *\n * @param event\n * @param initiator\n */\n @HostListener('click', ['$event', '\"host\"'])\n @HostListener('document:keydown.escape', ['$event'])\n close(event?: Event, initiator?: string): void {\n if (\n initiator === 'host' &&\n event instanceof MouseEvent &&\n event.target !== event.currentTarget\n )\n return\n if (this.shown && this.closable) {\n this.nggvCloseEvent.emit(this.shown)\n this.shown = false\n window.setTimeout(() => {\n if (this.previous) this.previous.focus()\n this.previous = undefined\n })\n }\n }\n\n /** @internal */\n @HostListener('keydown', ['$event'])\n focusTrap(event: KeyboardEvent) {\n if (event.key !== 'Tab') return\n if (event.shiftKey) {\n // shift + tab\n if (\n this.lastFocusable &&\n document.activeElement === this.firstFocusable\n ) {\n this.lastFocusable.focus()\n event.preventDefault()\n }\n } else {\n // tab\n if (\n this.firstFocusable &&\n document.activeElement === this.lastFocusable\n ) {\n this.firstFocusable.focus()\n event.preventDefault()\n }\n }\n }\n\n private limitFocusable() {\n window.setTimeout(() => {\n if (!this.slideOutRef) return\n const focusable = this.slideOutRef.nativeElement.querySelectorAll(\n 'button, [href], input, select, textarea, [tabindex]:not([tabindex=\"-1\"])',\n )\n this.firstFocusable = focusable[0]\n this.lastFocusable = focusable[focusable.length - 1]\n if (this.lastFocusable) this.lastFocusable.focus()\n })\n }\n}\n","<ng-container *ngIf=\"shown\">\n <div\n [ngClass]=\"{\n 'gds-slide-out--left': fromLeft,\n 'gds-slide-out--right': !fromLeft\n }\"\n *transloco=\"let t\"\n [class.-active]=\"shown\"\n [attr.data-thook]=\"thook\"\n [attr.aria-hidden]=\"!shown\"\n [@modalAnimation]\n >\n <div\n #slideOut\n class=\"gds-slide-out\"\n [class.auto-width]=\"autoWidth\"\n [class.entered]=\"shown\"\n role=\"dialog\"\n aria-modal=\"true\"\n aria-labelledby=\"sdv-modal-title\"\n aria-describedby=\"sdv-modal-body\"\n >\n <header class=\"gds-slide-out__header\">\n <h3 class=\"gds-slide-out__heading\" id=\"sdv-modal-title\">\n {{ heading || title || '' }}\n </h3>\n <button\n data-testid=\"modal-close-button\"\n class=\"close\"\n (click)=\"this.close()\"\n >\n <span className=\"sr-only\">Close</span>\n <i></i>\n </button>\n </header>\n\n <section id=\"sdv-modal-body\">\n <div class=\"gds-slide-out__content hide-if-empty\">\n <div *ngIf=\"content\" [innerHtml]=\"content\"></div>\n <ng-content></ng-content>\n </div>\n <ng-content select=\"[slot='outside-content']\"></ng-content>\n </section>\n\n <footer class=\"sdv-modal-dialog__actions\">\n <button\n class=\"danger\"\n type=\"reset\"\n [attr.data-thook]=\"'dialog-' + (_buttons?.negative || 'negative')\"\n (click)=\"onAction($event, 'negative')\"\n (keydown.enter)=\"onAction($event, 'negative')\"\n *ngIf=\"_buttons && _buttons.negative\"\n >\n {{ t(_buttons.negative) }}\n </button>\n\n <button\n class=\"secondary\"\n type=\"button\"\n [attr.data-thook]=\"'dialog-' + (_buttons?.neutral || 'neutral')\"\n (click)=\"onAction($event, 'neutral')\"\n (keydown.enter)=\"onAction($event, 'neutral')\"\n *ngIf=\"_buttons && _buttons.neutral\"\n >\n {{ t(_buttons.neutral) }}\n </button>\n\n <button\n type=\"submit\"\n [attr.data-thook]=\"'dialog-' + (_buttons?.positive || 'positive')\"\n (click)=\"onAction($event, 'positive')\"\n (keydown.enter)=\"onAction($event, 'positive')\"\n *ngIf=\"_buttons && _buttons.positive\"\n >\n {{ t(_buttons.positive) }}\n </button>\n </footer>\n </div>\n\n <div\n class=\"gds-backdrop\"\n data-thook=\"slideout-backdrop\"\n (click)=\"close()\"\n ></div>\n </div>\n</ng-container>\n","import './modal.globals'\nimport { CommonModule } from '@angular/common'\nimport { NgModule, CUSTOM_ELEMENTS_SCHEMA } from '@angular/core'\nimport { NgvDialogComponent } from './dialog/dialog.component'\nimport { NgvFoldOutComponent } from './fold-out/fold-out.component'\nimport { NgvFoldOutOptionDirective } from './fold-out/fold-out.directive'\nimport { NgvSlideOutComponent } from './slide-out/slide-out.component'\nimport { NgvButtonModule } from '@sebgroup/green-angular/src/v-angular/button'\n\n@NgModule({\n imports: [CommonModule, NgvButtonModule],\n declarations: [\n NgvDialogComponent,\n NgvSlideOutComponent,\n NgvFoldOutComponent,\n NgvFoldOutOptionDirective,\n ],\n exports: [\n NgvDialogComponent,\n NgvSlideOutComponent,\n NgvFoldOutComponent,\n NgvFoldOutOptionDirective,\n ],\n schemas: [CUSTOM_ELEMENTS_SCHEMA],\n})\nexport class NgvModalModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|
|
@@ -1,10 +1,12 @@
|
|
|
1
1
|
import * as i0 from '@angular/core';
|
|
2
2
|
import { Component, Self, Optional, Inject, HostBinding, Input, NgModule } from '@angular/core';
|
|
3
3
|
import * as i1 from '@angular/forms';
|
|
4
|
+
import * as i3 from '@ngneat/transloco';
|
|
4
5
|
import { TRANSLOCO_SCOPE } from '@ngneat/transloco';
|
|
5
6
|
import { NgvBaseControlValueAccessorComponent } from '@sebgroup/green-angular/src/v-angular/base-control-value-accessor';
|
|
6
7
|
import * as i2 from '@angular/common';
|
|
7
8
|
import { CommonModule } from '@angular/common';
|
|
9
|
+
import { NgvI18nModule } from '@sebgroup/green-angular/src/v-angular/i18n';
|
|
8
10
|
|
|
9
11
|
/** Textarea fields allow users to add and edit longer or multiple line text. */
|
|
10
12
|
class NgvTextareaComponent extends NgvBaseControlValueAccessorComponent {
|
|
@@ -65,11 +67,11 @@ class NgvTextareaComponent extends NgvBaseControlValueAccessorComponent {
|
|
|
65
67
|
this.onChange(this.state);
|
|
66
68
|
}
|
|
67
69
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: NgvTextareaComponent, deps: [{ token: i1.NgControl, optional: true, self: true }, { token: TRANSLOCO_SCOPE, optional: true }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
68
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: NgvTextareaComponent, selector: "nggv-textarea", inputs: { thook: "thook", placeholder: "placeholder", readonly: "readonly", minLength: "minLength", minlength: "minlength", maxLength: "maxLength", maxlength: "maxlength", rows: "rows" }, host: { properties: { "attr.data-thook": "this.thook" } }, usesInheritance: true, ngImport: i0, template: "<!-- LABEL -->\n<label\n [id]=\"id + '-label'\"\n class=\"sdv-field-label hide-if-empty\"\n [attr.for]=\"id + '-textarea'\"\n *transloco=\"let t; read: scope\"\n>\n <ng-template\n *ngTemplateOutlet=\"labelContentTpl || basicLabelContentTpl\"\n ></ng-template>\n <ng-template #basicLabelContentTpl>\n <!-- to trigger css:empty if no label was added -->\n <ng-container *ngIf=\"label\">\n {{ label }}\n <span\n *ngIf=\"optional === true || (required !== true && optional !== false)\"\n class=\"sdv-field-label--optional\"\n >\n ({{ t('label.optional') }})\n </span>\n </ng-container>\n </ng-template>\n</label>\n\n<!-- DESCRIPTION -->\n<div class=\"sdv-field-label--small description\">{{ description }}</div>\n\n<!-- LOCKED INPUT -->\n<ng-container *ngIf=\"locked\">\n <div\n [id]=\"id + '-textarea'\"\n class=\"nggv-field--locked\"\n [attr.name]=\"name\"\n [attr.value]=\"state\"\n [attr.role]=\"role\"\n >\n <span *ngIf=\"!state\" class=\"unset-state\">-</span>\n <ng-container *ngIf=\"state\">\n {{ state }}\n </ng-container>\n </div>\n</ng-container>\n\n<!-- INPUT FIELD -->\n<ng-container *ngIf=\"!locked\">\n <textarea\n #input\n [id]=\"id + '-textarea'\"\n class=\"sdv-field\"\n [ngClass]=\"{ 'no-resize': !!rows }\"\n [class.nggv-field--error]=\"invalid\"\n [attr.name]=\"name\"\n [attr.required]=\"required\"\n [disabled]=\"disabled\"\n [autofocus]=\"autofocus\"\n [readOnly]=\"readonly\"\n [attr.maxlength]=\"maxlength\"\n [attr.minlength]=\"minlength\"\n [attr.role]=\"role\"\n [attr.rows]=\"rows\"\n [attr.placeholder]=\"placeholder\"\n [attr.aria-label]=\"description\"\n [value]=\"state\"\n (input)=\"onInput($event)\"\n (focus)=\"onFocus($event)\"\n (blur)=\"onBlur($event)\"\n ></textarea>\n\n <!-- ERRORS -->\n <div class=\"error-wrapper\" *transloco=\"let t; read: scope\">\n <label\n class=\"sdv-field-notice sdv-field-notice--error\"\n [attr.for]=\"id + '-textarea'\"\n *ngIf=\"invalid && (error || ngControl?.invalid)\"\n >\n <span *ngIf=\"error; else errorsRef\">{{ error }}</span>\n <ng-template #errorsRef>\n <span *ngIf=\"firstError as error\">\n {{ t('error.field' + error?.code, error?.params) }}\n </span>\n </ng-template>\n </label>\n\n <ng-container *ngIf=\"hasMaxLength\">\n <label\n *
|
|
70
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: NgvTextareaComponent, selector: "nggv-textarea", inputs: { thook: "thook", placeholder: "placeholder", readonly: "readonly", minLength: "minLength", minlength: "minlength", maxLength: "maxLength", maxlength: "maxlength", rows: "rows" }, host: { properties: { "attr.data-thook": "this.thook" } }, usesInheritance: true, ngImport: i0, template: "<!-- LABEL -->\n<label\n [id]=\"id + '-label'\"\n class=\"sdv-field-label hide-if-empty\"\n [attr.for]=\"id + '-textarea'\"\n *transloco=\"let t; read: scope\"\n>\n <ng-template\n *ngTemplateOutlet=\"labelContentTpl || basicLabelContentTpl\"\n ></ng-template>\n <ng-template #basicLabelContentTpl>\n <!-- to trigger css:empty if no label was added -->\n <ng-container *ngIf=\"label\">\n {{ label }}\n <span\n *ngIf=\"optional === true || (required !== true && optional !== false)\"\n class=\"sdv-field-label--optional\"\n >\n ({{ t('label.optional') }})\n </span>\n </ng-container>\n </ng-template>\n</label>\n\n<!-- DESCRIPTION -->\n<div class=\"sdv-field-label--small description\">{{ description }}</div>\n\n<!-- LOCKED INPUT -->\n<ng-container *ngIf=\"locked\">\n <div\n [id]=\"id + '-textarea'\"\n class=\"nggv-field--locked\"\n [attr.name]=\"name\"\n [attr.value]=\"state\"\n [attr.role]=\"role\"\n >\n <span *ngIf=\"!state\" class=\"unset-state\">-</span>\n <ng-container *ngIf=\"state\">\n {{ state }}\n </ng-container>\n </div>\n</ng-container>\n\n<!-- INPUT FIELD -->\n<ng-container *ngIf=\"!locked\">\n <textarea\n #input\n [id]=\"id + '-textarea'\"\n class=\"sdv-field\"\n [ngClass]=\"{ 'no-resize': !!rows }\"\n [class.nggv-field--error]=\"invalid\"\n [attr.name]=\"name\"\n [attr.required]=\"required\"\n [disabled]=\"disabled\"\n [autofocus]=\"autofocus\"\n [readOnly]=\"readonly\"\n [attr.maxlength]=\"maxlength\"\n [attr.minlength]=\"minlength\"\n [attr.role]=\"role\"\n [attr.rows]=\"rows\"\n [attr.placeholder]=\"placeholder\"\n [attr.aria-label]=\"description\"\n [value]=\"state\"\n (input)=\"onInput($event)\"\n (focus)=\"onFocus($event)\"\n (blur)=\"onBlur($event)\"\n ></textarea>\n\n <!-- ERRORS -->\n <div class=\"error-wrapper\" *transloco=\"let t; read: scope\">\n <label\n class=\"sdv-field-notice sdv-field-notice--error\"\n [attr.for]=\"id + '-textarea'\"\n *ngIf=\"invalid && (error || ngControl?.invalid)\"\n >\n <span *ngIf=\"error; else errorsRef\">{{ error }}</span>\n <ng-template #errorsRef>\n <span *ngIf=\"firstError as error\">\n {{ t('error.field' + error?.code, error?.params) }}\n </span>\n </ng-template>\n </label>\n\n <ng-container *ngIf=\"hasMaxLength\">\n <label\n *nggvCharacterCountdown=\"\n maxlength;\n currentLength: (inputRef?.nativeElement?.value ?? '').length;\n charactersLeft as charactersLeft\n \"\n class=\"sdv-field-notice\"\n style=\"text-align: right\"\n >\n {{ charactersLeft }} {{ t('label.maxlength') }}\n </label>\n </ng-container>\n </div>\n\n <!-- CHILDREN -->\n <ng-content></ng-content>\n</ng-container>\n", styles: [":host textarea{padding:.75rem 1rem;border-radius:var(--sg-border-radius);border:solid var(--sg-border-width) var(--sg-border-color);--border-color: var(--sg-border-color);align-items:center;background-color:var(--sg-form-control-bg);color:var(--text-primary-color);display:flex;justify-content:center;resize:vertical}:host textarea:focus:not(:focus-visible){box-shadow:none;outline:0}:host textarea:focus,:host textarea:focus-visible{outline-color:var(--gds-sys-color-focus-outline);outline-style:solid;outline-width:.125rem;outline-offset:.125rem}@media screen and (-ms-high-contrast: active){:host textarea{border:2px solid currentcolor}}:host textarea:hover{background-color:var(--gds-ref-pallet-base100)}:host textarea:disabled,:host textarea.disabled,:host textarea[aria-disabled=true]{background:var(--sg-form-control-bg-disabled)!important;color:var(--text-disabled-color)!important;border-color:var(--border-disabled-color)!important;cursor:not-allowed}:host textarea:disabled::placeholder,:host textarea.disabled::placeholder,:host textarea[aria-disabled=true]::placeholder{color:var(--text-disabled-color)}:host label:not(.sdv-field-notice){margin-bottom:.5rem}:host label:not(.sdv-field-notice):is(label){margin-bottom:0}:host label:not(.sdv-field-notice).form-control{width:-moz-fit-content;width:fit-content}@supports (-moz-appearance: none){:host label:not(.sdv-field-notice).form-control:focus:not(:focus-visible){box-shadow:none;outline:0}:host label:not(.sdv-field-notice).form-control:focus,:host label:not(.sdv-field-notice).form-control:focus-within{outline-color:var(--gds-sys-color-focus-outline);outline-style:solid;outline-width:.125rem;outline-offset:.125rem}}:host label:not(.sdv-field-notice):not(.form-control){font-weight:500;width:100%;line-height:1.25rem}:host label:not(.sdv-field-notice)+input,:host label:not(.sdv-field-notice)+textarea,fieldset :host label:not(.sdv-field-notice)+div,:host label:not(.sdv-field-notice)+button,:host label:not(.sdv-field-notice)+.group-stepper,:host label:not(.sdv-field-notice)+.stepper-wrapper,:host label:not(.sdv-field-notice)+.group{margin-top:.5rem}:host label:not(.sdv-field-notice)+.form-info{margin-bottom:.5rem}:host label:is(.sdv-field-label){margin-bottom:.5rem}:host .hide-if-empty:empty{display:none}:host .unset-state{padding-left:.5rem}:host .sdv-field-label--optional{font-weight:400}:host textarea{width:100%;max-width:100%}:host .description{margin-bottom:.5rem}:host .error-wrapper{margin-top:.5rem}:host .no-resize{resize:none}:host .no-resize::-webkit-scrollbar{-webkit-appearance:none}:host .no-resize::-webkit-scrollbar-thumb{border-radius:.5rem}\n"], dependencies: [{ kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i3.TranslocoDirective, selector: "[transloco]", inputs: ["transloco", "translocoParams", "translocoScope", "translocoRead", "translocoLang", "translocoLoadingTpl"] }] }); }
|
|
69
71
|
}
|
|
70
72
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: NgvTextareaComponent, decorators: [{
|
|
71
73
|
type: Component,
|
|
72
|
-
args: [{ selector: 'nggv-textarea', template: "<!-- LABEL -->\n<label\n [id]=\"id + '-label'\"\n class=\"sdv-field-label hide-if-empty\"\n [attr.for]=\"id + '-textarea'\"\n *transloco=\"let t; read: scope\"\n>\n <ng-template\n *ngTemplateOutlet=\"labelContentTpl || basicLabelContentTpl\"\n ></ng-template>\n <ng-template #basicLabelContentTpl>\n <!-- to trigger css:empty if no label was added -->\n <ng-container *ngIf=\"label\">\n {{ label }}\n <span\n *ngIf=\"optional === true || (required !== true && optional !== false)\"\n class=\"sdv-field-label--optional\"\n >\n ({{ t('label.optional') }})\n </span>\n </ng-container>\n </ng-template>\n</label>\n\n<!-- DESCRIPTION -->\n<div class=\"sdv-field-label--small description\">{{ description }}</div>\n\n<!-- LOCKED INPUT -->\n<ng-container *ngIf=\"locked\">\n <div\n [id]=\"id + '-textarea'\"\n class=\"nggv-field--locked\"\n [attr.name]=\"name\"\n [attr.value]=\"state\"\n [attr.role]=\"role\"\n >\n <span *ngIf=\"!state\" class=\"unset-state\">-</span>\n <ng-container *ngIf=\"state\">\n {{ state }}\n </ng-container>\n </div>\n</ng-container>\n\n<!-- INPUT FIELD -->\n<ng-container *ngIf=\"!locked\">\n <textarea\n #input\n [id]=\"id + '-textarea'\"\n class=\"sdv-field\"\n [ngClass]=\"{ 'no-resize': !!rows }\"\n [class.nggv-field--error]=\"invalid\"\n [attr.name]=\"name\"\n [attr.required]=\"required\"\n [disabled]=\"disabled\"\n [autofocus]=\"autofocus\"\n [readOnly]=\"readonly\"\n [attr.maxlength]=\"maxlength\"\n [attr.minlength]=\"minlength\"\n [attr.role]=\"role\"\n [attr.rows]=\"rows\"\n [attr.placeholder]=\"placeholder\"\n [attr.aria-label]=\"description\"\n [value]=\"state\"\n (input)=\"onInput($event)\"\n (focus)=\"onFocus($event)\"\n (blur)=\"onBlur($event)\"\n ></textarea>\n\n <!-- ERRORS -->\n <div class=\"error-wrapper\" *transloco=\"let t; read: scope\">\n <label\n class=\"sdv-field-notice sdv-field-notice--error\"\n [attr.for]=\"id + '-textarea'\"\n *ngIf=\"invalid && (error || ngControl?.invalid)\"\n >\n <span *ngIf=\"error; else errorsRef\">{{ error }}</span>\n <ng-template #errorsRef>\n <span *ngIf=\"firstError as error\">\n {{ t('error.field' + error?.code, error?.params) }}\n </span>\n </ng-template>\n </label>\n\n <ng-container *ngIf=\"hasMaxLength\">\n <label\n *
|
|
74
|
+
args: [{ selector: 'nggv-textarea', template: "<!-- LABEL -->\n<label\n [id]=\"id + '-label'\"\n class=\"sdv-field-label hide-if-empty\"\n [attr.for]=\"id + '-textarea'\"\n *transloco=\"let t; read: scope\"\n>\n <ng-template\n *ngTemplateOutlet=\"labelContentTpl || basicLabelContentTpl\"\n ></ng-template>\n <ng-template #basicLabelContentTpl>\n <!-- to trigger css:empty if no label was added -->\n <ng-container *ngIf=\"label\">\n {{ label }}\n <span\n *ngIf=\"optional === true || (required !== true && optional !== false)\"\n class=\"sdv-field-label--optional\"\n >\n ({{ t('label.optional') }})\n </span>\n </ng-container>\n </ng-template>\n</label>\n\n<!-- DESCRIPTION -->\n<div class=\"sdv-field-label--small description\">{{ description }}</div>\n\n<!-- LOCKED INPUT -->\n<ng-container *ngIf=\"locked\">\n <div\n [id]=\"id + '-textarea'\"\n class=\"nggv-field--locked\"\n [attr.name]=\"name\"\n [attr.value]=\"state\"\n [attr.role]=\"role\"\n >\n <span *ngIf=\"!state\" class=\"unset-state\">-</span>\n <ng-container *ngIf=\"state\">\n {{ state }}\n </ng-container>\n </div>\n</ng-container>\n\n<!-- INPUT FIELD -->\n<ng-container *ngIf=\"!locked\">\n <textarea\n #input\n [id]=\"id + '-textarea'\"\n class=\"sdv-field\"\n [ngClass]=\"{ 'no-resize': !!rows }\"\n [class.nggv-field--error]=\"invalid\"\n [attr.name]=\"name\"\n [attr.required]=\"required\"\n [disabled]=\"disabled\"\n [autofocus]=\"autofocus\"\n [readOnly]=\"readonly\"\n [attr.maxlength]=\"maxlength\"\n [attr.minlength]=\"minlength\"\n [attr.role]=\"role\"\n [attr.rows]=\"rows\"\n [attr.placeholder]=\"placeholder\"\n [attr.aria-label]=\"description\"\n [value]=\"state\"\n (input)=\"onInput($event)\"\n (focus)=\"onFocus($event)\"\n (blur)=\"onBlur($event)\"\n ></textarea>\n\n <!-- ERRORS -->\n <div class=\"error-wrapper\" *transloco=\"let t; read: scope\">\n <label\n class=\"sdv-field-notice sdv-field-notice--error\"\n [attr.for]=\"id + '-textarea'\"\n *ngIf=\"invalid && (error || ngControl?.invalid)\"\n >\n <span *ngIf=\"error; else errorsRef\">{{ error }}</span>\n <ng-template #errorsRef>\n <span *ngIf=\"firstError as error\">\n {{ t('error.field' + error?.code, error?.params) }}\n </span>\n </ng-template>\n </label>\n\n <ng-container *ngIf=\"hasMaxLength\">\n <label\n *nggvCharacterCountdown=\"\n maxlength;\n currentLength: (inputRef?.nativeElement?.value ?? '').length;\n charactersLeft as charactersLeft\n \"\n class=\"sdv-field-notice\"\n style=\"text-align: right\"\n >\n {{ charactersLeft }} {{ t('label.maxlength') }}\n </label>\n </ng-container>\n </div>\n\n <!-- CHILDREN -->\n <ng-content></ng-content>\n</ng-container>\n", styles: [":host textarea{padding:.75rem 1rem;border-radius:var(--sg-border-radius);border:solid var(--sg-border-width) var(--sg-border-color);--border-color: var(--sg-border-color);align-items:center;background-color:var(--sg-form-control-bg);color:var(--text-primary-color);display:flex;justify-content:center;resize:vertical}:host textarea:focus:not(:focus-visible){box-shadow:none;outline:0}:host textarea:focus,:host textarea:focus-visible{outline-color:var(--gds-sys-color-focus-outline);outline-style:solid;outline-width:.125rem;outline-offset:.125rem}@media screen and (-ms-high-contrast: active){:host textarea{border:2px solid currentcolor}}:host textarea:hover{background-color:var(--gds-ref-pallet-base100)}:host textarea:disabled,:host textarea.disabled,:host textarea[aria-disabled=true]{background:var(--sg-form-control-bg-disabled)!important;color:var(--text-disabled-color)!important;border-color:var(--border-disabled-color)!important;cursor:not-allowed}:host textarea:disabled::placeholder,:host textarea.disabled::placeholder,:host textarea[aria-disabled=true]::placeholder{color:var(--text-disabled-color)}:host label:not(.sdv-field-notice){margin-bottom:.5rem}:host label:not(.sdv-field-notice):is(label){margin-bottom:0}:host label:not(.sdv-field-notice).form-control{width:-moz-fit-content;width:fit-content}@supports (-moz-appearance: none){:host label:not(.sdv-field-notice).form-control:focus:not(:focus-visible){box-shadow:none;outline:0}:host label:not(.sdv-field-notice).form-control:focus,:host label:not(.sdv-field-notice).form-control:focus-within{outline-color:var(--gds-sys-color-focus-outline);outline-style:solid;outline-width:.125rem;outline-offset:.125rem}}:host label:not(.sdv-field-notice):not(.form-control){font-weight:500;width:100%;line-height:1.25rem}:host label:not(.sdv-field-notice)+input,:host label:not(.sdv-field-notice)+textarea,fieldset :host label:not(.sdv-field-notice)+div,:host label:not(.sdv-field-notice)+button,:host label:not(.sdv-field-notice)+.group-stepper,:host label:not(.sdv-field-notice)+.stepper-wrapper,:host label:not(.sdv-field-notice)+.group{margin-top:.5rem}:host label:not(.sdv-field-notice)+.form-info{margin-bottom:.5rem}:host label:is(.sdv-field-label){margin-bottom:.5rem}:host .hide-if-empty:empty{display:none}:host .unset-state{padding-left:.5rem}:host .sdv-field-label--optional{font-weight:400}:host textarea{width:100%;max-width:100%}:host .description{margin-bottom:.5rem}:host .error-wrapper{margin-top:.5rem}:host .no-resize{resize:none}:host .no-resize::-webkit-scrollbar{-webkit-appearance:none}:host .no-resize::-webkit-scrollbar-thumb{border-radius:.5rem}\n"] }]
|
|
73
75
|
}], ctorParameters: function () { return [{ type: i1.NgControl, decorators: [{
|
|
74
76
|
type: Self
|
|
75
77
|
}, {
|
|
@@ -102,14 +104,14 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
102
104
|
|
|
103
105
|
class NgvTextareaModule {
|
|
104
106
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: NgvTextareaModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
105
|
-
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "16.2.12", ngImport: i0, type: NgvTextareaModule, declarations: [NgvTextareaComponent], imports: [CommonModule], exports: [NgvTextareaComponent] }); }
|
|
106
|
-
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: NgvTextareaModule, imports: [CommonModule] }); }
|
|
107
|
+
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "16.2.12", ngImport: i0, type: NgvTextareaModule, declarations: [NgvTextareaComponent], imports: [CommonModule, NgvI18nModule], exports: [NgvTextareaComponent] }); }
|
|
108
|
+
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: NgvTextareaModule, imports: [CommonModule, NgvI18nModule] }); }
|
|
107
109
|
}
|
|
108
110
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: NgvTextareaModule, decorators: [{
|
|
109
111
|
type: NgModule,
|
|
110
112
|
args: [{
|
|
111
113
|
declarations: [NgvTextareaComponent],
|
|
112
|
-
imports: [CommonModule],
|
|
114
|
+
imports: [CommonModule, NgvI18nModule],
|
|
113
115
|
exports: [NgvTextareaComponent],
|
|
114
116
|
}]
|
|
115
117
|
}] });
|