UNPKG

11.6 kBSource Map (JSON)View Raw
1{"version":3,"file":"ngx-bootstrap-collapse.umd.js","sources":["../../../../src/collapse/collapse-animations.ts","../../../../src/collapse/collapse.directive.ts","../../../../src/collapse/collapse.module.ts","../../../../src/collapse/ngx-bootstrap-collapse.ts"],"sourcesContent":["import {\n animate,\n style,\n AnimationMetadata\n} from '@angular/animations';\n\nexport const COLLAPSE_ANIMATION_TIMING = '400ms cubic-bezier(0.4,0.0,0.2,1)';\n\nexport const expandAnimation: AnimationMetadata[] = [\n style({ height: 0, visibility: 'hidden' }),\n animate(\n COLLAPSE_ANIMATION_TIMING,\n style({ height: '*', visibility: 'visible' })\n )\n];\n\nexport const collapseAnimation: AnimationMetadata[] = [\n style({ height: '*', visibility: 'visible' }),\n animate(\n COLLAPSE_ANIMATION_TIMING,\n style({ height: 0, visibility: 'hidden' })\n )\n];\n","import {\n AnimationBuilder,\n AnimationFactory,\n AnimationPlayer\n} from '@angular/animations';\n\nimport {\n AfterViewChecked,\n Directive,\n ElementRef,\n EventEmitter,\n HostBinding,\n Input,\n Output,\n Renderer2\n} from '@angular/core';\n\nimport {\n collapseAnimation,\n expandAnimation\n} from './collapse-animations';\n\n@Directive({\n selector: '[collapse]',\n exportAs: 'bs-collapse',\n // eslint-disable-next-line @angular-eslint/no-host-metadata-property\n host: {\n '[class.collapse]': 'true'\n }\n})\nexport class CollapseDirective implements AfterViewChecked {\n /** This event fires as soon as content collapses */\n @Output() collapsed: EventEmitter<CollapseDirective> = new EventEmitter();\n /** This event fires when collapsing is started */\n @Output() collapses: EventEmitter<CollapseDirective> = new EventEmitter();\n /** This event fires as soon as content becomes visible */\n @Output() expanded: EventEmitter<CollapseDirective> = new EventEmitter();\n /** This event fires when expansion is started */\n @Output() expands: EventEmitter<CollapseDirective> = new EventEmitter();\n // shown\n @HostBinding('class.in')\n @HostBinding('class.show')\n @HostBinding('attr.aria-expanded')\n isExpanded = true;\n collapseNewValue = true;\n // hidden\n @HostBinding('attr.aria-hidden') isCollapsed = false;\n // stale state\n @HostBinding('class.collapse') isCollapse = true;\n // animation state\n @HostBinding('class.collapsing') isCollapsing = false;\n\n @Input()\n set display(value: string) {\n if (!this.isAnimated) {\n this._renderer.setStyle(this._el.nativeElement, 'display', value);\n\n return;\n }\n\n this._display = value;\n\n if (value === 'none') {\n this.hide();\n\n return;\n }\n\n this.show();\n }\n /** turn on/off animation */\n @Input() isAnimated = false;\n /** A flag indicating visibility of content (shown or hidden) */\n @Input()\n set collapse(value: boolean) {\n this.collapseNewValue = value;\n if (!this._player || this._isAnimationDone) {\n this.isExpanded = value;\n this.toggle();\n }\n }\n\n get collapse(): boolean {\n return this.isExpanded;\n }\n\n private _display = 'block';\n private _isAnimationDone?: boolean;\n private _player?: AnimationPlayer;\n private _stylesLoaded = false;\n\n private _COLLAPSE_ACTION_NAME = 'collapse';\n private _EXPAND_ACTION_NAME = 'expand';\n\n private readonly _factoryCollapseAnimation: AnimationFactory;\n private readonly _factoryExpandAnimation: AnimationFactory;\n\n constructor(\n private _el: ElementRef,\n private _renderer: Renderer2,\n _builder: AnimationBuilder\n ) {\n this._factoryCollapseAnimation = _builder.build(collapseAnimation);\n this._factoryExpandAnimation = _builder.build(expandAnimation);\n }\n\n ngAfterViewChecked(): void {\n this._stylesLoaded = true;\n\n if (!this._player || !this._isAnimationDone) {\n return;\n }\n\n this._player.reset();\n this._renderer.setStyle(this._el.nativeElement, 'height', '*');\n }\n\n /** allows to manually toggle content visibility */\n toggle(): void {\n if (this.isExpanded) {\n this.hide();\n } else {\n this.show();\n }\n }\n\n /** allows to manually hide content */\n hide(): void {\n this.isCollapsing = true;\n this.isExpanded = false;\n this.isCollapsed = true;\n this.isCollapsing = false;\n\n this.collapses.emit(this);\n\n this._isAnimationDone = false;\n\n this.animationRun(this.isAnimated, this._COLLAPSE_ACTION_NAME)(() => {\n this._isAnimationDone = true;\n if (this.collapseNewValue !== this.isCollapsed && this.isAnimated) {\n this.show();\n\n return;\n }\n this.collapsed.emit(this);\n this._renderer.setStyle(this._el.nativeElement, 'display', 'none');\n });\n }\n /** allows to manually show collapsed content */\n show(): void {\n this._renderer.setStyle(this._el.nativeElement, 'display', this._display);\n\n this.isCollapsing = true;\n this.isExpanded = true;\n this.isCollapsed = false;\n this.isCollapsing = false;\n\n this.expands.emit(this);\n\n this._isAnimationDone = false;\n this.animationRun(this.isAnimated, this._EXPAND_ACTION_NAME)(() => {\n this._isAnimationDone = true;\n if (this.collapseNewValue !== this.isCollapsed && this.isAnimated) {\n this.hide();\n\n return;\n }\n this.expanded.emit(this);\n this._renderer.removeStyle(this._el.nativeElement, 'overflow');\n });\n }\n\n animationRun(isAnimated: boolean, action: string) {\n if (!isAnimated || !this._stylesLoaded) {\n return (callback: () => void) => callback();\n }\n\n this._renderer.setStyle(this._el.nativeElement, 'overflow', 'hidden');\n this._renderer.addClass(this._el.nativeElement, 'collapse');\n\n const factoryAnimation = (action === this._EXPAND_ACTION_NAME)\n ? this._factoryExpandAnimation\n : this._factoryCollapseAnimation;\n\n if (this._player) {\n this._player.destroy();\n }\n\n this._player = factoryAnimation.create(this._el.nativeElement);\n this._player.play();\n\n return (callback: () => void) => this._player?.onDone(callback);\n }\n}\n","import { NgModule, ModuleWithProviders } from '@angular/core';\n\nimport { CollapseDirective } from './collapse.directive';\n\n@NgModule({\n declarations: [CollapseDirective],\n exports: [CollapseDirective]\n})\nexport class CollapseModule {\n static forRoot(): ModuleWithProviders<CollapseModule> {\n return { ngModule: CollapseModule, providers: [] };\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["style","animate","EventEmitter","Directive","ElementRef","Renderer2","AnimationBuilder","Output","HostBinding","Input","NgModule"],"mappings":"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"}
\No newline at end of file