UNPKG

angular4-collapsible

Version:

Angular 2 / 4 Materialize CSS collapsible components

60 lines (53 loc) 2.38 kB
import { Injectable } from '@angular/core'; import { AnimationTriggerMetadata, trigger, state, style, transition, animate } from '@angular/animations'; @Injectable() export class CollapsibleAnimationsService { static collapsibleBodyAnimationDuration = '0.2s'; static easeInQuad = 'cubic-bezier(0.55, 0.085, 0.68, 0.53)'; static easeOutQuad = 'cubic-bezier(0.25, 0.46, 0.45, 0.94)'; static collapsibleTableRowAnimationDuration = '0.2s'; static collapsibleBodyAnimations(triggerName: string): AnimationTriggerMetadata[] { return [ trigger(triggerName, [ state('*', style({ height: 0, paddingTop: 0, paddingBottom: 0, borderBottom: 'none', boxShadow: 'none', overflow: 'hidden' })), state('true', style({ // boxShadow: 'inset 0 4px 4px -2px rgb(208, 208, 208), inset 0 -3px 2px -1px rgb(208, 208, 208)', overflow: 'auto' })), transition('* => true', animate(CollapsibleAnimationsService.collapsibleBodyAnimationDuration + ' ' + CollapsibleAnimationsService.easeInQuad)), transition('* => false', animate(CollapsibleAnimationsService.collapsibleBodyAnimationDuration + ' ' + CollapsibleAnimationsService.easeOutQuad)) ]) ]; } /* static collapsibleTableRowAnimations(triggerName: string): AnimationTriggerMetadata[] { return [ trigger(triggerName, [ state('active', style({ background: 'rgba(0, 0, 0, 0.15)' })), state('inactive', style({ background: 'transparent' })), transition('* => active', animate(CollapsibleAnimationsService.collapsibleTableRowAnimationDuration + ' ' + CollapsibleAnimationsService.easeOutQuad)), transition('* => inactive', animate(CollapsibleAnimationsService.collapsibleTableRowAnimationDuration + ' ' + CollapsibleAnimationsService.easeOutQuad)) ]) ]; } */ }