@quadrel-enterprise-ui/persistence 1.0.0 → 18.1.2

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/README.md ADDED
@@ -0,0 +1,39 @@
1
+ # qd-persistence
2
+
3
+ This library was generated with [Nx](https://nx.dev).
4
+
5
+ QD Persistence saves all cookies under the domain '.bazg.admin.ch' unless your service runs on localhost.
6
+
7
+ ## Development
8
+
9
+ Run `npm run start` or `nx serve` to start the test app for development. The test app integrates all libraries of the monorepo.
10
+
11
+ ### Testing cookies
12
+
13
+ You can also test QD Persistence locally. If you run a service on localhost, all QD Persistence cookies will be saved on the domain 'localhost'.
14
+
15
+ ## Build
16
+
17
+ Run `nx build qd-persistence` to build the project. The build artifacts will be stored in the `dist/libs/qd-persistence` directory. Use `--configuration production` for a production build.
18
+
19
+ ## Running unit tests
20
+
21
+ Run `nx test qd-persistence` to execute the unit tests.
22
+
23
+ ## Release
24
+
25
+ Releases can be made on a release branch with the following commands:
26
+
27
+ Run `nx release-patch qd-persistence` to create a patch release.
28
+
29
+ Run `nx release-minor qd-persistence` to create a minor release.
30
+
31
+ Run `nx release-major qd-persistence` to create a major release.
32
+
33
+ Run `nx prerelease qd-persistence` to create a beta release.
34
+
35
+ Run `nx premajor qd-persistence` to create a beta major release.
36
+
37
+ ## Further help
38
+
39
+ To get more help on the NX CLI use `nx help` or go check out the documentation [NX CLI Commands](https://nx.dev/reference/commands).
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGVyc2lzdGVuY2UtY29uZmlnLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9xZC1wZXJzaXN0ZW5jZS9zcmMvbGliL21vZGVsL3BlcnNpc3RlbmNlLWNvbmZpZy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgUWRQZXJzaXN0U3RyYXRlZ3kgfSBmcm9tICcuL3BlcnNpc3RlbmNlLXR5cGVzJztcblxuZXhwb3J0IGludGVyZmFjZSBRZFBlcnNpc3RlbmNlQ29uZmlnIHtcbiAgLyoqXG4gICAqIEFwcGxpY2F0aW9uIElkZW50aWZpZXJcbiAgICogQGV4YW1wbGUgUGFzc2FyXG4gICAqL1xuICBhcHBsaWNhdGlvbklkZW50aWZpZXI6IHN0cmluZztcblxuICAvKipcbiAgICogRnJvbnRlbmQgSWRlbnRpZmllciAoVW5pcXVlIGlkZW50aWZpZXIgZm9yIGEgZnJvbnRlbmQgcHJvamVjdClcbiAgICogQGV4YW1wbGUgV2FyZW52ZXJrZWhyXG4gICAqL1xuICBmcm9udGVuZElkZW50aWZpZXI6IHN0cmluZztcblxuICAvKipcbiAgICogUGVyc2lzdCBTdHJhdGVneVxuICAgKiAqIEBkZWZhdWx0OiBjb29raWVcbiAgICovXG4gIHBlcnNpc3RTdHJhdGVneT86IFFkUGVyc2lzdFN0cmF0ZWd5O1xufVxuIl19
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGVyc2lzdGVuY2UtdHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL3FkLXBlcnNpc3RlbmNlL3NyYy9saWIvbW9kZWwvcGVyc2lzdGVuY2UtdHlwZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCB0eXBlIFFkUGVyc2lzdFNjb3BlID0gJ3ByaXZhdGUnIHwgJ2FwcGxpY2F0aW9uJyB8ICdiYXpnJztcbmV4cG9ydCB0eXBlIFFkUGVyc2lzdFN0cmF0ZWd5ID0gJ2Nvb2tpZSc7XG4iXX0=
@@ -0,0 +1,3 @@
1
+ import { InjectionToken } from '@angular/core';
2
+ export const QD_PERSISTENCE_CONFIG = new InjectionToken('QD_PERSISTENCE_CONFIG');
3
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGVyc2lzdGVuY2UtY29uZmlnLnRva2VuLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vbGlicy9xZC1wZXJzaXN0ZW5jZS9zcmMvbGliL3BlcnNpc3RlbmNlLWNvbmZpZy50b2tlbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRy9DLE1BQU0sQ0FBQyxNQUFNLHFCQUFxQixHQUFHLElBQUksY0FBYyxDQUFzQix1QkFBdUIsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0aW9uVG9rZW4gfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFFkUGVyc2lzdGVuY2VDb25maWcgfSBmcm9tICcuL21vZGVsL3BlcnNpc3RlbmNlLWNvbmZpZyc7XG5cbmV4cG9ydCBjb25zdCBRRF9QRVJTSVNURU5DRV9DT05GSUcgPSBuZXcgSW5qZWN0aW9uVG9rZW48UWRQZXJzaXN0ZW5jZUNvbmZpZz4oJ1FEX1BFUlNJU1RFTkNFX0NPTkZJRycpO1xuIl19
@@ -0,0 +1,24 @@
1
+ import { NgModule } from '@angular/core';
2
+ import { QD_PERSISTENCE_CONFIG } from './persistence-config.token';
3
+ import { QdPersistenceService } from './persistence.service';
4
+ import { QdStrategyResolverService } from './strategy/strategy-resolver.service';
5
+ import { QdCookieStrategyFactory } from './strategy/cookie-strategy/cookie-strategy.factory';
6
+ import * as i0 from "@angular/core";
7
+ export class QdPersistenceModule {
8
+ static forRoot(config) {
9
+ return {
10
+ ngModule: QdPersistenceModule,
11
+ providers: [{ provide: QD_PERSISTENCE_CONFIG, useValue: config }]
12
+ };
13
+ }
14
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: QdPersistenceModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
15
+ static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.9", ngImport: i0, type: QdPersistenceModule });
16
+ static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: QdPersistenceModule, providers: [QdPersistenceService, QdStrategyResolverService, QdCookieStrategyFactory] });
17
+ }
18
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: QdPersistenceModule, decorators: [{
19
+ type: NgModule,
20
+ args: [{
21
+ providers: [QdPersistenceService, QdStrategyResolverService, QdCookieStrategyFactory]
22
+ }]
23
+ }] });
24
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGVyc2lzdGVuY2UubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vbGlicy9xZC1wZXJzaXN0ZW5jZS9zcmMvbGliL3BlcnNpc3RlbmNlLm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQXVCLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUU5RCxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUNuRSxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUM3RCxPQUFPLEVBQUUseUJBQXlCLEVBQUUsTUFBTSxzQ0FBc0MsQ0FBQztBQUNqRixPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSxvREFBb0QsQ0FBQzs7QUFLN0YsTUFBTSxPQUFPLG1CQUFtQjtJQUM5QixNQUFNLENBQUMsT0FBTyxDQUFDLE1BQTJCO1FBQ3hDLE9BQU87WUFDTCxRQUFRLEVBQUUsbUJBQW1CO1lBQzdCLFNBQVMsRUFBRSxDQUFDLEVBQUUsT0FBTyxFQUFFLHFCQUFxQixFQUFFLFFBQVEsRUFBRSxNQUFNLEVBQUUsQ0FBQztTQUNsRSxDQUFDO0lBQ0osQ0FBQzt1R0FOVSxtQkFBbUI7d0dBQW5CLG1CQUFtQjt3R0FBbkIsbUJBQW1CLGFBRm5CLENBQUMsb0JBQW9CLEVBQUUseUJBQXlCLEVBQUUsdUJBQXVCLENBQUM7OzJGQUUxRSxtQkFBbUI7a0JBSC9CLFFBQVE7bUJBQUM7b0JBQ1IsU0FBUyxFQUFFLENBQUMsb0JBQW9CLEVBQUUseUJBQXlCLEVBQUUsdUJBQXVCLENBQUM7aUJBQ3RGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTW9kdWxlV2l0aFByb3ZpZGVycywgTmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFFkUGVyc2lzdGVuY2VDb25maWcgfSBmcm9tICcuL21vZGVsL3BlcnNpc3RlbmNlLWNvbmZpZyc7XG5pbXBvcnQgeyBRRF9QRVJTSVNURU5DRV9DT05GSUcgfSBmcm9tICcuL3BlcnNpc3RlbmNlLWNvbmZpZy50b2tlbic7XG5pbXBvcnQgeyBRZFBlcnNpc3RlbmNlU2VydmljZSB9IGZyb20gJy4vcGVyc2lzdGVuY2Uuc2VydmljZSc7XG5pbXBvcnQgeyBRZFN0cmF0ZWd5UmVzb2x2ZXJTZXJ2aWNlIH0gZnJvbSAnLi9zdHJhdGVneS9zdHJhdGVneS1yZXNvbHZlci5zZXJ2aWNlJztcbmltcG9ydCB7IFFkQ29va2llU3RyYXRlZ3lGYWN0b3J5IH0gZnJvbSAnLi9zdHJhdGVneS9jb29raWUtc3RyYXRlZ3kvY29va2llLXN0cmF0ZWd5LmZhY3RvcnknO1xuXG5ATmdNb2R1bGUoe1xuICBwcm92aWRlcnM6IFtRZFBlcnNpc3RlbmNlU2VydmljZSwgUWRTdHJhdGVneVJlc29sdmVyU2VydmljZSwgUWRDb29raWVTdHJhdGVneUZhY3RvcnldXG59KVxuZXhwb3J0IGNsYXNzIFFkUGVyc2lzdGVuY2VNb2R1bGUge1xuICBzdGF0aWMgZm9yUm9vdChjb25maWc6IFFkUGVyc2lzdGVuY2VDb25maWcpOiBNb2R1bGVXaXRoUHJvdmlkZXJzPFFkUGVyc2lzdGVuY2VNb2R1bGU+IHtcbiAgICByZXR1cm4ge1xuICAgICAgbmdNb2R1bGU6IFFkUGVyc2lzdGVuY2VNb2R1bGUsXG4gICAgICBwcm92aWRlcnM6IFt7IHByb3ZpZGU6IFFEX1BFUlNJU1RFTkNFX0NPTkZJRywgdXNlVmFsdWU6IGNvbmZpZyB9XVxuICAgIH07XG4gIH1cbn1cbiJdfQ==
@@ -0,0 +1,28 @@
1
+ import { Injectable } from '@angular/core';
2
+ import { QdStrategyResolverService } from './strategy/strategy-resolver.service';
3
+ import * as i0 from "@angular/core";
4
+ import * as i1 from "./strategy/strategy-resolver.service";
5
+ export class QdPersistenceService {
6
+ strategyResolverService;
7
+ constructor(strategyResolverService) {
8
+ this.strategyResolverService = strategyResolverService;
9
+ }
10
+ write(key, data, scope = 'bazg') {
11
+ const strategy = this.strategyResolverService.resolve(scope);
12
+ strategy.setItem(key, data);
13
+ }
14
+ read(key, scope = 'bazg') {
15
+ const strategy = this.strategyResolverService.resolve(scope);
16
+ return strategy.getItem(key);
17
+ }
18
+ delete(key, scope = 'bazg') {
19
+ const strategy = this.strategyResolverService.resolve(scope);
20
+ strategy.removeItem(key);
21
+ }
22
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: QdPersistenceService, deps: [{ token: i1.QdStrategyResolverService }], target: i0.ɵɵFactoryTarget.Injectable });
23
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: QdPersistenceService });
24
+ }
25
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: QdPersistenceService, decorators: [{
26
+ type: Injectable
27
+ }], ctorParameters: () => [{ type: i1.QdStrategyResolverService }] });
28
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGVyc2lzdGVuY2Uuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL2xpYnMvcWQtcGVyc2lzdGVuY2Uvc3JjL2xpYi9wZXJzaXN0ZW5jZS5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0MsT0FBTyxFQUFFLHlCQUF5QixFQUFFLE1BQU0sc0NBQXNDLENBQUM7OztBQUlqRixNQUFNLE9BQU8sb0JBQW9CO0lBQ1g7SUFBcEIsWUFBb0IsdUJBQWtEO1FBQWxELDRCQUF1QixHQUF2Qix1QkFBdUIsQ0FBMkI7SUFBRyxDQUFDO0lBRTFFLEtBQUssQ0FBSSxHQUFXLEVBQUUsSUFBTyxFQUFFLFFBQXdCLE1BQU07UUFDM0QsTUFBTSxRQUFRLEdBQUcsSUFBSSxDQUFDLHVCQUF1QixDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUU3RCxRQUFRLENBQUMsT0FBTyxDQUFJLEdBQUcsRUFBRSxJQUFJLENBQUMsQ0FBQztJQUNqQyxDQUFDO0lBRUQsSUFBSSxDQUFJLEdBQVcsRUFBRSxRQUF3QixNQUFNO1FBQ2pELE1BQU0sUUFBUSxHQUFHLElBQUksQ0FBQyx1QkFBdUIsQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUM7UUFFN0QsT0FBTyxRQUFRLENBQUMsT0FBTyxDQUFJLEdBQUcsQ0FBQyxDQUFDO0lBQ2xDLENBQUM7SUFFRCxNQUFNLENBQUMsR0FBVyxFQUFFLFFBQXdCLE1BQU07UUFDaEQsTUFBTSxRQUFRLEdBQUcsSUFBSSxDQUFDLHVCQUF1QixDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUU3RCxRQUFRLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQzNCLENBQUM7dUdBbkJVLG9CQUFvQjsyR0FBcEIsb0JBQW9COzsyRkFBcEIsb0JBQW9CO2tCQURoQyxVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgUWRTdHJhdGVneVJlc29sdmVyU2VydmljZSB9IGZyb20gJy4vc3RyYXRlZ3kvc3RyYXRlZ3ktcmVzb2x2ZXIuc2VydmljZSc7XG5pbXBvcnQgeyBRZFBlcnNpc3RTY29wZSB9IGZyb20gJy4vbW9kZWwvcGVyc2lzdGVuY2UtdHlwZXMnO1xuXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgUWRQZXJzaXN0ZW5jZVNlcnZpY2Uge1xuICBjb25zdHJ1Y3Rvcihwcml2YXRlIHN0cmF0ZWd5UmVzb2x2ZXJTZXJ2aWNlOiBRZFN0cmF0ZWd5UmVzb2x2ZXJTZXJ2aWNlKSB7fVxuXG4gIHdyaXRlPFQ+KGtleTogc3RyaW5nLCBkYXRhOiBULCBzY29wZTogUWRQZXJzaXN0U2NvcGUgPSAnYmF6ZycpOiB2b2lkIHtcbiAgICBjb25zdCBzdHJhdGVneSA9IHRoaXMuc3RyYXRlZ3lSZXNvbHZlclNlcnZpY2UucmVzb2x2ZShzY29wZSk7XG5cbiAgICBzdHJhdGVneS5zZXRJdGVtPFQ+KGtleSwgZGF0YSk7XG4gIH1cblxuICByZWFkPFQ+KGtleTogc3RyaW5nLCBzY29wZTogUWRQZXJzaXN0U2NvcGUgPSAnYmF6ZycpOiBUIHwgbnVsbCB7XG4gICAgY29uc3Qgc3RyYXRlZ3kgPSB0aGlzLnN0cmF0ZWd5UmVzb2x2ZXJTZXJ2aWNlLnJlc29sdmUoc2NvcGUpO1xuXG4gICAgcmV0dXJuIHN0cmF0ZWd5LmdldEl0ZW08VD4oa2V5KTtcbiAgfVxuXG4gIGRlbGV0ZShrZXk6IHN0cmluZywgc2NvcGU6IFFkUGVyc2lzdFNjb3BlID0gJ2JhemcnKTogdm9pZCB7XG4gICAgY29uc3Qgc3RyYXRlZ3kgPSB0aGlzLnN0cmF0ZWd5UmVzb2x2ZXJTZXJ2aWNlLnJlc29sdmUoc2NvcGUpO1xuXG4gICAgc3RyYXRlZ3kucmVtb3ZlSXRlbShrZXkpO1xuICB9XG59XG4iXX0=
@@ -0,0 +1,44 @@
1
+ import { Inject, Injectable, Optional } from '@angular/core';
2
+ import { DOCUMENT } from '@angular/common';
3
+ import { CookieService } from 'ngx-cookie-service';
4
+ import { QdCookieStrategy } from './cookie-strategy';
5
+ import { QD_PERSISTENCE_CONFIG } from '../../persistence-config.token';
6
+ import * as i0 from "@angular/core";
7
+ import * as i1 from "ngx-cookie-service";
8
+ export class QdCookieStrategyFactory {
9
+ config;
10
+ cookieService;
11
+ document;
12
+ constructor(config, cookieService, document) {
13
+ this.config = config;
14
+ this.cookieService = cookieService;
15
+ this.document = document;
16
+ }
17
+ getCookieStrategy(scope) {
18
+ return new QdCookieStrategy(this.getCookieName(scope), this.cookieService, document);
19
+ }
20
+ getCookieName(scope) {
21
+ switch (scope) {
22
+ case 'bazg':
23
+ return 'QD-BAZG';
24
+ case 'application':
25
+ return `QD-APPLICATION_${this.config.applicationIdentifier}`;
26
+ case 'private':
27
+ return `QD-PRIVATE_${this.config.applicationIdentifier}_${this.config.frontendIdentifier}`;
28
+ }
29
+ }
30
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: QdCookieStrategyFactory, deps: [{ token: QD_PERSISTENCE_CONFIG }, { token: i1.CookieService }, { token: DOCUMENT, optional: true }], target: i0.ɵɵFactoryTarget.Injectable });
31
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: QdCookieStrategyFactory });
32
+ }
33
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: QdCookieStrategyFactory, decorators: [{
34
+ type: Injectable
35
+ }], ctorParameters: () => [{ type: undefined, decorators: [{
36
+ type: Inject,
37
+ args: [QD_PERSISTENCE_CONFIG]
38
+ }] }, { type: i1.CookieService }, { type: Document, decorators: [{
39
+ type: Optional
40
+ }, {
41
+ type: Inject,
42
+ args: [DOCUMENT]
43
+ }] }] });
44
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29va2llLXN0cmF0ZWd5LmZhY3RvcnkuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3FkLXBlcnNpc3RlbmNlL3NyYy9saWIvc3RyYXRlZ3kvY29va2llLXN0cmF0ZWd5L2Nvb2tpZS1zdHJhdGVneS5mYWN0b3J5LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUM3RCxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDM0MsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQ25ELE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQ3JELE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLGdDQUFnQyxDQUFDOzs7QUFNdkUsTUFBTSxPQUFPLHVCQUF1QjtJQUVPO0lBQy9CO0lBQzhCO0lBSHhDLFlBQ3lDLE1BQTJCLEVBQzFELGFBQTRCLEVBQ0UsUUFBbUI7UUFGbEIsV0FBTSxHQUFOLE1BQU0sQ0FBcUI7UUFDMUQsa0JBQWEsR0FBYixhQUFhLENBQWU7UUFDRSxhQUFRLEdBQVIsUUFBUSxDQUFXO0lBQ3hELENBQUM7SUFFSixpQkFBaUIsQ0FBQyxLQUFxQjtRQUNyQyxPQUFPLElBQUksZ0JBQWdCLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxLQUFLLENBQUMsRUFBRSxJQUFJLENBQUMsYUFBYSxFQUFFLFFBQVEsQ0FBQyxDQUFDO0lBQ3ZGLENBQUM7SUFFTyxhQUFhLENBQUMsS0FBcUI7UUFDekMsUUFBUSxLQUFLLEVBQUUsQ0FBQztZQUNkLEtBQUssTUFBTTtnQkFDVCxPQUFPLFNBQVMsQ0FBQztZQUNuQixLQUFLLGFBQWE7Z0JBQ2hCLE9BQU8sa0JBQWtCLElBQUksQ0FBQyxNQUFNLENBQUMscUJBQXFCLEVBQUUsQ0FBQztZQUMvRCxLQUFLLFNBQVM7Z0JBQ1osT0FBTyxjQUFjLElBQUksQ0FBQyxNQUFNLENBQUMscUJBQXFCLElBQUksSUFBSSxDQUFDLE1BQU0sQ0FBQyxrQkFBa0IsRUFBRSxDQUFDO1FBQy9GLENBQUM7SUFDSCxDQUFDO3VHQXBCVSx1QkFBdUIsa0JBRXhCLHFCQUFxQiwwQ0FFVCxRQUFROzJHQUpuQix1QkFBdUI7OzJGQUF2Qix1QkFBdUI7a0JBRG5DLFVBQVU7OzBCQUdOLE1BQU07MkJBQUMscUJBQXFCOzswQkFFNUIsUUFBUTs7MEJBQUksTUFBTTsyQkFBQyxRQUFRIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0LCBJbmplY3RhYmxlLCBPcHRpb25hbCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRE9DVU1FTlQgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgQ29va2llU2VydmljZSB9IGZyb20gJ25neC1jb29raWUtc2VydmljZSc7XG5pbXBvcnQgeyBRZENvb2tpZVN0cmF0ZWd5IH0gZnJvbSAnLi9jb29raWUtc3RyYXRlZ3knO1xuaW1wb3J0IHsgUURfUEVSU0lTVEVOQ0VfQ09ORklHIH0gZnJvbSAnLi4vLi4vcGVyc2lzdGVuY2UtY29uZmlnLnRva2VuJztcbmltcG9ydCB7IFFkUGVyc2lzdGVuY2VDb25maWcgfSBmcm9tICcuLi8uLi9tb2RlbC9wZXJzaXN0ZW5jZS1jb25maWcnO1xuaW1wb3J0IHsgUWRQZXJzaXN0U2NvcGUgfSBmcm9tICcuLi8uLi9tb2RlbC9wZXJzaXN0ZW5jZS10eXBlcyc7XG5pbXBvcnQgeyBRZFBlcnNpc3RTdHJhdGVneSB9IGZyb20gJy4uL3BlcnNpc3Qtc3RyYXRlZ3knO1xuXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgUWRDb29raWVTdHJhdGVneUZhY3Rvcnkge1xuICBjb25zdHJ1Y3RvcihcbiAgICBASW5qZWN0KFFEX1BFUlNJU1RFTkNFX0NPTkZJRykgcHJpdmF0ZSBjb25maWc6IFFkUGVyc2lzdGVuY2VDb25maWcsXG4gICAgcHJpdmF0ZSBjb29raWVTZXJ2aWNlOiBDb29raWVTZXJ2aWNlLFxuICAgIEBPcHRpb25hbCgpIEBJbmplY3QoRE9DVU1FTlQpIHByaXZhdGUgZG9jdW1lbnQ/OiBEb2N1bWVudFxuICApIHt9XG5cbiAgZ2V0Q29va2llU3RyYXRlZ3koc2NvcGU6IFFkUGVyc2lzdFNjb3BlKTogUWRQZXJzaXN0U3RyYXRlZ3kge1xuICAgIHJldHVybiBuZXcgUWRDb29raWVTdHJhdGVneSh0aGlzLmdldENvb2tpZU5hbWUoc2NvcGUpLCB0aGlzLmNvb2tpZVNlcnZpY2UsIGRvY3VtZW50KTtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0Q29va2llTmFtZShzY29wZTogUWRQZXJzaXN0U2NvcGUpOiBzdHJpbmcge1xuICAgIHN3aXRjaCAoc2NvcGUpIHtcbiAgICAgIGNhc2UgJ2JhemcnOlxuICAgICAgICByZXR1cm4gJ1FELUJBWkcnO1xuICAgICAgY2FzZSAnYXBwbGljYXRpb24nOlxuICAgICAgICByZXR1cm4gYFFELUFQUExJQ0FUSU9OXyR7dGhpcy5jb25maWcuYXBwbGljYXRpb25JZGVudGlmaWVyfWA7XG4gICAgICBjYXNlICdwcml2YXRlJzpcbiAgICAgICAgcmV0dXJuIGBRRC1QUklWQVRFXyR7dGhpcy5jb25maWcuYXBwbGljYXRpb25JZGVudGlmaWVyfV8ke3RoaXMuY29uZmlnLmZyb250ZW5kSWRlbnRpZmllcn1gO1xuICAgIH1cbiAgfVxufVxuIl19
@@ -0,0 +1,68 @@
1
+ import { __decorate, __metadata, __param } from "tslib";
2
+ import { Inject, Optional } from '@angular/core';
3
+ import { DOCUMENT } from '@angular/common';
4
+ import { CookieService } from 'ngx-cookie-service';
5
+ import { QdStringifyer } from '../../utils/stringifyer';
6
+ /**
7
+ * This strategy uses cookies to make the data visible between different subdomains of the host 'bazg.admin.ch'.
8
+ * In contrast, local storage would make the data only visible for a specific subdomain.
9
+ * If this strategy is used locally, the cookies will be saved for the domain 'localhost'.
10
+ * For the future another strategy is planned that saves the data in a backend service and that will also allow data
11
+ * to be shared between websites with different hosts.
12
+ */
13
+ let QdCookieStrategy = class QdCookieStrategy {
14
+ cookieName;
15
+ cookieService;
16
+ document;
17
+ cookieExpiresDays = 365 * 10;
18
+ constructor(cookieName, cookieService, document) {
19
+ this.cookieName = cookieName;
20
+ this.cookieService = cookieService;
21
+ this.document = document;
22
+ }
23
+ get cookieDomain() {
24
+ if (this.document?.location?.hostname === 'localhost')
25
+ return 'localhost';
26
+ return '.bazg.admin.ch';
27
+ }
28
+ get persistedData() {
29
+ try {
30
+ const parsed = JSON.parse(this.cookieService.get(this.cookieName));
31
+ if (typeof parsed !== 'object' || Array.isArray(parsed))
32
+ return {};
33
+ return parsed ?? {};
34
+ }
35
+ catch (e) {
36
+ return {};
37
+ }
38
+ }
39
+ persistData(data) {
40
+ this.cookieService.set(this.cookieName, JSON.stringify(data), this.cookieExpiresDays, '/', this.cookieDomain);
41
+ }
42
+ setItem(key, value) {
43
+ const data = this.persistedData;
44
+ data[key] = QdStringifyer.tryStringify(value);
45
+ this.persistData(data);
46
+ }
47
+ getItem(key) {
48
+ try {
49
+ return JSON.parse(this.persistedData[key]);
50
+ }
51
+ catch (e) {
52
+ return this.persistedData[key] ?? null;
53
+ }
54
+ }
55
+ removeItem(key) {
56
+ const data = this.persistedData;
57
+ delete data[key];
58
+ this.persistData(data);
59
+ }
60
+ };
61
+ QdCookieStrategy = __decorate([
62
+ __param(2, Optional()),
63
+ __param(2, Inject(DOCUMENT)),
64
+ __metadata("design:paramtypes", [String, CookieService,
65
+ Document])
66
+ ], QdCookieStrategy);
67
+ export { QdCookieStrategy };
68
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29va2llLXN0cmF0ZWd5LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9xZC1wZXJzaXN0ZW5jZS9zcmMvbGliL3N0cmF0ZWd5L2Nvb2tpZS1zdHJhdGVneS9jb29raWUtc3RyYXRlZ3kudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFBRSxNQUFNLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ2pELE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMzQyxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDbkQsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBS3hEOzs7Ozs7R0FNRztBQUNILElBQWEsZ0JBQWdCLEdBQTdCLE1BQWEsZ0JBQWdCO0lBSWpCO0lBQ0E7SUFDOEI7SUFMaEMsaUJBQWlCLEdBQUcsR0FBRyxHQUFHLEVBQUUsQ0FBQztJQUVyQyxZQUNVLFVBQWtCLEVBQ2xCLGFBQTRCLEVBQ0UsUUFBbUI7UUFGakQsZUFBVSxHQUFWLFVBQVUsQ0FBUTtRQUNsQixrQkFBYSxHQUFiLGFBQWEsQ0FBZTtRQUNFLGFBQVEsR0FBUixRQUFRLENBQVc7SUFDeEQsQ0FBQztJQUVKLElBQVksWUFBWTtRQUN0QixJQUFJLElBQUksQ0FBQyxRQUFRLEVBQUUsUUFBUSxFQUFFLFFBQVEsS0FBSyxXQUFXO1lBQUUsT0FBTyxXQUFXLENBQUM7UUFDMUUsT0FBTyxnQkFBZ0IsQ0FBQztJQUMxQixDQUFDO0lBRUQsSUFBSSxhQUFhO1FBQ2YsSUFBSSxDQUFDO1lBQ0gsTUFBTSxNQUFNLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQztZQUVuRSxJQUFJLE9BQU8sTUFBTSxLQUFLLFFBQVEsSUFBSSxLQUFLLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQztnQkFBRSxPQUFPLEVBQUUsQ0FBQztZQUVuRSxPQUFPLE1BQU0sSUFBSSxFQUFFLENBQUM7UUFDdEIsQ0FBQztRQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUM7WUFDWCxPQUFPLEVBQUUsQ0FBQztRQUNaLENBQUM7SUFDSCxDQUFDO0lBRU8sV0FBVyxDQUFDLElBQXFCO1FBQ3ZDLElBQUksQ0FBQyxhQUFhLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxVQUFVLEVBQUUsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsRUFBRSxJQUFJLENBQUMsaUJBQWlCLEVBQUUsR0FBRyxFQUFFLElBQUksQ0FBQyxZQUFZLENBQUMsQ0FBQztJQUNoSCxDQUFDO0lBRUQsT0FBTyxDQUFJLEdBQVcsRUFBRSxLQUFRO1FBQzlCLE1BQU0sSUFBSSxHQUFHLElBQUksQ0FBQyxhQUFhLENBQUM7UUFDaEMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxHQUFHLGFBQWEsQ0FBQyxZQUFZLENBQUksS0FBSyxDQUFDLENBQUM7UUFFakQsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUN6QixDQUFDO0lBRUQsT0FBTyxDQUFJLEdBQVc7UUFDcEIsSUFBSSxDQUFDO1lBQ0gsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFTLElBQUksQ0FBQyxhQUFhLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQztRQUNyRCxDQUFDO1FBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQztZQUNYLE9BQVEsSUFBSSxDQUFDLGFBQWEsQ0FBQyxHQUFHLENBQU8sSUFBSSxJQUFJLENBQUM7UUFDaEQsQ0FBQztJQUNILENBQUM7SUFFRCxVQUFVLENBQUMsR0FBVztRQUNwQixNQUFNLElBQUksR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDO1FBQ2hDLE9BQU8sSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBRWpCLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDekIsQ0FBQztDQUNGLENBQUE7QUFuRFksZ0JBQWdCO0lBTXhCLFdBQUEsUUFBUSxFQUFFLENBQUE7SUFBRSxXQUFBLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQTs2Q0FETixhQUFhO1FBQ2EsUUFBUTtHQU5oRCxnQkFBZ0IsQ0FtRDVCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0LCBPcHRpb25hbCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRE9DVU1FTlQgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgQ29va2llU2VydmljZSB9IGZyb20gJ25neC1jb29raWUtc2VydmljZSc7XG5pbXBvcnQgeyBRZFN0cmluZ2lmeWVyIH0gZnJvbSAnLi4vLi4vdXRpbHMvc3RyaW5naWZ5ZXInO1xuaW1wb3J0IHsgUWRQZXJzaXN0U3RyYXRlZ3kgfSBmcm9tICcuLi9wZXJzaXN0LXN0cmF0ZWd5JztcblxudHlwZSBRZFBlcnNpc3RlZERhdGEgPSB7IFtrZXk6IHN0cmluZ106IHVua25vd24gfTtcblxuLyoqXG4gKiBUaGlzIHN0cmF0ZWd5IHVzZXMgY29va2llcyB0byBtYWtlIHRoZSBkYXRhIHZpc2libGUgYmV0d2VlbiBkaWZmZXJlbnQgc3ViZG9tYWlucyBvZiB0aGUgaG9zdCAnYmF6Zy5hZG1pbi5jaCcuXG4gKiBJbiBjb250cmFzdCwgbG9jYWwgc3RvcmFnZSB3b3VsZCBtYWtlIHRoZSBkYXRhIG9ubHkgdmlzaWJsZSBmb3IgYSBzcGVjaWZpYyBzdWJkb21haW4uXG4gKiBJZiB0aGlzIHN0cmF0ZWd5IGlzIHVzZWQgbG9jYWxseSwgdGhlIGNvb2tpZXMgd2lsbCBiZSBzYXZlZCBmb3IgdGhlIGRvbWFpbiAnbG9jYWxob3N0Jy5cbiAqIEZvciB0aGUgZnV0dXJlIGFub3RoZXIgc3RyYXRlZ3kgaXMgcGxhbm5lZCB0aGF0IHNhdmVzIHRoZSBkYXRhIGluIGEgYmFja2VuZCBzZXJ2aWNlIGFuZCB0aGF0IHdpbGwgYWxzbyBhbGxvdyBkYXRhXG4gKiB0byBiZSBzaGFyZWQgYmV0d2VlbiB3ZWJzaXRlcyB3aXRoIGRpZmZlcmVudCBob3N0cy5cbiAqL1xuZXhwb3J0IGNsYXNzIFFkQ29va2llU3RyYXRlZ3kgaW1wbGVtZW50cyBRZFBlcnNpc3RTdHJhdGVneSB7XG4gIHByaXZhdGUgY29va2llRXhwaXJlc0RheXMgPSAzNjUgKiAxMDtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIGNvb2tpZU5hbWU6IHN0cmluZyxcbiAgICBwcml2YXRlIGNvb2tpZVNlcnZpY2U6IENvb2tpZVNlcnZpY2UsXG4gICAgQE9wdGlvbmFsKCkgQEluamVjdChET0NVTUVOVCkgcHJpdmF0ZSBkb2N1bWVudD86IERvY3VtZW50XG4gICkge31cblxuICBwcml2YXRlIGdldCBjb29raWVEb21haW4oKTogc3RyaW5nIHtcbiAgICBpZiAodGhpcy5kb2N1bWVudD8ubG9jYXRpb24/Lmhvc3RuYW1lID09PSAnbG9jYWxob3N0JykgcmV0dXJuICdsb2NhbGhvc3QnO1xuICAgIHJldHVybiAnLmJhemcuYWRtaW4uY2gnO1xuICB9XG5cbiAgZ2V0IHBlcnNpc3RlZERhdGEoKTogUWRQZXJzaXN0ZWREYXRhIHtcbiAgICB0cnkge1xuICAgICAgY29uc3QgcGFyc2VkID0gSlNPTi5wYXJzZSh0aGlzLmNvb2tpZVNlcnZpY2UuZ2V0KHRoaXMuY29va2llTmFtZSkpO1xuXG4gICAgICBpZiAodHlwZW9mIHBhcnNlZCAhPT0gJ29iamVjdCcgfHwgQXJyYXkuaXNBcnJheShwYXJzZWQpKSByZXR1cm4ge307XG5cbiAgICAgIHJldHVybiBwYXJzZWQgPz8ge307XG4gICAgfSBjYXRjaCAoZSkge1xuICAgICAgcmV0dXJuIHt9O1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgcGVyc2lzdERhdGEoZGF0YTogUWRQZXJzaXN0ZWREYXRhKSB7XG4gICAgdGhpcy5jb29raWVTZXJ2aWNlLnNldCh0aGlzLmNvb2tpZU5hbWUsIEpTT04uc3RyaW5naWZ5KGRhdGEpLCB0aGlzLmNvb2tpZUV4cGlyZXNEYXlzLCAnLycsIHRoaXMuY29va2llRG9tYWluKTtcbiAgfVxuXG4gIHNldEl0ZW08VD4oa2V5OiBzdHJpbmcsIHZhbHVlOiBUKTogdm9pZCB7XG4gICAgY29uc3QgZGF0YSA9IHRoaXMucGVyc2lzdGVkRGF0YTtcbiAgICBkYXRhW2tleV0gPSBRZFN0cmluZ2lmeWVyLnRyeVN0cmluZ2lmeTxUPih2YWx1ZSk7XG5cbiAgICB0aGlzLnBlcnNpc3REYXRhKGRhdGEpO1xuICB9XG5cbiAgZ2V0SXRlbTxUPihrZXk6IHN0cmluZyk6IFQgfCBudWxsIHtcbiAgICB0cnkge1xuICAgICAgcmV0dXJuIEpTT04ucGFyc2UoPHN0cmluZz50aGlzLnBlcnNpc3RlZERhdGFba2V5XSk7XG4gICAgfSBjYXRjaCAoZSkge1xuICAgICAgcmV0dXJuICh0aGlzLnBlcnNpc3RlZERhdGFba2V5XSBhcyBUKSA/PyBudWxsO1xuICAgIH1cbiAgfVxuXG4gIHJlbW92ZUl0ZW0oa2V5OiBzdHJpbmcpOiB2b2lkIHtcbiAgICBjb25zdCBkYXRhID0gdGhpcy5wZXJzaXN0ZWREYXRhO1xuICAgIGRlbGV0ZSBkYXRhW2tleV07XG5cbiAgICB0aGlzLnBlcnNpc3REYXRhKGRhdGEpO1xuICB9XG59XG4iXX0=
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGVyc2lzdC1zdHJhdGVneS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvcWQtcGVyc2lzdGVuY2Uvc3JjL2xpYi9zdHJhdGVneS9wZXJzaXN0LXN0cmF0ZWd5LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEEgc3RyYXRlZ3kgZm9yIHBlcnNpc3RpbmcgZGF0YS5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBRZFBlcnNpc3RTdHJhdGVneSB7XG4gIC8qKlxuICAgKiBTZXQgZGF0YS5cbiAgICogQHBhcmFtIGtleSBLZXkgZm9yIHRoZSBkYXRhXG4gICAqIEBwYXJhbSB2YWx1ZSBUaGUgZGF0YSBpdHNlbGZcbiAgICovXG4gIHNldEl0ZW08VD4oa2V5OiBzdHJpbmcsIHZhbHVlOiBUKTogdm9pZDtcblxuICAvKipcbiAgICogR2V0cyBkYXRhIGZvciBhIHNwZWNpZmljIGtleS5cbiAgICogQHBhcmFtIGtleSBLZXkgb2YgdGhlIGRhdGFcbiAgICogQHJldHVybnMgUmV0dXJucyB0aGUgZGF0YSBvciBudWxsIGlmIG5vdCBmb3VuZC5cbiAgICovXG4gIGdldEl0ZW08VD4oa2V5OiBzdHJpbmcpOiBUIHwgbnVsbDtcblxuICAvKipcbiAgICogUmVtb3ZlcyB0aGUgZW50cnkgd2l0aCB0aGUgZ2l2ZW4ga2V5LlxuICAgKiBAcGFyYW0ga2V5IEtleSBvZiB0aGUgZW50cnlcbiAgICovXG4gIHJlbW92ZUl0ZW0oa2V5OiBzdHJpbmcpOiB2b2lkO1xufVxuIl19
@@ -0,0 +1,30 @@
1
+ import { Inject, Injectable } from '@angular/core';
2
+ import { QD_PERSISTENCE_CONFIG } from '../persistence-config.token';
3
+ import { QdCookieStrategyFactory } from './cookie-strategy/cookie-strategy.factory';
4
+ import * as i0 from "@angular/core";
5
+ import * as i1 from "./cookie-strategy/cookie-strategy.factory";
6
+ export class QdStrategyResolverService {
7
+ config;
8
+ cookieStrategyFactory;
9
+ constructor(config, cookieStrategyFactory) {
10
+ this.config = config;
11
+ this.cookieStrategyFactory = cookieStrategyFactory;
12
+ }
13
+ resolve(scope) {
14
+ /* istanbul ignore next (remove comment when another strategy is added) */
15
+ switch (this.config.persistStrategy) {
16
+ case 'cookie':
17
+ default:
18
+ return this.cookieStrategyFactory.getCookieStrategy(scope);
19
+ }
20
+ }
21
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: QdStrategyResolverService, deps: [{ token: QD_PERSISTENCE_CONFIG }, { token: i1.QdCookieStrategyFactory }], target: i0.ɵɵFactoryTarget.Injectable });
22
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: QdStrategyResolverService });
23
+ }
24
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: QdStrategyResolverService, decorators: [{
25
+ type: Injectable
26
+ }], ctorParameters: () => [{ type: undefined, decorators: [{
27
+ type: Inject,
28
+ args: [QD_PERSISTENCE_CONFIG]
29
+ }] }, { type: i1.QdCookieStrategyFactory }] });
30
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RyYXRlZ3ktcmVzb2x2ZXIuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvcWQtcGVyc2lzdGVuY2Uvc3JjL2xpYi9zdHJhdGVneS9zdHJhdGVneS1yZXNvbHZlci5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBR25ELE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBRXBFLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLDJDQUEyQyxDQUFDOzs7QUFHcEYsTUFBTSxPQUFPLHlCQUF5QjtJQUVLO0lBQy9CO0lBRlYsWUFDeUMsTUFBMkIsRUFDMUQscUJBQThDO1FBRGYsV0FBTSxHQUFOLE1BQU0sQ0FBcUI7UUFDMUQsMEJBQXFCLEdBQXJCLHFCQUFxQixDQUF5QjtJQUNyRCxDQUFDO0lBRUosT0FBTyxDQUFDLEtBQXFCO1FBQzNCLDBFQUEwRTtRQUMxRSxRQUFRLElBQUksQ0FBQyxNQUFNLENBQUMsZUFBZSxFQUFFLENBQUM7WUFDcEMsS0FBSyxRQUFRLENBQUM7WUFDZDtnQkFDRSxPQUFPLElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxpQkFBaUIsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUMvRCxDQUFDO0lBQ0gsQ0FBQzt1R0FiVSx5QkFBeUIsa0JBRTFCLHFCQUFxQjsyR0FGcEIseUJBQXlCOzsyRkFBekIseUJBQXlCO2tCQURyQyxVQUFVOzswQkFHTixNQUFNOzJCQUFDLHFCQUFxQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdCwgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgUWRQZXJzaXN0U2NvcGUgfSBmcm9tICcuLi9tb2RlbC9wZXJzaXN0ZW5jZS10eXBlcyc7XG5pbXBvcnQgeyBRZFBlcnNpc3RTdHJhdGVneSB9IGZyb20gJy4vcGVyc2lzdC1zdHJhdGVneSc7XG5pbXBvcnQgeyBRRF9QRVJTSVNURU5DRV9DT05GSUcgfSBmcm9tICcuLi9wZXJzaXN0ZW5jZS1jb25maWcudG9rZW4nO1xuaW1wb3J0IHsgUWRQZXJzaXN0ZW5jZUNvbmZpZyB9IGZyb20gJy4uL21vZGVsL3BlcnNpc3RlbmNlLWNvbmZpZyc7XG5pbXBvcnQgeyBRZENvb2tpZVN0cmF0ZWd5RmFjdG9yeSB9IGZyb20gJy4vY29va2llLXN0cmF0ZWd5L2Nvb2tpZS1zdHJhdGVneS5mYWN0b3J5JztcblxuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIFFkU3RyYXRlZ3lSZXNvbHZlclNlcnZpY2Uge1xuICBjb25zdHJ1Y3RvcihcbiAgICBASW5qZWN0KFFEX1BFUlNJU1RFTkNFX0NPTkZJRykgcHJpdmF0ZSBjb25maWc6IFFkUGVyc2lzdGVuY2VDb25maWcsXG4gICAgcHJpdmF0ZSBjb29raWVTdHJhdGVneUZhY3Rvcnk6IFFkQ29va2llU3RyYXRlZ3lGYWN0b3J5XG4gICkge31cblxuICByZXNvbHZlKHNjb3BlOiBRZFBlcnNpc3RTY29wZSk6IFFkUGVyc2lzdFN0cmF0ZWd5IHtcbiAgICAvKiBpc3RhbmJ1bCBpZ25vcmUgbmV4dCAocmVtb3ZlIGNvbW1lbnQgd2hlbiBhbm90aGVyIHN0cmF0ZWd5IGlzIGFkZGVkKSAqL1xuICAgIHN3aXRjaCAodGhpcy5jb25maWcucGVyc2lzdFN0cmF0ZWd5KSB7XG4gICAgICBjYXNlICdjb29raWUnOlxuICAgICAgZGVmYXVsdDpcbiAgICAgICAgcmV0dXJuIHRoaXMuY29va2llU3RyYXRlZ3lGYWN0b3J5LmdldENvb2tpZVN0cmF0ZWd5KHNjb3BlKTtcbiAgICB9XG4gIH1cbn1cbiJdfQ==
@@ -0,0 +1,13 @@
1
+ export class QdStringifyer {
2
+ static tryStringify(value) {
3
+ let data = '';
4
+ if (['object', 'boolean', 'number'].includes(typeof value)) {
5
+ data = JSON.stringify(value);
6
+ }
7
+ if (typeof value === 'string') {
8
+ data = value;
9
+ }
10
+ return data;
11
+ }
12
+ }
13
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RyaW5naWZ5ZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL3FkLXBlcnNpc3RlbmNlL3NyYy9saWIvdXRpbHMvc3RyaW5naWZ5ZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsTUFBTSxPQUFPLGFBQWE7SUFDeEIsTUFBTSxDQUFDLFlBQVksQ0FBSSxLQUFRO1FBQzdCLElBQUksSUFBSSxHQUFHLEVBQUUsQ0FBQztRQUVkLElBQUksQ0FBQyxRQUFRLEVBQUUsU0FBUyxFQUFFLFFBQVEsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEtBQUssQ0FBQyxFQUFFLENBQUM7WUFDM0QsSUFBSSxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDL0IsQ0FBQztRQUVELElBQUksT0FBTyxLQUFLLEtBQUssUUFBUSxFQUFFLENBQUM7WUFDOUIsSUFBSSxHQUFHLEtBQUssQ0FBQztRQUNmLENBQUM7UUFFRCxPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBjbGFzcyBRZFN0cmluZ2lmeWVyIHtcbiAgc3RhdGljIHRyeVN0cmluZ2lmeTxUPih2YWx1ZTogVCk6IHN0cmluZyB7XG4gICAgbGV0IGRhdGEgPSAnJztcblxuICAgIGlmIChbJ29iamVjdCcsICdib29sZWFuJywgJ251bWJlciddLmluY2x1ZGVzKHR5cGVvZiB2YWx1ZSkpIHtcbiAgICAgIGRhdGEgPSBKU09OLnN0cmluZ2lmeSh2YWx1ZSk7XG4gICAgfVxuXG4gICAgaWYgKHR5cGVvZiB2YWx1ZSA9PT0gJ3N0cmluZycpIHtcbiAgICAgIGRhdGEgPSB2YWx1ZTtcbiAgICB9XG5cbiAgICByZXR1cm4gZGF0YTtcbiAgfVxufVxuIl19
@@ -0,0 +1,3 @@
1
+ export * from './lib/persistence.module';
2
+ export * from './lib/persistence.service';
3
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL2xpYnMvcWQtcGVyc2lzdGVuY2Uvc3JjL3B1YmxpYy1hcGkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYywwQkFBMEIsQ0FBQztBQUN6QyxjQUFjLDJCQUEyQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9saWIvcGVyc2lzdGVuY2UubW9kdWxlJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL3BlcnNpc3RlbmNlLnNlcnZpY2UnO1xuIl19
@@ -0,0 +1,5 @@
1
+ /**
2
+ * Generated bundle index. Do not edit.
3
+ */
4
+ export * from './public-api';
5
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicXVhZHJlbC1lbnRlcnByaXNlLXVpLXBlcnNpc3RlbmNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vbGlicy9xZC1wZXJzaXN0ZW5jZS9zcmMvcXVhZHJlbC1lbnRlcnByaXNlLXVpLXBlcnNpc3RlbmNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOztHQUVHO0FBRUgsY0FBYyxjQUFjLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEdlbmVyYXRlZCBidW5kbGUgaW5kZXguIERvIG5vdCBlZGl0LlxuICovXG5cbmV4cG9ydCAqIGZyb20gJy4vcHVibGljLWFwaSc7XG4iXX0=
@@ -0,0 +1,194 @@
1
+ import * as i0 from '@angular/core';
2
+ import { InjectionToken, Optional, Inject, Injectable, NgModule } from '@angular/core';
3
+ import { DOCUMENT } from '@angular/common';
4
+ import * as i1 from 'ngx-cookie-service';
5
+ import { CookieService } from 'ngx-cookie-service';
6
+ import { __decorate, __param, __metadata } from 'tslib';
7
+
8
+ const QD_PERSISTENCE_CONFIG = new InjectionToken('QD_PERSISTENCE_CONFIG');
9
+
10
+ class QdStringifyer {
11
+ static tryStringify(value) {
12
+ let data = '';
13
+ if (['object', 'boolean', 'number'].includes(typeof value)) {
14
+ data = JSON.stringify(value);
15
+ }
16
+ if (typeof value === 'string') {
17
+ data = value;
18
+ }
19
+ return data;
20
+ }
21
+ }
22
+
23
+ /**
24
+ * This strategy uses cookies to make the data visible between different subdomains of the host 'bazg.admin.ch'.
25
+ * In contrast, local storage would make the data only visible for a specific subdomain.
26
+ * If this strategy is used locally, the cookies will be saved for the domain 'localhost'.
27
+ * For the future another strategy is planned that saves the data in a backend service and that will also allow data
28
+ * to be shared between websites with different hosts.
29
+ */
30
+ let QdCookieStrategy = class QdCookieStrategy {
31
+ cookieName;
32
+ cookieService;
33
+ document;
34
+ cookieExpiresDays = 365 * 10;
35
+ constructor(cookieName, cookieService, document) {
36
+ this.cookieName = cookieName;
37
+ this.cookieService = cookieService;
38
+ this.document = document;
39
+ }
40
+ get cookieDomain() {
41
+ if (this.document?.location?.hostname === 'localhost')
42
+ return 'localhost';
43
+ return '.bazg.admin.ch';
44
+ }
45
+ get persistedData() {
46
+ try {
47
+ const parsed = JSON.parse(this.cookieService.get(this.cookieName));
48
+ if (typeof parsed !== 'object' || Array.isArray(parsed))
49
+ return {};
50
+ return parsed ?? {};
51
+ }
52
+ catch (e) {
53
+ return {};
54
+ }
55
+ }
56
+ persistData(data) {
57
+ this.cookieService.set(this.cookieName, JSON.stringify(data), this.cookieExpiresDays, '/', this.cookieDomain);
58
+ }
59
+ setItem(key, value) {
60
+ const data = this.persistedData;
61
+ data[key] = QdStringifyer.tryStringify(value);
62
+ this.persistData(data);
63
+ }
64
+ getItem(key) {
65
+ try {
66
+ return JSON.parse(this.persistedData[key]);
67
+ }
68
+ catch (e) {
69
+ return this.persistedData[key] ?? null;
70
+ }
71
+ }
72
+ removeItem(key) {
73
+ const data = this.persistedData;
74
+ delete data[key];
75
+ this.persistData(data);
76
+ }
77
+ };
78
+ QdCookieStrategy = __decorate([
79
+ __param(2, Optional()),
80
+ __param(2, Inject(DOCUMENT)),
81
+ __metadata("design:paramtypes", [String, CookieService,
82
+ Document])
83
+ ], QdCookieStrategy);
84
+
85
+ class QdCookieStrategyFactory {
86
+ config;
87
+ cookieService;
88
+ document;
89
+ constructor(config, cookieService, document) {
90
+ this.config = config;
91
+ this.cookieService = cookieService;
92
+ this.document = document;
93
+ }
94
+ getCookieStrategy(scope) {
95
+ return new QdCookieStrategy(this.getCookieName(scope), this.cookieService, document);
96
+ }
97
+ getCookieName(scope) {
98
+ switch (scope) {
99
+ case 'bazg':
100
+ return 'QD-BAZG';
101
+ case 'application':
102
+ return `QD-APPLICATION_${this.config.applicationIdentifier}`;
103
+ case 'private':
104
+ return `QD-PRIVATE_${this.config.applicationIdentifier}_${this.config.frontendIdentifier}`;
105
+ }
106
+ }
107
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: QdCookieStrategyFactory, deps: [{ token: QD_PERSISTENCE_CONFIG }, { token: i1.CookieService }, { token: DOCUMENT, optional: true }], target: i0.ɵɵFactoryTarget.Injectable });
108
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: QdCookieStrategyFactory });
109
+ }
110
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: QdCookieStrategyFactory, decorators: [{
111
+ type: Injectable
112
+ }], ctorParameters: () => [{ type: undefined, decorators: [{
113
+ type: Inject,
114
+ args: [QD_PERSISTENCE_CONFIG]
115
+ }] }, { type: i1.CookieService }, { type: Document, decorators: [{
116
+ type: Optional
117
+ }, {
118
+ type: Inject,
119
+ args: [DOCUMENT]
120
+ }] }] });
121
+
122
+ class QdStrategyResolverService {
123
+ config;
124
+ cookieStrategyFactory;
125
+ constructor(config, cookieStrategyFactory) {
126
+ this.config = config;
127
+ this.cookieStrategyFactory = cookieStrategyFactory;
128
+ }
129
+ resolve(scope) {
130
+ /* istanbul ignore next (remove comment when another strategy is added) */
131
+ switch (this.config.persistStrategy) {
132
+ case 'cookie':
133
+ default:
134
+ return this.cookieStrategyFactory.getCookieStrategy(scope);
135
+ }
136
+ }
137
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: QdStrategyResolverService, deps: [{ token: QD_PERSISTENCE_CONFIG }, { token: QdCookieStrategyFactory }], target: i0.ɵɵFactoryTarget.Injectable });
138
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: QdStrategyResolverService });
139
+ }
140
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: QdStrategyResolverService, decorators: [{
141
+ type: Injectable
142
+ }], ctorParameters: () => [{ type: undefined, decorators: [{
143
+ type: Inject,
144
+ args: [QD_PERSISTENCE_CONFIG]
145
+ }] }, { type: QdCookieStrategyFactory }] });
146
+
147
+ class QdPersistenceService {
148
+ strategyResolverService;
149
+ constructor(strategyResolverService) {
150
+ this.strategyResolverService = strategyResolverService;
151
+ }
152
+ write(key, data, scope = 'bazg') {
153
+ const strategy = this.strategyResolverService.resolve(scope);
154
+ strategy.setItem(key, data);
155
+ }
156
+ read(key, scope = 'bazg') {
157
+ const strategy = this.strategyResolverService.resolve(scope);
158
+ return strategy.getItem(key);
159
+ }
160
+ delete(key, scope = 'bazg') {
161
+ const strategy = this.strategyResolverService.resolve(scope);
162
+ strategy.removeItem(key);
163
+ }
164
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: QdPersistenceService, deps: [{ token: QdStrategyResolverService }], target: i0.ɵɵFactoryTarget.Injectable });
165
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: QdPersistenceService });
166
+ }
167
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: QdPersistenceService, decorators: [{
168
+ type: Injectable
169
+ }], ctorParameters: () => [{ type: QdStrategyResolverService }] });
170
+
171
+ class QdPersistenceModule {
172
+ static forRoot(config) {
173
+ return {
174
+ ngModule: QdPersistenceModule,
175
+ providers: [{ provide: QD_PERSISTENCE_CONFIG, useValue: config }]
176
+ };
177
+ }
178
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: QdPersistenceModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
179
+ static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.9", ngImport: i0, type: QdPersistenceModule });
180
+ static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: QdPersistenceModule, providers: [QdPersistenceService, QdStrategyResolverService, QdCookieStrategyFactory] });
181
+ }
182
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: QdPersistenceModule, decorators: [{
183
+ type: NgModule,
184
+ args: [{
185
+ providers: [QdPersistenceService, QdStrategyResolverService, QdCookieStrategyFactory]
186
+ }]
187
+ }] });
188
+
189
+ /**
190
+ * Generated bundle index. Do not edit.
191
+ */
192
+
193
+ export { QdPersistenceModule, QdPersistenceService };
194
+ //# sourceMappingURL=quadrel-enterprise-ui-persistence.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"quadrel-enterprise-ui-persistence.mjs","sources":["../../../../libs/qd-persistence/src/lib/persistence-config.token.ts","../../../../libs/qd-persistence/src/lib/utils/stringifyer.ts","../../../../libs/qd-persistence/src/lib/strategy/cookie-strategy/cookie-strategy.ts","../../../../libs/qd-persistence/src/lib/strategy/cookie-strategy/cookie-strategy.factory.ts","../../../../libs/qd-persistence/src/lib/strategy/strategy-resolver.service.ts","../../../../libs/qd-persistence/src/lib/persistence.service.ts","../../../../libs/qd-persistence/src/lib/persistence.module.ts","../../../../libs/qd-persistence/src/quadrel-enterprise-ui-persistence.ts"],"sourcesContent":["import { InjectionToken } from '@angular/core';\nimport { QdPersistenceConfig } from './model/persistence-config';\n\nexport const QD_PERSISTENCE_CONFIG = new InjectionToken<QdPersistenceConfig>('QD_PERSISTENCE_CONFIG');\n","export class QdStringifyer {\n static tryStringify<T>(value: T): string {\n let data = '';\n\n if (['object', 'boolean', 'number'].includes(typeof value)) {\n data = JSON.stringify(value);\n }\n\n if (typeof value === 'string') {\n data = value;\n }\n\n return data;\n }\n}\n","import { Inject, Optional } from '@angular/core';\nimport { DOCUMENT } from '@angular/common';\nimport { CookieService } from 'ngx-cookie-service';\nimport { QdStringifyer } from '../../utils/stringifyer';\nimport { QdPersistStrategy } from '../persist-strategy';\n\ntype QdPersistedData = { [key: string]: unknown };\n\n/**\n * This strategy uses cookies to make the data visible between different subdomains of the host 'bazg.admin.ch'.\n * In contrast, local storage would make the data only visible for a specific subdomain.\n * If this strategy is used locally, the cookies will be saved for the domain 'localhost'.\n * For the future another strategy is planned that saves the data in a backend service and that will also allow data\n * to be shared between websites with different hosts.\n */\nexport class QdCookieStrategy implements QdPersistStrategy {\n private cookieExpiresDays = 365 * 10;\n\n constructor(\n private cookieName: string,\n private cookieService: CookieService,\n @Optional() @Inject(DOCUMENT) private document?: Document\n ) {}\n\n private get cookieDomain(): string {\n if (this.document?.location?.hostname === 'localhost') return 'localhost';\n return '.bazg.admin.ch';\n }\n\n get persistedData(): QdPersistedData {\n try {\n const parsed = JSON.parse(this.cookieService.get(this.cookieName));\n\n if (typeof parsed !== 'object' || Array.isArray(parsed)) return {};\n\n return parsed ?? {};\n } catch (e) {\n return {};\n }\n }\n\n private persistData(data: QdPersistedData) {\n this.cookieService.set(this.cookieName, JSON.stringify(data), this.cookieExpiresDays, '/', this.cookieDomain);\n }\n\n setItem<T>(key: string, value: T): void {\n const data = this.persistedData;\n data[key] = QdStringifyer.tryStringify<T>(value);\n\n this.persistData(data);\n }\n\n getItem<T>(key: string): T | null {\n try {\n return JSON.parse(<string>this.persistedData[key]);\n } catch (e) {\n return (this.persistedData[key] as T) ?? null;\n }\n }\n\n removeItem(key: string): void {\n const data = this.persistedData;\n delete data[key];\n\n this.persistData(data);\n }\n}\n","import { Inject, Injectable, Optional } from '@angular/core';\nimport { DOCUMENT } from '@angular/common';\nimport { CookieService } from 'ngx-cookie-service';\nimport { QdCookieStrategy } from './cookie-strategy';\nimport { QD_PERSISTENCE_CONFIG } from '../../persistence-config.token';\nimport { QdPersistenceConfig } from '../../model/persistence-config';\nimport { QdPersistScope } from '../../model/persistence-types';\nimport { QdPersistStrategy } from '../persist-strategy';\n\n@Injectable()\nexport class QdCookieStrategyFactory {\n constructor(\n @Inject(QD_PERSISTENCE_CONFIG) private config: QdPersistenceConfig,\n private cookieService: CookieService,\n @Optional() @Inject(DOCUMENT) private document?: Document\n ) {}\n\n getCookieStrategy(scope: QdPersistScope): QdPersistStrategy {\n return new QdCookieStrategy(this.getCookieName(scope), this.cookieService, document);\n }\n\n private getCookieName(scope: QdPersistScope): string {\n switch (scope) {\n case 'bazg':\n return 'QD-BAZG';\n case 'application':\n return `QD-APPLICATION_${this.config.applicationIdentifier}`;\n case 'private':\n return `QD-PRIVATE_${this.config.applicationIdentifier}_${this.config.frontendIdentifier}`;\n }\n }\n}\n","import { Inject, Injectable } from '@angular/core';\nimport { QdPersistScope } from '../model/persistence-types';\nimport { QdPersistStrategy } from './persist-strategy';\nimport { QD_PERSISTENCE_CONFIG } from '../persistence-config.token';\nimport { QdPersistenceConfig } from '../model/persistence-config';\nimport { QdCookieStrategyFactory } from './cookie-strategy/cookie-strategy.factory';\n\n@Injectable()\nexport class QdStrategyResolverService {\n constructor(\n @Inject(QD_PERSISTENCE_CONFIG) private config: QdPersistenceConfig,\n private cookieStrategyFactory: QdCookieStrategyFactory\n ) {}\n\n resolve(scope: QdPersistScope): QdPersistStrategy {\n /* istanbul ignore next (remove comment when another strategy is added) */\n switch (this.config.persistStrategy) {\n case 'cookie':\n default:\n return this.cookieStrategyFactory.getCookieStrategy(scope);\n }\n }\n}\n","import { Injectable } from '@angular/core';\nimport { QdStrategyResolverService } from './strategy/strategy-resolver.service';\nimport { QdPersistScope } from './model/persistence-types';\n\n@Injectable()\nexport class QdPersistenceService {\n constructor(private strategyResolverService: QdStrategyResolverService) {}\n\n write<T>(key: string, data: T, scope: QdPersistScope = 'bazg'): void {\n const strategy = this.strategyResolverService.resolve(scope);\n\n strategy.setItem<T>(key, data);\n }\n\n read<T>(key: string, scope: QdPersistScope = 'bazg'): T | null {\n const strategy = this.strategyResolverService.resolve(scope);\n\n return strategy.getItem<T>(key);\n }\n\n delete(key: string, scope: QdPersistScope = 'bazg'): void {\n const strategy = this.strategyResolverService.resolve(scope);\n\n strategy.removeItem(key);\n }\n}\n","import { ModuleWithProviders, NgModule } from '@angular/core';\nimport { QdPersistenceConfig } from './model/persistence-config';\nimport { QD_PERSISTENCE_CONFIG } from './persistence-config.token';\nimport { QdPersistenceService } from './persistence.service';\nimport { QdStrategyResolverService } from './strategy/strategy-resolver.service';\nimport { QdCookieStrategyFactory } from './strategy/cookie-strategy/cookie-strategy.factory';\n\n@NgModule({\n providers: [QdPersistenceService, QdStrategyResolverService, QdCookieStrategyFactory]\n})\nexport class QdPersistenceModule {\n static forRoot(config: QdPersistenceConfig): ModuleWithProviders<QdPersistenceModule> {\n return {\n ngModule: QdPersistenceModule,\n providers: [{ provide: QD_PERSISTENCE_CONFIG, useValue: config }]\n };\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1.QdCookieStrategyFactory","i1.QdStrategyResolverService"],"mappings":"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"}
package/index.d.ts ADDED
@@ -0,0 +1,5 @@
1
+ /**
2
+ * Generated bundle index. Do not edit.
3
+ */
4
+ /// <amd-module name="@quadrel-enterprise-ui/persistence" />
5
+ export * from './public-api';
@@ -0,0 +1,18 @@
1
+ import { QdPersistStrategy } from './persistence-types';
2
+ export interface QdPersistenceConfig {
3
+ /**
4
+ * Application Identifier
5
+ * @example Passar
6
+ */
7
+ applicationIdentifier: string;
8
+ /**
9
+ * Frontend Identifier (Unique identifier for a frontend project)
10
+ * @example Warenverkehr
11
+ */
12
+ frontendIdentifier: string;
13
+ /**
14
+ * Persist Strategy
15
+ * * @default: cookie
16
+ */
17
+ persistStrategy?: QdPersistStrategy;
18
+ }
@@ -0,0 +1,2 @@
1
+ export type QdPersistScope = 'private' | 'application' | 'bazg';
2
+ export type QdPersistStrategy = 'cookie';
@@ -0,0 +1,3 @@
1
+ import { InjectionToken } from '@angular/core';
2
+ import { QdPersistenceConfig } from './model/persistence-config';
3
+ export declare const QD_PERSISTENCE_CONFIG: InjectionToken<QdPersistenceConfig>;
@@ -0,0 +1,9 @@
1
+ import { ModuleWithProviders } from '@angular/core';
2
+ import { QdPersistenceConfig } from './model/persistence-config';
3
+ import * as i0 from "@angular/core";
4
+ export declare class QdPersistenceModule {
5
+ static forRoot(config: QdPersistenceConfig): ModuleWithProviders<QdPersistenceModule>;
6
+ static ɵfac: i0.ɵɵFactoryDeclaration<QdPersistenceModule, never>;
7
+ static ɵmod: i0.ɵɵNgModuleDeclaration<QdPersistenceModule, never, never, never>;
8
+ static ɵinj: i0.ɵɵInjectorDeclaration<QdPersistenceModule>;
9
+ }
@@ -0,0 +1,12 @@
1
+ import { QdStrategyResolverService } from './strategy/strategy-resolver.service';
2
+ import { QdPersistScope } from './model/persistence-types';
3
+ import * as i0 from "@angular/core";
4
+ export declare class QdPersistenceService {
5
+ private strategyResolverService;
6
+ constructor(strategyResolverService: QdStrategyResolverService);
7
+ write<T>(key: string, data: T, scope?: QdPersistScope): void;
8
+ read<T>(key: string, scope?: QdPersistScope): T | null;
9
+ delete(key: string, scope?: QdPersistScope): void;
10
+ static ɵfac: i0.ɵɵFactoryDeclaration<QdPersistenceService, never>;
11
+ static ɵprov: i0.ɵɵInjectableDeclaration<QdPersistenceService>;
12
+ }
@@ -0,0 +1,26 @@
1
+ import { CookieService } from 'ngx-cookie-service';
2
+ import { QdPersistStrategy } from '../persist-strategy';
3
+ type QdPersistedData = {
4
+ [key: string]: unknown;
5
+ };
6
+ /**
7
+ * This strategy uses cookies to make the data visible between different subdomains of the host 'bazg.admin.ch'.
8
+ * In contrast, local storage would make the data only visible for a specific subdomain.
9
+ * If this strategy is used locally, the cookies will be saved for the domain 'localhost'.
10
+ * For the future another strategy is planned that saves the data in a backend service and that will also allow data
11
+ * to be shared between websites with different hosts.
12
+ */
13
+ export declare class QdCookieStrategy implements QdPersistStrategy {
14
+ private cookieName;
15
+ private cookieService;
16
+ private document?;
17
+ private cookieExpiresDays;
18
+ constructor(cookieName: string, cookieService: CookieService, document?: Document | undefined);
19
+ private get cookieDomain();
20
+ get persistedData(): QdPersistedData;
21
+ private persistData;
22
+ setItem<T>(key: string, value: T): void;
23
+ getItem<T>(key: string): T | null;
24
+ removeItem(key: string): void;
25
+ }
26
+ export {};
@@ -0,0 +1,15 @@
1
+ import { CookieService } from 'ngx-cookie-service';
2
+ import { QdPersistenceConfig } from '../../model/persistence-config';
3
+ import { QdPersistScope } from '../../model/persistence-types';
4
+ import { QdPersistStrategy } from '../persist-strategy';
5
+ import * as i0 from "@angular/core";
6
+ export declare class QdCookieStrategyFactory {
7
+ private config;
8
+ private cookieService;
9
+ private document?;
10
+ constructor(config: QdPersistenceConfig, cookieService: CookieService, document?: Document | undefined);
11
+ getCookieStrategy(scope: QdPersistScope): QdPersistStrategy;
12
+ private getCookieName;
13
+ static ɵfac: i0.ɵɵFactoryDeclaration<QdCookieStrategyFactory, [null, null, { optional: true; }]>;
14
+ static ɵprov: i0.ɵɵInjectableDeclaration<QdCookieStrategyFactory>;
15
+ }
@@ -0,0 +1,22 @@
1
+ /**
2
+ * A strategy for persisting data.
3
+ */
4
+ export interface QdPersistStrategy {
5
+ /**
6
+ * Set data.
7
+ * @param key Key for the data
8
+ * @param value The data itself
9
+ */
10
+ setItem<T>(key: string, value: T): void;
11
+ /**
12
+ * Gets data for a specific key.
13
+ * @param key Key of the data
14
+ * @returns Returns the data or null if not found.
15
+ */
16
+ getItem<T>(key: string): T | null;
17
+ /**
18
+ * Removes the entry with the given key.
19
+ * @param key Key of the entry
20
+ */
21
+ removeItem(key: string): void;
22
+ }
@@ -0,0 +1,13 @@
1
+ import { QdPersistScope } from '../model/persistence-types';
2
+ import { QdPersistStrategy } from './persist-strategy';
3
+ import { QdPersistenceConfig } from '../model/persistence-config';
4
+ import { QdCookieStrategyFactory } from './cookie-strategy/cookie-strategy.factory';
5
+ import * as i0 from "@angular/core";
6
+ export declare class QdStrategyResolverService {
7
+ private config;
8
+ private cookieStrategyFactory;
9
+ constructor(config: QdPersistenceConfig, cookieStrategyFactory: QdCookieStrategyFactory);
10
+ resolve(scope: QdPersistScope): QdPersistStrategy;
11
+ static ɵfac: i0.ɵɵFactoryDeclaration<QdStrategyResolverService, never>;
12
+ static ɵprov: i0.ɵɵInjectableDeclaration<QdStrategyResolverService>;
13
+ }
@@ -0,0 +1,3 @@
1
+ export declare class QdStringifyer {
2
+ static tryStringify<T>(value: T): string;
3
+ }
package/package.json CHANGED
@@ -1,11 +1,33 @@
1
1
  {
2
2
  "name": "@quadrel-enterprise-ui/persistence",
3
- "version": "1.0.0",
4
- "description": "",
5
- "main": "index.js",
6
- "scripts": {
7
- "test": "echo \"Error: no test specified\" && exit 1"
8
- },
9
- "author": "",
10
- "license": "ISC"
11
- }
3
+ "version": "18.1.2",
4
+ "description": "Library for the persistence of data",
5
+ "peerDependencies": {
6
+ "@angular/common": "~18.2.9",
7
+ "@angular/core": "~18.2.9"
8
+ },
9
+ "dependencies": {
10
+ "tslib": "^2.6.3",
11
+ "ngx-cookie-service": "^18.0.0"
12
+ },
13
+ "jestSonar": {
14
+ "reportPath": "../../coverage/libs/qd-persistence/",
15
+ "reportFile": "sqr.xml",
16
+ "indent": 4,
17
+ "sonar56x": true
18
+ },
19
+ "module": "fesm2022/quadrel-enterprise-ui-persistence.mjs",
20
+ "typings": "index.d.ts",
21
+ "exports": {
22
+ "./package.json": {
23
+ "default": "./package.json"
24
+ },
25
+ ".": {
26
+ "types": "./index.d.ts",
27
+ "esm2022": "./esm2022/quadrel-enterprise-ui-persistence.mjs",
28
+ "esm": "./esm2022/quadrel-enterprise-ui-persistence.mjs",
29
+ "default": "./fesm2022/quadrel-enterprise-ui-persistence.mjs"
30
+ }
31
+ },
32
+ "sideEffects": false
33
+ }
@@ -0,0 +1,2 @@
1
+ export * from './lib/persistence.module';
2
+ export * from './lib/persistence.service';