{"version":3,"file":"ng-menu-toggle.mjs","sources":["../../../projects/ng-menu-toggle/src/lib/accessibility/menu-toggle.lang.ts","../../../projects/ng-menu-toggle/src/lib/ng-menu-toggle.ts","../../../projects/ng-menu-toggle/src/lib/ng-menu-toggle.html","../../../projects/ng-menu-toggle/src/public-api.ts","../../../projects/ng-menu-toggle/src/ng-menu-toggle.ts"],"sourcesContent":["export const MENU_TOGGLE_LANG = {\n  en: {\n    ariaLabelOpened: 'Close menu',\n    ariaLabelClosed: 'Open menu',\n  },\n  es: {\n    ariaLabelOpened: 'Cerrar menú',\n    ariaLabelClosed: 'Abrir menú',\n  },\n  fr: {\n    ariaLabelOpened: 'Fermer le menu',\n    ariaLabelClosed: 'Ouvrir le menu',\n  },\n  it: {\n    ariaLabelOpened: 'Chiudi menu',\n    ariaLabelClosed: 'Apri menu',\n  },\n  de: {\n    ariaLabelOpened: 'Menü schließen',\n    ariaLabelClosed: 'Menü öffnen',\n  },\n} as const;\n","import { ChangeDetectionStrategy, Component, input, WritableSignal } from '@angular/core';\nimport { MENU_TOGGLE_LANG } from './accessibility/menu-toggle.lang';\nimport { MenuToggleCustomAria, MenuToggleLangs } from './ng-menu-toggle.types';\n\n@Component({\n  standalone: true,\n  selector: 'ng-menu-toggle',\n  imports: [],\n  templateUrl: './ng-menu-toggle.html',\n  styleUrl: './ng-menu-toggle.scss',\n  changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class NgMenuToggle {\n\n  /** IS OPEN STATE FEATURES */\n\n  isOpenSignal = input<WritableSignal<boolean>>();\n\n  handleIsOpen() {\n    this.isOpenSignal()?.update(value => !value);\n  }\n\n  get isOpen() {\n    return this.isOpenSignal()?.();\n  }\n\n  /** STYLE INPUTS */\n\n  type = input< 'dots' | 'bars' | 'uneven' >('bars');\n  invert = input<boolean>(false);\n  thin = input<boolean>(false);\n  rounded = input<boolean>(false);\n  animation = input< 'rotateX' | 'rotateY' | 'soft' >('soft');\n  faster = input<boolean>(false);\n\n  /** ACCESIBILITY */\n\n  tabIndex = input<number>(0);\n\n  lang = input<MenuToggleLangs>('en');\n  customAria = input<Partial<MenuToggleCustomAria> | null>(null);\n\n  get ariaLabels(): MenuToggleCustomAria {\n    const langLabels = MENU_TOGGLE_LANG[this.lang()] ?? MENU_TOGGLE_LANG.en;\n    const custom = this.customAria();\n\n    return {\n      ariaLabelOpened: custom?.ariaLabelOpened ?? langLabels.ariaLabelOpened,\n      ariaLabelClosed: custom?.ariaLabelClosed ?? langLabels.ariaLabelClosed,\n    };\n  }\n}\n","<button\n    class=\"menuToggle__button\"\n    (click)=\"handleIsOpen()\"\n    [class.isOpen]=\"isOpen\"\n    [class.rotateX]=\"animation() === 'rotateX'\"\n    [class.rotateY]=\"animation() === 'rotateY'\"\n    [class.faster]=\"faster()\"\n    [class.rounded]=\"rounded()\"\n    [class.invert]=\"invert()\"\n    [tabIndex]=\"tabIndex()\"\n    [attr.aria-expanded]=\"isOpen\"\n    [attr.aria-label]=\"isOpen ? ariaLabels.ariaLabelOpened : ariaLabels.ariaLabelClosed\"\n>\n    <!-- TOP BAR -->\n    <span\n        class=\"menuToggle__bar menuToggle__bar--1\"\n        [class.isOpen]=\"isOpen\"\n        [class.thin]=\"thin()\"\n        [class.rounded]=\"rounded()\"\n        [class.dots]=\"type() === 'dots'\"\n    ></span>\n\n    <!-- MIDDLE BAR (hidden, only for holding position) -->\n    <span\n        class=\"menuToggle__bar menuToggle__bar--2\"\n        [class.thin]=\"thin()\"\n        [class.dots]=\"type() === 'dots'\"\n    ></span>\n\n    <!-- BOTTOM BAR -->\n    <span\n        class=\"menuToggle__bar menuToggle__bar--3\"\n        [class.isOpen]=\"isOpen\"\n        [class.thin]=\"thin()\"\n        [class.rounded]=\"rounded()\"\n        [class.dots]=\"type() === 'dots'\"\n        [class.uneven]=\"type() === 'uneven'\"\n    ></span>\n\n    <!-- CROSS BARS -->\n    <span\n        class=\"menuToggle__bar menuToggle__bar--4\"\n        [class.isOpen]=\"isOpen\"\n        [class.thin]=\"thin()\"\n        [class.rounded]=\"rounded()\"\n        [class.dots]=\"type() === 'dots'\"\n        [class.uneven]=\"type() === 'uneven'\"\n        [class.invert]=\"invert()\"\n    ></span>\n\n    <span\n        class=\"menuToggle__bar menuToggle__bar--5\"\n        [class.isOpen]=\"isOpen\"\n        [class.thin]=\"thin()\"\n        [class.rounded]=\"rounded()\"\n        [class.dots]=\"type() === 'dots'\"\n        [class.uneven]=\"type() === 'uneven'\"\n        [class.invert]=\"invert()\"\n    ></span>\n\n</button>\n","/*\n * Public API Surface of ng-menu-toggle\n */\n\nexport * from './lib/ng-menu-toggle';\nexport * from './lib/ng-menu-toggle.types';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":";;;AAAO,MAAM,gBAAgB,GAAG;AAC9B,IAAA,EAAE,EAAE;AACF,QAAA,eAAe,EAAE,YAAY;AAC7B,QAAA,eAAe,EAAE,WAAW;AAC7B,KAAA;AACD,IAAA,EAAE,EAAE;AACF,QAAA,eAAe,EAAE,aAAa;AAC9B,QAAA,eAAe,EAAE,YAAY;AAC9B,KAAA;AACD,IAAA,EAAE,EAAE;AACF,QAAA,eAAe,EAAE,gBAAgB;AACjC,QAAA,eAAe,EAAE,gBAAgB;AAClC,KAAA;AACD,IAAA,EAAE,EAAE;AACF,QAAA,eAAe,EAAE,aAAa;AAC9B,QAAA,eAAe,EAAE,WAAW;AAC7B,KAAA;AACD,IAAA,EAAE,EAAE;AACF,QAAA,eAAe,EAAE,gBAAgB;AACjC,QAAA,eAAe,EAAE,aAAa;AAC/B,KAAA;CACO;;MCTG,YAAY,CAAA;;IAIvB,YAAY,GAAG,KAAK,CAAA,IAAA,SAAA,GAAA,CAAA,SAAA,EAAA,EAAA,SAAA,EAAA,cAAA,EAAA,CAAA,GAAA,EAAA,CAAA,CAA2B;IAE/C,YAAY,GAAA;AACV,QAAA,IAAI,CAAC,YAAY,EAAE,EAAE,MAAM,CAAC,KAAK,IAAI,CAAC,KAAK,CAAC;IAC9C;AAEA,IAAA,IAAI,MAAM,GAAA;AACR,QAAA,OAAO,IAAI,CAAC,YAAY,EAAE,IAAI;IAChC;;AAIA,IAAA,IAAI,GAAG,KAAK,CAA+B,MAAM,gDAAC;AAClD,IAAA,MAAM,GAAG,KAAK,CAAU,KAAK,kDAAC;AAC9B,IAAA,IAAI,GAAG,KAAK,CAAU,KAAK,gDAAC;AAC5B,IAAA,OAAO,GAAG,KAAK,CAAU,KAAK,mDAAC;AAC/B,IAAA,SAAS,GAAG,KAAK,CAAmC,MAAM,qDAAC;AAC3D,IAAA,MAAM,GAAG,KAAK,CAAU,KAAK,kDAAC;;AAI9B,IAAA,QAAQ,GAAG,KAAK,CAAS,CAAC,oDAAC;AAE3B,IAAA,IAAI,GAAG,KAAK,CAAkB,IAAI,gDAAC;AACnC,IAAA,UAAU,GAAG,KAAK,CAAuC,IAAI,sDAAC;AAE9D,IAAA,IAAI,UAAU,GAAA;AACZ,QAAA,MAAM,UAAU,GAAG,gBAAgB,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,IAAI,gBAAgB,CAAC,EAAE;AACvE,QAAA,MAAM,MAAM,GAAG,IAAI,CAAC,UAAU,EAAE;QAEhC,OAAO;AACL,YAAA,eAAe,EAAE,MAAM,EAAE,eAAe,IAAI,UAAU,CAAC,eAAe;AACtE,YAAA,eAAe,EAAE,MAAM,EAAE,eAAe,IAAI,UAAU,CAAC,eAAe;SACvE;IACH;uGAtCW,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,k0CCZzB,k4DA6DA,EAAA,MAAA,EAAA,CAAA,yiGAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA;;2FDjDa,YAAY,EAAA,UAAA,EAAA,CAAA;kBARxB,SAAS;AACI,YAAA,IAAA,EAAA,CAAA,EAAA,UAAA,EAAA,IAAI,YACN,gBAAgB,EAAA,OAAA,EACjB,EAAE,EAAA,eAAA,EAGM,uBAAuB,CAAC,MAAM,EAAA,QAAA,EAAA,k4DAAA,EAAA,MAAA,EAAA,CAAA,yiGAAA,CAAA,EAAA;;;AEVjD;;AAEG;;ACFH;;AAEG;;;;"}