@shival99/z-ui 1.0.2 → 1.0.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +50 -77
- package/fesm2022/shival99-z-ui-components-z-accordion.mjs +1 -1
- package/fesm2022/shival99-z-ui-components-z-accordion.mjs.map +1 -1
- package/fesm2022/shival99-z-ui-components-z-breadcrumb.mjs +2 -2
- package/fesm2022/shival99-z-ui-components-z-breadcrumb.mjs.map +1 -1
- package/fesm2022/shival99-z-ui-components-z-button.mjs +2 -2
- package/fesm2022/shival99-z-ui-components-z-button.mjs.map +1 -1
- package/fesm2022/shival99-z-ui-components-z-calendar.mjs +19 -19
- package/fesm2022/shival99-z-ui-components-z-calendar.mjs.map +1 -1
- package/fesm2022/shival99-z-ui-components-z-checkbox.mjs +2 -2
- package/fesm2022/shival99-z-ui-components-z-checkbox.mjs.map +1 -1
- package/fesm2022/shival99-z-ui-components-z-code.mjs +2 -2
- package/fesm2022/shival99-z-ui-components-z-code.mjs.map +1 -1
- package/fesm2022/shival99-z-ui-components-z-drawer.mjs +1 -1
- package/fesm2022/shival99-z-ui-components-z-drawer.mjs.map +1 -1
- package/fesm2022/shival99-z-ui-components-z-dropdown-menu.mjs.map +1 -1
- package/fesm2022/shival99-z-ui-components-z-editor.mjs +3 -3
- package/fesm2022/shival99-z-ui-components-z-editor.mjs.map +1 -1
- package/fesm2022/shival99-z-ui-components-z-filter.mjs +3 -3
- package/fesm2022/shival99-z-ui-components-z-filter.mjs.map +1 -1
- package/fesm2022/shival99-z-ui-components-z-icon.mjs +1 -1
- package/fesm2022/shival99-z-ui-components-z-icon.mjs.map +1 -1
- package/fesm2022/shival99-z-ui-components-z-input.mjs +4 -4
- package/fesm2022/shival99-z-ui-components-z-input.mjs.map +1 -1
- package/fesm2022/shival99-z-ui-components-z-loading.mjs +1 -1
- package/fesm2022/shival99-z-ui-components-z-loading.mjs.map +1 -1
- package/fesm2022/shival99-z-ui-components-z-menu.mjs +4 -4
- package/fesm2022/shival99-z-ui-components-z-menu.mjs.map +1 -1
- package/fesm2022/shival99-z-ui-components-z-modal.mjs +3 -3
- package/fesm2022/shival99-z-ui-components-z-modal.mjs.map +1 -1
- package/fesm2022/shival99-z-ui-components-z-pagination.mjs.map +1 -1
- package/fesm2022/shival99-z-ui-components-z-popover.mjs +1 -1
- package/fesm2022/shival99-z-ui-components-z-popover.mjs.map +1 -1
- package/fesm2022/shival99-z-ui-components-z-radio.mjs +1 -1
- package/fesm2022/shival99-z-ui-components-z-radio.mjs.map +1 -1
- package/fesm2022/shival99-z-ui-components-z-select.mjs +5 -5
- package/fesm2022/shival99-z-ui-components-z-select.mjs.map +1 -1
- package/fesm2022/shival99-z-ui-components-z-skeleton.mjs.map +1 -1
- package/fesm2022/shival99-z-ui-components-z-switch.mjs +1 -1
- package/fesm2022/shival99-z-ui-components-z-switch.mjs.map +1 -1
- package/fesm2022/shival99-z-ui-components-z-table.mjs +1 -1
- package/fesm2022/shival99-z-ui-components-z-table.mjs.map +1 -1
- package/fesm2022/shival99-z-ui-components-z-tabs.mjs +2 -2
- package/fesm2022/shival99-z-ui-components-z-tabs.mjs.map +1 -1
- package/fesm2022/shival99-z-ui-components-z-timeline.mjs +2 -2
- package/fesm2022/shival99-z-ui-components-z-timeline.mjs.map +1 -1
- package/fesm2022/shival99-z-ui-components-z-toast.mjs +2 -2
- package/fesm2022/shival99-z-ui-components-z-toast.mjs.map +1 -1
- package/fesm2022/shival99-z-ui-components-z-tooltip.mjs +2 -2
- package/fesm2022/shival99-z-ui-components-z-tooltip.mjs.map +1 -1
- package/fesm2022/shival99-z-ui-components-z-upload.mjs +3 -3
- package/fesm2022/shival99-z-ui-components-z-upload.mjs.map +1 -1
- package/fesm2022/shival99-z-ui-providers.mjs +1 -1
- package/fesm2022/shival99-z-ui-providers.mjs.map +1 -1
- package/fesm2022/z-ui.mjs.map +1 -1
- package/package.json +4 -4
- package/types/shival99-z-ui-components-z-calendar.d.ts +6 -6
- package/types/shival99-z-ui-components-z-drawer.d.ts +1 -1
- package/types/shival99-z-ui-components-z-dropdown-menu.d.ts +1 -1
- package/types/shival99-z-ui-components-z-modal.d.ts +1 -1
- package/types/shival99-z-ui-components-z-select.d.ts +2 -2
package/README.md
CHANGED
|
@@ -2,32 +2,32 @@
|
|
|
2
2
|
|
|
3
3
|
[](https://www.npmjs.com/package/@shival99/z-ui)
|
|
4
4
|
[](https://opensource.org/licenses/MIT)
|
|
5
|
-
[](https://angular.dev)
|
|
6
6
|
|
|
7
|
-
A comprehensive, high-performance UI component library built with Angular
|
|
7
|
+
A comprehensive, high-performance UI component library built with Angular 21+, featuring 40+ customizable components with dark mode, accessibility, and enterprise-ready features.
|
|
8
8
|
|
|
9
9
|
## ✨ Features
|
|
10
10
|
|
|
11
11
|
- 🎨 **40+ Components** - Buttons, Inputs, Tables, Modals, Calendars, and more
|
|
12
|
-
- 🌙 **Dark Mode** - Built-in theme support with
|
|
12
|
+
- 🌙 **Dark Mode** - Built-in theme support with 9 color themes
|
|
13
13
|
- ♿ **Accessible** - WCAG 2.1 compliant components
|
|
14
14
|
- 📱 **Responsive** - Mobile-first responsive design
|
|
15
15
|
- 🚀 **High Performance** - OnPush change detection, virtual scrolling
|
|
16
16
|
- 🔧 **Customizable** - CSS variables, class-variance-authority
|
|
17
|
-
- 📦 **Tree-shakable** -
|
|
17
|
+
- 📦 **Tree-shakable** - Import only what you need
|
|
18
18
|
- 🎯 **Type-safe** - Full TypeScript support with strict mode
|
|
19
|
-
- 🌐 **i18n Ready** - Built-in translation support
|
|
19
|
+
- 🌐 **i18n Ready** - Built-in translation support
|
|
20
20
|
|
|
21
21
|
## 📦 Installation
|
|
22
22
|
|
|
23
23
|
```bash
|
|
24
|
-
|
|
24
|
+
pnpm add @shival99/z-ui
|
|
25
25
|
```
|
|
26
26
|
|
|
27
27
|
### Peer Dependencies
|
|
28
28
|
|
|
29
29
|
```bash
|
|
30
|
-
|
|
30
|
+
pnpm add @angular/cdk @ng-icons/core @ng-icons/lucide @ng-icons/iconsax \
|
|
31
31
|
@tanstack/angular-table @tanstack/angular-virtual \
|
|
32
32
|
class-variance-authority clsx tailwind-merge \
|
|
33
33
|
ngx-mask ngx-scrollbar ngx-sonner ngxtension minisearch
|
|
@@ -35,28 +35,21 @@ npm install @angular/cdk @ng-icons/core @ng-icons/lucide @ng-icons/iconsax \
|
|
|
35
35
|
|
|
36
36
|
### Optional Dependencies
|
|
37
37
|
|
|
38
|
-
For specific components:
|
|
39
|
-
|
|
40
38
|
```bash
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
npm install shiki
|
|
46
|
-
|
|
47
|
-
# For z-chart (Charts)
|
|
48
|
-
npm install echarts ngx-echarts
|
|
49
|
-
|
|
50
|
-
# For i18n support
|
|
51
|
-
npm install @ngx-translate/core @ngx-translate/http-loader
|
|
39
|
+
pnpm add ngx-quill quill # Rich Text Editor
|
|
40
|
+
pnpm add shiki dompurify # Syntax Highlighting
|
|
41
|
+
pnpm add echarts ngx-echarts # Charts
|
|
42
|
+
pnpm add @ngx-translate/core @ngx-translate/http-loader # i18n
|
|
52
43
|
```
|
|
53
44
|
|
|
54
45
|
## 🚀 Quick Start
|
|
55
46
|
|
|
56
|
-
###
|
|
47
|
+
### Import Components
|
|
57
48
|
|
|
58
49
|
```typescript
|
|
59
|
-
import { ZButtonComponent
|
|
50
|
+
import { ZButtonComponent } from '@shival99/z-ui/components/z-button';
|
|
51
|
+
import { ZInputComponent } from '@shival99/z-ui/components/z-input';
|
|
52
|
+
import { ZTableComponent } from '@shival99/z-ui/components/z-table';
|
|
60
53
|
|
|
61
54
|
@Component({
|
|
62
55
|
selector: 'app-root',
|
|
@@ -70,77 +63,57 @@ import { ZButtonComponent, ZInputComponent, ZTableComponent } from '@shival99/z-
|
|
|
70
63
|
export class AppComponent {}
|
|
71
64
|
```
|
|
72
65
|
|
|
73
|
-
###
|
|
74
|
-
|
|
75
|
-
Add to your `styles.scss`:
|
|
76
|
-
|
|
77
|
-
```scss
|
|
78
|
-
@import '@shival99/z-ui/styles';
|
|
79
|
-
|
|
80
|
-
// Or use CSS variables for custom theming
|
|
81
|
-
:root {
|
|
82
|
-
--z-primary: 222.2 47.4% 11.2%;
|
|
83
|
-
--z-primary-foreground: 210 40% 98%;
|
|
84
|
-
// ... more variables
|
|
85
|
-
}
|
|
86
|
-
```
|
|
87
|
-
|
|
88
|
-
### 3. Configure Providers
|
|
66
|
+
### Configure Providers
|
|
89
67
|
|
|
90
68
|
```typescript
|
|
91
|
-
|
|
92
|
-
import {
|
|
69
|
+
import { provideZTranslate } from '@shival99/z-ui/providers';
|
|
70
|
+
import { provideZNgxMask } from '@shival99/z-ui/providers';
|
|
93
71
|
|
|
94
72
|
export const appConfig: ApplicationConfig = {
|
|
95
|
-
providers: [
|
|
96
|
-
provideZTranslate({
|
|
97
|
-
defaultLang: 'en',
|
|
98
|
-
langPath: '/assets/i18n/',
|
|
99
|
-
}),
|
|
100
|
-
],
|
|
73
|
+
providers: [provideZTranslate({ defaultLang: 'vi', langPath: '/assets/i18n/' }), provideZNgxMask()],
|
|
101
74
|
};
|
|
102
75
|
```
|
|
103
76
|
|
|
104
77
|
## 🧩 Components
|
|
105
78
|
|
|
106
|
-
|
|
79
|
+
| Category | Components |
|
|
80
|
+
| ----------- | ---------------------------------------------------------------- |
|
|
81
|
+
| **Form** | Input, Select, Checkbox, Radio, Switch, Calendar, Upload, Filter |
|
|
82
|
+
| **Data** | Table, Pagination, Code, Editor, Timeline |
|
|
83
|
+
| **Overlay** | Modal, Drawer, Toast, Tooltip, Popover, Dropdown Menu |
|
|
84
|
+
| **Layout** | Accordion, Tabs, Menu, Breadcrumb, Skeleton |
|
|
85
|
+
| **Display** | Button, Icon, Loading |
|
|
107
86
|
|
|
108
|
-
|
|
109
|
-
- `ZSelectComponent` - Select dropdown with search, multi-select
|
|
110
|
-
- `ZCheckboxComponent` - Checkbox with indeterminate state
|
|
111
|
-
- `ZRadioComponent` - Radio button groups
|
|
112
|
-
- `ZSwitchComponent` - Toggle switch
|
|
113
|
-
- `ZCalendarComponent` - Date/time picker with range support
|
|
87
|
+
## 📁 Import Paths
|
|
114
88
|
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
- `ZTabsComponent` - Tab navigation
|
|
127
|
-
|
|
128
|
-
### Feedback
|
|
89
|
+
```typescript
|
|
90
|
+
import { ZButtonComponent } from '@shival99/z-ui/components/z-button';
|
|
91
|
+
import { ZTableComponent } from '@shival99/z-ui/components/z-table';
|
|
92
|
+
import { ZModalService } from '@shival99/z-ui/components/z-modal';
|
|
93
|
+
|
|
94
|
+
import { ZThemeService, ZCacheService } from '@shival99/z-ui/services';
|
|
95
|
+
import { provideZTranslate } from '@shival99/z-ui/providers';
|
|
96
|
+
import { zTransform, zMergeClasses } from '@shival99/z-ui/utils';
|
|
97
|
+
import { ZSafeHtmlPipe } from '@shival99/z-ui/pipes';
|
|
98
|
+
import { Z_UI_TRANSLATIONS } from '@shival99/z-ui/i18n';
|
|
99
|
+
```
|
|
129
100
|
|
|
130
|
-
|
|
131
|
-
- `ZLoadingComponent` - Loading spinners
|
|
132
|
-
- `ZTooltipDirective` - Tooltips
|
|
133
|
-
- `ZPopoverDirective` - Popovers
|
|
101
|
+
## 🎨 Theming
|
|
134
102
|
|
|
135
|
-
|
|
103
|
+
Available themes: `green`, `orange`, `violet`, `neutral`, `zinc`, `slate`, `stone`, `gray`, `hospital`
|
|
136
104
|
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
- `ZPaginationComponent` - Pagination controls
|
|
105
|
+
```typescript
|
|
106
|
+
import { ZThemeService } from '@shival99/z-ui/services';
|
|
140
107
|
|
|
141
|
-
|
|
108
|
+
export class AppComponent {
|
|
109
|
+
private themeService = inject(ZThemeService);
|
|
142
110
|
|
|
143
|
-
|
|
111
|
+
ngOnInit() {
|
|
112
|
+
this.themeService.setTheme('violet');
|
|
113
|
+
this.themeService.toggleDarkMode(true);
|
|
114
|
+
}
|
|
115
|
+
}
|
|
116
|
+
```
|
|
144
117
|
|
|
145
118
|
## 📄 License
|
|
146
119
|
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import * as i0 from '@angular/core';
|
|
2
2
|
import { input, inject, computed, ViewEncapsulation, ChangeDetectionStrategy, Component, contentChildren, signal } from '@angular/core';
|
|
3
|
-
import { cva } from 'class-variance-authority';
|
|
4
3
|
import { zTransform, zMergeClasses } from '@shival99/z-ui/utils';
|
|
5
4
|
import { ZIconComponent } from '@shival99/z-ui/components/z-icon';
|
|
5
|
+
import { cva } from 'class-variance-authority';
|
|
6
6
|
|
|
7
7
|
const zAccordionVariants = cva(['block w-full'], {
|
|
8
8
|
variants: {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"shival99-z-ui-components-z-accordion.mjs","sources":["../../../../libs/core-ui/components/z-accordion/z-accordion.variants.ts","../../../../libs/core-ui/components/z-accordion/z-accordion-item.component.ts","../../../../libs/core-ui/components/z-accordion/z-accordion-item.component.html","../../../../libs/core-ui/components/z-accordion/z-accordion.component.ts","../../../../libs/core-ui/components/z-accordion/shival99-z-ui-components-z-accordion.ts"],"sourcesContent":["import { cva, type VariantProps } from 'class-variance-authority';\n\nexport const zAccordionVariants = cva(['block w-full'], {\n variants: {\n zType: {\n default: 'border border-border rounded-lg overflow-hidden',\n ghost: '',\n outline: 'border border-border rounded-lg overflow-hidden',\n },\n },\n defaultVariants: {\n zType: 'default',\n },\n});\n\nexport const zAccordionItemVariants = cva(['block group border-b border-border last:border-b-0'], {\n variants: {\n isDisabled: {\n true: 'opacity-50 cursor-not-allowed pointer-events-none',\n false: '',\n },\n },\n defaultVariants: {\n isDisabled: false,\n },\n});\n\nexport const zAccordionTriggerVariants = cva(\n [\n 'flex w-full items-center justify-between py-3 px-3 text-sm font-medium',\n 'transition-colors duration-200 cursor-pointer',\n 'hover:bg-muted/50',\n 'focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2',\n ],\n {\n variants: {\n isOpen: {\n true: 'text-foreground',\n false: 'text-foreground',\n },\n },\n defaultVariants: {\n isOpen: false,\n },\n }\n);\n\nexport const zAccordionContentVariants = cva(['overflow-hidden text-sm'], {\n variants: {\n isOpen: {\n true: '',\n false: '',\n },\n },\n defaultVariants: {\n isOpen: false,\n },\n});\n\nexport type ZAccordionVariants = VariantProps<typeof zAccordionVariants>;\nexport type ZAccordionItemVariants = VariantProps<typeof zAccordionItemVariants>;\nexport type ZAccordionTriggerVariants = VariantProps<typeof zAccordionTriggerVariants>;\nexport type ZAccordionContentVariants = VariantProps<typeof zAccordionContentVariants>;\n","import { ChangeDetectionStrategy, Component, computed, inject, input, ViewEncapsulation } from '@angular/core';\nimport type { ClassValue } from 'clsx';\nimport { ZAccordionComponent } from './z-accordion.component';\nimport { zAccordionItemVariants, zAccordionTriggerVariants } from './z-accordion.variants';\nimport { zMergeClasses, zTransform } from '@shival99/z-ui/utils';\nimport { ZIconComponent } from '@shival99/z-ui/components/z-icon';\n\n@Component({\n selector: 'z-accordion-item',\n imports: [ZIconComponent],\n standalone: true,\n templateUrl: './z-accordion-item.component.html',\n styleUrl: './z-accordion.component.scss',\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n host: {\n '[class]': 'itemClasses()',\n },\n})\nexport class ZAccordionItemComponent {\n public readonly class = input<ClassValue>('');\n public readonly zId = input.required<string>();\n public readonly zTitle = input.required<string>();\n public readonly zDisabled = input(false, { transform: zTransform });\n\n private readonly _accordion = inject(ZAccordionComponent);\n\n protected readonly isOpen = computed(() => this._accordion.isItemOpen(this.zId()));\n\n protected readonly itemClasses = computed(() =>\n zMergeClasses(zAccordionItemVariants({ isDisabled: this.zDisabled() }), this.class())\n );\n\n protected readonly triggerClasses = computed(() => zAccordionTriggerVariants({ isOpen: this.isOpen() }));\n\n protected toggle(): void {\n if (this.zDisabled()) {\n return;\n }\n this._accordion.toggleItem(this.zId());\n }\n}\n","<div\n [class]=\"triggerClasses()\"\n [class.bg-muted/50]=\"isOpen()\"\n (click)=\"toggle()\"\n (keydown.enter)=\"toggle()\"\n (keydown.space)=\"toggle()\"\n tabindex=\"0\"\n role=\"button\"\n [attr.aria-expanded]=\"isOpen()\">\n <span class=\"flex items-center gap-2\">\n <ng-content select=\"[zAccordionIcon]\" />\n <span>{{ zTitle() }}</span>\n </span>\n <z-icon\n zType=\"lucideChevronDown\"\n zSize=\"16\"\n class=\"text-muted-foreground shrink-0 transition-transform duration-200\"\n [class.rotate-180]=\"isOpen()\" />\n</div>\n\n<div class=\"z-accordion-content\" [class.z-accordion-content-open]=\"isOpen()\">\n <div class=\"z-accordion-content-inner\">\n <div class=\"mt-2 px-4 pb-4\">\n <ng-content />\n </div>\n </div>\n</div>\n","import {\n ChangeDetectionStrategy,\n Component,\n computed,\n contentChildren,\n input,\n signal,\n ViewEncapsulation,\n} from '@angular/core';\nimport type { ClassValue } from 'clsx';\nimport { ZAccordionItemComponent } from './z-accordion-item.component';\nimport { zAccordionVariants, type ZAccordionVariants } from './z-accordion.variants';\nimport { zMergeClasses, zTransform } from '@shival99/z-ui/utils';\n\n@Component({\n selector: 'z-accordion',\n standalone: true,\n template: '<ng-content />',\n styleUrl: './z-accordion.component.scss',\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n host: {\n '[class]': 'zClasses()',\n },\n})\nexport class ZAccordionComponent {\n public readonly class = input<ClassValue>('');\n public readonly zType = input<ZAccordionVariants['zType']>('default');\n public readonly zMultiple = input(false, { transform: zTransform });\n public readonly zCollapsible = input(true, { transform: zTransform });\n\n protected readonly items = contentChildren(ZAccordionItemComponent);\n private readonly _openItems = signal<Set<string>>(new Set());\n\n protected readonly zClasses = computed(() =>\n zMergeClasses(zAccordionVariants({ zType: this.zType() }), this.class())\n );\n\n public isItemOpen(itemId: string): boolean {\n return this._openItems().has(itemId);\n }\n\n public toggleItem(itemId: string): void {\n const current = new Set(this._openItems());\n const isCurrentlyOpen = current.has(itemId);\n\n if (isCurrentlyOpen && this.zCollapsible()) {\n current.delete(itemId);\n this._openItems.set(current);\n return;\n }\n\n if (isCurrentlyOpen) {\n return;\n }\n\n if (!this.zMultiple()) {\n current.clear();\n }\n current.add(itemId);\n this._openItems.set(current);\n }\n\n public openItem(itemId: string): void {\n const current = new Set(this._openItems());\n if (!this.zMultiple()) {\n current.clear();\n }\n current.add(itemId);\n this._openItems.set(current);\n }\n\n public closeItem(itemId: string): void {\n if (!this.zCollapsible()) {\n return;\n }\n const current = new Set(this._openItems());\n current.delete(itemId);\n this._openItems.set(current);\n }\n\n public closeAll(): void {\n if (!this.zCollapsible()) {\n return;\n }\n this._openItems.set(new Set());\n }\n}\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-accordion.mjs","sources":["../../../../libs/core-ui/components/z-accordion/z-accordion.variants.ts","../../../../libs/core-ui/components/z-accordion/z-accordion-item.component.ts","../../../../libs/core-ui/components/z-accordion/z-accordion-item.component.html","../../../../libs/core-ui/components/z-accordion/z-accordion.component.ts","../../../../libs/core-ui/components/z-accordion/shival99-z-ui-components-z-accordion.ts"],"sourcesContent":["import { cva, type VariantProps } from 'class-variance-authority';\n\nexport const zAccordionVariants = cva(['block w-full'], {\n variants: {\n zType: {\n default: 'border border-border rounded-lg overflow-hidden',\n ghost: '',\n outline: 'border border-border rounded-lg overflow-hidden',\n },\n },\n defaultVariants: {\n zType: 'default',\n },\n});\n\nexport const zAccordionItemVariants = cva(['block group border-b border-border last:border-b-0'], {\n variants: {\n isDisabled: {\n true: 'opacity-50 cursor-not-allowed pointer-events-none',\n false: '',\n },\n },\n defaultVariants: {\n isDisabled: false,\n },\n});\n\nexport const zAccordionTriggerVariants = cva(\n [\n 'flex w-full items-center justify-between py-3 px-3 text-sm font-medium',\n 'transition-colors duration-200 cursor-pointer',\n 'hover:bg-muted/50',\n 'focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2',\n ],\n {\n variants: {\n isOpen: {\n true: 'text-foreground',\n false: 'text-foreground',\n },\n },\n defaultVariants: {\n isOpen: false,\n },\n }\n);\n\nexport const zAccordionContentVariants = cva(['overflow-hidden text-sm'], {\n variants: {\n isOpen: {\n true: '',\n false: '',\n },\n },\n defaultVariants: {\n isOpen: false,\n },\n});\n\nexport type ZAccordionVariants = VariantProps<typeof zAccordionVariants>;\nexport type ZAccordionItemVariants = VariantProps<typeof zAccordionItemVariants>;\nexport type ZAccordionTriggerVariants = VariantProps<typeof zAccordionTriggerVariants>;\nexport type ZAccordionContentVariants = VariantProps<typeof zAccordionContentVariants>;\n","import { ChangeDetectionStrategy, Component, computed, inject, input, ViewEncapsulation } from '@angular/core';\nimport { ZIconComponent } from '@shival99/z-ui/components/z-icon';\nimport { zMergeClasses, zTransform } from '@shival99/z-ui/utils';\nimport type { ClassValue } from 'clsx';\nimport { ZAccordionComponent } from './z-accordion.component';\nimport { zAccordionItemVariants, zAccordionTriggerVariants } from './z-accordion.variants';\n\n@Component({\n selector: 'z-accordion-item',\n imports: [ZIconComponent],\n standalone: true,\n templateUrl: './z-accordion-item.component.html',\n styleUrl: './z-accordion.component.scss',\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n host: {\n '[class]': 'itemClasses()',\n },\n})\nexport class ZAccordionItemComponent {\n public readonly class = input<ClassValue>('');\n public readonly zId = input.required<string>();\n public readonly zTitle = input.required<string>();\n public readonly zDisabled = input(false, { transform: zTransform });\n\n private readonly _accordion = inject(ZAccordionComponent);\n\n protected readonly isOpen = computed(() => this._accordion.isItemOpen(this.zId()));\n\n protected readonly itemClasses = computed(() =>\n zMergeClasses(zAccordionItemVariants({ isDisabled: this.zDisabled() }), this.class())\n );\n\n protected readonly triggerClasses = computed(() => zAccordionTriggerVariants({ isOpen: this.isOpen() }));\n\n protected toggle(): void {\n if (this.zDisabled()) {\n return;\n }\n this._accordion.toggleItem(this.zId());\n }\n}\n","<div\n [class]=\"triggerClasses()\"\n [class.bg-muted/50]=\"isOpen()\"\n (click)=\"toggle()\"\n (keydown.enter)=\"toggle()\"\n (keydown.space)=\"toggle()\"\n tabindex=\"0\"\n role=\"button\"\n [attr.aria-expanded]=\"isOpen()\">\n <span class=\"flex items-center gap-2\">\n <ng-content select=\"[zAccordionIcon]\" />\n <span>{{ zTitle() }}</span>\n </span>\n <z-icon\n zType=\"lucideChevronDown\"\n zSize=\"16\"\n class=\"text-muted-foreground shrink-0 transition-transform duration-200\"\n [class.rotate-180]=\"isOpen()\" />\n</div>\n\n<div class=\"z-accordion-content\" [class.z-accordion-content-open]=\"isOpen()\">\n <div class=\"z-accordion-content-inner\">\n <div class=\"mt-2 px-4 pb-4\">\n <ng-content />\n </div>\n </div>\n</div>\n","import {\n ChangeDetectionStrategy,\n Component,\n computed,\n contentChildren,\n input,\n signal,\n ViewEncapsulation,\n} from '@angular/core';\nimport { zMergeClasses, zTransform } from '@shival99/z-ui/utils';\nimport type { ClassValue } from 'clsx';\nimport { ZAccordionItemComponent } from './z-accordion-item.component';\nimport { zAccordionVariants, type ZAccordionVariants } from './z-accordion.variants';\n\n@Component({\n selector: 'z-accordion',\n standalone: true,\n template: '<ng-content />',\n styleUrl: './z-accordion.component.scss',\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n host: {\n '[class]': 'zClasses()',\n },\n})\nexport class ZAccordionComponent {\n public readonly class = input<ClassValue>('');\n public readonly zType = input<ZAccordionVariants['zType']>('default');\n public readonly zMultiple = input(false, { transform: zTransform });\n public readonly zCollapsible = input(true, { transform: zTransform });\n\n protected readonly items = contentChildren(ZAccordionItemComponent);\n private readonly _openItems = signal<Set<string>>(new Set());\n\n protected readonly zClasses = computed(() =>\n zMergeClasses(zAccordionVariants({ zType: this.zType() }), this.class())\n );\n\n public isItemOpen(itemId: string): boolean {\n return this._openItems().has(itemId);\n }\n\n public toggleItem(itemId: string): void {\n const current = new Set(this._openItems());\n const isCurrentlyOpen = current.has(itemId);\n\n if (isCurrentlyOpen && this.zCollapsible()) {\n current.delete(itemId);\n this._openItems.set(current);\n return;\n }\n\n if (isCurrentlyOpen) {\n return;\n }\n\n if (!this.zMultiple()) {\n current.clear();\n }\n current.add(itemId);\n this._openItems.set(current);\n }\n\n public openItem(itemId: string): void {\n const current = new Set(this._openItems());\n if (!this.zMultiple()) {\n current.clear();\n }\n current.add(itemId);\n this._openItems.set(current);\n }\n\n public closeItem(itemId: string): void {\n if (!this.zCollapsible()) {\n return;\n }\n const current = new Set(this._openItems());\n current.delete(itemId);\n this._openItems.set(current);\n }\n\n public closeAll(): void {\n if (!this.zCollapsible()) {\n return;\n }\n this._openItems.set(new Set());\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import * as i0 from '@angular/core';
|
|
2
2
|
import { input, output, computed, ViewEncapsulation, ChangeDetectionStrategy, Component } from '@angular/core';
|
|
3
3
|
import { RouterLink } from '@angular/router';
|
|
4
|
-
import { cva } from 'class-variance-authority';
|
|
5
|
-
import { zTransform, zMergeClasses } from '@shival99/z-ui/utils';
|
|
6
4
|
import { ZIconComponent } from '@shival99/z-ui/components/z-icon';
|
|
5
|
+
import { zTransform, zMergeClasses } from '@shival99/z-ui/utils';
|
|
6
|
+
import { cva } from 'class-variance-authority';
|
|
7
7
|
|
|
8
8
|
const zBreadcrumbVariants = cva(['flex items-center text-sm'], {
|
|
9
9
|
variants: {
|
|
@@ -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
|
|
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,8 +1,8 @@
|
|
|
1
1
|
import * as i0 from '@angular/core';
|
|
2
2
|
import { input, signal, computed, inject, ElementRef, afterNextRender, ViewEncapsulation, ChangeDetectionStrategy, Component } from '@angular/core';
|
|
3
|
-
import { cva } from 'class-variance-authority';
|
|
4
|
-
import { zTransform, zMergeClasses } from '@shival99/z-ui/utils';
|
|
5
3
|
import { ZIconComponent } from '@shival99/z-ui/components/z-icon';
|
|
4
|
+
import { zTransform, zMergeClasses } from '@shival99/z-ui/utils';
|
|
5
|
+
import { cva } from 'class-variance-authority';
|
|
6
6
|
|
|
7
7
|
const zButtonVariants = cva("cursor-pointer relative inline-flex items-center justify-center gap-2 whitespace-nowrap rounded-[6px] text-sm font-[450] select-none transition-[background-color,border-color,color,box-shadow,opacity] duration-200 disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg:not([class*='size-'])]:size-4 shrink-0 [&_svg]:shrink-0 outline-none focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px] aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive", {
|
|
8
8
|
variants: {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"shival99-z-ui-components-z-button.mjs","sources":["../../../../libs/core-ui/components/z-button/z-button.variants.ts","../../../../libs/core-ui/components/z-button/z-button.component.ts","../../../../libs/core-ui/components/z-button/z-button.component.html","../../../../libs/core-ui/components/z-button/shival99-z-ui-components-z-button.ts"],"sourcesContent":["import { cva, type VariantProps } from 'class-variance-authority';\r\n\r\nexport const zButtonVariants = cva(\r\n \"cursor-pointer relative inline-flex items-center justify-center gap-2 whitespace-nowrap rounded-[6px] text-sm font-[450] select-none transition-[background-color,border-color,color,box-shadow,opacity] duration-200 disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg:not([class*='size-'])]:size-4 shrink-0 [&_svg]:shrink-0 outline-none focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px] aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive\",\r\n {\r\n variants: {\r\n zType: {\r\n default:\r\n 'bg-primary text-primary-foreground shadow-xs hover:bg-primary/90 [--z-wave-color:var(--color-primary)]',\r\n primary:\r\n 'bg-primary text-primary-foreground shadow-xs hover:bg-primary/90 [--z-wave-color:var(--color-primary)]',\r\n secondary:\r\n 'bg-secondary text-secondary-foreground shadow-xs hover:bg-secondary/80 [--z-wave-color:var(--color-secondary-foreground)]',\r\n destructive:\r\n 'bg-destructive text-white shadow-xs hover:bg-destructive/90 focus-visible:ring-destructive/20 dark:focus-visible:ring-destructive/40 dark:bg-destructive/60 [--z-wave-color:var(--color-destructive)]',\r\n success:\r\n 'bg-green-600 text-white shadow-xs hover:bg-green-700 focus-visible:ring-green-500/20 dark:bg-green-600 dark:hover:bg-green-700 [--z-wave-color:var(--color-green-600)]',\r\n info: 'bg-blue-600 text-white shadow-xs hover:bg-blue-700 focus-visible:ring-blue-500/20 dark:bg-blue-600 dark:hover:bg-blue-700 [--z-wave-color:var(--color-blue-600)]',\r\n warning:\r\n 'bg-amber-500 text-white shadow-xs hover:bg-amber-600 focus-visible:ring-amber-500/20 dark:bg-amber-500 dark:hover:bg-amber-600 [--z-wave-color:var(--color-amber-500)]',\r\n error:\r\n 'bg-red-600 text-white shadow-xs hover:bg-red-700 focus-visible:ring-red-500/20 dark:bg-red-600 dark:hover:bg-red-700 [--z-wave-color:var(--color-red-600)]',\r\n\r\n outline:\r\n 'border bg-background shadow-xs hover:bg-accent hover:text-accent-foreground dark:bg-input/30 dark:border-input dark:hover:bg-input/50 [--z-wave-color:var(--color-foreground)]',\r\n 'outline-primary':\r\n 'border border-primary text-primary bg-transparent shadow-xs hover:bg-primary hover:text-primary-foreground focus-visible:ring-primary/20 [--z-wave-color:var(--color-primary)]',\r\n 'outline-secondary':\r\n 'border border-secondary-foreground/20 text-secondary-foreground bg-transparent shadow-xs hover:bg-secondary hover:text-secondary-foreground focus-visible:ring-secondary/20 [--z-wave-color:var(--color-secondary-foreground)]',\r\n 'outline-success':\r\n 'border border-green-600 text-green-600 bg-transparent shadow-xs hover:bg-green-600 hover:text-white focus-visible:ring-green-500/20 dark:border-green-500 dark:text-green-500 dark:hover:bg-green-600 [--z-wave-color:var(--color-green-600)]',\r\n 'outline-info':\r\n 'border border-blue-600 text-blue-600 bg-transparent shadow-xs hover:bg-blue-600 hover:text-white focus-visible:ring-blue-500/20 dark:border-blue-500 dark:text-blue-500 dark:hover:bg-blue-600 [--z-wave-color:var(--color-blue-600)]',\r\n 'outline-warning':\r\n 'border border-amber-500 text-amber-600 bg-transparent shadow-xs hover:bg-amber-500 hover:text-white focus-visible:ring-amber-500/20 dark:border-amber-400 dark:text-amber-400 dark:hover:bg-amber-500 [--z-wave-color:var(--color-amber-500)]',\r\n 'outline-error':\r\n 'border border-red-600 text-red-600 bg-transparent shadow-xs hover:bg-red-600 hover:text-white focus-visible:ring-red-500/20 dark:border-red-500 dark:text-red-500 dark:hover:bg-red-600 [--z-wave-color:var(--color-red-600)]',\r\n 'outline-destructive':\r\n 'border border-destructive text-destructive bg-transparent shadow-xs hover:bg-destructive hover:text-white focus-visible:ring-destructive/20 [--z-wave-color:var(--color-destructive)]',\r\n 'outline-success-secondary':\r\n 'border bg-background shadow-xs hover:bg-green-600/10 hover:text-green-600 hover:border-green-600 dark:bg-input/30 dark:border-input dark:hover:bg-green-500/20 dark:hover:text-green-500 dark:hover:border-green-500 [--z-wave-color:var(--color-green-600)]',\r\n 'outline-info-secondary':\r\n 'border bg-background shadow-xs hover:bg-blue-600/10 hover:text-blue-600 hover:border-blue-600 dark:bg-input/30 dark:border-input dark:hover:bg-blue-500/20 dark:hover:text-blue-500 dark:hover:border-blue-500 [--z-wave-color:var(--color-blue-600)]',\r\n 'outline-warning-secondary':\r\n 'border bg-background shadow-xs hover:bg-amber-500/10 hover:text-amber-600 hover:border-amber-500 dark:bg-input/30 dark:border-input dark:hover:bg-amber-400/20 dark:hover:text-amber-400 dark:hover:border-amber-400 [--z-wave-color:var(--color-amber-500)]',\r\n 'outline-error-secondary':\r\n 'border bg-background shadow-xs hover:bg-red-600/10 hover:text-red-600 hover:border-red-600 dark:bg-input/30 dark:border-input dark:hover:bg-red-500/20 dark:hover:text-red-500 dark:hover:border-red-500 [--z-wave-color:var(--color-red-600)]',\r\n 'outline-destructive-secondary':\r\n 'border bg-background shadow-xs hover:bg-destructive/10 hover:text-destructive hover:border-destructive dark:bg-input/30 dark:border-input dark:hover:bg-destructive/20 dark:hover:border-destructive [--z-wave-color:var(--color-destructive)]',\r\n 'outline-primary-secondary':\r\n 'border bg-background shadow-xs hover:bg-primary/10 hover:text-primary hover:border-primary dark:bg-input/30 dark:border-input dark:hover:bg-primary/20 dark:hover:border-primary [--z-wave-color:var(--color-primary)]',\r\n\r\n ghost:\r\n 'hover:bg-accent hover:text-accent-foreground dark:hover:bg-accent/50 [--z-wave-color:var(--color-foreground)]',\r\n 'ghost-primary':\r\n 'text-primary hover:bg-primary/10 dark:hover:bg-primary/20 [--z-wave-color:var(--color-primary)]',\r\n 'ghost-success':\r\n 'text-green-600 hover:bg-green-600/10 dark:text-green-500 dark:hover:bg-green-500/20 [--z-wave-color:var(--color-green-600)]',\r\n 'ghost-info':\r\n 'text-blue-600 hover:bg-blue-600/10 dark:text-blue-500 dark:hover:bg-blue-500/20 [--z-wave-color:var(--color-blue-600)]',\r\n 'ghost-warning':\r\n 'text-amber-600 hover:bg-amber-500/10 dark:text-amber-400 dark:hover:bg-amber-400/20 [--z-wave-color:var(--color-amber-500)]',\r\n 'ghost-error':\r\n 'text-red-600 hover:bg-red-600/10 dark:text-red-500 dark:hover:bg-red-500/20 [--z-wave-color:var(--color-red-600)]',\r\n 'ghost-destructive':\r\n 'text-destructive hover:bg-destructive/10 dark:hover:bg-destructive/20 [--z-wave-color:var(--color-destructive)]',\r\n\r\n subtle:\r\n 'bg-accent text-accent-foreground hover:bg-accent/80 dark:bg-accent/50 dark:hover:bg-accent/70 [--z-wave-color:var(--color-foreground)]',\r\n\r\n link: 'text-primary underline-offset-4 hover:underline',\r\n },\r\n zSize: {\r\n default: 'h-9 px-3 py-2 [&[z-icon-only]]:size-9 [&[z-icon-only]]:p-0',\r\n xs: 'h-7 px-3 py-1 [&[z-icon-only]]:size-7 [&[z-icon-only]]:p-0',\r\n sm: 'h-8 rounded-[6px] gap-1.5 px-3 [&[z-icon-only]]:size-8 [&[z-icon-only]]:p-0',\r\n lg: 'h-10 rounded-[6px] px-6 [&[z-icon-only]]:size-10 [&[z-icon-only]]:p-0',\r\n xl: 'h-12 rounded-lg px-8 text-base [&[z-icon-only]]:size-12 [&[z-icon-only]]:p-0',\r\n },\r\n zShape: {\r\n default: 'rounded-[6px]',\r\n circle: 'rounded-full',\r\n square: 'rounded-none',\r\n },\r\n zLoading: {\r\n true: 'opacity-50 pointer-events-none',\r\n },\r\n zDisabled: {\r\n true: 'opacity-50 pointer-events-none',\r\n },\r\n },\r\n defaultVariants: {\r\n zType: 'default',\r\n zSize: 'default',\r\n zShape: 'default',\r\n },\r\n }\r\n);\r\nexport type ZButtonVariants = VariantProps<typeof zButtonVariants>;\r\n","import {\n afterNextRender,\n ChangeDetectionStrategy,\n Component,\n computed,\n ElementRef,\n inject,\n input,\n signal,\n ViewEncapsulation,\n type OnDestroy,\n} from '@angular/core';\nimport type { ClassValue } from 'clsx';\nimport { zButtonVariants, type ZButtonVariants } from './z-button.variants';\nimport { zMergeClasses, zTransform } from '@shival99/z-ui/utils';\nimport { ZIconComponent } from '@shival99/z-ui/components/z-icon';\nimport { type ZIconVariants } from '@shival99/z-ui/components/z-icon';\nimport { type ZIcon } from '@shival99/z-ui/components/z-icon';\n\n@Component({\n selector: 'z-button, button[z-button], a[z-button]',\n imports: [ZIconComponent],\n standalone: true,\n templateUrl: './z-button.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n host: {\n '[class]': 'zClasses()',\n '[attr.z-icon-only]': 'zIconOnly() || null',\n '(click)': 'onWaveClick()',\n },\n exportAs: 'zButton',\n})\nexport class ZButtonComponent implements OnDestroy {\n public readonly class = input<ClassValue>('');\n public readonly zType = input<ZButtonVariants['zType']>('default');\n public readonly zSize = input<ZButtonVariants['zSize']>('default');\n public readonly zShape = input<ZButtonVariants['zShape']>('default');\n public readonly zLabel = input<string>('');\n public readonly zLoading = input(false, { transform: zTransform });\n public readonly zDisabled = input(false);\n public readonly zTypeIcon = input<ZIcon | undefined>(undefined);\n public readonly zSizeIcon = input<ZIconVariants['zSize']>('20');\n public readonly zStrokeWidthIcon = input<number>(2);\n public readonly zWave = input(true, { transform: zTransform });\n\n private readonly _zIconOnlyState = signal(false);\n private _mutationObserver: MutationObserver | null = null;\n protected readonly zIconOnly = this._zIconOnlyState.asReadonly();\n protected readonly zClasses = computed(() =>\n zMergeClasses(\n zButtonVariants({\n zType: this.zType(),\n zSize: this.zSize(),\n zShape: this.zShape(),\n zLoading: this.zLoading(),\n zDisabled: this.zDisabled(),\n }),\n this.class()\n )\n );\n\n private readonly _elementRef = inject(ElementRef<HTMLElement>);\n\n constructor() {\n afterNextRender(() => {\n const check = () => {\n const el = this._elementRef.nativeElement;\n const hasIcon = el.querySelector('z-icon, [z-icon]') !== null;\n const children = Array.from<Node>(el.childNodes);\n const hasText = children.some(node => {\n if (node.nodeType === 3) {\n return node.textContent?.trim() !== '';\n }\n\n if (node.nodeType === 1) {\n const element = node as HTMLElement;\n if (element.matches('z-icon, [z-icon]')) {\n return false;\n }\n\n return element.textContent?.trim() !== '';\n }\n\n return false;\n });\n\n this._zIconOnlyState.set(hasIcon && !hasText);\n };\n\n check();\n this._mutationObserver = new MutationObserver(check);\n this._mutationObserver.observe(this._elementRef.nativeElement, {\n childList: true,\n characterData: true,\n subtree: true,\n });\n });\n }\n\n ngOnDestroy(): void {\n if (this._mutationObserver) {\n this._mutationObserver.disconnect();\n this._mutationObserver = null;\n }\n }\n\n protected onWaveClick(): void {\n const type = this.zType();\n if (!this.zWave() || this.zLoading() || type === 'link') {\n return;\n }\n\n const el = this._elementRef.nativeElement;\n const waveEl = document.createElement('span');\n waveEl.className = 'z-animate-wave';\n el.appendChild(waveEl);\n\n waveEl.addEventListener('animationend', () => waveEl.remove(), { once: true });\n }\n}\n","@if (zTypeIcon() && !zLoading()) {\n <i z-icon [zType]=\"zTypeIcon() || 'lucideLoader'\" [zSize]=\"zSizeIcon()\" [zStrokeWidth]=\"zStrokeWidthIcon()\"></i>\n}\n@if (zLoading()) {\n <i z-icon zType=\"lucideLoader\" class=\"z-animate-spin\" [zSize]=\"zSizeIcon()\" [zStrokeWidth]=\"2.8\"></i>\n}\n@if (zLabel()) {\n <span>{{ zLabel() }}</span>\n} @else {\n <ng-content />\n}\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-button.mjs","sources":["../../../../libs/core-ui/components/z-button/z-button.variants.ts","../../../../libs/core-ui/components/z-button/z-button.component.ts","../../../../libs/core-ui/components/z-button/z-button.component.html","../../../../libs/core-ui/components/z-button/shival99-z-ui-components-z-button.ts"],"sourcesContent":["import { cva, type VariantProps } from 'class-variance-authority';\n\nexport const zButtonVariants = cva(\n \"cursor-pointer relative inline-flex items-center justify-center gap-2 whitespace-nowrap rounded-[6px] text-sm font-[450] select-none transition-[background-color,border-color,color,box-shadow,opacity] duration-200 disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg:not([class*='size-'])]:size-4 shrink-0 [&_svg]:shrink-0 outline-none focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px] aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive\",\n {\n variants: {\n zType: {\n default:\n 'bg-primary text-primary-foreground shadow-xs hover:bg-primary/90 [--z-wave-color:var(--color-primary)]',\n primary:\n 'bg-primary text-primary-foreground shadow-xs hover:bg-primary/90 [--z-wave-color:var(--color-primary)]',\n secondary:\n 'bg-secondary text-secondary-foreground shadow-xs hover:bg-secondary/80 [--z-wave-color:var(--color-secondary-foreground)]',\n destructive:\n 'bg-destructive text-white shadow-xs hover:bg-destructive/90 focus-visible:ring-destructive/20 dark:focus-visible:ring-destructive/40 dark:bg-destructive/60 [--z-wave-color:var(--color-destructive)]',\n success:\n 'bg-green-600 text-white shadow-xs hover:bg-green-700 focus-visible:ring-green-500/20 dark:bg-green-600 dark:hover:bg-green-700 [--z-wave-color:var(--color-green-600)]',\n info: 'bg-blue-600 text-white shadow-xs hover:bg-blue-700 focus-visible:ring-blue-500/20 dark:bg-blue-600 dark:hover:bg-blue-700 [--z-wave-color:var(--color-blue-600)]',\n warning:\n 'bg-amber-500 text-white shadow-xs hover:bg-amber-600 focus-visible:ring-amber-500/20 dark:bg-amber-500 dark:hover:bg-amber-600 [--z-wave-color:var(--color-amber-500)]',\n error:\n 'bg-red-600 text-white shadow-xs hover:bg-red-700 focus-visible:ring-red-500/20 dark:bg-red-600 dark:hover:bg-red-700 [--z-wave-color:var(--color-red-600)]',\n\n outline:\n 'border bg-background shadow-xs hover:bg-accent hover:text-accent-foreground dark:bg-input/30 dark:border-input dark:hover:bg-input/50 [--z-wave-color:var(--color-foreground)]',\n 'outline-primary':\n 'border border-primary text-primary bg-transparent shadow-xs hover:bg-primary hover:text-primary-foreground focus-visible:ring-primary/20 [--z-wave-color:var(--color-primary)]',\n 'outline-secondary':\n 'border border-secondary-foreground/20 text-secondary-foreground bg-transparent shadow-xs hover:bg-secondary hover:text-secondary-foreground focus-visible:ring-secondary/20 [--z-wave-color:var(--color-secondary-foreground)]',\n 'outline-success':\n 'border border-green-600 text-green-600 bg-transparent shadow-xs hover:bg-green-600 hover:text-white focus-visible:ring-green-500/20 dark:border-green-500 dark:text-green-500 dark:hover:bg-green-600 [--z-wave-color:var(--color-green-600)]',\n 'outline-info':\n 'border border-blue-600 text-blue-600 bg-transparent shadow-xs hover:bg-blue-600 hover:text-white focus-visible:ring-blue-500/20 dark:border-blue-500 dark:text-blue-500 dark:hover:bg-blue-600 [--z-wave-color:var(--color-blue-600)]',\n 'outline-warning':\n 'border border-amber-500 text-amber-600 bg-transparent shadow-xs hover:bg-amber-500 hover:text-white focus-visible:ring-amber-500/20 dark:border-amber-400 dark:text-amber-400 dark:hover:bg-amber-500 [--z-wave-color:var(--color-amber-500)]',\n 'outline-error':\n 'border border-red-600 text-red-600 bg-transparent shadow-xs hover:bg-red-600 hover:text-white focus-visible:ring-red-500/20 dark:border-red-500 dark:text-red-500 dark:hover:bg-red-600 [--z-wave-color:var(--color-red-600)]',\n 'outline-destructive':\n 'border border-destructive text-destructive bg-transparent shadow-xs hover:bg-destructive hover:text-white focus-visible:ring-destructive/20 [--z-wave-color:var(--color-destructive)]',\n 'outline-success-secondary':\n 'border bg-background shadow-xs hover:bg-green-600/10 hover:text-green-600 hover:border-green-600 dark:bg-input/30 dark:border-input dark:hover:bg-green-500/20 dark:hover:text-green-500 dark:hover:border-green-500 [--z-wave-color:var(--color-green-600)]',\n 'outline-info-secondary':\n 'border bg-background shadow-xs hover:bg-blue-600/10 hover:text-blue-600 hover:border-blue-600 dark:bg-input/30 dark:border-input dark:hover:bg-blue-500/20 dark:hover:text-blue-500 dark:hover:border-blue-500 [--z-wave-color:var(--color-blue-600)]',\n 'outline-warning-secondary':\n 'border bg-background shadow-xs hover:bg-amber-500/10 hover:text-amber-600 hover:border-amber-500 dark:bg-input/30 dark:border-input dark:hover:bg-amber-400/20 dark:hover:text-amber-400 dark:hover:border-amber-400 [--z-wave-color:var(--color-amber-500)]',\n 'outline-error-secondary':\n 'border bg-background shadow-xs hover:bg-red-600/10 hover:text-red-600 hover:border-red-600 dark:bg-input/30 dark:border-input dark:hover:bg-red-500/20 dark:hover:text-red-500 dark:hover:border-red-500 [--z-wave-color:var(--color-red-600)]',\n 'outline-destructive-secondary':\n 'border bg-background shadow-xs hover:bg-destructive/10 hover:text-destructive hover:border-destructive dark:bg-input/30 dark:border-input dark:hover:bg-destructive/20 dark:hover:border-destructive [--z-wave-color:var(--color-destructive)]',\n 'outline-primary-secondary':\n 'border bg-background shadow-xs hover:bg-primary/10 hover:text-primary hover:border-primary dark:bg-input/30 dark:border-input dark:hover:bg-primary/20 dark:hover:border-primary [--z-wave-color:var(--color-primary)]',\n\n ghost:\n 'hover:bg-accent hover:text-accent-foreground dark:hover:bg-accent/50 [--z-wave-color:var(--color-foreground)]',\n 'ghost-primary':\n 'text-primary hover:bg-primary/10 dark:hover:bg-primary/20 [--z-wave-color:var(--color-primary)]',\n 'ghost-success':\n 'text-green-600 hover:bg-green-600/10 dark:text-green-500 dark:hover:bg-green-500/20 [--z-wave-color:var(--color-green-600)]',\n 'ghost-info':\n 'text-blue-600 hover:bg-blue-600/10 dark:text-blue-500 dark:hover:bg-blue-500/20 [--z-wave-color:var(--color-blue-600)]',\n 'ghost-warning':\n 'text-amber-600 hover:bg-amber-500/10 dark:text-amber-400 dark:hover:bg-amber-400/20 [--z-wave-color:var(--color-amber-500)]',\n 'ghost-error':\n 'text-red-600 hover:bg-red-600/10 dark:text-red-500 dark:hover:bg-red-500/20 [--z-wave-color:var(--color-red-600)]',\n 'ghost-destructive':\n 'text-destructive hover:bg-destructive/10 dark:hover:bg-destructive/20 [--z-wave-color:var(--color-destructive)]',\n\n subtle:\n 'bg-accent text-accent-foreground hover:bg-accent/80 dark:bg-accent/50 dark:hover:bg-accent/70 [--z-wave-color:var(--color-foreground)]',\n\n link: 'text-primary underline-offset-4 hover:underline',\n },\n zSize: {\n default: 'h-9 px-3 py-2 [&[z-icon-only]]:size-9 [&[z-icon-only]]:p-0',\n xs: 'h-7 px-3 py-1 [&[z-icon-only]]:size-7 [&[z-icon-only]]:p-0',\n sm: 'h-8 rounded-[6px] gap-1.5 px-3 [&[z-icon-only]]:size-8 [&[z-icon-only]]:p-0',\n lg: 'h-10 rounded-[6px] px-6 [&[z-icon-only]]:size-10 [&[z-icon-only]]:p-0',\n xl: 'h-12 rounded-lg px-8 text-base [&[z-icon-only]]:size-12 [&[z-icon-only]]:p-0',\n },\n zShape: {\n default: 'rounded-[6px]',\n circle: 'rounded-full',\n square: 'rounded-none',\n },\n zLoading: {\n true: 'opacity-50 pointer-events-none',\n },\n zDisabled: {\n true: 'opacity-50 pointer-events-none',\n },\n },\n defaultVariants: {\n zType: 'default',\n zSize: 'default',\n zShape: 'default',\n },\n }\n);\nexport type ZButtonVariants = VariantProps<typeof zButtonVariants>;\n","import {\n afterNextRender,\n ChangeDetectionStrategy,\n Component,\n computed,\n ElementRef,\n inject,\n input,\n signal,\n ViewEncapsulation,\n type OnDestroy,\n} from '@angular/core';\nimport { ZIconComponent } from '@shival99/z-ui/components/z-icon';\nimport { type ZIconVariants, type ZIcon } from '@shival99/z-ui/components/z-icon';\nimport { zMergeClasses, zTransform } from '@shival99/z-ui/utils';\nimport type { ClassValue } from 'clsx';\nimport { zButtonVariants, type ZButtonVariants } from './z-button.variants';\n\n@Component({\n selector: 'z-button, button[z-button], a[z-button]',\n imports: [ZIconComponent],\n standalone: true,\n templateUrl: './z-button.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n host: {\n '[class]': 'zClasses()',\n '[attr.z-icon-only]': 'zIconOnly() || null',\n '(click)': 'onWaveClick()',\n },\n exportAs: 'zButton',\n})\nexport class ZButtonComponent implements OnDestroy {\n public readonly class = input<ClassValue>('');\n public readonly zType = input<ZButtonVariants['zType']>('default');\n public readonly zSize = input<ZButtonVariants['zSize']>('default');\n public readonly zShape = input<ZButtonVariants['zShape']>('default');\n public readonly zLabel = input<string>('');\n public readonly zLoading = input(false, { transform: zTransform });\n public readonly zDisabled = input(false);\n public readonly zTypeIcon = input<ZIcon | undefined>(undefined);\n public readonly zSizeIcon = input<ZIconVariants['zSize']>('20');\n public readonly zStrokeWidthIcon = input<number>(2);\n public readonly zWave = input(true, { transform: zTransform });\n\n private readonly _zIconOnlyState = signal(false);\n private _mutationObserver: MutationObserver | null = null;\n protected readonly zIconOnly = this._zIconOnlyState.asReadonly();\n protected readonly zClasses = computed(() =>\n zMergeClasses(\n zButtonVariants({\n zType: this.zType(),\n zSize: this.zSize(),\n zShape: this.zShape(),\n zLoading: this.zLoading(),\n zDisabled: this.zDisabled(),\n }),\n this.class()\n )\n );\n\n private readonly _elementRef = inject(ElementRef<HTMLElement>);\n\n constructor() {\n afterNextRender(() => {\n const check = () => {\n const el = this._elementRef.nativeElement;\n const hasIcon = el.querySelector('z-icon, [z-icon]') !== null;\n const children = Array.from<Node>(el.childNodes);\n const hasText = children.some(node => {\n if (node.nodeType === 3) {\n return node.textContent?.trim() !== '';\n }\n\n if (node.nodeType === 1) {\n const element = node as HTMLElement;\n if (element.matches('z-icon, [z-icon]')) {\n return false;\n }\n\n return element.textContent?.trim() !== '';\n }\n\n return false;\n });\n\n this._zIconOnlyState.set(hasIcon && !hasText);\n };\n\n check();\n this._mutationObserver = new MutationObserver(check);\n this._mutationObserver.observe(this._elementRef.nativeElement, {\n childList: true,\n characterData: true,\n subtree: true,\n });\n });\n }\n\n ngOnDestroy(): void {\n if (this._mutationObserver) {\n this._mutationObserver.disconnect();\n this._mutationObserver = null;\n }\n }\n\n protected onWaveClick(): void {\n const type = this.zType();\n if (!this.zWave() || this.zLoading() || type === 'link') {\n return;\n }\n\n const el = this._elementRef.nativeElement;\n const waveEl = document.createElement('span');\n waveEl.className = 'z-animate-wave';\n el.appendChild(waveEl);\n\n waveEl.addEventListener('animationend', () => waveEl.remove(), { once: true });\n }\n}\n","@if (zTypeIcon() && !zLoading()) {\n <i z-icon [zType]=\"zTypeIcon() || 'lucideLoader'\" [zSize]=\"zSizeIcon()\" [zStrokeWidth]=\"zStrokeWidthIcon()\"></i>\n}\n@if (zLoading()) {\n <i z-icon zType=\"lucideLoader\" class=\"z-animate-spin\" [zSize]=\"zSizeIcon()\" [zStrokeWidth]=\"2.8\"></i>\n}\n@if (zLabel()) {\n <span>{{ zLabel() }}</span>\n} @else {\n <ng-content />\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|
|
@@ -2,12 +2,12 @@ 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
3
|
import { takeUntilDestroyed } from '@angular/core/rxjs-interop';
|
|
4
4
|
import { NgControl, NG_VALUE_ACCESSOR } from '@angular/forms';
|
|
5
|
-
import { merge } from 'rxjs';
|
|
6
|
-
import { cva } from 'class-variance-authority';
|
|
7
|
-
import { zTransform, zGenerateId, zMergeClasses } from '@shival99/z-ui/utils';
|
|
8
5
|
import { ZButtonComponent } from '@shival99/z-ui/components/z-button';
|
|
9
6
|
import { ZIconComponent } from '@shival99/z-ui/components/z-icon';
|
|
10
7
|
import { ZPopoverDirective } from '@shival99/z-ui/components/z-popover';
|
|
8
|
+
import { zTransform, zGenerateId, zMergeClasses } from '@shival99/z-ui/utils';
|
|
9
|
+
import { merge } from 'rxjs';
|
|
10
|
+
import { cva } from 'class-variance-authority';
|
|
11
11
|
|
|
12
12
|
const createDate = (year, month, day, hour = 0, minute = 0, second = 0) => new Date(year, month, day, hour, minute, second);
|
|
13
13
|
const cloneDate = (date) => new Date(date.getTime());
|
|
@@ -560,35 +560,35 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.6", ngImpor
|
|
|
560
560
|
}]
|
|
561
561
|
}] });
|
|
562
562
|
|
|
563
|
-
class
|
|
564
|
-
transform(
|
|
565
|
-
const state =
|
|
566
|
-
return
|
|
563
|
+
class ZQuarterClassesPipe {
|
|
564
|
+
transform(quarterIndex, currentQuarterIndex) {
|
|
565
|
+
const state = getQuarterState(quarterIndex, currentQuarterIndex);
|
|
566
|
+
return zCalendarQuarterVariants({ state });
|
|
567
567
|
}
|
|
568
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.6", ngImport: i0, type:
|
|
569
|
-
static ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "21.0.6", ngImport: i0, type:
|
|
568
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.6", ngImport: i0, type: ZQuarterClassesPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe });
|
|
569
|
+
static ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "21.0.6", ngImport: i0, type: ZQuarterClassesPipe, isStandalone: true, name: "zQuarterClasses" });
|
|
570
570
|
}
|
|
571
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.6", ngImport: i0, type:
|
|
571
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.6", ngImport: i0, type: ZQuarterClassesPipe, decorators: [{
|
|
572
572
|
type: Pipe,
|
|
573
573
|
args: [{
|
|
574
|
-
name: '
|
|
574
|
+
name: 'zQuarterClasses',
|
|
575
575
|
standalone: true,
|
|
576
576
|
pure: true,
|
|
577
577
|
}]
|
|
578
578
|
}] });
|
|
579
579
|
|
|
580
|
-
class
|
|
581
|
-
transform(
|
|
582
|
-
const state =
|
|
583
|
-
return
|
|
580
|
+
class ZYearClassesPipe {
|
|
581
|
+
transform(year, currentYear) {
|
|
582
|
+
const state = getYearState(year, currentYear);
|
|
583
|
+
return zCalendarYearVariants({ state });
|
|
584
584
|
}
|
|
585
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.6", ngImport: i0, type:
|
|
586
|
-
static ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "21.0.6", ngImport: i0, type:
|
|
585
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.6", ngImport: i0, type: ZYearClassesPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe });
|
|
586
|
+
static ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "21.0.6", ngImport: i0, type: ZYearClassesPipe, isStandalone: true, name: "zYearClasses" });
|
|
587
587
|
}
|
|
588
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.6", ngImport: i0, type:
|
|
588
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.6", ngImport: i0, type: ZYearClassesPipe, decorators: [{
|
|
589
589
|
type: Pipe,
|
|
590
590
|
args: [{
|
|
591
|
-
name: '
|
|
591
|
+
name: 'zYearClasses',
|
|
592
592
|
standalone: true,
|
|
593
593
|
pure: true,
|
|
594
594
|
}]
|