@corp-products/app-core 1.0.3 → 1.0.5
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/esm2022/lib/core/components/index.mjs +2 -5
- package/esm2022/lib/core/core-config.mjs +1 -1
- package/esm2022/lib/core/handlers/http-context-handler.mjs +6 -2
- package/esm2022/lib/core/interceptors/base-http.interceptor.mjs +4 -4
- package/esm2022/lib/core/services/base-http-service/base-http-utils.mjs +6 -6
- package/fesm2022/corp-products-app-core.mjs +57 -288
- package/fesm2022/corp-products-app-core.mjs.map +1 -1
- package/lib/core/components/index.d.ts +1 -4
- package/lib/core/core-config.d.ts +1 -1
- package/lib/core/handlers/http-context-handler.d.ts +3 -1
- package/lib/core/services/base-http-service/base-http-utils.d.ts +2 -2
- package/package.json +2 -3
- package/esm2022/lib/core/components/app-breadcrumb/app-breadcrumb.component.mjs +0 -105
- package/esm2022/lib/core/components/app-breadcrumb/app-breadcrumb.interface.mjs +0 -2
- package/esm2022/lib/core/components/app-header/app-header.component.mjs +0 -51
- package/esm2022/lib/core/components/app-side-menu/app-side-menu.component.mjs +0 -31
- package/esm2022/lib/core/components/app-side-menu/routes-names.mjs +0 -27
- package/esm2022/lib/core/components/app-side-menu/side-menu-items.mjs +0 -44
- package/esm2022/lib/core/components/app-side-menu/side-menu.mjs +0 -2
- package/lib/core/components/app-breadcrumb/app-breadcrumb.component.d.ts +0 -18
- package/lib/core/components/app-breadcrumb/app-breadcrumb.interface.d.ts +0 -12
- package/lib/core/components/app-header/app-header.component.d.ts +0 -19
- package/lib/core/components/app-side-menu/app-side-menu.component.d.ts +0 -13
- package/lib/core/components/app-side-menu/routes-names.d.ts +0 -2
- package/lib/core/components/app-side-menu/side-menu-items.d.ts +0 -2
- package/lib/core/components/app-side-menu/side-menu.d.ts +0 -11
|
@@ -1,5 +1,2 @@
|
|
|
1
|
-
export * from
|
|
2
|
-
|
|
3
|
-
export * from './app-side-menu/app-side-menu.component';
|
|
4
|
-
export * from './global-loader/global-loader.component';
|
|
5
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvcmUvc3JjL2xpYi9jb3JlL2NvbXBvbmVudHMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYywyQ0FBMkMsQ0FBQztBQUMxRCxjQUFjLG1DQUFtQyxDQUFDO0FBQ2xELGNBQWMseUNBQXlDLENBQUM7QUFDeEQsY0FBYyx5Q0FBeUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vYXBwLWJyZWFkY3J1bWIvYXBwLWJyZWFkY3J1bWIuY29tcG9uZW50JztcclxuZXhwb3J0ICogZnJvbSAnLi9hcHAtaGVhZGVyL2FwcC1oZWFkZXIuY29tcG9uZW50JztcclxuZXhwb3J0ICogZnJvbSAnLi9hcHAtc2lkZS1tZW51L2FwcC1zaWRlLW1lbnUuY29tcG9uZW50JztcclxuZXhwb3J0ICogZnJvbSAnLi9nbG9iYWwtbG9hZGVyL2dsb2JhbC1sb2FkZXIuY29tcG9uZW50JztcclxuIl19
|
|
1
|
+
export * from "./global-loader/global-loader.component";
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvcmUvc3JjL2xpYi9jb3JlL2NvbXBvbmVudHMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyx5Q0FBeUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gXCIuL2dsb2JhbC1sb2FkZXIvZ2xvYmFsLWxvYWRlci5jb21wb25lbnRcIjtcclxuIl19
|
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
import { InjectionToken } from "@angular/core";
|
|
2
2
|
export const CORE_CONFIG = new InjectionToken("CoreConfig");
|
|
3
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
3
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29yZS1jb25maWcuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvcmUvc3JjL2xpYi9jb3JlL2NvcmUtY29uZmlnLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFVL0MsTUFBTSxDQUFDLE1BQU0sV0FBVyxHQUFHLElBQUksY0FBYyxDQUFhLFlBQVksQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0aW9uVG9rZW4gfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xyXG5cclxuZXhwb3J0IGludGVyZmFjZSBDb3JlQ29uZmlnIHtcclxuICBhcGlQcmVmaXg6IHN0cmluZztcclxuICBwcm9kdWN0aW9uOiBib29sZWFuO1xyXG4gIGdhdGV3YXlVcmw6IHN0cmluZztcclxuICBsb2dpblVybDogc3RyaW5nO1xyXG4gIGxvZ291dEVuZHBvaW50OiBzdHJpbmc7XHJcbn1cclxuXHJcbmV4cG9ydCBjb25zdCBDT1JFX0NPTkZJRyA9IG5ldyBJbmplY3Rpb25Ub2tlbjxDb3JlQ29uZmlnPihcIkNvcmVDb25maWdcIik7XHJcbiJdfQ==
|
|
@@ -1,8 +1,12 @@
|
|
|
1
|
-
import { HttpContext, HttpContextToken } from
|
|
1
|
+
import { HttpContext, HttpContextToken } from "@angular/common/http";
|
|
2
2
|
export const IS_SYSTEM_LOADER = new HttpContextToken(() => true); // set default loader
|
|
3
|
+
export const USE_API_PREFIX = new HttpContextToken(() => true); // set default loader
|
|
3
4
|
export class HttpContextHandler {
|
|
4
5
|
static setLoaderType(isSystemLoader) {
|
|
5
6
|
return new HttpContext().set(IS_SYSTEM_LOADER, isSystemLoader);
|
|
6
7
|
}
|
|
8
|
+
static useApiPrefix(hasBaseSegment) {
|
|
9
|
+
return new HttpContext().set(USE_API_PREFIX, hasBaseSegment);
|
|
10
|
+
}
|
|
7
11
|
}
|
|
8
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
12
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaHR0cC1jb250ZXh0LWhhbmRsZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvcmUvc3JjL2xpYi9jb3JlL2hhbmRsZXJzL2h0dHAtY29udGV4dC1oYW5kbGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxXQUFXLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUVyRSxNQUFNLENBQUMsTUFBTSxnQkFBZ0IsR0FBRyxJQUFJLGdCQUFnQixDQUFVLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMscUJBQXFCO0FBQ2hHLE1BQU0sQ0FBQyxNQUFNLGNBQWMsR0FBRyxJQUFJLGdCQUFnQixDQUFVLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMscUJBQXFCO0FBRTlGLE1BQU0sT0FBTyxrQkFBa0I7SUFDN0IsTUFBTSxDQUFDLGFBQWEsQ0FBQyxjQUF1QjtRQUMxQyxPQUFPLElBQUksV0FBVyxFQUFFLENBQUMsR0FBRyxDQUFDLGdCQUFnQixFQUFFLGNBQWMsQ0FBQyxDQUFDO0lBQ2pFLENBQUM7SUFFRCxNQUFNLENBQUMsWUFBWSxDQUFDLGNBQXVCO1FBQ3pDLE9BQU8sSUFBSSxXQUFXLEVBQUUsQ0FBQyxHQUFHLENBQUMsY0FBYyxFQUFFLGNBQWMsQ0FBQyxDQUFDO0lBQy9ELENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEh0dHBDb250ZXh0LCBIdHRwQ29udGV4dFRva2VuIH0gZnJvbSBcIkBhbmd1bGFyL2NvbW1vbi9odHRwXCI7XHJcblxyXG5leHBvcnQgY29uc3QgSVNfU1lTVEVNX0xPQURFUiA9IG5ldyBIdHRwQ29udGV4dFRva2VuPGJvb2xlYW4+KCgpID0+IHRydWUpOyAvLyBzZXQgZGVmYXVsdCBsb2FkZXJcclxuZXhwb3J0IGNvbnN0IFVTRV9BUElfUFJFRklYID0gbmV3IEh0dHBDb250ZXh0VG9rZW48Ym9vbGVhbj4oKCkgPT4gdHJ1ZSk7IC8vIHNldCBkZWZhdWx0IGxvYWRlclxyXG5cclxuZXhwb3J0IGNsYXNzIEh0dHBDb250ZXh0SGFuZGxlciB7XHJcbiAgc3RhdGljIHNldExvYWRlclR5cGUoaXNTeXN0ZW1Mb2FkZXI6IGJvb2xlYW4pIHtcclxuICAgIHJldHVybiBuZXcgSHR0cENvbnRleHQoKS5zZXQoSVNfU1lTVEVNX0xPQURFUiwgaXNTeXN0ZW1Mb2FkZXIpO1xyXG4gIH1cclxuXHJcbiAgc3RhdGljIHVzZUFwaVByZWZpeChoYXNCYXNlU2VnbWVudDogYm9vbGVhbikge1xyXG4gICAgcmV0dXJuIG5ldyBIdHRwQ29udGV4dCgpLnNldChVU0VfQVBJX1BSRUZJWCwgaGFzQmFzZVNlZ21lbnQpO1xyXG4gIH1cclxufVxyXG4iXX0=
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { Inject, inject, Injectable } from "@angular/core";
|
|
2
2
|
import { finalize, tap } from "rxjs";
|
|
3
|
-
import { IS_SYSTEM_LOADER } from "../handlers/http-context-handler";
|
|
3
|
+
import { IS_SYSTEM_LOADER, USE_API_PREFIX } from "../handlers/http-context-handler";
|
|
4
4
|
import { AuthService } from "../services/auth.service";
|
|
5
5
|
import { LoaderService } from "../services/loader.service";
|
|
6
6
|
import { CORE_CONFIG } from "../core-config";
|
|
@@ -12,8 +12,8 @@ export class HttpBaseInterceptor {
|
|
|
12
12
|
this.loaderService = inject(LoaderService);
|
|
13
13
|
}
|
|
14
14
|
intercept(request, next) {
|
|
15
|
-
|
|
16
|
-
const URL = `${this.appConfig.gatewayUrl}${request.url}`;
|
|
15
|
+
const useApiPrefix = request.context.get(USE_API_PREFIX);
|
|
16
|
+
const URL = `${this.appConfig.gatewayUrl}${useApiPrefix ? this.appConfig.apiPrefix : ""}${request.url}`;
|
|
17
17
|
const token = this.authService.getUserToken();
|
|
18
18
|
// Handler header
|
|
19
19
|
request = request.clone({
|
|
@@ -43,4 +43,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImpor
|
|
|
43
43
|
type: Inject,
|
|
44
44
|
args: [CORE_CONFIG]
|
|
45
45
|
}] }] });
|
|
46
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
46
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFzZS1odHRwLmludGVyY2VwdG9yLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb3JlL3NyYy9saWIvY29yZS9pbnRlcmNlcHRvcnMvYmFzZS1odHRwLmludGVyY2VwdG9yLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzRCxPQUFPLEVBQUUsUUFBUSxFQUFjLEdBQUcsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUNqRCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsY0FBYyxFQUFFLE1BQU0sa0NBQWtDLENBQUM7QUFDcEYsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQ3ZELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUMzRCxPQUFPLEVBQUUsV0FBVyxFQUFjLE1BQU0sZ0JBQWdCLENBQUM7O0FBR3pELE1BQU0sT0FBTyxtQkFBbUI7SUFJOUIsWUFBMkMsU0FBcUI7UUFBckIsY0FBUyxHQUFULFNBQVMsQ0FBWTtRQUhoRSxnQkFBVyxHQUFHLE1BQU0sQ0FBQyxXQUFXLENBQUMsQ0FBQztRQUNsQyxrQkFBYSxHQUFHLE1BQU0sQ0FBQyxhQUFhLENBQUMsQ0FBQztJQUU2QixDQUFDO0lBRXBFLFNBQVMsQ0FBQyxPQUE2QixFQUFFLElBQWlCO1FBQ3hELE1BQU0sWUFBWSxHQUFHLE9BQU8sQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLGNBQWMsQ0FBQyxDQUFDO1FBQ3pELE1BQU0sR0FBRyxHQUFHLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxVQUFVLEdBQUcsWUFBWSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsRUFBRSxHQUFHLE9BQU8sQ0FBQyxHQUFHLEVBQUUsQ0FBQztRQUN4RyxNQUFNLEtBQUssR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDLFlBQVksRUFBRSxDQUFDO1FBRTlDLGlCQUFpQjtRQUNqQixPQUFPLEdBQUcsT0FBTyxDQUFDLEtBQUssQ0FBQztZQUN0QixHQUFHLEVBQUUsR0FBRztZQUNSLFVBQVUsRUFBRTtnQkFDVixhQUFhLEVBQUUsVUFBVSxLQUFLLEVBQUU7Z0JBQ2hDLFFBQVEsRUFBRSxJQUFJO2FBQ2Y7U0FDRixDQUFDLENBQUM7UUFFSCxnQkFBZ0I7UUFDaEIsTUFBTSxzQkFBc0IsR0FBRyxPQUFPLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO1FBQ3JFLElBQUksQ0FBQyxhQUFhLENBQUMsVUFBVSxDQUFDLElBQUksRUFBRSxzQkFBc0IsRUFBRSxPQUFPLENBQUMsR0FBRyxDQUFDLENBQUM7UUFFekUsT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxDQUFDLElBQUk7UUFDOUIsZ0JBQWdCO1FBQ2hCLEdBQUcsQ0FBQyxDQUFDLEtBQUssRUFBRSxFQUFFO1lBQ1osNEVBQTRFO1lBQzVFLG9CQUFvQjtZQUNwQixLQUFLO1FBQ1AsQ0FBQyxDQUFDLEVBQ0YsUUFBUSxDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsVUFBVSxDQUFDLEtBQUssRUFBRSxzQkFBc0IsRUFBRSxPQUFPLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FDMUYsQ0FBQztJQUNKLENBQUM7OEdBakNVLG1CQUFtQixrQkFJVixXQUFXO2tIQUpwQixtQkFBbUI7OzJGQUFuQixtQkFBbUI7a0JBRC9CLFVBQVU7OzBCQUtJLE1BQU07MkJBQUMsV0FBVyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEh0dHBFdmVudCwgSHR0cEhhbmRsZXIsIEh0dHBJbnRlcmNlcHRvciwgSHR0cFJlcXVlc3QgfSBmcm9tIFwiQGFuZ3VsYXIvY29tbW9uL2h0dHBcIjtcclxuaW1wb3J0IHsgSW5qZWN0LCBpbmplY3QsIEluamVjdGFibGUgfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xyXG5pbXBvcnQgeyBmaW5hbGl6ZSwgT2JzZXJ2YWJsZSwgdGFwIH0gZnJvbSBcInJ4anNcIjtcclxuaW1wb3J0IHsgSVNfU1lTVEVNX0xPQURFUiwgVVNFX0FQSV9QUkVGSVggfSBmcm9tIFwiLi4vaGFuZGxlcnMvaHR0cC1jb250ZXh0LWhhbmRsZXJcIjtcclxuaW1wb3J0IHsgQXV0aFNlcnZpY2UgfSBmcm9tIFwiLi4vc2VydmljZXMvYXV0aC5zZXJ2aWNlXCI7XHJcbmltcG9ydCB7IExvYWRlclNlcnZpY2UgfSBmcm9tIFwiLi4vc2VydmljZXMvbG9hZGVyLnNlcnZpY2VcIjtcclxuaW1wb3J0IHsgQ09SRV9DT05GSUcsIENvcmVDb25maWcgfSBmcm9tIFwiLi4vY29yZS1jb25maWdcIjtcclxuXHJcbkBJbmplY3RhYmxlKClcclxuZXhwb3J0IGNsYXNzIEh0dHBCYXNlSW50ZXJjZXB0b3IgaW1wbGVtZW50cyBIdHRwSW50ZXJjZXB0b3Ige1xyXG4gIGF1dGhTZXJ2aWNlID0gaW5qZWN0KEF1dGhTZXJ2aWNlKTtcclxuICBsb2FkZXJTZXJ2aWNlID0gaW5qZWN0KExvYWRlclNlcnZpY2UpO1xyXG5cclxuICBjb25zdHJ1Y3RvcihASW5qZWN0KENPUkVfQ09ORklHKSBwcm90ZWN0ZWQgYXBwQ29uZmlnOiBDb3JlQ29uZmlnKSB7fVxyXG5cclxuICBpbnRlcmNlcHQocmVxdWVzdDogSHR0cFJlcXVlc3Q8dW5rbm93bj4sIG5leHQ6IEh0dHBIYW5kbGVyKTogT2JzZXJ2YWJsZTxIdHRwRXZlbnQ8dW5rbm93bj4+IHtcclxuICAgIGNvbnN0IHVzZUFwaVByZWZpeCA9IHJlcXVlc3QuY29udGV4dC5nZXQoVVNFX0FQSV9QUkVGSVgpO1xyXG4gICAgY29uc3QgVVJMID0gYCR7dGhpcy5hcHBDb25maWcuZ2F0ZXdheVVybH0ke3VzZUFwaVByZWZpeCA/IHRoaXMuYXBwQ29uZmlnLmFwaVByZWZpeCA6IFwiXCJ9JHtyZXF1ZXN0LnVybH1gO1xyXG4gICAgY29uc3QgdG9rZW4gPSB0aGlzLmF1dGhTZXJ2aWNlLmdldFVzZXJUb2tlbigpO1xyXG5cclxuICAgIC8vIEhhbmRsZXIgaGVhZGVyXHJcbiAgICByZXF1ZXN0ID0gcmVxdWVzdC5jbG9uZSh7XHJcbiAgICAgIHVybDogVVJMLFxyXG4gICAgICBzZXRIZWFkZXJzOiB7XHJcbiAgICAgICAgQXV0aG9yaXphdGlvbjogYEJlYXJlciAke3Rva2VufWAsXHJcbiAgICAgICAgTGFuZ3VhZ2U6IFwiZW5cIlxyXG4gICAgICB9XHJcbiAgICB9KTtcclxuXHJcbiAgICAvLyBIYW5kbGUgbG9hZGVyXHJcbiAgICBjb25zdCBJU19TWVNURU1fTE9BREVSX0NIRUNLID0gcmVxdWVzdC5jb250ZXh0LmdldChJU19TWVNURU1fTE9BREVSKTtcclxuICAgIHRoaXMubG9hZGVyU2VydmljZS5zZXRMb2FkaW5nKHRydWUsIElTX1NZU1RFTV9MT0FERVJfQ0hFQ0ssIHJlcXVlc3QudXJsKTtcclxuXHJcbiAgICByZXR1cm4gbmV4dC5oYW5kbGUocmVxdWVzdCkucGlwZShcclxuICAgICAgLy8gSGFuZGxlciBUb2tlblxyXG4gICAgICB0YXAoKGV2ZW50KSA9PiB7XHJcbiAgICAgICAgLy8gIGlmIChldmVudCBpbnN0YW5jZW9mIEh0dHBSZXNwb25zZSAmJiByZXF1ZXN0LnVybC5pbmNsdWRlcyhVc2VyX1Rva2VuKSkge1xyXG4gICAgICAgIC8vIFNldCB1c2VyIHRva2VuIC4uXHJcbiAgICAgICAgLy8gIH1cclxuICAgICAgfSksXHJcbiAgICAgIGZpbmFsaXplKCgpID0+IHRoaXMubG9hZGVyU2VydmljZS5zZXRMb2FkaW5nKGZhbHNlLCBJU19TWVNURU1fTE9BREVSX0NIRUNLLCByZXF1ZXN0LnVybCkpXHJcbiAgICApO1xyXG4gIH1cclxufVxyXG4iXX0=
|
|
@@ -1,13 +1,13 @@
|
|
|
1
|
-
import { map } from
|
|
2
|
-
import { HttpRequestOptionsKeys } from
|
|
1
|
+
import { map } from "rxjs/operators";
|
|
2
|
+
import { HttpRequestOptionsKeys } from "./base-http-types";
|
|
3
3
|
export const resolveUrl = (baseUrl, options, ...args) => {
|
|
4
4
|
const { urlRewrite, urlPostfix } = options || {};
|
|
5
5
|
if (urlRewrite) {
|
|
6
6
|
return urlRewrite;
|
|
7
7
|
}
|
|
8
8
|
let result = baseUrl;
|
|
9
|
-
if (args && args.length > 0 && args[0] !==
|
|
10
|
-
result += `/${args.join(
|
|
9
|
+
if (args && args.length > 0 && args[0] !== "") {
|
|
10
|
+
result += `/${args.join("/")}`;
|
|
11
11
|
}
|
|
12
12
|
if (urlPostfix) {
|
|
13
13
|
result += `/${urlPostfix}`;
|
|
@@ -15,7 +15,7 @@ export const resolveUrl = (baseUrl, options, ...args) => {
|
|
|
15
15
|
return result;
|
|
16
16
|
};
|
|
17
17
|
export const extractRequestOptions = (options) => {
|
|
18
|
-
if (!options || typeof options !==
|
|
18
|
+
if (!options || typeof options !== "object") {
|
|
19
19
|
return {};
|
|
20
20
|
}
|
|
21
21
|
/* eslint-disable */
|
|
@@ -29,4 +29,4 @@ export const extractRequestOptions = (options) => {
|
|
|
29
29
|
};
|
|
30
30
|
export const mapResponse = (options) => map((res) => (options?.mapFn ? options.mapFn(res) : res));
|
|
31
31
|
export const epmDefaultMapper = (res) => res.payload;
|
|
32
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
32
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFzZS1odHRwLXV0aWxzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb3JlL3NyYy9saWIvY29yZS9zZXJ2aWNlcy9iYXNlLWh0dHAtc2VydmljZS9iYXNlLWh0dHAtdXRpbHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLEdBQUcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3JDLE9BQU8sRUFBZSxzQkFBc0IsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBR3hFLE1BQU0sQ0FBQyxNQUFNLFVBQVUsR0FBRyxDQUFDLE9BQWUsRUFBRSxPQUFxQixFQUFFLEdBQUcsSUFBYyxFQUFVLEVBQUU7SUFDOUYsTUFBTSxFQUFFLFVBQVUsRUFBRSxVQUFVLEVBQUUsR0FBRyxPQUFPLElBQUksRUFBRSxDQUFDO0lBRWpELElBQUksVUFBVSxFQUFFLENBQUM7UUFDZixPQUFPLFVBQVUsQ0FBQztJQUNwQixDQUFDO0lBRUQsSUFBSSxNQUFNLEdBQUcsT0FBTyxDQUFDO0lBRXJCLElBQUksSUFBSSxJQUFJLElBQUksQ0FBQyxNQUFNLEdBQUcsQ0FBQyxJQUFJLElBQUksQ0FBQyxDQUFDLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQztRQUM5QyxNQUFNLElBQUksSUFBSSxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUM7SUFDakMsQ0FBQztJQUVELElBQUksVUFBVSxFQUFFLENBQUM7UUFDZixNQUFNLElBQUksSUFBSSxVQUFVLEVBQUUsQ0FBQztJQUM3QixDQUFDO0lBRUQsT0FBTyxNQUFNLENBQUM7QUFDaEIsQ0FBQyxDQUFDO0FBRUYsTUFBTSxDQUFDLE1BQU0scUJBQXFCLEdBQUcsQ0FBQyxPQUFhLEVBQUUsRUFBRTtJQUNyRCxJQUFJLENBQUMsT0FBTyxJQUFJLE9BQU8sT0FBTyxLQUFLLFFBQVEsRUFBRSxDQUFDO1FBQzVDLE9BQU8sRUFBRSxDQUFDO0lBQ1osQ0FBQztJQUNELG9CQUFvQjtJQUNwQixPQUFPLHNCQUFzQixDQUFDLE1BQU0sQ0FBQyxDQUFDLGNBQW1CLEVBQUUsR0FBRyxFQUFFLEVBQUU7UUFDaEUsTUFBTSxLQUFLLEdBQUcsT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBRTNCLElBQUksS0FBSyxLQUFLLFNBQVMsRUFBRSxDQUFDO1lBQ3hCLGNBQWMsQ0FBQyxHQUFHLENBQUMsR0FBRyxLQUFLLENBQUM7UUFDOUIsQ0FBQztRQUVELE9BQU8sY0FBYyxDQUFDO0lBQ3hCLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQztBQUNULENBQUMsQ0FBQztBQUVGLE1BQU0sQ0FBQyxNQUFNLFdBQVcsR0FBRyxDQUFJLE9BQXFCLEVBQUUsRUFBRSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEdBQU0sRUFBRSxFQUFFLENBQUMsQ0FBQyxPQUFPLEVBQUUsS0FBSyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDO0FBRXRILE1BQU0sQ0FBQyxNQUFNLGdCQUFnQixHQUFHLENBQUksR0FBd0IsRUFBRSxFQUFFLENBQUMsR0FBRyxDQUFDLE9BQU8sQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IG1hcCB9IGZyb20gXCJyeGpzL29wZXJhdG9yc1wiO1xyXG5pbXBvcnQgeyBIdHRwT3B0aW9ucywgSHR0cFJlcXVlc3RPcHRpb25zS2V5cyB9IGZyb20gXCIuL2Jhc2UtaHR0cC10eXBlc1wiO1xyXG5pbXBvcnQgeyBCYXNlSHR0cFJlc3BvbnNlIH0gZnJvbSBcIi4vYmFzZS1odHRwLXJlc3BvbnNlXCI7XHJcblxyXG5leHBvcnQgY29uc3QgcmVzb2x2ZVVybCA9IChiYXNlVXJsOiBzdHJpbmcsIG9wdGlvbnM/OiBIdHRwT3B0aW9ucywgLi4uYXJnczogc3RyaW5nW10pOiBzdHJpbmcgPT4ge1xyXG4gIGNvbnN0IHsgdXJsUmV3cml0ZSwgdXJsUG9zdGZpeCB9ID0gb3B0aW9ucyB8fCB7fTtcclxuXHJcbiAgaWYgKHVybFJld3JpdGUpIHtcclxuICAgIHJldHVybiB1cmxSZXdyaXRlO1xyXG4gIH1cclxuXHJcbiAgbGV0IHJlc3VsdCA9IGJhc2VVcmw7XHJcblxyXG4gIGlmIChhcmdzICYmIGFyZ3MubGVuZ3RoID4gMCAmJiBhcmdzWzBdICE9PSBcIlwiKSB7XHJcbiAgICByZXN1bHQgKz0gYC8ke2FyZ3Muam9pbihcIi9cIil9YDtcclxuICB9XHJcblxyXG4gIGlmICh1cmxQb3N0Zml4KSB7XHJcbiAgICByZXN1bHQgKz0gYC8ke3VybFBvc3RmaXh9YDtcclxuICB9XHJcblxyXG4gIHJldHVybiByZXN1bHQ7XHJcbn07XHJcblxyXG5leHBvcnQgY29uc3QgZXh0cmFjdFJlcXVlc3RPcHRpb25zID0gKG9wdGlvbnM/OiBhbnkpID0+IHtcclxuICBpZiAoIW9wdGlvbnMgfHwgdHlwZW9mIG9wdGlvbnMgIT09IFwib2JqZWN0XCIpIHtcclxuICAgIHJldHVybiB7fTtcclxuICB9XHJcbiAgLyogZXNsaW50LWRpc2FibGUgKi9cclxuICByZXR1cm4gSHR0cFJlcXVlc3RPcHRpb25zS2V5cy5yZWR1Y2UoKHJlcXVlc3RPcHRpb25zOiBhbnksIGtleSkgPT4ge1xyXG4gICAgY29uc3QgdmFsdWUgPSBvcHRpb25zW2tleV07XHJcblxyXG4gICAgaWYgKHZhbHVlICE9PSB1bmRlZmluZWQpIHtcclxuICAgICAgcmVxdWVzdE9wdGlvbnNba2V5XSA9IHZhbHVlO1xyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiByZXF1ZXN0T3B0aW9ucztcclxuICB9LCB7fSk7XHJcbn07XHJcblxyXG5leHBvcnQgY29uc3QgbWFwUmVzcG9uc2UgPSA8VD4ob3B0aW9ucz86IEh0dHBPcHRpb25zKSA9PiBtYXAoKHJlczogVCkgPT4gKG9wdGlvbnM/Lm1hcEZuID8gb3B0aW9ucy5tYXBGbihyZXMpIDogcmVzKSk7XHJcblxyXG5leHBvcnQgY29uc3QgZXBtRGVmYXVsdE1hcHBlciA9IDxUPihyZXM6IEJhc2VIdHRwUmVzcG9uc2U8VD4pID0+IHJlcy5wYXlsb2FkO1xyXG4iXX0=
|
|
@@ -1,18 +1,14 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { AsyncPipe, NgClass } from '@angular/common';
|
|
2
2
|
import * as i0 from '@angular/core';
|
|
3
|
-
import {
|
|
4
|
-
import * as
|
|
5
|
-
import {
|
|
6
|
-
import { Breadcrumb } from 'primeng/breadcrumb';
|
|
7
|
-
import { filter, BehaviorSubject, tap, finalize, timer, retry, from } from 'rxjs';
|
|
8
|
-
import { AppButtonComponent } from '@corp-products/ui-components';
|
|
9
|
-
import { Menu } from 'primeng/menu';
|
|
3
|
+
import { inject, InjectionToken, Inject, Injectable, Input, Component, Directive } from '@angular/core';
|
|
4
|
+
import * as i2 from '@ngx-translate/core';
|
|
5
|
+
import { TranslatePipe } from '@ngx-translate/core';
|
|
10
6
|
import { jwtDecode } from 'jwt-decode';
|
|
7
|
+
import { BehaviorSubject, tap, finalize, timer, retry, from } from 'rxjs';
|
|
11
8
|
import { map } from 'rxjs/operators';
|
|
12
9
|
import { HttpClient, HttpContextToken, HttpContext, HttpErrorResponse } from '@angular/common/http';
|
|
13
|
-
import * as i1
|
|
14
|
-
import
|
|
15
|
-
import { TranslatePipe } from '@ngx-translate/core';
|
|
10
|
+
import * as i1 from 'primeng/api';
|
|
11
|
+
import { Router } from '@angular/router';
|
|
16
12
|
|
|
17
13
|
const PAGESIZE = 10;
|
|
18
14
|
const PAGE_SIZE_OPTION = [5, 10, 15, 20];
|
|
@@ -70,104 +66,6 @@ class BasePaginationService {
|
|
|
70
66
|
}
|
|
71
67
|
}
|
|
72
68
|
|
|
73
|
-
class AppBreadcrumbComponent {
|
|
74
|
-
constructor(activatedRoute, router) {
|
|
75
|
-
this.activatedRoute = activatedRoute;
|
|
76
|
-
this.router = router;
|
|
77
|
-
}
|
|
78
|
-
ngOnInit() {
|
|
79
|
-
this.router.events
|
|
80
|
-
.pipe(filter(event => event instanceof NavigationEnd))
|
|
81
|
-
.subscribe((e) => {
|
|
82
|
-
// remove duplicates
|
|
83
|
-
this.items = this._createBreadcrumbs(this.activatedRoute.root).filter((item, index, self) => index === self.findIndex((t) => t.label === item.label && t.routerLink === item.routerLink));
|
|
84
|
-
this._checkHiddenBreadcrumb();
|
|
85
|
-
this._checkEmpty();
|
|
86
|
-
});
|
|
87
|
-
}
|
|
88
|
-
_checkHiddenBreadcrumb() {
|
|
89
|
-
const activeBreadcrumb = this.items?.find((item) => {
|
|
90
|
-
return item.routerLink === this.router.url;
|
|
91
|
-
});
|
|
92
|
-
this.isShownBreadcrumb = !!activeBreadcrumb?.isShownBreadcrumb;
|
|
93
|
-
}
|
|
94
|
-
_createBreadcrumbs(activatedRoute, routerLink = '', breadcrumbs = []) {
|
|
95
|
-
const children = activatedRoute.children;
|
|
96
|
-
if (children.length === 0) {
|
|
97
|
-
return breadcrumbs;
|
|
98
|
-
}
|
|
99
|
-
for (const child of children) {
|
|
100
|
-
const routeURL = child.snapshot.url.map(segment => segment.path).join('/');
|
|
101
|
-
if (routeURL !== '') {
|
|
102
|
-
routerLink += `/${routeURL}`;
|
|
103
|
-
}
|
|
104
|
-
let label = child.snapshot.data["breadcrumb"];
|
|
105
|
-
const notClickableBreadcrumb = !!child.snapshot.data["notClickableBreadcrumb"];
|
|
106
|
-
const isShownBreadcrumb = !!child.snapshot.data["isShownBreadcrumb"];
|
|
107
|
-
const extraBreadcrumbs = child.snapshot.data["extraBreadcrumbs"] || [];
|
|
108
|
-
if (!(typeof label === 'undefined' || label === null)) {
|
|
109
|
-
const data = activatedRoute.snapshot.firstChild?.data || {};
|
|
110
|
-
// Resolve dynamic breadcrumb label
|
|
111
|
-
if (label && label.startsWith("[") && label.endsWith("]")) {
|
|
112
|
-
label = this._getRecursiveKey(data, label.slice(1, -1).split("."));
|
|
113
|
-
}
|
|
114
|
-
// Resolve dynamic URL parts
|
|
115
|
-
const resolveDynamicUrl = (route) => {
|
|
116
|
-
return route.replace(/\[([^\]]+)]/g, (_, key) => this._getRecursiveKey(data, key.split(".")) || '');
|
|
117
|
-
};
|
|
118
|
-
const mainBreadcrumb = { label, routerLink, data, notClickableBreadcrumb, isShownBreadcrumb };
|
|
119
|
-
// Process extra breadcrumbs
|
|
120
|
-
const beforeBreadcrumbs = [];
|
|
121
|
-
const afterBreadcrumbs = [];
|
|
122
|
-
extraBreadcrumbs.forEach(extra => {
|
|
123
|
-
let extraLabel = extra.label || '';
|
|
124
|
-
if (extraLabel.startsWith("[") && extraLabel.endsWith("]")) {
|
|
125
|
-
extraLabel = this._getRecursiveKey(data, extraLabel.slice(1, -1).split("."));
|
|
126
|
-
}
|
|
127
|
-
const extraUrl = resolveDynamicUrl(extra.routerLink || '');
|
|
128
|
-
const extraBreadcrumb = { ...extra, label: extraLabel, routerLink: extraUrl };
|
|
129
|
-
if (extra.position === "before") {
|
|
130
|
-
beforeBreadcrumbs.push(extraBreadcrumb);
|
|
131
|
-
}
|
|
132
|
-
else {
|
|
133
|
-
afterBreadcrumbs.push(extraBreadcrumb);
|
|
134
|
-
}
|
|
135
|
-
});
|
|
136
|
-
// Merge breadcrumbs
|
|
137
|
-
breadcrumbs.push(...beforeBreadcrumbs, mainBreadcrumb, ...afterBreadcrumbs);
|
|
138
|
-
}
|
|
139
|
-
return this._createBreadcrumbs(child, routerLink, breadcrumbs);
|
|
140
|
-
}
|
|
141
|
-
}
|
|
142
|
-
_checkEmpty() {
|
|
143
|
-
if (!this.items)
|
|
144
|
-
return;
|
|
145
|
-
const lastBreadcrumbVisibility = this.items[this.items.length - 1].isShownBreadcrumb;
|
|
146
|
-
this.items = this.items.filter(b => b.label !== '');
|
|
147
|
-
this.items[this.items.length - 1].isShownBreadcrumb = lastBreadcrumbVisibility;
|
|
148
|
-
}
|
|
149
|
-
_getRecursiveKey(obj, keys) {
|
|
150
|
-
if (keys.length === 0) {
|
|
151
|
-
return undefined;
|
|
152
|
-
}
|
|
153
|
-
const [currentKey, ...remainingKeys] = keys;
|
|
154
|
-
if (currentKey in obj) {
|
|
155
|
-
if (remainingKeys.length > 0) {
|
|
156
|
-
return this._getRecursiveKey(obj[currentKey], remainingKeys);
|
|
157
|
-
}
|
|
158
|
-
return obj[currentKey];
|
|
159
|
-
}
|
|
160
|
-
return undefined;
|
|
161
|
-
}
|
|
162
|
-
;
|
|
163
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: AppBreadcrumbComponent, deps: [{ token: i1.ActivatedRoute }, { token: i1.Router }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
164
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.0", type: AppBreadcrumbComponent, isStandalone: true, selector: "app-breadcrumb", ngImport: i0, template: "@if(isShownBreadcrumb) {\r\n <nav class=\"flex gap-x-3 text-[12px] w-full items-center mb-5\">\r\n <div class=\"card flex justify-center\">\r\n <p-breadcrumb [model]=\"items\"></p-breadcrumb>\r\n </div>\r\n </nav>\r\n}\r\n", styles: [".p-breadcrumb-list li:first-child a{color:var(--secondary)}.p-breadcrumb-list .p-breadcrumb-separator{transform:scale(.7)}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "component", type: Breadcrumb, selector: "p-breadcrumb", inputs: ["model", "style", "styleClass", "home", "homeAriaLabel"], outputs: ["onItemClick"] }, { kind: "ngmodule", type: RouterModule }], encapsulation: i0.ViewEncapsulation.None }); }
|
|
165
|
-
}
|
|
166
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: AppBreadcrumbComponent, decorators: [{
|
|
167
|
-
type: Component,
|
|
168
|
-
args: [{ selector: 'app-breadcrumb', standalone: true, imports: [CommonModule, Breadcrumb, RouterModule], encapsulation: ViewEncapsulation.None, template: "@if(isShownBreadcrumb) {\r\n <nav class=\"flex gap-x-3 text-[12px] w-full items-center mb-5\">\r\n <div class=\"card flex justify-center\">\r\n <p-breadcrumb [model]=\"items\"></p-breadcrumb>\r\n </div>\r\n </nav>\r\n}\r\n", styles: [".p-breadcrumb-list li:first-child a{color:var(--secondary)}.p-breadcrumb-list .p-breadcrumb-separator{transform:scale(.7)}\n"] }]
|
|
169
|
-
}], ctorParameters: () => [{ type: i1.ActivatedRoute }, { type: i1.Router }] });
|
|
170
|
-
|
|
171
69
|
const setLocalStorage = (key, value) => localStorage.setItem(key, value);
|
|
172
70
|
const getLocalStorage = (key) => localStorage.getItem(key);
|
|
173
71
|
const clearLocalStorage = () => localStorage.clear();
|
|
@@ -218,8 +116,8 @@ const resolveUrl = (baseUrl, options, ...args) => {
|
|
|
218
116
|
return urlRewrite;
|
|
219
117
|
}
|
|
220
118
|
let result = baseUrl;
|
|
221
|
-
if (args && args.length > 0 && args[0] !==
|
|
222
|
-
result += `/${args.join(
|
|
119
|
+
if (args && args.length > 0 && args[0] !== "") {
|
|
120
|
+
result += `/${args.join("/")}`;
|
|
223
121
|
}
|
|
224
122
|
if (urlPostfix) {
|
|
225
123
|
result += `/${urlPostfix}`;
|
|
@@ -227,7 +125,7 @@ const resolveUrl = (baseUrl, options, ...args) => {
|
|
|
227
125
|
return result;
|
|
228
126
|
};
|
|
229
127
|
const extractRequestOptions = (options) => {
|
|
230
|
-
if (!options || typeof options !==
|
|
128
|
+
if (!options || typeof options !== "object") {
|
|
231
129
|
return {};
|
|
232
130
|
}
|
|
233
131
|
/* eslint-disable */
|
|
@@ -408,10 +306,14 @@ const APP_HTTP_CONFIG = {
|
|
|
408
306
|
};
|
|
409
307
|
|
|
410
308
|
const IS_SYSTEM_LOADER = new HttpContextToken(() => true); // set default loader
|
|
309
|
+
const USE_API_PREFIX = new HttpContextToken(() => true); // set default loader
|
|
411
310
|
class HttpContextHandler {
|
|
412
311
|
static setLoaderType(isSystemLoader) {
|
|
413
312
|
return new HttpContext().set(IS_SYSTEM_LOADER, isSystemLoader);
|
|
414
313
|
}
|
|
314
|
+
static useApiPrefix(hasBaseSegment) {
|
|
315
|
+
return new HttpContext().set(USE_API_PREFIX, hasBaseSegment);
|
|
316
|
+
}
|
|
415
317
|
}
|
|
416
318
|
|
|
417
319
|
class LoaderService {
|
|
@@ -451,8 +353,8 @@ class HttpBaseInterceptor {
|
|
|
451
353
|
this.loaderService = inject(LoaderService);
|
|
452
354
|
}
|
|
453
355
|
intercept(request, next) {
|
|
454
|
-
|
|
455
|
-
const URL = `${this.appConfig.gatewayUrl}${request.url}`;
|
|
356
|
+
const useApiPrefix = request.context.get(USE_API_PREFIX);
|
|
357
|
+
const URL = `${this.appConfig.gatewayUrl}${useApiPrefix ? this.appConfig.apiPrefix : ""}${request.url}`;
|
|
456
358
|
const token = this.authService.getUserToken();
|
|
457
359
|
// Handler header
|
|
458
360
|
request = request.clone({
|
|
@@ -574,7 +476,7 @@ class ToasterService {
|
|
|
574
476
|
clear() {
|
|
575
477
|
this.messageService.clear(this.mainKey);
|
|
576
478
|
}
|
|
577
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: ToasterService, deps: [{ token: i1
|
|
479
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: ToasterService, deps: [{ token: i1.MessageService }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
578
480
|
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: ToasterService, providedIn: "root" }); }
|
|
579
481
|
}
|
|
580
482
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: ToasterService, decorators: [{
|
|
@@ -582,7 +484,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImpor
|
|
|
582
484
|
args: [{
|
|
583
485
|
providedIn: "root"
|
|
584
486
|
}]
|
|
585
|
-
}], ctorParameters: () => [{ type: i1
|
|
487
|
+
}], ctorParameters: () => [{ type: i1.MessageService }] });
|
|
586
488
|
|
|
587
489
|
class ErrorHandlerService {
|
|
588
490
|
constructor(toasterService, translateService) {
|
|
@@ -712,6 +614,44 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImpor
|
|
|
712
614
|
}]
|
|
713
615
|
}] });
|
|
714
616
|
|
|
617
|
+
class GlobalLoaderComponent {
|
|
618
|
+
constructor(loaderService) {
|
|
619
|
+
this.loaderService = loaderService;
|
|
620
|
+
}
|
|
621
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: GlobalLoaderComponent, deps: [{ token: LoaderService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
622
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.0", type: GlobalLoaderComponent, isStandalone: true, selector: "global-loader", inputs: { color: "color" }, ngImport: i0, template: "@if (loaderService.isLoading$ | async; as data) {\r\n @if (data.show) {\r\n <div\r\n class=\"fixed inset-0 z-[1111] flex justify-center items-center\"\r\n [ngClass]=\"{\r\n 'bg-white/75': data?.isSystemLoader,\r\n 'absolute': !data?.isSystemLoader\r\n }\"\r\n >\r\n <div class=\"text-center flex flex-col gap-5 items-center\">\r\n <div\r\n class=\"animate-spin inline-block w-12 h-12 border-[3px] border-current border-t-transparent text-gray-800 rounded-full\">\r\n </div>\r\n <span>{{ 'loading' | translate }}</span>\r\n </div>\r\n </div>\r\n }\r\n}\r\n", styles: [""], dependencies: [{ kind: "pipe", type: AsyncPipe, name: "async" }, { kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "pipe", type: TranslatePipe, name: "translate" }] }); }
|
|
623
|
+
}
|
|
624
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: GlobalLoaderComponent, decorators: [{
|
|
625
|
+
type: Component,
|
|
626
|
+
args: [{ selector: "global-loader", standalone: true, imports: [AsyncPipe, NgClass, TranslatePipe], template: "@if (loaderService.isLoading$ | async; as data) {\r\n @if (data.show) {\r\n <div\r\n class=\"fixed inset-0 z-[1111] flex justify-center items-center\"\r\n [ngClass]=\"{\r\n 'bg-white/75': data?.isSystemLoader,\r\n 'absolute': !data?.isSystemLoader\r\n }\"\r\n >\r\n <div class=\"text-center flex flex-col gap-5 items-center\">\r\n <div\r\n class=\"animate-spin inline-block w-12 h-12 border-[3px] border-current border-t-transparent text-gray-800 rounded-full\">\r\n </div>\r\n <span>{{ 'loading' | translate }}</span>\r\n </div>\r\n </div>\r\n }\r\n}\r\n" }]
|
|
627
|
+
}], ctorParameters: () => [{ type: LoaderService }], propDecorators: { color: [{
|
|
628
|
+
type: Input
|
|
629
|
+
}] } });
|
|
630
|
+
|
|
631
|
+
const authGuard = () => {
|
|
632
|
+
const appConfig = inject(CORE_CONFIG);
|
|
633
|
+
const authService = inject(AuthService);
|
|
634
|
+
const token = authService.getUserToken();
|
|
635
|
+
if (!token) {
|
|
636
|
+
window.location.href = appConfig.loginUrl;
|
|
637
|
+
return false;
|
|
638
|
+
}
|
|
639
|
+
return true;
|
|
640
|
+
};
|
|
641
|
+
|
|
642
|
+
const permissionsGuard = (route) => {
|
|
643
|
+
const permissionsService = inject(PermissionsService);
|
|
644
|
+
const router = inject(Router);
|
|
645
|
+
const { key, action } = route.data["permissions"];
|
|
646
|
+
if (!route.data["permissions"] || (route.data["permissions"] && permissionsService.routeGuardChecker(key, action))) {
|
|
647
|
+
return true;
|
|
648
|
+
}
|
|
649
|
+
else {
|
|
650
|
+
router.navigate(["no-access"]);
|
|
651
|
+
return false;
|
|
652
|
+
}
|
|
653
|
+
};
|
|
654
|
+
|
|
715
655
|
var UserPermissionsEnum;
|
|
716
656
|
(function (UserPermissionsEnum) {
|
|
717
657
|
UserPermissionsEnum["BOD"] = "BOD";
|
|
@@ -845,180 +785,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImpor
|
|
|
845
785
|
type: Input
|
|
846
786
|
}] } });
|
|
847
787
|
|
|
848
|
-
class AppHeaderComponent {
|
|
849
|
-
constructor(authService) {
|
|
850
|
-
this.authService = authService;
|
|
851
|
-
this.createButtonClicked = new EventEmitter();
|
|
852
|
-
this.toggleMenu = new EventEmitter();
|
|
853
|
-
this.items = [
|
|
854
|
-
{
|
|
855
|
-
items: [
|
|
856
|
-
{
|
|
857
|
-
label: "خــــروج",
|
|
858
|
-
command: () => this.logout()
|
|
859
|
-
}
|
|
860
|
-
]
|
|
861
|
-
}
|
|
862
|
-
];
|
|
863
|
-
this.UserPermissionsEnum = UserPermissionsEnum;
|
|
864
|
-
this.PermissionsActions = PermissionsActions;
|
|
865
|
-
}
|
|
866
|
-
logout() {
|
|
867
|
-
this.authService
|
|
868
|
-
.logoutFromSSO()
|
|
869
|
-
.pipe(finalize(() => {
|
|
870
|
-
this.authService.clearAuth();
|
|
871
|
-
}))
|
|
872
|
-
.subscribe();
|
|
873
|
-
}
|
|
874
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: AppHeaderComponent, deps: [{ token: AuthService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
875
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.0", type: AppHeaderComponent, isStandalone: true, selector: "app-header", inputs: { userInfo: "userInfo" }, outputs: { createButtonClicked: "createButtonClicked", toggleMenu: "toggleMenu" }, ngImport: i0, template: "<div class=\"px-10 flex justify-between items-center bg-white shadow-md py-3 h-16\">\r\n <div class=\"d-flex md:hidden w-fit\">\r\n <!-- Burger Icon for Mobile -->\r\n <app-button icon=\"font-icon-burger-icon text-[25px]\" size=\"large\" variant=\"text\"\r\n (clickEmitter)=\"toggleMenu.emit()\"/>\r\n </div>\r\n <div class=\"d-flex items-center justify-content-between gap-1\">\r\n <app-button\r\n *hasPermissions=\"[PermissionsActions.CREATE];key: UserPermissionsEnum.BOD\"\r\n iconPos=\"right\" icon=\"font-icon-plus\" (clickEmitter)=\"createButtonClicked.emit()\"\r\n [title]=\"'actions.create' | translate\"/>\r\n </div>\r\n\r\n <div class=\"flex items-center gap-1\">\r\n @if (userInfo) {\r\n <div class=\"flex flex-col items-end justify-center\">\r\n <p class=\"text-sm\">{{ userInfo.userName }}</p>\r\n <p class=\"text-gray-500 mb-0 text-[10px]\">{{ userInfo.email }}</p>\r\n </div>\r\n\r\n <img src=\"assets/images/user-placeholder.jpg\" class=\"w-9 h-9 object-cover rounded-full\" alt=\"\"/>\r\n }\r\n <p-menu #menu [model]=\"items\" [popup]=\"true\"></p-menu>\r\n <button (click)=\"menu.toggle($event)\" class=\"mb-2\"><i class=\"font-icon-Vector text-[6px]\"></i></button>\r\n </div>\r\n</div>\r\n", styles: [""], dependencies: [{ kind: "ngmodule", type: RouterModule }, { kind: "component", type: AppButtonComponent, selector: "app-button", inputs: ["title", "class", "icon", "size", "style", "iconPos", "variant", "disabled", "text", "rounded"], outputs: ["clickEmitter"] }, { kind: "component", type: Menu, selector: "p-menu", inputs: ["model", "popup", "style", "styleClass", "appendTo", "autoZIndex", "baseZIndex", "showTransitionOptions", "hideTransitionOptions", "ariaLabel", "ariaLabelledBy", "id", "tabindex"], outputs: ["onShow", "onHide", "onBlur", "onFocus"] }, { kind: "pipe", type: TranslatePipe, name: "translate" }, { kind: "directive", type: HasPermissionsDirective, selector: "[hasPermissions]", inputs: ["hasPermissions", "hasPermissionsKey", "hasPermissionsNewPermissions", "hasPermissionsIsDomain"] }], encapsulation: i0.ViewEncapsulation.None }); }
|
|
876
|
-
}
|
|
877
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: AppHeaderComponent, decorators: [{
|
|
878
|
-
type: Component,
|
|
879
|
-
args: [{ selector: "app-header", standalone: true, imports: [RouterModule, AppButtonComponent, Menu, TranslatePipe, HasPermissionsDirective], encapsulation: ViewEncapsulation.None, template: "<div class=\"px-10 flex justify-between items-center bg-white shadow-md py-3 h-16\">\r\n <div class=\"d-flex md:hidden w-fit\">\r\n <!-- Burger Icon for Mobile -->\r\n <app-button icon=\"font-icon-burger-icon text-[25px]\" size=\"large\" variant=\"text\"\r\n (clickEmitter)=\"toggleMenu.emit()\"/>\r\n </div>\r\n <div class=\"d-flex items-center justify-content-between gap-1\">\r\n <app-button\r\n *hasPermissions=\"[PermissionsActions.CREATE];key: UserPermissionsEnum.BOD\"\r\n iconPos=\"right\" icon=\"font-icon-plus\" (clickEmitter)=\"createButtonClicked.emit()\"\r\n [title]=\"'actions.create' | translate\"/>\r\n </div>\r\n\r\n <div class=\"flex items-center gap-1\">\r\n @if (userInfo) {\r\n <div class=\"flex flex-col items-end justify-center\">\r\n <p class=\"text-sm\">{{ userInfo.userName }}</p>\r\n <p class=\"text-gray-500 mb-0 text-[10px]\">{{ userInfo.email }}</p>\r\n </div>\r\n\r\n <img src=\"assets/images/user-placeholder.jpg\" class=\"w-9 h-9 object-cover rounded-full\" alt=\"\"/>\r\n }\r\n <p-menu #menu [model]=\"items\" [popup]=\"true\"></p-menu>\r\n <button (click)=\"menu.toggle($event)\" class=\"mb-2\"><i class=\"font-icon-Vector text-[6px]\"></i></button>\r\n </div>\r\n</div>\r\n" }]
|
|
880
|
-
}], ctorParameters: () => [{ type: AuthService }], propDecorators: { createButtonClicked: [{
|
|
881
|
-
type: Output
|
|
882
|
-
}], toggleMenu: [{
|
|
883
|
-
type: Output
|
|
884
|
-
}], userInfo: [{
|
|
885
|
-
type: Input
|
|
886
|
-
}] } });
|
|
887
|
-
|
|
888
|
-
const ROUTES_NAME = {
|
|
889
|
-
board: {
|
|
890
|
-
name: '/board-page',
|
|
891
|
-
},
|
|
892
|
-
users: {
|
|
893
|
-
name: '/users',
|
|
894
|
-
},
|
|
895
|
-
// reports: {
|
|
896
|
-
// name: '/reports',
|
|
897
|
-
// },
|
|
898
|
-
meetings: {
|
|
899
|
-
name: '/meeting-page',
|
|
900
|
-
},
|
|
901
|
-
// tasks: {
|
|
902
|
-
// name: '/tasks',
|
|
903
|
-
// },
|
|
904
|
-
// imported: {
|
|
905
|
-
// name: '/imported',
|
|
906
|
-
// },
|
|
907
|
-
// exported: {
|
|
908
|
-
// name: '/exported',
|
|
909
|
-
// },
|
|
910
|
-
// board: {
|
|
911
|
-
// name: '/board',
|
|
912
|
-
// },
|
|
913
|
-
};
|
|
914
|
-
|
|
915
|
-
const BASE_SIDE_MENU_ITEMS = [
|
|
916
|
-
{
|
|
917
|
-
label: 'الإجتماعات',
|
|
918
|
-
icon: 'font-icon-menu-board',
|
|
919
|
-
link: ROUTES_NAME['meetings'].name
|
|
920
|
-
},
|
|
921
|
-
{
|
|
922
|
-
label: 'اللجان و المجالس',
|
|
923
|
-
icon: 'font-icon-people',
|
|
924
|
-
link: ROUTES_NAME['board'].name
|
|
925
|
-
},
|
|
926
|
-
// {
|
|
927
|
-
// label: 'المستخدمين',
|
|
928
|
-
// icon: 'font-icon-profile-2user',
|
|
929
|
-
// link: ROUTES_NAME['users'].name,
|
|
930
|
-
// },
|
|
931
|
-
// {
|
|
932
|
-
// label: 'الإجتماعات',
|
|
933
|
-
// icon: 'font-icon-menu-board',
|
|
934
|
-
// link: ROUTES_NAME['meetings'].name,
|
|
935
|
-
// },
|
|
936
|
-
// {
|
|
937
|
-
// label: 'مهامي',
|
|
938
|
-
// icon: 'font-icon-task-square',
|
|
939
|
-
// link: ROUTES_NAME['tasks'].name,
|
|
940
|
-
// },
|
|
941
|
-
// {
|
|
942
|
-
// label: 'الوارد',
|
|
943
|
-
// icon: 'font-icon-directbox-receive',
|
|
944
|
-
// link: ROUTES_NAME['imported'].name,
|
|
945
|
-
// },
|
|
946
|
-
// {
|
|
947
|
-
// label: 'الصادر',
|
|
948
|
-
// icon: 'font-icon-directbox-send',
|
|
949
|
-
// link: ROUTES_NAME['exported'].name,
|
|
950
|
-
// },
|
|
951
|
-
// {
|
|
952
|
-
// label: 'التقارير',
|
|
953
|
-
// icon: 'font-icon-status-up',
|
|
954
|
-
// link: ROUTES_NAME['reports'].name,
|
|
955
|
-
// },
|
|
956
|
-
];
|
|
957
|
-
|
|
958
|
-
class AppSideMenuComponent {
|
|
959
|
-
constructor() {
|
|
960
|
-
this.menuItems = BASE_SIDE_MENU_ITEMS;
|
|
961
|
-
this.permissionsService = inject(PermissionsService);
|
|
962
|
-
}
|
|
963
|
-
ngOnInit() {
|
|
964
|
-
this.filteredMenu = this.menuItems.filter((item) => {
|
|
965
|
-
if (!item.permissionKey) {
|
|
966
|
-
return true;
|
|
967
|
-
}
|
|
968
|
-
return this.permissionsService.checkKeyHasPermission(item.permissionKey, PermissionsActions.VIEW);
|
|
969
|
-
});
|
|
970
|
-
}
|
|
971
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: AppSideMenuComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
972
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.0", type: AppSideMenuComponent, isStandalone: true, selector: "app-side-menu", inputs: { isOpen: "isOpen" }, ngImport: i0, template: "<nav\r\n [ngClass]=\"{ 'max-w-0 md:max-w-[500px]': !isOpen, 'max-w-[500px]': isOpen }\"\r\n class=\"md:flex h-100 bg-primary flex text-white flex-col py-2 text-center gap-y-10 transition-all w-24 hover:md:w-48 duration-500\">\r\n <a [routerLink]=\"'/'\"><i class=\"font-icon-STC-Logo text-[20px] pt-4 block px-4\"></i></a>\r\n <ul class=\"flex flex-col flex-grow\">\r\n @for (item of filteredMenu; track $index) {\r\n <li>\r\n <a\r\n [routerLinkActive]=\"'bg-primary_dark border-secondary'\"\r\n [routerLink]=\"item.link\"\r\n class=\"flex flex-col py-3 px-4 border-r-2 border-primary transition-all hover:bg-primary_dark hover:border-secondary\">\r\n <i [class]=\"item.icon + ' text-[17px] mb-1'\"></i>\r\n <span class=\"text-[10px] truncate\">{{ item.label }}</span>\r\n </a>\r\n </li>\r\n }\r\n </ul>\r\n\r\n <a href=\"#\"><i class=\"font-icon-setting text-[20px] pb-4 block px-4\"></i></a>\r\n</nav>\r\n", styles: [""], dependencies: [{ kind: "ngmodule", type: RouterModule }, { kind: "directive", type: i1.RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "info", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }, { kind: "directive", type: i1.RouterLinkActive, selector: "[routerLinkActive]", inputs: ["routerLinkActiveOptions", "ariaCurrentWhenActive", "routerLinkActive"], outputs: ["isActiveChange"], exportAs: ["routerLinkActive"] }, { kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }], encapsulation: i0.ViewEncapsulation.None }); }
|
|
973
|
-
}
|
|
974
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: AppSideMenuComponent, decorators: [{
|
|
975
|
-
type: Component,
|
|
976
|
-
args: [{ selector: "app-side-menu", standalone: true, imports: [RouterModule, NgClass], encapsulation: ViewEncapsulation.None, template: "<nav\r\n [ngClass]=\"{ 'max-w-0 md:max-w-[500px]': !isOpen, 'max-w-[500px]': isOpen }\"\r\n class=\"md:flex h-100 bg-primary flex text-white flex-col py-2 text-center gap-y-10 transition-all w-24 hover:md:w-48 duration-500\">\r\n <a [routerLink]=\"'/'\"><i class=\"font-icon-STC-Logo text-[20px] pt-4 block px-4\"></i></a>\r\n <ul class=\"flex flex-col flex-grow\">\r\n @for (item of filteredMenu; track $index) {\r\n <li>\r\n <a\r\n [routerLinkActive]=\"'bg-primary_dark border-secondary'\"\r\n [routerLink]=\"item.link\"\r\n class=\"flex flex-col py-3 px-4 border-r-2 border-primary transition-all hover:bg-primary_dark hover:border-secondary\">\r\n <i [class]=\"item.icon + ' text-[17px] mb-1'\"></i>\r\n <span class=\"text-[10px] truncate\">{{ item.label }}</span>\r\n </a>\r\n </li>\r\n }\r\n </ul>\r\n\r\n <a href=\"#\"><i class=\"font-icon-setting text-[20px] pb-4 block px-4\"></i></a>\r\n</nav>\r\n" }]
|
|
977
|
-
}], propDecorators: { isOpen: [{
|
|
978
|
-
type: Input
|
|
979
|
-
}] } });
|
|
980
|
-
|
|
981
|
-
class GlobalLoaderComponent {
|
|
982
|
-
constructor(loaderService) {
|
|
983
|
-
this.loaderService = loaderService;
|
|
984
|
-
}
|
|
985
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: GlobalLoaderComponent, deps: [{ token: LoaderService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
986
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.0", type: GlobalLoaderComponent, isStandalone: true, selector: "global-loader", inputs: { color: "color" }, ngImport: i0, template: "@if (loaderService.isLoading$ | async; as data) {\r\n @if (data.show) {\r\n <div\r\n class=\"fixed inset-0 z-[1111] flex justify-center items-center\"\r\n [ngClass]=\"{\r\n 'bg-white/75': data?.isSystemLoader,\r\n 'absolute': !data?.isSystemLoader\r\n }\"\r\n >\r\n <div class=\"text-center flex flex-col gap-5 items-center\">\r\n <div\r\n class=\"animate-spin inline-block w-12 h-12 border-[3px] border-current border-t-transparent text-gray-800 rounded-full\">\r\n </div>\r\n <span>{{ 'loading' | translate }}</span>\r\n </div>\r\n </div>\r\n }\r\n}\r\n", styles: [""], dependencies: [{ kind: "pipe", type: AsyncPipe, name: "async" }, { kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "pipe", type: TranslatePipe, name: "translate" }] }); }
|
|
987
|
-
}
|
|
988
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: GlobalLoaderComponent, decorators: [{
|
|
989
|
-
type: Component,
|
|
990
|
-
args: [{ selector: "global-loader", standalone: true, imports: [AsyncPipe, NgClass, TranslatePipe], template: "@if (loaderService.isLoading$ | async; as data) {\r\n @if (data.show) {\r\n <div\r\n class=\"fixed inset-0 z-[1111] flex justify-center items-center\"\r\n [ngClass]=\"{\r\n 'bg-white/75': data?.isSystemLoader,\r\n 'absolute': !data?.isSystemLoader\r\n }\"\r\n >\r\n <div class=\"text-center flex flex-col gap-5 items-center\">\r\n <div\r\n class=\"animate-spin inline-block w-12 h-12 border-[3px] border-current border-t-transparent text-gray-800 rounded-full\">\r\n </div>\r\n <span>{{ 'loading' | translate }}</span>\r\n </div>\r\n </div>\r\n }\r\n}\r\n" }]
|
|
991
|
-
}], ctorParameters: () => [{ type: LoaderService }], propDecorators: { color: [{
|
|
992
|
-
type: Input
|
|
993
|
-
}] } });
|
|
994
|
-
|
|
995
|
-
const authGuard = () => {
|
|
996
|
-
const appConfig = inject(CORE_CONFIG);
|
|
997
|
-
const authService = inject(AuthService);
|
|
998
|
-
const token = authService.getUserToken();
|
|
999
|
-
if (!token) {
|
|
1000
|
-
window.location.href = appConfig.loginUrl;
|
|
1001
|
-
return false;
|
|
1002
|
-
}
|
|
1003
|
-
return true;
|
|
1004
|
-
};
|
|
1005
|
-
|
|
1006
|
-
const permissionsGuard = (route) => {
|
|
1007
|
-
const permissionsService = inject(PermissionsService);
|
|
1008
|
-
const router = inject(Router);
|
|
1009
|
-
const { key, action } = route.data["permissions"];
|
|
1010
|
-
if (!route.data["permissions"] || (route.data["permissions"] && permissionsService.routeGuardChecker(key, action))) {
|
|
1011
|
-
return true;
|
|
1012
|
-
}
|
|
1013
|
-
else {
|
|
1014
|
-
router.navigate(["no-access"]);
|
|
1015
|
-
return false;
|
|
1016
|
-
}
|
|
1017
|
-
};
|
|
1018
|
-
|
|
1019
788
|
/**
|
|
1020
789
|
* Generated bundle index. Do not edit.
|
|
1021
790
|
*/
|
|
1022
791
|
|
|
1023
|
-
export { APP_HTTP_CONFIG,
|
|
792
|
+
export { APP_HTTP_CONFIG, AuthService, BaseHttpService, BasePaginationService, COMMON_BASE_URL, CORE_CONFIG, ErrorHandlerService, GlobalHttpErrorInterceptor, GlobalLoaderComponent, HasPermissionsDirective, HttpBaseInterceptor, HttpRequestOptionsKeys, JwtDecoderService, ListOfValues, LoaderService, PAGESIZE, PAGE_SIZE_OPTION, PermissionsActions, PermissionsService, SortDirection, ToasterService, UserPermissionsEnum, authGuard, epmDefaultMapper, extractRequestOptions, mapResponse, permissionsGuard, resolveUrl };
|
|
1024
793
|
//# sourceMappingURL=corp-products-app-core.mjs.map
|