@xui/components
Version:
xUI Components for Angular
65 lines • 8.51 kB
JavaScript
import { booleanAttribute, ChangeDetectionStrategy, Component, effect, input, model, Optional, Self, signal } from '@angular/core';
import { RADIO_GROUP_ACCESSOR } from './radio.types';
import { NgControl } from '@angular/forms';
import * as i0 from "@angular/core";
import * as i1 from "@angular/forms";
import * as i2 from "./radio";
import * as i3 from "@ngx-translate/core";
export class XuiRadioGroup {
constructor(control) {
this.control = control;
this._disabled = signal(false);
this.value = model(null);
this.color = input('none');
this.items = input();
this.disabled = input(undefined, {
transform: booleanAttribute
});
if (this.control) {
this.control.valueAccessor = this;
}
effect(() => this.disabled() && this._disabled.set(this.disabled()), { allowSignalWrites: true });
effect(() => this.value() != undefined && this.onChange?.(this.value()));
}
writeValue(source) {
this.value.set(source);
}
registerOnChange(onChange) {
this.onChange = onChange;
}
registerOnTouched(onTouched) {
this.onTouched = onTouched;
}
setDisabledState(isDisabled) {
this._disabled.set(isDisabled);
}
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.1", ngImport: i0, type: XuiRadioGroup, deps: [{ token: i1.NgControl, optional: true, self: true }], target: i0.ɵɵFactoryTarget.Component }); }
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.0.1", type: XuiRadioGroup, selector: "xui-radio-group", inputs: { value: { classPropertyName: "value", publicName: "value", isSignal: true, isRequired: false, transformFunction: null }, color: { classPropertyName: "color", publicName: "color", isSignal: true, isRequired: false, transformFunction: null }, items: { classPropertyName: "items", publicName: "items", isSignal: true, isRequired: false, transformFunction: null }, disabled: { classPropertyName: "disabled", publicName: "disabled", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { value: "valueChange" }, host: { classAttribute: "x-radio-group" }, providers: [{ provide: RADIO_GROUP_ACCESSOR, useExisting: XuiRadioGroup }], ngImport: i0, template: `
<ng-content select="xui-radio" />
(item of items(); track item.value) {
<xui-radio [value]="item.value">{{ item.label | translate }}</xui-radio>
}
`, isInline: true, dependencies: [{ kind: "component", type: i2.XuiRadio, selector: "xui-radio", inputs: ["value", "color", "disabled"] }, { kind: "pipe", type: i3.TranslatePipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
}
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.1", ngImport: i0, type: XuiRadioGroup, decorators: [{
type: Component,
args: [{
selector: 'xui-radio-group',
changeDetection: ChangeDetectionStrategy.OnPush,
providers: [{ provide: RADIO_GROUP_ACCESSOR, useExisting: XuiRadioGroup }],
template: `
<ng-content select="xui-radio" />
(item of items(); track item.value) {
<xui-radio [value]="item.value">{{ item.label | translate }}</xui-radio>
}
`,
host: {
class: 'x-radio-group'
}
}]
}], ctorParameters: () => [{ type: i1.NgControl, decorators: [{
type: Self
}, {
type: Optional
}] }] });
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmFkaW8tZ3JvdXAuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9saWJzL3h1aS9zcmMvcmFkaW8vcmFkaW8tZ3JvdXAudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLGdCQUFnQixFQUNoQix1QkFBdUIsRUFDdkIsU0FBUyxFQUNULE1BQU0sRUFDTixLQUFLLEVBQ0wsS0FBSyxFQUNMLFFBQVEsRUFDUixJQUFJLEVBQ0osTUFBTSxFQUNQLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxvQkFBb0IsRUFBeUQsTUFBTSxlQUFlLENBQUM7QUFDNUcsT0FBTyxFQUF3QixTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQzs7Ozs7QUFnQmpFLE1BQU0sT0FBTyxhQUFhO0lBYXhCLFlBQXVDLE9BQW1CO1FBQW5CLFlBQU8sR0FBUCxPQUFPLENBQVk7UUFUMUQsY0FBUyxHQUFHLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUUxQixVQUFLLEdBQUcsS0FBSyxDQUFhLElBQUksQ0FBQyxDQUFDO1FBQ2hDLFVBQUssR0FBRyxLQUFLLENBQWEsTUFBTSxDQUFDLENBQUM7UUFDbEMsVUFBSyxHQUFHLEtBQUssRUFBZSxDQUFDO1FBQzdCLGFBQVEsR0FBRyxLQUFLLENBQXdDLFNBQVMsRUFBRTtZQUNqRSxTQUFTLEVBQUUsZ0JBQWdCO1NBQzVCLENBQUMsQ0FBQztRQUdELElBQUksSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDO1lBQ2pCLElBQUksQ0FBQyxPQUFPLENBQUMsYUFBYSxHQUFHLElBQUksQ0FBQztRQUNwQyxDQUFDO1FBRUQsTUFBTSxDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxRQUFRLEVBQUUsSUFBSSxJQUFJLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsUUFBUSxFQUFHLENBQUMsRUFBRSxFQUFFLGlCQUFpQixFQUFFLElBQUksRUFBRSxDQUFDLENBQUM7UUFDbkcsTUFBTSxDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxLQUFLLEVBQUUsSUFBSSxTQUFTLElBQUksSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDLElBQUksQ0FBQyxLQUFLLEVBQUcsQ0FBQyxDQUFDLENBQUM7SUFDNUUsQ0FBQztJQUVELFVBQVUsQ0FBQyxNQUFrQjtRQUMzQixJQUFJLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUN6QixDQUFDO0lBRUQsZ0JBQWdCLENBQUMsUUFBc0M7UUFDckQsSUFBSSxDQUFDLFFBQVEsR0FBRyxRQUFRLENBQUM7SUFDM0IsQ0FBQztJQUVELGlCQUFpQixDQUFDLFNBQXFCO1FBQ3JDLElBQUksQ0FBQyxTQUFTLEdBQUcsU0FBUyxDQUFDO0lBQzdCLENBQUM7SUFFRCxnQkFBZ0IsQ0FBQyxVQUFtQjtRQUNsQyxJQUFJLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxVQUFVLENBQUMsQ0FBQztJQUNqQyxDQUFDOzhHQXBDVSxhQUFhO2tHQUFiLGFBQWEsNm1CQVhiLENBQUMsRUFBRSxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsV0FBVyxFQUFFLGFBQWEsRUFBRSxDQUFDLDBCQUNoRTs7Ozs7R0FLVDs7MkZBS1UsYUFBYTtrQkFkekIsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUsaUJBQWlCO29CQUMzQixlQUFlLEVBQUUsdUJBQXVCLENBQUMsTUFBTTtvQkFDL0MsU0FBUyxFQUFFLENBQUMsRUFBRSxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsV0FBVyxlQUFlLEVBQUUsQ0FBQztvQkFDMUUsUUFBUSxFQUFFOzs7OztHQUtUO29CQUNELElBQUksRUFBRTt3QkFDSixLQUFLLEVBQUUsZUFBZTtxQkFDdkI7aUJBQ0Y7OzBCQWNjLElBQUk7OzBCQUFJLFFBQVEiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBib29sZWFuQXR0cmlidXRlLFxuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgQ29tcG9uZW50LFxuICBlZmZlY3QsXG4gIGlucHV0LFxuICBtb2RlbCxcbiAgT3B0aW9uYWwsXG4gIFNlbGYsXG4gIHNpZ25hbFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFJBRElPX0dST1VQX0FDQ0VTU09SLCBSYWRpb0NvbG9yLCBSYWRpb0dyb3VwQWNjZXNzb3IsIFJhZGlvSXRlbSwgUmFkaW9WYWx1ZSB9IGZyb20gJy4vcmFkaW8udHlwZXMnO1xuaW1wb3J0IHsgQ29udHJvbFZhbHVlQWNjZXNzb3IsIE5nQ29udHJvbCB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAneHVpLXJhZGlvLWdyb3VwJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHByb3ZpZGVyczogW3sgcHJvdmlkZTogUkFESU9fR1JPVVBfQUNDRVNTT1IsIHVzZUV4aXN0aW5nOiBYdWlSYWRpb0dyb3VwIH1dLFxuICB0ZW1wbGF0ZTogYFxuICAgIDxuZy1jb250ZW50IHNlbGVjdD1cInh1aS1yYWRpb1wiIC8+XG4gICAgQGZvciAoaXRlbSBvZiBpdGVtcygpOyB0cmFjayBpdGVtLnZhbHVlKSB7XG4gICAgICA8eHVpLXJhZGlvIFt2YWx1ZV09XCJpdGVtLnZhbHVlXCI+e3sgaXRlbS5sYWJlbCB8IHRyYW5zbGF0ZSB9fTwveHVpLXJhZGlvPlxuICAgIH1cbiAgYCxcbiAgaG9zdDoge1xuICAgIGNsYXNzOiAneC1yYWRpby1ncm91cCdcbiAgfVxufSlcbmV4cG9ydCBjbGFzcyBYdWlSYWRpb0dyb3VwIGltcGxlbWVudHMgUmFkaW9Hcm91cEFjY2Vzc29yLCBDb250cm9sVmFsdWVBY2Nlc3NvciB7XG4gIHByaXZhdGUgb25DaGFuZ2U/OiAoc291cmNlOiBSYWRpb1ZhbHVlKSA9PiB2b2lkO1xuICBwcml2YXRlIG9uVG91Y2hlZD86ICgpID0+IHZvaWQ7XG5cbiAgX2Rpc2FibGVkID0gc2lnbmFsKGZhbHNlKTtcblxuICB2YWx1ZSA9IG1vZGVsPFJhZGlvVmFsdWU+KG51bGwpO1xuICBjb2xvciA9IGlucHV0PFJhZGlvQ29sb3I+KCdub25lJyk7XG4gIGl0ZW1zID0gaW5wdXQ8UmFkaW9JdGVtW10+KCk7XG4gIGRpc2FibGVkID0gaW5wdXQ8Ym9vbGVhbiB8IHVuZGVmaW5lZCwgc3RyaW5nIHwgYm9vbGVhbj4odW5kZWZpbmVkLCB7XG4gICAgdHJhbnNmb3JtOiBib29sZWFuQXR0cmlidXRlXG4gIH0pO1xuXG4gIGNvbnN0cnVjdG9yKEBTZWxmKCkgQE9wdGlvbmFsKCkgcHVibGljIGNvbnRyb2w/OiBOZ0NvbnRyb2wpIHtcbiAgICBpZiAodGhpcy5jb250cm9sKSB7XG4gICAgICB0aGlzLmNvbnRyb2wudmFsdWVBY2Nlc3NvciA9IHRoaXM7XG4gICAgfVxuXG4gICAgZWZmZWN0KCgpID0+IHRoaXMuZGlzYWJsZWQoKSAmJiB0aGlzLl9kaXNhYmxlZC5zZXQodGhpcy5kaXNhYmxlZCgpISksIHsgYWxsb3dTaWduYWxXcml0ZXM6IHRydWUgfSk7XG4gICAgZWZmZWN0KCgpID0+IHRoaXMudmFsdWUoKSAhPSB1bmRlZmluZWQgJiYgdGhpcy5vbkNoYW5nZT8uKHRoaXMudmFsdWUoKSEpKTtcbiAgfVxuXG4gIHdyaXRlVmFsdWUoc291cmNlOiBSYWRpb1ZhbHVlKSB7XG4gICAgdGhpcy52YWx1ZS5zZXQoc291cmNlKTtcbiAgfVxuXG4gIHJlZ2lzdGVyT25DaGFuZ2Uob25DaGFuZ2U6IChzb3VyY2U6IFJhZGlvVmFsdWUpID0+IHZvaWQpIHtcbiAgICB0aGlzLm9uQ2hhbmdlID0gb25DaGFuZ2U7XG4gIH1cblxuICByZWdpc3Rlck9uVG91Y2hlZChvblRvdWNoZWQ6ICgpID0+IHZvaWQpIHtcbiAgICB0aGlzLm9uVG91Y2hlZCA9IG9uVG91Y2hlZDtcbiAgfVxuXG4gIHNldERpc2FibGVkU3RhdGUoaXNEaXNhYmxlZDogYm9vbGVhbik6IHZvaWQge1xuICAgIHRoaXMuX2Rpc2FibGVkLnNldChpc0Rpc2FibGVkKTtcbiAgfVxufVxuIl19