@indice/ng-components 0.2.115 → 0.2.116
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/bundles/indice-ng-components.umd.js +3725 -0
- package/bundles/indice-ng-components.umd.js.map +1 -0
- package/{esm2020/indice-ng-components.mjs → esm2015/indice-ng-components.js} +0 -0
- package/{esm2020/lib/controls/avatar-initials/avatar-initials.component.mjs → esm2015/lib/controls/avatar-initials/avatar-initials.component.js} +8 -5
- package/esm2015/lib/controls/collapsible-panel/collapsible-panel.component.js +23 -0
- package/esm2015/lib/controls/date-picker/date-picker.component.js +269 -0
- package/esm2015/lib/controls/drop-down-menu/drop-down-menu.component.js +72 -0
- package/{esm2020/lib/controls/kpi-tile/kpi-tile.component.mjs → esm2015/lib/controls/kpi-tile/kpi-tile.component.js} +8 -5
- package/{esm2020/lib/controls/list-view/list-column.component.mjs → esm2015/lib/controls/list-view/list-column.component.js} +3 -3
- package/{esm2020/lib/controls/list-view/list-details-section.component.mjs → esm2015/lib/controls/list-view/list-details-section.component.js} +3 -3
- package/{esm2020/lib/controls/list-view/list-tile.component.mjs → esm2015/lib/controls/list-view/list-tile.component.js} +3 -3
- package/esm2015/lib/controls/list-view/list-view-empty-state.component.js +32 -0
- package/esm2015/lib/controls/list-view/list-view.component.js +186 -0
- package/{esm2020/lib/controls/pager/pager.component.mjs → esm2015/lib/controls/pager/pager.component.js} +8 -5
- package/esm2015/lib/controls/side-pane/side-pane.component.js +76 -0
- package/esm2015/lib/controls/skeleton-loader/skeleton-loader.component.js +29 -0
- package/{esm2020/lib/controls/toaster/toaster-container.component.mjs → esm2015/lib/controls/toaster/toaster-container.component.js} +8 -5
- package/esm2015/lib/controls/toaster/toaster.component.js +34 -0
- package/{esm2020/lib/controls/toggle/toggle.component.mjs → esm2015/lib/controls/toggle/toggle.component.js} +10 -6
- package/{esm2020/lib/directives/click-outside.directive.mjs → esm2015/lib/directives/click-outside.directive.js} +3 -3
- package/{esm2020/lib/directives/dynamic-component-host.directive.mjs → esm2015/lib/directives/dynamic-component-host.directive.js} +3 -3
- package/esm2015/lib/helpers/base-list.component.js +182 -0
- package/{esm2020/lib/icons.mjs → esm2015/lib/icons.js} +0 -0
- package/{esm2020/lib/layouts/shell/shell-footer/shell-footer.component.mjs → esm2015/lib/layouts/shell/shell-footer/shell-footer.component.js} +8 -5
- package/esm2015/lib/layouts/shell/shell-header/shell-header.component.js +118 -0
- package/esm2015/lib/layouts/shell/shell-layout/shell-layout.component.js +106 -0
- package/esm2015/lib/layouts/views/form-layout/form-layout.component.js +85 -0
- package/esm2015/lib/layouts/views/model-view-layout/model-view-layout.component.js +55 -0
- package/{esm2020/lib/layouts/views/side-view-layout/side-view-layout.component.mjs → esm2015/lib/layouts/views/side-view-layout/side-view-layout.component.js} +8 -5
- package/esm2015/lib/layouts/views/view-layout/view-layout.component.js +110 -0
- package/{esm2020/lib/ng-components.module.mjs → esm2015/lib/ng-components.module.js} +6 -9
- package/{esm2020/lib/pages/auth/auth-callback/auth-callback.component.mjs → esm2015/lib/pages/auth/auth-callback/auth-callback.component.js} +10 -6
- package/{esm2020/lib/pages/auth/auth-renew/auth-renew.component.mjs → esm2015/lib/pages/auth/auth-renew/auth-renew.component.js} +3 -3
- package/{esm2020/lib/pages/auth/logged-out/logged-out.component.mjs → esm2015/lib/pages/auth/logged-out/logged-out.component.js} +9 -5
- package/esm2015/lib/pages/http-status/error/error.component.js +20 -0
- package/esm2015/lib/pages/http-status/page-not-found/page-not-found.component.js +18 -0
- package/esm2015/lib/pages/http-status/unauthorized/unauthorized.component.js +17 -0
- package/{esm2020/lib/pipes/address.pipe.mjs → esm2015/lib/pipes/address.pipe.js} +3 -3
- package/{esm2020/lib/pipes/duration-format.pipe.mjs → esm2015/lib/pipes/duration-format.pipe.js} +3 -3
- package/{esm2020/lib/services/component-loader/component-loader-options.class.mjs → esm2015/lib/services/component-loader/component-loader-options.class.js} +0 -0
- package/esm2015/lib/services/component-loader/component-loader.class.js +192 -0
- package/{esm2020/lib/services/component-loader/component-loader.factory.mjs → esm2015/lib/services/component-loader/component-loader.factory.js} +3 -3
- package/{esm2020/lib/services/component-loader/content-ref.class.mjs → esm2015/lib/services/component-loader/content-ref.class.js} +0 -0
- package/{esm2020/lib/services/modal-service/modal-backdrop-component.mjs → esm2015/lib/services/modal-service/modal-backdrop-component.js} +5 -5
- package/esm2015/lib/services/modal-service/modal-container-component.js +128 -0
- package/esm2015/lib/services/modal-service/modal-options.class.js +35 -0
- package/esm2015/lib/services/modal-service/modal-service.js +220 -0
- package/{esm2020/lib/services/modal-service/modal-styles.class.mjs → esm2015/lib/services/modal-service/modal-styles.class.js} +0 -0
- package/{esm2020/lib/services/modal-service/modal.class.mjs → esm2015/lib/services/modal-service/modal.class.js} +3 -3
- package/{esm2020/lib/services/toaster.service.mjs → esm2015/lib/services/toaster.service.js} +3 -3
- package/{esm2020/lib/tokens.mjs → esm2015/lib/tokens.js} +0 -0
- package/{esm2020/lib/types.mjs → esm2015/lib/types.js} +0 -0
- package/{esm2020/public-api.mjs → esm2015/public-api.js} +0 -0
- package/{fesm2020/indice-ng-components.mjs → fesm2015/indice-ng-components.js} +303 -200
- package/fesm2015/indice-ng-components.js.map +1 -0
- package/lib/ng-components.module.d.ts +1 -4
- package/lib/services/modal-service/modal-options.class.d.ts +2 -1
- package/package.json +6 -19
- package/esm2020/lib/controls/collapsible-panel/collapsible-panel.component.mjs +0 -20
- package/esm2020/lib/controls/date-picker/date-picker.component.mjs +0 -260
- package/esm2020/lib/controls/drop-down-menu/drop-down-menu.component.mjs +0 -68
- package/esm2020/lib/controls/list-view/list-view-empty-state.component.mjs +0 -29
- package/esm2020/lib/controls/list-view/list-view.component.mjs +0 -183
- package/esm2020/lib/controls/side-pane/side-pane.component.mjs +0 -72
- package/esm2020/lib/controls/skeleton-loader/skeleton-loader.component.mjs +0 -25
- package/esm2020/lib/controls/toaster/toaster.component.mjs +0 -31
- package/esm2020/lib/helpers/base-list.component.mjs +0 -181
- package/esm2020/lib/layouts/shell/shell-header/shell-header.component.mjs +0 -113
- package/esm2020/lib/layouts/shell/shell-layout/shell-layout.component.mjs +0 -101
- package/esm2020/lib/layouts/views/form-layout/form-layout.component.mjs +0 -80
- package/esm2020/lib/layouts/views/model-view-layout/model-view-layout.component.mjs +0 -51
- package/esm2020/lib/layouts/views/view-layout/view-layout.component.mjs +0 -104
- package/esm2020/lib/pages/http-status/error/error.component.mjs +0 -17
- package/esm2020/lib/pages/http-status/page-not-found/page-not-found.component.mjs +0 -15
- package/esm2020/lib/pages/http-status/unauthorized/unauthorized.component.mjs +0 -14
- package/esm2020/lib/services/component-loader/component-loader.class.mjs +0 -188
- package/esm2020/lib/services/modal-service/modal-container-component.mjs +0 -126
- package/esm2020/lib/services/modal-service/modal-options.class.mjs +0 -34
- package/esm2020/lib/services/modal-service/modal-service.mjs +0 -219
- package/fesm2015/indice-ng-components.mjs +0 -3129
- package/fesm2015/indice-ng-components.mjs.map +0 -1
- package/fesm2020/indice-ng-components.mjs.map +0 -1
|
@@ -0,0 +1,192 @@
|
|
|
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
|
+
var _a, _b, _c;
|
|
108
|
+
if (!this.componentRef) {
|
|
109
|
+
throw Error('No attached component found to hide');
|
|
110
|
+
}
|
|
111
|
+
this.onBeforeHide.next(this.componentRef.instance);
|
|
112
|
+
const componentEl = this.componentRef.location.nativeElement;
|
|
113
|
+
componentEl.parentNode.removeChild(componentEl);
|
|
114
|
+
if ((_a = this.contentRef) === null || _a === void 0 ? void 0 : _a.componentRef) {
|
|
115
|
+
this.contentRef.componentRef.destroy();
|
|
116
|
+
}
|
|
117
|
+
if (this.vcr && ((_b = this.contentRef) === null || _b === void 0 ? void 0 : _b.viewRef)) {
|
|
118
|
+
this.vcr.remove(this.vcr.indexOf(this.contentRef.viewRef));
|
|
119
|
+
}
|
|
120
|
+
if ((_c = this.contentRef) === null || _c === void 0 ? void 0 : _c.viewRef) {
|
|
121
|
+
this.contentRef.viewRef.destroy();
|
|
122
|
+
}
|
|
123
|
+
this.contentRef = void 0;
|
|
124
|
+
this.componentRef = void 0;
|
|
125
|
+
this.onHidden.next(id ? { id, result } : null);
|
|
126
|
+
return this;
|
|
127
|
+
}
|
|
128
|
+
getInnerComponent() {
|
|
129
|
+
return this.innerComponent;
|
|
130
|
+
}
|
|
131
|
+
markComponentsForCheck() {
|
|
132
|
+
var _a;
|
|
133
|
+
if ((_a = this.contentRef) === null || _a === void 0 ? void 0 : _a.componentRef) {
|
|
134
|
+
this.innerComponent = this.contentRef.componentRef.instance;
|
|
135
|
+
this.contentRef.componentRef.changeDetectorRef.markForCheck();
|
|
136
|
+
this.contentRef.componentRef.changeDetectorRef.detectChanges();
|
|
137
|
+
}
|
|
138
|
+
this.componentRef.changeDetectorRef.markForCheck();
|
|
139
|
+
this.componentRef.changeDetectorRef.detectChanges();
|
|
140
|
+
}
|
|
141
|
+
createComponentAndAttachToView(options) {
|
|
142
|
+
var _a;
|
|
143
|
+
const injector = Injector.create({
|
|
144
|
+
providers: this.providers,
|
|
145
|
+
parent: this.injector,
|
|
146
|
+
});
|
|
147
|
+
this.componentRef = this.componentFactory.create(injector, (_a = this.contentRef) === null || _a === void 0 ? void 0 : _a.nodes);
|
|
148
|
+
this.applicationRef.attachView(this.componentRef.hostView);
|
|
149
|
+
this.instance = this.componentRef.instance;
|
|
150
|
+
Object.assign(this.componentRef.instance, options);
|
|
151
|
+
}
|
|
152
|
+
appendContentToContainer() {
|
|
153
|
+
var _a, _b;
|
|
154
|
+
if (this.container instanceof ElementRef) {
|
|
155
|
+
this.container.nativeElement.appendChild((_a = this.componentRef) === null || _a === void 0 ? void 0 : _a.location.nativeElement);
|
|
156
|
+
}
|
|
157
|
+
if (typeof this.container === 'string' && typeof document !== 'undefined') {
|
|
158
|
+
const selectedElement = document.querySelector(this.container) || document.querySelector(this.containerDefaultSelector);
|
|
159
|
+
if (!selectedElement) {
|
|
160
|
+
return;
|
|
161
|
+
}
|
|
162
|
+
selectedElement.appendChild((_b = this.componentRef) === null || _b === void 0 ? void 0 : _b.location.nativeElement);
|
|
163
|
+
}
|
|
164
|
+
}
|
|
165
|
+
getContentRef(content, context, initialState) {
|
|
166
|
+
//TemplateRef case
|
|
167
|
+
if (content instanceof TemplateRef) {
|
|
168
|
+
if (this.vcr) {
|
|
169
|
+
const viewRef = this.vcr.createEmbeddedView(content, context);
|
|
170
|
+
viewRef.markForCheck();
|
|
171
|
+
return new ContentRef([viewRef.rootNodes], viewRef);
|
|
172
|
+
}
|
|
173
|
+
const viewRef = content.createEmbeddedView({});
|
|
174
|
+
this.applicationRef.attachView(viewRef);
|
|
175
|
+
return new ContentRef([viewRef.rootNodes], viewRef);
|
|
176
|
+
}
|
|
177
|
+
//Component case
|
|
178
|
+
if (typeof content === 'function') {
|
|
179
|
+
const contentCf = this.cfr.resolveComponentFactory(content);
|
|
180
|
+
const injector = Injector.create({
|
|
181
|
+
providers: this.providers,
|
|
182
|
+
parent: this.injector,
|
|
183
|
+
});
|
|
184
|
+
const componentRef = contentCf.create(injector);
|
|
185
|
+
Object.assign(componentRef.instance, initialState);
|
|
186
|
+
this.applicationRef.attachView(componentRef.hostView);
|
|
187
|
+
return new ContentRef([[componentRef.location.nativeElement]], componentRef.hostView, componentRef);
|
|
188
|
+
}
|
|
189
|
+
throw Error('Unsupported content type');
|
|
190
|
+
}
|
|
191
|
+
}
|
|
192
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tcG9uZW50LWxvYWRlci5jbGFzcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25nLWNvbXBvbmVudHMvc3JjL2xpYi9zZXJ2aWNlcy9jb21wb25lbnQtbG9hZGVyL2NvbXBvbmVudC1sb2FkZXIuY2xhc3MudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUtMLFVBQVUsRUFFVixXQUFXLEVBR1gsUUFBUSxHQUNULE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFFL0IsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBRWpEOzs7Ozs7Ozs7O0dBVUc7QUFDSCxNQUFNLE9BQU8sZUFBZTtJQTZCMUIsWUFDVSxHQUFpQyxFQUNqQyxHQUE2QixFQUM3QixjQUE4QixFQUM5QixRQUFrQjtRQUhsQixRQUFHLEdBQUgsR0FBRyxDQUE4QjtRQUNqQyxRQUFHLEdBQUgsR0FBRyxDQUEwQjtRQUM3QixtQkFBYyxHQUFkLGNBQWMsQ0FBZ0I7UUFDOUIsYUFBUSxHQUFSLFFBQVEsQ0FBVTtRQWhDNUI7O1dBRUc7UUFDSCxpQkFBWSxHQUFHLElBQUksT0FBTyxFQUFFLENBQUM7UUFDN0I7OztXQUdHO1FBQ0gsWUFBTyxHQUFHLElBQUksT0FBTyxFQUFFLENBQUM7UUFDeEI7OztXQUdHO1FBQ0gsaUJBQVksR0FBRyxJQUFJLE9BQU8sRUFBRSxDQUFDO1FBQzdCOzs7V0FHRztRQUNILGFBQVEsR0FBRyxJQUFJLE9BQU8sRUFBRSxDQUFDO1FBTWpCLGNBQVMsR0FBcUIsRUFBRSxDQUFDO1FBRWpDLDZCQUF3QixHQUFHLE1BQU0sQ0FBQztJQU92QyxDQUFDO0lBRUo7Ozs7T0FJRztJQUNJLE1BQU0sQ0FBQyxhQUFzQjtRQUNsQyxJQUFJLENBQUMsZ0JBQWdCLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyx1QkFBdUIsQ0FB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VUFBVSxDQUFDLENBQUMsT0FBTyxDQUFDLFNBQVMsQ0FBQyxFQUFFLE9BQU8sQ0FBQyxDQUFDO1NBQ3JEO1FBRUQsZ0JBQWdCO1FBQ2hCLElBQUksT0FBTyxPQUFPLEtBQUssVUFBVSxFQUFFO1lBQ2pDLE1BQU0sU0FBUyxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsdUJBQXVCLENBQUMsT0FBTyxDQUFDLENBQUM7WUFDNUQsTUFBTSxRQUFRLEdBQUcsUUFBUSxDQUFDLE1BQU0sQ0FBQztnQkFDL0IsU0FBUyxFQUFFLElBQUksQ0FBQyxTQUFTO2dCQUN6QixNQUFNLEVBQUUsSUFBSSxDQUFDLFFBQVE7YUFDdEIsQ0FBQyxDQUFDO1lBQ0gsTUFBTSxZQUFZLEdBQUcsU0FBUyxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQztZQUNoRCxNQUFNLENBQUMsTUFBTSxDQUFDLFlBQVksQ0FBQyxRQUFRLEVBQUUsWUFBWSxDQUFDLENBQUM7WUFDbkQsSUFBSSxDQUFDLGNBQWMsQ0FBQyxVQUFVLENBQUMsWUFBWSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1lBQ3RELE9BQU8sSUFBSSxVQUFVLENBQUMsQ0FBQyxDQUFDLFlBQVksQ0FBQyxRQUFRLENBQUMsYUFBYSxDQUFDLENBQUMsRUFBRSxZQUFZLENBQUMsUUFBUSxFQUFFLFlBQVksQ0FBQyxDQUFDO1NBQ3JHO1FBRUQsTUFBTSxLQUFLLENBQUMsMEJBQTBCLENBQUMsQ0FBQztJQUMxQyxDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xyXG4gIENvbXBvbmVudEZhY3RvcnlSZXNvbHZlcixcclxuICBWaWV3Q29udGFpbmVyUmVmLFxyXG4gIENvbXBvbmVudEZhY3RvcnksXHJcbiAgVHlwZSxcclxuICBFbGVtZW50UmVmLFxyXG4gIFN0YXRpY1Byb3ZpZGVyLFxyXG4gIFRlbXBsYXRlUmVmLFxyXG4gIENvbXBvbmVudFJlZixcclxuICBBcHBsaWNhdGlvblJlZixcclxuICBJbmplY3RvcixcclxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgU3ViamVjdCB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyBDb21wb25lbnRMb2FkZXJPcHRpb25zIH0gZnJvbSAnLi9jb21wb25lbnQtbG9hZGVyLW9wdGlvbnMuY2xhc3MnO1xyXG5pbXBvcnQgeyBDb250ZW50UmVmIH0gZnJvbSAnLi9jb250ZW50LXJlZi5jbGFzcyc7XHJcblxyXG4vKipcclxuICogUHJvdmlkZXMgd2F5cyBvZiBsb2FkaW5nIGFuZCBoYW5kbGluZyBkeW5hbWljIGNvbnRlbnQuXHJcbiAqXHJcbiAqIEByZW1hcmtzXHJcbiAqIERvIE5PVCB1c2UgdGhpcyBkaXJlY3RseSwgY3JlYXRlIGFuIGluc3RhbmNlIHRocm91Z2gge0BsaW5rIENvbXBvbmVudExvYWRlckZhY3Rvcnl9XHJcbiAqIFlvdSBjYW4gdXNlIHRoaXMgbG9hZGVyIGluIHR3byB3YXlzOlxyXG4gKiAtIEF0dGFjaGVzIGEgY29tcG9uZW50IHRvIGBWaWV3Q29udGFpbmVyUmVmYC5cclxuICogLSBBdHRhY2hlcyBhIGNvbXBvbmVudCB0byBgVmlld0NvbnRhaW5lclJlZmAuIFRoZSBhdHRhY2hlZCBjb21wb25lbnQgaGFzIGEgYDxuZy1jb250ZW50PmAgdGFnIGluc2lkZSBpdHMgdmlldy4gVGhlIHtAbGluayBDb21wb25lbnRMb2FkZXJPcHRpb25zLmNvbnRlbnR9IHdpbGwgYmUgZHJhd24gaW5zaWRlIHRoaXMgdGFnLlxyXG4gKlxyXG4gKiBAaW50ZXJuYWxcclxuICovXHJcbmV4cG9ydCBjbGFzcyBDb21wb25lbnRMb2FkZXI8VD4ge1xyXG4gIC8qKlxyXG4gICAqIEJlZm9yZSBjb250ZW50IGlzIHNob3duIGV2ZW50LlxyXG4gICAqL1xyXG4gIG9uQmVmb3JlU2hvdyA9IG5ldyBTdWJqZWN0KCk7XHJcbiAgLyoqXHJcbiAgICogQWZ0ZXIgc2hvdyBjb250ZW50IGV2ZW50LlxyXG4gICAqIEByZXR1cm5zIFRoZSBpZCBvZiBuZXdseSBjcmVhdGVkIGNvbXBvbmVudCByZWYuXHJcbiAgICovXHJcbiAgb25TaG93biA9IG5ldyBTdWJqZWN0KCk7XHJcbiAgLyoqXHJcbiAgICogQmVmb3JlIGNvbnRlbnQgaXMgaGlkZGVuIGV2ZW50LlxyXG4gICAqIEByZXR1cm5zIFRoZSBpbnN0YW5jZSBvZiBhdHRhY2hlZCBjb21wb25lbnQ7XHJcbiAgICovXHJcbiAgb25CZWZvcmVIaWRlID0gbmV3IFN1YmplY3QoKTtcclxuICAvKipcclxuICAgKiBBZnRlciBjb250ZW50IGlzIGhpZGRlbiBldmVudC5cclxuICAgKiBAcmV0dXJucyBUaGUgaWQgb2YgZGVzdHJveWVkIGNvbXBvbmVudCByZWYuXHJcbiAgICovXHJcbiAgb25IaWRkZW4gPSBuZXcgU3ViamVjdCgpO1xyXG5cclxuICBwdWJsaWMgaW5zdGFuY2U/OiBUO1xyXG4gIHB1YmxpYyBjb21wb25lbnRSZWY/OiBDb21wb25lbnRSZWY8VD47XHJcbiAgcHJpdmF0ZSBjb21wb25lbnRGYWN0b3J5PzogQ29tcG9uZW50RmFjdG9yeTxUPjtcclxuICBwcml2YXRlIGNvbnRhaW5lcjogc3RyaW5nIHwgRWxlbWVudFJlZiB8IGFueTtcclxuICBwcml2YXRlIHByb3ZpZGVyczogU3RhdGljUHJvdmlkZXJbXSA9IFtdO1xyXG4gIHByaXZhdGUgY29udGVudFJlZj86IENvbnRlbnRSZWY7XHJcbiAgcHJpdmF0ZSBjb250YWluZXJEZWZhdWx0U2VsZWN0b3IgPSAnYm9keSc7XHJcbiAgcHJpdmF0ZSBpbm5lckNvbXBvbmVudD86IENvbXBvbmVudFJlZjxUPjtcclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHByaXZhdGUgdmNyOiBWaWV3Q29udGFpbmVyUmVmIHwgdW5kZWZpbmVkLFxyXG4gICAgcHJpdmF0ZSBjZnI6IENvbXBvbmVudEZhY3RvcnlSZXNvbHZlcixcclxuICAgIHByaXZhdGUgYXBwbGljYXRpb25SZWY6IEFwcGxpY2F0aW9uUmVmLFxyXG4gICAgcHJpdmF0ZSBpbmplY3RvcjogSW5qZWN0b3JcclxuICApIHt9XHJcblxyXG4gIC8qKlxyXG4gICAqIEF0dGFjaGVzIGNvbXBvbmVudC5cclxuICAgKiBAcGFyYW0gY29tcG9uZW50VHlwZSAtIFRoZSB0eXBlIGNvbXBvbmVudCB0byBhdHRhY2guXHJcbiAgICogQHJldHVybnMgQ3VycmVudCBpbnN0YW5jZSBvZiB7QGxpbmsgQ29tcG9uZW50TG9hZGVyfVxyXG4gICAqL1xyXG4gIHB1YmxpYyBhdHRhY2goY29tcG9uZW50VHlwZTogVHlwZTxUPik6IENvbXBvbmVudExvYWRlcjxUPiB7XHJcbiAgICB0aGlzLmNvbXBvbmVudEZhY3RvcnkgPSB0aGlzLmNmci5yZXNvbHZlQ29tcG9uZW50RmFjdG9yeTxUPihjb21wb25lbnRUeXBlKTtcclxuICAgIHJldHVybiB0aGlzO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogQm9keSB3aWxsIGJlIHVzZWQgaW4gbm90aGluZyBpcyBwcm92aWRlZC5cclxuICAgKiBAcGFyYW0gY29udGFpbmVyIC0gVGhlIGVsZW1lbnQgaW4gd2hpY2ggZHluYW1pYyBjb250ZW50IHdpbGwgYmUgZHJhd24gaW5zaWRlIHRvLiBGb3Igc3RyaW5nIGNhc2UgYSBxdWVyeSB0byB0aGUgZG9tIHdpbGwgYmUgZXhlY3V0ZWQgdG8gZmluZCB0aGUgZWxlbWVudC5cclxuICAgKiBAcmV0dXJucyBDdXJyZW50IGluc3RhbmNlIG9mIHtAbGluayBDb21wb25lbnRMb2FkZXJ9XHJcbiAgICovXHJcbiAgcHVibGljIHRvKGNvbnRhaW5lcj86IHN0cmluZyB8IEVsZW1lbnRSZWYpOiBDb21wb25lbnRMb2FkZXI8VD4ge1xyXG4gICAgdGhpcy5jb250YWluZXIgPSBjb250YWluZXIgfHwgdGhpcy5jb250YWluZXI7XHJcbiAgICByZXR1cm4gdGhpcztcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIEFkZHMgcHJvdmlkZXIgdG8gdGhlIHByb3ZpZGVycyBhcnJheS4gVGhlc2UgcHJvdmlkZXJzIHdpbGwgYmUgaW5qZWN0ZWQgdG8gdGhlIGF0dGFjaGVkIGNvbXBvbmVudC5cclxuICAgKlxyXG4gICAqIEBzZWUge0BsaW5rIGh0dHBzOi8vYW5ndWxhci5pby9ndWlkZS9nbG9zc2FyeSNkaS10b2tlbiB8IEluamVjdGlvbiBUb2tlbn1cclxuICAgKlxyXG4gICAqIEBwYXJhbSBwcm92aWRlciAtIFByb3ZpZGVyIHRvIGluamVjdC5cclxuICAgKiBAcmV0dXJucyBDdXJyZW50IGluc3RhbmNlIG9mIHtAbGluayBDb21wb25lbnRMb2FkZXJ9XHJcbiAgICovXHJcbiAgcHVibGljIHByb3ZpZGUocHJvdmlkZXI6IFN0YXRpY1Byb3ZpZGVyKTogQ29tcG9uZW50TG9hZGVyPFQ+IHtcclxuICAgIHRoaXMucHJvdmlkZXJzLnB1c2gocHJvdmlkZXIpO1xyXG4gICAgcmV0dXJuIHRoaXM7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBBdHRhY2hlcyBhdHRhY2hlZCBjb21wb25lbnQgdG8gZG9tIGFuZCBhbnkgZHluYW1pYyBjb250ZW50IGlmIHByb3ZpZGVkLlxyXG4gICAqIEByZW1hcmtzXHJcbiAgICogQWxzbyB0cmlnZ2VycyB0aGUge0BsaW5rIENvbXBvbmVudExvYWRlci5vbkJlZm9yZVNob3d9IGFuZCB7QGxpbmsgQ29tcG9uZW50TG9hZGVyLm9uU2hvd259IGV2ZW50cy5cclxuICAgKlxyXG4gICAqIEBwYXJhbSBvcHRpb25zIC0ge0BsaW5rIENvbXBvbmVudExvYWRlck9wdGlvbnN9LlxyXG4gICAqIEByZXR1cm5zIEEgcmVmZXJlbmNlIHRvIHRoZSBjcmVhdGVkIGNvbnRlbnQuXHJcbiAgICovXHJcbiAgcHVibGljIHNob3cob3B0aW9uczogQ29tcG9uZW50TG9hZGVyT3B0aW9ucyA9IHt9KTogQ29tcG9uZW50UmVmPFQ+IHwgdW5kZWZpbmVkIHtcclxuICAgIGlmICh0aGlzLmNvbXBvbmVudFJlZikge1xyXG4gICAgICB0aHJvdyBFcnJvcignQ29tcG9uZW50IGlzIGFscmVhZHkgc2hvd24nKTtcclxuICAgIH1cclxuICAgIGlmICghdGhpcy5jb21wb25lbnRGYWN0b3J5KSB7XHJcbiAgICAgIHRocm93IEVycm9yKCdZb3UgbXVzdCBhdHRhY2ggYSBjb21wb25lbnQnKTtcclxuICAgIH1cclxuICAgIHRoaXMub25CZWZvcmVTaG93Lm5leHQoKTtcclxuXHJcbiAgICBpZiAob3B0aW9ucy5jb250ZW50KSB7XHJcbiAgICAgIHRoaXMuY29udGVudFJlZiA9IHRoaXMuZ2V0Q29udGVudFJlZihvcHRpb25zLmNvbnRlbnQsIG9wdGlvbnMuY29udGV4dCwgb3B0aW9ucy5pbml0aWFsU3RhdGUpO1xyXG4gICAgfVxyXG4gICAgdGhpcy5jcmVhdGVDb21wb25lbnRBbmRBdHRhY2hUb1ZpZXcob3B0aW9ucyk7XHJcbiAgICB0aGlzLmFwcGVuZENvbnRlbnRUb0NvbnRhaW5lcigpO1xyXG4gICAgdGhpcy5tYXJrQ29tcG9uZW50c0ZvckNoZWNrKCk7XHJcblxyXG4gICAgdGhpcy5vblNob3duLm5leHQob3B0aW9ucy5pZCk7XHJcblxyXG4gICAgcmV0dXJuIHRoaXMuY29tcG9uZW50UmVmO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogUmVtb3ZlcyBhdHRhY2hlZCBjb21wb25lbnQgZnJvbSBkb20uXHJcbiAgICogQHJlbWFya3NcclxuICAgKiBBbHNvIHRyaWdnZXJzIHRoZSB7QGxpbmsgQ29tcG9uZW50TG9hZGVyLm9uQmVmb3JlSGlkZX0gYW5kIHtAbGluayBDb21wb25lbnRMb2FkZXIub25IaWRkZW59IGV2ZW50cy5cclxuICAgKlxyXG4gICAqIEBwYXJhbSBpZCAtIElmIHByb3ZpZGVkIGl0IGlzIHJldHVybmVkIHRocm91Z2ggdGhlIHtAbGluayBDb21wb25lbnRMb2FkZXIub25IaWRkZW59LlxyXG4gICAqIEByZXR1cm5zIEN1cnJlbnQgaW5zdGFuY2Ugb2Yge0BsaW5rIENvbXBvbmVudExvYWRlcn1cclxuICAgKi9cclxuICBwdWJsaWMgaGlkZShpZD86IG51bWJlciB8IHN0cmluZywgcmVzdWx0PzogYW55KTogQ29tcG9uZW50TG9hZGVyPFQ+IHtcclxuICAgIGlmICghdGhpcy5jb21wb25lbnRSZWYpIHtcclxuICAgICAgdGhyb3cgRXJyb3IoJ05vIGF0dGFjaGVkIGNvbXBvbmVudCBmb3VuZCB0byBoaWRlJyk7XHJcbiAgICB9XHJcblxyXG4gICAgdGhpcy5vbkJlZm9yZUhpZGUubmV4dCh0aGlzLmNvbXBvbmVudFJlZi5pbnN0YW5jZSk7XHJcblxyXG4gICAgY29uc3QgY29tcG9uZW50RWwgPSB0aGlzLmNvbXBvbmVudFJlZi5sb2NhdGlvbi5uYXRpdmVFbGVtZW50O1xyXG4gICAgY29tcG9uZW50RWwucGFyZW50Tm9kZS5yZW1vdmVDaGlsZChjb21wb25lbnRFbCk7XHJcbiAgICBpZiAodGhpcy5jb250ZW50UmVmPy5jb21wb25lbnRSZWYpIHtcclxuICAgICAgdGhpcy5jb250ZW50UmVmLmNvbXBvbmVudFJlZi5kZXN0cm95KCk7XHJcbiAgICB9XHJcbiAgICBpZiAodGhpcy52Y3IgJiYgdGhpcy5jb250ZW50UmVmPy52aWV3UmVmKSB7XHJcbiAgICAgIHRoaXMudmNyLnJlbW92ZSh0aGlzLnZjci5pbmRleE9mKHRoaXMuY29udGVudFJlZi52aWV3UmVmKSk7XHJcbiAgICB9XHJcbiAgICBpZiAodGhpcy5jb250ZW50UmVmPy52aWV3UmVmKSB7XHJcbiAgICAgIHRoaXMuY29udGVudFJlZi52aWV3UmVmLmRlc3Ryb3koKTtcclxuICAgIH1cclxuICAgIHRoaXMuY29udGVudFJlZiA9IHZvaWQgMDtcclxuICAgIHRoaXMuY29tcG9uZW50UmVmID0gdm9pZCAwO1xyXG5cclxuICAgIHRoaXMub25IaWRkZW4ubmV4dChpZCA/IHsgaWQsIHJlc3VsdCB9IDogbnVsbCk7XHJcblxyXG4gICAgcmV0dXJuIHRoaXM7XHJcbiAgfVxyXG5cclxuICBnZXRJbm5lckNvbXBvbmVudCgpOiBDb21wb25lbnRSZWY8VD4gfCB1bmRlZmluZWQge1xyXG4gICAgcmV0dXJuIHRoaXMuaW5uZXJDb21wb25lbnQ7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIG1hcmtDb21wb25lbnRzRm9yQ2hlY2soKSB7XHJcbiAgICBpZiAodGhpcy5jb250ZW50UmVmPy5jb21wb25lbnRSZWYpIHtcclxuICAgICAgdGhpcy5pbm5lckNvbXBvbmVudCA9IHRoaXMuY29udGVudFJlZi5jb21wb25lbnRSZWYuaW5zdGFuY2U7XHJcbiAgICAgIHRoaXMuY29udGVudFJlZi5jb21wb25lbnRSZWYuY2hhbmdlRGV0ZWN0b3JSZWYubWFya0ZvckNoZWNrKCk7XHJcbiAgICAgIHRoaXMuY29udGVudFJlZi5jb21wb25lbnRSZWYuY2hhbmdlRGV0ZWN0b3JSZWYuZGV0ZWN0Q2hhbmdlcygpO1xyXG4gICAgfVxyXG4gICAgdGhpcy5jb21wb25lbnRSZWYhLmNoYW5nZURldGVjdG9yUmVmLm1hcmtGb3JDaGVjaygpO1xyXG4gICAgdGhpcy5jb21wb25lbnRSZWYhLmNoYW5nZURldGVjdG9yUmVmLmRldGVjdENoYW5nZXMoKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgY3JlYXRlQ29tcG9uZW50QW5kQXR0YWNoVG9WaWV3KG9wdGlvbnM6IENvbXBvbmVudExvYWRlck9wdGlvbnMpIHtcclxuICAgIGNvbnN0IGluamVjdG9yID0gSW5qZWN0b3IuY3JlYXRlKHtcclxuICAgICAgcHJvdmlkZXJzOiB0aGlzLnByb3ZpZGVycyxcclxuICAgICAgcGFyZW50OiB0aGlzLmluamVjdG9yLFxyXG4gICAgfSk7XHJcbiAgICB0aGlzLmNvbXBvbmVudFJlZiA9IHRoaXMuY29tcG9uZW50RmFjdG9yeSEuY3JlYXRlKGluamVjdG9yLCB0aGlzLmNvbnRlbnRSZWY/Lm5vZGVzKTtcclxuICAgIHRoaXMuYXBwbGljYXRpb25SZWYuYXR0YWNoVmlldyh0aGlzLmNvbXBvbmVudFJlZi5ob3N0Vmlldyk7XHJcbiAgICB0aGlzLmluc3RhbmNlID0gdGhpcy5jb21wb25lbnRSZWYuaW5zdGFuY2U7XHJcbiAgICBPYmplY3QuYXNzaWduKHRoaXMuY29tcG9uZW50UmVmLmluc3RhbmNlLCBvcHRpb25zKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgYXBwZW5kQ29udGVudFRvQ29udGFpbmVyKCkge1xyXG4gICAgaWYgKHRoaXMuY29udGFpbmVyIGluc3RhbmNlb2YgRWxlbWVudFJlZikge1xyXG4gICAgICB0aGlzLmNvbnRhaW5lci5uYXRpdmVFbGVtZW50LmFwcGVuZENoaWxkKHRoaXMuY29tcG9uZW50UmVmPy5sb2NhdGlvbi5uYXRpdmVFbGVtZW50KTtcclxuICAgIH1cclxuICAgIGlmICh0eXBlb2YgdGhpcy5jb250YWluZXIgPT09ICdzdHJpbmcnICYmIHR5cGVvZiBkb2N1bWVudCAhPT0gJ3VuZGVmaW5lZCcpIHtcclxuICAgICAgY29uc3Qgc2VsZWN0ZWRFbGVtZW50ID0gZG9jdW1lbnQucXVlcnlTZWxlY3Rvcih0aGlzLmNvbnRhaW5lcikgfHwgZG9jdW1lbnQucXVlcnlTZWxlY3Rvcih0aGlzLmNvbnRhaW5lckRlZmF1bHRTZWxlY3Rvcik7XHJcbiAgICAgIGlmICghc2VsZWN0ZWRFbGVtZW50KSB7XHJcbiAgICAgICAgcmV0dXJuO1xyXG4gICAgICB9XHJcbiAgICAgIHNlbGVjdGVkRWxlbWVudC5hcHBlbmRDaGlsZCh0aGlzLmNvbXBvbmVudFJlZj8ubG9jYXRpb24ubmF0aXZlRWxlbWVudCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGdldENvbnRlbnRSZWYoY29udGVudD86IHN0cmluZyB8IFRlbXBsYXRlUmVmPGFueT4sIGNvbnRleHQ/OiBhbnksIGluaXRpYWxTdGF0ZT86IGFueSk6IENvbnRlbnRSZWYge1xyXG4gICAgLy9UZW1wbGF0ZVJlZiBjYXNlXHJcbiAgICBpZiAoY29udGVudCBpbnN0YW5jZW9mIFRlbXBsYXRlUmVmKSB7XHJcbiAgICAgIGlmICh0aGlzLnZjcikge1xyXG4gICAgICAgIGNvbnN0IHZpZXdSZWYgPSB0aGlzLnZjci5jcmVhdGVFbWJlZGRlZFZpZXc8VGVtcGxhdGVSZWY8VD4+KGNvbnRlbnQsIGNvbnRleHQpO1xyXG4gICAgICAgIHZpZXdSZWYubWFya0ZvckNoZWNrKCk7XHJcbiAgICAgICAgcmV0dXJuIG5ldyBDb250ZW50UmVmKFt2aWV3UmVmLnJvb3ROb2Rlc10sIHZpZXdSZWYpO1xyXG4gICAgICB9XHJcbiAgICAgIGNvbnN0IHZpZXdSZWYgPSBjb250ZW50LmNyZWF0ZUVtYmVkZGVkVmlldyh7fSk7XHJcbiAgICAgIHRoaXMuYXBwbGljYXRpb25SZWYuYXR0YWNoVmlldyh2aWV3UmVmKTtcclxuICAgICAgcmV0dXJuIG5ldyBDb250ZW50UmVmKFt2aWV3UmVmLnJvb3ROb2Rlc10sIHZpZXdSZWYpO1xyXG4gICAgfVxyXG5cclxuICAgIC8vQ29tcG9uZW50IGNhc2VcclxuICAgIGlmICh0eXBlb2YgY29udGVudCA9PT0gJ2Z1bmN0aW9uJykge1xyXG4gICAgICBjb25zdCBjb250ZW50Q2YgPSB0aGlzLmNmci5yZXNvbHZlQ29tcG9uZW50RmFjdG9yeShjb250ZW50KTtcclxuICAgICAgY29uc3QgaW5qZWN0b3IgPSBJbmplY3Rvci5jcmVhdGUoe1xyXG4gICAgICAgIHByb3ZpZGVyczogdGhpcy5wcm92aWRlcnMsXHJcbiAgICAgICAgcGFyZW50OiB0aGlzLmluamVjdG9yLFxyXG4gICAgICB9KTtcclxuICAgICAgY29uc3QgY29tcG9uZW50UmVmID0gY29udGVudENmLmNyZWF0ZShpbmplY3Rvcik7XHJcbiAgICAgIE9iamVjdC5hc3NpZ24oY29tcG9uZW50UmVmLmluc3RhbmNlLCBpbml0aWFsU3RhdGUpO1xyXG4gICAgICB0aGlzLmFwcGxpY2F0aW9uUmVmLmF0dGFjaFZpZXcoY29tcG9uZW50UmVmLmhvc3RWaWV3KTtcclxuICAgICAgcmV0dXJuIG5ldyBDb250ZW50UmVmKFtbY29tcG9uZW50UmVmLmxvY2F0aW9uLm5hdGl2ZUVsZW1lbnRdXSwgY29tcG9uZW50UmVmLmhvc3RWaWV3LCBjb21wb25lbnRSZWYpO1xyXG4gICAgfVxyXG5cclxuICAgIHRocm93IEVycm9yKCdVbnN1cHBvcnRlZCBjb250ZW50IHR5cGUnKTtcclxuICB9XHJcbn1cclxuIl19
|
|
@@ -23,9 +23,9 @@ export class ComponentLoaderFactory {
|
|
|
23
23
|
return new ComponentLoader(viewContainerRef, this.componentFactoryResolver, this.applicationRef, this.injector);
|
|
24
24
|
}
|
|
25
25
|
}
|
|
26
|
-
ComponentLoaderFactory.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
27
|
-
ComponentLoaderFactory.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "
|
|
28
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
26
|
+
ComponentLoaderFactory.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.0.1", 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: "12.0.1", ngImport: i0, type: ComponentLoaderFactory, providedIn: 'root' });
|
|
28
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.0.1", ngImport: i0, type: ComponentLoaderFactory, decorators: [{
|
|
29
29
|
type: Injectable,
|
|
30
30
|
args: [{ providedIn: 'root' }]
|
|
31
31
|
}], ctorParameters: function () { return [{ type: i0.ComponentFactoryResolver }, { type: i0.Injector }, { type: i0.ApplicationRef }]; } });
|
|
File without changes
|
|
@@ -22,15 +22,15 @@ export class ModalBackdropComponent {
|
|
|
22
22
|
}
|
|
23
23
|
hide() {
|
|
24
24
|
this.renderer.removeClass(this.element.nativeElement, cssClassNames.show);
|
|
25
|
-
setTimeout(() => this.backdropLoader
|
|
25
|
+
setTimeout(() => { var _a; return (_a = this.backdropLoader) === null || _a === void 0 ? void 0 : _a.hide(); }, this.animationsEnabled ? animationTime.backdrop : 0);
|
|
26
26
|
}
|
|
27
27
|
reflow(element) {
|
|
28
28
|
((bs) => bs)(element.offsetHeight);
|
|
29
29
|
}
|
|
30
30
|
}
|
|
31
|
-
ModalBackdropComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
32
|
-
ModalBackdropComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "
|
|
33
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
31
|
+
ModalBackdropComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.0.1", 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: "12.0.1", 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: "12.0.1", ngImport: i0, type: ModalBackdropComponent, decorators: [{
|
|
34
34
|
type: Component,
|
|
35
35
|
args: [{
|
|
36
36
|
selector: 'lib-modal-backdrop',
|
|
@@ -41,4 +41,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.0", ngImpor
|
|
|
41
41
|
},
|
|
42
42
|
}]
|
|
43
43
|
}], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i0.Renderer2 }]; } });
|
|
44
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
44
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9kYWwtYmFja2Ryb3AtY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmctY29tcG9uZW50cy9zcmMvbGliL3NlcnZpY2VzL21vZGFsLXNlcnZpY2UvbW9kYWwtYmFja2Ryb3AtY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQWlDLGlCQUFpQixFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRTVGLE9BQU8sRUFBRSxhQUFhLEVBQUUsYUFBYSxFQUFFLE1BQU0sc0JBQXNCLENBQUM7O0FBRXBFOzs7OztHQUtHO0FBU0gsTUFBTSxPQUFPLHNCQUFzQjtJQUdqQyxZQUFvQixPQUFtQixFQUFVLFFBQW1CO1FBQWhELFlBQU8sR0FBUCxPQUFPLENBQVk7UUFBVSxhQUFRLEdBQVIsUUFBUSxDQUFXO1FBRjVELHNCQUFpQixHQUFHLEtBQUssQ0FBQztJQUVxQyxDQUFDO0lBRXhFLFFBQVE7UUFDTixJQUFJLElBQUksQ0FBQyxpQkFBaUIsRUFBRTtZQUMxQixJQUFJLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLGFBQWEsRUFBRSxhQUFhLENBQUMsSUFBSSxDQUFDLENBQUM7WUFDdkUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLGFBQWEsQ0FBQyxDQUFDO1NBQ3pDO1FBQ0QsSUFBSSxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxhQUFhLEVBQUUsYUFBYSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ3pFLENBQUM7SUFFTSxJQUFJO1FBQ1QsSUFBSSxDQUFDLFFBQVEsQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxhQUFhLEVBQUUsYUFBYSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQzFFLFVBQVUsQ0FBQyxHQUFHLEVBQUUsV0FBQyxPQUFBLE1BQUEsSUFBSSxDQUFDLGNBQWMsMENBQUUsSUFBSSxFQUFFLENBQUEsRUFBQSxFQUFFLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDLENBQUMsYUFBYSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDckcsQ0FBQztJQUVELE1BQU0sQ0FBQyxPQUFZO1FBQ2pCLENBQUMsQ0FBQyxFQUFPLEVBQVEsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxZQUFZLENBQUMsQ0FBQztJQUNoRCxDQUFDOzttSEFwQlUsc0JBQXNCO3VHQUF0QixzQkFBc0Isc0dBTHZCLEVBQUU7MkZBS0Qsc0JBQXNCO2tCQVJsQyxTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSxvQkFBb0I7b0JBQzlCLGFBQWEsRUFBRSxpQkFBaUIsQ0FBQyxJQUFJO29CQUNyQyxRQUFRLEVBQUUsRUFBRTtvQkFDWixJQUFJLEVBQUU7d0JBQ0osS0FBSyxFQUFFLGFBQWEsQ0FBQyxRQUFRO3FCQUM5QjtpQkFDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgRWxlbWVudFJlZiwgT25Jbml0LCBSZW5kZXJlcjIsIFZpZXdFbmNhcHN1bGF0aW9uIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IENvbXBvbmVudExvYWRlciB9IGZyb20gJy4uL2NvbXBvbmVudC1sb2FkZXIvY29tcG9uZW50LWxvYWRlci5jbGFzcyc7XHJcbmltcG9ydCB7IGFuaW1hdGlvblRpbWUsIGNzc0NsYXNzTmFtZXMgfSBmcm9tICcuL21vZGFsLXN0eWxlcy5jbGFzcyc7XHJcblxyXG4vKipcclxuICogQmFja2dyb3VuZCBsYXllciBmb3IgbW9kYWxzLlxyXG4gKiBPdmVycmlkZSBjbGFzcyBuYW1lIHRvIHRoZW1lIGl0LlxyXG4gKiBAc2VlIHtAbGluayBjc3NDbGFzc05hbWVzfVxyXG4gKiBAaW50ZXJuYWxcclxuICovXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnbGliLW1vZGFsLWJhY2tkcm9wJyxcclxuICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxyXG4gIHRlbXBsYXRlOiAnJyxcclxuICBob3N0OiB7XHJcbiAgICBjbGFzczogY3NzQ2xhc3NOYW1lcy5iYWNrZHJvcCxcclxuICB9LFxyXG59KVxyXG5leHBvcnQgY2xhc3MgTW9kYWxCYWNrZHJvcENvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XHJcbiAgcHJpdmF0ZSBhbmltYXRpb25zRW5hYmxlZCA9IGZhbHNlO1xyXG4gIHByaXZhdGUgYmFja2Ryb3BMb2FkZXI6IENvbXBvbmVudExvYWRlcjxNb2RhbEJhY2tkcm9wQ29tcG9uZW50PiB8IHVuZGVmaW5lZDtcclxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGVsZW1lbnQ6IEVsZW1lbnRSZWYsIHByaXZhdGUgcmVuZGVyZXI6IFJlbmRlcmVyMikge31cclxuXHJcbiAgbmdPbkluaXQoKTogdm9pZCB7XHJcbiAgICBpZiAodGhpcy5hbmltYXRpb25zRW5hYmxlZCkge1xyXG4gICAgICB0aGlzLnJlbmRlcmVyLmFkZENsYXNzKHRoaXMuZWxlbWVudC5uYXRpdmVFbGVtZW50LCBjc3NDbGFzc05hbWVzLmZhZGUpO1xyXG4gICAgICB0aGlzLnJlZmxvdyh0aGlzLmVsZW1lbnQubmF0aXZlRWxlbWVudCk7XHJcbiAgICB9XHJcbiAgICB0aGlzLnJlbmRlcmVyLmFkZENsYXNzKHRoaXMuZWxlbWVudC5uYXRpdmVFbGVtZW50LCBjc3NDbGFzc05hbWVzLnNob3cpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGhpZGUoKSB7XHJcbiAgICB0aGlzLnJlbmRlcmVyLnJlbW92ZUNsYXNzKHRoaXMuZWxlbWVudC5uYXRpdmVFbGVtZW50LCBjc3NDbGFzc05hbWVzLnNob3cpO1xyXG4gICAgc2V0VGltZW91dCgoKSA9PiB0aGlzLmJhY2tkcm9wTG9hZGVyPy5oaWRlKCksIHRoaXMuYW5pbWF0aW9uc0VuYWJsZWQgPyBhbmltYXRpb25UaW1lLmJhY2tkcm9wIDogMCk7XHJcbiAgfVxyXG5cclxuICByZWZsb3coZWxlbWVudDogYW55KTogdm9pZCB7XHJcbiAgICAoKGJzOiBhbnkpOiB2b2lkID0+IGJzKShlbGVtZW50Lm9mZnNldEhlaWdodCk7XHJcbiAgfVxyXG59XHJcbiJdfQ==
|
|
@@ -0,0 +1,128 @@
|
|
|
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
|
+
var _a;
|
|
51
|
+
if (!this.isShown) {
|
|
52
|
+
return;
|
|
53
|
+
}
|
|
54
|
+
if (event.keyCode === 27 || event.key === 'Escape' || event.key === 'Esc') {
|
|
55
|
+
event.preventDefault();
|
|
56
|
+
}
|
|
57
|
+
if (this.config.keyboard && this.config.id === ((_a = this.modalService) === null || _a === void 0 ? void 0 : _a.getActiveModal().config.id)) {
|
|
58
|
+
this.hide();
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
ngOnDestroy() {
|
|
62
|
+
if (this.isShown) {
|
|
63
|
+
this._hide();
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
hide(result) {
|
|
67
|
+
if (this.isModalHiding || !this.isShown) {
|
|
68
|
+
return;
|
|
69
|
+
}
|
|
70
|
+
if (this.config.closeInterceptor) {
|
|
71
|
+
this.config.closeInterceptor().then(() => this._hide(), () => undefined);
|
|
72
|
+
return;
|
|
73
|
+
}
|
|
74
|
+
this._hide(result);
|
|
75
|
+
}
|
|
76
|
+
_hide(result) {
|
|
77
|
+
this.isModalHiding = true;
|
|
78
|
+
this.renderer.removeClass(this._element.nativeElement, cssClassNames.show);
|
|
79
|
+
setTimeout(() => {
|
|
80
|
+
var _a;
|
|
81
|
+
this.isShown = false;
|
|
82
|
+
(_a = this.modalService) === null || _a === void 0 ? void 0 : _a.hide(this.config.id, result);
|
|
83
|
+
this.isModalHiding = false;
|
|
84
|
+
}, this.animationsEnabled ? animationTime.modal : 0);
|
|
85
|
+
}
|
|
86
|
+
}
|
|
87
|
+
ModalContainerComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.0.1", ngImport: i0, type: ModalContainerComponent, deps: [{ token: i1.ModalOptions }, { token: i0.ElementRef }, { token: i0.Renderer2 }], target: i0.ɵɵFactoryTarget.Component });
|
|
88
|
+
ModalContainerComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.0.1", 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: `
|
|
89
|
+
<div [class]="'modal-dialog' + (config.class ? ' ' + config.class : '')" role="document" focusTrap>
|
|
90
|
+
<div class="modal-content">
|
|
91
|
+
<ng-content></ng-content>
|
|
92
|
+
</div>
|
|
93
|
+
</div>
|
|
94
|
+
`, isInline: true });
|
|
95
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.0.1", ngImport: i0, type: ModalContainerComponent, decorators: [{
|
|
96
|
+
type: Component,
|
|
97
|
+
args: [{
|
|
98
|
+
selector: 'lib-modal-container',
|
|
99
|
+
template: `
|
|
100
|
+
<div [class]="'modal-dialog' + (config.class ? ' ' + config.class : '')" role="document" focusTrap>
|
|
101
|
+
<div class="modal-content">
|
|
102
|
+
<ng-content></ng-content>
|
|
103
|
+
</div>
|
|
104
|
+
</div>
|
|
105
|
+
`,
|
|
106
|
+
host: {
|
|
107
|
+
class: 'modal',
|
|
108
|
+
role: 'dialog',
|
|
109
|
+
tabindex: '-1',
|
|
110
|
+
'[attr.aria-modal]': 'true',
|
|
111
|
+
'[attr.aria-labelledby]': 'config.ariaLabelledBy',
|
|
112
|
+
'[attr.aria-describedby]': 'config.ariaDescribedby',
|
|
113
|
+
},
|
|
114
|
+
}]
|
|
115
|
+
}], ctorParameters: function () { return [{ type: i1.ModalOptions }, { type: i0.ElementRef }, { type: i0.Renderer2 }]; }, propDecorators: { onClickStarted: [{
|
|
116
|
+
type: HostListener,
|
|
117
|
+
args: ['mousedown', ['$event']]
|
|
118
|
+
}], onClickStop: [{
|
|
119
|
+
type: HostListener,
|
|
120
|
+
args: ['click', ['$event']]
|
|
121
|
+
}], onPopState: [{
|
|
122
|
+
type: HostListener,
|
|
123
|
+
args: ['window:popstate']
|
|
124
|
+
}], onEsc: [{
|
|
125
|
+
type: HostListener,
|
|
126
|
+
args: ['window:keydown.esc', ['$event']]
|
|
127
|
+
}] } });
|
|
128
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9kYWwtY29udGFpbmVyLWNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25nLWNvbXBvbmVudHMvc3JjL2xpYi9zZXJ2aWNlcy9tb2RhbC1zZXJ2aWNlL21vZGFsLWNvbnRhaW5lci1jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBYyxZQUFZLEVBQWdDLE1BQU0sZUFBZSxDQUFDO0FBQ2xHLE9BQU8sRUFBRSxhQUFhLEVBQUUsYUFBYSxFQUFFLE1BQU0sc0JBQXNCLENBQUM7OztBQUlwRTs7Ozs7O0dBTUc7QUFtQkgsTUFBTSxPQUFPLHVCQUF1QjtJQVFsQyxZQUFZLE9BQXFCLEVBQVksUUFBb0IsRUFBVSxRQUFtQjtRQUFqRCxhQUFRLEdBQVIsUUFBUSxDQUFZO1FBQVUsYUFBUSxHQUFSLFFBQVEsQ0FBVztRQUp0RixZQUFPLEdBQUcsS0FBSyxDQUFDO1FBQ2hCLHNCQUFpQixHQUFHLEtBQUssQ0FBQztRQUMxQixrQkFBYSxHQUFHLEtBQUssQ0FBQztRQUN0QiwwQkFBcUIsR0FBRyxLQUFLLENBQUM7UUFFcEMsSUFBSSxDQUFDLE1BQU0sR0FBRyxNQUFNLENBQUMsTUFBTSxDQUFDLEVBQUUsRUFBRSxPQUFPLENBQUMsQ0FBQztJQUMzQyxDQUFDO0lBRUQsUUFBUTtRQUNOLElBQUksSUFBSSxDQUFDLGlCQUFpQixFQUFFO1lBQzFCLElBQUksQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsYUFBYSxFQUFFLGFBQWEsQ0FBQyxJQUFJLENBQUMsQ0FBQztTQUN6RTtRQUNELElBQUksQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsYUFBYSxFQUFFLFNBQVMsRUFBRSxPQUFPLENBQUMsQ0FBQztRQUN4RSxVQUFVLENBQ1IsR0FBRyxFQUFFO1lBQ0gsSUFBSSxDQUFD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QixNQUFBLElBQUksQ0FBQyxZQUFZLDBDQUFFLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLEVBQUUsRUFBRSxNQUFNLENBQUMsQ0FBQztZQUNoRCxJQUFJLENBQUMsYUFBYSxHQUFHLEtBQUssQ0FBQztRQUM3QixDQUFDLEVBQ0QsSUFBSSxDQUFDLGlCQUFpQixDQUFDLENBQUMsQ0FBQyxhQUFhLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQ2pELENBQUM7SUFDSixDQUFDOztvSEE3RlUsdUJBQXVCO3dHQUF2Qix1QkFBdUIsaWNBaEJ4Qjs7Ozs7O0dBTVQ7MkZBVVUsdUJBQXVCO2tCQWxCbkMsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUscUJBQXFCO29CQUMvQixRQUFRLEVBQUU7Ozs7OztHQU1UO29CQUNELElBQUksRUFBRTt3QkFDSixLQUFLLEVBQUUsT0FBTzt3QkFDZCxJQUFJLEVBQUUsUUFBUTt3QkFDZCxRQUFRLEVBQUUsSUFBSTt3QkFDZCxtQkFBbUIsRUFBRSxNQUFNO3dCQUMzQix3QkFBd0IsRUFBRSx1QkFBdUI7d0JBQ2pELHlCQUF5QixFQUFFLHdCQUF3QjtxQkFDcEQ7aUJBQ0Y7b0pBK0JDLGNBQWM7c0JBRGIsWUFBWTt1QkFBQyxXQUFXLEVBQUUsQ0FBQyxRQUFRLENBQUM7Z0JBTXJDLFdBQVc7c0JBRFYsWUFBWTt1QkFBQyxPQUFPLEVBQUUsQ0FBQyxRQUFRLENBQUM7Z0JBV2pDLFVBQVU7c0JBRFQsWUFBWTt1QkFBQyxpQkFBaUI7Z0JBTS9CLEtBQUs7c0JBREosWUFBWTt1QkFBQyxvQkFBb0IsRUFBRSxDQUFDLFFBQVEsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgRWxlbWVudFJlZiwgSG9zdExpc3RlbmVyLCBPbkRlc3Ryb3ksIE9uSW5pdCwgUmVuZGVyZXIyIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IGFuaW1hdGlvblRpbWUsIGNzc0NsYXNzTmFtZXMgfSBmcm9tICcuL21vZGFsLXN0eWxlcy5jbGFzcyc7XHJcbmltcG9ydCB7IE1vZGFsT3B0aW9ucyB9IGZyb20gJy4vbW9kYWwtb3B0aW9ucy5jbGFzcyc7XHJcbmltcG9ydCB7IE1vZGFsU2VydmljZSB9IGZyb20gJy4vbW9kYWwtc2VydmljZSc7XHJcblxyXG4vKipcclxuICogTW9kYWwgY29udGFpbmVyIGNvbXBvbmVudC5cclxuICogQHJlbWFya3NcclxuICogQWxsIGR5bmFtaWMgY29udGVudCBgVGVtcGxhdGVSZWZgIG9yIGBDb21wb25lbnRgIGNhc2Ugd2lsbCBiZSBkcmF3biBpbnNpZGUgdGhpcy5cclxuICogWW91IGNhbiBvdmVycmlkZSBjc3MgY2xhc3NlcyB0byB0aGVtZSBpdCB7QGxpbmsgY3NzQ2xhc3NOYW1lc31cclxuICogQGludGVybmFsXHJcbiAqL1xyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2xpYi1tb2RhbC1jb250YWluZXInLFxyXG4gIHRlbXBsYXRlOiBgXHJcbiAgICA8ZGl2IFtjbGFzc109XCInbW9kYWwtZGlhbG9nJyArIChjb25maWcuY2xhc3MgPyAnICcgKyBjb25maWcuY2xhc3MgOiAnJylcIiByb2xlPVwiZG9jdW1lbnRcIiBmb2N1c1RyYXA+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJtb2RhbC1jb250ZW50XCI+XHJcbiAgICAgICAgPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PlxyXG4gICAgICA8L2Rpdj5cclxuICAgIDwvZGl2PlxyXG4gIGAsXHJcbiAgaG9zdDoge1xyXG4gICAgY2xhc3M6ICdtb2RhbCcsXHJcbiAgICByb2xlOiAnZGlhbG9nJyxcclxuICAgIHRhYmluZGV4OiAnLTEnLFxyXG4gICAgJ1thdHRyLmFyaWEtbW9kYWxdJzogJ3RydWUnLFxyXG4gICAgJ1thdHRyLmFyaWEtbGFiZWxsZWRieV0nOiAnY29uZmlnLmFyaWFMYWJlbGxlZEJ5JyxcclxuICAgICdbYXR0ci5hcmlhLWRlc2NyaWJlZGJ5XSc6ICdjb25maWcuYXJpYURlc2NyaWJlZGJ5JyxcclxuICB9LFxyXG59KVxyXG5leHBvcnQgY2xhc3MgTW9kYWxDb250YWluZXJDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSB7XHJcbiAgcHVibGljIGxldmVsPzogbnVtYmVyO1xyXG4gIHB1YmxpYyBjb25maWc6IE1vZGFsT3B0aW9ucztcclxuICBwdWJsaWMgbW9kYWxTZXJ2aWNlPzogTW9kYWxTZXJ2aWNlO1xyXG4gIHByaXZhdGUgaXNTaG93biA9IGZhbHNlO1xyXG4gIHByaXZhdGUgYW5pbWF0aW9uc0VuYWJsZWQgPSBmYWxzZTtcclxuICBwcml2YXRlIGlzTW9kYWxIaWRpbmcgPSBmYWxzZTtcclxuICBwcml2YXRlIGNsaWNrU3RhcnRlZEluQ29udGVudCA9IGZhbHNlO1xyXG4gIGNvbnN0cnVjdG9yKG9wdGlvbnM6IE1vZGFsT3B0aW9ucywgcHJvdGVjdGVkIF9lbGVtZW50OiBFbGVtZW50UmVmLCBwcml2YXRlIHJlbmRlcmVyOiBSZW5kZXJlcjIpIHtcclxuICAgIHRoaXMuY29uZmlnID0gT2JqZWN0LmFzc2lnbih7fSwgb3B0aW9ucyk7XHJcbiAgfVxyXG5cclxuICBuZ09uSW5pdCgpOiB2b2lkIHtcclxuICAgIGlmICh0aGlzLmFuaW1hdGlvbnNFbmFibGVkKSB7XHJcbiAgICAgIHRoaXMucmVuZGVyZXIuYWRkQ2xhc3ModGhpcy5fZWxlbWVudC5uYXRpdmVFbGVtZW50LCBjc3NDbGFzc05hbWVzLmZhZGUpO1xyXG4gICAgfVxyXG4gICAgdGhpcy5yZW5kZXJlci5zZXRTdHlsZSh0aGlzLl9lbGVtZW50Lm5hdGl2ZUVsZW1lbnQsICdkaXNwbGF5JywgJ2Jsb2NrJyk7XHJcbiAgICBzZXRUaW1lb3V0KFxyXG4gICAgICAoKSA9PiB7XHJcbiAgICAgICAgdGhpcy5pc1Nob3duID0gdHJ1ZTtcclxuICAgICAgICB0aGlzLnJlbmRlcmVyLmFkZENsYXNzKHRoaXMuX2VsZW1lbnQubmF0aXZlRWxlbWVudCwgY3NzQ2xhc3NOYW1lcy5zaG93KTtcclxuICAgICAgfSxcclxuICAgICAgdGhpcy5hbmltYXRpb25zRW5hYmxlZCA/IGFuaW1hdGlvblRpbWUuYmFja2Ryb3AgOiAwXHJcbiAgICApO1xyXG4gICAgaWYgKHRoaXMuX2VsZW1lbnQubmF0aXZlRWxlbWVudCkge1xyXG4gICAgICB0aGlzLl9lbGVtZW50Lm5hdGl2ZUVsZW1lbnQuZm9jdXMoKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIEBIb3N0TGlzdGVuZXIoJ21vdXNlZG93bicsIFsnJGV2ZW50J10pXHJcbiAgb25DbGlja1N0YXJ0ZWQoZXZlbnQ6IE1vdXNlRXZlbnQpOiB2b2lkIHtcclxuICAgIHRoaXMuY2xpY2tTdGFydGVkSW5Db250ZW50ID0gZXZlbnQudGFyZ2V0ICE9PSB0aGlzLl9lbGVtZW50Lm5hdGl2ZUVsZW1lbnQ7XHJcbiAgfVxyXG5cclxuICBASG9zdExpc3RlbmVyKCdjbGljaycsIFsnJGV2ZW50J10pXHJcbiAgb25DbGlja1N0b3AoZXZlbnQ6IE1vdXNlRXZlbnQpOiB2b2lkIHtcclxuICAgIGNvbnN0IGNsaWNrZWRJbkJhY2tkcm9wID0gZXZlbnQudGFyZ2V0ID09PSB0aGlzLl9lbGVtZW50Lm5hdGl2ZUVsZW1lbnQgJiYgIXRoaXMuY2xpY2tTdGFydGVkSW5Db250ZW50O1xyXG4gICAgaWYgKHRoaXMuY29uZmlnLmlnbm9yZUJhY2tkcm9wQ2xpY2sgfHwgdGhpcy5jb25maWcuYmFja2Ryb3AgPT09ICdzdGF0aWMnIHx8ICFjbGlja2VkSW5CYWNrZHJvcCkge1xyXG4gICAgICB0aGlzLmNsaWNrU3RhcnRlZEluQ29udGVudCA9IGZhbHNlO1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcbiAgICB0aGlzLmhpZGUoKTtcclxuICB9XHJcblxyXG4gIEBIb3N0TGlzdGVuZXIoJ3dpbmRvdzpwb3BzdGF0ZScpXHJcbiAgb25Qb3BTdGF0ZSgpOiB2b2lkIHtcclxuICAgIHRoaXMuaGlkZSgpO1xyXG4gIH1cclxuXHJcbiAgQEhvc3RMaXN0ZW5lcignd2luZG93OmtleWRvd24uZXNjJywgWyckZXZlbnQnXSlcclxuICBvbkVzYyhldmVudDogS2V5Ym9hcmRFdmVudCk6IHZvaWQge1xyXG4gICAgaWYgKCF0aGlzLmlzU2hvd24pIHtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG4gICAgaWYgKGV2ZW50LmtleUNvZGUgPT09IDI3IHx8IGV2ZW50LmtleSA9PT0gJ0VzY2FwZScgfHwgZXZlbnQua2V5ID09PSAnRXNjJykge1xyXG4gICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xyXG4gICAgfVxyXG4gICAgaWYgKHRoaXMuY29uZmlnLmtleWJvYXJkICYmIHRoaXMuY29uZmlnLmlkID09PSB0aGlzLm1vZGFsU2VydmljZT8uZ2V0QWN0aXZlTW9kYWwoKS5jb25maWcuaWQpIHtcclxuICAgICAgdGhpcy5oaWRlKCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcclxuICAgIGlmICh0aGlzLmlzU2hvd24pIHtcclxuICAgICAgdGhpcy5faGlkZSgpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgaGlkZShyZXN1bHQ/OiBhbnkpOiB2b2lkIHtcclxuICAgIGlmICh0aGlzLmlzTW9kYWxIaWRpbmcgfHwgIXRoaXMuaXNTaG93bikge1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcbiAgICBpZiAodGhpcy5jb25maWcuY2xvc2VJbnRlcmNlcHRvcikge1xyXG4gICAgICB0aGlzLmNvbmZpZy5jbG9zZUludGVyY2VwdG9yKCkudGhlbihcclxuICAgICAgICAoKSA9PiB0aGlzLl9oaWRlKCksXHJcbiAgICAgICAgKCkgPT4gdW5kZWZpbmVkXHJcbiAgICAgICk7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuICAgIHRoaXMuX2hpZGUocmVzdWx0KTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgX2hpZGUocmVzdWx0PzogYW55KTogdm9pZCB7XHJcbiAgICB0aGlzLmlzTW9kYWxIaWRpbmcgPSB0cnVlO1xyXG4gICAgdGhpcy5yZW5kZXJlci5yZW1vdmVDbGFzcyh0aGlzLl9lbGVtZW50Lm5hdGl2ZUVsZW1lbnQsIGNzc0NsYXNzTmFtZXMuc2hvdyk7XHJcbiAgICBzZXRUaW1lb3V0KFxyXG4gICAgICAoKSA9PiB7XHJcbiAgICAgICAgdGhpcy5pc1Nob3duID0gZmFsc2U7XHJcbiAgICAgICAgdGhpcy5tb2RhbFNlcnZpY2U/LmhpZGUodGhpcy5jb25maWcuaWQsIHJlc3VsdCk7XHJcbiAgICAgICAgdGhpcy5pc01vZGFsSGlkaW5nID0gZmFsc2U7XHJcbiAgICAgIH0sXHJcbiAgICAgIHRoaXMuYW5pbWF0aW9uc0VuYWJsZWQgPyBhbmltYXRpb25UaW1lLm1vZGFsIDogMFxyXG4gICAgKTtcclxuICB9XHJcbn1cclxuIl19
|
|
@@ -0,0 +1,35 @@
|
|
|
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
|
|
5
|
+
* set globbaly using the injection token {@link MODAL_CONFIG_DEFAULT_OVERRIDE}.
|
|
6
|
+
* @remarks
|
|
7
|
+
* Modal specific options are merged with global options.
|
|
8
|
+
* @see {@link modalConfigDefaults} for defaults.
|
|
9
|
+
* @public
|
|
10
|
+
*/
|
|
11
|
+
export class ModalOptions {
|
|
12
|
+
}
|
|
13
|
+
ModalOptions.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.0.1", ngImport: i0, type: ModalOptions, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
14
|
+
ModalOptions.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "12.0.1", ngImport: i0, type: ModalOptions });
|
|
15
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.0.1", ngImport: i0, type: ModalOptions, decorators: [{
|
|
16
|
+
type: Injectable
|
|
17
|
+
}] });
|
|
18
|
+
/**
|
|
19
|
+
* Default option values.
|
|
20
|
+
*/
|
|
21
|
+
export const modalConfigDefaults = {
|
|
22
|
+
backdrop: true,
|
|
23
|
+
keyboard: true,
|
|
24
|
+
show: false,
|
|
25
|
+
ignoreBackdropClick: false,
|
|
26
|
+
class: '',
|
|
27
|
+
animated: true,
|
|
28
|
+
initialState: {},
|
|
29
|
+
closeInterceptor: void 0,
|
|
30
|
+
};
|
|
31
|
+
/**
|
|
32
|
+
* Use this injection token to set global options.
|
|
33
|
+
*/
|
|
34
|
+
export const MODAL_CONFIG_DEFAULT_OVERRIDE = new InjectionToken('override-default-config');
|
|
35
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9kYWwtb3B0aW9ucy5jbGFzcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25nLWNvbXBvbmVudHMvc3JjL2xpYi9zZXJ2aWNlcy9tb2RhbC1zZXJ2aWNlL21vZGFsLW9wdGlvbnMuY2xhc3MudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxjQUFjLEVBQWtCLE1BQU0sZUFBZSxDQUFDOztBQUUzRTs7Ozs7OztHQU9HO0FBRUgsTUFBTSxPQUFPLFlBQVk7O3lHQUFaLFlBQVk7NkdBQVosWUFBWTsyRkFBWixZQUFZO2tCQUR4QixVQUFVOztBQTJEWDs7R0FFRztBQUNILE1BQU0sQ0FBQyxNQUFNLG1CQUFtQixHQUFpQjtJQUMvQyxRQUFRLEVBQUUsSUFBSTtJQUNkLFFBQVEsRUFBRSxJQUFJO0lBQ2QsSUFBSSxFQUFFLEtBQUs7SUFDWCxtQkFBbUIsRUFBRSxLQUFLO0lBQzFCLEtBQUssRUFBRSxFQUFFO0lBQ1QsUUFBUSxFQUFFLElBQUk7SUFDZCxZQUFZLEVBQUUsRUFBRTtJQUNoQixnQkFBZ0IsRUFBRSxLQUFLLENBQUM7Q0FDekIsQ0FBQztBQUVGOztHQUVHO0FBQ0gsTUFBTSxDQUFDLE1BQU0sNkJBQTZCLEdBQWlDLElBQUksY0FBYyxDQUFlLHlCQUF5QixDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlLCBJbmplY3Rpb25Ub2tlbiwgU3RhdGljUHJvdmlkZXIgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuXHJcbi8qKlxyXG4gKiBNb2RhbHMgb3B0aW9uIGNhbiBiZSBwYXNzZWQgdG8gYSBzcGVjaWZpYyBtb2RhbCBmcm9tIHtAbGluayBNb2RhbFNlcnZpY2Uuc2hvd30gb3JcclxuICogc2V0IGdsb2JiYWx5IHVzaW5nIHRoZSBpbmplY3Rpb24gdG9rZW4ge0BsaW5rIE1PREFMX0NPTkZJR19ERUZBVUxUX09WRVJSSURFfS5cclxuICogQHJlbWFya3NcclxuICogTW9kYWwgc3BlY2lmaWMgb3B0aW9ucyBhcmUgbWVyZ2VkIHdpdGggZ2xvYmFsIG9wdGlvbnMuXHJcbiAqIEBzZWUge0BsaW5rIG1vZGFsQ29uZmlnRGVmYXVsdHN9IGZvciBkZWZhdWx0cy5cclxuICogQHB1YmxpY1xyXG4gKi9cclxuQEluamVjdGFibGUoKVxyXG5leHBvcnQgY2xhc3MgTW9kYWxPcHRpb25zPFQgPSBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPj4ge1xyXG4gIC8qKlxyXG4gICAqICBJZCBmb3Igb3BlbmVkIG1vZGFsLiBJZiBub3Qgc2V0IGEgcmFuZG9tIG9uZSBpcyBnZW5lcmF0ZWQuXHJcbiAgICovXHJcbiAgaWQ/OiBudW1iZXIgfCBzdHJpbmc7XHJcbiAgLyoqXHJcbiAgICogSWYgc3RhdGljIGlzIHNldCB0aGUgbW9kYWwgd2lsbCBub3QgY2xvc2Ugd2hlbiBjbGlja2luZyBvdXRzaWRlIG9mIG1vZGFsLlxyXG4gICAqIEByZW1hcmtzXHJcbiAgICogS2V5Ym9hcmQgZXZlbnQgKGVzY2FwZSBrZXkpIHN0aWxscyBhcHBsaWVzLiBJZiB5b3UgbXVzdCBnZXQgYSByZXN1bHQgdGhlbiBhbHNvIHNldCBrZXlib2FyZCB0byBmYWxzZS5cclxuICAgKi9cclxuICBiYWNrZHJvcD86IGJvb2xlYW4gfCAnc3RhdGljJztcclxuICAvKipcclxuICAgKiBDbG9zZXMgdGhlIG1vZGFsIHdoZW4gZXNjYXBlIGtleSBpcyBwcmVzc2VkLlxyXG4gICAqL1xyXG4gIGtleWJvYXJkPzogYm9vbGVhbjtcclxuICAvKipcclxuICAgKiBTaG93cyB0aGUgbW9kYWwgd2hlbiBpbml0aWFsaXplZC5cclxuICAgKi9cclxuICBzaG93PzogYm9vbGVhbjtcclxuICAvKipcclxuICAgKiBJZ25vcmUgdGhlIGJhY2tkcm9wIGNsaWNrLiBQcmV0dHkgbXVjaCB0aGUgc2FtZSBhcyBiYWNrZHJvcCBzdGF0aWMuXHJcbiAgICovXHJcbiAgaWdub3JlQmFja2Ryb3BDbGljaz86IGJvb2xlYW47XHJcbiAgLyoqXHJcbiAgICogQ3NzIGNsYXNzIGZvciBvcGVuZWQgbW9kYWwuXHJcbiAgICovXHJcbiAgY2xhc3M/OiBzdHJpbmc7XHJcbiAgLyoqXHJcbiAgICogVG9nZ2xlIGFuaW1hdGlvbi5cclxuICAgKi9cclxuICBhbmltYXRlZD86IGJvb2xlYW47XHJcbiAgLyoqXHJcbiAgICogTW9kYWwgaW5pdGlhbCBkYXRhLlxyXG4gICAqIEByZW1hcmtzXHJcbiAgICogVGhpcyBkYXRhIG11c3QgYmUga25vd24gcHJvcGVydGllcyBvZiBjb250ZW50IGNvbXBvbmVudC5cclxuICAgKi9cclxuICBpbml0aWFsU3RhdGU/OiBQYXJ0aWFsPFQ+O1xyXG4gIC8qKlxyXG4gICAqIEZ1bmN0aW9uIHRvIGludGVyY2VwdCB0aGUgY2xvc3VyZS5cclxuICAgKiBAcmVtYXJrc1xyXG4gICAqIFlvdSBjYW4gdXNlIHRvIGNhdGNoIHRoZSBjbG9zZSBldmVudCBhbmQgZXZlbiBwcmV2ZW50IGl0IGZyb20gY2xvc2luZy5cclxuICAgKi9cclxuICBjbG9zZUludGVyY2VwdG9yPzogQ2xvc2VJbnRlcmNlcHRvckZuO1xyXG4gIC8qKlxyXG4gICAqIE1vZGFsIHN0YXRpYyBwcm92aWRlcnMuXHJcbiAgICogQHNlZSB7QGxpbmsgaHR0cHM6Ly9hbmd1bGFyLmlvL2d1aWRlL2dsb3NzYXJ5I2RpLXRva2VuIHwgSW5qZWN0aW9uIFRva2VufVxyXG4gICAqL1xyXG4gIHByb3ZpZGVycz86IFN0YXRpY1Byb3ZpZGVyW107XHJcbiAgLyoqXHJcbiAgICogYXJpYS1sYWJlbGxlZGJ5IGF0dHJpYnV0ZSB2YWx1ZSB0byBzZXQgb24gdGhlIG1vZGFsIHdpbmRvdy5cclxuICAgKi9cclxuICBhcmlhTGFiZWxsZWRCeT86IHN0cmluZztcclxuICAvKipcclxuICAgKiBhcmlhLWRlc2NyaWJlZGJ5IGF0dHJpYnV0ZSB2YWx1ZSB0byBzZXQgb24gdGhlIG1vZGFsIHdpbmRvdy5cclxuICAgKi9cclxuICBhcmlhRGVzY3JpYmVkYnk/OiBzdHJpbmc7XHJcbn1cclxuXHJcbi8qKlxyXG4gKiBEZWZhdWx0IG9wdGlvbiB2YWx1ZXMuXHJcbiAqL1xyXG5leHBvcnQgY29uc3QgbW9kYWxDb25maWdEZWZhdWx0czogTW9kYWxPcHRpb25zID0ge1xyXG4gIGJhY2tkcm9wOiB0cnVlLFxyXG4gIGtleWJvYXJkOiB0cnVlLFxyXG4gIHNob3c6IGZhbHNlLFxyXG4gIGlnbm9yZUJhY2tkcm9wQ2xpY2s6IGZhbHNlLFxyXG4gIGNsYXNzOiAnJyxcclxuICBhbmltYXRlZDogdHJ1ZSxcclxuICBpbml0aWFsU3RhdGU6IHt9LFxyXG4gIGNsb3NlSW50ZXJjZXB0b3I6IHZvaWQgMCxcclxufTtcclxuXHJcbi8qKlxyXG4gKiBVc2UgdGhpcyBpbmplY3Rpb24gdG9rZW4gdG8gc2V0IGdsb2JhbCBvcHRpb25zLlxyXG4gKi9cclxuZXhwb3J0IGNvbnN0IE1PREFMX0NPTkZJR19ERUZBVUxUX09WRVJSSURFOiBJbmplY3Rpb25Ub2tlbjxNb2RhbE9wdGlvbnM+ID0gbmV3IEluamVjdGlvblRva2VuPE1vZGFsT3B0aW9ucz4oJ292ZXJyaWRlLWRlZmF1bHQtY29uZmlnJyk7XHJcblxyXG4vKipcclxuICogQ2xvc2UgaW50ZXJjZXB0b3IgcHJvbWlzZS5cclxuICovXHJcbmV4cG9ydCB0eXBlIENsb3NlSW50ZXJjZXB0b3JGbiA9ICgpID0+IFByb21pc2U8dm9pZD47XHJcbiJdfQ==
|