{"version":3,"file":"ng-link-button.mjs","sources":["../../../projects/ng-link-button/src/lib/ng-link-button.ts","../../../projects/ng-link-button/src/lib/ng-link-button.html","../../../projects/ng-link-button/src/public-api.ts","../../../projects/ng-link-button/src/ng-link-button.ts"],"sourcesContent":["import { NgTemplateOutlet } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, HostBinding, input } from '@angular/core';\nimport { ActivatedRoute, RouterLink, RouterLinkActive } from '@angular/router';\n\n\n@Component({\n  standalone: true,\n  selector: 'ng-link-button',\n  imports: [RouterLink, RouterLinkActive, NgTemplateOutlet],\n  templateUrl: './ng-link-button.html',\n  styleUrl: './ng-link-button.scss',\n  changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class NgLinkButton {\n\n  // ----- HREF INPUTS\n  href = input<string | null>(null);\n  target = input<'_self' | '_blank' | '_parent' | '_top' | string>('_blank');\n  rel = input<string>('noreferrer noopener');\n\n  // ----- ROUTERLINK INPUTS\n  routerLink = input<string | any[] | undefined>(undefined);\n  activatedRoute = input<boolean>(true);\n  queryParams = input<Record<string, any> | null>(null);\n  fragment = input<string | undefined>(undefined);\n  relativeTo = input<ActivatedRoute | null>(null);\n  queryParamsHandling = input<'merge' | 'preserve' | null>(null);\n  state = input<{ [k: string]: any; } | undefined>(undefined);\n\n  // ----- ACCESSIBILITY INPUTS\n  ariaLabel = input<string | null>(null);\n  title = input<string | null>(null);\n  tabIndex = input<number | null>(0);\n  ariaCurrent = input<'page' | 'step' | 'true' | null>(null);\n  download = input<string | boolean | null>(null);\n  role = input<'link' | 'button' | null>(null);\n  disabled = input<boolean>(false);\n\n  // ----- STYLE INPUTS\n  type = input<'solid' | 'minimal' | 'outline'>('solid');\n  square = input<boolean>(false);\n  hover = input<'tone' | 'scale' | 'stroke' | 'shadow' | 'none'>('tone');\n  direction = input<'row' | 'column'>('row');\n\n}\n","<ng-template #content>\n  <ng-content></ng-content>\n</ng-template>\n\n@if (routerLink()) {\n  <a\n    #link=\"routerLinkActive\"\n    class=\"linkButton\"\n\n    [routerLink]=\"routerLink()\"\n    [queryParams]=\"queryParams()\"\n    [fragment]=\"fragment()\"\n    [state]=\"state()\"\n    [routerLinkActive]=\"activatedRoute() ? 'active' : ''\"\n\n    [class.solid]=\"type() === 'solid'\"\n    [class.minimal]=\"type() === 'minimal'\"\n    [class.outline]=\"type() === 'outline'\"\n    [class.square]=\"square()\"\n    [class.toneHover]=\"hover() === 'tone'\"\n    [class.scaleHover]=\"hover() === 'scale'\"\n    [class.strokeHover]=\"hover() === 'stroke'\"\n    [class.shadowHover]=\"hover() === 'shadow'\"\n\n    [class.column]=\"direction() === 'column'\"\n\n    [attr.aria-label]=\"ariaLabel()\"\n    [attr.title]=\"title()\"\n    [attr.tabindex]=\"tabIndex()\"\n    [attr.aria-current]=\"link.isActive ? ariaCurrent() : null\"\n    [attr.download]=\"download()\"\n    [attr.role]=\"role()\"\n    [attr.aria-disabled]=\"disabled()\"\n    [class.disabled]=\"disabled()\"\n  >\n    <ng-template [ngTemplateOutlet]=\"content\"></ng-template>\n  </a>\n} @else {\n  <a\n    class=\"linkButton\"\n\n    [attr.href]=\"href()\"\n    [attr.target]=\"target()\"\n    [attr.rel]=\"rel()\"\n\n    [class.solid]=\"type() === 'solid'\"\n    [class.minimal]=\"type() === 'minimal'\"\n    [class.outline]=\"type() === 'outline'\"\n    [class.square]=\"square()\"\n    [class.toneHover]=\"hover() === 'tone'\"\n    [class.scaleHover]=\"hover() === 'scale'\"\n    [class.strokeHover]=\"hover() === 'stroke'\"\n    [class.shadowHover]=\"hover() === 'shadow'\"\n\n    [class.column]=\"direction() === 'column'\"\n\n    [attr.aria-label]=\"ariaLabel()\"\n    [attr.title]=\"title()\"\n    [attr.tabindex]=\"tabIndex()\"\n    [attr.download]=\"download()\"\n    [attr.role]=\"role()\"\n    [attr.aria-disabled]=\"disabled()\"\n    [class.disabled]=\"disabled()\"\n  >\n    <ng-template [ngTemplateOutlet]=\"content\"></ng-template>\n  </a>\n}\n","/*\n * Public API Surface of ng-link-button\n */\n\nexport * from './lib/ng-link-button';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":";;;;;MAaa,YAAY,CAAA;;AAGvB,IAAA,IAAI,GAAG,KAAK,CAAgB,IAAI,gDAAC;AACjC,IAAA,MAAM,GAAG,KAAK,CAAmD,QAAQ,kDAAC;AAC1E,IAAA,GAAG,GAAG,KAAK,CAAS,qBAAqB,+CAAC;;AAG1C,IAAA,UAAU,GAAG,KAAK,CAA6B,SAAS,sDAAC;AACzD,IAAA,cAAc,GAAG,KAAK,CAAU,IAAI,0DAAC;AACrC,IAAA,WAAW,GAAG,KAAK,CAA6B,IAAI,uDAAC;AACrD,IAAA,QAAQ,GAAG,KAAK,CAAqB,SAAS,oDAAC;AAC/C,IAAA,UAAU,GAAG,KAAK,CAAwB,IAAI,sDAAC;AAC/C,IAAA,mBAAmB,GAAG,KAAK,CAA8B,IAAI,+DAAC;AAC9D,IAAA,KAAK,GAAG,KAAK,CAAoC,SAAS,iDAAC;;AAG3D,IAAA,SAAS,GAAG,KAAK,CAAgB,IAAI,qDAAC;AACtC,IAAA,KAAK,GAAG,KAAK,CAAgB,IAAI,iDAAC;AAClC,IAAA,QAAQ,GAAG,KAAK,CAAgB,CAAC,oDAAC;AAClC,IAAA,WAAW,GAAG,KAAK,CAAkC,IAAI,uDAAC;AAC1D,IAAA,QAAQ,GAAG,KAAK,CAA0B,IAAI,oDAAC;AAC/C,IAAA,IAAI,GAAG,KAAK,CAA2B,IAAI,gDAAC;AAC5C,IAAA,QAAQ,GAAG,KAAK,CAAU,KAAK,oDAAC;;AAGhC,IAAA,IAAI,GAAG,KAAK,CAAkC,OAAO,gDAAC;AACtD,IAAA,MAAM,GAAG,KAAK,CAAU,KAAK,kDAAC;AAC9B,IAAA,KAAK,GAAG,KAAK,CAAkD,MAAM,iDAAC;AACtE,IAAA,SAAS,GAAG,KAAK,CAAmB,KAAK,qDAAC;uGA7B/B,YAAY,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;AAAZ,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,YAAY,wuFCbzB,8+DAmEA,EAAA,MAAA,EAAA,CAAA,2qGAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,ED3DY,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,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAE,gBAAgB,8MAAE,gBAAgB,EAAA,QAAA,EAAA,oBAAA,EAAA,MAAA,EAAA,CAAA,yBAAA,EAAA,kBAAA,EAAA,0BAAA,CAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA;;2FAK7C,YAAY,EAAA,UAAA,EAAA,CAAA;kBARxB,SAAS;AACI,YAAA,IAAA,EAAA,CAAA,EAAA,UAAA,EAAA,IAAI,EAAA,QAAA,EACN,gBAAgB,EAAA,OAAA,EACjB,CAAC,UAAU,EAAE,gBAAgB,EAAE,gBAAgB,CAAC,EAAA,eAAA,EAGxC,uBAAuB,CAAC,MAAM,EAAA,QAAA,EAAA,8+DAAA,EAAA,MAAA,EAAA,CAAA,2qGAAA,CAAA,EAAA;;;AEXjD;;AAEG;;ACFH;;AAEG;;;;"}