@taiga-ui/kit
Version:
Taiga UI Angular main components kit
99 lines • 13.5 kB
JavaScript
var TuiRadioListComponent_1;
import { __decorate, __param } from "tslib";
import { ChangeDetectionStrategy, ChangeDetectorRef, Component, ElementRef, forwardRef, HostBinding, Inject, Input, Optional, QueryList, Self, ViewChildren, } from '@angular/core';
import { NgControl } from '@angular/forms';
import { AbstractTuiNullableControl, ALWAYS_FALSE_HANDLER, EMPTY_QUERY, isNativeFocusedIn, TUI_DEFAULT_IDENTITY_MATCHER, TUI_FOCUSABLE_ITEM_ACCESSOR, tuiDefaultProp, } from '@taiga-ui/cdk';
import { TuiRadioLabeledComponent } from '@taiga-ui/kit/components/radio-labeled';
let TuiRadioListComponent = TuiRadioListComponent_1 = class TuiRadioListComponent extends AbstractTuiNullableControl {
constructor(control, changeDetectorRef, elementRef) {
super(control, changeDetectorRef);
this.elementRef = elementRef;
this.items = [];
this.size = 'm';
this.identityMatcher = TUI_DEFAULT_IDENTITY_MATCHER;
this.orientation = "vertical" /* Vertical */;
// @bad TODO: Remove & { index: number }
this.itemContent = ({ $implicit, }) => String($implicit);
this.disabledItemHandler = ALWAYS_FALSE_HANDLER;
this.radioButtons = EMPTY_QUERY;
}
get nativeFocusableElement() {
const focusableRadioButton = this.radioButtons.find(radioButton => radioButton.nativeFocusableElement !== null);
return focusableRadioButton ? focusableRadioButton.nativeFocusableElement : null;
}
get focused() {
return isNativeFocusedIn(this.elementRef.nativeElement);
}
computeId(index) {
return `${this.id}-${index}`;
}
itemIsDisabled(item) {
return this.disabledItemHandler(item);
}
getContentContext(item, index, active) {
return { $implicit: item, index, active };
}
onModelChange(value) {
this.updateValue(value);
}
itemIsActive(item) {
return this.value === null
? item === null
: this.identityMatcher(this.value, item);
}
};
TuiRadioListComponent.ctorParameters = () => [
{ type: NgControl, decorators: [{ type: Optional }, { type: Self }, { type: Inject, args: [NgControl,] }] },
{ type: ChangeDetectorRef, decorators: [{ type: Inject, args: [ChangeDetectorRef,] }] },
{ type: ElementRef, decorators: [{ type: Inject, args: [ElementRef,] }] }
];
__decorate([
Input(),
tuiDefaultProp()
], TuiRadioListComponent.prototype, "items", void 0);
__decorate([
Input(),
HostBinding('attr.data-tui-host-size'),
tuiDefaultProp()
], TuiRadioListComponent.prototype, "size", void 0);
__decorate([
Input(),
tuiDefaultProp()
], TuiRadioListComponent.prototype, "identityMatcher", void 0);
__decorate([
Input(),
HostBinding('attr.data-tui-host-orientation'),
tuiDefaultProp()
], TuiRadioListComponent.prototype, "orientation", void 0);
__decorate([
Input(),
tuiDefaultProp()
], TuiRadioListComponent.prototype, "itemContent", void 0);
__decorate([
Input(),
tuiDefaultProp()
], TuiRadioListComponent.prototype, "disabledItemHandler", void 0);
__decorate([
ViewChildren(TuiRadioLabeledComponent)
], TuiRadioListComponent.prototype, "radioButtons", void 0);
TuiRadioListComponent = TuiRadioListComponent_1 = __decorate([
Component({
selector: 'tui-radio-list',
template: "<tui-radio-group class=\"group\">\n <tui-radio-labeled\n *ngFor=\"let item of items; index as index\"\n class=\"item\"\n [readOnly]=\"readOnly\"\n [nativeId]=\"computeId(index)\"\n [disabled]=\"disabled\"\n [item]=\"item\"\n [size]=\"size\"\n [pseudoInvalid]=\"computedInvalid\"\n [pseudoDisabled]=\"itemIsDisabled(item)\"\n [ngModel]=\"value\"\n (ngModelChange)=\"onModelChange($event)\"\n >\n <div\n polymorpheus-outlet\n [content]=\"itemContent\"\n [context]=\"getContentContext(item, index, itemIsActive(item))\"\n ></div>\n </tui-radio-labeled>\n</tui-radio-group>\n",
changeDetection: ChangeDetectionStrategy.OnPush,
providers: [
{
provide: TUI_FOCUSABLE_ITEM_ACCESSOR,
useExisting: forwardRef(() => TuiRadioListComponent_1),
},
],
styles: [":host{display:block}:host._readonly{pointer-events:none}:host[data-tui-host-orientation=horizontal] .group{display:flex;justify-content:inherit}:host[data-tui-host-orientation=horizontal] .item:nth-child(n+2){margin-left:24px}:host[data-tui-host-orientation=vertical] .item:nth-child(n+2){margin-top:12px}:host[data-tui-host-size='l'][data-tui-host-orientation=horizontal] .item:nth-child(n+2){margin-left:40px}:host[data-tui-host-size='l'][data-tui-host-orientation=vertical] .item:nth-child(n+2){margin-top:16px}"]
}),
__param(0, Optional()),
__param(0, Self()),
__param(0, Inject(NgControl)),
__param(1, Inject(ChangeDetectorRef)),
__param(2, Inject(ElementRef))
], TuiRadioListComponent);
export { TuiRadioListComponent };
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmFkaW8tbGlzdC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AdGFpZ2EtdWkva2l0L2NvbXBvbmVudHMvcmFkaW8tbGlzdC8iLCJzb3VyY2VzIjpbInJhZGlvLWxpc3QuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBQUEsT0FBTyxFQUNILHVCQUF1QixFQUN2QixpQkFBaUIsRUFDakIsU0FBUyxFQUNULFVBQVUsRUFDVixVQUFVLEVBQ1YsV0FBVyxFQUNYLE1BQU0sRUFDTixLQUFLLEVBQ0wsUUFBUSxFQUNSLFNBQVMsRUFDVCxJQUFJLEVBQ0osWUFBWSxHQUNmLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBQyxTQUFTLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQztBQUN6QyxPQUFPLEVBQ0gsMEJBQTBCLEVBQzFCLG9CQUFvQixFQUNwQixXQUFXLEVBQ1gsaUJBQWlCLEVBQ2pCLDRCQUE0QixFQUM1QiwyQkFBMkIsRUFFM0IsY0FBYyxHQUdqQixNQUFNLGVBQWUsQ0FBQztBQUV2QixPQUFPLEVBQUMsd0JBQXdCLEVBQUMsTUFBTSx3Q0FBd0MsQ0FBQztBQWVoRixJQUFhLHFCQUFxQiw2QkFBbEMsTUFBYSxxQkFBeUIsU0FBUSwwQkFBNkI7SUFpQ3ZFLFlBSUksT0FBeUIsRUFDRSxpQkFBb0MsRUFDMUIsVUFBbUM7UUFFeEUsS0FBSyxDQUFDLE9BQU8sRUFBRSxpQkFBaUIsQ0FBQyxDQUFDO1FBRkcsZUFBVSxHQUFWLFVBQVUsQ0FBeUI7UUFwQzVFLFVBQUssR0FBcUIsRUFBRSxDQUFDO1FBSzdCLFNBQUksR0FBYSxHQUFHLENBQUM7UUFJckIsb0JBQWUsR0FBMEIsNEJBQTRCLENBQUM7UUFLdEUsZ0JBQVcsNkJBQTJDO1FBRXRELHdDQUF3QztRQUd4QyxnQkFBVyxHQUFxRSxDQUFDLEVBQzdFLFNBQVMsR0FDWixFQUFFLEVBQUUsQ0FBQyxNQUFNLENBQUMsU0FBUyxDQUFDLENBQUM7UUFJeEIsd0JBQW1CLEdBQXlC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aGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgICBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICBDb21wb25lbnQsXG4gICAgRWxlbWVudFJlZixcbiAgICBmb3J3YXJkUmVmLFxuICAgIEhvc3RCaW5kaW5nLFxuICAgIEluamVjdCxcbiAgICBJbnB1dCxcbiAgICBPcHRpb25hbCxcbiAgICBRdWVyeUxpc3QsXG4gICAgU2VsZixcbiAgICBWaWV3Q2hpbGRyZW4sXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtOZ0NvbnRyb2x9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7XG4gICAgQWJzdHJhY3RUdWlOdWxsYWJsZUNvbnRyb2wsXG4gICAgQUxXQVlTX0ZBTFNFX0hBTkRMRVIsXG4gICAgRU1QVFlfUVVFUlksXG4gICAgaXNOYXRpdmVGb2N1c2VkSW4sXG4gICAgVFVJX0RFRkFVTFRfSURFTlRJVFlfTUFUQ0hFUixcbiAgICBUVUlfRk9DVVNBQkxFX0lURU1fQUNDRVNTT1IsXG4gICAgVHVpQm9vbGVhbkhhbmRsZXIsXG4gICAgdHVpRGVmYXVsdFByb3AsXG4gICAgVHVpSWRlbnRpdHlNYXRjaGVyLFxuICAgIFR1aU5hdGl2ZUZvY3VzYWJsZUVsZW1lbnQsXG59IGZyb20gJ0B0YWlnYS11aS9jZGsnO1xuaW1wb3J0IHtUdWlPcmllbnRhdGlvbiwgVHVpU2l6ZUwsIFR1aVZhbHVlQ29udGVudENvbnRleHR9IGZyb20gJ0B0YWlnYS11aS9jb3JlJztcbmltcG9ydCB7VHVpUmFkaW9MYWJlbGVkQ29tcG9uZW50fSBmcm9tICdAdGFpZ2EtdWkva2l0L2NvbXBvbmVudHMvcmFkaW8tbGFiZWxlZCc7XG5pbXBvcnQge1BvbHltb3JwaGV1c0NvbnRlbnR9IGZyb20gJ0B0aW5rb2ZmL25nLXBvbHltb3JwaGV1cyc7XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAndHVpLXJhZGlvLWxpc3QnLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9yYWRpby1saXN0LnRlbXBsYXRlLmh0bWwnLFxuICAgIHN0eWxlVXJsczogWycuL3JhZGlvLWxpc3Quc3R5bGUubGVzcyddLFxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICAgIHByb3ZpZGVyczogW1xuICAgICAgICB7XG4gICAgICAgICAgICBwcm92aWRlOiBUVUlfRk9DVVNBQkxFX0lURU1fQUNDRVNTT1IsXG4gICAgICAgICAgICB1c2VFeGlzdGluZzogZm9yd2FyZFJlZigoKSA9PiBUdWlSYWRpb0xpc3RDb21wb25lbnQpLFxuICAgICAgICB9LFxuICAgIF0sXG59KVxuZXhwb3J0IGNsYXNzIFR1aVJhZGlvTGlzdENvbXBvbmVudDxUPiBleHRlbmRzIEFic3RyYWN0VHVpTnVsbGFibGVDb250cm9sPFQ+IHtcbiAgICBASW5wdXQoKVxuICAgIEB0dWlEZWZhdWx0UHJvcCgpXG4gICAgaXRlbXM6IFJlYWRvbmx5QXJyYXk8VD4gPSBbXTtcblxuICAgIEBJbnB1dCgpXG4gICAgQEhvc3RCaW5kaW5nKCdhdHRyLmRhdGEtdHVpLWhvc3Qtc2l6ZScpXG4gICAgQHR1aURlZmF1bHRQcm9wKClcbiAgICBzaXplOiBUdWlTaXplTCA9ICdtJztcblxuICAgIEBJbnB1dCgpXG4gICAgQHR1aURlZmF1bHRQcm9wKClcbiAgICBpZGVudGl0eU1hdGNoZXI6IFR1aUlkZW50aXR5TWF0Y2hlcjxUPiA9IFRVSV9ERUZBVUxUX0lERU5USVRZX01BVENIRVI7XG5cbiAgICBASW5wdXQoKVxuICAgIEBIb3N0QmluZGluZygnYXR0ci5kYXRhLXR1aS1ob3N0LW9yaWVudGF0aW9uJylcbiAgICBAdHVpRGVmYXVsdFByb3AoKVxuICAgIG9yaWVudGF0aW9uOiBUdWlPcmllbnRhdGlvbiA9IFR1aU9yaWVudGF0aW9uLlZlcnRpY2FsO1xuXG4gICAgLy8gQGJhZCBUT0RPOiBSZW1vdmUgJiB7IGluZGV4OiBudW1iZXIgfVxuICAgIEBJbnB1dCgpXG4gICAgQHR1aURlZmF1bHRQcm9wKClcbiAgICBpdGVtQ29udGVudDogUG9seW1vcnBoZXVzQ29udGVudDxUdWlWYWx1ZUNvbnRlbnRDb250ZXh0PFQ+ICYge2luZGV4OiBudW1iZXJ9PiA9ICh7XG4gICAgICAgICRpbXBsaWNpdCxcbiAgICB9KSA9PiBTdHJpbmcoJGltcGxpY2l0KTtcblxuICAgIEBJbnB1dCgpXG4gICAgQHR1aURlZmF1bHRQcm9wKClcbiAgICBkaXNhYmxlZEl0ZW1IYW5kbGVyOiBUdWlCb29sZWFuSGFuZGxlcjxUPiA9IEFMV0FZU19GQUxTRV9IQU5ETEVSO1xuXG4gICAgQFZpZXdDaGlsZHJlbihUdWlSYWRpb0xhYmVsZWRDb21wb25lbnQpXG4gICAgcHJpdmF0ZSByZWFkb25seSByYWRpb0J1dHRvbnM6IFF1ZXJ5TGlzdDxUdWlSYWRpb0xhYmVsZWRDb21wb25lbnQ8e30+PiA9IEVNUFRZX1FVRVJZO1xuXG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIEBPcHRpb25hbCgpXG4gICAgICAgIEBTZWxmKClcbiAgICAgICAgQEluamVjdChOZ0NvbnRyb2wpXG4gICAgICAgIGNvbnRyb2w6IE5nQ29udHJvbCB8IG51bGwsXG4gICAgICAgIEBJbmplY3QoQ2hhbmdlRGV0ZWN0b3JSZWYpIGNoYW5nZURldGVjdG9yUmVmOiBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICAgICAgQEluamVjdChFbGVtZW50UmVmKSBwcml2YXRlIHJlYWRvbmx5IGVsZW1lbnRSZWY6IEVsZW1lbnRSZWY8SFRNTEVsZW1lbnQ+LFxuICAgICkge1xuICAgICAgICBzdXBlcihjb250cm9sLCBjaGFuZ2VEZXRlY3RvclJlZik7XG4gICAgfVxuXG4gICAgZ2V0IG5hdGl2ZUZvY3VzYWJsZUVsZW1lbnQoKTogVHVpTmF0aXZlRm9jdXNhYmxlRWxlbWVudCB8IG51bGwge1xuICAgICAgICBjb25zdCBmb2N1c2FibGVSYWRpb0J1dHRvbiA9IHRoaXMucmFkaW9CdXR0b25zLmZpbmQoXG4gICAgICAgICAgICByYWRpb0J1dHRvbiA9PiByYWRpb0J1dHRvbi5uYXRpdmVGb2N1c2FibGVFbGVtZW50ICE9PSBudWxsLFxuICAgICAgICApO1xuXG4gICAgICAgIHJldHVybiBmb2N1c2FibGVSYWRpb0J1dHRvbiA/IGZvY3VzYWJsZVJhZGlvQnV0dG9uLm5hdGl2ZUZvY3VzYWJsZUVsZW1lbnQgOiBudWxsO1xuICAgIH1cblxuICAgIGdldCBmb2N1c2VkKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gaXNOYXRpdmVGb2N1c2VkSW4odGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQpO1xuICAgIH1cblxuICAgIGNvbXB1dGVJZChpbmRleDogbnVtYmVyKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIGAke3RoaXMuaWR9LSR7aW5kZXh9YDtcbiAgICB9XG5cbiAgICBpdGVtSXNEaXNhYmxlZChpdGVtOiBUKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLmRpc2FibGVkSXRlbUhhbmRsZXIoaXRlbSk7XG4gICAgfVxuXG4gICAgZ2V0Q29udGVudENvbnRleHQoXG4gICAgICAgIGl0ZW06IFQsXG4gICAgICAgIGluZGV4OiBudW1iZXIsXG4gICAgICAgIGFjdGl2ZTogYm9vbGVhbixcbiAgICApOiBUdWlWYWx1ZUNvbnRlbnRDb250ZXh0PFQ+ICYge2luZGV4OiBudW1iZXJ9IHtcbiAgICAgICAgcmV0dXJuIHskaW1wbGljaXQ6IGl0ZW0sIGluZGV4LCBhY3RpdmV9O1xuICAgIH1cblxuICAgIG9uTW9kZWxDaGFuZ2UodmFsdWU6IFQpIHtcbiAgICAgICAgdGhpcy51cGRhdGVWYWx1ZSh2YWx1ZSk7XG4gICAgfVxuXG4gICAgaXRlbUlzQWN0aXZlKGl0ZW06IFQpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMudmFsdWUgPT09IG51bGxcbiAgICAgICAgICAgID8gaXRlbSA9PT0gbnVsbFxuICAgICAgICAgICAgOiB0aGlzLmlkZW50aXR5TWF0Y2hlcih0aGlzLnZhbHVlLCBpdGVtKTtcbiAgICB9XG59XG4iXX0=