@sebgroup/green-angular 5.3.4 → 5.4.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (61) hide show
  1. package/esm2022/lib/dropdown/dropdown.component.mjs +3 -3
  2. package/esm2022/lib/shared/core-renderer/core-renderer.mjs +49 -2
  3. package/esm2022/src/lib/dropdown/dropdown.component.mjs +3 -3
  4. package/esm2022/src/lib/shared/core-renderer/core-renderer.mjs +49 -2
  5. package/esm2022/src/v-angular/alert/alert.component.mjs +3 -3
  6. package/esm2022/src/v-angular/dropdown/dropdown-list/dropdown-list.component.mjs +49 -32
  7. package/esm2022/src/v-angular/dropdown/dropdown.component.mjs +3 -3
  8. package/esm2022/src/v-angular/dropdown/typeahead/typeahead-input/typeahead-input.component.mjs +3 -4
  9. package/esm2022/src/v-angular/input/input.component.mjs +3 -3
  10. package/esm2022/src/v-angular/modal/dialog/dialog.component.mjs +31 -9
  11. package/esm2022/src/v-angular/modal/slide-out/slide-out.component.mjs +3 -3
  12. package/esm2022/src/v-angular/table/table.component.mjs +2 -2
  13. package/esm2022/src/v-angular/textarea/textarea.component.mjs +2 -2
  14. package/esm2022/src/v-angular/tooltip/tooltip.styles.mjs +2 -2
  15. package/esm2022/v-angular/alert/alert.component.mjs +3 -3
  16. package/esm2022/v-angular/core/core.globals.mjs +20 -0
  17. package/esm2022/v-angular/core/core.utils.mjs +62 -0
  18. package/esm2022/v-angular/core/index.mjs +3 -0
  19. package/esm2022/v-angular/dropdown/dropdown-list/dropdown-list.component.mjs +49 -32
  20. package/esm2022/v-angular/dropdown/dropdown.component.mjs +3 -3
  21. package/esm2022/v-angular/dropdown/typeahead/typeahead-input/typeahead-input.component.mjs +3 -4
  22. package/esm2022/v-angular/index.mjs +2 -1
  23. package/esm2022/v-angular/input/input.component.mjs +3 -3
  24. package/esm2022/v-angular/modal/dialog/dialog.component.mjs +31 -9
  25. package/esm2022/v-angular/modal/slide-out/slide-out.component.mjs +3 -3
  26. package/esm2022/v-angular/table/table.component.mjs +2 -2
  27. package/esm2022/v-angular/textarea/textarea.component.mjs +2 -2
  28. package/esm2022/v-angular/tooltip/tooltip.styles.mjs +2 -2
  29. package/fesm2022/sebgroup-green-angular-src-lib-dropdown.mjs +2 -2
  30. package/fesm2022/sebgroup-green-angular-src-lib-dropdown.mjs.map +1 -1
  31. package/fesm2022/sebgroup-green-angular-src-lib-shared.mjs +50 -2
  32. package/fesm2022/sebgroup-green-angular-src-lib-shared.mjs.map +1 -1
  33. package/fesm2022/sebgroup-green-angular-src-v-angular-alert.mjs +2 -2
  34. package/fesm2022/sebgroup-green-angular-src-v-angular-alert.mjs.map +1 -1
  35. package/fesm2022/sebgroup-green-angular-src-v-angular-dropdown.mjs +52 -36
  36. package/fesm2022/sebgroup-green-angular-src-v-angular-dropdown.mjs.map +1 -1
  37. package/fesm2022/sebgroup-green-angular-src-v-angular-input.mjs +2 -2
  38. package/fesm2022/sebgroup-green-angular-src-v-angular-input.mjs.map +1 -1
  39. package/fesm2022/sebgroup-green-angular-src-v-angular-modal.mjs +32 -11
  40. package/fesm2022/sebgroup-green-angular-src-v-angular-modal.mjs.map +1 -1
  41. package/fesm2022/sebgroup-green-angular-src-v-angular-table.mjs +2 -2
  42. package/fesm2022/sebgroup-green-angular-src-v-angular-table.mjs.map +1 -1
  43. package/fesm2022/sebgroup-green-angular-src-v-angular-textarea.mjs +2 -2
  44. package/fesm2022/sebgroup-green-angular-src-v-angular-textarea.mjs.map +1 -1
  45. package/fesm2022/sebgroup-green-angular-src-v-angular-tooltip.mjs +1 -1
  46. package/fesm2022/sebgroup-green-angular-src-v-angular-tooltip.mjs.map +1 -1
  47. package/fesm2022/sebgroup-green-angular-v-angular.mjs +170 -54
  48. package/fesm2022/sebgroup-green-angular-v-angular.mjs.map +1 -1
  49. package/fesm2022/sebgroup-green-angular.mjs +52 -4
  50. package/fesm2022/sebgroup-green-angular.mjs.map +1 -1
  51. package/lib/shared/core-renderer/core-renderer.d.ts +45 -1
  52. package/package.json +9 -9
  53. package/src/lib/shared/core-renderer/core-renderer.d.ts +45 -1
  54. package/src/v-angular/dropdown/dropdown-list/dropdown-list.component.d.ts +8 -0
  55. package/src/v-angular/modal/dialog/dialog.component.d.ts +10 -3
  56. package/v-angular/core/core.globals.d.ts +13 -0
  57. package/v-angular/core/core.utils.d.ts +23 -0
  58. package/v-angular/core/index.d.ts +2 -0
  59. package/v-angular/dropdown/dropdown-list/dropdown-list.component.d.ts +8 -0
  60. package/v-angular/index.d.ts +1 -0
  61. package/v-angular/modal/dialog/dialog.component.d.ts +10 -3
@@ -1,4 +1,5 @@
1
- import { Renderer2, RendererFactory2, RendererStyleFlags2, RendererType2 } from '@angular/core';
1
+ import { ɵAnimationEngine as AnimationEngine, ɵAnimationRendererFactory as AnimationRendererFactory } from '@angular/animations/browser';
2
+ import { NgZone, Renderer2, RendererFactory2, RendererStyleFlags2, RendererType2 } from '@angular/core';
2
3
  import { ɵDomRendererFactory2 as DomRendererFactory2 } from '@angular/platform-browser';
3
4
  import * as i0 from "@angular/core";
4
5
  export declare class NggCoreRenderer implements Renderer2 {
@@ -35,3 +36,46 @@ export declare class NggCoreRendererFactory implements RendererFactory2 {
35
36
  static ɵfac: i0.ɵɵFactoryDeclaration<NggCoreRendererFactory, never>;
36
37
  static ɵprov: i0.ɵɵInjectableDeclaration<NggCoreRendererFactory>;
37
38
  }
39
+ /**
40
+ * Returns a AnimationRendererFactory configured to use the NggCoreRendererFactory as a delegate.
41
+ */
42
+ export declare function animationsCoreRendererFactory(delegate: DomRendererFactory2, engine: AnimationEngine, zone: NgZone): AnimationRendererFactory;
43
+ /**
44
+ * Provide the NggCoreRendererFactory to use <gds-*> elements without any extra directives.
45
+ * The NggCoreRenderer will handle element name scoping automatically.
46
+ *
47
+ * Example:
48
+ * ```ts
49
+ * @NgModule({
50
+ * providers: [provideCoreRenderer()],
51
+ * schemas: [CUSTOM_ELEMENTS_SCHEMA],
52
+ * })
53
+ * export class AppModule {}
54
+ * ```
55
+ */
56
+ export declare const provideCoreRenderer: () => {
57
+ provide: typeof RendererFactory2;
58
+ useClass: typeof NggCoreRendererFactory;
59
+ };
60
+ /**
61
+ * Provide the NggCoreRendererFactory to use <gds-*> elements without any extra directives.
62
+ * The NggCoreRenderer will handle element name scoping automatically.
63
+ *
64
+ * This factory also provides the Angular animations renderer.
65
+ *
66
+ *
67
+ * Example:
68
+ * ```ts
69
+ * @NgModule({
70
+ * imports: [BrowserAnimationsModule],
71
+ * providers: [provideCoreRendererWithAnimations()],
72
+ * schemas: [CUSTOM_ELEMENTS_SCHEMA],
73
+ * })
74
+ * export class AppModule {}
75
+ * ```
76
+ */
77
+ export declare const provideCoreRendererWithAnimations: () => {
78
+ provide: typeof RendererFactory2;
79
+ useFactory: typeof animationsCoreRendererFactory;
80
+ deps: (typeof DomRendererFactory2 | typeof AnimationEngine | typeof NgZone)[];
81
+ };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@sebgroup/green-angular",
3
- "version": "5.3.4",
3
+ "version": "5.4.1",
4
4
  "peerDependencies": {
5
5
  "@angular/cdk": ">=17.3.10",
6
6
  "@angular/common": ">=17.3.12",
@@ -17,8 +17,8 @@
17
17
  "scroll-into-view-if-needed": "^2.2.31"
18
18
  },
19
19
  "dependencies": {
20
- "@sebgroup/green-core": "^1.68.1",
21
- "@sebgroup/chlorophyll": "^3.6.15",
20
+ "@sebgroup/green-core": "^1.68.5",
21
+ "@sebgroup/chlorophyll": "^3.6.16",
22
22
  "@sebgroup/extract": "^3.0.2",
23
23
  "tslib": "^2.3.1"
24
24
  },
@@ -147,18 +147,18 @@
147
147
  "esm": "./esm2022/src/lib/sortable-list/sebgroup-green-angular-src-lib-sortable-list.mjs",
148
148
  "default": "./fesm2022/sebgroup-green-angular-src-lib-sortable-list.mjs"
149
149
  },
150
- "./src/v-angular/alert": {
151
- "types": "./src/v-angular/alert/index.d.ts",
152
- "esm2022": "./esm2022/src/v-angular/alert/sebgroup-green-angular-src-v-angular-alert.mjs",
153
- "esm": "./esm2022/src/v-angular/alert/sebgroup-green-angular-src-v-angular-alert.mjs",
154
- "default": "./fesm2022/sebgroup-green-angular-src-v-angular-alert.mjs"
155
- },
156
150
  "./src/v-angular/account-number": {
157
151
  "types": "./src/v-angular/account-number/index.d.ts",
158
152
  "esm2022": "./esm2022/src/v-angular/account-number/sebgroup-green-angular-src-v-angular-account-number.mjs",
159
153
  "esm": "./esm2022/src/v-angular/account-number/sebgroup-green-angular-src-v-angular-account-number.mjs",
160
154
  "default": "./fesm2022/sebgroup-green-angular-src-v-angular-account-number.mjs"
161
155
  },
156
+ "./src/v-angular/alert": {
157
+ "types": "./src/v-angular/alert/index.d.ts",
158
+ "esm2022": "./esm2022/src/v-angular/alert/sebgroup-green-angular-src-v-angular-alert.mjs",
159
+ "esm": "./esm2022/src/v-angular/alert/sebgroup-green-angular-src-v-angular-alert.mjs",
160
+ "default": "./fesm2022/sebgroup-green-angular-src-v-angular-alert.mjs"
161
+ },
162
162
  "./src/v-angular/base-control-value-accessor": {
163
163
  "types": "./src/v-angular/base-control-value-accessor/index.d.ts",
164
164
  "esm2022": "./esm2022/src/v-angular/base-control-value-accessor/sebgroup-green-angular-src-v-angular-base-control-value-accessor.mjs",
@@ -1,4 +1,5 @@
1
- import { Renderer2, RendererFactory2, RendererStyleFlags2, RendererType2 } from '@angular/core';
1
+ import { ɵAnimationEngine as AnimationEngine, ɵAnimationRendererFactory as AnimationRendererFactory } from '@angular/animations/browser';
2
+ import { NgZone, Renderer2, RendererFactory2, RendererStyleFlags2, RendererType2 } from '@angular/core';
2
3
  import { ɵDomRendererFactory2 as DomRendererFactory2 } from '@angular/platform-browser';
3
4
  import * as i0 from "@angular/core";
4
5
  export declare class NggCoreRenderer implements Renderer2 {
@@ -35,3 +36,46 @@ export declare class NggCoreRendererFactory implements RendererFactory2 {
35
36
  static ɵfac: i0.ɵɵFactoryDeclaration<NggCoreRendererFactory, never>;
36
37
  static ɵprov: i0.ɵɵInjectableDeclaration<NggCoreRendererFactory>;
37
38
  }
39
+ /**
40
+ * Returns a AnimationRendererFactory configured to use the NggCoreRendererFactory as a delegate.
41
+ */
42
+ export declare function animationsCoreRendererFactory(delegate: DomRendererFactory2, engine: AnimationEngine, zone: NgZone): AnimationRendererFactory;
43
+ /**
44
+ * Provide the NggCoreRendererFactory to use <gds-*> elements without any extra directives.
45
+ * The NggCoreRenderer will handle element name scoping automatically.
46
+ *
47
+ * Example:
48
+ * ```ts
49
+ * @NgModule({
50
+ * providers: [provideCoreRenderer()],
51
+ * schemas: [CUSTOM_ELEMENTS_SCHEMA],
52
+ * })
53
+ * export class AppModule {}
54
+ * ```
55
+ */
56
+ export declare const provideCoreRenderer: () => {
57
+ provide: typeof RendererFactory2;
58
+ useClass: typeof NggCoreRendererFactory;
59
+ };
60
+ /**
61
+ * Provide the NggCoreRendererFactory to use <gds-*> elements without any extra directives.
62
+ * The NggCoreRenderer will handle element name scoping automatically.
63
+ *
64
+ * This factory also provides the Angular animations renderer.
65
+ *
66
+ *
67
+ * Example:
68
+ * ```ts
69
+ * @NgModule({
70
+ * imports: [BrowserAnimationsModule],
71
+ * providers: [provideCoreRendererWithAnimations()],
72
+ * schemas: [CUSTOM_ELEMENTS_SCHEMA],
73
+ * })
74
+ * export class AppModule {}
75
+ * ```
76
+ */
77
+ export declare const provideCoreRendererWithAnimations: () => {
78
+ provide: typeof RendererFactory2;
79
+ useFactory: typeof animationsCoreRendererFactory;
80
+ deps: (typeof DomRendererFactory2 | typeof AnimationEngine | typeof NgZone)[];
81
+ };
@@ -37,6 +37,10 @@ export declare class NggvDropdownListComponent implements OnInit, OnChanges {
37
37
  selectedValue?: Option<string, any>;
38
38
  /** Subscribe if dropdown expanded to listen to click outside to close dropdown. */
39
39
  protected onClickSubscription: Subscription | undefined;
40
+ /** Subscribe to to keyboard events only when list is open. */
41
+ private onKeyDownSubscription;
42
+ private onKeyUpSubscription;
43
+ private _flattenedOptions;
40
44
  constructor(translocoScope: TranslocoScope);
41
45
  ngOnInit(): void;
42
46
  ngOnChanges(changes: SimpleChanges): void;
@@ -86,6 +90,10 @@ export declare class NggvDropdownListComponent implements OnInit, OnChanges {
86
90
  * @param event fired containing which key was released.
87
91
  */
88
92
  onKeyUp(event: KeyboardEvent): void;
93
+ /** @internal */
94
+ subscribeToKeyUpEvents(): void;
95
+ /** @internal */
96
+ subscribeToKeyDownEvents(): void;
89
97
  /**
90
98
  * Scrolls focused result into view with a specified offset.
91
99
  * @param key the result index which to scroll to.
@@ -1,12 +1,16 @@
1
- import { ElementRef, EventEmitter, OnInit, Renderer2 } from '@angular/core';
1
+ import { ConfigurableFocusTrapFactory } from '@angular/cdk/a11y';
2
+ import { ElementRef, EventEmitter, OnDestroy, OnInit, Renderer2 } from '@angular/core';
2
3
  import { DialogButtons } from '../modal.types';
3
4
  import * as i0 from "@angular/core";
4
5
  export interface DialogEvent<T = any> {
5
6
  original: Event | undefined;
6
7
  payload: T | undefined;
7
8
  }
8
- export declare class NggvDialogComponent implements OnInit {
9
+ export declare class NggvDialogComponent implements OnInit, OnDestroy {
9
10
  private renderer;
11
+ private ref;
12
+ private configurableFocusTrapFactory;
13
+ private configurableFocusTrap;
10
14
  dialogRef: ElementRef | undefined;
11
15
  /** Special property used for selecting DOM elements during automated UI testing. */
12
16
  thook: string | null | undefined;
@@ -50,7 +54,7 @@ export declare class NggvDialogComponent implements OnInit {
50
54
  protected _previous: HTMLElement | undefined;
51
55
  protected _firstFocusable: HTMLElement | undefined;
52
56
  protected _lastFocusable: HTMLElement | undefined;
53
- constructor(renderer: Renderer2);
57
+ constructor(renderer: Renderer2, ref: ElementRef<HTMLElement>, configurableFocusTrapFactory: ConfigurableFocusTrapFactory);
54
58
  ngOnInit(): void;
55
59
  onAction(event: Event, action: string): void;
56
60
  open(opener?: HTMLElement): boolean;
@@ -59,6 +63,9 @@ export declare class NggvDialogComponent implements OnInit {
59
63
  focusTrap(event: KeyboardEvent): void;
60
64
  private hideOverflow;
61
65
  private resetOverflow;
66
+ private enableFocusTrap;
67
+ private disableFocusTrap;
68
+ ngOnDestroy(): void;
62
69
  static ɵfac: i0.ɵɵFactoryDeclaration<NggvDialogComponent, never>;
63
70
  static ɵcmp: i0.ɵɵComponentDeclaration<NggvDialogComponent, "nggv-dialog", ["dialog"], { "thook": { "alias": "thook"; "required": false; }; "shown": { "alias": "shown"; "required": false; }; "initiallyShown": { "alias": "initiallyShown"; "required": false; }; "heading": { "alias": "heading"; "required": false; }; "title": { "alias": "title"; "required": false; }; "content": { "alias": "content"; "required": false; }; "autoClose": { "alias": "autoClose"; "required": false; }; "payload": { "alias": "payload"; "required": false; }; "dialogTitleId": { "alias": "dialogTitleId"; "required": false; }; "dialogBodyId": { "alias": "dialogBodyId"; "required": false; }; "closeModalOnEscape": { "alias": "closeModalOnEscape"; "required": false; }; "closeButtonAriaLabel": { "alias": "closeButtonAriaLabel"; "required": false; }; "buttons": { "alias": "buttons"; "required": false; }; }, { "nggvCloseEvent": "nggvCloseEvent"; "nggvPositiveEvent": "nggvPositiveEvent"; "nggvNeutralEvent": "nggvNeutralEvent"; "nggvNegativeEvent": "nggvNegativeEvent"; }, never, ["*"], false, never>;
64
71
  }
@@ -0,0 +1,13 @@
1
+ export {};
2
+ declare global {
3
+ interface Window {
4
+ /** Counter for unique identifiers */
5
+ nggv: {
6
+ ids: {
7
+ [namespace: string]: number;
8
+ default: number;
9
+ };
10
+ nextId: (namespace?: string) => string;
11
+ };
12
+ }
13
+ }
@@ -0,0 +1,23 @@
1
+ import * as i0 from "@angular/core";
2
+ export interface Option<K, V> {
3
+ key: K;
4
+ label: V;
5
+ disabled?: boolean;
6
+ }
7
+ export interface OptionGroup<T extends Option<any, any>> {
8
+ label: string;
9
+ options: T[];
10
+ disabled?: boolean;
11
+ }
12
+ export type OptionBase<T extends Option<any, any>> = T | OptionGroup<T>;
13
+ export declare class DropdownUtils<K = string | null, V = string, T extends Option<K, V> = Option<K, V>> {
14
+ flattenOptions(options: OptionBase<T>[] | undefined, mustHaveLabel: boolean): T[];
15
+ /**
16
+ * Returns true if argument is an {@link OptionGroup}.
17
+ * @param option the object to check.
18
+ */
19
+ isGroup(option: OptionBase<T>): option is OptionGroup<T>;
20
+ deepEqual(original: any, change: any): boolean;
21
+ static ɵfac: i0.ɵɵFactoryDeclaration<DropdownUtils<any, any, any>, never>;
22
+ static ɵprov: i0.ɵɵInjectableDeclaration<DropdownUtils<any, any, any>>;
23
+ }
@@ -0,0 +1,2 @@
1
+ export * from './core.globals';
2
+ export * from './core.utils';
@@ -37,6 +37,10 @@ export declare class NggvDropdownListComponent implements OnInit, OnChanges {
37
37
  selectedValue?: Option<string, any>;
38
38
  /** Subscribe if dropdown expanded to listen to click outside to close dropdown. */
39
39
  protected onClickSubscription: Subscription | undefined;
40
+ /** Subscribe to to keyboard events only when list is open. */
41
+ private onKeyDownSubscription;
42
+ private onKeyUpSubscription;
43
+ private _flattenedOptions;
40
44
  constructor(translocoScope: TranslocoScope);
41
45
  ngOnInit(): void;
42
46
  ngOnChanges(changes: SimpleChanges): void;
@@ -86,6 +90,10 @@ export declare class NggvDropdownListComponent implements OnInit, OnChanges {
86
90
  * @param event fired containing which key was released.
87
91
  */
88
92
  onKeyUp(event: KeyboardEvent): void;
93
+ /** @internal */
94
+ subscribeToKeyUpEvents(): void;
95
+ /** @internal */
96
+ subscribeToKeyDownEvents(): void;
89
97
  /**
90
98
  * Scrolls focused result into view with a specified offset.
91
99
  * @param key the result index which to scroll to.
@@ -4,6 +4,7 @@ export * from './base-control-value-accessor';
4
4
  export * from './breadcrumbs';
5
5
  export * from './button';
6
6
  export * from './card';
7
+ export * from './core';
7
8
  export * from './character-countdown';
8
9
  export * from './checkbox';
9
10
  export * from './datepicker';
@@ -1,12 +1,16 @@
1
- import { ElementRef, EventEmitter, OnInit, Renderer2 } from '@angular/core';
1
+ import { ConfigurableFocusTrapFactory } from '@angular/cdk/a11y';
2
+ import { ElementRef, EventEmitter, OnDestroy, OnInit, Renderer2 } from '@angular/core';
2
3
  import { DialogButtons } from '../modal.types';
3
4
  import * as i0 from "@angular/core";
4
5
  export interface DialogEvent<T = any> {
5
6
  original: Event | undefined;
6
7
  payload: T | undefined;
7
8
  }
8
- export declare class NggvDialogComponent implements OnInit {
9
+ export declare class NggvDialogComponent implements OnInit, OnDestroy {
9
10
  private renderer;
11
+ private ref;
12
+ private configurableFocusTrapFactory;
13
+ private configurableFocusTrap;
10
14
  dialogRef: ElementRef | undefined;
11
15
  /** Special property used for selecting DOM elements during automated UI testing. */
12
16
  thook: string | null | undefined;
@@ -50,7 +54,7 @@ export declare class NggvDialogComponent implements OnInit {
50
54
  protected _previous: HTMLElement | undefined;
51
55
  protected _firstFocusable: HTMLElement | undefined;
52
56
  protected _lastFocusable: HTMLElement | undefined;
53
- constructor(renderer: Renderer2);
57
+ constructor(renderer: Renderer2, ref: ElementRef<HTMLElement>, configurableFocusTrapFactory: ConfigurableFocusTrapFactory);
54
58
  ngOnInit(): void;
55
59
  onAction(event: Event, action: string): void;
56
60
  open(opener?: HTMLElement): boolean;
@@ -59,6 +63,9 @@ export declare class NggvDialogComponent implements OnInit {
59
63
  focusTrap(event: KeyboardEvent): void;
60
64
  private hideOverflow;
61
65
  private resetOverflow;
66
+ private enableFocusTrap;
67
+ private disableFocusTrap;
68
+ ngOnDestroy(): void;
62
69
  static ɵfac: i0.ɵɵFactoryDeclaration<NggvDialogComponent, never>;
63
70
  static ɵcmp: i0.ɵɵComponentDeclaration<NggvDialogComponent, "nggv-dialog", ["dialog"], { "thook": { "alias": "thook"; "required": false; }; "shown": { "alias": "shown"; "required": false; }; "initiallyShown": { "alias": "initiallyShown"; "required": false; }; "heading": { "alias": "heading"; "required": false; }; "title": { "alias": "title"; "required": false; }; "content": { "alias": "content"; "required": false; }; "autoClose": { "alias": "autoClose"; "required": false; }; "payload": { "alias": "payload"; "required": false; }; "dialogTitleId": { "alias": "dialogTitleId"; "required": false; }; "dialogBodyId": { "alias": "dialogBodyId"; "required": false; }; "closeModalOnEscape": { "alias": "closeModalOnEscape"; "required": false; }; "closeButtonAriaLabel": { "alias": "closeButtonAriaLabel"; "required": false; }; "buttons": { "alias": "buttons"; "required": false; }; }, { "nggvCloseEvent": "nggvCloseEvent"; "nggvPositiveEvent": "nggvPositiveEvent"; "nggvNeutralEvent": "nggvNeutralEvent"; "nggvNegativeEvent": "nggvNegativeEvent"; }, never, ["*"], false, never>;
64
71
  }