blob: 79b93c9cbcc38e74303e3b442a598b93a7f70602 [file] [log] [blame]
{"version":3,"file":"covalent-core-steps.js","sources":["../../../../src/platform/core/steps/step.component.ts","../../../../src/platform/core/steps/steps.component.ts","../../../src/platform/core/steps/step-header/step-header.component.ts","../../../src/platform/core/steps/step-body/step-body.component.ts","../../src/platform/core/steps/nav/nav-step-link/nav-step-link.component.ts","../../src/platform/core/steps/nav/nav-steps-horizontal/nav-steps-horizontal.component.ts","../../src/platform/core/steps/nav/nav-steps-vertical/nav-steps-vertical.component.ts","../../../../src/platform/core/steps/steps.module.ts"],"sourcesContent":["import {\n Component,\n Directive,\n Input,\n Output,\n TemplateRef,\n ViewChild,\n ViewContainerRef,\n ContentChild,\n OnInit,\n} 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 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, { static: true }) _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: string;\n\n /**\n * sublabel?: string\n * Sets sublabel of [TdStepComponent] header.\n */\n @Input() 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: EventEmitter<void> = new EventEmitter<void>();\n\n /**\n * deactivated?: function\n * Event emitted when [TdStepComponent] is deactivated.\n */\n @Output() deactivated: 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 [activated] event if 'true' or [deactivated]\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.activated.emit();\n }\n\n private _onDeactivated(): void {\n this.deactivated.emit();\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 private _subcriptions: Subscription[];\n private _mode: StepMode = StepMode.Vertical;\n private _steps: QueryList<TdStepComponent>;\n\n @ContentChildren(TdStepComponent, { descendants: true })\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 if (mode === StepMode.Horizontal) {\n this._mode = StepMode.Horizontal;\n } else {\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 [stepChange] event is emitted.\n * Emits an [IStepChangeEvent] implemented object.\n */\n @Output() stepChange: 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 [activated] 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 (\n this._steps.filter((step: TdStepComponent) => {\n return step.active;\n }).length > 0\n );\n }\n\n /**\n * Wraps previous and new [TdStepComponent] numbers in an object that implements [IStepChangeEvent]\n * and emits [stepChange] event.\n */\n private _onStepSelection(step: TdStepComponent): void {\n if (this.prevStep !== step) {\n const prevStep: TdStepComponent = this.prevStep;\n this.prevStep = step;\n const event: IStepChangeEvent = {\n newStep: step,\n prevStep,\n };\n this._deactivateAllBut(step);\n this.stepChange.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\n .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 const subscription: Subscription = step.activated.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 * Number assigned to [TdStepHeaderComponent].\n */\n @Input() number: number;\n\n /**\n * active?: boolean\n * Sets for active/inactive states on header.\n */\n @Input() 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: StepState = StepState.None;\n\n /**\n * tabIndex?: number\n * tabIndex of the step header for a11y\n */\n @Input() 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: [tdCollapseAnimation],\n})\nexport class TdStepBodyComponent {\n @ViewChild('contentRef', { read: ElementRef, static: true }) contentRef: ElementRef;\n\n get hasContent(): boolean {\n return (\n this.contentRef &&\n (this.contentRef.nativeElement.children.length > 0 || !!this.contentRef.nativeElement.textContent.trim())\n );\n }\n\n @ViewChild('actionsRef', { read: ElementRef, static: true }) actionsRef: ElementRef;\n\n get hasActions(): boolean {\n return (\n this.actionsRef &&\n (this.actionsRef.nativeElement.children.length > 0 || !!this.actionsRef.nativeElement.textContent.trim())\n );\n }\n\n @ViewChild('summaryRef', { read: ElementRef, static: true }) summaryRef: ElementRef;\n\n get hasSummary(): boolean {\n return (\n this.summaryRef &&\n (this.summaryRef.nativeElement.children.length > 0 || !!this.summaryRef.nativeElement.textContent.trim())\n );\n }\n\n /**\n * active?: boolean\n * Sets for active/inactive states on body.\n */\n @Input() 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: 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 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: string;\n\n /**\n * sublabel?: string\n * Sublabel to display in step header\n * Defaults to empty\n */\n @Input() 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: number;\n\n constructor(private _changeDetectorRef: ChangeDetectorRef, 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","import {\n Component,\n Optional,\n ContentChildren,\n ViewChild,\n QueryList,\n OnDestroy,\n ChangeDetectionStrategy,\n AfterContentInit,\n AfterContentChecked,\n ChangeDetectorRef,\n ElementRef,\n Renderer2,\n} 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 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, { descendants: true }) _steps: QueryList<TdNavStepLinkComponent>;\n\n @ViewChild('stepListContainer', { static: true }) _stepListContainer: ElementRef;\n @ViewChild('stepList', { static: true }) _stepList: ElementRef;\n\n /*\n * Current width of the element container\n */\n get nativeElementWidth(): number {\n const 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 const style: CSSStyleDeclaration = window.getComputedStyle(element);\n const borderLeft: number = parseInt(style.borderLeft, 10);\n const borderRight: number = parseInt(style.borderRight, 10);\n const marginLeft: number = parseInt(style.marginLeft, 10);\n const marginRight: number = parseInt(style.marginRight, 10);\n const paddingLeft: number = parseInt(style.paddingLeft, 10);\n const paddingRight: number = parseInt(style.paddingRight, 10);\n\n return (\n element.getBoundingClientRect().width -\n borderLeft -\n borderRight -\n marginLeft -\n marginRight -\n paddingLeft -\n paddingRight\n );\n }\n\n constructor(\n private _elementRef: ElementRef,\n private _viewportRuler: ViewportRuler,\n @Optional() private _dir: Directionality,\n private _renderer: Renderer2,\n private _changeDetectorRef: ChangeDetectorRef,\n ) {}\n\n ngAfterContentInit(): void {\n merge(\n this._widthSubject.asObservable().pipe(distinctUntilChanged()),\n this._viewportRuler.change(150),\n this._dir ? this._dir.change : of(undefined),\n this._steps.changes,\n )\n .pipe(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 {\n return this._scrollDistance;\n }\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 = 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 const 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 const 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","import {\n Component,\n ContentChildren,\n ViewChild,\n QueryList,\n OnDestroy,\n ChangeDetectionStrategy,\n AfterContentInit,\n Renderer2,\n ChangeDetectorRef,\n ElementRef,\n} 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@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 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, { descendants: true }) _steps: QueryList<TdNavStepLinkComponent>;\n\n @ViewChild('stepList', { static: true }) _stepList: ElementRef;\n\n constructor(private _renderer: Renderer2, private _changeDetectorRef: ChangeDetectorRef) {}\n\n ngAfterContentInit(): void {\n this._steps.changes.pipe(takeUntil(this._destroyed)).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 const 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 const separator: any = this._renderer.createElement('div');\n this._renderer.addClass(separator, 'td-vertical-line-wrapper');\n const 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","import { Type } from '@angular/core';\nimport { NgModule } from '@angular/core';\n\nimport { CommonModule } from '@angular/common';\nimport { PortalModule } from '@angular/cdk/portal';\nimport { ScrollingModule } 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 {\n TdStepComponent,\n TdStepLabelDirective,\n TdStepActionsDirective,\n TdStepSummaryDirective,\n} 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@NgModule({\n imports: [CommonModule, MatIconModule, MatRippleModule, PortalModule, ScrollingModule, CovalentCommonModule],\n declarations: [TD_STEPS],\n exports: [TD_STEPS],\n})\nexport class CovalentStepsModule {}\n"],"names":[],"mappings":"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"}