@shival99/z-ui 1.0.13 → 1.0.15

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.
@@ -1 +1 @@
1
- {"version":3,"file":"shival99-z-ui-services.mjs","sources":["../../../../libs/core-ui/services/z-cache.service.ts","../../../../libs/core-ui/services/z-indexdb.service.ts","../../../../libs/core-ui/services/z-translate.service.ts","../../../../libs/core-ui/services/z-http-abstract.service.ts","../../../../libs/core-ui/services/z-subject.service.ts","../../../../libs/core-ui/services/types/z-theme.types.ts","../../../../libs/core-ui/services/z-theme.service.ts","../../../../libs/core-ui/services/index.ts","../../../../libs/core-ui/services/shival99-z-ui-services.ts"],"sourcesContent":["import type { ZCacheConfig } from './types/z-cache.types';\n\nconst Z_CACHE_DEFAULT_PREFIX = 'z_';\nexport class ZCacheService {\n private static _prefix = Z_CACHE_DEFAULT_PREFIX;\n private static _encrypt = true;\n\n public static configure(config: ZCacheConfig): void {\n if (config.prefix) {\n ZCacheService._prefix = config.prefix;\n }\n if (config.encrypt !== undefined) {\n ZCacheService._encrypt = config.encrypt;\n }\n }\n\n private static _encode(data: unknown): string {\n const payload = { __z: true, __d: data };\n return btoa(encodeURIComponent(JSON.stringify(payload)));\n }\n\n private static _decode<T>(data: string): T | null {\n try {\n const decoded = JSON.parse(decodeURIComponent(atob(data)));\n if (!decoded.__z) {\n return null;\n }\n return decoded.__d as T;\n } catch {\n return null;\n }\n }\n\n private static _getFullKey(key: string, encrypt: boolean): string {\n const prefixedKey = `${ZCacheService._prefix}${key}`;\n return encrypt ? ZCacheService._encode(prefixedKey) : prefixedKey;\n }\n\n private static _safeOperation<T>(operation: () => T, fallback: T): T {\n try {\n return operation();\n } catch (error) {\n console.error('[ZCache] Operation error:', error);\n return fallback;\n }\n }\n\n /**\n * Get a value from cache\n * @param key - Cache key\n * @param defaultValue - Default value if not found\n * @param encrypt - Whether to use encryption (default: service config)\n */\n public static get<T>(key: string, defaultValue?: T, encrypt = ZCacheService._encrypt): T | undefined {\n return ZCacheService._safeOperation(() => {\n const _key = ZCacheService._getFullKey(key, encrypt);\n const result = localStorage.getItem(_key);\n\n if (!result) {\n return defaultValue;\n }\n\n const data = encrypt ? ZCacheService._decode<T>(result) : (JSON.parse(result) as T);\n return data ?? defaultValue;\n }, defaultValue);\n }\n\n /**\n * Set a value in cache\n * @param key - Cache key\n * @param data - Data to store\n * @param encrypt - Whether to use encryption\n */\n public static set<T>(key: string, data: T, encrypt = ZCacheService._encrypt): boolean {\n return ZCacheService._safeOperation(() => {\n const _key = ZCacheService._getFullKey(key, encrypt);\n const _value = encrypt ? ZCacheService._encode(data) : JSON.stringify(data);\n localStorage.setItem(_key, _value);\n return true;\n }, false);\n }\n\n /**\n * Delete a key from cache\n * @param key - Cache key\n * @param encrypt - Whether key is encrypted\n */\n public static delete(key: string, encrypt = ZCacheService._encrypt): boolean {\n return ZCacheService._safeOperation(() => {\n const _key = ZCacheService._getFullKey(key, encrypt);\n localStorage.removeItem(_key);\n return true;\n }, false);\n }\n\n /**\n * Delete multiple keys from cache\n * @param keys - Array of cache keys\n * @param encrypt - Whether keys are encrypted\n */\n public static deleteMultiple(keys: string[], encrypt = ZCacheService._encrypt): boolean {\n return ZCacheService._safeOperation(() => {\n keys.forEach(key => {\n const _key = ZCacheService._getFullKey(key, encrypt);\n localStorage.removeItem(_key);\n });\n return true;\n }, false);\n }\n\n /**\n * Clear all cache with the configured prefix\n */\n public static clear(): boolean {\n return ZCacheService._safeOperation(() => {\n const keysToRemove: string[] = [];\n const prefixEncoded = ZCacheService._encode(ZCacheService._prefix);\n\n for (let i = 0; i < localStorage.length; i++) {\n const key = localStorage.key(i);\n if (key?.startsWith(ZCacheService._prefix) || key?.startsWith(prefixEncoded)) {\n keysToRemove.push(key);\n }\n }\n\n keysToRemove.forEach(key => localStorage.removeItem(key));\n return true;\n }, false);\n }\n\n /**\n * Check if a key exists in cache\n * @param key - Cache key\n * @param encrypt - Whether key is encrypted\n */\n public static has(key: string, encrypt = ZCacheService._encrypt): boolean {\n return ZCacheService._safeOperation(() => {\n const _key = ZCacheService._getFullKey(key, encrypt);\n return localStorage.getItem(_key) !== null;\n }, false);\n }\n\n /**\n * Get all keys with the configured prefix\n */\n public static keys(): string[] {\n return ZCacheService._safeOperation(() => {\n const result: string[] = [];\n const prefixEncoded = ZCacheService._encode(ZCacheService._prefix);\n\n for (let i = 0; i < localStorage.length; i++) {\n const key = localStorage.key(i);\n if (key?.startsWith(ZCacheService._prefix)) {\n result.push(key.slice(ZCacheService._prefix.length));\n } else if (key?.startsWith(prefixEncoded)) {\n const decoded = ZCacheService._decode<string>(key);\n if (decoded) {\n result.push(decoded.slice(ZCacheService._prefix.length));\n }\n }\n }\n\n return result;\n }, []);\n }\n}\n","import type { ZIndexDbConfig, ZIndexDbStoreConfig } from './types/z-indexdb.types';\n\nconst Z_INDEXDB_DEFAULT_CONFIG: Required<Pick<ZIndexDbConfig, 'dbName' | 'version' | 'mode' | 'defaultStore'>> = {\n dbName: 'ZDatabase',\n version: 1,\n mode: 'readwrite',\n defaultStore: 'ZStore',\n};\n\nconst Z_INDEXDB_BATCH_SIZE = 100;\n\nexport class ZIndexDbService {\n private _db: IDBDatabase | null = null;\n private _dbName: string;\n private _version: number;\n private _mode: IDBTransactionMode;\n private _dbReady: Promise<void>;\n private _stores: Map<string, ZIndexDbStoreConfig> = new Map();\n private _defaultStoreName: string;\n private _globalProtectedKeys: string[];\n\n public constructor(config: ZIndexDbConfig = {}) {\n this._dbName = config.dbName ?? Z_INDEXDB_DEFAULT_CONFIG.dbName;\n this._version = config.version ?? Z_INDEXDB_DEFAULT_CONFIG.version;\n this._mode = config.mode ?? Z_INDEXDB_DEFAULT_CONFIG.mode;\n this._defaultStoreName = config.defaultStore ?? Z_INDEXDB_DEFAULT_CONFIG.defaultStore;\n this._globalProtectedKeys = config.protectedKeys ?? [];\n\n if (config.stores?.length) {\n config.stores.forEach(store => this._stores.set(store.name, store));\n }\n if (!this._stores.has(this._defaultStoreName)) {\n this._stores.set(this._defaultStoreName, { name: this._defaultStoreName, encrypt: true });\n }\n\n this._dbReady = this._initDb();\n }\n\n private _getStoreConfig(storeName?: string): ZIndexDbStoreConfig {\n const name = storeName ?? this._defaultStoreName;\n return this._stores.get(name) ?? { name, encrypt: true };\n }\n\n private _encrypt(data: unknown): string {\n const payload = {\n __z: true,\n __t: typeof data,\n __d: data,\n };\n return btoa(encodeURIComponent(JSON.stringify(payload)));\n }\n\n private _decrypt<T>(data: string): T | null {\n try {\n const decoded = JSON.parse(decodeURIComponent(atob(data)));\n if (!decoded.__z) {\n return null;\n }\n return decoded.__d as T;\n } catch {\n return null;\n }\n }\n\n private _closeConnection(): void {\n if (this._db) {\n this._db.close();\n this._db = null;\n }\n }\n\n private async _reconnect(): Promise<void> {\n console.warn('[ZIndexDb] Reconnecting...');\n this._closeConnection();\n this._dbReady = this._initDb();\n await this._dbReady;\n }\n\n private async _withRetry<T>(operation: () => Promise<T>, retries = 3): Promise<T> {\n let lastError: unknown;\n\n for (let i = 0; i < retries; i++) {\n try {\n return await operation();\n } catch (error) {\n lastError = error;\n if (error instanceof Error && error.name === 'InvalidStateError') {\n await this._reconnect();\n }\n await new Promise(resolve => setTimeout(resolve, Math.pow(2, i) * 100));\n }\n }\n\n throw lastError;\n }\n\n private async _initDb(): Promise<void> {\n if (this._db) {\n return;\n }\n\n return new Promise((resolve, reject) => {\n try {\n const request = indexedDB.open(this._dbName, this._version);\n\n request.onupgradeneeded = event => {\n const db = (event.target as IDBOpenDBRequest).result;\n this._stores.forEach((_, storeName) => {\n if (!db.objectStoreNames.contains(storeName)) {\n db.createObjectStore(storeName);\n }\n });\n };\n\n request.onsuccess = event => {\n this._db = (event.target as IDBOpenDBRequest).result;\n this._db.onerror = e => console.error('[ZIndexDb] Error:', (e.target as IDBRequest).error);\n this._db.onclose = () => {\n console.warn('[ZIndexDb] Connection closed unexpectedly');\n this._db = null;\n };\n resolve();\n };\n\n request.onerror = event => {\n console.error('[ZIndexDb] Open error:', (event.target as IDBOpenDBRequest).error);\n reject((event.target as IDBOpenDBRequest).error);\n };\n } catch (error) {\n reject(error);\n }\n });\n }\n\n /**\n * Get a value from the store\n * @param key - The key to retrieve\n * @param defaultValue - Default value if key not found\n * @param storeName - Optional store name (uses default if not specified)\n */\n public async get<T>(key: string, defaultValue?: T, storeName?: string): Promise<T | undefined> {\n const storeConfig = this._getStoreConfig(storeName);\n\n return this._withRetry(async () => {\n await this._dbReady;\n\n if (!this._db) {\n await this._reconnect();\n if (!this._db) {\n return defaultValue;\n }\n }\n\n const _key = storeConfig.encrypt !== false ? this._encrypt(key) : key;\n\n return new Promise<T | undefined>(resolve => {\n try {\n const transaction = this._db!.transaction([storeConfig.name], this._mode);\n const store = transaction.objectStore(storeConfig.name);\n const request = store.get(_key);\n\n request.onsuccess = () => {\n try {\n const { result } = request;\n if (!result) {\n resolve(defaultValue);\n return;\n }\n const decrypted = storeConfig.encrypt !== false ? this._decrypt<T>(result) : result;\n resolve(decrypted ?? defaultValue);\n } catch {\n resolve(defaultValue);\n }\n };\n\n request.onerror = () => resolve(defaultValue);\n transaction.onerror = () => resolve(defaultValue);\n } catch {\n resolve(defaultValue);\n }\n });\n });\n }\n\n /**\n * Set a value in the store\n * @param key - The key to set\n * @param value - The value to store\n * @param storeName - Optional store name\n */\n public async set<T>(key: string, value: T, storeName?: string): Promise<void> {\n const storeConfig = this._getStoreConfig(storeName);\n\n return this._withRetry(async () => {\n await this._dbReady;\n\n if (!this._db) {\n await this._reconnect();\n if (!this._db) {\n throw new Error('Database not initialized');\n }\n }\n\n const _key = storeConfig.encrypt !== false ? this._encrypt(key) : key;\n const _value = storeConfig.encrypt !== false ? this._encrypt(value) : value;\n\n return new Promise<void>((resolve, reject) => {\n try {\n const transaction = this._db!.transaction([storeConfig.name], 'readwrite');\n const store = transaction.objectStore(storeConfig.name);\n const request = store.put(_value, _key);\n\n request.onerror = () => reject(request.error);\n transaction.oncomplete = () => resolve();\n transaction.onerror = () => reject(transaction.error);\n } catch (error) {\n reject(error);\n }\n });\n });\n }\n\n /**\n * Delete a key from the store\n * @param key - Key or array of keys to delete\n * @param storeName - Optional store name\n */\n public async delete(key: string | string[], storeName?: string): Promise<void> {\n const storeConfig = this._getStoreConfig(storeName);\n\n return this._withRetry(async () => {\n await this._dbReady;\n\n if (!this._db) {\n await this._reconnect();\n if (!this._db) {\n throw new Error('Database not initialized');\n }\n }\n\n const keys = Array.isArray(key) ? key : [key];\n\n return new Promise<void>((resolve, reject) => {\n try {\n const transaction = this._db!.transaction([storeConfig.name], 'readwrite');\n const store = transaction.objectStore(storeConfig.name);\n\n keys.forEach(k => {\n const _key = storeConfig.encrypt !== false ? this._encrypt(k) : k;\n store.delete(_key);\n });\n\n transaction.oncomplete = () => resolve();\n transaction.onerror = () => reject(transaction.error);\n } catch (error) {\n reject(error);\n }\n });\n });\n }\n\n /**\n * Clear all data from a store (respecting protected keys)\n * @param storeName - Optional store name\n */\n public async clear(storeName?: string): Promise<void> {\n const storeConfig = this._getStoreConfig(storeName);\n const protectedKeys = [...this._globalProtectedKeys, ...(storeConfig.protectedKeys ?? [])];\n\n return this._withRetry(async () => {\n await this._dbReady;\n\n if (!this._db) {\n await this._reconnect();\n if (!this._db) {\n throw new Error('Database not initialized');\n }\n }\n\n if (protectedKeys.length === 0) {\n return new Promise<void>((resolve, reject) => {\n const transaction = this._db!.transaction([storeConfig.name], 'readwrite');\n const store = transaction.objectStore(storeConfig.name);\n const request = store.clear();\n\n request.onsuccess = () => resolve();\n request.onerror = () => reject(request.error);\n });\n }\n\n return new Promise<void>((resolve, reject) => {\n try {\n const transaction = this._db!.transaction([storeConfig.name], 'readwrite');\n const store = transaction.objectStore(storeConfig.name);\n const keyRequest = store.getAllKeys();\n\n keyRequest.onsuccess = () => {\n const allKeys = keyRequest.result as string[];\n const encryptedProtected = protectedKeys.map(k => this._encrypt(k));\n\n allKeys.forEach(k => {\n if (!encryptedProtected.includes(k) && !protectedKeys.includes(k)) {\n try {\n const decrypted = this._decrypt<string>(k);\n if (!protectedKeys.includes(decrypted ?? '')) {\n store.delete(k);\n }\n } catch {\n store.delete(k);\n }\n }\n });\n };\n\n keyRequest.onerror = () => reject(keyRequest.error);\n transaction.oncomplete = () => resolve();\n transaction.onerror = () => reject(transaction.error);\n } catch (error) {\n reject(error);\n }\n });\n });\n }\n\n /**\n * Get all items from a store\n * @param storeName - Optional store name\n */\n public async getAll<T = unknown>(storeName?: string): Promise<Record<string, T>> {\n const storeConfig = this._getStoreConfig(storeName);\n\n return this._withRetry(async () => {\n await this._dbReady;\n\n if (!this._db) {\n await this._reconnect();\n if (!this._db) {\n return {};\n }\n }\n\n return new Promise<Record<string, T>>(resolve => {\n try {\n const transaction = this._db!.transaction([storeConfig.name], this._mode);\n const store = transaction.objectStore(storeConfig.name);\n const keysRequest = store.getAllKeys();\n const valuesRequest = store.getAll();\n const results: Record<string, T> = {};\n\n keysRequest.onsuccess = () => {\n const keys = keysRequest.result;\n const values = valuesRequest.result;\n\n keys.forEach((key, index) => {\n if (typeof key === 'string') {\n try {\n const _key = storeConfig.encrypt !== false ? this._decrypt<string>(key) : key;\n const _value = storeConfig.encrypt !== false ? this._decrypt<T>(values[index]) : values[index];\n if (_key && _value !== null) {\n results[_key] = _value;\n }\n } catch {\n // Skip invalid entries\n }\n }\n });\n\n resolve(results);\n };\n\n keysRequest.onerror = () => resolve({});\n transaction.onerror = () => resolve({});\n } catch {\n resolve({});\n }\n });\n });\n }\n\n /**\n * Set multiple items at once\n * @param items - Object with key-value pairs\n * @param storeName - Optional store name\n */\n public async setMultiple<T>(items: Record<string, T>, storeName?: string): Promise<void> {\n const storeConfig = this._getStoreConfig(storeName);\n const entries = Object.entries(items);\n\n for (let i = 0; i < entries.length; i += Z_INDEXDB_BATCH_SIZE) {\n const batch = entries.slice(i, i + Z_INDEXDB_BATCH_SIZE);\n\n await this._withRetry(async () => {\n await this._dbReady;\n\n if (!this._db) {\n await this._reconnect();\n if (!this._db) {\n throw new Error('Database not initialized');\n }\n }\n\n return new Promise<void>((resolve, reject) => {\n const transaction = this._db!.transaction([storeConfig.name], 'readwrite');\n const store = transaction.objectStore(storeConfig.name);\n\n batch.forEach(([key, value]) => {\n const _key = storeConfig.encrypt !== false ? this._encrypt(key) : key;\n const _value = storeConfig.encrypt !== false ? this._encrypt(value) : value;\n store.put(_value, _key);\n });\n\n transaction.oncomplete = () => resolve();\n transaction.onerror = () => reject(transaction.error);\n });\n });\n }\n }\n\n /**\n * Get the list of available store names\n */\n public getStoreNames(): string[] {\n return Array.from(this._stores.keys());\n }\n\n /**\n * Check if a store exists\n * @param storeName - Store name to check\n */\n public hasStore(storeName: string): boolean {\n return this._stores.has(storeName);\n }\n\n /**\n * Add a new store (requires database version upgrade)\n * Note: This will cause database reconnection\n * @param config - Store configuration\n */\n public async addStore(config: ZIndexDbStoreConfig): Promise<void> {\n if (this._stores.has(config.name)) {\n return;\n }\n\n this._stores.set(config.name, config);\n this._version += 1;\n this._closeConnection();\n this._dbReady = this._initDb();\n await this._dbReady;\n }\n}\n","import { inject, Injectable, signal } from '@angular/core';\nimport { TranslateService, TranslationObject } from '@ngx-translate/core';\nimport { firstValueFrom, Observable } from 'rxjs';\nimport { ZCacheService } from './z-cache.service';\n\nconst LANG_CACHE_KEY = 'Z_LANGUAGE';\nconst DEFAULT_LANG = 'vi';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class ZTranslateService {\n private readonly _translate = inject(TranslateService);\n\n public readonly currentLang = signal<string>(DEFAULT_LANG);\n public readonly availableLangs = signal<string[]>(['vi', 'en']);\n\n public constructor() {\n this._initialize();\n }\n\n private _initialize(): void {\n const savedLang = ZCacheService.get<string>(LANG_CACHE_KEY) ?? DEFAULT_LANG;\n this._translate.setFallbackLang(DEFAULT_LANG);\n this._translate.use(savedLang);\n this.currentLang.set(savedLang);\n }\n\n /**\n * Change the current language\n * @param lang - Language code\n */\n public use(lang: string): void {\n this._translate.use(lang);\n ZCacheService.set(LANG_CACHE_KEY, lang);\n this.currentLang.set(lang);\n }\n\n /**\n * Get the current language code\n */\n public getLang(): string {\n return this._translate.getCurrentLang() ?? DEFAULT_LANG;\n }\n\n /**\n * Get translation synchronously (returns key if not found)\n * @param key - Translation key\n * @param params - Interpolation parameters\n */\n public instant(key: string, params?: Record<string, unknown>): string {\n if (!key) {\n return '';\n }\n return this._translate.instant(key, params);\n }\n\n /**\n * Get translation asynchronously\n * @param key - Translation key\n * @param params - Interpolation parameters\n */\n public async get(key: string, params?: Record<string, unknown>): Promise<string> {\n if (!key) {\n return '';\n }\n return firstValueFrom(this._translate.get(key, params));\n }\n\n /**\n * Get translation as observable\n * @param key - Translation key\n * @param params - Interpolation parameters\n */\n public get$(key: string, params?: Record<string, unknown>): Observable<string> {\n return this._translate.get(key, params);\n }\n\n /**\n * Stream translations (re-emits on language change)\n * @param key - Translation key\n * @param params - Interpolation parameters\n */\n public stream$(key: string, params?: Record<string, unknown>): Observable<string> {\n return this._translate.stream(key, params);\n }\n\n /**\n * Get multiple translations at once\n * @param keys - Array of translation keys\n * @param params - Interpolation parameters (applied to all)\n */\n public async getMany(keys: string[], params?: Record<string, unknown>): Promise<Record<string, string>> {\n const results: Record<string, string> = {};\n await Promise.all(\n keys.map(async key => {\n results[key] = await this.get(key, params);\n })\n );\n return results;\n }\n\n /**\n * Check if a translation key exists\n * @param key - Translation key\n */\n public has(key: string): boolean {\n const translation = this._translate.instant(key);\n return translation !== key;\n }\n\n /**\n * Add translations dynamically\n * @param lang - Language code\n * @param translations - Translation object\n * @param shouldMerge - Whether to merge with existing translations\n */\n public setTranslation(lang: string, translations: TranslationObject, shouldMerge = true): void {\n this._translate.setTranslation(lang, translations, shouldMerge);\n }\n\n /**\n * Get the underlying TranslateService for advanced usage\n */\n public getNgxTranslate(): TranslateService {\n return this._translate;\n }\n}\n","import { HttpClient, HttpErrorResponse, HttpHeaders } from '@angular/common/http';\nimport { inject, Injectable } from '@angular/core';\nimport { Router } from '@angular/router';\nimport { catchError, defer, from, map, Observable, of, switchMap, tap, throwError } from 'rxjs';\nimport type {\n ZHttpCacheEntry,\n ZHttpConfig,\n ZHttpContentType,\n ZHttpError,\n ZHttpNetworkCheck,\n ZHttpOptions,\n} from './types/z-http.types';\nimport { ZCacheService } from './z-cache.service';\nimport { ZIndexDbService } from './z-indexdb.service';\nimport { ZTranslateService } from './z-translate.service';\n\nconst Z_HTTP_DEFAULT_CONFIG: Required<ZHttpConfig> = {\n defaultCacheTime: 3 * 60 * 1000,\n networkCheckCacheTime: 10000,\n tokenKey: 'Z_TOKEN',\n userInfoKey: 'Z_USER_INFO',\n lastUrlKey: 'Z_LAST_URL',\n loginRoute: '/login',\n homeRoute: '/',\n};\n\n@Injectable()\nexport abstract class ZHttpAbstractService<TApiType extends string = string> {\n protected readonly http = inject(HttpClient);\n protected readonly router = inject(Router);\n protected readonly cacheService = ZCacheService;\n protected readonly translateService = inject(ZTranslateService);\n protected readonly indexDbService: ZIndexDbService;\n protected readonly config: Required<ZHttpConfig> = Z_HTTP_DEFAULT_CONFIG;\n\n private _networkCache: ZHttpNetworkCheck | null = null;\n\n public constructor() {\n this.indexDbService = new ZIndexDbService({\n dbName: 'ZHttpCache',\n defaultStore: 'HttpCache',\n stores: [{ name: 'HttpCache', encrypt: false }],\n });\n }\n\n protected abstract resolveBaseUrl(apiType?: TApiType): string;\n\n protected get<T, TParams extends object = object>(\n endpoint: string,\n options?: ZHttpOptions<TParams, TApiType>\n ): Observable<T> {\n const httpCall = (): Observable<T> => {\n const { headers, params } = this._buildRequest(options);\n const httpOptions = this._buildHttpOptions({ ...options, headers, params });\n const url = `${this.resolveBaseUrl(options?.api)}${endpoint}`;\n return this.http.get<T>(url, httpOptions) as Observable<T>;\n };\n\n return this._handleCacheAndRequest('GET', endpoint, httpCall, options);\n }\n\n protected post<T, TParams extends object = object>(\n endpoint: string,\n body: unknown,\n options?: ZHttpOptions<TParams, TApiType>\n ): Observable<T> {\n const httpCall = (): Observable<T> => {\n const { headers, body: transformedBody } = this._buildRequest(options, body);\n const httpOptions = this._buildHttpOptions({ ...options, headers });\n const url = `${this.resolveBaseUrl(options?.api)}${endpoint}`;\n return this.http.post<T>(url, transformedBody, httpOptions) as Observable<T>;\n };\n\n return this._handleCacheAndRequest('POST', endpoint, httpCall, options, body);\n }\n\n protected put<T, TParams extends object = object>(\n endpoint: string,\n body: unknown,\n options?: ZHttpOptions<TParams, TApiType>\n ): Observable<T> {\n const httpCall = (): Observable<T> => {\n const { headers, body: transformedBody } = this._buildRequest(options, body);\n const httpOptions = this._buildHttpOptions({ ...options, headers });\n const url = `${this.resolveBaseUrl(options?.api)}${endpoint}`;\n return this.http.put<T>(url, transformedBody, httpOptions) as Observable<T>;\n };\n\n return this._handleCacheAndRequest('PUT', endpoint, httpCall, options, body);\n }\n\n protected patch<T, TParams extends object = object>(\n endpoint: string,\n body: unknown,\n options?: ZHttpOptions<TParams, TApiType>\n ): Observable<T> {\n const httpCall = (): Observable<T> => {\n const { headers, body: transformedBody } = this._buildRequest(options, body);\n const httpOptions = this._buildHttpOptions({ ...options, headers });\n const url = `${this.resolveBaseUrl(options?.api)}${endpoint}`;\n return this.http.patch<T>(url, transformedBody, httpOptions) as Observable<T>;\n };\n\n return this._handleCacheAndRequest('PATCH', endpoint, httpCall, options, body);\n }\n\n protected delete<T, TParams extends object = object>(\n endpoint: string,\n body?: unknown,\n options?: ZHttpOptions<TParams, TApiType>\n ): Observable<T> {\n const httpCall = (): Observable<T> => {\n const { headers, body: transformedBody } = this._buildRequest(options, body);\n const httpOptions = this._buildHttpOptions({\n ...options,\n headers,\n body: transformedBody,\n });\n if ('transferCache' in httpOptions) {\n delete httpOptions['transferCache'];\n }\n const url = `${this.resolveBaseUrl(options?.api)}${endpoint}`;\n return this.http.delete<T>(url, httpOptions) as Observable<T>;\n };\n\n return this._handleCacheAndRequest('DELETE', endpoint, httpCall, options, body);\n }\n\n private _buildRequest(\n options?: ZHttpOptions<object, TApiType>,\n body?: unknown\n ): { headers: HttpHeaders; body?: unknown; params?: Record<string, string> } {\n let headers = new HttpHeaders().set('Accept', 'application/json');\n const contentType: ZHttpContentType = options?.contentType ?? 'json';\n let finalBody = body;\n let params: Record<string, string> | undefined;\n\n if (contentType === 'json') {\n headers = headers.set('Content-Type', 'application/json');\n if (body !== undefined && body !== null) {\n finalBody = JSON.stringify(body);\n }\n }\n\n if (contentType === 'urlencoded') {\n headers = headers.set('Content-Type', 'application/x-www-form-urlencoded');\n if (body && typeof body === 'object') {\n const urlParams = new URLSearchParams();\n Object.entries(body).forEach(([key, value]) => {\n urlParams.set(key, String(value));\n });\n finalBody = urlParams.toString();\n }\n }\n\n if (contentType === 'form-data') {\n if (body instanceof FormData) {\n finalBody = body;\n }\n if (!(body instanceof FormData) && body && typeof body === 'object') {\n const formData = new FormData();\n Object.entries(body).forEach(([key, value]) => {\n formData.append(key, value as string | Blob);\n });\n finalBody = formData;\n }\n }\n\n if (options?.headers && !(options.headers instanceof HttpHeaders)) {\n const headersObj = options.headers as Record<string, string | string[]>;\n Object.keys(headersObj).forEach(key => {\n const value = headersObj[key];\n headers = headers.set(key, Array.isArray(value) ? value.join(',') : value);\n });\n }\n\n const token = this.cacheService.get<string>(this.config.tokenKey);\n if (token && !options?.skipToken) {\n headers = headers.set('Authorization', `Bearer ${token}`);\n }\n\n if (options?.params && !(options.params instanceof Object.getPrototypeOf(URLSearchParams).constructor)) {\n const paramsObj = options.params as Record<string, unknown>;\n params = {};\n Object.keys(paramsObj).forEach(key => {\n const value = paramsObj[key];\n if (value !== undefined && value !== null) {\n params![key] = String(value);\n }\n });\n }\n\n return { headers, body: finalBody, params };\n }\n\n private _buildHttpOptions(options?: ZHttpOptions<object, TApiType>): Record<string, unknown> {\n const httpOptions: Record<string, unknown> = { ...options };\n delete httpOptions['enableCache'];\n delete httpOptions['timeCache'];\n delete httpOptions['contentType'];\n delete httpOptions['api'];\n delete httpOptions['skipToken'];\n delete httpOptions['skipErrorToast'];\n return httpOptions;\n }\n\n private _handleCacheAndRequest<T>(\n method: string,\n endpoint: string,\n httpCall: () => Observable<T>,\n options?: ZHttpOptions<object, TApiType>,\n body?: unknown\n ): Observable<T> {\n if (!options?.enableCache) {\n return this._executeHttpCall(httpCall, options, method, endpoint, body);\n }\n\n const cacheKey = this._generateCacheKey(method, endpoint, options, body);\n\n return from(this._getCachedData<T>(cacheKey)).pipe(\n switchMap(cachedData => {\n if (cachedData !== null) {\n return of(cachedData);\n }\n return this._executeHttpCall(httpCall, options, method, endpoint, body);\n }),\n catchError(() => this._executeHttpCall(httpCall, options, method, endpoint, body))\n );\n }\n\n private _executeHttpCall<T>(\n httpCall: () => Observable<T>,\n options?: ZHttpOptions<object, TApiType>,\n method?: string,\n endpoint?: string,\n body?: unknown\n ): Observable<T> {\n return this._detectNetworkStatus().pipe(\n switchMap(isOnline => {\n if (!isOnline) {\n const error: ZHttpError<TApiType> = {\n message: this.translateService.instant('i18n_z_ui_http_network_offline'),\n status: 0,\n };\n return throwError(() => error);\n }\n\n return httpCall().pipe(\n catchError(err => this._handleError(err, options, method, endpoint, body)),\n tap(data => {\n if (options?.enableCache && method && endpoint) {\n const cacheKey = this._generateCacheKey(method, endpoint, options, body);\n const ttl = options.timeCache ?? this.config.defaultCacheTime;\n this._cacheData(cacheKey, data, ttl).catch(console.warn);\n }\n })\n );\n })\n );\n }\n\n private _generateCacheKey(\n method: string,\n endpoint: string,\n options?: ZHttpOptions<object, TApiType>,\n body?: unknown\n ): string {\n const api = options?.api ?? 'default';\n const params = options?.params ? JSON.stringify(options.params) : '';\n const bodyStr = body ? JSON.stringify(body) : '';\n return `${method}_${api}_${endpoint}_${params}_${bodyStr}`;\n }\n\n private async _cacheData<T>(key: string, data: T, ttl: number): Promise<void> {\n const cacheEntry: ZHttpCacheEntry<T> = { data, timestamp: Date.now(), ttl };\n await this.indexDbService.set(key, cacheEntry, 'HttpCache');\n }\n\n private async _getCachedData<T>(key: string): Promise<T | null> {\n try {\n const cached = await this.indexDbService.get<ZHttpCacheEntry<T>>(key, undefined, 'HttpCache');\n if (!cached) {\n return null;\n }\n\n if (Date.now() - cached.timestamp > cached.ttl) {\n await this.indexDbService.delete(key, 'HttpCache');\n return null;\n }\n return cached.data;\n } catch {\n return null;\n }\n }\n\n private _detectNetworkStatus(): Observable<boolean> {\n const now = Date.now();\n if (this._networkCache && now - this._networkCache.time < this.config.networkCheckCacheTime) {\n return of(this._networkCache.isOnline);\n }\n\n if (!navigator.onLine) {\n this._networkCache = { time: now, isOnline: false };\n return of(false);\n }\n\n return this._checkNetworkWithRetry().pipe(\n map(isOnline => {\n this._networkCache = { time: Date.now(), isOnline };\n return isOnline;\n }),\n catchError(() => {\n this._networkCache = { time: Date.now(), isOnline: false };\n return of(false);\n })\n );\n }\n\n private _checkNetworkWithRetry(retries = 2): Observable<boolean> {\n return defer(() => this._performNetworkCheck()).pipe(\n catchError(() => {\n if (retries > 0) {\n return this._checkNetworkWithRetry(retries - 1);\n }\n return of(false);\n })\n );\n }\n\n private _performNetworkCheck(): Observable<boolean> {\n const controller = new AbortController();\n const timeoutId = setTimeout(() => controller.abort(), 3000);\n\n return from(fetch('data:,', { method: 'HEAD', signal: controller.signal })).pipe(\n tap(() => clearTimeout(timeoutId)),\n map(() => true),\n catchError(() => {\n clearTimeout(timeoutId);\n throw new Error('Network check failed');\n })\n );\n }\n\n private _handleError(\n error: Error,\n options?: ZHttpOptions<object, TApiType>,\n method?: string,\n endpoint?: string,\n body?: unknown\n ): Observable<never> {\n const statusCode = error instanceof HttpErrorResponse ? error.status : 500;\n const fullEndpoint = `${this.resolveBaseUrl(options?.api)}${endpoint}`;\n\n const httpError = this._buildErrorObject(error, statusCode, fullEndpoint, method, body, options);\n const localizedError = this._localizeError(httpError, statusCode);\n\n console.error('[ZHttp] Request failed:', {\n method,\n endpoint: fullEndpoint,\n status: statusCode,\n error: localizedError,\n });\n\n this._handleStatusCode(statusCode);\n\n return throwError(() => localizedError);\n }\n\n private _buildErrorObject(\n error: Error,\n statusCode: number,\n endpoint: string,\n method?: string,\n body?: unknown,\n options?: ZHttpOptions<object, TApiType>\n ): ZHttpError<TApiType> {\n const baseError: ZHttpError<TApiType> = { message: '', status: statusCode, endpoint, method, body, options };\n\n if (!(error instanceof HttpErrorResponse)) {\n return {\n ...baseError,\n error: error.message,\n message: error.message || this.translateService.instant('i18n_z_ui_http_error_default'),\n };\n }\n\n const errorBody = error.error;\n\n if (typeof errorBody?.message === 'string') {\n const message =\n errorBody.message === 'Failed to fetch'\n ? this.translateService.instant('i18n_z_ui_http_error_failed_to_fetch', { url: endpoint })\n : errorBody.message;\n return { ...baseError, error: errorBody, message };\n }\n\n if (Array.isArray(errorBody?.errors) && errorBody.errors.length > 0) {\n const message = errorBody.errors\n .map((err: unknown) => (typeof err === 'string' ? err : JSON.stringify(err)))\n .join(', ');\n return { ...baseError, error: errorBody, message };\n }\n\n if (\n typeof errorBody === 'object' &&\n errorBody !== null &&\n !Array.isArray(errorBody) &&\n Object.keys(errorBody).length > 0\n ) {\n return { ...baseError, error: errorBody, message: JSON.stringify(errorBody) };\n }\n\n if (typeof errorBody === 'string') {\n return { ...baseError, error: errorBody, message: errorBody };\n }\n\n return {\n ...baseError,\n error: error.message,\n message: error.message || this.translateService.instant('i18n_z_ui_http_error_default'),\n };\n }\n\n private _localizeError(error: ZHttpError<TApiType>, statusCode: number): ZHttpError<TApiType> {\n const localizedError = { ...error };\n\n const errorMessages: Record<number, string> = {\n 400: error.message || this.translateService.instant('i18n_z_ui_http_error_400'),\n 401: this._get401Message(),\n 403: this.translateService.instant('i18n_z_ui_http_error_403'),\n 404: this.translateService.instant('i18n_z_ui_http_error_404'),\n 500: this.translateService.instant('i18n_z_ui_http_error_500'),\n };\n\n if (errorMessages[statusCode]) {\n localizedError.message = errorMessages[statusCode];\n }\n\n return localizedError;\n }\n\n private _get401Message(): string {\n const userInfo = this.cacheService.get<{ timeExpired?: number }>(this.config.userInfoKey);\n const isExpired = userInfo?.timeExpired ? Date.now() >= userInfo.timeExpired : false;\n\n if (isExpired) {\n return this.translateService.instant('i18n_z_ui_http_error_401_expired');\n }\n return this.translateService.instant('i18n_z_ui_http_error_401_permission');\n }\n\n private _handleStatusCode(statusCode: number): void {\n if (statusCode !== 401) {\n return;\n }\n\n const userInfo = this.cacheService.get<{ timeExpired?: number }>(this.config.userInfoKey);\n const isExpired = userInfo?.timeExpired ? Date.now() >= userInfo.timeExpired : false;\n\n if (isExpired) {\n this.indexDbService.clear('HttpCache').catch(console.error);\n this.cacheService.deleteMultiple([this.config.tokenKey, this.config.userInfoKey]);\n this.router.navigate([this.config.loginRoute]).catch(console.error);\n return;\n }\n\n this.router.navigate([this.config.homeRoute]).catch(console.error);\n }\n}\n","import { Injectable } from '@angular/core';\nimport { BehaviorSubject, Observable, Subject } from 'rxjs';\n\ntype SubjectType = 'subject' | 'behavior';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class ZSubjectService {\n private readonly _subjects = new Map<string, Subject<unknown>>();\n private readonly _behaviorSubjects = new Map<string, BehaviorSubject<unknown>>();\n\n /**\n * Emit a value to a subject\n * @param key - Subject identifier\n * @param type - 'subject' for Subject, 'behavior' for BehaviorSubject\n * @param value - Value to emit\n */\n public emit<T>(key: string, type: SubjectType, value: T): void {\n if (type === 'behavior') {\n const existingSubject = this._behaviorSubjects.get(key) as BehaviorSubject<T> | undefined;\n if (existingSubject) {\n existingSubject.next(value);\n return;\n }\n\n const newSubject = new BehaviorSubject<T>(value);\n this._behaviorSubjects.set(key, newSubject as BehaviorSubject<unknown>);\n return;\n }\n\n const existingSubject = this._subjects.get(key) as Subject<T> | undefined;\n if (existingSubject) {\n existingSubject.next(value);\n return;\n }\n\n const newSubject = new Subject<T>();\n this._subjects.set(key, newSubject as Subject<unknown>);\n newSubject.next(value);\n }\n\n /**\n * Get an observable for a subject\n * @param key - Subject identifier\n * @param type - 'subject' for Subject, 'behavior' for BehaviorSubject\n * @param initialValue - Initial value for BehaviorSubject (required for new behavior subjects)\n */\n public on$<T>(key: string, type: SubjectType, initialValue?: T): Observable<T> {\n if (type === 'behavior') {\n const existingSubject = this._behaviorSubjects.get(key) as BehaviorSubject<T> | undefined;\n if (existingSubject) {\n return existingSubject.asObservable();\n }\n\n const newSubject = new BehaviorSubject<T>(initialValue as T);\n this._behaviorSubjects.set(key, newSubject as BehaviorSubject<unknown>);\n return newSubject.asObservable();\n }\n\n const existingSubject = this._subjects.get(key) as Subject<T> | undefined;\n if (existingSubject) {\n return existingSubject.asObservable();\n }\n\n const newSubject = new Subject<T>();\n this._subjects.set(key, newSubject as Subject<unknown>);\n return newSubject.asObservable();\n }\n\n /**\n * Get the current value of a BehaviorSubject\n * @param key - Subject identifier\n */\n public getValue<T>(key: string): T | undefined {\n const subject = this._behaviorSubjects.get(key);\n if (!subject) {\n return undefined;\n }\n return subject.getValue() as T;\n }\n\n /**\n * Complete and remove a subject\n * @param key - Subject identifier\n * @param type - 'subject' for Subject, 'behavior' for BehaviorSubject\n */\n public complete(key: string, type: SubjectType): void {\n if (type === 'behavior') {\n const subject = this._behaviorSubjects.get(key);\n if (!subject) {\n return;\n }\n subject.complete();\n this._behaviorSubjects.delete(key);\n return;\n }\n\n const subject = this._subjects.get(key);\n if (!subject) {\n return;\n }\n subject.complete();\n this._subjects.delete(key);\n }\n\n /**\n * Complete all subjects\n */\n public completeAll(): void {\n this._subjects.forEach(subject => subject.complete());\n this._behaviorSubjects.forEach(subject => subject.complete());\n this._subjects.clear();\n this._behaviorSubjects.clear();\n }\n\n /**\n * Check if a subject exists\n * @param key - Subject identifier\n * @param type - 'subject' for Subject, 'behavior' for BehaviorSubject\n */\n public has(key: string, type: SubjectType): boolean {\n if (type === 'behavior') {\n return this._behaviorSubjects.has(key);\n }\n return this._subjects.has(key);\n }\n}\n","import { InjectionToken } from '@angular/core';\n\nexport type ZThemeName = 'green' | 'orange' | 'violet' | 'neutral' | 'stone' | 'zinc' | 'gray' | 'slate' | 'hospital';\n\nexport interface ZThemeConfig {\n defaultTheme?: ZThemeName;\n defaultDarkMode?: boolean;\n}\n\nexport const Z_THEME_CONFIG = new InjectionToken<ZThemeConfig>('Z_THEME_CONFIG');\nexport const Z_DEFAULT_THEME: ZThemeName = 'neutral';\nexport const Z_THEME_CACHE_KEY = 'z-theme';\nexport const Z_DARK_MODE_CACHE_KEY = 'z-dark-mode';\n\nexport const Z_THEME_CSS_MAP: Record<ZThemeName, string> = {\n neutral: '',\n green: 'assets/css/themes/green.css',\n orange: 'assets/css/themes/orange.css',\n violet: 'assets/css/themes/violet.css',\n stone: 'assets/css/themes/stone.css',\n zinc: 'assets/css/themes/zinc.css',\n gray: 'assets/css/themes/gray.css',\n slate: 'assets/css/themes/slate.css',\n hospital: 'assets/css/themes/hospital.css',\n};\n","import { DOCUMENT, isPlatformBrowser } from '@angular/common';\nimport { effect, inject, Injectable, PLATFORM_ID, signal } from '@angular/core';\nimport {\n type ZThemeConfig,\n type ZThemeName,\n Z_DARK_MODE_CACHE_KEY,\n Z_DEFAULT_THEME,\n Z_THEME_CACHE_KEY,\n Z_THEME_CONFIG,\n Z_THEME_CSS_MAP,\n} from './types/z-theme.types';\nimport { ZCacheService } from './z-cache.service';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class ZThemeService {\n private readonly _document = inject(DOCUMENT);\n private readonly _platformId = inject(PLATFORM_ID);\n private readonly _config = inject(Z_THEME_CONFIG, { optional: true }) as ZThemeConfig | null;\n private readonly _isBrowser = isPlatformBrowser(this._platformId);\n\n private readonly _defaultTheme = this._config?.defaultTheme ?? Z_DEFAULT_THEME;\n private readonly _defaultDarkMode = this._config?.defaultDarkMode ?? false;\n\n private readonly _isDark = signal(this._getSavedDarkMode());\n private readonly _currentTheme = signal<ZThemeName>(this._getSavedTheme());\n private readonly _loadedThemes = new Set<ZThemeName>(['neutral']);\n\n public readonly isDark = this._isDark.asReadonly();\n public readonly currentTheme = this._currentTheme.asReadonly();\n\n constructor() {\n if (this._isBrowser) {\n this._initializeTheme();\n }\n\n effect(() => {\n const isDark = this._isDark();\n if (this._isBrowser) {\n ZCacheService.set(Z_DARK_MODE_CACHE_KEY, isDark);\n }\n });\n\n effect(() => {\n const theme = this._currentTheme();\n if (this._isBrowser) {\n ZCacheService.set(Z_THEME_CACHE_KEY, theme);\n }\n });\n }\n\n public setTheme(theme: ZThemeName): void {\n this._currentTheme.set(theme);\n\n if (this._loadedThemes.has(theme)) {\n this._document.documentElement.setAttribute('z-theme', theme);\n return;\n }\n\n if (!Z_THEME_CSS_MAP[theme]) {\n this._document.documentElement.setAttribute('z-theme', theme);\n return;\n }\n\n this._loadThemeCSS(theme, () => {\n this._document.documentElement.setAttribute('z-theme', theme);\n });\n }\n\n public toggleDarkMode(isDark: boolean): void {\n this._isDark.set(isDark);\n\n if (isDark) {\n this._document.documentElement.classList.add('dark');\n return;\n }\n\n this._document.documentElement.classList.remove('dark');\n }\n\n public preloadTheme(theme: ZThemeName): void {\n if (this._loadedThemes.has(theme) || !Z_THEME_CSS_MAP[theme]) {\n return;\n }\n\n this._loadThemeCSS(theme);\n }\n\n private _initializeTheme(): void {\n const savedTheme = this._currentTheme();\n const savedDarkMode = this._isDark();\n\n this.setTheme(savedTheme);\n if (savedDarkMode) {\n this.toggleDarkMode(savedDarkMode);\n }\n }\n\n private _getSavedTheme(): ZThemeName {\n if (!this._isBrowser) {\n return this._defaultTheme;\n }\n\n return ZCacheService.get<ZThemeName>(Z_THEME_CACHE_KEY) ?? this._defaultTheme;\n }\n\n private _getSavedDarkMode(): boolean {\n if (!this._isBrowser) {\n return this._defaultDarkMode;\n }\n return ZCacheService.get<boolean>(Z_DARK_MODE_CACHE_KEY) ?? this._defaultDarkMode;\n }\n\n private _loadThemeCSS(theme: ZThemeName, onLoad?: () => void): void {\n const cssPath = Z_THEME_CSS_MAP[theme];\n if (!cssPath) {\n onLoad?.();\n return;\n }\n\n const existingLink = this._document.querySelector(`link[data-theme=\"${theme}\"]`);\n if (existingLink) {\n this._loadedThemes.add(theme);\n onLoad?.();\n return;\n }\n\n const link = this._document.createElement('link');\n link.rel = 'stylesheet';\n link.href = cssPath;\n link.setAttribute('data-theme', theme);\n\n link.onload = (): void => {\n this._loadedThemes.add(theme);\n onLoad?.();\n };\n\n link.onerror = (): void => {\n console.error(`Failed to load theme \"${theme}\" from ${cssPath}`);\n onLoad?.();\n };\n\n this._document.head.appendChild(link);\n }\n}\n","/**\n * Services index\n */\n\nexport { ZCacheService } from './z-cache.service';\nexport { ZHttpAbstractService } from './z-http-abstract.service';\nexport { ZIndexDbService } from './z-indexdb.service';\nexport { ZSubjectService } from './z-subject.service';\nexport { ZThemeService } from './z-theme.service';\nexport { ZTranslateService } from './z-translate.service';\nexport * from './types';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"shival99-z-ui-services.mjs","sources":["../../../../libs/core-ui/services/z-cache.service.ts","../../../../libs/core-ui/services/z-indexdb.service.ts","../../../../libs/core-ui/services/z-translate.service.ts","../../../../libs/core-ui/services/z-http-abstract.service.ts","../../../../libs/core-ui/services/z-subject.service.ts","../../../../libs/core-ui/services/types/z-theme.types.ts","../../../../libs/core-ui/services/z-theme.service.ts","../../../../libs/core-ui/services/shival99-z-ui-services.ts"],"sourcesContent":["import type { ZCacheConfig } from './types/z-cache.types';\n\nconst Z_CACHE_DEFAULT_PREFIX = 'z_';\nexport class ZCacheService {\n private static _prefix = Z_CACHE_DEFAULT_PREFIX;\n private static _encrypt = true;\n\n public static configure(config: ZCacheConfig): void {\n if (config.prefix) {\n ZCacheService._prefix = config.prefix;\n }\n if (config.encrypt !== undefined) {\n ZCacheService._encrypt = config.encrypt;\n }\n }\n\n private static _encode(data: unknown): string {\n const payload = { __z: true, __d: data };\n return btoa(encodeURIComponent(JSON.stringify(payload)));\n }\n\n private static _decode<T>(data: string): T | null {\n try {\n const decoded = JSON.parse(decodeURIComponent(atob(data)));\n if (!decoded.__z) {\n return null;\n }\n return decoded.__d as T;\n } catch {\n return null;\n }\n }\n\n private static _getFullKey(key: string, encrypt: boolean): string {\n const prefixedKey = `${ZCacheService._prefix}${key}`;\n return encrypt ? ZCacheService._encode(prefixedKey) : prefixedKey;\n }\n\n private static _safeOperation<T>(operation: () => T, fallback: T): T {\n try {\n return operation();\n } catch (error) {\n console.error('[ZCache] Operation error:', error);\n return fallback;\n }\n }\n\n /**\n * Get a value from cache\n * @param key - Cache key\n * @param defaultValue - Default value if not found\n * @param encrypt - Whether to use encryption (default: service config)\n */\n public static get<T>(key: string, defaultValue?: T, encrypt = ZCacheService._encrypt): T | undefined {\n return ZCacheService._safeOperation(() => {\n const _key = ZCacheService._getFullKey(key, encrypt);\n const result = localStorage.getItem(_key);\n\n if (!result) {\n return defaultValue;\n }\n\n const data = encrypt ? ZCacheService._decode<T>(result) : (JSON.parse(result) as T);\n return data ?? defaultValue;\n }, defaultValue);\n }\n\n /**\n * Set a value in cache\n * @param key - Cache key\n * @param data - Data to store\n * @param encrypt - Whether to use encryption\n */\n public static set<T>(key: string, data: T, encrypt = ZCacheService._encrypt): boolean {\n return ZCacheService._safeOperation(() => {\n const _key = ZCacheService._getFullKey(key, encrypt);\n const _value = encrypt ? ZCacheService._encode(data) : JSON.stringify(data);\n localStorage.setItem(_key, _value);\n return true;\n }, false);\n }\n\n /**\n * Delete a key from cache\n * @param key - Cache key\n * @param encrypt - Whether key is encrypted\n */\n public static delete(key: string, encrypt = ZCacheService._encrypt): boolean {\n return ZCacheService._safeOperation(() => {\n const _key = ZCacheService._getFullKey(key, encrypt);\n localStorage.removeItem(_key);\n return true;\n }, false);\n }\n\n /**\n * Delete multiple keys from cache\n * @param keys - Array of cache keys\n * @param encrypt - Whether keys are encrypted\n */\n public static deleteMultiple(keys: string[], encrypt = ZCacheService._encrypt): boolean {\n return ZCacheService._safeOperation(() => {\n keys.forEach(key => {\n const _key = ZCacheService._getFullKey(key, encrypt);\n localStorage.removeItem(_key);\n });\n return true;\n }, false);\n }\n\n /**\n * Clear all cache with the configured prefix\n */\n public static clear(): boolean {\n return ZCacheService._safeOperation(() => {\n const keysToRemove: string[] = [];\n const prefixEncoded = ZCacheService._encode(ZCacheService._prefix);\n\n for (let i = 0; i < localStorage.length; i++) {\n const key = localStorage.key(i);\n if (key?.startsWith(ZCacheService._prefix) || key?.startsWith(prefixEncoded)) {\n keysToRemove.push(key);\n }\n }\n\n keysToRemove.forEach(key => localStorage.removeItem(key));\n return true;\n }, false);\n }\n\n /**\n * Check if a key exists in cache\n * @param key - Cache key\n * @param encrypt - Whether key is encrypted\n */\n public static has(key: string, encrypt = ZCacheService._encrypt): boolean {\n return ZCacheService._safeOperation(() => {\n const _key = ZCacheService._getFullKey(key, encrypt);\n return localStorage.getItem(_key) !== null;\n }, false);\n }\n\n /**\n * Get all keys with the configured prefix\n */\n public static keys(): string[] {\n return ZCacheService._safeOperation(() => {\n const result: string[] = [];\n const prefixEncoded = ZCacheService._encode(ZCacheService._prefix);\n\n for (let i = 0; i < localStorage.length; i++) {\n const key = localStorage.key(i);\n if (key?.startsWith(ZCacheService._prefix)) {\n result.push(key.slice(ZCacheService._prefix.length));\n } else if (key?.startsWith(prefixEncoded)) {\n const decoded = ZCacheService._decode<string>(key);\n if (decoded) {\n result.push(decoded.slice(ZCacheService._prefix.length));\n }\n }\n }\n\n return result;\n }, []);\n }\n}\n","import type { ZIndexDbConfig, ZIndexDbStoreConfig } from './types/z-indexdb.types';\n\nconst Z_INDEXDB_DEFAULT_CONFIG: Required<Pick<ZIndexDbConfig, 'dbName' | 'version' | 'mode' | 'defaultStore'>> = {\n dbName: 'ZDatabase',\n version: 1,\n mode: 'readwrite',\n defaultStore: 'ZStore',\n};\n\nconst Z_INDEXDB_BATCH_SIZE = 100;\n\nexport class ZIndexDbService {\n private _db: IDBDatabase | null = null;\n private _dbName: string;\n private _version: number;\n private _mode: IDBTransactionMode;\n private _dbReady: Promise<void>;\n private _stores: Map<string, ZIndexDbStoreConfig> = new Map();\n private _defaultStoreName: string;\n private _globalProtectedKeys: string[];\n\n public constructor(config: ZIndexDbConfig = {}) {\n this._dbName = config.dbName ?? Z_INDEXDB_DEFAULT_CONFIG.dbName;\n this._version = config.version ?? Z_INDEXDB_DEFAULT_CONFIG.version;\n this._mode = config.mode ?? Z_INDEXDB_DEFAULT_CONFIG.mode;\n this._defaultStoreName = config.defaultStore ?? Z_INDEXDB_DEFAULT_CONFIG.defaultStore;\n this._globalProtectedKeys = config.protectedKeys ?? [];\n\n if (config.stores?.length) {\n config.stores.forEach(store => this._stores.set(store.name, store));\n }\n if (!this._stores.has(this._defaultStoreName)) {\n this._stores.set(this._defaultStoreName, { name: this._defaultStoreName, encrypt: true });\n }\n\n this._dbReady = this._initDb();\n }\n\n private _getStoreConfig(storeName?: string): ZIndexDbStoreConfig {\n const name = storeName ?? this._defaultStoreName;\n return this._stores.get(name) ?? { name, encrypt: true };\n }\n\n private _encrypt(data: unknown): string {\n const payload = {\n __z: true,\n __t: typeof data,\n __d: data,\n };\n return btoa(encodeURIComponent(JSON.stringify(payload)));\n }\n\n private _decrypt<T>(data: string): T | null {\n try {\n const decoded = JSON.parse(decodeURIComponent(atob(data)));\n if (!decoded.__z) {\n return null;\n }\n return decoded.__d as T;\n } catch {\n return null;\n }\n }\n\n private _closeConnection(): void {\n if (this._db) {\n this._db.close();\n this._db = null;\n }\n }\n\n private async _reconnect(): Promise<void> {\n console.warn('[ZIndexDb] Reconnecting...');\n this._closeConnection();\n this._dbReady = this._initDb();\n await this._dbReady;\n }\n\n private async _withRetry<T>(operation: () => Promise<T>, retries = 3): Promise<T> {\n let lastError: unknown;\n\n for (let i = 0; i < retries; i++) {\n try {\n return await operation();\n } catch (error) {\n lastError = error;\n if (error instanceof Error && error.name === 'InvalidStateError') {\n await this._reconnect();\n }\n await new Promise(resolve => setTimeout(resolve, Math.pow(2, i) * 100));\n }\n }\n\n throw lastError;\n }\n\n private async _initDb(): Promise<void> {\n if (this._db) {\n return;\n }\n\n return new Promise((resolve, reject) => {\n try {\n const request = indexedDB.open(this._dbName, this._version);\n\n request.onupgradeneeded = event => {\n const db = (event.target as IDBOpenDBRequest).result;\n this._stores.forEach((_, storeName) => {\n if (!db.objectStoreNames.contains(storeName)) {\n db.createObjectStore(storeName);\n }\n });\n };\n\n request.onsuccess = event => {\n this._db = (event.target as IDBOpenDBRequest).result;\n this._db.onerror = e => console.error('[ZIndexDb] Error:', (e.target as IDBRequest).error);\n this._db.onclose = () => {\n console.warn('[ZIndexDb] Connection closed unexpectedly');\n this._db = null;\n };\n resolve();\n };\n\n request.onerror = event => {\n console.error('[ZIndexDb] Open error:', (event.target as IDBOpenDBRequest).error);\n reject((event.target as IDBOpenDBRequest).error);\n };\n } catch (error) {\n reject(error);\n }\n });\n }\n\n /**\n * Get a value from the store\n * @param key - The key to retrieve\n * @param defaultValue - Default value if key not found\n * @param storeName - Optional store name (uses default if not specified)\n */\n public async get<T>(key: string, defaultValue?: T, storeName?: string): Promise<T | undefined> {\n const storeConfig = this._getStoreConfig(storeName);\n\n return this._withRetry(async () => {\n await this._dbReady;\n\n if (!this._db) {\n await this._reconnect();\n if (!this._db) {\n return defaultValue;\n }\n }\n\n const _key = storeConfig.encrypt !== false ? this._encrypt(key) : key;\n\n return new Promise<T | undefined>(resolve => {\n try {\n const transaction = this._db!.transaction([storeConfig.name], this._mode);\n const store = transaction.objectStore(storeConfig.name);\n const request = store.get(_key);\n\n request.onsuccess = () => {\n try {\n const { result } = request;\n if (!result) {\n resolve(defaultValue);\n return;\n }\n const decrypted = storeConfig.encrypt !== false ? this._decrypt<T>(result) : result;\n resolve(decrypted ?? defaultValue);\n } catch {\n resolve(defaultValue);\n }\n };\n\n request.onerror = () => resolve(defaultValue);\n transaction.onerror = () => resolve(defaultValue);\n } catch {\n resolve(defaultValue);\n }\n });\n });\n }\n\n /**\n * Set a value in the store\n * @param key - The key to set\n * @param value - The value to store\n * @param storeName - Optional store name\n */\n public async set<T>(key: string, value: T, storeName?: string): Promise<void> {\n const storeConfig = this._getStoreConfig(storeName);\n\n return this._withRetry(async () => {\n await this._dbReady;\n\n if (!this._db) {\n await this._reconnect();\n if (!this._db) {\n throw new Error('Database not initialized');\n }\n }\n\n const _key = storeConfig.encrypt !== false ? this._encrypt(key) : key;\n const _value = storeConfig.encrypt !== false ? this._encrypt(value) : value;\n\n return new Promise<void>((resolve, reject) => {\n try {\n const transaction = this._db!.transaction([storeConfig.name], 'readwrite');\n const store = transaction.objectStore(storeConfig.name);\n const request = store.put(_value, _key);\n\n request.onerror = () => reject(request.error);\n transaction.oncomplete = () => resolve();\n transaction.onerror = () => reject(transaction.error);\n } catch (error) {\n reject(error);\n }\n });\n });\n }\n\n /**\n * Delete a key from the store\n * @param key - Key or array of keys to delete\n * @param storeName - Optional store name\n */\n public async delete(key: string | string[], storeName?: string): Promise<void> {\n const storeConfig = this._getStoreConfig(storeName);\n\n return this._withRetry(async () => {\n await this._dbReady;\n\n if (!this._db) {\n await this._reconnect();\n if (!this._db) {\n throw new Error('Database not initialized');\n }\n }\n\n const keys = Array.isArray(key) ? key : [key];\n\n return new Promise<void>((resolve, reject) => {\n try {\n const transaction = this._db!.transaction([storeConfig.name], 'readwrite');\n const store = transaction.objectStore(storeConfig.name);\n\n keys.forEach(k => {\n const _key = storeConfig.encrypt !== false ? this._encrypt(k) : k;\n store.delete(_key);\n });\n\n transaction.oncomplete = () => resolve();\n transaction.onerror = () => reject(transaction.error);\n } catch (error) {\n reject(error);\n }\n });\n });\n }\n\n /**\n * Clear all data from a store (respecting protected keys)\n * @param storeName - Optional store name\n */\n public async clear(storeName?: string): Promise<void> {\n const storeConfig = this._getStoreConfig(storeName);\n const protectedKeys = [...this._globalProtectedKeys, ...(storeConfig.protectedKeys ?? [])];\n\n return this._withRetry(async () => {\n await this._dbReady;\n\n if (!this._db) {\n await this._reconnect();\n if (!this._db) {\n throw new Error('Database not initialized');\n }\n }\n\n if (protectedKeys.length === 0) {\n return new Promise<void>((resolve, reject) => {\n const transaction = this._db!.transaction([storeConfig.name], 'readwrite');\n const store = transaction.objectStore(storeConfig.name);\n const request = store.clear();\n\n request.onsuccess = () => resolve();\n request.onerror = () => reject(request.error);\n });\n }\n\n return new Promise<void>((resolve, reject) => {\n try {\n const transaction = this._db!.transaction([storeConfig.name], 'readwrite');\n const store = transaction.objectStore(storeConfig.name);\n const keyRequest = store.getAllKeys();\n\n keyRequest.onsuccess = () => {\n const allKeys = keyRequest.result as string[];\n const encryptedProtected = protectedKeys.map(k => this._encrypt(k));\n\n allKeys.forEach(k => {\n if (!encryptedProtected.includes(k) && !protectedKeys.includes(k)) {\n try {\n const decrypted = this._decrypt<string>(k);\n if (!protectedKeys.includes(decrypted ?? '')) {\n store.delete(k);\n }\n } catch {\n store.delete(k);\n }\n }\n });\n };\n\n keyRequest.onerror = () => reject(keyRequest.error);\n transaction.oncomplete = () => resolve();\n transaction.onerror = () => reject(transaction.error);\n } catch (error) {\n reject(error);\n }\n });\n });\n }\n\n /**\n * Get all items from a store\n * @param storeName - Optional store name\n */\n public async getAll<T = unknown>(storeName?: string): Promise<Record<string, T>> {\n const storeConfig = this._getStoreConfig(storeName);\n\n return this._withRetry(async () => {\n await this._dbReady;\n\n if (!this._db) {\n await this._reconnect();\n if (!this._db) {\n return {};\n }\n }\n\n return new Promise<Record<string, T>>(resolve => {\n try {\n const transaction = this._db!.transaction([storeConfig.name], this._mode);\n const store = transaction.objectStore(storeConfig.name);\n const keysRequest = store.getAllKeys();\n const valuesRequest = store.getAll();\n const results: Record<string, T> = {};\n\n keysRequest.onsuccess = () => {\n const keys = keysRequest.result;\n const values = valuesRequest.result;\n\n keys.forEach((key, index) => {\n if (typeof key === 'string') {\n try {\n const _key = storeConfig.encrypt !== false ? this._decrypt<string>(key) : key;\n const _value = storeConfig.encrypt !== false ? this._decrypt<T>(values[index]) : values[index];\n if (_key && _value !== null) {\n results[_key] = _value;\n }\n } catch {\n // Skip invalid entries\n }\n }\n });\n\n resolve(results);\n };\n\n keysRequest.onerror = () => resolve({});\n transaction.onerror = () => resolve({});\n } catch {\n resolve({});\n }\n });\n });\n }\n\n /**\n * Set multiple items at once\n * @param items - Object with key-value pairs\n * @param storeName - Optional store name\n */\n public async setMultiple<T>(items: Record<string, T>, storeName?: string): Promise<void> {\n const storeConfig = this._getStoreConfig(storeName);\n const entries = Object.entries(items);\n\n for (let i = 0; i < entries.length; i += Z_INDEXDB_BATCH_SIZE) {\n const batch = entries.slice(i, i + Z_INDEXDB_BATCH_SIZE);\n\n await this._withRetry(async () => {\n await this._dbReady;\n\n if (!this._db) {\n await this._reconnect();\n if (!this._db) {\n throw new Error('Database not initialized');\n }\n }\n\n return new Promise<void>((resolve, reject) => {\n const transaction = this._db!.transaction([storeConfig.name], 'readwrite');\n const store = transaction.objectStore(storeConfig.name);\n\n batch.forEach(([key, value]) => {\n const _key = storeConfig.encrypt !== false ? this._encrypt(key) : key;\n const _value = storeConfig.encrypt !== false ? this._encrypt(value) : value;\n store.put(_value, _key);\n });\n\n transaction.oncomplete = () => resolve();\n transaction.onerror = () => reject(transaction.error);\n });\n });\n }\n }\n\n /**\n * Get the list of available store names\n */\n public getStoreNames(): string[] {\n return Array.from(this._stores.keys());\n }\n\n /**\n * Check if a store exists\n * @param storeName - Store name to check\n */\n public hasStore(storeName: string): boolean {\n return this._stores.has(storeName);\n }\n\n /**\n * Add a new store (requires database version upgrade)\n * Note: This will cause database reconnection\n * @param config - Store configuration\n */\n public async addStore(config: ZIndexDbStoreConfig): Promise<void> {\n if (this._stores.has(config.name)) {\n return;\n }\n\n this._stores.set(config.name, config);\n this._version += 1;\n this._closeConnection();\n this._dbReady = this._initDb();\n await this._dbReady;\n }\n}\n","import { inject, Injectable, signal } from '@angular/core';\nimport { TranslateService, TranslationObject } from '@ngx-translate/core';\nimport { firstValueFrom, Observable } from 'rxjs';\nimport { ZCacheService } from './z-cache.service';\n\nconst LANG_CACHE_KEY = 'Z_LANGUAGE';\nconst DEFAULT_LANG = 'vi';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class ZTranslateService {\n private readonly _translate = inject(TranslateService);\n\n public readonly currentLang = signal<string>(DEFAULT_LANG);\n public readonly availableLangs = signal<string[]>(['vi', 'en']);\n\n public constructor() {\n this._initialize();\n }\n\n private _initialize(): void {\n const savedLang = ZCacheService.get<string>(LANG_CACHE_KEY) ?? DEFAULT_LANG;\n this._translate.setFallbackLang(DEFAULT_LANG);\n this._translate.use(savedLang);\n this.currentLang.set(savedLang);\n }\n\n /**\n * Change the current language\n * @param lang - Language code\n */\n public use(lang: string): void {\n this._translate.use(lang);\n ZCacheService.set(LANG_CACHE_KEY, lang);\n this.currentLang.set(lang);\n }\n\n /**\n * Get the current language code\n */\n public getLang(): string {\n return this._translate.getCurrentLang() ?? DEFAULT_LANG;\n }\n\n /**\n * Get translation synchronously (returns key if not found)\n * @param key - Translation key\n * @param params - Interpolation parameters\n */\n public instant(key: string, params?: Record<string, unknown>): string {\n if (!key) {\n return '';\n }\n return this._translate.instant(key, params);\n }\n\n /**\n * Get translation asynchronously\n * @param key - Translation key\n * @param params - Interpolation parameters\n */\n public async get(key: string, params?: Record<string, unknown>): Promise<string> {\n if (!key) {\n return '';\n }\n return firstValueFrom(this._translate.get(key, params));\n }\n\n /**\n * Get translation as observable\n * @param key - Translation key\n * @param params - Interpolation parameters\n */\n public get$(key: string, params?: Record<string, unknown>): Observable<string> {\n return this._translate.get(key, params);\n }\n\n /**\n * Stream translations (re-emits on language change)\n * @param key - Translation key\n * @param params - Interpolation parameters\n */\n public stream$(key: string, params?: Record<string, unknown>): Observable<string> {\n return this._translate.stream(key, params);\n }\n\n /**\n * Get multiple translations at once\n * @param keys - Array of translation keys\n * @param params - Interpolation parameters (applied to all)\n */\n public async getMany(keys: string[], params?: Record<string, unknown>): Promise<Record<string, string>> {\n const results: Record<string, string> = {};\n await Promise.all(\n keys.map(async key => {\n results[key] = await this.get(key, params);\n })\n );\n return results;\n }\n\n /**\n * Check if a translation key exists\n * @param key - Translation key\n */\n public has(key: string): boolean {\n const translation = this._translate.instant(key);\n return translation !== key;\n }\n\n /**\n * Add translations dynamically\n * @param lang - Language code\n * @param translations - Translation object\n * @param shouldMerge - Whether to merge with existing translations\n */\n public setTranslation(lang: string, translations: TranslationObject, shouldMerge = true): void {\n this._translate.setTranslation(lang, translations, shouldMerge);\n }\n\n /**\n * Get the underlying TranslateService for advanced usage\n */\n public getNgxTranslate(): TranslateService {\n return this._translate;\n }\n}\n","import { HttpClient, HttpErrorResponse, HttpHeaders } from '@angular/common/http';\nimport { inject, Injectable } from '@angular/core';\nimport { Router } from '@angular/router';\nimport { catchError, defer, from, map, Observable, of, switchMap, tap, throwError } from 'rxjs';\nimport type {\n ZHttpCacheEntry,\n ZHttpConfig,\n ZHttpContentType,\n ZHttpError,\n ZHttpNetworkCheck,\n ZHttpOptions,\n} from './types/z-http.types';\nimport { ZCacheService } from './z-cache.service';\nimport { ZIndexDbService } from './z-indexdb.service';\nimport { ZTranslateService } from './z-translate.service';\n\nconst Z_HTTP_DEFAULT_CONFIG: Required<ZHttpConfig> = {\n defaultCacheTime: 3 * 60 * 1000,\n networkCheckCacheTime: 10000,\n tokenKey: 'Z_TOKEN',\n userInfoKey: 'Z_USER_INFO',\n lastUrlKey: 'Z_LAST_URL',\n loginRoute: '/login',\n homeRoute: '/',\n};\n\n@Injectable()\nexport abstract class ZHttpAbstractService<TApiType extends string = string> {\n protected readonly http = inject(HttpClient);\n protected readonly router = inject(Router);\n protected readonly cacheService = ZCacheService;\n protected readonly translateService = inject(ZTranslateService);\n protected readonly indexDbService: ZIndexDbService;\n protected readonly config: Required<ZHttpConfig> = Z_HTTP_DEFAULT_CONFIG;\n\n private _networkCache: ZHttpNetworkCheck | null = null;\n\n public constructor() {\n this.indexDbService = new ZIndexDbService({\n dbName: 'ZHttpCache',\n defaultStore: 'HttpCache',\n stores: [{ name: 'HttpCache', encrypt: false }],\n });\n }\n\n protected abstract resolveBaseUrl(apiType?: TApiType): string;\n\n protected get<T, TParams extends object = object>(\n endpoint: string,\n options?: ZHttpOptions<TParams, TApiType>\n ): Observable<T> {\n const httpCall = (): Observable<T> => {\n const { headers, params } = this._buildRequest(options);\n const httpOptions = this._buildHttpOptions({ ...options, headers, params });\n const url = `${this.resolveBaseUrl(options?.api)}${endpoint}`;\n return this.http.get<T>(url, httpOptions) as Observable<T>;\n };\n\n return this._handleCacheAndRequest('GET', endpoint, httpCall, options);\n }\n\n protected post<T, TParams extends object = object>(\n endpoint: string,\n body: unknown,\n options?: ZHttpOptions<TParams, TApiType>\n ): Observable<T> {\n const httpCall = (): Observable<T> => {\n const { headers, body: transformedBody } = this._buildRequest(options, body);\n const httpOptions = this._buildHttpOptions({ ...options, headers });\n const url = `${this.resolveBaseUrl(options?.api)}${endpoint}`;\n return this.http.post<T>(url, transformedBody, httpOptions) as Observable<T>;\n };\n\n return this._handleCacheAndRequest('POST', endpoint, httpCall, options, body);\n }\n\n protected put<T, TParams extends object = object>(\n endpoint: string,\n body: unknown,\n options?: ZHttpOptions<TParams, TApiType>\n ): Observable<T> {\n const httpCall = (): Observable<T> => {\n const { headers, body: transformedBody } = this._buildRequest(options, body);\n const httpOptions = this._buildHttpOptions({ ...options, headers });\n const url = `${this.resolveBaseUrl(options?.api)}${endpoint}`;\n return this.http.put<T>(url, transformedBody, httpOptions) as Observable<T>;\n };\n\n return this._handleCacheAndRequest('PUT', endpoint, httpCall, options, body);\n }\n\n protected patch<T, TParams extends object = object>(\n endpoint: string,\n body: unknown,\n options?: ZHttpOptions<TParams, TApiType>\n ): Observable<T> {\n const httpCall = (): Observable<T> => {\n const { headers, body: transformedBody } = this._buildRequest(options, body);\n const httpOptions = this._buildHttpOptions({ ...options, headers });\n const url = `${this.resolveBaseUrl(options?.api)}${endpoint}`;\n return this.http.patch<T>(url, transformedBody, httpOptions) as Observable<T>;\n };\n\n return this._handleCacheAndRequest('PATCH', endpoint, httpCall, options, body);\n }\n\n protected delete<T, TParams extends object = object>(\n endpoint: string,\n body?: unknown,\n options?: ZHttpOptions<TParams, TApiType>\n ): Observable<T> {\n const httpCall = (): Observable<T> => {\n const { headers, body: transformedBody } = this._buildRequest(options, body);\n const httpOptions = this._buildHttpOptions({\n ...options,\n headers,\n body: transformedBody,\n });\n if ('transferCache' in httpOptions) {\n delete httpOptions['transferCache'];\n }\n const url = `${this.resolveBaseUrl(options?.api)}${endpoint}`;\n return this.http.delete<T>(url, httpOptions) as Observable<T>;\n };\n\n return this._handleCacheAndRequest('DELETE', endpoint, httpCall, options, body);\n }\n\n private _buildRequest(\n options?: ZHttpOptions<object, TApiType>,\n body?: unknown\n ): { headers: HttpHeaders; body?: unknown; params?: Record<string, string> } {\n let headers = new HttpHeaders().set('Accept', 'application/json');\n const contentType: ZHttpContentType = options?.contentType ?? 'json';\n let finalBody = body;\n let params: Record<string, string> | undefined;\n\n if (contentType === 'json') {\n headers = headers.set('Content-Type', 'application/json');\n if (body !== undefined && body !== null) {\n finalBody = JSON.stringify(body);\n }\n }\n\n if (contentType === 'urlencoded') {\n headers = headers.set('Content-Type', 'application/x-www-form-urlencoded');\n if (body && typeof body === 'object') {\n const urlParams = new URLSearchParams();\n Object.entries(body).forEach(([key, value]) => {\n urlParams.set(key, String(value));\n });\n finalBody = urlParams.toString();\n }\n }\n\n if (contentType === 'form-data') {\n if (body instanceof FormData) {\n finalBody = body;\n }\n if (!(body instanceof FormData) && body && typeof body === 'object') {\n const formData = new FormData();\n Object.entries(body).forEach(([key, value]) => {\n formData.append(key, value as string | Blob);\n });\n finalBody = formData;\n }\n }\n\n if (options?.headers && !(options.headers instanceof HttpHeaders)) {\n const headersObj = options.headers as Record<string, string | string[]>;\n Object.keys(headersObj).forEach(key => {\n const value = headersObj[key];\n headers = headers.set(key, Array.isArray(value) ? value.join(',') : value);\n });\n }\n\n const token = this.cacheService.get<string>(this.config.tokenKey);\n if (token && !options?.skipToken) {\n headers = headers.set('Authorization', `Bearer ${token}`);\n }\n\n if (options?.params && !(options.params instanceof Object.getPrototypeOf(URLSearchParams).constructor)) {\n const paramsObj = options.params as Record<string, unknown>;\n params = {};\n Object.keys(paramsObj).forEach(key => {\n const value = paramsObj[key];\n if (value !== undefined && value !== null) {\n params![key] = String(value);\n }\n });\n }\n\n return { headers, body: finalBody, params };\n }\n\n private _buildHttpOptions(options?: ZHttpOptions<object, TApiType>): Record<string, unknown> {\n const httpOptions: Record<string, unknown> = { ...options };\n delete httpOptions['enableCache'];\n delete httpOptions['timeCache'];\n delete httpOptions['contentType'];\n delete httpOptions['api'];\n delete httpOptions['skipToken'];\n delete httpOptions['skipErrorToast'];\n return httpOptions;\n }\n\n private _handleCacheAndRequest<T>(\n method: string,\n endpoint: string,\n httpCall: () => Observable<T>,\n options?: ZHttpOptions<object, TApiType>,\n body?: unknown\n ): Observable<T> {\n if (!options?.enableCache) {\n return this._executeHttpCall(httpCall, options, method, endpoint, body);\n }\n\n const cacheKey = this._generateCacheKey(method, endpoint, options, body);\n\n return from(this._getCachedData<T>(cacheKey)).pipe(\n switchMap(cachedData => {\n if (cachedData !== null) {\n return of(cachedData);\n }\n return this._executeHttpCall(httpCall, options, method, endpoint, body);\n }),\n catchError(() => this._executeHttpCall(httpCall, options, method, endpoint, body))\n );\n }\n\n private _executeHttpCall<T>(\n httpCall: () => Observable<T>,\n options?: ZHttpOptions<object, TApiType>,\n method?: string,\n endpoint?: string,\n body?: unknown\n ): Observable<T> {\n return this._detectNetworkStatus().pipe(\n switchMap(isOnline => {\n if (!isOnline) {\n const error: ZHttpError<TApiType> = {\n message: this.translateService.instant('i18n_z_ui_http_network_offline'),\n status: 0,\n };\n return throwError(() => error);\n }\n\n return httpCall().pipe(\n catchError(err => this._handleError(err, options, method, endpoint, body)),\n tap(data => {\n if (options?.enableCache && method && endpoint) {\n const cacheKey = this._generateCacheKey(method, endpoint, options, body);\n const ttl = options.timeCache ?? this.config.defaultCacheTime;\n this._cacheData(cacheKey, data, ttl).catch(console.warn);\n }\n })\n );\n })\n );\n }\n\n private _generateCacheKey(\n method: string,\n endpoint: string,\n options?: ZHttpOptions<object, TApiType>,\n body?: unknown\n ): string {\n const api = options?.api ?? 'default';\n const params = options?.params ? JSON.stringify(options.params) : '';\n const bodyStr = body ? JSON.stringify(body) : '';\n return `${method}_${api}_${endpoint}_${params}_${bodyStr}`;\n }\n\n private async _cacheData<T>(key: string, data: T, ttl: number): Promise<void> {\n const cacheEntry: ZHttpCacheEntry<T> = { data, timestamp: Date.now(), ttl };\n await this.indexDbService.set(key, cacheEntry, 'HttpCache');\n }\n\n private async _getCachedData<T>(key: string): Promise<T | null> {\n try {\n const cached = await this.indexDbService.get<ZHttpCacheEntry<T>>(key, undefined, 'HttpCache');\n if (!cached) {\n return null;\n }\n\n if (Date.now() - cached.timestamp > cached.ttl) {\n await this.indexDbService.delete(key, 'HttpCache');\n return null;\n }\n return cached.data;\n } catch {\n return null;\n }\n }\n\n private _detectNetworkStatus(): Observable<boolean> {\n const now = Date.now();\n if (this._networkCache && now - this._networkCache.time < this.config.networkCheckCacheTime) {\n return of(this._networkCache.isOnline);\n }\n\n if (!navigator.onLine) {\n this._networkCache = { time: now, isOnline: false };\n return of(false);\n }\n\n return this._checkNetworkWithRetry().pipe(\n map(isOnline => {\n this._networkCache = { time: Date.now(), isOnline };\n return isOnline;\n }),\n catchError(() => {\n this._networkCache = { time: Date.now(), isOnline: false };\n return of(false);\n })\n );\n }\n\n private _checkNetworkWithRetry(retries = 2): Observable<boolean> {\n return defer(() => this._performNetworkCheck()).pipe(\n catchError(() => {\n if (retries > 0) {\n return this._checkNetworkWithRetry(retries - 1);\n }\n return of(false);\n })\n );\n }\n\n private _performNetworkCheck(): Observable<boolean> {\n const controller = new AbortController();\n const timeoutId = setTimeout(() => controller.abort(), 3000);\n\n return from(fetch('data:,', { method: 'HEAD', signal: controller.signal })).pipe(\n tap(() => clearTimeout(timeoutId)),\n map(() => true),\n catchError(() => {\n clearTimeout(timeoutId);\n throw new Error('Network check failed');\n })\n );\n }\n\n private _handleError(\n error: Error,\n options?: ZHttpOptions<object, TApiType>,\n method?: string,\n endpoint?: string,\n body?: unknown\n ): Observable<never> {\n const statusCode = error instanceof HttpErrorResponse ? error.status : 500;\n const fullEndpoint = `${this.resolveBaseUrl(options?.api)}${endpoint}`;\n\n const httpError = this._buildErrorObject(error, statusCode, fullEndpoint, method, body, options);\n const localizedError = this._localizeError(httpError, statusCode);\n\n console.error('[ZHttp] Request failed:', {\n method,\n endpoint: fullEndpoint,\n status: statusCode,\n error: localizedError,\n });\n\n this._handleStatusCode(statusCode);\n\n return throwError(() => localizedError);\n }\n\n private _buildErrorObject(\n error: Error,\n statusCode: number,\n endpoint: string,\n method?: string,\n body?: unknown,\n options?: ZHttpOptions<object, TApiType>\n ): ZHttpError<TApiType> {\n const baseError: ZHttpError<TApiType> = { message: '', status: statusCode, endpoint, method, body, options };\n\n if (!(error instanceof HttpErrorResponse)) {\n return {\n ...baseError,\n error: error.message,\n message: error.message || this.translateService.instant('i18n_z_ui_http_error_default'),\n };\n }\n\n const errorBody = error.error;\n\n if (typeof errorBody?.message === 'string') {\n const message =\n errorBody.message === 'Failed to fetch'\n ? this.translateService.instant('i18n_z_ui_http_error_failed_to_fetch', { url: endpoint })\n : errorBody.message;\n return { ...baseError, error: errorBody, message };\n }\n\n if (Array.isArray(errorBody?.errors) && errorBody.errors.length > 0) {\n const message = errorBody.errors\n .map((err: unknown) => (typeof err === 'string' ? err : JSON.stringify(err)))\n .join(', ');\n return { ...baseError, error: errorBody, message };\n }\n\n if (\n typeof errorBody === 'object' &&\n errorBody !== null &&\n !Array.isArray(errorBody) &&\n Object.keys(errorBody).length > 0\n ) {\n return { ...baseError, error: errorBody, message: JSON.stringify(errorBody) };\n }\n\n if (typeof errorBody === 'string') {\n return { ...baseError, error: errorBody, message: errorBody };\n }\n\n return {\n ...baseError,\n error: error.message,\n message: error.message || this.translateService.instant('i18n_z_ui_http_error_default'),\n };\n }\n\n private _localizeError(error: ZHttpError<TApiType>, statusCode: number): ZHttpError<TApiType> {\n const localizedError = { ...error };\n\n const errorMessages: Record<number, string> = {\n 400: error.message || this.translateService.instant('i18n_z_ui_http_error_400'),\n 401: this._get401Message(),\n 403: this.translateService.instant('i18n_z_ui_http_error_403'),\n 404: this.translateService.instant('i18n_z_ui_http_error_404'),\n 500: this.translateService.instant('i18n_z_ui_http_error_500'),\n };\n\n if (errorMessages[statusCode]) {\n localizedError.message = errorMessages[statusCode];\n }\n\n return localizedError;\n }\n\n private _get401Message(): string {\n const userInfo = this.cacheService.get<{ timeExpired?: number }>(this.config.userInfoKey);\n const isExpired = userInfo?.timeExpired ? Date.now() >= userInfo.timeExpired : false;\n\n if (isExpired) {\n return this.translateService.instant('i18n_z_ui_http_error_401_expired');\n }\n return this.translateService.instant('i18n_z_ui_http_error_401_permission');\n }\n\n private _handleStatusCode(statusCode: number): void {\n if (statusCode !== 401) {\n return;\n }\n\n const userInfo = this.cacheService.get<{ timeExpired?: number }>(this.config.userInfoKey);\n const isExpired = userInfo?.timeExpired ? Date.now() >= userInfo.timeExpired : false;\n\n if (isExpired) {\n this.indexDbService.clear('HttpCache').catch(console.error);\n this.cacheService.deleteMultiple([this.config.tokenKey, this.config.userInfoKey]);\n this.router.navigate([this.config.loginRoute]).catch(console.error);\n return;\n }\n\n this.router.navigate([this.config.homeRoute]).catch(console.error);\n }\n}\n","import { Injectable } from '@angular/core';\nimport { BehaviorSubject, Observable, Subject } from 'rxjs';\n\ntype SubjectType = 'subject' | 'behavior';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class ZSubjectService {\n private readonly _subjects = new Map<string, Subject<unknown>>();\n private readonly _behaviorSubjects = new Map<string, BehaviorSubject<unknown>>();\n\n /**\n * Emit a value to a subject\n * @param key - Subject identifier\n * @param type - 'subject' for Subject, 'behavior' for BehaviorSubject\n * @param value - Value to emit\n */\n public emit<T>(key: string, type: SubjectType, value: T): void {\n if (type === 'behavior') {\n const existingSubject = this._behaviorSubjects.get(key) as BehaviorSubject<T> | undefined;\n if (existingSubject) {\n existingSubject.next(value);\n return;\n }\n\n const newSubject = new BehaviorSubject<T>(value);\n this._behaviorSubjects.set(key, newSubject as BehaviorSubject<unknown>);\n return;\n }\n\n const existingSubject = this._subjects.get(key) as Subject<T> | undefined;\n if (existingSubject) {\n existingSubject.next(value);\n return;\n }\n\n const newSubject = new Subject<T>();\n this._subjects.set(key, newSubject as Subject<unknown>);\n newSubject.next(value);\n }\n\n /**\n * Get an observable for a subject\n * @param key - Subject identifier\n * @param type - 'subject' for Subject, 'behavior' for BehaviorSubject\n * @param initialValue - Initial value for BehaviorSubject (required for new behavior subjects)\n */\n public on$<T>(key: string, type: SubjectType, initialValue?: T): Observable<T> {\n if (type === 'behavior') {\n const existingSubject = this._behaviorSubjects.get(key) as BehaviorSubject<T> | undefined;\n if (existingSubject) {\n return existingSubject.asObservable();\n }\n\n const newSubject = new BehaviorSubject<T>(initialValue as T);\n this._behaviorSubjects.set(key, newSubject as BehaviorSubject<unknown>);\n return newSubject.asObservable();\n }\n\n const existingSubject = this._subjects.get(key) as Subject<T> | undefined;\n if (existingSubject) {\n return existingSubject.asObservable();\n }\n\n const newSubject = new Subject<T>();\n this._subjects.set(key, newSubject as Subject<unknown>);\n return newSubject.asObservable();\n }\n\n /**\n * Get the current value of a BehaviorSubject\n * @param key - Subject identifier\n */\n public getValue<T>(key: string): T | undefined {\n const subject = this._behaviorSubjects.get(key);\n if (!subject) {\n return undefined;\n }\n return subject.getValue() as T;\n }\n\n /**\n * Complete and remove a subject\n * @param key - Subject identifier\n * @param type - 'subject' for Subject, 'behavior' for BehaviorSubject\n */\n public complete(key: string, type: SubjectType): void {\n if (type === 'behavior') {\n const subject = this._behaviorSubjects.get(key);\n if (!subject) {\n return;\n }\n subject.complete();\n this._behaviorSubjects.delete(key);\n return;\n }\n\n const subject = this._subjects.get(key);\n if (!subject) {\n return;\n }\n subject.complete();\n this._subjects.delete(key);\n }\n\n /**\n * Complete all subjects\n */\n public completeAll(): void {\n this._subjects.forEach(subject => subject.complete());\n this._behaviorSubjects.forEach(subject => subject.complete());\n this._subjects.clear();\n this._behaviorSubjects.clear();\n }\n\n /**\n * Check if a subject exists\n * @param key - Subject identifier\n * @param type - 'subject' for Subject, 'behavior' for BehaviorSubject\n */\n public has(key: string, type: SubjectType): boolean {\n if (type === 'behavior') {\n return this._behaviorSubjects.has(key);\n }\n return this._subjects.has(key);\n }\n}\n","import { InjectionToken } from '@angular/core';\n\nexport type ZThemeName = 'green' | 'orange' | 'violet' | 'neutral' | 'stone' | 'zinc' | 'gray' | 'slate' | 'hospital';\n\nexport interface ZThemeConfig {\n defaultTheme?: ZThemeName;\n defaultDarkMode?: boolean;\n}\n\nexport const Z_THEME_CONFIG = new InjectionToken<ZThemeConfig>('Z_THEME_CONFIG');\nexport const Z_DEFAULT_THEME: ZThemeName = 'neutral';\nexport const Z_THEME_CACHE_KEY = 'z-theme';\nexport const Z_DARK_MODE_CACHE_KEY = 'z-dark-mode';\n\nexport const Z_THEME_CSS_MAP: Record<ZThemeName, string> = {\n neutral: '',\n green: 'assets/css/themes/green.css',\n orange: 'assets/css/themes/orange.css',\n violet: 'assets/css/themes/violet.css',\n stone: 'assets/css/themes/stone.css',\n zinc: 'assets/css/themes/zinc.css',\n gray: 'assets/css/themes/gray.css',\n slate: 'assets/css/themes/slate.css',\n hospital: 'assets/css/themes/hospital.css',\n};\n","import { DOCUMENT, isPlatformBrowser } from '@angular/common';\nimport { effect, inject, Injectable, PLATFORM_ID, signal } from '@angular/core';\nimport {\n type ZThemeConfig,\n type ZThemeName,\n Z_DARK_MODE_CACHE_KEY,\n Z_DEFAULT_THEME,\n Z_THEME_CACHE_KEY,\n Z_THEME_CONFIG,\n Z_THEME_CSS_MAP,\n} from './types/z-theme.types';\nimport { ZCacheService } from './z-cache.service';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class ZThemeService {\n private readonly _document = inject(DOCUMENT);\n private readonly _platformId = inject(PLATFORM_ID);\n private readonly _config = inject(Z_THEME_CONFIG, { optional: true }) as ZThemeConfig | null;\n private readonly _isBrowser = isPlatformBrowser(this._platformId);\n\n private readonly _defaultTheme = this._config?.defaultTheme ?? Z_DEFAULT_THEME;\n private readonly _defaultDarkMode = this._config?.defaultDarkMode ?? false;\n\n private readonly _isDark = signal(this._getSavedDarkMode());\n private readonly _currentTheme = signal<ZThemeName>(this._getSavedTheme());\n private readonly _loadedThemes = new Set<ZThemeName>(['neutral']);\n\n public readonly isDark = this._isDark.asReadonly();\n public readonly currentTheme = this._currentTheme.asReadonly();\n\n constructor() {\n if (this._isBrowser) {\n this._initializeTheme();\n }\n\n effect(() => {\n const isDark = this._isDark();\n if (this._isBrowser) {\n ZCacheService.set(Z_DARK_MODE_CACHE_KEY, isDark);\n }\n });\n\n effect(() => {\n const theme = this._currentTheme();\n if (this._isBrowser) {\n ZCacheService.set(Z_THEME_CACHE_KEY, theme);\n }\n });\n }\n\n public setTheme(theme: ZThemeName): void {\n this._currentTheme.set(theme);\n\n if (this._loadedThemes.has(theme)) {\n this._document.documentElement.setAttribute('z-theme', theme);\n return;\n }\n\n if (!Z_THEME_CSS_MAP[theme]) {\n this._document.documentElement.setAttribute('z-theme', theme);\n return;\n }\n\n this._loadThemeCSS(theme, () => {\n this._document.documentElement.setAttribute('z-theme', theme);\n });\n }\n\n public toggleDarkMode(isDark: boolean): void {\n this._isDark.set(isDark);\n\n if (isDark) {\n this._document.documentElement.classList.add('dark');\n return;\n }\n\n this._document.documentElement.classList.remove('dark');\n }\n\n public preloadTheme(theme: ZThemeName): void {\n if (this._loadedThemes.has(theme) || !Z_THEME_CSS_MAP[theme]) {\n return;\n }\n\n this._loadThemeCSS(theme);\n }\n\n private _initializeTheme(): void {\n const savedTheme = this._currentTheme();\n const savedDarkMode = this._isDark();\n\n this.setTheme(savedTheme);\n if (savedDarkMode) {\n this.toggleDarkMode(savedDarkMode);\n }\n }\n\n private _getSavedTheme(): ZThemeName {\n if (!this._isBrowser) {\n return this._defaultTheme;\n }\n\n return ZCacheService.get<ZThemeName>(Z_THEME_CACHE_KEY) ?? this._defaultTheme;\n }\n\n private _getSavedDarkMode(): boolean {\n if (!this._isBrowser) {\n return this._defaultDarkMode;\n }\n return ZCacheService.get<boolean>(Z_DARK_MODE_CACHE_KEY) ?? this._defaultDarkMode;\n }\n\n private _loadThemeCSS(theme: ZThemeName, onLoad?: () => void): void {\n const cssPath = Z_THEME_CSS_MAP[theme];\n if (!cssPath) {\n onLoad?.();\n return;\n }\n\n const existingLink = this._document.querySelector(`link[data-theme=\"${theme}\"]`);\n if (existingLink) {\n this._loadedThemes.add(theme);\n onLoad?.();\n return;\n }\n\n const link = this._document.createElement('link');\n link.rel = 'stylesheet';\n link.href = cssPath;\n link.setAttribute('data-theme', theme);\n\n link.onload = (): void => {\n this._loadedThemes.add(theme);\n onLoad?.();\n };\n\n link.onerror = (): void => {\n console.error(`Failed to load theme \"${theme}\" from ${cssPath}`);\n onLoad?.();\n };\n\n this._document.head.appendChild(link);\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@shival99/z-ui",
3
- "version": "1.0.13",
3
+ "version": "1.0.15",
4
4
  "description": "Z-UI: Modern Angular UI Component Library - A comprehensive, high-performance design system built with Angular 20+, featuring 40+ customizable components with dark mode, accessibility, and enterprise-ready features.",
5
5
  "keywords": [
6
6
  "angular",
@@ -15,9 +15,9 @@ declare class ZBreadcrumbComponent {
15
15
  readonly class: _angular_core.InputSignal<ClassValue>;
16
16
  readonly zItems: _angular_core.InputSignal<ZBreadcrumbItem[]>;
17
17
  readonly zSize: _angular_core.InputSignal<"sm" | "default" | "lg" | null | undefined>;
18
- readonly zSeparator: _angular_core.InputSignal<"lucideLayers2" | "lucideStore" | "lucideChartBarStacked" | "lucideBookCheck" | "lucideAlarmClock" | "lucideClipboardPlus" | "lucideSave" | "lucideSaveAll" | "lucideFlag" | "lucideFlagTriangleRight" | "lucideMessageSquareDot" | "lucideCheckCheck" | "lucideTriangleAlert" | "lucideMessageSquareWarning" | "lucideCheck" | "lucidePencil" | "lucideMail" | "lucideLayoutGrid" | "lucideArrowLeft" | "lucideArrowRight" | "lucideMenu" | "lucideLock" | "lucideLogOut" | "lucideUser" | "lucideSettings" | "lucidePill" | "lucideCalendarFold" | "lucideSettings2" | "lucideChevronLeft" | "lucideChevronRight" | "lucideChevronDown" | "lucidePlus" | "lucideSearch" | "lucideUsers" | "lucideEye" | "lucideEyeOff" | "lucideEllipsis" | "lucidePanelLeftClose" | "lucidePanelLeftOpen" | "lucideLayoutDashboard" | "lucideChartColumn" | "lucideUsersRound" | "lucideLogs" | "lucideChevronUp" | "lucideTrendingUp" | "lucidePackage" | "lucideShoppingCart" | "lucideUserCheck" | "lucideActivity" | "lucideZap" | "lucideMousePointer" | "lucideInfo" | "lucideLayers" | "lucideBriefcase" | "lucideTarget" | "lucideWorkflow" | "lucideWarehouse" | "lucideLoaderCircle" | "lucideChevronsLeft" | "lucideChevronsRight" | "lucideBellRing" | "lucideSlidersHorizontal" | "lucideTrash2" | "lucideFileDown" | "lucideFunnel" | "lucideAlignJustify" | "lucideX" | "lucideFiles" | "lucideCrown" | "lucideBadgeInfo" | "lucideMinus" | "lucideBox" | "lucideCog" | "lucideBellMinus" | "lucidePackageOpen" | "lucideInbox" | "lucideClock" | "lucideBookOpen" | "lucideCalendar" | "lucideCalculator" | "lucideClipboardList" | "lucideDatabase" | "lucideDollarSign" | "lucideFileText" | "lucideGraduationCap" | "lucideHeart" | "lucideHospital" | "lucideMapPin" | "lucideMonitor" | "lucidePhone" | "lucideShield" | "lucideStar" | "lucideStethoscope" | "lucideTimer" | "lucideTrendingDown" | "lucideUserPlus" | "lucideVideo" | "lucideWallet" | "lucideWrench" | "lucideBuilding2" | "lucideCar" | "lucideCreditCard" | "lucideFileSpreadsheet" | "lucideGlobe" | "lucideHeadphones" | "lucideKey" | "lucideLightbulb" | "lucideMailCheck" | "lucideNetwork" | "lucidePalette" | "lucidePhoneCall" | "lucidePrinter" | "lucideRadio" | "lucideServer" | "lucideSmartphone" | "lucideTablet" | "lucideTerminal" | "lucideTruck" | "lucideWifi" | "lucideRefreshCcw" | "lucideLockKeyhole" | "lucideArrowDown" | "lucideArrowUp" | "lucideUserLock" | "lucideCircleCheck" | "lucideHouse" | "lucideChartBar" | "lucideChartPie" | "lucideChartLine" | "lucideCalendarRange" | "lucideCalendar1" | "lucideCalendarCheck" | "lucideNotepadText" | "lucideFileUp" | "lucideTableOfContents" | "lucideBot" | "lucideSend" | "lucidePause" | "lucidePaperclip" | "saxPauseBold" | "lucideCopy" | "lucideUserRoundPen" | "lucideFilePenLine" | "lucideArrowDownUp" | "lucideCircleX" | "lucideCheckLine" | "lucideBadgeCheck" | "lucideShieldCheck" | "lucideCircleCheckBig" | "lucideBadgeX" | "lucideLockKeyholeOpen" | "lucideFileSymlink" | "lucideWifiZero" | "lucideCloudCheck" | "lucideMailPlus" | "lucideHardDriveDownload" | "saxCloudChangeBold" | "saxRefreshBold" | "lucideBarcode" | "lucideCode" | "lucideScanQrCode" | "lucideQrCode" | "lucideScanLine" | "lucideListPlus" | "lucideFilePlus" | "lucideFilePlus2" | "lucideBookUp2" | "lucideFileClock" | "lucideRefreshCwOff" | "lucideListChecks" | "lucideFastForward" | "lucideBrushCleaning" | "lucideChartColumnIncreasing" | "lucideBell" | "lucideCheckCircle2" | "lucideAlertCircle" | "lucideXCircle" | "lucideLink" | "lucideDatabaseBackup" | "lucideFileCheck" | "lucideListChevronsDownUp" | "lucideListChevronsUpDown" | "lucideSun" | "lucideMoon" | "lucideLoader" | "lucideAlertOctagon" | "lucideMessageCircle" | "lucideCircleAlert" | "lucideMessageCircleQuestion" | "lucideComponent" | "lucidePanelRightOpen" | "lucideLoader2" | "lucideGithub" | "lucideLifeBuoy" | "lucideCloud" | "lucideBarChart" | "lucideHome" | "lucideFolderOpen" | "lucideSquarePen" | "lucideLayoutTemplate" | "lucideFileOutput" | "lucideCircleHelp" | "lucideGripHorizontal" | "lucideImage" | "lucideList" | "lucideHash" | "lucideMegaphone" | "lucidePenTool" | "lucideSquare" | "lucideRocket" | "lucideBarChart3" | "lucideUsers2" | "lucideGrid3x3" | "lucideFolderTree" | "lucideCheckCircle" | "lucideSliders" | "lucideFileEdit" | "lucideNavigation" | "lucideListFilter" | "lucideTextCursor" | "lucidePieChart" | "lucideUserSearch" | "lucideFolders" | "lucideSparkles" | "lucideSquareCheck" | "lucideCircleDot" | "lucideToggleLeft" | "lucideUpload" | "lucideUploadCloud" | "lucideDownload" | "lucideFile" | "lucideMusic" | "lucideFileCode" | "lucideFileJson" | "lucideFileArchive" | "lucideTable2" | "lucideGripVertical" | "lucidePin" | "lucideSearchX" | "lucideMoreVertical" | "lucideGitBranch" | "lucideAlertTriangle" | "lucideFilter" | "lucideFunnelX" | "lucideBan" | "lucideBuilding" | "lucideType">;
18
+ readonly zSeparator: _angular_core.InputSignal<"lucideLayers2" | "lucideStore" | "lucideChartBarStacked" | "lucideBookCheck" | "lucideAlarmClock" | "lucideClipboardPlus" | "lucideSave" | "lucideSaveAll" | "lucideFlag" | "lucideFlagTriangleRight" | "lucideMessageSquareDot" | "lucideCheckCheck" | "lucideTriangleAlert" | "lucideMessageSquareWarning" | "lucideCheck" | "lucidePencil" | "lucideMail" | "lucideLayoutGrid" | "lucideArrowLeft" | "lucideArrowRight" | "lucideMenu" | "lucideLock" | "lucideLogOut" | "lucideUser" | "lucideSettings" | "lucidePill" | "lucideCalendarFold" | "lucideSettings2" | "lucideChevronLeft" | "lucideChevronRight" | "lucideChevronDown" | "lucidePlus" | "lucideSearch" | "lucideUsers" | "lucideEye" | "lucideEyeOff" | "lucideEllipsis" | "lucidePanelLeftClose" | "lucidePanelLeftOpen" | "lucideLayoutDashboard" | "lucideChartColumn" | "lucideUsersRound" | "lucideLogs" | "lucideChevronUp" | "lucideTrendingUp" | "lucidePackage" | "lucideShoppingCart" | "lucideUserCheck" | "lucideActivity" | "lucideZap" | "lucideMousePointer" | "lucideInfo" | "lucideLayers" | "lucideBriefcase" | "lucideTarget" | "lucideWorkflow" | "lucideWarehouse" | "lucideLoaderCircle" | "lucideChevronsLeft" | "lucideChevronsRight" | "lucideBellRing" | "lucideSlidersHorizontal" | "lucideTrash2" | "lucideFileDown" | "lucideFunnel" | "lucideAlignJustify" | "lucideX" | "lucideFiles" | "lucideCrown" | "lucideBadgeInfo" | "lucideMinus" | "lucideBox" | "lucideCog" | "lucideBellMinus" | "lucidePackageOpen" | "lucideInbox" | "lucideClock" | "lucideBookOpen" | "lucideCalendar" | "lucideCalculator" | "lucideClipboardList" | "lucideDatabase" | "lucideDollarSign" | "lucideFileText" | "lucideGraduationCap" | "lucideHeart" | "lucideHospital" | "lucideMapPin" | "lucideMonitor" | "lucidePhone" | "lucideShield" | "lucideStar" | "lucideStethoscope" | "lucideTimer" | "lucideTrendingDown" | "lucideUserPlus" | "lucideVideo" | "lucideWallet" | "lucideWrench" | "lucideBuilding2" | "lucideCar" | "lucideCreditCard" | "lucideFileSpreadsheet" | "lucideGlobe" | "lucideHeadphones" | "lucideKey" | "lucideLightbulb" | "lucideMailCheck" | "lucideNetwork" | "lucidePalette" | "lucidePhoneCall" | "lucidePrinter" | "lucideRadio" | "lucideServer" | "lucideSmartphone" | "lucideTablet" | "lucideTerminal" | "lucideTruck" | "lucideWifi" | "lucideRefreshCcw" | "lucideLockKeyhole" | "lucideArrowDown" | "lucideArrowUp" | "lucideUserLock" | "lucideCircleCheck" | "lucideHouse" | "lucideChartBar" | "lucideChartPie" | "lucideChartLine" | "lucideCalendarRange" | "lucideCalendar1" | "lucideCalendarCheck" | "lucideNotepadText" | "lucideFileUp" | "lucideTableOfContents" | "lucideBot" | "lucideSend" | "lucidePause" | "lucidePaperclip" | "saxPauseBold" | "lucideCopy" | "lucideUserRoundPen" | "lucideFilePenLine" | "lucideArrowDownUp" | "lucideCircleX" | "lucideCheckLine" | "lucideBadgeCheck" | "lucideShieldCheck" | "lucideCircleCheckBig" | "lucideBadgeX" | "lucideLockKeyholeOpen" | "lucideFileSymlink" | "lucideWifiZero" | "lucideCloudCheck" | "lucideMailPlus" | "lucideHardDriveDownload" | "saxCloudChangeBold" | "saxRefreshBold" | "lucideBarcode" | "lucideCode" | "lucideScanQrCode" | "lucideQrCode" | "lucideScanLine" | "lucideListPlus" | "lucideFilePlus" | "lucideFilePlus2" | "lucideBookUp2" | "lucideFileClock" | "lucideRefreshCwOff" | "lucideListChecks" | "lucideFastForward" | "lucideBrushCleaning" | "lucideChartColumnIncreasing" | "lucideBell" | "lucideCheckCircle2" | "lucideAlertCircle" | "lucideXCircle" | "lucideLink" | "lucideDatabaseBackup" | "lucideFileCheck" | "lucideListChevronsDownUp" | "lucideListChevronsUpDown" | "lucideSun" | "lucideMoon" | "lucideLoader" | "lucideAlertOctagon" | "lucideMessageCircle" | "lucideCircleAlert" | "lucideMessageCircleQuestion" | "lucideComponent" | "lucidePanelRightOpen" | "lucideLoader2" | "lucideGithub" | "lucideLifeBuoy" | "lucideCloud" | "lucideBarChart" | "lucideHome" | "lucideFolderOpen" | "lucideSquarePen" | "lucideLayoutTemplate" | "lucideFileOutput" | "lucideCircleHelp" | "lucideGripHorizontal" | "lucideImage" | "lucideList" | "lucideHash" | "lucideMegaphone" | "lucidePenTool" | "lucideSquare" | "lucideRocket" | "lucideBarChart3" | "lucideUsers2" | "lucideGrid3x3" | "lucideFolderTree" | "lucideCheckCircle" | "lucideSliders" | "lucideFileEdit" | "lucideNavigation" | "lucideListFilter" | "lucideTextCursor" | "lucidePieChart" | "lucideUserSearch" | "lucideFolders" | "lucideSparkles" | "lucideSquareCheck" | "lucideCircleDot" | "lucideToggleLeft" | "lucideUpload" | "lucideUploadCloud" | "lucideDownload" | "lucideFile" | "lucideMusic" | "lucideFileCode" | "lucideFileJson" | "lucideFileArchive" | "lucideTable2" | "lucideGripVertical" | "lucidePin" | "lucideSearchX" | "lucideMoreVertical" | "lucideGitBranch" | "lucideAlertTriangle" | "lucideFilter" | "lucideFunnelX" | "lucideBan" | "lucideBuilding" | "lucideType" | "lucidePercent" | "lucideReceipt" | "lucideClipboardPen" | "lucidePackageCheck" | "lucideShoppingBag" | "lucideTag" | "lucideTags" | "lucideTicket" | "lucideWand2" | "lucideZoomIn" | "lucideZoomOut" | "lucideBadge" | "lucideClipboardCopy" | "lucideContact" | "lucideIdCard" | "lucideRecycle">;
19
19
  readonly zSeparatorSize: _angular_core.InputSignal<"10" | "11" | "12" | "13" | "14" | "15" | "16" | "17" | "18" | "19" | "20" | "21" | "22" | "23" | "24" | "25" | "26" | "27" | "28" | "29" | "30" | "31" | "32" | "33" | "34" | "35" | "36" | "37" | "38" | "39" | "40" | null | undefined>;
20
- readonly zHomeIcon: _angular_core.InputSignal<"lucideLayers2" | "lucideStore" | "lucideChartBarStacked" | "lucideBookCheck" | "lucideAlarmClock" | "lucideClipboardPlus" | "lucideSave" | "lucideSaveAll" | "lucideFlag" | "lucideFlagTriangleRight" | "lucideMessageSquareDot" | "lucideCheckCheck" | "lucideTriangleAlert" | "lucideMessageSquareWarning" | "lucideCheck" | "lucidePencil" | "lucideMail" | "lucideLayoutGrid" | "lucideArrowLeft" | "lucideArrowRight" | "lucideMenu" | "lucideLock" | "lucideLogOut" | "lucideUser" | "lucideSettings" | "lucidePill" | "lucideCalendarFold" | "lucideSettings2" | "lucideChevronLeft" | "lucideChevronRight" | "lucideChevronDown" | "lucidePlus" | "lucideSearch" | "lucideUsers" | "lucideEye" | "lucideEyeOff" | "lucideEllipsis" | "lucidePanelLeftClose" | "lucidePanelLeftOpen" | "lucideLayoutDashboard" | "lucideChartColumn" | "lucideUsersRound" | "lucideLogs" | "lucideChevronUp" | "lucideTrendingUp" | "lucidePackage" | "lucideShoppingCart" | "lucideUserCheck" | "lucideActivity" | "lucideZap" | "lucideMousePointer" | "lucideInfo" | "lucideLayers" | "lucideBriefcase" | "lucideTarget" | "lucideWorkflow" | "lucideWarehouse" | "lucideLoaderCircle" | "lucideChevronsLeft" | "lucideChevronsRight" | "lucideBellRing" | "lucideSlidersHorizontal" | "lucideTrash2" | "lucideFileDown" | "lucideFunnel" | "lucideAlignJustify" | "lucideX" | "lucideFiles" | "lucideCrown" | "lucideBadgeInfo" | "lucideMinus" | "lucideBox" | "lucideCog" | "lucideBellMinus" | "lucidePackageOpen" | "lucideInbox" | "lucideClock" | "lucideBookOpen" | "lucideCalendar" | "lucideCalculator" | "lucideClipboardList" | "lucideDatabase" | "lucideDollarSign" | "lucideFileText" | "lucideGraduationCap" | "lucideHeart" | "lucideHospital" | "lucideMapPin" | "lucideMonitor" | "lucidePhone" | "lucideShield" | "lucideStar" | "lucideStethoscope" | "lucideTimer" | "lucideTrendingDown" | "lucideUserPlus" | "lucideVideo" | "lucideWallet" | "lucideWrench" | "lucideBuilding2" | "lucideCar" | "lucideCreditCard" | "lucideFileSpreadsheet" | "lucideGlobe" | "lucideHeadphones" | "lucideKey" | "lucideLightbulb" | "lucideMailCheck" | "lucideNetwork" | "lucidePalette" | "lucidePhoneCall" | "lucidePrinter" | "lucideRadio" | "lucideServer" | "lucideSmartphone" | "lucideTablet" | "lucideTerminal" | "lucideTruck" | "lucideWifi" | "lucideRefreshCcw" | "lucideLockKeyhole" | "lucideArrowDown" | "lucideArrowUp" | "lucideUserLock" | "lucideCircleCheck" | "lucideHouse" | "lucideChartBar" | "lucideChartPie" | "lucideChartLine" | "lucideCalendarRange" | "lucideCalendar1" | "lucideCalendarCheck" | "lucideNotepadText" | "lucideFileUp" | "lucideTableOfContents" | "lucideBot" | "lucideSend" | "lucidePause" | "lucidePaperclip" | "saxPauseBold" | "lucideCopy" | "lucideUserRoundPen" | "lucideFilePenLine" | "lucideArrowDownUp" | "lucideCircleX" | "lucideCheckLine" | "lucideBadgeCheck" | "lucideShieldCheck" | "lucideCircleCheckBig" | "lucideBadgeX" | "lucideLockKeyholeOpen" | "lucideFileSymlink" | "lucideWifiZero" | "lucideCloudCheck" | "lucideMailPlus" | "lucideHardDriveDownload" | "saxCloudChangeBold" | "saxRefreshBold" | "lucideBarcode" | "lucideCode" | "lucideScanQrCode" | "lucideQrCode" | "lucideScanLine" | "lucideListPlus" | "lucideFilePlus" | "lucideFilePlus2" | "lucideBookUp2" | "lucideFileClock" | "lucideRefreshCwOff" | "lucideListChecks" | "lucideFastForward" | "lucideBrushCleaning" | "lucideChartColumnIncreasing" | "lucideBell" | "lucideCheckCircle2" | "lucideAlertCircle" | "lucideXCircle" | "lucideLink" | "lucideDatabaseBackup" | "lucideFileCheck" | "lucideListChevronsDownUp" | "lucideListChevronsUpDown" | "lucideSun" | "lucideMoon" | "lucideLoader" | "lucideAlertOctagon" | "lucideMessageCircle" | "lucideCircleAlert" | "lucideMessageCircleQuestion" | "lucideComponent" | "lucidePanelRightOpen" | "lucideLoader2" | "lucideGithub" | "lucideLifeBuoy" | "lucideCloud" | "lucideBarChart" | "lucideHome" | "lucideFolderOpen" | "lucideSquarePen" | "lucideLayoutTemplate" | "lucideFileOutput" | "lucideCircleHelp" | "lucideGripHorizontal" | "lucideImage" | "lucideList" | "lucideHash" | "lucideMegaphone" | "lucidePenTool" | "lucideSquare" | "lucideRocket" | "lucideBarChart3" | "lucideUsers2" | "lucideGrid3x3" | "lucideFolderTree" | "lucideCheckCircle" | "lucideSliders" | "lucideFileEdit" | "lucideNavigation" | "lucideListFilter" | "lucideTextCursor" | "lucidePieChart" | "lucideUserSearch" | "lucideFolders" | "lucideSparkles" | "lucideSquareCheck" | "lucideCircleDot" | "lucideToggleLeft" | "lucideUpload" | "lucideUploadCloud" | "lucideDownload" | "lucideFile" | "lucideMusic" | "lucideFileCode" | "lucideFileJson" | "lucideFileArchive" | "lucideTable2" | "lucideGripVertical" | "lucidePin" | "lucideSearchX" | "lucideMoreVertical" | "lucideGitBranch" | "lucideAlertTriangle" | "lucideFilter" | "lucideFunnelX" | "lucideBan" | "lucideBuilding" | "lucideType" | undefined>;
20
+ readonly zHomeIcon: _angular_core.InputSignal<"lucideLayers2" | "lucideStore" | "lucideChartBarStacked" | "lucideBookCheck" | "lucideAlarmClock" | "lucideClipboardPlus" | "lucideSave" | "lucideSaveAll" | "lucideFlag" | "lucideFlagTriangleRight" | "lucideMessageSquareDot" | "lucideCheckCheck" | "lucideTriangleAlert" | "lucideMessageSquareWarning" | "lucideCheck" | "lucidePencil" | "lucideMail" | "lucideLayoutGrid" | "lucideArrowLeft" | "lucideArrowRight" | "lucideMenu" | "lucideLock" | "lucideLogOut" | "lucideUser" | "lucideSettings" | "lucidePill" | "lucideCalendarFold" | "lucideSettings2" | "lucideChevronLeft" | "lucideChevronRight" | "lucideChevronDown" | "lucidePlus" | "lucideSearch" | "lucideUsers" | "lucideEye" | "lucideEyeOff" | "lucideEllipsis" | "lucidePanelLeftClose" | "lucidePanelLeftOpen" | "lucideLayoutDashboard" | "lucideChartColumn" | "lucideUsersRound" | "lucideLogs" | "lucideChevronUp" | "lucideTrendingUp" | "lucidePackage" | "lucideShoppingCart" | "lucideUserCheck" | "lucideActivity" | "lucideZap" | "lucideMousePointer" | "lucideInfo" | "lucideLayers" | "lucideBriefcase" | "lucideTarget" | "lucideWorkflow" | "lucideWarehouse" | "lucideLoaderCircle" | "lucideChevronsLeft" | "lucideChevronsRight" | "lucideBellRing" | "lucideSlidersHorizontal" | "lucideTrash2" | "lucideFileDown" | "lucideFunnel" | "lucideAlignJustify" | "lucideX" | "lucideFiles" | "lucideCrown" | "lucideBadgeInfo" | "lucideMinus" | "lucideBox" | "lucideCog" | "lucideBellMinus" | "lucidePackageOpen" | "lucideInbox" | "lucideClock" | "lucideBookOpen" | "lucideCalendar" | "lucideCalculator" | "lucideClipboardList" | "lucideDatabase" | "lucideDollarSign" | "lucideFileText" | "lucideGraduationCap" | "lucideHeart" | "lucideHospital" | "lucideMapPin" | "lucideMonitor" | "lucidePhone" | "lucideShield" | "lucideStar" | "lucideStethoscope" | "lucideTimer" | "lucideTrendingDown" | "lucideUserPlus" | "lucideVideo" | "lucideWallet" | "lucideWrench" | "lucideBuilding2" | "lucideCar" | "lucideCreditCard" | "lucideFileSpreadsheet" | "lucideGlobe" | "lucideHeadphones" | "lucideKey" | "lucideLightbulb" | "lucideMailCheck" | "lucideNetwork" | "lucidePalette" | "lucidePhoneCall" | "lucidePrinter" | "lucideRadio" | "lucideServer" | "lucideSmartphone" | "lucideTablet" | "lucideTerminal" | "lucideTruck" | "lucideWifi" | "lucideRefreshCcw" | "lucideLockKeyhole" | "lucideArrowDown" | "lucideArrowUp" | "lucideUserLock" | "lucideCircleCheck" | "lucideHouse" | "lucideChartBar" | "lucideChartPie" | "lucideChartLine" | "lucideCalendarRange" | "lucideCalendar1" | "lucideCalendarCheck" | "lucideNotepadText" | "lucideFileUp" | "lucideTableOfContents" | "lucideBot" | "lucideSend" | "lucidePause" | "lucidePaperclip" | "saxPauseBold" | "lucideCopy" | "lucideUserRoundPen" | "lucideFilePenLine" | "lucideArrowDownUp" | "lucideCircleX" | "lucideCheckLine" | "lucideBadgeCheck" | "lucideShieldCheck" | "lucideCircleCheckBig" | "lucideBadgeX" | "lucideLockKeyholeOpen" | "lucideFileSymlink" | "lucideWifiZero" | "lucideCloudCheck" | "lucideMailPlus" | "lucideHardDriveDownload" | "saxCloudChangeBold" | "saxRefreshBold" | "lucideBarcode" | "lucideCode" | "lucideScanQrCode" | "lucideQrCode" | "lucideScanLine" | "lucideListPlus" | "lucideFilePlus" | "lucideFilePlus2" | "lucideBookUp2" | "lucideFileClock" | "lucideRefreshCwOff" | "lucideListChecks" | "lucideFastForward" | "lucideBrushCleaning" | "lucideChartColumnIncreasing" | "lucideBell" | "lucideCheckCircle2" | "lucideAlertCircle" | "lucideXCircle" | "lucideLink" | "lucideDatabaseBackup" | "lucideFileCheck" | "lucideListChevronsDownUp" | "lucideListChevronsUpDown" | "lucideSun" | "lucideMoon" | "lucideLoader" | "lucideAlertOctagon" | "lucideMessageCircle" | "lucideCircleAlert" | "lucideMessageCircleQuestion" | "lucideComponent" | "lucidePanelRightOpen" | "lucideLoader2" | "lucideGithub" | "lucideLifeBuoy" | "lucideCloud" | "lucideBarChart" | "lucideHome" | "lucideFolderOpen" | "lucideSquarePen" | "lucideLayoutTemplate" | "lucideFileOutput" | "lucideCircleHelp" | "lucideGripHorizontal" | "lucideImage" | "lucideList" | "lucideHash" | "lucideMegaphone" | "lucidePenTool" | "lucideSquare" | "lucideRocket" | "lucideBarChart3" | "lucideUsers2" | "lucideGrid3x3" | "lucideFolderTree" | "lucideCheckCircle" | "lucideSliders" | "lucideFileEdit" | "lucideNavigation" | "lucideListFilter" | "lucideTextCursor" | "lucidePieChart" | "lucideUserSearch" | "lucideFolders" | "lucideSparkles" | "lucideSquareCheck" | "lucideCircleDot" | "lucideToggleLeft" | "lucideUpload" | "lucideUploadCloud" | "lucideDownload" | "lucideFile" | "lucideMusic" | "lucideFileCode" | "lucideFileJson" | "lucideFileArchive" | "lucideTable2" | "lucideGripVertical" | "lucidePin" | "lucideSearchX" | "lucideMoreVertical" | "lucideGitBranch" | "lucideAlertTriangle" | "lucideFilter" | "lucideFunnelX" | "lucideBan" | "lucideBuilding" | "lucideType" | "lucidePercent" | "lucideReceipt" | "lucideClipboardPen" | "lucidePackageCheck" | "lucideShoppingBag" | "lucideTag" | "lucideTags" | "lucideTicket" | "lucideWand2" | "lucideZoomIn" | "lucideZoomOut" | "lucideBadge" | "lucideClipboardCopy" | "lucideContact" | "lucideIdCard" | "lucideRecycle" | undefined>;
21
21
  readonly zShowHome: _angular_core.InputSignalWithTransform<boolean, string | boolean>;
22
22
  readonly zItemClick: _angular_core.OutputEmitterRef<ZBreadcrumbItem>;
23
23
  protected readonly zClasses: _angular_core.Signal<string>;
@@ -12,7 +12,7 @@ declare class ZButtonComponent implements OnDestroy {
12
12
  readonly zLabel: _angular_core.InputSignal<string>;
13
13
  readonly zLoading: _angular_core.InputSignalWithTransform<boolean, string | boolean>;
14
14
  readonly zDisabled: _angular_core.InputSignal<boolean>;
15
- readonly zTypeIcon: _angular_core.InputSignal<"lucideLayers2" | "lucideStore" | "lucideChartBarStacked" | "lucideBookCheck" | "lucideAlarmClock" | "lucideClipboardPlus" | "lucideSave" | "lucideSaveAll" | "lucideFlag" | "lucideFlagTriangleRight" | "lucideMessageSquareDot" | "lucideCheckCheck" | "lucideTriangleAlert" | "lucideMessageSquareWarning" | "lucideCheck" | "lucidePencil" | "lucideMail" | "lucideLayoutGrid" | "lucideArrowLeft" | "lucideArrowRight" | "lucideMenu" | "lucideLock" | "lucideLogOut" | "lucideUser" | "lucideSettings" | "lucidePill" | "lucideCalendarFold" | "lucideSettings2" | "lucideChevronLeft" | "lucideChevronRight" | "lucideChevronDown" | "lucidePlus" | "lucideSearch" | "lucideUsers" | "lucideEye" | "lucideEyeOff" | "lucideEllipsis" | "lucidePanelLeftClose" | "lucidePanelLeftOpen" | "lucideLayoutDashboard" | "lucideChartColumn" | "lucideUsersRound" | "lucideLogs" | "lucideChevronUp" | "lucideTrendingUp" | "lucidePackage" | "lucideShoppingCart" | "lucideUserCheck" | "lucideActivity" | "lucideZap" | "lucideMousePointer" | "lucideInfo" | "lucideLayers" | "lucideBriefcase" | "lucideTarget" | "lucideWorkflow" | "lucideWarehouse" | "lucideLoaderCircle" | "lucideChevronsLeft" | "lucideChevronsRight" | "lucideBellRing" | "lucideSlidersHorizontal" | "lucideTrash2" | "lucideFileDown" | "lucideFunnel" | "lucideAlignJustify" | "lucideX" | "lucideFiles" | "lucideCrown" | "lucideBadgeInfo" | "lucideMinus" | "lucideBox" | "lucideCog" | "lucideBellMinus" | "lucidePackageOpen" | "lucideInbox" | "lucideClock" | "lucideBookOpen" | "lucideCalendar" | "lucideCalculator" | "lucideClipboardList" | "lucideDatabase" | "lucideDollarSign" | "lucideFileText" | "lucideGraduationCap" | "lucideHeart" | "lucideHospital" | "lucideMapPin" | "lucideMonitor" | "lucidePhone" | "lucideShield" | "lucideStar" | "lucideStethoscope" | "lucideTimer" | "lucideTrendingDown" | "lucideUserPlus" | "lucideVideo" | "lucideWallet" | "lucideWrench" | "lucideBuilding2" | "lucideCar" | "lucideCreditCard" | "lucideFileSpreadsheet" | "lucideGlobe" | "lucideHeadphones" | "lucideKey" | "lucideLightbulb" | "lucideMailCheck" | "lucideNetwork" | "lucidePalette" | "lucidePhoneCall" | "lucidePrinter" | "lucideRadio" | "lucideServer" | "lucideSmartphone" | "lucideTablet" | "lucideTerminal" | "lucideTruck" | "lucideWifi" | "lucideRefreshCcw" | "lucideLockKeyhole" | "lucideArrowDown" | "lucideArrowUp" | "lucideUserLock" | "lucideCircleCheck" | "lucideHouse" | "lucideChartBar" | "lucideChartPie" | "lucideChartLine" | "lucideCalendarRange" | "lucideCalendar1" | "lucideCalendarCheck" | "lucideNotepadText" | "lucideFileUp" | "lucideTableOfContents" | "lucideBot" | "lucideSend" | "lucidePause" | "lucidePaperclip" | "saxPauseBold" | "lucideCopy" | "lucideUserRoundPen" | "lucideFilePenLine" | "lucideArrowDownUp" | "lucideCircleX" | "lucideCheckLine" | "lucideBadgeCheck" | "lucideShieldCheck" | "lucideCircleCheckBig" | "lucideBadgeX" | "lucideLockKeyholeOpen" | "lucideFileSymlink" | "lucideWifiZero" | "lucideCloudCheck" | "lucideMailPlus" | "lucideHardDriveDownload" | "saxCloudChangeBold" | "saxRefreshBold" | "lucideBarcode" | "lucideCode" | "lucideScanQrCode" | "lucideQrCode" | "lucideScanLine" | "lucideListPlus" | "lucideFilePlus" | "lucideFilePlus2" | "lucideBookUp2" | "lucideFileClock" | "lucideRefreshCwOff" | "lucideListChecks" | "lucideFastForward" | "lucideBrushCleaning" | "lucideChartColumnIncreasing" | "lucideBell" | "lucideCheckCircle2" | "lucideAlertCircle" | "lucideXCircle" | "lucideLink" | "lucideDatabaseBackup" | "lucideFileCheck" | "lucideListChevronsDownUp" | "lucideListChevronsUpDown" | "lucideSun" | "lucideMoon" | "lucideLoader" | "lucideAlertOctagon" | "lucideMessageCircle" | "lucideCircleAlert" | "lucideMessageCircleQuestion" | "lucideComponent" | "lucidePanelRightOpen" | "lucideLoader2" | "lucideGithub" | "lucideLifeBuoy" | "lucideCloud" | "lucideBarChart" | "lucideHome" | "lucideFolderOpen" | "lucideSquarePen" | "lucideLayoutTemplate" | "lucideFileOutput" | "lucideCircleHelp" | "lucideGripHorizontal" | "lucideImage" | "lucideList" | "lucideHash" | "lucideMegaphone" | "lucidePenTool" | "lucideSquare" | "lucideRocket" | "lucideBarChart3" | "lucideUsers2" | "lucideGrid3x3" | "lucideFolderTree" | "lucideCheckCircle" | "lucideSliders" | "lucideFileEdit" | "lucideNavigation" | "lucideListFilter" | "lucideTextCursor" | "lucidePieChart" | "lucideUserSearch" | "lucideFolders" | "lucideSparkles" | "lucideSquareCheck" | "lucideCircleDot" | "lucideToggleLeft" | "lucideUpload" | "lucideUploadCloud" | "lucideDownload" | "lucideFile" | "lucideMusic" | "lucideFileCode" | "lucideFileJson" | "lucideFileArchive" | "lucideTable2" | "lucideGripVertical" | "lucidePin" | "lucideSearchX" | "lucideMoreVertical" | "lucideGitBranch" | "lucideAlertTriangle" | "lucideFilter" | "lucideFunnelX" | "lucideBan" | "lucideBuilding" | "lucideType" | undefined>;
15
+ readonly zTypeIcon: _angular_core.InputSignal<"lucideLayers2" | "lucideStore" | "lucideChartBarStacked" | "lucideBookCheck" | "lucideAlarmClock" | "lucideClipboardPlus" | "lucideSave" | "lucideSaveAll" | "lucideFlag" | "lucideFlagTriangleRight" | "lucideMessageSquareDot" | "lucideCheckCheck" | "lucideTriangleAlert" | "lucideMessageSquareWarning" | "lucideCheck" | "lucidePencil" | "lucideMail" | "lucideLayoutGrid" | "lucideArrowLeft" | "lucideArrowRight" | "lucideMenu" | "lucideLock" | "lucideLogOut" | "lucideUser" | "lucideSettings" | "lucidePill" | "lucideCalendarFold" | "lucideSettings2" | "lucideChevronLeft" | "lucideChevronRight" | "lucideChevronDown" | "lucidePlus" | "lucideSearch" | "lucideUsers" | "lucideEye" | "lucideEyeOff" | "lucideEllipsis" | "lucidePanelLeftClose" | "lucidePanelLeftOpen" | "lucideLayoutDashboard" | "lucideChartColumn" | "lucideUsersRound" | "lucideLogs" | "lucideChevronUp" | "lucideTrendingUp" | "lucidePackage" | "lucideShoppingCart" | "lucideUserCheck" | "lucideActivity" | "lucideZap" | "lucideMousePointer" | "lucideInfo" | "lucideLayers" | "lucideBriefcase" | "lucideTarget" | "lucideWorkflow" | "lucideWarehouse" | "lucideLoaderCircle" | "lucideChevronsLeft" | "lucideChevronsRight" | "lucideBellRing" | "lucideSlidersHorizontal" | "lucideTrash2" | "lucideFileDown" | "lucideFunnel" | "lucideAlignJustify" | "lucideX" | "lucideFiles" | "lucideCrown" | "lucideBadgeInfo" | "lucideMinus" | "lucideBox" | "lucideCog" | "lucideBellMinus" | "lucidePackageOpen" | "lucideInbox" | "lucideClock" | "lucideBookOpen" | "lucideCalendar" | "lucideCalculator" | "lucideClipboardList" | "lucideDatabase" | "lucideDollarSign" | "lucideFileText" | "lucideGraduationCap" | "lucideHeart" | "lucideHospital" | "lucideMapPin" | "lucideMonitor" | "lucidePhone" | "lucideShield" | "lucideStar" | "lucideStethoscope" | "lucideTimer" | "lucideTrendingDown" | "lucideUserPlus" | "lucideVideo" | "lucideWallet" | "lucideWrench" | "lucideBuilding2" | "lucideCar" | "lucideCreditCard" | "lucideFileSpreadsheet" | "lucideGlobe" | "lucideHeadphones" | "lucideKey" | "lucideLightbulb" | "lucideMailCheck" | "lucideNetwork" | "lucidePalette" | "lucidePhoneCall" | "lucidePrinter" | "lucideRadio" | "lucideServer" | "lucideSmartphone" | "lucideTablet" | "lucideTerminal" | "lucideTruck" | "lucideWifi" | "lucideRefreshCcw" | "lucideLockKeyhole" | "lucideArrowDown" | "lucideArrowUp" | "lucideUserLock" | "lucideCircleCheck" | "lucideHouse" | "lucideChartBar" | "lucideChartPie" | "lucideChartLine" | "lucideCalendarRange" | "lucideCalendar1" | "lucideCalendarCheck" | "lucideNotepadText" | "lucideFileUp" | "lucideTableOfContents" | "lucideBot" | "lucideSend" | "lucidePause" | "lucidePaperclip" | "saxPauseBold" | "lucideCopy" | "lucideUserRoundPen" | "lucideFilePenLine" | "lucideArrowDownUp" | "lucideCircleX" | "lucideCheckLine" | "lucideBadgeCheck" | "lucideShieldCheck" | "lucideCircleCheckBig" | "lucideBadgeX" | "lucideLockKeyholeOpen" | "lucideFileSymlink" | "lucideWifiZero" | "lucideCloudCheck" | "lucideMailPlus" | "lucideHardDriveDownload" | "saxCloudChangeBold" | "saxRefreshBold" | "lucideBarcode" | "lucideCode" | "lucideScanQrCode" | "lucideQrCode" | "lucideScanLine" | "lucideListPlus" | "lucideFilePlus" | "lucideFilePlus2" | "lucideBookUp2" | "lucideFileClock" | "lucideRefreshCwOff" | "lucideListChecks" | "lucideFastForward" | "lucideBrushCleaning" | "lucideChartColumnIncreasing" | "lucideBell" | "lucideCheckCircle2" | "lucideAlertCircle" | "lucideXCircle" | "lucideLink" | "lucideDatabaseBackup" | "lucideFileCheck" | "lucideListChevronsDownUp" | "lucideListChevronsUpDown" | "lucideSun" | "lucideMoon" | "lucideLoader" | "lucideAlertOctagon" | "lucideMessageCircle" | "lucideCircleAlert" | "lucideMessageCircleQuestion" | "lucideComponent" | "lucidePanelRightOpen" | "lucideLoader2" | "lucideGithub" | "lucideLifeBuoy" | "lucideCloud" | "lucideBarChart" | "lucideHome" | "lucideFolderOpen" | "lucideSquarePen" | "lucideLayoutTemplate" | "lucideFileOutput" | "lucideCircleHelp" | "lucideGripHorizontal" | "lucideImage" | "lucideList" | "lucideHash" | "lucideMegaphone" | "lucidePenTool" | "lucideSquare" | "lucideRocket" | "lucideBarChart3" | "lucideUsers2" | "lucideGrid3x3" | "lucideFolderTree" | "lucideCheckCircle" | "lucideSliders" | "lucideFileEdit" | "lucideNavigation" | "lucideListFilter" | "lucideTextCursor" | "lucidePieChart" | "lucideUserSearch" | "lucideFolders" | "lucideSparkles" | "lucideSquareCheck" | "lucideCircleDot" | "lucideToggleLeft" | "lucideUpload" | "lucideUploadCloud" | "lucideDownload" | "lucideFile" | "lucideMusic" | "lucideFileCode" | "lucideFileJson" | "lucideFileArchive" | "lucideTable2" | "lucideGripVertical" | "lucidePin" | "lucideSearchX" | "lucideMoreVertical" | "lucideGitBranch" | "lucideAlertTriangle" | "lucideFilter" | "lucideFunnelX" | "lucideBan" | "lucideBuilding" | "lucideType" | "lucidePercent" | "lucideReceipt" | "lucideClipboardPen" | "lucidePackageCheck" | "lucideShoppingBag" | "lucideTag" | "lucideTags" | "lucideTicket" | "lucideWand2" | "lucideZoomIn" | "lucideZoomOut" | "lucideBadge" | "lucideClipboardCopy" | "lucideContact" | "lucideIdCard" | "lucideRecycle" | undefined>;
16
16
  readonly zSizeIcon: _angular_core.InputSignal<"10" | "11" | "12" | "13" | "14" | "15" | "16" | "17" | "18" | "19" | "20" | "21" | "22" | "23" | "24" | "25" | "26" | "27" | "28" | "29" | "30" | "31" | "32" | "33" | "34" | "35" | "36" | "37" | "38" | "39" | "40" | null | undefined>;
17
17
  readonly zStrokeWidthIcon: _angular_core.InputSignal<number>;
18
18
  readonly zWave: _angular_core.InputSignalWithTransform<boolean, string | boolean>;