{"version":3,"file":"kif-lib-data-grid-product.mjs","sources":["../../../projects/kif-lib/data-grid-product/directives/CustomDateFormat.directive.ts","../../../projects/kif-lib/data-grid-product/grid-product.component.ts","../../../projects/kif-lib/data-grid-product/grid-product.component.html","../../../projects/kif-lib/data-grid-product/grid-product.module.ts","../../../projects/kif-lib/data-grid-product/public-api.ts","../../../projects/kif-lib/data-grid-product/kif-lib-data-grid-product.ts"],"sourcesContent":["import { Directive, ElementRef, HostListener } from '@angular/core';\n\n@Directive({\n    selector: '[kitAppCustomDateFormat]',\n    standalone: true\n})\nexport class CustomDateFormatDirective {\n    constructor(private elRef: ElementRef) { }\n    @HostListener('input', ['$event']) onInputChange(event: KeyboardEvent): void {\n        const input = event.target as HTMLInputElement;\n        let value = input.value;\n        value = value.replace(/[^0-9]/g, '');\n        value = value.slice(0,  8);\n        value = value.replace(/(\\d{2})(\\d)/, '$1/$2').replace(/(\\d{2})(\\d)/, '$1/$2');\n        input.value = value;\n    }\n}","import { animate, state, style, transition, trigger } from '@angular/animations';\nimport { Component, EventEmitter, Input,  Output } from '@angular/core';\nimport { MatPaginatorIntl } from '@angular/material/paginator';\nimport { Observable, map, startWith } from 'rxjs';\nimport { AbstractControl, Validators } from '@angular/forms';\nimport { Options } from './models/options';\nimport { ColumnDisplay } from './public-api';\n\n@Component({\n    selector: 'kit-grid-product',\n    templateUrl: './grid-product.component.html',\n    animations: [\n        trigger('detailExpand', [\n            state('collapsed,void', style({height: '0px', minHeight: '0'})),\n            state('expanded', style({height: '*'})),\n            transition('expanded <=> collapsed', animate('225ms cubic-bezier(0.4, 0.0, 0.2, 1)')),\n        ]),\n    ]\n})\nexport class GridProductComponent {\n    @Input() dataSource: any[] = [];\n    @Input() columnsDisplay: ColumnDisplay[] = [];\n    @Input() columnsToDisplayCode : string[] = []\n    @Input() formTable!: any //form\n    @Input() optionsAutocomplete: Array<Options> = [];\n    @Input() minDate?: Date | string;\n    @Input() maxDate?: Date | string;\n    @Input() isMultipleSelect = false\n    @Output() changeInputAutoComplete: EventEmitter<null> = new EventEmitter();\n    @Output() eventOpenAutocomplete : EventEmitter<unknown> = new EventEmitter();\n    public filteredOptions: Observable<Options[]> | undefined;\n    constructor(private paginator: MatPaginatorIntl) {\n    }\n\n    public cleanNumber(number: number) {\n        if (number > 0 && number < 10) {\n            return number.toString().replace(/^0+/, '');\n        }\n        return number;\n    }\n\n    public applyColClass(typeCol: string):string | null{\n        switch (typeCol) {\n            case 'EXTRA_SHORT': return 'col-lg-2 col-md-2 col-sm-12 col-12';\n            case 'SHORT': return 'col-lg-4 col-md-4 col-sm-12 col-12';\n            case 'MEDIUM': return 'col-lg-6 col-md-6 col-sm-12 col-12';\n            case 'LONG': return 'col-lg-12 col-md-12 col-sm-12 col-12';\n        }\n        return null\n    }\n\n    public openAutoComplete(itemRow:any) {\n        this.eventOpenAutocomplete.emit(itemRow)\n    }\n\n    public inputAutoComplete(formControl: AbstractControl) {\n        this.filteredOptions = formControl?.valueChanges.pipe(\n            startWith(''),\n            map((value: Options) => {\n                const label = typeof value === 'string' ? value : value?.label;\n                return label ? this._filter(label as string) : this.optionsAutocomplete?.slice();\n            }),\n        );\n        this.changeInputAutoComplete.emit()\n    }\n\n    displayFn(option: Options): string {\n        return option && option.label ? option.label : '';\n    }\n\n    compareWithFn(o1: any, o2: any): boolean {\n        return o1 && o2 ? o1.code === o2.code : o1 === o2;\n    }\n\n    private _filter(label: string): Options[] {\n        const filterValue = label.toLowerCase();\n\n        return this.optionsAutocomplete?.filter(option => option.label.toLowerCase().includes(filterValue)) || [];\n    }\n\n    public applyTypeInput(typeControl:string) {\n        switch (typeControl) {\n            case 'TEXT_INPUT': return 'text';\n            case 'NUMERIC_STEPPER': return 'number';\n        }\n        return 'text'\n    }\n\n    isControlRequired(control: AbstractControl | null): boolean {\n        if(control && control.validator) {\n            return !!control?.hasValidator(Validators.required);\n        }\n        return false\n    }\n    \n}\n","<table mat-table [dataSource]=\"dataSource\" class=\"table-product\">\n  @for (column of columnsDisplay; track column; let columnIndex = $index) {\n  <ng-container [matColumnDef]=\"column.code\">\n    <th mat-header-cell *matHeaderCellDef class=\"th-body-product\">\n      @if(column.code === 'coverage') {\n      {{column.name}}\n      } @else {\n      <mat-label [class.required]=\"column.required\">{{column.name}}</mat-label>\n      }\n    </th>\n    <td mat-cell *matCellDef=\"let element; let indexRow = index\"\n      class=\"td-body-product {{column.code !== 'coverage' ?'padding-form':'' }}\">\n      @if(column.code === 'coverage') {\n      <ng-container>\n        <div class=\"coverage-name\">\n          {{element.coverage}}\n        </div>\n      </ng-container>\n      } @else {\n      <ng-container class=\"coverage-form\">\n        @if ((element.dataSchemeAttributeList[columnIndex-1].dataType ===\n        'NUMBER'||element.dataSchemeAttributeList[columnIndex-1].dataType ===\n        'VARCHAR'||element.dataSchemeAttributeList[columnIndex-1].dataType ===\n        'EMAIL'||element.dataSchemeAttributeList[columnIndex-1].dataType === 'DATE') &&\n        (element.dataSchemeAttributeList[columnIndex-1].controlTypeCode === 'TEXT_INPUT' ||\n        element.dataSchemeAttributeList[columnIndex-1].controlTypeCode === 'NUMERIC_STEPPE') ) {\n        <mat-form-field class=\"example-full-width custom-label-outside\" appearance=\"outline\" floatLabel=\"always\">\n          <input matInput [type]=\"applyTypeInput(element.dataSchemeAttributeList[columnIndex-1].controlTypeCode)\"\n            class=\"form-control\"\n            [formControl]=\"formTable.controls[element.code+element.dataSchemeAttributeList[columnIndex-1].code]\"\n            [placeholder]=\"element.dataSchemeAttributeList[columnIndex-1].name\"\n            [placeholder]=\"element.dataSchemeAttributeList[columnIndex-1].name\"\n            [dropSpecialCharacters]=\"element.dataSchemeAttributeList[columnIndex-1]?.format?.dropSpecialCharacters ? false : true\"\n            [mask]=\"element.dataSchemeAttributeList[columnIndex-1].format.mask ? element.dataSchemeAttributeList[columnIndex-1].format.mask : ''\"\n            [prefix]=\"element.dataSchemeAttributeList[columnIndex-1].format.prefix ? element.dataSchemeAttributeList[columnIndex-1].format.prefix : ''\"\n            [suffix]=\"element.dataSchemeAttributeList[columnIndex-1].format.suffix ? element.dataSchemeAttributeList[columnIndex-1].format.suffix : ''\"\n            [decimalMarker]=\"(element.dataSchemeAttributeList[columnIndex-1].format.thousandSeparator && element.dataSchemeAttributeList[columnIndex-1].format.thousandSeparator === '.') ? ',':'.'\"\n            [specialCharacters]=\"element.dataSchemeAttributeList[columnIndex-1]?.format?.specialCharacters ? element.dataSchemeAttributeList[columnIndex-1]?.format?.specialCharacters : element.dataSchemeAttributeList[columnIndex-1]?.format?.thousandSeparator? [element.dataSchemeAttributeList[columnIndex-1]?.format?.thousandSeparator]:null\"\n            [thousandSeparator]=\"element.dataSchemeAttributeList[columnIndex-1]?.format?.thousandSeparator ? element.dataSchemeAttributeList[columnIndex-1]?.format?.thousandSeparator : ''\"\n            [allowNegativeNumbers]=\"element.dataSchemeAttributeList[columnIndex-1]?.format?.allowNegativeNumbers ? element.dataSchemeAttributeList[columnIndex-1]?.format?.allowNegativeNumbers : false\" />\n          @if\n          (formTable.controls[element.code+element.dataSchemeAttributeList[columnIndex-1].code].hasError('required')) {\n          <mat-error> {{element.dataSchemeAttributeList[columnIndex-1].name}} es <strong>requerido</strong></mat-error>\n          }\n          @if (formTable.controls[element.code+element.dataSchemeAttributeList[columnIndex-1].code].hasError('min')) {\n          <mat-error>El mínimo permitido es {{element.dataSchemeAttributeList[columnIndex-1].minValue}}</mat-error>\n          }\n          @if (formTable.controls[element.code+element.dataSchemeAttributeList[columnIndex-1].code].hasError('max')) {\n          <mat-error>El máximo permitido es {{element.dataSchemeAttributeList[columnIndex-1].maxValue}}</mat-error>\n          }\n        </mat-form-field>\n        }\n        @if (element.dataSchemeAttributeList[columnIndex-1].controlTypeCode === 'SEARCH_BOX' &&\n        (element.dataSchemeAttributeList[columnIndex-1].dataType === 'VARCHAR')) {\n        <mat-form-field class=\"example-full-width custom-label-outside\" appearance=\"outline\" floatLabel=\"always\">\n          <input type=\"text\" matInput\n            [formControl]=\"formTable.controls[element.code+element.dataSchemeAttributeList[columnIndex-1].code]\"\n            [placeholder]=\"element.dataSchemeAttributeList[columnIndex-1].name\" [matAutocomplete]=\"auto\"\n            (change)=\"inputAutoComplete(formTable.controls[element.code+element.dataSchemeAttributeList[columnIndex-1]])\" />\n          <mat-autocomplete #auto=\"matAutocomplete\" [displayWith]=\"displayFn\"\n            (click)=\"openAutoComplete(element.dataSchemeAttributeList[columnIndex-1])\">\n            @for (option of filteredOptions | async; track option) {\n            <mat-option [value]=\"option\">{{ option.label }}</mat-option>\n            }\n          </mat-autocomplete>\n          <mat-icon matPrefix>search</mat-icon>\n\n          @if\n          (formTable.controls[element.code+element.dataSchemeAttributeList[columnIndex-1].code].hasError('required')) {\n          <mat-error>{{element.dataSchemeAttributeList[columnIndex-1].name}} es <strong>requerido</strong></mat-error>\n          }\n        </mat-form-field>\n        }\n        @if (element.dataSchemeAttributeList[columnIndex-1].controlTypeCode === 'SELECT_BOX' &&\n        (element.dataSchemeAttributeList[columnIndex-1].dataType === 'VARCHAR')) {\n        <mat-form-field class=\"example-full-width custom-label-outside\" appearance=\"outline\" floatLabel=\"always\">\n          <mat-select\n            [formControl]=\"formTable.controls[element.code+element.dataSchemeAttributeList[columnIndex-1].code]\"\n            [placeholder]=\"'Seleccione '+element.dataSchemeAttributeList[columnIndex-1].name.toLowerCase()\"\n            [multiple]=\"isMultipleSelect ? true:false\" \n            [compareWith]=\"compareWithFn\"\n            >\n            @if ((element.dataSchemeAttributeList[columnIndex-1] &&\n            element.dataSchemeAttributeList[columnIndex-1].dataValueList.length > 0)) {\n            @for (option of element.dataSchemeAttributeList[columnIndex-1].dataValueList ; track option) {\n            <mat-option #optionsTemplate [value]=\"option\">{{option.description}}</mat-option>\n            }\n            } @else if(element.dataSchemeAttributeList[columnIndex-1] &&\n            element.dataSchemeAttributeList[columnIndex-1].dataValueList.length === 0) {\n            <mat-option [value]=\"\">No se encontraron ítems</mat-option>\n            }\n          </mat-select>\n          @if\n          (formTable.controls[element.code+element.dataSchemeAttributeList[columnIndex-1].code].hasError('required')) {\n          <mat-error>{{element.dataSchemeAttributeList[columnIndex-1].name}} es <strong>requerido</strong></mat-error>\n          }\n        </mat-form-field>\n        }\n        @if (element.dataSchemeAttributeList[columnIndex-1].dataType === 'DATE' &&\n        element.dataSchemeAttributeList[columnIndex-1].controlTypeCode === 'DATE_PICKER') {\n        <mat-form-field>\n          <input kitAppCustomDateFormat matInput [matDatepicker]=\"picker\"\n            [formControl]=\"formTable.controls[element.code+element.dataSchemeAttributeList[columnIndex-1].code]\"\n            [placeholder]=\"element.dataSchemeAttribute.name\" [min]=\"minDate\" [max]=\"maxDate\">\n          <mat-datepicker-toggle matIconSuffix [for]=\"picker\"></mat-datepicker-toggle>\n          <mat-datepicker #picker></mat-datepicker>\n          @if (formTable.controls[element.code+element.dataSchemeAttributeList[columnIndex-1].code] &&\n          !formTable.controls[element.code+element.dataSchemeAttributeList[columnIndex-1].code].hasError('required')) {\n          <mat-error>Por favor ingrese una fecha</mat-error>\n          }\n          @if\n          (formTable.controls[element.code+element.dataSchemeAttributeList[columnIndex-1].code].hasError('required')) {\n          <mat-error>Fecha es <strong>obligatorio</strong></mat-error>\n          }\n        </mat-form-field>\n        }\n      </ng-container>\n      }\n  </ng-container>\n  }\n  <tr mat-header-row *matHeaderRowDef=\"columnsToDisplayCode\" class=\"tr-header\"></tr>\n  <tr mat-row *matRowDef=\"let row; columns: columnsToDisplayCode\"></tr>\n</table>","import { NgModule } from '@angular/core';\nimport { AsyncPipe, CommonModule } from '@angular/common';\nimport { MatTableModule } from '@angular/material/table';\nimport { MatButtonModule } from '@angular/material/button';\nimport { MatIconModule } from '@angular/material/icon';\nimport { GridProductComponent } from './grid-product.component';\nimport { MatCheckboxModule } from '@angular/material/checkbox';\nimport { MatDivider, MatDividerModule } from '@angular/material/divider';\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\nimport { MatFormFieldModule } from '@angular/material/form-field';\nimport { MatInputModule } from '@angular/material/input';\nimport { MatSelectModule } from '@angular/material/select';\nimport { MatProgressSpinnerModule } from '@angular/material/progress-spinner';\nimport { MatOptionModule, provideNativeDateAdapter } from '@angular/material/core';\nimport { MatAutocompleteModule } from '@angular/material/autocomplete';\nimport { MatDatepickerModule } from '@angular/material/datepicker';\nimport { CustomDateFormatDirective } from './directives/CustomDateFormat.directive';\nimport { NgxMaskDirective, NgxMaskPipe, provideNgxMask } from 'ngx-mask';\n\n@NgModule({\n    imports: [\n        CommonModule,\n        MatTableModule, \n        MatButtonModule, \n        MatIconModule,\n        MatCheckboxModule,\n        MatDivider,\n        MatDividerModule,\n        FormsModule,\n        MatFormFieldModule,\n        MatInputModule,\n        ReactiveFormsModule,\n        MatSelectModule,\n        MatProgressSpinnerModule,\n        MatOptionModule,\n        MatAutocompleteModule,\n        MatDatepickerModule,\n        AsyncPipe,\n        CustomDateFormatDirective,\n        NgxMaskDirective, \n        NgxMaskPipe\n    ],\n    declarations: [\n        GridProductComponent\n    ],\n    exports:[\n        GridProductComponent\n    ],\n    providers: [provideNativeDateAdapter(),provideNgxMask()]\n})\nexport class KifGridProductModule { }\n","/*\n * Public API Surface of kif-lib-input\n */\n\nexport * from './grid-product.component';\nexport * from './grid-product.module';\nexport * from './models/column-display'\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i11.CustomDateFormatDirective"],"mappings":"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"}