blob: f42ed9af22f6c976da197d89d17425f90ad49d35 [file] [log] [blame]
{"version":3,"file":"covalent-core-steps.js.map","sources":["ng://@covalent/core/steps/step.component.ts","ng://@covalent/core/steps/steps.component.ts","ng://@covalent/core/steps/step-header/step-header.component.ts","ng://@covalent/core/steps/step-body/step-body.component.ts","ng://@covalent/core/steps/nav/nav-step-link/nav-step-link.component.ts","ng://@covalent/core/steps/nav/nav-steps-horizontal/nav-steps-horizontal.component.ts","ng://@covalent/core/steps/nav/nav-steps-vertical/nav-steps-vertical.component.ts","ng://@covalent/core/steps/steps.module.ts"],"sourcesContent":["import { Component, Directive, Input, Output, TemplateRef, ViewChild,\n ViewContainerRef, ContentChild, OnInit } from '@angular/core';\nimport { EventEmitter } from '@angular/core';\nimport { TemplatePortalDirective, TemplatePortal } from '@angular/cdk/portal';\nimport { coerceBooleanProperty } from '@angular/cdk/coercion';\n\nimport { ICanDisable, mixinDisabled, ICanDisableRipple, mixinDisableRipple } from '@covalent/core/common';\n\nexport enum StepState {\n None = 'none',\n Required = 'required',\n Complete = 'complete',\n}\n\n@Directive({\n selector: '[td-step-label]ng-template',\n})\nexport class TdStepLabelDirective extends TemplatePortalDirective {\n constructor(templateRef: TemplateRef<any>, viewContainerRef: ViewContainerRef) {\n super(templateRef, viewContainerRef);\n }\n}\n\n@Directive({\n selector: '[td-step-actions]ng-template',\n})\nexport class TdStepActionsDirective extends TemplatePortalDirective {\n constructor(templateRef: TemplateRef<any>, viewContainerRef: ViewContainerRef) {\n super(templateRef, viewContainerRef);\n }\n}\n\n@Directive({\n selector: '[td-step-summary]ng-template',\n})\nexport class TdStepSummaryDirective extends TemplatePortalDirective {\n constructor(templateRef: TemplateRef<any>, viewContainerRef: ViewContainerRef) {\n super(templateRef, viewContainerRef);\n }\n}\n\nexport class TdStepBase {}\n\n/* tslint:disable-next-line */\nexport const _TdStepMixinBase = mixinDisableRipple(mixinDisabled(TdStepBase));\n\n@Component({\n selector: 'td-step',\n inputs: ['disabled', 'disableRipple'],\n templateUrl: './step.component.html',\n})\nexport class TdStepComponent extends _TdStepMixinBase implements OnInit, ICanDisable, ICanDisableRipple {\n\n private _active: boolean = false;\n private _state: StepState = StepState.None;\n\n private _contentPortal: TemplatePortal<any>;\n get stepContent(): TemplatePortal<any> {\n return this._contentPortal;\n }\n\n @ViewChild(TemplateRef) _content: TemplateRef<any>;\n @ContentChild(TdStepLabelDirective) stepLabel: TdStepLabelDirective;\n @ContentChild(TdStepActionsDirective) stepActions: TdStepActionsDirective;\n @ContentChild(TdStepSummaryDirective) stepSummary: TdStepSummaryDirective;\n\n /**\n * label?: string\n * Sets label of [TdStepComponent] header.\n * Defaults to 'Step #'\n */\n @Input('label') label: string;\n\n /**\n * sublabel?: string\n * Sets sublabel of [TdStepComponent] header.\n */\n @Input('sublabel') sublabel: string;\n\n /**\n * active?: boolean\n * Toggles [TdStepComponent] between active/deactive.\n */\n @Input('active')\n set active(active: boolean) {\n this._setActive(coerceBooleanProperty(active));\n }\n get active(): boolean {\n return this._active;\n }\n\n /**\n * state?: StepState or ['none' | 'required' | 'complete']\n * Sets state of [TdStepComponent] depending on value.\n * Defaults to [StepState.None | 'none'].\n */\n @Input('state')\n set state(state: StepState) {\n switch (state) {\n case StepState.Complete:\n this._state = StepState.Complete;\n break;\n case StepState.Required:\n this._state = StepState.Required;\n break;\n default:\n this._state = StepState.None;\n break;\n }\n }\n get state(): StepState {\n return this._state;\n }\n\n /**\n * activated?: function\n * Event emitted when [TdStepComponent] is activated.\n */\n @Output('activated') onActivated: EventEmitter<void> = new EventEmitter<void>();\n\n /**\n * deactivated?: function\n * Event emitted when [TdStepComponent] is deactivated.\n */\n @Output('deactivated') onDeactivated: EventEmitter<void> = new EventEmitter<void>();\n\n constructor(private _viewContainerRef: ViewContainerRef) {\n super();\n }\n\n ngOnInit(): void {\n this._contentPortal = new TemplatePortal(this._content, this._viewContainerRef);\n }\n\n /**\n * Toggle active state of [TdStepComponent]\n * retuns 'true' if successful, else 'false'.\n */\n toggle(): boolean {\n return this._setActive(!this._active);\n }\n\n /**\n * Opens [TdStepComponent]\n * retuns 'true' if successful, else 'false'.\n */\n open(): boolean {\n return this._setActive(true);\n }\n\n /**\n * Closes [TdStepComponent]\n * retuns 'true' if successful, else 'false'.\n */\n close(): boolean {\n return this._setActive(false);\n }\n\n /**\n * Returns 'true' if [state] equals to [StepState.Complete | 'complete'], else 'false'.\n */\n isComplete(): boolean {\n return this._state === StepState.Complete;\n }\n\n /** Method executed when the disabled value changes */\n onDisabledChange(v: boolean): void {\n if (v && this._active) {\n this._active = false;\n this._onDeactivated();\n }\n }\n\n /**\n * Method to change active state internally and emit the [onActivated] event if 'true' or [onDeactivated]\n * event if 'false'. (Blocked if [disabled] is 'true')\n * returns true if successfully changed state\n */\n private _setActive(newActive: boolean): boolean {\n if (this.disabled) {\n return false;\n }\n if (this._active !== newActive) {\n this._active = newActive;\n if (newActive) {\n this._onActivated();\n } else {\n this._onDeactivated();\n }\n return true;\n }\n return false;\n }\n\n private _onActivated(): void {\n this.onActivated.emit(undefined);\n }\n\n private _onDeactivated(): void {\n this.onDeactivated.emit(undefined);\n }\n}\n","import { Component, Input, Output } from '@angular/core';\nimport { OnDestroy, AfterContentInit } from '@angular/core';\nimport { EventEmitter, ContentChildren, QueryList } from '@angular/core';\nimport { Subscription } from 'rxjs';\n\nimport { TdStepComponent } from './step.component';\n\nexport interface IStepChangeEvent {\n newStep: TdStepComponent;\n prevStep: TdStepComponent;\n}\n\nexport enum StepMode {\n Vertical = 'vertical',\n Horizontal = 'horizontal',\n}\n\n@Component({\n selector: 'td-steps',\n styleUrls: ['./steps.component.scss' ],\n templateUrl: './steps.component.html',\n /* tslint:disable-next-line */\n host: {\n class: 'td-steps',\n },\n})\nexport class TdStepsComponent implements OnDestroy, AfterContentInit {\n\n private _subcriptions: Subscription[];\n private _mode: StepMode = StepMode.Vertical;\n private _steps: QueryList<TdStepComponent>;\n\n @ContentChildren(TdStepComponent)\n set stepsContent(steps: QueryList<TdStepComponent>) {\n if (steps) {\n this._steps = steps;\n this._registerSteps();\n }\n }\n\n get steps(): TdStepComponent[] {\n return this._steps.toArray();\n }\n prevStep: TdStepComponent;\n\n /**\n * mode?: StepMode or [\"vertical\" | \"horizontal\"]\n * Defines if the mode of the [TdStepsComponent]. Defaults to [StepMode.Vertical | \"vertical\"]\n */\n @Input('mode')\n set mode(mode: StepMode) {\n switch (mode) {\n case StepMode.Horizontal:\n this._mode = StepMode.Horizontal;\n break;\n default:\n this._mode = StepMode.Vertical;\n }\n }\n get mode(): StepMode {\n return this._mode;\n }\n\n /**\n * stepChange?: function\n * Method to be executed when [onStepChange] event is emitted.\n * Emits an [IStepChangeEvent] implemented object.\n */\n @Output('stepChange') onStepChange: EventEmitter<IStepChangeEvent> = new EventEmitter<IStepChangeEvent>();\n\n /**\n * Executed after content is initialized, loops through any [TdStepComponent] children elements,\n * assigns them a number and subscribes as an observer to their [onActivated] event.\n */\n ngAfterContentInit(): void {\n this._registerSteps();\n }\n\n /**\n * Unsubscribes from [TdStepComponent] children elements when component is destroyed.\n */\n ngOnDestroy(): void {\n this._deregisterSteps();\n }\n\n /**\n * Returns 'true' if [mode] equals to [StepMode.Horizontal | 'horizontal'], else 'false'.\n */\n isHorizontal(): boolean {\n return this._mode === StepMode.Horizontal;\n }\n\n /**\n * Returns 'true' if [mode] equals to [StepMode.Vertical | 'vertical'], else 'false'.\n */\n isVertical(): boolean {\n return this._mode === StepMode.Vertical;\n }\n\n areStepsActive(): boolean {\n return this._steps.filter((step: TdStepComponent) => {\n return step.active;\n }).length > 0;\n }\n\n /**\n * Wraps previous and new [TdStepComponent] numbers in an object that implements [IStepChangeEvent]\n * and emits [onStepChange] event.\n */\n private _onStepSelection(step: TdStepComponent): void {\n if (this.prevStep !== step) {\n let prevStep: TdStepComponent = this.prevStep;\n this.prevStep = step;\n let event: IStepChangeEvent = {\n newStep: step,\n prevStep: prevStep,\n };\n this._deactivateAllBut(step);\n this.onStepChange.emit(event);\n }\n }\n\n /**\n * Loops through [TdStepComponent] children elements and deactivates them ignoring the one passed as an argument.\n */\n private _deactivateAllBut(activeStep: TdStepComponent): void {\n this._steps.filter((step: TdStepComponent) => step !== activeStep)\n .forEach((step: TdStepComponent) => {\n step.active = false;\n });\n }\n\n private _registerSteps(): void {\n this._subcriptions = [];\n this._steps.toArray().forEach((step: TdStepComponent) => {\n let subscription: Subscription = step.onActivated.asObservable().subscribe(() => {\n this._onStepSelection(step);\n });\n this._subcriptions.push(subscription);\n });\n }\n\n private _deregisterSteps(): void {\n if (this._subcriptions) {\n this._subcriptions.forEach((subs: Subscription) => {\n subs.unsubscribe();\n });\n this._subcriptions = undefined;\n }\n }\n}\n","import { Component, Input } from '@angular/core';\n\nimport { ICanDisable, mixinDisabled, ICanDisableRipple, mixinDisableRipple } from '@covalent/core/common';\n\nimport { StepState } from '../step.component';\n\nexport class TdStepHeaderBase {}\n\n/* tslint:disable-next-line */\nexport const _TdStepHeaderMixinBase = mixinDisableRipple(mixinDisabled(TdStepHeaderBase));\n\n@Component({\n selector: 'td-step-header',\n inputs: ['disabled', 'disableRipple'],\n styleUrls: ['./step-header.component.scss' ],\n templateUrl: './step-header.component.html',\n})\nexport class TdStepHeaderComponent extends _TdStepHeaderMixinBase implements ICanDisable, ICanDisableRipple {\n\n /**\n * Number assigned to [TdStepHeaderComponent].\n */\n @Input('number') number: number;\n\n /**\n * active?: boolean\n * Sets for active/inactive states on header.\n */\n @Input('active') active: boolean;\n\n /**\n * state?: StepState or ['none' | 'required' | 'complete']\n * Sets styles for state of header.\n * Defaults to [StepState.None | 'none'].\n */\n @Input('state') state: StepState = StepState.None;\n\n /**\n * tabIndex?: number\n * tabIndex of the step header for a11y\n */\n @Input('tabIndex') tabIndex: number;\n\n /**\n * Returns 'true' if [state] equals to [StepState.Complete | 'complete'], else 'false'.\n */\n isComplete(): boolean {\n return this.state === StepState.Complete;\n }\n\n /**\n * Returns 'true' if [state] equals to [StepState.Required | 'required'], else 'false'.\n */\n isRequired(): boolean {\n return this.state === StepState.Required;\n }\n}\n","import { Component, Input, ViewChild, ElementRef } from '@angular/core';\n\nimport { StepState } from '../step.component';\n\nimport { tdCollapseAnimation } from '@covalent/core/common';\n\n@Component({\n selector: 'td-step-body',\n styleUrls: ['./step-body.component.scss' ],\n templateUrl: './step-body.component.html',\n animations: [\n tdCollapseAnimation,\n ],\n})\nexport class TdStepBodyComponent {\n\n @ViewChild('contentRef', { read: ElementRef }) contentRef: ElementRef;\n\n get hasContent(): boolean {\n return this.contentRef &&\n (this.contentRef.nativeElement.children.length > 0 || !!this.contentRef.nativeElement.textContent.trim());\n }\n\n @ViewChild('actionsRef', { read: ElementRef }) actionsRef: ElementRef;\n\n get hasActions(): boolean {\n return this.actionsRef &&\n (this.actionsRef.nativeElement.children.length > 0 || !!this.actionsRef.nativeElement.textContent.trim());\n }\n\n @ViewChild('summaryRef', { read: ElementRef }) summaryRef: ElementRef;\n\n get hasSummary(): boolean {\n return this.summaryRef &&\n (this.summaryRef.nativeElement.children.length > 0 || !!this.summaryRef.nativeElement.textContent.trim());\n }\n\n /**\n * active?: boolean\n * Sets for active/inactive states on body.\n */\n @Input('active') active: boolean;\n\n /**\n * state?: StepState or ['none' | 'required' | 'complete']\n * Sets styles for state of body.\n * Defaults to [StepState.None | 'none'].\n */\n @Input('state') state: StepState = StepState.None;\n\n /**\n * Returns 'true' if [state] equals to [StepState.Complete | 'complete'], else 'false'.\n */\n isComplete(): boolean {\n return this.state === StepState.Complete;\n }\n}\n","import { Component, ChangeDetectionStrategy, ChangeDetectorRef, Input, ElementRef } from '@angular/core';\n\nimport { coerceBooleanProperty } from '@angular/cdk/coercion';\n\nimport { ICanDisable, ICanDisableRipple } from '@covalent/core/common';\nimport { _TdStepMixinBase, StepState } from '../../step.component';\n\n@Component({\n selector: '[td-step-link],[tdStepLink]',\n styleUrls: ['./nav-step-link.component.scss'],\n templateUrl: './nav-step-link.component.html',\n inputs: ['disabled', 'disableRipple'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n /* tslint:disable-next-line */\n host: {\n '[class.td-step-link]': 'true',\n '[attr.tabindex]': 'disabled ? -1 : (tabIndex || 0)',\n '[attr.disabled]': 'disabled || null',\n '[class.mat-disabled]': 'disabled || null',\n '(click)': '_handleClick($event)',\n },\n})\nexport class TdNavStepLinkComponent extends _TdStepMixinBase implements ICanDisable, ICanDisableRipple {\n\n private _active: boolean = false;\n private _state: StepState = StepState.None;\n\n // Number to display in step header\n number: number;\n\n /**\n * state?: StepState or ['none' | 'required' | 'complete']\n * Sets state of component depending on value.\n * Defaults to [StepState.None | 'none'].\n */\n @Input('state')\n set state(state: StepState) {\n switch (state) {\n case StepState.Complete:\n this._state = StepState.Complete;\n break;\n case StepState.Required:\n this._state = StepState.Required;\n break;\n default:\n this._state = StepState.None;\n break;\n }\n }\n get state(): StepState {\n return this._state;\n }\n\n /**\n * label?: string\n * Label to display in step header\n * Defaults to empty\n */\n @Input('label') label: string;\n\n /**\n * sublabel?: string\n * Sublabel to display in step header\n * Defaults to empty\n */\n @Input('sublabel') sublabel: string;\n\n /**\n * active?: boolean\n * Toggles component between active/deactive.\n */\n @Input('active')\n set active(active: boolean) {\n this._active = coerceBooleanProperty(active);\n this._changeDetectorRef.markForCheck();\n }\n get active(): boolean {\n return this._active;\n }\n\n /**\n * tabIndex?: number\n * tabIndex for component\n */\n @Input('tabIndex') tabIndex: number;\n\n constructor(private _changeDetectorRef: ChangeDetectorRef,\n public elementRef: ElementRef) {\n super();\n }\n\n _handleClick(click: Event): void {\n if (this.disabled) {\n click.preventDefault();\n click.stopImmediatePropagation();\n }\n }\n\n}\n","import { Component, Optional, ContentChildren, ViewChild, QueryList, OnDestroy, ChangeDetectionStrategy, \n AfterContentInit, AfterContentChecked, ChangeDetectorRef, ElementRef, Renderer2 } from '@angular/core';\n\nimport { Subject, merge, of } from 'rxjs';\nimport { distinctUntilChanged, takeUntil } from 'rxjs/operators';\n\nimport { Direction, Directionality } from '@angular/cdk/bidi';\nimport { RIGHT_ARROW, LEFT_ARROW } from '@angular/cdk/keycodes';\nimport { ViewportRuler } from '@angular/cdk/scrolling';\n\nimport { TdNavStepLinkComponent } from '../nav-step-link/nav-step-link.component';\n\n/**\n * The directions that scrolling can go in when the header's tabs exceed the header width. 'After'\n * will scroll the header towards the end of the tabs list and 'before' will scroll towards the\n * beginning of the list.\n */\nexport type ScrollDirection = 'after' | 'before';\n\n@Component({\n selector: 'nav[td-steps][horizontal]',\n styleUrls: ['./nav-steps-horizontal.component.scss'],\n templateUrl: './nav-steps-horizontal.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n /* tslint:disable-next-line */\n host: {\n class: 'td-steps td-steps-horizontal',\n '[class.td-step-header-pagination-controls-enabled]': '_showPaginationControls',\n '[class.td-step-header-rtl]': \"_getLayoutDirection() == 'rtl'\",\n },\n})\nexport class TdNavStepsHorizontalComponent implements AfterContentChecked, AfterContentInit, OnDestroy {\n\n private _separators: HTMLElement[] = [];\n\n /** Emits when the component is destroyed. */\n private readonly _destroyed: Subject<void> = new Subject<void>();\n\n private _widthSubject: Subject<number> = new Subject<number>();\n\n private _scrollDistance: number = 0;\n private _scrollDistanceChanged: boolean = false;\n\n /** Whether the controls for pagination should be displayed */\n _showPaginationControls: boolean = false;\n\n /** Whether the step list can be scrolled more towards the end. */\n _disableScrollAfter: boolean = true;\n\n /** Whether the step list can be scrolled more towards the beginning. */\n _disableScrollBefore: boolean = true;\n\n // all the sub components, which are the individual steps\n @ContentChildren(TdNavStepLinkComponent) _steps: QueryList<TdNavStepLinkComponent>;\n\n @ViewChild('stepListContainer') _stepListContainer: ElementRef;\n @ViewChild('stepList') _stepList: ElementRef;\n\n /*\n * Current width of the element container\n */\n get nativeElementWidth(): number {\n let element: HTMLElement = (<HTMLElement>this._elementRef.nativeElement);\n\n // Need to take into account border, margin and padding that might be around all the crumbs\n let style: CSSStyleDeclaration = window.getComputedStyle(element);\n let borderLeft: number = parseInt(style.borderLeft, 10);\n let borderRight: number = parseInt(style.borderRight, 10);\n let marginLeft: number = parseInt(style.marginLeft, 10);\n let marginRight: number = parseInt(style.marginRight, 10);\n let paddingLeft: number = parseInt(style.paddingLeft, 10);\n let paddingRight: number = parseInt(style.paddingRight, 10);\n\n return element.getBoundingClientRect().width - borderLeft - borderRight - marginLeft - marginRight - paddingLeft - paddingRight;\n }\n\n constructor(private _elementRef: ElementRef,\n private _viewportRuler: ViewportRuler,\n @Optional() private _dir: Directionality,\n private _renderer: Renderer2,\n private _changeDetectorRef: ChangeDetectorRef) { }\n\n ngAfterContentInit(): void {\n merge(\n this._widthSubject.asObservable().pipe(\n distinctUntilChanged(),\n ),\n this._viewportRuler.change(150),\n this._dir ? this._dir.change : of(undefined),\n this._steps.changes,\n ).pipe(\n takeUntil(this._destroyed),\n ).subscribe(() => {\n this._configureSteps();\n this.updatePagination();\n this._changeDetectorRef.markForCheck();\n });\n this._configureSteps();\n this._changeDetectorRef.markForCheck();\n }\n\n ngAfterContentChecked(): void {\n if (this._elementRef && this._elementRef.nativeElement) {\n this._widthSubject.next(this.nativeElementWidth);\n }\n if (this._scrollDistanceChanged) {\n this._updateStepScrollPosition();\n this._scrollDistanceChanged = false;\n this._changeDetectorRef.markForCheck();\n }\n }\n\n ngOnDestroy(): void {\n this._destroyed.next();\n this._destroyed.complete();\n }\n\n /**\n * Listen to right and left key events to move the the viewport.\n */\n _handleKeydown(event: KeyboardEvent): void {\n switch (event.keyCode) {\n case LEFT_ARROW:\n this._scrollHeader('before');\n event.preventDefault();\n break;\n case RIGHT_ARROW:\n this._scrollHeader('after');\n event.preventDefault();\n break;\n default:\n // do something\n }\n }\n\n /**\n * Updates the view whether pagination should be enabled or not.\n */\n updatePagination(): void {\n this._checkPaginationEnabled();\n this._checkScrollingControls();\n this._updateStepScrollPosition();\n }\n\n /** The layout direction of the containing app. */\n _getLayoutDirection(): Direction {\n return this._dir && this._dir.value === 'rtl' ? 'rtl' : 'ltr';\n }\n\n /** Performs the CSS transformation on the step list that will cause the list to scroll. */\n _updateStepScrollPosition(): void {\n const translateX: number = this._getLayoutDirection() === 'ltr' ? -this.scrollDistance : this.scrollDistance;\n // Move step list the amount of pixels scrolled\n this._stepList.nativeElement.style.transform = `translateX(${Math.round(translateX)}px)`;\n\n // Setting the `transform` on IE will change the scroll offset of the parent, causing the\n // position to be thrown off in some cases. We have to reset it ourselves to ensure that\n // it doesn't get thrown off.\n if (this._getLayoutDirection() === 'ltr') {\n this._stepListContainer.nativeElement.scrollLeft = 0;\n } else {\n this._stepListContainer.nativeElement.scrollLeft = this._getMaxScrollDistance();\n }\n }\n\n /** Sets the distance in pixels that the step header should be transformed in the X-axis. */\n get scrollDistance(): number { return this._scrollDistance; }\n set scrollDistance(v: number) {\n this._scrollDistance = Math.max(0, Math.min(this._getMaxScrollDistance(), v));\n\n // Mark that the scroll distance has changed so that after the view is checked, the CSS\n // transformation can move the header.\n this._scrollDistanceChanged = true;\n this._checkScrollingControls();\n }\n\n /**\n * Moves the step list in the 'before' or 'after' direction (towards the beginning of the list or\n * the end of the list, respectively).\n */\n _scrollHeader(scrollDir: ScrollDirection): void {\n // Move the scroll distance one-half the length of the step list's viewport.\n this.scrollDistance += (scrollDir === 'before' ? -1 : 1) * this._stepListContainer.nativeElement.offsetWidth / 2;\n }\n\n /**\n * Evaluate whether the pagination controls should be displayed. If the scroll width of the\n * step list is wider than the size of the header container, then the pagination controls should\n * be shown.\n */\n _checkPaginationEnabled(): void {\n const isEnabled: boolean =\n this._stepList.nativeElement.scrollWidth > this._elementRef.nativeElement.offsetWidth;\n\n if (!isEnabled) {\n this.scrollDistance = 0;\n }\n\n if (isEnabled !== this._showPaginationControls) {\n this._changeDetectorRef.markForCheck();\n }\n\n this._showPaginationControls = isEnabled;\n }\n\n /**\n * Evaluate whether the before and after controls should be enabled or disabled.\n * If the header is at the beginning of the list (scroll distance is equal to 0) then disable the\n * before button. If the header is at the end of the list (scroll distance is equal to the\n * maximum distance we can scroll), then disable the after button.\n */\n _checkScrollingControls(): void {\n // Check if the pagination arrows should be activated.\n this._disableScrollBefore = this.scrollDistance === 0;\n this._disableScrollAfter = this.scrollDistance === this._getMaxScrollDistance();\n this._changeDetectorRef.markForCheck();\n }\n\n /**\n * Determines what is the maximum length in pixels that can be set for the scroll distance. This\n * is equal to the difference in width between the step list container and step header container.\n */\n _getMaxScrollDistance(): number {\n return (this._stepList.nativeElement.scrollWidth - this._stepListContainer.nativeElement.offsetWidth) || 0;\n }\n\n /**\n * Set the step line separators and display numbers\n */\n private _configureSteps(): void {\n this._separators.forEach((separator: HTMLElement) => {\n this._renderer.removeChild(this._stepList.nativeElement, separator);\n });\n let stepsArray: TdNavStepLinkComponent[] = this._steps.toArray();\n // set the index number of the step so can display that number in circle\n stepsArray.forEach((step: TdNavStepLinkComponent, index: number) => {\n if (index > 0 && index < stepsArray.length) {\n let separator: any = this._renderer.createElement('div');\n this._renderer.addClass(separator, 'td-horizontal-line');\n this._separators.push(separator);\n this._renderer.insertBefore(this._stepList.nativeElement, separator, step.elementRef.nativeElement);\n }\n step.number = index + 1;\n });\n \n }\n\n}\n","import { Component, ContentChildren, ViewChild, QueryList, OnDestroy, ChangeDetectionStrategy, \n AfterContentInit, Renderer2, ChangeDetectorRef, ElementRef } from '@angular/core';\n\nimport { Subject } from 'rxjs';\nimport { takeUntil } from 'rxjs/operators';\n\nimport { TdNavStepLinkComponent } from '../nav-step-link/nav-step-link.component';\n\n/**\n * The directions that scrolling can go in when the header's tabs exceed the header width. 'After'\n * will scroll the header towards the end of the tabs list and 'before' will scroll towards the\n * beginning of the list.\n */\nexport type ScrollDirection = 'after' | 'before';\n\n@Component({\n selector: 'nav[td-steps][vertical]',\n styleUrls: ['./nav-steps-vertical.component.scss'],\n templateUrl: './nav-steps-vertical.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n /* tslint:disable-next-line */\n host: {\n class: 'td-steps td-steps-vertical',\n },\n})\nexport class TdNavStepsVerticalComponent implements AfterContentInit, OnDestroy {\n\n private _separators: HTMLElement[] = [];\n\n /** Emits when the component is destroyed. */\n private readonly _destroyed: Subject<void> = new Subject<void>();\n\n // all the sub components, which are the individual steps\n @ContentChildren(TdNavStepLinkComponent) _steps: QueryList<TdNavStepLinkComponent>;\n\n @ViewChild('stepList') _stepList: ElementRef;\n\n constructor(private _renderer: Renderer2,\n private _changeDetectorRef: ChangeDetectorRef) { }\n\n ngAfterContentInit(): void {\n this._steps.changes.pipe(\n takeUntil(this._destroyed),\n ).subscribe(() => {\n this._configureSteps();\n this._changeDetectorRef.markForCheck();\n });\n this._configureSteps();\n this._changeDetectorRef.markForCheck();\n }\n\n ngOnDestroy(): void {\n this._destroyed.next();\n this._destroyed.complete();\n }\n\n /**\n * Set the step line separators and display numbers\n */\n private _configureSteps(): void {\n this._separators.forEach((separator: HTMLElement) => {\n this._renderer.removeChild(this._stepList.nativeElement, separator);\n });\n let stepsArray: TdNavStepLinkComponent[] = this._steps.toArray();\n // set the index number of the step so can display that number in circle\n stepsArray.forEach((step: TdNavStepLinkComponent, index: number) => {\n if (index > 0 && index < stepsArray.length) {\n let separator: any = this._renderer.createElement('div');\n this._renderer.addClass(separator, 'td-vertical-line-wrapper');\n let separatorChild: any = this._renderer.createElement('div');\n this._renderer.addClass(separatorChild, 'td-vertical-line');\n this._renderer.appendChild(separator, separatorChild);\n this._separators.push(separator);\n this._renderer.insertBefore(this._stepList.nativeElement, separator, step.elementRef.nativeElement);\n }\n step.number = index + 1;\n });\n \n }\n\n}\n","import { Type } from '@angular/core';\nimport { NgModule, ModuleWithProviders } from '@angular/core';\n\nimport { CommonModule } from '@angular/common';\nimport { PortalModule } from '@angular/cdk/portal';\nimport { ScrollDispatchModule } from '@angular/cdk/scrolling';\n\nimport { MatIconModule } from '@angular/material/icon';\nimport { MatRippleModule } from '@angular/material/core';\n\nimport { CovalentCommonModule } from '@covalent/core/common';\n\n// Steps\nimport { TdStepsComponent } from './steps.component';\nimport { TdStepHeaderComponent } from './step-header/step-header.component';\nimport { TdStepBodyComponent } from './step-body/step-body.component';\nimport { TdStepComponent, TdStepLabelDirective, TdStepActionsDirective,\n TdStepSummaryDirective } from './step.component';\n\n// Nav Steps\nimport { TdNavStepsHorizontalComponent } from './nav/nav-steps-horizontal/nav-steps-horizontal.component';\nimport { TdNavStepsVerticalComponent } from './nav/nav-steps-vertical/nav-steps-vertical.component';\nimport { TdNavStepLinkComponent } from './nav/nav-step-link/nav-step-link.component';\n\nconst TD_STEPS: Type<any>[] = [\n TdStepsComponent,\n TdStepComponent,\n TdStepHeaderComponent,\n TdStepBodyComponent,\n TdStepLabelDirective,\n TdStepActionsDirective,\n TdStepSummaryDirective,\n TdNavStepsHorizontalComponent,\n TdNavStepsVerticalComponent,\n TdNavStepLinkComponent,\n\n];\n\n@NgModule({\n imports: [\n CommonModule,\n MatIconModule,\n MatRippleModule,\n PortalModule,\n ScrollDispatchModule,\n CovalentCommonModule,\n ],\n declarations: [\n TD_STEPS,\n ],\n exports: [\n TD_STEPS,\n ],\n})\nexport class CovalentStepsModule {\n\n}\n"],"names":["tslib_1.__extends"],"mappings":"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"}