xui
Version:
xUI Components for Angular
91 lines • 9.32 kB
JavaScript
import { __decorate, __metadata } from "tslib";
import { ChangeDetectionStrategy, ChangeDetectorRef, Component, HostListener, Inject, Input } from '@angular/core';
import { InputBoolean } from '../utils';
import { RADIO_LIST_ACCESSOR } from './radio-list.types';
import * as i0 from "@angular/core";
import * as i1 from "@angular/common";
import * as i2 from "../icon/icon.component";
export class RadioOptionComponent {
get isSelected() {
return this.value === this.list.value;
}
get isFocused() {
return this.value === this.list.focusedValue;
}
get isDisabled() {
return this.disabled || this.list.disabled;
}
get icon() {
return this.isSelected ? 'radiobox-marked' : 'radiobox-blank';
}
get styles() {
const ret = {
'x-radio-option': true,
'x-radio-option-focus': this.isFocused,
'x-radio-option-active': this.isSelected,
'x-radio-option-disabled': this.isDisabled
};
ret[`x-radio-option-${this.color}`] = !!this.color;
ret[`x-radio-option-background-${this.list.color}`] = true;
ret[`x-radio-option-${this.list.size}`] = true;
return ret;
}
constructor(list, cdr) {
this.list = list;
this.cdr = cdr;
this.disabled = false;
}
ngOnInit() {
this.list.onChange$.subscribe(() => this.cdr.markForCheck());
}
click() {
if (!this.isDisabled) {
this.list.value = this.value;
}
}
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.1", ngImport: i0, type: RadioOptionComponent, deps: [{ token: RADIO_LIST_ACCESSOR }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component }); }
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.1.1", type: RadioOptionComponent, selector: "xui-radio-option", inputs: { color: "color", value: "value", description: "description", disabled: "disabled" }, host: { listeners: { "click": "click()" } }, ngImport: i0, template: `<div [ngClass]="styles">
<xui-icon>{{ icon }}</xui-icon>
<div class="x-radio-option-content">
<ng-content></ng-content>
<div class="x-radio-option-description">
<ng-content select="[xuiDescription]"></ng-content>
</div>
</div>
</div>`, isInline: true, dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "component", type: i2.IconComponent, selector: "xui-icon" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
}
__decorate([
InputBoolean(),
__metadata("design:type", Object)
], RadioOptionComponent.prototype, "disabled", void 0);
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.1", ngImport: i0, type: RadioOptionComponent, decorators: [{
type: Component,
args: [{
selector: 'xui-radio-option',
changeDetection: ChangeDetectionStrategy.OnPush,
template: `<div [ngClass]="styles">
<xui-icon>{{ icon }}</xui-icon>
<div class="x-radio-option-content">
<ng-content></ng-content>
<div class="x-radio-option-description">
<ng-content select="[xuiDescription]"></ng-content>
</div>
</div>
</div>`
}]
}], ctorParameters: function () { return [{ type: undefined, decorators: [{
type: Inject,
args: [RADIO_LIST_ACCESSOR]
}] }, { type: i0.ChangeDetectorRef }]; }, propDecorators: { color: [{
type: Input
}], value: [{
type: Input
}], description: [{
type: Input
}], disabled: [{
type: Input
}], click: [{
type: HostListener,
args: ['click']
}] } });
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmFkaW8tb3B0aW9uLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL2xpYnMveHVpL3NyYy9yYWRpby1saXN0L3JhZGlvLW9wdGlvbi5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFDTCx1QkFBdUIsRUFDdkIsaUJBQWlCLEVBQ2pCLFNBQVMsRUFDVCxZQUFZLEVBQ1osTUFBTSxFQUNOLEtBQUssRUFFTixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sVUFBVSxDQUFDO0FBRXhDLE9BQU8sRUFBRSxtQkFBbUIsRUFBcUIsTUFBTSxvQkFBb0IsQ0FBQzs7OztBQWU1RSxNQUFNLE9BQU8sb0JBQW9CO0lBUS9CLElBQUksVUFBVTtRQUNaLE9BQU8sSUFBSSxDQUFDLEtBQUssS0FBSyxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQztJQUN4QyxDQUFDO0lBRUQsSUFBSSxTQUFTO1FBQ1gsT0FBTyxJQUFJLENBQUMsS0FBSyxLQUFLLElBQUksQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDO0lBQy9DLENBQUM7SUFFRCxJQUFJLFVBQVU7UUFDWixPQUFPLElBQUksQ0FBQyxRQUFRLElBQUksSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUM7SUFDN0MsQ0FBQztJQUVELElBQUksSUFBSTtRQUNOLE9BQU8sSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsaUJBQWlCLENBQUMsQ0FBQyxDQUFDLGdCQUFnQixDQUFDO0lBQ2hFLENBQUM7SUFFRCxJQUFJLE1BQU07UUFDUixNQUFNLEdBQUcsR0FBaUM7WUFDeEMsZ0JBQWdCLEVBQUUsSUFBSTtZQUN0QixzQkFBc0IsRUFBRSxJQUFJLENBQUMsU0FBUztZQUN0Qyx1QkFBdUIsRUFBRSxJQUFJLENBQUMsVUFBVTtZQUN4Qyx5QkFBeUIsRUFBRSxJQUFJLENBQUMsVUFBVTtTQUMzQyxDQUFDO1FBRUYsR0FBRyxDQUFDLGtCQUFrQixJQUFJLENBQUMsS0FBSyxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQztRQUNuRCxHQUFHLENBQUMsNkJBQTZCLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUMsR0FBRyxJQUFJLENBQUM7UUFDM0QsR0FBRyxDQUFDLGtCQUFrQixJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDLEdBQUcsSUFBSSxDQUFDO1FBQy9DLE9BQU8sR0FBRyxDQUFDO0lBQ2IsQ0FBQztJQUVELFlBQWlELElBQXVCLEVBQVUsR0FBc0I7UUFBdkQsU0FBSSxHQUFKLElBQUksQ0FBbUI7UUFBVSxRQUFHLEdBQUgsR0FBRyxDQUFtQjtRQWhDL0UsYUFBUSxHQUFHLEtBQUssQ0FBQztJQWdDaUUsQ0FBQztJQUU1RyxRQUFRO1FBQ04sSUFBSSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsU0FBUyxDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsWUFBWSxFQUFFLENBQUMsQ0FBQztJQUMvRCxDQUFDO0lBR0QsS0FBSztRQUNILElBQUksQ0FBQyxJQUFJLENBQUMsVUFBVSxFQUFFO1lBQ3BCLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUM7U0FDOUI7SUFDSCxDQUFDOzhHQWpEVSxvQkFBb0Isa0JBc0NYLG1CQUFtQjtrR0F0QzVCLG9CQUFvQixtTUFWckI7Ozs7Ozs7O1NBUUg7O0FBUWtCO0lBQWYsWUFBWSxFQUFFOztzREFBa0I7MkZBTi9CLG9CQUFvQjtrQkFiaEMsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUsa0JBQWtCO29CQUM1QixlQUFlLEVBQUUsdUJBQXVCLENBQUMsTUFBTTtvQkFDL0MsUUFBUSxFQUFFOzs7Ozs7OztTQVFIO2lCQUNSOzswQkF1Q2MsTUFBTTsyQkFBQyxtQkFBbUI7NEVBbkM5QixLQUFLO3NCQUFiLEtBQUs7Z0JBQ0csS0FBSztzQkFBYixLQUFLO2dCQUNHLFdBQVc7c0JBQW5CLEtBQUs7Z0JBQ21CLFFBQVE7c0JBQWhDLEtBQUs7Z0JBdUNOLEtBQUs7c0JBREosWUFBWTt1QkFBQyxPQUFPIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gIENoYW5nZURldGVjdG9yUmVmLFxuICBDb21wb25lbnQsXG4gIEhvc3RMaXN0ZW5lcixcbiAgSW5qZWN0LFxuICBJbnB1dCxcbiAgT25Jbml0XG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgSW5wdXRCb29sZWFuIH0gZnJvbSAnLi4vdXRpbHMnO1xuaW1wb3J0IHsgQm9vbGVhbklucHV0IH0gZnJvbSAnQGFuZ3VsYXIvY2RrL2NvZXJjaW9uJztcbmltcG9ydCB7IFJBRElPX0xJU1RfQUNDRVNTT1IsIFJhZGlvTGlzdEFjY2Vzc29yIH0gZnJvbSAnLi9yYWRpby1saXN0LnR5cGVzJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAneHVpLXJhZGlvLW9wdGlvbicsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogYDxkaXYgW25nQ2xhc3NdPVwic3R5bGVzXCI+XG4gICAgPHh1aS1pY29uPnt7IGljb24gfX08L3h1aS1pY29uPlxuICAgIDxkaXYgY2xhc3M9XCJ4LXJhZGlvLW9wdGlvbi1jb250ZW50XCI+XG4gICAgICA8bmctY29udGVudD48L25nLWNvbnRlbnQ+XG4gICAgICA8ZGl2IGNsYXNzPVwieC1yYWRpby1vcHRpb24tZGVzY3JpcHRpb25cIj5cbiAgICAgICAgPG5nLWNvbnRlbnQgc2VsZWN0PVwiW3h1aURlc2NyaXB0aW9uXVwiPjwvbmctY29udGVudD5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICA8L2Rpdj5gXG59KVxuZXhwb3J0IGNsYXNzIFJhZGlvT3B0aW9uQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcbiAgc3RhdGljIG5nQWNjZXB0SW5wdXRUeXBlX2Rpc2FibGVkOiBCb29sZWFuSW5wdXQ7XG5cbiAgQElucHV0KCkgY29sb3I/OiBzdHJpbmc7XG4gIEBJbnB1dCgpIHZhbHVlITogc3RyaW5nO1xuICBASW5wdXQoKSBkZXNjcmlwdGlvbj86IHN0cmluZztcbiAgQElucHV0KCkgQElucHV0Qm9vbGVhbigpIGRpc2FibGVkID0gZmFsc2U7XG5cbiAgZ2V0IGlzU2VsZWN0ZWQoKSB7XG4gICAgcmV0dXJuIHRoaXMudmFsdWUgPT09IHRoaXMubGlzdC52YWx1ZTtcbiAgfVxuXG4gIGdldCBpc0ZvY3VzZWQoKSB7XG4gICAgcmV0dXJuIHRoaXMudmFsdWUgPT09IHRoaXMubGlzdC5mb2N1c2VkVmFsdWU7XG4gIH1cblxuICBnZXQgaXNEaXNhYmxlZCgpIHtcbiAgICByZXR1cm4gdGhpcy5kaXNhYmxlZCB8fCB0aGlzLmxpc3QuZGlzYWJsZWQ7XG4gIH1cblxuICBnZXQgaWNvbigpIHtcbiAgICByZXR1cm4gdGhpcy5pc1NlbGVjdGVkID8gJ3JhZGlvYm94LW1hcmtlZCcgOiAncmFkaW9ib3gtYmxhbmsnO1xuICB9XG5cbiAgZ2V0IHN0eWxlcygpIHtcbiAgICBjb25zdCByZXQ6IHsgW2tsYXNzOiBzdHJpbmddOiBib29sZWFuIH0gPSB7XG4gICAgICAneC1yYWRpby1vcHRpb24nOiB0cnVlLFxuICAgICAgJ3gtcmFkaW8tb3B0aW9uLWZvY3VzJzogdGhpcy5pc0ZvY3VzZWQsXG4gICAgICAneC1yYWRpby1vcHRpb24tYWN0aXZlJzogdGhpcy5pc1NlbGVjdGVkLFxuICAgICAgJ3gtcmFkaW8tb3B0aW9uLWRpc2FibGVkJzogdGhpcy5pc0Rpc2FibGVkXG4gICAgfTtcblxuICAgIHJldFtgeC1yYWRpby1vcHRpb24tJHt0aGlzLmNvbG9yfWBdID0gISF0aGlzLmNvbG9yO1xuICAgIHJldFtgeC1yYWRpby1vcHRpb24tYmFja2dyb3VuZC0ke3RoaXMubGlzdC5jb2xvcn1gXSA9IHRydWU7XG4gICAgcmV0W2B4LXJhZGlvLW9wdGlvbi0ke3RoaXMubGlzdC5zaXplfWBdID0gdHJ1ZTtcbiAgICByZXR1cm4gcmV0O1xuICB9XG5cbiAgY29uc3RydWN0b3IoQEluamVjdChSQURJT19MSVNUX0FDQ0VTU09SKSBwcml2YXRlIGxpc3Q6IFJhZGlvTGlzdEFjY2Vzc29yLCBwcml2YXRlIGNkcjogQ2hhbmdlRGV0ZWN0b3JSZWYpIHt9XG5cbiAgbmdPbkluaXQoKSB7XG4gICAgdGhpcy5saXN0Lm9uQ2hhbmdlJC5zdWJzY3JpYmUoKCkgPT4gdGhpcy5jZHIubWFya0ZvckNoZWNrKCkpO1xuICB9XG5cbiAgQEhvc3RMaXN0ZW5lcignY2xpY2snKVxuICBjbGljaygpIHtcbiAgICBpZiAoIXRoaXMuaXNEaXNhYmxlZCkge1xuICAgICAgdGhpcy5saXN0LnZhbHVlID0gdGhpcy52YWx1ZTtcbiAgICB9XG4gIH1cbn1cbiJdfQ==