@dotglitch/ngx-common 1.0.17 → 1.0.18
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/esm2020/public-api.mjs +3 -1
- package/esm2020/services/navigation.service.mjs +49 -0
- package/esm2020/services/theme.service.mjs +25 -0
- package/fesm2015/dotglitch-ngx-common.mjs +69 -4
- package/fesm2015/dotglitch-ngx-common.mjs.map +1 -1
- package/fesm2020/dotglitch-ngx-common.mjs +70 -4
- package/fesm2020/dotglitch-ngx-common.mjs.map +1 -1
- package/package.json +1 -1
- package/public-api.d.ts +2 -0
- package/services/navigation.service.d.ts +20 -0
- package/services/theme.service.d.ts +10 -0
package/esm2020/public-api.mjs
CHANGED
|
@@ -27,6 +27,8 @@ export * from './services/dialog.service';
|
|
|
27
27
|
export * from './services/fetch.service';
|
|
28
28
|
export * from './services/keyboard.service';
|
|
29
29
|
export * from './services/file.service';
|
|
30
|
+
export * from './services/theme.service';
|
|
31
|
+
export * from './services/navigation.service';
|
|
30
32
|
// export * from './services/serviceworker.service';
|
|
31
33
|
/**
|
|
32
34
|
** Lazy loader component & service
|
|
@@ -42,4 +44,4 @@ export * from './components/dynamic-html/dynamic-html.service';
|
|
|
42
44
|
export * from './components/dynamic-html/dynamic-html.module';
|
|
43
45
|
export * from './components/dynamic-html/dynamic-html.component';
|
|
44
46
|
export * from './components/dynamic-html/types';
|
|
45
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
47
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3BhY2thZ2VzL2NvbW1vbi9zcmMvcHVibGljLWFwaS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRztBQUVIOztHQUVHO0FBQ0gsY0FBYyxjQUFjLENBQUM7QUFDN0IsY0FBYyxlQUFlLENBQUM7QUFFOUI7O0dBRUc7QUFDSCxjQUFjLGdDQUFnQyxDQUFDO0FBQy9DLGNBQWMsNkJBQTZCLENBQUM7QUFFNUM7O0dBRUc7QUFDSCxjQUFjLDBCQUEwQixDQUFDO0FBQ3pDLGNBQWMsOEJBQThCLENBQUM7QUFDN0MsY0FBYyw0QkFBNEIsQ0FBQztBQUMzQyxjQUFjLDJCQUEyQixDQUFDO0FBQzFDLGNBQWMseUJBQXlCLENBQUM7QUFFeEM7O0VBRUU7QUFDRixjQUFjLCtCQUErQixDQUFDO0FBQzlDLGNBQWMsMkJBQTJCLENBQUM7QUFDMUMsY0FBYywwQkFBMEIsQ0FBQztBQUN6QyxjQUFjLDZCQUE2QixDQUFDO0FBQzVDLGNBQWMseUJBQXlCLENBQUM7QUFDeEMsY0FBYywwQkFBMEIsQ0FBQztBQUN6QyxjQUFjLCtCQUErQixDQUFDO0FBQzlDLG9EQUFvRDtBQUVwRDs7RUFFRTtBQUNGLGNBQWMsOENBQThDLENBQUM7QUFDN0QsY0FBYyw2Q0FBNkMsQ0FBQztBQUM1RCxjQUFjLGdEQUFnRCxDQUFDO0FBQy9ELGNBQWMsZ0NBQWdDLENBQUM7QUFFL0M7O0VBRUU7QUFDRixjQUFjLGdEQUFnRCxDQUFDO0FBQy9ELGNBQWMsK0NBQStDLENBQUM7QUFDOUQsY0FBYyxrREFBa0QsQ0FBQztBQUNqRSxjQUFjLGlDQUFpQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLypcbiAqIFB1YmxpYyBBUEkgU3VyZmFjZSBvZiBwYWNrYWdlXG4gKi9cblxuLyoqXG4gKiogVHlwZXNcbiAqL1xuZXhwb3J0ICogZnJvbSAnLi90eXBlcy9tZW51JztcbmV4cG9ydCAqIGZyb20gJy4vdHlwZXMvcG9wdXAnO1xuXG4vKipcbiAqKiBEaXJlY3RpdmVzXG4gKi9cbmV4cG9ydCAqIGZyb20gJy4vZGlyZWN0aXZlcy90b29sdGlwLmRpcmVjdGl2ZSc7XG5leHBvcnQgKiBmcm9tICcuL2RpcmVjdGl2ZXMvbWVudS5kaXJlY3RpdmUnO1xuXG4vKipcbiAqKiBQaXBlc1xuICovXG5leHBvcnQgKiBmcm9tICcuL3BpcGVzL2h0bWwtYnlwYXNzLnBpcGUnO1xuZXhwb3J0ICogZnJvbSAnLi9waXBlcy9yZXNvdXJjZS1ieXBhc3MucGlwZSc7XG5leHBvcnQgKiBmcm9tICcuL3BpcGVzL3NjcmlwdC1ieXBhc3MucGlwZSc7XG5leHBvcnQgKiBmcm9tICcuL3BpcGVzL3N0eWxlLWJ5cGFzcy5waXBlJztcbmV4cG9ydCAqIGZyb20gJy4vcGlwZXMvdXJsLWJ5cGFzcy5waXBlJztcblxuLyoqXG4qKiBTZXJ2aWNlc1xuKi9cbmV4cG9ydCAqIGZyb20gJy4vc2VydmljZXMvZGVwZW5kZW5jeS5zZXJ2aWNlJztcbmV4cG9ydCAqIGZyb20gJy4vc2VydmljZXMvZGlhbG9nLnNlcnZpY2UnO1xuZXhwb3J0ICogZnJvbSAnLi9zZXJ2aWNlcy9mZXRjaC5zZXJ2aWNlJztcbmV4cG9ydCAqIGZyb20gJy4vc2VydmljZXMva2V5Ym9hcmQuc2VydmljZSc7XG5leHBvcnQgKiBmcm9tICcuL3NlcnZpY2VzL2ZpbGUuc2VydmljZSc7XG5leHBvcnQgKiBmcm9tICcuL3NlcnZpY2VzL3RoZW1lLnNlcnZpY2UnO1xuZXhwb3J0ICogZnJvbSAnLi9zZXJ2aWNlcy9uYXZpZ2F0aW9uLnNlcnZpY2UnO1xuLy8gZXhwb3J0ICogZnJvbSAnLi9zZXJ2aWNlcy9zZXJ2aWNld29ya2VyLnNlcnZpY2UnO1xuXG4vKipcbioqIExhenkgbG9hZGVyIGNvbXBvbmVudCAmIHNlcnZpY2VcbiovXG5leHBvcnQgKiBmcm9tICcuL2NvbXBvbmVudHMvbGF6eS1sb2FkZXIvbGF6eS1sb2FkZXIuc2VydmljZSc7XG5leHBvcnQgKiBmcm9tICcuL2NvbXBvbmVudHMvbGF6eS1sb2FkZXIvbGF6eS1sb2FkZXIubW9kdWxlJztcbmV4cG9ydCAqIGZyb20gJy4vY29tcG9uZW50cy9sYXp5LWxvYWRlci9sYXp5LWxvYWRlci5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9jb21wb25lbnRzL2xhenktbG9hZGVyL3R5cGVzJztcblxuLyoqXG4qKiBTZXJ2aWNlc1xuKi9cbmV4cG9ydCAqIGZyb20gJy4vY29tcG9uZW50cy9keW5hbWljLWh0bWwvZHluYW1pYy1odG1sLnNlcnZpY2UnO1xuZXhwb3J0ICogZnJvbSAnLi9jb21wb25lbnRzL2R5bmFtaWMtaHRtbC9keW5hbWljLWh0bWwubW9kdWxlJztcbmV4cG9ydCAqIGZyb20gJy4vY29tcG9uZW50cy9keW5hbWljLWh0bWwvZHluYW1pYy1odG1sLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2NvbXBvbmVudHMvZHluYW1pYy1odG1sL3R5cGVzJztcbiJdfQ==
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
import { Injectable } from '@angular/core';
|
|
2
|
+
import { BehaviorSubject } from 'rxjs';
|
|
3
|
+
import { Logger } from '../utils';
|
|
4
|
+
import * as i0 from "@angular/core";
|
|
5
|
+
import * as i1 from "../public-api";
|
|
6
|
+
const { log, warn, err } = Logger("NavigationService", "#ff9800");
|
|
7
|
+
export class NavigationService {
|
|
8
|
+
constructor(lazyLoader) {
|
|
9
|
+
this.lazyLoader = lazyLoader;
|
|
10
|
+
this.virtualPath$ = new BehaviorSubject(null);
|
|
11
|
+
window.onhashchange = () => this.loadRootPageFromUrl();
|
|
12
|
+
this.loadRootPageFromUrl();
|
|
13
|
+
}
|
|
14
|
+
loadRootPageFromUrl() {
|
|
15
|
+
const hash = location.hash.split("?")[0];
|
|
16
|
+
// If the URL is imprecisely set, we restore it to the landing page
|
|
17
|
+
if (!this.lazyLoader.isComponentRegistered(hash))
|
|
18
|
+
return this.loadRootPage("#/Landing");
|
|
19
|
+
this.loadRootPage(location.hash);
|
|
20
|
+
}
|
|
21
|
+
loadRootPage(url, data = {}) {
|
|
22
|
+
const [path, query] = url.split('?');
|
|
23
|
+
const hash = path.replace(/^\/?#\/?/, '');
|
|
24
|
+
const chunks = hash.split('/');
|
|
25
|
+
// Get query params and pass them as @Input arguments.
|
|
26
|
+
const params = query?.split('&')
|
|
27
|
+
.reduce((pars, par) => {
|
|
28
|
+
const [key, value] = par.split("=");
|
|
29
|
+
const decoded = decodeURIComponent(value);
|
|
30
|
+
pars[key] = decoded;
|
|
31
|
+
return pars;
|
|
32
|
+
}, {}) || {};
|
|
33
|
+
log(`Root page navigate to '${hash}'`, { params, chunks });
|
|
34
|
+
this.virtualPath$.next({
|
|
35
|
+
root: chunks[0],
|
|
36
|
+
chunks: chunks,
|
|
37
|
+
args: params
|
|
38
|
+
});
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
NavigationService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: NavigationService, deps: [{ token: i1.LazyLoaderService }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
42
|
+
NavigationService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: NavigationService, providedIn: 'root' });
|
|
43
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: NavigationService, decorators: [{
|
|
44
|
+
type: Injectable,
|
|
45
|
+
args: [{
|
|
46
|
+
providedIn: 'root'
|
|
47
|
+
}]
|
|
48
|
+
}], ctorParameters: function () { return [{ type: i1.LazyLoaderService }]; } });
|
|
49
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmF2aWdhdGlvbi5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcGFja2FnZXMvY29tbW9uL3NyYy9zZXJ2aWNlcy9uYXZpZ2F0aW9uLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzQyxPQUFPLEVBQUUsZUFBZSxFQUFXLE1BQU0sTUFBTSxDQUFDO0FBQ2hELE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxVQUFVLENBQUM7OztBQUdsQyxNQUFNLEVBQUUsR0FBRyxFQUFFLElBQUksRUFBRSxHQUFHLEVBQUUsR0FBRyxNQUFNLENBQUMsbUJBQW1CLEVBQUUsU0FBUyxDQUFDLENBQUM7QUFhbEUsTUFBTSxPQUFPLGlCQUFpQjtJQUcxQixZQUNxQixVQUE2QjtRQUE3QixlQUFVLEdBQVYsVUFBVSxDQUFtQjtRQUgzQyxpQkFBWSxHQUFHLElBQUksZUFBZSxDQUFzQixJQUFJLENBQUMsQ0FBQztRQUtqRSxNQUFNLENBQUMsWUFBWSxHQUFHLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxtQkFBbUIsRUFBRSxDQUFDO1FBQ3ZELElBQUksQ0FBQyxtQkFBbUIsRUFBRSxDQUFDO0lBQy9CLENBQUM7SUFFTyxtQkFBbUI7UUFDdkIsTUFBTSxJQUFJLEdBQUcsUUFBUSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFFekMsbUVBQW1FO1FBQ25FLElBQUksQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLHFCQUFxQixDQUFDLElBQUksQ0FBQztZQUM1QyxPQUFPLElBQUksQ0FBQyxZQUFZLENBQUMsV0FBVyxDQUFDLENBQUM7UUFFMUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDckMsQ0FBQztJQUVPLFlBQVksQ0FBQyxHQUFXLEVBQUUsT0FBZSxFQUFFO1FBRS9DLE1BQU0sQ0FBQyxJQUFJLEVBQUUsS0FBSyxDQUFDLEdBQUcsR0FBRyxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUNyQyxNQUFNLElBQUksR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLFVBQVUsRUFBRSxFQUFFLENBQUMsQ0FBQztRQUMxQyxNQUFNLE1BQU0sR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBRS9CLHNEQUFzRDtRQUN0RCxNQUFNLE1BQU0sR0FBRyxLQUFLLEVBQUUsS0FBSyxDQUFDLEdBQUcsQ0FBQzthQUMzQixNQUFNLENBQUMsQ0FBQyxJQUFJLEVBQUUsR0FBRyxFQUFFLEVBQUU7WUFDbEIsTUFBTSxDQUFDLEdBQUcsRUFBRSxLQUFLLENBQUMsR0FBRyxHQUFHLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1lBQ3BDLE1BQU0sT0FBTyxHQUFHLGtCQUFrQixDQUFDLEtBQUssQ0FBQyxDQUFDO1lBQzFDLElBQUksQ0FBQyxHQUFHLENBQUMsR0FBRyxPQUFPLENBQUM7WUFDcEIsT0FBTyxJQUFJLENBQUM7UUFDaEIsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUdqQixHQUFHLENBQUMsMEJBQTBCLElBQUksR0FBRyxFQUFFLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxDQUFDLENBQUM7UUFFM0QsSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUM7WUFDbkIsSUFBSSxFQUFFLE1BQU0sQ0FBQyxDQUFDLENBQUM7WUFDZixNQUFNLEVBQUUsTUFBYTtZQUNyQixJQUFJLEVBQUUsTUFBTTtTQUNmLENBQUMsQ0FBQztJQUNQLENBQUM7OzhHQTNDUSxpQkFBaUI7a0hBQWpCLGlCQUFpQixjQUZkLE1BQU07MkZBRVQsaUJBQWlCO2tCQUg3QixVQUFVO21CQUFDO29CQUNSLFVBQVUsRUFBRSxNQUFNO2lCQUNyQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEJlaGF2aW9yU3ViamVjdCwgU3ViamVjdCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgTG9nZ2VyIH0gZnJvbSAnLi4vdXRpbHMnO1xuaW1wb3J0IHsgTGF6eUxvYWRlclNlcnZpY2UgfSBmcm9tICcuLi9wdWJsaWMtYXBpJztcblxuY29uc3QgeyBsb2csIHdhcm4sIGVyciB9ID0gTG9nZ2VyKFwiTmF2aWdhdGlvblNlcnZpY2VcIiwgXCIjZmY5ODAwXCIpO1xuXG50eXBlIE5hdmlnYXRpb25Bcmd1bWVudHMgPSB7XG4gICAgcm9vdDogc3RyaW5nLFxuICAgIGNodW5rczogW3N0cmluZywgLi4uc3RyaW5nW11dLFxuICAgIGFyZ3M6IHtcbiAgICAgICAgW2tleTogc3RyaW5nXTogYW55O1xuICAgIH1cbn1cblxuQEluamVjdGFibGUoe1xuICAgIHByb3ZpZGVkSW46ICdyb290J1xufSlcbmV4cG9ydCBjbGFzcyBOYXZpZ2F0aW9uU2VydmljZSB7XG4gICAgcHVibGljIHZpcnR1YWxQYXRoJCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8TmF2aWdhdGlvbkFyZ3VtZW50cz4obnVsbCk7XG5cbiAgICBjb25zdHJ1Y3RvcihcbiAgICAgICAgcHJpdmF0ZSByZWFkb25seSBsYXp5TG9hZGVyOiBMYXp5TG9hZGVyU2VydmljZVxuICAgICkge1xuICAgICAgICB3aW5kb3cub25oYXNoY2hhbmdlID0gKCkgPT4gdGhpcy5sb2FkUm9vdFBhZ2VGcm9tVXJsKCk7XG4gICAgICAgIHRoaXMubG9hZFJvb3RQYWdlRnJvbVVybCgpO1xuICAgIH1cblxuICAgIHByaXZhdGUgbG9hZFJvb3RQYWdlRnJvbVVybCgpIHtcbiAgICAgICAgY29uc3QgaGFzaCA9IGxvY2F0aW9uLmhhc2guc3BsaXQoXCI/XCIpWzBdO1xuXG4gICAgICAgIC8vIElmIHRoZSBVUkwgaXMgaW1wcmVjaXNlbHkgc2V0LCB3ZSByZXN0b3JlIGl0IHRvIHRoZSBsYW5kaW5nIHBhZ2VcbiAgICAgICAgaWYgKCF0aGlzLmxhenlMb2FkZXIuaXNDb21wb25lbnRSZWdpc3RlcmVkKGhhc2gpKVxuICAgICAgICAgICAgcmV0dXJuIHRoaXMubG9hZFJvb3RQYWdlKFwiIy9MYW5kaW5nXCIpO1xuXG4gICAgICAgIHRoaXMubG9hZFJvb3RQYWdlKGxvY2F0aW9uLmhhc2gpO1xuICAgIH1cblxuICAgIHByaXZhdGUgbG9hZFJvb3RQYWdlKHVybDogc3RyaW5nLCBkYXRhOiBPYmplY3QgPSB7fSkge1xuXG4gICAgICAgIGNvbnN0IFtwYXRoLCBxdWVyeV0gPSB1cmwuc3BsaXQoJz8nKTtcbiAgICAgICAgY29uc3QgaGFzaCA9IHBhdGgucmVwbGFjZSgvXlxcLz8jXFwvPy8sICcnKTtcbiAgICAgICAgY29uc3QgY2h1bmtzID0gaGFzaC5zcGxpdCgnLycpO1xuXG4gICAgICAgIC8vIEdldCBxdWVyeSBwYXJhbXMgYW5kIHBhc3MgdGhlbSBhcyBASW5wdXQgYXJndW1lbnRzLlxuICAgICAgICBjb25zdCBwYXJhbXMgPSBxdWVyeT8uc3BsaXQoJyYnKVxuICAgICAgICAgICAgLnJlZHVjZSgocGFycywgcGFyKSA9PiB7XG4gICAgICAgICAgICAgICAgY29uc3QgW2tleSwgdmFsdWVdID0gcGFyLnNwbGl0KFwiPVwiKTtcbiAgICAgICAgICAgICAgICBjb25zdCBkZWNvZGVkID0gZGVjb2RlVVJJQ29tcG9uZW50KHZhbHVlKTtcbiAgICAgICAgICAgICAgICBwYXJzW2tleV0gPSBkZWNvZGVkO1xuICAgICAgICAgICAgICAgIHJldHVybiBwYXJzO1xuICAgICAgICAgICAgfSwge30pIHx8IHt9O1xuXG5cbiAgICAgICAgbG9nKGBSb290IHBhZ2UgbmF2aWdhdGUgdG8gJyR7aGFzaH0nYCwgeyBwYXJhbXMsIGNodW5rcyB9KTtcblxuICAgICAgICB0aGlzLnZpcnR1YWxQYXRoJC5uZXh0KHtcbiAgICAgICAgICAgIHJvb3Q6IGNodW5rc1swXSxcbiAgICAgICAgICAgIGNodW5rczogY2h1bmtzIGFzIGFueSxcbiAgICAgICAgICAgIGFyZ3M6IHBhcmFtc1xuICAgICAgICB9KTtcbiAgICB9XG59XG4iXX0=
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import { Injectable } from '@angular/core';
|
|
2
|
+
import { BehaviorSubject } from 'rxjs';
|
|
3
|
+
import * as i0 from "@angular/core";
|
|
4
|
+
export class ThemeService extends BehaviorSubject {
|
|
5
|
+
constructor() {
|
|
6
|
+
super("dark");
|
|
7
|
+
this.subscribe(t => {
|
|
8
|
+
document.body.classList.remove("dark");
|
|
9
|
+
document.body.classList.remove("light");
|
|
10
|
+
document.body.classList.add(t);
|
|
11
|
+
});
|
|
12
|
+
}
|
|
13
|
+
setTheme(t) {
|
|
14
|
+
this.next(t);
|
|
15
|
+
}
|
|
16
|
+
}
|
|
17
|
+
ThemeService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: ThemeService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
18
|
+
ThemeService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: ThemeService, providedIn: 'root' });
|
|
19
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: ThemeService, decorators: [{
|
|
20
|
+
type: Injectable,
|
|
21
|
+
args: [{
|
|
22
|
+
providedIn: 'root'
|
|
23
|
+
}]
|
|
24
|
+
}], ctorParameters: function () { return []; } });
|
|
25
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGhlbWUuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3BhY2thZ2VzL2NvbW1vbi9zcmMvc2VydmljZXMvdGhlbWUuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNDLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxNQUFNLENBQUM7O0FBT3ZDLE1BQU0sT0FBTyxZQUFhLFNBQVEsZUFBeUI7SUFDdkQ7UUFDSSxLQUFLLENBQUMsTUFBTSxDQUFDLENBQUM7UUFFZCxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxFQUFFO1lBQ2YsUUFBUSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1lBQ3ZDLFFBQVEsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsQ0FBQztZQUN4QyxRQUFRLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDbkMsQ0FBQyxDQUFDLENBQUE7SUFDTixDQUFDO0lBRU0sUUFBUSxDQUFDLENBQVc7UUFDdkIsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUNqQixDQUFDOzt5R0FiUSxZQUFZOzZHQUFaLFlBQVksY0FGVCxNQUFNOzJGQUVULFlBQVk7a0JBSHhCLFVBQVU7bUJBQUM7b0JBQ1IsVUFBVSxFQUFFLE1BQU07aUJBQ3JCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQmVoYXZpb3JTdWJqZWN0IH0gZnJvbSAncnhqcyc7XG5cbnR5cGUgQXBwVGhlbWUgPSBcImxpZ2h0XCIgfCBcImRhcmtcIjtcblxuQEluamVjdGFibGUoe1xuICAgIHByb3ZpZGVkSW46ICdyb290J1xufSlcbmV4cG9ydCBjbGFzcyBUaGVtZVNlcnZpY2UgZXh0ZW5kcyBCZWhhdmlvclN1YmplY3Q8QXBwVGhlbWU+e1xuICAgIGNvbnN0cnVjdG9yKCkge1xuICAgICAgICBzdXBlcihcImRhcmtcIik7XG5cbiAgICAgICAgdGhpcy5zdWJzY3JpYmUodCA9PiB7XG4gICAgICAgICAgICBkb2N1bWVudC5ib2R5LmNsYXNzTGlzdC5yZW1vdmUoXCJkYXJrXCIpO1xuICAgICAgICAgICAgZG9jdW1lbnQuYm9keS5jbGFzc0xpc3QucmVtb3ZlKFwibGlnaHRcIik7XG4gICAgICAgICAgICBkb2N1bWVudC5ib2R5LmNsYXNzTGlzdC5hZGQodCk7XG4gICAgICAgIH0pXG4gICAgfVxuXG4gICAgcHVibGljIHNldFRoZW1lKHQ6IEFwcFRoZW1lKSB7XG4gICAgICAgIHRoaXMubmV4dCh0KTtcbiAgICB9XG59XG4iXX0=
|
|
@@ -7,7 +7,7 @@ import * as i2 from '@angular/common';
|
|
|
7
7
|
import { CommonModule, NgTemplateOutlet, NgIf, NgForOf, DOCUMENT, NgComponentOutlet } from '@angular/common';
|
|
8
8
|
import * as i1$1 from '@angular/platform-browser';
|
|
9
9
|
import { createApplication } from '@angular/platform-browser';
|
|
10
|
-
import { firstValueFrom, of, Subject, debounceTime } from 'rxjs';
|
|
10
|
+
import { firstValueFrom, of, Subject, BehaviorSubject, debounceTime } from 'rxjs';
|
|
11
11
|
import * as i4 from '@angular/material/icon';
|
|
12
12
|
import { MatIconModule } from '@angular/material/icon';
|
|
13
13
|
import * as i5 from '@angular/material/progress-spinner';
|
|
@@ -1057,7 +1057,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImpor
|
|
|
1057
1057
|
}] }];
|
|
1058
1058
|
} });
|
|
1059
1059
|
|
|
1060
|
-
const { log, warn, err } = Logger("DialogService", "#607d8b");
|
|
1060
|
+
const { log: log$1, warn: warn$1, err: err$1 } = Logger("DialogService", "#607d8b");
|
|
1061
1061
|
class DialogService {
|
|
1062
1062
|
constructor(dialog, lazyLoader) {
|
|
1063
1063
|
this.dialog = dialog;
|
|
@@ -1086,7 +1086,7 @@ class DialogService {
|
|
|
1086
1086
|
dialog['idx'] = name;
|
|
1087
1087
|
this.dialogs.push(dialog);
|
|
1088
1088
|
dialog.afterClosed().subscribe(result => {
|
|
1089
|
-
log("Dialog closed " + name, result);
|
|
1089
|
+
log$1("Dialog closed " + name, result);
|
|
1090
1090
|
resolve(result);
|
|
1091
1091
|
});
|
|
1092
1092
|
});
|
|
@@ -1336,6 +1336,71 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImpor
|
|
|
1336
1336
|
}]
|
|
1337
1337
|
}], ctorParameters: function () { return [{ type: Fetch }]; } });
|
|
1338
1338
|
|
|
1339
|
+
class ThemeService extends BehaviorSubject {
|
|
1340
|
+
constructor() {
|
|
1341
|
+
super("dark");
|
|
1342
|
+
this.subscribe(t => {
|
|
1343
|
+
document.body.classList.remove("dark");
|
|
1344
|
+
document.body.classList.remove("light");
|
|
1345
|
+
document.body.classList.add(t);
|
|
1346
|
+
});
|
|
1347
|
+
}
|
|
1348
|
+
setTheme(t) {
|
|
1349
|
+
this.next(t);
|
|
1350
|
+
}
|
|
1351
|
+
}
|
|
1352
|
+
ThemeService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: ThemeService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
1353
|
+
ThemeService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: ThemeService, providedIn: 'root' });
|
|
1354
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: ThemeService, decorators: [{
|
|
1355
|
+
type: Injectable,
|
|
1356
|
+
args: [{
|
|
1357
|
+
providedIn: 'root'
|
|
1358
|
+
}]
|
|
1359
|
+
}], ctorParameters: function () { return []; } });
|
|
1360
|
+
|
|
1361
|
+
const { log, warn, err } = Logger("NavigationService", "#ff9800");
|
|
1362
|
+
class NavigationService {
|
|
1363
|
+
constructor(lazyLoader) {
|
|
1364
|
+
this.lazyLoader = lazyLoader;
|
|
1365
|
+
this.virtualPath$ = new BehaviorSubject(null);
|
|
1366
|
+
window.onhashchange = () => this.loadRootPageFromUrl();
|
|
1367
|
+
this.loadRootPageFromUrl();
|
|
1368
|
+
}
|
|
1369
|
+
loadRootPageFromUrl() {
|
|
1370
|
+
const hash = location.hash.split("?")[0];
|
|
1371
|
+
// If the URL is imprecisely set, we restore it to the landing page
|
|
1372
|
+
if (!this.lazyLoader.isComponentRegistered(hash))
|
|
1373
|
+
return this.loadRootPage("#/Landing");
|
|
1374
|
+
this.loadRootPage(location.hash);
|
|
1375
|
+
}
|
|
1376
|
+
loadRootPage(url, data = {}) {
|
|
1377
|
+
const [path, query] = url.split('?');
|
|
1378
|
+
const hash = path.replace(/^\/?#\/?/, '');
|
|
1379
|
+
const chunks = hash.split('/');
|
|
1380
|
+
// Get query params and pass them as @Input arguments.
|
|
1381
|
+
const params = (query === null || query === void 0 ? void 0 : query.split('&').reduce((pars, par) => {
|
|
1382
|
+
const [key, value] = par.split("=");
|
|
1383
|
+
const decoded = decodeURIComponent(value);
|
|
1384
|
+
pars[key] = decoded;
|
|
1385
|
+
return pars;
|
|
1386
|
+
}, {})) || {};
|
|
1387
|
+
log(`Root page navigate to '${hash}'`, { params, chunks });
|
|
1388
|
+
this.virtualPath$.next({
|
|
1389
|
+
root: chunks[0],
|
|
1390
|
+
chunks: chunks,
|
|
1391
|
+
args: params
|
|
1392
|
+
});
|
|
1393
|
+
}
|
|
1394
|
+
}
|
|
1395
|
+
NavigationService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: NavigationService, deps: [{ token: LazyLoaderService }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
1396
|
+
NavigationService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: NavigationService, providedIn: 'root' });
|
|
1397
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: NavigationService, decorators: [{
|
|
1398
|
+
type: Injectable,
|
|
1399
|
+
args: [{
|
|
1400
|
+
providedIn: 'root'
|
|
1401
|
+
}]
|
|
1402
|
+
}], ctorParameters: function () { return [{ type: LazyLoaderService }]; } });
|
|
1403
|
+
|
|
1339
1404
|
var ComponentResolveStrategy;
|
|
1340
1405
|
(function (ComponentResolveStrategy) {
|
|
1341
1406
|
/**
|
|
@@ -2098,5 +2163,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImpor
|
|
|
2098
2163
|
* Generated bundle index. Do not edit.
|
|
2099
2164
|
*/
|
|
2100
2165
|
|
|
2101
|
-
export { ComponentResolveStrategy, DependencyService, DialogService, DynamicHTMLComponent, DynamicHTMLOptions, DynamicHTMLRenderer, Fetch, FileService, HtmlBypass, KeyboardService, LazyLoaderComponent, LazyLoaderModule, LazyLoaderService, MenuDirective, NGX_DYNAMIC_CONFIG, NGX_LAZY_LOADER_CONFIG, NgxDynamicHTMLModule, OnMount, ResourceBypass, ScriptBypass, StyleBypass, TooltipDirective, UrlBypass, openMenu, openTooltip };
|
|
2166
|
+
export { ComponentResolveStrategy, DependencyService, DialogService, DynamicHTMLComponent, DynamicHTMLOptions, DynamicHTMLRenderer, Fetch, FileService, HtmlBypass, KeyboardService, LazyLoaderComponent, LazyLoaderModule, LazyLoaderService, MenuDirective, NGX_DYNAMIC_CONFIG, NGX_LAZY_LOADER_CONFIG, NavigationService, NgxDynamicHTMLModule, OnMount, ResourceBypass, ScriptBypass, StyleBypass, ThemeService, TooltipDirective, UrlBypass, openMenu, openTooltip };
|
|
2102
2167
|
//# sourceMappingURL=dotglitch-ngx-common.mjs.map
|