@shival99/z-ui 1.0.29 → 1.0.31

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.
Files changed (32) hide show
  1. package/fesm2022/shival99-z-ui-components-z-breadcrumb.mjs +4 -3
  2. package/fesm2022/shival99-z-ui-components-z-breadcrumb.mjs.map +1 -1
  3. package/fesm2022/shival99-z-ui-components-z-calendar.mjs +5 -2
  4. package/fesm2022/shival99-z-ui-components-z-calendar.mjs.map +1 -1
  5. package/fesm2022/shival99-z-ui-components-z-checkbox.mjs +7 -1
  6. package/fesm2022/shival99-z-ui-components-z-checkbox.mjs.map +1 -1
  7. package/fesm2022/shival99-z-ui-components-z-editor.mjs +8 -3
  8. package/fesm2022/shival99-z-ui-components-z-editor.mjs.map +1 -1
  9. package/fesm2022/shival99-z-ui-components-z-input.mjs +4 -2
  10. package/fesm2022/shival99-z-ui-components-z-input.mjs.map +1 -1
  11. package/fesm2022/shival99-z-ui-components-z-modal.mjs +4 -1
  12. package/fesm2022/shival99-z-ui-components-z-modal.mjs.map +1 -1
  13. package/fesm2022/shival99-z-ui-components-z-select.mjs +20 -6
  14. package/fesm2022/shival99-z-ui-components-z-select.mjs.map +1 -1
  15. package/fesm2022/shival99-z-ui-components-z-table.mjs +19 -4
  16. package/fesm2022/shival99-z-ui-components-z-table.mjs.map +1 -1
  17. package/fesm2022/shival99-z-ui-components-z-toast.mjs +136 -14
  18. package/fesm2022/shival99-z-ui-components-z-toast.mjs.map +1 -1
  19. package/fesm2022/shival99-z-ui-components-z-upload.mjs +4 -2
  20. package/fesm2022/shival99-z-ui-components-z-upload.mjs.map +1 -1
  21. package/fesm2022/shival99-z-ui-providers.mjs +0 -4
  22. package/fesm2022/shival99-z-ui-providers.mjs.map +1 -1
  23. package/package.json +1 -1
  24. package/types/shival99-z-ui-components-z-calendar.d.ts +5 -4
  25. package/types/shival99-z-ui-components-z-checkbox.d.ts +1 -0
  26. package/types/shival99-z-ui-components-z-editor.d.ts +2 -1
  27. package/types/shival99-z-ui-components-z-input.d.ts +3 -2
  28. package/types/shival99-z-ui-components-z-modal.d.ts +2 -1
  29. package/types/shival99-z-ui-components-z-select.d.ts +2 -1
  30. package/types/shival99-z-ui-components-z-table.d.ts +1 -0
  31. package/types/shival99-z-ui-components-z-toast.d.ts +69 -12
  32. package/types/shival99-z-ui-components-z-upload.d.ts +4 -3
@@ -1 +1 @@
1
- {"version":3,"file":"shival99-z-ui-providers.mjs","sources":["../../../../libs/core-ui/providers/z-indexdb.provider.ts","../../../../libs/core-ui/providers/z-ngx-mask.provider.ts","../../../../libs/core-ui/providers/z-provide-scrollbar.ts","../../../../libs/core-ui/providers/z-theme.provider.ts","../../../../libs/core-ui/providers/z-translate.provider.ts","../../../../libs/core-ui/providers/types/z-ngx-mask.types.ts","../../../../libs/core-ui/providers/types/z-translate.types.ts","../../../../libs/core-ui/providers/index.ts","../../../../libs/core-ui/providers/shival99-z-ui-providers.ts"],"sourcesContent":["import { type EnvironmentProviders, InjectionToken, makeEnvironmentProviders } from '@angular/core';\nimport { type ZIndexDbConfig, ZIndexDbService } from '@shival99/z-ui/services';\n\n/** Injection token for ZIndexDbService */\nexport const Z_INDEXDB_SERVICE = new InjectionToken<ZIndexDbService>('ZIndexDbService');\n\n/**\n * Provide Z-IndexDB service with configuration\n * @param config - IndexDB configuration with multi-store support\n *\n * @example\n * ```typescript\n * // In app.config.ts\n * export const appConfig: ApplicationConfig = {\n * providers: [\n * provideZIndexDb({\n * dbName: 'MyApp',\n * version: 1,\n * stores: [\n * { name: 'cache', encrypt: true },\n * { name: 'userData', encrypt: true, protectedKeys: ['profile'] },\n * { name: 'settings', encrypt: false },\n * ],\n * defaultStore: 'cache',\n * protectedKeys: ['token'],\n * }),\n * ],\n * };\n * ```\n */\nexport function provideZIndexDb(config: ZIndexDbConfig = {}): EnvironmentProviders {\n return makeEnvironmentProviders([\n {\n provide: Z_INDEXDB_SERVICE,\n useFactory: () => new ZIndexDbService(config),\n },\n {\n provide: ZIndexDbService,\n useExisting: Z_INDEXDB_SERVICE,\n },\n ]);\n}\n","import { type EnvironmentProviders, makeEnvironmentProviders } from '@angular/core';\nimport { ZCacheService } from '@shival99/z-ui/services';\nimport { provideEnvironmentNgxMask } from 'ngx-mask';\nimport type { ZNgxMaskConfig } from './types/z-ngx-mask.types';\n\nconst LANG_CACHE_KEY = 'Z_LANGUAGE';\n\n/**\n * Get locale-specific mask configuration\n */\nfunction getMaskConfig(lang: string, config: ZNgxMaskConfig = {}) {\n const isVietnamese = lang === 'vi';\n\n return {\n validation: config.validation ?? true,\n thousandSeparator: isVietnamese ? ',' : '.',\n decimalMarker: (isVietnamese ? '.' : ',') as '.' | ',',\n allowNegativeNumbers: config.allowNegativeNumbers ?? true,\n };\n}\n\n/**\n * Provide Z-NgxMask with locale-aware configuration\n * @param config - Mask configuration\n *\n * @example\n * ```typescript\n * // In app.config.ts\n * export const appConfig: ApplicationConfig = {\n * providers: [\n * provideZNgxMask({ lang: 'vi' }),\n * ],\n * };\n * ```\n */\nexport function provideZNgxMask(config: ZNgxMaskConfig = {}): EnvironmentProviders {\n const savedLang = typeof window !== 'undefined' ? ZCacheService.get<string>(LANG_CACHE_KEY) : null;\n const lang = config.lang ?? savedLang ?? 'vi';\n const maskConfig = getMaskConfig(lang, config);\n\n return makeEnvironmentProviders([provideEnvironmentNgxMask(maskConfig)]);\n}\n","import { type EnvironmentProviders, makeEnvironmentProviders } from '@angular/core';\nimport { provideScrollbarOptions } from 'ngx-scrollbar';\n\n/**\n * Provides global scrollbar options for ngx-scrollbar\n * Use this in app.config.ts: providers: [provideZScrollbar()]\n */\nexport function provideZScrollbar(): EnvironmentProviders {\n return makeEnvironmentProviders([\n provideScrollbarOptions({\n visibility: 'hover',\n appearance: 'compact',\n withButtons: false,\n sensorThrottleTime: 200,\n }),\n ]);\n}\n","import { makeEnvironmentProviders, type EnvironmentProviders } from '@angular/core';\nimport { type ZThemeConfig, Z_THEME_CONFIG } from '@shival99/z-ui/services';\n\n/**\n * Provide theme configuration for the application\n * @param config - Theme configuration with defaultTheme and defaultDarkMode\n * @example\n * ```typescript\n * // In app.config.ts\n * export const appConfig: ApplicationConfig = {\n * providers: [\n * provideZTheme({ defaultTheme: 'hospital', defaultDarkMode: false })\n * ]\n * };\n * ```\n */\nexport function provideZTheme(config: ZThemeConfig = {}): EnvironmentProviders {\n return makeEnvironmentProviders([{ provide: Z_THEME_CONFIG, useValue: config }]);\n}\n","/* eslint-disable @stylistic/indent */\nimport { HttpClient } from '@angular/common/http';\nimport { APP_INITIALIZER, inject, makeEnvironmentProviders, type EnvironmentProviders } from '@angular/core';\nimport {\n provideTranslateService,\n TranslateLoader,\n TranslateService,\n type TranslationObject,\n} from '@ngx-translate/core';\nimport { Z_UI_TRANSLATIONS, type ZUITranslations } from '@shival99/z-ui/i18n';\nimport { forkJoin, map, type Observable, of } from 'rxjs';\nimport { catchError } from 'rxjs/operators';\nimport type { ZTranslateProviderConfig } from './types/z-translate.types';\n\n/**\n * Custom loader - merges Z-UI translations with user translations\n * Priority: Z-UI defaults < file overrides < inline overrides < user translations\n */\nclass ZTranslateHttpLoader implements TranslateLoader {\n public constructor(\n private readonly _http: HttpClient,\n private readonly _prefix: string,\n private readonly _suffix: string,\n private readonly _includeZUI: boolean,\n private readonly _zuiOverridePath?: string,\n private readonly _customZUI?: Partial<Record<string, ZUITranslations>>\n ) {}\n\n public getTranslation(lang: string): Observable<TranslationObject> {\n const userTranslations$ = this._http\n .get<TranslationObject>(`${this._prefix}${lang}${this._suffix}`)\n .pipe(catchError(() => of({} as TranslationObject)));\n\n if (!this._includeZUI) {\n return userTranslations$;\n }\n\n const zuiDefaults = Z_UI_TRANSLATIONS[lang] ?? Z_UI_TRANSLATIONS['en'] ?? {};\n const zuiFileOverrides$ = this._zuiOverridePath\n ? this._http\n .get<ZUITranslations>(`${this._zuiOverridePath}${lang}${this._suffix}`)\n .pipe(catchError(() => of({} as ZUITranslations)))\n : of({} as ZUITranslations);\n\n const inlineOverrides = this._customZUI?.[lang] ?? {};\n\n return forkJoin([of(zuiDefaults), zuiFileOverrides$, userTranslations$]).pipe(\n map(\n ([defaults, fileOverrides, user]) =>\n ({\n ...defaults,\n ...fileOverrides,\n ...inlineOverrides,\n ...(user as Record<string, unknown>),\n }) as TranslationObject\n )\n );\n }\n}\n\nexport function zCreateTranslateLoader(\n http: HttpClient,\n path = './assets/i18n/',\n extension = '.json',\n includeZUI = true,\n zuiOverridePath?: string,\n customZUI?: Partial<Record<string, ZUITranslations>>\n): TranslateLoader {\n return new ZTranslateHttpLoader(http, path, extension, includeZUI, zuiOverridePath, customZUI);\n}\n\nfunction initializeTranslate(defaultLang: string) {\n return () => {\n const translate = inject(TranslateService);\n translate.setFallbackLang(defaultLang);\n return translate.use(defaultLang).toPromise();\n };\n}\n\n/**\n * Provide Z-Translate service\n * Z-UI translations are auto-included by default\n */\nexport function provideZTranslate(config: ZTranslateProviderConfig = {}): EnvironmentProviders {\n const {\n defaultLang = 'vi',\n translationPath = './assets/i18n/',\n fileExtension = '.json',\n includeZUITranslations = true,\n zuiOverridePath,\n customZUITranslations,\n } = config;\n\n return makeEnvironmentProviders([\n provideTranslateService({\n fallbackLang: defaultLang,\n loader: {\n provide: TranslateLoader,\n useFactory: (http: HttpClient) =>\n zCreateTranslateLoader(\n http,\n translationPath,\n fileExtension,\n includeZUITranslations,\n zuiOverridePath,\n customZUITranslations\n ),\n deps: [HttpClient],\n },\n }),\n {\n provide: APP_INITIALIZER,\n useFactory: () => initializeTranslate(defaultLang),\n multi: true,\n },\n ]);\n}\n\nexport { Z_UI_TRANSLATIONS, mergeTranslations, getZUITranslations } from '@shival99/z-ui/i18n';\nexport type { ZUITranslations, ZUILanguage, ZUITranslationSet } from '@shival99/z-ui/i18n';\n","/**\n * Z-NgxMask Provider Types\n */\n\nexport interface ZNgxMaskConfig {\n /** Language code (vi, en, etc.) */\n lang?: string;\n /** Allow negative numbers */\n allowNegativeNumbers?: boolean;\n /** Enable validation */\n validation?: boolean;\n}\n","/**\n * Z-Translate Provider Types\n */\n\nimport type { ZUITranslations } from '@shival99/z-ui/i18n';\n\nexport interface ZTranslateProviderConfig {\n /** Default language (default: 'vi') */\n defaultLang?: string;\n /** Path to user translation files (default: './assets/i18n/') */\n translationPath?: string;\n /** File extension for translation files (default: '.json') */\n fileExtension?: string;\n /**\n * Whether to include Z-UI default translations (default: true)\n * Z-UI translations are merged with user translations,\n * user translations take precedence\n */\n includeZUITranslations?: boolean;\n /**\n * Path to Z-UI translation override files (optional)\n * If set, will load translations from this path to override Z-UI defaults\n * Example: './assets/i18n/z-ui/' will load './assets/i18n/z-ui/vi.json'\n *\n * File format:\n * ```json\n * {\n * \"i18n_z_ui_table_noData\": \"Bảng trống\"\n * }\n * ```\n */\n zuiOverridePath?: string;\n /**\n * Inline custom translations to override Z-UI defaults (optional)\n * Use this for simple overrides without creating separate files\n *\n * @example\n * ```typescript\n * customZUITranslations: {\n * vi: { i18n_z_ui_table_noData: 'Bảng trống' },\n * en: { i18n_z_ui_table_noData: 'Empty table' },\n * }\n * ```\n */\n customZUITranslations?: Partial<Record<string, ZUITranslations>>;\n}\n","/**\n * Providers index\n */\n\nexport { provideZIndexDb, Z_INDEXDB_SERVICE } from './z-indexdb.provider';\nexport { provideZNgxMask } from './z-ngx-mask.provider';\nexport { provideZScrollbar } from './z-provide-scrollbar';\nexport { provideZTheme } from './z-theme.provider';\nexport { provideZTranslate, zCreateTranslateLoader } from './z-translate.provider';\n\n// Export all types\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-providers.mjs","sources":["../../../../libs/core-ui/providers/z-indexdb.provider.ts","../../../../libs/core-ui/providers/z-ngx-mask.provider.ts","../../../../libs/core-ui/providers/z-scrollbar.provider.ts","../../../../libs/core-ui/providers/z-theme.provider.ts","../../../../libs/core-ui/providers/z-translate.provider.ts","../../../../libs/core-ui/providers/types/z-ngx-mask.types.ts","../../../../libs/core-ui/providers/types/z-translate.types.ts","../../../../libs/core-ui/providers/shival99-z-ui-providers.ts"],"sourcesContent":["import { type EnvironmentProviders, InjectionToken, makeEnvironmentProviders } from '@angular/core';\nimport { type ZIndexDbConfig, ZIndexDbService } from '@shival99/z-ui/services';\n\n/** Injection token for ZIndexDbService */\nexport const Z_INDEXDB_SERVICE = new InjectionToken<ZIndexDbService>('ZIndexDbService');\n\n/**\n * Provide Z-IndexDB service with configuration\n * @param config - IndexDB configuration with multi-store support\n *\n * @example\n * ```typescript\n * // In app.config.ts\n * export const appConfig: ApplicationConfig = {\n * providers: [\n * provideZIndexDb({\n * dbName: 'MyApp',\n * version: 1,\n * stores: [\n * { name: 'cache', encrypt: true },\n * { name: 'userData', encrypt: true, protectedKeys: ['profile'] },\n * { name: 'settings', encrypt: false },\n * ],\n * defaultStore: 'cache',\n * protectedKeys: ['token'],\n * }),\n * ],\n * };\n * ```\n */\nexport function provideZIndexDb(config: ZIndexDbConfig = {}): EnvironmentProviders {\n return makeEnvironmentProviders([\n {\n provide: Z_INDEXDB_SERVICE,\n useFactory: () => new ZIndexDbService(config),\n },\n {\n provide: ZIndexDbService,\n useExisting: Z_INDEXDB_SERVICE,\n },\n ]);\n}\n","import { type EnvironmentProviders, makeEnvironmentProviders } from '@angular/core';\nimport { ZCacheService } from '@shival99/z-ui/services';\nimport { provideEnvironmentNgxMask } from 'ngx-mask';\nimport type { ZNgxMaskConfig } from './types/z-ngx-mask.types';\n\nconst LANG_CACHE_KEY = 'Z_LANGUAGE';\n\n/**\n * Get locale-specific mask configuration\n */\nfunction getMaskConfig(lang: string, config: ZNgxMaskConfig = {}) {\n const isVietnamese = lang === 'vi';\n\n return {\n validation: config.validation ?? true,\n thousandSeparator: isVietnamese ? ',' : '.',\n decimalMarker: (isVietnamese ? '.' : ',') as '.' | ',',\n allowNegativeNumbers: config.allowNegativeNumbers ?? true,\n };\n}\n\n/**\n * Provide Z-NgxMask with locale-aware configuration\n * @param config - Mask configuration\n *\n * @example\n * ```typescript\n * // In app.config.ts\n * export const appConfig: ApplicationConfig = {\n * providers: [\n * provideZNgxMask({ lang: 'vi' }),\n * ],\n * };\n * ```\n */\nexport function provideZNgxMask(config: ZNgxMaskConfig = {}): EnvironmentProviders {\n const savedLang = typeof window !== 'undefined' ? ZCacheService.get<string>(LANG_CACHE_KEY) : null;\n const lang = config.lang ?? savedLang ?? 'vi';\n const maskConfig = getMaskConfig(lang, config);\n\n return makeEnvironmentProviders([provideEnvironmentNgxMask(maskConfig)]);\n}\n","import { type EnvironmentProviders, makeEnvironmentProviders } from '@angular/core';\nimport { provideScrollbarOptions } from 'ngx-scrollbar';\n\n/**\n * Provides global scrollbar options for ngx-scrollbar\n * Use this in app.config.ts: providers: [provideZScrollbar()]\n */\nexport function provideZScrollbar(): EnvironmentProviders {\n return makeEnvironmentProviders([\n provideScrollbarOptions({\n visibility: 'hover',\n appearance: 'compact',\n withButtons: false,\n sensorThrottleTime: 200,\n }),\n ]);\n}\n","import { makeEnvironmentProviders, type EnvironmentProviders } from '@angular/core';\nimport { type ZThemeConfig, Z_THEME_CONFIG } from '@shival99/z-ui/services';\n\n/**\n * Provide theme configuration for the application\n * @param config - Theme configuration with defaultTheme and defaultDarkMode\n * @example\n * ```typescript\n * // In app.config.ts\n * export const appConfig: ApplicationConfig = {\n * providers: [\n * provideZTheme({ defaultTheme: 'hospital', defaultDarkMode: false })\n * ]\n * };\n * ```\n */\nexport function provideZTheme(config: ZThemeConfig = {}): EnvironmentProviders {\n return makeEnvironmentProviders([{ provide: Z_THEME_CONFIG, useValue: config }]);\n}\n","/* eslint-disable @stylistic/indent */\nimport { HttpClient } from '@angular/common/http';\nimport { APP_INITIALIZER, inject, makeEnvironmentProviders, type EnvironmentProviders } from '@angular/core';\nimport {\n provideTranslateService,\n TranslateLoader,\n TranslateService,\n type TranslationObject,\n} from '@ngx-translate/core';\nimport { Z_UI_TRANSLATIONS, type ZUITranslations } from '@shival99/z-ui/i18n';\nimport { forkJoin, map, type Observable, of } from 'rxjs';\nimport { catchError } from 'rxjs/operators';\nimport type { ZTranslateProviderConfig } from './types/z-translate.types';\n\n/**\n * Custom loader - merges Z-UI translations with user translations\n * Priority: Z-UI defaults < file overrides < inline overrides < user translations\n */\nclass ZTranslateHttpLoader implements TranslateLoader {\n public constructor(\n private readonly _http: HttpClient,\n private readonly _prefix: string,\n private readonly _suffix: string,\n private readonly _includeZUI: boolean,\n private readonly _zuiOverridePath?: string,\n private readonly _customZUI?: Partial<Record<string, ZUITranslations>>\n ) {}\n\n public getTranslation(lang: string): Observable<TranslationObject> {\n const userTranslations$ = this._http\n .get<TranslationObject>(`${this._prefix}${lang}${this._suffix}`)\n .pipe(catchError(() => of({} as TranslationObject)));\n\n if (!this._includeZUI) {\n return userTranslations$;\n }\n\n const zuiDefaults = Z_UI_TRANSLATIONS[lang] ?? Z_UI_TRANSLATIONS['en'] ?? {};\n const zuiFileOverrides$ = this._zuiOverridePath\n ? this._http\n .get<ZUITranslations>(`${this._zuiOverridePath}${lang}${this._suffix}`)\n .pipe(catchError(() => of({} as ZUITranslations)))\n : of({} as ZUITranslations);\n\n const inlineOverrides = this._customZUI?.[lang] ?? {};\n\n return forkJoin([of(zuiDefaults), zuiFileOverrides$, userTranslations$]).pipe(\n map(\n ([defaults, fileOverrides, user]) =>\n ({\n ...defaults,\n ...fileOverrides,\n ...inlineOverrides,\n ...(user as Record<string, unknown>),\n }) as TranslationObject\n )\n );\n }\n}\n\nexport function zCreateTranslateLoader(\n http: HttpClient,\n path = './assets/i18n/',\n extension = '.json',\n includeZUI = true,\n zuiOverridePath?: string,\n customZUI?: Partial<Record<string, ZUITranslations>>\n): TranslateLoader {\n return new ZTranslateHttpLoader(http, path, extension, includeZUI, zuiOverridePath, customZUI);\n}\n\nfunction initializeTranslate(defaultLang: string) {\n return () => {\n const translate = inject(TranslateService);\n translate.setFallbackLang(defaultLang);\n return translate.use(defaultLang).toPromise();\n };\n}\n\n/**\n * Provide Z-Translate service\n * Z-UI translations are auto-included by default\n */\nexport function provideZTranslate(config: ZTranslateProviderConfig = {}): EnvironmentProviders {\n const {\n defaultLang = 'vi',\n translationPath = './assets/i18n/',\n fileExtension = '.json',\n includeZUITranslations = true,\n zuiOverridePath,\n customZUITranslations,\n } = config;\n\n return makeEnvironmentProviders([\n provideTranslateService({\n fallbackLang: defaultLang,\n loader: {\n provide: TranslateLoader,\n useFactory: (http: HttpClient) =>\n zCreateTranslateLoader(\n http,\n translationPath,\n fileExtension,\n includeZUITranslations,\n zuiOverridePath,\n customZUITranslations\n ),\n deps: [HttpClient],\n },\n }),\n {\n provide: APP_INITIALIZER,\n useFactory: () => initializeTranslate(defaultLang),\n multi: true,\n },\n ]);\n}\n\nexport { Z_UI_TRANSLATIONS, mergeTranslations, getZUITranslations } from '@shival99/z-ui/i18n';\nexport type { ZUITranslations, ZUILanguage, ZUITranslationSet } from '@shival99/z-ui/i18n';\n","/**\n * Z-NgxMask Provider Types\n */\n\nexport interface ZNgxMaskConfig {\n /** Language code (vi, en, etc.) */\n lang?: string;\n /** Allow negative numbers */\n allowNegativeNumbers?: boolean;\n /** Enable validation */\n validation?: boolean;\n}\n","/**\n * Z-Translate Provider Types\n */\n\nimport type { ZUITranslations } from '@shival99/z-ui/i18n';\n\nexport interface ZTranslateProviderConfig {\n /** Default language (default: 'vi') */\n defaultLang?: string;\n /** Path to user translation files (default: './assets/i18n/') */\n translationPath?: string;\n /** File extension for translation files (default: '.json') */\n fileExtension?: string;\n /**\n * Whether to include Z-UI default translations (default: true)\n * Z-UI translations are merged with user translations,\n * user translations take precedence\n */\n includeZUITranslations?: boolean;\n /**\n * Path to Z-UI translation override files (optional)\n * If set, will load translations from this path to override Z-UI defaults\n * Example: './assets/i18n/z-ui/' will load './assets/i18n/z-ui/vi.json'\n *\n * File format:\n * ```json\n * {\n * \"i18n_z_ui_table_noData\": \"Bảng trống\"\n * }\n * ```\n */\n zuiOverridePath?: string;\n /**\n * Inline custom translations to override Z-UI defaults (optional)\n * Use this for simple overrides without creating separate files\n *\n * @example\n * ```typescript\n * customZUITranslations: {\n * vi: { i18n_z_ui_table_noData: 'Bảng trống' },\n * en: { i18n_z_ui_table_noData: 'Empty table' },\n * }\n * ```\n */\n customZUITranslations?: Partial<Record<string, ZUITranslations>>;\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.29",
3
+ "version": "1.0.31",
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",
@@ -128,6 +128,7 @@ declare class ZCalendarComponent implements OnInit, ControlValueAccessor {
128
128
  private readonly _destroyRef;
129
129
  private readonly _cdr;
130
130
  private readonly _translate;
131
+ private readonly _currentLang;
131
132
  private _onChange;
132
133
  private _onTouched;
133
134
  private _ngControl;
@@ -285,16 +286,16 @@ declare class ZCalendarComponent implements OnInit, ControlValueAccessor {
285
286
 
286
287
  declare const zCalendarVariants: (props?: ({
287
288
  zSize?: "sm" | "default" | "lg" | null | undefined;
288
- zStatus?: "default" | "disabled" | "open" | "error" | "readonly" | null | undefined;
289
+ zStatus?: "default" | "disabled" | "readonly" | "open" | "error" | null | undefined;
289
290
  } & class_variance_authority_types.ClassProp) | undefined) => string;
290
291
  declare const zCalendarDayVariants: (props?: ({
291
- state?: "default" | "today" | "selected" | "inRange" | "rangeStart" | "rangeEnd" | "rangeSingle" | "disabled" | "otherMonth" | "hovered" | null | undefined;
292
+ state?: "default" | "disabled" | "today" | "selected" | "inRange" | "rangeStart" | "rangeEnd" | "rangeSingle" | "otherMonth" | "hovered" | null | undefined;
292
293
  } & class_variance_authority_types.ClassProp) | undefined) => string;
293
294
  declare const zCalendarMonthVariants: (props?: ({
294
- state?: "default" | "selected" | "disabled" | "current" | null | undefined;
295
+ state?: "default" | "disabled" | "selected" | "current" | null | undefined;
295
296
  } & class_variance_authority_types.ClassProp) | undefined) => string;
296
297
  declare const zCalendarYearVariants: (props?: ({
297
- state?: "default" | "selected" | "disabled" | "current" | null | undefined;
298
+ state?: "default" | "disabled" | "selected" | "current" | null | undefined;
298
299
  } & class_variance_authority_types.ClassProp) | undefined) => string;
299
300
 
300
301
  export { ZCalendarComponent, zCalendarDayVariants, zCalendarMonthVariants, zCalendarVariants, zCalendarYearVariants };
@@ -36,6 +36,7 @@ declare class ZCheckboxComponent implements ControlValueAccessor, AfterViewInit
36
36
  readonly zCheckAll: _angular_core.InputSignalWithTransform<boolean, string | boolean>;
37
37
  readonly zCheckAllText: _angular_core.InputSignal<string>;
38
38
  private readonly _translate;
39
+ private readonly _currentLang;
39
40
  readonly zChecked: _angular_core.ModelSignal<boolean>;
40
41
  readonly zGroupValue: _angular_core.ModelSignal<(string | number)[]>;
41
42
  readonly zChange: _angular_core.OutputEmitterRef<boolean>;
@@ -63,6 +63,7 @@ declare class ZEditorComponent implements OnInit, ControlValueAccessor {
63
63
  private readonly _injector;
64
64
  private readonly _destroyRef;
65
65
  private readonly _translate;
66
+ private readonly _currentLang;
66
67
  private _onChange;
67
68
  private _onTouched;
68
69
  private _ngControl;
@@ -109,7 +110,7 @@ declare class ZEditorComponent implements OnInit, ControlValueAccessor {
109
110
 
110
111
  declare const zEditorVariants: (props?: ({
111
112
  zSize?: "sm" | "default" | "lg" | null | undefined;
112
- zStatus?: "default" | "error" | "disabled" | "readonly" | null | undefined;
113
+ zStatus?: "default" | "disabled" | "readonly" | "error" | null | undefined;
113
114
  } & class_variance_authority_types.ClassProp) | undefined) => string;
114
115
  type ZEditorVariants = VariantProps<typeof zEditorVariants>;
115
116
 
@@ -96,6 +96,7 @@ declare class ZInputComponent implements OnInit, ControlValueAccessor {
96
96
  private readonly _destroyRef;
97
97
  private readonly _toastService;
98
98
  private readonly _translate;
99
+ private readonly _currentLang;
99
100
  private readonly _searchSubject;
100
101
  private readonly _changeSubject;
101
102
  private readonly _asyncValidationSubject;
@@ -177,11 +178,11 @@ declare class ZInputComponent implements OnInit, ControlValueAccessor {
177
178
 
178
179
  declare const zInputVariants: (props?: ({
179
180
  zSize?: "sm" | "default" | "lg" | null | undefined;
180
- zStatus?: "default" | "error" | "disabled" | "readonly" | null | undefined;
181
+ zStatus?: "default" | "disabled" | "readonly" | "error" | null | undefined;
181
182
  } & class_variance_authority_types.ClassProp) | undefined) => string;
182
183
  type ZInputVariants = VariantProps<typeof zInputVariants>;
183
184
  declare const zTextareaVariants: (props?: ({
184
- zStatus?: "default" | "error" | "disabled" | "readonly" | null | undefined;
185
+ zStatus?: "default" | "disabled" | "readonly" | "error" | null | undefined;
185
186
  } & class_variance_authority_types.ClassProp) | undefined) => string;
186
187
  type ZTextareaVariants = VariantProps<typeof zTextareaVariants>;
187
188
 
@@ -218,7 +218,7 @@ declare class ZModalComponent<T, U> extends BasePortalOutlet implements OnDestro
218
218
  protected readonly effectiveOkText: _angular_core.Signal<string | null | undefined>;
219
219
  protected readonly effectiveCancelText: _angular_core.Signal<string | null | undefined>;
220
220
  protected readonly effectiveOkDestructive: _angular_core.Signal<boolean | undefined>;
221
- protected readonly effectiveTypeOk: _angular_core.Signal<"info" | "warning" | "error" | "link" | "default" | "primary" | "secondary" | "destructive" | "success" | "outline" | "outline-primary" | "outline-secondary" | "outline-success" | "outline-info" | "outline-warning" | "outline-error" | "outline-destructive" | "outline-success-secondary" | "outline-info-secondary" | "outline-warning-secondary" | "outline-error-secondary" | "outline-destructive-secondary" | "outline-primary-secondary" | "ghost" | "ghost-primary" | "ghost-success" | "ghost-info" | "ghost-warning" | "ghost-error" | "ghost-destructive" | "subtle" | null | undefined>;
221
+ protected readonly effectiveTypeOk: _angular_core.Signal<"error" | "info" | "warning" | "default" | "primary" | "secondary" | "destructive" | "success" | "outline" | "outline-primary" | "outline-secondary" | "outline-success" | "outline-info" | "outline-warning" | "outline-error" | "outline-destructive" | "outline-success-secondary" | "outline-info-secondary" | "outline-warning-secondary" | "outline-error-secondary" | "outline-destructive-secondary" | "outline-primary-secondary" | "ghost" | "ghost-primary" | "ghost-success" | "ghost-info" | "ghost-warning" | "ghost-error" | "ghost-destructive" | "subtle" | "link" | null | undefined>;
222
222
  protected readonly effectiveOkDisabled: _angular_core.Signal<boolean | undefined>;
223
223
  protected readonly effectiveLoading: _angular_core.Signal<boolean>;
224
224
  protected readonly effectiveContentLoading: _angular_core.Signal<boolean>;
@@ -250,6 +250,7 @@ declare class ZModalService {
250
250
  private readonly _injector;
251
251
  private readonly _platformId;
252
252
  private readonly _translate;
253
+ private readonly _currentLang;
253
254
  create<T, U>(config: ZModalOptions<T, U>): ZModalRef<T>;
254
255
  show<U = unknown>(options: ZModalConfirmOptions<U>): ZModalRef<unknown>;
255
256
  info<U = unknown>(options: ZModalConfirmOptions<U>): ZModalRef<unknown>;
@@ -150,6 +150,7 @@ declare class ZSelectComponent<T = unknown> implements OnInit, ControlValueAcces
150
150
  private readonly _injector;
151
151
  private readonly _destroyRef;
152
152
  private readonly _translate;
153
+ private readonly _currentLang;
153
154
  private _onChange;
154
155
  private _onTouched;
155
156
  private _ngControl;
@@ -251,7 +252,7 @@ declare class ZTagClassesPipe implements PipeTransform {
251
252
 
252
253
  declare const zSelectVariants: (props?: ({
253
254
  zSize?: "sm" | "default" | "lg" | null | undefined;
254
- zStatus?: "default" | "open" | "error" | "disabled" | "readonly" | null | undefined;
255
+ zStatus?: "default" | "disabled" | "readonly" | "open" | "error" | null | undefined;
255
256
  } & class_variance_authority_types.ClassProp) | undefined) => string;
256
257
  declare const zSelectTagVariants: (props?: ({
257
258
  zSize?: "sm" | "default" | "lg" | null | undefined;
@@ -410,6 +410,7 @@ declare class ZTableFilterComponent<T> implements OnDestroy {
410
410
  readonly zColumn: _angular_core.InputSignal<Column<unknown, unknown>>;
411
411
  readonly zTable: _angular_core.InputSignal<Table<T>>;
412
412
  private readonly _translate;
413
+ private readonly _currentLang;
413
414
  private _debounceTimeout;
414
415
  private readonly _debounceMs;
415
416
  private readonly _columnDef;
@@ -1,4 +1,5 @@
1
1
  import * as _angular_core from '@angular/core';
2
+ import { InjectionToken, EnvironmentProviders } from '@angular/core';
2
3
  import { ClassValue } from 'clsx';
3
4
  import { ExternalToast } from 'ngx-sonner';
4
5
  import * as class_variance_authority_types from 'class-variance-authority/types';
@@ -7,7 +8,9 @@ import { VariantProps } from 'class-variance-authority';
7
8
  type ZToastTheme = 'light' | 'dark' | 'system';
8
9
  type ZToastPosition = 'top-left' | 'top-center' | 'top-right' | 'bottom-left' | 'bottom-center' | 'bottom-right';
9
10
  type ZToastDir = 'ltr' | 'rtl' | 'auto';
10
- type ZToastType = 'default' | 'success' | 'error' | 'warning' | 'info';
11
+ type ZToastType = 'default' | 'success' | 'error' | 'warning' | 'info' | 'loading';
12
+ declare const Z_TOAST_DATA: InjectionToken<any>;
13
+ declare const Z_TOASTER_CONFIG: InjectionToken<ZToasterConfig>;
11
14
  interface ZToastOptions extends ExternalToast {
12
15
  description?: string;
13
16
  duration?: number;
@@ -18,27 +21,77 @@ interface ZToastPromiseMessages<T> {
18
21
  success: string | ((data: T) => string);
19
22
  error: string | ((error: unknown) => string);
20
23
  }
24
+ interface ZToasterConfig {
25
+ zTheme?: ZToastTheme;
26
+ zPosition?: ZToastPosition;
27
+ zRichColors?: boolean;
28
+ zExpand?: boolean;
29
+ zDuration?: number;
30
+ zVisibleToasts?: number;
31
+ zCloseButton?: boolean;
32
+ zDir?: ZToastDir;
33
+ }
34
+ declare const Z_TOASTER_DEFAULT_CONFIG: ZToasterConfig;
21
35
 
22
36
  declare class ZToastComponent {
23
37
  readonly class: _angular_core.InputSignal<ClassValue>;
24
38
  readonly zVariant: _angular_core.InputSignal<"default" | "success" | "error" | "warning" | "info" | null | undefined>;
25
- readonly zTheme: _angular_core.InputSignal<ZToastTheme>;
26
- readonly zPosition: _angular_core.InputSignal<ZToastPosition>;
27
- readonly zRichColors: _angular_core.InputSignal<boolean>;
28
- readonly zExpand: _angular_core.InputSignal<boolean>;
29
- readonly zDuration: _angular_core.InputSignal<number>;
30
- readonly zVisibleToasts: _angular_core.InputSignal<number>;
31
- readonly zCloseButton: _angular_core.InputSignal<boolean>;
39
+ readonly zTheme: _angular_core.InputSignal<ZToastTheme | undefined>;
40
+ readonly zPosition: _angular_core.InputSignal<ZToastPosition | undefined>;
41
+ readonly zRichColors: _angular_core.InputSignal<boolean | undefined>;
42
+ readonly zExpand: _angular_core.InputSignal<boolean | undefined>;
43
+ readonly zDuration: _angular_core.InputSignal<number | undefined>;
44
+ readonly zVisibleToasts: _angular_core.InputSignal<number | undefined>;
45
+ readonly zCloseButton: _angular_core.InputSignal<boolean | undefined>;
32
46
  readonly zToastOptions: _angular_core.InputSignal<ZToastOptions>;
33
- readonly zDir: _angular_core.InputSignal<ZToastDir>;
47
+ readonly zDir: _angular_core.InputSignal<ZToastDir | undefined>;
48
+ private readonly _themeService;
49
+ private readonly _config;
50
+ protected readonly effectiveTheme: _angular_core.Signal<ZToastTheme>;
51
+ protected readonly effectivePosition: _angular_core.Signal<ZToastPosition>;
52
+ protected readonly effectiveRichColors: _angular_core.Signal<boolean>;
53
+ protected readonly effectiveExpand: _angular_core.Signal<boolean>;
54
+ protected readonly effectiveDuration: _angular_core.Signal<number>;
55
+ protected readonly effectiveVisibleToasts: _angular_core.Signal<number>;
56
+ protected readonly effectiveCloseButton: _angular_core.Signal<boolean>;
57
+ protected readonly effectiveDir: _angular_core.Signal<ZToastDir>;
34
58
  protected readonly zClasses: _angular_core.Signal<string>;
35
59
  protected readonly detectTheme: _angular_core.Signal<"light" | "dark">;
36
- private readonly _themeService;
37
60
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<ZToastComponent, never>;
38
61
  static ɵcmp: _angular_core.ɵɵComponentDeclaration<ZToastComponent, "z-toast, z-toaster", ["zToast"], { "class": { "alias": "class"; "required": false; "isSignal": true; }; "zVariant": { "alias": "zVariant"; "required": false; "isSignal": true; }; "zTheme": { "alias": "zTheme"; "required": false; "isSignal": true; }; "zPosition": { "alias": "zPosition"; "required": false; "isSignal": true; }; "zRichColors": { "alias": "zRichColors"; "required": false; "isSignal": true; }; "zExpand": { "alias": "zExpand"; "required": false; "isSignal": true; }; "zDuration": { "alias": "zDuration"; "required": false; "isSignal": true; }; "zVisibleToasts": { "alias": "zVisibleToasts"; "required": false; "isSignal": true; }; "zCloseButton": { "alias": "zCloseButton"; "required": false; "isSignal": true; }; "zToastOptions": { "alias": "zToastOptions"; "required": false; "isSignal": true; }; "zDir": { "alias": "zDir"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
39
62
  }
40
63
 
64
+ /**
65
+ * Provides global toast configuration options
66
+ * Use this in app.config.ts: providers: [provideZToast({ zPosition: 'top-right' })]
67
+ *
68
+ * @param config - Partial configuration to override default options
69
+ * @returns EnvironmentProviders for the toast service
70
+ *
71
+ * @example
72
+ * ```typescript
73
+ * // In app.config.ts
74
+ * export const appConfig: ApplicationConfig = {
75
+ * providers: [
76
+ * provideZToast({
77
+ * zPosition: 'top-right',
78
+ * zDuration: 5000,
79
+ * zCloseButton: true,
80
+ * }),
81
+ * ],
82
+ * };
83
+ * ```
84
+ */
85
+ declare function provideZToast(config?: Partial<ZToasterConfig>): EnvironmentProviders;
86
+
41
87
  declare class ZToastService {
88
+ private readonly _overlay;
89
+ private readonly _injector;
90
+ private readonly _platformId;
91
+ private readonly _providedConfig;
92
+ private _overlayRef;
93
+ private _toasterAttached;
94
+ create(config?: ZToasterConfig): void;
42
95
  show(message: string, options?: ZToastOptions): string | number;
43
96
  success(message: string, options?: ZToastOptions): string | number;
44
97
  error(message: string, options?: ZToastOptions): string | number;
@@ -48,6 +101,10 @@ declare class ZToastService {
48
101
  promise<T>(promise: Promise<T>, messages: ZToastPromiseMessages<T>): string | number | undefined;
49
102
  dismiss(toastId?: string | number): void;
50
103
  dismissAll(): void;
104
+ destroy(): void;
105
+ private _ensureToasterAttached;
106
+ private _attachToaster;
107
+ private _createOverlay;
51
108
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<ZToastService, never>;
52
109
  static ɵprov: _angular_core.ɵɵInjectableDeclaration<ZToastService>;
53
110
  }
@@ -57,5 +114,5 @@ declare const zToastVariants: (props?: ({
57
114
  } & class_variance_authority_types.ClassProp) | undefined) => string;
58
115
  type ZToastVariants = VariantProps<typeof zToastVariants>;
59
116
 
60
- export { ZToastComponent, ZToastService, zToastVariants };
61
- export type { ZToastOptions, ZToastPosition, ZToastType, ZToastVariants };
117
+ export { ZToastComponent, ZToastService, Z_TOASTER_CONFIG, Z_TOASTER_DEFAULT_CONFIG, Z_TOAST_DATA, provideZToast, zToastVariants };
118
+ export type { ZToastDir, ZToastOptions, ZToastPosition, ZToastPromiseMessages, ZToastTheme, ZToastType, ZToastVariants, ZToasterConfig };
@@ -77,6 +77,7 @@ declare class ZUploadComponent implements OnInit, ControlValueAccessor {
77
77
  private readonly _injector;
78
78
  private readonly _destroyRef;
79
79
  private readonly _translate;
80
+ private readonly _currentLang;
80
81
  private _onChange;
81
82
  private _onTouched;
82
83
  private _ngControl;
@@ -86,7 +87,7 @@ declare class ZUploadComponent implements OnInit, ControlValueAccessor {
86
87
  protected readonly hasError: _angular_core.Signal<boolean>;
87
88
  protected readonly showError: _angular_core.Signal<boolean>;
88
89
  protected readonly errorMessage: _angular_core.Signal<string>;
89
- protected readonly currentStatus: _angular_core.Signal<"default" | "error" | "disabled" | "readonly" | "active">;
90
+ protected readonly currentStatus: _angular_core.Signal<"default" | "disabled" | "readonly" | "error" | "active">;
90
91
  protected readonly dropzoneClasses: _angular_core.Signal<string>;
91
92
  protected readonly acceptTypes: _angular_core.Signal<string>;
92
93
  protected readonly formatFileSize: (bytes: number) => string;
@@ -125,11 +126,11 @@ declare class ZUploadComponent implements OnInit, ControlValueAccessor {
125
126
 
126
127
  declare const zUploadDropzoneVariants: (props?: ({
127
128
  zSize?: "sm" | "default" | "lg" | null | undefined;
128
- zStatus?: "default" | "error" | "active" | "disabled" | "readonly" | null | undefined;
129
+ zStatus?: "default" | "disabled" | "readonly" | "error" | "active" | null | undefined;
129
130
  } & class_variance_authority_types.ClassProp) | undefined) => string;
130
131
  type ZUploadDropzoneVariants = VariantProps<typeof zUploadDropzoneVariants>;
131
132
  declare const zUploadFileItemVariants: (props?: ({
132
- zStatus?: "pending" | "uploading" | "success" | "error" | null | undefined;
133
+ zStatus?: "error" | "pending" | "uploading" | "success" | null | undefined;
133
134
  } & class_variance_authority_types.ClassProp) | undefined) => string;
134
135
  type ZUploadFileItemVariants = VariantProps<typeof zUploadFileItemVariants>;
135
136