UNPKG

xui

Version:

xUI Components for Angular

91 lines 9.32 kB
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==