@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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@wavemaker/app-ng-runtime",
3
- "version": "11.11.0-rc.6112",
3
+ "version": "11.11.0-rc.6115",
4
4
  "description": "All modules required for a WaveMaker application.",
5
5
  "main": "index.js",
6
6
  "scripts": {
@@ -1,8 +1,8 @@
1
1
  (function (global, factory) {
2
- typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports, require('@angular/core'), require('lodash-es'), require('@angular/platform-browser'), require('@wm/runtime/base'), require('@angular/router'), require('@angular/common/http'), require('@angular/platform-browser/animations'), require('@wm/components/base'), require('@wm/core'), require('@wm/variables'), require('@wm/security'), require('@wm/http'), require('@wm/oAuth'), require('ngx-bootstrap/modal'), require('ngx-toastr'), require('ngx-bootstrap/datepicker'), require('ng-circle-progress'), require('@angular/common'), require('tslib'), require('@wm/transpiler'), require('@wavemaker/custom-widgets-m3'), require('@wm/components/page'), require('@angular/forms'), require('ngx-bootstrap/typeahead'), require('ngx-bootstrap/timepicker'), require('ngx-bootstrap/progressbar'), require('ngx-bootstrap/pagination'), require('ngx-bootstrap/tooltip'), require('ngx-bootstrap/dropdown'), require('ngx-bootstrap/popover'), require('ngx-bootstrap/carousel'), 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/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')) :
3
- typeof define === 'function' && define.amd ? define(['exports', '@angular/core', 'lodash-es', '@angular/platform-browser', '@wm/runtime/base', '@angular/router', '@angular/common/http', '@angular/platform-browser/animations', '@wm/components/base', '@wm/core', '@wm/variables', '@wm/security', '@wm/http', '@wm/oAuth', 'ngx-bootstrap/modal', 'ngx-toastr', 'ngx-bootstrap/datepicker', 'ng-circle-progress', '@angular/common', 'tslib', '@wm/transpiler', '@wavemaker/custom-widgets-m3', '@wm/components/page', '@angular/forms', 'ngx-bootstrap/typeahead', 'ngx-bootstrap/timepicker', 'ngx-bootstrap/progressbar', 'ngx-bootstrap/pagination', 'ngx-bootstrap/tooltip', 'ngx-bootstrap/dropdown', 'ngx-bootstrap/popover', 'ngx-bootstrap/carousel', '@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/footer', '@wm/components/page/header', '@wm/components/page/left-panel', '@wm/components/page/right-panel', '@wm/components/page/top-nav', '@wm/components/prefab'], 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._, global.ng.platformBrowser, global.wm.runtime.base, global.ng.router, global.ng.common.http, global.ng.platformBrowser.animations, global.wm.components.base, global.wm.core, global.wm.variables, global.wm.security, global.wm.http, global.wm.oAuth, global.modal, global.ngxToastr, global.datepicker, global.ngCircleProgress, global.ng.common, global.tslib, global.wm.transpiler, global.wm_custom_widgets, global.wm.components.page, global.ng.forms, global.typeahead, global.timepicker, global.progressbar, global.pagination, global.tooltip, global.dropdown, global.popover, global.carousel, 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.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));
5
- })(this, (function (exports, i0, lodashEs, platformBrowser, i4, i1, i1$1, animations, base, i5, i2, i3, http, oAuth, modal, ngxToastr, datepicker, ngCircleProgress, common, tslib, transpiler, customWidgets, page, forms, typeahead, timepicker, progressbar, pagination, tooltip, dropdown, popover, carousel, 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, footer, header, leftPanel, rightPanel, topNav, prefab) { 'use strict';
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$1 = new Map();
173
+ const cache$2 = new Map();
191
174
  class AppResourceManagerService {
192
175
  get(url, useCache) {
193
- const cachedResponse = cache$1.get(url);
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$1.set(url, response);
182
+ cache$2.set(url, response);
200
183
  }
201
184
  return response;
202
185
  });
203
186
  }
204
187
  clearCache() {
205
- cache$1.clear();
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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tcG9uZW50LXJlZi1wcm92aWRlci5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvcnVudGltZS1keW5hbWljL3NyYy9hcHAvc2VydmljZXMvY29tcG9uZW50LXJlZi1wcm92aWRlci5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQ0gsUUFBUSxFQUNSLFNBQVMsRUFDVCxzQkFBc0IsRUFBYyxNQUFNLEVBQzFDLFVBQVUsRUFDVixRQUFRLEVBQ1IsUUFBUSxFQUNSLGdCQUFnQixFQUNoQixpQkFBaUIsRUFDcEIsTUFBTSxlQUFlLENBQUM7QUFFdkIsT0FBTyxFQUFFLEdBQUcsRUFBRSxZQUFZLEVBQUUsMkJBQTJCLEVBQUUsTUFBTSxVQUFVLENBQUM7QUFDMUUsT0FBTyxFQUFFLFNBQVMsRUFBRSxvQkFBb0IsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ2pFLE9BQU8sRUFDSCxpQkFBaUIsRUFDakIsaUJBQWlCLEVBQ2pCLG9CQUFvQixFQUNwQix5QkFBeUIsRUFDekIsbUJBQW1CLEVBQ25CLG9CQUFvQixFQUNwQixhQUFhLEVBQ2IsaUJBQWlCLEVBQ2pCLG1CQUFtQixFQUNuQix1QkFBdUIsRUFDMUIsTUFBTSxrQkFBa0IsQ0FBQztBQUUxQixPQUFPLEVBQUUseUJBQXlCLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUMzRSxPQUFPLEVBQUUsUUFBUSxFQUFFLFdBQVcsRUFBRSxNQUFNLFdBQVcsQ0FBQztBQUNsRCxPQUFPLEtBQUssYUFBYSxNQUFNLDhCQUE4QixDQUFDO0FBQzlELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQzs7Ozs7QUFZcEQsTUFBTSxhQUFhLEdBQUcsSUFBSSxHQUFHLEVBQWUsQ0FBQztBQUU3QyxNQUFNLENBQUMsYUFBYSxHQUFHLGFBQWEsQ0FBQztBQUVyQyxNQUFNLHdCQUF3QixHQUFHLElBQUksR0FBRyxFQUFtQyxDQUFDO0FBRTVFLHdCQUF3QixDQUFDLEdBQUcsQ0FBQyxhQUFhLENBQUMsSUFBSSxFQUFFLElBQUksR0FBRyxFQUFlLENBQUMsQ0FBQztBQUN6RSx3QkFBd0IsQ0FBQyxHQUFHLENBQUMsYUFBYSxDQUFDLE9BQU8sRUFBRSxJQUFJLEdBQUcsRUFBZSxDQUFDLENBQUM7QUFDNUUsd0JBQXdCLENBQUMsR0FBRyxDQUFDLGFBQWEsQ0FBQyxNQUFNLEVBQUUsSUFBSSxHQUFHLEVBQWUsQ0FBQyxDQUFDO0FBQzNFLHdCQUF3QixDQUFDLEdBQUcsQ0FBQyxhQUFhLENBQUMsTUFBTSxFQUFFLElBQUksR0FBRyxFQUFlLENBQUMsQ0FBQztBQUUzRSxNQUFNLG1CQUFtQixHQUFHLENBQUMsR0FBVyxFQUFFLEVBQUUsQ0FBQyxrQkFBa0IsQ0FBQyxHQUFHLENBQUMsT0FBTyxDQUFDLEtBQUssRUFBRSxHQUFHLENBQUMsQ0FBQyxDQUFDO0FBRXpGLE1BQU0sY0FBYyxHQUFHLENBQUMsWUFBb0IsRUFBRSxJQUFtQixFQUFFLE9BQVEsRUFBRSxFQUFFO0lBQzNFLElBQUksSUFBSSxLQUFLLGFBQWEsQ0FBQyxJQUFJLElBQUksSUFBSSxLQUFLLGFBQWEsQ0FBQyxPQUFPLEVBQUUsQ0FBQztRQUNoRSxPQUFPLE9BQU8sSUFBSSxPQUFPLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyx1QkFBdUIsQ0FBQyxPQUFPLENBQUMsTUFBTSxFQUFFLFlBQVksQ0FBQyxDQUFDLENBQUMsQ0FBQyxXQUFXLFlBQVksZ0JBQWdCLENBQUM7SUFDdkksQ0FBQztTQUFNLElBQUksSUFBSSxLQUFLLGFBQWEsQ0FBQyxNQUFNLEVBQUUsQ0FBQztRQUN2QyxPQUFPLG1CQUFtQixDQUFDLFlBQVksQ0FBQyxDQUFDO0lBQzdDLENBQUM7U0FBTSxJQUFJLElBQUksS0FBSyxhQUFhLENBQUMsTUFBTSxFQUFFLENBQUM7UUFDdkMsT0FBTyxvQkFBb0IsWUFBWSxnQkFBZ0IsQ0FBQTtJQUMzRCxDQUFDO0FBQ0wsQ0FBQyxDQUFDO0FBRUYsTUFBTSxXQUFXLEdBQUcsSUFBSSxHQUFHLEVBQW9CLENBQUM7QUFDaEQsTUFBTSxVQUFVLEdBQUcsQ0FDZixNQUFjLEVBQ2QsVUFBa0IsRUFDbEIsR0FBVyxFQUNYLFFBQWEsRUFDYixHQUFRLEVBQ1IsS0FBVSxFQUNaLEVBQUU7SUFDQSxJQUFJLEVBQUUsR0FBRyxXQUFXLENBQUMsR0FBRyxDQUFDLFVBQVUsQ0FBQyxDQUFDO0lBQ3JDLDBIQUEwSDtJQUMxSCxJQUFJLENBQUMsR0FBRyxLQUFLLFNBQVMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLENBQUMsSUFBSSxDQUFDLEVBQUUsRUFBRSxDQUFDO1FBQzlELEVBQUUsR0FBRyxJQUFJLFFBQVEsQ0FBQyxHQUFHLEVBQUUsS0FBSyxFQUFFLE9BQU8sRUFBRSxNQUFNLENBQUMsQ0FBQztRQUMvQyxXQUFXLENBQUMsR0FBRyxDQUFDLFVBQVUsRUFBRSxFQUFFLENBQUMsQ0FBQztJQUNwQyxDQUFDO0lBQ0QsRUFBRSxDQUFDLFFBQVEsRUFBRSxHQUFHLEVBQUUsS0FBSyxDQUFDLENBQUM7QUFDN0IsQ0FBQyxDQUFDO0FBRUYsTUFBTSxvQkFBb0I7SUFDdEIsSUFBSSxLQUFLLENBQUM7Q0FDYjtBQUVELE1BQU0sZ0JBQWdCLEdBQUcsQ0FBQyxZQUFpQixFQUFFLEVBQUU7SUFDM0MsT0FBTyxRQUFRLENBQUM7UUFDWixZQUFZLEVBQUUsQ0FBQyxZQUFZLENBQUM7UUFDNUIsT0FBTyxFQUFFO1lBQ0wsaUJBQWlCO1NBQ3BCO1FBQ0QsT0FBTyxFQUFFLENBQUMsc0JBQXNCLEVBQUUsZ0JBQWdCLENBQUM7S0FDdEQsQ0FBQyxDQUFDLE1BQU0sYUFBYTtLQUFJLENBQUMsQ0FBQztBQUNoQyxDQUFDLENBQUM7QUFFRixNQUFNLG1CQUFtQixHQUFHLENBQ3hCLGFBQWEsRUFDYixJQUFtQixFQUNuQixRQUFnQixFQUNoQixHQUFXLEVBQ1gsTUFBVyxFQUNYLFNBQWlCLEVBQ25CLEVBQUU7SUFFQSxNQUFNLFlBQVksR0FBRztRQUNqQixRQUFRO1FBQ1IsTUFBTSxFQUFFLENBQUMsR0FBRyxDQUFDO1FBQ2IsYUFBYSxFQUFFLGlCQUFpQixDQUFDLElBQUk7S0FDeEMsQ0FBQztJQUVGLElBQUksU0FBUyxHQUFRLG9CQUFvQixDQUFDO0lBQzFDLElBQUksUUFBUSxHQUFHLEVBQUUsQ0FBQztJQUNsQixJQUFJLE9BQU8sR0FBRyxFQUFFLENBQUM7SUFFakIsUUFBUSxJQUFJLEVBQUUsQ0FBQztRQUNYLEtBQUssYUFBYSxDQUFDLElBQUk7WUFDbkIsU0FBUyxHQUFHLGlCQUFpQixDQUFDO1lBQzlCLFFBQVEsR0FBRyxZQUFZLGFBQWEsRUFBRSxDQUFDO1lBQ3ZDLE9BQU8sR0FBRyxNQUFNLENBQUM7WUFDakIsTUFBTTtRQUNWLEtBQUssYUFBYSxDQUFDLE9BQU87WUFDdEIsU0FBUyxHQUFHLG9CQUFvQixDQUFDO1lBQ2pDLFFBQVEsR0FBRyxlQUFlLGFBQWEsRUFBRSxDQUFDO1lBQzFDLE9BQU8sR0FBRyxTQUFTLENBQUM7WUFDcEIsTUFBTTtRQUNWLEtBQUssYUFBYSxDQUFDLE1BQU07WUFDckIsU0FBUyxHQUFHLG1CQUFtQixDQUFDO1lBQ2hDLFFBQVEsR0FBRyxjQUFjLGFBQWEsRUFBRSxDQUFDO1lBQ3pDLE9BQU8sR0FBRyxRQUFRLENBQUM7WUFDbkIsTUFBTTtRQUNWLEtBQUssYUFBYSxDQUFDLE1BQU07WUFDckIsU0FBUyxHQUFHLHlCQUF5QixDQUFDO1lBQ3RDLFFBQVEsR0FBRyxjQUFjLGFBQWEsRUFBRSxDQUFDO1lBQ3pDLE9BQU8sR0FBRyxRQUFRLENBQUM7WUFDbkIsTUFBTTtJQUNkLENBQUM7SUFFRCxJQUFNLGdCQUFnQixHQUF0QixNQUFNLGdCQUFpQixTQUFRLFNBQVM7UUFNcEMsWUFBOEIsUUFBeUI7WUFDbkQsS0FBSyxFQUFFLENBQUM7WUFEeUIsYUFBUSxHQUFSLFFBQVEsQ0FBVTtZQUx2RCx1QkFBa0IsR0FBWSxJQUFJLENBQUM7WUFPL0IsSUFBSSxDQUFDLFFBQVEsR0FBRyxRQUFRLENBQUM7WUFDekIsUUFBUSxJQUFJLEVBQUUsQ0FBQztnQkFDWCxLQUFLLGFBQWEsQ0FBQyxJQUFJO29CQUNuQixJQUFJLENBQUMsUUFBUSxHQUFHLGFBQWEsQ0FBQztvQkFDOUIsTUFBTTtnQkFDVixLQUFLLGFBQWEsQ0FBQyxPQUFPO29CQUN0QixJQUFJLENBQUMsV0FBVyxHQUFHLGFBQWEsQ0FBQztvQkFDakMsTUFBTTtnQkFDVixLQUFLLGFBQWEsQ0FBQyxNQUFNO29CQUNyQixJQUFJLENBQUMsVUFBVSxHQUFHLGFBQWEsQ0FBQztvQkFDaEMsTUFBTTtnQkFDVixLQUFLLGFBQWEsQ0FBQyxNQUFNO29CQUNyQixJQUFJLENBQUMsZ0JBQWdCLEdBQUcsYUFBYSxDQUFDO29CQUN0QyxNQUFNO1lBQ2QsQ0FBQztZQUVELEtBQUssQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUNqQixDQUFDO1FBRUQsY0FBYyxDQUFDLFFBQWEsRUFBRSxVQUFlLEVBQUUsS0FBVTtZQUNyRCxVQUFVLENBQUMsTUFBTSxFQUFFLFFBQVEsRUFBRSxPQUFPLEVBQUUsUUFBUSxFQUFFLFVBQVUsRUFBRSxLQUFLLENBQUMsQ0FBQztRQUN2RSxDQUFDO1FBRUQsWUFBWTtZQUNSLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUNqQyxDQUFDO1FBRUQsb0lBQW9JO1FBQ3BJLGNBQWM7WUFDVixPQUFPLEVBQUUsQ0FBQztRQUNkLENBQUM7S0FDSixDQUFBO0lBdkNLLGdCQUFnQjtRQU1MLFdBQUEsTUFBTSxDQUFDLFFBQVEsQ0FBQyxDQUFBO3lDQUFrQixRQUFRO09BTnJELGdCQUFnQixDQXVDckI7SUFFRCxNQUFNLFNBQVMsR0FBRyxTQUFTLENBQUM7UUFDeEIsR0FBRyxZQUFZO1FBQ2YsUUFBUTtRQUNSLFNBQVMsRUFBRTtZQUNQO2dCQUNJLE9BQU8sRUFBRSwyQkFBMkI7Z0JBQ3BDLFdBQVcsRUFBRSxnQkFBZ0I7YUFDaEM7WUFDRCxhQUFhO1NBQ2hCO0tBQ0osQ0FBQyxDQUFDLGdCQUFnQixDQUFDLENBQUE7SUFDcEIsT0FBTyxTQUFTLENBQUM7QUFDckIsQ0FBQyxDQUFDO0FBR0YsTUFBTSxPQUFPLDJCQUE0QixTQUFRLG9CQUFvQjtJQUV6RCx1QkFBdUIsQ0FBQyxhQUFhLEVBQUUsYUFBYSxFQUFFLE9BQVE7UUFDbEUsTUFBTSxHQUFHLEdBQUcsY0FBYyxDQUFDLGFBQWEsRUFBRSxhQUFhLEVBQUUsT0FBTyxDQUFDLENBQUM7UUFFbEUsTUFBTSxRQUFRLEdBQUcsYUFBYSxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUV4QyxJQUFJLFFBQVEsRUFBRSxDQUFDO1lBQ1gsT0FBTyxRQUFRLENBQUM7UUFDcEIsQ0FBQztRQUNELE1BQU0sT0FBTyxHQUFHLENBQUMsQ0FBQyxDQUFDLGFBQWEsS0FBSyxhQUFhLENBQUMsTUFBTSxJQUFJLENBQUMsYUFBYSxDQUFDLGFBQWEsQ0FBQyxDQUFDLElBQUksYUFBYSxLQUFLLGFBQWEsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxHQUFHLENBQUMsR0FBRyxFQUFFLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLGFBQWEsQ0FBQyxhQUFhLENBQUMsQ0FBQyxDQUFDO2FBQ3BOLElBQUksQ0FBQyxDQUFDLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBZ0IsRUFBRSxFQUFFO1lBQ2xFLE1BQU0sUUFBUSxHQUFHO2dCQUNiLE1BQU0sRUFBRSxTQUFTLENBQUMsbUJBQW1CLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxNQUFNO2dCQUNyRCxNQUFNLEVBQUUsbUJBQW1CLENBQUMsTUFBTSxDQUFDO2dCQUNuQyxNQUFNLEVBQUUsb0JBQW9CLENBQUMsYUFBYSxFQUFFLGFBQWEsRUFBRSxtQkFBbUIsQ0FBQyxNQUFNLENBQUMsQ0FBQztnQkFDdkYsU0FBUyxFQUFFLFlBQVksQ0FBQyxtQkFBbUIsQ0FBQyxTQUFTLENBQUMsQ0FBQztnQkFDdkQsR0FBRyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxNQUFNLEVBQUUsWUFBWSxDQUFDLG1CQUFtQixDQUFDLE1BQU0sQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO2FBQzNFLENBQUM7WUFDRixhQUFhLENBQUMsR0FBRyxDQUFDLEdBQUcsRUFBRSxPQUFPLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUM7WUFFbEQsT0FBTyxRQUFRLENBQUM7UUFDcEIsQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFFO1lBQ0gsTUFBTSxNQUFNLEdBQUcsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUM7WUFDaEMsTUFBTSxXQUFXLEdBQUc7Z0JBQ2hCLEdBQUcsRUFBRSxJQUFJLENBQUMsR0FBRyxDQUFDLFNBQVMsQ0FBQyxzQkFBc0IsSUFBSSxtREFBbUQ7Z0JBQ3JHLEdBQUcsRUFBRSxJQUFJLENBQUMsR0FBRyxDQUFDLFNBQVMsQ0FBQyxtQkFBbUIsSUFBSSxlQUFlO2FBQ2pFLENBQUM7WUFDRixPQUFPLE9BQU8sQ0FBQyxNQUFNLENBQUMsV0FBVyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUM7UUFDL0MsQ0FBQyxDQUFDLENBQUM7UUFDUCxhQUFhLENBQUMsR0FBRyxDQUFDLEdBQUcsRUFBRSxPQUFPLENBQUMsQ0FBQztRQUNoQyxPQUFPLE9BQU8sQ0FBQztJQUNuQixDQUFDO0lBRUQsWUFDWSxXQUFzQyxFQUN0QyxHQUFRLEVBQ1IsVUFBNkIsRUFDN0IsUUFBa0I7UUFFMUIsS0FBSyxFQUFFLENBQUM7UUFMQSxnQkFBVyxHQUFYLFdBQVcsQ0FBMkI7UUFDdEMsUUFBRyxHQUFILEdBQUcsQ0FBSztRQUNSLGVBQVUsR0FBVixVQUFVLENBQW1CO1FBQzdCLGFBQVEsR0FBUixRQUFRLENBQVU7SUFHOUIsQ0FBQztJQUVNLEtBQUssQ0FBQyxzQkFBc0IsQ0FBQyxhQUFxQixFQUFFLGFBQTRCLEVBQUUsT0FBWTtRQUNqRyxzQkFBc0I7UUFDdEIsTUFBTSxtQkFBbUIsR0FBRyx3QkFBd0IsQ0FBQyxHQUFHLENBQUMsYUFBYSxDQUFDLENBQUM7UUFDeEUsSUFBSSxtQkFBbUIsQ0FBQztRQUN4QixJQUFJLG1CQUFtQixFQUFFLENBQUM7WUFDdEIsTUFBTSxvQkFBb0IsR0FBRyxDQUFDLE9BQU8sSUFBSSxPQUFPLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxHQUFHLGFBQWEsQ0FBQyxDQUFDLENBQUMsYUFBYSxDQUFDO1lBQ2hILG1CQUFtQixHQUFHLG1CQUFtQixDQUFDLEdBQUcsQ0FBQyxvQkFBb0IsQ0FBQyxDQUFDO1lBRXBFLElBQUksbUJBQW1CLEVBQUUsQ0FBQztnQkFDdEIsT0FBTyxtQkFBbUIsQ0FBQztZQUMvQixDQUFDO1FBQ0wsQ0FBQztRQUVELE9BQU8sSUFBSSxDQUFDLHVCQUF1QixDQUFDLGFBQWEsRUFBRSxhQUFhLEVBQUUsT0FBTyxDQUFDO2FBQ3JFLElBQUksQ0FBQyxDQUFDLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsU0FBUyxFQUFFLEVBQUUsRUFBRTtZQUM1QyxNQUFNLFlBQVksR0FBRyxtQkFBbUIsQ0FBQyxhQUFhLEVBQUUsYUFBYSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLElBQUksQ0FBQyxTQUFTLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQztZQUMxSCxNQUFNLFNBQVMsR0FBRyxnQkFBZ0IsQ0FBQyxZQUFZLENBQUMsQ0FBQztZQUVqRCxtQkFBbUIsR0FBRyxJQUFJLENBQUMsUUFBUTtpQkFDOUIsaUNBQWlDLENBQUMsU0FBUyxDQUFDO2lCQUM1QyxrQkFBa0I7aUJBQ2xCLE1BQU0sQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDLGFBQWE7YUFDNUIsT0FBTyxDQUFDLGFBQWEsS0FBSyxZQUFZLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUNuRCxNQUFNLG9CQUFvQixHQUFHLENBQUMsT0FBTyxJQUFJLE9BQU8sQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDLEdBQUcsYUFBYSxDQUFDLENBQUMsQ0FBQyxhQUFhLENBQUM7WUFDaEgsd0JBQXdCLENBQUMsR0FBRyxDQUFDLGFBQWEsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxvQkFBb0IsRUFBRSxtQkFBbUIsQ0FBQyxDQUFDO1lBRTNGLE9BQU8sbUJBQW1CLENBQUM7UUFDL0IsQ0FBQyxFQUFFLENBQUMsR0FBRyxFQUFFLEVBQUU7WUFDUCxJQUFJLEdBQUcsRUFBRSxDQUFDO2dCQUNOLE1BQU0sR0FBRyxHQUFHLDBCQUEwQixDQUFDO2dCQUN2Qyx1Q0FBdUM7Z0JBQ3ZDLE9BQU8sQ0FBQyxHQUFHLENBQUMsR0FBRyxFQUFFLEdBQUcsQ0FBQyxDQUFDO2dCQUN0QixJQUFJLENBQUMsVUFBVSxDQUFDLFNBQVMsQ0FDckIsUUFBUSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEdBQUcsR0FBRywyQ0FBMkMsRUFDdkUsT0FBTyxDQUNWLENBQUM7WUFDTixDQUFDO1FBQ0wsQ0FBQyxDQUFDLENBQUM7SUFDWCxDQUFDO0lBRUQsdUJBQXVCO0lBQ2hCLDZCQUE2QjtRQUNoQyxJQUFJLENBQUMsV0FBVyxDQUFDLFVBQVUsRUFBRSxDQUFDO1FBQzlCLGFBQWEsQ0FBQyxLQUFLLEVBQUUsQ0FBQztRQUN0Qix3QkFBd0IsQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLEVBQUU7WUFDbkMsR0FBRyxDQUFDLEtBQUssRUFBRSxDQUFDO1FBQ2hCLENBQUMsQ0FBQyxDQUFDO0lBQ1AsQ0FBQzs0SEExRlEsMkJBQTJCO3VFQUEzQiwyQkFBMkIsV0FBM0IsMkJBQTJCOztpRkFBM0IsMkJBQTJCO2NBRHZDLFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICAgIENvbXBpbGVyLFxuICAgIENvbXBvbmVudCxcbiAgICBDVVNUT01fRUxFTUVOVFNfU0NIRU1BLCBmb3J3YXJkUmVmLCBJbmplY3QsXG4gICAgSW5qZWN0YWJsZSxcbiAgICBJbmplY3RvcixcbiAgICBOZ01vZHVsZSxcbiAgICBOT19FUlJPUlNfU0NIRU1BLFxuICAgIFZpZXdFbmNhcHN1bGF0aW9uXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5pbXBvcnQgeyBBcHAsIGdldFZhbGlkSlNPTiwgVXNlckRlZmluZWRFeGVjdXRpb25Db250ZXh0IH0gZnJvbSAnQHdtL2NvcmUnO1xuaW1wb3J0IHsgdHJhbnNwaWxlLCBzY29wZUNvbXBvbmVudFN0eWxlcyB9IGZyb20gJ0B3bS90cmFuc3BpbGVyJztcbmltcG9ydCB7XG4gICAgQXBwTWFuYWdlclNlcnZpY2UsXG4gICAgQmFzZVBhZ2VDb21wb25lbnQsXG4gICAgQmFzZVBhcnRpYWxDb21wb25lbnQsXG4gICAgQmFzZUN1c3RvbVdpZGdldENvbXBvbmVudCxcbiAgICBCYXNlUHJlZmFiQ29tcG9uZW50LFxuICAgIENvbXBvbmVudFJlZlByb3ZpZGVyLFxuICAgIENvbXBvbmVudFR5cGUsXG4gICAgUnVudGltZUJhc2VNb2R1bGUsXG4gICAgZ2V0UHJlZmFiTWluSnNvblVybCxcbiAgICBnZXRQcmVmYWJQYXJ0aWFsSnNvblVybFxufSBmcm9tICdAd20vcnVudGltZS9iYXNlJztcblxuaW1wb3J0IHsgQXBwUmVzb3VyY2VNYW5hZ2VyU2VydmljZSB9IGZyb20gJy4vYXBwLXJlc291cmNlLW1hbmFnZXIuc2VydmljZSc7XG5pbXBvcnQgeyBpc1N0cmluZywgaXNVbmRlZmluZWQgfSBmcm9tIFwibG9kYXNoLWVzXCI7XG5pbXBvcnQgKiBhcyBjdXN0b21XaWRnZXRzIGZyb20gJ0B3YXZlbWFrZXIvY3VzdG9tLXdpZGdldHMtbTMnO1xuaW1wb3J0IHsgUGFnZURpcmVjdGl2ZSB9IGZyb20gJ0B3bS9jb21wb25lbnRzL3BhZ2UnO1xuXG5pbnRlcmZhY2UgSVBhZ2VNaW5KU09OIHtcbiAgICBtYXJrdXA6IHN0cmluZztcbiAgICBzY3JpcHQ6IHN0cmluZztcbiAgICBzdHlsZXM6IHN0cmluZztcbiAgICB2YXJpYWJsZXM6IHN0cmluZztcbiAgICBjb25maWc/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(() => bootstrapApplication(AppComponent, appConfig))
15
- .then((appRef) => {
13
+ }).then(() => platformBrowserDynamic().bootstrapModule(AppModule))
14
+ .then((appModuleRef) => {
15
+ const applicationRef = appModuleRef.injector.get(ApplicationRef);
16
16
  window.addEventListener('unload', () => {
17
- appRef.components.map(c => c?.destroy());
17
+ applicationRef.components.map(c => c && c.destroy());
18
18
  });
19
- })
20
- .catch(err => console.error('Error bootstrapping app:', err));
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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFpbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL3J1bnRpbWUtZHluYW1pYy9zcmMvbWFpbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQWtCLGNBQWMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUUvRCxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sV0FBVyxDQUFDO0FBQ3BDLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQ2pFLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUNoRCxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFFN0MsTUFBTSxVQUFVLEdBQUcsV0FBVyxDQUFDO0FBRS9CLElBQUksY0FBYyxDQUFDLE9BQU8sQ0FBQyxVQUFVLENBQUMsS0FBSyxNQUFNLEVBQUUsQ0FBQztJQUNoRCxjQUFjLEVBQUUsQ0FBQztBQUNyQixDQUFDO0FBRUQsT0FBTyxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQztBQUcxQixRQUFRLENBQUMsZ0JBQWdCLENBQUMsa0JBQWtCLEVBQUUsR0FBRyxFQUFFO0lBQ2pELElBQUksT0FBTyxDQUFlLE9BQU8sQ0FBQyxFQUFFO1FBQ2hDLE9BQU8sRUFBRSxDQUFDO0lBQ2QsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEdBQUcsRUFBRSxDQUFDLG9CQUFvQixDQUFDLFlBQVksRUFBRSxTQUFTLENBQUMsQ0FBQztTQUN6RCxJQUFJLENBQUMsQ0FBQyxNQUFzQixFQUFFLEVBQUU7UUFDL0IsTUFBTSxDQUFDLGdCQUFnQixDQUFDLFFBQVEsRUFBRSxHQUFHLEVBQUU7WUFDckMsTUFBTSxDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQUUsT0FBTyxFQUFFLENBQUMsQ0FBQztRQUMzQyxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUMsQ0FBQztTQUNELEtBQUssQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsMEJBQTBCLEVBQUUsR0FBRyxDQUFDLENBQUMsQ0FBQztBQUNsRSxDQUFDLENBQUMsQ0FBQztBQUVGLE1BQWMsQ0FBQyxTQUFTLEdBQUcsVUFBVSxFQUFFO0lBQ3BDLElBQUksT0FBTyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUM7UUFDZCxFQUFFLEdBQUcsSUFBSSxDQUFDO0lBQ2QsQ0FBQztJQUNELE1BQU0sS0FBSyxHQUFHLEVBQUUsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUM7SUFDcEMsSUFBSSxjQUFjLENBQUMsT0FBTyxDQUFDLFVBQVUsQ0FBQyxLQUFLLEtBQUssRUFBRSxDQUFDO1FBQy9DLGNBQWMsQ0FBQyxPQUFPLENBQUMsVUFBVSxFQUFFLEtBQUssQ0FBQyxDQUFDO1FBQzFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLENBQUM7SUFDN0IsQ0FBQztBQUNMLENBQUMsQ0FBQztBQUVGLGVBQWUsR0FBRyxFQUFFLEdBQUcsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQXBwbGljYXRpb25SZWYsIGVuYWJsZVByb2RNb2RlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmltcG9ydCB7IGlzRW1wdHkgfSBmcm9tIFwibG9kYXNoLWVzXCI7XG5pbXBvcnQgeyBib290c3RyYXBBcHBsaWNhdGlvbiB9IGZyb20gJ0Bhbmd1bGFyL3BsYXRmb3JtLWJyb3dzZXInO1xuaW1wb3J0IHsgQXBwQ29tcG9uZW50IH0gZnJvbSAnQHdtL3J1bnRpbWUvYmFzZSc7XG5pbXBvcnQgeyBhcHBDb25maWcgfSBmcm9tICcuL2FwcC9hcHAuY29uZmlnJztcblxuY29uc3QgREVCVUdfTU9ERSA9ICdkZWJ1Z01vZGUnO1xuXG5pZiAoc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbShERUJVR19NT0RFKSAhPT0gJ3RydWUnKSB7XG4gICAgZW5hYmxlUHJvZE1vZGUoKTtcbn1cblxuY29uc29sZS50aW1lKCdib290c3RyYXAnKTtcblxuXG5kb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCdET01Db250ZW50TG9hZGVkJywgKCkgPT4ge1xuICBuZXcgUHJvbWlzZTxFdmVudCB8IHZvaWQ+KHJlc29sdmUgPT4ge1xuICAgICAgcmVzb2x2ZSgpO1xuICB9KS50aGVuKCgpID0+IGJvb3RzdHJhcEFwcGxpY2F0aW9uKEFwcENvbXBvbmVudCwgYXBwQ29uZmlnKSlcbiAgICAudGhlbigoYXBwUmVmOiBBcHBsaWNhdGlvblJlZikgPT4geyBcbiAgICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCd1bmxvYWQnLCAoKSA9PiB7XG4gICAgICAgIGFwcFJlZi5jb21wb25lbnRzLm1hcChjID0+IGM/LmRlc3Ryb3koKSk7XG4gICAgICB9KTtcbiAgICB9KVxuICAgIC5jYXRjaChlcnIgPT4gY29uc29sZS5lcnJvcignRXJyb3IgYm9vdHN0cmFwcGluZyBhcHA6JywgZXJyKSk7XG59KTtcblxuKHdpbmRvdyBhcyBhbnkpLmRlYnVnTW9kZSA9IGZ1bmN0aW9uIChvbikge1xuICAgIGlmIChpc0VtcHR5KG9uKSkge1xuICAgICAgICBvbiA9IHRydWU7XG4gICAgfVxuICAgIGNvbnN0IHZhbHVlID0gb24gPyAndHJ1ZScgOiAnZmFsc2UnO1xuICAgIGlmIChzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKERFQlVHX01PREUpICE9PSB2YWx1ZSkge1xuICAgICAgICBzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKERFQlVHX01PREUsIHZhbHVlKTtcbiAgICAgICAgd2luZG93LmxvY2F0aW9uLnJlbG9hZCgpO1xuICAgIH1cbn07XG5cbmV4cG9ydCBkZWZhdWx0ICgpID0+IHsgfTtcbiJdfQ==
33
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFpbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL3J1bnRpbWUtZHluYW1pYy9zcmMvbWFpbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsY0FBYyxFQUFFLGNBQWMsRUFBZSxNQUFNLGVBQWUsQ0FBQztBQUM1RSxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQztBQUUzRSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDN0MsT0FBTyxFQUFDLE9BQU8sRUFBQyxNQUFNLFdBQVcsQ0FBQztBQUVsQyxNQUFNLFVBQVUsR0FBRyxXQUFXLENBQUM7QUFFL0IsSUFBSSxjQUFjLENBQUMsT0FBTyxDQUFDLFVBQVUsQ0FBQyxLQUFLLE1BQU0sRUFBRSxDQUFDO0lBQ2hELGNBQWMsRUFBRSxDQUFDO0FBQ3JCLENBQUM7QUFFRCxPQUFPLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDO0FBRzFCLFFBQVEsQ0FBQyxnQkFBZ0IsQ0FBQyxrQkFBa0IsRUFBRSxHQUFHLEVBQUU7SUFDL0MsSUFBSSxPQUFPLENBQWMsT0FBTyxDQUFDLEVBQUU7UUFDM0IsT0FBTyxFQUFFLENBQUM7SUFDbEIsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEdBQUcsRUFBRSxDQUFDLHNCQUFzQixFQUFFLENBQUMsZUFBZSxDQUFDLFNBQVMsQ0FBQyxDQUFDO1NBQzdELElBQUksQ0FBQyxDQUFDLFlBQW9DLEVBQUUsRUFBRTtRQUMzQyxNQUFNLGNBQWMsR0FBRyxZQUFZLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxjQUFjLENBQUMsQ0FBQztRQUNqRSxNQUFNLENBQUMsZ0JBQWdCLENBQUMsUUFBUSxFQUFFLEdBQUcsRUFBRTtZQUNuQyxjQUFjLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsT0FBTyxFQUFFLENBQUMsQ0FBQztRQUN6RCxDQUFDLENBQUMsQ0FBQztRQUNILE9BQU8sQ0FBQyxPQUFPLENBQUMsV0FBVyxDQUFDLENBQUM7SUFDakMsQ0FBQyxFQUFFLEdBQUcsQ0FBQyxFQUFFLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDO0FBQ3BDLENBQUMsQ0FBQyxDQUFDO0FBRUYsTUFBYyxDQUFDLFNBQVMsR0FBRyxVQUFTLEVBQUU7SUFDbkMsSUFBSSxPQUFPLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQztRQUNkLEVBQUUsR0FBRyxJQUFJLENBQUM7SUFDZCxDQUFDO0lBQ0QsTUFBTSxLQUFLLEdBQUcsRUFBRSxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQztJQUNwQyxJQUFJLGNBQWMsQ0FBQyxPQUFPLENBQUMsVUFBVSxDQUFDLEtBQUssS0FBSyxFQUFFLENBQUM7UUFDL0MsY0FBYyxDQUFDLE9BQU8sQ0FBQyxVQUFVLEVBQUUsS0FBSyxDQUFDLENBQUM7UUFDMUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsQ0FBQztJQUM3QixDQUFDO0FBQ0wsQ0FBQyxDQUFDO0FBRUYsZUFBZSxHQUFHLEVBQUUsR0FBRSxDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBcHBsaWNhdGlvblJlZiwgZW5hYmxlUHJvZE1vZGUsIE5nTW9kdWxlUmVmIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBwbGF0Zm9ybUJyb3dzZXJEeW5hbWljIH0gZnJvbSAnQGFuZ3VsYXIvcGxhdGZvcm0tYnJvd3Nlci1keW5hbWljJztcblxuaW1wb3J0IHsgQXBwTW9kdWxlIH0gZnJvbSAnLi9hcHAvYXBwLm1vZHVsZSc7XG5pbXBvcnQge2lzRW1wdHl9IGZyb20gXCJsb2Rhc2gtZXNcIjtcblxuY29uc3QgREVCVUdfTU9ERSA9ICdkZWJ1Z01vZGUnO1xuXG5pZiAoc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbShERUJVR19NT0RFKSAhPT0gJ3RydWUnKSB7XG4gICAgZW5hYmxlUHJvZE1vZGUoKTtcbn1cblxuY29uc29sZS50aW1lKCdib290c3RyYXAnKTtcblxuXG5kb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCdET01Db250ZW50TG9hZGVkJywgKCkgPT4ge1xuICAgIG5ldyBQcm9taXNlPHZvaWR8RXZlbnQ+KCByZXNvbHZlID0+IHtcbiAgICAgICAgICAgIHJlc29sdmUoKTtcbiAgICB9KS50aGVuKCgpID0+IHBsYXRmb3JtQnJvd3NlckR5bmFtaWMoKS5ib290c3RyYXBNb2R1bGUoQXBwTW9kdWxlKSlcbiAgICAgICAgLnRoZW4oKGFwcE1vZHVsZVJlZjogTmdNb2R1bGVSZWY8QXBwTW9kdWxlPikgPT4ge1xuICAgICAgICAgICAgY29uc3QgYXBwbGljYXRpb25SZWYgPSBhcHBNb2R1bGVSZWYuaW5qZWN0b3IuZ2V0KEFwcGxpY2F0aW9uUmVmKTtcbiAgICAgICAgICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCd1bmxvYWQnLCAoKSA9PiB7XG4gICAgICAgICAgICAgICAgYXBwbGljYXRpb25SZWYuY29tcG9uZW50cy5tYXAoYyA9PiBjICYmIGMuZGVzdHJveSgpKTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgY29uc29sZS50aW1lRW5kKCdib290c3RyYXAnKTtcbiAgICAgICAgfSwgZXJyID0+IGNvbnNvbGUubG9nKGVycikpO1xufSk7XG5cbih3aW5kb3cgYXMgYW55KS5kZWJ1Z01vZGUgPSBmdW5jdGlvbihvbikge1xuICAgIGlmIChpc0VtcHR5KG9uKSkge1xuICAgICAgICBvbiA9IHRydWU7XG4gICAgfVxuICAgIGNvbnN0IHZhbHVlID0gb24gPyAndHJ1ZScgOiAnZmFsc2UnO1xuICAgIGlmIChzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKERFQlVHX01PREUpICE9PSB2YWx1ZSkge1xuICAgICAgICBzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKERFQlVHX01PREUsIHZhbHVlKTtcbiAgICAgICAgd2luZG93LmxvY2F0aW9uLnJlbG9hZCgpO1xuICAgIH1cbn07XG5cbmV4cG9ydCBkZWZhdWx0ICgpID0+IHt9O1xuIl19