@unipin/angular-applet 18.6.6 → 18.6.8
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/unipin-angular-applet.mjs +200 -217
- package/fesm2022/unipin-angular-applet.mjs.map +1 -1
- package/lib/components/approval/detail/approval-detail.component.d.ts +2 -1
- package/lib/components/grids/grid-pagination/grid-pagination.component.d.ts +3 -2
- package/lib/components/grids/grid-snapshot/grid-snapshot.component.d.ts +3 -2
- package/lib/components/index.d.ts +1 -1
- package/lib/components/tabs/index.d.ts +7 -3
- package/lib/components/tabs/tab-content/tab-content.component.d.ts +1 -1
- package/lib/components/tabs/tab-group/tab-group.component.d.ts +7 -5
- package/package.json +1 -3
- package/public-api.d.ts +1 -1
- package/esm2022/graphql/generated.mjs +0 -570
- package/esm2022/lib/components/approval/detail/approval-detail.component.mjs +0 -79
- package/esm2022/lib/components/approval/form/approval-form.component.mjs +0 -128
- package/esm2022/lib/components/approval/index.mjs +0 -3
- package/esm2022/lib/components/approval/list/approval-list.component.mjs +0 -113
- package/esm2022/lib/components/approval/services/approval.service.mjs +0 -46
- package/esm2022/lib/components/audit/detail/audit-detail.component.mjs +0 -124
- package/esm2022/lib/components/audit/index.mjs +0 -3
- package/esm2022/lib/components/audit/list/audit-list.component.mjs +0 -81
- package/esm2022/lib/components/audit/service/audit.service.mjs +0 -49
- package/esm2022/lib/components/audit/types/audit-detail-form.type.mjs +0 -2
- package/esm2022/lib/components/buttons/group/btn-group.component.mjs +0 -45
- package/esm2022/lib/components/buttons/group/interfaces/btn-group-config.interface.mjs +0 -2
- package/esm2022/lib/components/buttons/index.mjs +0 -3
- package/esm2022/lib/components/buttons/loading/btn-loading.component.mjs +0 -48
- package/esm2022/lib/components/containers/applet-container/applet-container.component.mjs +0 -54
- package/esm2022/lib/components/containers/colum-header-container/column-header-container.component.mjs +0 -23
- package/esm2022/lib/components/containers/column-container/column-container.component.mjs +0 -79
- package/esm2022/lib/components/containers/column-container/directives/lazy-route.directive.mjs +0 -23
- package/esm2022/lib/components/containers/index.mjs +0 -6
- package/esm2022/lib/components/containers/list-container/index.mjs +0 -3
- package/esm2022/lib/components/containers/list-container/interfaces/list-container-config.interface.mjs +0 -2
- package/esm2022/lib/components/containers/list-container/list-pagination-container/list-pagination-container.component.mjs +0 -58
- package/esm2022/lib/components/containers/list-container/list-snapshot-container/list-snapshot-container.component.mjs +0 -57
- package/esm2022/lib/components/containers/modal-container/modal-container.component.mjs +0 -40
- package/esm2022/lib/components/filter/filter.component.mjs +0 -121
- package/esm2022/lib/components/filter/index.mjs +0 -2
- package/esm2022/lib/components/filter/interfaces/filter-config.interface.mjs +0 -2
- package/esm2022/lib/components/filter/interfaces/filter-field.interface.mjs +0 -2
- package/esm2022/lib/components/filter/interfaces/filter-search-event.interface.mjs +0 -2
- package/esm2022/lib/components/forms/country-input/form-country-input.component.mjs +0 -122
- package/esm2022/lib/components/forms/currency-input/form-currency-input.component.mjs +0 -157
- package/esm2022/lib/components/forms/date/form-date.component.mjs +0 -109
- package/esm2022/lib/components/forms/image-picker/directives/drag-n-drop.directive.mjs +0 -49
- package/esm2022/lib/components/forms/image-picker/form-image-picker.component.mjs +0 -68
- package/esm2022/lib/components/forms/index.mjs +0 -11
- package/esm2022/lib/components/forms/input/form-input.component.mjs +0 -94
- package/esm2022/lib/components/forms/number/form-number.component.mjs +0 -97
- package/esm2022/lib/components/forms/number/pipes/locale-number.pipe.mjs +0 -38
- package/esm2022/lib/components/forms/password/form-password.component.mjs +0 -100
- package/esm2022/lib/components/forms/searchable-select/form-searchable-select.component.mjs +0 -132
- package/esm2022/lib/components/forms/select/form-select.component.mjs +0 -116
- package/esm2022/lib/components/forms/textarea/form-textarea.component.mjs +0 -88
- package/esm2022/lib/components/grids/grid-pagination/grid-pagination.component.mjs +0 -106
- package/esm2022/lib/components/grids/grid-snapshot/grid-snapshot.component.mjs +0 -104
- package/esm2022/lib/components/grids/index.mjs +0 -4
- package/esm2022/lib/components/grids/interfaces/grid-config.interface.mjs +0 -2
- package/esm2022/lib/components/grids/services/grid.service.mjs +0 -25
- package/esm2022/lib/components/index.mjs +0 -9
- package/esm2022/lib/components/infinite-scroll/directive/infinite-scroll.directive.mjs +0 -43
- package/esm2022/lib/components/infinite-scroll/index.mjs +0 -3
- package/esm2022/lib/components/infinite-scroll/infinite-scroll.component.mjs +0 -36
- package/esm2022/lib/components/tabs/index.mjs +0 -4
- package/esm2022/lib/components/tabs/tab-content/tab-content.component.mjs +0 -39
- package/esm2022/lib/components/tabs/tab-group/tab-group.component.mjs +0 -47
- package/esm2022/lib/components/tabs/tabs.component.module.mjs +0 -29
- package/esm2022/lib/guards/auth/auth.guard.mjs +0 -10
- package/esm2022/lib/guards/index.mjs +0 -2
- package/esm2022/lib/interceptors/header/header.interceptor.mjs +0 -20
- package/esm2022/lib/interceptors/index.mjs +0 -3
- package/esm2022/lib/interceptors/refresh-token/refresh-token.interceptor.mjs +0 -42
- package/esm2022/lib/interfaces/index.mjs +0 -2
- package/esm2022/lib/interfaces/user/user.interface.mjs +0 -2
- package/esm2022/lib/modules/index.mjs +0 -3
- package/esm2022/lib/modules/micro-frontend/index.mjs +0 -2
- package/esm2022/lib/modules/micro-frontend/utils/mf-bootstrap.util.mjs +0 -55
- package/esm2022/lib/modules/micro-frontend/utils/mf-global-state.util.mjs +0 -14
- package/esm2022/lib/modules/permission/directive/permission.directive.mjs +0 -41
- package/esm2022/lib/modules/permission/guards/permission.guard.mjs +0 -26
- package/esm2022/lib/modules/permission/index.mjs +0 -7
- package/esm2022/lib/modules/permission/pages/401/unauthorized.page.mjs +0 -15
- package/esm2022/lib/modules/permission/pages/loading/loading.page.mjs +0 -52
- package/esm2022/lib/modules/permission/permission.module.mjs +0 -20
- package/esm2022/lib/modules/permission/services/permission.service.mjs +0 -47
- package/esm2022/lib/resolvers/auth/auth.resolver.mjs +0 -87
- package/esm2022/lib/resolvers/index.mjs +0 -2
- package/esm2022/lib/services/auth/auth.service.mjs +0 -145
- package/esm2022/lib/services/country/country.service.mjs +0 -43
- package/esm2022/lib/services/currency/currency.service.mjs +0 -40
- package/esm2022/lib/services/index.mjs +0 -5
- package/esm2022/lib/services/profile/profile.service.mjs +0 -71
- package/esm2022/lib/utils/contrast-color-generator/contrast-color-generator.util.mjs +0 -16
- package/esm2022/lib/utils/form-error-message/form-error-message.util.mjs +0 -21
- package/esm2022/lib/utils/format-capitalize/format-capitalize.util.mjs +0 -18
- package/esm2022/lib/utils/index.mjs +0 -4
- package/esm2022/public-api.mjs +0 -10
- package/esm2022/unipin-angular-applet.mjs +0 -2
- package/lib/components/tabs/tabs.component.module.d.ts +0 -9
|
@@ -1,47 +0,0 @@
|
|
|
1
|
-
import { ChangeDetectionStrategy, Component, ContentChildren, EventEmitter, Output } from '@angular/core';
|
|
2
|
-
import { TabContentComponent } from '../tab-content/tab-content.component';
|
|
3
|
-
import * as i0 from "@angular/core";
|
|
4
|
-
import * as i1 from "@angular/router";
|
|
5
|
-
import * as i2 from "@ionic/angular";
|
|
6
|
-
export class TabGroupComponent {
|
|
7
|
-
constructor(router, activeRoute) {
|
|
8
|
-
this.router = router;
|
|
9
|
-
this.activeRoute = activeRoute;
|
|
10
|
-
this.onChange = new EventEmitter();
|
|
11
|
-
}
|
|
12
|
-
ngAfterContentInit() {
|
|
13
|
-
this.changeTab(this.activeRoute.snapshot.fragment);
|
|
14
|
-
}
|
|
15
|
-
changeTab(f) {
|
|
16
|
-
this.onChange.emit(f);
|
|
17
|
-
this.router.navigate([], { relativeTo: this.activeRoute, fragment: f || undefined, replaceUrl: true });
|
|
18
|
-
let found = false;
|
|
19
|
-
this.content.forEach((tab) => {
|
|
20
|
-
if (tab.fragment !== f)
|
|
21
|
-
tab.toggleVisibility(false);
|
|
22
|
-
else {
|
|
23
|
-
found = true;
|
|
24
|
-
this.activeFragment = f;
|
|
25
|
-
tab.toggleVisibility(true);
|
|
26
|
-
}
|
|
27
|
-
});
|
|
28
|
-
if (!found) {
|
|
29
|
-
this.content.get(0).toggleVisibility(true);
|
|
30
|
-
this.activeFragment = this.content.get(0).fragment;
|
|
31
|
-
}
|
|
32
|
-
}
|
|
33
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.4", ngImport: i0, type: TabGroupComponent, deps: [{ token: i1.Router }, { token: i1.ActivatedRoute }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
34
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.4", type: TabGroupComponent, selector: "up-tab-group", outputs: { onChange: "onChange" }, host: { classAttribute: "d-flex flex-column" }, queries: [{ propertyName: "content", predicate: TabContentComponent }], ngImport: i0, template: "<ion-segment [scrollable]=\"true\" [value]=\"activeFragment\" class=\"d-flex pb-4 flex-shrink-0\">\n @for (c of content; track c.fragment) {\n <ion-segment-button class=\"rounded\" [value]=\"c.fragment\" (click)=\"changeTab(c.fragment)\">\n @if (c.customHeader) {\n <div \n class=\"{{ c.customHeader.nativeElement.className }}\"\n [innerHTML]=\"c.customHeader.nativeElement.innerHTML\"\n >\n </div>\n }\n @else {\n {{ c.header }}\n }\n </ion-segment-button>\n }\n</ion-segment>\n\n<ng-content />\n", styles: ["ion-segment::-webkit-scrollbar{height:0}ion-segment-button{--color: #9E9E9E;--color-checked: #424242;--indicator-color: #ED6B26;border:none;height:34px;font-weight:400;min-width:100px;min-height:34px;width:fit-content;text-transform:none;letter-spacing:normal}ion-segment-button.segment-button-checked{font-weight:500}ion-segment-button::part(native){border-radius:4px}ion-segment-button::part(indicator-background){margin:auto;max-width:25%;border-radius:8px}\n"], dependencies: [{ kind: "component", type: i2.IonSegment, selector: "ion-segment", inputs: ["color", "disabled", "mode", "scrollable", "selectOnFocus", "swipeGesture", "value"] }, { kind: "component", type: i2.IonSegmentButton, selector: "ion-segment-button", inputs: ["disabled", "layout", "mode", "type", "value"] }, { kind: "directive", type: i2.SelectValueAccessor, selector: "ion-select, ion-radio-group, ion-segment, ion-datetime" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
35
|
-
}
|
|
36
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.4", ngImport: i0, type: TabGroupComponent, decorators: [{
|
|
37
|
-
type: Component,
|
|
38
|
-
args: [{ selector: 'up-tab-group', changeDetection: ChangeDetectionStrategy.OnPush, host: {
|
|
39
|
-
class: 'd-flex flex-column'
|
|
40
|
-
}, template: "<ion-segment [scrollable]=\"true\" [value]=\"activeFragment\" class=\"d-flex pb-4 flex-shrink-0\">\n @for (c of content; track c.fragment) {\n <ion-segment-button class=\"rounded\" [value]=\"c.fragment\" (click)=\"changeTab(c.fragment)\">\n @if (c.customHeader) {\n <div \n class=\"{{ c.customHeader.nativeElement.className }}\"\n [innerHTML]=\"c.customHeader.nativeElement.innerHTML\"\n >\n </div>\n }\n @else {\n {{ c.header }}\n }\n </ion-segment-button>\n }\n</ion-segment>\n\n<ng-content />\n", styles: ["ion-segment::-webkit-scrollbar{height:0}ion-segment-button{--color: #9E9E9E;--color-checked: #424242;--indicator-color: #ED6B26;border:none;height:34px;font-weight:400;min-width:100px;min-height:34px;width:fit-content;text-transform:none;letter-spacing:normal}ion-segment-button.segment-button-checked{font-weight:500}ion-segment-button::part(native){border-radius:4px}ion-segment-button::part(indicator-background){margin:auto;max-width:25%;border-radius:8px}\n"] }]
|
|
41
|
-
}], ctorParameters: () => [{ type: i1.Router }, { type: i1.ActivatedRoute }], propDecorators: { onChange: [{
|
|
42
|
-
type: Output
|
|
43
|
-
}], content: [{
|
|
44
|
-
type: ContentChildren,
|
|
45
|
-
args: [TabContentComponent]
|
|
46
|
-
}] } });
|
|
47
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFiLWdyb3VwLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3VuaXBpbi1hbmd1bGFyL3NyYy9saWIvY29tcG9uZW50cy90YWJzL3RhYi1ncm91cC90YWItZ3JvdXAuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdW5pcGluLWFuZ3VsYXIvc3JjL2xpYi9jb21wb25lbnRzL3RhYnMvdGFiLWdyb3VwL3RhYi1ncm91cC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQW9CLHVCQUF1QixFQUFFLFNBQVMsRUFBRSxlQUFlLEVBQUUsWUFBWSxFQUFFLE1BQU0sRUFBYSxNQUFNLGVBQWUsQ0FBQztBQUV2SSxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxzQ0FBc0MsQ0FBQzs7OztBQVczRSxNQUFNLE9BQU8saUJBQWlCO0lBc0I1QixZQUNxQixNQUFjLEVBQ2QsV0FBMkI7UUFEM0IsV0FBTSxHQUFOLE1BQU0sQ0FBUTtRQUNkLGdCQUFXLEdBQVgsV0FBVyxDQUFnQjtRQWhCdEIsYUFBUSxHQUFnQyxJQUFJLFlBQVksRUFBRSxDQUFDO0lBaUJqRixDQUFDO0lBRUUsa0JBQWtCO1FBQ3ZCLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLENBQUM7SUFDckQsQ0FBQztJQVFNLFNBQVMsQ0FBQyxDQUFnQjtRQUMvQixJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUN0QixJQUFJLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxFQUFFLEVBQUUsRUFBRSxVQUFVLEVBQUUsSUFBSSxDQUFDLFdBQVcsRUFBRSxRQUFRLEVBQUUsQ0FBQyxJQUFJLFNBQVMsRUFBRSxVQUFVLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQztRQUV2RyxJQUFJLEtBQUssR0FBWSxLQUFLLENBQUM7UUFDM0IsSUFBSSxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsQ0FBQyxHQUFHLEVBQUUsRUFBRTtZQUMzQixJQUFJLEdBQUcsQ0FBQyxRQUFRLEtBQUssQ0FBQztnQkFBRSxHQUFHLENBQUMsZ0JBQWdCLENBQUMsS0FBSyxDQUFDLENBQUM7aUJBQy9DLENBQUM7Z0JBQ0osS0FBSyxHQUFHLElBQUksQ0FBQztnQkFDYixJQUFJLENBQUMsY0FBYyxHQUFHLENBQUMsQ0FBQztnQkFDeEIsR0FBRyxDQUFDLGdCQUFnQixDQUFDLElBQUksQ0FBQyxDQUFDO1lBQzdCLENBQUM7UUFDSCxDQUFDLENBQUMsQ0FBQztRQUVILElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQztZQUNYLElBQUksQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBRSxDQUFDLGdCQUFnQixDQUFDLElBQUksQ0FBQyxDQUFDO1lBQzVDLElBQUksQ0FBQyxjQUFjLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFFLENBQUMsUUFBUSxDQUFDO1FBQ3RELENBQUM7SUFDSCxDQUFDOzhHQXZEVSxpQkFBaUI7a0dBQWpCLGlCQUFpQiwrSkFjWCxtQkFBbUIsNkJDM0J0QyxxcEJBa0JBOzsyRkRMYSxpQkFBaUI7a0JBVDdCLFNBQVM7K0JBQ0UsY0FBYyxtQkFHUCx1QkFBdUIsQ0FBQyxNQUFNLFFBQ3pDO3dCQUNKLEtBQUssRUFBRSxvQkFBb0I7cUJBQzVCO3dHQVV5QixRQUFRO3NCQUFqQyxNQUFNO2dCQU1zQyxPQUFPO3NCQUFuRCxlQUFlO3VCQUFDLG1CQUFtQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFmdGVyQ29udGVudEluaXQsIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQsIENvbnRlbnRDaGlsZHJlbiwgRXZlbnRFbWl0dGVyLCBPdXRwdXQsIFF1ZXJ5TGlzdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQWN0aXZhdGVkUm91dGUsIFJvdXRlciB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5pbXBvcnQgeyBUYWJDb250ZW50Q29tcG9uZW50IH0gZnJvbSAnLi4vdGFiLWNvbnRlbnQvdGFiLWNvbnRlbnQuY29tcG9uZW50JztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAndXAtdGFiLWdyb3VwJyxcbiAgdGVtcGxhdGVVcmw6ICcuL3RhYi1ncm91cC5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL3RhYi1ncm91cC5jb21wb25lbnQuc2NzcyddLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgaG9zdDoge1xuICAgIGNsYXNzOiAnZC1mbGV4IGZsZXgtY29sdW1uJ1xuICB9XG59KVxuZXhwb3J0IGNsYXNzIFRhYkdyb3VwQ29tcG9uZW50IGltcGxlbWVudHMgQWZ0ZXJDb250ZW50SW5pdCB7XG5cbiAgLyoqXG4gICAqIEFuIG91dHB1dCB2YXJpYWJsZSB0aGF0IHVzZWQgdG8gZW1pdHMgZXZlbnQgb2YgdHlwZSBzdHJpbmcgb3IgbnVsbCB3aGVuIHZhbHVlIGNoYW5nZWQuIFRoaXNcbiAgICogb3V0cHV0IHZhcmlhYmxlLCB3aGVuIHN1YnNjcmliZWQgdG8sIGVtaXRzIGV2ZW50cyBjb250YWluaW5nIGluc3RhbmNlcyBvZiBzdHJpbmcgb3IgbnVsbFxuICAgKiBvciBpdHMgc3ViY2xhc3MuXG4gICAqIEB0eXBlIHtFdmVudEVtaXR0ZXI8c3RyaW5nIHwgbnVsbD59XG4gICAqL1xuICBAT3V0cHV0KCkgcHVibGljIHJlYWRvbmx5IG9uQ2hhbmdlOiBFdmVudEVtaXR0ZXI8c3RyaW5nIHwgbnVsbD4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG5cbiAgLyoqXG4gICAqIEEgbGlzdCBvZiB0YWIgY29udGVudCBjb21wb25lbnRzXG4gICAqIEB0eXBlIHtRdWVyeUxpc3Q8VGFiQ29udGVudENvbXBvbmVudD59XG4gICAqL1xuICBAQ29udGVudENoaWxkcmVuKFRhYkNvbnRlbnRDb21wb25lbnQpIHB1YmxpYyBjb250ZW50ITogUXVlcnlMaXN0PFRhYkNvbnRlbnRDb21wb25lbnQ+O1xuXG4gIC8qKlxuICAgKiBBIGZsYWcgdmFyaWFibGUgdGhhdCB1c2VkIHRvIHNldCB2YWx1ZSBvZiBpb24tc2VnbWVudCBmb3IgcmVwcmVzZW50cyB0aGUgY3VycmVudCBzZWxlY3RlZCB0YWIuXG4gICAqIEB0eXBlIHtzdHJpbmcgfCBudWxsIHwgdW5kZWZpbmVkfVxuICAgKi9cbiAgcHVibGljIGFjdGl2ZUZyYWdtZW50OiBzdHJpbmcgfCBudWxsIHwgdW5kZWZpbmVkO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByb3RlY3RlZCByZWFkb25seSByb3V0ZXI6IFJvdXRlcixcbiAgICBwcm90ZWN0ZWQgcmVhZG9ubHkgYWN0aXZlUm91dGU6IEFjdGl2YXRlZFJvdXRlXG4gICkgeyB9XG5cbiAgcHVibGljIG5nQWZ0ZXJDb250ZW50SW5pdCgpOiB2b2lke1xuICAgIHRoaXMuY2hhbmdlVGFiKHRoaXMuYWN0aXZlUm91dGUuc25hcHNob3QuZnJhZ21lbnQpO1xuICB9XG5cbiAgLyoqXG4gICAqIEEgbWV0aG9kIHdoZW4gdGhlIHRhYiBpcyBjaGFuZ2VkLCBpdCB3aWxsIGVtaXQgb25DaGFuZ2UgdmFyaWFibGUsIGNoYW5nZSByb3V0ZVxuICAgKiBiYXNlZCBvbiBmcmFnbWVudCB2YWx1ZSBpbiBwYXJhbSwgYW5kIHNlYXJjaCBpZiB0YWJzIGhhdmUgdGhlIGZyYWdtZW50IHZhbHVlLlxuICAgKiBJZiBpdCdzIGZvdW5kLCBpdCdsbCBzaG93IHRoZSB0YWIncyBjb250ZW50LiBJZiBpdCdzIG5vdCwgaXQnbGwgc2hvdyBlbXB0eSBjb250ZW50LlxuICAgKiBAcGFyYW0ge3N0cmluZyB8IG51bGx9IGYgLSBDb250YWluIHZhbHVlIG9mIHRoZSBmcmFnbWVudCB0aGF0IGN1cnJlbnRseSBzZWxlY3RlZC5cbiAgICovXG4gIHB1YmxpYyBjaGFuZ2VUYWIoZjogc3RyaW5nIHwgbnVsbCk6IHZvaWR7XG4gICAgdGhpcy5vbkNoYW5nZS5lbWl0KGYpO1xuICAgIHRoaXMucm91dGVyLm5hdmlnYXRlKFtdLCB7IHJlbGF0aXZlVG86IHRoaXMuYWN0aXZlUm91dGUsIGZyYWdtZW50OiBmIHx8IHVuZGVmaW5lZCwgcmVwbGFjZVVybDogdHJ1ZSB9KTtcblxuICAgIGxldCBmb3VuZDogYm9vbGVhbiA9IGZhbHNlO1xuICAgIHRoaXMuY29udGVudC5mb3JFYWNoKCh0YWIpID0+IHtcbiAgICAgIGlmICh0YWIuZnJhZ21lbnQgIT09IGYpIHRhYi50b2dnbGVWaXNpYmlsaXR5KGZhbHNlKTtcbiAgICAgIGVsc2Uge1xuICAgICAgICBmb3VuZCA9IHRydWU7XG4gICAgICAgIHRoaXMuYWN0aXZlRnJhZ21lbnQgPSBmO1xuICAgICAgICB0YWIudG9nZ2xlVmlzaWJpbGl0eSh0cnVlKTtcbiAgICAgIH0gICAgICBcbiAgICB9KTtcblxuICAgIGlmICghZm91bmQpIHtcbiAgICAgIHRoaXMuY29udGVudC5nZXQoMCkhLnRvZ2dsZVZpc2liaWxpdHkodHJ1ZSk7XG4gICAgICB0aGlzLmFjdGl2ZUZyYWdtZW50ID0gdGhpcy5jb250ZW50LmdldCgwKSEuZnJhZ21lbnQ7XG4gICAgfVxuICB9XG59XG4iLCI8aW9uLXNlZ21lbnQgW3Njcm9sbGFibGVdPVwidHJ1ZVwiIFt2YWx1ZV09XCJhY3RpdmVGcmFnbWVudFwiIGNsYXNzPVwiZC1mbGV4IHBiLTQgZmxleC1zaHJpbmstMFwiPlxuICAgIEBmb3IgKGMgb2YgY29udGVudDsgdHJhY2sgYy5mcmFnbWVudCkge1xuICAgICAgICA8aW9uLXNlZ21lbnQtYnV0dG9uIGNsYXNzPVwicm91bmRlZFwiIFt2YWx1ZV09XCJjLmZyYWdtZW50XCIgKGNsaWNrKT1cImNoYW5nZVRhYihjLmZyYWdtZW50KVwiPlxuICAgICAgICAgICAgQGlmIChjLmN1c3RvbUhlYWRlcikge1xuICAgICAgICAgICAgICAgIDxkaXYgXG4gICAgICAgICAgICAgICAgICAgIGNsYXNzPVwie3sgYy5jdXN0b21IZWFkZXIubmF0aXZlRWxlbWVudC5jbGFzc05hbWUgfX1cIlxuICAgICAgICAgICAgICAgICAgICBbaW5uZXJIVE1MXT1cImMuY3VzdG9tSGVhZGVyLm5hdGl2ZUVsZW1lbnQuaW5uZXJIVE1MXCJcbiAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBAZWxzZSB7XG4gICAgICAgICAgICAgICAge3sgYy5oZWFkZXIgfX1cbiAgICAgICAgICAgIH1cbiAgICAgICAgPC9pb24tc2VnbWVudC1idXR0b24+XG4gICAgfVxuPC9pb24tc2VnbWVudD5cblxuPG5nLWNvbnRlbnQgLz5cbiJdfQ==
|
|
@@ -1,29 +0,0 @@
|
|
|
1
|
-
import { NgModule } from '@angular/core';
|
|
2
|
-
import { TabGroupComponent } from './tab-group/tab-group.component';
|
|
3
|
-
import { TabContentComponent } from './tab-content/tab-content.component';
|
|
4
|
-
import { IonicModule } from '@ionic/angular';
|
|
5
|
-
import * as i0 from "@angular/core";
|
|
6
|
-
export class TabsComponentModule {
|
|
7
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.4", ngImport: i0, type: TabsComponentModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
8
|
-
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.4", ngImport: i0, type: TabsComponentModule, declarations: [TabGroupComponent,
|
|
9
|
-
TabContentComponent], imports: [IonicModule], exports: [TabGroupComponent,
|
|
10
|
-
TabContentComponent] }); }
|
|
11
|
-
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.4", ngImport: i0, type: TabsComponentModule, imports: [IonicModule] }); }
|
|
12
|
-
}
|
|
13
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.4", ngImport: i0, type: TabsComponentModule, decorators: [{
|
|
14
|
-
type: NgModule,
|
|
15
|
-
args: [{
|
|
16
|
-
imports: [
|
|
17
|
-
IonicModule
|
|
18
|
-
],
|
|
19
|
-
declarations: [
|
|
20
|
-
TabGroupComponent,
|
|
21
|
-
TabContentComponent
|
|
22
|
-
],
|
|
23
|
-
exports: [
|
|
24
|
-
TabGroupComponent,
|
|
25
|
-
TabContentComponent
|
|
26
|
-
]
|
|
27
|
-
}]
|
|
28
|
-
}] });
|
|
29
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFicy5jb21wb25lbnQubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdW5pcGluLWFuZ3VsYXIvc3JjL2xpYi9jb21wb25lbnRzL3RhYnMvdGFicy5jb21wb25lbnQubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekMsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFDcEUsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0scUNBQXFDLENBQUM7QUFDMUUsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGdCQUFnQixDQUFDOztBQWU3QyxNQUFNLE9BQU8sbUJBQW1COzhHQUFuQixtQkFBbUI7K0dBQW5CLG1CQUFtQixpQkFSNUIsaUJBQWlCO1lBQ2pCLG1CQUFtQixhQUpuQixXQUFXLGFBT1gsaUJBQWlCO1lBQ2pCLG1CQUFtQjsrR0FHVixtQkFBbUIsWUFYNUIsV0FBVzs7MkZBV0YsbUJBQW1CO2tCQWIvQixRQUFRO21CQUFDO29CQUNSLE9BQU8sRUFBRTt3QkFDUCxXQUFXO3FCQUNaO29CQUNELFlBQVksRUFBRTt3QkFDWixpQkFBaUI7d0JBQ2pCLG1CQUFtQjtxQkFDcEI7b0JBQ0QsT0FBTyxFQUFFO3dCQUNQLGlCQUFpQjt3QkFDakIsbUJBQW1CO3FCQUNwQjtpQkFDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE5nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBUYWJHcm91cENvbXBvbmVudCB9IGZyb20gJy4vdGFiLWdyb3VwL3RhYi1ncm91cC5jb21wb25lbnQnO1xuaW1wb3J0IHsgVGFiQ29udGVudENvbXBvbmVudCB9IGZyb20gJy4vdGFiLWNvbnRlbnQvdGFiLWNvbnRlbnQuY29tcG9uZW50JztcbmltcG9ydCB7IElvbmljTW9kdWxlIH0gZnJvbSAnQGlvbmljL2FuZ3VsYXInO1xuXG5ATmdNb2R1bGUoe1xuICBpbXBvcnRzOiBbXG4gICAgSW9uaWNNb2R1bGVcbiAgXSxcbiAgZGVjbGFyYXRpb25zOiBbXG4gICAgVGFiR3JvdXBDb21wb25lbnQsXG4gICAgVGFiQ29udGVudENvbXBvbmVudFxuICBdLFxuICBleHBvcnRzOiBbXG4gICAgVGFiR3JvdXBDb21wb25lbnQsXG4gICAgVGFiQ29udGVudENvbXBvbmVudFxuICBdXG59KVxuZXhwb3J0IGNsYXNzIFRhYnNDb21wb25lbnRNb2R1bGUge31cbiJdfQ==
|
|
@@ -1,10 +0,0 @@
|
|
|
1
|
-
import { inject } from '@angular/core';
|
|
2
|
-
import { AuthResolver } from '../../resolvers';
|
|
3
|
-
export const AuthGuard = () => {
|
|
4
|
-
const resolver = inject(AuthResolver);
|
|
5
|
-
if (!resolver.isUserLoggedIn()) {
|
|
6
|
-
location.href = '/auth/login';
|
|
7
|
-
}
|
|
8
|
-
return true;
|
|
9
|
-
};
|
|
10
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXV0aC5ndWFyZC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3VuaXBpbi1hbmd1bGFyL3NyYy9saWIvZ3VhcmRzL2F1dGgvYXV0aC5ndWFyZC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3ZDLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUUvQyxNQUFNLENBQUMsTUFBTSxTQUFTLEdBQWtCLEdBQVksRUFBRTtJQUNwRCxNQUFNLFFBQVEsR0FBRyxNQUFNLENBQUMsWUFBWSxDQUFDLENBQUM7SUFFdEMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxjQUFjLEVBQUUsRUFBRSxDQUFDO1FBQy9CLFFBQVEsQ0FBQyxJQUFJLEdBQUcsYUFBYSxDQUFDO0lBQ2hDLENBQUM7SUFDRCxPQUFPLElBQUksQ0FBQztBQUNkLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGluamVjdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQXV0aFJlc29sdmVyIH0gZnJvbSAnLi4vLi4vcmVzb2x2ZXJzJztcblxuZXhwb3J0IGNvbnN0IEF1dGhHdWFyZDogKCkgPT4gYm9vbGVhbiA9ICgpOiBib29sZWFuID0+IHtcbiAgY29uc3QgcmVzb2x2ZXIgPSBpbmplY3QoQXV0aFJlc29sdmVyKTtcbiAgXG4gIGlmICghcmVzb2x2ZXIuaXNVc2VyTG9nZ2VkSW4oKSkge1xuICAgIGxvY2F0aW9uLmhyZWYgPSAnL2F1dGgvbG9naW4nO1xuICB9XG4gIHJldHVybiB0cnVlO1xufTtcbiJdfQ==
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
export { AuthGuard } from './auth/auth.guard';
|
|
2
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy91bmlwaW4tYW5ndWxhci9zcmMvbGliL2d1YXJkcy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sbUJBQW1CLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgeyBBdXRoR3VhcmQgfSBmcm9tICcuL2F1dGgvYXV0aC5ndWFyZCc7XG4iXX0=
|
|
@@ -1,20 +0,0 @@
|
|
|
1
|
-
import { Injectable } from '@angular/core';
|
|
2
|
-
import { AuthService } from '../../services';
|
|
3
|
-
import * as i0 from "@angular/core";
|
|
4
|
-
export class HeaderInterceptor {
|
|
5
|
-
intercept(request, next) {
|
|
6
|
-
return next.handle(request.clone({
|
|
7
|
-
headers: request.headers,
|
|
8
|
-
setHeaders: {
|
|
9
|
-
authorization: AuthService.authToken,
|
|
10
|
-
project: 'unipin'
|
|
11
|
-
}
|
|
12
|
-
}));
|
|
13
|
-
}
|
|
14
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.4", ngImport: i0, type: HeaderInterceptor, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
15
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.4", ngImport: i0, type: HeaderInterceptor }); }
|
|
16
|
-
}
|
|
17
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.4", ngImport: i0, type: HeaderInterceptor, decorators: [{
|
|
18
|
-
type: Injectable
|
|
19
|
-
}] });
|
|
20
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGVhZGVyLmludGVyY2VwdG9yLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdW5pcGluLWFuZ3VsYXIvc3JjL2xpYi9pbnRlcmNlcHRvcnMvaGVhZGVyL2hlYWRlci5pbnRlcmNlcHRvci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRzNDLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQzs7QUFHN0MsTUFBTSxPQUFPLGlCQUFpQjtJQUVyQixTQUFTLENBQUMsT0FBeUIsRUFBRSxJQUFpQjtRQUMzRCxPQUFPLElBQUksQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQztZQUMvQixPQUFPLEVBQUUsT0FBTyxDQUFDLE9BQU87WUFDeEIsVUFBVSxFQUFFO2dCQUNWLGFBQWEsRUFBRSxXQUFXLENBQUMsU0FBUztnQkFDcEMsT0FBTyxFQUFFLFFBQVE7YUFDbEI7U0FDRixDQUFDLENBQUMsQ0FBQztJQUNOLENBQUM7OEdBVlUsaUJBQWlCO2tIQUFqQixpQkFBaUI7OzJGQUFqQixpQkFBaUI7a0JBRDdCLFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBIdHRwRXZlbnQsIEh0dHBIYW5kbGVyLCBIdHRwSW50ZXJjZXB0b3IsIEh0dHBSZXF1ZXN0IH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgQXV0aFNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcyc7XG5cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBIZWFkZXJJbnRlcmNlcHRvciBpbXBsZW1lbnRzIEh0dHBJbnRlcmNlcHRvciB7XG5cbiAgcHVibGljIGludGVyY2VwdChyZXF1ZXN0OiBIdHRwUmVxdWVzdDxhbnk+LCBuZXh0OiBIdHRwSGFuZGxlcik6IE9ic2VydmFibGU8SHR0cEV2ZW50PGFueT4+e1xuICAgIHJldHVybiBuZXh0LmhhbmRsZShyZXF1ZXN0LmNsb25lKHtcbiAgICAgIGhlYWRlcnM6IHJlcXVlc3QuaGVhZGVycyxcbiAgICAgIHNldEhlYWRlcnM6IHtcbiAgICAgICAgYXV0aG9yaXphdGlvbjogQXV0aFNlcnZpY2UuYXV0aFRva2VuLFxuICAgICAgICBwcm9qZWN0OiAndW5pcGluJ1xuICAgICAgfVxuICAgIH0pKTtcbiAgfVxufVxuIl19
|
|
@@ -1,3 +0,0 @@
|
|
|
1
|
-
export { HeaderInterceptor } from './header/header.interceptor';
|
|
2
|
-
export { RefreshTokenInterceptor } from './refresh-token/refresh-token.interceptor';
|
|
3
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy91bmlwaW4tYW5ndWxhci9zcmMvbGliL2ludGVyY2VwdG9ycy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUNoRSxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSwyQ0FBMkMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCB7IEhlYWRlckludGVyY2VwdG9yIH0gZnJvbSAnLi9oZWFkZXIvaGVhZGVyLmludGVyY2VwdG9yJztcbmV4cG9ydCB7IFJlZnJlc2hUb2tlbkludGVyY2VwdG9yIH0gZnJvbSAnLi9yZWZyZXNoLXRva2VuL3JlZnJlc2gtdG9rZW4uaW50ZXJjZXB0b3InO1xuIl19
|
|
@@ -1,42 +0,0 @@
|
|
|
1
|
-
import { Injectable } from '@angular/core';
|
|
2
|
-
import { catchError, switchMap, throwError } from 'rxjs';
|
|
3
|
-
import { AuthService } from '../../services';
|
|
4
|
-
import * as i0 from "@angular/core";
|
|
5
|
-
import * as i1 from "../../services";
|
|
6
|
-
export class RefreshTokenInterceptor {
|
|
7
|
-
constructor(authService) {
|
|
8
|
-
this.authService = authService;
|
|
9
|
-
}
|
|
10
|
-
intercept(request, next) {
|
|
11
|
-
return next.handle(request).pipe(catchError(({ error: { errors } }) => {
|
|
12
|
-
if (errors[0].extensions.code === 'USER_INVALID_TOKEN') {
|
|
13
|
-
return this.authService.refreshToken({ refreshToken: AuthService.refreshToken }).pipe(switchMap(({ data }) => {
|
|
14
|
-
const { accessToken, refreshToken } = data.authMsRefreshAccessToken;
|
|
15
|
-
AuthService.authToken = accessToken;
|
|
16
|
-
AuthService.refreshToken = refreshToken;
|
|
17
|
-
localStorage.setItem('authToken', accessToken);
|
|
18
|
-
localStorage.setItem('refreshToken', refreshToken);
|
|
19
|
-
return next.handle(request.clone({
|
|
20
|
-
setHeaders: {
|
|
21
|
-
authorization: accessToken
|
|
22
|
-
}
|
|
23
|
-
}));
|
|
24
|
-
}), catchError(() => {
|
|
25
|
-
localStorage.clear();
|
|
26
|
-
AuthService.authToken = '';
|
|
27
|
-
AuthService.refreshToken = '';
|
|
28
|
-
this.authService.user = undefined;
|
|
29
|
-
location.href = '/auth/login';
|
|
30
|
-
return throwError(() => errors[0]);
|
|
31
|
-
}));
|
|
32
|
-
}
|
|
33
|
-
return throwError(() => errors[0]);
|
|
34
|
-
}));
|
|
35
|
-
}
|
|
36
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.4", ngImport: i0, type: RefreshTokenInterceptor, deps: [{ token: i1.AuthService }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
37
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.4", ngImport: i0, type: RefreshTokenInterceptor }); }
|
|
38
|
-
}
|
|
39
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.4", ngImport: i0, type: RefreshTokenInterceptor, decorators: [{
|
|
40
|
-
type: Injectable
|
|
41
|
-
}], ctorParameters: () => [{ type: i1.AuthService }] });
|
|
42
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVmcmVzaC10b2tlbi5pbnRlcmNlcHRvci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3VuaXBpbi1hbmd1bGFyL3NyYy9saWIvaW50ZXJjZXB0b3JzL3JlZnJlc2gtdG9rZW4vcmVmcmVzaC10b2tlbi5pbnRlcmNlcHRvci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRTNDLE9BQU8sRUFBRSxVQUFVLEVBQWMsU0FBUyxFQUFFLFVBQVUsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUNyRSxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7OztBQUc3QyxNQUFNLE9BQU8sdUJBQXVCO0lBRWxDLFlBQ3FCLFdBQXdCO1FBQXhCLGdCQUFXLEdBQVgsV0FBVyxDQUFhO0lBQ3pDLENBQUM7SUFFRSxTQUFTLENBQUMsT0FBeUIsRUFBRSxJQUFpQjtRQUMzRCxPQUFPLElBQUksQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLENBQUMsSUFBSSxDQUM5QixVQUFVLENBQUMsQ0FBQyxFQUFFLEtBQUssRUFBRSxFQUFFLE1BQU0sRUFBRSxFQUFFLEVBQUUsRUFBRTtZQUNuQyxJQUFJLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxVQUFVLENBQUMsSUFBSSxLQUFLLG9CQUFvQixFQUFFLENBQUM7Z0JBQ3ZELE9BQU8sSUFBSSxDQUFDLFdBQVcsQ0FBQyxZQUFZLENBQUMsRUFBRSxZQUFZLEVBQUUsV0FBVyxDQUFDLFlBQVksRUFBRSxDQUFDLENBQUMsSUFBSSxDQUNuRixTQUFTLENBQUMsQ0FBQyxFQUFFLElBQUksRUFBRSxFQUFFLEVBQUU7b0JBQ3JCLE1BQU0sRUFBRSxXQUFXLEVBQUUsWUFBWSxFQUFFLEdBQUcsSUFBSyxDQUFDLHdCQUF3QixDQUFDO29CQUVyRSxXQUFXLENBQUMsU0FBUyxHQUFHLFdBQVksQ0FBQztvQkFDckMsV0FBVyxDQUFDLFlBQVksR0FBRyxZQUFhLENBQUM7b0JBRXpDLFlBQVksQ0FBQyxPQUFPLENBQUMsV0FBVyxFQUFFLFdBQVksQ0FBQyxDQUFDO29CQUNoRCxZQUFZLENBQUMsT0FBTyxDQUFDLGNBQWMsRUFBRSxZQUFhLENBQUMsQ0FBQztvQkFFcEQsT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUM7d0JBQy9CLFVBQVUsRUFBRTs0QkFDVixhQUFhLEVBQUUsV0FBWTt5QkFDNUI7cUJBQ0YsQ0FBQyxDQUFDLENBQUM7Z0JBQ04sQ0FBQyxDQUFDLEVBQ0YsVUFBVSxDQUFDLEdBQUcsRUFBRTtvQkFDZCxZQUFZLENBQUMsS0FBSyxFQUFFLENBQUM7b0JBQ3JCLFdBQVcsQ0FBQyxTQUFTLEdBQUcsRUFBRSxDQUFDO29CQUMzQixXQUFXLENBQUMsWUFBWSxHQUFHLEVBQUUsQ0FBQztvQkFDOUIsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLEdBQUcsU0FBUyxDQUFDO29CQUVsQyxRQUFRLENBQUMsSUFBSSxHQUFHLGFBQWEsQ0FBQztvQkFDOUIsT0FBTyxVQUFVLENBQUMsR0FBRyxFQUFFLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7Z0JBQ3JDLENBQUMsQ0FBQyxDQUNILENBQUM7WUFDSixDQUFDO1lBRUQsT0FBTyxVQUFVLENBQUMsR0FBRyxFQUFFLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDckMsQ0FBQyxDQUFDLENBQ0gsQ0FBQztJQUNKLENBQUM7OEdBekNVLHVCQUF1QjtrSEFBdkIsdUJBQXVCOzsyRkFBdkIsdUJBQXVCO2tCQURuQyxVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgSHR0cEV2ZW50LCBIdHRwSGFuZGxlciwgSHR0cEludGVyY2VwdG9yLCBIdHRwUmVxdWVzdCB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcbmltcG9ydCB7IGNhdGNoRXJyb3IsIE9ic2VydmFibGUsIHN3aXRjaE1hcCwgdGhyb3dFcnJvciB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgQXV0aFNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcyc7XG5cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBSZWZyZXNoVG9rZW5JbnRlcmNlcHRvciBpbXBsZW1lbnRzIEh0dHBJbnRlcmNlcHRvciB7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJvdGVjdGVkIHJlYWRvbmx5IGF1dGhTZXJ2aWNlOiBBdXRoU2VydmljZVxuICApIHsgfVxuXG4gIHB1YmxpYyBpbnRlcmNlcHQocmVxdWVzdDogSHR0cFJlcXVlc3Q8YW55PiwgbmV4dDogSHR0cEhhbmRsZXIpOiBPYnNlcnZhYmxlPEh0dHBFdmVudDxhbnk+PntcbiAgICByZXR1cm4gbmV4dC5oYW5kbGUocmVxdWVzdCkucGlwZShcbiAgICAgIGNhdGNoRXJyb3IoKHsgZXJyb3I6IHsgZXJyb3JzIH0gfSkgPT4ge1xuICAgICAgICBpZiAoZXJyb3JzWzBdLmV4dGVuc2lvbnMuY29kZSA9PT0gJ1VTRVJfSU5WQUxJRF9UT0tFTicpIHtcbiAgICAgICAgICByZXR1cm4gdGhpcy5hdXRoU2VydmljZS5yZWZyZXNoVG9rZW4oeyByZWZyZXNoVG9rZW46IEF1dGhTZXJ2aWNlLnJlZnJlc2hUb2tlbiB9KS5waXBlKFxuICAgICAgICAgICAgc3dpdGNoTWFwKCh7IGRhdGEgfSkgPT4ge1xuICAgICAgICAgICAgICBjb25zdCB7IGFjY2Vzc1Rva2VuLCByZWZyZXNoVG9rZW4gfSA9IGRhdGEhLmF1dGhNc1JlZnJlc2hBY2Nlc3NUb2tlbjtcblxuICAgICAgICAgICAgICBBdXRoU2VydmljZS5hdXRoVG9rZW4gPSBhY2Nlc3NUb2tlbiE7XG4gICAgICAgICAgICAgIEF1dGhTZXJ2aWNlLnJlZnJlc2hUb2tlbiA9IHJlZnJlc2hUb2tlbiE7XG5cbiAgICAgICAgICAgICAgbG9jYWxTdG9yYWdlLnNldEl0ZW0oJ2F1dGhUb2tlbicsIGFjY2Vzc1Rva2VuISk7XG4gICAgICAgICAgICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKCdyZWZyZXNoVG9rZW4nLCByZWZyZXNoVG9rZW4hKTtcblxuICAgICAgICAgICAgICByZXR1cm4gbmV4dC5oYW5kbGUocmVxdWVzdC5jbG9uZSh7XG4gICAgICAgICAgICAgICAgc2V0SGVhZGVyczoge1xuICAgICAgICAgICAgICAgICAgYXV0aG9yaXphdGlvbjogYWNjZXNzVG9rZW4hXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB9KSk7XG4gICAgICAgICAgICB9KSxcbiAgICAgICAgICAgIGNhdGNoRXJyb3IoKCkgPT4ge1xuICAgICAgICAgICAgICBsb2NhbFN0b3JhZ2UuY2xlYXIoKTtcbiAgICAgICAgICAgICAgQXV0aFNlcnZpY2UuYXV0aFRva2VuID0gJyc7XG4gICAgICAgICAgICAgIEF1dGhTZXJ2aWNlLnJlZnJlc2hUb2tlbiA9ICcnO1xuICAgICAgICAgICAgICB0aGlzLmF1dGhTZXJ2aWNlLnVzZXIgPSB1bmRlZmluZWQ7XG5cbiAgICAgICAgICAgICAgbG9jYXRpb24uaHJlZiA9ICcvYXV0aC9sb2dpbic7XG4gICAgICAgICAgICAgIHJldHVybiB0aHJvd0Vycm9yKCgpID0+IGVycm9yc1swXSk7XG4gICAgICAgICAgICB9KVxuICAgICAgICAgICk7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gdGhyb3dFcnJvcigoKSA9PiBlcnJvcnNbMF0pO1xuICAgICAgfSlcbiAgICApO1xuICB9XG59XG4iXX0=
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
export {};
|
|
2
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy91bmlwaW4tYW5ndWxhci9zcmMvbGliL2ludGVyZmFjZXMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCB7IFVzZXIgfSBmcm9tICcuL3VzZXIvdXNlci5pbnRlcmZhY2UnO1xuIl19
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
export {};
|
|
2
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXNlci5pbnRlcmZhY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy91bmlwaW4tYW5ndWxhci9zcmMvbGliL2ludGVyZmFjZXMvdXNlci91c2VyLmludGVyZmFjZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGludGVyZmFjZSBVc2VyIHtcbiAgYmlydGhkYXk6IHN0cmluZztcbiAgY2F0ZWdvcnk/OiBzdHJpbmcgfCBudWxsO1xuICBlbWFpbDogc3RyaW5nO1xuICBnZW5kZXI6IHN0cmluZztcbiAgZ3VpZDogc3RyaW5nO1xuICBtb2JpbGVOdW1iZXI/OiBzdHJpbmcgfCBudWxsO1xuICBuYW1lOiBzdHJpbmc7XG4gIHBob3RvOiBzdHJpbmc7XG4gIHJvbGVzOiB7XG4gICAgZ3VpZDogc3RyaW5nO1xuICAgIGNvZGU6IHN0cmluZztcbiAgICBuYW1lOiBzdHJpbmc7XG4gICAgc3RhdHVzOiBzdHJpbmc7XG4gICAgaXNJbnRlcm5hbDogYm9vbGVhbjtcbiAgfVtdO1xufVxuIl19
|
|
@@ -1,3 +0,0 @@
|
|
|
1
|
-
export { bootstrap } from './micro-frontend';
|
|
2
|
-
export { PermissionDirective, PermissionGuard, PermissionModule, PermissionService, LoadingPage, UnauthorizedPage } from './permission';
|
|
3
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy91bmlwaW4tYW5ndWxhci9zcmMvbGliL21vZHVsZXMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBQzdDLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxlQUFlLEVBQUUsZ0JBQWdCLEVBQUUsaUJBQWlCLEVBQUUsV0FBVyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sY0FBYyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IHsgYm9vdHN0cmFwIH0gZnJvbSAnLi9taWNyby1mcm9udGVuZCc7XG5leHBvcnQgeyBQZXJtaXNzaW9uRGlyZWN0aXZlLCBQZXJtaXNzaW9uR3VhcmQsIFBlcm1pc3Npb25Nb2R1bGUsIFBlcm1pc3Npb25TZXJ2aWNlLCBMb2FkaW5nUGFnZSwgVW5hdXRob3JpemVkUGFnZSB9IGZyb20gJy4vcGVybWlzc2lvbic7XG4iXX0=
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
export { bootstrap } from './utils/mf-bootstrap.util';
|
|
2
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy91bmlwaW4tYW5ndWxhci9zcmMvbGliL21vZHVsZXMvbWljcm8tZnJvbnRlbmQvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLDJCQUEyQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IHsgYm9vdHN0cmFwIH0gZnJvbSAnLi91dGlscy9tZi1ib290c3RyYXAudXRpbCc7XG4iXX0=
|
|
@@ -1,55 +0,0 @@
|
|
|
1
|
-
import { enableProdMode, NgZone } from '@angular/core';
|
|
2
|
-
import { Location } from '@angular/common';
|
|
3
|
-
import { Router } from '@angular/router';
|
|
4
|
-
import { bootstrapApplication, createApplication } from '@angular/platform-browser';
|
|
5
|
-
import { getGlobalStateSlice, setGlobalStateSlice } from './mf-global-state.util';
|
|
6
|
-
import { createCustomElement } from '@angular/elements';
|
|
7
|
-
function getNgZone() {
|
|
8
|
-
return (getGlobalStateSlice((state) => state.ngZone));
|
|
9
|
-
}
|
|
10
|
-
export function shareNgZone(zone) {
|
|
11
|
-
setGlobalStateSlice({ ngZone: zone });
|
|
12
|
-
}
|
|
13
|
-
export function bootstrap(component, options, config) {
|
|
14
|
-
options.production && enableProdMode();
|
|
15
|
-
if (options.appType === 'shell') {
|
|
16
|
-
bootstrapApplication(component, config).then((ref) => {
|
|
17
|
-
shareShellZone(ref.injector);
|
|
18
|
-
});
|
|
19
|
-
return;
|
|
20
|
-
}
|
|
21
|
-
if (!getNgZone() && isLocalhost()) {
|
|
22
|
-
bootstrapApplication(component, config).then((ref) => {
|
|
23
|
-
connectMicroFrontendRouter(ref.injector);
|
|
24
|
-
});
|
|
25
|
-
return;
|
|
26
|
-
}
|
|
27
|
-
(async () => {
|
|
28
|
-
config.providers.push({ provide: NgZone, useValue: getNgZone() });
|
|
29
|
-
const app = await createApplication(config);
|
|
30
|
-
customElements.define(options.elementName, createCustomElement(component, { injector: app.injector }));
|
|
31
|
-
connectMicroFrontendRouter(app.injector);
|
|
32
|
-
})();
|
|
33
|
-
}
|
|
34
|
-
function shareShellZone(injector) {
|
|
35
|
-
const ngZone = injector.get(NgZone, null);
|
|
36
|
-
if (!ngZone) {
|
|
37
|
-
console.warn('No NgZone to share found');
|
|
38
|
-
return;
|
|
39
|
-
}
|
|
40
|
-
shareNgZone(ngZone);
|
|
41
|
-
}
|
|
42
|
-
function connectMicroFrontendRouter(injector) {
|
|
43
|
-
const router = injector.get(Router);
|
|
44
|
-
const location = injector.get(Location);
|
|
45
|
-
if (!router) {
|
|
46
|
-
console.warn('No router to connect found');
|
|
47
|
-
return;
|
|
48
|
-
}
|
|
49
|
-
router.navigateByUrl(location.path() + window.location.hash);
|
|
50
|
-
}
|
|
51
|
-
function isLocalhost() {
|
|
52
|
-
const hostname = window.location.hostname;
|
|
53
|
-
return hostname === 'localhost' || hostname === '127.0.0.1';
|
|
54
|
-
}
|
|
55
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWYtYm9vdHN0cmFwLnV0aWwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy91bmlwaW4tYW5ndWxhci9zcmMvbGliL21vZHVsZXMvbWljcm8tZnJvbnRlbmQvdXRpbHMvbWYtYm9vdHN0cmFwLnV0aWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFxQixjQUFjLEVBQVksTUFBTSxFQUFRLE1BQU0sZUFBZSxDQUFDO0FBQzFGLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMzQyxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDekMsT0FBTyxFQUFFLG9CQUFvQixFQUFFLGlCQUFpQixFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDcEYsT0FBTyxFQUFFLG1CQUFtQixFQUFFLG1CQUFtQixFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDbEYsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFVeEQsU0FBUyxTQUFTO0lBQ2hCLE9BQU8sQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDLEtBQXlCLEVBQUUsRUFBRSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDO0FBQzVFLENBQUM7QUFFRCxNQUFNLFVBQVUsV0FBVyxDQUFDLElBQVk7SUFDdEMsbUJBQW1CLENBQUMsRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQztBQUN4QyxDQUFDO0FBRUQsTUFBTSxVQUFVLFNBQVMsQ0FBSSxTQUFrQixFQUFFLE9BQWdCLEVBQUUsTUFBeUI7SUFDMUYsT0FBTyxDQUFDLFVBQVUsSUFBSSxjQUFjLEVBQUUsQ0FBQztJQUV2QyxJQUFJLE9BQU8sQ0FBQyxPQUFPLEtBQUssT0FBTyxFQUFFLENBQUM7UUFDaEMsb0JBQW9CLENBQUMsU0FBUyxFQUFFLE1BQU0sQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLEdBQUcsRUFBRSxFQUFFO1lBQ25ELGNBQWMsQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLENBQUM7UUFDL0IsQ0FBQyxDQUFDLENBQUM7UUFDSCxPQUFPO0lBQ1QsQ0FBQztJQUVELElBQUksQ0FBQyxTQUFTLEVBQUUsSUFBSSxXQUFXLEVBQUUsRUFBRSxDQUFDO1FBQ2xDLG9CQUFvQixDQUFDLFNBQVMsRUFBRSxNQUFNLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxHQUFHLEVBQUUsRUFBRTtZQUNuRCwwQkFBMEIsQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLENBQUM7UUFDM0MsQ0FBQyxDQUFDLENBQUM7UUFDSCxPQUFPO0lBQ1QsQ0FBQztJQUVELENBQUMsS0FBSyxJQUFJLEVBQUU7UUFDVixNQUFNLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxFQUFFLE9BQU8sRUFBRSxNQUFNLEVBQUUsUUFBUSxFQUFFLFNBQVMsRUFBRSxFQUFFLENBQUMsQ0FBQztRQUVsRSxNQUFNLEdBQUcsR0FBRyxNQUFNLGlCQUFpQixDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQzVDLGNBQWMsQ0FBQyxNQUFNLENBQVUsT0FBTyxDQUFDLFdBQVcsRUFBRSxtQkFBbUIsQ0FBQyxTQUFTLEVBQUUsRUFBRSxRQUFRLEVBQUUsR0FBRyxDQUFDLFFBQVEsRUFBRSxDQUFDLENBQUMsQ0FBQztRQUVoSCwwQkFBMEIsQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLENBQUM7SUFDM0MsQ0FBQyxDQUFDLEVBQUUsQ0FBQztBQUNQLENBQUM7QUFFRCxTQUFTLGNBQWMsQ0FBQyxRQUFrQjtJQUN4QyxNQUFNLE1BQU0sR0FBRyxRQUFRLENBQUMsR0FBRyxDQUFDLE1BQU0sRUFBRSxJQUFJLENBQUMsQ0FBQztJQUMxQyxJQUFJLENBQUMsTUFBTSxFQUFFLENBQUM7UUFDWixPQUFPLENBQUMsSUFBSSxDQUFDLDBCQUEwQixDQUFDLENBQUM7UUFDekMsT0FBTztJQUNULENBQUM7SUFDRCxXQUFXLENBQUMsTUFBTSxDQUFDLENBQUM7QUFDdEIsQ0FBQztBQUVELFNBQVMsMEJBQTBCLENBQUMsUUFBa0I7SUFDcEQsTUFBTSxNQUFNLEdBQUcsUUFBUSxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUNwQyxNQUFNLFFBQVEsR0FBRyxRQUFRLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxDQUFDO0lBRXhDLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQztRQUNaLE9BQU8sQ0FBQyxJQUFJLENBQUMsNEJBQTRCLENBQUMsQ0FBQztRQUMzQyxPQUFPO0lBQ1QsQ0FBQztJQUNELE1BQU0sQ0FBQyxhQUFhLENBQUMsUUFBUSxDQUFDLElBQUksRUFBRSxHQUFHLE1BQU0sQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLENBQUM7QUFDL0QsQ0FBQztBQUVELFNBQVMsV0FBVztJQUNsQixNQUFNLFFBQVEsR0FBRyxNQUFNLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQztJQUMxQyxPQUFPLFFBQVEsS0FBSyxXQUFXLElBQUksUUFBUSxLQUFLLFdBQVcsQ0FBQztBQUM5RCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQXBwbGljYXRpb25Db25maWcsIGVuYWJsZVByb2RNb2RlLCBJbmplY3RvciwgTmdab25lLCBUeXBlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBMb2NhdGlvbiB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBSb3V0ZXIgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuaW1wb3J0IHsgYm9vdHN0cmFwQXBwbGljYXRpb24sIGNyZWF0ZUFwcGxpY2F0aW9uIH0gZnJvbSAnQGFuZ3VsYXIvcGxhdGZvcm0tYnJvd3Nlcic7XG5pbXBvcnQgeyBnZXRHbG9iYWxTdGF0ZVNsaWNlLCBzZXRHbG9iYWxTdGF0ZVNsaWNlIH0gZnJvbSAnLi9tZi1nbG9iYWwtc3RhdGUudXRpbCc7XG5pbXBvcnQgeyBjcmVhdGVDdXN0b21FbGVtZW50IH0gZnJvbSAnQGFuZ3VsYXIvZWxlbWVudHMnO1xuXG5leHBvcnQgdHlwZSBBcHBUeXBlID0gJ3NoZWxsJyB8ICdtaWNyb2Zyb250ZW5kJztcblxuZXhwb3J0IHR5cGUgT3B0aW9ucyA9IHtcbiAgcHJvZHVjdGlvbjogYm9vbGVhbjtcbiAgYXBwVHlwZTogQXBwVHlwZTtcbiAgZWxlbWVudE5hbWU/OiBzdHJpbmc7XG59O1xuXG5mdW5jdGlvbiBnZXROZ1pvbmUoKTogTmdab25le1xuICByZXR1cm4gKGdldEdsb2JhbFN0YXRlU2xpY2UoKHN0YXRlOiB7IG5nWm9uZTogTmdab25lIH0pID0+IHN0YXRlLm5nWm9uZSkpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gc2hhcmVOZ1pvbmUoem9uZTogTmdab25lKTogdm9pZHtcbiAgc2V0R2xvYmFsU3RhdGVTbGljZSh7IG5nWm9uZTogem9uZSB9KTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGJvb3RzdHJhcDxNPihjb21wb25lbnQ6IFR5cGU8TT4sIG9wdGlvbnM6IE9wdGlvbnMsIGNvbmZpZzogQXBwbGljYXRpb25Db25maWcpOiB2b2lke1xuICBvcHRpb25zLnByb2R1Y3Rpb24gJiYgZW5hYmxlUHJvZE1vZGUoKTtcblxuICBpZiAob3B0aW9ucy5hcHBUeXBlID09PSAnc2hlbGwnKSB7XG4gICAgYm9vdHN0cmFwQXBwbGljYXRpb24oY29tcG9uZW50LCBjb25maWcpLnRoZW4oKHJlZikgPT4ge1xuICAgICAgc2hhcmVTaGVsbFpvbmUocmVmLmluamVjdG9yKTtcbiAgICB9KTtcbiAgICByZXR1cm47XG4gIH1cblxuICBpZiAoIWdldE5nWm9uZSgpICYmIGlzTG9jYWxob3N0KCkpIHtcbiAgICBib290c3RyYXBBcHBsaWNhdGlvbihjb21wb25lbnQsIGNvbmZpZykudGhlbigocmVmKSA9PiB7XG4gICAgICBjb25uZWN0TWljcm9Gcm9udGVuZFJvdXRlcihyZWYuaW5qZWN0b3IpO1xuICAgIH0pO1xuICAgIHJldHVybjtcbiAgfVxuICBcbiAgKGFzeW5jICgpID0+IHtcbiAgICBjb25maWcucHJvdmlkZXJzLnB1c2goeyBwcm92aWRlOiBOZ1pvbmUsIHVzZVZhbHVlOiBnZXROZ1pvbmUoKSB9KTtcblxuICAgIGNvbnN0IGFwcCA9IGF3YWl0IGNyZWF0ZUFwcGxpY2F0aW9uKGNvbmZpZyk7XG4gICAgY3VzdG9tRWxlbWVudHMuZGVmaW5lKDxzdHJpbmc+IG9wdGlvbnMuZWxlbWVudE5hbWUsIGNyZWF0ZUN1c3RvbUVsZW1lbnQoY29tcG9uZW50LCB7IGluamVjdG9yOiBhcHAuaW5qZWN0b3IgfSkpO1xuXG4gICAgY29ubmVjdE1pY3JvRnJvbnRlbmRSb3V0ZXIoYXBwLmluamVjdG9yKTtcbiAgfSkoKTtcbn1cblxuZnVuY3Rpb24gc2hhcmVTaGVsbFpvbmUoaW5qZWN0b3I6IEluamVjdG9yKTogdm9pZHtcbiAgY29uc3Qgbmdab25lID0gaW5qZWN0b3IuZ2V0KE5nWm9uZSwgbnVsbCk7XG4gIGlmICghbmdab25lKSB7XG4gICAgY29uc29sZS53YXJuKCdObyBOZ1pvbmUgdG8gc2hhcmUgZm91bmQnKTtcbiAgICByZXR1cm47XG4gIH1cbiAgc2hhcmVOZ1pvbmUobmdab25lKTtcbn1cblxuZnVuY3Rpb24gY29ubmVjdE1pY3JvRnJvbnRlbmRSb3V0ZXIoaW5qZWN0b3I6IEluamVjdG9yKTogdm9pZHtcbiAgY29uc3Qgcm91dGVyID0gaW5qZWN0b3IuZ2V0KFJvdXRlcik7XG4gIGNvbnN0IGxvY2F0aW9uID0gaW5qZWN0b3IuZ2V0KExvY2F0aW9uKTtcblxuICBpZiAoIXJvdXRlcikge1xuICAgIGNvbnNvbGUud2FybignTm8gcm91dGVyIHRvIGNvbm5lY3QgZm91bmQnKTtcbiAgICByZXR1cm47XG4gIH1cbiAgcm91dGVyLm5hdmlnYXRlQnlVcmwobG9jYXRpb24ucGF0aCgpICsgd2luZG93LmxvY2F0aW9uLmhhc2gpO1xufVxuXG5mdW5jdGlvbiBpc0xvY2FsaG9zdCgpOiBib29sZWFue1xuICBjb25zdCBob3N0bmFtZSA9IHdpbmRvdy5sb2NhdGlvbi5ob3N0bmFtZTtcbiAgcmV0dXJuIGhvc3RuYW1lID09PSAnbG9jYWxob3N0JyB8fCBob3N0bmFtZSA9PT0gJzEyNy4wLjAuMSc7XG59XG4iXX0=
|
|
@@ -1,14 +0,0 @@
|
|
|
1
|
-
export const packageNamespace = '@angular-architects/module-federation-tools';
|
|
2
|
-
function getGlobalState() {
|
|
3
|
-
const globalState = window;
|
|
4
|
-
globalState[packageNamespace] = globalState[packageNamespace] || {};
|
|
5
|
-
return globalState[packageNamespace];
|
|
6
|
-
}
|
|
7
|
-
export function getGlobalStateSlice(selector) {
|
|
8
|
-
const globalState = getGlobalState();
|
|
9
|
-
return selector ? selector(globalState) : globalState;
|
|
10
|
-
}
|
|
11
|
-
export function setGlobalStateSlice(slice) {
|
|
12
|
-
return Object.assign(getGlobalState(), slice);
|
|
13
|
-
}
|
|
14
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWYtZ2xvYmFsLXN0YXRlLnV0aWwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy91bmlwaW4tYW5ndWxhci9zcmMvbGliL21vZHVsZXMvbWljcm8tZnJvbnRlbmQvdXRpbHMvbWYtZ2xvYmFsLXN0YXRlLnV0aWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsTUFBTSxDQUFDLE1BQU0sZ0JBQWdCLEdBQUcsNkNBQTZDLENBQUM7QUFFOUUsU0FBUyxjQUFjO0lBQ3JCLE1BQU0sV0FBVyxHQUFHLE1BQThDLENBQUM7SUFDbkUsV0FBVyxDQUFDLGdCQUFnQixDQUFDLEdBQUcsV0FBVyxDQUFDLGdCQUFnQixDQUFDLElBQUssRUFBbUIsQ0FBQztJQUV0RixPQUFPLFdBQVcsQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO0FBQ3ZDLENBQUM7QUFLRCxNQUFNLFVBQVUsbUJBQW1CLENBQU8sUUFBZ0M7SUFDeEUsTUFBTSxXQUFXLEdBQUcsY0FBYyxFQUFLLENBQUM7SUFDeEMsT0FBTyxRQUFRLENBQUEsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDLENBQUMsV0FBVyxDQUFDO0FBQ3ZELENBQUM7QUFFRCxNQUFNLFVBQVUsbUJBQW1CLENBQW1CLEtBQVE7SUFDNUQsT0FBTyxNQUFNLENBQUMsTUFBTSxDQUFDLGNBQWMsRUFBSyxFQUFFLEtBQUssQ0FBQyxDQUFDO0FBQ25ELENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgY29uc3QgcGFja2FnZU5hbWVzcGFjZSA9ICdAYW5ndWxhci1hcmNoaXRlY3RzL21vZHVsZS1mZWRlcmF0aW9uLXRvb2xzJztcblxuZnVuY3Rpb24gZ2V0R2xvYmFsU3RhdGU8VD4oKTogVCB7XG4gIGNvbnN0IGdsb2JhbFN0YXRlID0gd2luZG93IGFzIHVua25vd24gYXMgeyBbcGFja2FnZU5hbWVzcGFjZV06IFQgfTtcbiAgZ2xvYmFsU3RhdGVbcGFja2FnZU5hbWVzcGFjZV0gPSBnbG9iYWxTdGF0ZVtwYWNrYWdlTmFtZXNwYWNlXSB8fCAoe30gYXMgdW5rbm93biBhcyBUKTtcbiAgXG4gIHJldHVybiBnbG9iYWxTdGF0ZVtwYWNrYWdlTmFtZXNwYWNlXTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdldEdsb2JhbFN0YXRlU2xpY2U8VD4oKTogVDtcbmV4cG9ydCBmdW5jdGlvbiBnZXRHbG9iYWxTdGF0ZVNsaWNlPFQsIFI+KHNlbGVjdG9yOiAoZ2xvYmFsU3RhdGU6IFQpID0+IFIpOiBSO1xuXG5leHBvcnQgZnVuY3Rpb24gZ2V0R2xvYmFsU3RhdGVTbGljZTxULCBSPihzZWxlY3Rvcj86IChnbG9iYWxTdGF0ZTogVCkgPT4gUik6IFIgfCBUIHtcbiAgY29uc3QgZ2xvYmFsU3RhdGUgPSBnZXRHbG9iYWxTdGF0ZTxUPigpO1xuICByZXR1cm4gc2VsZWN0b3I/IHNlbGVjdG9yKGdsb2JhbFN0YXRlKSA6IGdsb2JhbFN0YXRlO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gc2V0R2xvYmFsU3RhdGVTbGljZTxUIGV4dGVuZHMgb2JqZWN0PihzbGljZTogVCk6IFQge1xuICByZXR1cm4gT2JqZWN0LmFzc2lnbihnZXRHbG9iYWxTdGF0ZTxUPigpLCBzbGljZSk7XG59XG4iXX0=
|
|
@@ -1,41 +0,0 @@
|
|
|
1
|
-
import { Directive, Input } from '@angular/core';
|
|
2
|
-
import * as i0 from "@angular/core";
|
|
3
|
-
import * as i1 from "../services/permission.service";
|
|
4
|
-
export class PermissionDirective {
|
|
5
|
-
set hasPermission(m) {
|
|
6
|
-
this.module = m;
|
|
7
|
-
}
|
|
8
|
-
set hasPermissionScope(s) {
|
|
9
|
-
this.scope = s;
|
|
10
|
-
}
|
|
11
|
-
set hasPermissionType(t) {
|
|
12
|
-
;
|
|
13
|
-
if (this.permissionService.checkPermission(this.scope, this.module, t)) {
|
|
14
|
-
this.viewContainer.createEmbeddedView(this.templateRef);
|
|
15
|
-
return;
|
|
16
|
-
}
|
|
17
|
-
this.viewContainer.clear();
|
|
18
|
-
}
|
|
19
|
-
constructor(templateRef, viewContainer, permissionService) {
|
|
20
|
-
this.templateRef = templateRef;
|
|
21
|
-
this.viewContainer = viewContainer;
|
|
22
|
-
this.permissionService = permissionService;
|
|
23
|
-
this.scope = 'GLOBAL';
|
|
24
|
-
}
|
|
25
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.4", ngImport: i0, type: PermissionDirective, deps: [{ token: i0.TemplateRef }, { token: i0.ViewContainerRef }, { token: i1.PermissionService }], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
26
|
-
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.2.4", type: PermissionDirective, isStandalone: true, selector: "[hasPermission]", inputs: { hasPermission: "hasPermission", hasPermissionScope: "hasPermissionScope", hasPermissionType: "hasPermissionType" }, ngImport: i0 }); }
|
|
27
|
-
}
|
|
28
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.4", ngImport: i0, type: PermissionDirective, decorators: [{
|
|
29
|
-
type: Directive,
|
|
30
|
-
args: [{
|
|
31
|
-
standalone: true,
|
|
32
|
-
selector: '[hasPermission]'
|
|
33
|
-
}]
|
|
34
|
-
}], ctorParameters: () => [{ type: i0.TemplateRef }, { type: i0.ViewContainerRef }, { type: i1.PermissionService }], propDecorators: { hasPermission: [{
|
|
35
|
-
type: Input
|
|
36
|
-
}], hasPermissionScope: [{
|
|
37
|
-
type: Input
|
|
38
|
-
}], hasPermissionType: [{
|
|
39
|
-
type: Input
|
|
40
|
-
}] } });
|
|
41
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGVybWlzc2lvbi5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy91bmlwaW4tYW5ndWxhci9zcmMvbGliL21vZHVsZXMvcGVybWlzc2lvbi9kaXJlY3RpdmUvcGVybWlzc2lvbi5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQWlDLE1BQU0sZUFBZSxDQUFDOzs7QUFnQmhGLE1BQU0sT0FBTyxtQkFBbUI7SUFxQjlCLElBQWEsYUFBYSxDQUFDLENBQVM7UUFDbEMsSUFBSSxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUM7SUFDbEIsQ0FBQztJQU1ELElBQWEsa0JBQWtCLENBQUMsQ0FBUztRQUN2QyxJQUFJLENBQUMsS0FBSyxHQUFHLENBQUMsQ0FBQztJQUNqQixDQUFDO0lBTUQsSUFBYSxpQkFBaUIsQ0FBQyxDQUFTO1FBQUcsQ0FBQztRQUMxQyxJQUFJLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLEtBQUssRUFBRSxJQUFJLENBQUMsTUFBTSxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUM7WUFDdkUsSUFBSSxDQUFDLGFBQWEsQ0FBQyxrQkFBa0IsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUM7WUFDeEQsT0FBTztRQUNULENBQUM7UUFFRCxJQUFJLENBQUMsYUFBYSxDQUFDLEtBQUssRUFBRSxDQUFDO0lBQzdCLENBQUM7SUFFRCxZQUNxQixXQUE2QixFQUM3QixhQUErQixFQUMvQixpQkFBb0M7UUFGcEMsZ0JBQVcsR0FBWCxXQUFXLENBQWtCO1FBQzdCLGtCQUFhLEdBQWIsYUFBYSxDQUFrQjtRQUMvQixzQkFBaUIsR0FBakIsaUJBQWlCLENBQW1CO1FBbkMvQyxVQUFLLEdBQVcsUUFBUSxDQUFDO0lBb0MvQixDQUFDOzhHQWxETSxtQkFBbUI7a0dBQW5CLG1CQUFtQjs7MkZBQW5CLG1CQUFtQjtrQkFKL0IsU0FBUzttQkFBQztvQkFDVCxVQUFVLEVBQUUsSUFBSTtvQkFDaEIsUUFBUSxFQUFFLGlCQUFpQjtpQkFDNUI7K0lBc0JjLGFBQWE7c0JBQXpCLEtBQUs7Z0JBUU8sa0JBQWtCO3NCQUE5QixLQUFLO2dCQVFPLGlCQUFpQjtzQkFBN0IsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERpcmVjdGl2ZSwgSW5wdXQsIFRlbXBsYXRlUmVmLCBWaWV3Q29udGFpbmVyUmVmIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBQZXJtaXNzaW9uU2VydmljZSB9IGZyb20gJy4uL3NlcnZpY2VzL3Blcm1pc3Npb24uc2VydmljZSc7XG5cbi8qKlxuICogVGhlIGBQZXJtaXNzaW9uRGlyZWN0aXZlYCBpcyBhIGRpcmVjdGl2ZSB0aGF0IGNvbmRpdGlvbmFsbHkgcmVuZGVycyBjb250ZW50IGJhc2VkIG9uIHVzZXIgcGVybWlzc2lvbnMuXG4gKiBgU2NvcGVgIHBhcmFtIGlzIGRlZmF1bHQgdG8gYEdMT0JBTGBcbiAqIEBzZWxlY3RvciAnW2hhc1Blcm1pc3Npb25dJ1xuICogQGV4YW1wbGVcbiAqIGBgYGh0bWxcbiAqIDxkaXYgKmhhc1Blcm1pc3Npb249XCInUE9TVF9BVURJVCc7IHR5cGU6ICdSRUFEJzsgc2NvcGU6ICdNRVJDSEFOVCdcIj48L2Rpdj5cbiAqIGBgYFxuICovXG5ARGlyZWN0aXZlKHtcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgc2VsZWN0b3I6ICdbaGFzUGVybWlzc2lvbl0nXG59KVxuZXhwb3J0IGNsYXNzIFBlcm1pc3Npb25EaXJlY3RpdmUge1xuICBcbiAgLyoqXG4gICAqIFRoZSBtb2R1bGUgbmFtZSBmb3Igd2hpY2ggcGVybWlzc2lvbnMgYXJlIGJlaW5nIGNoZWNrZWQuXG4gICAqIEB0eXBlIHtzdHJpbmd9XG4gICAqIEBkZWZhdWx0IHtudWxsfVxuICAgKi9cbiAgcHJvdGVjdGVkIG1vZHVsZSE6IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIHBlcm1pc3Npb24gc2NvcGUuXG4gICAqIEB0eXBlIHtzdHJpbmd9XG4gICAqIEBkZWZhdWx0IHsnR0xPQkFMJ31cbiAgICovXG4gIHByb3RlY3RlZCBzY29wZTogc3RyaW5nID0gJ0dMT0JBTCc7XG5cbiAgLyoqXG4gICAqIFNldHMgdGhlIG1vZHVsZSBuYW1lIGZvciB3aGljaCBwZXJtaXNzaW9ucyBhcmUgYmVpbmcgY2hlY2tlZC5cbiAgICogQGV4YW1wbGUgJ1BPU1RfQVVESVQnLlxuICAgKiBAcGFyYW0ge3N0cmluZ30gbSAtIFRoZSBtb2R1bGUgbmFtZS5cbiAgICovXG4gIEBJbnB1dCgpIHNldCBoYXNQZXJtaXNzaW9uKG06IHN0cmluZykge1xuICAgIHRoaXMubW9kdWxlID0gbTsgXG4gIH1cblxuICAvKipcbiAgICogU2V0cyB0aGUgcGVybWlzc2lvbiBzY29wZS4gRGVmYXVsdCBpcyAnR0xPQkFMJy5cbiAgICogQHBhcmFtIHtzdHJpbmd9IHMgLSBUaGUgcGVybWlzc2lvbiBzY29wZS5cbiAgICovXG4gIEBJbnB1dCgpIHNldCBoYXNQZXJtaXNzaW9uU2NvcGUoczogc3RyaW5nKSB7IFxuICAgIHRoaXMuc2NvcGUgPSBzOyBcbiAgfVxuXG4gIC8qKlxuICAgKiBTZXRzIHRoZSBwZXJtaXNzaW9uIHR5cGUgYW5kIGNvbmRpdGlvbmFsbHkgcmVuZGVycyBjb250ZW50IGJhc2VkIG9uIHVzZXIgcGVybWlzc2lvbnMuXG4gICAqIEBwYXJhbSB7c3RyaW5nfSB0IC0gVGhlIHBlcm1pc3Npb24gdHlwZSwgZS5nLiwgJ1JFQUQnLCAnV1JJVEUnLlxuICAgKi9cbiAgQElucHV0KCkgc2V0IGhhc1Blcm1pc3Npb25UeXBlKHQ6IHN0cmluZykgeztcbiAgICBpZiAodGhpcy5wZXJtaXNzaW9uU2VydmljZS5jaGVja1Blcm1pc3Npb24odGhpcy5zY29wZSwgdGhpcy5tb2R1bGUsIHQpKSB7XG4gICAgICB0aGlzLnZpZXdDb250YWluZXIuY3JlYXRlRW1iZWRkZWRWaWV3KHRoaXMudGVtcGxhdGVSZWYpO1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHRoaXMudmlld0NvbnRhaW5lci5jbGVhcigpO1xuICB9XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJvdGVjdGVkIHJlYWRvbmx5IHRlbXBsYXRlUmVmOiBUZW1wbGF0ZVJlZjxhbnk+LFxuICAgIHByb3RlY3RlZCByZWFkb25seSB2aWV3Q29udGFpbmVyOiBWaWV3Q29udGFpbmVyUmVmLFxuICAgIHByb3RlY3RlZCByZWFkb25seSBwZXJtaXNzaW9uU2VydmljZTogUGVybWlzc2lvblNlcnZpY2VcbiAgKSB7IH1cbn1cbiJdfQ==
|
|
@@ -1,26 +0,0 @@
|
|
|
1
|
-
import { inject } from '@angular/core';
|
|
2
|
-
import { Location } from '@angular/common';
|
|
3
|
-
import { Router } from '@angular/router';
|
|
4
|
-
import { PermissionService } from '../services/permission.service';
|
|
5
|
-
export const PermissionGuard = (route) => {
|
|
6
|
-
const router = inject(Router);
|
|
7
|
-
const location = inject(Location);
|
|
8
|
-
const permissionService = inject(PermissionService);
|
|
9
|
-
const permissions = route.data['requiredPermissions'];
|
|
10
|
-
if (!permissions || permissions.length === 0)
|
|
11
|
-
throw new Error('Invalid config: requiredPermissions is a required parameter in route data for PermissionGuard');
|
|
12
|
-
if (!permissionService.isInitiated) {
|
|
13
|
-
router.navigate(['loading'], { queryParams: { url: `${location.path() + window.location.hash}` } });
|
|
14
|
-
return false;
|
|
15
|
-
}
|
|
16
|
-
if (permissions) {
|
|
17
|
-
for (let i = 0; i < permissions.length; i++) {
|
|
18
|
-
const { scope, module, type } = permissions[i];
|
|
19
|
-
if (permissionService.checkPermission(scope, module, type))
|
|
20
|
-
return true;
|
|
21
|
-
}
|
|
22
|
-
}
|
|
23
|
-
router.navigate(['401']);
|
|
24
|
-
return false;
|
|
25
|
-
};
|
|
26
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGVybWlzc2lvbi5ndWFyZC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3VuaXBpbi1hbmd1bGFyL3NyYy9saWIvbW9kdWxlcy9wZXJtaXNzaW9uL2d1YXJkcy9wZXJtaXNzaW9uLmd1YXJkLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDdkMsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQzNDLE9BQU8sRUFBeUMsTUFBTSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDaEYsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFFbkUsTUFBTSxDQUFDLE1BQU0sZUFBZSxHQUFrQixDQUFDLEtBQTZCLEVBQVcsRUFBRTtJQUV2RixNQUFNLE1BQU0sR0FBVyxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDdEMsTUFBTSxRQUFRLEdBQWEsTUFBTSxDQUFDLFFBQVEsQ0FBQyxDQUFDO0lBQzVDLE1BQU0saUJBQWlCLEdBQXNCLE1BQU0sQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO0lBRXZFLE1BQU0sV0FBVyxHQUFzRCxLQUFLLENBQUMsSUFBSSxDQUFDLHFCQUFxQixDQUFDLENBQUM7SUFFekcsSUFBSSxDQUFDLFdBQVcsSUFBSSxXQUFXLENBQUMsTUFBTSxLQUFLLENBQUM7UUFBRSxNQUFNLElBQUksS0FBSyxDQUFDLCtGQUErRixDQUFDLENBQUM7SUFFL0osSUFBSSxDQUFDLGlCQUFpQixDQUFDLFdBQVcsRUFBRSxDQUFDO1FBQ25DLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBRSxTQUFTLENBQUUsRUFBRSxFQUFFLFdBQVcsRUFBRSxFQUFFLEdBQUcsRUFBRSxHQUFJLFFBQVEsQ0FBQyxJQUFJLEVBQUUsR0FBRyxNQUFNLENBQUMsUUFBUSxDQUFDLElBQUssRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDO1FBQ3hHLE9BQU8sS0FBSyxDQUFDO0lBQ2YsQ0FBQztJQUVELElBQUksV0FBVyxFQUFFLENBQUM7UUFDaEIsS0FBSyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLFdBQVcsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQztZQUM1QyxNQUFNLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUUsR0FBRyxXQUFXLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDL0MsSUFBSSxpQkFBaUIsQ0FBQyxlQUFlLENBQUMsS0FBSyxFQUFFLE1BQU0sRUFBRSxJQUFJLENBQUM7Z0JBQUUsT0FBTyxJQUFJLENBQUM7UUFDMUUsQ0FBQztJQUNILENBQUM7SUFFRCxNQUFNLENBQUMsUUFBUSxDQUFDLENBQUUsS0FBSyxDQUFFLENBQUMsQ0FBQztJQUMzQixPQUFPLEtBQUssQ0FBQztBQUNmLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGluamVjdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgTG9jYXRpb24gfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgQWN0aXZhdGVkUm91dGVTbmFwc2hvdCwgQ2FuQWN0aXZhdGVGbiwgUm91dGVyIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcbmltcG9ydCB7IFBlcm1pc3Npb25TZXJ2aWNlIH0gZnJvbSAnLi4vc2VydmljZXMvcGVybWlzc2lvbi5zZXJ2aWNlJztcblxuZXhwb3J0IGNvbnN0IFBlcm1pc3Npb25HdWFyZDogQ2FuQWN0aXZhdGVGbiA9IChyb3V0ZTogQWN0aXZhdGVkUm91dGVTbmFwc2hvdCk6IGJvb2xlYW4gPT4ge1xuICBcbiAgY29uc3Qgcm91dGVyOiBSb3V0ZXIgPSBpbmplY3QoUm91dGVyKTtcbiAgY29uc3QgbG9jYXRpb246IExvY2F0aW9uID0gaW5qZWN0KExvY2F0aW9uKTtcbiAgY29uc3QgcGVybWlzc2lvblNlcnZpY2U6IFBlcm1pc3Npb25TZXJ2aWNlID0gaW5qZWN0KFBlcm1pc3Npb25TZXJ2aWNlKTtcblxuICBjb25zdCBwZXJtaXNzaW9uczogeyBzY29wZTogc3RyaW5nLCBtb2R1bGU6IHN0cmluZywgdHlwZTogc3RyaW5nIH1bXSA9IHJvdXRlLmRhdGFbJ3JlcXVpcmVkUGVybWlzc2lvbnMnXTtcbiAgXG4gIGlmICghcGVybWlzc2lvbnMgfHwgcGVybWlzc2lvbnMubGVuZ3RoID09PSAwKSB0aHJvdyBuZXcgRXJyb3IoJ0ludmFsaWQgY29uZmlnOiByZXF1aXJlZFBlcm1pc3Npb25zIGlzIGEgcmVxdWlyZWQgcGFyYW1ldGVyIGluIHJvdXRlIGRhdGEgZm9yIFBlcm1pc3Npb25HdWFyZCcpO1xuXG4gIGlmICghcGVybWlzc2lvblNlcnZpY2UuaXNJbml0aWF0ZWQpIHtcbiAgICByb3V0ZXIubmF2aWdhdGUoWyAnbG9hZGluZycgXSwgeyBxdWVyeVBhcmFtczogeyB1cmw6IGAkeyBsb2NhdGlvbi5wYXRoKCkgKyB3aW5kb3cubG9jYXRpb24uaGFzaCB9YCB9IH0pO1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuXG4gIGlmIChwZXJtaXNzaW9ucykge1xuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgcGVybWlzc2lvbnMubGVuZ3RoOyBpKyspIHtcbiAgICAgIGNvbnN0IHsgc2NvcGUsIG1vZHVsZSwgdHlwZSB9ID0gcGVybWlzc2lvbnNbaV07XG4gICAgICBpZiAocGVybWlzc2lvblNlcnZpY2UuY2hlY2tQZXJtaXNzaW9uKHNjb3BlLCBtb2R1bGUsIHR5cGUpKSByZXR1cm4gdHJ1ZTtcbiAgICB9XG4gIH1cblxuICByb3V0ZXIubmF2aWdhdGUoWyAnNDAxJyBdKTtcbiAgcmV0dXJuIGZhbHNlO1xufTtcbiJdfQ==
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
export { LoadingPage } from './pages/loading/loading.page';
|
|
2
|
-
export { PermissionDirective } from './directive/permission.directive';
|
|
3
|
-
export { PermissionGuard } from './guards/permission.guard';
|
|
4
|
-
export { PermissionModule } from './permission.module';
|
|
5
|
-
export { PermissionService } from './services/permission.service';
|
|
6
|
-
export { UnauthorizedPage } from './pages/401/unauthorized.page';
|
|
7
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy91bmlwaW4tYW5ndWxhci9zcmMvbGliL21vZHVsZXMvcGVybWlzc2lvbi9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFDM0QsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sa0NBQWtDLENBQUM7QUFDdkUsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQzVELE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ3ZELE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBQ2xFLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLCtCQUErQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IHsgTG9hZGluZ1BhZ2UgfSBmcm9tICcuL3BhZ2VzL2xvYWRpbmcvbG9hZGluZy5wYWdlJztcbmV4cG9ydCB7IFBlcm1pc3Npb25EaXJlY3RpdmUgfSBmcm9tICcuL2RpcmVjdGl2ZS9wZXJtaXNzaW9uLmRpcmVjdGl2ZSc7XG5leHBvcnQgeyBQZXJtaXNzaW9uR3VhcmQgfSBmcm9tICcuL2d1YXJkcy9wZXJtaXNzaW9uLmd1YXJkJztcbmV4cG9ydCB7IFBlcm1pc3Npb25Nb2R1bGUgfSBmcm9tICcuL3Blcm1pc3Npb24ubW9kdWxlJztcbmV4cG9ydCB7IFBlcm1pc3Npb25TZXJ2aWNlIH0gZnJvbSAnLi9zZXJ2aWNlcy9wZXJtaXNzaW9uLnNlcnZpY2UnO1xuZXhwb3J0IHsgVW5hdXRob3JpemVkUGFnZSB9IGZyb20gJy4vcGFnZXMvNDAxL3VuYXV0aG9yaXplZC5wYWdlJztcbiJdfQ==
|
|
@@ -1,15 +0,0 @@
|
|
|
1
|
-
import { Component } from '@angular/core';
|
|
2
|
-
import { IonicModule } from '@ionic/angular';
|
|
3
|
-
import * as i0 from "@angular/core";
|
|
4
|
-
import * as i1 from "@ionic/angular";
|
|
5
|
-
export class UnauthorizedPage {
|
|
6
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.4", ngImport: i0, type: UnauthorizedPage, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
7
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.4", type: UnauthorizedPage, isStandalone: true, selector: "up-unauthorized", host: { classAttribute: "d-flex flex-column align-items-center justify-content-center h-100 w-75 mx-auto" }, ngImport: i0, template: "<ion-icon name=\"lock-closed\" class=\"mb-4\" />\n<h3 class=\"text-center\">Oops! You're not authorized to access this page.</h3>\n<p class=\"text-center\">Please log in or re-check your permissions.</p>\n", styles: ["ion-icon{font-size:5rem}\n"], dependencies: [{ kind: "ngmodule", type: IonicModule }, { kind: "component", type: i1.IonIcon, selector: "ion-icon", inputs: ["color", "flipRtl", "icon", "ios", "lazy", "md", "mode", "name", "sanitize", "size", "src"] }] }); }
|
|
8
|
-
}
|
|
9
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.4", ngImport: i0, type: UnauthorizedPage, decorators: [{
|
|
10
|
-
type: Component,
|
|
11
|
-
args: [{ standalone: true, selector: 'up-unauthorized', host: {
|
|
12
|
-
class: 'd-flex flex-column align-items-center justify-content-center h-100 w-75 mx-auto'
|
|
13
|
-
}, imports: [IonicModule], template: "<ion-icon name=\"lock-closed\" class=\"mb-4\" />\n<h3 class=\"text-center\">Oops! You're not authorized to access this page.</h3>\n<p class=\"text-center\">Please log in or re-check your permissions.</p>\n", styles: ["ion-icon{font-size:5rem}\n"] }]
|
|
14
|
-
}] });
|
|
15
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidW5hdXRob3JpemVkLnBhZ2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy91bmlwaW4tYW5ndWxhci9zcmMvbGliL21vZHVsZXMvcGVybWlzc2lvbi9wYWdlcy80MDEvdW5hdXRob3JpemVkLnBhZ2UudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy91bmlwaW4tYW5ndWxhci9zcmMvbGliL21vZHVsZXMvcGVybWlzc2lvbi9wYWdlcy80MDEvdW5hdXRob3JpemVkLnBhZ2UuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzFDLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQzs7O0FBWTdDLE1BQU0sT0FBTyxnQkFBZ0I7OEdBQWhCLGdCQUFnQjtrR0FBaEIsZ0JBQWdCLHdMQ2I3QiwrTUFHQSxtRkRRYSxXQUFXOzsyRkFFWCxnQkFBZ0I7a0JBVjVCLFNBQVM7aUNBQ0ksSUFBSSxZQUNOLGlCQUFpQixRQUdyQjt3QkFDSixLQUFLLEVBQUUsaUZBQWlGO3FCQUN6RixXQUNRLENBQUUsV0FBVyxDQUFFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBJb25pY01vZHVsZSB9IGZyb20gJ0Bpb25pYy9hbmd1bGFyJztcblxuQENvbXBvbmVudCh7XG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIHNlbGVjdG9yOiAndXAtdW5hdXRob3JpemVkJyxcbiAgdGVtcGxhdGVVcmw6ICcuL3VuYXV0aG9yaXplZC5wYWdlLmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi91bmF1dGhvcml6ZWQucGFnZS5zY3NzJ10sXG4gIGhvc3Q6IHtcbiAgICBjbGFzczogJ2QtZmxleCBmbGV4LWNvbHVtbiBhbGlnbi1pdGVtcy1jZW50ZXIganVzdGlmeS1jb250ZW50LWNlbnRlciBoLTEwMCB3LTc1IG14LWF1dG8nXG4gIH0sXG4gIGltcG9ydHM6IFsgSW9uaWNNb2R1bGUgXVxufSlcbmV4cG9ydCBjbGFzcyBVbmF1dGhvcml6ZWRQYWdlIHsgfVxuIiwiPGlvbi1pY29uIG5hbWU9XCJsb2NrLWNsb3NlZFwiIGNsYXNzPVwibWItNFwiIC8+XG48aDMgY2xhc3M9XCJ0ZXh0LWNlbnRlclwiPk9vcHMhIFlvdSdyZSBub3QgYXV0aG9yaXplZCB0byBhY2Nlc3MgdGhpcyBwYWdlLjwvaDM+XG48cCBjbGFzcz1cInRleHQtY2VudGVyXCI+UGxlYXNlIGxvZyBpbiBvciByZS1jaGVjayB5b3VyIHBlcm1pc3Npb25zLjwvcD5cbiJdfQ==
|
|
@@ -1,52 +0,0 @@
|
|
|
1
|
-
import { Component, Inject } from '@angular/core';
|
|
2
|
-
import { IonicModule } from '@ionic/angular';
|
|
3
|
-
import * as i0 from "@angular/core";
|
|
4
|
-
import * as i1 from "@angular/router";
|
|
5
|
-
import * as i2 from "../../services/permission.service";
|
|
6
|
-
import * as i3 from "@ionic/angular";
|
|
7
|
-
export class LoadingPage {
|
|
8
|
-
constructor(config, router, route, permissionService) {
|
|
9
|
-
this.config = config;
|
|
10
|
-
this.router = router;
|
|
11
|
-
this.route = route;
|
|
12
|
-
this.permissionService = permissionService;
|
|
13
|
-
}
|
|
14
|
-
ngOnInit() {
|
|
15
|
-
const subjectGuid = localStorage.getItem(this.config.subjectGuidStorageKey || 'userGuid');
|
|
16
|
-
if (!subjectGuid) {
|
|
17
|
-
this.router.navigate(['401']);
|
|
18
|
-
return;
|
|
19
|
-
}
|
|
20
|
-
const permCodeList = [];
|
|
21
|
-
this.sub = this.permissionService.getPermissions({ pageSize: 1000, subjectGuid, permModule: this.config.permModule, permType: this.config.permType }, this.config.fetchPolicy).subscribe({
|
|
22
|
-
next: ({ data: { authMsPermission: { data } } }) => {
|
|
23
|
-
data.forEach(({ permCode }) => {
|
|
24
|
-
if (!permCode)
|
|
25
|
-
return;
|
|
26
|
-
permCodeList.push(permCode);
|
|
27
|
-
});
|
|
28
|
-
this.permissionService.isInitiated = true;
|
|
29
|
-
this.permissionService.setPermission(permCodeList, this.config.permModule);
|
|
30
|
-
this.router.navigateByUrl(this.route.snapshot.queryParamMap.get('url') ?? '');
|
|
31
|
-
},
|
|
32
|
-
error: () => this.router.navigate(['401'])
|
|
33
|
-
});
|
|
34
|
-
}
|
|
35
|
-
ngOnDestroy() {
|
|
36
|
-
this.sub?.unsubscribe();
|
|
37
|
-
}
|
|
38
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.4", ngImport: i0, type: LoadingPage, deps: [{ token: 'LOADING_CONFIG' }, { token: i1.Router }, { token: i1.ActivatedRoute }, { token: i2.PermissionService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
39
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.4", type: LoadingPage, isStandalone: true, selector: "up-loading", host: { classAttribute: "d-flex flex-column align-items-center justify-content-center h-100 w-75 mx-auto" }, ngImport: i0, template: "<ion-spinner class=\"mb-4\" />\n<h3 class=\"text-center\">Please wait, we're preparing the applet. Drink water or coffee while waiting.</h3>\n", styles: ["ion-spinner{height:50px;width:50px}\n"], dependencies: [{ kind: "ngmodule", type: IonicModule }, { kind: "component", type: i3.IonSpinner, selector: "ion-spinner", inputs: ["color", "duration", "name", "paused"] }] }); }
|
|
40
|
-
}
|
|
41
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.4", ngImport: i0, type: LoadingPage, decorators: [{
|
|
42
|
-
type: Component,
|
|
43
|
-
args: [{ standalone: true, selector: 'up-loading', host: {
|
|
44
|
-
class: 'd-flex flex-column align-items-center justify-content-center h-100 w-75 mx-auto'
|
|
45
|
-
}, imports: [
|
|
46
|
-
IonicModule
|
|
47
|
-
], template: "<ion-spinner class=\"mb-4\" />\n<h3 class=\"text-center\">Please wait, we're preparing the applet. Drink water or coffee while waiting.</h3>\n", styles: ["ion-spinner{height:50px;width:50px}\n"] }]
|
|
48
|
-
}], ctorParameters: () => [{ type: undefined, decorators: [{
|
|
49
|
-
type: Inject,
|
|
50
|
-
args: ['LOADING_CONFIG']
|
|
51
|
-
}] }, { type: i1.Router }, { type: i1.ActivatedRoute }, { type: i2.PermissionService }] });
|
|
52
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9hZGluZy5wYWdlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdW5pcGluLWFuZ3VsYXIvc3JjL2xpYi9tb2R1bGVzL3Blcm1pc3Npb24vcGFnZXMvbG9hZGluZy9sb2FkaW5nLnBhZ2UudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy91bmlwaW4tYW5ndWxhci9zcmMvbGliL21vZHVsZXMvcGVybWlzc2lvbi9wYWdlcy9sb2FkaW5nL2xvYWRpbmcucGFnZS5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFxQixNQUFNLGVBQWUsQ0FBQztBQUdyRSxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7Ozs7O0FBZ0I3QyxNQUFNLE9BQU8sV0FBVztJQUl0QixZQUM0QyxNQUt6QyxFQUNrQixNQUFjLEVBQ2QsS0FBcUIsRUFDckIsaUJBQW9DO1FBUmIsV0FBTSxHQUFOLE1BQU0sQ0FLL0M7UUFDa0IsV0FBTSxHQUFOLE1BQU0sQ0FBUTtRQUNkLFVBQUssR0FBTCxLQUFLLENBQWdCO1FBQ3JCLHNCQUFpQixHQUFqQixpQkFBaUIsQ0FBbUI7SUFDckQsQ0FBQztJQUVFLFFBQVE7UUFDYixNQUFNLFdBQVcsR0FBRyxZQUFZLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMscUJBQXFCLElBQUksVUFBVSxDQUFDLENBQUM7UUFDMUYsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDO1lBQ2pCLElBQUksQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLENBQUUsS0FBSyxDQUFFLENBQUMsQ0FBQztZQUNoQyxPQUFPO1FBQ1QsQ0FBQztRQUVELE1BQU0sWUFBWSxHQUFhLEVBQUUsQ0FBQztRQUNsQyxJQUFJLENBQUMsR0FBRyxHQUFHLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxjQUFjLENBQUMsRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFFLFdBQVcsRUFBRSxVQUFVLEVBQUUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxVQUFVLEVBQUUsUUFBUSxFQUFFLElBQUksQ0FBQyxNQUFNLENBQUMsUUFBUSxFQUFFLEVBQUUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxXQUFXLENBQUMsQ0FBQyxTQUFTLENBQUM7WUFDdkwsSUFBSSxFQUFFLENBQUMsRUFBRSxJQUFJLEVBQUUsRUFBRSxnQkFBZ0IsRUFBRSxFQUFFLElBQUksRUFBRSxFQUFDLEVBQUMsRUFBRSxFQUFFO2dCQUMvQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUMsRUFBRSxRQUFRLEVBQUUsRUFBRSxFQUFFO29CQUM1QixJQUFJLENBQUMsUUFBUTt3QkFBRSxPQUFPO29CQUV0QixZQUFZLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO2dCQUM5QixDQUFDLENBQUMsQ0FBQztnQkFFSCxJQUFJLENBQUMsaUJBQWlCLENBQUMsV0FBVyxHQUFHLElBQUksQ0FBQztnQkFDMUMsSUFBSSxDQUFDLGlCQUFpQixDQUFDLGFBQWEsQ0FBQyxZQUFZLEVBQUUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxVQUFVLENBQUMsQ0FBQztnQkFFM0UsSUFBSSxDQUFDLE1BQU0sQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUMsYUFBYSxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsSUFBRyxFQUFFLENBQUMsQ0FBQztZQUMvRSxDQUFDO1lBQ0QsS0FBSyxFQUFFLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLENBQUUsS0FBSyxDQUFFLENBQUM7U0FDN0MsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVNLFdBQVc7UUFDaEIsSUFBSSxDQUFDLEdBQUcsRUFBRSxXQUFXLEVBQUUsQ0FBQztJQUMxQixDQUFDOzhHQTNDVSxXQUFXLGtCQUtaLGdCQUFnQjtrR0FMZixXQUFXLG1MQ25CeEIsZ0pBRUEsOEZEY0ksV0FBVzs7MkZBR0YsV0FBVztrQkFadkIsU0FBUztpQ0FDSSxJQUFJLFlBQ04sWUFBWSxRQUdoQjt3QkFDSixLQUFLLEVBQUUsaUZBQWlGO3FCQUN6RixXQUNRO3dCQUNQLFdBQVc7cUJBQ1o7OzBCQU9FLE1BQU07MkJBQUMsZ0JBQWdCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBJbmplY3QsIE9uRGVzdHJveSwgT25Jbml0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBBY3RpdmF0ZWRSb3V0ZSwgUm91dGVyIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcbmltcG9ydCB7IFN1YnNjcmlwdGlvbiB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgSW9uaWNNb2R1bGUgfSBmcm9tICdAaW9uaWMvYW5ndWxhcic7XG5pbXBvcnQgeyBGZXRjaFBvbGljeSB9IGZyb20gJ0BhcG9sbG8vY2xpZW50L2NvcmUnO1xuaW1wb3J0IHsgUGVybWlzc2lvblNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9wZXJtaXNzaW9uLnNlcnZpY2UnO1xuXG5AQ29tcG9uZW50KHtcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgc2VsZWN0b3I6ICd1cC1sb2FkaW5nJyxcbiAgc3R5bGVVcmw6ICcuL2xvYWRpbmcucGFnZS5zY3NzJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2xvYWRpbmcucGFnZS5odG1sJyxcbiAgaG9zdDoge1xuICAgIGNsYXNzOiAnZC1mbGV4IGZsZXgtY29sdW1uIGFsaWduLWl0ZW1zLWNlbnRlciBqdXN0aWZ5LWNvbnRlbnQtY2VudGVyIGgtMTAwIHctNzUgbXgtYXV0bydcbiAgfSxcbiAgaW1wb3J0czogW1xuICAgIElvbmljTW9kdWxlXG4gIF1cbn0pXG5leHBvcnQgY2xhc3MgTG9hZGluZ1BhZ2UgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSB7XG5cbiAgcHJvdGVjdGVkIHN1Yj86IFN1YnNjcmlwdGlvbjtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBASW5qZWN0KCdMT0FESU5HX0NPTkZJRycpIHB1YmxpYyByZWFkb25seSBjb25maWc6IHtcbiAgICAgIHBlcm1Nb2R1bGU6IHN0cmluZ1tdLFxuICAgICAgcGVybVR5cGU6IHN0cmluZ1tdLFxuICAgICAgZmV0Y2hQb2xpY3k/OiBGZXRjaFBvbGljeVxuICAgICAgc3ViamVjdEd1aWRTdG9yYWdlS2V5Pzogc3RyaW5nXG4gICAgfSxcbiAgICBwcm90ZWN0ZWQgcmVhZG9ubHkgcm91dGVyOiBSb3V0ZXIsXG4gICAgcHJvdGVjdGVkIHJlYWRvbmx5IHJvdXRlOiBBY3RpdmF0ZWRSb3V0ZSxcbiAgICBwcm90ZWN0ZWQgcmVhZG9ubHkgcGVybWlzc2lvblNlcnZpY2U6IFBlcm1pc3Npb25TZXJ2aWNlXG4gICkgeyB9XG5cbiAgcHVibGljIG5nT25Jbml0KCk6IHZvaWR7XG4gICAgY29uc3Qgc3ViamVjdEd1aWQgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmNvbmZpZy5zdWJqZWN0R3VpZFN0b3JhZ2VLZXkgfHwgJ3VzZXJHdWlkJyk7XG4gICAgaWYgKCFzdWJqZWN0R3VpZCkge1xuICAgICAgdGhpcy5yb3V0ZXIubmF2aWdhdGUoWyAnNDAxJyBdKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgXG4gICAgY29uc3QgcGVybUNvZGVMaXN0OiBzdHJpbmdbXSA9IFtdO1xuICAgIHRoaXMuc3ViID0gdGhpcy5wZXJtaXNzaW9uU2VydmljZS5nZXRQZXJtaXNzaW9ucyh7IHBhZ2VTaXplOiAxMDAwLCBzdWJqZWN0R3VpZCwgcGVybU1vZHVsZTogdGhpcy5jb25maWcucGVybU1vZHVsZSwgcGVybVR5cGU6IHRoaXMuY29uZmlnLnBlcm1UeXBlIH0sIHRoaXMuY29uZmlnLmZldGNoUG9saWN5KS5zdWJzY3JpYmUoe1xuICAgICAgbmV4dDogKHsgZGF0YTogeyBhdXRoTXNQZXJtaXNzaW9uOiB7IGRhdGEgfX19KSA9PiB7XG4gICAgICAgIGRhdGEuZm9yRWFjaCgoeyBwZXJtQ29kZSB9KSA9PiB7XG4gICAgICAgICAgaWYgKCFwZXJtQ29kZSkgcmV0dXJuO1xuXG4gICAgICAgICAgcGVybUNvZGVMaXN0LnB1c2gocGVybUNvZGUpO1xuICAgICAgICB9KTtcblxuICAgICAgICB0aGlzLnBlcm1pc3Npb25TZXJ2aWNlLmlzSW5pdGlhdGVkID0gdHJ1ZTtcbiAgICAgICAgdGhpcy5wZXJtaXNzaW9uU2VydmljZS5zZXRQZXJtaXNzaW9uKHBlcm1Db2RlTGlzdCwgdGhpcy5jb25maWcucGVybU1vZHVsZSk7XG5cbiAgICAgICAgdGhpcy5yb3V0ZXIubmF2aWdhdGVCeVVybCh0aGlzLnJvdXRlLnNuYXBzaG90LnF1ZXJ5UGFyYW1NYXAuZ2V0KCd1cmwnKT8/ICcnKTtcbiAgICAgIH0sXG4gICAgICBlcnJvcjogKCkgPT4gdGhpcy5yb3V0ZXIubmF2aWdhdGUoWyAnNDAxJyBdKVxuICAgIH0pO1xuICB9XG5cbiAgcHVibGljIG5nT25EZXN0cm95KCk6IHZvaWR7XG4gICAgdGhpcy5zdWI/LnVuc3Vic2NyaWJlKCk7XG4gIH1cbn1cbiIsIjxpb24tc3Bpbm5lciBjbGFzcz1cIm1iLTRcIiAvPlxuPGgzIGNsYXNzPVwidGV4dC1jZW50ZXJcIj5QbGVhc2Ugd2FpdCwgd2UncmUgcHJlcGFyaW5nIHRoZSBhcHBsZXQuIERyaW5rIHdhdGVyIG9yIGNvZmZlZSB3aGlsZSB3YWl0aW5nLjwvaDM+XG4iXX0=
|
|
@@ -1,20 +0,0 @@
|
|
|
1
|
-
import { NgModule } from '@angular/core';
|
|
2
|
-
import { PermissionDirective } from './directive/permission.directive';
|
|
3
|
-
import * as i0 from "@angular/core";
|
|
4
|
-
export class PermissionModule {
|
|
5
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.4", ngImport: i0, type: PermissionModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
6
|
-
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.4", ngImport: i0, type: PermissionModule, imports: [PermissionDirective], exports: [PermissionDirective] }); }
|
|
7
|
-
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.4", ngImport: i0, type: PermissionModule }); }
|
|
8
|
-
}
|
|
9
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.4", ngImport: i0, type: PermissionModule, decorators: [{
|
|
10
|
-
type: NgModule,
|
|
11
|
-
args: [{
|
|
12
|
-
imports: [
|
|
13
|
-
PermissionDirective
|
|
14
|
-
],
|
|
15
|
-
exports: [
|
|
16
|
-
PermissionDirective
|
|
17
|
-
]
|
|
18
|
-
}]
|
|
19
|
-
}] });
|
|
20
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGVybWlzc2lvbi5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy91bmlwaW4tYW5ndWxhci9zcmMvbGliL21vZHVsZXMvcGVybWlzc2lvbi9wZXJtaXNzaW9uLm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3pDLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGtDQUFrQyxDQUFDOztBQVV2RSxNQUFNLE9BQU8sZ0JBQWdCOzhHQUFoQixnQkFBZ0I7K0dBQWhCLGdCQUFnQixZQU56QixtQkFBbUIsYUFHbkIsbUJBQW1COytHQUdWLGdCQUFnQjs7MkZBQWhCLGdCQUFnQjtrQkFSNUIsUUFBUTttQkFBQztvQkFDUixPQUFPLEVBQUU7d0JBQ1AsbUJBQW1CO3FCQUNwQjtvQkFDRCxPQUFPLEVBQUU7d0JBQ1AsbUJBQW1CO3FCQUNwQjtpQkFDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE5nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBQZXJtaXNzaW9uRGlyZWN0aXZlIH0gZnJvbSAnLi9kaXJlY3RpdmUvcGVybWlzc2lvbi5kaXJlY3RpdmUnO1xuXG5ATmdNb2R1bGUoe1xuICBpbXBvcnRzOiBbXG4gICAgUGVybWlzc2lvbkRpcmVjdGl2ZVxuICBdLFxuICBleHBvcnRzOiBbXG4gICAgUGVybWlzc2lvbkRpcmVjdGl2ZVxuICBdXG59KVxuZXhwb3J0IGNsYXNzIFBlcm1pc3Npb25Nb2R1bGUgeyB9XG4iXX0=
|
|
@@ -1,47 +0,0 @@
|
|
|
1
|
-
import { Injectable } from '@angular/core';
|
|
2
|
-
import { Subject } from 'rxjs';
|
|
3
|
-
import { gql } from 'apollo-angular';
|
|
4
|
-
import * as i0 from "@angular/core";
|
|
5
|
-
import * as i1 from "apollo-angular";
|
|
6
|
-
export class PermissionService {
|
|
7
|
-
constructor(apollo) {
|
|
8
|
-
this.apollo = apollo;
|
|
9
|
-
this.permModules = new Subject();
|
|
10
|
-
this.isInitiated = false;
|
|
11
|
-
this.permissions = new Map();
|
|
12
|
-
}
|
|
13
|
-
setPermission(permCodes, permModules = []) {
|
|
14
|
-
for (let i = 0; i < permCodes.length; i++)
|
|
15
|
-
this.permissions.set(permCodes[i], true);
|
|
16
|
-
this.permModules.next(permModules);
|
|
17
|
-
}
|
|
18
|
-
checkPermission(scope, module, type) {
|
|
19
|
-
if (this.permissions.has(`${scope}.${module}.ADMIN`))
|
|
20
|
-
return true;
|
|
21
|
-
if (this.permissions.has(`${scope}.${module}.${type}`))
|
|
22
|
-
return true;
|
|
23
|
-
return false;
|
|
24
|
-
}
|
|
25
|
-
getPermissions(filter, fetchPolicy) {
|
|
26
|
-
return this.apollo.query({
|
|
27
|
-
fetchPolicy,
|
|
28
|
-
variables: { filter },
|
|
29
|
-
query: gql `
|
|
30
|
-
query QueryPermission($filter: PermissionFilter!) {
|
|
31
|
-
authMsPermission(filter: $filter) {
|
|
32
|
-
data { permCode }
|
|
33
|
-
}
|
|
34
|
-
}
|
|
35
|
-
`
|
|
36
|
-
});
|
|
37
|
-
}
|
|
38
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.4", ngImport: i0, type: PermissionService, deps: [{ token: i1.Apollo }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
39
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.4", ngImport: i0, type: PermissionService, providedIn: 'root' }); }
|
|
40
|
-
}
|
|
41
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.4", ngImport: i0, type: PermissionService, decorators: [{
|
|
42
|
-
type: Injectable,
|
|
43
|
-
args: [{
|
|
44
|
-
providedIn: 'root'
|
|
45
|
-
}]
|
|
46
|
-
}], ctorParameters: () => [{ type: i1.Apollo }] });
|
|
47
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGVybWlzc2lvbi5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdW5pcGluLWFuZ3VsYXIvc3JjL2xpYi9tb2R1bGVzL3Blcm1pc3Npb24vc2VydmljZXMvcGVybWlzc2lvbi5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0MsT0FBTyxFQUFjLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUUzQyxPQUFPLEVBQVUsR0FBRyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7OztBQU03QyxNQUFNLE9BQU8saUJBQWlCO0lBbUI1QixZQUNxQixNQUFjO1FBQWQsV0FBTSxHQUFOLE1BQU0sQ0FBUTtRQVhuQixnQkFBVyxHQUFzQixJQUFJLE9BQU8sRUFBWSxDQUFDO1FBT2xFLGdCQUFXLEdBQVksS0FBSyxDQUFDO1FBQzFCLGdCQUFXLEdBQXlCLElBQUksR0FBRyxFQUFFLENBQUM7SUFJcEQsQ0FBQztJQU9FLGFBQWEsQ0FBQyxTQUFtQixFQUFFLGNBQXdCLEVBQUU7UUFDbEUsS0FBSyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLFNBQVMsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxFQUFFO1lBQUUsSUFBSSxDQUFDLFdBQVcsQ0FBQyxHQUFHLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxFQUFFLElBQUksQ0FBQyxDQUFDO1FBQ3BGLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDO0lBQ3JDLENBQUM7SUFTTSxlQUFlLENBQUMsS0FBYSxFQUFFLE1BQWMsRUFBRSxJQUFZO1FBQ2hFLElBQUksSUFBSSxDQUFDLFdBQVcsQ0FBQyxHQUFHLENBQUMsR0FBSSxLQUFNLElBQUssTUFBTyxRQUFRLENBQUM7WUFBRSxPQUFPLElBQUksQ0FBQztRQUN0RSxJQUFJLElBQUksQ0FBQyxXQUFXLENBQUMsR0FBRyxDQUFDLEdBQUksS0FBTSxJQUFLLE1BQU8sSUFBSyxJQUFLLEVBQUUsQ0FBQztZQUFFLE9BQU8sSUFBSSxDQUFDO1FBRTFFLE9BQU8sS0FBSyxDQUFDO0lBQ2YsQ0FBQztJQU9NLGNBQWMsQ0FBQyxNQUF3QixFQUFFLFdBQXlCO1FBQ3ZFLE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUM7WUFDdkIsV0FBVztZQUNYLFNBQVMsRUFBRSxFQUFFLE1BQU0sRUFBRTtZQUNyQixLQUFLLEVBQUUsR0FBRyxDQUFBOzs7Ozs7T0FNVDtTQUNGLENBQUMsQ0FBQztJQUNMLENBQUM7OEdBaEVVLGlCQUFpQjtrSEFBakIsaUJBQWlCLGNBRmhCLE1BQU07OzJGQUVQLGlCQUFpQjtrQkFIN0IsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBPYnNlcnZhYmxlLCBTdWJqZWN0IH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBBcG9sbG9RdWVyeVJlc3VsdCwgRmV0Y2hQb2xpY3kgfSBmcm9tICdAYXBvbGxvL2NsaWVudC9jb3JlJztcbmltcG9ydCB7IEFwb2xsbywgZ3FsIH0gZnJvbSAnYXBvbGxvLWFuZ3VsYXInO1xuaW1wb3J0IHsgQXBwUGVybURmbiwgUGVybWlzc2lvbkZpbHRlciB9IGZyb20gJy4uLy4uLy4uLy4uL2dyYXBocWwvZ2VuZXJhdGVkJztcblxuQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiAncm9vdCdcbn0pXG5leHBvcnQgY2xhc3MgUGVybWlzc2lvblNlcnZpY2Uge1xuXG4gIC8qKlxuICAgKiBBIHJlYWRvbmx5IHZhcmlhYmxlIHRoYXQgdXNlZCB0byBzdG9yZSBwZXJtaXNzaW9uIG1vZHVsZXMgaW4gYW4gYXBwbGV0IHRoZW4gY2hlY2sgaWYgdGhlIHVzZXJcbiAgICogaGFzIHRoZSBwZXJtaXNzaW9uIG9yIG5vdC4gVGhpcyB2YXJpYWJsZSBjb250cm9scyBtZW51J3MgaWNvbiB2aXNpYmlsaXR5IG9uIHRoZSBzaWRlYmFyLiBUaGVcbiAgICogaWNvbiB3aWxsIGFwcGVhciBpZiB0aGUgdXNlciBoYXMgdGhlIHBlcm1pc3Npb24gdGhhdCBtZW51J3MgbmVlZGVkIGFuZCBpdCB3aWxsIGRpc2FwcGVhciBpZlxuICAgKiB0aGUgdXNlciBkb24ndCBoYXZlIHRoZSBwZXJtaXNzaW9uLlxuICAgKiBAdHlwZSB7U3ViamVjdDxzdHJpbmdbXT59XG4gICAqL1xuICBwdWJsaWMgcmVhZG9ubHkgcGVybU1vZHVsZXM6IFN1YmplY3Q8c3RyaW5nW10+ID0gbmV3IFN1YmplY3Q8c3RyaW5nW10+KCk7XG5cbiAgLyoqXG4gICAqIEEgZmxhZyB2YXJpYWJsZSB0aGF0IHVzZWQgdG8ga25vdyBpZiB0aGUgYXBwbGV0IGFscmVhZHkgaW5pdGlhdGVkIG9yIG5vdC4gRGVmYXVsdCB2YWx1ZSBpc1xuICAgKiBmYWxzZS5cbiAgICogQHR5cGUge2Jvb2xlYW59XG4gICAqL1xuICBwdWJsaWMgaXNJbml0aWF0ZWQ6IGJvb2xlYW4gPSBmYWxzZTtcbiAgcHJvdGVjdGVkIHBlcm1pc3Npb25zOiBNYXA8c3RyaW5nLCBib29sZWFuPiA9IG5ldyBNYXAoKTtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcm90ZWN0ZWQgcmVhZG9ubHkgYXBvbGxvOiBBcG9sbG9cbiAgKSB7IH1cblxuICAvKipcbiAgICogQSBtZXRob2QgdGhhdCBzZXQgdGhlIHBlcm1pc3Npb25zIGFuZCBwZXJtaXNzaW9uIG1vZHVsZXMuXG4gICAqIEBwYXJhbSB7c3RyaW5nW119IHBlcm1Db2RlcyAtIENvbnRhaW4gbGlzdCBvZiBwZXJtaXNzaW9uIGNvZGVzLlxuICAgKiBAcGFyYW0ge3N0cmluZ1tdfSBwZXJtTW9kdWxlcyAtIENvbnRhaW4gbGlzdCBvZiBwZXJtaXNzaW9uIG1vZHVsZXMuIERlZmF1bHQgdmFsdWUgW10uXG4gICAqL1xuICBwdWJsaWMgc2V0UGVybWlzc2lvbihwZXJtQ29kZXM6IHN0cmluZ1tdLCBwZXJtTW9kdWxlczogc3RyaW5nW10gPSBbXSk6IHZvaWR7XG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCBwZXJtQ29kZXMubGVuZ3RoOyBpKyspIHRoaXMucGVybWlzc2lvbnMuc2V0KHBlcm1Db2Rlc1tpXSwgdHJ1ZSk7XG4gICAgdGhpcy5wZXJtTW9kdWxlcy5uZXh0KHBlcm1Nb2R1bGVzKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBBIG1ldGhvZCB0aGF0IGNoZWNraW5nIGlmIHRoZSB1c2VyIGhhcyB0aGUgcGVybWlzc2lvbiBvciBub3QgYmFzZWQgb24gdGhlIHBhcmFtcyB2YWx1ZS5cbiAgICogQHBhcmFtIHtzdHJpbmd9IHNjb3BlIC0gQ29udGFpbiBzY29wZSBvZiB0aGUgdXNlcidzIHBlcm1pc3Npb24uXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBtb2R1bGUgLSBDb250YWluIG1vZHVsZSBvZiB0aGUgdXNlcidzIHBlcm1pc3Npb24uXG4gICAqIEBwYXJhbSB7c3RyaW5nfSB0eXBlIC0gQ29udGFpbiB0eXBlIG9mIHRoZSB1c2VyJ3MgcGVybWlzc2lvbi5cbiAgICogQHJldHVybnMge2Jvb2xlYW59IENvbnRhaW4gYm9vbGVhbiB2YWx1ZSB0aGF0IHRlbGxzIHRoZSB1c2VyIGhhcyB0aGUgcGVybWlzc2lvbiBvciBub3QuXG4gICAqL1xuICBwdWJsaWMgY2hlY2tQZXJtaXNzaW9uKHNjb3BlOiBzdHJpbmcsIG1vZHVsZTogc3RyaW5nLCB0eXBlOiBzdHJpbmcpOiBib29sZWFue1xuICAgIGlmICh0aGlzLnBlcm1pc3Npb25zLmhhcyhgJHsgc2NvcGUgfS4keyBtb2R1bGUgfS5BRE1JTmApKSByZXR1cm4gdHJ1ZTtcbiAgICBpZiAodGhpcy5wZXJtaXNzaW9ucy5oYXMoYCR7IHNjb3BlIH0uJHsgbW9kdWxlIH0uJHsgdHlwZSB9YCkpIHJldHVybiB0cnVlO1xuXG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgLyoqXG4gICAqIEEgbWV0aG9kIHRoYXQgZ2V0IHRoZSBxdWVyeSB2YWx1ZSB3aXRoIGF1dGhNc1Blcm1pc3Npb24gYXMgdGhlIG9iamVjdC5cbiAgICogQHBhcmFtIHtQZXJtaXNzaW9uRmlsdGVyfSBmaWx0ZXIgLSBDb250YWluIGZpbHRlciBhcyBhIGNvbmRpdGlvbnMgZm9yIHRoZSBxdWVyeS5cbiAgICogQHJldHVybnMge09ic2VydmFibGU8QXBvbGxvUXVlcnlSZXN1bHQ8eyBhdXRoTXNQZXJtaXNzaW9uOiB7IGRhdGE6IEFwcFBlcm1EZm5bXSB9fT4+fSBDb250YWluIHF1ZXJ5IHZhbHVlLlxuICAgKi9cbiAgcHVibGljIGdldFBlcm1pc3Npb25zKGZpbHRlcjogUGVybWlzc2lvbkZpbHRlciwgZmV0Y2hQb2xpY3k/OiBGZXRjaFBvbGljeSk6IE9ic2VydmFibGU8QXBvbGxvUXVlcnlSZXN1bHQ8eyBhdXRoTXNQZXJtaXNzaW9uOiB7IGRhdGE6IEFwcFBlcm1EZm5bXSB9fT4+e1xuICAgIHJldHVybiB0aGlzLmFwb2xsby5xdWVyeSh7XG4gICAgICBmZXRjaFBvbGljeSxcbiAgICAgIHZhcmlhYmxlczogeyBmaWx0ZXIgfSxcbiAgICAgIHF1ZXJ5OiBncWxgXG4gICAgICAgIHF1ZXJ5IFF1ZXJ5UGVybWlzc2lvbigkZmlsdGVyOiBQZXJtaXNzaW9uRmlsdGVyISkge1xuICAgICAgICAgIGF1dGhNc1Blcm1pc3Npb24oZmlsdGVyOiAkZmlsdGVyKSB7XG4gICAgICAgICAgICBkYXRhIHsgcGVybUNvZGUgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgYFxuICAgIH0pO1xuICB9XG59XG4iXX0=
|