@shival99/z-ui 1.0.28 → 1.0.30
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/fesm2022/shival99-z-ui-components-z-pagination.mjs +1 -1
- package/fesm2022/shival99-z-ui-components-z-pagination.mjs.map +1 -1
- package/fesm2022/shival99-z-ui-components-z-toast.mjs +136 -14
- package/fesm2022/shival99-z-ui-components-z-toast.mjs.map +1 -1
- package/fesm2022/shival99-z-ui-providers.mjs +0 -4
- package/fesm2022/shival99-z-ui-providers.mjs.map +1 -1
- package/package.json +1 -1
- package/types/shival99-z-ui-components-z-input.d.ts +2 -2
- package/types/shival99-z-ui-components-z-toast.d.ts +69 -12
|
@@ -26,7 +26,7 @@ class ZPaginationComponent {
|
|
|
26
26
|
zGoToLabel = input(null, ...(ngDevMode ? [{ debugName: "zGoToLabel" }] : []));
|
|
27
27
|
zOnPageChange = output();
|
|
28
28
|
_translate = inject(TranslateService);
|
|
29
|
-
_currentLang = toSignal(this._translate.onLangChange.pipe(startWith({ lang: this._translate.
|
|
29
|
+
_currentLang = toSignal(this._translate.onLangChange.pipe(startWith({ lang: this._translate.getCurrentLang() })));
|
|
30
30
|
totalLabelText = computed(() => {
|
|
31
31
|
this._currentLang();
|
|
32
32
|
const label = this.zTotalLabel() ?? this._translate.instant('i18n_z_ui_pagination_total_label');
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"shival99-z-ui-components-z-pagination.mjs","sources":["../../../../libs/core-ui/components/z-pagination/z-pagination.component.ts","../../../../libs/core-ui/components/z-pagination/z-pagination.component.html","../../../../libs/core-ui/components/z-pagination/shival99-z-ui-components-z-pagination.ts"],"sourcesContent":["import { ChangeDetectionStrategy, Component, computed, inject, input, model, output } from '@angular/core';\nimport { toSignal } from '@angular/core/rxjs-interop';\nimport { FormsModule } from '@angular/forms';\nimport { TranslatePipe, TranslateService } from '@ngx-translate/core';\nimport { ZButtonComponent } from '@shival99/z-ui/components/z-button';\nimport { ZIconComponent } from '@shival99/z-ui/components/z-icon';\nimport { ZInputComponent } from '@shival99/z-ui/components/z-input';\nimport { ZSelectComponent } from '@shival99/z-ui/components/z-select';\nimport { startWith } from 'rxjs';\nimport type { ZPageChangeEvent, ZPaginationSize } from './z-pagination.types';\n\n@Component({\n selector: 'z-pagination',\n imports: [FormsModule, ZButtonComponent, ZIconComponent, ZInputComponent, ZSelectComponent, TranslatePipe],\n standalone: true,\n templateUrl: './z-pagination.component.html',\n providers: [TranslatePipe],\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n class: 'z-pagination flex items-center gap-2',\n },\n})\nexport class ZPaginationComponent {\n public readonly zPageIndex = model<number>(1);\n public readonly zPageSize = model<number>(10);\n public readonly zTotal = input.required<number>();\n public readonly zPageSizeOptions = input<number[]>([10, 20, 50, 100]);\n public readonly zShowSizeChanger = input<boolean>(true);\n public readonly zShowQuickJumper = input<boolean>(false);\n public readonly zShowTotal = input<boolean>(true);\n public readonly zSimple = input<boolean>(false);\n public readonly zSize = input<ZPaginationSize>('default');\n public readonly zDisabled = input<boolean>(false);\n\n public readonly zTotalLabel = input<string | null>(null);\n public readonly zPerPageLabel = input<string | null>(null);\n public readonly zGoToLabel = input<string | null>(null);\n\n public readonly zOnPageChange = output<ZPageChangeEvent>();\n\n private readonly _translate = inject(TranslateService);\n private readonly _currentLang = toSignal(\n this._translate.onLangChange.pipe(startWith({ lang: this._translate.currentLang }))\n );\n\n protected readonly totalLabelText = computed(() => {\n this._currentLang();\n const label = this.zTotalLabel() ?? this._translate.instant('i18n_z_ui_pagination_total_label');\n return label.replace('{total}', String(this.zTotal()));\n });\n\n protected readonly perPageLabelText = computed(() => {\n this._currentLang();\n return this.zPerPageLabel() ?? this._translate.instant('i18n_z_ui_pagination_per_page');\n });\n\n protected readonly goToLabelText = computed(() => {\n this._currentLang();\n return this.zGoToLabel() ?? this._translate.instant('i18n_z_ui_pagination_go_to');\n });\n\n protected readonly totalPages = computed(() => {\n const total = this.zTotal();\n const pageSize = this.zPageSize();\n return Math.max(1, Math.ceil(total / pageSize));\n });\n\n protected readonly pageSizeOptions = computed(() =>\n this.zPageSizeOptions().map(size => ({\n label: `${size} ${this.perPageLabelText()}`,\n value: size,\n }))\n );\n\n protected readonly visiblePages = computed(() => {\n const current = this.zPageIndex();\n const total = this.totalPages();\n const pages: (number | 'ellipsis')[] = [];\n const maxVisible = 5;\n\n if (total <= maxVisible) {\n for (let i = 1; i <= total; i++) {\n pages.push(i);\n }\n return pages;\n }\n\n pages.push(1);\n\n let startPage = Math.max(2, current - 1);\n let endPage = Math.min(total - 1, current + 1);\n\n if (current <= 3) {\n endPage = Math.min(total - 1, 3);\n } else if (current >= total - 2) {\n startPage = Math.max(2, total - 2);\n }\n\n if (startPage > 2) {\n pages.push('ellipsis');\n }\n\n for (let i = startPage; i <= endPage; i++) {\n pages.push(i);\n }\n\n if (endPage < total - 1) {\n pages.push('ellipsis');\n }\n\n pages.push(total);\n\n return pages;\n });\n\n protected readonly canGoPrev = computed(() => this.zPageIndex() > 1);\n protected readonly canGoNext = computed(() => this.zPageIndex() < this.totalPages());\n\n protected goToPage(page: number): void {\n if (page < 1 || page > this.totalPages()) {\n return;\n }\n if (page === this.zPageIndex()) {\n return;\n }\n\n this.zPageIndex.set(page);\n this._emitChange();\n }\n\n protected goToPrev(): void {\n if (!this.canGoPrev()) {\n return;\n }\n this.goToPage(this.zPageIndex() - 1);\n }\n\n protected goToNext(): void {\n if (!this.canGoNext()) {\n return;\n }\n this.goToPage(this.zPageIndex() + 1);\n }\n\n protected onPageSizeChange(size: unknown): void {\n const sizeValue =\n typeof size === 'object' && size !== null && 'value' in size\n ? (size as { value: number }).value\n : (size as number);\n\n const currentFirst = (this.zPageIndex() - 1) * this.zPageSize();\n const newPageIndex = Math.floor(currentFirst / sizeValue) + 1;\n\n this.zPageSize.set(sizeValue);\n this.zPageIndex.set(newPageIndex);\n this._emitChange();\n }\n\n protected onQuickJump(event: Event): void {\n const input = event.target as HTMLInputElement;\n const page = parseInt(input.value, 10);\n\n if (isNaN(page) || page < 1 || page > this.totalPages()) {\n input.value = String(this.zPageIndex());\n return;\n }\n\n this.goToPage(page);\n }\n\n private _emitChange(): void {\n this.zOnPageChange.emit({\n pageIndex: this.zPageIndex(),\n pageSize: this.zPageSize(),\n });\n }\n}\n","@if (zShowTotal()) {\n <span class=\"text-muted-foreground text-sm whitespace-nowrap\">{{ totalLabelText() }}</span>\n}\n\n@if (!zSimple()) {\n <!-- Page Size Selector -->\n @if (zShowSizeChanger()) {\n <z-select\n class=\"w-fit\"\n zSize=\"sm\"\n [zOptions]=\"pageSizeOptions()\"\n [ngModel]=\"zPageSize()\"\n (ngModelChange)=\"onPageSizeChange($event)\"\n [zDisabled]=\"zDisabled()\"\n [zShowSearch]=\"false\" />\n }\n\n <div class=\"flex items-center gap-1\">\n <!-- Prev Button -->\n <z-button zType=\"ghost\" zSize=\"sm\" [zDisabled]=\"!canGoPrev() || zDisabled()\" (click)=\"goToPrev()\">\n <z-icon zType=\"lucideChevronLeft\" zSize=\"16\" />\n </z-button>\n\n <!-- Page Numbers -->\n @for (page of visiblePages(); track $index) {\n @if (page === 'ellipsis') {\n <span class=\"text-muted-foreground flex h-8 w-8 items-center justify-center text-sm\">...</span>\n } @else {\n <z-button\n [zType]=\"page === zPageIndex() ? 'default' : 'outline'\"\n [zWave]=\"false\"\n zSize=\"sm\"\n class=\"min-w-8\"\n [zDisabled]=\"zDisabled()\"\n (click)=\"goToPage(page)\">\n {{ page }}\n </z-button>\n }\n }\n\n <!-- Next Button -->\n <z-button zType=\"ghost\" zSize=\"sm\" [zDisabled]=\"!canGoNext() || zDisabled()\" (click)=\"goToNext()\">\n <z-icon zType=\"lucideChevronRight\" zSize=\"16\" />\n </z-button>\n </div>\n\n <!-- Quick Jumper -->\n @if (zShowQuickJumper()) {\n <div class=\"flex items-center gap-2 text-sm\">\n <span class=\"text-muted-foreground whitespace-nowrap\">{{ goToLabelText() }}</span>\n <z-input\n zType=\"number\"\n zSize=\"sm\"\n class=\"w-14\"\n [ngModel]=\"zPageIndex()\"\n [zMin]=\"1\"\n [zMax]=\"totalPages()\"\n [zDisabled]=\"zDisabled()\"\n (keydown.enter)=\"onQuickJump($event)\"\n (blur)=\"onQuickJump($event)\" />\n </div>\n }\n} @else {\n <!-- Simple Mode -->\n <z-button zType=\"outline\" zSize=\"sm\" [zDisabled]=\"!canGoPrev() || zDisabled()\" (click)=\"goToPrev()\">\n <z-icon zType=\"lucideChevronLeft\" zSize=\"16\" />\n <span class=\"ml-1\">{{ 'i18n_z_ui_pagination_previous' | translate }}</span>\n </z-button>\n\n <span class=\"text-muted-foreground px-2 text-sm\">{{ zPageIndex() }} / {{ totalPages() }}</span>\n\n <z-button zType=\"outline\" zSize=\"sm\" [zDisabled]=\"!canGoNext() || zDisabled()\" (click)=\"goToNext()\">\n <span class=\"mr-1\">{{ 'i18n_z_ui_pagination_next' | translate }}</span>\n <z-icon zType=\"lucideChevronRight\" zSize=\"16\" />\n </z-button>\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;;;;;;;;;MAsBa,oBAAoB,CAAA;AACf,IAAA,UAAU,GAAG,KAAK,CAAS,CAAC,sDAAC;AAC7B,IAAA,SAAS,GAAG,KAAK,CAAS,EAAE,qDAAC;AAC7B,IAAA,MAAM,GAAG,KAAK,CAAC,QAAQ,iDAAU;AACjC,IAAA,gBAAgB,GAAG,KAAK,CAAW,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,CAAC,4DAAC;AACrD,IAAA,gBAAgB,GAAG,KAAK,CAAU,IAAI,4DAAC;AACvC,IAAA,gBAAgB,GAAG,KAAK,CAAU,KAAK,4DAAC;AACxC,IAAA,UAAU,GAAG,KAAK,CAAU,IAAI,sDAAC;AACjC,IAAA,OAAO,GAAG,KAAK,CAAU,KAAK,mDAAC;AAC/B,IAAA,KAAK,GAAG,KAAK,CAAkB,SAAS,iDAAC;AACzC,IAAA,SAAS,GAAG,KAAK,CAAU,KAAK,qDAAC;AAEjC,IAAA,WAAW,GAAG,KAAK,CAAgB,IAAI,uDAAC;AACxC,IAAA,aAAa,GAAG,KAAK,CAAgB,IAAI,yDAAC;AAC1C,IAAA,UAAU,GAAG,KAAK,CAAgB,IAAI,sDAAC;IAEvC,aAAa,GAAG,MAAM,EAAoB;AAEzC,IAAA,UAAU,GAAG,MAAM,CAAC,gBAAgB,CAAC;IACrC,YAAY,GAAG,QAAQ,CACtC,IAAI,CAAC,UAAU,CAAC,YAAY,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,UAAU,CAAC,WAAW,EAAE,CAAC,CAAC,CACpF;AAEkB,IAAA,cAAc,GAAG,QAAQ,CAAC,MAAK;QAChD,IAAI,CAAC,YAAY,EAAE;AACnB,QAAA,MAAM,KAAK,GAAG,IAAI,CAAC,WAAW,EAAE,IAAI,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,kCAAkC,CAAC;AAC/F,QAAA,OAAO,KAAK,CAAC,OAAO,CAAC,SAAS,EAAE,MAAM,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC;AACxD,IAAA,CAAC,0DAAC;AAEiB,IAAA,gBAAgB,GAAG,QAAQ,CAAC,MAAK;QAClD,IAAI,CAAC,YAAY,EAAE;AACnB,QAAA,OAAO,IAAI,CAAC,aAAa,EAAE,IAAI,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,+BAA+B,CAAC;AACzF,IAAA,CAAC,4DAAC;AAEiB,IAAA,aAAa,GAAG,QAAQ,CAAC,MAAK;QAC/C,IAAI,CAAC,YAAY,EAAE;AACnB,QAAA,OAAO,IAAI,CAAC,UAAU,EAAE,IAAI,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,4BAA4B,CAAC;AACnF,IAAA,CAAC,yDAAC;AAEiB,IAAA,UAAU,GAAG,QAAQ,CAAC,MAAK;AAC5C,QAAA,MAAM,KAAK,GAAG,IAAI,CAAC,MAAM,EAAE;AAC3B,QAAA,MAAM,QAAQ,GAAG,IAAI,CAAC,SAAS,EAAE;AACjC,QAAA,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,IAAI,CAAC,KAAK,GAAG,QAAQ,CAAC,CAAC;AACjD,IAAA,CAAC,sDAAC;AAEiB,IAAA,eAAe,GAAG,QAAQ,CAAC,MAC5C,IAAI,CAAC,gBAAgB,EAAE,CAAC,GAAG,CAAC,IAAI,KAAK;QACnC,KAAK,EAAE,GAAG,IAAI,CAAA,CAAA,EAAI,IAAI,CAAC,gBAAgB,EAAE,CAAA,CAAE;AAC3C,QAAA,KAAK,EAAE,IAAI;KACZ,CAAC,CAAC,2DACJ;AAEkB,IAAA,YAAY,GAAG,QAAQ,CAAC,MAAK;AAC9C,QAAA,MAAM,OAAO,GAAG,IAAI,CAAC,UAAU,EAAE;AACjC,QAAA,MAAM,KAAK,GAAG,IAAI,CAAC,UAAU,EAAE;QAC/B,MAAM,KAAK,GAA4B,EAAE;QACzC,MAAM,UAAU,GAAG,CAAC;AAEpB,QAAA,IAAI,KAAK,IAAI,UAAU,EAAE;AACvB,YAAA,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,KAAK,EAAE,CAAC,EAAE,EAAE;AAC/B,gBAAA,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC;YACf;AACA,YAAA,OAAO,KAAK;QACd;AAEA,QAAA,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC;AAEb,QAAA,IAAI,SAAS,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,OAAO,GAAG,CAAC,CAAC;AACxC,QAAA,IAAI,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,GAAG,CAAC,EAAE,OAAO,GAAG,CAAC,CAAC;AAE9C,QAAA,IAAI,OAAO,IAAI,CAAC,EAAE;YAChB,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,GAAG,CAAC,EAAE,CAAC,CAAC;QAClC;AAAO,aAAA,IAAI,OAAO,IAAI,KAAK,GAAG,CAAC,EAAE;YAC/B,SAAS,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,KAAK,GAAG,CAAC,CAAC;QACpC;AAEA,QAAA,IAAI,SAAS,GAAG,CAAC,EAAE;AACjB,YAAA,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC;QACxB;AAEA,QAAA,KAAK,IAAI,CAAC,GAAG,SAAS,EAAE,CAAC,IAAI,OAAO,EAAE,CAAC,EAAE,EAAE;AACzC,YAAA,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC;QACf;AAEA,QAAA,IAAI,OAAO,GAAG,KAAK,GAAG,CAAC,EAAE;AACvB,YAAA,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC;QACxB;AAEA,QAAA,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC;AAEjB,QAAA,OAAO,KAAK;AACd,IAAA,CAAC,wDAAC;AAEiB,IAAA,SAAS,GAAG,QAAQ,CAAC,MAAM,IAAI,CAAC,UAAU,EAAE,GAAG,CAAC,qDAAC;AACjD,IAAA,SAAS,GAAG,QAAQ,CAAC,MAAM,IAAI,CAAC,UAAU,EAAE,GAAG,IAAI,CAAC,UAAU,EAAE,qDAAC;AAE1E,IAAA,QAAQ,CAAC,IAAY,EAAA;QAC7B,IAAI,IAAI,GAAG,CAAC,IAAI,IAAI,GAAG,IAAI,CAAC,UAAU,EAAE,EAAE;YACxC;QACF;AACA,QAAA,IAAI,IAAI,KAAK,IAAI,CAAC,UAAU,EAAE,EAAE;YAC9B;QACF;AAEA,QAAA,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC;QACzB,IAAI,CAAC,WAAW,EAAE;IACpB;IAEU,QAAQ,GAAA;AAChB,QAAA,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,EAAE;YACrB;QACF;QACA,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,UAAU,EAAE,GAAG,CAAC,CAAC;IACtC;IAEU,QAAQ,GAAA;AAChB,QAAA,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,EAAE;YACrB;QACF;QACA,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,UAAU,EAAE,GAAG,CAAC,CAAC;IACtC;AAEU,IAAA,gBAAgB,CAAC,IAAa,EAAA;AACtC,QAAA,MAAM,SAAS,GACb,OAAO,IAAI,KAAK,QAAQ,IAAI,IAAI,KAAK,IAAI,IAAI,OAAO,IAAI;cACnD,IAA0B,CAAC;cAC3B,IAAe;AAEtB,QAAA,MAAM,YAAY,GAAG,CAAC,IAAI,CAAC,UAAU,EAAE,GAAG,CAAC,IAAI,IAAI,CAAC,SAAS,EAAE;AAC/D,QAAA,MAAM,YAAY,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,GAAG,SAAS,CAAC,GAAG,CAAC;AAE7D,QAAA,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,SAAS,CAAC;AAC7B,QAAA,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,YAAY,CAAC;QACjC,IAAI,CAAC,WAAW,EAAE;IACpB;AAEU,IAAA,WAAW,CAAC,KAAY,EAAA;AAChC,QAAA,MAAM,KAAK,GAAG,KAAK,CAAC,MAA0B;QAC9C,MAAM,IAAI,GAAG,QAAQ,CAAC,KAAK,CAAC,KAAK,EAAE,EAAE,CAAC;AAEtC,QAAA,IAAI,KAAK,CAAC,IAAI,CAAC,IAAI,IAAI,GAAG,CAAC,IAAI,IAAI,GAAG,IAAI,CAAC,UAAU,EAAE,EAAE;YACvD,KAAK,CAAC,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC;YACvC;QACF;AAEA,QAAA,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC;IACrB;IAEQ,WAAW,GAAA;AACjB,QAAA,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC;AACtB,YAAA,SAAS,EAAE,IAAI,CAAC,UAAU,EAAE;AAC5B,YAAA,QAAQ,EAAE,IAAI,CAAC,SAAS,EAAE;AAC3B,SAAA,CAAC;IACJ;uGAzJW,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,s+DANpB,CAAC,aAAa,CAAC,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EChB5B,yoFA4EA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,ED/DY,WAAW,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,eAAA,EAAA,QAAA,EAAA,2CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,qDAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,SAAA,EAAA,gBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,eAAA,CAAA,EAAA,QAAA,EAAA,CAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAE,gBAAgB,oPAAE,cAAc,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,OAAA,EAAA,OAAA,EAAA,cAAA,EAAA,MAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAE,eAAe,EAAA,QAAA,EAAA,SAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,OAAA,EAAA,OAAA,EAAA,QAAA,EAAA,aAAA,EAAA,cAAA,EAAA,WAAA,EAAA,WAAA,EAAA,WAAA,EAAA,SAAA,EAAA,SAAA,EAAA,MAAA,EAAA,MAAA,EAAA,OAAA,EAAA,aAAA,EAAA,OAAA,EAAA,gBAAA,EAAA,gBAAA,EAAA,oBAAA,EAAA,gBAAA,EAAA,aAAA,EAAA,kBAAA,EAAA,gBAAA,EAAA,kBAAA,EAAA,qBAAA,EAAA,SAAA,EAAA,WAAA,EAAA,YAAA,EAAA,eAAA,EAAA,aAAA,EAAA,kBAAA,EAAA,OAAA,EAAA,SAAA,EAAA,YAAA,EAAA,cAAA,CAAA,EAAA,OAAA,EAAA,CAAA,WAAA,EAAA,WAAA,EAAA,UAAA,CAAA,EAAA,QAAA,EAAA,CAAA,QAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAE,gBAAgB,orBAAE,aAAa,EAAA,IAAA,EAAA,WAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA;;2FAS9F,oBAAoB,EAAA,UAAA,EAAA,CAAA;kBAXhC,SAAS;+BACE,cAAc,EAAA,OAAA,EACf,CAAC,WAAW,EAAE,gBAAgB,EAAE,cAAc,EAAE,eAAe,EAAE,gBAAgB,EAAE,aAAa,CAAC,EAAA,UAAA,EAC9F,IAAI,EAAA,SAAA,EAEL,CAAC,aAAa,CAAC,EAAA,eAAA,EACT,uBAAuB,CAAC,MAAM,EAAA,IAAA,EACzC;AACJ,wBAAA,KAAK,EAAE,sCAAsC;AAC9C,qBAAA,EAAA,QAAA,EAAA,yoFAAA,EAAA;;;AEpBH;;AAEG;;;;"}
|
|
1
|
+
{"version":3,"file":"shival99-z-ui-components-z-pagination.mjs","sources":["../../../../libs/core-ui/components/z-pagination/z-pagination.component.ts","../../../../libs/core-ui/components/z-pagination/z-pagination.component.html","../../../../libs/core-ui/components/z-pagination/shival99-z-ui-components-z-pagination.ts"],"sourcesContent":["import { ChangeDetectionStrategy, Component, computed, inject, input, model, output } from '@angular/core';\nimport { toSignal } from '@angular/core/rxjs-interop';\nimport { FormsModule } from '@angular/forms';\nimport { TranslatePipe, TranslateService } from '@ngx-translate/core';\nimport { ZButtonComponent } from '@shival99/z-ui/components/z-button';\nimport { ZIconComponent } from '@shival99/z-ui/components/z-icon';\nimport { ZInputComponent } from '@shival99/z-ui/components/z-input';\nimport { ZSelectComponent } from '@shival99/z-ui/components/z-select';\nimport { startWith } from 'rxjs';\nimport type { ZPageChangeEvent, ZPaginationSize } from './z-pagination.types';\n\n@Component({\n selector: 'z-pagination',\n imports: [FormsModule, ZButtonComponent, ZIconComponent, ZInputComponent, ZSelectComponent, TranslatePipe],\n standalone: true,\n templateUrl: './z-pagination.component.html',\n providers: [TranslatePipe],\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n class: 'z-pagination flex items-center gap-2',\n },\n})\nexport class ZPaginationComponent {\n public readonly zPageIndex = model<number>(1);\n public readonly zPageSize = model<number>(10);\n public readonly zTotal = input.required<number>();\n public readonly zPageSizeOptions = input<number[]>([10, 20, 50, 100]);\n public readonly zShowSizeChanger = input<boolean>(true);\n public readonly zShowQuickJumper = input<boolean>(false);\n public readonly zShowTotal = input<boolean>(true);\n public readonly zSimple = input<boolean>(false);\n public readonly zSize = input<ZPaginationSize>('default');\n public readonly zDisabled = input<boolean>(false);\n\n public readonly zTotalLabel = input<string | null>(null);\n public readonly zPerPageLabel = input<string | null>(null);\n public readonly zGoToLabel = input<string | null>(null);\n\n public readonly zOnPageChange = output<ZPageChangeEvent>();\n\n private readonly _translate = inject(TranslateService);\n private readonly _currentLang = toSignal(\n this._translate.onLangChange.pipe(startWith({ lang: this._translate.getCurrentLang() }))\n );\n\n protected readonly totalLabelText = computed(() => {\n this._currentLang();\n const label = this.zTotalLabel() ?? this._translate.instant('i18n_z_ui_pagination_total_label');\n return label.replace('{total}', String(this.zTotal()));\n });\n\n protected readonly perPageLabelText = computed(() => {\n this._currentLang();\n return this.zPerPageLabel() ?? this._translate.instant('i18n_z_ui_pagination_per_page');\n });\n\n protected readonly goToLabelText = computed(() => {\n this._currentLang();\n return this.zGoToLabel() ?? this._translate.instant('i18n_z_ui_pagination_go_to');\n });\n\n protected readonly totalPages = computed(() => {\n const total = this.zTotal();\n const pageSize = this.zPageSize();\n return Math.max(1, Math.ceil(total / pageSize));\n });\n\n protected readonly pageSizeOptions = computed(() =>\n this.zPageSizeOptions().map(size => ({\n label: `${size} ${this.perPageLabelText()}`,\n value: size,\n }))\n );\n\n protected readonly visiblePages = computed(() => {\n const current = this.zPageIndex();\n const total = this.totalPages();\n const pages: (number | 'ellipsis')[] = [];\n const maxVisible = 5;\n\n if (total <= maxVisible) {\n for (let i = 1; i <= total; i++) {\n pages.push(i);\n }\n return pages;\n }\n\n pages.push(1);\n\n let startPage = Math.max(2, current - 1);\n let endPage = Math.min(total - 1, current + 1);\n\n if (current <= 3) {\n endPage = Math.min(total - 1, 3);\n } else if (current >= total - 2) {\n startPage = Math.max(2, total - 2);\n }\n\n if (startPage > 2) {\n pages.push('ellipsis');\n }\n\n for (let i = startPage; i <= endPage; i++) {\n pages.push(i);\n }\n\n if (endPage < total - 1) {\n pages.push('ellipsis');\n }\n\n pages.push(total);\n\n return pages;\n });\n\n protected readonly canGoPrev = computed(() => this.zPageIndex() > 1);\n protected readonly canGoNext = computed(() => this.zPageIndex() < this.totalPages());\n\n protected goToPage(page: number): void {\n if (page < 1 || page > this.totalPages()) {\n return;\n }\n if (page === this.zPageIndex()) {\n return;\n }\n\n this.zPageIndex.set(page);\n this._emitChange();\n }\n\n protected goToPrev(): void {\n if (!this.canGoPrev()) {\n return;\n }\n this.goToPage(this.zPageIndex() - 1);\n }\n\n protected goToNext(): void {\n if (!this.canGoNext()) {\n return;\n }\n this.goToPage(this.zPageIndex() + 1);\n }\n\n protected onPageSizeChange(size: unknown): void {\n const sizeValue =\n typeof size === 'object' && size !== null && 'value' in size\n ? (size as { value: number }).value\n : (size as number);\n\n const currentFirst = (this.zPageIndex() - 1) * this.zPageSize();\n const newPageIndex = Math.floor(currentFirst / sizeValue) + 1;\n\n this.zPageSize.set(sizeValue);\n this.zPageIndex.set(newPageIndex);\n this._emitChange();\n }\n\n protected onQuickJump(event: Event): void {\n const input = event.target as HTMLInputElement;\n const page = parseInt(input.value, 10);\n\n if (isNaN(page) || page < 1 || page > this.totalPages()) {\n input.value = String(this.zPageIndex());\n return;\n }\n\n this.goToPage(page);\n }\n\n private _emitChange(): void {\n this.zOnPageChange.emit({\n pageIndex: this.zPageIndex(),\n pageSize: this.zPageSize(),\n });\n }\n}\n","@if (zShowTotal()) {\n <span class=\"text-muted-foreground text-sm whitespace-nowrap\">{{ totalLabelText() }}</span>\n}\n\n@if (!zSimple()) {\n <!-- Page Size Selector -->\n @if (zShowSizeChanger()) {\n <z-select\n class=\"w-fit\"\n zSize=\"sm\"\n [zOptions]=\"pageSizeOptions()\"\n [ngModel]=\"zPageSize()\"\n (ngModelChange)=\"onPageSizeChange($event)\"\n [zDisabled]=\"zDisabled()\"\n [zShowSearch]=\"false\" />\n }\n\n <div class=\"flex items-center gap-1\">\n <!-- Prev Button -->\n <z-button zType=\"ghost\" zSize=\"sm\" [zDisabled]=\"!canGoPrev() || zDisabled()\" (click)=\"goToPrev()\">\n <z-icon zType=\"lucideChevronLeft\" zSize=\"16\" />\n </z-button>\n\n <!-- Page Numbers -->\n @for (page of visiblePages(); track $index) {\n @if (page === 'ellipsis') {\n <span class=\"text-muted-foreground flex h-8 w-8 items-center justify-center text-sm\">...</span>\n } @else {\n <z-button\n [zType]=\"page === zPageIndex() ? 'default' : 'outline'\"\n [zWave]=\"false\"\n zSize=\"sm\"\n class=\"min-w-8\"\n [zDisabled]=\"zDisabled()\"\n (click)=\"goToPage(page)\">\n {{ page }}\n </z-button>\n }\n }\n\n <!-- Next Button -->\n <z-button zType=\"ghost\" zSize=\"sm\" [zDisabled]=\"!canGoNext() || zDisabled()\" (click)=\"goToNext()\">\n <z-icon zType=\"lucideChevronRight\" zSize=\"16\" />\n </z-button>\n </div>\n\n <!-- Quick Jumper -->\n @if (zShowQuickJumper()) {\n <div class=\"flex items-center gap-2 text-sm\">\n <span class=\"text-muted-foreground whitespace-nowrap\">{{ goToLabelText() }}</span>\n <z-input\n zType=\"number\"\n zSize=\"sm\"\n class=\"w-14\"\n [ngModel]=\"zPageIndex()\"\n [zMin]=\"1\"\n [zMax]=\"totalPages()\"\n [zDisabled]=\"zDisabled()\"\n (keydown.enter)=\"onQuickJump($event)\"\n (blur)=\"onQuickJump($event)\" />\n </div>\n }\n} @else {\n <!-- Simple Mode -->\n <z-button zType=\"outline\" zSize=\"sm\" [zDisabled]=\"!canGoPrev() || zDisabled()\" (click)=\"goToPrev()\">\n <z-icon zType=\"lucideChevronLeft\" zSize=\"16\" />\n <span class=\"ml-1\">{{ 'i18n_z_ui_pagination_previous' | translate }}</span>\n </z-button>\n\n <span class=\"text-muted-foreground px-2 text-sm\">{{ zPageIndex() }} / {{ totalPages() }}</span>\n\n <z-button zType=\"outline\" zSize=\"sm\" [zDisabled]=\"!canGoNext() || zDisabled()\" (click)=\"goToNext()\">\n <span class=\"mr-1\">{{ 'i18n_z_ui_pagination_next' | translate }}</span>\n <z-icon zType=\"lucideChevronRight\" zSize=\"16\" />\n </z-button>\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|
|
@@ -1,9 +1,27 @@
|
|
|
1
1
|
import * as i0 from '@angular/core';
|
|
2
|
-
import {
|
|
2
|
+
import { InjectionToken, input, inject, computed, ViewEncapsulation, ChangeDetectionStrategy, Component, makeEnvironmentProviders, Injector, PLATFORM_ID, Injectable } from '@angular/core';
|
|
3
3
|
import { ZThemeService } from '@shival99/z-ui/services';
|
|
4
4
|
import { zMergeClasses } from '@shival99/z-ui/utils';
|
|
5
5
|
import { NgxSonnerToaster, toast } from 'ngx-sonner';
|
|
6
6
|
import { cva } from 'class-variance-authority';
|
|
7
|
+
import { Overlay, OverlayConfig } from '@angular/cdk/overlay';
|
|
8
|
+
import { ComponentPortal } from '@angular/cdk/portal';
|
|
9
|
+
import { isPlatformBrowser } from '@angular/common';
|
|
10
|
+
|
|
11
|
+
/* eslint-disable @typescript-eslint/no-explicit-any */
|
|
12
|
+
const Z_TOAST_DATA = new InjectionToken('Z_TOAST_DATA');
|
|
13
|
+
const Z_TOAST_ANIMATION_DURATION = 200;
|
|
14
|
+
const Z_TOASTER_CONFIG = new InjectionToken('Z_TOASTER_CONFIG');
|
|
15
|
+
const Z_TOASTER_DEFAULT_CONFIG = {
|
|
16
|
+
zTheme: 'system',
|
|
17
|
+
zPosition: 'top-right',
|
|
18
|
+
zRichColors: true,
|
|
19
|
+
zExpand: true,
|
|
20
|
+
zDuration: 2500,
|
|
21
|
+
zVisibleToasts: 3,
|
|
22
|
+
zCloseButton: true,
|
|
23
|
+
zDir: 'auto',
|
|
24
|
+
};
|
|
7
25
|
|
|
8
26
|
const zToastVariants = cva('group toast group-[.toaster]:bg-background group-[.toaster]:text-foreground group-[.toaster]:border-border group-[.toaster]:shadow-lg', {
|
|
9
27
|
variants: {
|
|
@@ -23,52 +41,109 @@ const zToastVariants = cva('group toast group-[.toaster]:bg-background group-[.t
|
|
|
23
41
|
class ZToastComponent {
|
|
24
42
|
class = input('', ...(ngDevMode ? [{ debugName: "class" }] : []));
|
|
25
43
|
zVariant = input('default', ...(ngDevMode ? [{ debugName: "zVariant" }] : []));
|
|
26
|
-
zTheme = input(
|
|
27
|
-
zPosition = input(
|
|
28
|
-
zRichColors = input(
|
|
29
|
-
zExpand = input(
|
|
30
|
-
zDuration = input(
|
|
31
|
-
zVisibleToasts = input(
|
|
32
|
-
zCloseButton = input(
|
|
44
|
+
zTheme = input(...(ngDevMode ? [undefined, { debugName: "zTheme" }] : []));
|
|
45
|
+
zPosition = input(...(ngDevMode ? [undefined, { debugName: "zPosition" }] : []));
|
|
46
|
+
zRichColors = input(...(ngDevMode ? [undefined, { debugName: "zRichColors" }] : []));
|
|
47
|
+
zExpand = input(...(ngDevMode ? [undefined, { debugName: "zExpand" }] : []));
|
|
48
|
+
zDuration = input(...(ngDevMode ? [undefined, { debugName: "zDuration" }] : []));
|
|
49
|
+
zVisibleToasts = input(...(ngDevMode ? [undefined, { debugName: "zVisibleToasts" }] : []));
|
|
50
|
+
zCloseButton = input(...(ngDevMode ? [undefined, { debugName: "zCloseButton" }] : []));
|
|
33
51
|
zToastOptions = input({}, ...(ngDevMode ? [{ debugName: "zToastOptions" }] : []));
|
|
34
|
-
zDir = input(
|
|
52
|
+
zDir = input(...(ngDevMode ? [undefined, { debugName: "zDir" }] : []));
|
|
53
|
+
_themeService = inject(ZThemeService);
|
|
54
|
+
_config = inject(Z_TOASTER_CONFIG, { optional: true }) ?? Z_TOASTER_DEFAULT_CONFIG;
|
|
55
|
+
effectiveTheme = computed(() => this.zTheme() ?? this._config.zTheme ?? 'system', ...(ngDevMode ? [{ debugName: "effectiveTheme" }] : []));
|
|
56
|
+
effectivePosition = computed(() => this.zPosition() ?? this._config.zPosition ?? 'bottom-right', ...(ngDevMode ? [{ debugName: "effectivePosition" }] : []));
|
|
57
|
+
effectiveRichColors = computed(() => this.zRichColors() ?? this._config.zRichColors ?? true, ...(ngDevMode ? [{ debugName: "effectiveRichColors" }] : []));
|
|
58
|
+
effectiveExpand = computed(() => this.zExpand() ?? this._config.zExpand ?? false, ...(ngDevMode ? [{ debugName: "effectiveExpand" }] : []));
|
|
59
|
+
effectiveDuration = computed(() => this.zDuration() ?? this._config.zDuration ?? 4000, ...(ngDevMode ? [{ debugName: "effectiveDuration" }] : []));
|
|
60
|
+
effectiveVisibleToasts = computed(() => this.zVisibleToasts() ?? this._config.zVisibleToasts ?? 3, ...(ngDevMode ? [{ debugName: "effectiveVisibleToasts" }] : []));
|
|
61
|
+
effectiveCloseButton = computed(() => this.zCloseButton() ?? this._config.zCloseButton ?? false, ...(ngDevMode ? [{ debugName: "effectiveCloseButton" }] : []));
|
|
62
|
+
effectiveDir = computed(() => this.zDir() ?? this._config.zDir ?? 'auto', ...(ngDevMode ? [{ debugName: "effectiveDir" }] : []));
|
|
35
63
|
zClasses = computed(() => zMergeClasses('toaster group', zToastVariants({ zVariant: this.zVariant() }), this.class()), ...(ngDevMode ? [{ debugName: "zClasses" }] : []));
|
|
36
64
|
detectTheme = computed(() => {
|
|
37
|
-
const theme = this.
|
|
65
|
+
const theme = this.effectiveTheme();
|
|
38
66
|
if (theme !== 'system') {
|
|
39
67
|
return theme;
|
|
40
68
|
}
|
|
41
69
|
return this._themeService.isDark() ? 'dark' : 'light';
|
|
42
70
|
}, ...(ngDevMode ? [{ debugName: "detectTheme" }] : []));
|
|
43
|
-
_themeService = inject(ZThemeService);
|
|
44
71
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.6", ngImport: i0, type: ZToastComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
45
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "21.0.6", type: ZToastComponent, isStandalone: true, selector: "z-toast, z-toaster", inputs: { class: { classPropertyName: "class", publicName: "class", isSignal: true, isRequired: false, transformFunction: null }, zVariant: { classPropertyName: "zVariant", publicName: "zVariant", isSignal: true, isRequired: false, transformFunction: null }, zTheme: { classPropertyName: "zTheme", publicName: "zTheme", isSignal: true, isRequired: false, transformFunction: null }, zPosition: { classPropertyName: "zPosition", publicName: "zPosition", isSignal: true, isRequired: false, transformFunction: null }, zRichColors: { classPropertyName: "zRichColors", publicName: "zRichColors", isSignal: true, isRequired: false, transformFunction: null }, zExpand: { classPropertyName: "zExpand", publicName: "zExpand", isSignal: true, isRequired: false, transformFunction: null }, zDuration: { classPropertyName: "zDuration", publicName: "zDuration", isSignal: true, isRequired: false, transformFunction: null }, zVisibleToasts: { classPropertyName: "zVisibleToasts", publicName: "zVisibleToasts", isSignal: true, isRequired: false, transformFunction: null }, zCloseButton: { classPropertyName: "zCloseButton", publicName: "zCloseButton", isSignal: true, isRequired: false, transformFunction: null }, zToastOptions: { classPropertyName: "zToastOptions", publicName: "zToastOptions", isSignal: true, isRequired: false, transformFunction: null }, zDir: { classPropertyName: "zDir", publicName: "zDir", isSignal: true, isRequired: false, transformFunction: null } }, exportAs: ["zToast"], ngImport: i0, template: "<ngx-sonner-toaster\n [theme]=\"detectTheme()\"\n [class]=\"zClasses()\"\n [position]=\"
|
|
72
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "21.0.6", type: ZToastComponent, isStandalone: true, selector: "z-toast, z-toaster", inputs: { class: { classPropertyName: "class", publicName: "class", isSignal: true, isRequired: false, transformFunction: null }, zVariant: { classPropertyName: "zVariant", publicName: "zVariant", isSignal: true, isRequired: false, transformFunction: null }, zTheme: { classPropertyName: "zTheme", publicName: "zTheme", isSignal: true, isRequired: false, transformFunction: null }, zPosition: { classPropertyName: "zPosition", publicName: "zPosition", isSignal: true, isRequired: false, transformFunction: null }, zRichColors: { classPropertyName: "zRichColors", publicName: "zRichColors", isSignal: true, isRequired: false, transformFunction: null }, zExpand: { classPropertyName: "zExpand", publicName: "zExpand", isSignal: true, isRequired: false, transformFunction: null }, zDuration: { classPropertyName: "zDuration", publicName: "zDuration", isSignal: true, isRequired: false, transformFunction: null }, zVisibleToasts: { classPropertyName: "zVisibleToasts", publicName: "zVisibleToasts", isSignal: true, isRequired: false, transformFunction: null }, zCloseButton: { classPropertyName: "zCloseButton", publicName: "zCloseButton", isSignal: true, isRequired: false, transformFunction: null }, zToastOptions: { classPropertyName: "zToastOptions", publicName: "zToastOptions", isSignal: true, isRequired: false, transformFunction: null }, zDir: { classPropertyName: "zDir", publicName: "zDir", isSignal: true, isRequired: false, transformFunction: null } }, exportAs: ["zToast"], ngImport: i0, template: "<ngx-sonner-toaster\n [theme]=\"detectTheme()\"\n [class]=\"zClasses()\"\n [position]=\"effectivePosition()\"\n [richColors]=\"effectiveRichColors()\"\n [expand]=\"effectiveExpand()\"\n [duration]=\"effectiveDuration()\"\n [visibleToasts]=\"effectiveVisibleToasts()\"\n [closeButton]=\"effectiveCloseButton()\"\n [toastOptions]=\"zToastOptions()\"\n [dir]=\"effectiveDir()\" />\n", dependencies: [{ kind: "component", type: NgxSonnerToaster, selector: "ngx-sonner-toaster", inputs: ["invert", "theme", "position", "hotKey", "richColors", "expand", "duration", "visibleToasts", "closeButton", "toastOptions", "offset", "dir", "class", "style"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
|
|
46
73
|
}
|
|
47
74
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.6", ngImport: i0, type: ZToastComponent, decorators: [{
|
|
48
75
|
type: Component,
|
|
49
|
-
args: [{ selector: 'z-toast, z-toaster', imports: [NgxSonnerToaster], standalone: true, changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, exportAs: 'zToast', template: "<ngx-sonner-toaster\n [theme]=\"detectTheme()\"\n [class]=\"zClasses()\"\n [position]=\"
|
|
76
|
+
args: [{ selector: 'z-toast, z-toaster', imports: [NgxSonnerToaster], standalone: true, changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, exportAs: 'zToast', template: "<ngx-sonner-toaster\n [theme]=\"detectTheme()\"\n [class]=\"zClasses()\"\n [position]=\"effectivePosition()\"\n [richColors]=\"effectiveRichColors()\"\n [expand]=\"effectiveExpand()\"\n [duration]=\"effectiveDuration()\"\n [visibleToasts]=\"effectiveVisibleToasts()\"\n [closeButton]=\"effectiveCloseButton()\"\n [toastOptions]=\"zToastOptions()\"\n [dir]=\"effectiveDir()\" />\n" }]
|
|
50
77
|
}], propDecorators: { class: [{ type: i0.Input, args: [{ isSignal: true, alias: "class", required: false }] }], zVariant: [{ type: i0.Input, args: [{ isSignal: true, alias: "zVariant", required: false }] }], zTheme: [{ type: i0.Input, args: [{ isSignal: true, alias: "zTheme", required: false }] }], zPosition: [{ type: i0.Input, args: [{ isSignal: true, alias: "zPosition", required: false }] }], zRichColors: [{ type: i0.Input, args: [{ isSignal: true, alias: "zRichColors", required: false }] }], zExpand: [{ type: i0.Input, args: [{ isSignal: true, alias: "zExpand", required: false }] }], zDuration: [{ type: i0.Input, args: [{ isSignal: true, alias: "zDuration", required: false }] }], zVisibleToasts: [{ type: i0.Input, args: [{ isSignal: true, alias: "zVisibleToasts", required: false }] }], zCloseButton: [{ type: i0.Input, args: [{ isSignal: true, alias: "zCloseButton", required: false }] }], zToastOptions: [{ type: i0.Input, args: [{ isSignal: true, alias: "zToastOptions", required: false }] }], zDir: [{ type: i0.Input, args: [{ isSignal: true, alias: "zDir", required: false }] }] } });
|
|
51
78
|
|
|
79
|
+
/**
|
|
80
|
+
* Provides global toast configuration options
|
|
81
|
+
* Use this in app.config.ts: providers: [provideZToast({ zPosition: 'top-right' })]
|
|
82
|
+
*
|
|
83
|
+
* @param config - Partial configuration to override default options
|
|
84
|
+
* @returns EnvironmentProviders for the toast service
|
|
85
|
+
*
|
|
86
|
+
* @example
|
|
87
|
+
* ```typescript
|
|
88
|
+
* // In app.config.ts
|
|
89
|
+
* export const appConfig: ApplicationConfig = {
|
|
90
|
+
* providers: [
|
|
91
|
+
* provideZToast({
|
|
92
|
+
* zPosition: 'top-right',
|
|
93
|
+
* zDuration: 5000,
|
|
94
|
+
* zCloseButton: true,
|
|
95
|
+
* }),
|
|
96
|
+
* ],
|
|
97
|
+
* };
|
|
98
|
+
* ```
|
|
99
|
+
*/
|
|
100
|
+
function provideZToast(config) {
|
|
101
|
+
const mergedConfig = {
|
|
102
|
+
...Z_TOASTER_DEFAULT_CONFIG,
|
|
103
|
+
...config,
|
|
104
|
+
};
|
|
105
|
+
return makeEnvironmentProviders([{ provide: Z_TOASTER_CONFIG, useValue: mergedConfig }]);
|
|
106
|
+
}
|
|
107
|
+
|
|
52
108
|
class ZToastService {
|
|
109
|
+
_overlay = inject(Overlay);
|
|
110
|
+
_injector = inject(Injector);
|
|
111
|
+
_platformId = inject(PLATFORM_ID);
|
|
112
|
+
_providedConfig = inject(Z_TOASTER_CONFIG, { optional: true });
|
|
113
|
+
_overlayRef = null;
|
|
114
|
+
_toasterAttached = false;
|
|
115
|
+
create(config) {
|
|
116
|
+
if (this._toasterAttached) {
|
|
117
|
+
return;
|
|
118
|
+
}
|
|
119
|
+
this._attachToaster(config);
|
|
120
|
+
}
|
|
53
121
|
show(message, options) {
|
|
122
|
+
this._ensureToasterAttached();
|
|
54
123
|
return toast(message, options);
|
|
55
124
|
}
|
|
56
125
|
success(message, options) {
|
|
126
|
+
this._ensureToasterAttached();
|
|
57
127
|
return toast.success(message, options);
|
|
58
128
|
}
|
|
59
129
|
error(message, options) {
|
|
130
|
+
this._ensureToasterAttached();
|
|
60
131
|
return toast.error(message, options);
|
|
61
132
|
}
|
|
62
133
|
warning(message, options) {
|
|
134
|
+
this._ensureToasterAttached();
|
|
63
135
|
return toast.warning(message, options);
|
|
64
136
|
}
|
|
65
137
|
info(message, options) {
|
|
138
|
+
this._ensureToasterAttached();
|
|
66
139
|
return toast.info(message, options);
|
|
67
140
|
}
|
|
68
141
|
loading(message, options) {
|
|
142
|
+
this._ensureToasterAttached();
|
|
69
143
|
return toast.loading(message, options);
|
|
70
144
|
}
|
|
71
145
|
promise(promise, messages) {
|
|
146
|
+
this._ensureToasterAttached();
|
|
72
147
|
return toast.promise(promise, messages);
|
|
73
148
|
}
|
|
74
149
|
dismiss(toastId) {
|
|
@@ -77,6 +152,53 @@ class ZToastService {
|
|
|
77
152
|
dismissAll() {
|
|
78
153
|
toast.dismiss();
|
|
79
154
|
}
|
|
155
|
+
destroy() {
|
|
156
|
+
if (this._overlayRef) {
|
|
157
|
+
this._overlayRef.dispose();
|
|
158
|
+
this._overlayRef = null;
|
|
159
|
+
this._toasterAttached = false;
|
|
160
|
+
}
|
|
161
|
+
}
|
|
162
|
+
_ensureToasterAttached() {
|
|
163
|
+
if (!this._toasterAttached) {
|
|
164
|
+
this._attachToaster();
|
|
165
|
+
}
|
|
166
|
+
}
|
|
167
|
+
_attachToaster(config) {
|
|
168
|
+
if (!isPlatformBrowser(this._platformId)) {
|
|
169
|
+
return;
|
|
170
|
+
}
|
|
171
|
+
if (this._toasterAttached) {
|
|
172
|
+
return;
|
|
173
|
+
}
|
|
174
|
+
this._overlayRef = this._createOverlay();
|
|
175
|
+
if (!this._overlayRef) {
|
|
176
|
+
return;
|
|
177
|
+
}
|
|
178
|
+
const effectiveConfig = {
|
|
179
|
+
...Z_TOASTER_DEFAULT_CONFIG,
|
|
180
|
+
...this._providedConfig,
|
|
181
|
+
...config,
|
|
182
|
+
};
|
|
183
|
+
const injector = Injector.create({
|
|
184
|
+
parent: this._injector,
|
|
185
|
+
providers: [{ provide: Z_TOASTER_CONFIG, useValue: effectiveConfig }],
|
|
186
|
+
});
|
|
187
|
+
const portal = new ComponentPortal(ZToastComponent, null, injector);
|
|
188
|
+
this._overlayRef.attach(portal);
|
|
189
|
+
this._toasterAttached = true;
|
|
190
|
+
}
|
|
191
|
+
_createOverlay() {
|
|
192
|
+
if (!isPlatformBrowser(this._platformId)) {
|
|
193
|
+
return null;
|
|
194
|
+
}
|
|
195
|
+
const overlayConfig = new OverlayConfig({
|
|
196
|
+
hasBackdrop: false,
|
|
197
|
+
positionStrategy: this._overlay.position().global(),
|
|
198
|
+
scrollStrategy: this._overlay.scrollStrategies.noop(),
|
|
199
|
+
});
|
|
200
|
+
return this._overlay.create(overlayConfig);
|
|
201
|
+
}
|
|
80
202
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.6", ngImport: i0, type: ZToastService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
81
203
|
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.0.6", ngImport: i0, type: ZToastService, providedIn: 'root' });
|
|
82
204
|
}
|
|
@@ -89,5 +211,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.6", ngImpor
|
|
|
89
211
|
* Generated bundle index. Do not edit.
|
|
90
212
|
*/
|
|
91
213
|
|
|
92
|
-
export { ZToastComponent, ZToastService, zToastVariants };
|
|
214
|
+
export { ZToastComponent, ZToastService, Z_TOASTER_CONFIG, Z_TOASTER_DEFAULT_CONFIG, Z_TOAST_DATA, provideZToast, zToastVariants };
|
|
93
215
|
//# sourceMappingURL=shival99-z-ui-components-z-toast.mjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"shival99-z-ui-components-z-toast.mjs","sources":["../../../../libs/core-ui/components/z-toast/z-toast.variants.ts","../../../../libs/core-ui/components/z-toast/z-toast.component.ts","../../../../libs/core-ui/components/z-toast/z-toast.component.html","../../../../libs/core-ui/components/z-toast/z-toast.service.ts","../../../../libs/core-ui/components/z-toast/shival99-z-ui-components-z-toast.ts"],"sourcesContent":["import { cva, type VariantProps } from 'class-variance-authority';\n\nexport const zToastVariants = cva(\n 'group toast group-[.toaster]:bg-background group-[.toaster]:text-foreground group-[.toaster]:border-border group-[.toaster]:shadow-lg',\n {\n variants: {\n zVariant: {\n default: 'group-[.toaster]:bg-background group-[.toaster]:text-foreground',\n success:\n 'group-[.toaster]:bg-green-50 group-[.toaster]:text-green-800 group-[.toaster]:border-green-200 dark:group-[.toaster]:bg-green-950 dark:group-[.toaster]:text-green-200 dark:group-[.toaster]:border-green-800',\n error:\n 'group-[.toaster]:bg-red-50 group-[.toaster]:text-red-800 group-[.toaster]:border-red-200 dark:group-[.toaster]:bg-red-950 dark:group-[.toaster]:text-red-200 dark:group-[.toaster]:border-red-800',\n warning:\n 'group-[.toaster]:bg-amber-50 group-[.toaster]:text-amber-800 group-[.toaster]:border-amber-200 dark:group-[.toaster]:bg-amber-950 dark:group-[.toaster]:text-amber-200 dark:group-[.toaster]:border-amber-800',\n info: 'group-[.toaster]:bg-blue-50 group-[.toaster]:text-blue-800 group-[.toaster]:border-blue-200 dark:group-[.toaster]:bg-blue-950 dark:group-[.toaster]:text-blue-200 dark:group-[.toaster]:border-blue-800',\n },\n },\n defaultVariants: {\n zVariant: 'default',\n },\n }\n);\n\nexport type ZToastVariants = VariantProps<typeof zToastVariants>;\n","import { ChangeDetectionStrategy, Component, computed, inject, input, ViewEncapsulation } from '@angular/core';\nimport { ZThemeService } from '@shival99/z-ui/services';\nimport { zMergeClasses } from '@shival99/z-ui/utils';\nimport type { ClassValue } from 'clsx';\nimport { NgxSonnerToaster } from 'ngx-sonner';\nimport type { ZToastDir, ZToastPosition, ZToastTheme, ZToastOptions } from './z-toast.types';\nimport { zToastVariants, type ZToastVariants } from './z-toast.variants';\n\n@Component({\n selector: 'z-toast, z-toaster',\n imports: [NgxSonnerToaster],\n standalone: true,\n templateUrl: './z-toast.component.html',\n styles: `\n [data-sonner-toaster] {\n z-index: 99999 !important;\n }\n `,\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n exportAs: 'zToast',\n})\nexport class ZToastComponent {\n public readonly class = input<ClassValue>('');\n public readonly zVariant = input<ZToastVariants['zVariant']>('default');\n public readonly zTheme = input<ZToastTheme>('system');\n public readonly zPosition = input<ZToastPosition>('bottom-right');\n public readonly zRichColors = input<boolean>(true);\n public readonly zExpand = input<boolean>(false);\n public readonly zDuration = input<number>(2500);\n public readonly zVisibleToasts = input<number>(3);\n public readonly zCloseButton = input<boolean>(false);\n public readonly zToastOptions = input<ZToastOptions>({});\n public readonly zDir = input<ZToastDir>('auto');\n\n protected readonly zClasses = computed(() =>\n zMergeClasses('toaster group', zToastVariants({ zVariant: this.zVariant() }), this.class())\n );\n\n protected readonly detectTheme = computed(() => {\n const theme = this.zTheme();\n if (theme !== 'system') {\n return theme;\n }\n\n return this._themeService.isDark() ? 'dark' : 'light';\n });\n\n private readonly _themeService = inject(ZThemeService);\n}\n","<ngx-sonner-toaster\n [theme]=\"detectTheme()\"\n [class]=\"zClasses()\"\n [position]=\"zPosition()\"\n [richColors]=\"zRichColors()\"\n [expand]=\"zExpand()\"\n [duration]=\"zDuration()\"\n [visibleToasts]=\"zVisibleToasts()\"\n [closeButton]=\"zCloseButton()\"\n [toastOptions]=\"zToastOptions()\"\n [dir]=\"zDir()\" />\n","import { Injectable } from '@angular/core';\nimport { toast } from 'ngx-sonner';\nimport type { ZToastOptions, ZToastPromiseMessages } from './z-toast.types';\n\n@Injectable({ providedIn: 'root' })\nexport class ZToastService {\n public show(message: string, options?: ZToastOptions): string | number {\n return toast(message, options);\n }\n\n public success(message: string, options?: ZToastOptions): string | number {\n return toast.success(message, options);\n }\n\n public error(message: string, options?: ZToastOptions): string | number {\n return toast.error(message, options);\n }\n\n public warning(message: string, options?: ZToastOptions): string | number {\n return toast.warning(message, options);\n }\n\n public info(message: string, options?: ZToastOptions): string | number {\n return toast.info(message, options);\n }\n\n public loading(message: string, options?: ZToastOptions): string | number {\n return toast.loading(message, options);\n }\n\n public promise<T>(promise: Promise<T>, messages: ZToastPromiseMessages<T>): string | number | undefined {\n return toast.promise(promise, messages);\n }\n\n public dismiss(toastId?: string | number): void {\n toast.dismiss(toastId);\n }\n\n public dismissAll(): void {\n toast.dismiss();\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;;;;AAEO,MAAM,cAAc,GAAG,GAAG,CAC/B,uIAAuI,EACvI;AACE,IAAA,QAAQ,EAAE;AACR,QAAA,QAAQ,EAAE;AACR,YAAA,OAAO,EAAE,iEAAiE;AAC1E,YAAA,OAAO,EACL,+MAA+M;AACjN,YAAA,KAAK,EACH,mMAAmM;AACrM,YAAA,OAAO,EACL,+MAA+M;AACjN,YAAA,IAAI,EAAE,yMAAyM;AAChN,SAAA;AACF,KAAA;AACD,IAAA,eAAe,EAAE;AACf,QAAA,QAAQ,EAAE,SAAS;AACpB,KAAA;AACF,CAAA;;MCEU,eAAe,CAAA;AACV,IAAA,KAAK,GAAG,KAAK,CAAa,EAAE,iDAAC;AAC7B,IAAA,QAAQ,GAAG,KAAK,CAA6B,SAAS,oDAAC;AACvD,IAAA,MAAM,GAAG,KAAK,CAAc,QAAQ,kDAAC;AACrC,IAAA,SAAS,GAAG,KAAK,CAAiB,cAAc,qDAAC;AACjD,IAAA,WAAW,GAAG,KAAK,CAAU,IAAI,uDAAC;AAClC,IAAA,OAAO,GAAG,KAAK,CAAU,KAAK,mDAAC;AAC/B,IAAA,SAAS,GAAG,KAAK,CAAS,IAAI,qDAAC;AAC/B,IAAA,cAAc,GAAG,KAAK,CAAS,CAAC,0DAAC;AACjC,IAAA,YAAY,GAAG,KAAK,CAAU,KAAK,wDAAC;AACpC,IAAA,aAAa,GAAG,KAAK,CAAgB,EAAE,yDAAC;AACxC,IAAA,IAAI,GAAG,KAAK,CAAY,MAAM,gDAAC;AAE5B,IAAA,QAAQ,GAAG,QAAQ,CAAC,MACrC,aAAa,CAAC,eAAe,EAAE,cAAc,CAAC,EAAE,QAAQ,EAAE,IAAI,CAAC,QAAQ,EAAE,EAAE,CAAC,EAAE,IAAI,CAAC,KAAK,EAAE,CAAC,EAAA,IAAA,SAAA,GAAA,CAAA,EAAA,SAAA,EAAA,UAAA,EAAA,CAAA,GAAA,EAAA,CAAA,CAC5F;AAEkB,IAAA,WAAW,GAAG,QAAQ,CAAC,MAAK;AAC7C,QAAA,MAAM,KAAK,GAAG,IAAI,CAAC,MAAM,EAAE;AAC3B,QAAA,IAAI,KAAK,KAAK,QAAQ,EAAE;AACtB,YAAA,OAAO,KAAK;QACd;AAEA,QAAA,OAAO,IAAI,CAAC,aAAa,CAAC,MAAM,EAAE,GAAG,MAAM,GAAG,OAAO;AACvD,IAAA,CAAC,uDAAC;AAEe,IAAA,aAAa,GAAG,MAAM,CAAC,aAAa,CAAC;uGA1B3C,eAAe,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;2FAAf,eAAe,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,oBAAA,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,QAAA,EAAA,EAAA,iBAAA,EAAA,UAAA,EAAA,UAAA,EAAA,UAAA,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,SAAA,EAAA,EAAA,iBAAA,EAAA,WAAA,EAAA,UAAA,EAAA,WAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,WAAA,EAAA,EAAA,iBAAA,EAAA,aAAA,EAAA,UAAA,EAAA,aAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,OAAA,EAAA,EAAA,iBAAA,EAAA,SAAA,EAAA,UAAA,EAAA,SAAA,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,cAAA,EAAA,EAAA,iBAAA,EAAA,gBAAA,EAAA,UAAA,EAAA,gBAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,YAAA,EAAA,EAAA,iBAAA,EAAA,cAAA,EAAA,UAAA,EAAA,cAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,aAAA,EAAA,EAAA,iBAAA,EAAA,eAAA,EAAA,UAAA,EAAA,eAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,IAAA,EAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,UAAA,EAAA,MAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,EAAA,QAAA,EAAA,CAAA,QAAA,CAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,ECtB5B,+UAWA,EAAA,MAAA,EAAA,CAAA,kDAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EDDY,gBAAgB,EAAA,QAAA,EAAA,oBAAA,EAAA,MAAA,EAAA,CAAA,QAAA,EAAA,OAAA,EAAA,UAAA,EAAA,QAAA,EAAA,YAAA,EAAA,QAAA,EAAA,UAAA,EAAA,eAAA,EAAA,aAAA,EAAA,cAAA,EAAA,QAAA,EAAA,KAAA,EAAA,OAAA,EAAA,OAAA,CAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,aAAA,EAAA,EAAA,CAAA,iBAAA,CAAA,IAAA,EAAA,CAAA;;2FAYf,eAAe,EAAA,UAAA,EAAA,CAAA;kBAd3B,SAAS;AACE,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,oBAAoB,EAAA,OAAA,EACrB,CAAC,gBAAgB,CAAC,cACf,IAAI,EAAA,eAAA,EAOC,uBAAuB,CAAC,MAAM,EAAA,aAAA,EAChC,iBAAiB,CAAC,IAAI,YAC3B,QAAQ,EAAA,QAAA,EAAA,+UAAA,EAAA,MAAA,EAAA,CAAA,kDAAA,CAAA,EAAA;;;MEfP,aAAa,CAAA;IACjB,IAAI,CAAC,OAAe,EAAE,OAAuB,EAAA;AAClD,QAAA,OAAO,KAAK,CAAC,OAAO,EAAE,OAAO,CAAC;IAChC;IAEO,OAAO,CAAC,OAAe,EAAE,OAAuB,EAAA;QACrD,OAAO,KAAK,CAAC,OAAO,CAAC,OAAO,EAAE,OAAO,CAAC;IACxC;IAEO,KAAK,CAAC,OAAe,EAAE,OAAuB,EAAA;QACnD,OAAO,KAAK,CAAC,KAAK,CAAC,OAAO,EAAE,OAAO,CAAC;IACtC;IAEO,OAAO,CAAC,OAAe,EAAE,OAAuB,EAAA;QACrD,OAAO,KAAK,CAAC,OAAO,CAAC,OAAO,EAAE,OAAO,CAAC;IACxC;IAEO,IAAI,CAAC,OAAe,EAAE,OAAuB,EAAA;QAClD,OAAO,KAAK,CAAC,IAAI,CAAC,OAAO,EAAE,OAAO,CAAC;IACrC;IAEO,OAAO,CAAC,OAAe,EAAE,OAAuB,EAAA;QACrD,OAAO,KAAK,CAAC,OAAO,CAAC,OAAO,EAAE,OAAO,CAAC;IACxC;IAEO,OAAO,CAAI,OAAmB,EAAE,QAAkC,EAAA;QACvE,OAAO,KAAK,CAAC,OAAO,CAAC,OAAO,EAAE,QAAQ,CAAC;IACzC;AAEO,IAAA,OAAO,CAAC,OAAyB,EAAA;AACtC,QAAA,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC;IACxB;IAEO,UAAU,GAAA;QACf,KAAK,CAAC,OAAO,EAAE;IACjB;uGAnCW,aAAa,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA;AAAb,IAAA,OAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,aAAa,cADA,MAAM,EAAA,CAAA;;2FACnB,aAAa,EAAA,UAAA,EAAA,CAAA;kBADzB,UAAU;mBAAC,EAAE,UAAU,EAAE,MAAM,EAAE;;;ACJlC;;AAEG;;;;"}
|
|
1
|
+
{"version":3,"file":"shival99-z-ui-components-z-toast.mjs","sources":["../../../../libs/core-ui/components/z-toast/z-toast.types.ts","../../../../libs/core-ui/components/z-toast/z-toast.variants.ts","../../../../libs/core-ui/components/z-toast/z-toast.component.ts","../../../../libs/core-ui/components/z-toast/z-toast.component.html","../../../../libs/core-ui/components/z-toast/z-toast.provider.ts","../../../../libs/core-ui/components/z-toast/z-toast.service.ts","../../../../libs/core-ui/components/z-toast/shival99-z-ui-components-z-toast.ts"],"sourcesContent":["/* eslint-disable @typescript-eslint/no-explicit-any */\nimport { InjectionToken } from '@angular/core';\nimport type { ExternalToast } from 'ngx-sonner';\n\nexport type ZToastTheme = 'light' | 'dark' | 'system';\nexport type ZToastPosition = 'top-left' | 'top-center' | 'top-right' | 'bottom-left' | 'bottom-center' | 'bottom-right';\nexport type ZToastDir = 'ltr' | 'rtl' | 'auto';\nexport type ZToastType = 'default' | 'success' | 'error' | 'warning' | 'info' | 'loading';\n\nexport const Z_TOAST_DATA = new InjectionToken<any>('Z_TOAST_DATA');\nexport const Z_TOAST_ANIMATION_DURATION = 200;\nexport const Z_TOASTER_CONFIG = new InjectionToken<ZToasterConfig>('Z_TOASTER_CONFIG');\n\nexport interface ZToastOptions extends ExternalToast {\n description?: string;\n duration?: number;\n id?: string | number;\n}\n\nexport interface ZToastPromiseMessages<T> {\n loading: string;\n success: string | ((data: T) => string);\n error: string | ((error: unknown) => string);\n}\n\nexport interface ZToasterConfig {\n zTheme?: ZToastTheme;\n zPosition?: ZToastPosition;\n zRichColors?: boolean;\n zExpand?: boolean;\n zDuration?: number;\n zVisibleToasts?: number;\n zCloseButton?: boolean;\n zDir?: ZToastDir;\n}\n\nexport const Z_TOASTER_DEFAULT_CONFIG: ZToasterConfig = {\n zTheme: 'system',\n zPosition: 'top-right',\n zRichColors: true,\n zExpand: true,\n zDuration: 2500,\n zVisibleToasts: 3,\n zCloseButton: true,\n zDir: 'auto',\n};\n","import { cva, type VariantProps } from 'class-variance-authority';\n\nexport const zToastVariants = cva(\n 'group toast group-[.toaster]:bg-background group-[.toaster]:text-foreground group-[.toaster]:border-border group-[.toaster]:shadow-lg',\n {\n variants: {\n zVariant: {\n default: 'group-[.toaster]:bg-background group-[.toaster]:text-foreground',\n success:\n 'group-[.toaster]:bg-green-50 group-[.toaster]:text-green-800 group-[.toaster]:border-green-200 dark:group-[.toaster]:bg-green-950 dark:group-[.toaster]:text-green-200 dark:group-[.toaster]:border-green-800',\n error:\n 'group-[.toaster]:bg-red-50 group-[.toaster]:text-red-800 group-[.toaster]:border-red-200 dark:group-[.toaster]:bg-red-950 dark:group-[.toaster]:text-red-200 dark:group-[.toaster]:border-red-800',\n warning:\n 'group-[.toaster]:bg-amber-50 group-[.toaster]:text-amber-800 group-[.toaster]:border-amber-200 dark:group-[.toaster]:bg-amber-950 dark:group-[.toaster]:text-amber-200 dark:group-[.toaster]:border-amber-800',\n info: 'group-[.toaster]:bg-blue-50 group-[.toaster]:text-blue-800 group-[.toaster]:border-blue-200 dark:group-[.toaster]:bg-blue-950 dark:group-[.toaster]:text-blue-200 dark:group-[.toaster]:border-blue-800',\n },\n },\n defaultVariants: {\n zVariant: 'default',\n },\n }\n);\n\nexport type ZToastVariants = VariantProps<typeof zToastVariants>;\n","import { ChangeDetectionStrategy, Component, computed, inject, input, ViewEncapsulation } from '@angular/core';\nimport { ZThemeService } from '@shival99/z-ui/services';\nimport { zMergeClasses } from '@shival99/z-ui/utils';\nimport type { ClassValue } from 'clsx';\nimport { NgxSonnerToaster } from 'ngx-sonner';\nimport {\n Z_TOASTER_CONFIG,\n Z_TOASTER_DEFAULT_CONFIG,\n type ZToasterConfig,\n type ZToastDir,\n type ZToastOptions,\n type ZToastPosition,\n type ZToastTheme,\n} from './z-toast.types';\nimport { zToastVariants, type ZToastVariants } from './z-toast.variants';\n\n@Component({\n selector: 'z-toast, z-toaster',\n imports: [NgxSonnerToaster],\n standalone: true,\n templateUrl: './z-toast.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n exportAs: 'zToast',\n})\nexport class ZToastComponent {\n public readonly class = input<ClassValue>('');\n public readonly zVariant = input<ZToastVariants['zVariant']>('default');\n public readonly zTheme = input<ZToastTheme>();\n public readonly zPosition = input<ZToastPosition>();\n public readonly zRichColors = input<boolean>();\n public readonly zExpand = input<boolean>();\n public readonly zDuration = input<number>();\n public readonly zVisibleToasts = input<number>();\n public readonly zCloseButton = input<boolean>();\n public readonly zToastOptions = input<ZToastOptions>({});\n public readonly zDir = input<ZToastDir>();\n\n private readonly _themeService = inject(ZThemeService);\n private readonly _config: ZToasterConfig = inject(Z_TOASTER_CONFIG, { optional: true }) ?? Z_TOASTER_DEFAULT_CONFIG;\n\n protected readonly effectiveTheme = computed(() => this.zTheme() ?? this._config.zTheme ?? 'system');\n protected readonly effectivePosition = computed(() => this.zPosition() ?? this._config.zPosition ?? 'bottom-right');\n protected readonly effectiveRichColors = computed(() => this.zRichColors() ?? this._config.zRichColors ?? true);\n protected readonly effectiveExpand = computed(() => this.zExpand() ?? this._config.zExpand ?? false);\n protected readonly effectiveDuration = computed(() => this.zDuration() ?? this._config.zDuration ?? 4000);\n protected readonly effectiveVisibleToasts = computed(() => this.zVisibleToasts() ?? this._config.zVisibleToasts ?? 3);\n\n protected readonly effectiveCloseButton = computed(() => this.zCloseButton() ?? this._config.zCloseButton ?? false);\n protected readonly effectiveDir = computed(() => this.zDir() ?? this._config.zDir ?? 'auto');\n\n protected readonly zClasses = computed(() =>\n zMergeClasses('toaster group', zToastVariants({ zVariant: this.zVariant() }), this.class())\n );\n\n protected readonly detectTheme = computed(() => {\n const theme = this.effectiveTheme();\n if (theme !== 'system') {\n return theme;\n }\n\n return this._themeService.isDark() ? 'dark' : 'light';\n });\n}\n","<ngx-sonner-toaster\n [theme]=\"detectTheme()\"\n [class]=\"zClasses()\"\n [position]=\"effectivePosition()\"\n [richColors]=\"effectiveRichColors()\"\n [expand]=\"effectiveExpand()\"\n [duration]=\"effectiveDuration()\"\n [visibleToasts]=\"effectiveVisibleToasts()\"\n [closeButton]=\"effectiveCloseButton()\"\n [toastOptions]=\"zToastOptions()\"\n [dir]=\"effectiveDir()\" />\n","import { type EnvironmentProviders, makeEnvironmentProviders } from '@angular/core';\nimport { Z_TOASTER_CONFIG, Z_TOASTER_DEFAULT_CONFIG, type ZToasterConfig } from './z-toast.types';\n\n/**\n * Provides global toast configuration options\n * Use this in app.config.ts: providers: [provideZToast({ zPosition: 'top-right' })]\n *\n * @param config - Partial configuration to override default options\n * @returns EnvironmentProviders for the toast service\n *\n * @example\n * ```typescript\n * // In app.config.ts\n * export const appConfig: ApplicationConfig = {\n * providers: [\n * provideZToast({\n * zPosition: 'top-right',\n * zDuration: 5000,\n * zCloseButton: true,\n * }),\n * ],\n * };\n * ```\n */\nexport function provideZToast(config?: Partial<ZToasterConfig>): EnvironmentProviders {\n const mergedConfig: ZToasterConfig = {\n ...Z_TOASTER_DEFAULT_CONFIG,\n ...config,\n };\n\n return makeEnvironmentProviders([{ provide: Z_TOASTER_CONFIG, useValue: mergedConfig }]);\n}\n","import { Overlay, OverlayConfig, OverlayRef } from '@angular/cdk/overlay';\nimport { ComponentPortal } from '@angular/cdk/portal';\nimport { isPlatformBrowser } from '@angular/common';\nimport { inject, Injectable, Injector, PLATFORM_ID } from '@angular/core';\nimport { toast } from 'ngx-sonner';\nimport { ZToastComponent } from './z-toast.component';\nimport {\n Z_TOASTER_CONFIG,\n Z_TOASTER_DEFAULT_CONFIG,\n type ZToasterConfig,\n type ZToastOptions,\n type ZToastPromiseMessages,\n} from './z-toast.types';\n\n@Injectable({ providedIn: 'root' })\nexport class ZToastService {\n private readonly _overlay = inject(Overlay);\n private readonly _injector = inject(Injector);\n private readonly _platformId = inject(PLATFORM_ID);\n private readonly _providedConfig = inject(Z_TOASTER_CONFIG, { optional: true });\n\n private _overlayRef: OverlayRef | null = null;\n private _toasterAttached = false;\n\n public create(config?: ZToasterConfig): void {\n if (this._toasterAttached) {\n return;\n }\n\n this._attachToaster(config);\n }\n\n public show(message: string, options?: ZToastOptions): string | number {\n this._ensureToasterAttached();\n return toast(message, options);\n }\n\n public success(message: string, options?: ZToastOptions): string | number {\n this._ensureToasterAttached();\n return toast.success(message, options);\n }\n\n public error(message: string, options?: ZToastOptions): string | number {\n this._ensureToasterAttached();\n return toast.error(message, options);\n }\n\n public warning(message: string, options?: ZToastOptions): string | number {\n this._ensureToasterAttached();\n return toast.warning(message, options);\n }\n\n public info(message: string, options?: ZToastOptions): string | number {\n this._ensureToasterAttached();\n return toast.info(message, options);\n }\n\n public loading(message: string, options?: ZToastOptions): string | number {\n this._ensureToasterAttached();\n return toast.loading(message, options);\n }\n\n public promise<T>(promise: Promise<T>, messages: ZToastPromiseMessages<T>): string | number | undefined {\n this._ensureToasterAttached();\n return toast.promise(promise, messages);\n }\n\n public dismiss(toastId?: string | number): void {\n toast.dismiss(toastId);\n }\n\n public dismissAll(): void {\n toast.dismiss();\n }\n\n public destroy(): void {\n if (this._overlayRef) {\n this._overlayRef.dispose();\n this._overlayRef = null;\n this._toasterAttached = false;\n }\n }\n\n private _ensureToasterAttached(): void {\n if (!this._toasterAttached) {\n this._attachToaster();\n }\n }\n\n private _attachToaster(config?: ZToasterConfig): void {\n if (!isPlatformBrowser(this._platformId)) {\n return;\n }\n\n if (this._toasterAttached) {\n return;\n }\n\n this._overlayRef = this._createOverlay();\n if (!this._overlayRef) {\n return;\n }\n\n const effectiveConfig: ZToasterConfig = {\n ...Z_TOASTER_DEFAULT_CONFIG,\n ...this._providedConfig,\n ...config,\n };\n\n const injector = Injector.create({\n parent: this._injector,\n providers: [{ provide: Z_TOASTER_CONFIG, useValue: effectiveConfig }],\n });\n\n const portal = new ComponentPortal(ZToastComponent, null, injector);\n this._overlayRef.attach(portal);\n this._toasterAttached = true;\n }\n\n private _createOverlay(): OverlayRef | null {\n if (!isPlatformBrowser(this._platformId)) {\n return null;\n }\n\n const overlayConfig = new OverlayConfig({\n hasBackdrop: false,\n positionStrategy: this._overlay.position().global(),\n scrollStrategy: this._overlay.scrollStrategies.noop(),\n });\n\n return this._overlay.create(overlayConfig);\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"shival99-z-ui-providers.mjs","sources":["../../../../libs/core-ui/providers/z-indexdb.provider.ts","../../../../libs/core-ui/providers/z-ngx-mask.provider.ts","../../../../libs/core-ui/providers/z-provide-scrollbar.ts","../../../../libs/core-ui/providers/z-theme.provider.ts","../../../../libs/core-ui/providers/z-translate.provider.ts","../../../../libs/core-ui/providers/types/z-ngx-mask.types.ts","../../../../libs/core-ui/providers/types/z-translate.types.ts","../../../../libs/core-ui/providers/index.ts","../../../../libs/core-ui/providers/shival99-z-ui-providers.ts"],"sourcesContent":["import { type EnvironmentProviders, InjectionToken, makeEnvironmentProviders } from '@angular/core';\nimport { type ZIndexDbConfig, ZIndexDbService } from '@shival99/z-ui/services';\n\n/** Injection token for ZIndexDbService */\nexport const Z_INDEXDB_SERVICE = new InjectionToken<ZIndexDbService>('ZIndexDbService');\n\n/**\n * Provide Z-IndexDB service with configuration\n * @param config - IndexDB configuration with multi-store support\n *\n * @example\n * ```typescript\n * // In app.config.ts\n * export const appConfig: ApplicationConfig = {\n * providers: [\n * provideZIndexDb({\n * dbName: 'MyApp',\n * version: 1,\n * stores: [\n * { name: 'cache', encrypt: true },\n * { name: 'userData', encrypt: true, protectedKeys: ['profile'] },\n * { name: 'settings', encrypt: false },\n * ],\n * defaultStore: 'cache',\n * protectedKeys: ['token'],\n * }),\n * ],\n * };\n * ```\n */\nexport function provideZIndexDb(config: ZIndexDbConfig = {}): EnvironmentProviders {\n return makeEnvironmentProviders([\n {\n provide: Z_INDEXDB_SERVICE,\n useFactory: () => new ZIndexDbService(config),\n },\n {\n provide: ZIndexDbService,\n useExisting: Z_INDEXDB_SERVICE,\n },\n ]);\n}\n","import { type EnvironmentProviders, makeEnvironmentProviders } from '@angular/core';\nimport { ZCacheService } from '@shival99/z-ui/services';\nimport { provideEnvironmentNgxMask } from 'ngx-mask';\nimport type { ZNgxMaskConfig } from './types/z-ngx-mask.types';\n\nconst LANG_CACHE_KEY = 'Z_LANGUAGE';\n\n/**\n * Get locale-specific mask configuration\n */\nfunction getMaskConfig(lang: string, config: ZNgxMaskConfig = {}) {\n const isVietnamese = lang === 'vi';\n\n return {\n validation: config.validation ?? true,\n thousandSeparator: isVietnamese ? ',' : '.',\n decimalMarker: (isVietnamese ? '.' : ',') as '.' | ',',\n allowNegativeNumbers: config.allowNegativeNumbers ?? true,\n };\n}\n\n/**\n * Provide Z-NgxMask with locale-aware configuration\n * @param config - Mask configuration\n *\n * @example\n * ```typescript\n * // In app.config.ts\n * export const appConfig: ApplicationConfig = {\n * providers: [\n * provideZNgxMask({ lang: 'vi' }),\n * ],\n * };\n * ```\n */\nexport function provideZNgxMask(config: ZNgxMaskConfig = {}): EnvironmentProviders {\n const savedLang = typeof window !== 'undefined' ? ZCacheService.get<string>(LANG_CACHE_KEY) : null;\n const lang = config.lang ?? savedLang ?? 'vi';\n const maskConfig = getMaskConfig(lang, config);\n\n return makeEnvironmentProviders([provideEnvironmentNgxMask(maskConfig)]);\n}\n","import { type EnvironmentProviders, makeEnvironmentProviders } from '@angular/core';\nimport { provideScrollbarOptions } from 'ngx-scrollbar';\n\n/**\n * Provides global scrollbar options for ngx-scrollbar\n * Use this in app.config.ts: providers: [provideZScrollbar()]\n */\nexport function provideZScrollbar(): EnvironmentProviders {\n return makeEnvironmentProviders([\n provideScrollbarOptions({\n visibility: 'hover',\n appearance: 'compact',\n withButtons: false,\n sensorThrottleTime: 200,\n }),\n ]);\n}\n","import { makeEnvironmentProviders, type EnvironmentProviders } from '@angular/core';\nimport { type ZThemeConfig, Z_THEME_CONFIG } from '@shival99/z-ui/services';\n\n/**\n * Provide theme configuration for the application\n * @param config - Theme configuration with defaultTheme and defaultDarkMode\n * @example\n * ```typescript\n * // In app.config.ts\n * export const appConfig: ApplicationConfig = {\n * providers: [\n * provideZTheme({ defaultTheme: 'hospital', defaultDarkMode: false })\n * ]\n * };\n * ```\n */\nexport function provideZTheme(config: ZThemeConfig = {}): EnvironmentProviders {\n return makeEnvironmentProviders([{ provide: Z_THEME_CONFIG, useValue: config }]);\n}\n","/* eslint-disable @stylistic/indent */\nimport { HttpClient } from '@angular/common/http';\nimport { APP_INITIALIZER, inject, makeEnvironmentProviders, type EnvironmentProviders } from '@angular/core';\nimport {\n provideTranslateService,\n TranslateLoader,\n TranslateService,\n type TranslationObject,\n} from '@ngx-translate/core';\nimport { Z_UI_TRANSLATIONS, type ZUITranslations } from '@shival99/z-ui/i18n';\nimport { forkJoin, map, type Observable, of } from 'rxjs';\nimport { catchError } from 'rxjs/operators';\nimport type { ZTranslateProviderConfig } from './types/z-translate.types';\n\n/**\n * Custom loader - merges Z-UI translations with user translations\n * Priority: Z-UI defaults < file overrides < inline overrides < user translations\n */\nclass ZTranslateHttpLoader implements TranslateLoader {\n public constructor(\n private readonly _http: HttpClient,\n private readonly _prefix: string,\n private readonly _suffix: string,\n private readonly _includeZUI: boolean,\n private readonly _zuiOverridePath?: string,\n private readonly _customZUI?: Partial<Record<string, ZUITranslations>>\n ) {}\n\n public getTranslation(lang: string): Observable<TranslationObject> {\n const userTranslations$ = this._http\n .get<TranslationObject>(`${this._prefix}${lang}${this._suffix}`)\n .pipe(catchError(() => of({} as TranslationObject)));\n\n if (!this._includeZUI) {\n return userTranslations$;\n }\n\n const zuiDefaults = Z_UI_TRANSLATIONS[lang] ?? Z_UI_TRANSLATIONS['en'] ?? {};\n const zuiFileOverrides$ = this._zuiOverridePath\n ? this._http\n .get<ZUITranslations>(`${this._zuiOverridePath}${lang}${this._suffix}`)\n .pipe(catchError(() => of({} as ZUITranslations)))\n : of({} as ZUITranslations);\n\n const inlineOverrides = this._customZUI?.[lang] ?? {};\n\n return forkJoin([of(zuiDefaults), zuiFileOverrides$, userTranslations$]).pipe(\n map(\n ([defaults, fileOverrides, user]) =>\n ({\n ...defaults,\n ...fileOverrides,\n ...inlineOverrides,\n ...(user as Record<string, unknown>),\n }) as TranslationObject\n )\n );\n }\n}\n\nexport function zCreateTranslateLoader(\n http: HttpClient,\n path = './assets/i18n/',\n extension = '.json',\n includeZUI = true,\n zuiOverridePath?: string,\n customZUI?: Partial<Record<string, ZUITranslations>>\n): TranslateLoader {\n return new ZTranslateHttpLoader(http, path, extension, includeZUI, zuiOverridePath, customZUI);\n}\n\nfunction initializeTranslate(defaultLang: string) {\n return () => {\n const translate = inject(TranslateService);\n translate.setFallbackLang(defaultLang);\n return translate.use(defaultLang).toPromise();\n };\n}\n\n/**\n * Provide Z-Translate service\n * Z-UI translations are auto-included by default\n */\nexport function provideZTranslate(config: ZTranslateProviderConfig = {}): EnvironmentProviders {\n const {\n defaultLang = 'vi',\n translationPath = './assets/i18n/',\n fileExtension = '.json',\n includeZUITranslations = true,\n zuiOverridePath,\n customZUITranslations,\n } = config;\n\n return makeEnvironmentProviders([\n provideTranslateService({\n fallbackLang: defaultLang,\n loader: {\n provide: TranslateLoader,\n useFactory: (http: HttpClient) =>\n zCreateTranslateLoader(\n http,\n translationPath,\n fileExtension,\n includeZUITranslations,\n zuiOverridePath,\n customZUITranslations\n ),\n deps: [HttpClient],\n },\n }),\n {\n provide: APP_INITIALIZER,\n useFactory: () => initializeTranslate(defaultLang),\n multi: true,\n },\n ]);\n}\n\nexport { Z_UI_TRANSLATIONS, mergeTranslations, getZUITranslations } from '@shival99/z-ui/i18n';\nexport type { ZUITranslations, ZUILanguage, ZUITranslationSet } from '@shival99/z-ui/i18n';\n","/**\n * Z-NgxMask Provider Types\n */\n\nexport interface ZNgxMaskConfig {\n /** Language code (vi, en, etc.) */\n lang?: string;\n /** Allow negative numbers */\n allowNegativeNumbers?: boolean;\n /** Enable validation */\n validation?: boolean;\n}\n","/**\n * Z-Translate Provider Types\n */\n\nimport type { ZUITranslations } from '@shival99/z-ui/i18n';\n\nexport interface ZTranslateProviderConfig {\n /** Default language (default: 'vi') */\n defaultLang?: string;\n /** Path to user translation files (default: './assets/i18n/') */\n translationPath?: string;\n /** File extension for translation files (default: '.json') */\n fileExtension?: string;\n /**\n * Whether to include Z-UI default translations (default: true)\n * Z-UI translations are merged with user translations,\n * user translations take precedence\n */\n includeZUITranslations?: boolean;\n /**\n * Path to Z-UI translation override files (optional)\n * If set, will load translations from this path to override Z-UI defaults\n * Example: './assets/i18n/z-ui/' will load './assets/i18n/z-ui/vi.json'\n *\n * File format:\n * ```json\n * {\n * \"i18n_z_ui_table_noData\": \"Bảng trống\"\n * }\n * ```\n */\n zuiOverridePath?: string;\n /**\n * Inline custom translations to override Z-UI defaults (optional)\n * Use this for simple overrides without creating separate files\n *\n * @example\n * ```typescript\n * customZUITranslations: {\n * vi: { i18n_z_ui_table_noData: 'Bảng trống' },\n * en: { i18n_z_ui_table_noData: 'Empty table' },\n * }\n * ```\n */\n customZUITranslations?: Partial<Record<string, ZUITranslations>>;\n}\n","/**\n * Providers index\n */\n\nexport { provideZIndexDb, Z_INDEXDB_SERVICE } from './z-indexdb.provider';\nexport { provideZNgxMask } from './z-ngx-mask.provider';\nexport { provideZScrollbar } from './z-provide-scrollbar';\nexport { provideZTheme } from './z-theme.provider';\nexport { provideZTranslate, zCreateTranslateLoader } from './z-translate.provider';\n\n// Export all types\nexport * from './types';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"shival99-z-ui-providers.mjs","sources":["../../../../libs/core-ui/providers/z-indexdb.provider.ts","../../../../libs/core-ui/providers/z-ngx-mask.provider.ts","../../../../libs/core-ui/providers/z-scrollbar.provider.ts","../../../../libs/core-ui/providers/z-theme.provider.ts","../../../../libs/core-ui/providers/z-translate.provider.ts","../../../../libs/core-ui/providers/types/z-ngx-mask.types.ts","../../../../libs/core-ui/providers/types/z-translate.types.ts","../../../../libs/core-ui/providers/shival99-z-ui-providers.ts"],"sourcesContent":["import { type EnvironmentProviders, InjectionToken, makeEnvironmentProviders } from '@angular/core';\nimport { type ZIndexDbConfig, ZIndexDbService } from '@shival99/z-ui/services';\n\n/** Injection token for ZIndexDbService */\nexport const Z_INDEXDB_SERVICE = new InjectionToken<ZIndexDbService>('ZIndexDbService');\n\n/**\n * Provide Z-IndexDB service with configuration\n * @param config - IndexDB configuration with multi-store support\n *\n * @example\n * ```typescript\n * // In app.config.ts\n * export const appConfig: ApplicationConfig = {\n * providers: [\n * provideZIndexDb({\n * dbName: 'MyApp',\n * version: 1,\n * stores: [\n * { name: 'cache', encrypt: true },\n * { name: 'userData', encrypt: true, protectedKeys: ['profile'] },\n * { name: 'settings', encrypt: false },\n * ],\n * defaultStore: 'cache',\n * protectedKeys: ['token'],\n * }),\n * ],\n * };\n * ```\n */\nexport function provideZIndexDb(config: ZIndexDbConfig = {}): EnvironmentProviders {\n return makeEnvironmentProviders([\n {\n provide: Z_INDEXDB_SERVICE,\n useFactory: () => new ZIndexDbService(config),\n },\n {\n provide: ZIndexDbService,\n useExisting: Z_INDEXDB_SERVICE,\n },\n ]);\n}\n","import { type EnvironmentProviders, makeEnvironmentProviders } from '@angular/core';\nimport { ZCacheService } from '@shival99/z-ui/services';\nimport { provideEnvironmentNgxMask } from 'ngx-mask';\nimport type { ZNgxMaskConfig } from './types/z-ngx-mask.types';\n\nconst LANG_CACHE_KEY = 'Z_LANGUAGE';\n\n/**\n * Get locale-specific mask configuration\n */\nfunction getMaskConfig(lang: string, config: ZNgxMaskConfig = {}) {\n const isVietnamese = lang === 'vi';\n\n return {\n validation: config.validation ?? true,\n thousandSeparator: isVietnamese ? ',' : '.',\n decimalMarker: (isVietnamese ? '.' : ',') as '.' | ',',\n allowNegativeNumbers: config.allowNegativeNumbers ?? true,\n };\n}\n\n/**\n * Provide Z-NgxMask with locale-aware configuration\n * @param config - Mask configuration\n *\n * @example\n * ```typescript\n * // In app.config.ts\n * export const appConfig: ApplicationConfig = {\n * providers: [\n * provideZNgxMask({ lang: 'vi' }),\n * ],\n * };\n * ```\n */\nexport function provideZNgxMask(config: ZNgxMaskConfig = {}): EnvironmentProviders {\n const savedLang = typeof window !== 'undefined' ? ZCacheService.get<string>(LANG_CACHE_KEY) : null;\n const lang = config.lang ?? savedLang ?? 'vi';\n const maskConfig = getMaskConfig(lang, config);\n\n return makeEnvironmentProviders([provideEnvironmentNgxMask(maskConfig)]);\n}\n","import { type EnvironmentProviders, makeEnvironmentProviders } from '@angular/core';\nimport { provideScrollbarOptions } from 'ngx-scrollbar';\n\n/**\n * Provides global scrollbar options for ngx-scrollbar\n * Use this in app.config.ts: providers: [provideZScrollbar()]\n */\nexport function provideZScrollbar(): EnvironmentProviders {\n return makeEnvironmentProviders([\n provideScrollbarOptions({\n visibility: 'hover',\n appearance: 'compact',\n withButtons: false,\n sensorThrottleTime: 200,\n }),\n ]);\n}\n","import { makeEnvironmentProviders, type EnvironmentProviders } from '@angular/core';\nimport { type ZThemeConfig, Z_THEME_CONFIG } from '@shival99/z-ui/services';\n\n/**\n * Provide theme configuration for the application\n * @param config - Theme configuration with defaultTheme and defaultDarkMode\n * @example\n * ```typescript\n * // In app.config.ts\n * export const appConfig: ApplicationConfig = {\n * providers: [\n * provideZTheme({ defaultTheme: 'hospital', defaultDarkMode: false })\n * ]\n * };\n * ```\n */\nexport function provideZTheme(config: ZThemeConfig = {}): EnvironmentProviders {\n return makeEnvironmentProviders([{ provide: Z_THEME_CONFIG, useValue: config }]);\n}\n","/* eslint-disable @stylistic/indent */\nimport { HttpClient } from '@angular/common/http';\nimport { APP_INITIALIZER, inject, makeEnvironmentProviders, type EnvironmentProviders } from '@angular/core';\nimport {\n provideTranslateService,\n TranslateLoader,\n TranslateService,\n type TranslationObject,\n} from '@ngx-translate/core';\nimport { Z_UI_TRANSLATIONS, type ZUITranslations } from '@shival99/z-ui/i18n';\nimport { forkJoin, map, type Observable, of } from 'rxjs';\nimport { catchError } from 'rxjs/operators';\nimport type { ZTranslateProviderConfig } from './types/z-translate.types';\n\n/**\n * Custom loader - merges Z-UI translations with user translations\n * Priority: Z-UI defaults < file overrides < inline overrides < user translations\n */\nclass ZTranslateHttpLoader implements TranslateLoader {\n public constructor(\n private readonly _http: HttpClient,\n private readonly _prefix: string,\n private readonly _suffix: string,\n private readonly _includeZUI: boolean,\n private readonly _zuiOverridePath?: string,\n private readonly _customZUI?: Partial<Record<string, ZUITranslations>>\n ) {}\n\n public getTranslation(lang: string): Observable<TranslationObject> {\n const userTranslations$ = this._http\n .get<TranslationObject>(`${this._prefix}${lang}${this._suffix}`)\n .pipe(catchError(() => of({} as TranslationObject)));\n\n if (!this._includeZUI) {\n return userTranslations$;\n }\n\n const zuiDefaults = Z_UI_TRANSLATIONS[lang] ?? Z_UI_TRANSLATIONS['en'] ?? {};\n const zuiFileOverrides$ = this._zuiOverridePath\n ? this._http\n .get<ZUITranslations>(`${this._zuiOverridePath}${lang}${this._suffix}`)\n .pipe(catchError(() => of({} as ZUITranslations)))\n : of({} as ZUITranslations);\n\n const inlineOverrides = this._customZUI?.[lang] ?? {};\n\n return forkJoin([of(zuiDefaults), zuiFileOverrides$, userTranslations$]).pipe(\n map(\n ([defaults, fileOverrides, user]) =>\n ({\n ...defaults,\n ...fileOverrides,\n ...inlineOverrides,\n ...(user as Record<string, unknown>),\n }) as TranslationObject\n )\n );\n }\n}\n\nexport function zCreateTranslateLoader(\n http: HttpClient,\n path = './assets/i18n/',\n extension = '.json',\n includeZUI = true,\n zuiOverridePath?: string,\n customZUI?: Partial<Record<string, ZUITranslations>>\n): TranslateLoader {\n return new ZTranslateHttpLoader(http, path, extension, includeZUI, zuiOverridePath, customZUI);\n}\n\nfunction initializeTranslate(defaultLang: string) {\n return () => {\n const translate = inject(TranslateService);\n translate.setFallbackLang(defaultLang);\n return translate.use(defaultLang).toPromise();\n };\n}\n\n/**\n * Provide Z-Translate service\n * Z-UI translations are auto-included by default\n */\nexport function provideZTranslate(config: ZTranslateProviderConfig = {}): EnvironmentProviders {\n const {\n defaultLang = 'vi',\n translationPath = './assets/i18n/',\n fileExtension = '.json',\n includeZUITranslations = true,\n zuiOverridePath,\n customZUITranslations,\n } = config;\n\n return makeEnvironmentProviders([\n provideTranslateService({\n fallbackLang: defaultLang,\n loader: {\n provide: TranslateLoader,\n useFactory: (http: HttpClient) =>\n zCreateTranslateLoader(\n http,\n translationPath,\n fileExtension,\n includeZUITranslations,\n zuiOverridePath,\n customZUITranslations\n ),\n deps: [HttpClient],\n },\n }),\n {\n provide: APP_INITIALIZER,\n useFactory: () => initializeTranslate(defaultLang),\n multi: true,\n },\n ]);\n}\n\nexport { Z_UI_TRANSLATIONS, mergeTranslations, getZUITranslations } from '@shival99/z-ui/i18n';\nexport type { ZUITranslations, ZUILanguage, ZUITranslationSet } from '@shival99/z-ui/i18n';\n","/**\n * Z-NgxMask Provider Types\n */\n\nexport interface ZNgxMaskConfig {\n /** Language code (vi, en, etc.) */\n lang?: string;\n /** Allow negative numbers */\n allowNegativeNumbers?: boolean;\n /** Enable validation */\n validation?: boolean;\n}\n","/**\n * Z-Translate Provider Types\n */\n\nimport type { ZUITranslations } from '@shival99/z-ui/i18n';\n\nexport interface ZTranslateProviderConfig {\n /** Default language (default: 'vi') */\n defaultLang?: string;\n /** Path to user translation files (default: './assets/i18n/') */\n translationPath?: string;\n /** File extension for translation files (default: '.json') */\n fileExtension?: string;\n /**\n * Whether to include Z-UI default translations (default: true)\n * Z-UI translations are merged with user translations,\n * user translations take precedence\n */\n includeZUITranslations?: boolean;\n /**\n * Path to Z-UI translation override files (optional)\n * If set, will load translations from this path to override Z-UI defaults\n * Example: './assets/i18n/z-ui/' will load './assets/i18n/z-ui/vi.json'\n *\n * File format:\n * ```json\n * {\n * \"i18n_z_ui_table_noData\": \"Bảng trống\"\n * }\n * ```\n */\n zuiOverridePath?: string;\n /**\n * Inline custom translations to override Z-UI defaults (optional)\n * Use this for simple overrides without creating separate files\n *\n * @example\n * ```typescript\n * customZUITranslations: {\n * vi: { i18n_z_ui_table_noData: 'Bảng trống' },\n * en: { i18n_z_ui_table_noData: 'Empty table' },\n * }\n * ```\n */\n customZUITranslations?: Partial<Record<string, ZUITranslations>>;\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@shival99/z-ui",
|
|
3
|
-
"version": "1.0.
|
|
3
|
+
"version": "1.0.30",
|
|
4
4
|
"description": "Z-UI: Modern Angular UI Component Library - A comprehensive, high-performance design system built with Angular 20+, featuring 40+ customizable components with dark mode, accessibility, and enterprise-ready features.",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"angular",
|
|
@@ -177,11 +177,11 @@ declare class ZInputComponent implements OnInit, ControlValueAccessor {
|
|
|
177
177
|
|
|
178
178
|
declare const zInputVariants: (props?: ({
|
|
179
179
|
zSize?: "sm" | "default" | "lg" | null | undefined;
|
|
180
|
-
zStatus?: "default" | "
|
|
180
|
+
zStatus?: "default" | "disabled" | "readonly" | "error" | null | undefined;
|
|
181
181
|
} & class_variance_authority_types.ClassProp) | undefined) => string;
|
|
182
182
|
type ZInputVariants = VariantProps<typeof zInputVariants>;
|
|
183
183
|
declare const zTextareaVariants: (props?: ({
|
|
184
|
-
zStatus?: "default" | "
|
|
184
|
+
zStatus?: "default" | "disabled" | "readonly" | "error" | null | undefined;
|
|
185
185
|
} & class_variance_authority_types.ClassProp) | undefined) => string;
|
|
186
186
|
type ZTextareaVariants = VariantProps<typeof zTextareaVariants>;
|
|
187
187
|
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import * as _angular_core from '@angular/core';
|
|
2
|
+
import { InjectionToken, EnvironmentProviders } from '@angular/core';
|
|
2
3
|
import { ClassValue } from 'clsx';
|
|
3
4
|
import { ExternalToast } from 'ngx-sonner';
|
|
4
5
|
import * as class_variance_authority_types from 'class-variance-authority/types';
|
|
@@ -7,7 +8,9 @@ import { VariantProps } from 'class-variance-authority';
|
|
|
7
8
|
type ZToastTheme = 'light' | 'dark' | 'system';
|
|
8
9
|
type ZToastPosition = 'top-left' | 'top-center' | 'top-right' | 'bottom-left' | 'bottom-center' | 'bottom-right';
|
|
9
10
|
type ZToastDir = 'ltr' | 'rtl' | 'auto';
|
|
10
|
-
type ZToastType = 'default' | 'success' | 'error' | 'warning' | 'info';
|
|
11
|
+
type ZToastType = 'default' | 'success' | 'error' | 'warning' | 'info' | 'loading';
|
|
12
|
+
declare const Z_TOAST_DATA: InjectionToken<any>;
|
|
13
|
+
declare const Z_TOASTER_CONFIG: InjectionToken<ZToasterConfig>;
|
|
11
14
|
interface ZToastOptions extends ExternalToast {
|
|
12
15
|
description?: string;
|
|
13
16
|
duration?: number;
|
|
@@ -18,27 +21,77 @@ interface ZToastPromiseMessages<T> {
|
|
|
18
21
|
success: string | ((data: T) => string);
|
|
19
22
|
error: string | ((error: unknown) => string);
|
|
20
23
|
}
|
|
24
|
+
interface ZToasterConfig {
|
|
25
|
+
zTheme?: ZToastTheme;
|
|
26
|
+
zPosition?: ZToastPosition;
|
|
27
|
+
zRichColors?: boolean;
|
|
28
|
+
zExpand?: boolean;
|
|
29
|
+
zDuration?: number;
|
|
30
|
+
zVisibleToasts?: number;
|
|
31
|
+
zCloseButton?: boolean;
|
|
32
|
+
zDir?: ZToastDir;
|
|
33
|
+
}
|
|
34
|
+
declare const Z_TOASTER_DEFAULT_CONFIG: ZToasterConfig;
|
|
21
35
|
|
|
22
36
|
declare class ZToastComponent {
|
|
23
37
|
readonly class: _angular_core.InputSignal<ClassValue>;
|
|
24
38
|
readonly zVariant: _angular_core.InputSignal<"default" | "success" | "error" | "warning" | "info" | null | undefined>;
|
|
25
|
-
readonly zTheme: _angular_core.InputSignal<ZToastTheme>;
|
|
26
|
-
readonly zPosition: _angular_core.InputSignal<ZToastPosition>;
|
|
27
|
-
readonly zRichColors: _angular_core.InputSignal<boolean>;
|
|
28
|
-
readonly zExpand: _angular_core.InputSignal<boolean>;
|
|
29
|
-
readonly zDuration: _angular_core.InputSignal<number>;
|
|
30
|
-
readonly zVisibleToasts: _angular_core.InputSignal<number>;
|
|
31
|
-
readonly zCloseButton: _angular_core.InputSignal<boolean>;
|
|
39
|
+
readonly zTheme: _angular_core.InputSignal<ZToastTheme | undefined>;
|
|
40
|
+
readonly zPosition: _angular_core.InputSignal<ZToastPosition | undefined>;
|
|
41
|
+
readonly zRichColors: _angular_core.InputSignal<boolean | undefined>;
|
|
42
|
+
readonly zExpand: _angular_core.InputSignal<boolean | undefined>;
|
|
43
|
+
readonly zDuration: _angular_core.InputSignal<number | undefined>;
|
|
44
|
+
readonly zVisibleToasts: _angular_core.InputSignal<number | undefined>;
|
|
45
|
+
readonly zCloseButton: _angular_core.InputSignal<boolean | undefined>;
|
|
32
46
|
readonly zToastOptions: _angular_core.InputSignal<ZToastOptions>;
|
|
33
|
-
readonly zDir: _angular_core.InputSignal<ZToastDir>;
|
|
47
|
+
readonly zDir: _angular_core.InputSignal<ZToastDir | undefined>;
|
|
48
|
+
private readonly _themeService;
|
|
49
|
+
private readonly _config;
|
|
50
|
+
protected readonly effectiveTheme: _angular_core.Signal<ZToastTheme>;
|
|
51
|
+
protected readonly effectivePosition: _angular_core.Signal<ZToastPosition>;
|
|
52
|
+
protected readonly effectiveRichColors: _angular_core.Signal<boolean>;
|
|
53
|
+
protected readonly effectiveExpand: _angular_core.Signal<boolean>;
|
|
54
|
+
protected readonly effectiveDuration: _angular_core.Signal<number>;
|
|
55
|
+
protected readonly effectiveVisibleToasts: _angular_core.Signal<number>;
|
|
56
|
+
protected readonly effectiveCloseButton: _angular_core.Signal<boolean>;
|
|
57
|
+
protected readonly effectiveDir: _angular_core.Signal<ZToastDir>;
|
|
34
58
|
protected readonly zClasses: _angular_core.Signal<string>;
|
|
35
59
|
protected readonly detectTheme: _angular_core.Signal<"light" | "dark">;
|
|
36
|
-
private readonly _themeService;
|
|
37
60
|
static ɵfac: _angular_core.ɵɵFactoryDeclaration<ZToastComponent, never>;
|
|
38
61
|
static ɵcmp: _angular_core.ɵɵComponentDeclaration<ZToastComponent, "z-toast, z-toaster", ["zToast"], { "class": { "alias": "class"; "required": false; "isSignal": true; }; "zVariant": { "alias": "zVariant"; "required": false; "isSignal": true; }; "zTheme": { "alias": "zTheme"; "required": false; "isSignal": true; }; "zPosition": { "alias": "zPosition"; "required": false; "isSignal": true; }; "zRichColors": { "alias": "zRichColors"; "required": false; "isSignal": true; }; "zExpand": { "alias": "zExpand"; "required": false; "isSignal": true; }; "zDuration": { "alias": "zDuration"; "required": false; "isSignal": true; }; "zVisibleToasts": { "alias": "zVisibleToasts"; "required": false; "isSignal": true; }; "zCloseButton": { "alias": "zCloseButton"; "required": false; "isSignal": true; }; "zToastOptions": { "alias": "zToastOptions"; "required": false; "isSignal": true; }; "zDir": { "alias": "zDir"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
|
|
39
62
|
}
|
|
40
63
|
|
|
64
|
+
/**
|
|
65
|
+
* Provides global toast configuration options
|
|
66
|
+
* Use this in app.config.ts: providers: [provideZToast({ zPosition: 'top-right' })]
|
|
67
|
+
*
|
|
68
|
+
* @param config - Partial configuration to override default options
|
|
69
|
+
* @returns EnvironmentProviders for the toast service
|
|
70
|
+
*
|
|
71
|
+
* @example
|
|
72
|
+
* ```typescript
|
|
73
|
+
* // In app.config.ts
|
|
74
|
+
* export const appConfig: ApplicationConfig = {
|
|
75
|
+
* providers: [
|
|
76
|
+
* provideZToast({
|
|
77
|
+
* zPosition: 'top-right',
|
|
78
|
+
* zDuration: 5000,
|
|
79
|
+
* zCloseButton: true,
|
|
80
|
+
* }),
|
|
81
|
+
* ],
|
|
82
|
+
* };
|
|
83
|
+
* ```
|
|
84
|
+
*/
|
|
85
|
+
declare function provideZToast(config?: Partial<ZToasterConfig>): EnvironmentProviders;
|
|
86
|
+
|
|
41
87
|
declare class ZToastService {
|
|
88
|
+
private readonly _overlay;
|
|
89
|
+
private readonly _injector;
|
|
90
|
+
private readonly _platformId;
|
|
91
|
+
private readonly _providedConfig;
|
|
92
|
+
private _overlayRef;
|
|
93
|
+
private _toasterAttached;
|
|
94
|
+
create(config?: ZToasterConfig): void;
|
|
42
95
|
show(message: string, options?: ZToastOptions): string | number;
|
|
43
96
|
success(message: string, options?: ZToastOptions): string | number;
|
|
44
97
|
error(message: string, options?: ZToastOptions): string | number;
|
|
@@ -48,6 +101,10 @@ declare class ZToastService {
|
|
|
48
101
|
promise<T>(promise: Promise<T>, messages: ZToastPromiseMessages<T>): string | number | undefined;
|
|
49
102
|
dismiss(toastId?: string | number): void;
|
|
50
103
|
dismissAll(): void;
|
|
104
|
+
destroy(): void;
|
|
105
|
+
private _ensureToasterAttached;
|
|
106
|
+
private _attachToaster;
|
|
107
|
+
private _createOverlay;
|
|
51
108
|
static ɵfac: _angular_core.ɵɵFactoryDeclaration<ZToastService, never>;
|
|
52
109
|
static ɵprov: _angular_core.ɵɵInjectableDeclaration<ZToastService>;
|
|
53
110
|
}
|
|
@@ -57,5 +114,5 @@ declare const zToastVariants: (props?: ({
|
|
|
57
114
|
} & class_variance_authority_types.ClassProp) | undefined) => string;
|
|
58
115
|
type ZToastVariants = VariantProps<typeof zToastVariants>;
|
|
59
116
|
|
|
60
|
-
export { ZToastComponent, ZToastService, zToastVariants };
|
|
61
|
-
export type { ZToastOptions, ZToastPosition, ZToastType, ZToastVariants };
|
|
117
|
+
export { ZToastComponent, ZToastService, Z_TOASTER_CONFIG, Z_TOASTER_DEFAULT_CONFIG, Z_TOAST_DATA, provideZToast, zToastVariants };
|
|
118
|
+
export type { ZToastDir, ZToastOptions, ZToastPosition, ZToastPromiseMessages, ZToastTheme, ZToastType, ZToastVariants, ZToasterConfig };
|