{"version":3,"file":"sowatech-shared-local-storage.mjs","sources":["../../../projects/shared/local-storage/local-storage.service.ts","../../../projects/shared/local-storage/sowatech-shared-local-storage.ts"],"sourcesContent":["import { inject, Injectable } from '@angular/core';\r\nimport { SharedConfigService } from '@sowatech/shared/shared-config';\r\nimport { UserPropertiesStorageService } from '@sowatech/shared/user-properties-storage';\r\n\r\n@Injectable({ providedIn: 'root' })\r\nexport class LocalStorageService extends UserPropertiesStorageService {\r\n    private readonly config = inject(SharedConfigService);\r\n\r\n    constructor() {\r\n        super();\r\n    }\r\n\r\n    private userPrefix = '';\r\n    private getPrefixedKey = (key: string) => this.config.storagePrefix + this.userPrefix + key;\r\n\r\n    public setUserName(username: string | undefined) {\r\n        this.userPrefix = username ? username + '.' : '';\r\n    }\r\n\r\n    public clearUserName() {\r\n        this.userPrefix = '';\r\n    }\r\n\r\n    public save<T = unknown>(key: string, value: T): void {\r\n        this.setItem(key, value);\r\n    }\r\n\r\n    public load<T = unknown>(key: string): T | null {\r\n        return this.getItem(key) as T | null;\r\n    }\r\n\r\n    public delete(key: string): void {\r\n        this.removeItem(key);\r\n    }\r\n\r\n    /**\r\n     * Liest den Wert aus und gibt ihn geparsed zurück.\r\n     * Der Key wird mit dem Prefix versehen.\r\n     */\r\n    public getItem<T = any>(key: string): T | null {\r\n        const stored = localStorage.getItem(this.getPrefixedKey(key));\r\n        try {\r\n            return JSON.parse(stored);\r\n        }\r\n        catch { // L2-4547: früher string hidden gespeichert ohne \"\" -> JSON.parse failt\r\n            return stored as unknown as T;\r\n        }\r\n    }\r\n    /**\r\n     * Stringified den value und schreibt ihn in den Localstorage.\r\n     * Der Key wird mit dem Prefix versehen.\r\n     */\r\n    public setItem(key: string, value: any): void {\r\n        localStorage.setItem(this.getPrefixedKey(key), JSON.stringify(value));\r\n    }\r\n    public removeItem(key: string): void {\r\n        localStorage.removeItem(this.getPrefixedKey(key));\r\n    }\r\n}\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;;AAKM,MAAO,mBAAoB,SAAQ,4BAA4B,CAAA;AAGjE,IAAA,WAAA,GAAA;AACI,QAAA,KAAK,EAAE;AAHM,QAAA,IAAA,CAAA,MAAM,GAAG,MAAM,CAAC,mBAAmB,CAAC;QAM7C,IAAA,CAAA,UAAU,GAAG,EAAE;AACf,QAAA,IAAA,CAAA,cAAc,GAAG,CAAC,GAAW,KAAK,IAAI,CAAC,MAAM,CAAC,aAAa,GAAG,IAAI,CAAC,UAAU,GAAG,GAAG;IAH3F;AAKO,IAAA,WAAW,CAAC,QAA4B,EAAA;AAC3C,QAAA,IAAI,CAAC,UAAU,GAAG,QAAQ,GAAG,QAAQ,GAAG,GAAG,GAAG,EAAE;IACpD;IAEO,aAAa,GAAA;AAChB,QAAA,IAAI,CAAC,UAAU,GAAG,EAAE;IACxB;IAEO,IAAI,CAAc,GAAW,EAAE,KAAQ,EAAA;AAC1C,QAAA,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,KAAK,CAAC;IAC5B;AAEO,IAAA,IAAI,CAAc,GAAW,EAAA;AAChC,QAAA,OAAO,IAAI,CAAC,OAAO,CAAC,GAAG,CAAa;IACxC;AAEO,IAAA,MAAM,CAAC,GAAW,EAAA;AACrB,QAAA,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC;IACxB;AAEA;;;AAGG;AACI,IAAA,OAAO,CAAU,GAAW,EAAA;AAC/B,QAAA,MAAM,MAAM,GAAG,YAAY,CAAC,OAAO,CAAC,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC;AAC7D,QAAA,IAAI;AACA,YAAA,OAAO,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC;QAC7B;QACA,MAAM;AACF,YAAA,OAAO,MAAsB;QACjC;IACJ;AACA;;;AAGG;IACI,OAAO,CAAC,GAAW,EAAE,KAAU,EAAA;AAClC,QAAA,YAAY,CAAC,OAAO,CAAC,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,EAAE,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;IACzE;AACO,IAAA,UAAU,CAAC,GAAW,EAAA;QACzB,YAAY,CAAC,UAAU,CAAC,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC;IACrD;8GApDS,mBAAmB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;AAAnB,IAAA,SAAA,IAAA,CAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,mBAAmB,cADN,MAAM,EAAA,CAAA,CAAA;;2FACnB,mBAAmB,EAAA,UAAA,EAAA,CAAA;kBAD/B,UAAU;mBAAC,EAAE,UAAU,EAAE,MAAM,EAAE;;;ACJlC;;AAEG;;;;"}