barsa-novin-ray-core 2.2.73 → 2.2.75
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/fesm2022/barsa-novin-ray-core.mjs +630 -651
- package/fesm2022/barsa-novin-ray-core.mjs.map +1 -1
- package/lib/abstract-classes/field-base.d.ts +1 -1
- package/lib/abstract-classes/number-base.d.ts +1 -1
- package/lib/date-services/date-hijri.service.d.ts +1 -1
- package/lib/date-services/date.service.d.ts +1 -1
- package/lib/directives/base.directive.d.ts +1 -1
- package/lib/dynamic-component/base-view-item-props.d.ts +4 -4
- package/lib/resolvers/login-settings.resolver.d.ts +1 -1
- package/lib/resolvers/tile-group-breadcrumb.resolver.d.ts +1 -1
- package/lib/services/notification.service.d.ts +2 -2
- package/lib/services/portal.service.d.ts +1 -1
- package/package.json +3 -5
- package/esm2022/barsa-novin-ray-core.mjs +0 -5
- package/esm2022/lib/abstract-classes/application-base.mjs +0 -25
- package/esm2022/lib/abstract-classes/barsa-api.mjs +0 -43
- package/esm2022/lib/abstract-classes/base-column-props.mjs +0 -89
- package/esm2022/lib/abstract-classes/base.component.mjs +0 -60
- package/esm2022/lib/abstract-classes/field-base.mjs +0 -244
- package/esm2022/lib/abstract-classes/files-validation-helper.mjs +0 -75
- package/esm2022/lib/abstract-classes/form-base.mjs +0 -164
- package/esm2022/lib/abstract-classes/form-field-report-page.component.mjs +0 -54
- package/esm2022/lib/abstract-classes/form-page-base.mjs +0 -132
- package/esm2022/lib/abstract-classes/form-page.component.mjs +0 -53
- package/esm2022/lib/abstract-classes/form-props.base.mjs +0 -100
- package/esm2022/lib/abstract-classes/form-toolbar-base.mjs +0 -57
- package/esm2022/lib/abstract-classes/index.mjs +0 -25
- package/esm2022/lib/abstract-classes/layout-item-base.mjs +0 -49
- package/esm2022/lib/abstract-classes/layout-panel-base.mjs +0 -68
- package/esm2022/lib/abstract-classes/linear-list-helper.mjs +0 -135
- package/esm2022/lib/abstract-classes/models.mjs +0 -184
- package/esm2022/lib/abstract-classes/module-with-dynamic-components.mjs +0 -2
- package/esm2022/lib/abstract-classes/number-base.mjs +0 -201
- package/esm2022/lib/abstract-classes/page-base.mjs +0 -98
- package/esm2022/lib/abstract-classes/page-with-form-handler-base.mjs +0 -41
- package/esm2022/lib/abstract-classes/report-base.mjs +0 -266
- package/esm2022/lib/abstract-classes/report-item-base.mjs +0 -54
- package/esm2022/lib/abstract-classes/report-view-base.component.mjs +0 -450
- package/esm2022/lib/abstract-classes/system-base.mjs +0 -25
- package/esm2022/lib/abstract-classes/tile-props.mjs +0 -49
- package/esm2022/lib/auth-guard.mjs +0 -48
- package/esm2022/lib/barsa-novin-ray-core-routing.module.mjs +0 -311
- package/esm2022/lib/barsa-novin-ray-core.module.mjs +0 -522
- package/esm2022/lib/base-ulv-setting.component.mjs +0 -46
- package/esm2022/lib/base.module.mjs +0 -28
- package/esm2022/lib/button-loading/button-loading.component.mjs +0 -20
- package/esm2022/lib/constants.mjs +0 -963
- package/esm2022/lib/container.component.mjs +0 -100
- package/esm2022/lib/controllers/base-controller.mjs +0 -9
- package/esm2022/lib/controllers/base-view.mjs +0 -24
- package/esm2022/lib/controllers/index.mjs +0 -4
- package/esm2022/lib/controllers/models.mjs +0 -2
- package/esm2022/lib/custom-route-reuse-strategy.mjs +0 -32
- package/esm2022/lib/date-services/date-hijri.service.mjs +0 -146
- package/esm2022/lib/date-services/date-info.mjs +0 -2
- package/esm2022/lib/date-services/date-miladi.service.mjs +0 -124
- package/esm2022/lib/date-services/date-shamsi.service.mjs +0 -148
- package/esm2022/lib/date-services/date.service.mjs +0 -149
- package/esm2022/lib/date-services/index.mjs +0 -6
- package/esm2022/lib/device.mjs +0 -663
- package/esm2022/lib/directives/absolute-div-body.directive.mjs +0 -46
- package/esm2022/lib/directives/anchor-scroll.directive.mjs +0 -25
- package/esm2022/lib/directives/attr-rtl.directive.mjs +0 -36
- package/esm2022/lib/directives/base.directive.mjs +0 -55
- package/esm2022/lib/directives/body-click.directive.mjs +0 -36
- package/esm2022/lib/directives/column-resizer.directive.mjs +0 -40
- package/esm2022/lib/directives/copy.directive.mjs +0 -60
- package/esm2022/lib/directives/count-down.directive.mjs +0 -109
- package/esm2022/lib/directives/dynamic-command.directive.mjs +0 -43
- package/esm2022/lib/directives/dynamic-style.directive.mjs +0 -66
- package/esm2022/lib/directives/ellapsis-text.directive.mjs +0 -70
- package/esm2022/lib/directives/ellipsify.directive.mjs +0 -73
- package/esm2022/lib/directives/field-binding.directive.mjs +0 -18
- package/esm2022/lib/directives/fill-empty-space.mjs +0 -89
- package/esm2022/lib/directives/form-close.directive.mjs +0 -33
- package/esm2022/lib/directives/img-lazy.directive.mjs +0 -82
- package/esm2022/lib/directives/index.mjs +0 -42
- package/esm2022/lib/directives/intersection-observer.directive.mjs +0 -52
- package/esm2022/lib/directives/items-renderer.directive.mjs +0 -60
- package/esm2022/lib/directives/label-mandatory.directive.mjs +0 -49
- package/esm2022/lib/directives/load-external-files.directive.mjs +0 -38
- package/esm2022/lib/directives/mobile.directive.mjs +0 -30
- package/esm2022/lib/directives/nowraptext.directive.mjs +0 -27
- package/esm2022/lib/directives/numbers-only-input.directive.mjs +0 -27
- package/esm2022/lib/directives/placeHolder.directive.mjs +0 -16
- package/esm2022/lib/directives/prevent-default.directive.mjs +0 -21
- package/esm2022/lib/directives/print-files.directive.mjs +0 -39
- package/esm2022/lib/directives/render-ulv-paging.directive.mjs +0 -81
- package/esm2022/lib/directives/render-ulv-viewer.directive.mjs +0 -76
- package/esm2022/lib/directives/render-ulv.directive.mjs +0 -52
- package/esm2022/lib/directives/route-form-change.directive.mjs +0 -38
- package/esm2022/lib/directives/save-image.directive.mjs +0 -28
- package/esm2022/lib/directives/splide-slider.directive.mjs +0 -113
- package/esm2022/lib/directives/stop-propagation.directive.mjs +0 -21
- package/esm2022/lib/directives/table-resizer.directive.mjs +0 -236
- package/esm2022/lib/directives/ulv-command.directive.mjs +0 -43
- package/esm2022/lib/directives/until-inview.directive.mjs +0 -53
- package/esm2022/lib/directives/webotp.directive.mjs +0 -49
- package/esm2022/lib/directives/workflow-choice-command.directive.mjs +0 -61
- package/esm2022/lib/dynamic-component/base-dynamic.component.mjs +0 -97
- package/esm2022/lib/dynamic-component/base-form-toolbaritem-props.mjs +0 -53
- package/esm2022/lib/dynamic-component/base-item-content-props.mjs +0 -83
- package/esm2022/lib/dynamic-component/base-view-content-props.mjs +0 -27
- package/esm2022/lib/dynamic-component/base-view-item-props.mjs +0 -552
- package/esm2022/lib/dynamic-component/base-view-props.mjs +0 -163
- package/esm2022/lib/dynamic-component/dynamic-form-toolbar-item.component.mjs +0 -38
- package/esm2022/lib/dynamic-component/dynamic-form.component.mjs +0 -69
- package/esm2022/lib/dynamic-component/dynamic-item.component.mjs +0 -78
- package/esm2022/lib/dynamic-component/dynamic-layout.component.mjs +0 -64
- package/esm2022/lib/dynamic-component/index.mjs +0 -11
- package/esm2022/lib/empty-page/empty-page.component.mjs +0 -49
- package/esm2022/lib/empty-page-with-router-and-router-outlet/empty-page-with-router-and-router-outlet.component.mjs +0 -16
- package/esm2022/lib/field-ui/field-ui.component.mjs +0 -149
- package/esm2022/lib/form/form.component.mjs +0 -212
- package/esm2022/lib/form-new/form-new.component.mjs +0 -31
- package/esm2022/lib/form-page-routing/barsa-sap-ui-form-page-routing.module.mjs +0 -54
- package/esm2022/lib/form-page-routing/barsa-sap-ui-form-page.module.mjs +0 -29
- package/esm2022/lib/form-page-routing/constants.mjs +0 -9
- package/esm2022/lib/form-page-routing/index.mjs +0 -3
- package/esm2022/lib/from-intersection-observer.mjs +0 -53
- package/esm2022/lib/global-error-handler.mjs +0 -26
- package/esm2022/lib/injdection-tokens.mjs +0 -8
- package/esm2022/lib/modal-root.component.mjs +0 -34
- package/esm2022/lib/not-found/not-found.component.mjs +0 -16
- package/esm2022/lib/not-internet/not-internet.component.mjs +0 -21
- package/esm2022/lib/pipes/barsa-icon-dict.pipe.mjs +0 -20
- package/esm2022/lib/pipes/bbb-translate.pipe.mjs +0 -36
- package/esm2022/lib/pipes/can-upload.pipe.mjs +0 -27
- package/esm2022/lib/pipes/card-media-size.pipe.mjs +0 -21
- package/esm2022/lib/pipes/column-custom-component.pipe.mjs +0 -41
- package/esm2022/lib/pipes/column-customui.pipe.mjs +0 -33
- package/esm2022/lib/pipes/column-icon.pipe.mjs +0 -23
- package/esm2022/lib/pipes/column-value.pipe.mjs +0 -35
- package/esm2022/lib/pipes/column-valueof-parameters.pipe.mjs +0 -34
- package/esm2022/lib/pipes/combo-row-img.pipe.mjs +0 -17
- package/esm2022/lib/pipes/context-menu.pipe.mjs +0 -41
- package/esm2022/lib/pipes/control-ui.pipe.mjs +0 -32
- package/esm2022/lib/pipes/convert-to-style.pipe.mjs +0 -33
- package/esm2022/lib/pipes/date-time-to-caption.pipe.mjs +0 -35
- package/esm2022/lib/pipes/fileinfo-count.pipe.mjs +0 -21
- package/esm2022/lib/pipes/filter-columns-by-details.pipe.mjs +0 -23
- package/esm2022/lib/pipes/filter-inline-action-list.pipe.mjs +0 -19
- package/esm2022/lib/pipes/filter-string.pipe.mjs +0 -45
- package/esm2022/lib/pipes/filter-tab.pipe.mjs +0 -20
- package/esm2022/lib/pipes/filter-toolbar-control.pipe.mjs +0 -17
- package/esm2022/lib/pipes/filter-workflow-mobile.pipe.mjs +0 -25
- package/esm2022/lib/pipes/filter.pipe.mjs +0 -34
- package/esm2022/lib/pipes/find-column-by-db-name.pipe.mjs +0 -28
- package/esm2022/lib/pipes/find-preview-column.pipe.mjs +0 -20
- package/esm2022/lib/pipes/fiori-icon.pipe.mjs +0 -43
- package/esm2022/lib/pipes/groupby.pipe.mjs +0 -64
- package/esm2022/lib/pipes/header-facet-value.pipe.mjs +0 -23
- package/esm2022/lib/pipes/hide-accept-cancel-buttons.pipe.mjs +0 -24
- package/esm2022/lib/pipes/hide-columns-inmobile.pipe.mjs +0 -23
- package/esm2022/lib/pipes/index.mjs +0 -55
- package/esm2022/lib/pipes/isimage.pipe.mjs +0 -20
- package/esm2022/lib/pipes/list-count.pipe.mjs +0 -18
- package/esm2022/lib/pipes/merge-fields-to-columns.pipe.mjs +0 -43
- package/esm2022/lib/pipes/mo-info-ulv-data.pipe.mjs +0 -59
- package/esm2022/lib/pipes/mo-info-ulv-paging.pipe.mjs +0 -17
- package/esm2022/lib/pipes/mo-report-value-concat.pipe.mjs +0 -36
- package/esm2022/lib/pipes/mo-report-value.pipe.mjs +0 -18
- package/esm2022/lib/pipes/mo-value.pipe.mjs +0 -19
- package/esm2022/lib/pipes/multiple-groupby.pipe.mjs +0 -91
- package/esm2022/lib/pipes/numeral.pipe.mjs +0 -44
- package/esm2022/lib/pipes/picture-field-source.pipe.mjs +0 -23
- package/esm2022/lib/pipes/remove-newline.pipe.mjs +0 -21
- package/esm2022/lib/pipes/replace.pipe.mjs +0 -18
- package/esm2022/lib/pipes/reverse.pipe.mjs +0 -23
- package/esm2022/lib/pipes/rownumber.pipe.mjs +0 -26
- package/esm2022/lib/pipes/sanitize-text.pipe.mjs +0 -21
- package/esm2022/lib/pipes/seperator-fix.pipe.mjs +0 -24
- package/esm2022/lib/pipes/sort.pipe.mjs +0 -49
- package/esm2022/lib/pipes/string-to-number.pipe.mjs +0 -26
- package/esm2022/lib/pipes/th-image-icon.pipe.mjs +0 -22
- package/esm2022/lib/pipes/tlbButtons.pipe.mjs +0 -60
- package/esm2022/lib/pipes/toolbar-settings.pipe.mjs +0 -27
- package/esm2022/lib/pipes/total-summary.pipe.mjs +0 -17
- package/esm2022/lib/pipes/tree-item-isexpanded.pipe.mjs +0 -26
- package/esm2022/lib/pipes/visible-value.pipe.mjs +0 -19
- package/esm2022/lib/portal-page/portal-page.component.mjs +0 -24
- package/esm2022/lib/portal-page/portal-sidebar.component.mjs +0 -37
- package/esm2022/lib/redirect-home-guard.mjs +0 -51
- package/esm2022/lib/redirect-report-navigator-command/redirect-report-navigator-command.component.mjs +0 -12
- package/esm2022/lib/report-container/report-container.component.mjs +0 -63
- package/esm2022/lib/resizable-module/resizable.component.mjs +0 -31
- package/esm2022/lib/resizable-module/resizable.directive.mjs +0 -42
- package/esm2022/lib/resizable-module/resizable.module.mjs +0 -17
- package/esm2022/lib/resolvers/index.mjs +0 -7
- package/esm2022/lib/resolvers/login-settings.resolver.mjs +0 -18
- package/esm2022/lib/resolvers/portal-dynamic-page.resolver.mjs +0 -49
- package/esm2022/lib/resolvers/portal-form-page.resolver.mjs +0 -18
- package/esm2022/lib/resolvers/portal-page.resolver.mjs +0 -30
- package/esm2022/lib/resolvers/portal-report-page.resolver.mjs +0 -37
- package/esm2022/lib/resolvers/tile-group-breadcrumb.resolver.mjs +0 -30
- package/esm2022/lib/root-page/root-page.component.mjs +0 -21
- package/esm2022/lib/root-portal/root-portal.component.mjs +0 -236
- package/esm2022/lib/server-connection-error/server-connection-error.component.mjs +0 -19
- package/esm2022/lib/services/api.service.mjs +0 -63
- package/esm2022/lib/services/audio-recording.service.mjs +0 -95
- package/esm2022/lib/services/barsa-dialog.service.mjs +0 -80
- package/esm2022/lib/services/barsa-storage.service.mjs +0 -78
- package/esm2022/lib/services/breadcrumb.service.mjs +0 -64
- package/esm2022/lib/services/column.service.mjs +0 -20
- package/esm2022/lib/services/container.service.mjs +0 -69
- package/esm2022/lib/services/dynamic-component.service.mjs +0 -55
- package/esm2022/lib/services/form-panel.service.mjs +0 -394
- package/esm2022/lib/services/form.service.mjs +0 -14
- package/esm2022/lib/services/groupby.service.mjs +0 -21
- package/esm2022/lib/services/horizontal-layout.service.mjs +0 -16
- package/esm2022/lib/services/index.mjs +0 -32
- package/esm2022/lib/services/indexeddb.service.mjs +0 -34
- package/esm2022/lib/services/layout-main-content.service.mjs +0 -19
- package/esm2022/lib/services/layout.service.mjs +0 -42
- package/esm2022/lib/services/local-storage.service.mjs +0 -32
- package/esm2022/lib/services/log.service.mjs +0 -50
- package/esm2022/lib/services/network-status.service.mjs +0 -15
- package/esm2022/lib/services/notification-popup.service.mjs +0 -2
- package/esm2022/lib/services/notification-sw.service.mjs +0 -180
- package/esm2022/lib/services/notification.service.mjs +0 -189
- package/esm2022/lib/services/portal.service.mjs +0 -950
- package/esm2022/lib/services/prompt-update.service.mjs +0 -56
- package/esm2022/lib/services/routing.service.mjs +0 -60
- package/esm2022/lib/services/save-scoll-position.service.mjs +0 -29
- package/esm2022/lib/services/service-worker-communication.service.mjs +0 -120
- package/esm2022/lib/services/tabpage.service.mjs +0 -13
- package/esm2022/lib/services/toast.service.mjs +0 -2
- package/esm2022/lib/services/ui.service.mjs +0 -23
- package/esm2022/lib/services/ulvmain.service.mjs +0 -824
- package/esm2022/lib/services/upload.service.mjs +0 -166
- package/esm2022/lib/services/video-recording.service.mjs +0 -115
- package/esm2022/lib/unlimit-session/unlimit-session.component.mjs +0 -40
- package/esm2022/public-api.mjs +0 -42
|
@@ -1,78 +0,0 @@
|
|
|
1
|
-
import { Injectable } from '@angular/core';
|
|
2
|
-
import { BarsaApi } from '../abstract-classes/barsa-api';
|
|
3
|
-
import * as i0 from "@angular/core";
|
|
4
|
-
import * as i1 from "./log.service";
|
|
5
|
-
import * as i2 from "./local-storage.service";
|
|
6
|
-
import * as i3 from "./indexeddb.service";
|
|
7
|
-
export class BarsaStorageService {
|
|
8
|
-
constructor(_logService, _localStorageService, _indexedDbService) {
|
|
9
|
-
this._logService = _logService;
|
|
10
|
-
this._localStorageService = _localStorageService;
|
|
11
|
-
this._indexedDbService = _indexedDbService;
|
|
12
|
-
this.STARTUP_DATA_KEY = 'STARTUP_DATA';
|
|
13
|
-
this.DBNAME_KEY = 'BARSA_DB';
|
|
14
|
-
this.DBNAME_VERSION_KEY = `${this.DBNAME_KEY}_VERSION`;
|
|
15
|
-
this.BAZAVARI_VERSION_KEY = `BAZAVARI_VERSION`;
|
|
16
|
-
}
|
|
17
|
-
get currentBazavariVersion() {
|
|
18
|
-
return BarsaApi.LoginFormData.ChangeKeyVersion;
|
|
19
|
-
}
|
|
20
|
-
interceptXhr() {
|
|
21
|
-
const origOpen = XMLHttpRequest.prototype.open;
|
|
22
|
-
const logService = this._logService;
|
|
23
|
-
// const isAnonymous = BarsaApi.LoginFormData.IsAnonymous;
|
|
24
|
-
// const startupData = JSON.stringify(BarsaApi.LoginFormData);
|
|
25
|
-
// localStorage.setItem(this.STARTUP_DATA_KEY, startupData);
|
|
26
|
-
// const me = this;
|
|
27
|
-
return;
|
|
28
|
-
XMLHttpRequest.prototype.open = function (method, url, async, username, password) {
|
|
29
|
-
// console.log('request started!');
|
|
30
|
-
// if(isAnonymous){
|
|
31
|
-
// var responseText=me._indexedDbService.get(url);
|
|
32
|
-
// if(responseText){
|
|
33
|
-
// }
|
|
34
|
-
// return;
|
|
35
|
-
// }
|
|
36
|
-
this.addEventListener('load', function () {
|
|
37
|
-
// console.log('request completed!');
|
|
38
|
-
// console.log(this.readyState); // will always be 4 (ajax is completed successfully)
|
|
39
|
-
// console.log(this.responseText); // whatever the response was
|
|
40
|
-
if (this.status === 401 && BarsaApi.LoginFormData.succeed !== false) {
|
|
41
|
-
logService.info(`unauthorized ${this.status}`);
|
|
42
|
-
// console.log('clear localstorage');
|
|
43
|
-
// localStorage.clear();
|
|
44
|
-
}
|
|
45
|
-
});
|
|
46
|
-
origOpen.call(this, method, url, async === false ? false : true, username, password);
|
|
47
|
-
};
|
|
48
|
-
}
|
|
49
|
-
init() {
|
|
50
|
-
this.interceptXhr();
|
|
51
|
-
const localStorage = this._localStorageService;
|
|
52
|
-
const db_version = localStorage.getItem(this.DBNAME_VERSION_KEY);
|
|
53
|
-
const bazavari_version = localStorage.getItem(this.BAZAVARI_VERSION_KEY);
|
|
54
|
-
let dbVer = 0;
|
|
55
|
-
dbVer = Number.parseInt(db_version ?? '0', 10);
|
|
56
|
-
if (isNaN(dbVer) || !db_version) {
|
|
57
|
-
this.deleteDatabase();
|
|
58
|
-
}
|
|
59
|
-
if (bazavari_version !== this.currentBazavariVersion) {
|
|
60
|
-
dbVer++;
|
|
61
|
-
}
|
|
62
|
-
localStorage.setItem(this.DBNAME_VERSION_KEY, dbVer.toString());
|
|
63
|
-
localStorage.setItem(this.BAZAVARI_VERSION_KEY, this.currentBazavariVersion);
|
|
64
|
-
this.openDatabase(dbVer);
|
|
65
|
-
}
|
|
66
|
-
deleteDatabase() {
|
|
67
|
-
this._indexedDbService.delete(this.DBNAME_KEY);
|
|
68
|
-
}
|
|
69
|
-
openDatabase(version) {
|
|
70
|
-
this._indexedDbService.open(this.DBNAME_KEY, version);
|
|
71
|
-
}
|
|
72
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: BarsaStorageService, deps: [{ token: i1.LogService }, { token: i2.LocalStorageService }, { token: i3.IndexedDbService }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
73
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: BarsaStorageService }); }
|
|
74
|
-
}
|
|
75
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: BarsaStorageService, decorators: [{
|
|
76
|
-
type: Injectable
|
|
77
|
-
}], ctorParameters: () => [{ type: i1.LogService }, { type: i2.LocalStorageService }, { type: i3.IndexedDbService }] });
|
|
78
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFyc2Etc3RvcmFnZS5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYmFyc2Etbm92aW4tcmF5LWNvcmUvc3JjL2xpYi9zZXJ2aWNlcy9iYXJzYS1zdG9yYWdlLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUczQyxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sK0JBQStCLENBQUM7Ozs7O0FBR3pELE1BQU0sT0FBTyxtQkFBbUI7SUFLNUIsWUFDWSxXQUF1QixFQUN2QixvQkFBeUMsRUFDekMsaUJBQW1DO1FBRm5DLGdCQUFXLEdBQVgsV0FBVyxDQUFZO1FBQ3ZCLHlCQUFvQixHQUFwQixvQkFBb0IsQ0FBcUI7UUFDekMsc0JBQWlCLEdBQWpCLGlCQUFpQixDQUFrQjtRQVAvQyxxQkFBZ0IsR0FBRyxjQUFjLENBQUM7UUFDbEMsZUFBVSxHQUFHLFVBQVUsQ0FBQztRQUN4Qix1QkFBa0IsR0FBRyxHQUFHLElBQUksQ0FBQyxVQUFVLFVBQVUsQ0FBQztRQUNsRCx5QkFBb0IsR0FBRyxrQkFBa0IsQ0FBQztJQUt2QyxDQUFDO0lBQ0osSUFBYyxzQkFBc0I7UUFDaEMsT0FBTyxRQUFRLENBQUMsYUFBYSxDQUFDLGdCQUFnQixDQUFDO0lBQ25ELENBQUM7SUFDRCxZQUFZO1FBQ1IsTUFBTSxRQUFRLEdBQUcsY0FBYyxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUM7UUFDL0MsTUFBTSxVQUFVLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQztRQUNwQywwREFBMEQ7UUFDMUQsOERBQThEO1FBQzlELDREQUE0RDtRQUM1RCxtQkFBbUI7UUFDbkIsT0FBTztRQUNQLGNBQWMsQ0FBQyxTQUFTLENBQUMsSUFBSSxHQUFHLFVBQzVCLE1BQWMsRUFDZCxHQUFpQixFQUNqQixLQUFlLEVBQ2YsUUFBd0IsRUFDeEIsUUFBd0I7WUFFeEIsbUNBQW1DO1lBQ25DLG1CQUFtQjtZQUNuQixzREFBc0Q7WUFDdEQsd0JBQXdCO1lBRXhCLFFBQVE7WUFDUixjQUFjO1lBQ2QsSUFBSTtZQUNKLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxNQUFNLEVBQUU7Z0JBQzFCLHdDQUF3QztnQkFDeEMsdUZBQXVGO2dCQUN2RiwrREFBK0Q7Z0JBQy9ELElBQUksSUFBSSxDQUFDLE1BQU0sS0FBSyxHQUFHLElBQUksUUFBUSxDQUFDLGFBQWEsQ0FBQyxPQUFPLEtBQUssS0FBSyxFQUFFLENBQUM7b0JBQ2xFLFVBQVUsQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQyxDQUFDO29CQUMvQyxxQ0FBcUM7b0JBQ3JDLHdCQUF3QjtnQkFDNUIsQ0FBQztZQUNMLENBQUMsQ0FBQyxDQUFDO1lBQ0gsUUFBUSxDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUUsTUFBTSxFQUFFLEdBQUcsRUFBRSxLQUFLLEtBQUssS0FBSyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLElBQUksRUFBRSxRQUFRLEVBQUUsUUFBUSxDQUFDLENBQUM7UUFDekYsQ0FBQyxDQUFDO0lBQ04sQ0FBQztJQUNELElBQUk7UUFDQSxJQUFJLENBQUMsWUFBWSxFQUFFLENBQUM7UUFDcEIsTUFBTSxZQUFZLEdBQUcsSUFBSSxDQUFDLG9CQUFvQixDQUFDO1FBRS9DLE1BQU0sVUFBVSxHQUFHLFlBQVksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLGtCQUFrQixDQUFDLENBQUM7UUFDakUsTUFBTSxnQkFBZ0IsR0FBRyxZQUFZLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxDQUFDO1FBQ3pFLElBQUksS0FBSyxHQUFHLENBQUMsQ0FBQztRQUNkLEtBQUssR0FBRyxNQUFNLENBQUMsUUFBUSxDQUFDLFVBQVUsSUFBSSxHQUFHLEVBQUUsRUFBRSxDQUFDLENBQUM7UUFDL0MsSUFBSSxLQUFLLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQztZQUM5QixJQUFJLENBQUMsY0FBYyxFQUFFLENBQUM7UUFDMUIsQ0FBQztRQUNELElBQUksZ0JBQWdCLEtBQUssSUFBSSxDQUFDLHNCQUFzQixFQUFFLENBQUM7WUFDbkQsS0FBSyxFQUFFLENBQUM7UUFDWixDQUFDO1FBQ0QsWUFBWSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsa0JBQWtCLEVBQUUsS0FBSyxDQUFDLFFBQVEsRUFBRSxDQUFDLENBQUM7UUFDaEUsWUFBWSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsb0JBQW9CLEVBQUUsSUFBSSxDQUFDLHNCQUFzQixDQUFDLENBQUM7UUFDN0UsSUFBSSxDQUFDLFlBQVksQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUM3QixDQUFDO0lBQ0QsY0FBYztRQUNWLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDO0lBQ25ELENBQUM7SUFDRCxZQUFZLENBQUMsT0FBZTtRQUN4QixJQUFJLENBQUMsaUJBQWlCLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxVQUFVLEVBQUUsT0FBTyxDQUFDLENBQUM7SUFDMUQsQ0FBQzsrR0F4RVEsbUJBQW1CO21IQUFuQixtQkFBbUI7OzRGQUFuQixtQkFBbUI7a0JBRC9CLFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IExvY2FsU3RvcmFnZVNlcnZpY2UgfSBmcm9tICcuL2xvY2FsLXN0b3JhZ2Uuc2VydmljZSc7XHJcbmltcG9ydCB7IEluZGV4ZWREYlNlcnZpY2UgfSBmcm9tICcuL2luZGV4ZWRkYi5zZXJ2aWNlJztcclxuaW1wb3J0IHsgQmFyc2FBcGkgfSBmcm9tICcuLi9hYnN0cmFjdC1jbGFzc2VzL2JhcnNhLWFwaSc7XHJcbmltcG9ydCB7IExvZ1NlcnZpY2UgfSBmcm9tICcuL2xvZy5zZXJ2aWNlJztcclxuQEluamVjdGFibGUoKVxyXG5leHBvcnQgY2xhc3MgQmFyc2FTdG9yYWdlU2VydmljZSB7XHJcbiAgICBTVEFSVFVQX0RBVEFfS0VZID0gJ1NUQVJUVVBfREFUQSc7XHJcbiAgICBEQk5BTUVfS0VZID0gJ0JBUlNBX0RCJztcclxuICAgIERCTkFNRV9WRVJTSU9OX0tFWSA9IGAke3RoaXMuREJOQU1FX0tFWX1fVkVSU0lPTmA7XHJcbiAgICBCQVpBVkFSSV9WRVJTSU9OX0tFWSA9IGBCQVpBVkFSSV9WRVJTSU9OYDtcclxuICAgIGNvbnN0cnVjdG9yKFxyXG4gICAgICAgIHByaXZhdGUgX2xvZ1NlcnZpY2U6IExvZ1NlcnZpY2UsXHJcbiAgICAgICAgcHJpdmF0ZSBfbG9jYWxTdG9yYWdlU2VydmljZTogTG9jYWxTdG9yYWdlU2VydmljZSxcclxuICAgICAgICBwcml2YXRlIF9pbmRleGVkRGJTZXJ2aWNlOiBJbmRleGVkRGJTZXJ2aWNlXHJcbiAgICApIHt9XHJcbiAgICBwcm90ZWN0ZWQgZ2V0IGN1cnJlbnRCYXphdmFyaVZlcnNpb24oKTogc3RyaW5nIHtcclxuICAgICAgICByZXR1cm4gQmFyc2FBcGkuTG9naW5Gb3JtRGF0YS5DaGFuZ2VLZXlWZXJzaW9uO1xyXG4gICAgfVxyXG4gICAgaW50ZXJjZXB0WGhyKCk6IHZvaWQge1xyXG4gICAgICAgIGNvbnN0IG9yaWdPcGVuID0gWE1MSHR0cFJlcXVlc3QucHJvdG90eXBlLm9wZW47XHJcbiAgICAgICAgY29uc3QgbG9nU2VydmljZSA9IHRoaXMuX2xvZ1NlcnZpY2U7XHJcbiAgICAgICAgLy8gY29uc3QgaXNBbm9ueW1vdXMgPSBCYXJzYUFwaS5Mb2dpbkZvcm1EYXRhLklzQW5vbnltb3VzO1xyXG4gICAgICAgIC8vIGNvbnN0IHN0YXJ0dXBEYXRhID0gSlNPTi5zdHJpbmdpZnkoQmFyc2FBcGkuTG9naW5Gb3JtRGF0YSk7XHJcbiAgICAgICAgLy8gbG9jYWxTdG9yYWdlLnNldEl0ZW0odGhpcy5TVEFSVFVQX0RBVEFfS0VZLCBzdGFydHVwRGF0YSk7XHJcbiAgICAgICAgLy8gY29uc3QgbWUgPSB0aGlzO1xyXG4gICAgICAgIHJldHVybjtcclxuICAgICAgICBYTUxIdHRwUmVxdWVzdC5wcm90b3R5cGUub3BlbiA9IGZ1bmN0aW9uIChcclxuICAgICAgICAgICAgbWV0aG9kOiBzdHJpbmcsXHJcbiAgICAgICAgICAgIHVybDogc3RyaW5nIHwgVVJMLFxyXG4gICAgICAgICAgICBhc3luYz86IGJvb2xlYW4sXHJcbiAgICAgICAgICAgIHVzZXJuYW1lPzogc3RyaW5nIHwgbnVsbCxcclxuICAgICAgICAgICAgcGFzc3dvcmQ/OiBzdHJpbmcgfCBudWxsXHJcbiAgICAgICAgKSB7XHJcbiAgICAgICAgICAgIC8vIGNvbnNvbGUubG9nKCdyZXF1ZXN0IHN0YXJ0ZWQhJyk7XHJcbiAgICAgICAgICAgIC8vIGlmKGlzQW5vbnltb3VzKXtcclxuICAgICAgICAgICAgLy8gICAgIHZhciByZXNwb25zZVRleHQ9bWUuX2luZGV4ZWREYlNlcnZpY2UuZ2V0KHVybCk7XHJcbiAgICAgICAgICAgIC8vICAgICBpZihyZXNwb25zZVRleHQpe1xyXG5cclxuICAgICAgICAgICAgLy8gICAgIH1cclxuICAgICAgICAgICAgLy8gICAgIHJldHVybjtcclxuICAgICAgICAgICAgLy8gfVxyXG4gICAgICAgICAgICB0aGlzLmFkZEV2ZW50TGlzdGVuZXIoJ2xvYWQnLCBmdW5jdGlvbiAoKSB7XHJcbiAgICAgICAgICAgICAgICAvLyAgICBjb25zb2xlLmxvZygncmVxdWVzdCBjb21wbGV0ZWQhJyk7XHJcbiAgICAgICAgICAgICAgICAvLyAgIGNvbnNvbGUubG9nKHRoaXMucmVhZHlTdGF0ZSk7IC8vIHdpbGwgYWx3YXlzIGJlIDQgKGFqYXggaXMgY29tcGxldGVkIHN1Y2Nlc3NmdWxseSlcclxuICAgICAgICAgICAgICAgIC8vIGNvbnNvbGUubG9nKHRoaXMucmVzcG9uc2VUZXh0KTsgLy8gd2hhdGV2ZXIgdGhlIHJlc3BvbnNlIHdhc1xyXG4gICAgICAgICAgICAgICAgaWYgKHRoaXMuc3RhdHVzID09PSA0MDEgJiYgQmFyc2FBcGkuTG9naW5Gb3JtRGF0YS5zdWNjZWVkICE9PSBmYWxzZSkge1xyXG4gICAgICAgICAgICAgICAgICAgIGxvZ1NlcnZpY2UuaW5mbyhgdW5hdXRob3JpemVkICR7dGhpcy5zdGF0dXN9YCk7XHJcbiAgICAgICAgICAgICAgICAgICAgLy8gY29uc29sZS5sb2coJ2NsZWFyIGxvY2Fsc3RvcmFnZScpO1xyXG4gICAgICAgICAgICAgICAgICAgIC8vIGxvY2FsU3RvcmFnZS5jbGVhcigpO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgb3JpZ09wZW4uY2FsbCh0aGlzLCBtZXRob2QsIHVybCwgYXN5bmMgPT09IGZhbHNlID8gZmFsc2UgOiB0cnVlLCB1c2VybmFtZSwgcGFzc3dvcmQpO1xyXG4gICAgICAgIH07XHJcbiAgICB9XHJcbiAgICBpbml0KCk6IHZvaWQge1xyXG4gICAgICAgIHRoaXMuaW50ZXJjZXB0WGhyKCk7XHJcbiAgICAgICAgY29uc3QgbG9jYWxTdG9yYWdlID0gdGhpcy5fbG9jYWxTdG9yYWdlU2VydmljZTtcclxuXHJcbiAgICAgICAgY29uc3QgZGJfdmVyc2lvbiA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMuREJOQU1FX1ZFUlNJT05fS0VZKTtcclxuICAgICAgICBjb25zdCBiYXphdmFyaV92ZXJzaW9uID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0odGhpcy5CQVpBVkFSSV9WRVJTSU9OX0tFWSk7XHJcbiAgICAgICAgbGV0IGRiVmVyID0gMDtcclxuICAgICAgICBkYlZlciA9IE51bWJlci5wYXJzZUludChkYl92ZXJzaW9uID8/ICcwJywgMTApO1xyXG4gICAgICAgIGlmIChpc05hTihkYlZlcikgfHwgIWRiX3ZlcnNpb24pIHtcclxuICAgICAgICAgICAgdGhpcy5kZWxldGVEYXRhYmFzZSgpO1xyXG4gICAgICAgIH1cclxuICAgICAgICBpZiAoYmF6YXZhcmlfdmVyc2lvbiAhPT0gdGhpcy5jdXJyZW50QmF6YXZhcmlWZXJzaW9uKSB7XHJcbiAgICAgICAgICAgIGRiVmVyKys7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuREJOQU1FX1ZFUlNJT05fS0VZLCBkYlZlci50b1N0cmluZygpKTtcclxuICAgICAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSh0aGlzLkJBWkFWQVJJX1ZFUlNJT05fS0VZLCB0aGlzLmN1cnJlbnRCYXphdmFyaVZlcnNpb24pO1xyXG4gICAgICAgIHRoaXMub3BlbkRhdGFiYXNlKGRiVmVyKTtcclxuICAgIH1cclxuICAgIGRlbGV0ZURhdGFiYXNlKCk6IHZvaWQge1xyXG4gICAgICAgIHRoaXMuX2luZGV4ZWREYlNlcnZpY2UuZGVsZXRlKHRoaXMuREJOQU1FX0tFWSk7XHJcbiAgICB9XHJcbiAgICBvcGVuRGF0YWJhc2UodmVyc2lvbjogbnVtYmVyKTogdm9pZCB7XHJcbiAgICAgICAgdGhpcy5faW5kZXhlZERiU2VydmljZS5vcGVuKHRoaXMuREJOQU1FX0tFWSwgdmVyc2lvbik7XHJcbiAgICB9XHJcbn1cclxuIl19
|
|
@@ -1,64 +0,0 @@
|
|
|
1
|
-
import { Injectable } from '@angular/core';
|
|
2
|
-
import { NavigationEnd } from '@angular/router';
|
|
3
|
-
import { BehaviorSubject } from 'rxjs';
|
|
4
|
-
import { filter, map, startWith } from 'rxjs/operators';
|
|
5
|
-
import * as i0 from "@angular/core";
|
|
6
|
-
import * as i1 from "@angular/router";
|
|
7
|
-
export class BreadcrumbService {
|
|
8
|
-
constructor(router) {
|
|
9
|
-
this.router = router;
|
|
10
|
-
// Subject emitting the breadcrumb hierarchy
|
|
11
|
-
this._breadcrumbs$ = new BehaviorSubject([]);
|
|
12
|
-
this.breadcrumbs$ = this._breadcrumbs$.asObservable();
|
|
13
|
-
this.router.events
|
|
14
|
-
.pipe(
|
|
15
|
-
// Filter the NavigationEnd events as the breadcrumb is updated only when the route reaches its end
|
|
16
|
-
filter((event) => event instanceof NavigationEnd), startWith(this.router), map(() => this.router.routerState.root))
|
|
17
|
-
.subscribe((root) => {
|
|
18
|
-
// Construct the breadcrumb hierarchy
|
|
19
|
-
// const root = this.router.routerState.snapshot.root;
|
|
20
|
-
const breadcrumbs = [];
|
|
21
|
-
this.addBreadcrumb(root, breadcrumbs);
|
|
22
|
-
// Emit the new hierarchy
|
|
23
|
-
this._breadcrumbs$.next(breadcrumbs);
|
|
24
|
-
});
|
|
25
|
-
}
|
|
26
|
-
addBreadcrumb(route, breadcrumbs) {
|
|
27
|
-
if (route) {
|
|
28
|
-
// Add an element for the current route part
|
|
29
|
-
if (route.snapshot.data?.breadcrumb || route.snapshot.data?.pageData?.BreadCrumb) {
|
|
30
|
-
let url = '';
|
|
31
|
-
const routeURL = route.snapshot.url
|
|
32
|
-
.map((segment) => `${segment.path}${segment.parameters
|
|
33
|
-
? `;${Object.keys(segment.parameters).map((c) => `${c}=${segment.parameters[c]}`)}`
|
|
34
|
-
: ''}`)
|
|
35
|
-
.join('/');
|
|
36
|
-
if (routeURL !== '') {
|
|
37
|
-
url += `/${routeURL}`;
|
|
38
|
-
}
|
|
39
|
-
const breadcrumb = {
|
|
40
|
-
label: this.getLabel(route.snapshot.data),
|
|
41
|
-
url,
|
|
42
|
-
route
|
|
43
|
-
};
|
|
44
|
-
breadcrumbs.push(breadcrumb);
|
|
45
|
-
}
|
|
46
|
-
// Add another element for the next route part
|
|
47
|
-
this.addBreadcrumb(route.firstChild, breadcrumbs);
|
|
48
|
-
}
|
|
49
|
-
}
|
|
50
|
-
getLabel(data) {
|
|
51
|
-
// The breadcrumb can be defined as a static string or as a function to construct the breadcrumb element out of the route data
|
|
52
|
-
const breadcrumb = data.breadcrumb || data.pageData.BreadCrumb;
|
|
53
|
-
return typeof breadcrumb === 'function' ? data.breadcrumb(data) : breadcrumb;
|
|
54
|
-
}
|
|
55
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: BreadcrumbService, deps: [{ token: i1.Router }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
56
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: BreadcrumbService, providedIn: 'root' }); }
|
|
57
|
-
}
|
|
58
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: BreadcrumbService, decorators: [{
|
|
59
|
-
type: Injectable,
|
|
60
|
-
args: [{
|
|
61
|
-
providedIn: 'root'
|
|
62
|
-
}]
|
|
63
|
-
}], ctorParameters: () => [{ type: i1.Router }] });
|
|
64
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnJlYWRjcnVtYi5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYmFyc2Etbm92aW4tcmF5LWNvcmUvc3JjL2xpYi9zZXJ2aWNlcy9icmVhZGNydW1iLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzQyxPQUFPLEVBQXdCLGFBQWEsRUFBVSxNQUFNLGlCQUFpQixDQUFDO0FBQzlFLE9BQU8sRUFBRSxlQUFlLEVBQWMsTUFBTSxNQUFNLENBQUM7QUFDbkQsT0FBTyxFQUFFLE1BQU0sRUFBRSxHQUFHLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7OztBQU14RCxNQUFNLE9BQU8saUJBQWlCO0lBTzFCLFlBQW9CLE1BQWM7UUFBZCxXQUFNLEdBQU4sTUFBTSxDQUFRO1FBSGxDLDRDQUE0QztRQUMzQixrQkFBYSxHQUFHLElBQUksZUFBZSxDQUFtQixFQUFFLENBQUMsQ0FBQztRQUd2RSxJQUFJLENBQUMsWUFBWSxHQUFHLElBQUksQ0FBQyxhQUFhLENBQUMsWUFBWSxFQUFFLENBQUM7UUFDdEQsSUFBSSxDQUFDLE1BQU0sQ0FBQyxNQUFNO2FBQ2IsSUFBSTtRQUNELG1HQUFtRztRQUNuRyxNQUFNLENBQUMsQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLEtBQUssWUFBWSxhQUFhLENBQUMsRUFDakQsU0FBUyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsRUFDdEIsR0FBRyxDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxDQUMxQzthQUNBLFNBQVMsQ0FBQyxDQUFDLElBQUksRUFBRSxFQUFFO1lBQ2hCLHFDQUFxQztZQUNyQyxzREFBc0Q7WUFDdEQsTUFBTSxXQUFXLEdBQXFCLEVBQUUsQ0FBQztZQUN6QyxJQUFJLENBQUMsYUFBYSxDQUFDLElBQUksRUFBRSxXQUFXLENBQUMsQ0FBQztZQUV0Qyx5QkFBeUI7WUFDekIsSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUM7UUFDekMsQ0FBQyxDQUFDLENBQUM7SUFDWCxDQUFDO0lBRU8sYUFBYSxDQUFDLEtBQTRCLEVBQUUsV0FBNkI7UUFDN0UsSUFBSSxLQUFLLEVBQUUsQ0FBQztZQUNSLDRDQUE0QztZQUM1QyxJQUFJLEtBQUssQ0FBQyxRQUFRLENBQUMsSUFBSSxFQUFFLFVBQVUsSUFBSSxLQUFLLENBQUMsUUFBUSxDQUFDLElBQUksRUFBRSxRQUFRLEVBQUUsVUFBVSxFQUFFLENBQUM7Z0JBQy9FLElBQUksR0FBRyxHQUFHLEVBQUUsQ0FBQztnQkFDYixNQUFNLFFBQVEsR0FBVyxLQUFLLENBQUMsUUFBUSxDQUFDLEdBQUc7cUJBQ3RDLEdBQUcsQ0FDQSxDQUFDLE9BQU8sRUFBRSxFQUFFLENBQ1IsR0FBRyxPQUFPLENBQUMsSUFBSSxHQUNYLE9BQU8sQ0FBQyxVQUFVO29CQUNkLENBQUMsQ0FBQyxJQUFJLE1BQU0sQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLFVBQVUsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsR0FBRyxDQUFDLElBQUksT0FBTyxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUU7b0JBQ25GLENBQUMsQ0FBQyxFQUNWLEVBQUUsQ0FDVDtxQkFDQSxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7Z0JBQ2YsSUFBSSxRQUFRLEtBQUssRUFBRSxFQUFFLENBQUM7b0JBQ2xCLEdBQUcsSUFBSSxJQUFJLFFBQVEsRUFBRSxDQUFDO2dCQUMxQixDQUFDO2dCQUNELE1BQU0sVUFBVSxHQUFHO29CQUNmLEtBQUssRUFBRSxJQUFJLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDO29CQUN6QyxHQUFHO29CQUNILEtBQUs7aUJBQ1IsQ0FBQztnQkFDRixXQUFXLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDO1lBQ2pDLENBQUM7WUFDRCw4Q0FBOEM7WUFDOUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxLQUFLLENBQUMsVUFBVSxFQUFFLFdBQVcsQ0FBQyxDQUFDO1FBQ3RELENBQUM7SUFDTCxDQUFDO0lBRU8sUUFBUSxDQUFDLElBQVU7UUFDdkIsOEhBQThIO1FBQzlILE1BQU0sVUFBVSxHQUFHLElBQUksQ0FBQyxVQUFVLElBQUksSUFBSSxDQUFDLFFBQVEsQ0FBQyxVQUFVLENBQUM7UUFFL0QsT0FBTyxPQUFPLFVBQVUsS0FBSyxVQUFVLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLFVBQVUsQ0FBQztJQUNqRixDQUFDOytHQTlEUSxpQkFBaUI7bUhBQWpCLGlCQUFpQixjQUZkLE1BQU07OzRGQUVULGlCQUFpQjtrQkFIN0IsVUFBVTttQkFBQztvQkFDUixVQUFVLEVBQUUsTUFBTTtpQkFDckIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IEFjdGl2YXRlZFJvdXRlLCBEYXRhLCBOYXZpZ2F0aW9uRW5kLCBSb3V0ZXIgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xyXG5pbXBvcnQgeyBCZWhhdmlvclN1YmplY3QsIE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgZmlsdGVyLCBtYXAsIHN0YXJ0V2l0aCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcclxuaW1wb3J0IHsgQnJlYWRDcnVtYkluZm8gfSBmcm9tICcuL3BvcnRhbC5zZXJ2aWNlJztcclxuXHJcbkBJbmplY3RhYmxlKHtcclxuICAgIHByb3ZpZGVkSW46ICdyb290J1xyXG59KVxyXG5leHBvcnQgY2xhc3MgQnJlYWRjcnVtYlNlcnZpY2Uge1xyXG4gICAgLy8gT2JzZXJ2YWJsZSBleHBvc2luZyB0aGUgYnJlYWRjcnVtYiBoaWVyYXJjaHlcclxuICAgIHJlYWRvbmx5IGJyZWFkY3J1bWJzJDogT2JzZXJ2YWJsZTxCcmVhZENydW1iSW5mb1tdPjtcclxuXHJcbiAgICAvLyBTdWJqZWN0IGVtaXR0aW5nIHRoZSBicmVhZGNydW1iIGhpZXJhcmNoeVxyXG4gICAgcHJpdmF0ZSByZWFkb25seSBfYnJlYWRjcnVtYnMkID0gbmV3IEJlaGF2aW9yU3ViamVjdDxCcmVhZENydW1iSW5mb1tdPihbXSk7XHJcblxyXG4gICAgY29uc3RydWN0b3IocHJpdmF0ZSByb3V0ZXI6IFJvdXRlcikge1xyXG4gICAgICAgIHRoaXMuYnJlYWRjcnVtYnMkID0gdGhpcy5fYnJlYWRjcnVtYnMkLmFzT2JzZXJ2YWJsZSgpO1xyXG4gICAgICAgIHRoaXMucm91dGVyLmV2ZW50c1xyXG4gICAgICAgICAgICAucGlwZShcclxuICAgICAgICAgICAgICAgIC8vIEZpbHRlciB0aGUgTmF2aWdhdGlvbkVuZCBldmVudHMgYXMgdGhlIGJyZWFkY3J1bWIgaXMgdXBkYXRlZCBvbmx5IHdoZW4gdGhlIHJvdXRlIHJlYWNoZXMgaXRzIGVuZFxyXG4gICAgICAgICAgICAgICAgZmlsdGVyKChldmVudCkgPT4gZXZlbnQgaW5zdGFuY2VvZiBOYXZpZ2F0aW9uRW5kKSxcclxuICAgICAgICAgICAgICAgIHN0YXJ0V2l0aCh0aGlzLnJvdXRlciksXHJcbiAgICAgICAgICAgICAgICBtYXAoKCkgPT4gdGhpcy5yb3V0ZXIucm91dGVyU3RhdGUucm9vdClcclxuICAgICAgICAgICAgKVxyXG4gICAgICAgICAgICAuc3Vic2NyaWJlKChyb290KSA9PiB7XHJcbiAgICAgICAgICAgICAgICAvLyBDb25zdHJ1Y3QgdGhlIGJyZWFkY3J1bWIgaGllcmFyY2h5XHJcbiAgICAgICAgICAgICAgICAvLyBjb25zdCByb290ID0gdGhpcy5yb3V0ZXIucm91dGVyU3RhdGUuc25hcHNob3Qucm9vdDtcclxuICAgICAgICAgICAgICAgIGNvbnN0IGJyZWFkY3J1bWJzOiBCcmVhZENydW1iSW5mb1tdID0gW107XHJcbiAgICAgICAgICAgICAgICB0aGlzLmFkZEJyZWFkY3J1bWIocm9vdCwgYnJlYWRjcnVtYnMpO1xyXG5cclxuICAgICAgICAgICAgICAgIC8vIEVtaXQgdGhlIG5ldyBoaWVyYXJjaHlcclxuICAgICAgICAgICAgICAgIHRoaXMuX2JyZWFkY3J1bWJzJC5uZXh0KGJyZWFkY3J1bWJzKTtcclxuICAgICAgICAgICAgfSk7XHJcbiAgICB9XHJcblxyXG4gICAgcHJpdmF0ZSBhZGRCcmVhZGNydW1iKHJvdXRlOiBBY3RpdmF0ZWRSb3V0ZSB8IG51bGwsIGJyZWFkY3J1bWJzOiBCcmVhZENydW1iSW5mb1tdKTogdm9pZCB7XHJcbiAgICAgICAgaWYgKHJvdXRlKSB7XHJcbiAgICAgICAgICAgIC8vIEFkZCBhbiBlbGVtZW50IGZvciB0aGUgY3VycmVudCByb3V0ZSBwYXJ0XHJcbiAgICAgICAgICAgIGlmIChyb3V0ZS5zbmFwc2hvdC5kYXRhPy5icmVhZGNydW1iIHx8IHJvdXRlLnNuYXBzaG90LmRhdGE/LnBhZ2VEYXRhPy5CcmVhZENydW1iKSB7XHJcbiAgICAgICAgICAgICAgICBsZXQgdXJsID0gJyc7XHJcbiAgICAgICAgICAgICAgICBjb25zdCByb3V0ZVVSTDogc3RyaW5nID0gcm91dGUuc25hcHNob3QudXJsXHJcbiAgICAgICAgICAgICAgICAgICAgLm1hcChcclxuICAgICAgICAgICAgICAgICAgICAgICAgKHNlZ21lbnQpID0+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBgJHtzZWdtZW50LnBhdGh9JHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWdtZW50LnBhcmFtZXRlcnNcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPyBgOyR7T2JqZWN0LmtleXMoc2VnbWVudC5wYXJhbWV0ZXJzKS5tYXAoKGMpID0+IGAke2N9PSR7c2VnbWVudC5wYXJhbWV0ZXJzW2NdfWApfWBcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOiAnJ1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfWBcclxuICAgICAgICAgICAgICAgICAgICApXHJcbiAgICAgICAgICAgICAgICAgICAgLmpvaW4oJy8nKTtcclxuICAgICAgICAgICAgICAgIGlmIChyb3V0ZVVSTCAhPT0gJycpIHtcclxuICAgICAgICAgICAgICAgICAgICB1cmwgKz0gYC8ke3JvdXRlVVJMfWA7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICBjb25zdCBicmVhZGNydW1iID0ge1xyXG4gICAgICAgICAgICAgICAgICAgIGxhYmVsOiB0aGlzLmdldExhYmVsKHJvdXRlLnNuYXBzaG90LmRhdGEpLFxyXG4gICAgICAgICAgICAgICAgICAgIHVybCxcclxuICAgICAgICAgICAgICAgICAgICByb3V0ZVxyXG4gICAgICAgICAgICAgICAgfTtcclxuICAgICAgICAgICAgICAgIGJyZWFkY3J1bWJzLnB1c2goYnJlYWRjcnVtYik7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgLy8gQWRkIGFub3RoZXIgZWxlbWVudCBmb3IgdGhlIG5leHQgcm91dGUgcGFydFxyXG4gICAgICAgICAgICB0aGlzLmFkZEJyZWFkY3J1bWIocm91dGUuZmlyc3RDaGlsZCwgYnJlYWRjcnVtYnMpO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIGdldExhYmVsKGRhdGE6IERhdGEpOiBzdHJpbmcge1xyXG4gICAgICAgIC8vIFRoZSBicmVhZGNydW1iIGNhbiBiZSBkZWZpbmVkIGFzIGEgc3RhdGljIHN0cmluZyBvciBhcyBhIGZ1bmN0aW9uIHRvIGNvbnN0cnVjdCB0aGUgYnJlYWRjcnVtYiBlbGVtZW50IG91dCBvZiB0aGUgcm91dGUgZGF0YVxyXG4gICAgICAgIGNvbnN0IGJyZWFkY3J1bWIgPSBkYXRhLmJyZWFkY3J1bWIgfHwgZGF0YS5wYWdlRGF0YS5CcmVhZENydW1iO1xyXG5cclxuICAgICAgICByZXR1cm4gdHlwZW9mIGJyZWFkY3J1bWIgPT09ICdmdW5jdGlvbicgPyBkYXRhLmJyZWFkY3J1bWIoZGF0YSkgOiBicmVhZGNydW1iO1xyXG4gICAgfVxyXG59XHJcbiJdfQ==
|
|
@@ -1,20 +0,0 @@
|
|
|
1
|
-
import { Injectable } from '@angular/core';
|
|
2
|
-
import { Subject } from 'rxjs';
|
|
3
|
-
import * as i0 from "@angular/core";
|
|
4
|
-
export class ColumnService {
|
|
5
|
-
get uiControlRendered() {
|
|
6
|
-
return this._uiControlRendered.asObservable();
|
|
7
|
-
}
|
|
8
|
-
constructor() {
|
|
9
|
-
this._uiControlRendered = new Subject();
|
|
10
|
-
}
|
|
11
|
-
controlRendered() {
|
|
12
|
-
this._uiControlRendered.next();
|
|
13
|
-
}
|
|
14
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ColumnService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
15
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ColumnService }); }
|
|
16
|
-
}
|
|
17
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ColumnService, decorators: [{
|
|
18
|
-
type: Injectable
|
|
19
|
-
}], ctorParameters: () => [] });
|
|
20
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29sdW1uLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9iYXJzYS1ub3Zpbi1yYXktY29yZS9zcmMvbGliL3NlcnZpY2VzL2NvbHVtbi5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0MsT0FBTyxFQUFjLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQzs7QUFHM0MsTUFBTSxPQUFPLGFBQWE7SUFFdEIsSUFBSSxpQkFBaUI7UUFDakIsT0FBTyxJQUFJLENBQUMsa0JBQWtCLENBQUMsWUFBWSxFQUFFLENBQUM7SUFDbEQsQ0FBQztJQUNEO1FBSlEsdUJBQWtCLEdBQUcsSUFBSSxPQUFPLEVBQVEsQ0FBQztJQUlsQyxDQUFDO0lBQ2hCLGVBQWU7UUFDWCxJQUFJLENBQUMsa0JBQWtCLENBQUMsSUFBSSxFQUFFLENBQUM7SUFDbkMsQ0FBQzsrR0FSUSxhQUFhO21IQUFiLGFBQWE7OzRGQUFiLGFBQWE7a0JBRHpCLFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBPYnNlcnZhYmxlLCBTdWJqZWN0IH0gZnJvbSAncnhqcyc7XG5cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBDb2x1bW5TZXJ2aWNlIHtcbiAgICBwcml2YXRlIF91aUNvbnRyb2xSZW5kZXJlZCA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XG4gICAgZ2V0IHVpQ29udHJvbFJlbmRlcmVkKCk6IE9ic2VydmFibGU8dm9pZD4ge1xuICAgICAgICByZXR1cm4gdGhpcy5fdWlDb250cm9sUmVuZGVyZWQuYXNPYnNlcnZhYmxlKCk7XG4gICAgfVxuICAgIGNvbnN0cnVjdG9yKCkge31cbiAgICBjb250cm9sUmVuZGVyZWQoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuX3VpQ29udHJvbFJlbmRlcmVkLm5leHQoKTtcbiAgICB9XG59XG4iXX0=
|
|
@@ -1,69 +0,0 @@
|
|
|
1
|
-
import { inject, Injectable, Optional, SkipSelf, ElementRef } from '@angular/core';
|
|
2
|
-
import { ActivatedRoute } from '@angular/router';
|
|
3
|
-
import * as i0 from "@angular/core";
|
|
4
|
-
export class ContainerService {
|
|
5
|
-
constructor(_parentService) {
|
|
6
|
-
this._parentService = _parentService;
|
|
7
|
-
this.detachParent = true;
|
|
8
|
-
this.oldActiveSystem = null;
|
|
9
|
-
this._activatedRoute = inject(ActivatedRoute);
|
|
10
|
-
this._scrollTop = 0;
|
|
11
|
-
this._el = inject(ElementRef);
|
|
12
|
-
// console.log(this);
|
|
13
|
-
}
|
|
14
|
-
ngOnDestroy() {
|
|
15
|
-
if (this._parentService && this.detachParent) {
|
|
16
|
-
this._parentService.insert();
|
|
17
|
-
}
|
|
18
|
-
}
|
|
19
|
-
setViewContainerRef(viewContainerRef) {
|
|
20
|
-
this._viewContainerRef = viewContainerRef;
|
|
21
|
-
if (this._parentService && this.detachParent) {
|
|
22
|
-
this._parentService.detach();
|
|
23
|
-
}
|
|
24
|
-
}
|
|
25
|
-
detach() {
|
|
26
|
-
this._setScrollPosition();
|
|
27
|
-
this._viewRef = this._viewContainerRef.detach();
|
|
28
|
-
}
|
|
29
|
-
_setScrollPosition() {
|
|
30
|
-
const elDom = this._el.nativeElement;
|
|
31
|
-
if (elDom) {
|
|
32
|
-
const x1 = elDom.querySelector('fd-dynamic-page-content');
|
|
33
|
-
const x2 = elDom.querySelector('.fd-scrollbar[fd-scrollbar]');
|
|
34
|
-
const scrollTopPage = x1?.scrollTop;
|
|
35
|
-
const scrollTopScrollbar = x2?.scrollTop;
|
|
36
|
-
if (scrollTopPage && scrollTopPage > 0) {
|
|
37
|
-
this._scrollTop = scrollTopPage;
|
|
38
|
-
this._elDomScrollbar = x1;
|
|
39
|
-
}
|
|
40
|
-
else if (scrollTopScrollbar && scrollTopScrollbar > 0) {
|
|
41
|
-
this._scrollTop = scrollTopScrollbar;
|
|
42
|
-
this._elDomScrollbar = x2;
|
|
43
|
-
}
|
|
44
|
-
}
|
|
45
|
-
}
|
|
46
|
-
_restoreScrollPostion() {
|
|
47
|
-
if (this._scrollTop && this._scrollTop > 0) {
|
|
48
|
-
if (this._elDomScrollbar) {
|
|
49
|
-
this._elDomScrollbar.scrollTop = this._scrollTop;
|
|
50
|
-
}
|
|
51
|
-
}
|
|
52
|
-
}
|
|
53
|
-
insert() {
|
|
54
|
-
if (this._viewRef) {
|
|
55
|
-
this._viewContainerRef.insert(this._viewRef);
|
|
56
|
-
this._restoreScrollPostion();
|
|
57
|
-
}
|
|
58
|
-
}
|
|
59
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ContainerService, deps: [{ token: ContainerService, optional: true, skipSelf: true }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
60
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ContainerService }); }
|
|
61
|
-
}
|
|
62
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ContainerService, decorators: [{
|
|
63
|
-
type: Injectable
|
|
64
|
-
}], ctorParameters: () => [{ type: ContainerService, decorators: [{
|
|
65
|
-
type: SkipSelf
|
|
66
|
-
}, {
|
|
67
|
-
type: Optional
|
|
68
|
-
}] }] });
|
|
69
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udGFpbmVyLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9iYXJzYS1ub3Zpbi1yYXktY29yZS9zcmMvbGliL3NlcnZpY2VzL2NvbnRhaW5lci5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDSCxNQUFNLEVBQ04sVUFBVSxFQUVWLFFBQVEsRUFDUixRQUFRLEVBR1IsVUFBVSxFQUNiLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQzs7QUFFakQsTUFBTSxPQUFPLGdCQUFnQjtJQVN6QixZQUE0QyxjQUFnQztRQUFoQyxtQkFBYyxHQUFkLGNBQWMsQ0FBa0I7UUFOckUsaUJBQVksR0FBRyxJQUFJLENBQUM7UUFDM0Isb0JBQWUsR0FBZSxJQUFJLENBQUM7UUFDbkMsb0JBQWUsR0FBRyxNQUFNLENBQUMsY0FBYyxDQUFDLENBQUM7UUFDekMsZUFBVSxHQUF1QixDQUFDLENBQUM7UUFFbkMsUUFBRyxHQUFHLE1BQU0sQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUVyQixxQkFBcUI7SUFDekIsQ0FBQztJQUNELFdBQVc7UUFDUCxJQUFJLElBQUksQ0FBQyxjQUFjLElBQUksSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDO1lBQzNDLElBQUksQ0FBQyxjQUFjLENBQUMsTUFBTSxFQUFFLENBQUM7UUFDakMsQ0FBQztJQUNMLENBQUM7SUFDRCxtQkFBbUIsQ0FBQyxnQkFBa0M7UUFDbEQsSUFBSSxDQUFDLGlCQUFpQixHQUFHLGdCQUFnQixDQUFDO1FBQzFDLElBQUksSUFBSSxDQUFDLGNBQWMsSUFBSSxJQUFJLENBQUMsWUFBWSxFQUFFLENBQUM7WUFDM0MsSUFBSSxDQUFDLGNBQWMsQ0FBQyxNQUFNLEVBQUUsQ0FBQztRQUNqQyxDQUFDO0lBQ0wsQ0FBQztJQUNPLE1BQU07UUFDVixJQUFJLENBQUMsa0JBQWtCLEVBQUUsQ0FBQztRQUMxQixJQUFJLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxNQUFNLEVBQUUsQ0FBQztJQUNwRCxDQUFDO0lBQ0Qsa0JBQWtCO1FBQ2QsTUFBTSxLQUFLLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxhQUFhLENBQUM7UUFDckMsSUFBSSxLQUFLLEVBQUUsQ0FBQztZQUNSLE1BQU0sRUFBRSxHQUFHLEtBQUssQ0FBQyxhQUFhLENBQUMseUJBQXlCLENBQUMsQ0FBQztZQUMxRCxNQUFNLEVBQUUsR0FBRyxLQUFLLENBQUMsYUFBYSxDQUFDLDZCQUE2QixDQUFDLENBQUM7WUFDOUQsTUFBTSxhQUFhLEdBQUcsRUFBRSxFQUFFLFNBQVMsQ0FBQztZQUNwQyxNQUFNLGtCQUFrQixHQUFHLEVBQUUsRUFBRSxTQUFTLENBQUM7WUFDekMsSUFBSSxhQUFhLElBQUksYUFBYSxHQUFHLENBQUMsRUFBRSxDQUFDO2dCQUNyQyxJQUFJLENBQUMsVUFBVSxHQUFHLGFBQWEsQ0FBQztnQkFDaEMsSUFBSSxDQUFDLGVBQWUsR0FBRyxFQUFFLENBQUM7WUFDOUIsQ0FBQztpQkFBTSxJQUFJLGtCQUFrQixJQUFJLGtCQUFrQixHQUFHLENBQUMsRUFBRSxDQUFDO2dCQUN0RCxJQUFJLENBQUMsVUFBVSxHQUFHLGtCQUFrQixDQUFDO2dCQUNyQyxJQUFJLENBQUMsZUFBZSxHQUFHLEVBQUUsQ0FBQztZQUM5QixDQUFDO1FBQ0wsQ0FBQztJQUNMLENBQUM7SUFDRCxxQkFBcUI7UUFDakIsSUFBSSxJQUFJLENBQUMsVUFBVSxJQUFJLElBQUksQ0FBQyxVQUFVLEdBQUcsQ0FBQyxFQUFFLENBQUM7WUFDekMsSUFBSSxJQUFJLENBQUMsZUFBZSxFQUFFLENBQUM7Z0JBQ3ZCLElBQUksQ0FBQyxlQUFlLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUM7WUFDckQsQ0FBQztRQUNMLENBQUM7SUFDTCxDQUFDO0lBQ08sTUFBTTtRQUNWLElBQUksSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDO1lBQ2hCLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1lBQzdDLElBQUksQ0FBQyxxQkFBcUIsRUFBRSxDQUFDO1FBQ2pDLENBQUM7SUFDTCxDQUFDOytHQXZEUSxnQkFBZ0I7bUhBQWhCLGdCQUFnQjs7NEZBQWhCLGdCQUFnQjtrQkFENUIsVUFBVTs7MEJBVU0sUUFBUTs7MEJBQUksUUFBUSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XHJcbiAgICBpbmplY3QsXHJcbiAgICBJbmplY3RhYmxlLFxyXG4gICAgT25EZXN0cm95LFxyXG4gICAgT3B0aW9uYWwsXHJcbiAgICBTa2lwU2VsZixcclxuICAgIFZpZXdDb250YWluZXJSZWYsXHJcbiAgICBWaWV3UmVmLFxyXG4gICAgRWxlbWVudFJlZlxyXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBBY3RpdmF0ZWRSb3V0ZSB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XHJcbkBJbmplY3RhYmxlKClcclxuZXhwb3J0IGNsYXNzIENvbnRhaW5lclNlcnZpY2UgaW1wbGVtZW50cyBPbkRlc3Ryb3kge1xyXG4gICAgcHJpdmF0ZSBfdmlld0NvbnRhaW5lclJlZjogVmlld0NvbnRhaW5lclJlZjtcclxuICAgIHByaXZhdGUgX3ZpZXdSZWY6IFZpZXdSZWYgfCBudWxsO1xyXG4gICAgcHVibGljIGRldGFjaFBhcmVudCA9IHRydWU7XHJcbiAgICBvbGRBY3RpdmVTeXN0ZW06IGFueSB8IG51bGwgPSBudWxsO1xyXG4gICAgX2FjdGl2YXRlZFJvdXRlID0gaW5qZWN0KEFjdGl2YXRlZFJvdXRlKTtcclxuICAgIF9zY3JvbGxUb3A6IG51bWJlciB8IHVuZGVmaW5lZCA9IDA7XHJcbiAgICBfZWxEb21TY3JvbGxiYXI6IGFueTtcclxuICAgIF9lbCA9IGluamVjdChFbGVtZW50UmVmKTtcclxuICAgIGNvbnN0cnVjdG9yKEBTa2lwU2VsZigpIEBPcHRpb25hbCgpIHByaXZhdGUgX3BhcmVudFNlcnZpY2U6IENvbnRhaW5lclNlcnZpY2UpIHtcclxuICAgICAgICAvLyBjb25zb2xlLmxvZyh0aGlzKTtcclxuICAgIH1cclxuICAgIG5nT25EZXN0cm95KCk6IHZvaWQge1xyXG4gICAgICAgIGlmICh0aGlzLl9wYXJlbnRTZXJ2aWNlICYmIHRoaXMuZGV0YWNoUGFyZW50KSB7XHJcbiAgICAgICAgICAgIHRoaXMuX3BhcmVudFNlcnZpY2UuaW5zZXJ0KCk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG4gICAgc2V0Vmlld0NvbnRhaW5lclJlZih2aWV3Q29udGFpbmVyUmVmOiBWaWV3Q29udGFpbmVyUmVmKTogdm9pZCB7XHJcbiAgICAgICAgdGhpcy5fdmlld0NvbnRhaW5lclJlZiA9IHZpZXdDb250YWluZXJSZWY7XHJcbiAgICAgICAgaWYgKHRoaXMuX3BhcmVudFNlcnZpY2UgJiYgdGhpcy5kZXRhY2hQYXJlbnQpIHtcclxuICAgICAgICAgICAgdGhpcy5fcGFyZW50U2VydmljZS5kZXRhY2goKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcbiAgICBwcml2YXRlIGRldGFjaCgpOiB2b2lkIHtcclxuICAgICAgICB0aGlzLl9zZXRTY3JvbGxQb3NpdGlvbigpO1xyXG4gICAgICAgIHRoaXMuX3ZpZXdSZWYgPSB0aGlzLl92aWV3Q29udGFpbmVyUmVmLmRldGFjaCgpO1xyXG4gICAgfVxyXG4gICAgX3NldFNjcm9sbFBvc2l0aW9uKCk6IHZvaWQge1xyXG4gICAgICAgIGNvbnN0IGVsRG9tID0gdGhpcy5fZWwubmF0aXZlRWxlbWVudDtcclxuICAgICAgICBpZiAoZWxEb20pIHtcclxuICAgICAgICAgICAgY29uc3QgeDEgPSBlbERvbS5xdWVyeVNlbGVjdG9yKCdmZC1keW5hbWljLXBhZ2UtY29udGVudCcpO1xyXG4gICAgICAgICAgICBjb25zdCB4MiA9IGVsRG9tLnF1ZXJ5U2VsZWN0b3IoJy5mZC1zY3JvbGxiYXJbZmQtc2Nyb2xsYmFyXScpO1xyXG4gICAgICAgICAgICBjb25zdCBzY3JvbGxUb3BQYWdlID0geDE/LnNjcm9sbFRvcDtcclxuICAgICAgICAgICAgY29uc3Qgc2Nyb2xsVG9wU2Nyb2xsYmFyID0geDI/LnNjcm9sbFRvcDtcclxuICAgICAgICAgICAgaWYgKHNjcm9sbFRvcFBhZ2UgJiYgc2Nyb2xsVG9wUGFnZSA+IDApIHtcclxuICAgICAgICAgICAgICAgIHRoaXMuX3Njcm9sbFRvcCA9IHNjcm9sbFRvcFBhZ2U7XHJcbiAgICAgICAgICAgICAgICB0aGlzLl9lbERvbVNjcm9sbGJhciA9IHgxO1xyXG4gICAgICAgICAgICB9IGVsc2UgaWYgKHNjcm9sbFRvcFNjcm9sbGJhciAmJiBzY3JvbGxUb3BTY3JvbGxiYXIgPiAwKSB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLl9zY3JvbGxUb3AgPSBzY3JvbGxUb3BTY3JvbGxiYXI7XHJcbiAgICAgICAgICAgICAgICB0aGlzLl9lbERvbVNjcm9sbGJhciA9IHgyO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG4gICAgX3Jlc3RvcmVTY3JvbGxQb3N0aW9uKCk6IHZvaWQge1xyXG4gICAgICAgIGlmICh0aGlzLl9zY3JvbGxUb3AgJiYgdGhpcy5fc2Nyb2xsVG9wID4gMCkge1xyXG4gICAgICAgICAgICBpZiAodGhpcy5fZWxEb21TY3JvbGxiYXIpIHtcclxuICAgICAgICAgICAgICAgIHRoaXMuX2VsRG9tU2Nyb2xsYmFyLnNjcm9sbFRvcCA9IHRoaXMuX3Njcm9sbFRvcDtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgIH1cclxuICAgIHByaXZhdGUgaW5zZXJ0KCk6IHZvaWQge1xyXG4gICAgICAgIGlmICh0aGlzLl92aWV3UmVmKSB7XHJcbiAgICAgICAgICAgIHRoaXMuX3ZpZXdDb250YWluZXJSZWYuaW5zZXJ0KHRoaXMuX3ZpZXdSZWYpO1xyXG4gICAgICAgICAgICB0aGlzLl9yZXN0b3JlU2Nyb2xsUG9zdGlvbigpO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxufVxyXG4iXX0=
|
|
@@ -1,55 +0,0 @@
|
|
|
1
|
-
import { Injectable } from '@angular/core';
|
|
2
|
-
import { of } from 'rxjs';
|
|
3
|
-
import { NotFoundComponent } from '../not-found/not-found.component';
|
|
4
|
-
import * as i0 from "@angular/core";
|
|
5
|
-
export class DynamicComponentService {
|
|
6
|
-
constructor(cfr) {
|
|
7
|
-
this.cfr = cfr;
|
|
8
|
-
this._dynamicModuleWithComponents = {};
|
|
9
|
-
}
|
|
10
|
-
addModuleWithComponents(moduleName, ngModuleRef) {
|
|
11
|
-
if (!this._dynamicModuleWithComponents[moduleName]) {
|
|
12
|
-
this._dynamicModuleWithComponents[moduleName] = {
|
|
13
|
-
ngModuleRef
|
|
14
|
-
};
|
|
15
|
-
}
|
|
16
|
-
}
|
|
17
|
-
getComponentBySelector(selector, moduleName, injector) {
|
|
18
|
-
const moName = moduleName + 'Module';
|
|
19
|
-
const module = this._dynamicModuleWithComponents[moName];
|
|
20
|
-
if (module && module.ngModuleRef.getComponentFactory) {
|
|
21
|
-
const componentFactory = module.ngModuleRef.getComponentFactory(selector);
|
|
22
|
-
if (componentFactory) {
|
|
23
|
-
return of(componentFactory.create(injector));
|
|
24
|
-
}
|
|
25
|
-
}
|
|
26
|
-
const componentRef = this.cfr.resolveComponentFactory(NotFoundComponent).create(injector);
|
|
27
|
-
componentRef.instance.componentName = selector;
|
|
28
|
-
componentRef.instance.moduleName = moduleName;
|
|
29
|
-
return of(componentRef);
|
|
30
|
-
}
|
|
31
|
-
getComponentByName(componentName, moduleName, injector) {
|
|
32
|
-
const cmpName = componentName + 'Component';
|
|
33
|
-
const moName = moduleName + 'Module';
|
|
34
|
-
const module = this._dynamicModuleWithComponents[moName];
|
|
35
|
-
if (module && module.ngModuleRef.getComponentFactory) {
|
|
36
|
-
const componentFactory = module.ngModuleRef.getComponentFactory(cmpName);
|
|
37
|
-
if (componentFactory) {
|
|
38
|
-
return of(componentFactory.create(injector));
|
|
39
|
-
}
|
|
40
|
-
}
|
|
41
|
-
const componentRef = this.cfr.resolveComponentFactory(NotFoundComponent).create(injector);
|
|
42
|
-
componentRef.instance.componentName = componentName;
|
|
43
|
-
componentRef.instance.moduleName = moduleName;
|
|
44
|
-
return of(componentRef);
|
|
45
|
-
}
|
|
46
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: DynamicComponentService, deps: [{ token: i0.ComponentFactoryResolver }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
47
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: DynamicComponentService, providedIn: 'root' }); }
|
|
48
|
-
}
|
|
49
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: DynamicComponentService, decorators: [{
|
|
50
|
-
type: Injectable,
|
|
51
|
-
args: [{
|
|
52
|
-
providedIn: 'root'
|
|
53
|
-
}]
|
|
54
|
-
}], ctorParameters: () => [{ type: i0.ComponentFactoryResolver }] });
|
|
55
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHluYW1pYy1jb21wb25lbnQuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2JhcnNhLW5vdmluLXJheS1jb3JlL3NyYy9saWIvc2VydmljZXMvZHluYW1pYy1jb21wb25lbnQuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFvRCxNQUFNLGVBQWUsQ0FBQztBQUM3RixPQUFPLEVBQWMsRUFBRSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ3RDLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGtDQUFrQyxDQUFDOztBQUtyRSxNQUFNLE9BQU8sdUJBQXVCO0lBTWhDLFlBQW9CLEdBQTZCO1FBQTdCLFFBQUcsR0FBSCxHQUFHLENBQTBCO1FBTHpDLGlDQUE0QixHQUloQyxFQUFFLENBQUM7SUFDNkMsQ0FBQztJQUNyRCx1QkFBdUIsQ0FBQyxVQUFrQixFQUFFLFdBQWdCO1FBQ3hELElBQUksQ0FBQyxJQUFJLENBQUMsNEJBQTRCLENBQUMsVUFBVSxDQUFDLEVBQUUsQ0FBQztZQUNqRCxJQUFJLENBQUMsNEJBQTRCLENBQUMsVUFBVSxDQUFDLEdBQUc7Z0JBQzVDLFdBQVc7YUFDZCxDQUFDO1FBQ04sQ0FBQztJQUNMLENBQUM7SUFDRCxzQkFBc0IsQ0FDbEIsUUFBZ0IsRUFDaEIsVUFBa0IsRUFDbEIsUUFBa0I7UUFFbEIsTUFBTSxNQUFNLEdBQUcsVUFBVSxHQUFHLFFBQVEsQ0FBQztRQUNyQyxNQUFNLE1BQU0sR0FBRyxJQUFJLENBQUMsNEJBQTRCLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDekQsSUFBSSxNQUFNLElBQUksTUFBTSxDQUFDLFdBQVcsQ0FBQyxtQkFBbUIsRUFBRSxDQUFDO1lBQ25ELE1BQU0sZ0JBQWdCLEdBQUcsTUFBTSxDQUFDLFdBQVcsQ0FBQyxtQkFBbUIsQ0FBQyxRQUFRLENBQUMsQ0FBQztZQUMxRSxJQUFJLGdCQUFnQixFQUFFLENBQUM7Z0JBQ25CLE9BQU8sRUFBRSxDQUFDLGdCQUFnQixDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDO1lBQ2pELENBQUM7UUFDTCxDQUFDO1FBQ0QsTUFBTSxZQUFZLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyx1QkFBdUIsQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUMxRixZQUFZLENBQUMsUUFBUSxDQUFDLGFBQWEsR0FBRyxRQUFRLENBQUM7UUFDL0MsWUFBWSxDQUFDLFFBQVEsQ0FBQyxVQUFVLEdBQUcsVUFBVSxDQUFDO1FBQzlDLE9BQU8sRUFBRSxDQUFDLFlBQVksQ0FBQyxDQUFDO0lBQzVCLENBQUM7SUFDRCxrQkFBa0IsQ0FDZCxhQUFxQixFQUNyQixVQUFrQixFQUNsQixRQUFrQjtRQUVsQixNQUFNLE9BQU8sR0FBRyxhQUFhLEdBQUcsV0FBVyxDQUFDO1FBQzVDLE1BQU0sTUFBTSxHQUFHLFVBQVUsR0FBRyxRQUFRLENBQUM7UUFDckMsTUFBTSxNQUFNLEdBQUcsSUFBSSxDQUFDLDRCQUE0QixDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQ3pELElBQUksTUFBTSxJQUFJLE1BQU0sQ0FBQyxXQUFXLENBQUMsbUJBQW1CLEVBQUUsQ0FBQztZQUNuRCxNQUFNLGdCQUFnQixHQUFHLE1BQU0sQ0FBQyxXQUFXLENBQUMsbUJBQW1CLENBQUMsT0FBTyxDQUFDLENBQUM7WUFDekUsSUFBSSxnQkFBZ0IsRUFBRSxDQUFDO2dCQUNuQixPQUFPLEVBQUUsQ0FBQyxnQkFBZ0IsQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQztZQUNqRCxDQUFDO1FBQ0wsQ0FBQztRQUNELE1BQU0sWUFBWSxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsdUJBQXVCLENBQUMsaUJBQWlCLENBQUMsQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLENBQUM7UUFDMUYsWUFBWSxDQUFDLFFBQVEsQ0FBQyxhQUFhLEdBQUcsYUFBYSxDQUFDO1FBQ3BELFlBQVksQ0FBQyxRQUFRLENBQUMsVUFBVSxHQUFHLFVBQVUsQ0FBQztRQUM5QyxPQUFPLEVBQUUsQ0FBQyxZQUFZLENBQUMsQ0FBQztJQUM1QixDQUFDOytHQWxEUSx1QkFBdUI7bUhBQXZCLHVCQUF1QixjQUZwQixNQUFNOzs0RkFFVCx1QkFBdUI7a0JBSG5DLFVBQVU7bUJBQUM7b0JBQ1IsVUFBVSxFQUFFLE1BQU07aUJBQ3JCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSwgSW5qZWN0b3IsIENvbXBvbmVudFJlZiwgQ29tcG9uZW50RmFjdG9yeVJlc29sdmVyIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IE9ic2VydmFibGUsIG9mIH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IE5vdEZvdW5kQ29tcG9uZW50IH0gZnJvbSAnLi4vbm90LWZvdW5kL25vdC1mb3VuZC5jb21wb25lbnQnO1xyXG5cclxuQEluamVjdGFibGUoe1xyXG4gICAgcHJvdmlkZWRJbjogJ3Jvb3QnXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBEeW5hbWljQ29tcG9uZW50U2VydmljZSB7XHJcbiAgICBwcml2YXRlIF9keW5hbWljTW9kdWxlV2l0aENvbXBvbmVudHM6IHtcclxuICAgICAgICBba2V5OiBzdHJpbmddOiB7XHJcbiAgICAgICAgICAgIG5nTW9kdWxlUmVmOiBhbnk7XHJcbiAgICAgICAgfTtcclxuICAgIH0gPSB7fTtcclxuICAgIGNvbnN0cnVjdG9yKHByaXZhdGUgY2ZyOiBDb21wb25lbnRGYWN0b3J5UmVzb2x2ZXIpIHt9XHJcbiAgICBhZGRNb2R1bGVXaXRoQ29tcG9uZW50cyhtb2R1bGVOYW1lOiBzdHJpbmcsIG5nTW9kdWxlUmVmOiBhbnkpOiB2b2lkIHtcclxuICAgICAgICBpZiAoIXRoaXMuX2R5bmFtaWNNb2R1bGVXaXRoQ29tcG9uZW50c1ttb2R1bGVOYW1lXSkge1xyXG4gICAgICAgICAgICB0aGlzLl9keW5hbWljTW9kdWxlV2l0aENvbXBvbmVudHNbbW9kdWxlTmFtZV0gPSB7XHJcbiAgICAgICAgICAgICAgICBuZ01vZHVsZVJlZlxyXG4gICAgICAgICAgICB9O1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuICAgIGdldENvbXBvbmVudEJ5U2VsZWN0b3IoXHJcbiAgICAgICAgc2VsZWN0b3I6IHN0cmluZyxcclxuICAgICAgICBtb2R1bGVOYW1lOiBzdHJpbmcsXHJcbiAgICAgICAgaW5qZWN0b3I6IEluamVjdG9yXHJcbiAgICApOiBPYnNlcnZhYmxlPENvbXBvbmVudFJlZjx1bmtub3duPj4ge1xyXG4gICAgICAgIGNvbnN0IG1vTmFtZSA9IG1vZHVsZU5hbWUgKyAnTW9kdWxlJztcclxuICAgICAgICBjb25zdCBtb2R1bGUgPSB0aGlzLl9keW5hbWljTW9kdWxlV2l0aENvbXBvbmVudHNbbW9OYW1lXTtcclxuICAgICAgICBpZiAobW9kdWxlICYmIG1vZHVsZS5uZ01vZHVsZVJlZi5nZXRDb21wb25lbnRGYWN0b3J5KSB7XHJcbiAgICAgICAgICAgIGNvbnN0IGNvbXBvbmVudEZhY3RvcnkgPSBtb2R1bGUubmdNb2R1bGVSZWYuZ2V0Q29tcG9uZW50RmFjdG9yeShzZWxlY3Rvcik7XHJcbiAgICAgICAgICAgIGlmIChjb21wb25lbnRGYWN0b3J5KSB7XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gb2YoY29tcG9uZW50RmFjdG9yeS5jcmVhdGUoaW5qZWN0b3IpKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgICBjb25zdCBjb21wb25lbnRSZWYgPSB0aGlzLmNmci5yZXNvbHZlQ29tcG9uZW50RmFjdG9yeShOb3RGb3VuZENvbXBvbmVudCkuY3JlYXRlKGluamVjdG9yKTtcclxuICAgICAgICBjb21wb25lbnRSZWYuaW5zdGFuY2UuY29tcG9uZW50TmFtZSA9IHNlbGVjdG9yO1xyXG4gICAgICAgIGNvbXBvbmVudFJlZi5pbnN0YW5jZS5tb2R1bGVOYW1lID0gbW9kdWxlTmFtZTtcclxuICAgICAgICByZXR1cm4gb2YoY29tcG9uZW50UmVmKTtcclxuICAgIH1cclxuICAgIGdldENvbXBvbmVudEJ5TmFtZShcclxuICAgICAgICBjb21wb25lbnROYW1lOiBzdHJpbmcsXHJcbiAgICAgICAgbW9kdWxlTmFtZTogc3RyaW5nLFxyXG4gICAgICAgIGluamVjdG9yOiBJbmplY3RvclxyXG4gICAgKTogT2JzZXJ2YWJsZTxDb21wb25lbnRSZWY8dW5rbm93bj4+IHtcclxuICAgICAgICBjb25zdCBjbXBOYW1lID0gY29tcG9uZW50TmFtZSArICdDb21wb25lbnQnO1xyXG4gICAgICAgIGNvbnN0IG1vTmFtZSA9IG1vZHVsZU5hbWUgKyAnTW9kdWxlJztcclxuICAgICAgICBjb25zdCBtb2R1bGUgPSB0aGlzLl9keW5hbWljTW9kdWxlV2l0aENvbXBvbmVudHNbbW9OYW1lXTtcclxuICAgICAgICBpZiAobW9kdWxlICYmIG1vZHVsZS5uZ01vZHVsZVJlZi5nZXRDb21wb25lbnRGYWN0b3J5KSB7XHJcbiAgICAgICAgICAgIGNvbnN0IGNvbXBvbmVudEZhY3RvcnkgPSBtb2R1bGUubmdNb2R1bGVSZWYuZ2V0Q29tcG9uZW50RmFjdG9yeShjbXBOYW1lKTtcclxuICAgICAgICAgICAgaWYgKGNvbXBvbmVudEZhY3RvcnkpIHtcclxuICAgICAgICAgICAgICAgIHJldHVybiBvZihjb21wb25lbnRGYWN0b3J5LmNyZWF0ZShpbmplY3RvcikpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGNvbnN0IGNvbXBvbmVudFJlZiA9IHRoaXMuY2ZyLnJlc29sdmVDb21wb25lbnRGYWN0b3J5KE5vdEZvdW5kQ29tcG9uZW50KS5jcmVhdGUoaW5qZWN0b3IpO1xyXG4gICAgICAgIGNvbXBvbmVudFJlZi5pbnN0YW5jZS5jb21wb25lbnROYW1lID0gY29tcG9uZW50TmFtZTtcclxuICAgICAgICBjb21wb25lbnRSZWYuaW5zdGFuY2UubW9kdWxlTmFtZSA9IG1vZHVsZU5hbWU7XHJcbiAgICAgICAgcmV0dXJuIG9mKGNvbXBvbmVudFJlZik7XHJcbiAgICB9XHJcbn1cclxuIl19
|