@junte/ui
Version:
Quality Angular UI components kit
97 lines • 8.26 kB
JavaScript
import { __decorate, __metadata } from "tslib";
import { Component, ContentChildren, HostBinding, Input, QueryList } from '@angular/core';
import { PropertyApi } from '../../../core/decorators/api';
import { Size } from '../../../core/enums/size';
import { UI } from '../../../core/enums/ui';
import { AvatarComponent } from '../avatar.component';
var MAX_CAPACITY = 4;
var AvatarsGroupComponent = /** @class */ (function () {
function AvatarsGroupComponent() {
this.host = 'jnt-avatars-group-host';
this._size = Size.normal;
this._total = 0;
this.ui = UI;
this.max = MAX_CAPACITY;
}
Object.defineProperty(AvatarsGroupComponent.prototype, "size", {
get: function () {
return this._size;
},
set: function (size) {
this._size = size || Size.normal;
},
enumerable: true,
configurable: true
});
Object.defineProperty(AvatarsGroupComponent.prototype, "total", {
get: function () {
return this._total;
},
set: function (total) {
this._total = total || 0;
},
enumerable: true,
configurable: true
});
Object.defineProperty(AvatarsGroupComponent.prototype, "capacity", {
get: function () {
return Math.min(this.avatars.length, MAX_CAPACITY);
},
enumerable: true,
configurable: true
});
Object.defineProperty(AvatarsGroupComponent.prototype, "overflow", {
get: function () {
return Math.max(this.total - MAX_CAPACITY, 0);
},
enumerable: true,
configurable: true
});
__decorate([
HostBinding('attr.host'),
__metadata("design:type", Object)
], AvatarsGroupComponent.prototype, "host", void 0);
__decorate([
HostBinding('attr.data-size'),
__metadata("design:type", String)
], AvatarsGroupComponent.prototype, "_size", void 0);
__decorate([
PropertyApi({
description: 'Group size',
path: 'ui.size',
default: Size.normal,
options: [Size.tiny, Size.small, Size.normal, Size.large]
}),
Input(),
__metadata("design:type", String),
__metadata("design:paramtypes", [String])
], AvatarsGroupComponent.prototype, "size", null);
__decorate([
PropertyApi({
description: 'Total avatars (users)',
type: 'number',
default: 0
}),
Input(),
__metadata("design:type", Number),
__metadata("design:paramtypes", [Number])
], AvatarsGroupComponent.prototype, "total", null);
__decorate([
ContentChildren(AvatarComponent),
__metadata("design:type", QueryList)
], AvatarsGroupComponent.prototype, "avatars", void 0);
__decorate([
HostBinding('attr.data-capacity'),
__metadata("design:type", Object),
__metadata("design:paramtypes", [])
], AvatarsGroupComponent.prototype, "capacity", null);
AvatarsGroupComponent = __decorate([
Component({
selector: 'jnt-avatars-group',
template: "<ng-container *ngFor=\"let avatar of avatars; let i = index;\">\n <jnt-avatar child-of=\"jnt-avatars-group-host\" *ngIf=\"i < max \" data-avatar\n [shape]=\"ui.shape.square\"\n [image]=\"avatar.image\"\n [icon]=\"avatar.icon\"\n [name]=\"avatar.name\"\n [surname]=\"avatar.surname\"\n [size]=\"size\">\n </jnt-avatar>\n</ng-container>\n\n<div child-of=\"jnt-avatars-group-host\" *ngIf=\"overflow\" data-overflow>+{{overflow}}</div>"
})
], AvatarsGroupComponent);
return AvatarsGroupComponent;
}());
export { AvatarsGroupComponent };
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXZhdGFycy1ncm91cC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AanVudGUvdWkvIiwic291cmNlcyI6WyJsaWIvZWxlbWVudHMvYXZhdGFyL2F2YXRhcnMtZ3JvdXAvYXZhdGFycy1ncm91cC5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsZUFBZSxFQUFFLFdBQVcsRUFBRSxLQUFLLEVBQUUsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzFGLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUMzRCxPQUFPLEVBQUUsSUFBSSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDaEQsT0FBTyxFQUFFLEVBQUUsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQzVDLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUV0RCxJQUFNLFlBQVksR0FBRyxDQUFDLENBQUM7QUFNdkI7SUFBQTtRQUVxQyxTQUFJLEdBQUcsd0JBQXdCLENBQUM7UUFHbkUsVUFBSyxHQUFTLElBQUksQ0FBQyxNQUFNLENBQUM7UUFFMUIsV0FBTSxHQUFHLENBQUMsQ0FBQztRQUVYLE9BQUUsR0FBRyxFQUFFLENBQUM7UUFDUixRQUFHLEdBQUcsWUFBWSxDQUFDO0lBd0NyQixDQUFDO0lBaENVLHNCQUFJLHVDQUFJO2FBSWpCO1lBQ0UsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDO1FBQ3BCLENBQUM7YUFOUSxVQUFTLElBQVU7WUFDMUIsSUFBSSxDQUFDLEtBQUssR0FBRyxJQUFJLElBQUksSUFBSSxDQUFDLE1BQU0sQ0FBQztRQUNuQyxDQUFDOzs7T0FBQTtJQVdRLHNCQUFJLHdDQUFLO2FBSWxCO1lBQ0UsT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDO1FBQ3JCLENBQUM7YUFOUSxVQUFVLEtBQWE7WUFDOUIsSUFBSSxDQUFDLE1BQU0sR0FBRyxLQUFLLElBQUksQ0FBQyxDQUFDO1FBQzNCLENBQUM7OztPQUFBO0lBVUQsc0JBQUksMkNBQVE7YUFBWjtZQUNFLE9BQU8sSUFBSSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLE1BQU0sRUFBRSxZQUFZLENBQUMsQ0FBQztRQUNyRCxDQUFDOzs7T0FBQTtJQUVELHNCQUFJLDJDQUFRO2FBQVo7WUFDRSxPQUFPLElBQUksQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLEtBQUssR0FBRyxZQUFZLEVBQUUsQ0FBQyxDQUFDLENBQUM7UUFDaEQsQ0FBQzs7O09BQUE7SUEvQ3lCO1FBQXpCLFdBQVcsQ0FBQyxXQUFXLENBQUM7O3VEQUEwQztJQUduRTtRQURDLFdBQVcsQ0FBQyxnQkFBZ0IsQ0FBQzs7d0RBQ0o7SUFhakI7UUFOUixXQUFXLENBQUM7WUFDWCxXQUFXLEVBQUUsWUFBWTtZQUN6QixJQUFJLEVBQUUsU0FBUztZQUNmLE9BQU8sRUFBRSxJQUFJLENBQUMsTUFBTTtZQUNwQixPQUFPLEVBQUUsQ0FBQyxJQUFJLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxLQUFLLEVBQUUsSUFBSSxDQUFDLE1BQU0sRUFBRSxJQUFJLENBQUMsS0FBSyxDQUFDO1NBQzFELENBQUM7UUFDRCxLQUFLLEVBQUU7OztxREFFUDtJQVdRO1FBTFIsV0FBVyxDQUFDO1lBQ1gsV0FBVyxFQUFFLHVCQUF1QjtZQUNwQyxJQUFJLEVBQUUsUUFBUTtZQUNkLE9BQU8sRUFBRSxDQUFDO1NBQ1gsQ0FBQztRQUNELEtBQUssRUFBRTs7O3NEQUVQO0lBT0Q7UUFEQyxlQUFlLENBQUMsZUFBZSxDQUFDO2tDQUN4QixTQUFTOzBEQUFrQjtJQUdwQztRQURDLFdBQVcsQ0FBQyxvQkFBb0IsQ0FBQzs7O3lEQUdqQztJQTdDVSxxQkFBcUI7UUFKakMsU0FBUyxDQUFDO1lBQ1QsUUFBUSxFQUFFLG1CQUFtQjtZQUM3QiwyZ0JBQWdEO1NBQ2pELENBQUM7T0FDVyxxQkFBcUIsQ0FrRGpDO0lBQUQsNEJBQUM7Q0FBQSxBQWxERCxJQWtEQztTQWxEWSxxQkFBcUIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIENvbnRlbnRDaGlsZHJlbiwgSG9zdEJpbmRpbmcsIElucHV0LCBRdWVyeUxpc3QgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFByb3BlcnR5QXBpIH0gZnJvbSAnLi4vLi4vLi4vY29yZS9kZWNvcmF0b3JzL2FwaSc7XG5pbXBvcnQgeyBTaXplIH0gZnJvbSAnLi4vLi4vLi4vY29yZS9lbnVtcy9zaXplJztcbmltcG9ydCB7IFVJIH0gZnJvbSAnLi4vLi4vLi4vY29yZS9lbnVtcy91aSc7XG5pbXBvcnQgeyBBdmF0YXJDb21wb25lbnQgfSBmcm9tICcuLi9hdmF0YXIuY29tcG9uZW50JztcblxuY29uc3QgTUFYX0NBUEFDSVRZID0gNDtcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnam50LWF2YXRhcnMtZ3JvdXAnLFxuICB0ZW1wbGF0ZVVybDogJy4vYXZhdGFycy1ncm91cC5lbmNhcHN1bGF0ZWQuaHRtbCdcbn0pXG5leHBvcnQgY2xhc3MgQXZhdGFyc0dyb3VwQ29tcG9uZW50IHtcblxuICBASG9zdEJpbmRpbmcoJ2F0dHIuaG9zdCcpIHJlYWRvbmx5IGhvc3QgPSAnam50LWF2YXRhcnMtZ3JvdXAtaG9zdCc7XG5cbiAgQEhvc3RCaW5kaW5nKCdhdHRyLmRhdGEtc2l6ZScpXG4gIF9zaXplOiBTaXplID0gU2l6ZS5ub3JtYWw7XG5cbiAgX3RvdGFsID0gMDtcblxuICB1aSA9IFVJO1xuICBtYXggPSBNQVhfQ0FQQUNJVFk7XG5cbiAgQFByb3BlcnR5QXBpKHtcbiAgICBkZXNjcmlwdGlvbjogJ0dyb3VwIHNpemUnLFxuICAgIHBhdGg6ICd1aS5zaXplJyxcbiAgICBkZWZhdWx0OiBTaXplLm5vcm1hbCxcbiAgICBvcHRpb25zOiBbU2l6ZS50aW55LCBTaXplLnNtYWxsLCBTaXplLm5vcm1hbCwgU2l6ZS5sYXJnZV1cbiAgfSlcbiAgQElucHV0KCkgc2V0IHNpemUoc2l6ZTogU2l6ZSkge1xuICAgIHRoaXMuX3NpemUgPSBzaXplIHx8IFNpemUubm9ybWFsO1xuICB9XG5cbiAgZ2V0IHNpemUoKSB7XG4gICAgcmV0dXJuIHRoaXMuX3NpemU7XG4gIH1cblxuICBAUHJvcGVydHlBcGkoe1xuICAgIGRlc2NyaXB0aW9uOiAnVG90YWwgYXZhdGFycyAodXNlcnMpJyxcbiAgICB0eXBlOiAnbnVtYmVyJyxcbiAgICBkZWZhdWx0OiAwXG4gIH0pXG4gIEBJbnB1dCgpIHNldCB0b3RhbCh0b3RhbDogbnVtYmVyKSB7XG4gICAgdGhpcy5fdG90YWwgPSB0b3RhbCB8fCAwO1xuICB9XG5cbiAgZ2V0IHRvdGFsKCkge1xuICAgIHJldHVybiB0aGlzLl90b3RhbDtcbiAgfVxuXG4gIEBDb250ZW50Q2hpbGRyZW4oQXZhdGFyQ29tcG9uZW50KVxuICBhdmF0YXJzOiBRdWVyeUxpc3Q8QXZhdGFyQ29tcG9uZW50PjtcblxuICBASG9zdEJpbmRpbmcoJ2F0dHIuZGF0YS1jYXBhY2l0eScpXG4gIGdldCBjYXBhY2l0eSgpIHtcbiAgICByZXR1cm4gTWF0aC5taW4odGhpcy5hdmF0YXJzLmxlbmd0aCwgTUFYX0NBUEFDSVRZKTtcbiAgfVxuXG4gIGdldCBvdmVyZmxvdygpIHtcbiAgICByZXR1cm4gTWF0aC5tYXgodGhpcy50b3RhbCAtIE1BWF9DQVBBQ0lUWSwgMCk7XG4gIH1cbn1cbiJdfQ==