@wavemaker/app-ng-runtime 11.11.0-rc.6112 → 11.11.0-rc.6115
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/components/containers/wizard/bundles/index.umd.js +3 -0
- package/components/containers/wizard/esm2022/wizard.component.mjs +4 -1
- package/components/containers/wizard/fesm2022/index.mjs +3 -0
- package/components/containers/wizard/fesm2022/index.mjs.map +1 -1
- package/components/input/color-picker/bundles/index.umd.js +3 -5
- package/components/input/color-picker/esm2022/color-picker.component.mjs +5 -7
- package/components/input/color-picker/fesm2022/index.mjs +4 -6
- package/components/input/color-picker/fesm2022/index.mjs.map +1 -1
- package/npm-shrinkwrap.json +2 -2
- package/package-lock.json +2 -2
- package/package.json +1 -1
- package/runtime/dynamic/bundles/index.umd.js +56 -165
- package/runtime/dynamic/esm2022/app/services/component-ref-provider.service.mjs +4 -2
- package/runtime/dynamic/esm2022/main.mjs +10 -10
- package/runtime/dynamic/fesm2022/index.mjs +78 -189
- package/runtime/dynamic/fesm2022/index.mjs.map +1 -1
- package/runtime/dynamic/app/app.config.d.ts +0 -5
- package/runtime/dynamic/esm2022/app/app.config.mjs +0 -136
package/package.json
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
(function (global, factory) {
|
|
2
|
-
typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports, require('@angular/core'), require('
|
|
3
|
-
typeof define === 'function' && define.amd ? define(['exports', '@angular/core', '
|
|
4
|
-
(global = typeof globalThis !== 'undefined' ? globalThis : global || self, factory((global.wm = global.wm || {}, global.wm.runtime = global.wm.runtime || {}, global.wm.runtime.dynamic = {}), global.ng.core, global.
|
|
5
|
-
})(this, (function (exports, i0,
|
|
2
|
+
typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports, require('@angular/core'), require('@angular/platform-browser-dynamic'), require('tslib'), require('@angular/platform-browser'), require('@angular/common'), require('@angular/router'), require('@angular/common/http'), require('@angular/forms'), require('ngx-bootstrap/typeahead'), require('ngx-bootstrap/timepicker'), require('ngx-bootstrap/progressbar'), require('ngx-bootstrap/pagination'), require('ngx-bootstrap/modal'), require('ngx-bootstrap/tooltip'), require('ngx-bootstrap/datepicker'), require('ngx-bootstrap/dropdown'), require('ngx-bootstrap/popover'), require('ng-circle-progress'), require('ngx-toastr'), require('ngx-bootstrap/carousel'), require('@wm/core'), require('@wm/components/basic'), require('@wm/components/basic/progress'), require('@wm/components/basic/rich-text-editor'), require('@wm/components/basic/search'), require('@wm/components/basic/tree'), require('@wm/components/input'), require('@wm/components/input/calendar'), require('@wm/components/input/chips'), require('@wm/components/input/color-picker'), require('@wm/components/input/currency'), require('@wm/components/input/epoch'), require('@wm/components/input/file-upload'), require('@wm/components/input/rating'), require('@wm/components/input/slider'), require('@wm/components/data/card'), require('@wm/components/data/form'), require('@wm/components/data/list'), require('@wm/components/data/live-table'), require('@wm/components/data/pagination'), require('@wm/components/data/table'), require('@wm/components/chart'), require('@wm/components/containers/accordion'), require('@wm/components/containers/linear-layout'), require('@wm/components/containers/layout-grid'), require('@wm/components/containers/panel'), require('@wm/components/containers/tabs'), require('@wm/components/containers/tile'), require('@wm/components/containers/wizard'), require('@wm/components/dialogs/alert-dialog'), require('@wm/components/dialogs/iframe-dialog'), require('@wm/components/dialogs/login-dialog'), require('@wm/components/dialogs/partial-dialog'), require('@wm/components/navigation/breadcrumb'), require('@wm/components/navigation/menu'), require('@wm/components/navigation/navbar'), require('@wm/components/navigation/popover'), require('@wm/components/advanced/carousel'), require('@wm/components/advanced/login'), require('@wm/components/advanced/marquee'), require('@wm/components/advanced/custom'), require('@wm/components/page'), require('@wm/components/page/footer'), require('@wm/components/page/header'), require('@wm/components/page/left-panel'), require('@wm/components/page/right-panel'), require('@wm/components/page/top-nav'), require('@wm/components/prefab'), require('@wm/runtime/base'), require('@wm/components/base'), require('@wm/variables'), require('@wm/security'), require('@wm/transpiler'), require('lodash-es'), require('@wavemaker/custom-widgets-m3'), require('@angular/platform-browser/animations'), require('@wm/http')) :
|
|
3
|
+
typeof define === 'function' && define.amd ? define(['exports', '@angular/core', '@angular/platform-browser-dynamic', 'tslib', '@angular/platform-browser', '@angular/common', '@angular/router', '@angular/common/http', '@angular/forms', 'ngx-bootstrap/typeahead', 'ngx-bootstrap/timepicker', 'ngx-bootstrap/progressbar', 'ngx-bootstrap/pagination', 'ngx-bootstrap/modal', 'ngx-bootstrap/tooltip', 'ngx-bootstrap/datepicker', 'ngx-bootstrap/dropdown', 'ngx-bootstrap/popover', 'ng-circle-progress', 'ngx-toastr', 'ngx-bootstrap/carousel', '@wm/core', '@wm/components/basic', '@wm/components/basic/progress', '@wm/components/basic/rich-text-editor', '@wm/components/basic/search', '@wm/components/basic/tree', '@wm/components/input', '@wm/components/input/calendar', '@wm/components/input/chips', '@wm/components/input/color-picker', '@wm/components/input/currency', '@wm/components/input/epoch', '@wm/components/input/file-upload', '@wm/components/input/rating', '@wm/components/input/slider', '@wm/components/data/card', '@wm/components/data/form', '@wm/components/data/list', '@wm/components/data/live-table', '@wm/components/data/pagination', '@wm/components/data/table', '@wm/components/chart', '@wm/components/containers/accordion', '@wm/components/containers/linear-layout', '@wm/components/containers/layout-grid', '@wm/components/containers/panel', '@wm/components/containers/tabs', '@wm/components/containers/tile', '@wm/components/containers/wizard', '@wm/components/dialogs/alert-dialog', '@wm/components/dialogs/iframe-dialog', '@wm/components/dialogs/login-dialog', '@wm/components/dialogs/partial-dialog', '@wm/components/navigation/breadcrumb', '@wm/components/navigation/menu', '@wm/components/navigation/navbar', '@wm/components/navigation/popover', '@wm/components/advanced/carousel', '@wm/components/advanced/login', '@wm/components/advanced/marquee', '@wm/components/advanced/custom', '@wm/components/page', '@wm/components/page/footer', '@wm/components/page/header', '@wm/components/page/left-panel', '@wm/components/page/right-panel', '@wm/components/page/top-nav', '@wm/components/prefab', '@wm/runtime/base', '@wm/components/base', '@wm/variables', '@wm/security', '@wm/transpiler', 'lodash-es', '@wavemaker/custom-widgets-m3', '@angular/platform-browser/animations', '@wm/http'], factory) :
|
|
4
|
+
(global = typeof globalThis !== 'undefined' ? globalThis : global || self, factory((global.wm = global.wm || {}, global.wm.runtime = global.wm.runtime || {}, global.wm.runtime.dynamic = {}), global.ng.core, global.ng.platformBrowserDynamic, global.tslib, global.ng.platformBrowser, global.ng.common, global.ng.router, global.ng.common.http, global.ng.forms, global.typeahead, global.timepicker, global.progressbar, global.pagination, global.modal, global.tooltip, global.datepicker, global.dropdown, global.popover, global.ngCircleProgress, global.ngxToastr, global.carousel, global.wm.core, global.wm.components.basic, global.wm.components.basic.progress, global.wm.components.basic.richtexteditor, global.wm.components.basic.search, global.wm.components.basic.tree, global.wm.components.input, global.wm.components.input.calendar, global.wm.components.input.chips, global.wm.components.input.colorpicker, global.wm.components.input.currency, global.wm.components.input.epoch, global.wm.components.input.fileupload, global.wm.components.input.rating, global.wm.components.input.slider, global.wm.components.data.card, global.wm.components.data.form, global.wm.components.data.list, global.wm.components.data.livetable, global.wm.components.data.pagination, global.wm.components.data.table, global.wm.components.chart, global.wm.components.containers.accordion, global.wm.components.containers.linearlayout, global.wm.components.containers.layoutgrid, global.wm.components.containers.panel, global.wm.components.containers.tabs, global.wm.components.containers.tile, global.wm.components.containers.wizard, global.wm.components.dialogs.alertdialog, global.wm.components.dialogs.iframedialog, global.wm.components.dialogs.logindialog, global.wm.components.dialogs.partialdialog, global.wm.components.navigation.breadcrumb, global.wm.components.navigation.menu, global.wm.components.navigation.navbar, global.wm.components.navigation.popover, global.wm.components.advanced.carousel, global.wm.components.advanced.login, global.wm.components.advanced.marquee, global.wm.components.advanced.custom, global.wm.components.page, global.wm.components.page.footer, global.wm.components.page.header, global.wm.components.page.leftpanel, global.wm.components.page.rightpanel, global.wm.components.page.topnav, global.wm.components.prefab, global.wm.runtime.base, global.wm.components.base, global.wm.variables, global.wm.security, global.wm.transpiler, global._, global.wm_custom_widgets, global.ng.platformBrowser.animations, global.wm.http));
|
|
5
|
+
})(this, (function (exports, i0, platformBrowserDynamic, tslib, platformBrowser, common, i1, i1$1, forms, typeahead, timepicker, progressbar, pagination, modal, tooltip, datepicker, dropdown, popover, ngCircleProgress, ngxToastr, carousel, i5, basic, progress, richTextEditor, search, tree, input, calendar, chips, colorPicker, currency, epoch, fileUpload, rating, slider, card, form, list, liveTable, pagination$1, table, chart, accordion, linearLayout, layoutGrid, panel, tabs, tile, wizard, alertDialog, iframeDialog, loginDialog, partialDialog, breadcrumb, menu, navbar, popover$1, carousel$1, login, marquee, custom, page, footer, header, leftPanel, rightPanel, topNav, prefab, i4, base, i2, i3, transpiler, lodashEs, customWidgets, animations, http) { 'use strict';
|
|
6
6
|
|
|
7
7
|
function _interopNamespaceDefault(e) {
|
|
8
8
|
var n = Object.create(null);
|
|
@@ -22,10 +22,10 @@
|
|
|
22
22
|
}
|
|
23
23
|
|
|
24
24
|
var i0__namespace = /*#__PURE__*/_interopNamespaceDefault(i0);
|
|
25
|
-
var i4__namespace = /*#__PURE__*/_interopNamespaceDefault(i4);
|
|
26
25
|
var i1__namespace = /*#__PURE__*/_interopNamespaceDefault(i1);
|
|
27
26
|
var i1$1__namespace = /*#__PURE__*/_interopNamespaceDefault(i1$1);
|
|
28
27
|
var i5__namespace = /*#__PURE__*/_interopNamespaceDefault(i5);
|
|
28
|
+
var i4__namespace = /*#__PURE__*/_interopNamespaceDefault(i4);
|
|
29
29
|
var i2__namespace = /*#__PURE__*/_interopNamespaceDefault(i2);
|
|
30
30
|
var i3__namespace = /*#__PURE__*/_interopNamespaceDefault(i3);
|
|
31
31
|
var customWidgets__namespace = /*#__PURE__*/_interopNamespaceDefault(customWidgets);
|
|
@@ -149,23 +149,6 @@
|
|
|
149
149
|
canDeactivate: [i4.CanDeactivatePageGuard]
|
|
150
150
|
}
|
|
151
151
|
];
|
|
152
|
-
class CustomwidgetConfigProviderService extends i4.CustomwidgetConfigProvider {
|
|
153
|
-
constructor() {
|
|
154
|
-
super();
|
|
155
|
-
}
|
|
156
|
-
getConfig(widgetname) {
|
|
157
|
-
return new Promise((res, rej) => {
|
|
158
|
-
Promise.resolve(window['resourceCache'].get(`./custom-widgets/${widgetname}/page.min.json`)).then((pageInfo) => {
|
|
159
|
-
res(pageInfo.config);
|
|
160
|
-
});
|
|
161
|
-
});
|
|
162
|
-
}
|
|
163
|
-
static { this.ɵfac = function CustomwidgetConfigProviderService_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || CustomwidgetConfigProviderService)(); }; }
|
|
164
|
-
static { this.ɵprov = /*@__PURE__*/ i0__namespace.ɵɵdefineInjectable({ token: CustomwidgetConfigProviderService, factory: CustomwidgetConfigProviderService.ɵfac }); }
|
|
165
|
-
}
|
|
166
|
-
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0__namespace.ɵsetClassMetadata(CustomwidgetConfigProviderService, [{
|
|
167
|
-
type: i0.Injectable
|
|
168
|
-
}], () => [], null); })();
|
|
169
152
|
|
|
170
153
|
class AppJSProviderService extends i4.AppJSProvider {
|
|
171
154
|
constructor($http) {
|
|
@@ -187,22 +170,22 @@
|
|
|
187
170
|
}]
|
|
188
171
|
}], () => [{ type: i1$1__namespace.HttpClient }], null); })();
|
|
189
172
|
|
|
190
|
-
const cache$
|
|
173
|
+
const cache$2 = new Map();
|
|
191
174
|
class AppResourceManagerService {
|
|
192
175
|
get(url, useCache) {
|
|
193
|
-
const cachedResponse = cache$
|
|
176
|
+
const cachedResponse = cache$2.get(url);
|
|
194
177
|
if (cachedResponse) {
|
|
195
178
|
return Promise.resolve(cachedResponse);
|
|
196
179
|
}
|
|
197
180
|
return this.$http.get(url).then(response => {
|
|
198
181
|
if (useCache) {
|
|
199
|
-
cache$
|
|
182
|
+
cache$2.set(url, response);
|
|
200
183
|
}
|
|
201
184
|
return response;
|
|
202
185
|
});
|
|
203
186
|
}
|
|
204
187
|
clearCache() {
|
|
205
|
-
cache$
|
|
188
|
+
cache$2.clear();
|
|
206
189
|
}
|
|
207
190
|
constructor($http) {
|
|
208
191
|
this.$http = $http;
|
|
@@ -369,7 +352,8 @@
|
|
|
369
352
|
{
|
|
370
353
|
provide: i5.UserDefinedExecutionContext,
|
|
371
354
|
useExisting: DynamicComponent
|
|
372
|
-
}
|
|
355
|
+
},
|
|
356
|
+
page.PageDirective,
|
|
373
357
|
]
|
|
374
358
|
})(DynamicComponent);
|
|
375
359
|
return component;
|
|
@@ -456,6 +440,23 @@
|
|
|
456
440
|
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0__namespace.ɵsetClassMetadata(ComponentRefProviderService, [{
|
|
457
441
|
type: i0.Injectable
|
|
458
442
|
}], () => [{ type: AppResourceManagerService }, { type: i5__namespace.App }, { type: i4__namespace.AppManagerService }, { type: i0__namespace.Compiler }], null); })();
|
|
443
|
+
class CustomwidgetConfigProviderService extends i4.CustomwidgetConfigProvider {
|
|
444
|
+
constructor() {
|
|
445
|
+
super();
|
|
446
|
+
}
|
|
447
|
+
getConfig(widgetname) {
|
|
448
|
+
return new Promise((res, rej) => {
|
|
449
|
+
Promise.resolve(window['resourceCache'].get(`./custom-widgets/${widgetname}/page.min.json`)).then((pageInfo) => {
|
|
450
|
+
res(pageInfo.config);
|
|
451
|
+
});
|
|
452
|
+
});
|
|
453
|
+
}
|
|
454
|
+
static { this.ɵfac = function CustomwidgetConfigProviderService_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || CustomwidgetConfigProviderService)(); }; }
|
|
455
|
+
static { this.ɵprov = /*@__PURE__*/ i0__namespace.ɵɵdefineInjectable({ token: CustomwidgetConfigProviderService, factory: CustomwidgetConfigProviderService.ɵfac }); }
|
|
456
|
+
}
|
|
457
|
+
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0__namespace.ɵsetClassMetadata(CustomwidgetConfigProviderService, [{
|
|
458
|
+
type: i0.Injectable
|
|
459
|
+
}], () => [], null); })();
|
|
459
460
|
|
|
460
461
|
const cache = new Map();
|
|
461
462
|
class PrefabConfigProviderService extends i4.PrefabConfigProvider {
|
|
@@ -481,144 +482,6 @@
|
|
|
481
482
|
type: i0.Injectable
|
|
482
483
|
}], () => [{ type: AppResourceManagerService }], null); })();
|
|
483
484
|
|
|
484
|
-
const wmModules = [
|
|
485
|
-
i0.importProvidersFrom(modal.ModalModule.forRoot(), ngxToastr.ToastNoAnimationModule.forRoot({ maxOpened: 1, autoDismiss: true }), datepicker.BsDatepickerModule.forRoot(), ngCircleProgress.NgCircleProgressModule.forRoot())
|
|
486
|
-
];
|
|
487
|
-
const xsrfHeaderName$1 = "X-WM-XSRF-TOKEN";
|
|
488
|
-
const initializeProjectDetails = () => {
|
|
489
|
-
let cdnUrl = document.querySelector('[name="deployUrl"]') && document.querySelector('[name="deployUrl"]').getAttribute('content');
|
|
490
|
-
i5._WM_APP_PROJECT.isPreview = cdnUrl ? false : true;
|
|
491
|
-
const apiUrl = document.querySelector('[name="apiUrl"]') && document.querySelector('[name="apiUrl"]').getAttribute('content');
|
|
492
|
-
//for preview
|
|
493
|
-
if (!cdnUrl) {
|
|
494
|
-
cdnUrl = document.querySelector('[name="cdnUrl"]') && document.querySelector('[name="cdnUrl"]').getAttribute('content');
|
|
495
|
-
}
|
|
496
|
-
i5._WM_APP_PROJECT.id = location.href.split('/')[3];
|
|
497
|
-
// Integration with third party apps like in SSPA/WebComponents, this meta tag with cdnUrl will not be there then default it to ng-bundle/
|
|
498
|
-
i5._WM_APP_PROJECT.apiUrl = apiUrl || './';
|
|
499
|
-
i5._WM_APP_PROJECT.cdnUrl = cdnUrl || 'ng-bundle/';
|
|
500
|
-
i5._WM_APP_PROJECT.ngDest = 'ng-bundle/';
|
|
501
|
-
try {
|
|
502
|
-
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
|
|
503
|
-
//@ts-ignore
|
|
504
|
-
__webpack_require__.p = __webpack_public_path__ = cdnUrl;
|
|
505
|
-
}
|
|
506
|
-
catch (e) {
|
|
507
|
-
//for app preview there is no webpack. Don't do anything.
|
|
508
|
-
}
|
|
509
|
-
};
|
|
510
|
-
function InitializeApp(I18nService, AppJSResolve) {
|
|
511
|
-
return async () => {
|
|
512
|
-
initializeProjectDetails();
|
|
513
|
-
await AppJSResolve.resolve();
|
|
514
|
-
return I18nService.loadDefaultLocale();
|
|
515
|
-
};
|
|
516
|
-
}
|
|
517
|
-
function setAngularLocale(I18nService) {
|
|
518
|
-
initializeProjectDetails();
|
|
519
|
-
return I18nService.deduceAppLocale();
|
|
520
|
-
}
|
|
521
|
-
const appConfig = {
|
|
522
|
-
providers: [
|
|
523
|
-
// Provide Angular core services
|
|
524
|
-
i1.provideRouter(routes, i1.withHashLocation(), i1.withComponentInputBinding()),
|
|
525
|
-
i1$1.provideHttpClient(i1$1.withInterceptorsFromDi(), i1$1.withXsrfConfiguration({
|
|
526
|
-
cookieName: "wm_xsrf_token",
|
|
527
|
-
headerName: xsrfHeaderName$1
|
|
528
|
-
})),
|
|
529
|
-
animations.provideAnimations(),
|
|
530
|
-
// Provide application-specific services
|
|
531
|
-
{
|
|
532
|
-
provide: i0.APP_INITIALIZER,
|
|
533
|
-
useFactory: InitializeApp,
|
|
534
|
-
deps: [i5.AbstractI18nService, i4.AppJSResolve],
|
|
535
|
-
multi: true
|
|
536
|
-
},
|
|
537
|
-
{
|
|
538
|
-
provide: i0.LOCALE_ID,
|
|
539
|
-
useFactory: setAngularLocale,
|
|
540
|
-
deps: [i5.AbstractI18nService]
|
|
541
|
-
},
|
|
542
|
-
{
|
|
543
|
-
provide: i1$1.HTTP_INTERCEPTORS,
|
|
544
|
-
useClass: i4.HttpCallInterceptor,
|
|
545
|
-
multi: true
|
|
546
|
-
},
|
|
547
|
-
{ provide: i5.App, useClass: i4.AppRef },
|
|
548
|
-
{ provide: i5.AbstractToasterService, useClass: i4.ToasterServiceImpl },
|
|
549
|
-
{ provide: i5.AbstractI18nService, useClass: i4.I18nServiceImpl },
|
|
550
|
-
{ provide: i5.AbstractSpinnerService, useClass: i4.SpinnerServiceImpl },
|
|
551
|
-
{ provide: i5.AbstractNavigationService, useClass: i4.NavigationServiceImpl },
|
|
552
|
-
{ provide: i5.AbstractDialogService, useClass: base.DialogServiceImpl },
|
|
553
|
-
{ provide: i5.AppDefaults, useClass: i4.AppDefaultsService },
|
|
554
|
-
{ provide: i5.DynamicComponentRefProvider, useClass: i4.DynamicComponentRefProviderService },
|
|
555
|
-
{ provide: i4.AppJSProvider, useClass: AppJSProviderService },
|
|
556
|
-
{ provide: i4.AppVariablesProvider, useClass: AppVariablesProviderService },
|
|
557
|
-
{ provide: i4.AppExtensionProvider, useClass: AppExtensionProviderService },
|
|
558
|
-
{ provide: i4.ComponentRefProvider, useClass: ComponentRefProviderService },
|
|
559
|
-
{ provide: i5.PartialRefProvider, useClass: ComponentRefProviderService },
|
|
560
|
-
{ provide: i5.CustomWidgetRefProvider, useClass: ComponentRefProviderService },
|
|
561
|
-
{ provide: i4.CustomwidgetConfigProvider, useClass: CustomwidgetConfigProviderService },
|
|
562
|
-
{ provide: i4.PrefabConfigProvider, useClass: PrefabConfigProviderService },
|
|
563
|
-
{ provide: i1.RouteReuseStrategy, useClass: i4.WmRouteReuseStrategy },
|
|
564
|
-
{ provide: i5.AbstractHttpService, useClass: http.HttpServiceImpl },
|
|
565
|
-
AppResourceManagerService,
|
|
566
|
-
i4.PipeService,
|
|
567
|
-
common.DecimalPipe,
|
|
568
|
-
base.SanitizePipe,
|
|
569
|
-
base.ToDatePipe,
|
|
570
|
-
base.FilterPipe,
|
|
571
|
-
base.TrailingZeroDecimalPipe,
|
|
572
|
-
base.TrustAsPipe,
|
|
573
|
-
base.ImagePipe,
|
|
574
|
-
base.CustomPipe,
|
|
575
|
-
Location,
|
|
576
|
-
common.DatePipe,
|
|
577
|
-
i4.AppManagerService,
|
|
578
|
-
i4.PrefabManagerService,
|
|
579
|
-
i4.AuthGuard,
|
|
580
|
-
i4.RoleGuard,
|
|
581
|
-
i4.PageNotFoundGuard,
|
|
582
|
-
i4.CanDeactivatePageGuard,
|
|
583
|
-
i4.AppJSResolve,
|
|
584
|
-
i4.AppExtensionJSResolve,
|
|
585
|
-
i4.I18nResolve,
|
|
586
|
-
i3.SecurityService,
|
|
587
|
-
oAuth.OAuthService,
|
|
588
|
-
i2.VariablesService,
|
|
589
|
-
i2.MetadataService,
|
|
590
|
-
...wmModules,
|
|
591
|
-
page.PageDirective
|
|
592
|
-
]
|
|
593
|
-
};
|
|
594
|
-
|
|
595
|
-
const DEBUG_MODE = 'debugMode';
|
|
596
|
-
if (sessionStorage.getItem(DEBUG_MODE) !== 'true') {
|
|
597
|
-
i0.enableProdMode();
|
|
598
|
-
}
|
|
599
|
-
console.time('bootstrap');
|
|
600
|
-
document.addEventListener('DOMContentLoaded', () => {
|
|
601
|
-
new Promise(resolve => {
|
|
602
|
-
resolve();
|
|
603
|
-
}).then(() => platformBrowser.bootstrapApplication(i4.AppComponent, appConfig))
|
|
604
|
-
.then((appRef) => {
|
|
605
|
-
window.addEventListener('unload', () => {
|
|
606
|
-
appRef.components.map(c => c?.destroy());
|
|
607
|
-
});
|
|
608
|
-
})
|
|
609
|
-
.catch(err => console.error('Error bootstrapping app:', err));
|
|
610
|
-
});
|
|
611
|
-
window.debugMode = function (on) {
|
|
612
|
-
if (lodashEs.isEmpty(on)) {
|
|
613
|
-
on = true;
|
|
614
|
-
}
|
|
615
|
-
const value = on ? 'true' : 'false';
|
|
616
|
-
if (sessionStorage.getItem(DEBUG_MODE) !== value) {
|
|
617
|
-
sessionStorage.setItem(DEBUG_MODE, value);
|
|
618
|
-
window.location.reload();
|
|
619
|
-
}
|
|
620
|
-
};
|
|
621
|
-
|
|
622
485
|
const routerModule = i1.RouterModule.forRoot(routes, { useHash: true, scrollPositionRestoration: 'top' });
|
|
623
486
|
const toastrModule = ngxToastr.ToastNoAnimationModule.forRoot({ maxOpened: 1, autoDismiss: true });
|
|
624
487
|
// In angular 15, xsrf headerName should not be null. Angular 15 is not using default header value like it used to send in calls
|
|
@@ -815,6 +678,34 @@
|
|
|
815
678
|
tslib.__metadata("design:paramtypes", [i5.App, i0.Injector, i4.ComponentRefProvider])
|
|
816
679
|
], exports.AppModule);
|
|
817
680
|
|
|
681
|
+
const DEBUG_MODE = 'debugMode';
|
|
682
|
+
if (sessionStorage.getItem(DEBUG_MODE) !== 'true') {
|
|
683
|
+
i0.enableProdMode();
|
|
684
|
+
}
|
|
685
|
+
console.time('bootstrap');
|
|
686
|
+
document.addEventListener('DOMContentLoaded', () => {
|
|
687
|
+
new Promise(resolve => {
|
|
688
|
+
resolve();
|
|
689
|
+
}).then(() => platformBrowserDynamic.platformBrowserDynamic().bootstrapModule(exports.AppModule))
|
|
690
|
+
.then((appModuleRef) => {
|
|
691
|
+
const applicationRef = appModuleRef.injector.get(i0.ApplicationRef);
|
|
692
|
+
window.addEventListener('unload', () => {
|
|
693
|
+
applicationRef.components.map(c => c && c.destroy());
|
|
694
|
+
});
|
|
695
|
+
console.timeEnd('bootstrap');
|
|
696
|
+
}, err => console.log(err));
|
|
697
|
+
});
|
|
698
|
+
window.debugMode = function (on) {
|
|
699
|
+
if (lodashEs.isEmpty(on)) {
|
|
700
|
+
on = true;
|
|
701
|
+
}
|
|
702
|
+
const value = on ? 'true' : 'false';
|
|
703
|
+
if (sessionStorage.getItem(DEBUG_MODE) !== value) {
|
|
704
|
+
sessionStorage.setItem(DEBUG_MODE, value);
|
|
705
|
+
window.location.reload();
|
|
706
|
+
}
|
|
707
|
+
};
|
|
708
|
+
|
|
818
709
|
exports.AppExtensionProviderService = AppExtensionProviderService;
|
|
819
710
|
exports.AppJSProviderService = AppJSProviderService;
|
|
820
711
|
exports.AppResourceManagerService = AppResourceManagerService;
|
|
@@ -6,6 +6,7 @@ import { AppManagerService, BasePageComponent, BasePartialComponent, BaseCustomW
|
|
|
6
6
|
import { AppResourceManagerService } from './app-resource-manager.service';
|
|
7
7
|
import { isString, isUndefined } from "lodash-es";
|
|
8
8
|
import * as customWidgets from '@wavemaker/custom-widgets-m3';
|
|
9
|
+
import { PageDirective } from '@wm/components/page';
|
|
9
10
|
import * as i0 from "@angular/core";
|
|
10
11
|
import * as i1 from "./app-resource-manager.service";
|
|
11
12
|
import * as i2 from "@wm/core";
|
|
@@ -127,7 +128,8 @@ const getDynamicComponent = (componentName, type, template, css, script, variabl
|
|
|
127
128
|
{
|
|
128
129
|
provide: UserDefinedExecutionContext,
|
|
129
130
|
useExisting: DynamicComponent
|
|
130
|
-
}
|
|
131
|
+
},
|
|
132
|
+
PageDirective,
|
|
131
133
|
]
|
|
132
134
|
})(DynamicComponent);
|
|
133
135
|
return component;
|
|
@@ -214,4 +216,4 @@ export class ComponentRefProviderService extends ComponentRefProvider {
|
|
|
214
216
|
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(ComponentRefProviderService, [{
|
|
215
217
|
type: Injectable
|
|
216
218
|
}], () => [{ type: i1.AppResourceManagerService }, { type: i2.App }, { type: i3.AppManagerService }, { type: i0.Compiler }], null); })();
|
|
217
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tcG9uZW50LXJlZi1wcm92aWRlci5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvcnVudGltZS1keW5hbWljL3NyYy9hcHAvc2VydmljZXMvY29tcG9uZW50LXJlZi1wcm92aWRlci5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQ0gsUUFBUSxFQUNSLFNBQVMsRUFDVCxzQkFBc0IsRUFBYyxNQUFNLEVBQzFDLFVBQVUsRUFDVixRQUFRLEVBQ1IsUUFBUSxFQUNSLGdCQUFnQixFQUNoQixpQkFBaUIsRUFDcEIsTUFBTSxlQUFlLENBQUM7QUFFdkIsT0FBTyxFQUFFLEdBQUcsRUFBRSxZQUFZLEVBQUUsMkJBQTJCLEVBQUUsTUFBTSxVQUFVLENBQUM7QUFDMUUsT0FBTyxFQUFFLFNBQVMsRUFBRSxvQkFBb0IsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ2pFLE9BQU8sRUFDSCxpQkFBaUIsRUFDakIsaUJBQWlCLEVBQ2pCLG9CQUFvQixFQUNwQix5QkFBeUIsRUFDekIsbUJBQW1CLEVBQ25CLG9CQUFvQixFQUNwQixhQUFhLEVBQ2IsaUJBQWlCLEVBQ2pCLG1CQUFtQixFQUNuQix1QkFBdUIsRUFDMUIsTUFBTSxrQkFBa0IsQ0FBQztBQUUxQixPQUFPLEVBQUUseUJBQXlCLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUMzRSxPQUFPLEVBQUUsUUFBUSxFQUFFLFdBQVcsRUFBRSxNQUFNLFdBQVcsQ0FBQztBQUNsRCxPQUFPLEtBQUssYUFBYSxNQUFNLDhCQUE4QixDQUFDOzs7OztBQVk5RCxNQUFNLGFBQWEsR0FBRyxJQUFJLEdBQUcsRUFBZSxDQUFDO0FBRTdDLE1BQU0sQ0FBQyxhQUFhLEdBQUcsYUFBYSxDQUFDO0FBRXJDLE1BQU0sd0JBQXdCLEdBQUcsSUFBSSxHQUFHLEVBQW1DLENBQUM7QUFFNUUsd0JBQXdCLENBQUMsR0FBRyxDQUFDLGFB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aEgsd0JBQXdCLENBQUMsR0FBRyxDQUFDLGFBQWEsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxvQkFBb0IsRUFBRSxtQkFBbUIsQ0FBQyxDQUFDO1lBRTNGLE9BQU8sbUJBQW1CLENBQUM7UUFDL0IsQ0FBQyxFQUFFLENBQUMsR0FBRyxFQUFFLEVBQUU7WUFDUCxJQUFJLEdBQUcsRUFBRSxDQUFDO2dCQUNOLE1BQU0sR0FBRyxHQUFHLDBCQUEwQixDQUFDO2dCQUN2Qyx1Q0FBdUM7Z0JBQ3ZDLE9BQU8sQ0FBQyxHQUFHLENBQUMsR0FBRyxFQUFFLEdBQUcsQ0FBQyxDQUFDO2dCQUN0QixJQUFJLENBQUMsVUFBVSxDQUFDLFNBQVMsQ0FDckIsUUFBUSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEdBQUcsR0FBRywyQ0FBMkMsRUFDdkUsT0FBTyxDQUNWLENBQUM7WUFDTixDQUFDO1FBQ0wsQ0FBQyxDQUFDLENBQUM7SUFDWCxDQUFDO0lBRUQsdUJBQXVCO0lBQ2hCLDZCQUE2QjtRQUNoQyxJQUFJLENBQUMsV0FBVyxDQUFDLFVBQVUsRUFBRSxDQUFDO1FBQzlCLGFBQWEsQ0FBQyxLQUFLLEVBQUUsQ0FBQztRQUN0Qix3QkFBd0IsQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLEVBQUU7WUFDbkMsR0FBRyxDQUFDLEtBQUssRUFBRSxDQUFDO1FBQ2hCLENBQUMsQ0FBQyxDQUFDO0lBQ1AsQ0FBQzs0SEExRlEsMkJBQTJCO3VFQUEzQiwyQkFBMkIsV0FBM0IsMkJBQTJCOztpRkFBM0IsMkJBQTJCO2NBRHZDLFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICAgIENvbXBpbGVyLFxuICAgIENvbXBvbmVudCxcbiAgICBDVVNUT01fRUxFTUVOVFNfU0NIRU1BLCBmb3J3YXJkUmVmLCBJbmplY3QsXG4gICAgSW5qZWN0YWJsZSxcbiAgICBJbmplY3RvcixcbiAgICBOZ01vZHVsZSxcbiAgICBOT19FUlJPUlNfU0NIRU1BLFxuICAgIFZpZXdFbmNhcHN1bGF0aW9uXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5pbXBvcnQgeyBBcHAsIGdldFZhbGlkSlNPTiwgVXNlckRlZmluZWRFeGVjdXRpb25Db250ZXh0IH0gZnJvbSAnQHdtL2NvcmUnO1xuaW1wb3J0IHsgdHJhbnNwaWxlLCBzY29wZUNvbXBvbmVudFN0eWxlcyB9IGZyb20gJ0B3bS90cmFuc3BpbGVyJztcbmltcG9ydCB7XG4gICAgQXBwTWFuYWdlclNlcnZpY2UsXG4gICAgQmFzZVBhZ2VDb21wb25lbnQsXG4gICAgQmFzZVBhcnRpYWxDb21wb25lbnQsXG4gICAgQmFzZUN1c3RvbVdpZGdldENvbXBvbmVudCxcbiAgICBCYXNlUHJlZmFiQ29tcG9uZW50LFxuICAgIENvbXBvbmVudFJlZlByb3ZpZGVyLFxuICAgIENvbXBvbmVudFR5cGUsXG4gICAgUnVudGltZUJhc2VNb2R1bGUsXG4gICAgZ2V0UHJlZmFiTWluSnNvblVybCxcbiAgICBnZXRQcmVmYWJQYXJ0aWFsSnNvblVybFxufSBmcm9tICdAd20vcnVudGltZS9iYXNlJztcblxuaW1wb3J0IHsgQXBwUmVzb3VyY2VNYW5hZ2VyU2VydmljZSB9IGZyb20gJy4vYXBwLXJlc291cmNlLW1hbmFnZXIuc2VydmljZSc7XG5pbXBvcnQgeyBpc1N0cmluZywgaXNVbmRlZmluZWQgfSBmcm9tIFwibG9kYXNoLWVzXCI7XG5pbXBvcnQgKiBhcyBjdXN0b21XaWRnZXRzIGZyb20gJ0B3YXZlbWFrZXIvY3VzdG9tLXdpZGdldHMtbTMnO1xuXG5pbnRlcmZhY2UgSVBhZ2VNaW5KU09OIHtcbiAgICBtYXJrdXA6IHN0cmluZztcbiAgICBzY3JpcHQ6IHN0cmluZztcbiAgICBzdHlsZXM6IHN0cmluZztcbiAgICB2YXJpYWJsZXM6IHN0cmluZztcbiAgICBjb25maWc/OiBzdHJpbmc7XG59XG5cbmRlY2xhcmUgY29uc3Qgd2luZG93OiBhbnk7XG5cbmNvbnN0IGZyYWdtZW50Q2FjaGUgPSBuZXcgTWFwPHN0cmluZywgYW55PigpO1xuXG53aW5kb3cucmVzb3VyY2VDYWNoZSA9IGZyYWdtZW50Q2FjaGU7XG5cbmNvbnN0IGNvbXBvbmVudEZhY3RvcnlSZWZDYWNoZSA9IG5ldyBNYXA8Q29tcG9uZW50VHlwZSwgTWFwPHN0cmluZywgYW55Pj4oKTtcblxuY29tcG9uZW50RmFjdG9yeVJlZkNhY2hlLnNldChDb21wb25lbnRUeXBlLlBBR0UsIG5ldyBNYXA8c3RyaW5nLCBhbnk+KCkpO1xuY29tcG9uZW50RmFjdG9yeVJlZkNhY2hlLnNldChDb21wb25lbnRUeXBlLlBBUlRJQUwsIG5ldyBNYXA8c3RyaW5nLCBhbnk+KCkpO1xuY29tcG9uZW50RmFjdG9yeVJlZkNhY2hlLnNldChDb21wb25lbnRUeXBlLlBSRUZBQiwgbmV3IE1hcDxzdHJpbmcsIGFueT4oKSk7XG5jb21wb25lbnRGYWN0b3J5UmVmQ2FjaGUuc2V0KENvbXBvbmVudFR5cGUuV0lER0VULCBuZXcgTWFwPHN0cmluZywgYW55PigpKTtcblxuY29uc3QgX2RlY29kZVVSSUNvbXBvbmVudCA9IChzdHI6IHN0cmluZykgPT4gZGVjb2RlVVJJQ29tcG9uZW50KHN0ci5yZXBsYWNlKC9cXCsvZywgJyAnKSk7XG5cbmNvbnN0IGdldEZyYWdtZW50VXJsID0gKGZyYWdtZW50TmFtZTogc3RyaW5nLCB0eXBlOiBDb21wb25lbnRUeXBlLCBvcHRpb25zPykgPT4ge1xuICAgIGlmICh0eXBlID09PSBDb21wb25lbnRUeXBlLlBBR0UgfHwgdHlwZSA9PT0gQ29tcG9uZW50VHlwZS5QQVJUSUFMKSB7XG4gICAgICAgIHJldHVybiBvcHRpb25zICYmIG9wdGlvbnMucHJlZmFiID8gZ2V0UHJlZmFiUGFydGlhbEpzb25Vcmwob3B0aW9ucy5wcmVmYWIsIGZyYWdtZW50TmFtZSkgOiBgLi9wYWdlcy8ke2ZyYWdtZW50TmFtZX0vcGFnZS5taW4uanNvbmA7XG4gICAgfSBlbHNlIGlmICh0eXBlID09PSBDb21wb25lbnRUeXBlLlBSRUZBQikge1xuICAgICAgICByZXR1cm4gZ2V0UHJlZmFiTWluSnNvblVybChmcmFnbWVudE5hbWUpO1xuICAgIH0gZWxzZSBpZiAodHlwZSA9PT0gQ29tcG9uZW50VHlwZS5XSURHRVQpIHtcbiAgICAgICAgcmV0dXJuIGAuL2N1c3RvbS13aWRnZXRzLyR7ZnJhZ21lbnROYW1lfS9wYWdlLm1pbi5qc29uYFxuICAgIH1cbn07XG5cbmNvbnN0IHNjcmlwdENhY2hlID0gbmV3IE1hcDxzdHJpbmcsIEZ1bmN0aW9uPigpO1xuY29uc3QgZXhlY1NjcmlwdCA9IChcbiAgICBzY3JpcHQ6IHN0cmluZyxcbiAgICBpZGVudGlmaWVyOiBzdHJpbmcsXG4gICAgY3R4OiBzdHJpbmcsXG4gICAgaW5zdGFuY2U6IGFueSxcbiAgICBhcHA6IGFueSxcbiAgICB1dGlsczogYW55XG4pID0+IHtcbiAgICBsZXQgZm4gPSBzY3JpcHRDYWNoZS5nZXQoaWRlbnRpZmllcik7XG4gICAgLy8gRml4IGZvciBbV01TLTIxMTk2XTogSW5jb3JyZWN0IHNjcmlwdCBpcyBiZWluZyBhc3NpZ25lZCwgIHdoZW4gMiBwcmVmYWJzIGhhdmUgc2FtZSBwYXJ0aWFsIG5hbWUgKGkuZS4gc2FtZSBpZGVudGlmaWVyKS5cbiAgICBpZiAoKGN0eCA9PT0gJ1BhcnRpYWwnICYmICFpc1VuZGVmaW5lZChpbnN0YW5jZS5QcmVmYWIpKSB8fCAhZm4pIHtcbiAgICAgICAgZm4gPSBuZXcgRnVuY3Rpb24oY3R4LCAnQXBwJywgJ1V0aWxzJywgc2NyaXB0KTtcbiAgICAgICAgc2NyaXB0Q2FjaGUuc2V0KGlkZW50aWZpZXIsIGZuKTtcbiAgICB9XG4gICAgZm4oaW5zdGFuY2UsIGFwcCwgdXRpbHMpO1xufTtcblxuY2xhc3MgQmFzZUR5bmFtaWNDb21wb25lbnQge1xuICAgIGluaXQoKSB7IH1cbn1cblxuY29uc3QgZ2V0RHluYW1pY01vZHVsZSA9IChjb21wb25lbnRSZWY6IGFueSkgPT4ge1xuICAgIHJldHVybiBOZ01vZHVsZSh7XG4gICAgICAgIGRlY2xhcmF0aW9uczogW2NvbXBvbmVudFJlZl0sXG4gICAgICAgIGltcG9ydHM6IFtcbiAgICAgICAgICAgIFJ1bnRpbWVCYXNlTW9kdWxlLFxuICAgICAgICBdLFxuICAgICAgICBzY2hlbWFzOiBbQ1VTVE9NX0VMRU1FTlRTX1NDSEVNQSwgTk9fRVJST1JTX1NDSEVNQV1cbiAgICB9KShjbGFzcyBEeW5hbWljTW9kdWxlIHsgfSk7XG59O1xuXG5jb25zdCBnZXREeW5hbWljQ29tcG9uZW50ID0gKFxuICAgIGNvbXBvbmVudE5hbWUsXG4gICAgdHlwZTogQ29tcG9uZW50VHlwZSxcbiAgICB0ZW1wbGF0ZTogc3RyaW5nLFxuICAgIGNzczogc3RyaW5nLFxuICAgIHNjcmlwdDogYW55LFxuICAgIHZhcmlhYmxlczogc3RyaW5nLFxuKSA9PiB7XG5cbiAgICBjb25zdCBjb21wb25lbnREZWYgPSB7XG4gICAgICAgIHRlbXBsYXRlLFxuICAgICAgICBzdHlsZXM6IFtjc3NdLFxuICAgICAgICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lXG4gICAgfTtcblxuICAgIGxldCBCYXNlQ2xhc3M6IGFueSA9IEJhc2VEeW5hbWljQ29tcG9uZW50O1xuICAgIGxldCBzZWxlY3RvciA9ICcnO1xuICAgIGxldCBjb250ZXh0ID0gJyc7XG5cbiAgICBzd2l0Y2ggKHR5cGUpIHtcbiAgICAgICAgY2FzZSBDb21wb25lbnRUeXBlLlBBR0U6XG4gICAgICAgICAgICBCYXNlQ2xhc3MgPSBCYXNlUGFnZUNvbXBvbmVudDtcbiAgICAgICAgICAgIHNlbGVjdG9yID0gYGFwcC1wYWdlLSR7Y29tcG9uZW50TmFtZX1gO1xuICAgICAgICAgICAgY29udGV4dCA9ICdQYWdlJztcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlIENvbXBvbmVudFR5cGUuUEFSVElBTDpcbiAgICAgICAgICAgIEJhc2VDbGFzcyA9IEJhc2VQYXJ0aWFsQ29tcG9uZW50O1xuICAgICAgICAgICAgc2VsZWN0b3IgPSBgYXBwLXBhcnRpYWwtJHtjb21wb25lbnROYW1lfWA7XG4gICAgICAgICAgICBjb250ZXh0ID0gJ1BhcnRpYWwnO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgQ29tcG9uZW50VHlwZS5QUkVGQUI6XG4gICAgICAgICAgICBCYXNlQ2xhc3MgPSBCYXNlUHJlZmFiQ29tcG9uZW50O1xuICAgICAgICAgICAgc2VsZWN0b3IgPSBgYXBwLXByZWZhYi0ke2NvbXBvbmVudE5hbWV9YDtcbiAgICAgICAgICAgIGNvbnRleHQgPSAnUHJlZmFiJztcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlIENvbXBvbmVudFR5cGUuV0lER0VUOlxuICAgICAgICAgICAgQmFzZUNsYXNzID0gQmFzZUN1c3RvbVdpZGdldENvbXBvbmVudDtcbiAgICAgICAgICAgIHNlbGVjdG9yID0gYGFwcC1jdXN0b20tJHtjb21wb25lbnROYW1lfWA7XG4gICAgICAgICAgICBjb250ZXh0ID0gJ1dpZGdldCc7XG4gICAgICAgICAgICBicmVhaztcbiAgICB9XG5cbiAgICBjbGFzcyBEeW5hbWljQ29tcG9uZW50IGV4dGVuZHMgQmFzZUNsYXNzIHtcbiAgICAgICAgaXNEeW5hbWljQ29tcG9uZW50OiBib29sZWFuID0gdHJ1ZTtcbiAgICAgICAgcGFnZU5hbWU7XG4gICAgICAgIHBhcnRpYWxOYW1lO1xuICAgICAgICBwcmVmYWJOYW1lO1xuICAgICAgICBjdXN0b21XaWRnZXROYW1lO1xuICAgICAgICBjb25zdHJ1Y3RvcihASW5qZWN0KEluamVjdG9yKSBwdWJsaWMgaW5qZWN0b3I6IEluamVjdG9yKSB7XG4gICAgICAgICAgICBzdXBlcigpO1xuICAgICAgICAgICAgdGhpcy5pbmplY3RvciA9IGluamVjdG9yO1xuICAgICAgICAgICAgc3dpdGNoICh0eXBlKSB7XG4gICAgICAgICAgICAgICAgY2FzZSBDb21wb25lbnRUeXBlLlBBR0U6XG4gICAgICAgICAgICAgICAgICAgIHRoaXMucGFnZU5hbWUgPSBjb21wb25lbnROYW1lO1xuICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICBjYXNlIENvbXBvbmVudFR5cGUuUEFSVElBTDpcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5wYXJ0aWFsTmFtZSA9IGNvbXBvbmVudE5hbWU7XG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgIGNhc2UgQ29tcG9uZW50VHlwZS5QUkVGQUI6XG4gICAgICAgICAgICAgICAgICAgIHRoaXMucHJlZmFiTmFtZSA9IGNvbXBvbmVudE5hbWU7XG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgIGNhc2UgQ29tcG9uZW50VHlwZS5XSURHRVQ6XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuY3VzdG9tV2lkZ2V0TmFtZSA9IGNvbXBvbmVudE5hbWU7XG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBzdXBlci5pbml0KCk7XG4gICAgICAgIH1cblxuICAgICAgICBldmFsVXNlclNjcmlwdChpbnN0YW5jZTogYW55LCBhcHBDb250ZXh0OiBhbnksIHV0aWxzOiBhbnkpIHtcbiAgICAgICAgICAgIGV4ZWNTY3JpcHQoc2NyaXB0LCBzZWxlY3RvciwgY29udGV4dCwgaW5zdGFuY2UsIGFwcENvbnRleHQsIHV0aWxzKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGdldFZhcmlhYmxlcygpIHtcbiAgICAgICAgICAgIHJldHVybiBKU09OLnBhcnNlKHZhcmlhYmxlcyk7XG4gICAgICAgIH1cblxuICAgICAgICAvLyBpbiBwcmV2aWV3IG1vZGUsIHRoZXJlIHdpbGwgYmUgbm8gZnVuY3Rpb24gcmVnaXN0ZXJlZC4gZnVuY3Rpb25zIHdpbGwgYmUgZ2VuZXJhdGVkIGR5bmFtaWNhbGx5IHRocm91Z2ggJHBhcnNlRXZlbnQgYW5kICRwYXJzZUV4cHJcbiAgICAgICAgZ2V0RXhwcmVzc2lvbnMoKSB7XG4gICAgICAgICAgICByZXR1cm4ge307XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBjb25zdCBjb21wb25lbnQgPSBDb21wb25lbnQoe1xuICAgICAgICAuLi5jb21wb25lbnREZWYsXG4gICAgICAgIHNlbGVjdG9yLFxuICAgICAgICBwcm92aWRlcnM6IFtcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICBwcm92aWRlOiBVc2VyRGVmaW5lZEV4ZWN1dGlvbkNvbnRleHQsXG4gICAgICAgICAgICAgICAgdXNlRXhpc3Rpbmc6IER5bmFtaWNDb21wb25lbnRcbiAgICAgICAgICAgIH1cbiAgICAgICAgXVxuICAgIH0pKER5bmFtaWNDb21wb25lbnQpXG4gICAgcmV0dXJuIGNvbXBvbmVudDtcbn07XG5cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBDb21wb25lbnRSZWZQcm92aWRlclNlcnZpY2UgZXh0ZW5kcyBDb21wb25lbnRSZWZQcm92aWRlciB7XG5cbiAgICBwcml2YXRlIGxvYWRSZXNvdXJjZXNPZkZyYWdtZW50KGNvbXBvbmVudE5hbWUsIGNvbXBvbmVudFR5cGUsIG9wdGlvbnM/KTogUHJvbWlzZTxJUGFnZU1pbkpTT04+IHtcbiAgICAgICAgY29uc3QgdXJsID0gZ2V0RnJhZ21lbnRVcmwoY29tcG9uZW50TmFtZSwgY29tcG9uZW50VHlwZSwgb3B0aW9ucyk7XG5cbiAgICAgICAgY29uc3QgcmVzb3VyY2UgPSBmcmFnbWVudENhY2hlLmdldCh1cmwpO1xuXG4gICAgICAgIGlmIChyZXNvdXJjZSkge1xuICAgICAgICAgICAgcmV0dXJuIHJlc291cmNlO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IHByb21pc2UgPSAoKChjb21wb25lbnRUeXBlID09PSBDb21wb25lbnRUeXBlLldJREdFVCAmJiAhY3VzdG9tV2lkZ2V0c1tjb21wb25lbnROYW1lXSkgfHwgY29tcG9uZW50VHlwZSAhPT0gQ29tcG9uZW50VHlwZS5XSURHRVQpID8gdGhpcy5yZXNvdWNlTW5nci5nZXQodXJsLCB0cnVlKSA6IFByb21pc2UucmVzb2x2ZShjdXN0b21XaWRnZXRzW2NvbXBvbmVudE5hbWVdKSlcbiAgICAgICAgICAgIC50aGVuKCh7IG1hcmt1cCwgc2NyaXB0LCBzdHlsZXMsIHZhcmlhYmxlcywgY29uZmlnIH06IElQYWdlTWluSlNPTikgPT4ge1xuICAgICAgICAgICAgICAgIGNvbnN0IHJlc3BvbnNlID0ge1xuICAgICAgICAgICAgICAgICAgICBtYXJrdXA6IHRyYW5zcGlsZShfZGVjb2RlVVJJQ29tcG9uZW50KG1hcmt1cCkpLm1hcmt1cCxcbiAgICAgICAgICAgICAgICAgICAgc2NyaXB0OiBfZGVjb2RlVVJJQ29tcG9uZW50KHNjcmlwdCksXG4gICAgICAgICAgICAgICAgICAgIHN0eWxlczogc2NvcGVDb21wb25lbnRTdHlsZXMoY29tcG9uZW50TmFtZSwgY29tcG9uZW50VHlwZSwgX2RlY29kZVVSSUNvbXBvbmVudChzdHlsZXMpKSxcbiAgICAgICAgICAgICAgICAgICAgdmFyaWFibGVzOiBnZXRWYWxpZEpTT04oX2RlY29kZVVSSUNvbXBvbmVudCh2YXJpYWJsZXMpKSxcbiAgICAgICAgICAgICAgICAgICAgLi4uKGNvbmZpZyA/IHsgY29uZmlnOiBnZXRWYWxpZEpTT04oX2RlY29kZVVSSUNvbXBvbmVudChjb25maWcpKSB9IDoge30pXG4gICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgICAgICBmcmFnbWVudENhY2hlLnNldCh1cmwsIFByb21pc2UucmVzb2x2ZShyZXNwb25zZSkpO1xuXG4gICAgICAgICAgICAgICAgcmV0dXJuIHJlc3BvbnNlO1xuICAgICAgICAgICAgfSwgZSA9PiB7XG4gICAgICAgICAgICAgICAgY29uc3Qgc3RhdHVzID0gZS5kZXRhaWxzLnN0YXR1cztcbiAgICAgICAgICAgICAgICBjb25zdCBlcnJvck1zZ01hcCA9IHtcbiAgICAgICAgICAgICAgICAgICAgNDA0OiB0aGlzLmFwcC5hcHBMb2NhbGUuTUVTU0FHRV9QQUdFX05PVF9GT1VORCB8fCAnVGhlIHBhZ2UgeW91IGFyZSB0cnlpbmcgdG8gcmVhY2ggaXMgbm90IGF2YWlsYWJsZScsXG4gICAgICAgICAgICAgICAgICAgIDQwMzogdGhpcy5hcHAuYXBwTG9jYWxlLkxBQkVMX0FDQ0VTU19ERU5JRUQgfHwgJ0FjY2VzcyBEZW5pZWQnXG4gICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgICAgICByZXR1cm4gUHJvbWlzZS5yZWplY3QoZXJyb3JNc2dNYXBbc3RhdHVzXSk7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgZnJhZ21lbnRDYWNoZS5zZXQodXJsLCBwcm9taXNlKTtcbiAgICAgICAgcmV0dXJuIHByb21pc2U7XG4gICAgfVxuXG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIHByaXZhdGUgcmVzb3VjZU1uZ3I6IEFwcFJlc291cmNlTWFuYWdlclNlcnZpY2UsXG4gICAgICAgIHByaXZhdGUgYXBwOiBBcHAsXG4gICAgICAgIHByaXZhdGUgYXBwTWFuYWdlcjogQXBwTWFuYWdlclNlcnZpY2UsXG4gICAgICAgIHByaXZhdGUgY29tcGlsZXI6IENvbXBpbGVyXG4gICAgKSB7XG4gICAgICAgIHN1cGVyKCk7XG4gICAgfVxuXG4gICAgcHVibGljIGFzeW5jIGdldENvbXBvbmVudEZhY3RvcnlSZWYoY29tcG9uZW50TmFtZTogc3RyaW5nLCBjb21wb25lbnRUeXBlOiBDb21wb25lbnRUeXBlLCBvcHRpb25zPzoge30pOiBQcm9taXNlPGFueT4ge1xuICAgICAgICAvLyBjaGVjayBpbiB0aGUgY2FjaGUuXG4gICAgICAgIGNvbnN0IGNvbXBvbmVudEZhY3RvcnlNYXAgPSBjb21wb25lbnRGYWN0b3J5UmVmQ2FjaGUuZ2V0KGNvbXBvbmVudFR5cGUpO1xuICAgICAgICBsZXQgY29tcG9uZW50RmFjdG9yeVJlZjtcbiAgICAgICAgaWYgKGNvbXBvbmVudEZhY3RvcnlNYXApIHtcbiAgICAgICAgICAgIGNvbnN0IHVwZGF0ZWRDb21wb25lbnROYW1lID0gKG9wdGlvbnMgJiYgb3B0aW9uc1sncHJlZmFiJ10pID8gb3B0aW9uc1sncHJlZmFiJ10gKyBjb21wb25lbnROYW1lIDogY29tcG9uZW50TmFtZTtcbiAgICAgICAgICAgIGNvbXBvbmVudEZhY3RvcnlSZWYgPSBjb21wb25lbnRGYWN0b3J5TWFwLmdldCh1cGRhdGVkQ29tcG9uZW50TmFtZSk7XG5cbiAgICAgICAgICAgIGlmIChjb21wb25lbnRGYWN0b3J5UmVmKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGNvbXBvbmVudEZhY3RvcnlSZWY7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gdGhpcy5sb2FkUmVzb3VyY2VzT2ZGcmFnbWVudChjb21wb25lbnROYW1lLCBjb21wb25lbnRUeXBlLCBvcHRpb25zKVxuICAgICAgICAgICAgLnRoZW4oKHsgbWFya3VwLCBzY3JpcHQsIHN0eWxlcywgdmFyaWFibGVzIH0pID0+IHtcbiAgICAgICAgICAgICAgICBjb25zdCBjb21wb25lbnREZWYgPSBnZXREeW5hbWljQ29tcG9uZW50KGNvbXBvbmVudE5hbWUsIGNvbXBvbmVudFR5cGUsIG1hcmt1cCwgc3R5bGVzLCBzY3JpcHQsIEpTT04uc3RyaW5naWZ5KHZhcmlhYmxlcykpO1xuICAgICAgICAgICAgICAgIGNvbnN0IG1vZHVsZURlZiA9IGdldER5bmFtaWNNb2R1bGUoY29tcG9uZW50RGVmKTtcblxuICAgICAgICAgICAgICAgIGNvbXBvbmVudEZhY3RvcnlSZWYgPSB0aGlzLmNvbXBpbGVyXG4gICAgICAgICAgICAgICAgICAgIC5jb21waWxlTW9kdWxlQW5kQWxsQ29tcG9uZW50c1N5bmMobW9kdWxlRGVmKVxuICAgICAgICAgICAgICAgICAgICAuY29tcG9uZW50RmFjdG9yaWVzXG4gICAgICAgICAgICAgICAgICAgIC5maWx0ZXIoZmFjdG9yeSA9PiAvLyBAdHMtaWdub3JlXG4gICAgICAgICAgICAgICAgICAgICAgICBmYWN0b3J5LmNvbXBvbmVudFR5cGUgPT09IGNvbXBvbmVudERlZilbMF07XG4gICAgICAgICAgICAgICAgY29uc3QgdXBkYXRlZENvbXBvbmVudE5hbWUgPSAob3B0aW9ucyAmJiBvcHRpb25zWydwcmVmYWInXSkgPyBvcHRpb25zWydwcmVmYWInXSArIGNvbXBvbmVudE5hbWUgOiBjb21wb25lbnROYW1lO1xuICAgICAgICAgICAgICAgIGNvbXBvbmVudEZhY3RvcnlSZWZDYWNoZS5nZXQoY29tcG9uZW50VHlwZSkuc2V0KHVwZGF0ZWRDb21wb25lbnROYW1lLCBjb21wb25lbnRGYWN0b3J5UmVmKTtcblxuICAgICAgICAgICAgICAgIHJldHVybiBjb21wb25lbnRGYWN0b3J5UmVmO1xuICAgICAgICAgICAgfSwgKGVycikgPT4ge1xuICAgICAgICAgICAgICAgIGlmIChlcnIpIHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgbXNnID0gXCJFcnJvciB3aGlsZSBsb2FkaW5nIHBhZ2VcIjtcbiAgICAgICAgICAgICAgICAgICAgLy8gY29uc29sZSB0aGUgZXJyb3IgZm9yIGVhc3kgZGVidWdnaW5nXG4gICAgICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKG1zZywgZXJyKTtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5hcHBNYW5hZ2VyLm5vdGlmeUFwcChcbiAgICAgICAgICAgICAgICAgICAgICAgIGlzU3RyaW5nKGVycikgPyBlcnIgOiBtc2cgKyAnLCBjaGVjayBicm93c2VyIGNvbnNvbGUgZm9yIGVycm9yIGRldGFpbHMnLFxuICAgICAgICAgICAgICAgICAgICAgICAgJ2Vycm9yJ1xuICAgICAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pO1xuICAgIH1cblxuICAgIC8vIGNsZWFycyB0aGUgY2FjaGUgbWFwXG4gICAgcHVibGljIGNsZWFyQ29tcG9uZW50RmFjdG9yeVJlZkNhY2hlKCkge1xuICAgICAgICB0aGlzLnJlc291Y2VNbmdyLmNsZWFyQ2FjaGUoKTtcbiAgICAgICAgZnJhZ21lbnRDYWNoZS5jbGVhcigpO1xuICAgICAgICBjb21wb25lbnRGYWN0b3J5UmVmQ2FjaGUuZm9yRWFjaChtYXAgPT4ge1xuICAgICAgICAgICAgbWFwLmNsZWFyKCk7XG4gICAgICAgIH0pO1xuICAgIH1cbn1cbiJdfQ==
|
|
219
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tcG9uZW50LXJlZi1wcm92aWRlci5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvcnVudGltZS1keW5hbWljL3NyYy9hcHAvc2VydmljZXMvY29tcG9uZW50LXJlZi1wcm92aWRlci5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQ0gsUUFBUSxFQUNSLFNBQVMsRUFDVCxzQkFBc0IsRUFBYyxNQUFNLEVBQzFDLFVBQVUsRUFDVixRQUFRLEVBQ1IsUUFBUSxFQUNSLGdCQUFnQixFQUNoQixpQkFBaUIsRUFDcEIsTUFBTSxlQUFlLENBQUM7QUFFdkIsT0FBTyxFQUFFLEdBQUcsRUFBRSxZQUFZLEVBQUUsMkJBQTJCLEVBQUUsTUFBTSxVQUFVLENBQUM7QUFDMUUsT0FBTyxFQUFFLFNBQVMsRUFBRSxvQkFBb0IsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ2pFLE9BQU8sRUFDSCxpQkFBaUIsRUFDakIsaUJBQWlCLEVBQ2pCLG9CQUFvQixFQUNwQix5QkFBeUIsRUFDekIsbUJBQW1CLEVBQ25CLG9CQUFvQixFQUNwQixhQUFhLEVBQ2IsaUJBQWlCLEVBQ2pCLG1CQUFtQixFQUNuQix1QkFBdUIsRUFDMUIsTUFBTSxrQkFBa0IsQ0FBQztBQUUxQixPQUFPLEVBQUUseUJBQXlCLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUMzRSxPQUFPLEVBQUUsUUFBUSxFQUFFLFdBQVcsRUFBRSxNQUFNLFdBQVcsQ0FBQztBQUNsRCxPQUFPLEtBQUssYUFBYSxNQUFNLDhCQUE4QixDQUFDO0FBQzlELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQzs7Ozs7QUFZcEQsTUFBTSxhQUFhLEdBQUcsSUFBSSxHQUFHLEVBQWUsQ0FBQztBQUU3QyxNQUFNLENBQUMsYUFBYSxHQUFHLGFBQWEsQ0FBQztBQUVyQyxNQUFNLHdCQUF3QixHQUFHLElBQUksR0FB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LENBQUMsUUFBUSxDQUFDLEdBQUcsYUFBYSxDQUFDLENBQUMsQ0FBQyxhQUFhLENBQUM7WUFDaEgsd0JBQXdCLENBQUMsR0FBRyxDQUFDLGFBQWEsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxvQkFBb0IsRUFBRSxtQkFBbUIsQ0FBQyxDQUFDO1lBRTNGLE9BQU8sbUJBQW1CLENBQUM7UUFDL0IsQ0FBQyxFQUFFLENBQUMsR0FBRyxFQUFFLEVBQUU7WUFDUCxJQUFJLEdBQUcsRUFBRSxDQUFDO2dCQUNOLE1BQU0sR0FBRyxHQUFHLDBCQUEwQixDQUFDO2dCQUN2Qyx1Q0FBdUM7Z0JBQ3ZDLE9BQU8sQ0FBQyxHQUFHLENBQUMsR0FBRyxFQUFFLEdBQUcsQ0FBQyxDQUFDO2dCQUN0QixJQUFJLENBQUMsVUFBVSxDQUFDLFNBQVMsQ0FDckIsUUFBUSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEdBQUcsR0FBRywyQ0FBMkMsRUFDdkUsT0FBTyxDQUNWLENBQUM7WUFDTixDQUFDO1FBQ0wsQ0FBQyxDQUFDLENBQUM7SUFDWCxDQUFDO0lBRUQsdUJBQXVCO0lBQ2hCLDZCQUE2QjtRQUNoQyxJQUFJLENBQUMsV0FBVyxDQUFDLFVBQVUsRUFBRSxDQUFDO1FBQzlCLGFBQWEsQ0FBQyxLQUFLLEVBQUUsQ0FBQztRQUN0Qix3QkFBd0IsQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLEVBQUU7WUFDbkMsR0FBRyxDQUFDLEtBQUssRUFBRSxDQUFDO1FBQ2hCLENBQUMsQ0FBQyxDQUFDO0lBQ1AsQ0FBQzs0SEExRlEsMkJBQTJCO3VFQUEzQiwyQkFBMkIsV0FBM0IsMkJBQTJCOztpRkFBM0IsMkJBQTJCO2NBRHZDLFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICAgIENvbXBpbGVyLFxuICAgIENvbXBvbmVudCxcbiAgICBDVVNUT01fRUxFTUVOVFNfU0NIRU1BLCBmb3J3YXJkUmVmLCBJbmplY3QsXG4gICAgSW5qZWN0YWJsZSxcbiAgICBJbmplY3RvcixcbiAgICBOZ01vZHVsZSxcbiAgICBOT19FUlJPUlNfU0NIRU1BLFxuICAgIFZpZXdFbmNhcHN1bGF0aW9uXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5pbXBvcnQgeyBBcHAsIGdldFZhbGlkSlNPTiwgVXNlckRlZmluZWRFeGVjdXRpb25Db250ZXh0IH0gZnJvbSAnQHdtL2NvcmUnO1xuaW1wb3J0IHsgdHJhbnNwaWxlLCBzY29wZUNvbXBvbmVudFN0eWxlcyB9IGZyb20gJ0B3bS90cmFuc3BpbGVyJztcbmltcG9ydCB7XG4gICAgQXBwTWFuYWdlclNlcnZpY2UsXG4gICAgQmFzZVBhZ2VDb21wb25lbnQsXG4gICAgQmFzZVBhcnRpYWxDb21wb25lbnQsXG4gICAgQmFzZUN1c3RvbVdpZGdldENvbXBvbmVudCxcbiAgICBCYXNlUHJlZmFiQ29tcG9uZW50LFxuICAgIENvbXBvbmVudFJlZlByb3ZpZGVyLFxuICAgIENvbXBvbmVudFR5cGUsXG4gICAgUnVudGltZUJhc2VNb2R1bGUsXG4gICAgZ2V0UHJlZmFiTWluSnNvblVybCxcbiAgICBnZXRQcmVmYWJQYXJ0aWFsSnNvblVybFxufSBmcm9tICdAd20vcnVudGltZS9iYXNlJztcblxuaW1wb3J0IHsgQXBwUmVzb3VyY2VNYW5hZ2VyU2VydmljZSB9IGZyb20gJy4vYXBwLXJlc291cmNlLW1hbmFnZXIuc2VydmljZSc7XG5pbXBvcnQgeyBpc1N0cmluZywgaXNVbmRlZmluZWQgfSBmcm9tIFwibG9kYXNoLWVzXCI7XG5pbXBvcnQgKiBhcyBjdXN0b21XaWRnZXRzIGZyb20gJ0B3YXZlbWFrZXIvY3VzdG9tLXdpZGdldHMtbTMnO1xuaW1wb3J0IHsgUGFnZURpcmVjdGl2ZSB9IGZyb20gJ0B3bS9jb21wb25lbnRzL3BhZ2UnO1xuXG5pbnRlcmZhY2UgSVBhZ2VNaW5KU09OIHtcbiAgICBtYXJrdXA6IHN0cmluZztcbiAgICBzY3JpcHQ6IHN0cmluZztcbiAgICBzdHlsZXM6IHN0cmluZztcbiAgICB2YXJpYWJsZXM6IHN0cmluZztcbiAgICBjb25maWc/OiBzdHJpbmc7XG59XG5cbmRlY2xhcmUgY29uc3Qgd2luZG93OiBhbnk7XG5cbmNvbnN0IGZyYWdtZW50Q2FjaGUgPSBuZXcgTWFwPHN0cmluZywgYW55PigpO1xuXG53aW5kb3cucmVzb3VyY2VDYWNoZSA9IGZyYWdtZW50Q2FjaGU7XG5cbmNvbnN0IGNvbXBvbmVudEZhY3RvcnlSZWZDYWNoZSA9IG5ldyBNYXA8Q29tcG9uZW50VHlwZSwgTWFwPHN0cmluZywgYW55Pj4oKTtcblxuY29tcG9uZW50RmFjdG9yeVJlZkNhY2hlLnNldChDb21wb25lbnRUeXBlLlBBR0UsIG5ldyBNYXA8c3RyaW5nLCBhbnk+KCkpO1xuY29tcG9uZW50RmFjdG9yeVJlZkNhY2hlLnNldChDb21wb25lbnRUeXBlLlBBUlRJQUwsIG5ldyBNYXA8c3RyaW5nLCBhbnk+KCkpO1xuY29tcG9uZW50RmFjdG9yeVJlZkNhY2hlLnNldChDb21wb25lbnRUeXBlLlBSRUZBQiwgbmV3IE1hcDxzdHJpbmcsIGFueT4oKSk7XG5jb21wb25lbnRGYWN0b3J5UmVmQ2FjaGUuc2V0KENvbXBvbmVudFR5cGUuV0lER0VULCBuZXcgTWFwPHN0cmluZywgYW55PigpKTtcblxuY29uc3QgX2RlY29kZVVSSUNvbXBvbmVudCA9IChzdHI6IHN0cmluZykgPT4gZGVjb2RlVVJJQ29tcG9uZW50KHN0ci5yZXBsYWNlKC9cXCsvZywgJyAnKSk7XG5cbmNvbnN0IGdldEZyYWdtZW50VXJsID0gKGZyYWdtZW50TmFtZTogc3RyaW5nLCB0eXBlOiBDb21wb25lbnRUeXBlLCBvcHRpb25zPykgPT4ge1xuICAgIGlmICh0eXBlID09PSBDb21wb25lbnRUeXBlLlBBR0UgfHwgdHlwZSA9PT0gQ29tcG9uZW50VHlwZS5QQVJUSUFMKSB7XG4gICAgICAgIHJldHVybiBvcHRpb25zICYmIG9wdGlvbnMucHJlZmFiID8gZ2V0UHJlZmFiUGFydGlhbEpzb25Vcmwob3B0aW9ucy5wcmVmYWIsIGZyYWdtZW50TmFtZSkgOiBgLi9wYWdlcy8ke2ZyYWdtZW50TmFtZX0vcGFnZS5taW4uanNvbmA7XG4gICAgfSBlbHNlIGlmICh0eXBlID09PSBDb21wb25lbnRUeXBlLlBSRUZBQikge1xuICAgICAgICByZXR1cm4gZ2V0UHJlZmFiTWluSnNvblVybChmcmFnbWVudE5hbWUpO1xuICAgIH0gZWxzZSBpZiAodHlwZSA9PT0gQ29tcG9uZW50VHlwZS5XSURHRVQpIHtcbiAgICAgICAgcmV0dXJuIGAuL2N1c3RvbS13aWRnZXRzLyR7ZnJhZ21lbnROYW1lfS9wYWdlLm1pbi5qc29uYFxuICAgIH1cbn07XG5cbmNvbnN0IHNjcmlwdENhY2hlID0gbmV3IE1hcDxzdHJpbmcsIEZ1bmN0aW9uPigpO1xuY29uc3QgZXhlY1NjcmlwdCA9IChcbiAgICBzY3JpcHQ6IHN0cmluZyxcbiAgICBpZGVudGlmaWVyOiBzdHJpbmcsXG4gICAgY3R4OiBzdHJpbmcsXG4gICAgaW5zdGFuY2U6IGFueSxcbiAgICBhcHA6IGFueSxcbiAgICB1dGlsczogYW55XG4pID0+IHtcbiAgICBsZXQgZm4gPSBzY3JpcHRDYWNoZS5nZXQoaWRlbnRpZmllcik7XG4gICAgLy8gRml4IGZvciBbV01TLTIxMTk2XTogSW5jb3JyZWN0IHNjcmlwdCBpcyBiZWluZyBhc3NpZ25lZCwgIHdoZW4gMiBwcmVmYWJzIGhhdmUgc2FtZSBwYXJ0aWFsIG5hbWUgKGkuZS4gc2FtZSBpZGVudGlmaWVyKS5cbiAgICBpZiAoKGN0eCA9PT0gJ1BhcnRpYWwnICYmICFpc1VuZGVmaW5lZChpbnN0YW5jZS5QcmVmYWIpKSB8fCAhZm4pIHtcbiAgICAgICAgZm4gPSBuZXcgRnVuY3Rpb24oY3R4LCAnQXBwJywgJ1V0aWxzJywgc2NyaXB0KTtcbiAgICAgICAgc2NyaXB0Q2FjaGUuc2V0KGlkZW50aWZpZXIsIGZuKTtcbiAgICB9XG4gICAgZm4oaW5zdGFuY2UsIGFwcCwgdXRpbHMpO1xufTtcblxuY2xhc3MgQmFzZUR5bmFtaWNDb21wb25lbnQge1xuICAgIGluaXQoKSB7IH1cbn1cblxuY29uc3QgZ2V0RHluYW1pY01vZHVsZSA9IChjb21wb25lbnRSZWY6IGFueSkgPT4ge1xuICAgIHJldHVybiBOZ01vZHVsZSh7XG4gICAgICAgIGRlY2xhcmF0aW9uczogW2NvbXBvbmVudFJlZl0sXG4gICAgICAgIGltcG9ydHM6IFtcbiAgICAgICAgICAgIFJ1bnRpbWVCYXNlTW9kdWxlLFxuICAgICAgICBdLFxuICAgICAgICBzY2hlbWFzOiBbQ1VTVE9NX0VMRU1FTlRTX1NDSEVNQSwgTk9fRVJST1JTX1NDSEVNQV1cbiAgICB9KShjbGFzcyBEeW5hbWljTW9kdWxlIHsgfSk7XG59O1xuXG5jb25zdCBnZXREeW5hbWljQ29tcG9uZW50ID0gKFxuICAgIGNvbXBvbmVudE5hbWUsXG4gICAgdHlwZTogQ29tcG9uZW50VHlwZSxcbiAgICB0ZW1wbGF0ZTogc3RyaW5nLFxuICAgIGNzczogc3RyaW5nLFxuICAgIHNjcmlwdDogYW55LFxuICAgIHZhcmlhYmxlczogc3RyaW5nLFxuKSA9PiB7XG5cbiAgICBjb25zdCBjb21wb25lbnREZWYgPSB7XG4gICAgICAgIHRlbXBsYXRlLFxuICAgICAgICBzdHlsZXM6IFtjc3NdLFxuICAgICAgICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lXG4gICAgfTtcblxuICAgIGxldCBCYXNlQ2xhc3M6IGFueSA9IEJhc2VEeW5hbWljQ29tcG9uZW50O1xuICAgIGxldCBzZWxlY3RvciA9ICcnO1xuICAgIGxldCBjb250ZXh0ID0gJyc7XG5cbiAgICBzd2l0Y2ggKHR5cGUpIHtcbiAgICAgICAgY2FzZSBDb21wb25lbnRUeXBlLlBBR0U6XG4gICAgICAgICAgICBCYXNlQ2xhc3MgPSBCYXNlUGFnZUNvbXBvbmVudDtcbiAgICAgICAgICAgIHNlbGVjdG9yID0gYGFwcC1wYWdlLSR7Y29tcG9uZW50TmFtZX1gO1xuICAgICAgICAgICAgY29udGV4dCA9ICdQYWdlJztcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlIENvbXBvbmVudFR5cGUuUEFSVElBTDpcbiAgICAgICAgICAgIEJhc2VDbGFzcyA9IEJhc2VQYXJ0aWFsQ29tcG9uZW50O1xuICAgICAgICAgICAgc2VsZWN0b3IgPSBgYXBwLXBhcnRpYWwtJHtjb21wb25lbnROYW1lfWA7XG4gICAgICAgICAgICBjb250ZXh0ID0gJ1BhcnRpYWwnO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgQ29tcG9uZW50VHlwZS5QUkVGQUI6XG4gICAgICAgICAgICBCYXNlQ2xhc3MgPSBCYXNlUHJlZmFiQ29tcG9uZW50O1xuICAgICAgICAgICAgc2VsZWN0b3IgPSBgYXBwLXByZWZhYi0ke2NvbXBvbmVudE5hbWV9YDtcbiAgICAgICAgICAgIGNvbnRleHQgPSAnUHJlZmFiJztcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlIENvbXBvbmVudFR5cGUuV0lER0VUOlxuICAgICAgICAgICAgQmFzZUNsYXNzID0gQmFzZUN1c3RvbVdpZGdldENvbXBvbmVudDtcbiAgICAgICAgICAgIHNlbGVjdG9yID0gYGFwcC1jdXN0b20tJHtjb21wb25lbnROYW1lfWA7XG4gICAgICAgICAgICBjb250ZXh0ID0gJ1dpZGdldCc7XG4gICAgICAgICAgICBicmVhaztcbiAgICB9XG5cbiAgICBjbGFzcyBEeW5hbWljQ29tcG9uZW50IGV4dGVuZHMgQmFzZUNsYXNzIHtcbiAgICAgICAgaXNEeW5hbWljQ29tcG9uZW50OiBib29sZWFuID0gdHJ1ZTtcbiAgICAgICAgcGFnZU5hbWU7XG4gICAgICAgIHBhcnRpYWxOYW1lO1xuICAgICAgICBwcmVmYWJOYW1lO1xuICAgICAgICBjdXN0b21XaWRnZXROYW1lO1xuICAgICAgICBjb25zdHJ1Y3RvcihASW5qZWN0KEluamVjdG9yKSBwdWJsaWMgaW5qZWN0b3I6IEluamVjdG9yKSB7XG4gICAgICAgICAgICBzdXBlcigpO1xuICAgICAgICAgICAgdGhpcy5pbmplY3RvciA9IGluamVjdG9yO1xuICAgICAgICAgICAgc3dpdGNoICh0eXBlKSB7XG4gICAgICAgICAgICAgICAgY2FzZSBDb21wb25lbnRUeXBlLlBBR0U6XG4gICAgICAgICAgICAgICAgICAgIHRoaXMucGFnZU5hbWUgPSBjb21wb25lbnROYW1lO1xuICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICBjYXNlIENvbXBvbmVudFR5cGUuUEFSVElBTDpcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5wYXJ0aWFsTmFtZSA9IGNvbXBvbmVudE5hbWU7XG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgIGNhc2UgQ29tcG9uZW50VHlwZS5QUkVGQUI6XG4gICAgICAgICAgICAgICAgICAgIHRoaXMucHJlZmFiTmFtZSA9IGNvbXBvbmVudE5hbWU7XG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgIGNhc2UgQ29tcG9uZW50VHlwZS5XSURHRVQ6XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuY3VzdG9tV2lkZ2V0TmFtZSA9IGNvbXBvbmVudE5hbWU7XG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBzdXBlci5pbml0KCk7XG4gICAgICAgIH1cblxuICAgICAgICBldmFsVXNlclNjcmlwdChpbnN0YW5jZTogYW55LCBhcHBDb250ZXh0OiBhbnksIHV0aWxzOiBhbnkpIHtcbiAgICAgICAgICAgIGV4ZWNTY3JpcHQoc2NyaXB0LCBzZWxlY3RvciwgY29udGV4dCwgaW5zdGFuY2UsIGFwcENvbnRleHQsIHV0aWxzKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGdldFZhcmlhYmxlcygpIHtcbiAgICAgICAgICAgIHJldHVybiBKU09OLnBhcnNlKHZhcmlhYmxlcyk7XG4gICAgICAgIH1cblxuICAgICAgICAvLyBpbiBwcmV2aWV3IG1vZGUsIHRoZXJlIHdpbGwgYmUgbm8gZnVuY3Rpb24gcmVnaXN0ZXJlZC4gZnVuY3Rpb25zIHdpbGwgYmUgZ2VuZXJhdGVkIGR5bmFtaWNhbGx5IHRocm91Z2ggJHBhcnNlRXZlbnQgYW5kICRwYXJzZUV4cHJcbiAgICAgICAgZ2V0RXhwcmVzc2lvbnMoKSB7XG4gICAgICAgICAgICByZXR1cm4ge307XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBjb25zdCBjb21wb25lbnQgPSBDb21wb25lbnQoe1xuICAgICAgICAuLi5jb21wb25lbnREZWYsXG4gICAgICAgIHNlbGVjdG9yLFxuICAgICAgICBwcm92aWRlcnM6IFtcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICBwcm92aWRlOiBVc2VyRGVmaW5lZEV4ZWN1dGlvbkNvbnRleHQsXG4gICAgICAgICAgICAgICAgdXNlRXhpc3Rpbmc6IER5bmFtaWNDb21wb25lbnRcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBQYWdlRGlyZWN0aXZlLFxuICAgICAgICBdXG4gICAgfSkoRHluYW1pY0NvbXBvbmVudClcbiAgICByZXR1cm4gY29tcG9uZW50O1xufTtcblxuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIENvbXBvbmVudFJlZlByb3ZpZGVyU2VydmljZSBleHRlbmRzIENvbXBvbmVudFJlZlByb3ZpZGVyIHtcblxuICAgIHByaXZhdGUgbG9hZFJlc291cmNlc09mRnJhZ21lbnQoY29tcG9uZW50TmFtZSwgY29tcG9uZW50VHlwZSwgb3B0aW9ucz8pOiBQcm9taXNlPElQYWdlTWluSlNPTj4ge1xuICAgICAgICBjb25zdCB1cmwgPSBnZXRGcmFnbWVudFVybChjb21wb25lbnROYW1lLCBjb21wb25lbnRUeXBlLCBvcHRpb25zKTtcblxuICAgICAgICBjb25zdCByZXNvdXJjZSA9IGZyYWdtZW50Q2FjaGUuZ2V0KHVybCk7XG5cbiAgICAgICAgaWYgKHJlc291cmNlKSB7XG4gICAgICAgICAgICByZXR1cm4gcmVzb3VyY2U7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgcHJvbWlzZSA9ICgoKGNvbXBvbmVudFR5cGUgPT09IENvbXBvbmVudFR5cGUuV0lER0VUICYmICFjdXN0b21XaWRnZXRzW2NvbXBvbmVudE5hbWVdKSB8fCBjb21wb25lbnRUeXBlICE9PSBDb21wb25lbnRUeXBlLldJREdFVCkgPyB0aGlzLnJlc291Y2VNbmdyLmdldCh1cmwsIHRydWUpIDogUHJvbWlzZS5yZXNvbHZlKGN1c3RvbVdpZGdldHNbY29tcG9uZW50TmFtZV0pKVxuICAgICAgICAgICAgLnRoZW4oKHsgbWFya3VwLCBzY3JpcHQsIHN0eWxlcywgdmFyaWFibGVzLCBjb25maWcgfTogSVBhZ2VNaW5KU09OKSA9PiB7XG4gICAgICAgICAgICAgICAgY29uc3QgcmVzcG9uc2UgPSB7XG4gICAgICAgICAgICAgICAgICAgIG1hcmt1cDogdHJhbnNwaWxlKF9kZWNvZGVVUklDb21wb25lbnQobWFya3VwKSkubWFya3VwLFxuICAgICAgICAgICAgICAgICAgICBzY3JpcHQ6IF9kZWNvZGVVUklDb21wb25lbnQoc2NyaXB0KSxcbiAgICAgICAgICAgICAgICAgICAgc3R5bGVzOiBzY29wZUNvbXBvbmVudFN0eWxlcyhjb21wb25lbnROYW1lLCBjb21wb25lbnRUeXBlLCBfZGVjb2RlVVJJQ29tcG9uZW50KHN0eWxlcykpLFxuICAgICAgICAgICAgICAgICAgICB2YXJpYWJsZXM6IGdldFZhbGlkSlNPTihfZGVjb2RlVVJJQ29tcG9uZW50KHZhcmlhYmxlcykpLFxuICAgICAgICAgICAgICAgICAgICAuLi4oY29uZmlnID8geyBjb25maWc6IGdldFZhbGlkSlNPTihfZGVjb2RlVVJJQ29tcG9uZW50KGNvbmZpZykpIH0gOiB7fSlcbiAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgICAgIGZyYWdtZW50Q2FjaGUuc2V0KHVybCwgUHJvbWlzZS5yZXNvbHZlKHJlc3BvbnNlKSk7XG5cbiAgICAgICAgICAgICAgICByZXR1cm4gcmVzcG9uc2U7XG4gICAgICAgICAgICB9LCBlID0+IHtcbiAgICAgICAgICAgICAgICBjb25zdCBzdGF0dXMgPSBlLmRldGFpbHMuc3RhdHVzO1xuICAgICAgICAgICAgICAgIGNvbnN0IGVycm9yTXNnTWFwID0ge1xuICAgICAgICAgICAgICAgICAgICA0MDQ6IHRoaXMuYXBwLmFwcExvY2FsZS5NRVNTQUdFX1BBR0VfTk9UX0ZPVU5EIHx8ICdUaGUgcGFnZSB5b3UgYXJlIHRyeWluZyB0byByZWFjaCBpcyBub3QgYXZhaWxhYmxlJyxcbiAgICAgICAgICAgICAgICAgICAgNDAzOiB0aGlzLmFwcC5hcHBMb2NhbGUuTEFCRUxfQUNDRVNTX0RFTklFRCB8fCAnQWNjZXNzIERlbmllZCdcbiAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgICAgIHJldHVybiBQcm9taXNlLnJlamVjdChlcnJvck1zZ01hcFtzdGF0dXNdKTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICBmcmFnbWVudENhY2hlLnNldCh1cmwsIHByb21pc2UpO1xuICAgICAgICByZXR1cm4gcHJvbWlzZTtcbiAgICB9XG5cbiAgICBjb25zdHJ1Y3RvcihcbiAgICAgICAgcHJpdmF0ZSByZXNvdWNlTW5ncjogQXBwUmVzb3VyY2VNYW5hZ2VyU2VydmljZSxcbiAgICAgICAgcHJpdmF0ZSBhcHA6IEFwcCxcbiAgICAgICAgcHJpdmF0ZSBhcHBNYW5hZ2VyOiBBcHBNYW5hZ2VyU2VydmljZSxcbiAgICAgICAgcHJpdmF0ZSBjb21waWxlcjogQ29tcGlsZXJcbiAgICApIHtcbiAgICAgICAgc3VwZXIoKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgYXN5bmMgZ2V0Q29tcG9uZW50RmFjdG9yeVJlZihjb21wb25lbnROYW1lOiBzdHJpbmcsIGNvbXBvbmVudFR5cGU6IENvbXBvbmVudFR5cGUsIG9wdGlvbnM/OiB7fSk6IFByb21pc2U8YW55PiB7XG4gICAgICAgIC8vIGNoZWNrIGluIHRoZSBjYWNoZS5cbiAgICAgICAgY29uc3QgY29tcG9uZW50RmFjdG9yeU1hcCA9IGNvbXBvbmVudEZhY3RvcnlSZWZDYWNoZS5nZXQoY29tcG9uZW50VHlwZSk7XG4gICAgICAgIGxldCBjb21wb25lbnRGYWN0b3J5UmVmO1xuICAgICAgICBpZiAoY29tcG9uZW50RmFjdG9yeU1hcCkge1xuICAgICAgICAgICAgY29uc3QgdXBkYXRlZENvbXBvbmVudE5hbWUgPSAob3B0aW9ucyAmJiBvcHRpb25zWydwcmVmYWInXSkgPyBvcHRpb25zWydwcmVmYWInXSArIGNvbXBvbmVudE5hbWUgOiBjb21wb25lbnROYW1lO1xuICAgICAgICAgICAgY29tcG9uZW50RmFjdG9yeVJlZiA9IGNvbXBvbmVudEZhY3RvcnlNYXAuZ2V0KHVwZGF0ZWRDb21wb25lbnROYW1lKTtcblxuICAgICAgICAgICAgaWYgKGNvbXBvbmVudEZhY3RvcnlSZWYpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gY29tcG9uZW50RmFjdG9yeVJlZjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiB0aGlzLmxvYWRSZXNvdXJjZXNPZkZyYWdtZW50KGNvbXBvbmVudE5hbWUsIGNvbXBvbmVudFR5cGUsIG9wdGlvbnMpXG4gICAgICAgICAgICAudGhlbigoeyBtYXJrdXAsIHNjcmlwdCwgc3R5bGVzLCB2YXJpYWJsZXMgfSkgPT4ge1xuICAgICAgICAgICAgICAgIGNvbnN0IGNvbXBvbmVudERlZiA9IGdldER5bmFtaWNDb21wb25lbnQoY29tcG9uZW50TmFtZSwgY29tcG9uZW50VHlwZSwgbWFya3VwLCBzdHlsZXMsIHNjcmlwdCwgSlNPTi5zdHJpbmdpZnkodmFyaWFibGVzKSk7XG4gICAgICAgICAgICAgICAgY29uc3QgbW9kdWxlRGVmID0gZ2V0RHluYW1pY01vZHVsZShjb21wb25lbnREZWYpO1xuXG4gICAgICAgICAgICAgICAgY29tcG9uZW50RmFjdG9yeVJlZiA9IHRoaXMuY29tcGlsZXJcbiAgICAgICAgICAgICAgICAgICAgLmNvbXBpbGVNb2R1bGVBbmRBbGxDb21wb25lbnRzU3luYyhtb2R1bGVEZWYpXG4gICAgICAgICAgICAgICAgICAgIC5jb21wb25lbnRGYWN0b3JpZXNcbiAgICAgICAgICAgICAgICAgICAgLmZpbHRlcihmYWN0b3J5ID0+IC8vIEB0cy1pZ25vcmVcbiAgICAgICAgICAgICAgICAgICAgICAgIGZhY3RvcnkuY29tcG9uZW50VHlwZSA9PT0gY29tcG9uZW50RGVmKVswXTtcbiAgICAgICAgICAgICAgICBjb25zdCB1cGRhdGVkQ29tcG9uZW50TmFtZSA9IChvcHRpb25zICYmIG9wdGlvbnNbJ3ByZWZhYiddKSA/IG9wdGlvbnNbJ3ByZWZhYiddICsgY29tcG9uZW50TmFtZSA6IGNvbXBvbmVudE5hbWU7XG4gICAgICAgICAgICAgICAgY29tcG9uZW50RmFjdG9yeVJlZkNhY2hlLmdldChjb21wb25lbnRUeXBlKS5zZXQodXBkYXRlZENvbXBvbmVudE5hbWUsIGNvbXBvbmVudEZhY3RvcnlSZWYpO1xuXG4gICAgICAgICAgICAgICAgcmV0dXJuIGNvbXBvbmVudEZhY3RvcnlSZWY7XG4gICAgICAgICAgICB9LCAoZXJyKSA9PiB7XG4gICAgICAgICAgICAgICAgaWYgKGVycikge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBtc2cgPSBcIkVycm9yIHdoaWxlIGxvYWRpbmcgcGFnZVwiO1xuICAgICAgICAgICAgICAgICAgICAvLyBjb25zb2xlIHRoZSBlcnJvciBmb3IgZWFzeSBkZWJ1Z2dpbmdcbiAgICAgICAgICAgICAgICAgICAgY29uc29sZS5sb2cobXNnLCBlcnIpO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmFwcE1hbmFnZXIubm90aWZ5QXBwKFxuICAgICAgICAgICAgICAgICAgICAgICAgaXNTdHJpbmcoZXJyKSA/IGVyciA6IG1zZyArICcsIGNoZWNrIGJyb3dzZXIgY29uc29sZSBmb3IgZXJyb3IgZGV0YWlscycsXG4gICAgICAgICAgICAgICAgICAgICAgICAnZXJyb3InXG4gICAgICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgLy8gY2xlYXJzIHRoZSBjYWNoZSBtYXBcbiAgICBwdWJsaWMgY2xlYXJDb21wb25lbnRGYWN0b3J5UmVmQ2FjaGUoKSB7XG4gICAgICAgIHRoaXMucmVzb3VjZU1uZ3IuY2xlYXJDYWNoZSgpO1xuICAgICAgICBmcmFnbWVudENhY2hlLmNsZWFyKCk7XG4gICAgICAgIGNvbXBvbmVudEZhY3RvcnlSZWZDYWNoZS5mb3JFYWNoKG1hcCA9PiB7XG4gICAgICAgICAgICBtYXAuY2xlYXIoKTtcbiAgICAgICAgfSk7XG4gICAgfVxufVxuIl19
|
|
@@ -1,8 +1,7 @@
|
|
|
1
|
-
import { enableProdMode } from '@angular/core';
|
|
1
|
+
import { ApplicationRef, enableProdMode } from '@angular/core';
|
|
2
|
+
import { platformBrowserDynamic } from '@angular/platform-browser-dynamic';
|
|
3
|
+
import { AppModule } from './app/app.module';
|
|
2
4
|
import { isEmpty } from "lodash-es";
|
|
3
|
-
import { bootstrapApplication } from '@angular/platform-browser';
|
|
4
|
-
import { AppComponent } from '@wm/runtime/base';
|
|
5
|
-
import { appConfig } from './app/app.config';
|
|
6
5
|
const DEBUG_MODE = 'debugMode';
|
|
7
6
|
if (sessionStorage.getItem(DEBUG_MODE) !== 'true') {
|
|
8
7
|
enableProdMode();
|
|
@@ -11,13 +10,14 @@ console.time('bootstrap');
|
|
|
11
10
|
document.addEventListener('DOMContentLoaded', () => {
|
|
12
11
|
new Promise(resolve => {
|
|
13
12
|
resolve();
|
|
14
|
-
}).then(() =>
|
|
15
|
-
.then((
|
|
13
|
+
}).then(() => platformBrowserDynamic().bootstrapModule(AppModule))
|
|
14
|
+
.then((appModuleRef) => {
|
|
15
|
+
const applicationRef = appModuleRef.injector.get(ApplicationRef);
|
|
16
16
|
window.addEventListener('unload', () => {
|
|
17
|
-
|
|
17
|
+
applicationRef.components.map(c => c && c.destroy());
|
|
18
18
|
});
|
|
19
|
-
|
|
20
|
-
|
|
19
|
+
console.timeEnd('bootstrap');
|
|
20
|
+
}, err => console.log(err));
|
|
21
21
|
});
|
|
22
22
|
window.debugMode = function (on) {
|
|
23
23
|
if (isEmpty(on)) {
|
|
@@ -30,4 +30,4 @@ window.debugMode = function (on) {
|
|
|
30
30
|
}
|
|
31
31
|
};
|
|
32
32
|
export default () => { };
|
|
33
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
33
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFpbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL3J1bnRpbWUtZHluYW1pYy9zcmMvbWFpbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsY0FBYyxFQUFFLGNBQWMsRUFBZSxNQUFNLGVBQWUsQ0FBQztBQUM1RSxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQztBQUUzRSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDN0MsT0FBTyxFQUFDLE9BQU8sRUFBQyxNQUFNLFdBQVcsQ0FBQztBQUVsQyxNQUFNLFVBQVUsR0FBRyxXQUFXLENBQUM7QUFFL0IsSUFBSSxjQUFjLENBQUMsT0FBTyxDQUFDLFVBQVUsQ0FBQyxLQUFLLE1BQU0sRUFBRSxDQUFDO0lBQ2hELGNBQWMsRUFBRSxDQUFDO0FBQ3JCLENBQUM7QUFFRCxPQUFPLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDO0FBRzFCLFFBQVEsQ0FBQyxnQkFBZ0IsQ0FBQyxrQkFBa0IsRUFBRSxHQUFHLEVBQUU7SUFDL0MsSUFBSSxPQUFPLENBQWMsT0FBTyxDQUFDLEVBQUU7UUFDM0IsT0FBTyxFQUFFLENBQUM7SUFDbEIsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEdBQUcsRUFBRSxDQUFDLHNCQUFzQixFQUFFLENBQUMsZUFBZSxDQUFDLFNBQVMsQ0FBQyxDQUFDO1NBQzdELElBQUksQ0FBQyxDQUFDLFlBQW9DLEVBQUUsRUFBRTtRQUMzQyxNQUFNLGNBQWMsR0FBRyxZQUFZLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxjQUFjLENBQUMsQ0FBQztRQUNqRSxNQUFNLENBQUMsZ0JBQWdCLENBQUMsUUFBUSxFQUFFLEdBQUcsRUFBRTtZQUNuQyxjQUFjLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsT0FBTyxFQUFFLENBQUMsQ0FBQztRQUN6RCxDQUFDLENBQUMsQ0FBQztRQUNILE9BQU8sQ0FBQyxPQUFPLENBQUMsV0FBVyxDQUFDLENBQUM7SUFDakMsQ0FBQyxFQUFFLEdBQUcsQ0FBQyxFQUFFLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDO0FBQ3BDLENBQUMsQ0FBQyxDQUFDO0FBRUYsTUFBYyxDQUFDLFNBQVMsR0FBRyxVQUFTLEVBQUU7SUFDbkMsSUFBSSxPQUFPLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQztRQUNkLEVBQUUsR0FBRyxJQUFJLENBQUM7SUFDZCxDQUFDO0lBQ0QsTUFBTSxLQUFLLEdBQUcsRUFBRSxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQztJQUNwQyxJQUFJLGNBQWMsQ0FBQyxPQUFPLENBQUMsVUFBVSxDQUFDLEtBQUssS0FBSyxFQUFFLENBQUM7UUFDL0MsY0FBYyxDQUFDLE9BQU8sQ0FBQyxVQUFVLEVBQUUsS0FBSyxDQUFDLENBQUM7UUFDMUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsQ0FBQztJQUM3QixDQUFDO0FBQ0wsQ0FBQyxDQUFDO0FBRUYsZUFBZSxHQUFHLEVBQUUsR0FBRSxDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBcHBsaWNhdGlvblJlZiwgZW5hYmxlUHJvZE1vZGUsIE5nTW9kdWxlUmVmIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBwbGF0Zm9ybUJyb3dzZXJEeW5hbWljIH0gZnJvbSAnQGFuZ3VsYXIvcGxhdGZvcm0tYnJvd3Nlci1keW5hbWljJztcblxuaW1wb3J0IHsgQXBwTW9kdWxlIH0gZnJvbSAnLi9hcHAvYXBwLm1vZHVsZSc7XG5pbXBvcnQge2lzRW1wdHl9IGZyb20gXCJsb2Rhc2gtZXNcIjtcblxuY29uc3QgREVCVUdfTU9ERSA9ICdkZWJ1Z01vZGUnO1xuXG5pZiAoc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbShERUJVR19NT0RFKSAhPT0gJ3RydWUnKSB7XG4gICAgZW5hYmxlUHJvZE1vZGUoKTtcbn1cblxuY29uc29sZS50aW1lKCdib290c3RyYXAnKTtcblxuXG5kb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCdET01Db250ZW50TG9hZGVkJywgKCkgPT4ge1xuICAgIG5ldyBQcm9taXNlPHZvaWR8RXZlbnQ+KCByZXNvbHZlID0+IHtcbiAgICAgICAgICAgIHJlc29sdmUoKTtcbiAgICB9KS50aGVuKCgpID0+IHBsYXRmb3JtQnJvd3NlckR5bmFtaWMoKS5ib290c3RyYXBNb2R1bGUoQXBwTW9kdWxlKSlcbiAgICAgICAgLnRoZW4oKGFwcE1vZHVsZVJlZjogTmdNb2R1bGVSZWY8QXBwTW9kdWxlPikgPT4ge1xuICAgICAgICAgICAgY29uc3QgYXBwbGljYXRpb25SZWYgPSBhcHBNb2R1bGVSZWYuaW5qZWN0b3IuZ2V0KEFwcGxpY2F0aW9uUmVmKTtcbiAgICAgICAgICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCd1bmxvYWQnLCAoKSA9PiB7XG4gICAgICAgICAgICAgICAgYXBwbGljYXRpb25SZWYuY29tcG9uZW50cy5tYXAoYyA9PiBjICYmIGMuZGVzdHJveSgpKTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgY29uc29sZS50aW1lRW5kKCdib290c3RyYXAnKTtcbiAgICAgICAgfSwgZXJyID0+IGNvbnNvbGUubG9nKGVycikpO1xufSk7XG5cbih3aW5kb3cgYXMgYW55KS5kZWJ1Z01vZGUgPSBmdW5jdGlvbihvbikge1xuICAgIGlmIChpc0VtcHR5KG9uKSkge1xuICAgICAgICBvbiA9IHRydWU7XG4gICAgfVxuICAgIGNvbnN0IHZhbHVlID0gb24gPyAndHJ1ZScgOiAnZmFsc2UnO1xuICAgIGlmIChzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKERFQlVHX01PREUpICE9PSB2YWx1ZSkge1xuICAgICAgICBzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKERFQlVHX01PREUsIHZhbHVlKTtcbiAgICAgICAgd2luZG93LmxvY2F0aW9uLnJlbG9hZCgpO1xuICAgIH1cbn07XG5cbmV4cG9ydCBkZWZhdWx0ICgpID0+IHt9O1xuIl19
|