@asi-ngtools/lib
Version:
This project is a little components library, simple to use, which will help you to simplify your project.
199 lines (198 loc) • 14.4 kB
JavaScript
/**
* @fileoverview added by tsickle
* @suppress {checkTypes,extraRequire,uselessCode} checked by tsc
*/
import * as tslib_1 from "tslib";
import { NG_VALUE_ACCESSOR } from '@angular/forms';
import { DefaultControlValueAccessor } from './../common/default-control-value-accessor';
import { AsiRadioComponent } from './asi-radio/asi-radio.component';
import { Input, Component, TemplateRef, ViewChild, ContentChildren, QueryList, forwardRef, Renderer2, ElementRef } from '@angular/core';
var AsiRadioGroupComponent = /** @class */ (function (_super) {
tslib_1.__extends(AsiRadioGroupComponent, _super);
function AsiRadioGroupComponent(renderer, elementRef) {
var _this = _super.call(this) || this;
_this.renderer = renderer;
_this.elementRef = elementRef;
/**
* Label position
*/
_this.labelPosition = 'top';
/**
* Vertical / Horizontal
*/
_this.vertical = false;
/**
* Track data base on a sub attribute rather than reference
*/
_this.trackBy = null;
_this.radios = new Array();
return _this;
}
/**
* @return {?}
*/
AsiRadioGroupComponent.prototype.ngOnInit = /**
* @return {?}
*/
function () {
this.renderer.addClass(this.elementRef.nativeElement, 'label-' + this.labelPosition);
if (this.vertical) {
this.renderer.addClass(this.elementRef.nativeElement, 'asi-vertical');
}
};
/**
* @return {?}
*/
AsiRadioGroupComponent.prototype.getRadios = /**
* @return {?}
*/
function () {
return this.radios;
};
/**
* @param {?} radioEvent
* @return {?}
*/
AsiRadioGroupComponent.prototype.onRadioChecked = /**
* @param {?} radioEvent
* @return {?}
*/
function (radioEvent) {
var _this = this;
if (radioEvent.value) {
this.radios.forEach(function (radio) {
if (radio.index === radioEvent.index) {
radio.active = true;
_this.value = radio.value;
}
else {
radio.active = false;
}
});
}
else {
this.radios.forEach(function (radio) {
radio.active = false;
});
this.value = null;
}
};
/**
* @return {?}
*/
AsiRadioGroupComponent.prototype.ngAfterContentInit = /**
* @return {?}
*/
function () {
var _this = this;
/** @type {?} */
var index = -1;
this.queryRadios.forEach(function (radio) {
radio.index = ++index;
_this.radios.push(radio);
});
this.initValue(this.value);
};
/**
* @param {?} value
* @return {?}
*/
AsiRadioGroupComponent.prototype.writeValue = /**
* @param {?} value
* @return {?}
*/
function (value) {
this._value = value;
this.initValue(value);
};
/**
* @param {?} value
* @return {?}
*/
AsiRadioGroupComponent.prototype.initValue = /**
* @param {?} value
* @return {?}
*/
function (value) {
var _this = this;
if (value == null) {
this.radios.forEach(function (radio) {
radio.active = false;
});
}
else {
if (this.trackBy != null) {
this.radios.forEach(function (radio) {
radio.active = radio.value[_this.trackBy] === value[_this.trackBy];
});
}
else {
this.radios.forEach(function (radio) {
radio.active = (radio.value === value);
});
}
}
};
AsiRadioGroupComponent.decorators = [
{ type: Component, args: [{
selector: 'asi-radio-group',
template: "<label class=\"input-label\" *ngIf=\"label != null\">{{label | translate}}</label>\n<div class=\"asi-radio-container\">\n <asi-radio-element *ngFor=\"let radio of getRadios()\" \n [radio]=\"radio\" \n [disabled]=\"disabled\"\n [value]=\"radio.active\" \n (onValueChange)=\"onRadioChecked($event)\">\n </asi-radio-element>\n</div>",
host: { 'class': 'asi-component asi-radio-group' },
providers: [
{
provide: NG_VALUE_ACCESSOR,
useExisting: forwardRef(function () { return AsiRadioGroupComponent; }),
multi: true
}
]
}] }
];
/** @nocollapse */
AsiRadioGroupComponent.ctorParameters = function () { return [
{ type: Renderer2 },
{ type: ElementRef }
]; };
AsiRadioGroupComponent.propDecorators = {
label: [{ type: Input }],
labelPosition: [{ type: Input }],
vertical: [{ type: Input }],
trackBy: [{ type: Input }],
queryRadios: [{ type: ContentChildren, args: [AsiRadioComponent,] }],
contentTemplate: [{ type: ViewChild, args: [TemplateRef,] }]
};
return AsiRadioGroupComponent;
}(DefaultControlValueAccessor));
export { AsiRadioGroupComponent };
if (false) {
/**
* Label to display (is translated)
* @type {?}
*/
AsiRadioGroupComponent.prototype.label;
/**
* Label position
* @type {?}
*/
AsiRadioGroupComponent.prototype.labelPosition;
/**
* Vertical / Horizontal
* @type {?}
*/
AsiRadioGroupComponent.prototype.vertical;
/**
* Track data base on a sub attribute rather than reference
* @type {?}
*/
AsiRadioGroupComponent.prototype.trackBy;
/** @type {?} */
AsiRadioGroupComponent.prototype.queryRadios;
/** @type {?} */
AsiRadioGroupComponent.prototype.contentTemplate;
/** @type {?} */
AsiRadioGroupComponent.prototype.radios;
/** @type {?} */
AsiRadioGroupComponent.prototype.renderer;
/** @type {?} */
AsiRadioGroupComponent.prototype.elementRef;
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXNpLXJhZGlvLWdyb3VwLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0Bhc2ktbmd0b29scy9saWIvIiwic291cmNlcyI6WyJsaWIvY29tcG9uZW50cy9hc2ktcmFkaW8tZ3JvdXAvYXNpLXJhZGlvLWdyb3VwLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ25ELE9BQU8sRUFBRSwyQkFBMkIsRUFBRSxNQUFNLDRDQUE0QyxDQUFDO0FBQ3pGLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBQ3BFLE9BQU8sRUFDTCxLQUFLLEVBQUUsU0FBUyxFQUFFLFdBQVcsRUFBRSxTQUFTLEVBQUUsZUFBZSxFQUFFLFNBQVMsRUFDcEUsVUFBVSxFQUE0QixTQUFTLEVBQUUsVUFBVSxFQUM1RCxNQUFNLGVBQWUsQ0FBQzs7SUFjcUIsa0RBQTJCO0lBbUJyRSxnQ0FBb0IsUUFBbUIsRUFDN0I7UUFEVixZQUVFLGlCQUFPLFNBQ1I7UUFIbUIsY0FBUSxHQUFSLFFBQVEsQ0FBVztRQUM3QixnQkFBVSxHQUFWLFVBQVU7Ozs7OEJBZjJFLEtBQUs7Ozs7eUJBR2hGLEtBQUs7Ozs7d0JBR0UsSUFBSTt1QkFNdEIsSUFBSSxLQUFLLEVBQXFCOztLQUt0Qzs7OztJQUVELHlDQUFROzs7SUFBUjtRQUNFLElBQUksQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsYUFBYSxFQUFFLFFBQVEsR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDLENBQUM7UUFDckYsRUFBRSxDQUFDLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUM7WUFDbEIsSUFBSSxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxhQUFhLEVBQUUsY0FBYyxDQUFDLENBQUM7U0FDdkU7S0FDRjs7OztJ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dEIsQ0FBc0IsQ0FBQzs0QkFDckQsS0FBSyxFQUFFLElBQUk7eUJBQ1o7cUJBQ0Y7aUJBQ0Y7Ozs7Z0JBZHVDLFNBQVM7Z0JBQUUsVUFBVTs7O3dCQWtCMUQsS0FBSztnQ0FFTCxLQUFLOzJCQUdMLEtBQUs7MEJBR0wsS0FBSzs4QkFFTCxlQUFlLFNBQUMsaUJBQWlCO2tDQUVqQyxTQUFTLFNBQUMsV0FBVzs7aUNBbkN4QjtFQW9CNEMsMkJBQTJCO1NBQTFELHNCQUFzQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE5HX1ZBTFVFX0FDQ0VTU09SIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5pbXBvcnQgeyBEZWZhdWx0Q29udHJvbFZhbHVlQWNjZXNzb3IgfSBmcm9tICcuLy4uL2NvbW1vbi9kZWZhdWx0LWNvbnRyb2wtdmFsdWUtYWNjZXNzb3InO1xyXG5pbXBvcnQgeyBBc2lSYWRpb0NvbXBvbmVudCB9IGZyb20gJy4vYXNpLXJhZGlvL2FzaS1yYWRpby5jb21wb25lbnQnO1xyXG5pbXBvcnQge1xyXG4gIElucHV0LCBDb21wb25lbnQsIFRlbXBsYXRlUmVmLCBWaWV3Q2hpbGQsIENvbnRlbnRDaGlsZHJlbiwgUXVlcnlMaXN0LFxyXG4gIGZvcndhcmRSZWYsIE9uSW5pdCwgQWZ0ZXJDb250ZW50SW5pdCwgUmVuZGVyZXIyLCBFbGVtZW50UmVmXHJcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2FzaS1yYWRpby1ncm91cCcsXHJcbiAgdGVtcGxhdGVVcmw6ICdhc2ktcmFkaW8tZ3JvdXAuY29tcG9uZW50Lmh0bWwnLFxyXG4gIGhvc3Q6IHsgJ2NsYXNzJzogJ2FzaS1jb21wb25lbnQgYXNpLXJhZGlvLWdyb3VwJyB9LFxyXG4gIHByb3ZpZGVyczogW1xyXG4gICAge1xyXG4gICAgICBwcm92aWRlOiBOR19WQUxVRV9BQ0NFU1NPUixcclxuICAgICAgdXNlRXhpc3Rpbmc6IGZvcndhcmRSZWYoKCkgPT4gQXNpUmFkaW9Hcm91cENvbXBvbmVudCksXHJcbiAgICAgIG11bHRpOiB0cnVlXHJcbiAgICB9XHJcbiAgXVxyXG59KVxyXG5leHBvcnQgY2xhc3MgQXNpUmFkaW9Hcm91cENvbXBvbmVudCBleHRlbmRzIERlZmF1bHRDb250cm9sVmFsdWVBY2Nlc3NvciBpbXBsZW1lbnRzIE9uSW5pdCwgQWZ0ZXJDb250ZW50SW5pdCB7XHJcblxyXG4gIC8qKiBMYWJlbCB0byBkaXNwbGF5IChpcyB0cmFuc2xhdGVkKSAqL1xyXG4gIEBJbnB1dCgpIGxhYmVsOiBzdHJpbmc7XHJcbiAgLyoqIExhYmVsIHBvc2l0aW9uICovXHJcbiAgQElucHV0KCkgbGFiZWxQb3NpdGlvbjogJ3RvcCcgfCAnbGVmdCcgfCAncmlnaHQnIHwgJ2JvdHRvbScgfCAnYm90dG9tLWNlbnRlcicgfCAndG9wLWNlbnRlcicgPSAndG9wJztcclxuXHJcbiAgLyoqIFZlcnRpY2FsIC8gSG9yaXpvbnRhbCAqL1xyXG4gIEBJbnB1dCgpIHZlcnRpY2FsID0gZmFsc2U7XHJcblxyXG4gIC8qKiBUcmFjayBkYXRhIGJhc2Ugb24gYSBzdWIgYXR0cmlidXRlIHJhdGhlciB0aGFuIHJlZmVyZW5jZSAqL1xyXG4gIEBJbnB1dCgpIHRyYWNrQnk6IHN0cmluZyA9IG51bGw7XHJcblxyXG4gIEBDb250ZW50Q2hpbGRyZW4oQXNpUmFkaW9Db21wb25lbnQpIHF1ZXJ5UmFkaW9zOiBRdWVyeUxpc3Q8QXNpUmFkaW9Db21wb25lbnQ+O1xyXG5cclxuICBAVmlld0NoaWxkKFRlbXBsYXRlUmVmKSBjb250ZW50VGVtcGxhdGU6IFRlbXBsYXRlUmVmPGFueT47XHJcblxyXG4gIHJhZGlvcyA9IG5ldyBBcnJheTxBc2lSYWRpb0NvbXBvbmVudD4oKTtcclxuXHJcbiAgY29uc3RydWN0b3IocHJpdmF0ZSByZW5kZXJlcjogUmVuZGVyZXIyLFxyXG4gICAgcHJpdmF0ZSBlbGVtZW50UmVmOiBFbGVtZW50UmVmKSB7XHJcbiAgICBzdXBlcigpO1xyXG4gIH1cclxuXHJcbiAgbmdPbkluaXQoKSB7XHJcbiAgICB0aGlzLnJlbmRlcmVyLmFkZENsYXNzKHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LCAnbGFiZWwtJyArIHRoaXMubGFiZWxQb3NpdGlvbik7XHJcbiAgICBpZiAodGhpcy52ZXJ0aWNhbCkge1xyXG4gICAgICB0aGlzLnJlbmRlcmVyLmFkZENsYXNzKHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LCAnYXNpLXZlcnRpY2FsJyk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBnZXRSYWRpb3MoKSB7XHJcbiAgICByZXR1cm4gdGhpcy5yYWRpb3M7XHJcbiAgfVxyXG5cclxuICBvblJhZGlvQ2hlY2tlZChyYWRpb0V2ZW50OiB7IGluZGV4OiBudW1iZXIsIHZhbHVlOiBib29sZWFuIH0pIHtcclxuICAgIGlmIChyYWRpb0V2ZW50LnZhbHVlKSB7XHJcbiAgICAgIHRoaXMucmFkaW9zLmZvckVhY2goKHJhZGlvKSA9PiB7XHJcbiAgICAgICAgaWYgKHJhZGlvLmluZGV4ID09PSByYWRpb0V2ZW50LmluZGV4KSB7XHJcbiAgICAgICAgICByYWRpby5hY3RpdmUgPSB0cnVlO1xyXG4gICAgICAgICAgdGhpcy52YWx1ZSA9IHJhZGlvLnZhbHVlO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICByYWRpby5hY3RpdmUgPSBmYWxzZTtcclxuICAgICAgICB9XHJcbiAgICAgIH0pO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy5yYWRpb3MuZm9yRWFjaCgocmFkaW8pID0+IHtcclxuICAgICAgICByYWRpby5hY3RpdmUgPSBmYWxzZTtcclxuICAgICAgfSk7XHJcbiAgICAgIHRoaXMudmFsdWUgPSBudWxsO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgbmdBZnRlckNvbnRlbnRJbml0KCkge1xyXG4gICAgbGV0IGluZGV4ID0gLTE7XHJcbiAgICB0aGlzLnF1ZXJ5UmFkaW9zLmZvckVhY2gocmFkaW8gPT4ge1xyXG4gICAgICByYWRpby5pbmRleCA9ICsraW5kZXg7XHJcbiAgICAgIHRoaXMucmFkaW9zLnB1c2gocmFkaW8pXHJcbiAgICB9KTtcclxuXHJcbiAgICB0aGlzLmluaXRWYWx1ZSh0aGlzLnZhbHVlKTtcclxuICB9XHJcblxyXG4gIHdyaXRlVmFsdWUodmFsdWU6IGFueSkge1xyXG4gICAgdGhpcy5fdmFsdWUgPSB2YWx1ZTtcclxuICAgIHRoaXMuaW5pdFZhbHVlKHZhbHVlKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgaW5pdFZhbHVlKHZhbHVlOiBhbnkpIHtcclxuICAgIGlmICh2YWx1ZSA9PSBudWxsKSB7XHJcbiAgICAgIHRoaXMucmFkaW9zLmZvckVhY2goKHJhZGlvKSA9PiB7XHJcbiAgICAgICAgcmFkaW8uYWN0aXZlID0gZmFsc2U7XHJcbiAgICAgIH0pO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgaWYgKHRoaXMudHJhY2tCeSAhPSBudWxsKSB7XHJcbiAgICAgICAgdGhpcy5yYWRpb3MuZm9yRWFjaCgocmFkaW8pID0+IHtcclxuICAgICAgICAgIHJhZGlvLmFjdGl2ZSA9IHJhZGlvLnZhbHVlW3RoaXMudHJhY2tCeV0gPT09IHZhbHVlW3RoaXMudHJhY2tCeV07XHJcbiAgICAgICAgfSk7XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgdGhpcy5yYWRpb3MuZm9yRWFjaCgocmFkaW8pID0+IHtcclxuICAgICAgICAgIHJhZGlvLmFjdGl2ZSA9IChyYWRpby52YWx1ZSA9PT0gdmFsdWUpXHJcbiAgICAgICAgfSk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcbn1cclxuIl19