import { Component, Input } from '@angular/core';
import * as i0 from "@angular/core";
import * as i1 from "@angular/common";
import * as i2 from "../../../../../../../common/is-visible-pipe/is-visible.pipe";
import * as i3 from "../pipes/has-child.pipe";
import * as i4 from "../../../../../../../common/menu-item-actions/menu-item-actions.directive";
import * as i5 from "../../../../../../../common/url-checker/url-checker.pipe";
export class HephaestusMenuExpandableItemComponent {
    constructor() { }
    ngOnInit() { }
    static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.5", ngImport: i0, type: HephaestusMenuExpandableItemComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
    static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.5", type: HephaestusMenuExpandableItemComponent, selector: "smz-ui-hephaestus-menu-expandable-item", inputs: { item: "item", index: "index", currentUrl: "currentUrl" }, ngImport: i0, template: `
      <li [ngClass]="{ 'active-menuitem': item.expanded }">

          <a [tabindex]="index" (click)="item.expanded = !item.expanded;">
              <i class="layout-menuitem-icon" [ngClass]="item.icon"></i>
              <span class="layout-menuitem-text">{{ item.label }}</span>
              <i class="pi pi-fw pi-chevron-down layout-submenu-toggler"></i>
              <span class="p-ink"></span>
          </a>

          <ng-container *ngFor="let subItem of item.items | isVisible; let subItemIndex = index;">

            <ul role="menu" style="z-index: 100;" [ngStyle]="{ height: item.expanded ? 'unset' : 0 }">
              <ng-container [ngSwitch]="subItem | hasChild">

                  <ng-container *ngSwitchCase="false">
                      <smz-ui-hephaestus-menu-item [item]="subItem" [parent]="item" [index]="subItemIndex" [currentUrl]="currentUrl"></smz-ui-hephaestus-menu-item>
                  </ng-container>

                  <ng-container *ngSwitchCase="true">
                      <smz-ui-hephaestus-menu-expandable-item [item]="subItem" [index]="subItemIndex" [currentUrl]="currentUrl"></smz-ui-hephaestus-menu-expandable-item>
                  </ng-container>

              </ng-container>
            </ul>

          </ng-container>

      </li>
  `, isInline: true, dependencies: [{ kind: "directive", type: i0.forwardRef(() => i1.NgClass), selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i0.forwardRef(() => i1.NgForOf), selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i0.forwardRef(() => i1.NgStyle), selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "directive", type: i0.forwardRef(() => i1.NgSwitch), selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { kind: "directive", type: i0.forwardRef(() => i1.NgSwitchCase), selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }, { kind: "component", type: i0.forwardRef(() => HephaestusMenuItemComponent), selector: "smz-ui-hephaestus-menu-item", inputs: ["item", "parent", "index", "currentUrl"] }, { kind: "component", type: i0.forwardRef(() => HephaestusMenuExpandableItemComponent), selector: "smz-ui-hephaestus-menu-expandable-item", inputs: ["item", "index", "currentUrl"] }, { kind: "pipe", type: i0.forwardRef(() => i2.IsVisiblePipe), name: "isVisible" }, { kind: "pipe", type: i0.forwardRef(() => i3.HasChildPipe), name: "hasChild" }] }); }
}
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.5", ngImport: i0, type: HephaestusMenuExpandableItemComponent, decorators: [{
            type: Component,
            args: [{
                    selector: 'smz-ui-hephaestus-menu-expandable-item',
                    template: `
      <li [ngClass]="{ 'active-menuitem': item.expanded }">

          <a [tabindex]="index" (click)="item.expanded = !item.expanded;">
              <i class="layout-menuitem-icon" [ngClass]="item.icon"></i>
              <span class="layout-menuitem-text">{{ item.label }}</span>
              <i class="pi pi-fw pi-chevron-down layout-submenu-toggler"></i>
              <span class="p-ink"></span>
          </a>

          <ng-container *ngFor="let subItem of item.items | isVisible; let subItemIndex = index;">

            <ul role="menu" style="z-index: 100;" [ngStyle]="{ height: item.expanded ? 'unset' : 0 }">
              <ng-container [ngSwitch]="subItem | hasChild">

                  <ng-container *ngSwitchCase="false">
                      <smz-ui-hephaestus-menu-item [item]="subItem" [parent]="item" [index]="subItemIndex" [currentUrl]="currentUrl"></smz-ui-hephaestus-menu-item>
                  </ng-container>

                  <ng-container *ngSwitchCase="true">
                      <smz-ui-hephaestus-menu-expandable-item [item]="subItem" [index]="subItemIndex" [currentUrl]="currentUrl"></smz-ui-hephaestus-menu-expandable-item>
                  </ng-container>

              </ng-container>
            </ul>

          </ng-container>

      </li>
  `
                }]
        }], ctorParameters: () => [], propDecorators: { item: [{
                type: Input
            }], index: [{
                type: Input
            }], currentUrl: [{
                type: Input
            }] } });
export class HephaestusMenuItemComponent {
    constructor() { }
    ngOnInit() { }
    static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.5", ngImport: i0, type: HephaestusMenuItemComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
    static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.5", type: HephaestusMenuItemComponent, selector: "smz-ui-hephaestus-menu-item", inputs: { item: "item", parent: "parent", index: "index", currentUrl: "currentUrl" }, ngImport: i0, template: `
      <li [ngClass]="{ 'active-menuitem': currentUrl | urlChecker : item.routerLink }">
        <a class="p-ripple" [ngClass]="{ 'active-route': currentUrl | urlChecker : item.routerLink, 'opacity-50 hover:bg-inherit select-none focus:shadow-none cursor-default': item.disabled }" menuItemAction [item]="item" [parent]="parent" [breadcrumbs]="true" [tabindex]="index">
            <i class="layout-menuitem-icon" [ngClass]="item.icon"></i>
            <span class="layout-menuitem-text">{{ item.label }}</span>
            <span class="p-ink"></span>
        </a>

        <ng-container *ngFor="let subItem of item.items | isVisible">
          <smz-ui-hephaestus-menu-node [item]="subItem" [currentUrl]="currentUrl"></smz-ui-hephaestus-menu-node>
        </ng-container>

      </li>
  `, isInline: true, dependencies: [{ kind: "directive", type: i0.forwardRef(() => i1.NgClass), selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i0.forwardRef(() => i1.NgForOf), selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i0.forwardRef(() => i4.MenuItemActionsDirective), selector: "[menuItemAction]", inputs: ["item", "parent", "breadcrumbs"], outputs: ["collapse"] }, { kind: "component", type: i0.forwardRef(() => HephaestusMenuNodeComponent), selector: "smz-ui-hephaestus-menu-node", inputs: ["item", "index", "currentUrl"] }, { kind: "pipe", type: i0.forwardRef(() => i2.IsVisiblePipe), name: "isVisible" }, { kind: "pipe", type: i0.forwardRef(() => i5.UrlCheckerPipe), name: "urlChecker" }] }); }
}
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.5", ngImport: i0, type: HephaestusMenuItemComponent, decorators: [{
            type: Component,
            args: [{
                    selector: 'smz-ui-hephaestus-menu-item',
                    template: `
      <li [ngClass]="{ 'active-menuitem': currentUrl | urlChecker : item.routerLink }">
        <a class="p-ripple" [ngClass]="{ 'active-route': currentUrl | urlChecker : item.routerLink, 'opacity-50 hover:bg-inherit select-none focus:shadow-none cursor-default': item.disabled }" menuItemAction [item]="item" [parent]="parent" [breadcrumbs]="true" [tabindex]="index">
            <i class="layout-menuitem-icon" [ngClass]="item.icon"></i>
            <span class="layout-menuitem-text">{{ item.label }}</span>
            <span class="p-ink"></span>
        </a>

        <ng-container *ngFor="let subItem of item.items | isVisible">
          <smz-ui-hephaestus-menu-node [item]="subItem" [currentUrl]="currentUrl"></smz-ui-hephaestus-menu-node>
        </ng-container>

      </li>
  `
                }]
        }], ctorParameters: () => [], propDecorators: { item: [{
                type: Input
            }], parent: [{
                type: Input
            }], index: [{
                type: Input
            }], currentUrl: [{
                type: Input
            }] } });
export class HephaestusMenuNodeComponent {
    constructor() { }
    ngOnInit() { }
    static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.5", ngImport: i0, type: HephaestusMenuNodeComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
    static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.5", type: HephaestusMenuNodeComponent, selector: "smz-ui-hephaestus-menu-node", inputs: { item: "item", index: "index", currentUrl: "currentUrl" }, ngImport: i0, template: `
      <ul role="menu" style="z-index: 100;">

          <ng-container *ngFor="let subItem of item.items | isVisible; let subItemIndex = index;">

              <ng-container [ngSwitch]="subItem | hasChild">

                  <ng-container *ngSwitchCase="false">
                      <smz-ui-hephaestus-menu-item [item]="subItem" [parent]="item" [index]="subItemIndex" [currentUrl]="currentUrl"></smz-ui-hephaestus-menu-item>
                  </ng-container>

                  <ng-container *ngSwitchCase="true">
                      <smz-ui-hephaestus-menu-expandable-item [item]="subItem" [index]="subItemIndex" [currentUrl]="currentUrl"></smz-ui-hephaestus-menu-expandable-item>
                  </ng-container>

              </ng-container>

          </ng-container>

      </ul>
  `, isInline: true, dependencies: [{ kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { kind: "directive", type: i1.NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }, { kind: "component", type: HephaestusMenuItemComponent, selector: "smz-ui-hephaestus-menu-item", inputs: ["item", "parent", "index", "currentUrl"] }, { kind: "component", type: HephaestusMenuExpandableItemComponent, selector: "smz-ui-hephaestus-menu-expandable-item", inputs: ["item", "index", "currentUrl"] }, { kind: "pipe", type: i2.IsVisiblePipe, name: "isVisible" }, { kind: "pipe", type: i3.HasChildPipe, name: "hasChild" }] }); }
}
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.5", ngImport: i0, type: HephaestusMenuNodeComponent, decorators: [{
            type: Component,
            args: [{
                    selector: 'smz-ui-hephaestus-menu-node',
                    template: `
      <ul role="menu" style="z-index: 100;">

          <ng-container *ngFor="let subItem of item.items | isVisible; let subItemIndex = index;">

              <ng-container [ngSwitch]="subItem | hasChild">

                  <ng-container *ngSwitchCase="false">
                      <smz-ui-hephaestus-menu-item [item]="subItem" [parent]="item" [index]="subItemIndex" [currentUrl]="currentUrl"></smz-ui-hephaestus-menu-item>
                  </ng-container>

                  <ng-container *ngSwitchCase="true">
                      <smz-ui-hephaestus-menu-expandable-item [item]="subItem" [index]="subItemIndex" [currentUrl]="currentUrl"></smz-ui-hephaestus-menu-expandable-item>
                  </ng-container>

              </ng-container>

          </ng-container>

      </ul>
  `
                }]
        }], ctorParameters: () => [], propDecorators: { item: [{
                type: Input
            }], index: [{
                type: Input
            }], currentUrl: [{
                type: Input
            }] } });
export class HephaestusMenuSlimNodeComponent {
    constructor() { }
    ngOnInit() { }
    static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.5", ngImport: i0, type: HephaestusMenuSlimNodeComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
    static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.5", type: HephaestusMenuSlimNodeComponent, selector: "[smz-ui-hephaestus-menu-slim-node]", inputs: { item: "item", parent: "parent", index: "index", currentUrl: "currentUrl" }, ngImport: i0, template: `
    <ng-container *ngFor="let subItem of item.items | isVisible; let last = last; let subItemIndex = index;">

        <ng-container [ngSwitch]="subItem | hasChild">

            <ng-container *ngSwitchCase="false">
                <li [ngClass]="{ 'active-menuitem': currentUrl | urlChecker : subItem.routerLink }">
                    <a class="p-ripple" [tabindex]="subItemIndex" menuItemAction [item]="subItem" [parent]="parent" [breadcrumbs]="true">
                        <i *ngIf="subItem.icon != null" class="layout-menuitem-icon" [ngClass]="subItem.icon"></i>
                        <i *ngIf="subItem.icon == null" class="layout-menuitem-icon pi pi-fw"></i>
                        <span class="layout-menuitem-text">{{ subItem.label }}</span>
                        <span class="p-ink"></span>
                    </a>
                </li>
            </ng-container>

            <ng-container *ngSwitchCase="true">
                <smz-ui-hephaestus-menu-expandable-item [item]="subItem" [index]="subItemIndex" [currentUrl]="currentUrl"></smz-ui-hephaestus-menu-expandable-item>
            </ng-container>

        </ng-container>

    </ng-container>
  `, isInline: true, dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { kind: "directive", type: i1.NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }, { kind: "directive", type: i4.MenuItemActionsDirective, selector: "[menuItemAction]", inputs: ["item", "parent", "breadcrumbs"], outputs: ["collapse"] }, { kind: "component", type: HephaestusMenuExpandableItemComponent, selector: "smz-ui-hephaestus-menu-expandable-item", inputs: ["item", "index", "currentUrl"] }, { kind: "pipe", type: i2.IsVisiblePipe, name: "isVisible" }, { kind: "pipe", type: i5.UrlCheckerPipe, name: "urlChecker" }, { kind: "pipe", type: i3.HasChildPipe, name: "hasChild" }] }); }
}
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.5", ngImport: i0, type: HephaestusMenuSlimNodeComponent, decorators: [{
            type: Component,
            args: [{
                    selector: '[smz-ui-hephaestus-menu-slim-node]',
                    template: `
    <ng-container *ngFor="let subItem of item.items | isVisible; let last = last; let subItemIndex = index;">

        <ng-container [ngSwitch]="subItem | hasChild">

            <ng-container *ngSwitchCase="false">
                <li [ngClass]="{ 'active-menuitem': currentUrl | urlChecker : subItem.routerLink }">
                    <a class="p-ripple" [tabindex]="subItemIndex" menuItemAction [item]="subItem" [parent]="parent" [breadcrumbs]="true">
                        <i *ngIf="subItem.icon != null" class="layout-menuitem-icon" [ngClass]="subItem.icon"></i>
                        <i *ngIf="subItem.icon == null" class="layout-menuitem-icon pi pi-fw"></i>
                        <span class="layout-menuitem-text">{{ subItem.label }}</span>
                        <span class="p-ink"></span>
                    </a>
                </li>
            </ng-container>

            <ng-container *ngSwitchCase="true">
                <smz-ui-hephaestus-menu-expandable-item [item]="subItem" [index]="subItemIndex" [currentUrl]="currentUrl"></smz-ui-hephaestus-menu-expandable-item>
            </ng-container>

        </ng-container>

    </ng-container>
  `,
                }]
        }], ctorParameters: () => [], propDecorators: { item: [{
                type: Input
            }], parent: [{
                type: Input
            }], index: [{
                type: Input
            }], currentUrl: [{
                type: Input
            }] } });
//# sourceMappingURL=data:application/json;base64, 