{"version":3,"file":"kif-lib-checkbox-group.mjs","sources":["../../../projects/kif-lib/checkbox-group/checkbox-group.component.ts","../../../projects/kif-lib/checkbox-group/checkbox-group.component.html","../../../projects/kif-lib/checkbox-group/checkbox-group.module.ts","../../../projects/kif-lib/checkbox-group/public-api.ts","../../../projects/kif-lib/checkbox-group/kif-lib-checkbox-group.ts"],"sourcesContent":["import { ChangeDetectionStrategy, Component, EventEmitter, Input, OnChanges, Output, signal, SimpleChanges } from '@angular/core';\nimport { FormControl } from '@angular/forms';\n\nexport interface Task {\n    name: string;\n    code?: string;\n    completed: boolean;\n    subtasks?: Task[];\n}\n@Component({\n    selector: 'kit-checkbox-group',\n    templateUrl: './checkbox-group.component.html',\n    styleUrl: './checkbox-group.component.css',\n    changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class CheckboxGroupComponent implements  OnChanges{\n    @Input() options: any[] = [];\n    @Input() defaultOptions: string[] = [];\n    @Input() disabled: boolean = false;\n    @Input() control: FormControl | any;\n    @Input() direction: string | null = 'HORIZONTAL'; //HORIZONTAL, VERTICAL\n    @Input() style: string = 'empty'; //empty, filled\n    @Output() changeCheck = new EventEmitter<any>();\n\n    readonly task = signal<Task>({\n        name: 'Parent task',\n        completed: false,\n        subtasks: [],\n    });\n \n\n\n\n    constructor() {}\n\n\n    ngOnChanges(changes: SimpleChanges) {\n        if (changes['options']) {\n            this.task.update(task => ({\n                ...task,\n                subtasks: this.options.map(option => ({\n                    name: option.name,\n                    code: option.code,\n                    completed: option.completed || this.defaultOptions.includes(option.code)\n                }))\n            }));\n            this.control.markAsUntouched();\n        }\n    }\n\n    update(completed: boolean, index?: number) {\n        this.task.update(task => {\n            if (index === undefined) {\n                task.completed = completed;\n                task.subtasks?.forEach(t => (t.completed = completed));\n            } else {\n                task.subtasks![index].completed = completed;\n                task.completed = task.subtasks?.every(t => t.completed) ?? true;\n            }\n            const selecteds: any = this.task().subtasks?.filter(option => option.completed).map(({ name, code }) => ({ name, code }));\n\n            if (selecteds.length === 0) {\n                this.control.setValue(null)\n                this.control.setErrors({ required: true }); \n            } else {\n                this.control.setErrors(null);\n                this.control.setValue(selecteds)\n            }\n          \n            this.changeCheck.emit(selecteds);\n            \n            return {...task};\n        });\n    }\n}\n","\n<div class=\"container d-flex flex-column justify-content-center align-items-start\" >\n\n    @for (subtask of task().subtasks; track subtask; let i = $index) {\n        <div \n        [class]=\"direction === 'VERTICAL'? 'd-flex flex-column justify-content-center align-items-center gap-3':'d-flex flex-row justify-content-center align-items-center gap-3'\"\n        >\n        \n        <li class=\"list-unstyled\">\n            <div \n        [class]=\"disabled ? 'check-content-disabel':'check-content'\"\n        >\n        <mat-checkbox [disabled]=\"disabled\" [checked]=\"subtask.completed\" (change)=\"update($event.checked, i)\"   class=\"{{style  === 'filled'? 'check-filled' : ''}}\">\n            {{subtask.name}}\n          </mat-checkbox></div>\n          \n        </li> \n    </div>\n      }\n     \n\n</div> \n@if (control && control?.hasError('required')  && !control?.touched){\n            <mat-error class=\"mat-error\"\n                > Debes seleccionar al menos una opción.</mat-error\n            >\n}","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { MatCheckboxModule } from '@angular/material/checkbox';\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\nimport { CheckboxGroupComponent } from './checkbox-group.component';\nimport { MatFormFieldModule } from '@angular/material/form-field';\nimport { MatInputModule } from '@angular/material/input';\n\n@NgModule({\n    declarations: [CheckboxGroupComponent],\n    imports: [\n        CommonModule,\n        MatCheckboxModule,\n        FormsModule, \n        ReactiveFormsModule,\n        MatFormFieldModule,\n        MatInputModule\n    ],\n    exports: [CheckboxGroupComponent],\n})\nexport class KifCheckboxGroupModule {}\n","/*\n * Public API Surface of kif-lib-input\n */\n\nexport * from './checkbox-group.component';\nexport * from './checkbox-group.module';","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}