{"version":3,"file":"synergy-design-system-angular-components-side-nav.mjs","sources":["../../components/side-nav/side-nav.component.ts","../../components/side-nav/synergy-design-system-angular-components-side-nav.ts"],"sourcesContent":["// ---------------------------------------------------------------------\n// 🔒 AUTOGENERATED @synergy-design-system/angular wrappers for @synergy-design-system/components\n// Please do not edit this file directly!\n// It will get recreated when running pnpm build.\n// ---------------------------------------------------------------------\nimport {\n  Component,\n  ElementRef,\n  NgZone,\n  Input,\n  Output,\n  EventEmitter,\n  AfterContentInit,\n} from '@angular/core';\nimport type SynSideNav from '@synergy-design-system/components/components/side-nav/side-nav.component.js';\nimport type { SynShowEvent } from '@synergy-design-system/components';\nimport type { SynAfterShowEvent } from '@synergy-design-system/components';\nimport type { SynHideEvent } from '@synergy-design-system/components';\nimport type { SynAfterHideEvent } from '@synergy-design-system/components';\nimport '@synergy-design-system/components/components/side-nav/side-nav.js';\n\n/**\n * @summary The <syn-side-nav /> element contains secondary navigation and fits below the header.\n * It can be used to group multiple navigation items (<syn-nav-item />s) together.\n *\n * @example\n * <syn-side-nav open>\n *  <syn-nav-item >Item 1</syn-nav-item>\n *  <syn-nav-item divider>Item 2</syn-nav-item>\n * </syn-side-nav>\n *\n * @documentation https://synergy-design-system.github.io/?path=/docs/components-syn-side-nav--docs\n * @status stable\n * @since 1.15.0\n *\n * @dependency syn-divider\n * @dependency syn-drawer\n * @dependency syn-icon\n * @dependency syn-nav-item\n *\n * @slot - The main content of the side-nav. Used for <syn-nav-item /> elements.\n * @slot footer - The footer content of the side-nav. Used for <syn-nav-item /> elements.\n *    Please avoid having to many nav-items as it can massively influence the user experience.\n * @slot toggle-label - The label of the toggle nav-item for variant=\"sticky\".\n * @slot toggle-icon - An icon to use in lieu of the default icon for the toggle nav-item\n * for variant=\"sticky\".\n *\n * @event syn-show - Emitted when the side-nav opens.\n * @event syn-after-show - Emitted after the side-nav opens and all animations are complete.\n * @event syn-hide - Emitted when the side-nav closes.\n * @event syn-after-hide - Emitted after the side-nav closes and all animations are complete.\n *\n * @csspart base - The components base wrapper\n * @csspart drawer - The drawer that is used under the hood for creating the side-nav\n * @csspart content-container - The components main content container\n * @csspart content - The components main content\n * @csspart footer-container - The components footer content container\n  (where the footer slot content is rendered)\n * @csspart footer-divider - The components footer divider\n * @csspart footer - The components footer content\n * @csspart overlay - The overlay that covers the screen behind the side-nav.\n * @csspart panel - The side-nav's panel (where the whole content is rendered).\n * @csspart body - The side-nav's body (where the default slot content is rendered)\n * @csspart drawer__base - The drawer's base wrapper\n * @csspart toggle-nav-item - The nav-item to toggle open state for variant=\"sticky\"\n * @csspart toggle-icon - The icon of the toggle nav-item for variant=\"sticky\"\n * @csspart toggle-label - The label of the toggle nav-item for variant=\"sticky\".\n\n * @cssproperty  --side-nav-open-width - The width of the side-nav if in open state\n *\n * @animation sideNav.showNonRail - The animation to use when showing the side-nav\n *  in variant=\"default\".\n * @animation sideNav.showRail - The animation to use when showing the side-nav in variant=\"rail\"\n *  and variant=\"sticky\".\n * @animation sideNav.hideNonRail - The animation to use when hiding the side-nav\n *  in variant=\"default\".\n * @animation sideNav.hideRail - The animation to use when hiding the side-nav in variant=\"rail\"\n *  and variant=\"sticky\".\n * @animation sideNav.overlay.show - The animation to use when showing the side-nav's overlay.\n * @animation sideNav.overlay.hide - The animation to use when hiding the side-nav's overlay.\n */\n@Component({\n  selector: 'syn-side-nav',\n  standalone: true,\n  template: '<ng-content></ng-content>',\n})\nexport class SynSideNavComponent {\n  public nativeElement: SynSideNav;\n  private _ngZone: NgZone;\n\n  constructor(e: ElementRef, ngZone: NgZone) {\n    this.nativeElement = e.nativeElement;\n    this._ngZone = ngZone;\n    this.nativeElement.addEventListener('syn-show', (e: SynShowEvent) => {\n      this.synShowEvent.emit(e);\n    });\n    this.nativeElement.addEventListener(\n      'syn-after-show',\n      (e: SynAfterShowEvent) => {\n        this.synAfterShowEvent.emit(e);\n      },\n    );\n    this.nativeElement.addEventListener('syn-hide', (e: SynHideEvent) => {\n      this.synHideEvent.emit(e);\n    });\n    this.nativeElement.addEventListener(\n      'syn-after-hide',\n      (e: SynAfterHideEvent) => {\n        this.synAfterHideEvent.emit(e);\n      },\n    );\n  }\n\n  /**\n* Indicates whether or not the side-nav is open.\nYou can toggle this attribute to show and hide the side-nav, or you can use the `show()` and\n`hide()` methods and this attribute will reflect the side-nav's open state.\n\nDepending on the \"variant\" attribute, the behavior will differ.\n\n__Default__:\nWith `open` will show the side-nav with an overlay.\nWithout `open`, the side-nav will be hidden.\n\n__Rail__:\nWith `open` will show the whole side-nav with an overlay for touch devices\nor without an overlay for non-touch devices.\nWithout `open`, the side-nav will only show the prefix of nav-item's.\n\n__Sticky__:\nWith `open` will show the whole side-nav with an overlay for touch devices\nor without an overlay for non-touch devices.\nWithout `open`, the side-nav will only show the prefix of nav-item's.\n */\n  @Input()\n  set open(v: '' | SynSideNav['open']) {\n    this._ngZone.runOutsideAngular(\n      () => (this.nativeElement.open = v === '' || v),\n    );\n  }\n  get open(): SynSideNav['open'] {\n    return this.nativeElement.open;\n  }\n\n  /**\n* The variant that should be used to show the side navigation.\n\nThe following variants are supported:\n- **default** (default): Always shows the whole content and additionally an overlay.\nThis makes especially sense for applications, where you navigate to a place and stay\nthere for a longer time.\n- **rail**: Only show the prefix of navigation items in closed state.\nThis will open on hover on the rail navigation.\nOn touch devices the navigation opens on click and shows an overlay.\nNote: The rail variant is only an option if all Navigation Items on the first level\nhave an Icon.\nIf this is not the case you should use a burger navigation.\n- **sticky**: The side-nav has a pin button to show the side-nav in small (icon only)\nand full width.\n* This variant is only possible for non-nested navigation items.\nNote: The sticky variant is only an option if all Navigation Items on the first level\nhave an Icon and if there are only \"first level\" items.\n */\n  @Input()\n  set variant(v: SynSideNav['variant']) {\n    this._ngZone.runOutsideAngular(() => (this.nativeElement.variant = v));\n  }\n  get variant(): SynSideNav['variant'] {\n    return this.nativeElement.variant;\n  }\n\n  /**\n* By default, the side-nav traps the focus if in variant=\"default\" and open.\nTo disable the focus trapping, set this attribute.\n */\n  @Input()\n  set noFocusTrapping(v: '' | SynSideNav['noFocusTrapping']) {\n    this._ngZone.runOutsideAngular(\n      () => (this.nativeElement.noFocusTrapping = v === '' || v),\n    );\n  }\n  get noFocusTrapping(): SynSideNav['noFocusTrapping'] {\n    return this.nativeElement.noFocusTrapping;\n  }\n\n  /**\n   * Emitted when the side-nav opens.\n   */\n  @Output() synShowEvent = new EventEmitter<SynShowEvent>();\n\n  /**\n   * Emitted after the side-nav opens and all animations are complete.\n   */\n  @Output() synAfterShowEvent = new EventEmitter<SynAfterShowEvent>();\n\n  /**\n   * Emitted when the side-nav closes.\n   */\n  @Output() synHideEvent = new EventEmitter<SynHideEvent>();\n\n  /**\n   * Emitted after the side-nav closes and all animations are complete.\n   */\n  @Output() synAfterHideEvent = new EventEmitter<SynAfterHideEvent>();\n}\n\nexport type { SynShowEvent } from '@synergy-design-system/components';\nexport type { SynAfterShowEvent } from '@synergy-design-system/components';\nexport type { SynHideEvent } from '@synergy-design-system/components';\nexport type { SynAfterHideEvent } from '@synergy-design-system/components';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './side-nav.component';\n"],"names":[],"mappings":"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"}