@indice/ng-components 0.2.110 → 0.2.113

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 (150) hide show
  1. package/esm2020/indice-ng-components.mjs +5 -0
  2. package/esm2020/lib/controls/avatar-initials/avatar-initials.component.mjs +48 -0
  3. package/esm2020/lib/controls/collapsible-panel/collapsible-panel.component.mjs +20 -0
  4. package/esm2020/lib/controls/date-picker/date-picker.component.mjs +260 -0
  5. package/esm2020/lib/controls/drop-down-menu/drop-down-menu.component.mjs +68 -0
  6. package/esm2020/lib/controls/kpi-tile/kpi-tile.component.mjs +36 -0
  7. package/esm2020/lib/controls/list-view/list-column.component.mjs +25 -0
  8. package/esm2020/lib/controls/list-view/list-details-section.component.mjs +17 -0
  9. package/esm2020/lib/controls/list-view/list-tile.component.mjs +17 -0
  10. package/esm2020/lib/controls/list-view/list-view-empty-state.component.mjs +29 -0
  11. package/esm2020/lib/controls/list-view/list-view.component.mjs +184 -0
  12. package/esm2020/lib/controls/pager/pager.component.mjs +130 -0
  13. package/esm2020/lib/controls/side-pane/side-pane.component.mjs +72 -0
  14. package/esm2020/lib/controls/skeleton-loader/skeleton-loader.component.mjs +25 -0
  15. package/esm2020/lib/controls/toaster/toaster-container.component.mjs +28 -0
  16. package/esm2020/lib/controls/toaster/toaster.component.mjs +31 -0
  17. package/esm2020/lib/controls/toggle/toggle.component.mjs +64 -0
  18. package/esm2020/lib/directives/click-outside.directive.mjs +189 -0
  19. package/esm2020/lib/directives/dynamic-component-host.directive.mjs +17 -0
  20. package/esm2020/lib/helpers/base-list.component.mjs +181 -0
  21. package/{esm2015/lib/icons.js → esm2020/lib/icons.mjs} +0 -0
  22. package/esm2020/lib/layouts/shell/shell-footer/shell-footer.component.mjs +19 -0
  23. package/esm2020/lib/layouts/shell/shell-header/shell-header.component.mjs +113 -0
  24. package/esm2020/lib/layouts/shell/shell-layout/shell-layout.component.mjs +101 -0
  25. package/esm2020/lib/layouts/views/form-layout/form-layout.component.mjs +80 -0
  26. package/esm2020/lib/layouts/views/model-view-layout/model-view-layout.component.mjs +51 -0
  27. package/esm2020/lib/layouts/views/side-view-layout/side-view-layout.component.mjs +98 -0
  28. package/esm2020/lib/layouts/views/view-layout/view-layout.component.mjs +104 -0
  29. package/esm2020/lib/ng-components.module.mjs +215 -0
  30. package/esm2020/lib/pages/auth/auth-callback/auth-callback.component.mjs +30 -0
  31. package/esm2020/lib/pages/auth/auth-renew/auth-renew.component.mjs +31 -0
  32. package/esm2020/lib/pages/auth/logged-out/logged-out.component.mjs +28 -0
  33. package/esm2020/lib/pages/http-status/error/error.component.mjs +17 -0
  34. package/esm2020/lib/pages/http-status/page-not-found/page-not-found.component.mjs +15 -0
  35. package/esm2020/lib/pages/http-status/unauthorized/unauthorized.component.mjs +14 -0
  36. package/esm2020/lib/pipes/address.pipe.mjs +21 -0
  37. package/esm2020/lib/pipes/duration-format.pipe.mjs +64 -0
  38. package/{esm2015/lib/services/component-loader/component-loader-options.class.js → esm2020/lib/services/component-loader/component-loader-options.class.mjs} +0 -0
  39. package/esm2020/lib/services/component-loader/component-loader.class.mjs +188 -0
  40. package/esm2020/lib/services/component-loader/component-loader.factory.mjs +32 -0
  41. package/{esm2015/lib/services/component-loader/content-ref.class.js → esm2020/lib/services/component-loader/content-ref.class.mjs} +0 -0
  42. package/esm2020/lib/services/modal-service/modal-backdrop-component.mjs +44 -0
  43. package/esm2020/lib/services/modal-service/modal-container-component.mjs +126 -0
  44. package/esm2020/lib/services/modal-service/modal-options.class.mjs +34 -0
  45. package/esm2020/lib/services/modal-service/modal-service.mjs +219 -0
  46. package/{esm2015/lib/services/modal-service/modal-styles.class.js → esm2020/lib/services/modal-service/modal-styles.class.mjs} +0 -0
  47. package/esm2020/lib/services/modal-service/modal.class.mjs +27 -0
  48. package/esm2020/lib/services/toaster.service.mjs +24 -0
  49. package/{esm2015/lib/tokens.js → esm2020/lib/tokens.mjs} +0 -0
  50. package/{esm2015/lib/types.js → esm2020/lib/types.mjs} +0 -0
  51. package/esm2020/public-api.mjs +54 -0
  52. package/fesm2015/indice-ng-components.mjs +3129 -0
  53. package/fesm2015/indice-ng-components.mjs.map +1 -0
  54. package/fesm2020/indice-ng-components.mjs +3088 -0
  55. package/fesm2020/indice-ng-components.mjs.map +1 -0
  56. package/indice-ng-components.d.ts +1 -2
  57. package/lib/controls/avatar-initials/avatar-initials.component.d.ts +3 -0
  58. package/lib/controls/collapsible-panel/collapsible-panel.component.d.ts +3 -0
  59. package/lib/controls/date-picker/date-picker.component.d.ts +3 -0
  60. package/lib/controls/drop-down-menu/drop-down-menu.component.d.ts +3 -0
  61. package/lib/controls/kpi-tile/kpi-tile.component.d.ts +3 -0
  62. package/lib/controls/list-view/list-column.component.d.ts +3 -0
  63. package/lib/controls/list-view/list-details-section.component.d.ts +3 -0
  64. package/lib/controls/list-view/list-tile.component.d.ts +3 -0
  65. package/lib/controls/list-view/list-view-empty-state.component.d.ts +3 -0
  66. package/lib/controls/list-view/list-view.component.d.ts +3 -0
  67. package/lib/controls/pager/pager.component.d.ts +3 -0
  68. package/lib/controls/side-pane/side-pane.component.d.ts +3 -0
  69. package/lib/controls/skeleton-loader/skeleton-loader.component.d.ts +3 -0
  70. package/lib/controls/toaster/toaster-container.component.d.ts +3 -0
  71. package/lib/controls/toaster/toaster.component.d.ts +3 -0
  72. package/lib/controls/toggle/toggle.component.d.ts +3 -0
  73. package/lib/directives/click-outside.directive.d.ts +3 -0
  74. package/lib/directives/dynamic-component-host.directive.d.ts +3 -0
  75. package/lib/helpers/base-list.component.d.ts +3 -0
  76. package/lib/layouts/shell/shell-footer/shell-footer.component.d.ts +3 -0
  77. package/lib/layouts/shell/shell-header/shell-header.component.d.ts +3 -0
  78. package/lib/layouts/shell/shell-layout/shell-layout.component.d.ts +3 -0
  79. package/lib/layouts/views/form-layout/form-layout.component.d.ts +3 -0
  80. package/lib/layouts/views/model-view-layout/model-view-layout.component.d.ts +3 -0
  81. package/lib/layouts/views/side-view-layout/side-view-layout.component.d.ts +3 -0
  82. package/lib/layouts/views/view-layout/view-layout.component.d.ts +3 -0
  83. package/lib/ng-components.module.d.ts +40 -0
  84. package/lib/pages/auth/auth-callback/auth-callback.component.d.ts +3 -0
  85. package/lib/pages/auth/auth-renew/auth-renew.component.d.ts +3 -0
  86. package/lib/pages/auth/logged-out/logged-out.component.d.ts +3 -0
  87. package/lib/pages/http-status/error/error.component.d.ts +3 -0
  88. package/lib/pages/http-status/page-not-found/page-not-found.component.d.ts +3 -0
  89. package/lib/pages/http-status/unauthorized/unauthorized.component.d.ts +3 -0
  90. package/lib/pipes/address.pipe.d.ts +3 -0
  91. package/lib/pipes/duration-format.pipe.d.ts +3 -0
  92. package/lib/services/component-loader/component-loader.factory.d.ts +3 -0
  93. package/lib/services/modal-service/modal-backdrop-component.d.ts +3 -0
  94. package/lib/services/modal-service/modal-container-component.d.ts +3 -0
  95. package/lib/services/modal-service/modal-options.class.d.ts +3 -0
  96. package/lib/services/modal-service/modal-service.d.ts +3 -0
  97. package/lib/services/modal-service/modal.class.d.ts +3 -0
  98. package/lib/services/toaster.service.d.ts +3 -0
  99. package/package.json +19 -7
  100. package/public-api.d.ts +1 -0
  101. package/bundles/indice-ng-components.umd.js +0 -3417
  102. package/bundles/indice-ng-components.umd.js.map +0 -1
  103. package/esm2015/indice-ng-components.js +0 -7
  104. package/esm2015/lib/controls/avatar-initials/avatar-initials.component.js +0 -47
  105. package/esm2015/lib/controls/collapsible-panel/collapsible-panel.component.js +0 -20
  106. package/esm2015/lib/controls/date-picker/date-picker.component.js +0 -251
  107. package/esm2015/lib/controls/drop-down-menu/drop-down-menu.component.js +0 -62
  108. package/esm2015/lib/controls/kpi-tile/kpi-tile.component.js +0 -32
  109. package/esm2015/lib/controls/list-view/list-column.component.js +0 -19
  110. package/esm2015/lib/controls/list-view/list-details-section.component.js +0 -14
  111. package/esm2015/lib/controls/list-view/list-tile.component.js +0 -14
  112. package/esm2015/lib/controls/list-view/list-view-empty-state.component.js +0 -25
  113. package/esm2015/lib/controls/list-view/list-view.component.js +0 -150
  114. package/esm2015/lib/controls/pager/pager.component.js +0 -115
  115. package/esm2015/lib/controls/side-pane/side-pane.component.js +0 -71
  116. package/esm2015/lib/controls/skeleton-loader/skeleton-loader.component.js +0 -25
  117. package/esm2015/lib/controls/toaster/toaster-container.component.js +0 -28
  118. package/esm2015/lib/controls/toaster/toaster.component.js +0 -29
  119. package/esm2015/lib/controls/toggle/toggle.component.js +0 -57
  120. package/esm2015/lib/directives/click-outside.directive.js +0 -181
  121. package/esm2015/lib/directives/dynamic-component-host.directive.js +0 -17
  122. package/esm2015/lib/helpers/base-list.component.js +0 -182
  123. package/esm2015/lib/layouts/shell/shell-footer/shell-footer.component.js +0 -17
  124. package/esm2015/lib/layouts/shell/shell-header/shell-header.component.js +0 -99
  125. package/esm2015/lib/layouts/shell/shell-layout/shell-layout.component.js +0 -96
  126. package/esm2015/lib/layouts/views/form-layout/form-layout.component.js +0 -73
  127. package/esm2015/lib/layouts/views/model-view-layout/model-view-layout.component.js +0 -47
  128. package/esm2015/lib/layouts/views/side-view-layout/side-view-layout.component.js +0 -84
  129. package/esm2015/lib/layouts/views/view-layout/view-layout.component.js +0 -95
  130. package/esm2015/lib/ng-components.module.js +0 -133
  131. package/esm2015/lib/pages/auth/auth-callback/auth-callback.component.js +0 -29
  132. package/esm2015/lib/pages/auth/auth-renew/auth-renew.component.js +0 -27
  133. package/esm2015/lib/pages/auth/logged-out/logged-out.component.js +0 -26
  134. package/esm2015/lib/pages/http-status/error/error.component.js +0 -15
  135. package/esm2015/lib/pages/http-status/page-not-found/page-not-found.component.js +0 -14
  136. package/esm2015/lib/pages/http-status/unauthorized/unauthorized.component.js +0 -13
  137. package/esm2015/lib/pipes/address.pipe.js +0 -17
  138. package/esm2015/lib/pipes/duration-format.pipe.js +0 -60
  139. package/esm2015/lib/services/component-loader/component-loader.class.js +0 -192
  140. package/esm2015/lib/services/component-loader/component-loader.factory.js +0 -35
  141. package/esm2015/lib/services/modal-service/modal-backdrop-component.js +0 -44
  142. package/esm2015/lib/services/modal-service/modal-container-component.js +0 -117
  143. package/esm2015/lib/services/modal-service/modal-options.class.js +0 -31
  144. package/esm2015/lib/services/modal-service/modal-service.js +0 -214
  145. package/esm2015/lib/services/modal-service/modal.class.js +0 -24
  146. package/esm2015/lib/services/toaster.service.js +0 -23
  147. package/esm2015/public-api.js +0 -53
  148. package/fesm2015/indice-ng-components.js +0 -2899
  149. package/fesm2015/indice-ng-components.js.map +0 -1
  150. package/indice-ng-components.metadata.json +0 -1
@@ -0,0 +1,188 @@
1
+ import { ElementRef, TemplateRef, Injector, } from '@angular/core';
2
+ import { Subject } from 'rxjs';
3
+ import { ContentRef } from './content-ref.class';
4
+ /**
5
+ * Provides ways of loading and handling dynamic content.
6
+ *
7
+ * @remarks
8
+ * Do NOT use this directly, create an instance through {@link ComponentLoaderFactory}
9
+ * You can use this loader in two ways:
10
+ * - Attaches a component to `ViewContainerRef`.
11
+ * - Attaches a component to `ViewContainerRef`. The attached component has a `<ng-content>` tag inside its view. The {@link ComponentLoaderOptions.content} will be drawn inside this tag.
12
+ *
13
+ * @internal
14
+ */
15
+ export class ComponentLoader {
16
+ constructor(vcr, cfr, applicationRef, injector) {
17
+ this.vcr = vcr;
18
+ this.cfr = cfr;
19
+ this.applicationRef = applicationRef;
20
+ this.injector = injector;
21
+ /**
22
+ * Before content is shown event.
23
+ */
24
+ this.onBeforeShow = new Subject();
25
+ /**
26
+ * After show content event.
27
+ * @returns The id of newly created component ref.
28
+ */
29
+ this.onShown = new Subject();
30
+ /**
31
+ * Before content is hidden event.
32
+ * @returns The instance of attached component;
33
+ */
34
+ this.onBeforeHide = new Subject();
35
+ /**
36
+ * After content is hidden event.
37
+ * @returns The id of destroyed component ref.
38
+ */
39
+ this.onHidden = new Subject();
40
+ this.providers = [];
41
+ this.containerDefaultSelector = 'body';
42
+ }
43
+ /**
44
+ * Attaches component.
45
+ * @param componentType - The type component to attach.
46
+ * @returns Current instance of {@link ComponentLoader}
47
+ */
48
+ attach(componentType) {
49
+ this.componentFactory = this.cfr.resolveComponentFactory(componentType);
50
+ return this;
51
+ }
52
+ /**
53
+ * Body will be used in nothing is provided.
54
+ * @param container - The element in which dynamic content will be drawn inside to. For string case a query to the dom will be executed to find the element.
55
+ * @returns Current instance of {@link ComponentLoader}
56
+ */
57
+ to(container) {
58
+ this.container = container || this.container;
59
+ return this;
60
+ }
61
+ /**
62
+ * Adds provider to the providers array. These providers will be injected to the attached component.
63
+ *
64
+ * @see {@link https://angular.io/guide/glossary#di-token | Injection Token}
65
+ *
66
+ * @param provider - Provider to inject.
67
+ * @returns Current instance of {@link ComponentLoader}
68
+ */
69
+ provide(provider) {
70
+ this.providers.push(provider);
71
+ return this;
72
+ }
73
+ /**
74
+ * Attaches attached component to dom and any dynamic content if provided.
75
+ * @remarks
76
+ * Also triggers the {@link ComponentLoader.onBeforeShow} and {@link ComponentLoader.onShown} events.
77
+ *
78
+ * @param options - {@link ComponentLoaderOptions}.
79
+ * @returns A reference to the created content.
80
+ */
81
+ show(options = {}) {
82
+ if (this.componentRef) {
83
+ throw Error('Component is already shown');
84
+ }
85
+ if (!this.componentFactory) {
86
+ throw Error('You must attach a component');
87
+ }
88
+ this.onBeforeShow.next();
89
+ if (options.content) {
90
+ this.contentRef = this.getContentRef(options.content, options.context, options.initialState);
91
+ }
92
+ this.createComponentAndAttachToView(options);
93
+ this.appendContentToContainer();
94
+ this.markComponentsForCheck();
95
+ this.onShown.next(options.id);
96
+ return this.componentRef;
97
+ }
98
+ /**
99
+ * Removes attached component from dom.
100
+ * @remarks
101
+ * Also triggers the {@link ComponentLoader.onBeforeHide} and {@link ComponentLoader.onHidden} events.
102
+ *
103
+ * @param id - If provided it is returned through the {@link ComponentLoader.onHidden}.
104
+ * @returns Current instance of {@link ComponentLoader}
105
+ */
106
+ hide(id, result) {
107
+ if (!this.componentRef) {
108
+ throw Error('No attached component found to hide');
109
+ }
110
+ this.onBeforeHide.next(this.componentRef.instance);
111
+ const componentEl = this.componentRef.location.nativeElement;
112
+ componentEl.parentNode.removeChild(componentEl);
113
+ if (this.contentRef?.componentRef) {
114
+ this.contentRef.componentRef.destroy();
115
+ }
116
+ if (this.vcr && this.contentRef?.viewRef) {
117
+ this.vcr.remove(this.vcr.indexOf(this.contentRef.viewRef));
118
+ }
119
+ if (this.contentRef?.viewRef) {
120
+ this.contentRef.viewRef.destroy();
121
+ }
122
+ this.contentRef = void 0;
123
+ this.componentRef = void 0;
124
+ this.onHidden.next(id ? { id, result } : null);
125
+ return this;
126
+ }
127
+ getInnerComponent() {
128
+ return this.innerComponent;
129
+ }
130
+ markComponentsForCheck() {
131
+ if (this.contentRef?.componentRef) {
132
+ this.innerComponent = this.contentRef.componentRef.instance;
133
+ this.contentRef.componentRef.changeDetectorRef.markForCheck();
134
+ this.contentRef.componentRef.changeDetectorRef.detectChanges();
135
+ }
136
+ this.componentRef.changeDetectorRef.markForCheck();
137
+ this.componentRef.changeDetectorRef.detectChanges();
138
+ }
139
+ createComponentAndAttachToView(options) {
140
+ const injector = Injector.create({
141
+ providers: this.providers,
142
+ parent: this.injector,
143
+ });
144
+ this.componentRef = this.componentFactory.create(injector, this.contentRef?.nodes);
145
+ this.applicationRef.attachView(this.componentRef.hostView);
146
+ this.instance = this.componentRef.instance;
147
+ Object.assign(this.componentRef.instance, options);
148
+ }
149
+ appendContentToContainer() {
150
+ if (this.container instanceof ElementRef) {
151
+ this.container.nativeElement.appendChild(this.componentRef?.location.nativeElement);
152
+ }
153
+ if (typeof this.container === 'string' && typeof document !== 'undefined') {
154
+ const selectedElement = document.querySelector(this.container) || document.querySelector(this.containerDefaultSelector);
155
+ if (!selectedElement) {
156
+ return;
157
+ }
158
+ selectedElement.appendChild(this.componentRef?.location.nativeElement);
159
+ }
160
+ }
161
+ getContentRef(content, context, initialState) {
162
+ //TemplateRef case
163
+ if (content instanceof TemplateRef) {
164
+ if (this.vcr) {
165
+ const viewRef = this.vcr.createEmbeddedView(content, context);
166
+ viewRef.markForCheck();
167
+ return new ContentRef([viewRef.rootNodes], viewRef);
168
+ }
169
+ const viewRef = content.createEmbeddedView({});
170
+ this.applicationRef.attachView(viewRef);
171
+ return new ContentRef([viewRef.rootNodes], viewRef);
172
+ }
173
+ //Component case
174
+ if (typeof content === 'function') {
175
+ const contentCf = this.cfr.resolveComponentFactory(content);
176
+ const injector = Injector.create({
177
+ providers: this.providers,
178
+ parent: this.injector,
179
+ });
180
+ const componentRef = contentCf.create(injector);
181
+ Object.assign(componentRef.instance, initialState);
182
+ this.applicationRef.attachView(componentRef.hostView);
183
+ return new ContentRef([[componentRef.location.nativeElement]], componentRef.hostView, componentRef);
184
+ }
185
+ throw Error('Unsupported content type');
186
+ }
187
+ }
188
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tcG9uZW50LWxvYWRlci5jbGFzcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25nLWNvbXBvbmVudHMvc3JjL2xpYi9zZXJ2aWNlcy9jb21wb25lbnQtbG9hZGVyL2NvbXBvbmVudC1sb2FkZXIuY2xhc3MudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUtMLFVBQVUsRUFFVixXQUFXLEVBR1gsUUFBUSxHQUNULE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFFL0IsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBRWpEOzs7Ozs7Ozs7O0dBVUc7QUFDSCxNQUFNLE9BQU8sZUFBZTtJQTZCMUIsWUFDVSxHQUFpQyxFQUNqQyxHQUE2QixFQUM3QixjQUE4QixFQUM5QixRQUFrQjtRQUhsQixRQUFHLEdBQUgsR0FBRyxDQUE4QjtRQUNqQyxRQUFHLEdBQUgsR0FBRyxDQUEwQjtRQUM3QixtQkFBYyxHQUFkLGNBQWMsQ0FBZ0I7UUFDOUIsYUFBUSxHQUFSLFFBQVEsQ0FBVTtRQWhDNUI7O1dBRUc7UUFDSCxpQkFBWSxHQUFHLElBQUksT0FBTyxFQUFFLENBQUM7UUFDN0I7OztXQUdHO1FBQ0gsWUFBTyxHQUFHLElBQUksT0FBTyxFQUFFLENBQUM7UUFDeEI7OztXQUdHO1FBQ0gsaUJBQVksR0FBRyxJQUFJLE9BQU8sRUFBRSxDQUFDO1FBQzdCOzs7V0FHRztRQUNILGFBQVEsR0FBRyxJQUFJLE9BQU8sRUFBRSxDQUFDO1FBTWpCLGNBQVMsR0FBcUIsRUFBRSxDQUFDO1FBRWpDLDZCQUF3QixHQUFHLE1BQU0sQ0FBQztJQU92QyxDQUFDO0lBRUo7Ozs7T0FJRztJQUNJLE1BQU0sQ0FBQyxhQUFzQjtRQUNsQyxJQUFJLENBQUMsZ0JBQWdCLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyx1QkFBdUIsQ0FB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QUFDO1NBQ3JEO1FBRUQsZ0JBQWdCO1FBQ2hCLElBQUksT0FBTyxPQUFPLEtBQUssVUFBVSxFQUFFO1lBQ2pDLE1BQU0sU0FBUyxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsdUJBQXVCLENBQUMsT0FBTyxDQUFDLENBQUM7WUFDNUQsTUFBTSxRQUFRLEdBQUcsUUFBUSxDQUFDLE1BQU0sQ0FBQztnQkFDL0IsU0FBUyxFQUFFLElBQUksQ0FBQyxTQUFTO2dCQUN6QixNQUFNLEVBQUUsSUFBSSxDQUFDLFFBQVE7YUFDdEIsQ0FBQyxDQUFDO1lBQ0gsTUFBTSxZQUFZLEdBQUcsU0FBUyxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQztZQUNoRCxNQUFNLENBQUMsTUFBTSxDQUFDLFlBQVksQ0FBQyxRQUFRLEVBQUUsWUFBWSxDQUFDLENBQUM7WUFDbkQsSUFBSSxDQUFDLGNBQWMsQ0FBQyxVQUFVLENBQUMsWUFBWSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1lBQ3RELE9BQU8sSUFBSSxVQUFVLENBQUMsQ0FBQyxDQUFDLFlBQVksQ0FBQyxRQUFRLENBQUMsYUFBYSxDQUFDLENBQUMsRUFBRSxZQUFZLENBQUMsUUFBUSxFQUFFLFlBQVksQ0FBQyxDQUFDO1NBQ3JHO1FBRUQsTUFBTSxLQUFLLENBQUMsMEJBQTBCLENBQUMsQ0FBQztJQUMxQyxDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xyXG4gIENvbXBvbmVudEZhY3RvcnlSZXNvbHZlcixcclxuICBWaWV3Q29udGFpbmVyUmVmLFxyXG4gIENvbXBvbmVudEZhY3RvcnksXHJcbiAgVHlwZSxcclxuICBFbGVtZW50UmVmLFxyXG4gIFN0YXRpY1Byb3ZpZGVyLFxyXG4gIFRlbXBsYXRlUmVmLFxyXG4gIENvbXBvbmVudFJlZixcclxuICBBcHBsaWNhdGlvblJlZixcclxuICBJbmplY3RvcixcclxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgU3ViamVjdCB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyBDb21wb25lbnRMb2FkZXJPcHRpb25zIH0gZnJvbSAnLi9jb21wb25lbnQtbG9hZGVyLW9wdGlvbnMuY2xhc3MnO1xyXG5pbXBvcnQgeyBDb250ZW50UmVmIH0gZnJvbSAnLi9jb250ZW50LXJlZi5jbGFzcyc7XHJcblxyXG4vKipcclxuICogUHJvdmlkZXMgd2F5cyBvZiBsb2FkaW5nIGFuZCBoYW5kbGluZyBkeW5hbWljIGNvbnRlbnQuXHJcbiAqXHJcbiAqIEByZW1hcmtzXHJcbiAqIERvIE5PVCB1c2UgdGhpcyBkaXJlY3RseSwgY3JlYXRlIGFuIGluc3RhbmNlIHRocm91Z2gge0BsaW5rIENvbXBvbmVudExvYWRlckZhY3Rvcnl9XHJcbiAqIFlvdSBjYW4gdXNlIHRoaXMgbG9hZGVyIGluIHR3byB3YXlzOlxyXG4gKiAtIEF0dGFjaGVzIGEgY29tcG9uZW50IHRvIGBWaWV3Q29udGFpbmVyUmVmYC5cclxuICogLSBBdHRhY2hlcyBhIGNvbXBvbmVudCB0byBgVmlld0NvbnRhaW5lclJlZmAuIFRoZSBhdHRhY2hlZCBjb21wb25lbnQgaGFzIGEgYDxuZy1jb250ZW50PmAgdGFnIGluc2lkZSBpdHMgdmlldy4gVGhlIHtAbGluayBDb21wb25lbnRMb2FkZXJPcHRpb25zLmNvbnRlbnR9IHdpbGwgYmUgZHJhd24gaW5zaWRlIHRoaXMgdGFnLlxyXG4gKlxyXG4gKiBAaW50ZXJuYWxcclxuICovXHJcbmV4cG9ydCBjbGFzcyBDb21wb25lbnRMb2FkZXI8VD4ge1xyXG4gIC8qKlxyXG4gICAqIEJlZm9yZSBjb250ZW50IGlzIHNob3duIGV2ZW50LlxyXG4gICAqL1xyXG4gIG9uQmVmb3JlU2hvdyA9IG5ldyBTdWJqZWN0KCk7XHJcbiAgLyoqXHJcbiAgICogQWZ0ZXIgc2hvdyBjb250ZW50IGV2ZW50LlxyXG4gICAqIEByZXR1cm5zIFRoZSBpZCBvZiBuZXdseSBjcmVhdGVkIGNvbXBvbmVudCByZWYuXHJcbiAgICovXHJcbiAgb25TaG93biA9IG5ldyBTdWJqZWN0KCk7XHJcbiAgLyoqXHJcbiAgICogQmVmb3JlIGNvbnRlbnQgaXMgaGlkZGVuIGV2ZW50LlxyXG4gICAqIEByZXR1cm5zIFRoZSBpbnN0YW5jZSBvZiBhdHRhY2hlZCBjb21wb25lbnQ7XHJcbiAgICovXHJcbiAgb25CZWZvcmVIaWRlID0gbmV3IFN1YmplY3QoKTtcclxuICAvKipcclxuICAgKiBBZnRlciBjb250ZW50IGlzIGhpZGRlbiBldmVudC5cclxuICAgKiBAcmV0dXJucyBUaGUgaWQgb2YgZGVzdHJveWVkIGNvbXBvbmVudCByZWYuXHJcbiAgICovXHJcbiAgb25IaWRkZW4gPSBuZXcgU3ViamVjdCgpO1xyXG5cclxuICBwdWJsaWMgaW5zdGFuY2U/OiBUO1xyXG4gIHB1YmxpYyBjb21wb25lbnRSZWY/OiBDb21wb25lbnRSZWY8VD47XHJcbiAgcHJpdmF0ZSBjb21wb25lbnRGYWN0b3J5PzogQ29tcG9uZW50RmFjdG9yeTxUPjtcclxuICBwcml2YXRlIGNvbnRhaW5lcjogc3RyaW5nIHwgRWxlbWVudFJlZiB8IGFueTtcclxuICBwcml2YXRlIHByb3ZpZGVyczogU3RhdGljUHJvdmlkZXJbXSA9IFtdO1xyXG4gIHByaXZhdGUgY29udGVudFJlZj86IENvbnRlbnRSZWY7XHJcbiAgcHJpdmF0ZSBjb250YWluZXJEZWZhdWx0U2VsZWN0b3IgPSAnYm9keSc7XHJcbiAgcHJpdmF0ZSBpbm5lckNvbXBvbmVudD86IENvbXBvbmVudFJlZjxUPjtcclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHByaXZhdGUgdmNyOiBWaWV3Q29udGFpbmVyUmVmIHwgdW5kZWZpbmVkLFxyXG4gICAgcHJpdmF0ZSBjZnI6IENvbXBvbmVudEZhY3RvcnlSZXNvbHZlcixcclxuICAgIHByaXZhdGUgYXBwbGljYXRpb25SZWY6IEFwcGxpY2F0aW9uUmVmLFxyXG4gICAgcHJpdmF0ZSBpbmplY3RvcjogSW5qZWN0b3JcclxuICApIHt9XHJcblxyXG4gIC8qKlxyXG4gICAqIEF0dGFjaGVzIGNvbXBvbmVudC5cclxuICAgKiBAcGFyYW0gY29tcG9uZW50VHlwZSAtIFRoZSB0eXBlIGNvbXBvbmVudCB0byBhdHRhY2guXHJcbiAgICogQHJldHVybnMgQ3VycmVudCBpbnN0YW5jZSBvZiB7QGxpbmsgQ29tcG9uZW50TG9hZGVyfVxyXG4gICAqL1xyXG4gIHB1YmxpYyBhdHRhY2goY29tcG9uZW50VHlwZTogVHlwZTxUPik6IENvbXBvbmVudExvYWRlcjxUPiB7XHJcbiAgICB0aGlzLmNvbXBvbmVudEZhY3RvcnkgPSB0aGlzLmNmci5yZXNvbHZlQ29tcG9uZW50RmFjdG9yeTxUPihjb21wb25lbnRUeXBlKTtcclxuICAgIHJldHVybiB0aGlzO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogQm9keSB3aWxsIGJlIHVzZWQgaW4gbm90aGluZyBpcyBwcm92aWRlZC5cclxuICAgKiBAcGFyYW0gY29udGFpbmVyIC0gVGhlIGVsZW1lbnQgaW4gd2hpY2ggZHluYW1pYyBjb250ZW50IHdpbGwgYmUgZHJhd24gaW5zaWRlIHRvLiBGb3Igc3RyaW5nIGNhc2UgYSBxdWVyeSB0byB0aGUgZG9tIHdpbGwgYmUgZXhlY3V0ZWQgdG8gZmluZCB0aGUgZWxlbWVudC5cclxuICAgKiBAcmV0dXJucyBDdXJyZW50IGluc3RhbmNlIG9mIHtAbGluayBDb21wb25lbnRMb2FkZXJ9XHJcbiAgICovXHJcbiAgcHVibGljIHRvKGNvbnRhaW5lcj86IHN0cmluZyB8IEVsZW1lbnRSZWYpOiBDb21wb25lbnRMb2FkZXI8VD4ge1xyXG4gICAgdGhpcy5jb250YWluZXIgPSBjb250YWluZXIgfHwgdGhpcy5jb250YWluZXI7XHJcbiAgICByZXR1cm4gdGhpcztcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIEFkZHMgcHJvdmlkZXIgdG8gdGhlIHByb3ZpZGVycyBhcnJheS4gVGhlc2UgcHJvdmlkZXJzIHdpbGwgYmUgaW5qZWN0ZWQgdG8gdGhlIGF0dGFjaGVkIGNvbXBvbmVudC5cclxuICAgKlxyXG4gICAqIEBzZWUge0BsaW5rIGh0dHBzOi8vYW5ndWxhci5pby9ndWlkZS9nbG9zc2FyeSNkaS10b2tlbiB8IEluamVjdGlvbiBUb2tlbn1cclxuICAgKlxyXG4gICAqIEBwYXJhbSBwcm92aWRlciAtIFByb3ZpZGVyIHRvIGluamVjdC5cclxuICAgKiBAcmV0dXJucyBDdXJyZW50IGluc3RhbmNlIG9mIHtAbGluayBDb21wb25lbnRMb2FkZXJ9XHJcbiAgICovXHJcbiAgcHVibGljIHByb3ZpZGUocHJvdmlkZXI6IFN0YXRpY1Byb3ZpZGVyKTogQ29tcG9uZW50TG9hZGVyPFQ+IHtcclxuICAgIHRoaXMucHJvdmlkZXJzLnB1c2gocHJvdmlkZXIpO1xyXG4gICAgcmV0dXJuIHRoaXM7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBBdHRhY2hlcyBhdHRhY2hlZCBjb21wb25lbnQgdG8gZG9tIGFuZCBhbnkgZHluYW1pYyBjb250ZW50IGlmIHByb3ZpZGVkLlxyXG4gICAqIEByZW1hcmtzXHJcbiAgICogQWxzbyB0cmlnZ2VycyB0aGUge0BsaW5rIENvbXBvbmVudExvYWRlci5vbkJlZm9yZVNob3d9IGFuZCB7QGxpbmsgQ29tcG9uZW50TG9hZGVyLm9uU2hvd259IGV2ZW50cy5cclxuICAgKlxyXG4gICAqIEBwYXJhbSBvcHRpb25zIC0ge0BsaW5rIENvbXBvbmVudExvYWRlck9wdGlvbnN9LlxyXG4gICAqIEByZXR1cm5zIEEgcmVmZXJlbmNlIHRvIHRoZSBjcmVhdGVkIGNvbnRlbnQuXHJcbiAgICovXHJcbiAgcHVibGljIHNob3cob3B0aW9uczogQ29tcG9uZW50TG9hZGVyT3B0aW9ucyA9IHt9KTogQ29tcG9uZW50UmVmPFQ+IHwgdW5kZWZpbmVkIHtcclxuICAgIGlmICh0aGlzLmNvbXBvbmVudFJlZikge1xyXG4gICAgICB0aHJvdyBFcnJvcignQ29tcG9uZW50IGlzIGFscmVhZHkgc2hvd24nKTtcclxuICAgIH1cclxuICAgIGlmICghdGhpcy5jb21wb25lbnRGYWN0b3J5KSB7XHJcbiAgICAgIHRocm93IEVycm9yKCdZb3UgbXVzdCBhdHRhY2ggYSBjb21wb25lbnQnKTtcclxuICAgIH1cclxuICAgIHRoaXMub25CZWZvcmVTaG93Lm5leHQoKTtcclxuXHJcbiAgICBpZiAob3B0aW9ucy5jb250ZW50KSB7XHJcbiAgICAgIHRoaXMuY29udGVudFJlZiA9IHRoaXMuZ2V0Q29udGVudFJlZihvcHRpb25zLmNvbnRlbnQsIG9wdGlvbnMuY29udGV4dCwgb3B0aW9ucy5pbml0aWFsU3RhdGUpO1xyXG4gICAgfVxyXG4gICAgdGhpcy5jcmVhdGVDb21wb25lbnRBbmRBdHRhY2hUb1ZpZXcob3B0aW9ucyk7XHJcbiAgICB0aGlzLmFwcGVuZENvbnRlbnRUb0NvbnRhaW5lcigpO1xyXG4gICAgdGhpcy5tYXJrQ29tcG9uZW50c0ZvckNoZWNrKCk7XHJcblxyXG4gICAgdGhpcy5vblNob3duLm5leHQob3B0aW9ucy5pZCk7XHJcblxyXG4gICAgcmV0dXJuIHRoaXMuY29tcG9uZW50UmVmO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogUmVtb3ZlcyBhdHRhY2hlZCBjb21wb25lbnQgZnJvbSBkb20uXHJcbiAgICogQHJlbWFya3NcclxuICAgKiBBbHNvIHRyaWdnZXJzIHRoZSB7QGxpbmsgQ29tcG9uZW50TG9hZGVyLm9uQmVmb3JlSGlkZX0gYW5kIHtAbGluayBDb21wb25lbnRMb2FkZXIub25IaWRkZW59IGV2ZW50cy5cclxuICAgKlxyXG4gICAqIEBwYXJhbSBpZCAtIElmIHByb3ZpZGVkIGl0IGlzIHJldHVybmVkIHRocm91Z2ggdGhlIHtAbGluayBDb21wb25lbnRMb2FkZXIub25IaWRkZW59LlxyXG4gICAqIEByZXR1cm5zIEN1cnJlbnQgaW5zdGFuY2Ugb2Yge0BsaW5rIENvbXBvbmVudExvYWRlcn1cclxuICAgKi9cclxuICBwdWJsaWMgaGlkZShpZD86IG51bWJlciB8IHN0cmluZywgcmVzdWx0PzogYW55KTogQ29tcG9uZW50TG9hZGVyPFQ+IHtcclxuICAgIGlmICghdGhpcy5jb21wb25lbnRSZWYpIHtcclxuICAgICAgdGhyb3cgRXJyb3IoJ05vIGF0dGFjaGVkIGNvbXBvbmVudCBmb3VuZCB0byBoaWRlJyk7XHJcbiAgICB9XHJcblxyXG4gICAgdGhpcy5vbkJlZm9yZUhpZGUubmV4dCh0aGlzLmNvbXBvbmVudFJlZi5pbnN0YW5jZSk7XHJcblxyXG4gICAgY29uc3QgY29tcG9uZW50RWwgPSB0aGlzLmNvbXBvbmVudFJlZi5sb2NhdGlvbi5uYXRpdmVFbGVtZW50O1xyXG4gICAgY29tcG9uZW50RWwucGFyZW50Tm9kZS5yZW1vdmVDaGlsZChjb21wb25lbnRFbCk7XHJcbiAgICBpZiAodGhpcy5jb250ZW50UmVmPy5jb21wb25lbnRSZWYpIHtcclxuICAgICAgdGhpcy5jb250ZW50UmVmLmNvbXBvbmVudFJlZi5kZXN0cm95KCk7XHJcbiAgICB9XHJcbiAgICBpZiAodGhpcy52Y3IgJiYgdGhpcy5jb250ZW50UmVmPy52aWV3UmVmKSB7XHJcbiAgICAgIHRoaXMudmNyLnJlbW92ZSh0aGlzLnZjci5pbmRleE9mKHRoaXMuY29udGVudFJlZi52aWV3UmVmKSk7XHJcbiAgICB9XHJcbiAgICBpZiAodGhpcy5jb250ZW50UmVmPy52aWV3UmVmKSB7XHJcbiAgICAgIHRoaXMuY29udGVudFJlZi52aWV3UmVmLmRlc3Ryb3koKTtcclxuICAgIH1cclxuICAgIHRoaXMuY29udGVudFJlZiA9IHZvaWQgMDtcclxuICAgIHRoaXMuY29tcG9uZW50UmVmID0gdm9pZCAwO1xyXG5cclxuICAgIHRoaXMub25IaWRkZW4ubmV4dChpZCA/IHsgaWQsIHJlc3VsdCB9IDogbnVsbCk7XHJcblxyXG4gICAgcmV0dXJuIHRoaXM7XHJcbiAgfVxyXG5cclxuICBnZXRJbm5lckNvbXBvbmVudCgpOiBDb21wb25lbnRSZWY8VD4gfCB1bmRlZmluZWQge1xyXG4gICAgcmV0dXJuIHRoaXMuaW5uZXJDb21wb25lbnQ7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIG1hcmtDb21wb25lbnRzRm9yQ2hlY2soKSB7XHJcbiAgICBpZiAodGhpcy5jb250ZW50UmVmPy5jb21wb25lbnRSZWYpIHtcclxuICAgICAgdGhpcy5pbm5lckNvbXBvbmVudCA9IHRoaXMuY29udGVudFJlZi5jb21wb25lbnRSZWYuaW5zdGFuY2U7XHJcbiAgICAgIHRoaXMuY29udGVudFJlZi5jb21wb25lbnRSZWYuY2hhbmdlRGV0ZWN0b3JSZWYubWFya0ZvckNoZWNrKCk7XHJcbiAgICAgIHRoaXMuY29udGVudFJlZi5jb21wb25lbnRSZWYuY2hhbmdlRGV0ZWN0b3JSZWYuZGV0ZWN0Q2hhbmdlcygpO1xyXG4gICAgfVxyXG4gICAgdGhpcy5jb21wb25lbnRSZWYhLmNoYW5nZURldGVjdG9yUmVmLm1hcmtGb3JDaGVjaygpO1xyXG4gICAgdGhpcy5jb21wb25lbnRSZWYhLmNoYW5nZURldGVjdG9yUmVmLmRldGVjdENoYW5nZXMoKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgY3JlYXRlQ29tcG9uZW50QW5kQXR0YWNoVG9WaWV3KG9wdGlvbnM6IENvbXBvbmVudExvYWRlck9wdGlvbnMpIHtcclxuICAgIGNvbnN0IGluamVjdG9yID0gSW5qZWN0b3IuY3JlYXRlKHtcclxuICAgICAgcHJvdmlkZXJzOiB0aGlzLnByb3ZpZGVycyxcclxuICAgICAgcGFyZW50OiB0aGlzLmluamVjdG9yLFxyXG4gICAgfSk7XHJcbiAgICB0aGlzLmNvbXBvbmVudFJlZiA9IHRoaXMuY29tcG9uZW50RmFjdG9yeSEuY3JlYXRlKGluamVjdG9yLCB0aGlzLmNvbnRlbnRSZWY/Lm5vZGVzKTtcclxuICAgIHRoaXMuYXBwbGljYXRpb25SZWYuYXR0YWNoVmlldyh0aGlzLmNvbXBvbmVudFJlZi5ob3N0Vmlldyk7XHJcbiAgICB0aGlzLmluc3RhbmNlID0gdGhpcy5jb21wb25lbnRSZWYuaW5zdGFuY2U7XHJcbiAgICBPYmplY3QuYXNzaWduKHRoaXMuY29tcG9uZW50UmVmLmluc3RhbmNlLCBvcHRpb25zKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgYXBwZW5kQ29udGVudFRvQ29udGFpbmVyKCkge1xyXG4gICAgaWYgKHRoaXMuY29udGFpbmVyIGluc3RhbmNlb2YgRWxlbWVudFJlZikge1xyXG4gICAgICB0aGlzLmNvbnRhaW5lci5uYXRpdmVFbGVtZW50LmFwcGVuZENoaWxkKHRoaXMuY29tcG9uZW50UmVmPy5sb2NhdGlvbi5uYXRpdmVFbGVtZW50KTtcclxuICAgIH1cclxuICAgIGlmICh0eXBlb2YgdGhpcy5jb250YWluZXIgPT09ICdzdHJpbmcnICYmIHR5cGVvZiBkb2N1bWVudCAhPT0gJ3VuZGVmaW5lZCcpIHtcclxuICAgICAgY29uc3Qgc2VsZWN0ZWRFbGVtZW50ID0gZG9jdW1lbnQucXVlcnlTZWxlY3Rvcih0aGlzLmNvbnRhaW5lcikgfHwgZG9jdW1lbnQucXVlcnlTZWxlY3Rvcih0aGlzLmNvbnRhaW5lckRlZmF1bHRTZWxlY3Rvcik7XHJcbiAgICAgIGlmICghc2VsZWN0ZWRFbGVtZW50KSB7XHJcbiAgICAgICAgcmV0dXJuO1xyXG4gICAgICB9XHJcbiAgICAgIHNlbGVjdGVkRWxlbWVudC5hcHBlbmRDaGlsZCh0aGlzLmNvbXBvbmVudFJlZj8ubG9jYXRpb24ubmF0aXZlRWxlbWVudCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGdldENvbnRlbnRSZWYoY29udGVudD86IHN0cmluZyB8IFRlbXBsYXRlUmVmPGFueT4sIGNvbnRleHQ/OiBhbnksIGluaXRpYWxTdGF0ZT86IGFueSk6IENvbnRlbnRSZWYge1xyXG4gICAgLy9UZW1wbGF0ZVJlZiBjYXNlXHJcbiAgICBpZiAoY29udGVudCBpbnN0YW5jZW9mIFRlbXBsYXRlUmVmKSB7XHJcbiAgICAgIGlmICh0aGlzLnZjcikge1xyXG4gICAgICAgIGNvbnN0IHZpZXdSZWYgPSB0aGlzLnZjci5jcmVhdGVFbWJlZGRlZFZpZXc8VGVtcGxhdGVSZWY8VD4+KGNvbnRlbnQsIGNvbnRleHQpO1xyXG4gICAgICAgIHZpZXdSZWYubWFya0ZvckNoZWNrKCk7XHJcbiAgICAgICAgcmV0dXJuIG5ldyBDb250ZW50UmVmKFt2aWV3UmVmLnJvb3ROb2Rlc10sIHZpZXdSZWYpO1xyXG4gICAgICB9XHJcbiAgICAgIGNvbnN0IHZpZXdSZWYgPSBjb250ZW50LmNyZWF0ZUVtYmVkZGVkVmlldyh7fSk7XHJcbiAgICAgIHRoaXMuYXBwbGljYXRpb25SZWYuYXR0YWNoVmlldyh2aWV3UmVmKTtcclxuICAgICAgcmV0dXJuIG5ldyBDb250ZW50UmVmKFt2aWV3UmVmLnJvb3ROb2Rlc10sIHZpZXdSZWYpO1xyXG4gICAgfVxyXG5cclxuICAgIC8vQ29tcG9uZW50IGNhc2VcclxuICAgIGlmICh0eXBlb2YgY29udGVudCA9PT0gJ2Z1bmN0aW9uJykge1xyXG4gICAgICBjb25zdCBjb250ZW50Q2YgPSB0aGlzLmNmci5yZXNvbHZlQ29tcG9uZW50RmFjdG9yeShjb250ZW50KTtcclxuICAgICAgY29uc3QgaW5qZWN0b3IgPSBJbmplY3Rvci5jcmVhdGUoe1xyXG4gICAgICAgIHByb3ZpZGVyczogdGhpcy5wcm92aWRlcnMsXHJcbiAgICAgICAgcGFyZW50OiB0aGlzLmluamVjdG9yLFxyXG4gICAgICB9KTtcclxuICAgICAgY29uc3QgY29tcG9uZW50UmVmID0gY29udGVudENmLmNyZWF0ZShpbmplY3Rvcik7XHJcbiAgICAgIE9iamVjdC5hc3NpZ24oY29tcG9uZW50UmVmLmluc3RhbmNlLCBpbml0aWFsU3RhdGUpO1xyXG4gICAgICB0aGlzLmFwcGxpY2F0aW9uUmVmLmF0dGFjaFZpZXcoY29tcG9uZW50UmVmLmhvc3RWaWV3KTtcclxuICAgICAgcmV0dXJuIG5ldyBDb250ZW50UmVmKFtbY29tcG9uZW50UmVmLmxvY2F0aW9uLm5hdGl2ZUVsZW1lbnRdXSwgY29tcG9uZW50UmVmLmhvc3RWaWV3LCBjb21wb25lbnRSZWYpO1xyXG4gICAgfVxyXG5cclxuICAgIHRocm93IEVycm9yKCdVbnN1cHBvcnRlZCBjb250ZW50IHR5cGUnKTtcclxuICB9XHJcbn1cclxuIl19
@@ -0,0 +1,32 @@
1
+ import { Injectable } from '@angular/core';
2
+ import { ComponentLoader } from './component-loader.class';
3
+ import * as i0 from "@angular/core";
4
+ /**
5
+ * Use to create instances of {@link ComponentLoader}.
6
+ *
7
+ * @public
8
+ */
9
+ export class ComponentLoaderFactory {
10
+ constructor(componentFactoryResolver, injector, applicationRef) {
11
+ this.componentFactoryResolver = componentFactoryResolver;
12
+ this.injector = injector;
13
+ this.applicationRef = applicationRef;
14
+ }
15
+ /**
16
+ * Returns a new instance of {@link ComponentLoader}
17
+ * @param viewContainerRef - The view container the dynamic content will be attached to.
18
+ * @returns A new instance of {@link ComponentLoader}.
19
+ *
20
+ * @public
21
+ */
22
+ createLoader(viewContainerRef) {
23
+ return new ComponentLoader(viewContainerRef, this.componentFactoryResolver, this.applicationRef, this.injector);
24
+ }
25
+ }
26
+ ComponentLoaderFactory.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.0", ngImport: i0, type: ComponentLoaderFactory, deps: [{ token: i0.ComponentFactoryResolver }, { token: i0.Injector }, { token: i0.ApplicationRef }], target: i0.ɵɵFactoryTarget.Injectable });
27
+ ComponentLoaderFactory.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.3.0", ngImport: i0, type: ComponentLoaderFactory, providedIn: 'root' });
28
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.0", ngImport: i0, type: ComponentLoaderFactory, decorators: [{
29
+ type: Injectable,
30
+ args: [{ providedIn: 'root' }]
31
+ }], ctorParameters: function () { return [{ type: i0.ComponentFactoryResolver }, { type: i0.Injector }, { type: i0.ApplicationRef }]; } });
32
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tcG9uZW50LWxvYWRlci5mYWN0b3J5LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmctY29tcG9uZW50cy9zcmMvbGliL3NlcnZpY2VzL2NvbXBvbmVudC1sb2FkZXIvY29tcG9uZW50LWxvYWRlci5mYWN0b3J5LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBNEMsVUFBVSxFQUE4QixNQUFNLGVBQWUsQ0FBQztBQUNqSCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7O0FBRTNEOzs7O0dBSUc7QUFFSCxNQUFNLE9BQU8sc0JBQXNCO0lBQ2pDLFlBQ1Usd0JBQWtELEVBQ2xELFFBQWtCLEVBQ2xCLGNBQThCO1FBRjlCLDZCQUF3QixHQUF4Qix3QkFBd0IsQ0FBMEI7UUFDbEQsYUFBUSxHQUFSLFFBQVEsQ0FBVTtRQUNsQixtQkFBYyxHQUFkLGNBQWMsQ0FBZ0I7SUFDckMsQ0FBQztJQUVKOzs7Ozs7T0FNRztJQUNILFlBQVksQ0FBSSxnQkFBbUM7UUFDakQsT0FBTyxJQUFJLGVBQWUsQ0FBSSxnQkFBZ0IsRUFBRSxJQUFJLENBQUMsd0JBQXdCLEVBQUUsSUFBSSxDQUFDLGNBQWMsRUFBRSxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7SUFDckgsQ0FBQzs7bUhBaEJVLHNCQUFzQjt1SEFBdEIsc0JBQXNCLGNBRFQsTUFBTTsyRkFDbkIsc0JBQXNCO2tCQURsQyxVQUFVO21CQUFDLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFwcGxpY2F0aW9uUmVmLCBDb21wb25lbnRGYWN0b3J5UmVzb2x2ZXIsIEluamVjdGFibGUsIEluamVjdG9yLCBWaWV3Q29udGFpbmVyUmVmIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IENvbXBvbmVudExvYWRlciB9IGZyb20gJy4vY29tcG9uZW50LWxvYWRlci5jbGFzcyc7XHJcblxyXG4vKipcclxuICogVXNlIHRvIGNyZWF0ZSBpbnN0YW5jZXMgb2Yge0BsaW5rIENvbXBvbmVudExvYWRlcn0uXHJcbiAqXHJcbiAqIEBwdWJsaWNcclxuICovXHJcbkBJbmplY3RhYmxlKHsgcHJvdmlkZWRJbjogJ3Jvb3QnIH0pXHJcbmV4cG9ydCBjbGFzcyBDb21wb25lbnRMb2FkZXJGYWN0b3J5IHtcclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHByaXZhdGUgY29tcG9uZW50RmFjdG9yeVJlc29sdmVyOiBDb21wb25lbnRGYWN0b3J5UmVzb2x2ZXIsXHJcbiAgICBwcml2YXRlIGluamVjdG9yOiBJbmplY3RvcixcclxuICAgIHByaXZhdGUgYXBwbGljYXRpb25SZWY6IEFwcGxpY2F0aW9uUmVmXHJcbiAgKSB7fVxyXG5cclxuICAvKipcclxuICAgKiBSZXR1cm5zIGEgbmV3IGluc3RhbmNlIG9mIHtAbGluayBDb21wb25lbnRMb2FkZXJ9XHJcbiAgICogQHBhcmFtIHZpZXdDb250YWluZXJSZWYgLSBUaGUgdmlldyBjb250YWluZXIgdGhlIGR5bmFtaWMgY29udGVudCB3aWxsIGJlIGF0dGFjaGVkIHRvLlxyXG4gICAqIEByZXR1cm5zIEEgbmV3IGluc3RhbmNlIG9mIHtAbGluayBDb21wb25lbnRMb2FkZXJ9LlxyXG4gICAqXHJcbiAgICogQHB1YmxpY1xyXG4gICAqL1xyXG4gIGNyZWF0ZUxvYWRlcjxUPih2aWV3Q29udGFpbmVyUmVmPzogVmlld0NvbnRhaW5lclJlZik6IENvbXBvbmVudExvYWRlcjxUPiB7XHJcbiAgICByZXR1cm4gbmV3IENvbXBvbmVudExvYWRlcjxUPih2aWV3Q29udGFpbmVyUmVmLCB0aGlzLmNvbXBvbmVudEZhY3RvcnlSZXNvbHZlciwgdGhpcy5hcHBsaWNhdGlvblJlZiwgdGhpcy5pbmplY3Rvcik7XHJcbiAgfVxyXG59XHJcbiJdfQ==
@@ -0,0 +1,44 @@
1
+ import { Component, ViewEncapsulation } from '@angular/core';
2
+ import { animationTime, cssClassNames } from './modal-styles.class';
3
+ import * as i0 from "@angular/core";
4
+ /**
5
+ * Background layer for modals.
6
+ * Override class name to theme it.
7
+ * @see {@link cssClassNames}
8
+ * @internal
9
+ */
10
+ export class ModalBackdropComponent {
11
+ constructor(element, renderer) {
12
+ this.element = element;
13
+ this.renderer = renderer;
14
+ this.animationsEnabled = false;
15
+ }
16
+ ngOnInit() {
17
+ if (this.animationsEnabled) {
18
+ this.renderer.addClass(this.element.nativeElement, cssClassNames.fade);
19
+ this.reflow(this.element.nativeElement);
20
+ }
21
+ this.renderer.addClass(this.element.nativeElement, cssClassNames.show);
22
+ }
23
+ hide() {
24
+ this.renderer.removeClass(this.element.nativeElement, cssClassNames.show);
25
+ setTimeout(() => this.backdropLoader?.hide(), this.animationsEnabled ? animationTime.backdrop : 0);
26
+ }
27
+ reflow(element) {
28
+ ((bs) => bs)(element.offsetHeight);
29
+ }
30
+ }
31
+ ModalBackdropComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.0", ngImport: i0, type: ModalBackdropComponent, deps: [{ token: i0.ElementRef }, { token: i0.Renderer2 }], target: i0.ɵɵFactoryTarget.Component });
32
+ ModalBackdropComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.0", type: ModalBackdropComponent, selector: "lib-modal-backdrop", host: { classAttribute: "modal-backdrop" }, ngImport: i0, template: '', isInline: true, encapsulation: i0.ViewEncapsulation.None });
33
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.0", ngImport: i0, type: ModalBackdropComponent, decorators: [{
34
+ type: Component,
35
+ args: [{
36
+ selector: 'lib-modal-backdrop',
37
+ encapsulation: ViewEncapsulation.None,
38
+ template: '',
39
+ host: {
40
+ class: cssClassNames.backdrop,
41
+ },
42
+ }]
43
+ }], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i0.Renderer2 }]; } });
44
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9kYWwtYmFja2Ryb3AtY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmctY29tcG9uZW50cy9zcmMvbGliL3NlcnZpY2VzL21vZGFsLXNlcnZpY2UvbW9kYWwtYmFja2Ryb3AtY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQWlDLGlCQUFpQixFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRTVGLE9BQU8sRUFBRSxhQUFhLEVBQUUsYUFBYSxFQUFFLE1BQU0sc0JBQXNCLENBQUM7O0FBRXBFOzs7OztHQUtHO0FBU0gsTUFBTSxPQUFPLHNCQUFzQjtJQUdqQyxZQUFvQixPQUFtQixFQUFVLFFBQW1CO1FBQWhELFlBQU8sR0FBUCxPQUFPLENBQVk7UUFBVSxhQUFRLEdBQVIsUUFBUSxDQUFXO1FBRjVELHNCQUFpQixHQUFHLEtBQUssQ0FBQztJQUVxQyxDQUFDO0lBRXhFLFFBQVE7UUFDTixJQUFJLElBQUksQ0FBQyxpQkFBaUIsRUFBRTtZQUMxQixJQUFJLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLGFBQWEsRUFBRSxhQUFhLENBQUMsSUFBSSxDQUFDLENBQUM7WUFDdkUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLGFBQWEsQ0FBQyxDQUFDO1NBQ3pDO1FBQ0QsSUFBSSxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxhQUFhLEVBQUUsYUFBYSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ3pFLENBQUM7SUFFTSxJQUFJO1FBQ1QsSUFBSSxDQUFDLFFBQVEsQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxhQUFhLEVBQUUsYUFBYSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQzFFLFVBQVUsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsY0FBYyxFQUFFLElBQUksRUFBRSxFQUFFLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDLENBQUMsYUFBYSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDckcsQ0FBQztJQUVELE1BQU0sQ0FBQyxPQUFZO1FBQ2pCLENBQUMsQ0FBQyxFQUFPLEVBQVEsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxZQUFZLENBQUMsQ0FBQztJQUNoRCxDQUFDOzttSEFwQlUsc0JBQXNCO3VHQUF0QixzQkFBc0Isc0dBTHZCLEVBQUU7MkZBS0Qsc0JBQXNCO2tCQVJsQyxTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSxvQkFBb0I7b0JBQzlCLGFBQWEsRUFBRSxpQkFBaUIsQ0FBQyxJQUFJO29CQUNyQyxRQUFRLEVBQUUsRUFBRTtvQkFDWixJQUFJLEVBQUU7d0JBQ0osS0FBSyxFQUFFLGFBQWEsQ0FBQyxRQUFRO3FCQUM5QjtpQkFDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgRWxlbWVudFJlZiwgT25Jbml0LCBSZW5kZXJlcjIsIFZpZXdFbmNhcHN1bGF0aW9uIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IENvbXBvbmVudExvYWRlciB9IGZyb20gJy4uL2NvbXBvbmVudC1sb2FkZXIvY29tcG9uZW50LWxvYWRlci5jbGFzcyc7XHJcbmltcG9ydCB7IGFuaW1hdGlvblRpbWUsIGNzc0NsYXNzTmFtZXMgfSBmcm9tICcuL21vZGFsLXN0eWxlcy5jbGFzcyc7XHJcblxyXG4vKipcclxuICogQmFja2dyb3VuZCBsYXllciBmb3IgbW9kYWxzLlxyXG4gKiBPdmVycmlkZSBjbGFzcyBuYW1lIHRvIHRoZW1lIGl0LlxyXG4gKiBAc2VlIHtAbGluayBjc3NDbGFzc05hbWVzfVxyXG4gKiBAaW50ZXJuYWxcclxuICovXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnbGliLW1vZGFsLWJhY2tkcm9wJyxcclxuICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxyXG4gIHRlbXBsYXRlOiAnJyxcclxuICBob3N0OiB7XHJcbiAgICBjbGFzczogY3NzQ2xhc3NOYW1lcy5iYWNrZHJvcCxcclxuICB9LFxyXG59KVxyXG5leHBvcnQgY2xhc3MgTW9kYWxCYWNrZHJvcENvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XHJcbiAgcHJpdmF0ZSBhbmltYXRpb25zRW5hYmxlZCA9IGZhbHNlO1xyXG4gIHByaXZhdGUgYmFja2Ryb3BMb2FkZXI6IENvbXBvbmVudExvYWRlcjxNb2RhbEJhY2tkcm9wQ29tcG9uZW50PiB8IHVuZGVmaW5lZDtcclxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGVsZW1lbnQ6IEVsZW1lbnRSZWYsIHByaXZhdGUgcmVuZGVyZXI6IFJlbmRlcmVyMikge31cclxuXHJcbiAgbmdPbkluaXQoKTogdm9pZCB7XHJcbiAgICBpZiAodGhpcy5hbmltYXRpb25zRW5hYmxlZCkge1xyXG4gICAgICB0aGlzLnJlbmRlcmVyLmFkZENsYXNzKHRoaXMuZWxlbWVudC5uYXRpdmVFbGVtZW50LCBjc3NDbGFzc05hbWVzLmZhZGUpO1xyXG4gICAgICB0aGlzLnJlZmxvdyh0aGlzLmVsZW1lbnQubmF0aXZlRWxlbWVudCk7XHJcbiAgICB9XHJcbiAgICB0aGlzLnJlbmRlcmVyLmFkZENsYXNzKHRoaXMuZWxlbWVudC5uYXRpdmVFbGVtZW50LCBjc3NDbGFzc05hbWVzLnNob3cpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGhpZGUoKSB7XHJcbiAgICB0aGlzLnJlbmRlcmVyLnJlbW92ZUNsYXNzKHRoaXMuZWxlbWVudC5uYXRpdmVFbGVtZW50LCBjc3NDbGFzc05hbWVzLnNob3cpO1xyXG4gICAgc2V0VGltZW91dCgoKSA9PiB0aGlzLmJhY2tkcm9wTG9hZGVyPy5oaWRlKCksIHRoaXMuYW5pbWF0aW9uc0VuYWJsZWQgPyBhbmltYXRpb25UaW1lLmJhY2tkcm9wIDogMCk7XHJcbiAgfVxyXG5cclxuICByZWZsb3coZWxlbWVudDogYW55KTogdm9pZCB7XHJcbiAgICAoKGJzOiBhbnkpOiB2b2lkID0+IGJzKShlbGVtZW50Lm9mZnNldEhlaWdodCk7XHJcbiAgfVxyXG59XHJcbiJdfQ==
@@ -0,0 +1,126 @@
1
+ import { Component, HostListener } from '@angular/core';
2
+ import { animationTime, cssClassNames } from './modal-styles.class';
3
+ import * as i0 from "@angular/core";
4
+ import * as i1 from "./modal-options.class";
5
+ /**
6
+ * Modal container component.
7
+ * @remarks
8
+ * All dynamic content `TemplateRef` or `Component` case will be drawn inside this.
9
+ * You can override css classes to theme it {@link cssClassNames}
10
+ * @internal
11
+ */
12
+ export class ModalContainerComponent {
13
+ constructor(options, _element, renderer) {
14
+ this._element = _element;
15
+ this.renderer = renderer;
16
+ this.isShown = false;
17
+ this.animationsEnabled = false;
18
+ this.isModalHiding = false;
19
+ this.clickStartedInContent = false;
20
+ this.config = Object.assign({}, options);
21
+ }
22
+ ngOnInit() {
23
+ if (this.animationsEnabled) {
24
+ this.renderer.addClass(this._element.nativeElement, cssClassNames.fade);
25
+ }
26
+ this.renderer.setStyle(this._element.nativeElement, 'display', 'block');
27
+ setTimeout(() => {
28
+ this.isShown = true;
29
+ this.renderer.addClass(this._element.nativeElement, cssClassNames.show);
30
+ }, this.animationsEnabled ? animationTime.backdrop : 0);
31
+ if (this._element.nativeElement) {
32
+ this._element.nativeElement.focus();
33
+ }
34
+ }
35
+ onClickStarted(event) {
36
+ this.clickStartedInContent = event.target !== this._element.nativeElement;
37
+ }
38
+ onClickStop(event) {
39
+ const clickedInBackdrop = event.target === this._element.nativeElement && !this.clickStartedInContent;
40
+ if (this.config.ignoreBackdropClick || this.config.backdrop === 'static' || !clickedInBackdrop) {
41
+ this.clickStartedInContent = false;
42
+ return;
43
+ }
44
+ this.hide();
45
+ }
46
+ onPopState() {
47
+ this.hide();
48
+ }
49
+ onEsc(event) {
50
+ if (!this.isShown) {
51
+ return;
52
+ }
53
+ if (event.keyCode === 27 || event.key === 'Escape' || event.key === 'Esc') {
54
+ event.preventDefault();
55
+ }
56
+ if (this.config.keyboard && this.config.id === this.modalService?.getActiveModal().config.id) {
57
+ this.hide();
58
+ }
59
+ }
60
+ ngOnDestroy() {
61
+ if (this.isShown) {
62
+ this._hide();
63
+ }
64
+ }
65
+ hide(result) {
66
+ if (this.isModalHiding || !this.isShown) {
67
+ return;
68
+ }
69
+ if (this.config.closeInterceptor) {
70
+ this.config.closeInterceptor().then(() => this._hide(), () => undefined);
71
+ return;
72
+ }
73
+ this._hide(result);
74
+ }
75
+ _hide(result) {
76
+ this.isModalHiding = true;
77
+ this.renderer.removeClass(this._element.nativeElement, cssClassNames.show);
78
+ setTimeout(() => {
79
+ this.isShown = false;
80
+ this.modalService?.hide(this.config.id, result);
81
+ this.isModalHiding = false;
82
+ }, this.animationsEnabled ? animationTime.modal : 0);
83
+ }
84
+ }
85
+ ModalContainerComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.0", ngImport: i0, type: ModalContainerComponent, deps: [{ token: i1.ModalOptions }, { token: i0.ElementRef }, { token: i0.Renderer2 }], target: i0.ɵɵFactoryTarget.Component });
86
+ ModalContainerComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.0", type: ModalContainerComponent, selector: "lib-modal-container", host: { attributes: { "role": "dialog", "tabindex": "-1" }, listeners: { "mousedown": "onClickStarted($event)", "click": "onClickStop($event)", "window:popstate": "onPopState()", "window:keydown.esc": "onEsc($event)" }, properties: { "attr.aria-modal": "true", "attr.aria-labelledby": "config.ariaLabelledBy", "attr.aria-describedby": "config.ariaDescribedby" }, classAttribute: "modal" }, ngImport: i0, template: `
87
+ <div [class]="'modal-dialog' + (config.class ? ' ' + config.class : '')" role="document" focusTrap>
88
+ <div class="modal-content">
89
+ <ng-content></ng-content>
90
+ </div>
91
+ </div>
92
+ `, isInline: true });
93
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.0", ngImport: i0, type: ModalContainerComponent, decorators: [{
94
+ type: Component,
95
+ args: [{
96
+ selector: 'lib-modal-container',
97
+ template: `
98
+ <div [class]="'modal-dialog' + (config.class ? ' ' + config.class : '')" role="document" focusTrap>
99
+ <div class="modal-content">
100
+ <ng-content></ng-content>
101
+ </div>
102
+ </div>
103
+ `,
104
+ host: {
105
+ class: 'modal',
106
+ role: 'dialog',
107
+ tabindex: '-1',
108
+ '[attr.aria-modal]': 'true',
109
+ '[attr.aria-labelledby]': 'config.ariaLabelledBy',
110
+ '[attr.aria-describedby]': 'config.ariaDescribedby',
111
+ },
112
+ }]
113
+ }], ctorParameters: function () { return [{ type: i1.ModalOptions }, { type: i0.ElementRef }, { type: i0.Renderer2 }]; }, propDecorators: { onClickStarted: [{
114
+ type: HostListener,
115
+ args: ['mousedown', ['$event']]
116
+ }], onClickStop: [{
117
+ type: HostListener,
118
+ args: ['click', ['$event']]
119
+ }], onPopState: [{
120
+ type: HostListener,
121
+ args: ['window:popstate']
122
+ }], onEsc: [{
123
+ type: HostListener,
124
+ args: ['window:keydown.esc', ['$event']]
125
+ }] } });
126
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9kYWwtY29udGFpbmVyLWNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25nLWNvbXBvbmVudHMvc3JjL2xpYi9zZXJ2aWNlcy9tb2RhbC1zZXJ2aWNlL21vZGFsLWNvbnRhaW5lci1jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBYyxZQUFZLEVBQWdDLE1BQU0sZUFBZSxDQUFDO0FBQ2xHLE9BQU8sRUFBRSxhQUFhLEVBQUUsYUFBYSxFQUFFLE1BQU0sc0JBQXNCLENBQUM7OztBQUlwRTs7Ozs7O0dBTUc7QUFtQkgsTUFBTSxPQUFPLHVCQUF1QjtJQVFsQyxZQUFZLE9BQXFCLEVBQVksUUFBb0IsRUFBVSxRQUFtQjtRQUFqRCxhQUFRLEdBQVIsUUFBUSxDQUFZO1FBQVUsYUFBUSxHQUFSLFFBQVEsQ0FBVztRQUp0RixZQUFPLEdBQUcsS0FBSyxDQUFDO1FBQ2hCLHNCQUFpQixHQUFHLEtBQUssQ0FBQztRQUMxQixrQkFBYSxHQUFHLEtBQUssQ0FBQztRQUN0QiwwQkFBcUIsR0FBRyxLQUFLLENBQUM7UUFFcEMsSUFBSSxDQUFDLE1BQU0sR0FBRyxNQUFNLENBQUMsTUFBTSxDQUFDLEVBQUUsRUFBRSxPQUFPLENBQUMsQ0FBQztJQUMzQyxDQUFDO0lBRUQsUUFBUTtRQUNOLElBQUksSUFBSSxDQUFDLGlCQUFpQixFQUFFO1lBQzFCLElBQUksQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsYUFBYSxFQUFFLGFBQWEsQ0FBQyxJQUFJLENBQUMsQ0FBQztTQUN6RTtRQUNELElBQUksQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsYUFBYSxFQUFFLFNBQVMsRUFBRSxPQUFPLENBQUMsQ0FBQztRQUN4RSxVQUFVLENBQ1IsR0FBRyxFQUFFO1lBQ0gsSUFBSSxDQUFD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QUFDLFlBQVksRUFBRSxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxFQUFFLEVBQUUsTUFBTSxDQUFDLENBQUM7WUFDaEQsSUFBSSxDQUFDLGFBQWEsR0FBRyxLQUFLLENBQUM7UUFDN0IsQ0FBQyxFQUNELElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDLENBQUMsYUFBYSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUNqRCxDQUFDO0lBQ0osQ0FBQzs7b0hBN0ZVLHVCQUF1Qjt3R0FBdkIsdUJBQXVCLGljQWhCeEI7Ozs7OztHQU1UOzJGQVVVLHVCQUF1QjtrQkFsQm5DLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLHFCQUFxQjtvQkFDL0IsUUFBUSxFQUFFOzs7Ozs7R0FNVDtvQkFDRCxJQUFJLEVBQUU7d0JBQ0osS0FBSyxFQUFFLE9BQU87d0JBQ2QsSUFBSSxFQUFFLFFBQVE7d0JBQ2QsUUFBUSxFQUFFLElBQUk7d0JBQ2QsbUJBQW1CLEVBQUUsTUFBTTt3QkFDM0Isd0JBQXdCLEVBQUUsdUJBQXVCO3dCQUNqRCx5QkFBeUIsRUFBRSx3QkFBd0I7cUJBQ3BEO2lCQUNGO29KQStCQyxjQUFjO3NCQURiLFlBQVk7dUJBQUMsV0FBVyxFQUFFLENBQUMsUUFBUSxDQUFDO2dCQU1yQyxXQUFXO3NCQURWLFlBQVk7dUJBQUMsT0FBTyxFQUFFLENBQUMsUUFBUSxDQUFDO2dCQVdqQyxVQUFVO3NCQURULFlBQVk7dUJBQUMsaUJBQWlCO2dCQU0vQixLQUFLO3NCQURKLFlBQVk7dUJBQUMsb0JBQW9CLEVBQUUsQ0FBQyxRQUFRLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEVsZW1lbnRSZWYsIEhvc3RMaXN0ZW5lciwgT25EZXN0cm95LCBPbkluaXQsIFJlbmRlcmVyMiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBhbmltYXRpb25UaW1lLCBjc3NDbGFzc05hbWVzIH0gZnJvbSAnLi9tb2RhbC1zdHlsZXMuY2xhc3MnO1xyXG5pbXBvcnQgeyBNb2RhbE9wdGlvbnMgfSBmcm9tICcuL21vZGFsLW9wdGlvbnMuY2xhc3MnO1xyXG5pbXBvcnQgeyBNb2RhbFNlcnZpY2UgfSBmcm9tICcuL21vZGFsLXNlcnZpY2UnO1xyXG5cclxuLyoqXHJcbiAqIE1vZGFsIGNvbnRhaW5lciBjb21wb25lbnQuXHJcbiAqIEByZW1hcmtzXHJcbiAqIEFsbCBkeW5hbWljIGNvbnRlbnQgYFRlbXBsYXRlUmVmYCBvciBgQ29tcG9uZW50YCBjYXNlIHdpbGwgYmUgZHJhd24gaW5zaWRlIHRoaXMuXHJcbiAqIFlvdSBjYW4gb3ZlcnJpZGUgY3NzIGNsYXNzZXMgdG8gdGhlbWUgaXQge0BsaW5rIGNzc0NsYXNzTmFtZXN9XHJcbiAqIEBpbnRlcm5hbFxyXG4gKi9cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdsaWItbW9kYWwtY29udGFpbmVyJyxcclxuICB0ZW1wbGF0ZTogYFxyXG4gICAgPGRpdiBbY2xhc3NdPVwiJ21vZGFsLWRpYWxvZycgKyAoY29uZmlnLmNsYXNzID8gJyAnICsgY29uZmlnLmNsYXNzIDogJycpXCIgcm9sZT1cImRvY3VtZW50XCIgZm9jdXNUcmFwPlxyXG4gICAgICA8ZGl2IGNsYXNzPVwibW9kYWwtY29udGVudFwiPlxyXG4gICAgICAgIDxuZy1jb250ZW50PjwvbmctY29udGVudD5cclxuICAgICAgPC9kaXY+XHJcbiAgICA8L2Rpdj5cclxuICBgLFxyXG4gIGhvc3Q6IHtcclxuICAgIGNsYXNzOiAnbW9kYWwnLFxyXG4gICAgcm9sZTogJ2RpYWxvZycsXHJcbiAgICB0YWJpbmRleDogJy0xJyxcclxuICAgICdbYXR0ci5hcmlhLW1vZGFsXSc6ICd0cnVlJyxcclxuICAgICdbYXR0ci5hcmlhLWxhYmVsbGVkYnldJzogJ2NvbmZpZy5hcmlhTGFiZWxsZWRCeScsXHJcbiAgICAnW2F0dHIuYXJpYS1kZXNjcmliZWRieV0nOiAnY29uZmlnLmFyaWFEZXNjcmliZWRieScsXHJcbiAgfSxcclxufSlcclxuZXhwb3J0IGNsYXNzIE1vZGFsQ29udGFpbmVyQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3kge1xyXG4gIHB1YmxpYyBsZXZlbD86IG51bWJlcjtcclxuICBwdWJsaWMgY29uZmlnOiBNb2RhbE9wdGlvbnM7XHJcbiAgcHVibGljIG1vZGFsU2VydmljZT86IE1vZGFsU2VydmljZTtcclxuICBwcml2YXRlIGlzU2hvd24gPSBmYWxzZTtcclxuICBwcml2YXRlIGFuaW1hdGlvbnNFbmFibGVkID0gZmFsc2U7XHJcbiAgcHJpdmF0ZSBpc01vZGFsSGlkaW5nID0gZmFsc2U7XHJcbiAgcHJpdmF0ZSBjbGlja1N0YXJ0ZWRJbkNvbnRlbnQgPSBmYWxzZTtcclxuICBjb25zdHJ1Y3RvcihvcHRpb25zOiBNb2RhbE9wdGlvbnMsIHByb3RlY3RlZCBfZWxlbWVudDogRWxlbWVudFJlZiwgcHJpdmF0ZSByZW5kZXJlcjogUmVuZGVyZXIyKSB7XHJcbiAgICB0aGlzLmNvbmZpZyA9IE9iamVjdC5hc3NpZ24oe30sIG9wdGlvbnMpO1xyXG4gIH1cclxuXHJcbiAgbmdPbkluaXQoKTogdm9pZCB7XHJcbiAgICBpZiAodGhpcy5hbmltYXRpb25zRW5hYmxlZCkge1xyXG4gICAgICB0aGlzLnJlbmRlcmVyLmFkZENsYXNzKHRoaXMuX2VsZW1lbnQubmF0aXZlRWxlbWVudCwgY3NzQ2xhc3NOYW1lcy5mYWRlKTtcclxuICAgIH1cclxuICAgIHRoaXMucmVuZGVyZXIuc2V0U3R5bGUodGhpcy5fZWxlbWVudC5uYXRpdmVFbGVtZW50LCAnZGlzcGxheScsICdibG9jaycpO1xyXG4gICAgc2V0VGltZW91dChcclxuICAgICAgKCkgPT4ge1xyXG4gICAgICAgIHRoaXMuaXNTaG93biA9IHRydWU7XHJcbiAgICAgICAgdGhpcy5yZW5kZXJlci5hZGRDbGFzcyh0aGlzLl9lbGVtZW50Lm5hdGl2ZUVsZW1lbnQsIGNzc0NsYXNzTmFtZXMuc2hvdyk7XHJcbiAgICAgIH0sXHJcbiAgICAgIHRoaXMuYW5pbWF0aW9uc0VuYWJsZWQgPyBhbmltYXRpb25UaW1lLmJhY2tkcm9wIDogMFxyXG4gICAgKTtcclxuICAgIGlmICh0aGlzLl9lbGVtZW50Lm5hdGl2ZUVsZW1lbnQpIHtcclxuICAgICAgdGhpcy5fZWxlbWVudC5uYXRpdmVFbGVtZW50LmZvY3VzKCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBASG9zdExpc3RlbmVyKCdtb3VzZWRvd24nLCBbJyRldmVudCddKVxyXG4gIG9uQ2xpY2tTdGFydGVkKGV2ZW50OiBNb3VzZUV2ZW50KTogdm9pZCB7XHJcbiAgICB0aGlzLmNsaWNrU3RhcnRlZEluQ29udGVudCA9IGV2ZW50LnRhcmdldCAhPT0gdGhpcy5fZWxlbWVudC5uYXRpdmVFbGVtZW50O1xyXG4gIH1cclxuXHJcbiAgQEhvc3RMaXN0ZW5lcignY2xpY2snLCBbJyRldmVudCddKVxyXG4gIG9uQ2xpY2tTdG9wKGV2ZW50OiBNb3VzZUV2ZW50KTogdm9pZCB7XHJcbiAgICBjb25zdCBjbGlja2VkSW5CYWNrZHJvcCA9IGV2ZW50LnRhcmdldCA9PT0gdGhpcy5fZWxlbWVudC5uYXRpdmVFbGVtZW50ICYmICF0aGlzLmNsaWNrU3RhcnRlZEluQ29udGVudDtcclxuICAgIGlmICh0aGlzLmNvbmZpZy5pZ25vcmVCYWNrZHJvcENsaWNrIHx8IHRoaXMuY29uZmlnLmJhY2tkcm9wID09PSAnc3RhdGljJyB8fCAhY2xpY2tlZEluQmFja2Ryb3ApIHtcclxuICAgICAgdGhpcy5jbGlja1N0YXJ0ZWRJbkNvbnRlbnQgPSBmYWxzZTtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG4gICAgdGhpcy5oaWRlKCk7XHJcbiAgfVxyXG5cclxuICBASG9zdExpc3RlbmVyKCd3aW5kb3c6cG9wc3RhdGUnKVxyXG4gIG9uUG9wU3RhdGUoKTogdm9pZCB7XHJcbiAgICB0aGlzLmhpZGUoKTtcclxuICB9XHJcblxyXG4gIEBIb3N0TGlzdGVuZXIoJ3dpbmRvdzprZXlkb3duLmVzYycsIFsnJGV2ZW50J10pXHJcbiAgb25Fc2MoZXZlbnQ6IEtleWJvYXJkRXZlbnQpOiB2b2lkIHtcclxuICAgIGlmICghdGhpcy5pc1Nob3duKSB7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuICAgIGlmIChldmVudC5rZXlDb2RlID09PSAyNyB8fCBldmVudC5rZXkgPT09ICdFc2NhcGUnIHx8IGV2ZW50LmtleSA9PT0gJ0VzYycpIHtcclxuICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcclxuICAgIH1cclxuICAgIGlmICh0aGlzLmNvbmZpZy5rZXlib2FyZCAmJiB0aGlzLmNvbmZpZy5pZCA9PT0gdGhpcy5tb2RhbFNlcnZpY2U/LmdldEFjdGl2ZU1vZGFsKCkuY29uZmlnLmlkKSB7XHJcbiAgICAgIHRoaXMuaGlkZSgpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XHJcbiAgICBpZiAodGhpcy5pc1Nob3duKSB7XHJcbiAgICAgIHRoaXMuX2hpZGUoKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIGhpZGUocmVzdWx0PzogYW55KTogdm9pZCB7XHJcbiAgICBpZiAodGhpcy5pc01vZGFsSGlkaW5nIHx8ICF0aGlzLmlzU2hvd24pIHtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG4gICAgaWYgKHRoaXMuY29uZmlnLmNsb3NlSW50ZXJjZXB0b3IpIHtcclxuICAgICAgdGhpcy5jb25maWcuY2xvc2VJbnRlcmNlcHRvcigpLnRoZW4oXHJcbiAgICAgICAgKCkgPT4gdGhpcy5faGlkZSgpLFxyXG4gICAgICAgICgpID0+IHVuZGVmaW5lZFxyXG4gICAgICApO1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcbiAgICB0aGlzLl9oaWRlKHJlc3VsdCk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIF9oaWRlKHJlc3VsdD86IGFueSk6IHZvaWQge1xyXG4gICAgdGhpcy5pc01vZGFsSGlkaW5nID0gdHJ1ZTtcclxuICAgIHRoaXMucmVuZGVyZXIucmVtb3ZlQ2xhc3ModGhpcy5fZWxlbWVudC5uYXRpdmVFbGVtZW50LCBjc3NDbGFzc05hbWVzLnNob3cpO1xyXG4gICAgc2V0VGltZW91dChcclxuICAgICAgKCkgPT4ge1xyXG4gICAgICAgIHRoaXMuaXNTaG93biA9IGZhbHNlO1xyXG4gICAgICAgIHRoaXMubW9kYWxTZXJ2aWNlPy5oaWRlKHRoaXMuY29uZmlnLmlkLCByZXN1bHQpO1xyXG4gICAgICAgIHRoaXMuaXNNb2RhbEhpZGluZyA9IGZhbHNlO1xyXG4gICAgICB9LFxyXG4gICAgICB0aGlzLmFuaW1hdGlvbnNFbmFibGVkID8gYW5pbWF0aW9uVGltZS5tb2RhbCA6IDBcclxuICAgICk7XHJcbiAgfVxyXG59XHJcbiJdfQ==
@@ -0,0 +1,34 @@
1
+ import { Injectable, InjectionToken } from '@angular/core';
2
+ import * as i0 from "@angular/core";
3
+ /**
4
+ * Modals option can be passed to a specific modal from {@link ModalService.show} or set globbaly using the injection token {@link MODAL_CONFIG_DEFAULT_OVERRIDE}.
5
+ * @remarks
6
+ * Modal specific options are merged with global options.
7
+ * @see {@link modalConfigDefaults} for defaults.
8
+ * @public
9
+ */
10
+ export class ModalOptions {
11
+ }
12
+ ModalOptions.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.0", ngImport: i0, type: ModalOptions, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
13
+ ModalOptions.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.3.0", ngImport: i0, type: ModalOptions });
14
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.0", ngImport: i0, type: ModalOptions, decorators: [{
15
+ type: Injectable
16
+ }] });
17
+ /**
18
+ * Default option values.
19
+ */
20
+ export const modalConfigDefaults = {
21
+ backdrop: true,
22
+ keyboard: true,
23
+ show: false,
24
+ ignoreBackdropClick: false,
25
+ class: '',
26
+ animated: true,
27
+ initialState: {},
28
+ closeInterceptor: void 0,
29
+ };
30
+ /**
31
+ * Use this injection token to set global options.
32
+ */
33
+ export const MODAL_CONFIG_DEFAULT_OVERRIDE = new InjectionToken('override-default-config');
34
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9kYWwtb3B0aW9ucy5jbGFzcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25nLWNvbXBvbmVudHMvc3JjL2xpYi9zZXJ2aWNlcy9tb2RhbC1zZXJ2aWNlL21vZGFsLW9wdGlvbnMuY2xhc3MudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxjQUFjLEVBQWtCLE1BQU0sZUFBZSxDQUFDOztBQUUzRTs7Ozs7O0dBTUc7QUFFSCxNQUFNLE9BQU8sWUFBWTs7eUdBQVosWUFBWTs2R0FBWixZQUFZOzJGQUFaLFlBQVk7a0JBRHhCLFVBQVU7O0FBMkRYOztHQUVHO0FBQ0gsTUFBTSxDQUFDLE1BQU0sbUJBQW1CLEdBQWlCO0lBQy9DLFFBQVEsRUFBRSxJQUFJO0lBQ2QsUUFBUSxFQUFFLElBQUk7SUFDZCxJQUFJLEVBQUUsS0FBSztJQUNYLG1CQUFtQixFQUFFLEtBQUs7SUFDMUIsS0FBSyxFQUFFLEVBQUU7SUFDVCxRQUFRLEVBQUUsSUFBSTtJQUNkLFlBQVksRUFBRSxFQUFFO0lBQ2hCLGdCQUFnQixFQUFFLEtBQUssQ0FBQztDQUN6QixDQUFDO0FBRUY7O0dBRUc7QUFDSCxNQUFNLENBQUMsTUFBTSw2QkFBNkIsR0FBaUMsSUFBSSxjQUFjLENBQWUseUJBQXlCLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUsIEluamVjdGlvblRva2VuLCBTdGF0aWNQcm92aWRlciB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5cclxuLyoqXHJcbiAqIE1vZGFscyBvcHRpb24gY2FuIGJlIHBhc3NlZCB0byBhIHNwZWNpZmljIG1vZGFsIGZyb20ge0BsaW5rIE1vZGFsU2VydmljZS5zaG93fSBvciBzZXQgZ2xvYmJhbHkgdXNpbmcgdGhlIGluamVjdGlvbiB0b2tlbiB7QGxpbmsgTU9EQUxfQ09ORklHX0RFRkFVTFRfT1ZFUlJJREV9LlxyXG4gKiBAcmVtYXJrc1xyXG4gKiBNb2RhbCBzcGVjaWZpYyBvcHRpb25zIGFyZSBtZXJnZWQgd2l0aCBnbG9iYWwgb3B0aW9ucy5cclxuICogQHNlZSB7QGxpbmsgbW9kYWxDb25maWdEZWZhdWx0c30gZm9yIGRlZmF1bHRzLlxyXG4gKiBAcHVibGljXHJcbiAqL1xyXG5ASW5qZWN0YWJsZSgpXHJcbmV4cG9ydCBjbGFzcyBNb2RhbE9wdGlvbnM8VCA9IFJlY29yZDxzdHJpbmcsIHVua25vd24+PiB7XHJcbiAgLyoqXHJcbiAgICogIElkIGZvciBvcGVuZWQgbW9kYWwuIElmIG5vdCBzZXQgYSByYW5kb20gb25lIGlzIGdlbmVyYXRlZC5cclxuICAgKi9cclxuICBpZD86IG51bWJlciB8IHN0cmluZztcclxuICAvKipcclxuICAgKiBJZiBzdGF0aWMgaXMgc2V0IHRoZSBtb2RhbCB3aWxsIG5vdCBjbG9zZSB3aGVuIGNsaWNraW5nIG91dHNpZGUgb2YgbW9kYWwuXHJcbiAgICogQHJlbWFya3NcclxuICAgKiBLZXlib2FyZCBldmVudCAoZXNjYXBlIGtleSkgc3RpbGxzIGFwcGxpZXMuIElmIHlvdSBtdXN0IGdldCBhIHJlc3VsdCB0aGVuIGFsc28gc2V0IGtleWJvYXJkIHRvIGZhbHNlLlxyXG4gICAqL1xyXG4gIGJhY2tkcm9wPzogYm9vbGVhbiB8ICdzdGF0aWMnO1xyXG4gIC8qKlxyXG4gICAqIENsb3NlcyB0aGUgbW9kYWwgd2hlbiBlc2NhcGUga2V5IGlzIHByZXNzZWQuXHJcbiAgICovXHJcbiAga2V5Ym9hcmQ/OiBib29sZWFuO1xyXG4gIC8qKlxyXG4gICAqIFNob3dzIHRoZSBtb2RhbCB3aGVuIGluaXRpYWxpemVkLlxyXG4gICAqL1xyXG4gIHNob3c/OiBib29sZWFuO1xyXG4gIC8qKlxyXG4gICAqIElnbm9yZSB0aGUgYmFja2Ryb3AgY2xpY2suIFByZXR0eSBtdWNoIHRoZSBzYW1lIGFzIGJhY2tkcm9wIHN0YXRpYy5cclxuICAgKi9cclxuICBpZ25vcmVCYWNrZHJvcENsaWNrPzogYm9vbGVhbjtcclxuICAvKipcclxuICAgKiBDc3MgY2xhc3MgZm9yIG9wZW5lZCBtb2RhbC5cclxuICAgKi9cclxuICBjbGFzcz86IHN0cmluZztcclxuICAvKipcclxuICAgKiBUb2dnbGUgYW5pbWF0aW9uLlxyXG4gICAqL1xyXG4gIGFuaW1hdGVkPzogYm9vbGVhbjtcclxuICAvKipcclxuICAgKiBNb2RhbCBpbml0aWFsIGRhdGEuIFxyXG4gICAqIEByZW1hcmtzXHJcbiAgICogVGhpcyBkYXRhIG11c3QgYmUga25vd24gcHJvcGVydGllcyBvZiBjb250ZW50IGNvbXBvbmVudC5cclxuICAgKi9cclxuICBpbml0aWFsU3RhdGU/OiBQYXJ0aWFsPFQ+O1xyXG4gIC8qKlxyXG4gICAqIEZ1bmN0aW9uIHRvIGludGVyY2VwdCB0aGUgY2xvc3VyZS5cclxuICAgKiBAcmVtYXJrc1xyXG4gICAqIFlvdSBjYW4gdXNlIHRvIGNhdGNoIHRoZSBjbG9zZSBldmVudCBhbmQgZXZlbiBwcmV2ZW50IGl0IGZyb20gY2xvc2luZy5cclxuICAgKi9cclxuICBjbG9zZUludGVyY2VwdG9yPzogQ2xvc2VJbnRlcmNlcHRvckZuO1xyXG4gIC8qKlxyXG4gICAqIE1vZGFsIHN0YXRpYyBwcm92aWRlcnMuXHJcbiAgICogQHNlZSB7QGxpbmsgaHR0cHM6Ly9hbmd1bGFyLmlvL2d1aWRlL2dsb3NzYXJ5I2RpLXRva2VuIHwgSW5qZWN0aW9uIFRva2VufVxyXG4gICAqL1xyXG4gIHByb3ZpZGVycz86IFN0YXRpY1Byb3ZpZGVyW107XHJcbiAgLyoqXHJcbiAgICogYXJpYS1sYWJlbGxlZGJ5IGF0dHJpYnV0ZSB2YWx1ZSB0byBzZXQgb24gdGhlIG1vZGFsIHdpbmRvdy5cclxuICAgKi9cclxuICBhcmlhTGFiZWxsZWRCeT86IHN0cmluZztcclxuICAvKipcclxuICAgKiBhcmlhLWRlc2NyaWJlZGJ5IGF0dHJpYnV0ZSB2YWx1ZSB0byBzZXQgb24gdGhlIG1vZGFsIHdpbmRvdy5cclxuICAgKi9cclxuICBhcmlhRGVzY3JpYmVkYnk/OiBzdHJpbmc7XHJcbn1cclxuXHJcbi8qKlxyXG4gKiBEZWZhdWx0IG9wdGlvbiB2YWx1ZXMuXHJcbiAqL1xyXG5leHBvcnQgY29uc3QgbW9kYWxDb25maWdEZWZhdWx0czogTW9kYWxPcHRpb25zID0ge1xyXG4gIGJhY2tkcm9wOiB0cnVlLFxyXG4gIGtleWJvYXJkOiB0cnVlLFxyXG4gIHNob3c6IGZhbHNlLFxyXG4gIGlnbm9yZUJhY2tkcm9wQ2xpY2s6IGZhbHNlLFxyXG4gIGNsYXNzOiAnJyxcclxuICBhbmltYXRlZDogdHJ1ZSxcclxuICBpbml0aWFsU3RhdGU6IHt9LFxyXG4gIGNsb3NlSW50ZXJjZXB0b3I6IHZvaWQgMCxcclxufTtcclxuXHJcbi8qKlxyXG4gKiBVc2UgdGhpcyBpbmplY3Rpb24gdG9rZW4gdG8gc2V0IGdsb2JhbCBvcHRpb25zLlxyXG4gKi9cclxuZXhwb3J0IGNvbnN0IE1PREFMX0NPTkZJR19ERUZBVUxUX09WRVJSSURFOiBJbmplY3Rpb25Ub2tlbjxNb2RhbE9wdGlvbnM+ID0gbmV3IEluamVjdGlvblRva2VuPE1vZGFsT3B0aW9ucz4oJ292ZXJyaWRlLWRlZmF1bHQtY29uZmlnJyk7XHJcblxyXG4vKipcclxuICogQ2xvc2UgaW50ZXJjZXB0b3IgcHJvbWlzZS5cclxuICovXHJcbmV4cG9ydCB0eXBlIENsb3NlSW50ZXJjZXB0b3JGbiA9ICgpID0+IFByb21pc2U8dm9pZD47XHJcbiJdfQ==