@smartsoft001-mobilems/angular 2.15.0 → 2.16.0

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.
@@ -8,8 +8,8 @@ import * as moment from 'moment';
8
8
  import { lastValueFrom, combineLatest, firstValueFrom, Subject, of, throwError } from 'rxjs';
9
9
  import { map, filter, catchError } from 'rxjs/operators';
10
10
  import * as i1 from '@angular/common';
11
- import { isPlatformBrowser, CommonModule, DOCUMENT } from '@angular/common';
12
- import { Router, ActivatedRoute, NavigationEnd, RouterOutlet, RouterModule } from '@angular/router';
11
+ import { isPlatformBrowser, CommonModule, DOCUMENT, NgClass, NgTemplateOutlet } from '@angular/common';
12
+ import { Router, ActivatedRoute, NavigationEnd, RouterOutlet, RouterLink, RouterLinkActive, RouterModule } from '@angular/router';
13
13
  import { TranslateService } from '@ngx-translate/core';
14
14
  import { CrudService, CrudFacade } from '@smartsoft001/crud-shell-angular';
15
15
  import * as _ from 'lodash';
@@ -1612,6 +1612,71 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.0", ngImpor
1612
1612
  args: [{ selector: 'smart-mobilems-header', standalone: true, imports: [], template: `` }]
1613
1613
  }] });
1614
1614
 
1615
+ class MenuComponent {
1616
+ constructor() {
1617
+ this.configsFacade = inject(ConfigsFacade);
1618
+ this.router = inject(Router);
1619
+ this.platformId = inject(PLATFORM_ID);
1620
+ this.menuItems = input([], ...(ngDevMode ? [{ debugName: "menuItems" }] : []));
1621
+ this.searchEnabled = input(false, ...(ngDevMode ? [{ debugName: "searchEnabled" }] : []));
1622
+ this.config = computed(() => this.configsFacade.data, ...(ngDevMode ? [{ debugName: "config" }] : []));
1623
+ this.menuConfig = computed(() => {
1624
+ const config = this.config();
1625
+ return config?.theme ?? {};
1626
+ }, ...(ngDevMode ? [{ debugName: "menuConfig" }] : []));
1627
+ this.mobileBreakpoint = computed(() => {
1628
+ return this.menuConfig()?.menu?.mobileBreakpoint ?? 960;
1629
+ }, ...(ngDevMode ? [{ debugName: "mobileBreakpoint" }] : []));
1630
+ this.isMobileMenu = computed(() => {
1631
+ if (!isPlatformBrowser(this.platformId)) {
1632
+ return false;
1633
+ }
1634
+ return (typeof window !== 'undefined' &&
1635
+ window.innerWidth <= this.mobileBreakpoint());
1636
+ }, ...(ngDevMode ? [{ debugName: "isMobileMenu" }] : []));
1637
+ this._menuOpenState = false;
1638
+ }
1639
+ toggleMenu() {
1640
+ this._menuOpenState = !this._menuOpenState;
1641
+ }
1642
+ closeMenu() {
1643
+ this._menuOpenState = false;
1644
+ }
1645
+ isOpened() {
1646
+ return this._menuOpenState;
1647
+ }
1648
+ isRouteActive(route) {
1649
+ return this.router.isActive(route, {
1650
+ paths: 'exact',
1651
+ queryParams: 'exact',
1652
+ fragment: 'ignored',
1653
+ matrixParams: 'ignored',
1654
+ });
1655
+ }
1656
+ getMenuItemTitle(item) {
1657
+ if (item.title) {
1658
+ return item.title;
1659
+ }
1660
+ return this.isRouteActive(item.route)
1661
+ ? `${item.label} (active)`
1662
+ : item.label;
1663
+ }
1664
+ getMenuItemAriaLabel(item) {
1665
+ if (item.ariaLabel) {
1666
+ return item.ariaLabel;
1667
+ }
1668
+ return this.isRouteActive(item.route)
1669
+ ? `${item.label} - Current page`
1670
+ : item.label;
1671
+ }
1672
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.1.0", ngImport: i0, type: MenuComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
1673
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.1.0", type: MenuComponent, isStandalone: true, selector: "smart-mobilems-menu", inputs: { menuItems: { classPropertyName: "menuItems", publicName: "menuItems", isSignal: true, isRequired: false, transformFunction: null }, searchEnabled: { classPropertyName: "searchEnabled", publicName: "searchEnabled", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0, template: "@if (!searchEnabled()) {\n <h2 class=\"smart-sr-only\">Main Menu</h2>\n\n @if (isMobileMenu()) {\n <div\n class=\"smart-w-full smart-flex smart-flex-row smart-justify-end smart-items-stretch smart-py-[1.2rem]\"\n [ngClass]=\"isOpened() ? '' : ''\"\n role=\"navigation\"\n attr.aria-label=\"Main Menu\"\n >\n <button\n class=\"smart-h-[3.6rem] smart-relative smart-bg-transparent smart-border-0 smart-left-0 smart-flex smart-flex-row smart-items-center smart-text-[1.8rem] smart-font-bold smart-cursor-pointer\"\n (click)=\"toggleMenu()\"\n attr.aria-expanded=\"{{ isOpened() }}\"\n attr.aria-label=\"{{ isOpened() ? 'Close menu' : 'Open menu' }}\"\n >\n @if (!isOpened()) {\n <span\n class=\"smart-text-[3rem] smart-text-black smart-mr-[0.6rem] smart-material-icons\"\n >menu</span\n >\n } @else {\n <span\n class=\"smart-text-[3rem] smart-text-black smart-mr-[0.6rem] smart-material-icons\"\n >close</span\n >\n }\n </button>\n </div>\n }\n\n @if (!isMobileMenu()) {\n <div\n class=\"smart-w-full smart-flex smart-flex-row smart-justify-end smart-h-full smart-p-0\"\n role=\"navigation\"\n attr.aria-label=\"Main Menu\"\n >\n <div role=\"menubar\">\n <ng-container *ngTemplateOutlet=\"menuTemplate\"></ng-container>\n </div>\n </div>\n }\n\n @if (isMobileMenu() && isOpened()) {\n <div\n class=\"smart-w-full smart-flex smart-flex-row smart-justify-center smart-h-full smart-p-0 smart-border smart-border-[#f3f3f3] smart-bg-[#fefefe] smart-mb-[2.4rem] smart-shadow-[0_0.6rem_1.2rem_#efefef] smart-p-[1.2rem]\"\n >\n <div role=\"navigation\" aria-label=\"Main\">\n <ng-container *ngTemplateOutlet=\"menuTemplate\"></ng-container>\n </div>\n </div>\n }\n}\n\n<ng-template #menuTemplate>\n <ul\n id=\"main-menu\"\n role=\"menu\"\n class=\"smart-h-full smart-w-full smart-flex smart-flex-row smart-justify-end smart-items-stretch smart-flex-nowrap smart-list-none smart-p-0 smart-m-0 smart-gap-x-[0.3rem]\"\n [ngClass]=\"\n isMobileMenu()\n ? 'smart-flex-wrap smart-justify-center smart-p-[1.2rem] smart-m-0'\n : ''\n \"\n >\n @for (item of menuItems(); track item.route) {\n <li\n class=\"smart-inline-flex smart-relative smart-w-auto smart-m-0\"\n [ngClass]=\"isMobileMenu() ? 'smart-w-full smart-max-w-full' : ''\"\n >\n <a\n class=\"smart-flex smart-items-center smart-flex-nowrap smart-text-black smart-transition-[border] smart-ease-in-out smart-duration-500 smart-border-b-[0.6rem] smart-border-b-transparent smart-cursor-pointer smart-justify-center smart-h-full smart-w-full smart-py-[1.2rem] smart-px-[1.8rem] smart-text-[1.6rem] smart-font-medium smart-whitespace-nowrap smart-m-0 smart-no-underline hover:smart-text-black hover:smart-bg-transparent hover:smart-border-b-[0.6rem] hover:smart-border-b-black\"\n role=\"menuitem\"\n [routerLink]=\"[item.route]\"\n routerLinkActive=\"smart-cursor-default smart-text-black smart-bg-transparent smart-border-b-[0.6rem] smart-border-b-black\"\n (click)=\"closeMenu()\"\n [attr.title]=\"getMenuItemTitle(item)\"\n [attr.aria-label]=\"getMenuItemAriaLabel(item)\"\n >\n @if (item.icon) {\n <span\n class=\"smart-text-[2.2rem] smart-mr-[0.4rem] smart-material-icons\"\n >{{ item.icon }}</span\n >\n }\n <span class=\"smart-inline-block\">{{ item.label }}</span>\n </a>\n </li>\n }\n </ul>\n</ng-template>\n", dependencies: [{ kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { 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"] }] }); }
1674
+ }
1675
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.0", ngImport: i0, type: MenuComponent, decorators: [{
1676
+ type: Component,
1677
+ args: [{ selector: 'smart-mobilems-menu', standalone: true, imports: [NgClass, NgTemplateOutlet, RouterLink, RouterLinkActive], template: "@if (!searchEnabled()) {\n <h2 class=\"smart-sr-only\">Main Menu</h2>\n\n @if (isMobileMenu()) {\n <div\n class=\"smart-w-full smart-flex smart-flex-row smart-justify-end smart-items-stretch smart-py-[1.2rem]\"\n [ngClass]=\"isOpened() ? '' : ''\"\n role=\"navigation\"\n attr.aria-label=\"Main Menu\"\n >\n <button\n class=\"smart-h-[3.6rem] smart-relative smart-bg-transparent smart-border-0 smart-left-0 smart-flex smart-flex-row smart-items-center smart-text-[1.8rem] smart-font-bold smart-cursor-pointer\"\n (click)=\"toggleMenu()\"\n attr.aria-expanded=\"{{ isOpened() }}\"\n attr.aria-label=\"{{ isOpened() ? 'Close menu' : 'Open menu' }}\"\n >\n @if (!isOpened()) {\n <span\n class=\"smart-text-[3rem] smart-text-black smart-mr-[0.6rem] smart-material-icons\"\n >menu</span\n >\n } @else {\n <span\n class=\"smart-text-[3rem] smart-text-black smart-mr-[0.6rem] smart-material-icons\"\n >close</span\n >\n }\n </button>\n </div>\n }\n\n @if (!isMobileMenu()) {\n <div\n class=\"smart-w-full smart-flex smart-flex-row smart-justify-end smart-h-full smart-p-0\"\n role=\"navigation\"\n attr.aria-label=\"Main Menu\"\n >\n <div role=\"menubar\">\n <ng-container *ngTemplateOutlet=\"menuTemplate\"></ng-container>\n </div>\n </div>\n }\n\n @if (isMobileMenu() && isOpened()) {\n <div\n class=\"smart-w-full smart-flex smart-flex-row smart-justify-center smart-h-full smart-p-0 smart-border smart-border-[#f3f3f3] smart-bg-[#fefefe] smart-mb-[2.4rem] smart-shadow-[0_0.6rem_1.2rem_#efefef] smart-p-[1.2rem]\"\n >\n <div role=\"navigation\" aria-label=\"Main\">\n <ng-container *ngTemplateOutlet=\"menuTemplate\"></ng-container>\n </div>\n </div>\n }\n}\n\n<ng-template #menuTemplate>\n <ul\n id=\"main-menu\"\n role=\"menu\"\n class=\"smart-h-full smart-w-full smart-flex smart-flex-row smart-justify-end smart-items-stretch smart-flex-nowrap smart-list-none smart-p-0 smart-m-0 smart-gap-x-[0.3rem]\"\n [ngClass]=\"\n isMobileMenu()\n ? 'smart-flex-wrap smart-justify-center smart-p-[1.2rem] smart-m-0'\n : ''\n \"\n >\n @for (item of menuItems(); track item.route) {\n <li\n class=\"smart-inline-flex smart-relative smart-w-auto smart-m-0\"\n [ngClass]=\"isMobileMenu() ? 'smart-w-full smart-max-w-full' : ''\"\n >\n <a\n class=\"smart-flex smart-items-center smart-flex-nowrap smart-text-black smart-transition-[border] smart-ease-in-out smart-duration-500 smart-border-b-[0.6rem] smart-border-b-transparent smart-cursor-pointer smart-justify-center smart-h-full smart-w-full smart-py-[1.2rem] smart-px-[1.8rem] smart-text-[1.6rem] smart-font-medium smart-whitespace-nowrap smart-m-0 smart-no-underline hover:smart-text-black hover:smart-bg-transparent hover:smart-border-b-[0.6rem] hover:smart-border-b-black\"\n role=\"menuitem\"\n [routerLink]=\"[item.route]\"\n routerLinkActive=\"smart-cursor-default smart-text-black smart-bg-transparent smart-border-b-[0.6rem] smart-border-b-black\"\n (click)=\"closeMenu()\"\n [attr.title]=\"getMenuItemTitle(item)\"\n [attr.aria-label]=\"getMenuItemAriaLabel(item)\"\n >\n @if (item.icon) {\n <span\n class=\"smart-text-[2.2rem] smart-mr-[0.4rem] smart-material-icons\"\n >{{ item.icon }}</span\n >\n }\n <span class=\"smart-inline-block\">{{ item.label }}</span>\n </a>\n </li>\n }\n </ul>\n</ng-template>\n" }]
1678
+ }] });
1679
+
1615
1680
  const COMPONENTS = [AppComponent];
1616
1681
 
1617
1682
  /**
@@ -1861,5 +1926,5 @@ const unauthorizedGuard = () => {
1861
1926
  * Generated bundle index. Do not edit.
1862
1927
  */
1863
1928
 
1864
- export { AppComponent, AuthStorageService, COMPONENTS, ConfigsFacade, ConfigsService, ContrastService, CrudBaseService, DIRECTIVES, DictionaryService, FileUrlService, FiltersBaseComponent, FiltersContext, FooterComponent, GameType, GlobalService, HeaderComponent, HoverDirective, ImageBox, ListMode, MetaService, ModalContainerComponent, ModalRef, ModalService, PageComponent, SERVICES, ScrollTopComponent, ScrollableDirective, SeoService, SettingsService, SharedConfig, SharedModule, StyleService, TRANSLATE_DATA_PL, TranslationService, WcagService, authenticationGuard, environment, setTranslationsAndLang, unauthorizedGuard };
1929
+ export { AppComponent, AuthStorageService, COMPONENTS, ConfigsFacade, ConfigsService, ContrastService, CrudBaseService, DIRECTIVES, DictionaryService, FileUrlService, FiltersBaseComponent, FiltersContext, FooterComponent, GameType, GlobalService, HeaderComponent, HoverDirective, ImageBox, ListMode, MenuComponent, MetaService, ModalContainerComponent, ModalRef, ModalService, PageComponent, SERVICES, ScrollTopComponent, ScrollableDirective, SeoService, SettingsService, SharedConfig, SharedModule, StyleService, TRANSLATE_DATA_PL, TranslationService, WcagService, authenticationGuard, environment, setTranslationsAndLang, unauthorizedGuard };
1865
1930
  //# sourceMappingURL=smartsoft001-mobilems-angular.mjs.map