ngx-pluto
Version:
155 lines • 11.9 kB
JavaScript
/**
* @fileoverview added by tsickle
* @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
*/
import { Component, ViewEncapsulation, Input, ViewChildren, QueryList, ChangeDetectorRef } from '@angular/core';
import { NpCircleBar } from './circle-bar';
/**
* @ignore
*/
var NpPercentCircleBarComponent = /** @class */ (function () {
function NpPercentCircleBarComponent(cdf) {
this.cdf = cdf;
this.startAngle = 0.0;
this.thickness = 15;
this.size = 156;
this.animationTime = 500;
this.animation = { duration: this.animationTime, easing: 'circleProgressEasing' };
this.bindingData = [];
}
/**
* @return {?}
*/
NpPercentCircleBarComponent.prototype.ngOnInit = /**
* @return {?}
*/
function () {
this.buildBindingData();
};
/**
* @param {?} changes
* @return {?}
*/
NpPercentCircleBarComponent.prototype.ngOnChanges = /**
* @param {?} changes
* @return {?}
*/
function (changes) {
if (changes) {
if (changes.animationTime && changes.animationTime.currentValue) {
this.animation.duration = this.animationTime;
}
if (changes.data && changes.data.currentValue) {
this.data = changes.data.currentValue;
this.buildBindingData();
this.refresh();
}
}
};
/**
* @return {?}
*/
NpPercentCircleBarComponent.prototype.refresh = /**
* @return {?}
*/
function () {
if (this.circleBars && this.circleBars.length > 0) {
this.circleBars.forEach((/**
* @param {?} circleBar
* @return {?}
*/
function (circleBar) {
circleBar.init();
}));
}
};
/**
* @private
* @return {?}
*/
NpPercentCircleBarComponent.prototype.buildBindingData = /**
* @private
* @return {?}
*/
function () {
if (this.data && this.data.length > 0) {
/** @type {?} */
var len = this.data.length;
/** @type {?} */
var currentPercentage = 0;
this.bindingData = [];
for (var i = 0; i < len; i++) {
/** @type {?} */
var item = this.data[i];
/** @type {?} */
var bindingItem = {
startAngle: 2 * Math.PI * currentPercentage,
fill: { gradient: [item.color] },
value: item.percentage
};
currentPercentage += item.percentage;
this.bindingData.push(bindingItem);
}
}
};
NpPercentCircleBarComponent.decorators = [
{ type: Component, args: [{
selector: "np-percent-circle-bar",
template: "<div class=\"percent-circle-bar-wrapper\">\r\n <div class=\"percent-circle-bar-text\" [ngStyle]=\"{'width.px': size, 'height.px': size}\">\r\n <ng-content></ng-content>\r\n </div>\r\n <ng-container *ngFor=\"let item of bindingData; let i = index; let isFirst = first; let isLast = last;\">\r\n <np-circle-bar class=\"percent-circle-bar\" [value]=\"item.value\" [fill]=\"item.fill\" [thickness]=\"thickness\"\r\n [size]=\"size\" [startAngle]=\"item.startAngle\" [emptyFill]=\"isFirst ? 'rgba(0, 0, 0, 0.1)' : 'rgba(0, 0, 0, 0)'\"\r\n [ngStyle]=\"{'z-index': (10 - i)}\" [animation]=\"animation\">\r\n </np-circle-bar>\r\n </ng-container>\r\n</div>\r\n",
encapsulation: ViewEncapsulation.None,
styles: [".percent-circle-bar-wrapper{position:relative}.percent-circle-bar-wrapper .percent-circle-bar{position:absolute;left:0;top:0}.percent-circle-bar-wrapper .percent-circle-bar-text{display:flex;justify-content:center;align-items:center;z-index:11}"]
}] }
];
/** @nocollapse */
NpPercentCircleBarComponent.ctorParameters = function () { return [
{ type: ChangeDetectorRef }
]; };
NpPercentCircleBarComponent.propDecorators = {
circleBars: [{ type: ViewChildren, args: [NpCircleBar,] }],
startAngle: [{ type: Input }],
thickness: [{ type: Input }],
size: [{ type: Input }],
data: [{ type: Input }],
animationTime: [{ type: Input }]
};
return NpPercentCircleBarComponent;
}());
export { NpPercentCircleBarComponent };
if (false) {
/**
* @type {?}
* @private
*/
NpPercentCircleBarComponent.prototype.circleBars;
/** @type {?} */
NpPercentCircleBarComponent.prototype.startAngle;
/** @type {?} */
NpPercentCircleBarComponent.prototype.thickness;
/** @type {?} */
NpPercentCircleBarComponent.prototype.size;
/** @type {?} */
NpPercentCircleBarComponent.prototype.data;
/** @type {?} */
NpPercentCircleBarComponent.prototype.animationTime;
/** @type {?} */
NpPercentCircleBarComponent.prototype.animation;
/** @type {?} */
NpPercentCircleBarComponent.prototype.bindingData;
/**
* @type {?}
* @private
*/
NpPercentCircleBarComponent.prototype.cdf;
}
/**
* @ignore
* @record
*/
export function PercentCircleBarData() { }
if (false) {
/** @type {?} */
PercentCircleBarData.prototype.color;
/** @type {?} */
PercentCircleBarData.prototype.percentage;
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGVyY2VudC1jaXJjbGUtYmFyLmpzIiwic291cmNlUm9vdCI6Im5nOi8vbmd4LXBsdXRvLyIsInNvdXJjZXMiOlsibGliL2NpcmNsZS1iYXIvcGVyY2VudC1jaXJjbGUtYmFyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7QUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLGlCQUFpQixFQUFVLEtBQUssRUFBdUMsWUFBWSxFQUFFLFNBQVMsRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUM3SixPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sY0FBYyxDQUFDOzs7O0FBSzNDO0lBb0JFLHFDQUFvQixHQUFzQjtRQUF0QixRQUFHLEdBQUgsR0FBRyxDQUFtQjtRQVRqQyxlQUFVLEdBQVcsR0FBRyxDQUFDO1FBQ3pCLGNBQVMsR0FBVyxFQUFFLENBQUM7UUFDdkIsU0FBSSxHQUFXLEdBQUcsQ0FBQztRQUVuQixrQkFBYSxHQUFXLEdBQUcsQ0FBQztRQUVyQyxjQUFTLEdBQUcsRUFBRSxRQUFRLEVBQUUsSUFBSSxDQUFDLGFBQWEsRUFBRSxNQUFNLEVBQUUsc0JBQXNCLEVBQUUsQ0FBQztRQUM3RSxnQkFBVyxHQUFVLEVBQUUsQ0FBQztJQUVzQixDQUFDOzs7O0lBRS9DLDhDQUFROzs7SUFBUjtRQUNFLElBQUksQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDO0lBQzFCLENBQUM7Ozs7O0lBRUQsaURBQVc7Ozs7SUFBWCxVQUFZLE9BQXNCO1FBQ2hDLElBQUksT0FBTyxFQUFFO1lBQ1gsSUFBSSxPQUFPLENBQUMsYUFBYSxJQUFJLE9BQU8sQ0FBQyxhQUFhLENBQUMsWUFBWSxFQUFFO2dCQUMvRCxJQUFJLENBQUMsU0FBUyxDQUFDLFFBQVEsR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDO2FBQzlDO1lBRUQsSUFBSSxPQUFPLENBQUMsSUFBSSxJQUFJLE9BQU8sQ0FBQyxJQUFJLENBQUMsWUFBWSxFQUFFO2dCQUM3QyxJQUFJLENBQUMsSUFBSSxHQUFHLE9BQU8sQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDO2dCQUN0QyxJQUFJLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQztnQkFDeEIsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDO2FBQ2hCO1NBQ0Y7SUFDSCxDQUFDOzs7O0lBRUQsNkNBQU87OztJQUFQO1FBQ0UsSUFBSSxJQUFJLENBQUMsVUFBVSxJQUFJLElBQUksQ0FBQyxVQUFVLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRTtZQUNqRCxJQUFJLENBQUMsVUFBVSxDQUFDLE9BQU87Ozs7WUFBQyxVQUFBLFNBQVM7Z0JBQy9CLFNBQVMsQ0FBQyxJQUFJLEVBQUUsQ0FBQztZQUNuQixDQUFDLEVBQUMsQ0FBQztTQUNKO0lBQ0gsQ0FBQzs7Ozs7SUFFTyxzREFBZ0I7Ozs7SUFBeEI7UUFDRSxJQUFJLElBQUksQ0FBQyxJQUFJLElBQUksSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFOztnQkFDakMsR0FBRyxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTTs7Z0JBQ3RCLGlCQUFpQixHQUFHLENBQUM7WUFDekIsSUFBSSxDQUFDLFdBQVcsR0FBRyxFQUFFLENBQUM7WUFDdEIsS0FBSyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLEdBQUcsRUFBRSxDQUFDLEVBQUUsRUFBRTs7b0JBQ3RCLElBQUksR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQzs7b0JBQ3JCLFdBQVcsR0FBRztvQkFDaEIsVUFBVSxFQUFFLENBQUMsR0FBRyxJQUFJLENBQUMsRUFBRSxHQUFHLGlCQUFpQjtvQkFDM0MsSUFBSSxFQUFFLEVBQUUsUUFBUSxFQUFFLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxFQUFFO29CQUNoQyxLQUFLLEVBQUUsSUFBSSxDQUFDLFVBQVU7aUJBQ3ZCO2dCQUNELGlCQUFpQixJQUFJLElBQUksQ0FBQyxVQUFVLENBQUM7Z0JBQ3JDLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDO2FBQ3BDO1NBQ0Y7SUFDSCxDQUFDOztnQkFoRUYsU0FBUyxTQUFDO29CQUNULFFBQVEsRUFBRSx1QkFBdUI7b0JBQ2pDLDZxQkFBc0M7b0JBRXRDLGFBQWEsRUFBRSxpQkFBaUIsQ0FBQyxJQUFJOztpQkFDdEM7Ozs7Z0JBWG1ILGlCQUFpQjs7OzZCQWVsSSxZQUFZLFNBQUMsV0FBVzs2QkFFeEIsS0FBSzs0QkFDTCxLQUFLO3VCQUNMLEtBQUs7dUJBQ0wsS0FBSztnQ0FDTCxLQUFLOztJQWtEUixrQ0FBQztDQUFBLEFBakVELElBaUVDO1NBMURZLDJCQUEyQjs7Ozs7O0lBRXRDLGlEQUFzRTs7SUFFdEUsaURBQWtDOztJQUNsQyxnREFBZ0M7O0lBQ2hDLDJDQUE0Qjs7SUFDNUIsMkNBQXNDOztJQUN0QyxvREFBcUM7O0lBRXJDLGdEQUE2RTs7SUFDN0Usa0RBQXdCOzs7OztJQUVaLDBDQUE4Qjs7Ozs7O0FBa0Q1QywwQ0FHQzs7O0lBRkMscUNBQWM7O0lBQ2QsMENBQW1CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBWaWV3RW5jYXBzdWxhdGlvbiwgT25Jbml0LCBJbnB1dCwgT3V0cHV0LCBFdmVudEVtaXR0ZXIsIFNpbXBsZUNoYW5nZXMsIFZpZXdDaGlsZHJlbiwgUXVlcnlMaXN0LCBDaGFuZ2VEZXRlY3RvclJlZiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBOcENpcmNsZUJhciB9IGZyb20gJy4vY2lyY2xlLWJhcic7XHJcblxyXG4vKipcclxuICogQGlnbm9yZVxyXG4gKi9cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6IGBucC1wZXJjZW50LWNpcmNsZS1iYXJgLFxyXG4gIHRlbXBsYXRlVXJsOiAncGVyY2VudC1jaXJjbGUtYmFyLmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWydwZXJjZW50LWNpcmNsZS1iYXIuc2NzcyddLFxyXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXHJcbn0pXHJcblxyXG5leHBvcnQgY2xhc3MgTnBQZXJjZW50Q2lyY2xlQmFyQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcclxuXHJcbiAgQFZpZXdDaGlsZHJlbihOcENpcmNsZUJhcikgcHJpdmF0ZSBjaXJjbGVCYXJzOiBRdWVyeUxpc3Q8TnBDaXJjbGVCYXI+O1xyXG5cclxuICBASW5wdXQoKSBzdGFydEFuZ2xlOiBudW1iZXIgPSAwLjA7XHJcbiAgQElucHV0KCkgdGhpY2tuZXNzOiBudW1iZXIgPSAxNTtcclxuICBASW5wdXQoKSBzaXplOiBudW1iZXIgPSAxNTY7XHJcbiAgQElucHV0KCkgZGF0YTogUGVyY2VudENpcmNsZUJhckRhdGFbXTtcclxuICBASW5wdXQoKSBhbmltYXRpb25UaW1lOiBudW1iZXIgPSA1MDA7XHJcblxyXG4gIGFuaW1hdGlvbiA9IHsgZHVyYXRpb246IHRoaXMuYW5pbWF0aW9uVGltZSwgZWFzaW5nOiAnY2lyY2xlUHJvZ3Jlc3NFYXNpbmcnIH07XHJcbiAgYmluZGluZ0RhdGE6IGFueVtdID0gW107XHJcblxyXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgY2RmOiBDaGFuZ2VEZXRlY3RvclJlZikgeyB9XHJcblxyXG4gIG5nT25Jbml0KCkge1xyXG4gICAgdGhpcy5idWlsZEJpbmRpbmdEYXRhKCk7XHJcbiAgfVxyXG5cclxuICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKTogdm9pZCB7XHJcbiAgICBpZiAoY2hhbmdlcykge1xyXG4gICAgICBpZiAoY2hhbmdlcy5hbmltYXRpb25UaW1lICYmIGNoYW5nZXMuYW5pbWF0aW9uVGltZS5jdXJyZW50VmFsdWUpIHtcclxuICAgICAgICB0aGlzLmFuaW1hdGlvbi5kdXJhdGlvbiA9IHRoaXMuYW5pbWF0aW9uVGltZTtcclxuICAgICAgfVxyXG5cclxuICAgICAgaWYgKGNoYW5nZXMuZGF0YSAmJiBjaGFuZ2VzLmRhdGEuY3VycmVudFZhbHVlKSB7XHJcbiAgICAgICAgdGhpcy5kYXRhID0gY2hhbmdlcy5kYXRhLmN1cnJlbnRWYWx1ZTtcclxuICAgICAgICB0aGlzLmJ1aWxkQmluZGluZ0RhdGEoKTtcclxuICAgICAgICB0aGlzLnJlZnJlc2goKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcmVmcmVzaCgpIHtcclxuICAgIGlmICh0aGlzLmNpcmNsZUJhcnMgJiYgdGhpcy5jaXJjbGVCYXJzLmxlbmd0aCA+IDApIHtcclxuICAgICAgdGhpcy5jaXJjbGVCYXJzLmZvckVhY2goY2lyY2xlQmFyID0+IHtcclxuICAgICAgICBjaXJjbGVCYXIuaW5pdCgpO1xyXG4gICAgICB9KTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHByaXZhdGUgYnVpbGRCaW5kaW5nRGF0YSgpIHtcclxuICAgIGlmICh0aGlzLmRhdGEgJiYgdGhpcy5kYXRhLmxlbmd0aCA+IDApIHtcclxuICAgICAgbGV0IGxlbiA9IHRoaXMuZGF0YS5sZW5ndGg7XHJcbiAgICAgIGxldCBjdXJyZW50UGVyY2VudGFnZSA9IDA7XHJcbiAgICAgIHRoaXMuYmluZGluZ0RhdGEgPSBbXTtcclxuICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBsZW47IGkrKykge1xyXG4gICAgICAgIGNvbnN0IGl0ZW0gPSB0aGlzLmRhdGFbaV07XHJcbiAgICAgICAgbGV0IGJpbmRpbmdJdGVtID0ge1xyXG4gICAgICAgICAgc3RhcnRBbmdsZTogMiAqIE1hdGguUEkgKiBjdXJyZW50UGVyY2VudGFnZSxcclxuICAgICAgICAgIGZpbGw6IHsgZ3JhZGllbnQ6IFtpdGVtLmNvbG9yXSB9LFxyXG4gICAgICAgICAgdmFsdWU6IGl0ZW0ucGVyY2VudGFnZVxyXG4gICAgICAgIH07XHJcbiAgICAgICAgY3VycmVudFBlcmNlbnRhZ2UgKz0gaXRlbS5wZXJjZW50YWdlO1xyXG4gICAgICAgIHRoaXMuYmluZGluZ0RhdGEucHVzaChiaW5kaW5nSXRlbSk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcbn1cclxuXHJcbi8qKlxyXG4gKiBAaWdub3JlXHJcbiAqL1xyXG5leHBvcnQgaW50ZXJmYWNlIFBlcmNlbnRDaXJjbGVCYXJEYXRhIHtcclxuICBjb2xvcjogc3RyaW5nO1xyXG4gIHBlcmNlbnRhZ2U6IG51bWJlcjtcclxufVxyXG5cclxuXHJcbiJdfQ==