@catull/igniteui-angular
Version:
Ignite UI for Angular is a dependency-free Angular toolkit for building modern web apps
187 lines • 15.4 kB
JavaScript
import { __decorate, __metadata } from "tslib";
import { Component, Input, TemplateRef, HostBinding } from '@angular/core';
import { TicksOrientation, TickLabelsOrientation } from '../slider.common';
/**
* @hidden
*/
var IgxTicksComponent = /** @class */ (function () {
function IgxTicksComponent() {
/**
* @hidden
*/
this.ticksClass = true;
}
Object.defineProperty(IgxTicksComponent.prototype, "ticksTopClass", {
/**
* @hidden
*/
get: function () {
return this.ticksOrientation === TicksOrientation.Top;
},
enumerable: true,
configurable: true
});
Object.defineProperty(IgxTicksComponent.prototype, "hasPrimaryClass", {
/**
* @hidden
*/
get: function () {
return this.primaryTicks > 0;
},
enumerable: true,
configurable: true
});
Object.defineProperty(IgxTicksComponent.prototype, "labelsTopToBottomClass", {
/**
* @hidden
*/
get: function () {
return this.tickLabelsOrientation === TickLabelsOrientation.TopToBottom;
},
enumerable: true,
configurable: true
});
Object.defineProperty(IgxTicksComponent.prototype, "labelsBottomToTopClass", {
/**
* @hidden
*/
get: function () {
return this.tickLabelsOrientation === TickLabelsOrientation.BottomToTop;
},
enumerable: true,
configurable: true
});
/**
* Returns the template context corresponding to
* {@link IgxTickLabelTemplateDirective}
*
* ```typescript
* return {
* $implicit //returns the value per each tick label.
* isPrimery //returns if the tick is primary.
* labels // returns the {@link labels} collection.
* index // returns the index per each tick of the whole sequence.
* }
* ```
*
* @param idx the index per each tick label.
*/
IgxTicksComponent.prototype.context = function (idx) {
return {
$implicit: this.tickLabel(idx),
isPrimary: this.isPrimary(idx),
labels: this.labels,
index: idx
};
};
Object.defineProperty(IgxTicksComponent.prototype, "ticksLength", {
/**
* @hidden
*/
get: function () {
return this.primaryTicks > 0 ?
((this.primaryTicks - 1) * this.secondaryTicks) + this.primaryTicks :
this.secondaryTicks > 0 ? this.secondaryTicks : 0;
},
enumerable: true,
configurable: true
});
IgxTicksComponent.prototype.hiddenTickLabels = function (idx) {
return this.isPrimary(idx) ? this.primaryTickLabels : this.secondaryTickLabels;
};
/**
* @hidden
*/
IgxTicksComponent.prototype.isPrimary = function (idx) {
return this.primaryTicks <= 0 ? false :
idx % (this.secondaryTicks + 1) === 0;
};
/**
* @hidden
*/
IgxTicksComponent.prototype.tickLabel = function (idx) {
if (this.labelsViewEnabled) {
return this.labels[idx];
}
var labelStep = (Math.max(this.minValue, this.maxValue) - Math.min(this.minValue, this.maxValue)) / (this.ticksLength - 1);
var labelVal = labelStep * idx;
return (this.minValue + labelVal).toFixed(2);
};
__decorate([
Input(),
__metadata("design:type", Number)
], IgxTicksComponent.prototype, "primaryTicks", void 0);
__decorate([
Input(),
__metadata("design:type", Number)
], IgxTicksComponent.prototype, "secondaryTicks", void 0);
__decorate([
Input(),
__metadata("design:type", Boolean)
], IgxTicksComponent.prototype, "primaryTickLabels", void 0);
__decorate([
Input(),
__metadata("design:type", Boolean)
], IgxTicksComponent.prototype, "secondaryTickLabels", void 0);
__decorate([
Input(),
__metadata("design:type", Number)
], IgxTicksComponent.prototype, "ticksOrientation", void 0);
__decorate([
Input(),
__metadata("design:type", Number)
], IgxTicksComponent.prototype, "tickLabelsOrientation", void 0);
__decorate([
Input(),
__metadata("design:type", Number)
], IgxTicksComponent.prototype, "maxValue", void 0);
__decorate([
Input(),
__metadata("design:type", Number)
], IgxTicksComponent.prototype, "minValue", void 0);
__decorate([
Input(),
__metadata("design:type", Boolean)
], IgxTicksComponent.prototype, "labelsViewEnabled", void 0);
__decorate([
Input(),
__metadata("design:type", Array)
], IgxTicksComponent.prototype, "labels", void 0);
__decorate([
Input(),
__metadata("design:type", TemplateRef)
], IgxTicksComponent.prototype, "tickLabelTemplateRef", void 0);
__decorate([
HostBinding('class.igx-slider__ticks'),
__metadata("design:type", Object)
], IgxTicksComponent.prototype, "ticksClass", void 0);
__decorate([
HostBinding('class.igx-slider__ticks--top'),
__metadata("design:type", Object),
__metadata("design:paramtypes", [])
], IgxTicksComponent.prototype, "ticksTopClass", null);
__decorate([
HostBinding('class.igx-slider__ticks--tall'),
__metadata("design:type", Object),
__metadata("design:paramtypes", [])
], IgxTicksComponent.prototype, "hasPrimaryClass", null);
__decorate([
HostBinding('class.igx-slider__tick-labels--top-bottom'),
__metadata("design:type", Object),
__metadata("design:paramtypes", [])
], IgxTicksComponent.prototype, "labelsTopToBottomClass", null);
__decorate([
HostBinding('class.igx-slider__tick-labels--bottom-top'),
__metadata("design:type", Object),
__metadata("design:paramtypes", [])
], IgxTicksComponent.prototype, "labelsBottomToTopClass", null);
IgxTicksComponent = __decorate([
Component({
selector: 'igx-ticks',
template: "<div class=\"igx-slider__ticks-group\" *ngFor=\"let n of [].constructor(ticksLength); let idx=index\" [ngClass]=\"{ 'igx-slider__ticks-group--tall': isPrimary(idx)}\">\n <div class=\"igx-slider__ticks-tick\">\n <span class=\"igx-slider__ticks-label\" [ngClass]=\"{ 'igx-slider__tick-label--hidden': !hiddenTickLabels(idx)}\">\n <ng-container *ngTemplateOutlet=\"tickLabelTemplateRef ? tickLabelTemplateRef : tickLabelDefaultTemplate; context: context(idx)\"></ng-container>\n </span>\n </div>\n</div>\n\n<ng-template #tickLabelDefaultTemplate let-value>\n {{ value }}\n</ng-template>\n"
})
], IgxTicksComponent);
return IgxTicksComponent;
}());
export { IgxTicksComponent };
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGlja3MuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6Im5nOi8vaWduaXRldWktYW5ndWxhci8iLCJzb3VyY2VzIjpbImxpYi9zbGlkZXIvdGlja3MvdGlja3MuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxXQUFXLEVBQUUsV0FBVyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNFLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxxQkFBcUIsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBRTNFOztHQUVHO0FBS0g7SUFBQTtRQWtDSTs7V0FFRztRQUVJLGVBQVUsR0FBRyxJQUFJLENBQUM7SUE0RjdCLENBQUM7SUF0Rkcsc0JBQVcsNENBQWE7UUFKeEI7O1dBRUc7YUFFSDtZQUNJLE9BQU8sSUFBSSxDQUFDLGdCQUFnQixLQUFLLGdCQUFnQixDQUFDLEdBQUcsQ0FBQztRQUMxRCxDQUFDOzs7T0FBQTtJQU1ELHNCQUFXLDhDQUFlO1FBSjFCOztXQUVHO2FBRUg7WUFDSSxPQUFPLElBQUksQ0FBQyxZQUFZLEdBQUcsQ0FBQyxDQUFDO1FBQ2pDLENBQUM7OztPQUFBO0lBTUQsc0JBQVcscURBQXNCO1FBSmpDOztXQUVHO2FBRUg7WUFDSSxPQUFPLElBQUksQ0FBQyxxQkFBcUIsS0FBSyxxQkFBcUIsQ0FBQyxXQUFXLENBQUM7UUFDNUUsQ0FBQzs7O09BQUE7SUFNRCxzQkFBVyxxREFBc0I7UUFKakM7O1dBRUc7YUFFSDtZQUNJLE9BQU8sSUFBSSxDQUFDLHFCQUFxQixLQUFLLHFCQUFxQixDQUFDLFdBQVcsQ0FBQztRQUM1RSxDQUFDOzs7T0FBQTtJQUVEOzs7Ozs7Ozs7Ozs7OztPQWNHO0lBQ0ksbUNBQU8sR0FBZCxVQUFlLEdBQVc7UUFDdEIsT0FBTztZQUNILFNBQVMsRUFBRSxJQUFJLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQztZQUM5QixTQUFTLEVBQUUsSUFBSSxDQUFDLFNBQVMs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QkFBQztDQUFBLEFBbElELElBa0lDO1NBbElZLGlCQUFpQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgSW5wdXQsIFRlbXBsYXRlUmVmLCBIb3N0QmluZGluZyB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgVGlja3NPcmllbnRhdGlvbiwgVGlja0xhYmVsc09yaWVudGF0aW9uIH0gZnJvbSAnLi4vc2xpZGVyLmNvbW1vbic7XG5cbi8qKlxuICogQGhpZGRlblxuICovXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ2lneC10aWNrcycsXG4gICAgdGVtcGxhdGVVcmw6ICd0aWNrcy5jb21wb25lbnQuaHRtbCcsXG59KVxuZXhwb3J0IGNsYXNzIElneFRpY2tzQ29tcG9uZW50IHtcbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBwcmltYXJ5VGlja3M6IG51bWJlcjtcblxuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIHNlY29uZGFyeVRpY2tzOiBudW1iZXI7XG5cbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBwcmltYXJ5VGlja0xhYmVsczogYm9vbGVhbjtcblxuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIHNlY29uZGFyeVRpY2tMYWJlbHM6IGJvb2xlYW47XG5cbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyB0aWNrc09yaWVudGF0aW9uOiBUaWNrc09yaWVudGF0aW9uO1xuXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgdGlja0xhYmVsc09yaWVudGF0aW9uOiBUaWNrTGFiZWxzT3JpZW50YXRpb247XG5cbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBtYXhWYWx1ZTogbnVtYmVyO1xuXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgbWluVmFsdWU6IG51bWJlcjtcblxuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIGxhYmVsc1ZpZXdFbmFibGVkOiBib29sZWFuO1xuXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgbGFiZWxzOiBBcnJheTxudW1iZXIgfCBzdHJpbmcgfCBib29sZWFuIHwgbnVsbCB8IHVuZGVmaW5lZD47XG5cbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyB0aWNrTGFiZWxUZW1wbGF0ZVJlZjogVGVtcGxhdGVSZWY8YW55PjtcblxuICAgIC8qKlxuICAgICAqIEBoaWRkZW5cbiAgICAgKi9cbiAgICBASG9zdEJpbmRpbmcoJ2NsYXNzLmlneC1zbGlkZXJfX3RpY2tzJylcbiAgICBwdWJsaWMgdGlja3NDbGFzcyA9IHRydWU7XG5cbiAgICAvKipcbiAgICAgKiBAaGlkZGVuXG4gICAgICovXG4gICAgQEhvc3RCaW5kaW5nKCdjbGFzcy5pZ3gtc2xpZGVyX190aWNrcy0tdG9wJylcbiAgICBwdWJsaWMgZ2V0IHRpY2tzVG9wQ2xhc3MoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLnRpY2tzT3JpZW50YXRpb24gPT09IFRpY2tzT3JpZW50YXRpb24uVG9wO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEBoaWRkZW5cbiAgICAgKi9cbiAgICBASG9zdEJpbmRpbmcoJ2NsYXNzLmlneC1zbGlkZXJfX3RpY2tzLS10YWxsJylcbiAgICBwdWJsaWMgZ2V0IGhhc1ByaW1hcnlDbGFzcygpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMucHJpbWFyeVRpY2tzID4gMDtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBAaGlkZGVuXG4gICAgICovXG4gICAgQEhvc3RCaW5kaW5nKCdjbGFzcy5pZ3gtc2xpZGVyX190aWNrLWxhYmVscy0tdG9wLWJvdHRvbScpXG4gICAgcHVibGljIGdldCBsYWJlbHNUb3BUb0JvdHRvbUNsYXNzKCkge1xuICAgICAgICByZXR1cm4gdGhpcy50aWNrTGFiZWxzT3JpZW50YXRpb24gPT09IFRpY2tMYWJlbHNPcmllbnRhdGlvbi5Ub3BUb0JvdHRvbTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBAaGlkZGVuXG4gICAgICovXG4gICAgQEhvc3RCaW5kaW5nKCdjbGFzcy5pZ3gtc2xpZGVyX190aWNrLWxhYmVscy0tYm90dG9tLXRvcCcpXG4gICAgcHVibGljIGdldCBsYWJlbHNCb3R0b21Ub1RvcENsYXNzKCkge1xuICAgICAgICByZXR1cm4gdGhpcy50aWNrTGFiZWxzT3JpZW50YXRpb24gPT09IFRpY2tMYWJlbHNPcmllbnRhdGlvbi5Cb3R0b21Ub1RvcDtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBSZXR1cm5zIHRoZSB0ZW1wbGF0ZSBjb250ZXh0IGNvcnJlc3BvbmRpbmcgdG9cbiAgICAgKiB7QGxpbmsgSWd4VGlja0xhYmVsVGVtcGxhdGVEaXJlY3RpdmV9XG4gICAgICpcbiAgICAgKiBgYGB0eXBlc2NyaXB0XG4gICAgICogcmV0dXJuIHtcbiAgICAgKiAgJGltcGxpY2l0IC8vcmV0dXJucyB0aGUgdmFsdWUgcGVyIGVhY2ggdGljayBsYWJlbC5cbiAgICAgKiAgaXNQcmltZXJ5IC8vcmV0dXJucyBpZiB0aGUgdGljayBpcyBwcmltYXJ5LlxuICAgICAqICBsYWJlbHMgLy8gcmV0dXJucyB0aGUge0BsaW5rIGxhYmVsc30gY29sbGVjdGlvbi5cbiAgICAgKiAgaW5kZXggLy8gcmV0dXJucyB0aGUgaW5kZXggcGVyIGVhY2ggdGljayBvZiB0aGUgd2hvbGUgc2VxdWVuY2UuXG4gICAgICogfVxuICAgICAqIGBgYFxuICAgICAqXG4gICAgICogQHBhcmFtIGlkeCB0aGUgaW5kZXggcGVyIGVhY2ggdGljayBsYWJlbC5cbiAgICAgKi9cbiAgICBwdWJsaWMgY29udGV4dChpZHg6IG51bWJlcik6IGFueSB7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAkaW1wbGljaXQ6IHRoaXMudGlja0xhYmVsKGlkeCksXG4gICAgICAgICAgICBpc1ByaW1hcnk6IHRoaXMuaXNQcmltYXJ5KGlkeCksXG4gICAgICAgICAgICBsYWJlbHM6IHRoaXMubGFiZWxzLFxuICAgICAgICAgICAgaW5kZXg6IGlkeFxuICAgICAgICB9O1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEBoaWRkZW5cbiAgICAgKi9cbiAgICBwdWJsaWMgZ2V0IHRpY2tzTGVuZ3RoKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5wcmltYXJ5VGlja3MgPiAwID9cbiAgICAgICAgICAgICAgICAoKHRoaXMucHJpbWFyeVRpY2tzIC0gMSkgKiB0aGlzLnNlY29uZGFyeVRpY2tzKSArIHRoaXMucHJpbWFyeVRpY2tzIDpcbiAgICAgICAgICAgICAgICB0aGlzLnNlY29uZGFyeVRpY2tzID4gMCA/IHRoaXMuc2Vjb25kYXJ5VGlja3MgOiAwO1xuICAgIH1cblxuICAgIHB1YmxpYyBoaWRkZW5UaWNrTGFiZWxzKGlkeDogbnVtYmVyKSB7XG4gICAgICAgIHJldHVybiB0aGlzLmlzUHJpbWFyeShpZHgpID8gdGhpcy5wcmltYXJ5VGlja0xhYmVscyA6IHRoaXMuc2Vjb25kYXJ5VGlja0xhYmVscztcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBAaGlkZGVuXG4gICAgICovXG4gICAgcHVibGljIGlzUHJpbWFyeShpZHg6IG51bWJlcikge1xuICAgICAgICByZXR1cm4gdGhpcy5wcmltYXJ5VGlja3MgPD0gMCA/IGZhbHNlIDpcbiAgICAgICAgICAgIGlkeCAlICh0aGlzLnNlY29uZGFyeVRpY2tzICsgMSkgPT09IDA7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQGhpZGRlblxuICAgICAqL1xuICAgIHB1YmxpYyB0aWNrTGFiZWwoaWR4OiBudW1iZXIpIHtcbiAgICAgICAgaWYgKHRoaXMubGFiZWxzVmlld0VuYWJsZWQpIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLmxhYmVsc1tpZHhdO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgbGFiZWxTdGVwID0gKE1hdGgubWF4KHRoaXMubWluVmFsdWUsIHRoaXMubWF4VmFsdWUpIC0gTWF0aC5taW4odGhpcy5taW5WYWx1ZSwgdGhpcy5tYXhWYWx1ZSkpIC8gKHRoaXMudGlja3NMZW5ndGggLSAxKTtcbiAgICAgICAgY29uc3QgbGFiZWxWYWwgPSBsYWJlbFN0ZXAgKiBpZHg7XG5cbiAgICAgICAgcmV0dXJuICh0aGlzLm1pblZhbHVlICsgbGFiZWxWYWwpLnRvRml4ZWQoMik7XG4gICAgfVxufVxuIl19