@sebgroup/green-angular 4.6.1 → 4.6.2

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 (133) hide show
  1. package/esm2022/src/v-angular/dropdown/typeahead/index.mjs +4 -1
  2. package/esm2022/src/v-angular/dropdown/typeahead/typeahead.directive.mjs +177 -0
  3. package/esm2022/v-angular/base-control-value-accessor/base-control-value-accessor.component.mjs +287 -0
  4. package/esm2022/v-angular/base-control-value-accessor/base-control-value-accessor.module.mjs +17 -0
  5. package/esm2022/v-angular/base-control-value-accessor/index.mjs +3 -0
  6. package/esm2022/v-angular/breadcrumbs/breadcrumbs.component.mjs +25 -0
  7. package/esm2022/v-angular/breadcrumbs/breadcrumbs.module.mjs +20 -0
  8. package/esm2022/v-angular/breadcrumbs/index.mjs +3 -0
  9. package/esm2022/v-angular/button/button.component.mjs +108 -0
  10. package/esm2022/v-angular/button/button.module.mjs +20 -0
  11. package/esm2022/v-angular/button/index.mjs +3 -0
  12. package/esm2022/v-angular/card/card.component.mjs +11 -0
  13. package/esm2022/v-angular/card/card.module.mjs +18 -0
  14. package/esm2022/v-angular/card/index.mjs +3 -0
  15. package/esm2022/v-angular/checkbox/checkbox.component.mjs +72 -0
  16. package/esm2022/v-angular/checkbox/checkbox.module.mjs +19 -0
  17. package/esm2022/v-angular/checkbox/index.mjs +3 -0
  18. package/esm2022/v-angular/dropdown/dropdown-list/dropdown-list.component.mjs +256 -0
  19. package/esm2022/v-angular/dropdown/dropdown-list/index.mjs +2 -0
  20. package/esm2022/v-angular/dropdown/dropdown.component.mjs +239 -0
  21. package/esm2022/v-angular/dropdown/dropdown.module.mjs +22 -0
  22. package/esm2022/v-angular/dropdown/index.mjs +6 -0
  23. package/esm2022/v-angular/dropdown/typeahead/index.mjs +6 -0
  24. package/esm2022/v-angular/dropdown/typeahead/typeahead-dropdown-list/typeahead-dropdown-list.component.mjs +98 -0
  25. package/esm2022/v-angular/dropdown/typeahead/typeahead-highlight/typeahead-highlight.component.mjs +85 -0
  26. package/esm2022/v-angular/dropdown/typeahead/typeahead-input/typeahead-input.component.mjs +132 -0
  27. package/esm2022/v-angular/dropdown/typeahead/typeahead.directive.mjs +177 -0
  28. package/esm2022/v-angular/dropdown/typeahead/typeahead.module.mjs +33 -0
  29. package/esm2022/v-angular/i18n/i18n.json +12 -0
  30. package/esm2022/v-angular/i18n/i18n.module.mjs +83 -0
  31. package/esm2022/v-angular/i18n/i18n.test.module.mjs +89 -0
  32. package/esm2022/v-angular/i18n/index.mjs +3 -0
  33. package/esm2022/v-angular/index.mjs +17 -0
  34. package/esm2022/v-angular/info-circle/index.mjs +3 -0
  35. package/esm2022/v-angular/info-circle/info-circle.component.mjs +28 -0
  36. package/esm2022/v-angular/info-circle/info-circle.module.mjs +21 -0
  37. package/esm2022/v-angular/input/index.mjs +3 -0
  38. package/esm2022/v-angular/input/input.component.mjs +221 -0
  39. package/esm2022/v-angular/input/input.module.mjs +32 -0
  40. package/esm2022/v-angular/input-mask/config.mjs +9 -0
  41. package/esm2022/v-angular/input-mask/constants.mjs +2 -0
  42. package/esm2022/v-angular/input-mask/index.mjs +6 -0
  43. package/esm2022/v-angular/input-mask/input-mask-format.pipe.mjs +20 -0
  44. package/esm2022/v-angular/input-mask/input-mask.directive.mjs +165 -0
  45. package/esm2022/v-angular/input-mask/input-mask.module.mjs +35 -0
  46. package/esm2022/v-angular/input-mask/input-mask.types.mjs +2 -0
  47. package/esm2022/v-angular/modal/dialog/dialog.component.mjs +190 -0
  48. package/esm2022/v-angular/modal/fold-out/fold-out.component.mjs +56 -0
  49. package/esm2022/v-angular/modal/fold-out/fold-out.directive.mjs +19 -0
  50. package/esm2022/v-angular/modal/index.mjs +6 -0
  51. package/esm2022/v-angular/modal/modal.globals.mjs +20 -0
  52. package/esm2022/v-angular/modal/modal.module.mjs +40 -0
  53. package/esm2022/v-angular/modal/modal.types.mjs +2 -0
  54. package/esm2022/v-angular/modal/slide-out/slide-out.component.mjs +229 -0
  55. package/esm2022/v-angular/radio/index.mjs +3 -0
  56. package/esm2022/v-angular/radio/radio.component.mjs +130 -0
  57. package/esm2022/v-angular/radio/radio.module.mjs +20 -0
  58. package/esm2022/v-angular/sebgroup-green-angular-v-angular.mjs +5 -0
  59. package/esm2022/v-angular/textarea/index.mjs +3 -0
  60. package/esm2022/v-angular/textarea/textarea.component.mjs +101 -0
  61. package/esm2022/v-angular/textarea/textarea.module.mjs +18 -0
  62. package/esm2022/v-angular/tooltip/index.mjs +3 -0
  63. package/esm2022/v-angular/tooltip/tooltip.directive.mjs +273 -0
  64. package/esm2022/v-angular/tooltip/tooltip.module.mjs +18 -0
  65. package/esm2022/v-angular/v-angular.module.mjs +76 -0
  66. package/fesm2022/sebgroup-green-angular-src-v-angular-dropdown.mjs +172 -3
  67. package/fesm2022/sebgroup-green-angular-src-v-angular-dropdown.mjs.map +1 -1
  68. package/fesm2022/sebgroup-green-angular-v-angular.mjs +3341 -0
  69. package/fesm2022/sebgroup-green-angular-v-angular.mjs.map +1 -0
  70. package/package.json +8 -2
  71. package/src/v-angular/dropdown/typeahead/index.d.ts +3 -0
  72. package/src/v-angular/dropdown/typeahead/typeahead.directive.d.ts +76 -0
  73. package/v-angular/base-control-value-accessor/base-control-value-accessor.component.d.ts +124 -0
  74. package/v-angular/base-control-value-accessor/base-control-value-accessor.module.d.ts +7 -0
  75. package/v-angular/base-control-value-accessor/index.d.ts +2 -0
  76. package/v-angular/breadcrumbs/breadcrumbs.component.d.ts +18 -0
  77. package/v-angular/breadcrumbs/breadcrumbs.module.d.ts +10 -0
  78. package/v-angular/breadcrumbs/index.d.ts +2 -0
  79. package/v-angular/button/button.component.d.ts +62 -0
  80. package/v-angular/button/button.module.d.ts +10 -0
  81. package/v-angular/button/index.d.ts +2 -0
  82. package/v-angular/card/card.component.d.ts +5 -0
  83. package/v-angular/card/card.module.d.ts +8 -0
  84. package/v-angular/card/index.d.ts +2 -0
  85. package/v-angular/checkbox/checkbox.component.d.ts +27 -0
  86. package/v-angular/checkbox/checkbox.module.d.ts +9 -0
  87. package/v-angular/checkbox/index.d.ts +2 -0
  88. package/v-angular/dropdown/dropdown-list/dropdown-list.component.d.ts +89 -0
  89. package/v-angular/dropdown/dropdown-list/index.d.ts +1 -0
  90. package/v-angular/dropdown/dropdown.component.d.ts +99 -0
  91. package/v-angular/dropdown/dropdown.module.d.ts +12 -0
  92. package/v-angular/dropdown/index.d.ts +5 -0
  93. package/v-angular/dropdown/typeahead/index.d.ts +5 -0
  94. package/v-angular/dropdown/typeahead/typeahead-dropdown-list/typeahead-dropdown-list.component.d.ts +34 -0
  95. package/v-angular/dropdown/typeahead/typeahead-highlight/typeahead-highlight.component.d.ts +34 -0
  96. package/v-angular/dropdown/typeahead/typeahead-input/typeahead-input.component.d.ts +59 -0
  97. package/v-angular/dropdown/typeahead/typeahead.directive.d.ts +76 -0
  98. package/v-angular/dropdown/typeahead/typeahead.module.d.ts +11 -0
  99. package/v-angular/i18n/i18n.module.d.ts +15 -0
  100. package/v-angular/i18n/i18n.test.module.d.ts +27 -0
  101. package/v-angular/i18n/index.d.ts +2 -0
  102. package/v-angular/index.d.ts +16 -0
  103. package/v-angular/info-circle/index.d.ts +2 -0
  104. package/v-angular/info-circle/info-circle.component.d.ts +16 -0
  105. package/v-angular/info-circle/info-circle.module.d.ts +10 -0
  106. package/v-angular/input/index.d.ts +2 -0
  107. package/v-angular/input/input.component.d.ts +90 -0
  108. package/v-angular/input/input.module.d.ts +11 -0
  109. package/v-angular/input-mask/config.d.ts +6 -0
  110. package/v-angular/input-mask/constants.d.ts +2 -0
  111. package/v-angular/input-mask/index.d.ts +5 -0
  112. package/v-angular/input-mask/input-mask-format.pipe.d.ts +8 -0
  113. package/v-angular/input-mask/input-mask.directive.d.ts +39 -0
  114. package/v-angular/input-mask/input-mask.module.d.ts +11 -0
  115. package/v-angular/input-mask/input-mask.types.d.ts +20 -0
  116. package/v-angular/modal/dialog/dialog.component.d.ts +55 -0
  117. package/v-angular/modal/fold-out/fold-out.component.d.ts +24 -0
  118. package/v-angular/modal/fold-out/fold-out.directive.d.ts +6 -0
  119. package/v-angular/modal/index.d.ts +5 -0
  120. package/v-angular/modal/modal.globals.d.ts +13 -0
  121. package/v-angular/modal/modal.module.d.ts +13 -0
  122. package/v-angular/modal/modal.types.d.ts +5 -0
  123. package/v-angular/modal/slide-out/slide-out.component.d.ts +76 -0
  124. package/v-angular/radio/index.d.ts +2 -0
  125. package/v-angular/radio/radio.component.d.ts +48 -0
  126. package/v-angular/radio/radio.module.d.ts +9 -0
  127. package/v-angular/textarea/index.d.ts +2 -0
  128. package/v-angular/textarea/textarea.component.d.ts +44 -0
  129. package/v-angular/textarea/textarea.module.d.ts +8 -0
  130. package/v-angular/tooltip/index.d.ts +2 -0
  131. package/v-angular/tooltip/tooltip.directive.d.ts +106 -0
  132. package/v-angular/tooltip/tooltip.module.d.ts +8 -0
  133. package/v-angular/v-angular.module.d.ts +22 -0
@@ -0,0 +1,20 @@
1
+ import { Pipe } from '@angular/core';
2
+ import _Inputmask from 'inputmask';
3
+ import * as i0 from "@angular/core";
4
+ const InputmaskStatic = _Inputmask.default || _Inputmask;
5
+ export class InputMaskFormatPipe {
6
+ transform(value, options) {
7
+ if (!value)
8
+ return value;
9
+ return InputmaskStatic.format(value, options);
10
+ }
11
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: InputMaskFormatPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe }); }
12
+ static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "16.2.12", ngImport: i0, type: InputMaskFormatPipe, name: "ngvInputMaskFormat" }); }
13
+ }
14
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: InputMaskFormatPipe, decorators: [{
15
+ type: Pipe,
16
+ args: [{
17
+ name: 'ngvInputMaskFormat',
18
+ }]
19
+ }] });
20
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5wdXQtbWFzay1mb3JtYXQucGlwZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvYW5ndWxhci9zcmMvdi1hbmd1bGFyL2lucHV0LW1hc2svaW5wdXQtbWFzay1mb3JtYXQucGlwZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsSUFBSSxFQUFpQixNQUFNLGVBQWUsQ0FBQztBQUdwRCxPQUFPLFVBQVUsTUFBTSxXQUFXLENBQUM7O0FBSW5DLE1BQU0sZUFBZSxHQUFJLFVBQXdELENBQUMsT0FBTyxJQUFJLFVBQVUsQ0FBQztBQUt4RyxNQUFNLE9BQU8sbUJBQW1CO0lBQzlCLFNBQVMsQ0FBVSxLQUFVLEVBQUUsT0FBNEI7UUFDekQsSUFBSSxDQUFDLEtBQUs7WUFBRSxPQUFPLEtBQUssQ0FBQztRQUN6QixPQUFPLGVBQWUsQ0FBQyxNQUFNLENBQUMsS0FBSyxFQUFFLE9BQU8sQ0FBQyxDQUFDO0lBQ2hELENBQUM7K0dBSlUsbUJBQW1COzZHQUFuQixtQkFBbUI7OzRGQUFuQixtQkFBbUI7a0JBSC9CLElBQUk7bUJBQUM7b0JBQ0osSUFBSSxFQUFFLG9CQUFvQjtpQkFDM0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBQaXBlLCBQaXBlVHJhbnNmb3JtIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmltcG9ydCB0eXBlIElucHV0bWFzayBmcm9tICdpbnB1dG1hc2snO1xuaW1wb3J0IF9JbnB1dG1hc2sgZnJvbSAnaW5wdXRtYXNrJztcblxuaW1wb3J0IHR5cGUgeyBJbnB1dG1hc2tPcHRpb25zIH0gZnJvbSAnLi9pbnB1dC1tYXNrLnR5cGVzJztcblxuY29uc3QgSW5wdXRtYXNrU3RhdGljID0gKF9JbnB1dG1hc2sgYXMgdW5rbm93biBhcyB7IGRlZmF1bHQ/OiBJbnB1dG1hc2suU3RhdGljIH0pLmRlZmF1bHQgfHwgX0lucHV0bWFzaztcblxuQFBpcGUoe1xuICBuYW1lOiAnbmd2SW5wdXRNYXNrRm9ybWF0Jyxcbn0pXG5leHBvcnQgY2xhc3MgSW5wdXRNYXNrRm9ybWF0UGlwZSBpbXBsZW1lbnRzIFBpcGVUcmFuc2Zvcm0ge1xuICB0cmFuc2Zvcm08VCA9IGFueT4odmFsdWU6IGFueSwgb3B0aW9uczogSW5wdXRtYXNrT3B0aW9uczxUPik6IGFueSB7XG4gICAgaWYgKCF2YWx1ZSkgcmV0dXJuIHZhbHVlO1xuICAgIHJldHVybiBJbnB1dG1hc2tTdGF0aWMuZm9ybWF0KHZhbHVlLCBvcHRpb25zKTtcbiAgfVxufVxuIl19
@@ -0,0 +1,165 @@
1
+ import { isPlatformServer } from '@angular/common';
2
+ import { Directive, ElementRef, HostListener, Inject, Input, NgZone, Optional, PLATFORM_ID, Renderer2, Self, } from '@angular/core';
3
+ import { NgControl, } from '@angular/forms';
4
+ import _Inputmask from 'inputmask';
5
+ import { INPUT_MASK_CONFIG, InputMaskConfig } from './config';
6
+ import * as i0 from "@angular/core";
7
+ import * as i1 from "@angular/forms";
8
+ import * as i2 from "./config";
9
+ const InputmaskConstructor = _Inputmask.default ||
10
+ _Inputmask;
11
+ export class NgvInputMaskDirective {
12
+ constructor(ngControl, config, platformId, elementRef, renderer, ngZone) {
13
+ this.ngControl = ngControl;
14
+ this.platformId = platformId;
15
+ this.elementRef = elementRef;
16
+ this.renderer = renderer;
17
+ this.ngZone = ngZone;
18
+ /** Input settings of directive */
19
+ this.ngvInputMask = {};
20
+ this.defaultInputMaskConfig = new InputMaskConfig();
21
+ this.onInput = (_) => {
22
+ // Empty method
23
+ };
24
+ this.onTouched = (_) => {
25
+ // Empty method
26
+ };
27
+ this.validate = (control) => !control.value || !this.inputMaskPlugin || this.inputMaskPlugin.isValid()
28
+ ? null
29
+ : { invalidformat: true };
30
+ if (this.ngControl) {
31
+ this.ngControl.valueAccessor = this;
32
+ }
33
+ this.setNativeInputElement(config);
34
+ }
35
+ onKeyUp(event) {
36
+ // Trigger "onInput" when pressing delete or backspace, when input is focused
37
+ if (['Delete', 'Backspace'].includes(event.key)) {
38
+ this.elementRef.nativeElement.dispatchEvent(new Event('input', {
39
+ bubbles: true,
40
+ cancelable: true,
41
+ }));
42
+ }
43
+ }
44
+ ngOnInit() {
45
+ if (this.control) {
46
+ this.control.setValidators(this.control.validator
47
+ ? [this.control.validator, this.validate]
48
+ : [this.validate]);
49
+ this.control.updateValueAndValidity();
50
+ }
51
+ }
52
+ ngOnDestroy() {
53
+ this.inputMaskPlugin?.remove();
54
+ this.mutationObserver?.disconnect();
55
+ }
56
+ initInputMask() {
57
+ if (isPlatformServer(this.platformId) ||
58
+ !this.nativeInputElement ||
59
+ !Object.keys(this.ngvInputMask).length) {
60
+ return;
61
+ }
62
+ this.inputMaskPlugin = this.ngZone.runOutsideAngular(() => new InputmaskConstructor(this.inputMaskOptions).mask(this.nativeInputElement));
63
+ if (this.control) {
64
+ setTimeout(() => {
65
+ this.control.updateValueAndValidity();
66
+ });
67
+ }
68
+ }
69
+ ngAfterViewInit() {
70
+ this.initInputMask();
71
+ }
72
+ get inputMaskOptions() {
73
+ const { parser, ...options } = this.ngvInputMask;
74
+ return options;
75
+ }
76
+ writeValue(value) {
77
+ if (this.nativeInputElement) {
78
+ this.renderer.setProperty(this.nativeInputElement, 'value', value ?? '');
79
+ }
80
+ }
81
+ registerOnChange(fn) {
82
+ // Use injected parser from settings to modify value
83
+ // of users desire
84
+ this.onInput = (value) => {
85
+ const parser = this.ngvInputMask?.parser;
86
+ const newValue = parser && value ? parser(value) : value;
87
+ fn(newValue);
88
+ };
89
+ }
90
+ registerOnTouched(fn) {
91
+ this.onTouched = fn;
92
+ }
93
+ setDisabledState(disabled) {
94
+ if (this.nativeInputElement) {
95
+ this.renderer.setProperty(this.nativeInputElement, 'disabled', disabled);
96
+ }
97
+ }
98
+ get control() {
99
+ return this.ngControl?.control;
100
+ }
101
+ setNativeInputElement(config) {
102
+ if (this.elementRef.nativeElement.tagName === 'INPUT') {
103
+ this.nativeInputElement = this.elementRef.nativeElement;
104
+ }
105
+ else {
106
+ this.defaultInputMaskConfig = {
107
+ ...this.defaultInputMaskConfig,
108
+ ...config,
109
+ };
110
+ if (this.defaultInputMaskConfig.isAsync) {
111
+ // Create an observer instance linked to the callback function
112
+ this.mutationObserver = new MutationObserver((mutationsList) => {
113
+ for (const mutation of mutationsList) {
114
+ if (mutation.type === 'childList') {
115
+ const nativeInputElement = this.elementRef.nativeElement.querySelector(this.defaultInputMaskConfig.inputSelector);
116
+ if (nativeInputElement) {
117
+ this.nativeInputElement = nativeInputElement;
118
+ this.mutationObserver?.disconnect();
119
+ this.initInputMask();
120
+ }
121
+ }
122
+ }
123
+ });
124
+ // Start observing the target node for configured mutations
125
+ this.mutationObserver.observe(this.elementRef.nativeElement, {
126
+ childList: true,
127
+ subtree: true,
128
+ });
129
+ }
130
+ else {
131
+ this.nativeInputElement = this.elementRef.nativeElement.querySelector(this.defaultInputMaskConfig.inputSelector);
132
+ }
133
+ }
134
+ }
135
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: NgvInputMaskDirective, deps: [{ token: i1.NgControl, optional: true, self: true }, { token: INPUT_MASK_CONFIG }, { token: PLATFORM_ID }, { token: i0.ElementRef }, { token: i0.Renderer2 }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Directive }); }
136
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.2.12", type: NgvInputMaskDirective, selector: "[ngvInputMask]", inputs: { ngvInputMask: "ngvInputMask" }, host: { listeners: { "input": "onInput($event.target.value)", "blur": "onTouched($event.target.value)", "keyup": "onKeyUp($event)" } }, ngImport: i0 }); }
137
+ }
138
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: NgvInputMaskDirective, decorators: [{
139
+ type: Directive,
140
+ args: [{
141
+ selector: '[ngvInputMask]',
142
+ }]
143
+ }], ctorParameters: function () { return [{ type: i1.NgControl, decorators: [{
144
+ type: Optional
145
+ }, {
146
+ type: Self
147
+ }] }, { type: i2.InputMaskConfig, decorators: [{
148
+ type: Inject,
149
+ args: [INPUT_MASK_CONFIG]
150
+ }] }, { type: undefined, decorators: [{
151
+ type: Inject,
152
+ args: [PLATFORM_ID]
153
+ }] }, { type: i0.ElementRef }, { type: i0.Renderer2 }, { type: i0.NgZone }]; }, propDecorators: { ngvInputMask: [{
154
+ type: Input
155
+ }], onInput: [{
156
+ type: HostListener,
157
+ args: ['input', ['$event.target.value']]
158
+ }], onTouched: [{
159
+ type: HostListener,
160
+ args: ['blur', ['$event.target.value']]
161
+ }], onKeyUp: [{
162
+ type: HostListener,
163
+ args: ['keyup', ['$event']]
164
+ }] } });
165
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5wdXQtbWFzay5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL2FuZ3VsYXIvc3JjL3YtYW5ndWxhci9pbnB1dC1tYXNrL2lucHV0LW1hc2suZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGlCQUFpQixDQUFBO0FBQ2xELE9BQU8sRUFFTCxTQUFTLEVBQ1QsVUFBVSxFQUNWLFlBQVksRUFDWixNQUFNLEVBQ04sS0FBSyxFQUNMLE1BQU0sRUFHTixRQUFRLEVBQ1IsV0FBVyxFQUNYLFNBQVMsRUFDVCxJQUFJLEdBQ0wsTUFBTSxlQUFlLENBQUE7QUFDdEIsT0FBTyxFQUdMLFNBQVMsR0FFVixNQUFNLGdCQUFnQixDQUFBO0FBR3ZCLE9BQU8sVUFBVSxNQUFNLFdBQVcsQ0FBQTtBQUVsQyxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsZUFBZSxFQUFFLE1BQU0sVUFBVSxDQUFBOzs7O0FBRzdELE1BQU0sb0JBQW9CLEdBQ3ZCLFVBQXdELENBQUMsT0FBTztJQUNqRSxVQUFVLENBQUE7QUFLWixNQUFNLE9BQU8scUJBQXFCO0lBWWhDLFlBQzZCLFNBQW9CLEVBQ3BCLE1BQXVCLEVBQ3JCLFVBQWtCLEVBQ3ZDLFVBQThDLEVBQzlDLFFBQW1CLEVBQ25CLE1BQWM7UUFMSyxjQUFTLEdBQVQsU0FBUyxDQUFXO1FBRWxCLGVBQVUsR0FBVixVQUFVLENBQVE7UUFDdkMsZUFBVSxHQUFWLFVBQVUsQ0FBb0M7UUFDOUMsYUFBUSxHQUFSLFFBQVEsQ0FBVztRQUNuQixXQUFNLEdBQU4sTUFBTSxDQUFRO1FBZnhCLGtDQUFrQztRQUN6QixpQkFBWSxHQUF3QixFQUFFLENBQUE7UUFJL0MsMkJBQXNCLEdBQUcsSUFBSSxlQUFlLEVBQUUsQ0FBQTtRQW1COUMsWUFBTyxHQUFHLENBQUMsQ0FBTSxFQUFFLEVBQUU7WUFDbkIsZUFBZTtRQUNq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QUFNOzJCQUFDLFdBQVc7a0hBWFosWUFBWTtzQkFBcEIsS0FBSztnQkF1Qk4sT0FBTztzQkFETixZQUFZO3VCQUFDLE9BQU8sRUFBRSxDQUFDLHFCQUFxQixDQUFDO2dCQU05QyxTQUFTO3NCQURSLFlBQVk7dUJBQUMsTUFBTSxFQUFFLENBQUMscUJBQXFCLENBQUM7Z0JBTTdDLE9BQU87c0JBRE4sWUFBWTt1QkFBQyxPQUFPLEVBQUUsQ0FBQyxRQUFRLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBpc1BsYXRmb3JtU2VydmVyIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJ1xuaW1wb3J0IHtcbiAgQWZ0ZXJWaWV3SW5pdCxcbiAgRGlyZWN0aXZlLFxuICBFbGVtZW50UmVmLFxuICBIb3N0TGlzdGVuZXIsXG4gIEluamVjdCxcbiAgSW5wdXQsXG4gIE5nWm9uZSxcbiAgT25EZXN0cm95LFxuICBPbkluaXQsXG4gIE9wdGlvbmFsLFxuICBQTEFURk9STV9JRCxcbiAgUmVuZGVyZXIyLFxuICBTZWxmLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJ1xuaW1wb3J0IHtcbiAgQWJzdHJhY3RDb250cm9sLFxuICBDb250cm9sVmFsdWVBY2Nlc3NvcixcbiAgTmdDb250cm9sLFxuICBWYWxpZGF0b3IsXG59IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJ1xuXG5pbXBvcnQgdHlwZSBJbnB1dG1hc2sgZnJvbSAnaW5wdXRtYXNrJ1xuaW1wb3J0IF9JbnB1dG1hc2sgZnJvbSAnaW5wdXRtYXNrJ1xuXG5pbXBvcnQgeyBJTlBVVF9NQVNLX0NPTkZJRywgSW5wdXRNYXNrQ29uZmlnIH0gZnJvbSAnLi9jb25maWcnXG5pbXBvcnQgdHlwZSB7IElucHV0bWFza09wdGlvbnMgfSBmcm9tICcuL2lucHV0LW1hc2sudHlwZXMnXG5cbmNvbnN0IElucHV0bWFza0NvbnN0cnVjdG9yID1cbiAgKF9JbnB1dG1hc2sgYXMgdW5rbm93biBhcyB7IGRlZmF1bHQ/OiBJbnB1dG1hc2suU3RhdGljIH0pLmRlZmF1bHQgfHxcbiAgX0lucHV0bWFza1xuXG5ARGlyZWN0aXZlKHtcbiAgc2VsZWN0b3I6ICdbbmd2SW5wdXRNYXNrXScsXG59KVxuZXhwb3J0IGNsYXNzIE5ndklucHV0TWFza0RpcmVjdGl2ZTxUID0gYW55PlxuICBpbXBsZW1lbnRzIE9uSW5pdCwgQWZ0ZXJWaWV3SW5pdCwgT25EZXN0cm95LCBDb250cm9sVmFsdWVBY2Nlc3NvciwgVmFsaWRhdG9yXG57XG4gIC8qKiBJbnB1dCBzZXR0aW5ncyBvZiBkaXJlY3RpdmUgKi9cbiAgQElucHV0KCkgbmd2SW5wdXRNYXNrOiBJbnB1dG1hc2tPcHRpb25zPFQ+ID0ge31cblxuICBpbnB1dE1hc2tQbHVnaW46IElucHV0bWFzay5JbnN0YW5jZSB8IHVuZGVmaW5lZFxuICBuYXRpdmVJbnB1dEVsZW1lbnQ6IEhUTUxJbnB1dEVsZW1lbnQgfCB1bmRlZmluZWRcbiAgZGVmYXVsdElucHV0TWFza0NvbmZpZyA9IG5ldyBJbnB1dE1hc2tDb25maWcoKVxuXG4gIHByaXZhdGUgbXV0YXRpb25PYnNlcnZlcjogTXV0YXRpb25PYnNlcnZlciB8IHVuZGVmaW5lZFxuXG4gIGNvbnN0cnVjdG9yKFxuICAgIEBPcHRpb25hbCgpIEBTZWxmKCkgcHVibGljIG5nQ29udHJvbDogTmdDb250cm9sLFxuICAgIEBJbmplY3QoSU5QVVRfTUFTS19DT05GSUcpIGNvbmZpZzogSW5wdXRNYXNrQ29uZmlnLFxuICAgIEBJbmplY3QoUExBVEZPUk1fSUQpIHByaXZhdGUgcGxhdGZvcm1JZDogc3RyaW5nLFxuICAgIHByaXZhdGUgZWxlbWVudFJlZjogRWxlbWVudFJlZjxIVE1MSW5wdXRFbGVtZW50IHwgYW55PixcbiAgICBwcml2YXRlIHJlbmRlcmVyOiBSZW5kZXJlcjIsXG4gICAgcHJpdmF0ZSBuZ1pvbmU6IE5nWm9uZSxcbiAgKSB7XG4gICAgaWYgKHRoaXMubmdDb250cm9sKSB7XG4gICAgICB0aGlzLm5nQ29udHJvbC52YWx1ZUFjY2Vzc29yID0gdGhpc1xuICAgIH1cbiAgICB0aGlzLnNldE5hdGl2ZUlucHV0RWxlbWVudChjb25maWcpXG4gIH1cblxuICBASG9zdExpc3RlbmVyKCdpbnB1dCcsIFsnJGV2ZW50LnRhcmdldC52YWx1ZSddKVxuICBvbklucHV0ID0gKF86IGFueSkgPT4ge1xuICAgIC8vIEVtcHR5IG1ldGhvZFxuICB9XG5cbiAgQEhvc3RMaXN0ZW5lcignYmx1cicsIFsnJGV2ZW50LnRhcmdldC52YWx1ZSddKVxuICBvblRvdWNoZWQgPSAoXzogYW55KSA9PiB7XG4gICAgLy8gRW1wdHkgbWV0aG9kXG4gIH1cblxuICBASG9zdExpc3RlbmVyKCdrZXl1cCcsIFsnJGV2ZW50J10pXG4gIG9uS2V5VXAoZXZlbnQ6IEtleWJvYXJkRXZlbnQpIHtcbiAgICAvLyBUcmlnZ2VyIFwib25JbnB1dFwiIHdoZW4gcHJlc3NpbmcgZGVsZXRlIG9yIGJhY2tzcGFjZSwgd2hlbiBpbnB1dCBpcyBmb2N1c2VkXG4gICAgaWYgKFsnRGVsZXRlJywgJ0JhY2tzcGFjZSddLmluY2x1ZGVzKGV2ZW50LmtleSkpIHtcbiAgICAgIHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LmRpc3BhdGNoRXZlbnQoXG4gICAgICAgIG5ldyBFdmVudCgnaW5wdXQnLCB7XG4gICAgICAgICAgYnViYmxlczogdHJ1ZSxcbiAgICAgICAgICBjYW5jZWxhYmxlOiB0cnVlLFxuICAgICAgICB9KSxcbiAgICAgIClcbiAgICB9XG4gIH1cblxuICBuZ09uSW5pdCgpIHtcbiAgICBpZiAodGhpcy5jb250cm9sKSB7XG4gICAgICB0aGlzLmNvbnRyb2wuc2V0VmFsaWRhdG9ycyhcbiAgICAgICAgdGhpcy5jb250cm9sLnZhbGlkYXRvclxuICAgICAgICAgID8gW3RoaXMuY29udHJvbC52YWxpZGF0b3IsIHRoaXMudmFsaWRhdGVdXG4gICAgICAgICAgOiBbdGhpcy52YWxpZGF0ZV0sXG4gICAgICApXG5cbiAgICAgIHRoaXMuY29udHJvbC51cGRhdGVWYWx1ZUFuZFZhbGlkaXR5KClcbiAgICB9XG4gIH1cblxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICB0aGlzLmlucHV0TWFza1BsdWdpbj8ucmVtb3ZlKClcbiAgICB0aGlzLm11dGF0aW9uT2JzZXJ2ZXI/LmRpc2Nvbm5lY3QoKVxuICB9XG5cbiAgaW5pdElucHV0TWFzaygpIHtcbiAgICBpZiAoXG4gICAgICBpc1BsYXRmb3JtU2VydmVyKHRoaXMucGxhdGZvcm1JZCkgfHxcbiAgICAgICF0aGlzLm5hdGl2ZUlucHV0RWxlbWVudCB8fFxuICAgICAgIU9iamVjdC5rZXlzKHRoaXMubmd2SW5wdXRNYXNrKS5sZW5ndGhcbiAgICApIHtcbiAgICAgIHJldHVyblxuICAgIH1cblxuICAgIHRoaXMuaW5wdXRNYXNrUGx1Z2luID0gdGhpcy5uZ1pvbmUucnVuT3V0c2lkZUFuZ3VsYXIoKCkgPT5cbiAgICAgIG5ldyBJbnB1dG1hc2tDb25zdHJ1Y3Rvcih0aGlzLmlucHV0TWFza09wdGlvbnMpLm1hc2soXG4gICAgICAgIHRoaXMubmF0aXZlSW5wdXRFbGVtZW50IGFzIEhUTUxJbnB1dEVsZW1lbnQsXG4gICAgICApLFxuICAgIClcblxuICAgIGlmICh0aGlzLmNvbnRyb2wpIHtcbiAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICB0aGlzLmNvbnRyb2whLnVwZGF0ZVZhbHVlQW5kVmFsaWRpdHkoKVxuICAgICAgfSlcbiAgICB9XG4gIH1cblxuICBuZ0FmdGVyVmlld0luaXQoKSB7XG4gICAgdGhpcy5pbml0SW5wdXRNYXNrKClcbiAgfVxuXG4gIGdldCBpbnB1dE1hc2tPcHRpb25zKCk6IElucHV0bWFzay5PcHRpb25zIHtcbiAgICBjb25zdCB7IHBhcnNlciwgLi4ub3B0aW9ucyB9ID0gdGhpcy5uZ3ZJbnB1dE1hc2tcbiAgICByZXR1cm4gb3B0aW9uc1xuICB9XG5cbiAgd3JpdGVWYWx1ZSh2YWx1ZTogc3RyaW5nKTogdm9pZCB7XG4gICAgaWYgKHRoaXMubmF0aXZlSW5wdXRFbGVtZW50KSB7XG4gICAgICB0aGlzLnJlbmRlcmVyLnNldFByb3BlcnR5KHRoaXMubmF0aXZlSW5wdXRFbGVtZW50LCAndmFsdWUnLCB2YWx1ZSA/PyAnJylcbiAgICB9XG4gIH1cblxuICByZWdpc3Rlck9uQ2hhbmdlKGZuOiAoXzogVCB8IG51bGwpID0+IHZvaWQpOiB2b2lkIHtcbiAgICAvLyBVc2UgaW5qZWN0ZWQgcGFyc2VyIGZyb20gc2V0dGluZ3MgdG8gbW9kaWZ5IHZhbHVlXG4gICAgLy8gb2YgdXNlcnMgZGVzaXJlXG4gICAgdGhpcy5vbklucHV0ID0gKHZhbHVlKSA9PiB7XG4gICAgICBjb25zdCBwYXJzZXIgPSB0aGlzLm5ndklucHV0TWFzaz8ucGFyc2VyXG4gICAgICBjb25zdCBuZXdWYWx1ZSA9IHBhcnNlciAmJiB2YWx1ZSA/IHBhcnNlcih2YWx1ZSkgOiB2YWx1ZVxuICAgICAgZm4obmV3VmFsdWUpXG4gICAgfVxuICB9XG5cbiAgcmVnaXN0ZXJPblRvdWNoZWQoZm46IGFueSk6IHZvaWQge1xuICAgIHRoaXMub25Ub3VjaGVkID0gZm5cbiAgfVxuXG4gIHZhbGlkYXRlID0gKGNvbnRyb2w6IEFic3RyYWN0Q29udHJvbCk6IHsgW2tleTogc3RyaW5nXTogYW55IH0gfCBudWxsID0+XG4gICAgIWNvbnRyb2wudmFsdWUgfHwgIXRoaXMuaW5wdXRNYXNrUGx1Z2luIHx8IHRoaXMuaW5wdXRNYXNrUGx1Z2luLmlzVmFsaWQoKVxuICAgICAgPyBudWxsXG4gICAgICA6IHsgaW52YWxpZGZvcm1hdDogdHJ1ZSB9XG5cbiAgc2V0RGlzYWJsZWRTdGF0ZShkaXNhYmxlZDogYm9vbGVhbik6IHZvaWQge1xuICAgIGlmICh0aGlzLm5hdGl2ZUlucHV0RWxlbWVudCkge1xuICAgICAgdGhpcy5yZW5kZXJlci5zZXRQcm9wZXJ0eSh0aGlzLm5hdGl2ZUlucHV0RWxlbWVudCwgJ2Rpc2FibGVkJywgZGlzYWJsZWQpXG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBnZXQgY29udHJvbCgpOiBBYnN0cmFjdENvbnRyb2wgfCBudWxsIHwgdW5kZWZpbmVkIHtcbiAgICByZXR1cm4gdGhpcy5uZ0NvbnRyb2w/LmNvbnRyb2xcbiAgfVxuXG4gIHByaXZhdGUgc2V0TmF0aXZlSW5wdXRFbGVtZW50KGNvbmZpZzogSW5wdXRNYXNrQ29uZmlnKSB7XG4gICAgaWYgKHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LnRhZ05hbWUgPT09ICdJTlBVVCcpIHtcbiAgICAgIHRoaXMubmF0aXZlSW5wdXRFbGVtZW50ID0gdGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnRcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5kZWZhdWx0SW5wdXRNYXNrQ29uZmlnID0ge1xuICAgICAgICAuLi50aGlzLmRlZmF1bHRJbnB1dE1hc2tDb25maWcsXG4gICAgICAgIC4uLmNvbmZpZyxcbiAgICAgIH1cbiAgICAgIGlmICh0aGlzLmRlZmF1bHRJbnB1dE1hc2tDb25maWcuaXNBc3luYykge1xuICAgICAgICAvLyBDcmVhdGUgYW4gb2JzZXJ2ZXIgaW5zdGFuY2UgbGlua2VkIHRvIHRoZSBjYWxsYmFjayBmdW5jdGlvblxuICAgICAgICB0aGlzLm11dGF0aW9uT2JzZXJ2ZXIgPSBuZXcgTXV0YXRpb25PYnNlcnZlcigobXV0YXRpb25zTGlzdCkgPT4ge1xuICAgICAgICAgIGZvciAoY29uc3QgbXV0YXRpb24gb2YgbXV0YXRpb25zTGlzdCkge1xuICAgICAgICAgICAgaWYgKG11dGF0aW9uLnR5cGUgPT09ICdjaGlsZExpc3QnKSB7XG4gICAgICAgICAgICAgIGNvbnN0IG5hdGl2ZUlucHV0RWxlbWVudCA9XG4gICAgICAgICAgICAgICAgdGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQucXVlcnlTZWxlY3RvcihcbiAgICAgICAgICAgICAgICAgIHRoaXMuZGVmYXVsdElucHV0TWFza0NvbmZpZy5pbnB1dFNlbGVjdG9yLFxuICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgaWYgKG5hdGl2ZUlucHV0RWxlbWVudCkge1xuICAgICAgICAgICAgICAgIHRoaXMubmF0aXZlSW5wdXRFbGVtZW50ID0gbmF0aXZlSW5wdXRFbGVtZW50XG4gICAgICAgICAgICAgICAgdGhpcy5tdXRhdGlvbk9ic2VydmVyPy5kaXNjb25uZWN0KClcbiAgICAgICAgICAgICAgICB0aGlzLmluaXRJbnB1dE1hc2soKVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9KVxuXG4gICAgICAgIC8vIFN0YXJ0IG9ic2VydmluZyB0aGUgdGFyZ2V0IG5vZGUgZm9yIGNvbmZpZ3VyZWQgbXV0YXRpb25zXG4gICAgICAgIHRoaXMubXV0YXRpb25PYnNlcnZlci5vYnNlcnZlKHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LCB7XG4gICAgICAgICAgY2hpbGRMaXN0OiB0cnVlLFxuICAgICAgICAgIHN1YnRyZWU6IHRydWUsXG4gICAgICAgIH0pXG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzLm5hdGl2ZUlucHV0RWxlbWVudCA9IHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LnF1ZXJ5U2VsZWN0b3IoXG4gICAgICAgICAgdGhpcy5kZWZhdWx0SW5wdXRNYXNrQ29uZmlnLmlucHV0U2VsZWN0b3IsXG4gICAgICAgIClcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cbiJdfQ==
@@ -0,0 +1,35 @@
1
+ import { NgModule } from '@angular/core';
2
+ import { INPUT_MASK_CONFIG, InputMaskConfig } from './config';
3
+ import { InputMaskFormatPipe } from './input-mask-format.pipe';
4
+ import { NgvInputMaskDirective } from './input-mask.directive';
5
+ import * as i0 from "@angular/core";
6
+ export class NgvInputMaskModule {
7
+ static forRoot(config) {
8
+ return {
9
+ ngModule: NgvInputMaskModule,
10
+ providers: [{ provide: INPUT_MASK_CONFIG, useValue: config }],
11
+ };
12
+ }
13
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: NgvInputMaskModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
14
+ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "16.2.12", ngImport: i0, type: NgvInputMaskModule, declarations: [NgvInputMaskDirective, InputMaskFormatPipe], exports: [NgvInputMaskDirective, InputMaskFormatPipe] }); }
15
+ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: NgvInputMaskModule, providers: [
16
+ {
17
+ provide: INPUT_MASK_CONFIG,
18
+ useClass: InputMaskConfig,
19
+ },
20
+ ] }); }
21
+ }
22
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: NgvInputMaskModule, decorators: [{
23
+ type: NgModule,
24
+ args: [{
25
+ declarations: [NgvInputMaskDirective, InputMaskFormatPipe],
26
+ exports: [NgvInputMaskDirective, InputMaskFormatPipe],
27
+ providers: [
28
+ {
29
+ provide: INPUT_MASK_CONFIG,
30
+ useClass: InputMaskConfig,
31
+ },
32
+ ],
33
+ }]
34
+ }] });
35
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5wdXQtbWFzay5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL2FuZ3VsYXIvc3JjL3YtYW5ndWxhci9pbnB1dC1tYXNrL2lucHV0LW1hc2subW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBdUIsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFBO0FBRTdELE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxlQUFlLEVBQUUsTUFBTSxVQUFVLENBQUE7QUFDN0QsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sMEJBQTBCLENBQUE7QUFDOUQsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sd0JBQXdCLENBQUE7O0FBWTlELE1BQU0sT0FBTyxrQkFBa0I7SUFDN0IsTUFBTSxDQUFDLE9BQU8sQ0FDWixNQUFpQztRQUVqQyxPQUFPO1lBQ0wsUUFBUSxFQUFFLGtCQUFrQjtZQUM1QixTQUFTLEVBQUUsQ0FBQyxFQUFFLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxRQUFRLEVBQUUsTUFBTSxFQUFFLENBQUM7U0FDOUQsQ0FBQTtJQUNILENBQUM7K0dBUlUsa0JBQWtCO2dIQUFsQixrQkFBa0IsaUJBVGQscUJBQXFCLEVBQUUsbUJBQW1CLGFBQy9DLHFCQUFxQixFQUFFLG1CQUFtQjtnSEFRekMsa0JBQWtCLGFBUGxCO1lBQ1Q7Z0JBQ0UsT0FBTyxFQUFFLGlCQUFpQjtnQkFDMUIsUUFBUSxFQUFFLGVBQWU7YUFDMUI7U0FDRjs7NEZBRVUsa0JBQWtCO2tCQVY5QixRQUFRO21CQUFDO29CQUNSLFlBQVksRUFBRSxDQUFDLHFCQUFxQixFQUFFLG1CQUFtQixDQUFDO29CQUMxRCxPQUFPLEVBQUUsQ0FBQyxxQkFBcUIsRUFBRSxtQkFBbUIsQ0FBQztvQkFDckQsU0FBUyxFQUFFO3dCQUNUOzRCQUNFLE9BQU8sRUFBRSxpQkFBaUI7NEJBQzFCLFFBQVEsRUFBRSxlQUFlO3lCQUMxQjtxQkFDRjtpQkFDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE1vZHVsZVdpdGhQcm92aWRlcnMsIE5nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSdcblxuaW1wb3J0IHsgSU5QVVRfTUFTS19DT05GSUcsIElucHV0TWFza0NvbmZpZyB9IGZyb20gJy4vY29uZmlnJ1xuaW1wb3J0IHsgSW5wdXRNYXNrRm9ybWF0UGlwZSB9IGZyb20gJy4vaW5wdXQtbWFzay1mb3JtYXQucGlwZSdcbmltcG9ydCB7IE5ndklucHV0TWFza0RpcmVjdGl2ZSB9IGZyb20gJy4vaW5wdXQtbWFzay5kaXJlY3RpdmUnXG5cbkBOZ01vZHVsZSh7XG4gIGRlY2xhcmF0aW9uczogW05ndklucHV0TWFza0RpcmVjdGl2ZSwgSW5wdXRNYXNrRm9ybWF0UGlwZV0sXG4gIGV4cG9ydHM6IFtOZ3ZJbnB1dE1hc2tEaXJlY3RpdmUsIElucHV0TWFza0Zvcm1hdFBpcGVdLFxuICBwcm92aWRlcnM6IFtcbiAgICB7XG4gICAgICBwcm92aWRlOiBJTlBVVF9NQVNLX0NPTkZJRyxcbiAgICAgIHVzZUNsYXNzOiBJbnB1dE1hc2tDb25maWcsXG4gICAgfSxcbiAgXSxcbn0pXG5leHBvcnQgY2xhc3MgTmd2SW5wdXRNYXNrTW9kdWxlIHtcbiAgc3RhdGljIGZvclJvb3QoXG4gICAgY29uZmlnPzogUGFydGlhbDxJbnB1dE1hc2tDb25maWc+LFxuICApOiBNb2R1bGVXaXRoUHJvdmlkZXJzPE5ndklucHV0TWFza01vZHVsZT4ge1xuICAgIHJldHVybiB7XG4gICAgICBuZ01vZHVsZTogTmd2SW5wdXRNYXNrTW9kdWxlLFxuICAgICAgcHJvdmlkZXJzOiBbeyBwcm92aWRlOiBJTlBVVF9NQVNLX0NPTkZJRywgdXNlVmFsdWU6IGNvbmZpZyB9XSxcbiAgICB9XG4gIH1cbn1cbiJdfQ==
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5wdXQtbWFzay50eXBlcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvYW5ndWxhci9zcmMvdi1hbmd1bGFyL2lucHV0LW1hc2svaW5wdXQtbWFzay50eXBlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgSW5wdXRtYXNrIGZyb20gJ2lucHV0bWFzayc7XG5cbmV4cG9ydCB0eXBlIElucHV0bWFza09wdGlvbnM8VD4gPSBJbnB1dG1hc2suT3B0aW9ucyAmIHtcbiAgcGFyc2VyPzogKHZhbHVlOiBhbnkpID0+IFQ7XG59O1xuXG4vKipcbiAqIFVzZWZ1bCB3aGVuIHlvdSB3YW50IHRvIGFkZCBpbnB1dC1tYXNrIG9uIGlucHV0IHdoaWNoIGlzIGNoaWxkIG9mIHlvdXIgY29tcG9uZW50XG4gKlxuICogQHNpbmNlIDIuMS4wXG4gKi9cbmV4cG9ydCB0eXBlIElucHV0TWFza0NvbmZpZyA9IHtcbiAgLyoqXG4gICAqIElmIHNldCB0cnVlLCBNdXRhdGlvbk9ic2VydmVyIHdpbGwgYmUgdXNlZCB0byBsb29rIGZvciBjaGFuZ2VzIHVudGlsIGl0IGZpbmRzIGlucHV0IHdpdGggaW5wdXRTZWxlY3RvclxuICAgKi9cbiAgaXNBc3luYzogYm9vbGVhbjtcbiAgLyoqXG4gICAqIENTUyBsaWtlIHNlbGVjdG9yLCB3aGljaCB3aWxsIGJlIHVzZWQgd2l0aCBgcXVlcnlTZWxlY3RvcmAgdG8gZ2V0IHRoZSBuYXRpdmUgaW5wdXQuXG4gICAqIElmIHlvdXIgaW5wdXQgaXMgbG9hZGVkIGxhemlseSwgcGxlYXNlIHVzZSBgaXNBc3luY2Agb3B0aW9uIHdpdGggdGhpc1xuICAgKi9cbiAgaW5wdXRTZWxlY3Rvcjogc3RyaW5nO1xufTtcbiJdfQ==
@@ -0,0 +1,190 @@
1
+ import { Component, EventEmitter, HostBinding, HostListener, Input, Output, ViewChild, } from '@angular/core';
2
+ import * as i0 from "@angular/core";
3
+ import * as i1 from "@angular/common";
4
+ export class NgvDialogComponent {
5
+ constructor() {
6
+ /** Special property used for selecting DOM elements during automated UI testing. */
7
+ this.thook = 'dialog';
8
+ /** @internal */
9
+ this.baseClass = true;
10
+ /** @internal Defines the default visibility state of the dialog. */
11
+ this.shown = false;
12
+ /** Defines the default visibility state of the dialog. */
13
+ this.initiallyShown = false;
14
+ /**
15
+ * Sets modal title. Will be translated (using transloco) if the string matches a cms key.
16
+ * @deprecated - use heading instead.
17
+ */
18
+ this.title = 'Attention';
19
+ /** Defines if dialog should close on action. */
20
+ this.autoClose = true;
21
+ /** An array of event payloads that will be added to every click context menu item click. */
22
+ this.payload = {};
23
+ /** It gives an ability for parent component to control if modal should be closed on esc button click. */
24
+ this.closeModalOnEscape = true;
25
+ // /** @internal */
26
+ // closeIcon = faTimes
27
+ this.ngvCloseEvent = new EventEmitter();
28
+ this.ngvPositiveEvent = new EventEmitter();
29
+ this.ngvNeutralEvent = new EventEmitter();
30
+ this.ngvNegativeEvent = new EventEmitter();
31
+ }
32
+ /** @internal */
33
+ get ariaHidden() {
34
+ return !this.shown;
35
+ }
36
+ /** Buttons are defined as a key-value pair where key is one of "positive|neutral|negative" and value is the button label. */
37
+ set buttons(buttons) {
38
+ this._buttons = buttons;
39
+ }
40
+ ngOnInit() {
41
+ this.dialogTitleId =
42
+ this.dialogTitleId ?? 'sdv-dialog-title-' + window.ngv?.nextId();
43
+ this.dialogBodyId =
44
+ this.dialogBodyId ?? 'sdv-dialog-body-' + window.ngv?.nextId();
45
+ this.shown = this.initiallyShown;
46
+ if (this.shown)
47
+ this._limitFocusable();
48
+ }
49
+ onAction(event, action) {
50
+ event.preventDefault();
51
+ const emitEvent = {
52
+ original: event,
53
+ payload: this.payload,
54
+ };
55
+ switch (action) {
56
+ case 'positive':
57
+ this.ngvPositiveEvent.emit(emitEvent);
58
+ break;
59
+ case 'neutral':
60
+ this.ngvNeutralEvent.emit(emitEvent);
61
+ break;
62
+ case 'negative':
63
+ this.ngvNegativeEvent.emit(emitEvent);
64
+ break;
65
+ // case 'close' is handled by if-statement below with call to this.close()
66
+ }
67
+ if (this.autoClose)
68
+ this.close(event, 'action');
69
+ }
70
+ open(opener) {
71
+ this.shown = true;
72
+ this._previous = opener || document.activeElement;
73
+ this._limitFocusable();
74
+ return true;
75
+ }
76
+ _limitFocusable() {
77
+ window.setTimeout(() => {
78
+ if (!this.dialogRef)
79
+ return;
80
+ const focusable = this.dialogRef.nativeElement.querySelectorAll('button, [href], input, select, textarea, [tabindex]:not([tabindex="-1"])');
81
+ this._firstFocusable = focusable[0];
82
+ this._lastFocusable = focusable[focusable.length - 1];
83
+ if (this._lastFocusable)
84
+ this._lastFocusable.focus();
85
+ });
86
+ }
87
+ close(event, initiator) {
88
+ if (initiator === 'host' && event instanceof MouseEvent)
89
+ return;
90
+ // prevent modal from closing on esc button click when closeModalOnEscape is set to false
91
+ if (!this.closeModalOnEscape)
92
+ return;
93
+ if (this.shown) {
94
+ const emitEvent = {
95
+ original: event,
96
+ payload: this.payload,
97
+ };
98
+ this.ngvCloseEvent.emit(emitEvent);
99
+ }
100
+ this.shown = false;
101
+ window.setTimeout(() => {
102
+ if (this._previous)
103
+ this._previous.focus();
104
+ this._previous = undefined;
105
+ });
106
+ }
107
+ focusTrap(event) {
108
+ if (event.key !== 'Tab')
109
+ return;
110
+ if (event.shiftKey) {
111
+ // shift + tab
112
+ if (this._lastFocusable &&
113
+ document.activeElement === this._firstFocusable) {
114
+ this._lastFocusable.focus();
115
+ event.preventDefault();
116
+ }
117
+ }
118
+ else {
119
+ // tab
120
+ if (this._firstFocusable &&
121
+ document.activeElement === this._lastFocusable) {
122
+ this._firstFocusable.focus();
123
+ event.preventDefault();
124
+ }
125
+ }
126
+ }
127
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: NgvDialogComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
128
+ 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: { ngvCloseEvent: "ngvCloseEvent", ngvPositiveEvent: "ngvPositiveEvent", ngvNeutralEvent: "ngvNeutralEvent", ngvNegativeEvent: "ngvNegativeEvent" }, 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"] }] }); }
129
+ }
130
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: NgvDialogComponent, decorators: [{
131
+ type: Component,
132
+ args: [{ selector: 'nggv-dialog', exportAs: 'dialog', 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"] }]
133
+ }], propDecorators: { dialogRef: [{
134
+ type: ViewChild,
135
+ args: ['dialog']
136
+ }], thook: [{
137
+ type: HostBinding,
138
+ args: ['attr.data-thook']
139
+ }, {
140
+ type: Input
141
+ }], baseClass: [{
142
+ type: HostBinding,
143
+ args: ['class.sdv-modal-dialog']
144
+ }], shown: [{
145
+ type: HostBinding,
146
+ args: ['class.-active']
147
+ }, {
148
+ type: Input
149
+ }], ariaHidden: [{
150
+ type: HostBinding,
151
+ args: ['attr.aria-hidden']
152
+ }], initiallyShown: [{
153
+ type: Input
154
+ }], heading: [{
155
+ type: Input
156
+ }], title: [{
157
+ type: Input
158
+ }], content: [{
159
+ type: Input
160
+ }], autoClose: [{
161
+ type: Input
162
+ }], payload: [{
163
+ type: Input
164
+ }], dialogTitleId: [{
165
+ type: Input
166
+ }], dialogBodyId: [{
167
+ type: Input
168
+ }], closeModalOnEscape: [{
169
+ type: Input
170
+ }], buttons: [{
171
+ type: Input
172
+ }], ngvCloseEvent: [{
173
+ type: Output
174
+ }], ngvPositiveEvent: [{
175
+ type: Output
176
+ }], ngvNeutralEvent: [{
177
+ type: Output
178
+ }], ngvNegativeEvent: [{
179
+ type: Output
180
+ }], close: [{
181
+ type: HostListener,
182
+ args: ['click', ['$event', '"host"']]
183
+ }, {
184
+ type: HostListener,
185
+ args: ['document:keydown.escape', ['$event']]
186
+ }], focusTrap: [{
187
+ type: HostListener,
188
+ args: ['keydown', ['$event']]
189
+ }] } });
190
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGlhbG9nLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvYW5ndWxhci9zcmMvdi1hbmd1bGFyL21vZGFsL2RpYWxvZy9kaWFsb2cuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9hbmd1bGFyL3NyYy92LWFuZ3VsYXIvbW9kYWwvZGlhbG9nL2RpYWxvZy5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsU0FBUyxFQUVULFlBQVksRUFDWixXQUFXLEVBQ1gsWUFBWSxFQUNaLEtBQUssRUFFTCxNQUFNLEVBQ04sU0FBUyxHQUNWLE1BQU0sZUFBZSxDQUFBOzs7QUFldEIsTUFBTSxPQUFPLGtCQUFrQjtJQU4vQjtRQVNFLG9GQUFvRjtRQUMzQyxVQUFLLEdBQUcsUUFBUSxDQUFBO1FBQ3pELGdCQUFnQjtRQUN1QixjQUFTLEdBQUcsSUFBSSxDQUFBO1FBQ3ZELG9FQUFvRTtRQUM3QixVQUFLLEdBQUcsS0FBSyxDQUFBO1FBS3BELDBEQUEwRDtRQUNqRCxtQkFBYyxHQUFHLEtBQUssQ0FBQTtRQUcvQjs7O1dBR0c7UUFDTSxVQUFLLEdBQUcsV0FBVyxDQUFBO1FBRzVCLGdEQUFnRDtRQUN2QyxjQUFTLEdBQUcsSUFBSSxDQUFBO1FBQ3pCLDRGQUE0RjtRQUNuRixZQUFPLEdBQVEsRUFBRSxDQUFBO1FBSTFCLHlHQUF5RztRQUNoRyx1QkFBa0IsR0FBRyxJQUFJLENBQUE7UUFPbEMsbUJBQW1CO1FBQ25CLHNCQUFzQjtRQUVaLGtCQUFhLEdBQUcsSUFBSSxZQUFZLEVBQWUsQ0FBQTtRQUMvQyxxQkFBZ0IsR0FBRyxJQUFJLFlBQVksRUFBZSxDQUFBO1FBQ2xELG9CQUFlLEdBQUcsSUFBSSxZQUFZLEVBQWUsQ0FBQTtRQUNqRCxxQkFBZ0IsR0FBRyxJQUFJLFlBQVksRUFBZSxDQUFBO0tBbUc3RDtJQXZJQyxnQkFBZ0I7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QUMsd0JBQXdCO2dCQUVFLEtBQUs7c0JBQTNDLFdBQVc7dUJBQUMsZUFBZTs7c0JBQUcsS0FBSztnQkFFQyxVQUFVO3NCQUE5QyxXQUFXO3VCQUFDLGtCQUFrQjtnQkFJdEIsY0FBYztzQkFBdEIsS0FBSztnQkFFRyxPQUFPO3NCQUFmLEtBQUs7Z0JBS0csS0FBSztzQkFBYixLQUFLO2dCQUVHLE9BQU87c0JBQWYsS0FBSztnQkFFRyxTQUFTO3NCQUFqQixLQUFLO2dCQUVHLE9BQU87c0JBQWYsS0FBSztnQkFFRyxhQUFhO3NCQUFyQixLQUFLO2dCQUNHLFlBQVk7c0JBQXBCLEtBQUs7Z0JBRUcsa0JBQWtCO3NCQUExQixLQUFLO2dCQUlPLE9BQU87c0JBQW5CLEtBQUs7Z0JBTUksYUFBYTtzQkFBdEIsTUFBTTtnQkFDRyxnQkFBZ0I7c0JBQXpCLE1BQU07Z0JBQ0csZUFBZTtzQkFBeEIsTUFBTTtnQkFDRyxnQkFBZ0I7c0JBQXpCLE1BQU07Z0JBMERQLEtBQUs7c0JBRkosWUFBWTt1QkFBQyxPQUFPLEVBQUUsQ0FBQyxRQUFRLEVBQUUsUUFBUSxDQUFDOztzQkFDMUMsWUFBWTt1QkFBQyx5QkFBeUIsRUFBRSxDQUFDLFFBQVEsQ0FBQztnQkFvQm5ELFNBQVM7c0JBRFIsWUFBWTt1QkFBQyxTQUFTLEVBQUUsQ0FBQyxRQUFRLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBDb21wb25lbnQsXG4gIEVsZW1lbnRSZWYsXG4gIEV2ZW50RW1pdHRlcixcbiAgSG9zdEJpbmRpbmcsXG4gIEhvc3RMaXN0ZW5lcixcbiAgSW5wdXQsXG4gIE9uSW5pdCxcbiAgT3V0cHV0LFxuICBWaWV3Q2hpbGQsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnXG5cbmltcG9ydCB7IERpYWxvZ0J1dHRvbnMgfSBmcm9tICcuLi9tb2RhbC50eXBlcydcblxuZXhwb3J0IGludGVyZmFjZSBEaWFsb2dFdmVudDxUID0gYW55PiB7XG4gIG9yaWdpbmFsOiBFdmVudCB8IHVuZGVmaW5lZFxuICBwYXlsb2FkOiBUIHwgdW5kZWZpbmVkXG59XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ25nZ3YtZGlhbG9nJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2RpYWxvZy5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2RpYWxvZy5jb21wb25lbnQuc2NzcyddLFxuICBleHBvcnRBczogJ2RpYWxvZycsXG59KVxuZXhwb3J0IGNsYXNzIE5ndkRpYWxvZ0NvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gIEBWaWV3Q2hpbGQoJ2RpYWxvZycpIGRpYWxvZ1JlZjogRWxlbWVudFJlZiB8IHVuZGVmaW5lZFxuXG4gIC8qKiBTcGVjaWFsIHByb3BlcnR5IHVzZWQgZm9yIHNlbGVjdGluZyBET00gZWxlbWVudHMgZHVyaW5nIGF1dG9tYXRlZCBVSSB0ZXN0aW5nLiAqL1xuICBASG9zdEJpbmRpbmcoJ2F0dHIuZGF0YS10aG9vaycpIEBJbnB1dCgpIHRob29rID0gJ2RpYWxvZydcbiAgLyoqIEBpbnRlcm5hbCAqL1xuICBASG9zdEJpbmRpbmcoJ2NsYXNzLnNkdi1tb2RhbC1kaWFsb2cnKSBiYXNlQ2xhc3MgPSB0cnVlXG4gIC8qKiBAaW50ZXJuYWwgRGVmaW5lcyB0aGUgZGVmYXVsdCB2aXNpYmlsaXR5IHN0YXRlIG9mIHRoZSBkaWFsb2cuICovXG4gIEBIb3N0QmluZGluZygnY2xhc3MuLWFjdGl2ZScpIEBJbnB1dCgpIHNob3duID0gZmFsc2VcbiAgLyoqIEBpbnRlcm5hbCAqL1xuICBASG9zdEJpbmRpbmcoJ2F0dHIuYXJpYS1oaWRkZW4nKSBnZXQgYXJpYUhpZGRlbigpIHtcbiAgICByZXR1cm4gIXRoaXMuc2hvd25cbiAgfVxuICAvKiogRGVmaW5lcyB0aGUgZGVmYXVsdCB2aXNpYmlsaXR5IHN0YXRlIG9mIHRoZSBkaWFsb2cuICovXG4gIEBJbnB1dCgpIGluaXRpYWxseVNob3duID0gZmFsc2VcbiAgLyoqIFNldHMgbW9kYWwgaGVhZGluZy4gV2lsbCBiZSB0cmFuc2xhdGVkICh1c2luZyB0cmFuc2xvY28pIGlmIHRoZSBzdHJpbmcgbWF0Y2hlcyBhIGNtcyBrZXkuICovXG4gIEBJbnB1dCgpIGhlYWRpbmchOiBzdHJpbmdcbiAgLyoqXG4gICAqIFNldHMgbW9kYWwgdGl0bGUuIFdpbGwgYmUgdHJhbnNsYXRlZCAodXNpbmcgdHJhbnNsb2NvKSBpZiB0aGUgc3RyaW5nIG1hdGNoZXMgYSBjbXMga2V5LlxuICAgKiBAZGVwcmVjYXRlZCAtIHVzZSBoZWFkaW5nIGluc3RlYWQuXG4gICAqL1xuICBASW5wdXQoKSB0aXRsZSA9ICdBdHRlbnRpb24nXG4gIC8qKiBTZXRzIGNvbnRlbnQgYm9keSBhbmQgY2FuIGNvbnRhaW4gaHRtbCBjb2RlLiBUaGUgY29udGVudCBib2R5IGNhbiBhbHNvIGJlIHNldCBieSBuZXN0aW5nIGNoaWxkcmVuIHRvIHRoZSBkaWFsb2cgdGFnLiAqL1xuICBASW5wdXQoKSBjb250ZW50Pzogc3RyaW5nXG4gIC8qKiBEZWZpbmVzIGlmIGRpYWxvZyBzaG91bGQgY2xvc2Ugb24gYWN0aW9uLiAqL1xuICBASW5wdXQoKSBhdXRvQ2xvc2UgPSB0cnVlXG4gIC8qKiBBbiBhcnJheSBvZiBldmVudCBwYXlsb2FkcyB0aGF0IHdpbGwgYmUgYWRkZWQgdG8gZXZlcnkgY2xpY2sgY29udGV4dCBtZW51IGl0ZW0gY2xpY2suICovXG4gIEBJbnB1dCgpIHBheWxvYWQ6IGFueSA9IHt9XG5cbiAgQElucHV0KCkgZGlhbG9nVGl0bGVJZCE6IHN0cmluZ1xuICBASW5wdXQoKSBkaWFsb2dCb2R5SWQhOiBzdHJpbmdcbiAgLyoqIEl0IGdpdmVzIGFuIGFiaWxpdHkgZm9yIHBhcmVudCBjb21wb25lbnQgdG8gY29udHJvbCBpZiBtb2RhbCBzaG91bGQgYmUgY2xvc2VkIG9uIGVzYyBidXR0b24gY2xpY2suICovXG4gIEBJbnB1dCgpIGNsb3NlTW9kYWxPbkVzY2FwZSA9IHRydWVcblxuICBfYnV0dG9uczogRGlhbG9nQnV0dG9ucyB8IHVuZGVmaW5lZFxuICAvKiogQnV0dG9ucyBhcmUgZGVmaW5lZCBhcyBhIGtleS12YWx1ZSBwYWlyIHdoZXJlIGtleSBpcyBvbmUgb2YgXCJwb3NpdGl2ZXxuZXV0cmFsfG5lZ2F0aXZlXCIgYW5kIHZhbHVlIGlzIHRoZSBidXR0b24gbGFiZWwuICovXG4gIEBJbnB1dCgpIHNldCBidXR0b25zKGJ1dHRvbnM6IERpYWxvZ0J1dHRvbnMpIHtcbiAgICB0aGlzLl9idXR0b25zID0gYnV0dG9uc1xuICB9XG4gIC8vIC8qKiBAaW50ZXJuYWwgKi9cbiAgLy8gY2xvc2VJY29uID0gZmFUaW1lc1xuXG4gIEBPdXRwdXQoKSBuZ3ZDbG9zZUV2ZW50ID0gbmV3IEV2ZW50RW1pdHRlcjxEaWFsb2dFdmVudD4oKVxuICBAT3V0cHV0KCkgbmd2UG9zaXRpdmVFdmVudCA9IG5ldyBFdmVudEVtaXR0ZXI8RGlhbG9nRXZlbnQ+KClcbiAgQE91dHB1dCgpIG5ndk5ldXRyYWxFdmVudCA9IG5ldyBFdmVudEVtaXR0ZXI8RGlhbG9nRXZlbnQ+KClcbiAgQE91dHB1dCgpIG5ndk5lZ2F0aXZlRXZlbnQgPSBuZXcgRXZlbnRFbWl0dGVyPERpYWxvZ0V2ZW50PigpXG5cbiAgcHJvdGVjdGVkIF9wcmV2aW91czogSFRNTEVsZW1lbnQgfCB1bmRlZmluZWRcbiAgcHJvdGVjdGVkIF9maXJzdEZvY3VzYWJsZTogSFRNTEVsZW1lbnQgfCB1bmRlZmluZWRcbiAgcHJvdGVjdGVkIF9sYXN0Rm9jdXNhYmxlOiBIVE1MRWxlbWVudCB8IHVuZGVmaW5lZFxuXG4gIG5nT25Jbml0KCkge1xuICAgIHRoaXMuZGlhbG9nVGl0bGVJZCA9XG4gICAgICB0aGlzLmRpYWxvZ1RpdGxlSWQgPz8gJ3Nkdi1kaWFsb2ctdGl0bGUtJyArIHdpbmRvdy5uZ3Y/Lm5leHRJZCgpXG4gICAgdGhpcy5kaWFsb2dCb2R5SWQgPVxuICAgICAgdGhpcy5kaWFsb2dCb2R5SWQgPz8gJ3Nkdi1kaWFsb2ctYm9keS0nICsgd2luZG93Lm5ndj8ubmV4dElkKClcblxuICAgIHRoaXMuc2hvd24gPSB0aGlzLmluaXRpYWxseVNob3duXG4gICAgaWYgKHRoaXMuc2hvd24pIHRoaXMuX2xpbWl0Rm9jdXNhYmxlKClcbiAgfVxuXG4gIHB1YmxpYyBvbkFjdGlvbihldmVudDogRXZlbnQsIGFjdGlvbjogc3RyaW5nKSB7XG4gICAgZXZlbnQucHJldmVudERlZmF1bHQoKVxuICAgIGNvbnN0IGVtaXRFdmVudCA9IHtcbiAgICAgIG9yaWdpbmFsOiBldmVudCxcbiAgICAgIHBheWxvYWQ6IHRoaXMucGF5bG9hZCxcbiAgICB9XG4gICAgc3dpdGNoIChhY3Rpb24pIHtcbiAgICAgIGNhc2UgJ3Bvc2l0aXZlJzpcbiAgICAgICAgdGhpcy5uZ3ZQb3NpdGl2ZUV2ZW50LmVtaXQoZW1pdEV2ZW50KVxuICAgICAgICBicmVha1xuICAgICAgY2FzZSAnbmV1dHJhbCc6XG4gICAgICAgIHRoaXMubmd2TmV1dHJhbEV2ZW50LmVtaXQoZW1pdEV2ZW50KVxuICAgICAgICBicmVha1xuICAgICAgY2FzZSAnbmVnYXRpdmUnOlxuICAgICAgICB0aGlzLm5ndk5lZ2F0aXZlRXZlbnQuZW1pdChlbWl0RXZlbnQpXG4gICAgICAgIGJyZWFrXG4gICAgICAvLyBjYXNlICdjbG9zZScgaXMgaGFuZGxlZCBieSBpZi1zdGF0ZW1lbnQgYmVsb3cgd2l0aCBjYWxsIHRvIHRoaXMuY2xvc2UoKVxuICAgIH1cbiAgICBpZiAodGhpcy5hdXRvQ2xvc2UpIHRoaXMuY2xvc2UoZXZlbnQsICdhY3Rpb24nKVxuICB9XG5cbiAgb3BlbihvcGVuZXI/OiBIVE1MRWxlbWVudCkge1xuICAgIHRoaXMuc2hvd24gPSB0cnVlXG4gICAgdGhpcy5fcHJldmlvdXMgPSBvcGVuZXIgfHwgKGRvY3VtZW50LmFjdGl2ZUVsZW1lbnQgYXMgSFRNTEVsZW1lbnQpXG4gICAgdGhpcy5fbGltaXRGb2N1c2FibGUoKVxuICAgIHJldHVybiB0cnVlXG4gIH1cblxuICBwcm90ZWN0ZWQgX2xpbWl0Rm9jdXNhYmxlKCkge1xuICAgIHdpbmRvdy5zZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgIGlmICghdGhpcy5kaWFsb2dSZWYpIHJldHVyblxuICAgICAgY29uc3QgZm9jdXNhYmxlID0gdGhpcy5kaWFsb2dSZWYubmF0aXZlRWxlbWVudC5xdWVyeVNlbGVjdG9yQWxsKFxuICAgICAgICAnYnV0dG9uLCBbaHJlZl0sIGlucHV0LCBzZWxlY3QsIHRleHRhcmVhLCBbdGFiaW5kZXhdOm5vdChbdGFiaW5kZXg9XCItMVwiXSknLFxuICAgICAgKVxuICAgICAgdGhpcy5fZmlyc3RGb2N1c2FibGUgPSBmb2N1c2FibGVbMF1cbiAgICAgIHRoaXMuX2xhc3RGb2N1c2FibGUgPSBmb2N1c2FibGVbZm9jdXNhYmxlLmxlbmd0aCAtIDFdXG4gICAgICBpZiAodGhpcy5fbGFzdEZvY3VzYWJsZSkgdGhpcy5fbGFzdEZvY3VzYWJsZS5mb2N1cygpXG4gICAgfSlcbiAgfVxuXG4gIEBIb3N0TGlzdGVuZXIoJ2NsaWNrJywgWyckZXZlbnQnLCAnXCJob3N0XCInXSlcbiAgQEhvc3RMaXN0ZW5lcignZG9jdW1lbnQ6a2V5ZG93bi5lc2NhcGUnLCBbJyRldmVudCddKVxuICBjbG9zZShldmVudD86IEV2ZW50LCBpbml0aWF0b3I/OiBzdHJpbmcpIHtcbiAgICBpZiAoaW5pdGlhdG9yID09PSAnaG9zdCcgJiYgZXZlbnQgaW5zdGFuY2VvZiBNb3VzZUV2ZW50KSByZXR1cm5cbiAgICAvLyBwcmV2ZW50IG1vZGFsIGZyb20gY2xvc2luZyBvbiBlc2MgYnV0dG9uIGNsaWNrIHdoZW4gY2xvc2VNb2RhbE9uRXNjYXBlIGlzIHNldCB0byBmYWxzZVxuICAgIGlmICghdGhpcy5jbG9zZU1vZGFsT25Fc2NhcGUpIHJldHVyblxuICAgIGlmICh0aGlzLnNob3duKSB7XG4gICAgICBjb25zdCBlbWl0RXZlbnQgPSB7XG4gICAgICAgIG9yaWdpbmFsOiBldmVudCxcbiAgICAgICAgcGF5bG9hZDogdGhpcy5wYXlsb2FkLFxuICAgICAgfVxuICAgICAgdGhpcy5uZ3ZDbG9zZUV2ZW50LmVtaXQoZW1pdEV2ZW50KVxuICAgIH1cbiAgICB0aGlzLnNob3duID0gZmFsc2VcbiAgICB3aW5kb3cuc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICBpZiAodGhpcy5fcHJldmlvdXMpIHRoaXMuX3ByZXZpb3VzLmZvY3VzKClcbiAgICAgIHRoaXMuX3ByZXZpb3VzID0gdW5kZWZpbmVkXG4gICAgfSlcbiAgfVxuXG4gIEBIb3N0TGlzdGVuZXIoJ2tleWRvd24nLCBbJyRldmVudCddKVxuICBmb2N1c1RyYXAoZXZlbnQ6IEtleWJvYXJkRXZlbnQpIHtcbiAgICBpZiAoZXZlbnQua2V5ICE9PSAnVGFiJykgcmV0dXJuXG4gICAgaWYgKGV2ZW50LnNoaWZ0S2V5KSB7XG4gICAgICAvLyBzaGlmdCArIHRhYlxuICAgICAgaWYgKFxuICAgICAgICB0aGlzLl9sYXN0Rm9jdXNhYmxlICYmXG4gICAgICAgIGRvY3VtZW50LmFjdGl2ZUVsZW1lbnQgPT09IHRoaXMuX2ZpcnN0Rm9jdXNhYmxlXG4gICAgICApIHtcbiAgICAgICAgdGhpcy5fbGFzdEZvY3VzYWJsZS5mb2N1cygpXG4gICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KClcbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgLy8gdGFiXG4gICAgICBpZiAoXG4gICAgICAgIHRoaXMuX2ZpcnN0Rm9jdXNhYmxlICYmXG4gICAgICAgIGRvY3VtZW50LmFjdGl2ZUVsZW1lbnQgPT09IHRoaXMuX2xhc3RGb2N1c2FibGVcbiAgICAgICkge1xuICAgICAgICB0aGlzLl9maXJzdEZvY3VzYWJsZS5mb2N1cygpXG4gICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KClcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cbiIsIjxkaXZcbiAgY2xhc3M9XCJzZHYtbW9kYWwtZGlhbG9nX19jb250YWluZXJcIlxuICAqdHJhbnNsb2NvPVwibGV0IHRcIlxuICAjZGlhbG9nXG4gIHJvbGU9XCJkaWFsb2dcIlxuICBhcmlhLWRpYWxvZz1cInRydWVcIlxuICBbYXR0ci5hcmlhLWxhYmVsbGVkYnldPVwiZGlhbG9nVGl0bGVJZFwiXG4gIFthdHRyLmFyaWEtZGVzY3JpYmVkYnldPVwiZGlhbG9nQm9keUlkXCJcbj5cbiAgPGhlYWRlciBjbGFzcz1cInNkdi1tb2RhbC1kaWFsb2dfX2hlYWRpbmdcIj5cbiAgICA8aDMgW2F0dHIuaWRdPVwiZGlhbG9nVGl0bGVJZFwiPnt7IHQoaGVhZGluZyB8fCB0aXRsZSB8fCAnJykgfX08L2gzPlxuICAgIDxidXR0b25cbiAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgZGF0YS10aG9vaz1cImRpYWxvZy1jbG9zZVwiXG4gICAgICAoY2xpY2spPVwib25BY3Rpb24oJGV2ZW50LCAnY2xvc2UnKVwiXG4gICAgICAoa2V5ZG93bi5lbnRlcik9XCJvbkFjdGlvbigkZXZlbnQsICdjbG9zZScpXCJcbiAgICAgIGNsYXNzPVwiY2xvc2VcIlxuICAgID5cbiAgICAgIDxnZHMtaWNvbi1jcm9zcy1zbWFsbFxuICAgICAgICAqbmdnQ29yZUVsZW1lbnRcbiAgICAgICAgd2lkdGg9XCIyNFwiXG4gICAgICAgIGhlaWdodD1cIjI0XCJcbiAgICAgID48L2dkcy1pY29uLWNyb3NzLXNtYWxsPlxuICAgIDwvYnV0dG9uPlxuICA8L2hlYWRlcj5cbiAgPHNlY3Rpb24gY2xhc3M9XCJzZHYtbW9kYWwtZGlhbG9nX19ib2R5XCIgW2F0dHIuaWRdPVwiZGlhbG9nQm9keUlkXCI+XG4gICAgPGRpdiBbaW5uZXJIdG1sXT1cImNvbnRlbnRcIj48L2Rpdj5cbiAgICA8bmctY29udGVudD48L25nLWNvbnRlbnQ+XG4gIDwvc2VjdGlvbj5cbiAgPGZvb3RlciBjbGFzcz1cInNkdi1tb2RhbC1kaWFsb2dfX2FjdGlvbnNcIj5cbiAgICA8YnV0dG9uXG4gICAgICBjbGFzcz1cInNkdi1idXR0b24gc2R2LWJ1dHRvbi1kZWxldGVcIlxuICAgICAgdHlwZT1cInJlc2V0XCJcbiAgICAgIFthdHRyLmRhdGEtdGhvb2tdPVwiJ2RpYWxvZy0nICsgKF9idXR0b25zPy5uZWdhdGl2ZSB8fCAnbmVnYXRpdmUnKVwiXG4gICAgICAoY2xpY2spPVwib25BY3Rpb24oJGV2ZW50LCAnbmVnYXRpdmUnKVwiXG4gICAgICAoa2V5ZG93bi5lbnRlcik9XCJvbkFjdGlvbigkZXZlbnQsICduZWdhdGl2ZScpXCJcbiAgICAgICpuZ0lmPVwiX2J1dHRvbnMgJiYgX2J1dHRvbnMubmVnYXRpdmVcIlxuICAgID5cbiAgICAgIHt7IHQoX2J1dHRvbnMubmVnYXRpdmUpIH19XG4gICAgPC9idXR0b24+XG4gICAgPGJ1dHRvblxuICAgICAgY2xhc3M9XCJzZHYtYnV0dG9uIHNkdi1idXR0b24tc2Vjb25kYXJ5XCJcbiAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgW2F0dHIuZGF0YS10aG9va109XCInZGlhbG9nLScgKyAoX2J1dHRvbnM/Lm5ldXRyYWwgfHwgJ25ldXRyYWwnKVwiXG4gICAgICAoY2xpY2spPVwib25BY3Rpb24oJGV2ZW50LCAnbmV1dHJhbCcpXCJcbiAgICAgIChrZXlkb3duLmVudGVyKT1cIm9uQWN0aW9uKCRldmVudCwgJ25ldXRyYWwnKVwiXG4gICAgICAqbmdJZj1cIl9idXR0b25zICYmIF9idXR0b25zLm5ldXRyYWxcIlxuICAgID5cbiAgICAgIHt7IHQoX2J1dHRvbnMubmV1dHJhbCkgfX1cbiAgICA8L2J1dHRvbj5cbiAgICA8YnV0dG9uXG4gICAgICBjbGFzcz1cInNkdi1idXR0b25cIlxuICAgICAgdHlwZT1cInN1Ym1pdFwiXG4gICAgICBbYXR0ci5kYXRhLXRob29rXT1cIidkaWFsb2ctJyArIChfYnV0dG9ucz8ucG9zaXRpdmUgfHwgJ3Bvc2l0aXZlJylcIlxuICAgICAgKGNsaWNrKT1cIm9uQWN0aW9uKCRldmVudCwgJ3Bvc2l0aXZlJylcIlxuICAgICAgKGtleWRvd24uZW50ZXIpPVwib25BY3Rpb24oJGV2ZW50LCAncG9zaXRpdmUnKVwiXG4gICAgICAqbmdJZj1cIl9idXR0b25zICYmIF9idXR0b25zLnBvc2l0aXZlXCJcbiAgICA+XG4gICAgICB7eyB0KF9idXR0b25zLnBvc2l0aXZlKSB9fVxuICAgIDwvYnV0dG9uPlxuICA8L2Zvb3Rlcj5cbjwvZGl2PlxuXG48ZGl2IGNsYXNzPVwic2R2LW1vZGFsLWJhY2tkcm9wXCI+PC9kaXY+XG4iXX0=
@@ -0,0 +1,56 @@
1
+ import { Component, ElementRef, HostBinding, Input, ViewChild, } from '@angular/core';
2
+ import '@sebgroup/green-core/components/icon/icons/dot-grid-one-horizontal';
3
+ import { fromEvent } from 'rxjs';
4
+ import * as i0 from "@angular/core";
5
+ import * as i1 from "@angular/common";
6
+ export class NgvFoldOutComponent {
7
+ constructor() {
8
+ /** Special property used for selecting DOM elements during automated UI testing. */
9
+ this.thook = 'fold-out';
10
+ // /** @internal */
11
+ // faEllipsisH: IconDefinition = faEllipsisH
12
+ /** @internal */
13
+ this.shown = false;
14
+ // Empty constructor
15
+ }
16
+ ngOnDestroy() {
17
+ this.onClickSubscription?.unsubscribe();
18
+ }
19
+ /** Toggle display of the option list */
20
+ toggleVisibility(event, setVisibility) {
21
+ this.shown = setVisibility !== undefined ? setVisibility : !this.shown;
22
+ if (this.shown)
23
+ this.subscribeToOutsideClickEvent();
24
+ }
25
+ /**
26
+ * Closes the fold-out on click outside.
27
+ */
28
+ subscribeToOutsideClickEvent() {
29
+ this.onClickSubscription = fromEvent(document, 'click').subscribe({
30
+ next: (event) => {
31
+ if (this.shown &&
32
+ !this.inputRef?.nativeElement.contains(event.target)) {
33
+ this.toggleVisibility();
34
+ this.onClickSubscription?.unsubscribe();
35
+ }
36
+ },
37
+ });
38
+ }
39
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: NgvFoldOutComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
40
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: NgvFoldOutComponent, selector: "nggv-fold-out", inputs: { thook: "thook", alignOptions: "alignOptions" }, host: { properties: { "attr.data-thook": "this.thook" } }, viewQueries: [{ propertyName: "inputRef", first: true, predicate: ["foldout"], descendants: true, read: ElementRef }], ngImport: i0, template: "<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", styles: ["i.sg-icon{font-size:0;width:1rem;height:1rem;display:inline-block}i.sg-icon:before{content:\"\";display:inline-block;background:var(--color);width:100%;height:100%;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat}i.sg-icon.sg-icon-calendar:before{-webkit-mask-image:url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 448 512'%3E%3C!--! Font Awesome Pro 6.1.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license (Commercial License) Copyright 2022 Fonticons, Inc.--%3E%3Cpath d='M152 64h144V24c0-13.25 10.7-24 24-24s24 10.75 24 24v40h40c35.3 0 64 28.65 64 64v320c0 35.3-28.7 64-64 64H64c-35.35 0-64-28.7-64-64V128c0-35.35 28.65-64 64-64h40V24c0-13.25 10.7-24 24-24s24 10.75 24 24v40zM48 248h80v-56H48v56zm0 48v64h80v-64H48zm128 0v64h96v-64h-96zm144 0v64h80v-64h-80zm80-104h-80v56h80v-56zm0 216h-80v56h64c8.8 0 16-7.2 16-16v-40zm-128 0h-96v56h96v-56zm-144 0H48v40c0 8.8 7.16 16 16 16h64v-56zm144-216h-96v56h96v-56z '/%3E%3C/svg%3E\");mask-image:url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 448 512'%3E%3C!--! Font Awesome Pro 6.1.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license (Commercial License) Copyright 2022 Fonticons, Inc.--%3E%3Cpath d='M152 64h144V24c0-13.25 10.7-24 24-24s24 10.75 24 24v40h40c35.3 0 64 28.65 64 64v320c0 35.3-28.7 64-64 64H64c-35.35 0-64-28.7-64-64V128c0-35.35 28.65-64 64-64h40V24c0-13.25 10.7-24 24-24s24 10.75 24 24v40zM48 248h80v-56H48v56zm0 48v64h80v-64H48zm128 0v64h96v-64h-96zm144 0v64h80v-64h-80zm80-104h-80v56h80v-56zm0 216h-80v56h64c8.8 0 16-7.2 16-16v-40zm-128 0h-96v56h96v-56zm-144 0H48v40c0 8.8 7.16 16 16 16h64v-56zm144-216h-96v56h96v-56z '/%3E%3C/svg%3E\")}i.sg-icon.sg-icon-calendar-range:before{-webkit-mask-image:url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 448 512'%3E%3C!--! Font Awesome Pro 6.1.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license (Commercial License) Copyright 2022 Fonticons, Inc.--%3E%3Cpath d='M96 288c0-17.7 14.3-32 32-32s32 14.3 32 32-14.3 32-32 32-32-14.3-32-32zm224 64c17.7 0 32 14.3 32 32s-14.3 32-32 32-32-14.3-32-32 14.3-32 32-32zm-128-64c0-13.3 10.7-24 24-24h112c13.3 0 24 10.7 24 24s-10.7 24-24 24H216c-13.3 0-24-10.7-24-24zm40 72c13.3 0 24 10.7 24 24s-10.7 24-24 24H120c-13.3 0-24-10.7-24-24s10.7-24 24-24h112zM152 64h144V24c0-13.25 10.7-24 24-24s24 10.75 24 24v40h40c35.3 0 64 28.65 64 64v320c0 35.3-28.7 64-64 64H64c-35.35 0-64-28.7-64-64V128c0-35.35 28.65-64 64-64h40V24c0-13.25 10.7-24 24-24s24 10.75 24 24v40zM48 448c0 8.8 7.16 16 16 16h320c8.8 0 16-7.2 16-16V192H48v256z'/%3E%3C/svg%3E\");mask-image:url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 448 512'%3E%3C!--! Font Awesome Pro 6.1.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license (Commercial License) Copyright 2022 Fonticons, Inc.--%3E%3Cpath d='M96 288c0-17.7 14.3-32 32-32s32 14.3 32 32-14.3 32-32 32-32-14.3-32-32zm224 64c17.7 0 32 14.3 32 32s-14.3 32-32 32-32-14.3-32-32 14.3-32 32-32zm-128-64c0-13.3 10.7-24 24-24h112c13.3 0 24 10.7 24 24s-10.7 24-24 24H216c-13.3 0-24-10.7-24-24zm40 72c13.3 0 24 10.7 24 24s-10.7 24-24 24H120c-13.3 0-24-10.7-24-24s10.7-24 24-24h112zM152 64h144V24c0-13.25 10.7-24 24-24s24 10.75 24 24v40h40c35.3 0 64 28.65 64 64v320c0 35.3-28.7 64-64 64H64c-35.35 0-64-28.7-64-64V128c0-35.35 28.65-64 64-64h40V24c0-13.25 10.7-24 24-24s24 10.75 24 24v40zM48 448c0 8.8 7.16 16 16 16h320c8.8 0 16-7.2 16-16V192H48v256z'/%3E%3C/svg%3E\")}i.sg-icon.sg-icon-ellipsis:before{-webkit-mask-image:url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 448 512'%3E%3C!--! Font Awesome Pro 6.1.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license (Commercial License) Copyright 2022 Fonticons, Inc.--%3E%3Cpath d='M8 256a56 56 0 1 1 112 0A56 56 0 1 1 8 256zm160 0a56 56 0 1 1 112 0 56 56 0 1 1 -112 0zm216-56a56 56 0 1 1 0 112 56 56 0 1 1 0-112z'/%3E%3C/svg%3E\");mask-image:url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 448 512'%3E%3C!--! Font Awesome Pro 6.1.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license (Commercial License) Copyright 2022 Fonticons, Inc.--%3E%3Cpath d='M8 256a56 56 0 1 1 112 0A56 56 0 1 1 8 256zm160 0a56 56 0 1 1 112 0 56 56 0 1 1 -112 0zm216-56a56 56 0 1 1 0 112 56 56 0 1 1 0-112z'/%3E%3C/svg%3E\")}i.sg-icon.sg-icon-grip-vertical:before{-webkit-mask-image:url(\"data:image/svg+xml, %3Csvg height='1em' viewBox='0 0 320 512' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M40 352l48 0c22.1 0 40 17.9 40 40l0 48c0 22.1-17.9 40-40 40l-48 0c-22.1 0-40-17.9-40-40l0-48c0-22.1 17.9-40 40-40zm192 0l48 0c22.1 0 40 17.9 40 40l0 48c0 22.1-17.9 40-40 40l-48 0c-22.1 0-40-17.9-40-40l0-48c0-22.1 17.9-40 40-40zM40 320c-22.1 0-40-17.9-40-40l0-48c0-22.1 17.9-40 40-40l48 0c22.1 0 40 17.9 40 40l0 48c0 22.1-17.9 40-40 40l-48 0zM232 192l48 0c22.1 0 40 17.9 40 40l0 48c0 22.1-17.9 40-40 40l-48 0c-22.1 0-40-17.9-40-40l0-48c0-22.1 17.9-40 40-40zM40 160c-22.1 0-40-17.9-40-40L0 72C0 49.9 17.9 32 40 32l48 0c22.1 0 40 17.9 40 40l0 48c0 22.1-17.9 40-40 40l-48 0zM232 32l48 0c22.1 0 40 17.9 40 40l0 48c0 22.1-17.9 40-40 40l-48 0c-22.1 0-40-17.9-40-40l0-48c0-22.1 17.9-40 40-40z' /%3E%3C/svg%3E\");mask-image:url(\"data:image/svg+xml, %3Csvg height='1em' viewBox='0 0 320 512' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M40 352l48 0c22.1 0 40 17.9 40 40l0 48c0 22.1-17.9 40-40 40l-48 0c-22.1 0-40-17.9-40-40l0-48c0-22.1 17.9-40 40-40zm192 0l48 0c22.1 0 40 17.9 40 40l0 48c0 22.1-17.9 40-40 40l-48 0c-22.1 0-40-17.9-40-40l0-48c0-22.1 17.9-40 40-40zM40 320c-22.1 0-40-17.9-40-40l0-48c0-22.1 17.9-40 40-40l48 0c22.1 0 40 17.9 40 40l0 48c0 22.1-17.9 40-40 40l-48 0zM232 192l48 0c22.1 0 40 17.9 40 40l0 48c0 22.1-17.9 40-40 40l-48 0c-22.1 0-40-17.9-40-40l0-48c0-22.1 17.9-40 40-40zM40 160c-22.1 0-40-17.9-40-40L0 72C0 49.9 17.9 32 40 32l48 0c22.1 0 40 17.9 40 40l0 48c0 22.1-17.9 40-40 40l-48 0zM232 32l48 0c22.1 0 40 17.9 40 40l0 48c0 22.1-17.9 40-40 40l-48 0c-22.1 0-40-17.9-40-40l0-48c0-22.1 17.9-40 40-40z' /%3E%3C/svg%3E\")}i.sg-icon.sg-icon-next:before{background:none;border-bottom:2px solid;border-left:2px solid;content:\"\";display:block;height:12px;margin-left:-10px;margin-top:2px;transform:translate(75%) rotate(-135deg) scaleZ(-1);transition:transform .3s ease-in;width:12px}i.sg-icon.sg-icon-previous:before{background:none;border-bottom:2px solid;border-left:2px solid;content:\"\";display:block;height:12px;margin-left:-4px;margin-top:2px;transform:translate(75%) rotate(45deg) scaleZ(-1);transition:transform .3s ease-in;width:12px}i.sg-icon.sg-icon-ellipsis:before{margin-right:-2px}:host .flex-right{right:0}:host .fold-out-button{border:0;cursor:pointer;font-family:inherit;padding:0;padding:.75rem 1rem;border-radius:var(--sg-border-radius);border:solid var(--sg-border-width) var(--sg-border-color);font-weight:500;min-height:2.75rem;align-items:center;display:inline-flex;justify-content:center;background-color:transparent;border:.0625rem solid transparent;padding:.625rem;height:2.75rem;width:2.75rem;min-width:auto;--color: var(--gds-ref-pallet-base800);border-color:transparent;color:var(--gds-ref-pallet-base800);display:flex;gap:.5rem;line-height:.75;padding-inline:.4375rem;width:auto}:host .fold-out-button:focus:not(:focus-visible){box-shadow:none;outline:0}:host .fold-out-button:focus,:host .fold-out-button:focus-visible{outline-color:var(--gds-sys-color-focus-outline);outline-style:solid;outline-width:.125rem;outline-offset:.125rem}@media (max-width: 35.98em){:host .fold-out-button{min-width:100%}}@media screen and (-ms-high-contrast: active){:host .fold-out-button{border:2px solid currentcolor}}:host .fold-out-button.small{min-height:2rem;padding:.4375rem .75rem;line-height:1rem}:host .fold-out-button.large{min-height:4rem;padding:1rem 1.5rem;font-size:1.5rem;line-height:2rem}.form-group :host .fold-out-button{margin-top:-.625rem}:host .fold-out-button.small{height:2rem;width:2rem;padding:.4375rem;line-height:1.125rem}:host .fold-out-button svg{height:1rem;width:1rem}:host .fold-out-button path,:host .fold-out-button line,:host .fold-out-button circle,:host .fold-out-button rect,:host .fold-out-button ellipse,:host .fold-out-button polyline,:host .fold-out-button text{fill:var(--gds-ref-pallet-base800);stroke:var(--gds-ref-pallet-base800);transition:all .3s cubic-bezier(.23,1,.32,1)}:host .fold-out-button:hover,:host .fold-out-button.highlighted{background-color:#0000001a;border-color:transparent}:host .fold-out-button:active,:host .fold-out-button.highlighted:hover{background-color:#0003;border-color:transparent}:host .gds-fold-out__popover{background-clip:border-box;background:var(--sg-card-background);border:var(--sg-card-border);border-radius:var(--sg-card-border-radius);box-shadow:var(--sg-card-box-shadow);color:var(--sg-card-color);display:flex;flex-direction:column;padding:1rem;width:-moz-fit-content;width:fit-content;display:none;padding:0}:host .gds-fold-out__popover>header{align-items:center;display:flex;justify-content:space-between;margin-bottom:1rem;margin-block-end:1rem}:host .gds-fold-out__popover>header .close{margin:-.5rem -.5rem -.5rem .5rem}:host .gds-fold-out__popover>*:not(header,footer){flex:1 1 auto}:host .gds-fold-out__popover>footer{margin-top:.75rem}@media (min-width: 36em){:host .gds-fold-out__popover>footer{display:flex;justify-content:flex-end}}@media (max-width: 35.98em){:host .gds-fold-out__popover>footer button:not(.link)+button,:host .gds-fold-out__popover>footer button:not(.link)+.button,:host .gds-fold-out__popover>footer .button:not(.link)+button,:host .gds-fold-out__popover>footer .button:not(.link)+.button{margin-top:.75rem}}@media (min-width: 36em){:host .gds-fold-out__popover>footer button:not(.link)+button,:host .gds-fold-out__popover>footer button:not(.link)+.button,:host .gds-fold-out__popover>footer .button:not(.link)+button,:host .gds-fold-out__popover>footer .button:not(.link)+.button{margin-left:.75rem}}:host .gds-fold-out__popover-expanded{display:block}:host ::ng-deep .sdv-field-dropdown__options__label{padding:.75rem 1rem;line-height:1.25;cursor:pointer;display:flex;gap:.75rem;-webkit-user-select:none;user-select:none}:host ::ng-deep .sdv-field-dropdown__options__label:active{background-color:var(--grey-400)}:host ::ng-deep .sdv-field-dropdown__options__label:focus{outline-color:#000;outline-offset:-.25rem}:host ::ng-deep .sdv-field-dropdown__options__label.active.sg-highlighted,:host ::ng-deep .sdv-field-dropdown__options__label[aria-selected=true]{background:var(--grey-1000);color:#fff}:host ::ng-deep .sdv-field-dropdown__options__label:hover,:host ::ng-deep .sdv-field-dropdown__options__label:focus-visible{background-color:var(--grey-400)}:host ::ng-deep .sdv-field-dropdown__options__label:active{background-color:var(--grey-500)}:host ::ng-deep .sdv-field-dropdown__options__label:focus-visible{outline-color:#000;outline-offset:-.25rem}:host ::ng-deep .sdv-field-dropdown__options__label[aria-hidden=true]{display:none}:host ::ng-deep .sdv-field-dropdown__options__label[highlighted]{background:var(--grey-1000);color:#fff}\n"], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }] }); }
41
+ }
42
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: NgvFoldOutComponent, decorators: [{
43
+ type: Component,
44
+ args: [{ selector: 'nggv-fold-out', template: "<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", styles: ["i.sg-icon{font-size:0;width:1rem;height:1rem;display:inline-block}i.sg-icon:before{content:\"\";display:inline-block;background:var(--color);width:100%;height:100%;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat}i.sg-icon.sg-icon-calendar:before{-webkit-mask-image:url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 448 512'%3E%3C!--! Font Awesome Pro 6.1.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license (Commercial License) Copyright 2022 Fonticons, Inc.--%3E%3Cpath d='M152 64h144V24c0-13.25 10.7-24 24-24s24 10.75 24 24v40h40c35.3 0 64 28.65 64 64v320c0 35.3-28.7 64-64 64H64c-35.35 0-64-28.7-64-64V128c0-35.35 28.65-64 64-64h40V24c0-13.25 10.7-24 24-24s24 10.75 24 24v40zM48 248h80v-56H48v56zm0 48v64h80v-64H48zm128 0v64h96v-64h-96zm144 0v64h80v-64h-80zm80-104h-80v56h80v-56zm0 216h-80v56h64c8.8 0 16-7.2 16-16v-40zm-128 0h-96v56h96v-56zm-144 0H48v40c0 8.8 7.16 16 16 16h64v-56zm144-216h-96v56h96v-56z '/%3E%3C/svg%3E\");mask-image:url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 448 512'%3E%3C!--! Font Awesome Pro 6.1.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license (Commercial License) Copyright 2022 Fonticons, Inc.--%3E%3Cpath d='M152 64h144V24c0-13.25 10.7-24 24-24s24 10.75 24 24v40h40c35.3 0 64 28.65 64 64v320c0 35.3-28.7 64-64 64H64c-35.35 0-64-28.7-64-64V128c0-35.35 28.65-64 64-64h40V24c0-13.25 10.7-24 24-24s24 10.75 24 24v40zM48 248h80v-56H48v56zm0 48v64h80v-64H48zm128 0v64h96v-64h-96zm144 0v64h80v-64h-80zm80-104h-80v56h80v-56zm0 216h-80v56h64c8.8 0 16-7.2 16-16v-40zm-128 0h-96v56h96v-56zm-144 0H48v40c0 8.8 7.16 16 16 16h64v-56zm144-216h-96v56h96v-56z '/%3E%3C/svg%3E\")}i.sg-icon.sg-icon-calendar-range:before{-webkit-mask-image:url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 448 512'%3E%3C!--! Font Awesome Pro 6.1.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license (Commercial License) Copyright 2022 Fonticons, Inc.--%3E%3Cpath d='M96 288c0-17.7 14.3-32 32-32s32 14.3 32 32-14.3 32-32 32-32-14.3-32-32zm224 64c17.7 0 32 14.3 32 32s-14.3 32-32 32-32-14.3-32-32 14.3-32 32-32zm-128-64c0-13.3 10.7-24 24-24h112c13.3 0 24 10.7 24 24s-10.7 24-24 24H216c-13.3 0-24-10.7-24-24zm40 72c13.3 0 24 10.7 24 24s-10.7 24-24 24H120c-13.3 0-24-10.7-24-24s10.7-24 24-24h112zM152 64h144V24c0-13.25 10.7-24 24-24s24 10.75 24 24v40h40c35.3 0 64 28.65 64 64v320c0 35.3-28.7 64-64 64H64c-35.35 0-64-28.7-64-64V128c0-35.35 28.65-64 64-64h40V24c0-13.25 10.7-24 24-24s24 10.75 24 24v40zM48 448c0 8.8 7.16 16 16 16h320c8.8 0 16-7.2 16-16V192H48v256z'/%3E%3C/svg%3E\");mask-image:url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 448 512'%3E%3C!--! Font Awesome Pro 6.1.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license (Commercial License) Copyright 2022 Fonticons, Inc.--%3E%3Cpath d='M96 288c0-17.7 14.3-32 32-32s32 14.3 32 32-14.3 32-32 32-32-14.3-32-32zm224 64c17.7 0 32 14.3 32 32s-14.3 32-32 32-32-14.3-32-32 14.3-32 32-32zm-128-64c0-13.3 10.7-24 24-24h112c13.3 0 24 10.7 24 24s-10.7 24-24 24H216c-13.3 0-24-10.7-24-24zm40 72c13.3 0 24 10.7 24 24s-10.7 24-24 24H120c-13.3 0-24-10.7-24-24s10.7-24 24-24h112zM152 64h144V24c0-13.25 10.7-24 24-24s24 10.75 24 24v40h40c35.3 0 64 28.65 64 64v320c0 35.3-28.7 64-64 64H64c-35.35 0-64-28.7-64-64V128c0-35.35 28.65-64 64-64h40V24c0-13.25 10.7-24 24-24s24 10.75 24 24v40zM48 448c0 8.8 7.16 16 16 16h320c8.8 0 16-7.2 16-16V192H48v256z'/%3E%3C/svg%3E\")}i.sg-icon.sg-icon-ellipsis:before{-webkit-mask-image:url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 448 512'%3E%3C!--! Font Awesome Pro 6.1.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license (Commercial License) Copyright 2022 Fonticons, Inc.--%3E%3Cpath d='M8 256a56 56 0 1 1 112 0A56 56 0 1 1 8 256zm160 0a56 56 0 1 1 112 0 56 56 0 1 1 -112 0zm216-56a56 56 0 1 1 0 112 56 56 0 1 1 0-112z'/%3E%3C/svg%3E\");mask-image:url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 448 512'%3E%3C!--! Font Awesome Pro 6.1.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license (Commercial License) Copyright 2022 Fonticons, Inc.--%3E%3Cpath d='M8 256a56 56 0 1 1 112 0A56 56 0 1 1 8 256zm160 0a56 56 0 1 1 112 0 56 56 0 1 1 -112 0zm216-56a56 56 0 1 1 0 112 56 56 0 1 1 0-112z'/%3E%3C/svg%3E\")}i.sg-icon.sg-icon-grip-vertical:before{-webkit-mask-image:url(\"data:image/svg+xml, %3Csvg height='1em' viewBox='0 0 320 512' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M40 352l48 0c22.1 0 40 17.9 40 40l0 48c0 22.1-17.9 40-40 40l-48 0c-22.1 0-40-17.9-40-40l0-48c0-22.1 17.9-40 40-40zm192 0l48 0c22.1 0 40 17.9 40 40l0 48c0 22.1-17.9 40-40 40l-48 0c-22.1 0-40-17.9-40-40l0-48c0-22.1 17.9-40 40-40zM40 320c-22.1 0-40-17.9-40-40l0-48c0-22.1 17.9-40 40-40l48 0c22.1 0 40 17.9 40 40l0 48c0 22.1-17.9 40-40 40l-48 0zM232 192l48 0c22.1 0 40 17.9 40 40l0 48c0 22.1-17.9 40-40 40l-48 0c-22.1 0-40-17.9-40-40l0-48c0-22.1 17.9-40 40-40zM40 160c-22.1 0-40-17.9-40-40L0 72C0 49.9 17.9 32 40 32l48 0c22.1 0 40 17.9 40 40l0 48c0 22.1-17.9 40-40 40l-48 0zM232 32l48 0c22.1 0 40 17.9 40 40l0 48c0 22.1-17.9 40-40 40l-48 0c-22.1 0-40-17.9-40-40l0-48c0-22.1 17.9-40 40-40z' /%3E%3C/svg%3E\");mask-image:url(\"data:image/svg+xml, %3Csvg height='1em' viewBox='0 0 320 512' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M40 352l48 0c22.1 0 40 17.9 40 40l0 48c0 22.1-17.9 40-40 40l-48 0c-22.1 0-40-17.9-40-40l0-48c0-22.1 17.9-40 40-40zm192 0l48 0c22.1 0 40 17.9 40 40l0 48c0 22.1-17.9 40-40 40l-48 0c-22.1 0-40-17.9-40-40l0-48c0-22.1 17.9-40 40-40zM40 320c-22.1 0-40-17.9-40-40l0-48c0-22.1 17.9-40 40-40l48 0c22.1 0 40 17.9 40 40l0 48c0 22.1-17.9 40-40 40l-48 0zM232 192l48 0c22.1 0 40 17.9 40 40l0 48c0 22.1-17.9 40-40 40l-48 0c-22.1 0-40-17.9-40-40l0-48c0-22.1 17.9-40 40-40zM40 160c-22.1 0-40-17.9-40-40L0 72C0 49.9 17.9 32 40 32l48 0c22.1 0 40 17.9 40 40l0 48c0 22.1-17.9 40-40 40l-48 0zM232 32l48 0c22.1 0 40 17.9 40 40l0 48c0 22.1-17.9 40-40 40l-48 0c-22.1 0-40-17.9-40-40l0-48c0-22.1 17.9-40 40-40z' /%3E%3C/svg%3E\")}i.sg-icon.sg-icon-next:before{background:none;border-bottom:2px solid;border-left:2px solid;content:\"\";display:block;height:12px;margin-left:-10px;margin-top:2px;transform:translate(75%) rotate(-135deg) scaleZ(-1);transition:transform .3s ease-in;width:12px}i.sg-icon.sg-icon-previous:before{background:none;border-bottom:2px solid;border-left:2px solid;content:\"\";display:block;height:12px;margin-left:-4px;margin-top:2px;transform:translate(75%) rotate(45deg) scaleZ(-1);transition:transform .3s ease-in;width:12px}i.sg-icon.sg-icon-ellipsis:before{margin-right:-2px}:host .flex-right{right:0}:host .fold-out-button{border:0;cursor:pointer;font-family:inherit;padding:0;padding:.75rem 1rem;border-radius:var(--sg-border-radius);border:solid var(--sg-border-width) var(--sg-border-color);font-weight:500;min-height:2.75rem;align-items:center;display:inline-flex;justify-content:center;background-color:transparent;border:.0625rem solid transparent;padding:.625rem;height:2.75rem;width:2.75rem;min-width:auto;--color: var(--gds-ref-pallet-base800);border-color:transparent;color:var(--gds-ref-pallet-base800);display:flex;gap:.5rem;line-height:.75;padding-inline:.4375rem;width:auto}:host .fold-out-button:focus:not(:focus-visible){box-shadow:none;outline:0}:host .fold-out-button:focus,:host .fold-out-button:focus-visible{outline-color:var(--gds-sys-color-focus-outline);outline-style:solid;outline-width:.125rem;outline-offset:.125rem}@media (max-width: 35.98em){:host .fold-out-button{min-width:100%}}@media screen and (-ms-high-contrast: active){:host .fold-out-button{border:2px solid currentcolor}}:host .fold-out-button.small{min-height:2rem;padding:.4375rem .75rem;line-height:1rem}:host .fold-out-button.large{min-height:4rem;padding:1rem 1.5rem;font-size:1.5rem;line-height:2rem}.form-group :host .fold-out-button{margin-top:-.625rem}:host .fold-out-button.small{height:2rem;width:2rem;padding:.4375rem;line-height:1.125rem}:host .fold-out-button svg{height:1rem;width:1rem}:host .fold-out-button path,:host .fold-out-button line,:host .fold-out-button circle,:host .fold-out-button rect,:host .fold-out-button ellipse,:host .fold-out-button polyline,:host .fold-out-button text{fill:var(--gds-ref-pallet-base800);stroke:var(--gds-ref-pallet-base800);transition:all .3s cubic-bezier(.23,1,.32,1)}:host .fold-out-button:hover,:host .fold-out-button.highlighted{background-color:#0000001a;border-color:transparent}:host .fold-out-button:active,:host .fold-out-button.highlighted:hover{background-color:#0003;border-color:transparent}:host .gds-fold-out__popover{background-clip:border-box;background:var(--sg-card-background);border:var(--sg-card-border);border-radius:var(--sg-card-border-radius);box-shadow:var(--sg-card-box-shadow);color:var(--sg-card-color);display:flex;flex-direction:column;padding:1rem;width:-moz-fit-content;width:fit-content;display:none;padding:0}:host .gds-fold-out__popover>header{align-items:center;display:flex;justify-content:space-between;margin-bottom:1rem;margin-block-end:1rem}:host .gds-fold-out__popover>header .close{margin:-.5rem -.5rem -.5rem .5rem}:host .gds-fold-out__popover>*:not(header,footer){flex:1 1 auto}:host .gds-fold-out__popover>footer{margin-top:.75rem}@media (min-width: 36em){:host .gds-fold-out__popover>footer{display:flex;justify-content:flex-end}}@media (max-width: 35.98em){:host .gds-fold-out__popover>footer button:not(.link)+button,:host .gds-fold-out__popover>footer button:not(.link)+.button,:host .gds-fold-out__popover>footer .button:not(.link)+button,:host .gds-fold-out__popover>footer .button:not(.link)+.button{margin-top:.75rem}}@media (min-width: 36em){:host .gds-fold-out__popover>footer button:not(.link)+button,:host .gds-fold-out__popover>footer button:not(.link)+.button,:host .gds-fold-out__popover>footer .button:not(.link)+button,:host .gds-fold-out__popover>footer .button:not(.link)+.button{margin-left:.75rem}}:host .gds-fold-out__popover-expanded{display:block}:host ::ng-deep .sdv-field-dropdown__options__label{padding:.75rem 1rem;line-height:1.25;cursor:pointer;display:flex;gap:.75rem;-webkit-user-select:none;user-select:none}:host ::ng-deep .sdv-field-dropdown__options__label:active{background-color:var(--grey-400)}:host ::ng-deep .sdv-field-dropdown__options__label:focus{outline-color:#000;outline-offset:-.25rem}:host ::ng-deep .sdv-field-dropdown__options__label.active.sg-highlighted,:host ::ng-deep .sdv-field-dropdown__options__label[aria-selected=true]{background:var(--grey-1000);color:#fff}:host ::ng-deep .sdv-field-dropdown__options__label:hover,:host ::ng-deep .sdv-field-dropdown__options__label:focus-visible{background-color:var(--grey-400)}:host ::ng-deep .sdv-field-dropdown__options__label:active{background-color:var(--grey-500)}:host ::ng-deep .sdv-field-dropdown__options__label:focus-visible{outline-color:#000;outline-offset:-.25rem}:host ::ng-deep .sdv-field-dropdown__options__label[aria-hidden=true]{display:none}:host ::ng-deep .sdv-field-dropdown__options__label[highlighted]{background:var(--grey-1000);color:#fff}\n"] }]
45
+ }], ctorParameters: function () { return []; }, propDecorators: { thook: [{
46
+ type: HostBinding,
47
+ args: ['attr.data-thook']
48
+ }, {
49
+ type: Input
50
+ }], inputRef: [{
51
+ type: ViewChild,
52
+ args: ['foldout', { read: ElementRef }]
53
+ }], alignOptions: [{
54
+ type: Input
55
+ }] } });
56
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9sZC1vdXQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9hbmd1bGFyL3NyYy92LWFuZ3VsYXIvbW9kYWwvZm9sZC1vdXQvZm9sZC1vdXQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9hbmd1bGFyL3NyYy92LWFuZ3VsYXIvbW9kYWwvZm9sZC1vdXQvZm9sZC1vdXQuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUVMLFNBQVMsRUFDVCxVQUFVLEVBQ1YsV0FBVyxFQUVYLEtBQUssRUFFTCxTQUFTLEdBQ1YsTUFBTSxlQUFlLENBQUE7QUFDdEIsT0FBTyxvRUFBb0UsQ0FBQTtBQUMzRSxPQUFPLEVBQUUsU0FBUyxFQUFnQixNQUFNLE1BQU0sQ0FBQTs7O0FBUTlDLE1BQU0sT0FBTyxtQkFBbUI7SUFlOUI7UUFkQSxvRkFBb0Y7UUFDM0MsVUFBSyxHQUFHLFVBQVUsQ0FBQTtRQVEzRCxtQkFBbUI7UUFDbkIsNENBQTRDO1FBQzVDLGdCQUFnQjtRQUNoQixVQUFLLEdBQUcsS0FBSyxDQUFBO1FBR1gsb0JBQW9CO0lBQ3RCLENBQUM7SUFFRCxXQUFXO1FBQ1QsSUFBSSxDQUFDLG1CQUFtQixFQUFFLFdBQVcsRUFBRSxDQUFBO0lBQ3pDLENBQUM7SUFFRCx3Q0FBd0M7SUFDeEMsZ0JBQWdCLENBQUMsS0FBYSxFQUFFLGFBQXVCO1FBQ3JELElBQUksQ0FBQyxLQUFLLEdBQUcsYUFBYSxLQUFLLFNBQVMsQ0FBQyxDQUFDLENBQUMsYUFBYSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUE7UUFDdEUsSUFBSSxJQUFJLENBQUMsS0FBSztZQUFFLElBQUksQ0FBQyw0QkFBNEIsRUFBRSxDQUFBO0lBQ3JELENBQUM7SUFFRDs7T0FFRztJQUNILDRCQUE0QjtRQUMxQixJQUFJLENBQUMsbUJBQW1CLEdBQUcsU0FBUyxDQUFDLFFBQVEsRUFBRSxPQUFPLENBQUMsQ0FBQyxTQUFTLENBQUM7WUFDaEUsSUFBSSxFQUFFLENBQUMsS0FBWSxFQUFFLEVBQUU7Z0JBQ3JCLElBQ0UsSUFBSSxDQUFDLEtBQUs7b0JBQ1YsQ0FBQyxJQUFJLENBQUMsUUFBUSxFQUFFLGFBQWEsQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxFQUNwRDtvQkFDQSxJQUFJLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQTtvQkFDdkIsSUFBSSxDQUFDLG1CQUFtQixFQUFFLFdBQVcsRUFBRSxDQUFBO2lCQUN4QztZQUNILENBQUM7U0FDRixDQUFDLENBQUE7SUFDSixDQUFDOytHQTVDVSxtQkFBbUI7bUdBQW5CLG1CQUFtQiwwUEFJQSxVQUFVLDZCQ3ZCMUMsK2xCQXNCQTs7NEZESGEsbUJBQW1CO2tCQUwvQixTQUFTOytCQUNFLGVBQWU7MEVBTWdCLEtBQUs7c0JBQTdDLFdBQVc7dUJBQUMsaUJBQWlCOztzQkFBRyxLQUFLO2dCQUVNLFFBQVE7c0JBQW5ELFNBQVM7dUJBQUMsU0FBUyxFQUFFLEVBQUUsSUFBSSxFQUFFLFVBQVUsRUFBRTtnQkFHakMsWUFBWTtzQkFBcEIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIEFmdGVyVmlld0luaXQsXG4gIENvbXBvbmVudCxcbiAgRWxlbWVudFJlZixcbiAgSG9zdEJpbmRpbmcsXG4gIEhvc3RMaXN0ZW5lcixcbiAgSW5wdXQsXG4gIE9uRGVzdHJveSxcbiAgVmlld0NoaWxkLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJ1xuaW1wb3J0ICdAc2ViZ3JvdXAvZ3JlZW4tY29yZS9jb21wb25lbnRzL2ljb24vaWNvbnMvZG90LWdyaWQtb25lLWhvcml6b250YWwnXG5pbXBvcnQgeyBmcm9tRXZlbnQsIFN1YnNjcmlwdGlvbiB9IGZyb20gJ3J4anMnXG5pbXBvcnQgeyBmaWx0ZXIsIG1hcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJ1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICduZ2d2LWZvbGQtb3V0JyxcbiAgdGVtcGxhdGVVcmw6ICcuL2ZvbGQtb3V0LmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vZm9sZC1vdXQuY29tcG9uZW50LnNjc3MnXSxcbn0pXG5leHBvcnQgY2xhc3MgTmd2Rm9sZE91dENvbXBvbmVudCBpbXBsZW1lbnRzIE9uRGVzdHJveSB7XG4gIC8qKiBTcGVjaWFsIHByb3BlcnR5IHVzZWQgZm9yIHNlbGVjdGluZyBET00gZWxlbWVudHMgZHVyaW5nIGF1dG9tYXRlZCBVSSB0ZXN0aW5nLiAqL1xuICBASG9zdEJpbmRpbmcoJ2F0dHIuZGF0YS10aG9vaycpIEBJbnB1dCgpIHRob29rID0gJ2ZvbGQtb3V0J1xuXG4gIEBWaWV3Q2hpbGQoJ2ZvbGRvdXQnLCB7IHJlYWQ6IEVsZW1lbnRSZWYgfSkgaW5wdXRSZWY/OiBFbGVtZW50UmVmXG5cbiAgLyoqIEFsaWducyB0aGUgZHJvcGRvd24gbGlzdCB3aXRoIHRoZSBidXR0b25zIHJpZ2h0IG9yIGxlZnQgc2lkZSAqL1xuICBASW5wdXQoKSBhbGlnbk9wdGlvbnMhOiAnbGVmdCcgfCAncmlnaHQnXG5cbiAgb25DbGlja1N1YnNjcmlwdGlvbjogU3Vic2NyaXB0aW9uIHwgdW5kZWZpbmVkXG4gIC8vIC8qKiBAaW50ZXJuYWwgKi9cbiAgLy8gZmFFbGxpcHNpc0g6IEljb25EZWZpbml0aW9uID0gZmFFbGxpcHNpc0hcbiAgLyoqIEBpbnRlcm5hbCAqL1xuICBzaG93biA9IGZhbHNlXG5cbiAgY29uc3RydWN0b3IoKSB7XG4gICAgLy8gRW1wdHkgY29uc3RydWN0b3JcbiAgfVxuXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIHRoaXMub25DbGlja1N1YnNjcmlwdGlvbj8udW5zdWJzY3JpYmUoKVxuICB9XG5cbiAgLyoqIFRvZ2dsZSBkaXNwbGF5IG9mIHRoZSBvcHRpb24gbGlzdCAqL1xuICB0b2dnbGVWaXNpYmlsaXR5KGV2ZW50PzogRXZlbnQsIHNldFZpc2liaWxpdHk/OiBib29sZWFuKTogdm9pZCB7XG4gICAgdGhpcy5zaG93biA9IHNldFZpc2liaWxpdHkgIT09IHVuZGVmaW5lZCA/IHNldFZpc2liaWxpdHkgOiAhdGhpcy5zaG93blxuICAgIGlmICh0aGlzLnNob3duKSB0aGlzLnN1YnNjcmliZVRvT3V0c2lkZUNsaWNrRXZlbnQoKVxuICB9XG5cbiAgLyoqXG4gICAqIENsb3NlcyB0aGUgZm9sZC1vdXQgb24gY2xpY2sgb3V0c2lkZS5cbiAgICovXG4gIHN1YnNjcmliZVRvT3V0c2lkZUNsaWNrRXZlbnQoKTogdm9pZCB7XG4gICAgdGhpcy5vbkNsaWNrU3Vic2NyaXB0aW9uID0gZnJvbUV2ZW50KGRvY3VtZW50LCAnY2xpY2snKS5zdWJzY3JpYmUoe1xuICAgICAgbmV4dDogKGV2ZW50OiBFdmVudCkgPT4ge1xuICAgICAgICBpZiAoXG4gICAgICAgICAgdGhpcy5zaG93biAmJlxuICAgICAgICAgICF0aGlzLmlucHV0UmVmPy5uYXRpdmVFbGVtZW50LmNvbnRhaW5zKGV2ZW50LnRhcmdldClcbiAgICAgICAgKSB7XG4gICAgICAgICAgdGhpcy50b2dnbGVWaXNpYmlsaXR5KClcbiAgICAgICAgICB0aGlzLm9uQ2xpY2tTdWJzY3JpcHRpb24/LnVuc3Vic2NyaWJlKClcbiAgICAgICAgfVxuICAgICAgfSxcbiAgICB9KVxuICB9XG59XG4iLCI8ZGl2ICNmb2xkb3V0IGNsYXNzPVwic2R2LWZpZWxkLWRyb3Bkb3duXCI+XG4gIDxidXR0b25cbiAgICBkYXRhLXRob29rPVwiZm9sZC1vdXQtdG9nZ2xlXCJcbiAgICBjbGFzcz1cInNkdi1idXR0b24gZm9sZC1vdXQtYnV0dG9uXCJcbiAgICAoY2xpY2spPVwidG9nZ2xlVmlzaWJpbGl0eSgkZXZlbnQpXCJcbiAgPlxuICAgIDxnZHMtaWNvbi1kb3QtZ3JpZC1vbmUtaG9yaXpvbnRhbFxuICAgICAgd2lkdGg9XCIyNFwiXG4gICAgICBoZWlnaHQ9XCIyNFwiXG4gICAgICAqbmdnQ29yZUVsZW1lbnRcbiAgICA+PC9nZHMtaWNvbi1kb3QtZ3JpZC1vbmUtaG9yaXpvbnRhbD5cbiAgPC9idXR0b24+XG5cbiAgPGRpdlxuICAgIGNsYXNzPVwiZ2RzLWZvbGQtb3V0X19wb3BvdmVyXCJcbiAgICBbbmdDbGFzc109XCJ7ICdmbGV4LXJpZ2h0JzogYWxpZ25PcHRpb25zID09PSAncmlnaHQnIH1cIlxuICAgIFtjbGFzcy5nZHMtZm9sZC1vdXRfX3BvcG92ZXItZXhwYW5kZWRdPVwic2hvd25cIlxuICAgIChjbGljayk9XCJ0b2dnbGVWaXNpYmlsaXR5KCRldmVudCwgZmFsc2UpXCJcbiAgPlxuICAgIDxuZy1jb250ZW50PjwvbmctY29udGVudD5cbiAgPC9kaXY+XG48L2Rpdj5cbiJdfQ==