@yoozsoft/yoozsoft-ng 6.2.0 → 7.1.1
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 +206 -94
- package/fesm2022/yoozsoft-yoozsoft-ng-autocomplete.mjs +70 -38
- package/fesm2022/yoozsoft-yoozsoft-ng-autocomplete.mjs.map +1 -1
- package/fesm2022/yoozsoft-yoozsoft-ng-datepicker.mjs +194 -109
- package/fesm2022/yoozsoft-yoozsoft-ng-datepicker.mjs.map +1 -1
- package/fesm2022/yoozsoft-yoozsoft-ng-dropdown.mjs +70 -55
- package/fesm2022/yoozsoft-yoozsoft-ng-dropdown.mjs.map +1 -1
- package/fesm2022/yoozsoft-yoozsoft-ng-file-upload.mjs +55 -33
- package/fesm2022/yoozsoft-yoozsoft-ng-file-upload.mjs.map +1 -1
- package/fesm2022/yoozsoft-yoozsoft-ng-footer.mjs +13 -11
- package/fesm2022/yoozsoft-yoozsoft-ng-footer.mjs.map +1 -1
- package/fesm2022/yoozsoft-yoozsoft-ng-loading.mjs +17 -11
- package/fesm2022/yoozsoft-yoozsoft-ng-loading.mjs.map +1 -1
- package/fesm2022/yoozsoft-yoozsoft-ng-navbar.mjs +37 -28
- package/fesm2022/yoozsoft-yoozsoft-ng-navbar.mjs.map +1 -1
- package/fesm2022/yoozsoft-yoozsoft-ng-overlay.mjs +7 -6
- package/fesm2022/yoozsoft-yoozsoft-ng-overlay.mjs.map +1 -1
- package/fesm2022/yoozsoft-yoozsoft-ng-pagination.mjs +39 -28
- package/fesm2022/yoozsoft-yoozsoft-ng-pagination.mjs.map +1 -1
- package/fesm2022/yoozsoft-yoozsoft-ng-password-strength.mjs +65 -39
- package/fesm2022/yoozsoft-yoozsoft-ng-password-strength.mjs.map +1 -1
- package/fesm2022/yoozsoft-yoozsoft-ng-pipes.mjs +3 -3
- package/fesm2022/yoozsoft-yoozsoft-ng-pipes.mjs.map +1 -1
- package/fesm2022/yoozsoft-yoozsoft-ng-progress.mjs +26 -17
- package/fesm2022/yoozsoft-yoozsoft-ng-progress.mjs.map +1 -1
- package/fesm2022/yoozsoft-yoozsoft-ng-rating.mjs +155 -0
- package/fesm2022/yoozsoft-yoozsoft-ng-rating.mjs.map +1 -0
- package/fesm2022/yoozsoft-yoozsoft-ng-select.mjs +47 -33
- package/fesm2022/yoozsoft-yoozsoft-ng-select.mjs.map +1 -1
- package/fesm2022/yoozsoft-yoozsoft-ng-sidebar.mjs +30 -29
- package/fesm2022/yoozsoft-yoozsoft-ng-sidebar.mjs.map +1 -1
- package/fesm2022/yoozsoft-yoozsoft-ng-table.mjs +93 -84
- package/fesm2022/yoozsoft-yoozsoft-ng-table.mjs.map +1 -1
- package/fesm2022/yoozsoft-yoozsoft-ng-tiff-viewer.mjs +41 -27
- package/fesm2022/yoozsoft-yoozsoft-ng-tiff-viewer.mjs.map +1 -1
- package/fesm2022/yoozsoft-yoozsoft-ng-toast.mjs +20 -18
- package/fesm2022/yoozsoft-yoozsoft-ng-toast.mjs.map +1 -1
- package/package.json +12 -4
- package/rating/package.json +4 -0
- package/types/yoozsoft-yoozsoft-ng-rating.d.ts +56 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { isPlatformBrowser, NgClass } from '@angular/common';
|
|
2
2
|
import * as i0 from '@angular/core';
|
|
3
|
-
import { inject, PLATFORM_ID, input, model, output, computed, Component } from '@angular/core';
|
|
3
|
+
import { inject, PLATFORM_ID, input, model, output, computed, ChangeDetectionStrategy, Component } from '@angular/core';
|
|
4
4
|
import * as i1 from '@angular/forms';
|
|
5
5
|
import { FormBuilder, ReactiveFormsModule } from '@angular/forms';
|
|
6
6
|
import { RouterLink, RouterLinkActive } from '@angular/router';
|
|
@@ -11,22 +11,36 @@ class YsNavbar {
|
|
|
11
11
|
platformId = inject(PLATFORM_ID);
|
|
12
12
|
formBuilder = inject(FormBuilder);
|
|
13
13
|
searchForm = this.formBuilder.nonNullable.group({
|
|
14
|
-
searchValue: ''
|
|
14
|
+
searchValue: '',
|
|
15
15
|
});
|
|
16
|
-
id = input('mainNavbar',
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
16
|
+
id = input('mainNavbar', /* @ts-ignore */
|
|
17
|
+
...(ngDevMode ? [{ debugName: "id" }] : /* istanbul ignore next */ []));
|
|
18
|
+
theme = input('dark', /* @ts-ignore */
|
|
19
|
+
...(ngDevMode ? [{ debugName: "theme" }] : /* istanbul ignore next */ []));
|
|
20
|
+
styleClass = input(/* @ts-ignore */
|
|
21
|
+
...(ngDevMode ? [undefined, { debugName: "styleClass" }] : /* istanbul ignore next */ []));
|
|
22
|
+
brand = input(/* @ts-ignore */
|
|
23
|
+
...(ngDevMode ? [undefined, { debugName: "brand" }] : /* istanbul ignore next */ []));
|
|
24
|
+
items = input([], /* @ts-ignore */
|
|
25
|
+
...(ngDevMode ? [{ debugName: "items" }] : /* istanbul ignore next */ []));
|
|
26
|
+
endItems = input([], /* @ts-ignore */
|
|
27
|
+
...(ngDevMode ? [{ debugName: "endItems" }] : /* istanbul ignore next */ []));
|
|
28
|
+
isSearch = input(false, /* @ts-ignore */
|
|
29
|
+
...(ngDevMode ? [{ debugName: "isSearch" }] : /* istanbul ignore next */ []));
|
|
30
|
+
searchLabel = input('Search', /* @ts-ignore */
|
|
31
|
+
...(ngDevMode ? [{ debugName: "searchLabel" }] : /* istanbul ignore next */ []));
|
|
32
|
+
searchIconClass = input(/* @ts-ignore */
|
|
33
|
+
...(ngDevMode ? [undefined, { debugName: "searchIconClass" }] : /* istanbul ignore next */ []));
|
|
34
|
+
searchPlaceholder = input('Search', /* @ts-ignore */
|
|
35
|
+
...(ngDevMode ? [{ debugName: "searchPlaceholder" }] : /* istanbul ignore next */ []));
|
|
36
|
+
sidebarToggler = input(false, /* @ts-ignore */
|
|
37
|
+
...(ngDevMode ? [{ debugName: "sidebarToggler" }] : /* istanbul ignore next */ []));
|
|
38
|
+
sidebarTogglerIconClass = input('fa-solid fa-angle-right', /* @ts-ignore */
|
|
39
|
+
...(ngDevMode ? [{ debugName: "sidebarTogglerIconClass" }] : /* istanbul ignore next */ []));
|
|
40
|
+
sidebarToggled = model(true, /* @ts-ignore */
|
|
41
|
+
...(ngDevMode ? [{ debugName: "sidebarToggled" }] : /* istanbul ignore next */ []));
|
|
42
|
+
rtl = input(/* @ts-ignore */
|
|
43
|
+
...(ngDevMode ? [undefined, { debugName: "rtl" }] : /* istanbul ignore next */ []));
|
|
30
44
|
toggleSidebar = output();
|
|
31
45
|
search = output();
|
|
32
46
|
isRtl = computed(() => {
|
|
@@ -38,9 +52,10 @@ class YsNavbar {
|
|
|
38
52
|
return false;
|
|
39
53
|
}
|
|
40
54
|
return document.documentElement.dir === 'rtl';
|
|
41
|
-
},
|
|
55
|
+
}, /* @ts-ignore */
|
|
56
|
+
...(ngDevMode ? [{ debugName: "isRtl" }] : /* istanbul ignore next */ []));
|
|
42
57
|
onToggleSidebar() {
|
|
43
|
-
this.sidebarToggled.update(v => !v);
|
|
58
|
+
this.sidebarToggled.update((v) => !v);
|
|
44
59
|
this.toggleSidebar.emit(this.sidebarToggled());
|
|
45
60
|
}
|
|
46
61
|
submitSearch() {
|
|
@@ -49,18 +64,12 @@ class YsNavbar {
|
|
|
49
64
|
isDropdown(item) {
|
|
50
65
|
return !!item.items?.length;
|
|
51
66
|
}
|
|
52
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
53
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.17", type: YsNavbar, isStandalone: true, selector: "ys-navbar", inputs: { id: { classPropertyName: "id", publicName: "id", isSignal: true, isRequired: false, transformFunction: null }, theme: { classPropertyName: "theme", publicName: "theme", isSignal: true, isRequired: false, transformFunction: null }, styleClass: { classPropertyName: "styleClass", publicName: "styleClass", isSignal: true, isRequired: false, transformFunction: null }, brand: { classPropertyName: "brand", publicName: "brand", isSignal: true, isRequired: false, transformFunction: null }, items: { classPropertyName: "items", publicName: "items", isSignal: true, isRequired: false, transformFunction: null }, endItems: { classPropertyName: "endItems", publicName: "endItems", isSignal: true, isRequired: false, transformFunction: null }, isSearch: { classPropertyName: "isSearch", publicName: "isSearch", isSignal: true, isRequired: false, transformFunction: null }, searchLabel: { classPropertyName: "searchLabel", publicName: "searchLabel", isSignal: true, isRequired: false, transformFunction: null }, searchIconClass: { classPropertyName: "searchIconClass", publicName: "searchIconClass", isSignal: true, isRequired: false, transformFunction: null }, searchPlaceholder: { classPropertyName: "searchPlaceholder", publicName: "searchPlaceholder", isSignal: true, isRequired: false, transformFunction: null }, sidebarToggler: { classPropertyName: "sidebarToggler", publicName: "sidebarToggler", isSignal: true, isRequired: false, transformFunction: null }, sidebarTogglerIconClass: { classPropertyName: "sidebarTogglerIconClass", publicName: "sidebarTogglerIconClass", isSignal: true, isRequired: false, transformFunction: null }, sidebarToggled: { classPropertyName: "sidebarToggled", publicName: "sidebarToggled", isSignal: true, isRequired: false, transformFunction: null }, rtl: { classPropertyName: "rtl", publicName: "rtl", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { sidebarToggled: "sidebarToggledChange", toggleSidebar: "toggleSidebar", search: "search" }, ngImport: i0, template: "<nav class=\"ys-navbar navbar navbar-expand-lg bg-primary\" [class.ys-navbar-rtl]=\"isRtl()\" [class]=\"styleClass()\"\n [attr.data-bs-theme]=\"theme()\">\n <div class=\"container-fluid\">\n\n @if (sidebarToggler()) {\n\n <button class=\"sidebar-toggler me-2\" type=\"button\" (click)=\"onToggleSidebar()\" aria-expanded=\"false\"\n aria-label=\"Toggle sidebar\" [class.toggled]=\"sidebarToggled()\">\n <i class=\"sidebar-toggler-icon p-1\" [ngClass]=\"sidebarTogglerIconClass()\"></i>\n </button>\n\n }\n\n <a class=\"navbar-brand\" [ngClass]=\"brand()?.styleClass\" [class.me-auto]=\"!items().length\"\n [routerLink]=\"brand()?.routerLink\" [href]=\"brand()?.href\">\n\n @if (brand()?.src) {\n\n <img [src]=\"brand()?.src\" [alt]=\"brand()?.alt\" [width]=\"brand()?.width ?? 24\" [height]=\"brand()?.height ?? 24\"\n [class.me-2]=\"brand()?.label\">\n\n }\n\n {{brand()?.label}}\n\n </a>\n\n @if (items().length || endItems().length || isSearch()) {\n <button class=\"navbar-toggler ms-auto\" type=\"button\" data-bs-toggle=\"collapse\" [attr.data-bs-target]=\"'#' + id\"\n [attr.aria-controls]=\"id()\" aria-expanded=\"false\" aria-label=\"Toggle navigation\">\n <span class=\"navbar-toggler-icon\"></span>\n </button>\n }\n\n <div class=\"collapse navbar-collapse\" [id]=\"id()\">\n\n @if (items().length) {\n <ul class=\"navbar-nav me-auto\" [ngClass]=\"{'mb-2': isSearch()}\">\n @for (navItem of items(); track navItem) {\n\n @if (!isDropdown(navItem)) {\n\n <li class=\"nav-item\">\n <a class=\"nav-link\" [class.disabled]=\"navItem.disabled\" (click)=\"navItem.onClick && navItem.onClick($event)\"\n [attr.aria-disabled]=\"navItem.disabled\" [routerLink]=\"navItem.routerLink\" [routerLinkActive]=\"['active']\"\n [ngbTooltip]=\"navItem.tooltipLabel\" aria-current=\"page\">\n\n @if (navItem.iconClass) {\n <i class=\"pe-2\" [ngClass]=\"navItem.iconClass\"></i>\n }\n\n {{navItem.label}}\n\n </a>\n </li>\n\n }\n\n @if (isDropdown(navItem)) {\n\n <li class=\"nav-item dropdown\">\n <a class=\"nav-link dropdown-toggle\" [class.disabled]=\"navItem.disabled\"\n [attr.aria-disabled]=\"navItem.disabled\" ngbTooltip=\"{{navItem.tooltipLabel}}\" data-bs-toggle=\"dropdown\"\n role=\"button\" aria-haspopup=\"true\" aria-expanded=\"false\">\n\n @if (navItem.iconClass) {\n <i class=\"pe-2\" [ngClass]=\"navItem.iconClass\"></i>\n }\n\n @if (navItem.label) {\n\n {{navItem.label}}\n\n }\n\n </a>\n\n <ul class=\"dropdown-menu px-2\">\n\n @for (navSubItem of navItem.items; track navSubItem) {\n\n <li>\n\n @if (navSubItem.isDivider) {\n\n <hr class=\"dropdown-divider\">\n\n }\n @else {\n\n <a class=\"dropdown-item rounded\" (click)=\"navSubItem.onClick && navSubItem.onClick($event)\"\n [class.disabled]=\"navSubItem.disabled\" [attr.aria-disabled]=\"navItem.disabled\"\n [routerLink]=\"navSubItem.routerLink\" [routerLinkActive]=\"['active']\"\n [ngbTooltip]=\"navSubItem.tooltipLabel\">\n\n @if (navSubItem.iconClass) {\n <i class=\"me-2\" [ngClass]=\"navSubItem.iconClass\"></i>\n }\n\n @if (navSubItem.label) {\n {{navSubItem.label}}\n }\n\n </a>\n\n }\n\n </li>\n\n }\n\n </ul>\n </li>\n\n }\n\n }\n\n </ul>\n\n }\n\n @if (endItems().length > 0) {\n\n <ul class=\"navbar-nav flex-row ms-auto nav-end me-2\" [class.nav-end-me-0]=\"isSearch()\">\n\n @for (endItem of endItems(); track endItem) {\n\n @if (isDropdown(endItem)) {\n <li class=\"nav-item dropdown\">\n\n <a class=\"nav-link dropdown-toggle\" [ngbTooltip]=\"endItem.tooltipLabel\" data-bs-toggle=\"dropdown\"\n data-bs-display=\"static\" aria-expanded=\"false\" role=\"button\" aria-haspopup=\"true\" aria-expanded=\"false\">\n\n @if (endItem.iconClass) {\n <i class=\"pe-2\" [ngClass]=\"endItem.iconClass\"></i>\n }\n\n @if (endItem.label) {\n {{endItem.label}}\n }\n\n </a>\n\n <div class=\"dropdown-menu px-2 dropdown-menu-end\">\n @for (endItemSubItem of endItem.items; track endItemSubItem) {\n\n @if (endItemSubItem.isDivider) {\n <div class=\"dropdown-divider\"></div>\n }\n @else {\n\n <a class=\"dropdown-item rounded\" [routerLink]=\"endItemSubItem.routerLink\" [routerLinkActive]=\"['active']\"\n (click)=\"endItemSubItem.onClick && endItemSubItem.onClick($event)\" role=\"button\"\n [ngbTooltip]=\"endItemSubItem.tooltipLabel\">\n\n @if (endItemSubItem.iconClass) {\n <i class=\"me-2\" [ngClass]=\"endItemSubItem.iconClass\"></i>\n }\n\n @if (endItemSubItem.label) {\n {{endItemSubItem.label}}\n }\n\n </a>\n\n }\n\n }\n </div>\n </li>\n }\n @else {\n\n <li class=\"nav-item\">\n <a class=\"nav-link\" [routerLink]=\"endItem.routerLink\" [routerLinkActive]=\"['active']\"\n (click)=\"endItem.onClick && endItem.onClick($event)\" role=\"button\" [ngbTooltip]=\"endItem.tooltipLabel\">\n\n @if (endItem.iconClass) {\n <i class=\"pe-2\" [ngClass]=\"endItem.iconClass\"></i>\n }\n\n @if (endItem.label) {\n {{endItem.label}}\n }\n </a>\n </li>\n\n }\n\n }\n\n </ul>\n\n }\n\n @if (isSearch()) {\n\n <form class=\"search-form d-flex\" role=\"search\" [class.ms-auto]=\"!endItems().length\" [formGroup]=\"searchForm\"\n (ngSubmit)=\"submitSearch()\">\n\n <input name=\"searchValue\" id=\"searchValue\" formControlName=\"searchValue\" class=\"form-control me-2\" type=\"search\"\n [placeholder]=\"searchPlaceholder()\" aria-label=\"Search\">\n\n <button name=\"submitBtn\" class=\"btn btn-outline-success\" type=\"submit\">\n\n @if (searchIconClass()) {\n <i [ngClass]=\"searchIconClass()\"></i>\n }\n\n @if (searchLabel()) {\n {{searchLabel()}}\n }\n\n </button>\n </form>\n\n }\n\n </div>\n </div>\n</nav>", styles: [".sidebar-toggler{padding:var(--bs-navbar-toggler-padding-y) var(--bs-navbar-toggler-padding-x);font-size:var(--bs-navbar-toggler-font-size);line-height:1;color:var(--bs-navbar-color);background-color:transparent;border:var(--bs-border-width) solid var(--bs-navbar-toggler-border-color);border-radius:var(--bs-navbar-toggler-border-radius);transition:var(--bs-navbar-toggler-transition)}.sidebar-toggler.toggled .sidebar-toggler-icon{-webkit-transform:scaleX(-1);transform:scaleX(-1)}@media(prefers-reduced-motion:reduce){.sidebar-toggler{transition:none}}.sidebar-toggler:hover{text-decoration:none}.sidebar-toggler:focus{text-decoration:none;outline:0;box-shadow:0 0 0 var(--bs-navbar-toggler-focus-width)}.sidebar-toggler-icon{display:inline-block;width:1.5em;height:1.5em;vertical-align:middle;transition:all .5s ease}@media(max-width:576px){.navbar-expand-sm .search-form{margin-top:.5rem!important}.navbar-expand-sm .nav-end .nav-link{padding-right:var(--bs-navbar-nav-link-padding-x)}.navbar-expand-sm .nav-end.nav-end-me-0{margin-right:0!important}}@media(min-width:576px){.navbar-expand-sm .navbar-nav{margin-bottom:0!important}}@media(max-width:768px){.navbar-expand-md .search-form{margin-top:.5rem!important}.navbar-expand-md .nav-end .nav-link{padding-right:var(--bs-navbar-nav-link-padding-x)}.navbar-expand-md .nav-end.nav-end-me-0{margin-right:0!important}}@media(min-width:768px){.navbar-expand-md .navbar-nav{margin-bottom:0!important}}@media(max-width:992px){.navbar-expand-lg .search-form{margin-top:.5rem!important}.navbar-expand-lg .nav-end .nav-link{padding-right:var(--bs-navbar-nav-link-padding-x)}.navbar-expand-lg .nav-end.nav-end-me-0{margin-right:0!important}}@media(min-width:992px){.navbar-expand-lg .navbar-nav{margin-bottom:0!important}}@media(max-width:1200px){.navbar-expand-xlg .search-form{margin-top:.5rem!important}.navbar-expand-xlg .nav-end .nav-link{padding-right:var(--bs-navbar-nav-link-padding-x)}.navbar-expand-xlg .nav-end.nav-end-me-0{margin-right:0!important}}@media(min-width:1200px){.navbar-expand-xlg .navbar-nav{margin-bottom:0!important}}@media(max-width:1400px){.navbar-expand-xxlg .search-form{margin-top:.5rem!important}.navbar-expand-xxlg .nav-end .nav-link{padding-right:var(--bs-navbar-nav-link-padding-x)}.navbar-expand-xxlg .nav-end.nav-end-me-0{margin-right:0!important}}@media(min-width:1400px){.navbar-expand-xxlg .navbar-nav{margin-bottom:0!important}}\n"], dependencies: [{ kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "info", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }, { kind: "directive", type: RouterLinkActive, selector: "[routerLinkActive]", inputs: ["routerLinkActiveOptions", "ariaCurrentWhenActive", "routerLinkActive"], outputs: ["isActiveChange"], exportAs: ["routerLinkActive"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i1.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i1.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],[formArray],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i1.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "ngmodule", type: NgbTooltipModule }, { kind: "directive", type: i2.NgbTooltip, selector: "[ngbTooltip]", inputs: ["animation", "autoClose", "placement", "popperOptions", "triggers", "positionTarget", "container", "disableTooltip", "tooltipClass", "tooltipContext", "openDelay", "closeDelay", "ngbTooltip"], outputs: ["shown", "hidden"], exportAs: ["ngbTooltip"] }] });
|
|
67
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.7", ngImport: i0, type: YsNavbar, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
68
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.0.7", type: YsNavbar, isStandalone: true, selector: "ys-navbar", inputs: { id: { classPropertyName: "id", publicName: "id", isSignal: true, isRequired: false, transformFunction: null }, theme: { classPropertyName: "theme", publicName: "theme", isSignal: true, isRequired: false, transformFunction: null }, styleClass: { classPropertyName: "styleClass", publicName: "styleClass", isSignal: true, isRequired: false, transformFunction: null }, brand: { classPropertyName: "brand", publicName: "brand", isSignal: true, isRequired: false, transformFunction: null }, items: { classPropertyName: "items", publicName: "items", isSignal: true, isRequired: false, transformFunction: null }, endItems: { classPropertyName: "endItems", publicName: "endItems", isSignal: true, isRequired: false, transformFunction: null }, isSearch: { classPropertyName: "isSearch", publicName: "isSearch", isSignal: true, isRequired: false, transformFunction: null }, searchLabel: { classPropertyName: "searchLabel", publicName: "searchLabel", isSignal: true, isRequired: false, transformFunction: null }, searchIconClass: { classPropertyName: "searchIconClass", publicName: "searchIconClass", isSignal: true, isRequired: false, transformFunction: null }, searchPlaceholder: { classPropertyName: "searchPlaceholder", publicName: "searchPlaceholder", isSignal: true, isRequired: false, transformFunction: null }, sidebarToggler: { classPropertyName: "sidebarToggler", publicName: "sidebarToggler", isSignal: true, isRequired: false, transformFunction: null }, sidebarTogglerIconClass: { classPropertyName: "sidebarTogglerIconClass", publicName: "sidebarTogglerIconClass", isSignal: true, isRequired: false, transformFunction: null }, sidebarToggled: { classPropertyName: "sidebarToggled", publicName: "sidebarToggled", isSignal: true, isRequired: false, transformFunction: null }, rtl: { classPropertyName: "rtl", publicName: "rtl", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { sidebarToggled: "sidebarToggledChange", toggleSidebar: "toggleSidebar", search: "search" }, ngImport: i0, template: "<nav class=\"ys-navbar navbar navbar-expand-lg bg-primary\" [class.ys-navbar-rtl]=\"isRtl()\" [class]=\"styleClass()\"\r\n [attr.data-bs-theme]=\"theme()\">\r\n <div class=\"container-fluid\">\r\n @if (sidebarToggler()) {\r\n <button class=\"sidebar-toggler me-2\" type=\"button\" (click)=\"onToggleSidebar()\" aria-expanded=\"false\"\r\n aria-label=\"Toggle sidebar\" [class.toggled]=\"sidebarToggled()\">\r\n <i class=\"sidebar-toggler-icon p-1\" [ngClass]=\"sidebarTogglerIconClass()\"></i>\r\n </button>\r\n }\r\n\r\n <a class=\"navbar-brand\" [ngClass]=\"brand()?.styleClass\" [class.me-auto]=\"!items().length\"\r\n [routerLink]=\"brand()?.routerLink\" [href]=\"brand()?.href\">\r\n @if (brand()?.src) {\r\n <img [src]=\"brand()?.src\" [alt]=\"brand()?.alt\" [width]=\"brand()?.width ?? 24\" [height]=\"brand()?.height ?? 24\"\r\n [class.me-2]=\"brand()?.label\" />\r\n }\r\n\r\n {{ brand()?.label }}\r\n </a>\r\n\r\n @if (items().length || endItems().length || isSearch()) {\r\n <button class=\"navbar-toggler ms-auto\" type=\"button\" data-bs-toggle=\"collapse\" [attr.data-bs-target]=\"'#' + id\"\r\n [attr.aria-controls]=\"id()\" aria-expanded=\"false\" aria-label=\"Toggle navigation\">\r\n <span class=\"navbar-toggler-icon\"></span>\r\n </button>\r\n }\r\n\r\n <div class=\"collapse navbar-collapse\" [id]=\"id()\">\r\n @if (items().length) {\r\n <ul class=\"navbar-nav me-auto\" [ngClass]=\"{ 'mb-2': isSearch() }\">\r\n @for (navItem of items(); track navItem) {\r\n @if (!isDropdown(navItem)) {\r\n <li class=\"nav-item\">\r\n <a class=\"nav-link\" [class.disabled]=\"navItem.disabled\" (click)=\"navItem.onClick && navItem.onClick($event)\"\r\n [attr.aria-disabled]=\"navItem.disabled\" [routerLink]=\"navItem.routerLink\" [routerLinkActive]=\"['active']\"\r\n [ngbTooltip]=\"navItem.tooltipLabel\" aria-current=\"page\">\r\n @if (navItem.iconClass) {\r\n <i class=\"pe-2\" [ngClass]=\"navItem.iconClass\"></i>\r\n }\r\n\r\n {{ navItem.label }}\r\n </a>\r\n </li>\r\n }\r\n\r\n @if (isDropdown(navItem)) {\r\n <li class=\"nav-item dropdown\">\r\n <a class=\"nav-link dropdown-toggle\" [class.disabled]=\"navItem.disabled\"\r\n [attr.aria-disabled]=\"navItem.disabled\" ngbTooltip=\"{{ navItem.tooltipLabel }}\" data-bs-toggle=\"dropdown\"\r\n role=\"button\" aria-haspopup=\"true\" aria-expanded=\"false\">\r\n @if (navItem.iconClass) {\r\n <i class=\"pe-2\" [ngClass]=\"navItem.iconClass\"></i>\r\n }\r\n\r\n @if (navItem.label) {\r\n {{ navItem.label }}\r\n }\r\n </a>\r\n\r\n <ul class=\"dropdown-menu px-2\">\r\n @for (navSubItem of navItem.items; track navSubItem) {\r\n <li>\r\n @if (navSubItem.isDivider) {\r\n <hr class=\"dropdown-divider\" />\r\n } @else {\r\n <a class=\"dropdown-item rounded\" (click)=\"navSubItem.onClick && navSubItem.onClick($event)\"\r\n [class.disabled]=\"navSubItem.disabled\" [attr.aria-disabled]=\"navItem.disabled\"\r\n [routerLink]=\"navSubItem.routerLink\" [routerLinkActive]=\"['active']\"\r\n [ngbTooltip]=\"navSubItem.tooltipLabel\">\r\n @if (navSubItem.iconClass) {\r\n <i class=\"me-2\" [ngClass]=\"navSubItem.iconClass\"></i>\r\n }\r\n\r\n @if (navSubItem.label) {\r\n {{ navSubItem.label }}\r\n }\r\n </a>\r\n }\r\n </li>\r\n }\r\n </ul>\r\n </li>\r\n }\r\n }\r\n </ul>\r\n }\r\n\r\n @if (endItems().length > 0) {\r\n <ul class=\"navbar-nav flex-row ms-auto nav-end me-2\" [class.nav-end-me-0]=\"isSearch()\">\r\n @for (endItem of endItems(); track endItem) {\r\n @if (isDropdown(endItem)) {\r\n <li class=\"nav-item dropdown\">\r\n <a class=\"nav-link dropdown-toggle\" [ngbTooltip]=\"endItem.tooltipLabel\" data-bs-toggle=\"dropdown\"\r\n data-bs-display=\"static\" aria-expanded=\"false\" role=\"button\" aria-haspopup=\"true\" aria-expanded=\"false\">\r\n @if (endItem.iconClass) {\r\n <i class=\"pe-2\" [ngClass]=\"endItem.iconClass\"></i>\r\n }\r\n\r\n @if (endItem.label) {\r\n {{ endItem.label }}\r\n }\r\n </a>\r\n\r\n <div class=\"dropdown-menu px-2 dropdown-menu-end\">\r\n @for (endItemSubItem of endItem.items; track endItemSubItem) {\r\n @if (endItemSubItem.isDivider) {\r\n <div class=\"dropdown-divider\"></div>\r\n } @else {\r\n <a class=\"dropdown-item rounded\" [routerLink]=\"endItemSubItem.routerLink\" [routerLinkActive]=\"['active']\"\r\n (click)=\"endItemSubItem.onClick && endItemSubItem.onClick($event)\" role=\"button\"\r\n [ngbTooltip]=\"endItemSubItem.tooltipLabel\">\r\n @if (endItemSubItem.iconClass) {\r\n <i class=\"me-2\" [ngClass]=\"endItemSubItem.iconClass\"></i>\r\n }\r\n\r\n @if (endItemSubItem.label) {\r\n {{ endItemSubItem.label }}\r\n }\r\n </a>\r\n }\r\n }\r\n </div>\r\n </li>\r\n } @else {\r\n <li class=\"nav-item\">\r\n <a class=\"nav-link\" [routerLink]=\"endItem.routerLink\" [routerLinkActive]=\"['active']\"\r\n (click)=\"endItem.onClick && endItem.onClick($event)\" role=\"button\" [ngbTooltip]=\"endItem.tooltipLabel\">\r\n @if (endItem.iconClass) {\r\n <i class=\"pe-2\" [ngClass]=\"endItem.iconClass\"></i>\r\n }\r\n\r\n @if (endItem.label) {\r\n {{ endItem.label }}\r\n }\r\n </a>\r\n </li>\r\n }\r\n }\r\n </ul>\r\n }\r\n\r\n @if (isSearch()) {\r\n <form class=\"search-form d-flex\" role=\"search\" [class.ms-auto]=\"!endItems().length\" [formGroup]=\"searchForm\"\r\n (ngSubmit)=\"submitSearch()\">\r\n <input name=\"searchValue\" id=\"searchValue\" formControlName=\"searchValue\" class=\"form-control me-2\" type=\"search\"\r\n [placeholder]=\"searchPlaceholder()\" aria-label=\"Search\" />\r\n\r\n <button name=\"submitBtn\" class=\"btn btn-outline-success\" type=\"submit\">\r\n @if (searchIconClass()) {\r\n <i [ngClass]=\"searchIconClass()\"></i>\r\n }\r\n\r\n @if (searchLabel()) {\r\n {{ searchLabel() }}\r\n }\r\n </button>\r\n </form>\r\n }\r\n </div>\r\n </div>\r\n</nav>", styles: [".sidebar-toggler{padding:var(--bs-navbar-toggler-padding-y) var(--bs-navbar-toggler-padding-x);font-size:var(--bs-navbar-toggler-font-size);line-height:1;color:var(--bs-navbar-color);background-color:transparent;border:var(--bs-border-width) solid var(--bs-navbar-toggler-border-color);border-radius:var(--bs-navbar-toggler-border-radius);transition:var(--bs-navbar-toggler-transition)}.sidebar-toggler.toggled .sidebar-toggler-icon{-webkit-transform:scaleX(-1);transform:scaleX(-1)}@media(prefers-reduced-motion:reduce){.sidebar-toggler{transition:none}}.sidebar-toggler:hover{text-decoration:none}.sidebar-toggler:focus{text-decoration:none;outline:0;box-shadow:0 0 0 var(--bs-navbar-toggler-focus-width)}.sidebar-toggler-icon{display:inline-block;width:1.5em;height:1.5em;vertical-align:middle;transition:all .5s ease}@media(max-width:576px){.navbar-expand-sm .search-form{margin-top:.5rem!important}.navbar-expand-sm .nav-end .nav-link{padding-right:var(--bs-navbar-nav-link-padding-x)}.navbar-expand-sm .nav-end.nav-end-me-0{margin-right:0!important}}@media(min-width:576px){.navbar-expand-sm .navbar-nav{margin-bottom:0!important}}@media(max-width:768px){.navbar-expand-md .search-form{margin-top:.5rem!important}.navbar-expand-md .nav-end .nav-link{padding-right:var(--bs-navbar-nav-link-padding-x)}.navbar-expand-md .nav-end.nav-end-me-0{margin-right:0!important}}@media(min-width:768px){.navbar-expand-md .navbar-nav{margin-bottom:0!important}}@media(max-width:992px){.navbar-expand-lg .search-form{margin-top:.5rem!important}.navbar-expand-lg .nav-end .nav-link{padding-right:var(--bs-navbar-nav-link-padding-x)}.navbar-expand-lg .nav-end.nav-end-me-0{margin-right:0!important}}@media(min-width:992px){.navbar-expand-lg .navbar-nav{margin-bottom:0!important}}@media(max-width:1200px){.navbar-expand-xlg .search-form{margin-top:.5rem!important}.navbar-expand-xlg .nav-end .nav-link{padding-right:var(--bs-navbar-nav-link-padding-x)}.navbar-expand-xlg .nav-end.nav-end-me-0{margin-right:0!important}}@media(min-width:1200px){.navbar-expand-xlg .navbar-nav{margin-bottom:0!important}}@media(max-width:1400px){.navbar-expand-xxlg .search-form{margin-top:.5rem!important}.navbar-expand-xxlg .nav-end .nav-link{padding-right:var(--bs-navbar-nav-link-padding-x)}.navbar-expand-xxlg .nav-end.nav-end-me-0{margin-right:0!important}}@media(min-width:1400px){.navbar-expand-xxlg .navbar-nav{margin-bottom:0!important}}\n"], dependencies: [{ kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "info", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "browserUrl", "routerLink"] }, { kind: "directive", type: RouterLinkActive, selector: "[routerLinkActive]", inputs: ["routerLinkActiveOptions", "ariaCurrentWhenActive", "routerLinkActive"], outputs: ["isActiveChange"], exportAs: ["routerLinkActive"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i1.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i1.DefaultValueAccessor, selector: "input:not([type=checkbox]):not([ngNoCva])[formControlName],textarea:not([ngNoCva])[formControlName],input:not([type=checkbox]):not([ngNoCva])[formControl],textarea:not([ngNoCva])[formControl],input:not([type=checkbox]):not([ngNoCva])[ngModel],textarea:not([ngNoCva])[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],[formArray],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i1.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "ngmodule", type: NgbTooltipModule }, { kind: "directive", type: i2.NgbTooltip, selector: "[ngbTooltip]", inputs: ["animation", "autoClose", "placement", "popperOptions", "triggers", "positionTarget", "container", "disableTooltip", "tooltipClass", "tooltipContext", "openDelay", "closeDelay", "ngbTooltip"], outputs: ["shown", "hidden"], exportAs: ["ngbTooltip"] }], changeDetection: i0.ChangeDetectionStrategy.Eager });
|
|
54
69
|
}
|
|
55
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
70
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.7", ngImport: i0, type: YsNavbar, decorators: [{
|
|
56
71
|
type: Component,
|
|
57
|
-
args: [{ selector: 'ys-navbar', imports: [
|
|
58
|
-
NgClass,
|
|
59
|
-
RouterLink,
|
|
60
|
-
RouterLinkActive,
|
|
61
|
-
ReactiveFormsModule,
|
|
62
|
-
NgbTooltipModule
|
|
63
|
-
], template: "<nav class=\"ys-navbar navbar navbar-expand-lg bg-primary\" [class.ys-navbar-rtl]=\"isRtl()\" [class]=\"styleClass()\"\n [attr.data-bs-theme]=\"theme()\">\n <div class=\"container-fluid\">\n\n @if (sidebarToggler()) {\n\n <button class=\"sidebar-toggler me-2\" type=\"button\" (click)=\"onToggleSidebar()\" aria-expanded=\"false\"\n aria-label=\"Toggle sidebar\" [class.toggled]=\"sidebarToggled()\">\n <i class=\"sidebar-toggler-icon p-1\" [ngClass]=\"sidebarTogglerIconClass()\"></i>\n </button>\n\n }\n\n <a class=\"navbar-brand\" [ngClass]=\"brand()?.styleClass\" [class.me-auto]=\"!items().length\"\n [routerLink]=\"brand()?.routerLink\" [href]=\"brand()?.href\">\n\n @if (brand()?.src) {\n\n <img [src]=\"brand()?.src\" [alt]=\"brand()?.alt\" [width]=\"brand()?.width ?? 24\" [height]=\"brand()?.height ?? 24\"\n [class.me-2]=\"brand()?.label\">\n\n }\n\n {{brand()?.label}}\n\n </a>\n\n @if (items().length || endItems().length || isSearch()) {\n <button class=\"navbar-toggler ms-auto\" type=\"button\" data-bs-toggle=\"collapse\" [attr.data-bs-target]=\"'#' + id\"\n [attr.aria-controls]=\"id()\" aria-expanded=\"false\" aria-label=\"Toggle navigation\">\n <span class=\"navbar-toggler-icon\"></span>\n </button>\n }\n\n <div class=\"collapse navbar-collapse\" [id]=\"id()\">\n\n @if (items().length) {\n <ul class=\"navbar-nav me-auto\" [ngClass]=\"{'mb-2': isSearch()}\">\n @for (navItem of items(); track navItem) {\n\n @if (!isDropdown(navItem)) {\n\n <li class=\"nav-item\">\n <a class=\"nav-link\" [class.disabled]=\"navItem.disabled\" (click)=\"navItem.onClick && navItem.onClick($event)\"\n [attr.aria-disabled]=\"navItem.disabled\" [routerLink]=\"navItem.routerLink\" [routerLinkActive]=\"['active']\"\n [ngbTooltip]=\"navItem.tooltipLabel\" aria-current=\"page\">\n\n @if (navItem.iconClass) {\n <i class=\"pe-2\" [ngClass]=\"navItem.iconClass\"></i>\n }\n\n {{navItem.label}}\n\n </a>\n </li>\n\n }\n\n @if (isDropdown(navItem)) {\n\n <li class=\"nav-item dropdown\">\n <a class=\"nav-link dropdown-toggle\" [class.disabled]=\"navItem.disabled\"\n [attr.aria-disabled]=\"navItem.disabled\" ngbTooltip=\"{{navItem.tooltipLabel}}\" data-bs-toggle=\"dropdown\"\n role=\"button\" aria-haspopup=\"true\" aria-expanded=\"false\">\n\n @if (navItem.iconClass) {\n <i class=\"pe-2\" [ngClass]=\"navItem.iconClass\"></i>\n }\n\n @if (navItem.label) {\n\n {{navItem.label}}\n\n }\n\n </a>\n\n <ul class=\"dropdown-menu px-2\">\n\n @for (navSubItem of navItem.items; track navSubItem) {\n\n <li>\n\n @if (navSubItem.isDivider) {\n\n <hr class=\"dropdown-divider\">\n\n }\n @else {\n\n <a class=\"dropdown-item rounded\" (click)=\"navSubItem.onClick && navSubItem.onClick($event)\"\n [class.disabled]=\"navSubItem.disabled\" [attr.aria-disabled]=\"navItem.disabled\"\n [routerLink]=\"navSubItem.routerLink\" [routerLinkActive]=\"['active']\"\n [ngbTooltip]=\"navSubItem.tooltipLabel\">\n\n @if (navSubItem.iconClass) {\n <i class=\"me-2\" [ngClass]=\"navSubItem.iconClass\"></i>\n }\n\n @if (navSubItem.label) {\n {{navSubItem.label}}\n }\n\n </a>\n\n }\n\n </li>\n\n }\n\n </ul>\n </li>\n\n }\n\n }\n\n </ul>\n\n }\n\n @if (endItems().length > 0) {\n\n <ul class=\"navbar-nav flex-row ms-auto nav-end me-2\" [class.nav-end-me-0]=\"isSearch()\">\n\n @for (endItem of endItems(); track endItem) {\n\n @if (isDropdown(endItem)) {\n <li class=\"nav-item dropdown\">\n\n <a class=\"nav-link dropdown-toggle\" [ngbTooltip]=\"endItem.tooltipLabel\" data-bs-toggle=\"dropdown\"\n data-bs-display=\"static\" aria-expanded=\"false\" role=\"button\" aria-haspopup=\"true\" aria-expanded=\"false\">\n\n @if (endItem.iconClass) {\n <i class=\"pe-2\" [ngClass]=\"endItem.iconClass\"></i>\n }\n\n @if (endItem.label) {\n {{endItem.label}}\n }\n\n </a>\n\n <div class=\"dropdown-menu px-2 dropdown-menu-end\">\n @for (endItemSubItem of endItem.items; track endItemSubItem) {\n\n @if (endItemSubItem.isDivider) {\n <div class=\"dropdown-divider\"></div>\n }\n @else {\n\n <a class=\"dropdown-item rounded\" [routerLink]=\"endItemSubItem.routerLink\" [routerLinkActive]=\"['active']\"\n (click)=\"endItemSubItem.onClick && endItemSubItem.onClick($event)\" role=\"button\"\n [ngbTooltip]=\"endItemSubItem.tooltipLabel\">\n\n @if (endItemSubItem.iconClass) {\n <i class=\"me-2\" [ngClass]=\"endItemSubItem.iconClass\"></i>\n }\n\n @if (endItemSubItem.label) {\n {{endItemSubItem.label}}\n }\n\n </a>\n\n }\n\n }\n </div>\n </li>\n }\n @else {\n\n <li class=\"nav-item\">\n <a class=\"nav-link\" [routerLink]=\"endItem.routerLink\" [routerLinkActive]=\"['active']\"\n (click)=\"endItem.onClick && endItem.onClick($event)\" role=\"button\" [ngbTooltip]=\"endItem.tooltipLabel\">\n\n @if (endItem.iconClass) {\n <i class=\"pe-2\" [ngClass]=\"endItem.iconClass\"></i>\n }\n\n @if (endItem.label) {\n {{endItem.label}}\n }\n </a>\n </li>\n\n }\n\n }\n\n </ul>\n\n }\n\n @if (isSearch()) {\n\n <form class=\"search-form d-flex\" role=\"search\" [class.ms-auto]=\"!endItems().length\" [formGroup]=\"searchForm\"\n (ngSubmit)=\"submitSearch()\">\n\n <input name=\"searchValue\" id=\"searchValue\" formControlName=\"searchValue\" class=\"form-control me-2\" type=\"search\"\n [placeholder]=\"searchPlaceholder()\" aria-label=\"Search\">\n\n <button name=\"submitBtn\" class=\"btn btn-outline-success\" type=\"submit\">\n\n @if (searchIconClass()) {\n <i [ngClass]=\"searchIconClass()\"></i>\n }\n\n @if (searchLabel()) {\n {{searchLabel()}}\n }\n\n </button>\n </form>\n\n }\n\n </div>\n </div>\n</nav>", styles: [".sidebar-toggler{padding:var(--bs-navbar-toggler-padding-y) var(--bs-navbar-toggler-padding-x);font-size:var(--bs-navbar-toggler-font-size);line-height:1;color:var(--bs-navbar-color);background-color:transparent;border:var(--bs-border-width) solid var(--bs-navbar-toggler-border-color);border-radius:var(--bs-navbar-toggler-border-radius);transition:var(--bs-navbar-toggler-transition)}.sidebar-toggler.toggled .sidebar-toggler-icon{-webkit-transform:scaleX(-1);transform:scaleX(-1)}@media(prefers-reduced-motion:reduce){.sidebar-toggler{transition:none}}.sidebar-toggler:hover{text-decoration:none}.sidebar-toggler:focus{text-decoration:none;outline:0;box-shadow:0 0 0 var(--bs-navbar-toggler-focus-width)}.sidebar-toggler-icon{display:inline-block;width:1.5em;height:1.5em;vertical-align:middle;transition:all .5s ease}@media(max-width:576px){.navbar-expand-sm .search-form{margin-top:.5rem!important}.navbar-expand-sm .nav-end .nav-link{padding-right:var(--bs-navbar-nav-link-padding-x)}.navbar-expand-sm .nav-end.nav-end-me-0{margin-right:0!important}}@media(min-width:576px){.navbar-expand-sm .navbar-nav{margin-bottom:0!important}}@media(max-width:768px){.navbar-expand-md .search-form{margin-top:.5rem!important}.navbar-expand-md .nav-end .nav-link{padding-right:var(--bs-navbar-nav-link-padding-x)}.navbar-expand-md .nav-end.nav-end-me-0{margin-right:0!important}}@media(min-width:768px){.navbar-expand-md .navbar-nav{margin-bottom:0!important}}@media(max-width:992px){.navbar-expand-lg .search-form{margin-top:.5rem!important}.navbar-expand-lg .nav-end .nav-link{padding-right:var(--bs-navbar-nav-link-padding-x)}.navbar-expand-lg .nav-end.nav-end-me-0{margin-right:0!important}}@media(min-width:992px){.navbar-expand-lg .navbar-nav{margin-bottom:0!important}}@media(max-width:1200px){.navbar-expand-xlg .search-form{margin-top:.5rem!important}.navbar-expand-xlg .nav-end .nav-link{padding-right:var(--bs-navbar-nav-link-padding-x)}.navbar-expand-xlg .nav-end.nav-end-me-0{margin-right:0!important}}@media(min-width:1200px){.navbar-expand-xlg .navbar-nav{margin-bottom:0!important}}@media(max-width:1400px){.navbar-expand-xxlg .search-form{margin-top:.5rem!important}.navbar-expand-xxlg .nav-end .nav-link{padding-right:var(--bs-navbar-nav-link-padding-x)}.navbar-expand-xxlg .nav-end.nav-end-me-0{margin-right:0!important}}@media(min-width:1400px){.navbar-expand-xxlg .navbar-nav{margin-bottom:0!important}}\n"] }]
|
|
72
|
+
args: [{ selector: 'ys-navbar', imports: [NgClass, RouterLink, RouterLinkActive, ReactiveFormsModule, NgbTooltipModule], changeDetection: ChangeDetectionStrategy.Eager, template: "<nav class=\"ys-navbar navbar navbar-expand-lg bg-primary\" [class.ys-navbar-rtl]=\"isRtl()\" [class]=\"styleClass()\"\r\n [attr.data-bs-theme]=\"theme()\">\r\n <div class=\"container-fluid\">\r\n @if (sidebarToggler()) {\r\n <button class=\"sidebar-toggler me-2\" type=\"button\" (click)=\"onToggleSidebar()\" aria-expanded=\"false\"\r\n aria-label=\"Toggle sidebar\" [class.toggled]=\"sidebarToggled()\">\r\n <i class=\"sidebar-toggler-icon p-1\" [ngClass]=\"sidebarTogglerIconClass()\"></i>\r\n </button>\r\n }\r\n\r\n <a class=\"navbar-brand\" [ngClass]=\"brand()?.styleClass\" [class.me-auto]=\"!items().length\"\r\n [routerLink]=\"brand()?.routerLink\" [href]=\"brand()?.href\">\r\n @if (brand()?.src) {\r\n <img [src]=\"brand()?.src\" [alt]=\"brand()?.alt\" [width]=\"brand()?.width ?? 24\" [height]=\"brand()?.height ?? 24\"\r\n [class.me-2]=\"brand()?.label\" />\r\n }\r\n\r\n {{ brand()?.label }}\r\n </a>\r\n\r\n @if (items().length || endItems().length || isSearch()) {\r\n <button class=\"navbar-toggler ms-auto\" type=\"button\" data-bs-toggle=\"collapse\" [attr.data-bs-target]=\"'#' + id\"\r\n [attr.aria-controls]=\"id()\" aria-expanded=\"false\" aria-label=\"Toggle navigation\">\r\n <span class=\"navbar-toggler-icon\"></span>\r\n </button>\r\n }\r\n\r\n <div class=\"collapse navbar-collapse\" [id]=\"id()\">\r\n @if (items().length) {\r\n <ul class=\"navbar-nav me-auto\" [ngClass]=\"{ 'mb-2': isSearch() }\">\r\n @for (navItem of items(); track navItem) {\r\n @if (!isDropdown(navItem)) {\r\n <li class=\"nav-item\">\r\n <a class=\"nav-link\" [class.disabled]=\"navItem.disabled\" (click)=\"navItem.onClick && navItem.onClick($event)\"\r\n [attr.aria-disabled]=\"navItem.disabled\" [routerLink]=\"navItem.routerLink\" [routerLinkActive]=\"['active']\"\r\n [ngbTooltip]=\"navItem.tooltipLabel\" aria-current=\"page\">\r\n @if (navItem.iconClass) {\r\n <i class=\"pe-2\" [ngClass]=\"navItem.iconClass\"></i>\r\n }\r\n\r\n {{ navItem.label }}\r\n </a>\r\n </li>\r\n }\r\n\r\n @if (isDropdown(navItem)) {\r\n <li class=\"nav-item dropdown\">\r\n <a class=\"nav-link dropdown-toggle\" [class.disabled]=\"navItem.disabled\"\r\n [attr.aria-disabled]=\"navItem.disabled\" ngbTooltip=\"{{ navItem.tooltipLabel }}\" data-bs-toggle=\"dropdown\"\r\n role=\"button\" aria-haspopup=\"true\" aria-expanded=\"false\">\r\n @if (navItem.iconClass) {\r\n <i class=\"pe-2\" [ngClass]=\"navItem.iconClass\"></i>\r\n }\r\n\r\n @if (navItem.label) {\r\n {{ navItem.label }}\r\n }\r\n </a>\r\n\r\n <ul class=\"dropdown-menu px-2\">\r\n @for (navSubItem of navItem.items; track navSubItem) {\r\n <li>\r\n @if (navSubItem.isDivider) {\r\n <hr class=\"dropdown-divider\" />\r\n } @else {\r\n <a class=\"dropdown-item rounded\" (click)=\"navSubItem.onClick && navSubItem.onClick($event)\"\r\n [class.disabled]=\"navSubItem.disabled\" [attr.aria-disabled]=\"navItem.disabled\"\r\n [routerLink]=\"navSubItem.routerLink\" [routerLinkActive]=\"['active']\"\r\n [ngbTooltip]=\"navSubItem.tooltipLabel\">\r\n @if (navSubItem.iconClass) {\r\n <i class=\"me-2\" [ngClass]=\"navSubItem.iconClass\"></i>\r\n }\r\n\r\n @if (navSubItem.label) {\r\n {{ navSubItem.label }}\r\n }\r\n </a>\r\n }\r\n </li>\r\n }\r\n </ul>\r\n </li>\r\n }\r\n }\r\n </ul>\r\n }\r\n\r\n @if (endItems().length > 0) {\r\n <ul class=\"navbar-nav flex-row ms-auto nav-end me-2\" [class.nav-end-me-0]=\"isSearch()\">\r\n @for (endItem of endItems(); track endItem) {\r\n @if (isDropdown(endItem)) {\r\n <li class=\"nav-item dropdown\">\r\n <a class=\"nav-link dropdown-toggle\" [ngbTooltip]=\"endItem.tooltipLabel\" data-bs-toggle=\"dropdown\"\r\n data-bs-display=\"static\" aria-expanded=\"false\" role=\"button\" aria-haspopup=\"true\" aria-expanded=\"false\">\r\n @if (endItem.iconClass) {\r\n <i class=\"pe-2\" [ngClass]=\"endItem.iconClass\"></i>\r\n }\r\n\r\n @if (endItem.label) {\r\n {{ endItem.label }}\r\n }\r\n </a>\r\n\r\n <div class=\"dropdown-menu px-2 dropdown-menu-end\">\r\n @for (endItemSubItem of endItem.items; track endItemSubItem) {\r\n @if (endItemSubItem.isDivider) {\r\n <div class=\"dropdown-divider\"></div>\r\n } @else {\r\n <a class=\"dropdown-item rounded\" [routerLink]=\"endItemSubItem.routerLink\" [routerLinkActive]=\"['active']\"\r\n (click)=\"endItemSubItem.onClick && endItemSubItem.onClick($event)\" role=\"button\"\r\n [ngbTooltip]=\"endItemSubItem.tooltipLabel\">\r\n @if (endItemSubItem.iconClass) {\r\n <i class=\"me-2\" [ngClass]=\"endItemSubItem.iconClass\"></i>\r\n }\r\n\r\n @if (endItemSubItem.label) {\r\n {{ endItemSubItem.label }}\r\n }\r\n </a>\r\n }\r\n }\r\n </div>\r\n </li>\r\n } @else {\r\n <li class=\"nav-item\">\r\n <a class=\"nav-link\" [routerLink]=\"endItem.routerLink\" [routerLinkActive]=\"['active']\"\r\n (click)=\"endItem.onClick && endItem.onClick($event)\" role=\"button\" [ngbTooltip]=\"endItem.tooltipLabel\">\r\n @if (endItem.iconClass) {\r\n <i class=\"pe-2\" [ngClass]=\"endItem.iconClass\"></i>\r\n }\r\n\r\n @if (endItem.label) {\r\n {{ endItem.label }}\r\n }\r\n </a>\r\n </li>\r\n }\r\n }\r\n </ul>\r\n }\r\n\r\n @if (isSearch()) {\r\n <form class=\"search-form d-flex\" role=\"search\" [class.ms-auto]=\"!endItems().length\" [formGroup]=\"searchForm\"\r\n (ngSubmit)=\"submitSearch()\">\r\n <input name=\"searchValue\" id=\"searchValue\" formControlName=\"searchValue\" class=\"form-control me-2\" type=\"search\"\r\n [placeholder]=\"searchPlaceholder()\" aria-label=\"Search\" />\r\n\r\n <button name=\"submitBtn\" class=\"btn btn-outline-success\" type=\"submit\">\r\n @if (searchIconClass()) {\r\n <i [ngClass]=\"searchIconClass()\"></i>\r\n }\r\n\r\n @if (searchLabel()) {\r\n {{ searchLabel() }}\r\n }\r\n </button>\r\n </form>\r\n }\r\n </div>\r\n </div>\r\n</nav>", styles: [".sidebar-toggler{padding:var(--bs-navbar-toggler-padding-y) var(--bs-navbar-toggler-padding-x);font-size:var(--bs-navbar-toggler-font-size);line-height:1;color:var(--bs-navbar-color);background-color:transparent;border:var(--bs-border-width) solid var(--bs-navbar-toggler-border-color);border-radius:var(--bs-navbar-toggler-border-radius);transition:var(--bs-navbar-toggler-transition)}.sidebar-toggler.toggled .sidebar-toggler-icon{-webkit-transform:scaleX(-1);transform:scaleX(-1)}@media(prefers-reduced-motion:reduce){.sidebar-toggler{transition:none}}.sidebar-toggler:hover{text-decoration:none}.sidebar-toggler:focus{text-decoration:none;outline:0;box-shadow:0 0 0 var(--bs-navbar-toggler-focus-width)}.sidebar-toggler-icon{display:inline-block;width:1.5em;height:1.5em;vertical-align:middle;transition:all .5s ease}@media(max-width:576px){.navbar-expand-sm .search-form{margin-top:.5rem!important}.navbar-expand-sm .nav-end .nav-link{padding-right:var(--bs-navbar-nav-link-padding-x)}.navbar-expand-sm .nav-end.nav-end-me-0{margin-right:0!important}}@media(min-width:576px){.navbar-expand-sm .navbar-nav{margin-bottom:0!important}}@media(max-width:768px){.navbar-expand-md .search-form{margin-top:.5rem!important}.navbar-expand-md .nav-end .nav-link{padding-right:var(--bs-navbar-nav-link-padding-x)}.navbar-expand-md .nav-end.nav-end-me-0{margin-right:0!important}}@media(min-width:768px){.navbar-expand-md .navbar-nav{margin-bottom:0!important}}@media(max-width:992px){.navbar-expand-lg .search-form{margin-top:.5rem!important}.navbar-expand-lg .nav-end .nav-link{padding-right:var(--bs-navbar-nav-link-padding-x)}.navbar-expand-lg .nav-end.nav-end-me-0{margin-right:0!important}}@media(min-width:992px){.navbar-expand-lg .navbar-nav{margin-bottom:0!important}}@media(max-width:1200px){.navbar-expand-xlg .search-form{margin-top:.5rem!important}.navbar-expand-xlg .nav-end .nav-link{padding-right:var(--bs-navbar-nav-link-padding-x)}.navbar-expand-xlg .nav-end.nav-end-me-0{margin-right:0!important}}@media(min-width:1200px){.navbar-expand-xlg .navbar-nav{margin-bottom:0!important}}@media(max-width:1400px){.navbar-expand-xxlg .search-form{margin-top:.5rem!important}.navbar-expand-xxlg .nav-end .nav-link{padding-right:var(--bs-navbar-nav-link-padding-x)}.navbar-expand-xxlg .nav-end.nav-end-me-0{margin-right:0!important}}@media(min-width:1400px){.navbar-expand-xxlg .navbar-nav{margin-bottom:0!important}}\n"] }]
|
|
64
73
|
}], propDecorators: { id: [{ type: i0.Input, args: [{ isSignal: true, alias: "id", required: false }] }], theme: [{ type: i0.Input, args: [{ isSignal: true, alias: "theme", required: false }] }], styleClass: [{ type: i0.Input, args: [{ isSignal: true, alias: "styleClass", required: false }] }], brand: [{ type: i0.Input, args: [{ isSignal: true, alias: "brand", required: false }] }], items: [{ type: i0.Input, args: [{ isSignal: true, alias: "items", required: false }] }], endItems: [{ type: i0.Input, args: [{ isSignal: true, alias: "endItems", required: false }] }], isSearch: [{ type: i0.Input, args: [{ isSignal: true, alias: "isSearch", required: false }] }], searchLabel: [{ type: i0.Input, args: [{ isSignal: true, alias: "searchLabel", required: false }] }], searchIconClass: [{ type: i0.Input, args: [{ isSignal: true, alias: "searchIconClass", required: false }] }], searchPlaceholder: [{ type: i0.Input, args: [{ isSignal: true, alias: "searchPlaceholder", required: false }] }], sidebarToggler: [{ type: i0.Input, args: [{ isSignal: true, alias: "sidebarToggler", required: false }] }], sidebarTogglerIconClass: [{ type: i0.Input, args: [{ isSignal: true, alias: "sidebarTogglerIconClass", required: false }] }], sidebarToggled: [{ type: i0.Input, args: [{ isSignal: true, alias: "sidebarToggled", required: false }] }, { type: i0.Output, args: ["sidebarToggledChange"] }], rtl: [{ type: i0.Input, args: [{ isSignal: true, alias: "rtl", required: false }] }], toggleSidebar: [{ type: i0.Output, args: ["toggleSidebar"] }], search: [{ type: i0.Output, args: ["search"] }] } });
|
|
65
74
|
|
|
66
75
|
/*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"yoozsoft-yoozsoft-ng-navbar.mjs","sources":["../../../../projects/yoozsoft/yoozsoft-ng/navbar/src/ys-navbar/ys-navbar.ts","../../../../projects/yoozsoft/yoozsoft-ng/navbar/src/ys-navbar/ys-navbar.html","../../../../projects/yoozsoft/yoozsoft-ng/navbar/public-api.ts","../../../../projects/yoozsoft/yoozsoft-ng/navbar/yoozsoft-yoozsoft-ng-navbar.ts"],"sourcesContent":["import { isPlatformBrowser, NgClass } from '@angular/common';\nimport { Component, computed, inject, input, model, output, PLATFORM_ID } from '@angular/core';\nimport { FormBuilder, ReactiveFormsModule } from '@angular/forms';\nimport { RouterLink, RouterLinkActive } from '@angular/router';\nimport { NgbTooltipModule } from '@ng-bootstrap/ng-bootstrap';\nimport { NavbarBrand, NavbarItem } from '../models';\n\n@Component({\n selector: 'ys-navbar',\n imports: [\n NgClass,\n RouterLink,\n RouterLinkActive,\n ReactiveFormsModule,\n NgbTooltipModule\n ],\n templateUrl: './ys-navbar.html',\n styleUrl: './ys-navbar.scss',\n})\nexport class YsNavbar {\n\n private platformId = inject(PLATFORM_ID);\n private formBuilder = inject(FormBuilder)\n\n searchForm = this.formBuilder.nonNullable.group({\n searchValue: ''\n });\n\n id = input<string>('mainNavbar');\n theme = input<string>('dark');\n styleClass = input<string>();\n\n brand = input<NavbarBrand>();\n\n items = input<NavbarItem[]>([]);\n endItems = input<NavbarItem[]>([]);\n\n isSearch = input<boolean>(false);\n searchLabel = input<string>('Search');\n searchIconClass = input<string>();\n searchPlaceholder = input<string>('Search');\n\n sidebarToggler = input<boolean>(false);\n sidebarTogglerIconClass = input<string>(\"fa-solid fa-angle-right\");\n sidebarToggled = model<boolean>(true);\n\n rtl = input<boolean>();\n\n toggleSidebar = output<boolean>();\n search = output<string>();\n\n readonly isRtl = computed(() => {\n const rtl = this.rtl();\n\n if (rtl !== undefined) {\n return rtl;\n }\n\n if (!isPlatformBrowser(this.platformId)) {\n return false;\n }\n\n return document.documentElement.dir === 'rtl';\n });\n\n onToggleSidebar() {\n this.sidebarToggled.update(v => !v);\n this.toggleSidebar.emit(this.sidebarToggled());\n }\n\n submitSearch() {\n this.search.emit(\n this.searchForm.controls['searchValue'].value.trim()\n );\n }\n\n isDropdown(item: NavbarItem): boolean {\n return !!item.items?.length;\n }\n\n}\n","<nav class=\"ys-navbar navbar navbar-expand-lg bg-primary\" [class.ys-navbar-rtl]=\"isRtl()\" [class]=\"styleClass()\"\n [attr.data-bs-theme]=\"theme()\">\n <div class=\"container-fluid\">\n\n @if (sidebarToggler()) {\n\n <button class=\"sidebar-toggler me-2\" type=\"button\" (click)=\"onToggleSidebar()\" aria-expanded=\"false\"\n aria-label=\"Toggle sidebar\" [class.toggled]=\"sidebarToggled()\">\n <i class=\"sidebar-toggler-icon p-1\" [ngClass]=\"sidebarTogglerIconClass()\"></i>\n </button>\n\n }\n\n <a class=\"navbar-brand\" [ngClass]=\"brand()?.styleClass\" [class.me-auto]=\"!items().length\"\n [routerLink]=\"brand()?.routerLink\" [href]=\"brand()?.href\">\n\n @if (brand()?.src) {\n\n <img [src]=\"brand()?.src\" [alt]=\"brand()?.alt\" [width]=\"brand()?.width ?? 24\" [height]=\"brand()?.height ?? 24\"\n [class.me-2]=\"brand()?.label\">\n\n }\n\n {{brand()?.label}}\n\n </a>\n\n @if (items().length || endItems().length || isSearch()) {\n <button class=\"navbar-toggler ms-auto\" type=\"button\" data-bs-toggle=\"collapse\" [attr.data-bs-target]=\"'#' + id\"\n [attr.aria-controls]=\"id()\" aria-expanded=\"false\" aria-label=\"Toggle navigation\">\n <span class=\"navbar-toggler-icon\"></span>\n </button>\n }\n\n <div class=\"collapse navbar-collapse\" [id]=\"id()\">\n\n @if (items().length) {\n <ul class=\"navbar-nav me-auto\" [ngClass]=\"{'mb-2': isSearch()}\">\n @for (navItem of items(); track navItem) {\n\n @if (!isDropdown(navItem)) {\n\n <li class=\"nav-item\">\n <a class=\"nav-link\" [class.disabled]=\"navItem.disabled\" (click)=\"navItem.onClick && navItem.onClick($event)\"\n [attr.aria-disabled]=\"navItem.disabled\" [routerLink]=\"navItem.routerLink\" [routerLinkActive]=\"['active']\"\n [ngbTooltip]=\"navItem.tooltipLabel\" aria-current=\"page\">\n\n @if (navItem.iconClass) {\n <i class=\"pe-2\" [ngClass]=\"navItem.iconClass\"></i>\n }\n\n {{navItem.label}}\n\n </a>\n </li>\n\n }\n\n @if (isDropdown(navItem)) {\n\n <li class=\"nav-item dropdown\">\n <a class=\"nav-link dropdown-toggle\" [class.disabled]=\"navItem.disabled\"\n [attr.aria-disabled]=\"navItem.disabled\" ngbTooltip=\"{{navItem.tooltipLabel}}\" data-bs-toggle=\"dropdown\"\n role=\"button\" aria-haspopup=\"true\" aria-expanded=\"false\">\n\n @if (navItem.iconClass) {\n <i class=\"pe-2\" [ngClass]=\"navItem.iconClass\"></i>\n }\n\n @if (navItem.label) {\n\n {{navItem.label}}\n\n }\n\n </a>\n\n <ul class=\"dropdown-menu px-2\">\n\n @for (navSubItem of navItem.items; track navSubItem) {\n\n <li>\n\n @if (navSubItem.isDivider) {\n\n <hr class=\"dropdown-divider\">\n\n }\n @else {\n\n <a class=\"dropdown-item rounded\" (click)=\"navSubItem.onClick && navSubItem.onClick($event)\"\n [class.disabled]=\"navSubItem.disabled\" [attr.aria-disabled]=\"navItem.disabled\"\n [routerLink]=\"navSubItem.routerLink\" [routerLinkActive]=\"['active']\"\n [ngbTooltip]=\"navSubItem.tooltipLabel\">\n\n @if (navSubItem.iconClass) {\n <i class=\"me-2\" [ngClass]=\"navSubItem.iconClass\"></i>\n }\n\n @if (navSubItem.label) {\n {{navSubItem.label}}\n }\n\n </a>\n\n }\n\n </li>\n\n }\n\n </ul>\n </li>\n\n }\n\n }\n\n </ul>\n\n }\n\n @if (endItems().length > 0) {\n\n <ul class=\"navbar-nav flex-row ms-auto nav-end me-2\" [class.nav-end-me-0]=\"isSearch()\">\n\n @for (endItem of endItems(); track endItem) {\n\n @if (isDropdown(endItem)) {\n <li class=\"nav-item dropdown\">\n\n <a class=\"nav-link dropdown-toggle\" [ngbTooltip]=\"endItem.tooltipLabel\" data-bs-toggle=\"dropdown\"\n data-bs-display=\"static\" aria-expanded=\"false\" role=\"button\" aria-haspopup=\"true\" aria-expanded=\"false\">\n\n @if (endItem.iconClass) {\n <i class=\"pe-2\" [ngClass]=\"endItem.iconClass\"></i>\n }\n\n @if (endItem.label) {\n {{endItem.label}}\n }\n\n </a>\n\n <div class=\"dropdown-menu px-2 dropdown-menu-end\">\n @for (endItemSubItem of endItem.items; track endItemSubItem) {\n\n @if (endItemSubItem.isDivider) {\n <div class=\"dropdown-divider\"></div>\n }\n @else {\n\n <a class=\"dropdown-item rounded\" [routerLink]=\"endItemSubItem.routerLink\" [routerLinkActive]=\"['active']\"\n (click)=\"endItemSubItem.onClick && endItemSubItem.onClick($event)\" role=\"button\"\n [ngbTooltip]=\"endItemSubItem.tooltipLabel\">\n\n @if (endItemSubItem.iconClass) {\n <i class=\"me-2\" [ngClass]=\"endItemSubItem.iconClass\"></i>\n }\n\n @if (endItemSubItem.label) {\n {{endItemSubItem.label}}\n }\n\n </a>\n\n }\n\n }\n </div>\n </li>\n }\n @else {\n\n <li class=\"nav-item\">\n <a class=\"nav-link\" [routerLink]=\"endItem.routerLink\" [routerLinkActive]=\"['active']\"\n (click)=\"endItem.onClick && endItem.onClick($event)\" role=\"button\" [ngbTooltip]=\"endItem.tooltipLabel\">\n\n @if (endItem.iconClass) {\n <i class=\"pe-2\" [ngClass]=\"endItem.iconClass\"></i>\n }\n\n @if (endItem.label) {\n {{endItem.label}}\n }\n </a>\n </li>\n\n }\n\n }\n\n </ul>\n\n }\n\n @if (isSearch()) {\n\n <form class=\"search-form d-flex\" role=\"search\" [class.ms-auto]=\"!endItems().length\" [formGroup]=\"searchForm\"\n (ngSubmit)=\"submitSearch()\">\n\n <input name=\"searchValue\" id=\"searchValue\" formControlName=\"searchValue\" class=\"form-control me-2\" type=\"search\"\n [placeholder]=\"searchPlaceholder()\" aria-label=\"Search\">\n\n <button name=\"submitBtn\" class=\"btn btn-outline-success\" type=\"submit\">\n\n @if (searchIconClass()) {\n <i [ngClass]=\"searchIconClass()\"></i>\n }\n\n @if (searchLabel()) {\n {{searchLabel()}}\n }\n\n </button>\n </form>\n\n }\n\n </div>\n </div>\n</nav>","/*\r\n * Public API Surface of ys-navbar\r\n */\r\n\r\nexport * from './src/models';\r\nexport * from './src/ys-navbar/ys-navbar';\r\n\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"yoozsoft-yoozsoft-ng-navbar.mjs","sources":["../../../../projects/yoozsoft/yoozsoft-ng/navbar/src/ys-navbar/ys-navbar.ts","../../../../projects/yoozsoft/yoozsoft-ng/navbar/src/ys-navbar/ys-navbar.html","../../../../projects/yoozsoft/yoozsoft-ng/navbar/public-api.ts","../../../../projects/yoozsoft/yoozsoft-ng/navbar/yoozsoft-yoozsoft-ng-navbar.ts"],"sourcesContent":["import { isPlatformBrowser, NgClass } from '@angular/common';\r\nimport {\r\n Component,\r\n computed,\r\n inject,\r\n input,\r\n model,\r\n output,\r\n PLATFORM_ID,\r\n ChangeDetectionStrategy,\r\n} from '@angular/core';\r\nimport { FormBuilder, ReactiveFormsModule } from '@angular/forms';\r\nimport { RouterLink, RouterLinkActive } from '@angular/router';\r\nimport { NgbTooltipModule } from '@ng-bootstrap/ng-bootstrap';\r\nimport { NavbarBrand, NavbarItem } from '../models';\r\n\r\n@Component({\r\n selector: 'ys-navbar',\r\n imports: [NgClass, RouterLink, RouterLinkActive, ReactiveFormsModule, NgbTooltipModule],\r\n templateUrl: './ys-navbar.html',\r\n changeDetection: ChangeDetectionStrategy.Eager,\r\n styleUrl: './ys-navbar.scss',\r\n})\r\nexport class YsNavbar {\r\n private platformId = inject(PLATFORM_ID);\r\n private formBuilder = inject(FormBuilder);\r\n\r\n searchForm = this.formBuilder.nonNullable.group({\r\n searchValue: '',\r\n });\r\n\r\n id = input<string>('mainNavbar');\r\n theme = input<string>('dark');\r\n styleClass = input<string>();\r\n\r\n brand = input<NavbarBrand>();\r\n\r\n items = input<NavbarItem[]>([]);\r\n endItems = input<NavbarItem[]>([]);\r\n\r\n isSearch = input<boolean>(false);\r\n searchLabel = input<string>('Search');\r\n searchIconClass = input<string>();\r\n searchPlaceholder = input<string>('Search');\r\n\r\n sidebarToggler = input<boolean>(false);\r\n sidebarTogglerIconClass = input<string>('fa-solid fa-angle-right');\r\n sidebarToggled = model<boolean>(true);\r\n\r\n rtl = input<boolean>();\r\n\r\n toggleSidebar = output<boolean>();\r\n search = output<string>();\r\n\r\n readonly isRtl = computed(() => {\r\n const rtl = this.rtl();\r\n\r\n if (rtl !== undefined) {\r\n return rtl;\r\n }\r\n\r\n if (!isPlatformBrowser(this.platformId)) {\r\n return false;\r\n }\r\n\r\n return document.documentElement.dir === 'rtl';\r\n });\r\n\r\n onToggleSidebar() {\r\n this.sidebarToggled.update((v) => !v);\r\n this.toggleSidebar.emit(this.sidebarToggled());\r\n }\r\n\r\n submitSearch() {\r\n this.search.emit(this.searchForm.controls['searchValue'].value.trim());\r\n }\r\n\r\n isDropdown(item: NavbarItem): boolean {\r\n return !!item.items?.length;\r\n }\r\n}\r\n","<nav class=\"ys-navbar navbar navbar-expand-lg bg-primary\" [class.ys-navbar-rtl]=\"isRtl()\" [class]=\"styleClass()\"\r\n [attr.data-bs-theme]=\"theme()\">\r\n <div class=\"container-fluid\">\r\n @if (sidebarToggler()) {\r\n <button class=\"sidebar-toggler me-2\" type=\"button\" (click)=\"onToggleSidebar()\" aria-expanded=\"false\"\r\n aria-label=\"Toggle sidebar\" [class.toggled]=\"sidebarToggled()\">\r\n <i class=\"sidebar-toggler-icon p-1\" [ngClass]=\"sidebarTogglerIconClass()\"></i>\r\n </button>\r\n }\r\n\r\n <a class=\"navbar-brand\" [ngClass]=\"brand()?.styleClass\" [class.me-auto]=\"!items().length\"\r\n [routerLink]=\"brand()?.routerLink\" [href]=\"brand()?.href\">\r\n @if (brand()?.src) {\r\n <img [src]=\"brand()?.src\" [alt]=\"brand()?.alt\" [width]=\"brand()?.width ?? 24\" [height]=\"brand()?.height ?? 24\"\r\n [class.me-2]=\"brand()?.label\" />\r\n }\r\n\r\n {{ brand()?.label }}\r\n </a>\r\n\r\n @if (items().length || endItems().length || isSearch()) {\r\n <button class=\"navbar-toggler ms-auto\" type=\"button\" data-bs-toggle=\"collapse\" [attr.data-bs-target]=\"'#' + id\"\r\n [attr.aria-controls]=\"id()\" aria-expanded=\"false\" aria-label=\"Toggle navigation\">\r\n <span class=\"navbar-toggler-icon\"></span>\r\n </button>\r\n }\r\n\r\n <div class=\"collapse navbar-collapse\" [id]=\"id()\">\r\n @if (items().length) {\r\n <ul class=\"navbar-nav me-auto\" [ngClass]=\"{ 'mb-2': isSearch() }\">\r\n @for (navItem of items(); track navItem) {\r\n @if (!isDropdown(navItem)) {\r\n <li class=\"nav-item\">\r\n <a class=\"nav-link\" [class.disabled]=\"navItem.disabled\" (click)=\"navItem.onClick && navItem.onClick($event)\"\r\n [attr.aria-disabled]=\"navItem.disabled\" [routerLink]=\"navItem.routerLink\" [routerLinkActive]=\"['active']\"\r\n [ngbTooltip]=\"navItem.tooltipLabel\" aria-current=\"page\">\r\n @if (navItem.iconClass) {\r\n <i class=\"pe-2\" [ngClass]=\"navItem.iconClass\"></i>\r\n }\r\n\r\n {{ navItem.label }}\r\n </a>\r\n </li>\r\n }\r\n\r\n @if (isDropdown(navItem)) {\r\n <li class=\"nav-item dropdown\">\r\n <a class=\"nav-link dropdown-toggle\" [class.disabled]=\"navItem.disabled\"\r\n [attr.aria-disabled]=\"navItem.disabled\" ngbTooltip=\"{{ navItem.tooltipLabel }}\" data-bs-toggle=\"dropdown\"\r\n role=\"button\" aria-haspopup=\"true\" aria-expanded=\"false\">\r\n @if (navItem.iconClass) {\r\n <i class=\"pe-2\" [ngClass]=\"navItem.iconClass\"></i>\r\n }\r\n\r\n @if (navItem.label) {\r\n {{ navItem.label }}\r\n }\r\n </a>\r\n\r\n <ul class=\"dropdown-menu px-2\">\r\n @for (navSubItem of navItem.items; track navSubItem) {\r\n <li>\r\n @if (navSubItem.isDivider) {\r\n <hr class=\"dropdown-divider\" />\r\n } @else {\r\n <a class=\"dropdown-item rounded\" (click)=\"navSubItem.onClick && navSubItem.onClick($event)\"\r\n [class.disabled]=\"navSubItem.disabled\" [attr.aria-disabled]=\"navItem.disabled\"\r\n [routerLink]=\"navSubItem.routerLink\" [routerLinkActive]=\"['active']\"\r\n [ngbTooltip]=\"navSubItem.tooltipLabel\">\r\n @if (navSubItem.iconClass) {\r\n <i class=\"me-2\" [ngClass]=\"navSubItem.iconClass\"></i>\r\n }\r\n\r\n @if (navSubItem.label) {\r\n {{ navSubItem.label }}\r\n }\r\n </a>\r\n }\r\n </li>\r\n }\r\n </ul>\r\n </li>\r\n }\r\n }\r\n </ul>\r\n }\r\n\r\n @if (endItems().length > 0) {\r\n <ul class=\"navbar-nav flex-row ms-auto nav-end me-2\" [class.nav-end-me-0]=\"isSearch()\">\r\n @for (endItem of endItems(); track endItem) {\r\n @if (isDropdown(endItem)) {\r\n <li class=\"nav-item dropdown\">\r\n <a class=\"nav-link dropdown-toggle\" [ngbTooltip]=\"endItem.tooltipLabel\" data-bs-toggle=\"dropdown\"\r\n data-bs-display=\"static\" aria-expanded=\"false\" role=\"button\" aria-haspopup=\"true\" aria-expanded=\"false\">\r\n @if (endItem.iconClass) {\r\n <i class=\"pe-2\" [ngClass]=\"endItem.iconClass\"></i>\r\n }\r\n\r\n @if (endItem.label) {\r\n {{ endItem.label }}\r\n }\r\n </a>\r\n\r\n <div class=\"dropdown-menu px-2 dropdown-menu-end\">\r\n @for (endItemSubItem of endItem.items; track endItemSubItem) {\r\n @if (endItemSubItem.isDivider) {\r\n <div class=\"dropdown-divider\"></div>\r\n } @else {\r\n <a class=\"dropdown-item rounded\" [routerLink]=\"endItemSubItem.routerLink\" [routerLinkActive]=\"['active']\"\r\n (click)=\"endItemSubItem.onClick && endItemSubItem.onClick($event)\" role=\"button\"\r\n [ngbTooltip]=\"endItemSubItem.tooltipLabel\">\r\n @if (endItemSubItem.iconClass) {\r\n <i class=\"me-2\" [ngClass]=\"endItemSubItem.iconClass\"></i>\r\n }\r\n\r\n @if (endItemSubItem.label) {\r\n {{ endItemSubItem.label }}\r\n }\r\n </a>\r\n }\r\n }\r\n </div>\r\n </li>\r\n } @else {\r\n <li class=\"nav-item\">\r\n <a class=\"nav-link\" [routerLink]=\"endItem.routerLink\" [routerLinkActive]=\"['active']\"\r\n (click)=\"endItem.onClick && endItem.onClick($event)\" role=\"button\" [ngbTooltip]=\"endItem.tooltipLabel\">\r\n @if (endItem.iconClass) {\r\n <i class=\"pe-2\" [ngClass]=\"endItem.iconClass\"></i>\r\n }\r\n\r\n @if (endItem.label) {\r\n {{ endItem.label }}\r\n }\r\n </a>\r\n </li>\r\n }\r\n }\r\n </ul>\r\n }\r\n\r\n @if (isSearch()) {\r\n <form class=\"search-form d-flex\" role=\"search\" [class.ms-auto]=\"!endItems().length\" [formGroup]=\"searchForm\"\r\n (ngSubmit)=\"submitSearch()\">\r\n <input name=\"searchValue\" id=\"searchValue\" formControlName=\"searchValue\" class=\"form-control me-2\" type=\"search\"\r\n [placeholder]=\"searchPlaceholder()\" aria-label=\"Search\" />\r\n\r\n <button name=\"submitBtn\" class=\"btn btn-outline-success\" type=\"submit\">\r\n @if (searchIconClass()) {\r\n <i [ngClass]=\"searchIconClass()\"></i>\r\n }\r\n\r\n @if (searchLabel()) {\r\n {{ searchLabel() }}\r\n }\r\n </button>\r\n </form>\r\n }\r\n </div>\r\n </div>\r\n</nav>","/*\r\n * Public API Surface of ys-navbar\r\n */\r\n\r\nexport * from './src/models';\r\nexport * from './src/ys-navbar/ys-navbar';\r\n\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":";;;;;;;;;MAuBa,QAAQ,CAAA;AACX,IAAA,UAAU,GAAG,MAAM,CAAC,WAAW,CAAC;AAChC,IAAA,WAAW,GAAG,MAAM,CAAC,WAAW,CAAC;IAEzC,UAAU,GAAG,IAAI,CAAC,WAAW,CAAC,WAAW,CAAC,KAAK,CAAC;AAC9C,QAAA,WAAW,EAAE,EAAE;AAChB,KAAA,CAAC;IAEF,EAAE,GAAG,KAAK,CAAS,YAAY;2EAAC;IAChC,KAAK,GAAG,KAAK,CAAS,MAAM;8EAAC;AAC7B,IAAA,UAAU,GAAG,KAAK;8FAAU;AAE5B,IAAA,KAAK,GAAG,KAAK;yFAAe;IAE5B,KAAK,GAAG,KAAK,CAAe,EAAE;8EAAC;IAC/B,QAAQ,GAAG,KAAK,CAAe,EAAE;iFAAC;IAElC,QAAQ,GAAG,KAAK,CAAU,KAAK;iFAAC;IAChC,WAAW,GAAG,KAAK,CAAS,QAAQ;oFAAC;AACrC,IAAA,eAAe,GAAG,KAAK;mGAAU;IACjC,iBAAiB,GAAG,KAAK,CAAS,QAAQ;0FAAC;IAE3C,cAAc,GAAG,KAAK,CAAU,KAAK;uFAAC;IACtC,uBAAuB,GAAG,KAAK,CAAS,yBAAyB;gGAAC;IAClE,cAAc,GAAG,KAAK,CAAU,IAAI;uFAAC;AAErC,IAAA,GAAG,GAAG,KAAK;uFAAW;IAEtB,aAAa,GAAG,MAAM,EAAW;IACjC,MAAM,GAAG,MAAM,EAAU;AAEhB,IAAA,KAAK,GAAG,QAAQ,CAAC,MAAK;AAC7B,QAAA,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE;AAEtB,QAAA,IAAI,GAAG,KAAK,SAAS,EAAE;AACrB,YAAA,OAAO,GAAG;QACZ;QAEA,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE;AACvC,YAAA,OAAO,KAAK;QACd;AAEA,QAAA,OAAO,QAAQ,CAAC,eAAe,CAAC,GAAG,KAAK,KAAK;IAC/C,CAAC;8EAAC;IAEF,eAAe,GAAA;AACb,QAAA,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC;QACrC,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE,CAAC;IAChD;IAEA,YAAY,GAAA;AACV,QAAA,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC;IACxE;AAEA,IAAA,UAAU,CAAC,IAAgB,EAAA;AACzB,QAAA,OAAO,CAAC,CAAC,IAAI,CAAC,KAAK,EAAE,MAAM;IAC7B;uGAxDW,QAAQ,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;2FAAR,QAAQ,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,EAAA,EAAA,EAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,KAAA,EAAA,EAAA,iBAAA,EAAA,OAAA,EAAA,UAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,iBAAA,EAAA,YAAA,EAAA,UAAA,EAAA,YAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,KAAA,EAAA,EAAA,iBAAA,EAAA,OAAA,EAAA,UAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,KAAA,EAAA,EAAA,iBAAA,EAAA,OAAA,EAAA,UAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,QAAA,EAAA,EAAA,iBAAA,EAAA,UAAA,EAAA,UAAA,EAAA,UAAA,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,WAAA,EAAA,EAAA,iBAAA,EAAA,aAAA,EAAA,UAAA,EAAA,aAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,eAAA,EAAA,EAAA,iBAAA,EAAA,iBAAA,EAAA,UAAA,EAAA,iBAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,iBAAA,EAAA,EAAA,iBAAA,EAAA,mBAAA,EAAA,UAAA,EAAA,mBAAA,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,uBAAA,EAAA,EAAA,iBAAA,EAAA,yBAAA,EAAA,UAAA,EAAA,yBAAA,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,GAAA,EAAA,EAAA,iBAAA,EAAA,KAAA,EAAA,UAAA,EAAA,KAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,EAAA,OAAA,EAAA,EAAA,cAAA,EAAA,sBAAA,EAAA,aAAA,EAAA,eAAA,EAAA,MAAA,EAAA,QAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,ECvBrB,myNAgKM,EAAA,MAAA,EAAA,CAAA,q3EAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,ED9IM,OAAO,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAE,UAAU,EAAA,QAAA,EAAA,cAAA,EAAA,MAAA,EAAA,CAAA,QAAA,EAAA,aAAA,EAAA,UAAA,EAAA,qBAAA,EAAA,OAAA,EAAA,MAAA,EAAA,YAAA,EAAA,kBAAA,EAAA,oBAAA,EAAA,YAAA,EAAA,YAAA,EAAA,YAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAE,gBAAgB,EAAA,QAAA,EAAA,oBAAA,EAAA,MAAA,EAAA,CAAA,yBAAA,EAAA,uBAAA,EAAA,kBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,gBAAA,CAAA,EAAA,QAAA,EAAA,CAAA,kBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAE,mBAAmB,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,aAAA,EAAA,QAAA,EAAA,8CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,oBAAA,EAAA,QAAA,EAAA,wSAAA,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,oBAAA,EAAA,QAAA,EAAA,sGAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,kBAAA,EAAA,QAAA,EAAA,aAAA,EAAA,MAAA,EAAA,CAAA,WAAA,CAAA,EAAA,OAAA,EAAA,CAAA,UAAA,CAAA,EAAA,QAAA,EAAA,CAAA,QAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,eAAA,EAAA,QAAA,EAAA,mBAAA,EAAA,MAAA,EAAA,CAAA,iBAAA,EAAA,UAAA,EAAA,SAAA,CAAA,EAAA,OAAA,EAAA,CAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAE,gBAAgB,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,UAAA,EAAA,QAAA,EAAA,cAAA,EAAA,MAAA,EAAA,CAAA,WAAA,EAAA,WAAA,EAAA,WAAA,EAAA,eAAA,EAAA,UAAA,EAAA,gBAAA,EAAA,WAAA,EAAA,gBAAA,EAAA,cAAA,EAAA,gBAAA,EAAA,WAAA,EAAA,YAAA,EAAA,YAAA,CAAA,EAAA,OAAA,EAAA,CAAA,OAAA,EAAA,QAAA,CAAA,EAAA,QAAA,EAAA,CAAA,YAAA,CAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,KAAA,EAAA,CAAA;;2FAK3E,QAAQ,EAAA,UAAA,EAAA,CAAA;kBAPpB,SAAS;AACE,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,WAAW,EAAA,OAAA,EACZ,CAAC,OAAO,EAAE,UAAU,EAAE,gBAAgB,EAAE,mBAAmB,EAAE,gBAAgB,CAAC,EAAA,eAAA,EAEtE,uBAAuB,CAAC,KAAK,EAAA,QAAA,EAAA,myNAAA,EAAA,MAAA,EAAA,CAAA,q3EAAA,CAAA,EAAA;;;AEpBhD;;AAEG;;ACFH;;AAEG;;;;"}
|
|
@@ -1,15 +1,16 @@
|
|
|
1
1
|
import * as i0 from '@angular/core';
|
|
2
|
-
import { input, output, Component } from '@angular/core';
|
|
2
|
+
import { input, output, ChangeDetectionStrategy, Component } from '@angular/core';
|
|
3
3
|
|
|
4
4
|
class YsOverlay {
|
|
5
|
-
show = input(false,
|
|
5
|
+
show = input(false, /* @ts-ignore */
|
|
6
|
+
...(ngDevMode ? [{ debugName: "show" }] : /* istanbul ignore next */ []));
|
|
6
7
|
onClick = output();
|
|
7
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
8
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "
|
|
8
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.7", ngImport: i0, type: YsOverlay, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
9
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "22.0.7", type: YsOverlay, isStandalone: true, selector: "ys-overlay", inputs: { show: { classPropertyName: "show", publicName: "show", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { onClick: "onClick" }, ngImport: i0, template: "<div class=\"overlay bg-dark\" [class.show]=\"show()\" (click)=\"onClick.emit($event)\"></div>", styles: [".overlay{position:fixed;inset:0;z-index:100;opacity:0;display:hidden;pointer-events:none;transition:opacity .5s ease}.overlay.show{opacity:.5;visibility:visible;pointer-events:auto}\n"], changeDetection: i0.ChangeDetectionStrategy.Eager });
|
|
9
10
|
}
|
|
10
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
11
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.7", ngImport: i0, type: YsOverlay, decorators: [{
|
|
11
12
|
type: Component,
|
|
12
|
-
args: [{ selector: 'ys-overlay', imports: [], template: "<div class=\"overlay bg-dark\" [class.show]=\"show()\" (click)=\"onClick.emit($event)\"></div>", styles: [".overlay{position:fixed;inset:0;z-index:100;opacity:0;display:hidden;pointer-events:none;transition:opacity .5s ease}.overlay.show{opacity:.5;visibility:visible;pointer-events:auto}\n"] }]
|
|
13
|
+
args: [{ selector: 'ys-overlay', imports: [], changeDetection: ChangeDetectionStrategy.Eager, template: "<div class=\"overlay bg-dark\" [class.show]=\"show()\" (click)=\"onClick.emit($event)\"></div>", styles: [".overlay{position:fixed;inset:0;z-index:100;opacity:0;display:hidden;pointer-events:none;transition:opacity .5s ease}.overlay.show{opacity:.5;visibility:visible;pointer-events:auto}\n"] }]
|
|
13
14
|
}], propDecorators: { show: [{ type: i0.Input, args: [{ isSignal: true, alias: "show", required: false }] }], onClick: [{ type: i0.Output, args: ["onClick"] }] } });
|
|
14
15
|
|
|
15
16
|
/*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"yoozsoft-yoozsoft-ng-overlay.mjs","sources":["../../../../projects/yoozsoft/yoozsoft-ng/overlay/src/ys-overlay/ys-overlay.ts","../../../../projects/yoozsoft/yoozsoft-ng/overlay/src/ys-overlay/ys-overlay.html","../../../../projects/yoozsoft/yoozsoft-ng/overlay/public-api.ts","../../../../projects/yoozsoft/yoozsoft-ng/overlay/yoozsoft-yoozsoft-ng-overlay.ts"],"sourcesContent":["import { Component, input, output } from '@angular/core';\n\n@Component({\n selector: 'ys-overlay',\n imports: [],\n templateUrl: './ys-overlay.html',\n styleUrl: './ys-overlay.scss',\n})\nexport class YsOverlay {\
|
|
1
|
+
{"version":3,"file":"yoozsoft-yoozsoft-ng-overlay.mjs","sources":["../../../../projects/yoozsoft/yoozsoft-ng/overlay/src/ys-overlay/ys-overlay.ts","../../../../projects/yoozsoft/yoozsoft-ng/overlay/src/ys-overlay/ys-overlay.html","../../../../projects/yoozsoft/yoozsoft-ng/overlay/public-api.ts","../../../../projects/yoozsoft/yoozsoft-ng/overlay/yoozsoft-yoozsoft-ng-overlay.ts"],"sourcesContent":["import { Component, input, output, ChangeDetectionStrategy } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'ys-overlay',\r\n imports: [],\r\n templateUrl: './ys-overlay.html',\r\n changeDetection: ChangeDetectionStrategy.Eager,\r\n styleUrl: './ys-overlay.scss',\r\n})\r\nexport class YsOverlay {\r\n show = input<boolean>(false);\r\n\r\n onClick = output<MouseEvent>();\r\n}\r\n","<div class=\"overlay bg-dark\" [class.show]=\"show()\" (click)=\"onClick.emit($event)\"></div>","/*\r\n * Public API Surface of ys-overlay\r\n */\r\n\r\nexport * from './src/ys-overlay/ys-overlay';","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":";;;MASa,SAAS,CAAA;IACpB,IAAI,GAAG,KAAK,CAAU,KAAK;6EAAC;IAE5B,OAAO,GAAG,MAAM,EAAc;uGAHnB,SAAS,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;AAAT,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,SAAS,wOCTtB,gGAAwF,EAAA,MAAA,EAAA,CAAA,yLAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,KAAA,EAAA,CAAA;;2FDS3E,SAAS,EAAA,UAAA,EAAA,CAAA;kBAPrB,SAAS;AACE,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,YAAY,EAAA,OAAA,EACb,EAAE,EAAA,eAAA,EAEM,uBAAuB,CAAC,KAAK,EAAA,QAAA,EAAA,gGAAA,EAAA,MAAA,EAAA,CAAA,yLAAA,CAAA,EAAA;;;AENhD;;AAEG;;ACFH;;AAEG;;;;"}
|
|
@@ -1,32 +1,46 @@
|
|
|
1
1
|
import * as i0 from '@angular/core';
|
|
2
|
-
import { input, model, output, computed, effect, Component } from '@angular/core';
|
|
2
|
+
import { input, model, output, computed, effect, ChangeDetectionStrategy, Component } from '@angular/core';
|
|
3
3
|
import * as i1 from '@angular/forms';
|
|
4
4
|
import { FormsModule } from '@angular/forms';
|
|
5
5
|
import { NgbPagination } from '@ng-bootstrap/ng-bootstrap';
|
|
6
6
|
|
|
7
7
|
class YsPagination {
|
|
8
|
-
rowsPerPage = input([10, 25, 50],
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
8
|
+
rowsPerPage = input([10, 25, 50], /* @ts-ignore */
|
|
9
|
+
...(ngDevMode ? [{ debugName: "rowsPerPage" }] : /* istanbul ignore next */ []));
|
|
10
|
+
pageReport = input(true, /* @ts-ignore */
|
|
11
|
+
...(ngDevMode ? [{ debugName: "pageReport" }] : /* istanbul ignore next */ []));
|
|
12
|
+
pageReportTemplate = input('Showing {first} to {last} of {totalRecords} items', /* @ts-ignore */
|
|
13
|
+
...(ngDevMode ? [{ debugName: "pageReportTemplate" }] : /* istanbul ignore next */ []));
|
|
14
|
+
ellipses = input(false, /* @ts-ignore */
|
|
15
|
+
...(ngDevMode ? [{ debugName: "ellipses" }] : /* istanbul ignore next */ []));
|
|
16
|
+
boundaryLinks = input(true, /* @ts-ignore */
|
|
17
|
+
...(ngDevMode ? [{ debugName: "boundaryLinks" }] : /* istanbul ignore next */ []));
|
|
18
|
+
maxSize = input(5, /* @ts-ignore */
|
|
19
|
+
...(ngDevMode ? [{ debugName: "maxSize" }] : /* istanbul ignore next */ []));
|
|
20
|
+
rotate = input(true, /* @ts-ignore */
|
|
21
|
+
...(ngDevMode ? [{ debugName: "rotate" }] : /* istanbul ignore next */ []));
|
|
22
|
+
page = model(1, /* @ts-ignore */
|
|
23
|
+
...(ngDevMode ? [{ debugName: "page" }] : /* istanbul ignore next */ []));
|
|
24
|
+
pageSizeSelection = input(true, /* @ts-ignore */
|
|
25
|
+
...(ngDevMode ? [{ debugName: "pageSizeSelection" }] : /* istanbul ignore next */ []));
|
|
26
|
+
pageSize = model(10, /* @ts-ignore */
|
|
27
|
+
...(ngDevMode ? [{ debugName: "pageSize" }] : /* istanbul ignore next */ []));
|
|
28
|
+
collectionSize = input(0, /* @ts-ignore */
|
|
29
|
+
...(ngDevMode ? [{ debugName: "collectionSize" }] : /* istanbul ignore next */ []));
|
|
19
30
|
pageChanged = output();
|
|
20
|
-
firstIndex = computed(() => (this.page() - 1) * this.pageSize(),
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
31
|
+
firstIndex = computed(() => (this.page() - 1) * this.pageSize(), /* @ts-ignore */
|
|
32
|
+
...(ngDevMode ? [{ debugName: "firstIndex" }] : /* istanbul ignore next */ []));
|
|
33
|
+
lastIndex = computed(() => Math.min(this.firstIndex() + this.pageSize(), this.collectionSize()), /* @ts-ignore */
|
|
34
|
+
...(ngDevMode ? [{ debugName: "lastIndex" }] : /* istanbul ignore next */ []));
|
|
35
|
+
totalPages = computed(() => Math.ceil(this.collectionSize() / this.pageSize()) || 1, /* @ts-ignore */
|
|
36
|
+
...(ngDevMode ? [{ debugName: "totalPages" }] : /* istanbul ignore next */ []));
|
|
37
|
+
firstRecord = computed(() => (this.collectionSize() === 0 ? 0 : this.firstIndex() + 1), /* @ts-ignore */
|
|
38
|
+
...(ngDevMode ? [{ debugName: "firstRecord" }] : /* istanbul ignore next */ []));
|
|
26
39
|
pageReportText = computed(() => this.pageReportTemplate()
|
|
27
40
|
.replace('{first}', this.firstRecord() + '')
|
|
28
41
|
.replace('{last}', this.lastIndex() + '')
|
|
29
|
-
.replace('{totalRecords}', this.collectionSize() + ''),
|
|
42
|
+
.replace('{totalRecords}', this.collectionSize() + ''), /* @ts-ignore */
|
|
43
|
+
...(ngDevMode ? [{ debugName: "pageReportText" }] : /* istanbul ignore next */ []));
|
|
30
44
|
constructor() {
|
|
31
45
|
effect(() => {
|
|
32
46
|
if (!this.rowsPerPage().includes(this.pageSize())) {
|
|
@@ -38,7 +52,7 @@ class YsPagination {
|
|
|
38
52
|
this.page.set(page);
|
|
39
53
|
this.pageChanged.emit({
|
|
40
54
|
page,
|
|
41
|
-
pageSize: this.pageSize()
|
|
55
|
+
pageSize: this.pageSize(),
|
|
42
56
|
});
|
|
43
57
|
}
|
|
44
58
|
changePageSize(size) {
|
|
@@ -46,18 +60,15 @@ class YsPagination {
|
|
|
46
60
|
this.page.set(1);
|
|
47
61
|
this.pageChanged.emit({
|
|
48
62
|
page: 1,
|
|
49
|
-
pageSize: size
|
|
63
|
+
pageSize: size,
|
|
50
64
|
});
|
|
51
65
|
}
|
|
52
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
53
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "
|
|
66
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.7", ngImport: i0, type: YsPagination, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
67
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.0.7", type: YsPagination, isStandalone: true, selector: "ys-pagination", inputs: { rowsPerPage: { classPropertyName: "rowsPerPage", publicName: "rowsPerPage", isSignal: true, isRequired: false, transformFunction: null }, pageReport: { classPropertyName: "pageReport", publicName: "pageReport", isSignal: true, isRequired: false, transformFunction: null }, pageReportTemplate: { classPropertyName: "pageReportTemplate", publicName: "pageReportTemplate", isSignal: true, isRequired: false, transformFunction: null }, ellipses: { classPropertyName: "ellipses", publicName: "ellipses", isSignal: true, isRequired: false, transformFunction: null }, boundaryLinks: { classPropertyName: "boundaryLinks", publicName: "boundaryLinks", isSignal: true, isRequired: false, transformFunction: null }, maxSize: { classPropertyName: "maxSize", publicName: "maxSize", isSignal: true, isRequired: false, transformFunction: null }, rotate: { classPropertyName: "rotate", publicName: "rotate", isSignal: true, isRequired: false, transformFunction: null }, page: { classPropertyName: "page", publicName: "page", isSignal: true, isRequired: false, transformFunction: null }, pageSizeSelection: { classPropertyName: "pageSizeSelection", publicName: "pageSizeSelection", isSignal: true, isRequired: false, transformFunction: null }, pageSize: { classPropertyName: "pageSize", publicName: "pageSize", isSignal: true, isRequired: false, transformFunction: null }, collectionSize: { classPropertyName: "collectionSize", publicName: "collectionSize", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { page: "pageChange", pageSize: "pageSizeChange", pageChanged: "pageChanged" }, ngImport: i0, template: "<div class=\"ys-pagination d-flex flex-wrap justify-content-center justify-content-sm-between align-items-center gap-2\">\n\n <!-- \u0635\u0641\u062D\u0647\u200C\u0628\u0646\u062F\u06CC -->\n <ngb-pagination [collectionSize]=\"collectionSize()\" [page]=\"page()\" [pageSize]=\"pageSize()\" [maxSize]=\"maxSize()\"\n [rotate]=\"rotate()\" [ellipses]=\"ellipses()\" [boundaryLinks]=\"boundaryLinks()\"\n (pageChange)=\"changePage($event)\" />\n\n <!-- \u0627\u0646\u062A\u062E\u0627\u0628 \u062A\u0639\u062F\u0627\u062F \u062F\u0631 \u0647\u0631 \u0635\u0641\u062D\u0647 -->\n @if(pageSizeSelection()){\n <select class=\"pagination-select form-select form-select-sm w-auto me-auto\" [ngModel]=\"pageSize()\"\n (ngModelChange)=\"changePageSize($event)\" id=\"pagination\">\n @for (rows of rowsPerPage(); track rows) {\n <option [value]=\"rows\">{{ rows }}</option>\n }\n </select>\n }\n\n <!-- \u06AF\u0632\u0627\u0631\u0634 -->\n @if(pageReport()){\n <small class=\"pagination-report text-muted ms-auto\">\n {{ pageReportText() }}\n </small>\n }\n\n</div>", styles: [""], dependencies: [{ kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1.NgSelectOption, selector: "option", inputs: ["ngValue", "value"] }, { kind: "directive", type: i1.ɵNgSelectMultipleOption, selector: "option", inputs: ["ngValue", "value"] }, { kind: "directive", type: i1.SelectControlValueAccessor, selector: "select:not([multiple]):not([ngNoCva])[formControlName],select:not([multiple]):not([ngNoCva])[formControl],select:not([multiple]):not([ngNoCva])[ngModel]", inputs: ["compareWith"] }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: NgbPagination, selector: "ngb-pagination", inputs: ["disabled", "boundaryLinks", "directionLinks", "ellipses", "rotate", "collectionSize", "maxSize", "page", "pageSize", "size"], outputs: ["pageChange"] }], changeDetection: i0.ChangeDetectionStrategy.Eager });
|
|
54
68
|
}
|
|
55
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
69
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.7", ngImport: i0, type: YsPagination, decorators: [{
|
|
56
70
|
type: Component,
|
|
57
|
-
args: [{ selector: 'ys-pagination', imports: [
|
|
58
|
-
FormsModule,
|
|
59
|
-
NgbPagination
|
|
60
|
-
], template: "<div class=\"ys-pagination d-flex flex-wrap justify-content-center justify-content-sm-between align-items-center gap-2\">\n\n <!-- \u0635\u0641\u062D\u0647\u200C\u0628\u0646\u062F\u06CC -->\n <ngb-pagination [collectionSize]=\"collectionSize()\" [page]=\"page()\" [pageSize]=\"pageSize()\" [maxSize]=\"maxSize()\"\n [rotate]=\"rotate()\" [ellipses]=\"ellipses()\" [boundaryLinks]=\"boundaryLinks()\"\n (pageChange)=\"changePage($event)\" />\n\n <!-- \u0627\u0646\u062A\u062E\u0627\u0628 \u062A\u0639\u062F\u0627\u062F \u062F\u0631 \u0647\u0631 \u0635\u0641\u062D\u0647 -->\n @if(pageSizeSelection()){\n <select class=\"pagination-select form-select form-select-sm w-auto me-auto\" [ngModel]=\"pageSize()\"\n (ngModelChange)=\"changePageSize($event)\" id=\"pagination\">\n @for (rows of rowsPerPage(); track rows) {\n <option [value]=\"rows\">{{ rows }}</option>\n }\n </select>\n }\n\n <!-- \u06AF\u0632\u0627\u0631\u0634 -->\n @if(pageReport()){\n <small class=\"pagination-report text-muted ms-auto\">\n {{ pageReportText() }}\n </small>\n }\n\n</div>" }]
|
|
71
|
+
args: [{ selector: 'ys-pagination', imports: [FormsModule, NgbPagination], changeDetection: ChangeDetectionStrategy.Eager, template: "<div class=\"ys-pagination d-flex flex-wrap justify-content-center justify-content-sm-between align-items-center gap-2\">\n\n <!-- \u0635\u0641\u062D\u0647\u200C\u0628\u0646\u062F\u06CC -->\n <ngb-pagination [collectionSize]=\"collectionSize()\" [page]=\"page()\" [pageSize]=\"pageSize()\" [maxSize]=\"maxSize()\"\n [rotate]=\"rotate()\" [ellipses]=\"ellipses()\" [boundaryLinks]=\"boundaryLinks()\"\n (pageChange)=\"changePage($event)\" />\n\n <!-- \u0627\u0646\u062A\u062E\u0627\u0628 \u062A\u0639\u062F\u0627\u062F \u062F\u0631 \u0647\u0631 \u0635\u0641\u062D\u0647 -->\n @if(pageSizeSelection()){\n <select class=\"pagination-select form-select form-select-sm w-auto me-auto\" [ngModel]=\"pageSize()\"\n (ngModelChange)=\"changePageSize($event)\" id=\"pagination\">\n @for (rows of rowsPerPage(); track rows) {\n <option [value]=\"rows\">{{ rows }}</option>\n }\n </select>\n }\n\n <!-- \u06AF\u0632\u0627\u0631\u0634 -->\n @if(pageReport()){\n <small class=\"pagination-report text-muted ms-auto\">\n {{ pageReportText() }}\n </small>\n }\n\n</div>" }]
|
|
61
72
|
}], ctorParameters: () => [], propDecorators: { rowsPerPage: [{ type: i0.Input, args: [{ isSignal: true, alias: "rowsPerPage", required: false }] }], pageReport: [{ type: i0.Input, args: [{ isSignal: true, alias: "pageReport", required: false }] }], pageReportTemplate: [{ type: i0.Input, args: [{ isSignal: true, alias: "pageReportTemplate", required: false }] }], ellipses: [{ type: i0.Input, args: [{ isSignal: true, alias: "ellipses", required: false }] }], boundaryLinks: [{ type: i0.Input, args: [{ isSignal: true, alias: "boundaryLinks", required: false }] }], maxSize: [{ type: i0.Input, args: [{ isSignal: true, alias: "maxSize", required: false }] }], rotate: [{ type: i0.Input, args: [{ isSignal: true, alias: "rotate", required: false }] }], page: [{ type: i0.Input, args: [{ isSignal: true, alias: "page", required: false }] }, { type: i0.Output, args: ["pageChange"] }], pageSizeSelection: [{ type: i0.Input, args: [{ isSignal: true, alias: "pageSizeSelection", required: false }] }], pageSize: [{ type: i0.Input, args: [{ isSignal: true, alias: "pageSize", required: false }] }, { type: i0.Output, args: ["pageSizeChange"] }], collectionSize: [{ type: i0.Input, args: [{ isSignal: true, alias: "collectionSize", required: false }] }], pageChanged: [{ type: i0.Output, args: ["pageChanged"] }] } });
|
|
62
73
|
|
|
63
74
|
/*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"yoozsoft-yoozsoft-ng-pagination.mjs","sources":["../../../../projects/yoozsoft/yoozsoft-ng/pagination/src/ys-pagination/ys-pagination.ts","../../../../projects/yoozsoft/yoozsoft-ng/pagination/src/ys-pagination/ys-pagination.html","../../../../projects/yoozsoft/yoozsoft-ng/pagination/public-api.ts","../../../../projects/yoozsoft/yoozsoft-ng/pagination/yoozsoft-yoozsoft-ng-pagination.ts"],"sourcesContent":["import {
|
|
1
|
+
{"version":3,"file":"yoozsoft-yoozsoft-ng-pagination.mjs","sources":["../../../../projects/yoozsoft/yoozsoft-ng/pagination/src/ys-pagination/ys-pagination.ts","../../../../projects/yoozsoft/yoozsoft-ng/pagination/src/ys-pagination/ys-pagination.html","../../../../projects/yoozsoft/yoozsoft-ng/pagination/public-api.ts","../../../../projects/yoozsoft/yoozsoft-ng/pagination/yoozsoft-yoozsoft-ng-pagination.ts"],"sourcesContent":["import {\r\n Component,\r\n computed,\r\n effect,\r\n input,\r\n model,\r\n output,\r\n ChangeDetectionStrategy,\r\n} from '@angular/core';\r\nimport { FormsModule } from '@angular/forms';\r\nimport { NgbPagination } from '@ng-bootstrap/ng-bootstrap';\r\n\r\n@Component({\r\n selector: 'ys-pagination',\r\n imports: [FormsModule, NgbPagination],\r\n templateUrl: './ys-pagination.html',\r\n changeDetection: ChangeDetectionStrategy.Eager,\r\n styleUrl: './ys-pagination.scss',\r\n})\r\nexport class YsPagination {\r\n rowsPerPage = input<number[]>([10, 25, 50]);\r\n pageReport = input(true);\r\n pageReportTemplate = input<string>('Showing {first} to {last} of {totalRecords} items');\r\n ellipses = input<boolean>(false);\r\n boundaryLinks = input<boolean>(true);\r\n maxSize = input<number>(5);\r\n rotate = input<boolean>(true);\r\n\r\n page = model<number>(1);\r\n pageSizeSelection = input<boolean>(true);\r\n pageSize = model<number>(10);\r\n collectionSize = input<number>(0);\r\n\r\n pageChanged = output<{ page: number; pageSize: number }>();\r\n\r\n readonly firstIndex = computed<number>(() => (this.page() - 1) * this.pageSize());\r\n\r\n readonly lastIndex = computed<number>(() =>\r\n Math.min(this.firstIndex() + this.pageSize(), this.collectionSize()),\r\n );\r\n\r\n readonly totalPages = computed<number>(\r\n () => Math.ceil(this.collectionSize() / this.pageSize()) || 1,\r\n );\r\n\r\n readonly firstRecord = computed(() => (this.collectionSize() === 0 ? 0 : this.firstIndex() + 1));\r\n\r\n readonly pageReportText = computed(() =>\r\n this.pageReportTemplate()\r\n .replace('{first}', this.firstRecord() + '')\r\n .replace('{last}', this.lastIndex() + '')\r\n .replace('{totalRecords}', this.collectionSize() + ''),\r\n );\r\n\r\n constructor() {\r\n effect(() => {\r\n if (!this.rowsPerPage().includes(this.pageSize())) {\r\n this.pageSize.set(this.rowsPerPage()[0] ?? 10);\r\n }\r\n });\r\n }\r\n\r\n changePage(page: number): void {\r\n this.page.set(page);\r\n\r\n this.pageChanged.emit({\r\n page,\r\n pageSize: this.pageSize(),\r\n });\r\n }\r\n\r\n changePageSize(size: number): void {\r\n this.pageSize.set(+size);\r\n this.page.set(1);\r\n\r\n this.pageChanged.emit({\r\n page: 1,\r\n pageSize: size,\r\n });\r\n }\r\n}\r\n","<div class=\"ys-pagination d-flex flex-wrap justify-content-center justify-content-sm-between align-items-center gap-2\">\n\n <!-- صفحهبندی -->\n <ngb-pagination [collectionSize]=\"collectionSize()\" [page]=\"page()\" [pageSize]=\"pageSize()\" [maxSize]=\"maxSize()\"\n [rotate]=\"rotate()\" [ellipses]=\"ellipses()\" [boundaryLinks]=\"boundaryLinks()\"\n (pageChange)=\"changePage($event)\" />\n\n <!-- انتخاب تعداد در هر صفحه -->\n @if(pageSizeSelection()){\n <select class=\"pagination-select form-select form-select-sm w-auto me-auto\" [ngModel]=\"pageSize()\"\n (ngModelChange)=\"changePageSize($event)\" id=\"pagination\">\n @for (rows of rowsPerPage(); track rows) {\n <option [value]=\"rows\">{{ rows }}</option>\n }\n </select>\n }\n\n <!-- گزارش -->\n @if(pageReport()){\n <small class=\"pagination-report text-muted ms-auto\">\n {{ pageReportText() }}\n </small>\n }\n\n</div>","/*\r\n * Public API Surface of ys-pagination\r\n */\r\n\r\nexport * from './src/ys-pagination/ys-pagination';\r\n\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
|