UNPKG

ng-toggle-directive

Version:

A simple Angular library providing toggle functionality with a directive.

1 lines 4.22 kB
{"version":3,"file":"ng-toggle-directive.mjs","sources":["../../../projects/ng-toggle-directive/src/lib/ng-toggle-directive.directive.ts","../../../projects/ng-toggle-directive/src/lib/ng-toggle-directive.module.ts","../../../projects/ng-toggle-directive/src/public-api.ts","../../../projects/ng-toggle-directive/src/ng-toggle-directive.ts"],"sourcesContent":["import {\n Directive,\n Input,\n ElementRef,\n Renderer2,\n HostListener,\n} from '@angular/core';\n\n@Directive({\n selector: '[ngToggle]',\n})\nexport class ToggleDirective {\n @Input('ngToggle') targetSection!: HTMLElement;\n\n private isExpanded: boolean = false;\n\n constructor(\n private el: ElementRef,\n private renderer: Renderer2,\n ) {}\n\n @HostListener('click') toggleTargetSection(): void {\n const currentMaxHeight = window.getComputedStyle(\n this.targetSection,\n ).maxHeight;\n\n if (currentMaxHeight === '0px' || !this.isExpanded) {\n this.expand();\n } else {\n this.collapse();\n }\n }\n\n private expand(): void {\n this.renderer.setStyle(this.targetSection,'max-height', `${this.targetSection.scrollHeight}px`);\n this.renderer.addClass(this.el.nativeElement, 'expanded');\n this.renderer.addClass(this.targetSection, 'show');\n this.isExpanded = true;\n }\n\n private collapse(): void {\n this.renderer.setStyle(this.targetSection, 'max-height', '0');\n this.renderer.removeClass(this.el.nativeElement, 'expanded');\n this.renderer.removeClass(this.targetSection, 'show');\n this.isExpanded = false;\n }\n}\n","import { NgModule } from '@angular/core';\nimport { ToggleDirective } from './ng-toggle-directive.directive';\n\n\n\n@NgModule({\n declarations: [ToggleDirective],\n imports: [],\n exports: [ToggleDirective]\n})\nexport class NgToggleDirectiveModule { }\n","/*\n * Public API Surface of ng-toggle-directive\n */\n\nexport * from './lib/ng-toggle-directive.directive';\nexport * from './lib/ng-toggle-directive.module';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}