menu-item.component.mjs 7.1 KB

12345678910111213141516171819202122232425262728293031323334353637383940
  1. import { ChangeDetectionStrategy, Component, Input } from '@angular/core';
  2. import { RouterLink } from '@angular/router';
  3. import { SizeEnum } from '../../../model/components/size.enum';
  4. import { IconComponent } from '../icon/icon.component';
  5. import { ButtonComponent } from '../button/button.component';
  6. import * as i0 from "@angular/core";
  7. export class MenuItemComponent {
  8. constructor() {
  9. this.text = '';
  10. this.link = '';
  11. this.type = 'internal';
  12. this.icon = undefined;
  13. this.iconSize = SizeEnum.BASE;
  14. this.iconAlone = false;
  15. this.iconDirection = 'horizontal';
  16. }
  17. static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.2", ngImport: i0, type: MenuItemComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
  18. static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.3.2", type: MenuItemComponent, isStandalone: true, selector: "ct-menu-item", inputs: { text: "text", link: "link", type: "type", icon: "icon", iconSize: "iconSize", iconAlone: "iconAlone", iconDirection: "iconDirection" }, ngImport: i0, template: "<a\n [routerLink]=\"(type === 'internal' && link)! || null\"\n [attr.href]=\"type === 'external' && link\"\n class=\"block rounded-md px-4 py-2 text-on-surface hover:bg-primary/25 dark:text-on-surface-dark dark:hover:bg-primary-dark/25\">\n <span\n class=\"flex items-center gap-3\"\n [class.flex-row]=\"iconDirection === 'horizontal'\"\n [class.flex-col]=\"iconDirection === 'vertical'\">\n @if (icon) {\n <ct-icon [icon]=\"icon\" variant=\"solid\" size=\"xl\" />\n }\n @if (text && !iconAlone) {\n <span>{{ text }}</span>\n }\n </span>\n</a>\n", dependencies: [{ kind: "directive", type: RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "info", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }, { kind: "component", type: IconComponent, selector: "ct-icon", inputs: ["icon", "fill", "strokeWidth", "strokeColor", "size", "variant"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
  19. }
  20. i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.2", ngImport: i0, type: MenuItemComponent, decorators: [{
  21. type: Component,
  22. args: [{ selector: 'ct-menu-item', standalone: true, imports: [RouterLink, IconComponent, ButtonComponent], changeDetection: ChangeDetectionStrategy.OnPush, template: "<a\n [routerLink]=\"(type === 'internal' && link)! || null\"\n [attr.href]=\"type === 'external' && link\"\n class=\"block rounded-md px-4 py-2 text-on-surface hover:bg-primary/25 dark:text-on-surface-dark dark:hover:bg-primary-dark/25\">\n <span\n class=\"flex items-center gap-3\"\n [class.flex-row]=\"iconDirection === 'horizontal'\"\n [class.flex-col]=\"iconDirection === 'vertical'\">\n @if (icon) {\n <ct-icon [icon]=\"icon\" variant=\"solid\" size=\"xl\" />\n }\n @if (text && !iconAlone) {\n <span>{{ text }}</span>\n }\n </span>\n</a>\n" }]
  23. }], propDecorators: { text: [{
  24. type: Input
  25. }], link: [{
  26. type: Input,
  27. args: [{ required: true }]
  28. }], type: [{
  29. type: Input,
  30. args: [{ required: true }]
  31. }], icon: [{
  32. type: Input
  33. }], iconSize: [{
  34. type: Input
  35. }], iconAlone: [{
  36. type: Input
  37. }], iconDirection: [{
  38. type: Input
  39. }] } });
  40. //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVudS1pdGVtLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NpcmNsZXRvbmUvc3JjL2xpYi9jb21wb25lbnRzL2F0b21zL21lbnUtaXRlbS9tZW51LWl0ZW0uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY2lyY2xldG9uZS9zcmMvbGliL2NvbXBvbmVudHMvYXRvbXMvbWVudS1pdGVtL21lbnUtaXRlbS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMxRSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDN0MsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLHFDQUFxQyxDQUFDO0FBQy9ELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUN2RCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sNEJBQTRCLENBQUM7O0FBUzdELE1BQU0sT0FBTyxpQkFBaUI7SUFQOUI7UUFRVyxTQUFJLEdBQUcsRUFBRSxDQUFDO1FBQ1EsU0FBSSxHQUFHLEVBQUUsQ0FBQztRQUNWLFNBQUksR0FBcUMsVUFBVSxDQUFDO1FBQ3RFLFNBQUksR0FBWSxTQUFTLENBQUM7UUFDMUIsYUFBUSxHQUF1QixRQUFRLENBQUMsSUFBSSxDQUFDO1FBQzdDLGNBQVMsR0FBRyxLQUFLLENBQUM7UUFDbEIsa0JBQWEsR0FBdUMsWUFBWSxDQUFDO0tBQzNFOzhHQVJZLGlCQUFpQjtrR0FBakIsaUJBQWlCLDBOQ2I5Qix1a0JBZ0JBLDRDRFBZLFVBQVUsb09BQUUsYUFBYTs7MkZBSXhCLGlCQUFpQjtrQkFQN0IsU0FBUzsrQkFDRSxjQUFjLGNBQ1osSUFBSSxXQUNQLENBQUMsVUFBVSxFQUFFLGFBQWEsRUFBRSxlQUFlLENBQUMsbUJBRXBDLHVCQUF1QixDQUFDLE1BQU07OEJBR3RDLElBQUk7c0JBQVosS0FBSztnQkFDcUIsSUFBSTtzQkFBOUIsS0FBSzt1QkFBQyxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUU7Z0JBQ0UsSUFBSTtzQkFBOUIsS0FBSzt1QkFBQyxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUU7Z0JBQ2hCLElBQUk7c0JBQVosS0FBSztnQkFDRyxRQUFRO3NCQUFoQixLQUFLO2dCQUNHLFNBQVM7c0JBQWpCLEtBQUs7Z0JBQ0csYUFBYTtzQkFBckIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQsIElucHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBSb3V0ZXJMaW5rIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcbmltcG9ydCB7IFNpemVFbnVtIH0gZnJvbSAnLi4vLi4vLi4vbW9kZWwvY29tcG9uZW50cy9zaXplLmVudW0nO1xuaW1wb3J0IHsgSWNvbkNvbXBvbmVudCB9IGZyb20gJy4uL2ljb24vaWNvbi5jb21wb25lbnQnO1xuaW1wb3J0IHsgQnV0dG9uQ29tcG9uZW50IH0gZnJvbSAnLi4vYnV0dG9uL2J1dHRvbi5jb21wb25lbnQnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdjdC1tZW51LWl0ZW0nLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbUm91dGVyTGluaywgSWNvbkNvbXBvbmVudCwgQnV0dG9uQ29tcG9uZW50XSxcbiAgdGVtcGxhdGVVcmw6ICcuL21lbnUtaXRlbS5jb21wb25lbnQuaHRtbCcsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxufSlcbmV4cG9ydCBjbGFzcyBNZW51SXRlbUNvbXBvbmVudCB7XG4gIEBJbnB1dCgpIHRleHQgPSAnJztcbiAgQElucHV0KHsgcmVxdWlyZWQ6IHRydWUgfSkgbGluayA9ICcnO1xuICBASW5wdXQoeyByZXF1aXJlZDogdHJ1ZSB9KSB0eXBlOiBzdHJpbmcgfCAnaW50ZXJuYWwnIHwgJ2V4dGVybmFsJyA9ICdpbnRlcm5hbCc7XG4gIEBJbnB1dCgpIGljb24/OiBzdHJpbmcgPSB1bmRlZmluZWQ7XG4gIEBJbnB1dCgpIGljb25TaXplPzogU2l6ZUVudW0gfCBzdHJpbmcgPSBTaXplRW51bS5CQVNFO1xuICBASW5wdXQoKSBpY29uQWxvbmUgPSBmYWxzZTtcbiAgQElucHV0KCkgaWNvbkRpcmVjdGlvbjogc3RyaW5nIHwgJ3ZlcnRpY2FsJyB8ICdob3Jpem9udGFsJyA9ICdob3Jpem9udGFsJztcbn1cbiIsIjxhXG4gIFtyb3V0ZXJMaW5rXT1cIih0eXBlID09PSAnaW50ZXJuYWwnICYmIGxpbmspISB8fCBudWxsXCJcbiAgW2F0dHIuaHJlZl09XCJ0eXBlID09PSAnZXh0ZXJuYWwnICYmIGxpbmtcIlxuICBjbGFzcz1cImJsb2NrIHJvdW5kZWQtbWQgcHgtNCBweS0yIHRleHQtb24tc3VyZmFjZSBob3ZlcjpiZy1wcmltYXJ5LzI1IGRhcms6dGV4dC1vbi1zdXJmYWNlLWRhcmsgZGFyazpob3ZlcjpiZy1wcmltYXJ5LWRhcmsvMjVcIj5cbiAgPHNwYW5cbiAgICBjbGFzcz1cImZsZXggaXRlbXMtY2VudGVyIGdhcC0zXCJcbiAgICBbY2xhc3MuZmxleC1yb3ddPVwiaWNvbkRpcmVjdGlvbiA9PT0gJ2hvcml6b250YWwnXCJcbiAgICBbY2xhc3MuZmxleC1jb2xdPVwiaWNvbkRpcmVjdGlvbiA9PT0gJ3ZlcnRpY2FsJ1wiPlxuICAgIEBpZiAoaWNvbikge1xuICAgICAgPGN0LWljb24gW2ljb25dPVwiaWNvblwiIHZhcmlhbnQ9XCJzb2xpZFwiIHNpemU9XCJ4bFwiIC8+XG4gICAgfVxuICAgIEBpZiAodGV4dCAmJiAhaWNvbkFsb25lKSB7XG4gICAgICA8c3Bhbj57eyB0ZXh0IH19PC9zcGFuPlxuICAgIH1cbiAgPC9zcGFuPlxuPC9hPlxuIl19