@shival99/z-ui 1.0.30 → 1.0.32

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 (28) hide show
  1. package/fesm2022/shival99-z-ui-components-z-breadcrumb.mjs +12 -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 +34 -13
  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-upload.mjs +4 -2
  18. package/fesm2022/shival99-z-ui-components-z-upload.mjs.map +1 -1
  19. package/package.json +1 -1
  20. package/types/shival99-z-ui-components-z-breadcrumb.d.ts +9 -1
  21. package/types/shival99-z-ui-components-z-calendar.d.ts +1 -0
  22. package/types/shival99-z-ui-components-z-checkbox.d.ts +1 -0
  23. package/types/shival99-z-ui-components-z-editor.d.ts +1 -0
  24. package/types/shival99-z-ui-components-z-input.d.ts +3 -2
  25. package/types/shival99-z-ui-components-z-modal.d.ts +1 -0
  26. package/types/shival99-z-ui-components-z-select.d.ts +10 -7
  27. package/types/shival99-z-ui-components-z-table.d.ts +1 -0
  28. package/types/shival99-z-ui-components-z-upload.d.ts +1 -0
@@ -1,7 +1,8 @@
1
1
  import * as i0 from '@angular/core';
2
- import { input, output, computed, ViewEncapsulation, ChangeDetectionStrategy, Component } from '@angular/core';
2
+ import { inject, input, output, computed, ViewEncapsulation, ChangeDetectionStrategy, Component } from '@angular/core';
3
3
  import { RouterLink } from '@angular/router';
4
4
  import { ZIconComponent } from '@shival99/z-ui/components/z-icon';
5
+ import { ZTranslateService } from '@shival99/z-ui/services';
5
6
  import { zTransform, zMergeClasses } from '@shival99/z-ui/utils';
6
7
  import { cva } from 'class-variance-authority';
7
8
 
@@ -35,6 +36,7 @@ const zBreadcrumbItemVariants = cva(['inline-flex items-center gap-1 transition-
35
36
  });
36
37
 
37
38
  class ZBreadcrumbComponent {
39
+ _zTranslate = inject(ZTranslateService);
38
40
  class = input('', ...(ngDevMode ? [{ debugName: "class" }] : []));
39
41
  zItems = input([], ...(ngDevMode ? [{ debugName: "zItems" }] : []));
40
42
  zSize = input('default', ...(ngDevMode ? [{ debugName: "zSize" }] : []));
@@ -44,6 +46,13 @@ class ZBreadcrumbComponent {
44
46
  zShowHome = input(false, { ...(ngDevMode ? { debugName: "zShowHome" } : {}), transform: zTransform });
45
47
  zItemClick = output();
46
48
  zClasses = computed(() => zMergeClasses(zBreadcrumbVariants({ zSize: this.zSize() }), this.class()), ...(ngDevMode ? [{ debugName: "zClasses" }] : []));
49
+ translatedItems = computed(() => {
50
+ this._zTranslate.currentLang();
51
+ return this.zItems().map(item => ({
52
+ ...item,
53
+ translatedLabel: this._zTranslate.instant(item.label),
54
+ }));
55
+ }, ...(ngDevMode ? [{ debugName: "translatedItems" }] : []));
47
56
  getItemClasses(item, isLast) {
48
57
  return zBreadcrumbItemVariants({
49
58
  isActive: isLast,
@@ -57,13 +66,13 @@ class ZBreadcrumbComponent {
57
66
  this.zItemClick.emit(item);
58
67
  }
59
68
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.6", ngImport: i0, type: ZBreadcrumbComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
60
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.0.6", type: ZBreadcrumbComponent, isStandalone: true, selector: "z-breadcrumb", inputs: { class: { classPropertyName: "class", publicName: "class", isSignal: true, isRequired: false, transformFunction: null }, zItems: { classPropertyName: "zItems", publicName: "zItems", isSignal: true, isRequired: false, transformFunction: null }, zSize: { classPropertyName: "zSize", publicName: "zSize", isSignal: true, isRequired: false, transformFunction: null }, zSeparator: { classPropertyName: "zSeparator", publicName: "zSeparator", isSignal: true, isRequired: false, transformFunction: null }, zSeparatorSize: { classPropertyName: "zSeparatorSize", publicName: "zSeparatorSize", isSignal: true, isRequired: false, transformFunction: null }, zHomeIcon: { classPropertyName: "zHomeIcon", publicName: "zHomeIcon", isSignal: true, isRequired: false, transformFunction: null }, zShowHome: { classPropertyName: "zShowHome", publicName: "zShowHome", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { zItemClick: "zItemClick" }, host: { properties: { "class": "zClasses()" } }, ngImport: i0, template: "<nav aria-label=\"Breadcrumb\">\n <ol class=\"flex items-center\">\n @if (zShowHome() && zHomeIcon()) {\n <li class=\"flex items-center\">\n <span\n class=\"text-muted-foreground hover:text-foreground cursor-pointer transition-colors\"\n (click)=\"onItemClick({ label: 'Home', path: '/' }, false)\">\n <z-icon [zType]=\"zHomeIcon()!\" [zSize]=\"zSeparatorSize()\" />\n </span>\n @if (zItems().length > 0) {\n <z-icon [zType]=\"zSeparator()\" [zSize]=\"zSeparatorSize()\" class=\"text-muted-foreground/50 mx-1.5 shrink-0\" />\n }\n </li>\n }\n\n @for (item of zItems(); track item.label; let isLast = $last; let isFirst = $first) {\n <li class=\"flex items-center\">\n @if (item.path && !isLast && !item.disabled) {\n <a [routerLink]=\"item.path\" [class]=\"getItemClasses(item, isLast)\" (click)=\"onItemClick(item, isLast)\">\n @if (item.icon) {\n <z-icon [zType]=\"item.icon\" [zSize]=\"zSeparatorSize()\" />\n }\n <span>{{ item.label }}</span>\n </a>\n } @else {\n <span [class]=\"getItemClasses(item, isLast)\" (click)=\"onItemClick(item, isLast)\">\n @if (item.icon) {\n <z-icon [zType]=\"item.icon\" [zSize]=\"zSeparatorSize()\" />\n }\n <span>{{ item.label }}</span>\n </span>\n }\n\n @if (!isLast) {\n <z-icon [zType]=\"zSeparator()\" [zSize]=\"zSeparatorSize()\" class=\"text-muted-foreground/50 mx-1.5 shrink-0\" />\n }\n </li>\n }\n </ol>\n</nav>\n", dependencies: [{ kind: "component", type: ZIconComponent, selector: "z-icon, [z-icon]", inputs: ["class", "zType", "zSize", "zStrokeWidth", "zSvg"] }, { kind: "directive", type: RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "info", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
69
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.0.6", type: ZBreadcrumbComponent, isStandalone: true, selector: "z-breadcrumb", inputs: { class: { classPropertyName: "class", publicName: "class", isSignal: true, isRequired: false, transformFunction: null }, zItems: { classPropertyName: "zItems", publicName: "zItems", isSignal: true, isRequired: false, transformFunction: null }, zSize: { classPropertyName: "zSize", publicName: "zSize", isSignal: true, isRequired: false, transformFunction: null }, zSeparator: { classPropertyName: "zSeparator", publicName: "zSeparator", isSignal: true, isRequired: false, transformFunction: null }, zSeparatorSize: { classPropertyName: "zSeparatorSize", publicName: "zSeparatorSize", isSignal: true, isRequired: false, transformFunction: null }, zHomeIcon: { classPropertyName: "zHomeIcon", publicName: "zHomeIcon", isSignal: true, isRequired: false, transformFunction: null }, zShowHome: { classPropertyName: "zShowHome", publicName: "zShowHome", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { zItemClick: "zItemClick" }, host: { properties: { "class": "zClasses()" } }, ngImport: i0, template: "<nav aria-label=\"Breadcrumb\">\n <ol class=\"flex items-center\">\n @if (zShowHome() && zHomeIcon()) {\n <li class=\"flex items-center\">\n <span\n class=\"text-muted-foreground hover:text-foreground cursor-pointer transition-colors\"\n (click)=\"onItemClick({ label: 'Home', path: '/' }, false)\">\n <z-icon [zType]=\"zHomeIcon()!\" [zSize]=\"zSeparatorSize()\" />\n </span>\n @if (translatedItems().length > 0) {\n <z-icon [zType]=\"zSeparator()\" [zSize]=\"zSeparatorSize()\" class=\"text-muted-foreground/50 mx-1.5 shrink-0\" />\n }\n </li>\n }\n\n @for (item of translatedItems(); track item.label; let isLast = $last; let isFirst = $first) {\n <li class=\"flex items-center\">\n @if (item.path && !isLast && !item.disabled) {\n <a [routerLink]=\"item.path\" [class]=\"getItemClasses(item, isLast)\" (click)=\"onItemClick(item, isLast)\">\n @if (item.icon) {\n <z-icon [zType]=\"item.icon\" [zSize]=\"zSeparatorSize()\" />\n }\n <span>{{ item.translatedLabel }}</span>\n </a>\n } @else {\n <span [class]=\"getItemClasses(item, isLast)\" (click)=\"onItemClick(item, isLast)\">\n @if (item.icon) {\n <z-icon [zType]=\"item.icon\" [zSize]=\"zSeparatorSize()\" />\n }\n <span>{{ item.translatedLabel }}</span>\n </span>\n }\n\n @if (!isLast) {\n <z-icon [zType]=\"zSeparator()\" [zSize]=\"zSeparatorSize()\" class=\"text-muted-foreground/50 mx-1.5 shrink-0\" />\n }\n </li>\n }\n </ol>\n</nav>\n", dependencies: [{ kind: "component", type: ZIconComponent, selector: "z-icon, [z-icon]", inputs: ["class", "zType", "zSize", "zStrokeWidth", "zSvg"] }, { kind: "directive", type: RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "info", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
61
70
  }
62
71
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.6", ngImport: i0, type: ZBreadcrumbComponent, decorators: [{
63
72
  type: Component,
64
73
  args: [{ selector: 'z-breadcrumb', imports: [ZIconComponent, RouterLink], standalone: true, changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, host: {
65
74
  '[class]': 'zClasses()',
66
- }, template: "<nav aria-label=\"Breadcrumb\">\n <ol class=\"flex items-center\">\n @if (zShowHome() && zHomeIcon()) {\n <li class=\"flex items-center\">\n <span\n class=\"text-muted-foreground hover:text-foreground cursor-pointer transition-colors\"\n (click)=\"onItemClick({ label: 'Home', path: '/' }, false)\">\n <z-icon [zType]=\"zHomeIcon()!\" [zSize]=\"zSeparatorSize()\" />\n </span>\n @if (zItems().length > 0) {\n <z-icon [zType]=\"zSeparator()\" [zSize]=\"zSeparatorSize()\" class=\"text-muted-foreground/50 mx-1.5 shrink-0\" />\n }\n </li>\n }\n\n @for (item of zItems(); track item.label; let isLast = $last; let isFirst = $first) {\n <li class=\"flex items-center\">\n @if (item.path && !isLast && !item.disabled) {\n <a [routerLink]=\"item.path\" [class]=\"getItemClasses(item, isLast)\" (click)=\"onItemClick(item, isLast)\">\n @if (item.icon) {\n <z-icon [zType]=\"item.icon\" [zSize]=\"zSeparatorSize()\" />\n }\n <span>{{ item.label }}</span>\n </a>\n } @else {\n <span [class]=\"getItemClasses(item, isLast)\" (click)=\"onItemClick(item, isLast)\">\n @if (item.icon) {\n <z-icon [zType]=\"item.icon\" [zSize]=\"zSeparatorSize()\" />\n }\n <span>{{ item.label }}</span>\n </span>\n }\n\n @if (!isLast) {\n <z-icon [zType]=\"zSeparator()\" [zSize]=\"zSeparatorSize()\" class=\"text-muted-foreground/50 mx-1.5 shrink-0\" />\n }\n </li>\n }\n </ol>\n</nav>\n" }]
75
+ }, template: "<nav aria-label=\"Breadcrumb\">\n <ol class=\"flex items-center\">\n @if (zShowHome() && zHomeIcon()) {\n <li class=\"flex items-center\">\n <span\n class=\"text-muted-foreground hover:text-foreground cursor-pointer transition-colors\"\n (click)=\"onItemClick({ label: 'Home', path: '/' }, false)\">\n <z-icon [zType]=\"zHomeIcon()!\" [zSize]=\"zSeparatorSize()\" />\n </span>\n @if (translatedItems().length > 0) {\n <z-icon [zType]=\"zSeparator()\" [zSize]=\"zSeparatorSize()\" class=\"text-muted-foreground/50 mx-1.5 shrink-0\" />\n }\n </li>\n }\n\n @for (item of translatedItems(); track item.label; let isLast = $last; let isFirst = $first) {\n <li class=\"flex items-center\">\n @if (item.path && !isLast && !item.disabled) {\n <a [routerLink]=\"item.path\" [class]=\"getItemClasses(item, isLast)\" (click)=\"onItemClick(item, isLast)\">\n @if (item.icon) {\n <z-icon [zType]=\"item.icon\" [zSize]=\"zSeparatorSize()\" />\n }\n <span>{{ item.translatedLabel }}</span>\n </a>\n } @else {\n <span [class]=\"getItemClasses(item, isLast)\" (click)=\"onItemClick(item, isLast)\">\n @if (item.icon) {\n <z-icon [zType]=\"item.icon\" [zSize]=\"zSeparatorSize()\" />\n }\n <span>{{ item.translatedLabel }}</span>\n </span>\n }\n\n @if (!isLast) {\n <z-icon [zType]=\"zSeparator()\" [zSize]=\"zSeparatorSize()\" class=\"text-muted-foreground/50 mx-1.5 shrink-0\" />\n }\n </li>\n }\n </ol>\n</nav>\n" }]
67
76
  }], propDecorators: { class: [{ type: i0.Input, args: [{ isSignal: true, alias: "class", required: false }] }], zItems: [{ type: i0.Input, args: [{ isSignal: true, alias: "zItems", required: false }] }], zSize: [{ type: i0.Input, args: [{ isSignal: true, alias: "zSize", required: false }] }], zSeparator: [{ type: i0.Input, args: [{ isSignal: true, alias: "zSeparator", required: false }] }], zSeparatorSize: [{ type: i0.Input, args: [{ isSignal: true, alias: "zSeparatorSize", required: false }] }], zHomeIcon: [{ type: i0.Input, args: [{ isSignal: true, alias: "zHomeIcon", required: false }] }], zShowHome: [{ type: i0.Input, args: [{ isSignal: true, alias: "zShowHome", required: false }] }], zItemClick: [{ type: i0.Output, args: ["zItemClick"] }] } });
68
77
 
69
78
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"shival99-z-ui-components-z-breadcrumb.mjs","sources":["../../../../libs/core-ui/components/z-breadcrumb/z-breadcrumb.variants.ts","../../../../libs/core-ui/components/z-breadcrumb/z-breadcrumb.component.ts","../../../../libs/core-ui/components/z-breadcrumb/z-breadcrumb.component.html","../../../../libs/core-ui/components/z-breadcrumb/shival99-z-ui-components-z-breadcrumb.ts"],"sourcesContent":["import { cva, type VariantProps } from 'class-variance-authority';\n\nexport const zBreadcrumbVariants = cva(['flex items-center text-sm'], {\n variants: {\n zSize: {\n sm: 'text-xs gap-1',\n default: 'text-sm gap-1.5',\n lg: 'text-base gap-2',\n },\n },\n defaultVariants: {\n zSize: 'default',\n },\n});\n\nexport const zBreadcrumbItemVariants = cva(['inline-flex items-center gap-1 transition-colors duration-150'], {\n variants: {\n isActive: {\n true: 'text-foreground font-medium',\n false: 'text-muted-foreground hover:text-foreground cursor-pointer',\n },\n isDisabled: {\n true: 'text-muted-foreground/50 cursor-not-allowed pointer-events-none',\n false: '',\n },\n },\n defaultVariants: {\n isActive: false,\n isDisabled: false,\n },\n});\n\nexport type ZBreadcrumbVariants = VariantProps<typeof zBreadcrumbVariants>;\nexport type ZBreadcrumbItemVariants = VariantProps<typeof zBreadcrumbItemVariants>;\n","import { ChangeDetectionStrategy, Component, computed, input, output, ViewEncapsulation } from '@angular/core';\nimport { RouterLink } from '@angular/router';\nimport { ZIconComponent } from '@shival99/z-ui/components/z-icon';\nimport type { ZIconVariants, ZIcon } from '@shival99/z-ui/components/z-icon';\nimport { zMergeClasses, zTransform } from '@shival99/z-ui/utils';\nimport type { ClassValue } from 'clsx';\nimport type { ZBreadcrumbItem } from './z-breadcrumb.types';\nimport { zBreadcrumbItemVariants, zBreadcrumbVariants, type ZBreadcrumbVariants } from './z-breadcrumb.variants';\n\n@Component({\n selector: 'z-breadcrumb',\n imports: [ZIconComponent, RouterLink],\n standalone: true,\n templateUrl: './z-breadcrumb.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n host: {\n '[class]': 'zClasses()',\n },\n})\nexport class ZBreadcrumbComponent {\n public readonly class = input<ClassValue>('');\n public readonly zItems = input<ZBreadcrumbItem[]>([]);\n public readonly zSize = input<ZBreadcrumbVariants['zSize']>('default');\n public readonly zSeparator = input<ZIcon>('lucideChevronRight');\n public readonly zSeparatorSize = input<ZIconVariants['zSize']>('14');\n public readonly zHomeIcon = input<ZIcon | undefined>(undefined);\n public readonly zShowHome = input(false, { transform: zTransform });\n\n public readonly zItemClick = output<ZBreadcrumbItem>();\n\n protected readonly zClasses = computed(() =>\n zMergeClasses(zBreadcrumbVariants({ zSize: this.zSize() }), this.class())\n );\n\n protected getItemClasses(item: ZBreadcrumbItem, isLast: boolean): string {\n return zBreadcrumbItemVariants({\n isActive: isLast,\n isDisabled: item.disabled ?? false,\n });\n }\n\n protected onItemClick(item: ZBreadcrumbItem, isLast: boolean): void {\n if (isLast || item.disabled) {\n return;\n }\n\n this.zItemClick.emit(item);\n }\n}\n","<nav aria-label=\"Breadcrumb\">\n <ol class=\"flex items-center\">\n @if (zShowHome() && zHomeIcon()) {\n <li class=\"flex items-center\">\n <span\n class=\"text-muted-foreground hover:text-foreground cursor-pointer transition-colors\"\n (click)=\"onItemClick({ label: 'Home', path: '/' }, false)\">\n <z-icon [zType]=\"zHomeIcon()!\" [zSize]=\"zSeparatorSize()\" />\n </span>\n @if (zItems().length > 0) {\n <z-icon [zType]=\"zSeparator()\" [zSize]=\"zSeparatorSize()\" class=\"text-muted-foreground/50 mx-1.5 shrink-0\" />\n }\n </li>\n }\n\n @for (item of zItems(); track item.label; let isLast = $last; let isFirst = $first) {\n <li class=\"flex items-center\">\n @if (item.path && !isLast && !item.disabled) {\n <a [routerLink]=\"item.path\" [class]=\"getItemClasses(item, isLast)\" (click)=\"onItemClick(item, isLast)\">\n @if (item.icon) {\n <z-icon [zType]=\"item.icon\" [zSize]=\"zSeparatorSize()\" />\n }\n <span>{{ item.label }}</span>\n </a>\n } @else {\n <span [class]=\"getItemClasses(item, isLast)\" (click)=\"onItemClick(item, isLast)\">\n @if (item.icon) {\n <z-icon [zType]=\"item.icon\" [zSize]=\"zSeparatorSize()\" />\n }\n <span>{{ item.label }}</span>\n </span>\n }\n\n @if (!isLast) {\n <z-icon [zType]=\"zSeparator()\" [zSize]=\"zSeparatorSize()\" class=\"text-muted-foreground/50 mx-1.5 shrink-0\" />\n }\n </li>\n }\n </ol>\n</nav>\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-components-z-breadcrumb.mjs","sources":["../../../../libs/core-ui/components/z-breadcrumb/z-breadcrumb.variants.ts","../../../../libs/core-ui/components/z-breadcrumb/z-breadcrumb.component.ts","../../../../libs/core-ui/components/z-breadcrumb/z-breadcrumb.component.html","../../../../libs/core-ui/components/z-breadcrumb/shival99-z-ui-components-z-breadcrumb.ts"],"sourcesContent":["import { cva, type VariantProps } from 'class-variance-authority';\n\nexport const zBreadcrumbVariants = cva(['flex items-center text-sm'], {\n variants: {\n zSize: {\n sm: 'text-xs gap-1',\n default: 'text-sm gap-1.5',\n lg: 'text-base gap-2',\n },\n },\n defaultVariants: {\n zSize: 'default',\n },\n});\n\nexport const zBreadcrumbItemVariants = cva(['inline-flex items-center gap-1 transition-colors duration-150'], {\n variants: {\n isActive: {\n true: 'text-foreground font-medium',\n false: 'text-muted-foreground hover:text-foreground cursor-pointer',\n },\n isDisabled: {\n true: 'text-muted-foreground/50 cursor-not-allowed pointer-events-none',\n false: '',\n },\n },\n defaultVariants: {\n isActive: false,\n isDisabled: false,\n },\n});\n\nexport type ZBreadcrumbVariants = VariantProps<typeof zBreadcrumbVariants>;\nexport type ZBreadcrumbItemVariants = VariantProps<typeof zBreadcrumbItemVariants>;\n","import { ChangeDetectionStrategy, Component, computed, inject, input, output, ViewEncapsulation } from '@angular/core';\nimport { RouterLink } from '@angular/router';\nimport { ZIconComponent } from '@shival99/z-ui/components/z-icon';\nimport type { ZIconVariants, ZIcon } from '@shival99/z-ui/components/z-icon';\nimport { ZTranslateService } from '@shival99/z-ui/services';\nimport { zMergeClasses, zTransform } from '@shival99/z-ui/utils';\nimport type { ClassValue } from 'clsx';\nimport type { ZBreadcrumbItem } from './z-breadcrumb.types';\nimport { zBreadcrumbItemVariants, zBreadcrumbVariants, type ZBreadcrumbVariants } from './z-breadcrumb.variants';\n\n@Component({\n selector: 'z-breadcrumb',\n imports: [ZIconComponent, RouterLink],\n standalone: true,\n templateUrl: './z-breadcrumb.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n host: {\n '[class]': 'zClasses()',\n },\n})\nexport class ZBreadcrumbComponent {\n private readonly _zTranslate = inject(ZTranslateService);\n\n public readonly class = input<ClassValue>('');\n public readonly zItems = input<ZBreadcrumbItem[]>([]);\n public readonly zSize = input<ZBreadcrumbVariants['zSize']>('default');\n public readonly zSeparator = input<ZIcon>('lucideChevronRight');\n public readonly zSeparatorSize = input<ZIconVariants['zSize']>('14');\n public readonly zHomeIcon = input<ZIcon | undefined>(undefined);\n public readonly zShowHome = input(false, { transform: zTransform });\n\n public readonly zItemClick = output<ZBreadcrumbItem>();\n\n protected readonly zClasses = computed(() =>\n zMergeClasses(zBreadcrumbVariants({ zSize: this.zSize() }), this.class())\n );\n\n protected readonly translatedItems = computed(() => {\n this._zTranslate.currentLang();\n return this.zItems().map(item => ({\n ...item,\n translatedLabel: this._zTranslate.instant(item.label),\n }));\n });\n\n protected getItemClasses(item: ZBreadcrumbItem, isLast: boolean): string {\n return zBreadcrumbItemVariants({\n isActive: isLast,\n isDisabled: item.disabled ?? false,\n });\n }\n\n protected onItemClick(item: ZBreadcrumbItem, isLast: boolean): void {\n if (isLast || item.disabled) {\n return;\n }\n\n this.zItemClick.emit(item);\n }\n}\n","<nav aria-label=\"Breadcrumb\">\n <ol class=\"flex items-center\">\n @if (zShowHome() && zHomeIcon()) {\n <li class=\"flex items-center\">\n <span\n class=\"text-muted-foreground hover:text-foreground cursor-pointer transition-colors\"\n (click)=\"onItemClick({ label: 'Home', path: '/' }, false)\">\n <z-icon [zType]=\"zHomeIcon()!\" [zSize]=\"zSeparatorSize()\" />\n </span>\n @if (translatedItems().length > 0) {\n <z-icon [zType]=\"zSeparator()\" [zSize]=\"zSeparatorSize()\" class=\"text-muted-foreground/50 mx-1.5 shrink-0\" />\n }\n </li>\n }\n\n @for (item of translatedItems(); track item.label; let isLast = $last; let isFirst = $first) {\n <li class=\"flex items-center\">\n @if (item.path && !isLast && !item.disabled) {\n <a [routerLink]=\"item.path\" [class]=\"getItemClasses(item, isLast)\" (click)=\"onItemClick(item, isLast)\">\n @if (item.icon) {\n <z-icon [zType]=\"item.icon\" [zSize]=\"zSeparatorSize()\" />\n }\n <span>{{ item.translatedLabel }}</span>\n </a>\n } @else {\n <span [class]=\"getItemClasses(item, isLast)\" (click)=\"onItemClick(item, isLast)\">\n @if (item.icon) {\n <z-icon [zType]=\"item.icon\" [zSize]=\"zSeparatorSize()\" />\n }\n <span>{{ item.translatedLabel }}</span>\n </span>\n }\n\n @if (!isLast) {\n <z-icon [zType]=\"zSeparator()\" [zSize]=\"zSeparatorSize()\" class=\"text-muted-foreground/50 mx-1.5 shrink-0\" />\n }\n </li>\n }\n </ol>\n</nav>\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;;;;;MAEa,mBAAmB,GAAG,GAAG,CAAC,CAAC,2BAA2B,CAAC,EAAE;AACpE,IAAA,QAAQ,EAAE;AACR,QAAA,KAAK,EAAE;AACL,YAAA,EAAE,EAAE,eAAe;AACnB,YAAA,OAAO,EAAE,iBAAiB;AAC1B,YAAA,EAAE,EAAE,iBAAiB;AACtB,SAAA;AACF,KAAA;AACD,IAAA,eAAe,EAAE;AACf,QAAA,KAAK,EAAE,SAAS;AACjB,KAAA;AACF,CAAA;AAEM,MAAM,uBAAuB,GAAG,GAAG,CAAC,CAAC,+DAA+D,CAAC,EAAE;AAC5G,IAAA,QAAQ,EAAE;AACR,QAAA,QAAQ,EAAE;AACR,YAAA,IAAI,EAAE,6BAA6B;AACnC,YAAA,KAAK,EAAE,4DAA4D;AACpE,SAAA;AACD,QAAA,UAAU,EAAE;AACV,YAAA,IAAI,EAAE,iEAAiE;AACvE,YAAA,KAAK,EAAE,EAAE;AACV,SAAA;AACF,KAAA;AACD,IAAA,eAAe,EAAE;AACf,QAAA,QAAQ,EAAE,KAAK;AACf,QAAA,UAAU,EAAE,KAAK;AAClB,KAAA;AACF,CAAA,CAAC;;MCTW,oBAAoB,CAAA;AACd,IAAA,WAAW,GAAG,MAAM,CAAC,iBAAiB,CAAC;AAExC,IAAA,KAAK,GAAG,KAAK,CAAa,EAAE,iDAAC;AAC7B,IAAA,MAAM,GAAG,KAAK,CAAoB,EAAE,kDAAC;AACrC,IAAA,KAAK,GAAG,KAAK,CAA+B,SAAS,iDAAC;AACtD,IAAA,UAAU,GAAG,KAAK,CAAQ,oBAAoB,sDAAC;AAC/C,IAAA,cAAc,GAAG,KAAK,CAAyB,IAAI,0DAAC;AACpD,IAAA,SAAS,GAAG,KAAK,CAAoB,SAAS,qDAAC;IAC/C,SAAS,GAAG,KAAK,CAAC,KAAK,sDAAI,SAAS,EAAE,UAAU,EAAA,CAAG;IAEnD,UAAU,GAAG,MAAM,EAAmB;IAEnC,QAAQ,GAAG,QAAQ,CAAC,MACrC,aAAa,CAAC,mBAAmB,CAAC,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,EAAE,CAAC,EAAE,IAAI,CAAC,KAAK,EAAE,CAAC,EAAA,IAAA,SAAA,GAAA,CAAA,EAAA,SAAA,EAAA,UAAA,EAAA,CAAA,GAAA,EAAA,CAAA,CAC1E;AAEkB,IAAA,eAAe,GAAG,QAAQ,CAAC,MAAK;AACjD,QAAA,IAAI,CAAC,WAAW,CAAC,WAAW,EAAE;QAC9B,OAAO,IAAI,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,IAAI,KAAK;AAChC,YAAA,GAAG,IAAI;YACP,eAAe,EAAE,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC;AACtD,SAAA,CAAC,CAAC;AACL,IAAA,CAAC,2DAAC;IAEQ,cAAc,CAAC,IAAqB,EAAE,MAAe,EAAA;AAC7D,QAAA,OAAO,uBAAuB,CAAC;AAC7B,YAAA,QAAQ,EAAE,MAAM;AAChB,YAAA,UAAU,EAAE,IAAI,CAAC,QAAQ,IAAI,KAAK;AACnC,SAAA,CAAC;IACJ;IAEU,WAAW,CAAC,IAAqB,EAAE,MAAe,EAAA;AAC1D,QAAA,IAAI,MAAM,IAAI,IAAI,CAAC,QAAQ,EAAE;YAC3B;QACF;AAEA,QAAA,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC;IAC5B;uGAtCW,oBAAoB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;AAApB,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,oBAAoB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,cAAA,EAAA,MAAA,EAAA,EAAA,KAAA,EAAA,EAAA,iBAAA,EAAA,OAAA,EAAA,UAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,MAAA,EAAA,EAAA,iBAAA,EAAA,QAAA,EAAA,UAAA,EAAA,QAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,KAAA,EAAA,EAAA,iBAAA,EAAA,OAAA,EAAA,UAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,iBAAA,EAAA,YAAA,EAAA,UAAA,EAAA,YAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,cAAA,EAAA,EAAA,iBAAA,EAAA,gBAAA,EAAA,UAAA,EAAA,gBAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,SAAA,EAAA,EAAA,iBAAA,EAAA,WAAA,EAAA,UAAA,EAAA,WAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,SAAA,EAAA,EAAA,iBAAA,EAAA,WAAA,EAAA,UAAA,EAAA,WAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,EAAA,OAAA,EAAA,EAAA,UAAA,EAAA,YAAA,EAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,OAAA,EAAA,YAAA,EAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,ECrBjC,qoDAwCA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,ED5BY,cAAc,0HAAE,UAAU,EAAA,QAAA,EAAA,cAAA,EAAA,MAAA,EAAA,CAAA,QAAA,EAAA,aAAA,EAAA,UAAA,EAAA,qBAAA,EAAA,OAAA,EAAA,MAAA,EAAA,YAAA,EAAA,kBAAA,EAAA,oBAAA,EAAA,YAAA,EAAA,YAAA,CAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,aAAA,EAAA,EAAA,CAAA,iBAAA,CAAA,IAAA,EAAA,CAAA;;2FASzB,oBAAoB,EAAA,UAAA,EAAA,CAAA;kBAXhC,SAAS;AACE,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,cAAc,WACf,CAAC,cAAc,EAAE,UAAU,CAAC,EAAA,UAAA,EACzB,IAAI,EAAA,eAAA,EAEC,uBAAuB,CAAC,MAAM,EAAA,aAAA,EAChC,iBAAiB,CAAC,IAAI,EAAA,IAAA,EAC/B;AACJ,wBAAA,SAAS,EAAE,YAAY;AACxB,qBAAA,EAAA,QAAA,EAAA,qoDAAA,EAAA;;;AEnBH;;AAEG;;;;"}
@@ -1,13 +1,13 @@
1
1
  import * as i0 from '@angular/core';
2
2
  import { Pipe, input, output, viewChild, computed, signal, inject, Injector, DestroyRef, ChangeDetectorRef, effect, forwardRef, ViewEncapsulation, ChangeDetectionStrategy, Component } from '@angular/core';
3
- import { takeUntilDestroyed } from '@angular/core/rxjs-interop';
3
+ import { toSignal, takeUntilDestroyed } from '@angular/core/rxjs-interop';
4
4
  import { NgControl, NG_VALUE_ACCESSOR } from '@angular/forms';
5
5
  import { TranslateService, TranslatePipe } from '@ngx-translate/core';
6
6
  import { ZButtonComponent } from '@shival99/z-ui/components/z-button';
7
7
  import { ZIconComponent } from '@shival99/z-ui/components/z-icon';
8
8
  import { ZPopoverDirective } from '@shival99/z-ui/components/z-popover';
9
9
  import { zTransform, zGenerateId, zMergeClasses } from '@shival99/z-ui/utils';
10
- import { merge } from 'rxjs';
10
+ import { startWith, merge } from 'rxjs';
11
11
  import { cva } from 'class-variance-authority';
12
12
 
13
13
  const createDate = (year, month, day, hour = 0, minute = 0, second = 0) => new Date(year, month, day, hour, minute, second);
@@ -676,6 +676,7 @@ class ZCalendarComponent {
676
676
  _destroyRef = inject(DestroyRef);
677
677
  _cdr = inject(ChangeDetectorRef);
678
678
  _translate = inject(TranslateService);
679
+ _currentLang = toSignal(this._translate.onLangChange.pipe(startWith({ lang: this._translate.currentLang })));
679
680
  _onChange = () => void 0;
680
681
  _onTouched = () => void 0;
681
682
  _ngControl = null;
@@ -713,6 +714,7 @@ class ZCalendarComponent {
713
714
  isYearMode = computed(() => this.zMode() === 'year', ...(ngDevMode ? [{ debugName: "isYearMode" }] : []));
714
715
  isQuarterMode = computed(() => this.zMode() === 'quarter', ...(ngDevMode ? [{ debugName: "isQuarterMode" }] : []));
715
716
  todayButtonText = computed(() => {
717
+ this._currentLang();
716
718
  if (this.isQuarterMode()) {
717
719
  return this._translate.instant('i18n_z_ui_calendar_this_quarter');
718
720
  }
@@ -1066,6 +1068,7 @@ class ZCalendarComponent {
1066
1068
  }
1067
1069
  }
1068
1070
  if (errors['required']) {
1071
+ this._currentLang();
1069
1072
  return this._translate.instant('i18n_z_ui_calendar_required');
1070
1073
  }
1071
1074
  return '';