radio-button.component.mjs 8.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051
  1. import { ChangeDetectionStrategy, Component, EventEmitter, Input, Optional, Output, forwardRef, } from '@angular/core';
  2. import { provideControlContainer, provideValueAccessor } from '../utils/form.util';
  3. import { FormGenericComponent } from '../../services/form-generic.abstract';
  4. import { ButtonComponent } from '../../components/atoms/button/button.component';
  5. import * as i0 from "@angular/core";
  6. import * as i1 from "@angular/forms";
  7. export class RadioButtonComponent extends FormGenericComponent {
  8. constructor(destroyRef, formGroupDirective) {
  9. super(formGroupDirective);
  10. this.destroyRef = destroyRef;
  11. this.formGroupDirective = formGroupDirective;
  12. this.key = '';
  13. this.label = '';
  14. this.checked = false;
  15. this.formControlName = '';
  16. this.valueChange = new EventEmitter();
  17. }
  18. writeValue(value) {
  19. this.checked = value;
  20. this.triggerMarkCheck();
  21. }
  22. onValueChange() {
  23. // this.checked = true;
  24. this.setValue(this.value);
  25. this.valueChange.emit(this.value);
  26. }
  27. setValue(value) {
  28. this.triggerChange(value);
  29. }
  30. static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.5", ngImport: i0, type: RadioButtonComponent, deps: [{ token: i0.DestroyRef }, { token: i1.FormGroupDirective, optional: true }], target: i0.ɵɵFactoryTarget.Component }); }
  31. static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.5", type: RadioButtonComponent, isStandalone: true, selector: "ct-radio-button", inputs: { key: "key", label: "label", value: "value", checked: "checked", formControlName: "formControlName" }, outputs: { valueChange: "valueChange" }, providers: [provideValueAccessor(forwardRef(() => RadioButtonComponent))], usesInheritance: true, ngImport: i0, template: "<input\n [id]=\"value\"\n class=\"hidden\"\n type=\"radio\"\n [name]=\"key\"\n [value]=\"value\"\n [checked]=\"checked\"\n (change)=\"onValueChange()\" />\n<label class=\"w-full grow cursor-pointer\" [for]=\"value\">\n <ct-button [text]=\"label\" [type]=\"checked ? 'secondary' : 'primary'\" [fullSize]=\"true\" (click)=\"onValueChange()\" />\n</label>\n", dependencies: [{ kind: "component", type: ButtonComponent, selector: "ct-button", inputs: ["text", "icon", "iconPosition", "role", "disabled", "fullSize", "size", "type", "variant"] }], viewProviders: [provideControlContainer()], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
  32. }
  33. i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.5", ngImport: i0, type: RadioButtonComponent, decorators: [{
  34. type: Component,
  35. args: [{ selector: 'ct-radio-button', standalone: true, imports: [ButtonComponent], providers: [provideValueAccessor(forwardRef(() => RadioButtonComponent))], viewProviders: [provideControlContainer()], changeDetection: ChangeDetectionStrategy.OnPush, template: "<input\n [id]=\"value\"\n class=\"hidden\"\n type=\"radio\"\n [name]=\"key\"\n [value]=\"value\"\n [checked]=\"checked\"\n (change)=\"onValueChange()\" />\n<label class=\"w-full grow cursor-pointer\" [for]=\"value\">\n <ct-button [text]=\"label\" [type]=\"checked ? 'secondary' : 'primary'\" [fullSize]=\"true\" (click)=\"onValueChange()\" />\n</label>\n" }]
  36. }], ctorParameters: () => [{ type: i0.DestroyRef }, { type: i1.FormGroupDirective, decorators: [{
  37. type: Optional
  38. }] }], propDecorators: { key: [{
  39. type: Input
  40. }], label: [{
  41. type: Input
  42. }], value: [{
  43. type: Input
  44. }], checked: [{
  45. type: Input
  46. }], formControlName: [{
  47. type: Input
  48. }], valueChange: [{
  49. type: Output
  50. }] } });
  51. //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmFkaW8tYnV0dG9uLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NpcmNsZXRvbmUvc3JjL2xpYi9mb3Jtcy9yYWRpby1idXR0b24vcmFkaW8tYnV0dG9uLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NpcmNsZXRvbmUvc3JjL2xpYi9mb3Jtcy9yYWRpby1idXR0b24vcmFkaW8tYnV0dG9uLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCx1QkFBdUIsRUFDdkIsU0FBUyxFQUVULFlBQVksRUFDWixLQUFLLEVBQ0wsUUFBUSxFQUNSLE1BQU0sRUFDTixVQUFVLEdBQ1gsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLHVCQUF1QixFQUFFLG9CQUFvQixFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFFbkYsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sc0NBQXNDLENBQUM7QUFDNUUsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLGdEQUFnRCxDQUFDOzs7QUFXakYsTUFBTSxPQUFPLG9CQUFxQixTQUFRLG9CQUFvQjtJQVE1RCxZQUNtQixVQUFzQixFQUNSLGtCQUFzQztRQUVyRSxLQUFLLENBQUMsa0JBQWtCLENBQUMsQ0FBQztRQUhULGVBQVUsR0FBVixVQUFVLENBQVk7UUFDUix1QkFBa0IsR0FBbEIsa0JBQWtCLENBQW9CO1FBVDlELFFBQUcsR0FBRyxFQUFFLENBQUM7UUFDVCxVQUFLLEdBQUcsRUFBRSxDQUFDO1FBRVgsWUFBTyxHQUFZLEtBQUssQ0FBQztRQUN6QixvQkFBZSxHQUFHLEVBQUUsQ0FBQztRQUNwQixnQkFBVyxHQUFHLElBQUksWUFBWSxFQUFPLENBQUM7SUFPaEQsQ0FBQztJQUVELFVBQVUsQ0FBQyxLQUFjO1FBQ3ZCLElBQUksQ0FBQyxPQUFPLEdBQUcsS0FBSyxDQUFDO1FBQ3JCLElBQUksQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDO0lBQzFCLENBQUM7SUFFRCxhQUFhO1FBQ1gsdUJBQXVCO1FBQ3ZCLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQzFCLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUNwQyxDQUFDO0lBRU8sUUFBUSxDQUFDLEtBQVU7UUFDekIsSUFBSSxDQUFDLGFBQWEsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUM1QixDQUFDOzhHQTVCVSxvQkFBb0I7a0dBQXBCLG9CQUFvQix1TkFKcEIsQ0FBQyxvQkFBb0IsQ0FBQyxVQUFVLENBQUMsR0FBRyxFQUFFLENBQUMsb0JBQW9CLENBQUMsQ0FBQyxDQUFDLGlEQ3BCM0UsNFdBV0EsNENET1ksZUFBZSxnSkFHVixDQUFDLHVCQUF1QixFQUFFLENBQUM7OzJGQUcvQixvQkFBb0I7a0JBVGhDLFNBQVM7K0JBQ0UsaUJBQWlCLGNBQ2YsSUFBSSxXQUNQLENBQUMsZUFBZSxDQUFDLGFBRWYsQ0FBQyxvQkFBb0IsQ0FBQyxVQUFVLENBQUMsR0FBRyxFQUFFLHFCQUFxQixDQUFDLENBQUMsQ0FBQyxpQkFDMUQsQ0FBQyx1QkFBdUIsRUFBRSxDQUFDLG1CQUN6Qix1QkFBdUIsQ0FBQyxNQUFNOzswQkFZNUMsUUFBUTt5Q0FURixHQUFHO3NCQUFYLEtBQUs7Z0JBQ0csS0FBSztzQkFBYixLQUFLO2dCQUNHLEtBQUs7c0JBQWIsS0FBSztnQkFDRyxPQUFPO3NCQUFmLEtBQUs7Z0JBQ0csZUFBZTtzQkFBdkIsS0FBSztnQkFDSSxXQUFXO3NCQUFwQixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gIENvbXBvbmVudCxcbiAgRGVzdHJveVJlZixcbiAgRXZlbnRFbWl0dGVyLFxuICBJbnB1dCxcbiAgT3B0aW9uYWwsXG4gIE91dHB1dCxcbiAgZm9yd2FyZFJlZixcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBwcm92aWRlQ29udHJvbENvbnRhaW5lciwgcHJvdmlkZVZhbHVlQWNjZXNzb3IgfSBmcm9tICcuLi91dGlscy9mb3JtLnV0aWwnO1xuaW1wb3J0IHsgRm9ybUdyb3VwRGlyZWN0aXZlIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgRm9ybUdlbmVyaWNDb21wb25lbnQgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9mb3JtLWdlbmVyaWMuYWJzdHJhY3QnO1xuaW1wb3J0IHsgQnV0dG9uQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vY29tcG9uZW50cy9hdG9tcy9idXR0b24vYnV0dG9uLmNvbXBvbmVudCc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2N0LXJhZGlvLWJ1dHRvbicsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtCdXR0b25Db21wb25lbnRdLFxuICB0ZW1wbGF0ZVVybDogJy4vcmFkaW8tYnV0dG9uLmNvbXBvbmVudC5odG1sJyxcbiAgcHJvdmlkZXJzOiBbcHJvdmlkZVZhbHVlQWNjZXNzb3IoZm9yd2FyZFJlZigoKSA9PiBSYWRpb0J1dHRvbkNvbXBvbmVudCkpXSxcbiAgdmlld1Byb3ZpZGVyczogW3Byb3ZpZGVDb250cm9sQ29udGFpbmVyKCldLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbn0pXG5leHBvcnQgY2xhc3MgUmFkaW9CdXR0b25Db21wb25lbnQgZXh0ZW5kcyBGb3JtR2VuZXJpY0NvbXBvbmVudCB7XG4gIEBJbnB1dCgpIGtleSA9ICcnO1xuICBASW5wdXQoKSBsYWJlbCA9ICcnO1xuICBASW5wdXQoKSB2YWx1ZTogYW55O1xuICBASW5wdXQoKSBjaGVja2VkOiBib29sZWFuID0gZmFsc2U7XG4gIEBJbnB1dCgpIGZvcm1Db250cm9sTmFtZSA9ICcnO1xuICBAT3V0cHV0KCkgdmFsdWVDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIHJlYWRvbmx5IGRlc3Ryb3lSZWY6IERlc3Ryb3lSZWYsXG4gICAgQE9wdGlvbmFsKCkgcHJvdGVjdGVkIG92ZXJyaWRlIGZvcm1Hcm91cERpcmVjdGl2ZTogRm9ybUdyb3VwRGlyZWN0aXZlXG4gICkge1xuICAgIHN1cGVyKGZvcm1Hcm91cERpcmVjdGl2ZSk7XG4gIH1cblxuICB3cml0ZVZhbHVlKHZhbHVlOiBib29sZWFuKTogdm9pZCB7XG4gICAgdGhpcy5jaGVja2VkID0gdmFsdWU7XG4gICAgdGhpcy50cmlnZ2VyTWFya0NoZWNrKCk7XG4gIH1cblxuICBvblZhbHVlQ2hhbmdlKCkge1xuICAgIC8vIHRoaXMuY2hlY2tlZCA9IHRydWU7XG4gICAgdGhpcy5zZXRWYWx1ZSh0aGlzLnZhbHVlKTtcbiAgICB0aGlzLnZhbHVlQ2hhbmdlLmVtaXQodGhpcy52YWx1ZSk7XG4gIH1cblxuICBwcml2YXRlIHNldFZhbHVlKHZhbHVlOiBhbnkpOiB2b2lkIHtcbiAgICB0aGlzLnRyaWdnZXJDaGFuZ2UodmFsdWUpO1xuICB9XG59XG4iLCI8aW5wdXRcbiAgW2lkXT1cInZhbHVlXCJcbiAgY2xhc3M9XCJoaWRkZW5cIlxuICB0eXBlPVwicmFkaW9cIlxuICBbbmFtZV09XCJrZXlcIlxuICBbdmFsdWVdPVwidmFsdWVcIlxuICBbY2hlY2tlZF09XCJjaGVja2VkXCJcbiAgKGNoYW5nZSk9XCJvblZhbHVlQ2hhbmdlKClcIiAvPlxuPGxhYmVsIGNsYXNzPVwidy1mdWxsIGdyb3cgY3Vyc29yLXBvaW50ZXJcIiBbZm9yXT1cInZhbHVlXCI+XG4gIDxjdC1idXR0b24gW3RleHRdPVwibGFiZWxcIiBbdHlwZV09XCJjaGVja2VkID8gJ3NlY29uZGFyeScgOiAncHJpbWFyeSdcIiBbZnVsbFNpemVdPVwidHJ1ZVwiIChjbGljayk9XCJvblZhbHVlQ2hhbmdlKClcIiAvPlxuPC9sYWJlbD5cbiJdfQ==