@favian/headwind-ui
Version:
Headless UI for Angular - Styleless Angular components to integrate with Tailwind CSS
47 lines • 7.24 kB
JavaScript
import { Component, ContentChild, ViewChild, ViewContainerRef } from '@angular/core';
import { HeadwindRadioSelectedDirective } from './headwind-radio-selected/headwind-radio-selected.directive';
import * as i0 from "@angular/core";
export class HeadwindRadioButtonComponent {
constructor() {
/** Internal selected status to show and hide selected icon */
this._selected = false;
}
get selected() {
return this._selected;
}
set selected(value) {
this._selected = value;
this._renderRadioSelected();
}
ngAfterViewInit() {
this._renderRadioSelected();
}
_renderRadioSelected() {
if (this.radioSelectedContainer && this.radioSelected) {
if (this.selected) {
if (!this._selectedEmbeddedViewRef) {
this._selectedEmbeddedViewRef = this.radioSelectedContainer.createEmbeddedView(this.radioSelected.templateRef);
}
}
else {
this._selectedEmbeddedViewRef?.destroy();
delete this._selectedEmbeddedViewRef;
}
}
}
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: HeadwindRadioButtonComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: HeadwindRadioButtonComponent, isStandalone: true, selector: "headwind-radio-button", host: { classAttribute: "headwind-radio-button" }, queries: [{ propertyName: "radioSelected", first: true, predicate: HeadwindRadioSelectedDirective, descendants: true }], viewQueries: [{ propertyName: "radioSelectedContainer", first: true, predicate: ["radioSelectedContainer"], descendants: true, read: ViewContainerRef }], ngImport: i0, template: "<ng-container #radioSelectedContainer></ng-container>\r\n", styles: [""] }); }
}
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: HeadwindRadioButtonComponent, decorators: [{
type: Component,
args: [{ selector: 'headwind-radio-button', standalone: true, imports: [], host: {
class: 'headwind-radio-button',
}, template: "<ng-container #radioSelectedContainer></ng-container>\r\n" }]
}], propDecorators: { radioSelectedContainer: [{
type: ViewChild,
args: ['radioSelectedContainer', { read: ViewContainerRef }]
}], radioSelected: [{
type: ContentChild,
args: [HeadwindRadioSelectedDirective, { descendants: true }]
}] } });
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGVhZHdpbmQtcmFkaW8tYnV0dG9uLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2hlYWR3aW5kLXVpL3NyYy9jb21wb25lbnRzL2hlYWR3aW5kLXJhZGlvLWdyb3VwL2hlYWR3aW5kLXJhZGlvL2hlYWR3aW5kLXJhZGlvLWJ1dHRvbi9oZWFkd2luZC1yYWRpby1idXR0b24uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvaGVhZHdpbmQtdWkvc3JjL2NvbXBvbmVudHMvaGVhZHdpbmQtcmFkaW8tZ3JvdXAvaGVhZHdpbmQtcmFkaW8vaGVhZHdpbmQtcmFkaW8tYnV0dG9uL2hlYWR3aW5kLXJhZGlvLWJ1dHRvbi5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQWlCLFNBQVMsRUFBRSxZQUFZLEVBQW1CLFNBQVMsRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNySCxPQUFPLEVBQUUsOEJBQThCLEVBQUUsTUFBTSw2REFBNkQsQ0FBQzs7QUFZN0csTUFBTSxPQUFPLDRCQUE0QjtJQVZ6QztRQWdCRSw4REFBOEQ7UUFDdEQsY0FBUyxHQUFHLEtBQUssQ0FBQztLQTZCM0I7SUEzQkMsSUFBSSxRQUFRO1FBQ1YsT0FBTyxJQUFJLENBQUMsU0FBUyxDQUFDO0lBQ3hCLENBQUM7SUFFRCxJQUFJLFFBQVEsQ0FBQyxLQUFjO1FBQ3pCLElBQUksQ0FBQyxTQUFTLEdBQUcsS0FBSyxDQUFDO1FBQ3ZCLElBQUksQ0FBQyxvQkFBb0IsRUFBRSxDQUFDO0lBQzlCLENBQUM7SUFFRCxlQUFlO1FBQ2IsSUFBSSxDQUFDLG9CQUFvQixFQUFFLENBQUM7SUFDOUIsQ0FBQztJQUVPLG9CQUFvQjtRQUMxQixJQUFJLElBQUksQ0FBQyxzQkFBc0IsSUFBSSxJQUFJLENBQUMsYUFBYSxFQUFFLENBQUM7WUFDdEQsSUFBSSxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUM7Z0JBQ2xCLElBQUksQ0FBQyxJQUFJLENBQUMsd0JBQXdCLEVBQUUsQ0FBQztvQkFDbkMsSUFBSSxDQUFDLHdCQUF3QixHQUFHLElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxrQkFBa0IsQ0FDNUUsSUFBSSxDQUFDLGFBQWEsQ0FBQyxXQUFXLENBQy9CLENBQUM7Z0JBQ0osQ0FBQztZQUNILENBQUM7aUJBQU0sQ0FBQztnQkFDTixJQUFJLENBQUMsd0JBQXdCLEVBQUUsT0FBTyxFQUFFLENBQUM7Z0JBQ3pDLE9BQU8sSUFBSSxDQUFDLHdCQUF3QixDQUFDO1lBQ3ZDLENBQUM7UUFDSCxDQUFDO0lBQ0gsQ0FBQzsrR0FuQ1UsNEJBQTRCO21HQUE1Qiw0QkFBNEIsK0tBRXpCLDhCQUE4Qiw2SkFEQyxnQkFBZ0IsNkJDZC9ELDJEQUNBOzs0RkRZYSw0QkFBNEI7a0JBVnhDLFNBQVM7K0JBQ0UsdUJBQXVCLGNBQ3JCLElBQUksV0FDUCxFQUFFLFFBR0w7d0JBQ0osS0FBSyxFQUFFLHVCQUF1QjtxQkFDL0I7OEJBR2dFLHNCQUFzQjtzQkFBdEYsU0FBUzt1QkFBQyx3QkFBd0IsRUFBRSxFQUFFLElBQUksRUFBRSxnQkFBZ0IsRUFBRTtnQkFDTSxhQUFhO3NCQUFqRixZQUFZO3VCQUFDLDhCQUE4QixFQUFFLEVBQUUsV0FBVyxFQUFFLElBQUksRUFBRSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFmdGVyVmlld0luaXQsIENvbXBvbmVudCwgQ29udGVudENoaWxkLCBFbWJlZGRlZFZpZXdSZWYsIFZpZXdDaGlsZCwgVmlld0NvbnRhaW5lclJlZiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBIZWFkd2luZFJhZGlvU2VsZWN0ZWREaXJlY3RpdmUgfSBmcm9tICcuL2hlYWR3aW5kLXJhZGlvLXNlbGVjdGVkL2hlYWR3aW5kLXJhZGlvLXNlbGVjdGVkLmRpcmVjdGl2ZSc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2hlYWR3aW5kLXJhZGlvLWJ1dHRvbicsXHJcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcclxuICBpbXBvcnRzOiBbXSxcclxuICB0ZW1wbGF0ZVVybDogJy4vaGVhZHdpbmQtcmFkaW8tYnV0dG9uLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybDogJy4vaGVhZHdpbmQtcmFkaW8tYnV0dG9uLmNvbXBvbmVudC5zY3NzJyxcclxuICBob3N0OiB7XHJcbiAgICBjbGFzczogJ2hlYWR3aW5kLXJhZGlvLWJ1dHRvbicsXHJcbiAgfSxcclxufSlcclxuZXhwb3J0IGNsYXNzIEhlYWR3aW5kUmFkaW9CdXR0b25Db21wb25lbnQgaW1wbGVtZW50cyBBZnRlclZpZXdJbml0IHtcclxuICBAVmlld0NoaWxkKCdyYWRpb1NlbGVjdGVkQ29udGFpbmVyJywgeyByZWFkOiBWaWV3Q29udGFpbmVyUmVmIH0pIHJhZGlvU2VsZWN0ZWRDb250YWluZXI/OiBWaWV3Q29udGFpbmVyUmVmO1xyXG4gIEBDb250ZW50Q2hpbGQoSGVhZHdpbmRSYWRpb1NlbGVjdGVkRGlyZWN0aXZlLCB7IGRlc2NlbmRhbnRzOiB0cnVlIH0pIHJhZGlvU2VsZWN0ZWQ/OiBIZWFkd2luZFJhZGlvU2VsZWN0ZWREaXJlY3RpdmU7XHJcblxyXG4gIHByaXZhdGUgX3NlbGVjdGVkRW1iZWRkZWRWaWV3UmVmPzogRW1iZWRkZWRWaWV3UmVmPGFueT47XHJcblxyXG4gIC8qKiBJbnRlcm5hbCBzZWxlY3RlZCBzdGF0dXMgdG8gc2hvdyBhbmQgaGlkZSBzZWxlY3RlZCBpY29uICovXHJcbiAgcHJpdmF0ZSBfc2VsZWN0ZWQgPSBmYWxzZTtcclxuXHJcbiAgZ2V0IHNlbGVjdGVkKCk6IGJvb2xlYW4ge1xyXG4gICAgcmV0dXJuIHRoaXMuX3NlbGVjdGVkO1xyXG4gIH1cclxuXHJcbiAgc2V0IHNlbGVjdGVkKHZhbHVlOiBib29sZWFuKSB7XHJcbiAgICB0aGlzLl9zZWxlY3RlZCA9IHZhbHVlO1xyXG4gICAgdGhpcy5fcmVuZGVyUmFkaW9TZWxlY3RlZCgpO1xyXG4gIH1cclxuXHJcbiAgbmdBZnRlclZpZXdJbml0KCkge1xyXG4gICAgdGhpcy5fcmVuZGVyUmFkaW9TZWxlY3RlZCgpO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBfcmVuZGVyUmFkaW9TZWxlY3RlZCgpOiB2b2lkIHtcclxuICAgIGlmICh0aGlzLnJhZGlvU2VsZWN0ZWRDb250YWluZXIgJiYgdGhpcy5yYWRpb1NlbGVjdGVkKSB7XHJcbiAgICAgIGlmICh0aGlzLnNlbGVjdGVkKSB7XHJcbiAgICAgICAgaWYgKCF0aGlzLl9zZWxlY3RlZEVtYmVkZGVkVmlld1JlZikge1xyXG4gICAgICAgICAgdGhpcy5fc2VsZWN0ZWRFbWJlZGRlZFZpZXdSZWYgPSB0aGlzLnJhZGlvU2VsZWN0ZWRDb250YWluZXIuY3JlYXRlRW1iZWRkZWRWaWV3KFxyXG4gICAgICAgICAgICB0aGlzLnJhZGlvU2VsZWN0ZWQudGVtcGxhdGVSZWYsXHJcbiAgICAgICAgICApO1xyXG4gICAgICAgIH1cclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICB0aGlzLl9zZWxlY3RlZEVtYmVkZGVkVmlld1JlZj8uZGVzdHJveSgpO1xyXG4gICAgICAgIGRlbGV0ZSB0aGlzLl9zZWxlY3RlZEVtYmVkZGVkVmlld1JlZjtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxufVxyXG4iLCI8bmctY29udGFpbmVyICNyYWRpb1NlbGVjdGVkQ29udGFpbmVyPjwvbmctY29udGFpbmVyPlxyXG4iXX0=