@indice/ng-components
Version:
Indice common components for Angular v12
81 lines • 9.92 kB
JavaScript
import { ChangeDetectionStrategy, Component, ContentChild, Inject, Input, Optional, TemplateRef, ViewChild, ViewEncapsulation } from '@angular/core';
import { LIBSTEPPER_ACCESSOR } from '../../tokens';
import { LibStepInfoDirective } from './lib-step-info.directive';
import { LibStepLabelDirective } from './lib-step-label.directive';
import * as i0 from "@angular/core";
export var StepState;
(function (StepState) {
StepState["Active"] = "Active";
StepState["Completed"] = "Completed";
StepState["Upcoming"] = "Upcoming";
})(StepState || (StepState = {}));
;
export class LibStepComponent {
constructor(_stepper) {
this._stepper = _stepper;
}
/** Indicates the index of the step. */
get index() {
return this._stepper ? this._stepper.steps.toArray().indexOf(this) : -1;
}
/** Indicates whether this step is the last step. */
get isLast() {
return this._stepper ? this._stepper.steps.length - 1 === this.index : false;
}
/** Indicates whether you can navigate to the step or not. */
get isValid() {
if (!this.stepControl) {
return true;
}
return this.stepControl.valid;
}
/** Shows the current state of the step. */
get state() {
const currentIndex = this._stepper?.currentStepIndex;
if (currentIndex === this.index) {
return StepState.Active;
}
if (currentIndex > this.index) {
return StepState.Completed;
}
return StepState.Upcoming;
}
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.6", ngImport: i0, type: LibStepComponent, deps: [{ token: LIBSTEPPER_ACCESSOR, optional: true }], target: i0.ɵɵFactoryTarget.Component }); }
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.6", type: LibStepComponent, selector: "lib-step", inputs: { class: "class", stepControl: "stepControl" }, queries: [{ propertyName: "stepLabel", first: true, predicate: LibStepLabelDirective, descendants: true }, { propertyName: "stepInfo", first: true, predicate: LibStepInfoDirective, descendants: true }], viewQueries: [{ propertyName: "content", first: true, predicate: TemplateRef, descendants: true, static: true }], ngImport: i0, template: `
<ng-template>
<ng-content></ng-content>
</ng-template>
`, isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
}
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.6", ngImport: i0, type: LibStepComponent, decorators: [{
type: Component,
args: [{
selector: 'lib-step',
template: `
<ng-template>
<ng-content></ng-content>
</ng-template>
`,
encapsulation: ViewEncapsulation.None,
changeDetection: ChangeDetectionStrategy.OnPush
}]
}], ctorParameters: () => [{ type: undefined, decorators: [{
type: Optional
}, {
type: Inject,
args: [LIBSTEPPER_ACCESSOR]
}] }], propDecorators: { content: [{
type: ViewChild,
args: [TemplateRef, { static: true }]
}], stepLabel: [{
type: ContentChild,
args: [LibStepLabelDirective]
}], stepInfo: [{
type: ContentChild,
args: [LibStepInfoDirective]
}], class: [{
type: Input
}], stepControl: [{
type: Input
}] } });
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGliLXN0ZXAuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmctY29tcG9uZW50cy9zcmMvbGliL2NvbnRyb2xzL3N0ZXBwZXIvbGliLXN0ZXAuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsUUFBUSxFQUFFLFdBQVcsRUFBRSxTQUFTLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFHckosT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sY0FBYyxDQUFDO0FBQ25ELE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQ2pFLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLDRCQUE0QixDQUFDOztBQUVuRSxNQUFNLENBQU4sSUFBWSxTQUlYO0FBSkQsV0FBWSxTQUFTO0lBQ2pCLDhCQUFpQixDQUFBO0lBQ2pCLG9DQUF1QixDQUFBO0lBQ3ZCLGtDQUFxQixDQUFBO0FBQ3pCLENBQUMsRUFKVyxTQUFTLEtBQVQsU0FBUyxRQUlwQjtBQUFBLENBQUM7QUFZRixNQUFNLE9BQU8sZ0JBQWdCO0lBQ3pCLFlBQzZELFFBQWM7UUFBZCxhQUFRLEdBQVIsUUFBUSxDQUFNO0lBQ3ZFLENBQUM7SUFhTCx1Q0FBdUM7SUFDdkMsSUFBVyxLQUFLO1FBQ1osT0FBTyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxPQUFPLEVBQUUsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQzVFLENBQUM7SUFFRCxvREFBb0Q7SUFDcEQsSUFBVyxNQUFNO1FBQ2IsT0FBTyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxNQUFNLEdBQUcsQ0FBQyxLQUFLLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQztJQUNqRixDQUFDO0lBRUQsNkRBQTZEO0lBQzdELElBQVcsT0FBTztRQUNkLElBQUksQ0FBQyxJQUFJLENBQUMsV0FBVyxFQUFFLENBQUM7WUFDcEIsT0FBTyxJQUFJLENBQUM7UUFDaEIsQ0FBQztRQUNELE9BQU8sSUFBSSxDQUFDLFdBQVcsQ0FBQyxLQUFLLENBQUM7SUFDbEMsQ0FBQztJQUVELDJDQUEyQztJQUMzQyxJQUFXLEtBQUs7UUFDWixNQUFNLFlBQVksR0FBRyxJQUFJLENBQUMsUUFBUSxFQUFFLGdCQUFnQixDQUFDO1FBQ3JELElBQUksWUFBWSxLQUFLLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQztZQUM5QixPQUFPLFNBQVMsQ0FBQyxNQUFNLENBQUM7UUFDNUIsQ0FBQztRQUNELElBQUksWUFBWSxHQUFHLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQztZQUM1QixPQUFPLFNBQVMsQ0FBQyxTQUFTLENBQUM7UUFDL0IsQ0FBQztRQUNELE9BQU8sU0FBUyxDQUFDLFFBQVEsQ0FBQztJQUM5QixDQUFDOzhHQTVDUSxnQkFBZ0Isa0JBRUQsbUJBQW1CO2tHQUZsQyxnQkFBZ0IsK0lBUVgscUJBQXFCLDJFQUVyQixvQkFBb0IseUZBSnZCLFdBQVcsOERBZFo7Ozs7S0FJVDs7MkZBSVEsZ0JBQWdCO2tCQVY1QixTQUFTO21CQUFDO29CQUNQLFFBQVEsRUFBRSxVQUFVO29CQUNwQixRQUFRLEVBQUU7Ozs7S0FJVDtvQkFDRCxhQUFhLEVBQUUsaUJBQWlCLENBQUMsSUFBSTtvQkFDckMsZUFBZSxFQUFFLHVCQUF1QixDQUFDLE1BQU07aUJBQ2xEOzswQkFHUSxRQUFROzswQkFBSSxNQUFNOzJCQUFDLG1CQUFtQjt5Q0FJTSxPQUFPO3NCQUF2RCxTQUFTO3VCQUFDLFdBQVcsRUFBRSxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUU7Z0JBRUksU0FBUztzQkFBcEQsWUFBWTt1QkFBQyxxQkFBcUI7Z0JBRVEsUUFBUTtzQkFBbEQsWUFBWTt1QkFBQyxvQkFBb0I7Z0JBRWxCLEtBQUs7c0JBQXBCLEtBQUs7Z0JBRVUsV0FBVztzQkFBMUIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQsIENvbnRlbnRDaGlsZCwgSW5qZWN0LCBJbnB1dCwgT3B0aW9uYWwsIFRlbXBsYXRlUmVmLCBWaWV3Q2hpbGQsIFZpZXdFbmNhcHN1bGF0aW9uIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IEFic3RyYWN0Q29udHJvbCB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuXHJcbmltcG9ydCB7IExJQlNURVBQRVJfQUNDRVNTT1IgfSBmcm9tICcuLi8uLi90b2tlbnMnO1xyXG5pbXBvcnQgeyBMaWJTdGVwSW5mb0RpcmVjdGl2ZSB9IGZyb20gJy4vbGliLXN0ZXAtaW5mby5kaXJlY3RpdmUnO1xyXG5pbXBvcnQgeyBMaWJTdGVwTGFiZWxEaXJlY3RpdmUgfSBmcm9tICcuL2xpYi1zdGVwLWxhYmVsLmRpcmVjdGl2ZSc7XHJcblxyXG5leHBvcnQgZW51bSBTdGVwU3RhdGUge1xyXG4gICAgQWN0aXZlID0gJ0FjdGl2ZScsXHJcbiAgICBDb21wbGV0ZWQgPSAnQ29tcGxldGVkJyxcclxuICAgIFVwY29taW5nID0gJ1VwY29taW5nJ1xyXG59O1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgICBzZWxlY3RvcjogJ2xpYi1zdGVwJyxcclxuICAgIHRlbXBsYXRlOiBgXHJcbiAgICAgICAgPG5nLXRlbXBsYXRlPlxyXG4gICAgICAgICAgICA8bmctY29udGVudD48L25nLWNvbnRlbnQ+XHJcbiAgICAgICAgPC9uZy10ZW1wbGF0ZT5cclxuICAgIGAsXHJcbiAgICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxyXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2hcclxufSlcclxuZXhwb3J0IGNsYXNzIExpYlN0ZXBDb21wb25lbnQge1xyXG4gICAgY29uc3RydWN0b3IoXHJcbiAgICAgICAgQE9wdGlvbmFsKCkgQEluamVjdChMSUJTVEVQUEVSX0FDQ0VTU09SKSBwdWJsaWMgcmVhZG9ubHkgX3N0ZXBwZXI/OiBhbnlcclxuICAgICkgeyB9XHJcblxyXG4gICAgLyoqIFRoZSBjb250ZW50IHByb3ZpZGVkIGZvciB0aGUgc3RlcC4gKi9cclxuICAgIEBWaWV3Q2hpbGQoVGVtcGxhdGVSZWYsIHsgc3RhdGljOiB0cnVlIH0pIHB1YmxpYyBjb250ZW50ITogVGVtcGxhdGVSZWY8YW55PjtcclxuICAgIC8qKiBUaGUgbGFiZWwgb2YgdGhlIHN0ZXAgZGlzcGxheWVkIGluIGhlYWRlciwgaWYgYXBwbGljYWJsZS4gKi9cclxuICAgIEBDb250ZW50Q2hpbGQoTGliU3RlcExhYmVsRGlyZWN0aXZlKSBwdWJsaWMgc3RlcExhYmVsOiBMaWJTdGVwTGFiZWxEaXJlY3RpdmUgfCB1bmRlZmluZWQ7XHJcbiAgICAvKiogVGhlIGluZm8gb2YgdGhlIHN0ZXAgZGlzcGxheWVkIGluIGhlYWRlciwgaWYgYXBwbGljYWJsZS4gKi9cclxuICAgIEBDb250ZW50Q2hpbGQoTGliU3RlcEluZm9EaXJlY3RpdmUpIHB1YmxpYyBzdGVwSW5mbzogTGliU3RlcEluZm9EaXJlY3RpdmUgfCB1bmRlZmluZWQ7XHJcbiAgICAvKiogQW4gb3B0aW9uYWwgQ1NTIGNsYXNzIGZvciB0aGUgc3RlcCBoZWFkZXIuICovXHJcbiAgICBASW5wdXQoKSBwdWJsaWMgY2xhc3M6IHN0cmluZyB8IHVuZGVmaW5lZDtcclxuICAgIC8qKiBUaGUgYWJzdHJhY3QgY29udHJvbCBvZiB0aGUgc3RlcC4gKi9cclxuICAgIEBJbnB1dCgpIHB1YmxpYyBzdGVwQ29udHJvbDogQWJzdHJhY3RDb250cm9sIHwgdW5kZWZpbmVkO1xyXG5cclxuICAgIC8qKiBJbmRpY2F0ZXMgdGhlIGluZGV4IG9mIHRoZSBzdGVwLiAqL1xyXG4gICAgcHVibGljIGdldCBpbmRleCgpOiBudW1iZXIge1xyXG4gICAgICAgIHJldHVybiB0aGlzLl9zdGVwcGVyID8gdGhpcy5fc3RlcHBlci5zdGVwcy50b0FycmF5KCkuaW5kZXhPZih0aGlzKSA6IC0xO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKiBJbmRpY2F0ZXMgd2hldGhlciB0aGlzIHN0ZXAgaXMgdGhlIGxhc3Qgc3RlcC4gKi9cclxuICAgIHB1YmxpYyBnZXQgaXNMYXN0KCk6IGJvb2xlYW4ge1xyXG4gICAgICAgIHJldHVybiB0aGlzLl9zdGVwcGVyID8gdGhpcy5fc3RlcHBlci5zdGVwcy5sZW5ndGggLSAxID09PSB0aGlzLmluZGV4IDogZmFsc2U7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqIEluZGljYXRlcyB3aGV0aGVyIHlvdSBjYW4gbmF2aWdhdGUgdG8gdGhlIHN0ZXAgb3Igbm90LiAqL1xyXG4gICAgcHVibGljIGdldCBpc1ZhbGlkKCk6IGJvb2xlYW4ge1xyXG4gICAgICAgIGlmICghdGhpcy5zdGVwQ29udHJvbCkge1xyXG4gICAgICAgICAgICByZXR1cm4gdHJ1ZTtcclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuc3RlcENvbnRyb2wudmFsaWQ7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqIFNob3dzIHRoZSBjdXJyZW50IHN0YXRlIG9mIHRoZSBzdGVwLiAqL1xyXG4gICAgcHVibGljIGdldCBzdGF0ZSgpOiBTdGVwU3RhdGUge1xyXG4gICAgICAgIGNvbnN0IGN1cnJlbnRJbmRleCA9IHRoaXMuX3N0ZXBwZXI/LmN1cnJlbnRTdGVwSW5kZXg7XHJcbiAgICAgICAgaWYgKGN1cnJlbnRJbmRleCA9PT0gdGhpcy5pbmRleCkge1xyXG4gICAgICAgICAgICByZXR1cm4gU3RlcFN0YXRlLkFjdGl2ZTtcclxuICAgICAgICB9XHJcbiAgICAgICAgaWYgKGN1cnJlbnRJbmRleCA+IHRoaXMuaW5kZXgpIHtcclxuICAgICAgICAgICAgcmV0dXJuIFN0ZXBTdGF0ZS5Db21wbGV0ZWQ7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHJldHVybiBTdGVwU3RhdGUuVXBjb21pbmc7XHJcbiAgICB9XHJcbn1cclxuIl19