ngx-bootstrap
Version:
Angular Bootstrap
1 lines • 12.3 kB
Source Map (JSON)
{"version":3,"file":"ngx-bootstrap-collapse.mjs","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 HostBinding,\n Renderer2,\n effect,\n input,\n output\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 host: {\n '[class.collapse]': 'true'\n },\n standalone: true\n})\nexport class CollapseDirective implements AfterViewChecked {\n /** This event fires as soon as content collapses */\n collapsed = output<CollapseDirective>();\n /** This event fires when collapsing is started */\n collapses = output<CollapseDirective>();\n /** This event fires as soon as content becomes visible */\n expanded = output<CollapseDirective>();\n /** This event fires when expansion is started */\n expands = output<CollapseDirective>();\n // shown\n @HostBinding('class.in')\n @HostBinding('class.show')\n\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 display = input<string>('block');\n\n /** turn on/off animation */\n isAnimated = input<boolean>(false);\n /** A flag indicating visibility of content (shown or hidden) */\n collapse = input<boolean>(false);\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 // Watch for display changes\n effect(() => {\n const displayValue = this.display();\n this._display = displayValue;\n if (displayValue === 'none') {\n this.hide();\n return;\n }\n this.isAnimated() ? this.toggle() : this.show();\n });\n \n // Watch for collapse changes\n effect(() => {\n const collapseValue = this.collapse();\n this.collapseNewValue = collapseValue;\n if (!this._player || this._isAnimationDone) {\n this.isExpanded = collapseValue;\n this.toggle();\n }\n });\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.reset();\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 } from '@angular/core';\n\nimport { CollapseDirective } from './collapse.directive';\n\n@NgModule({\n imports: [CollapseDirective],\n exports: [CollapseDirective]\n})\nexport class CollapseModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}