ngx-sumax-erp-components 1.1.0 → 1.1.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1 +1 @@
1
- {"version":3,"file":"ngx-sumax-erp-components.mjs","sources":["../../../projects/ngx-sumax-erp-component/src/lib/date-picker/CustomDatePickerI18n.ts","../../../projects/ngx-sumax-erp-component/src/lib/date-picker/CustomDatePickerFormat.ts","../../../projects/ngx-sumax-erp-component/src/lib/utils/SharedComponentsUtil.ts","../../../projects/ngx-sumax-erp-component/src/lib/utils/DateUtil.ts","../../../projects/ngx-sumax-erp-component/src/lib/utils/message-util.service.ts","../../../projects/ngx-sumax-erp-component/src/lib/date-picker/date-picker.service.ts","../../../projects/ngx-sumax-erp-component/src/lib/error-message/error-message.component.ts","../../../projects/ngx-sumax-erp-component/src/lib/error-message/error-message.component.html","../../../projects/ngx-sumax-erp-component/src/lib/tooltip-message/tooltip-message.component.ts","../../../projects/ngx-sumax-erp-component/src/lib/tooltip-message/tooltip-message.component.html","../../../projects/ngx-sumax-erp-component/src/lib/date-picker/date-picker.component.ts","../../../projects/ngx-sumax-erp-component/src/lib/date-picker/date-picker.component.html","../../../projects/ngx-sumax-erp-component/src/lib/error-message/error-message.module.ts","../../../projects/ngx-sumax-erp-component/src/lib/tooltip-message/tooltip-message.module.ts","../../../projects/ngx-sumax-erp-component/src/lib/date-picker/date-picker.ts","../../../projects/ngx-sumax-erp-component/src/lib/date-picker/date-picker.module.ts","../../../projects/ngx-sumax-erp-component/src/lib/utils/DateTimeModel.ts","../../../projects/ngx-sumax-erp-component/src/lib/date-time-picker-editable/date-time-picker-editable.service.ts","../../../projects/ngx-sumax-erp-component/src/lib/date-time-picker-editable/date-time-picker-editable.component.ts","../../../projects/ngx-sumax-erp-component/src/lib/date-time-picker-editable/date-time-picker-editable.component.html","../../../projects/ngx-sumax-erp-component/src/lib/utils/DateTimePickerEditable.ts","../../../projects/ngx-sumax-erp-component/src/lib/date-time-picker-editable/date-time-picker-editable.module.ts","../../../projects/ngx-sumax-erp-component/src/lib/date-time-picker/date-time-picker.service.ts","../../../projects/ngx-sumax-erp-component/src/lib/date-time-picker/date-time-picker.component.ts","../../../projects/ngx-sumax-erp-component/src/lib/date-time-picker/date-time-picker.component.html","../../../projects/ngx-sumax-erp-component/src/lib/date-time-picker/date-time-picker.ts","../../../projects/ngx-sumax-erp-component/src/lib/date-time-picker/date-time-picker.module.ts","../../../projects/ngx-sumax-erp-component/src/lib/input-number/input-number.service.ts","../../../projects/ngx-sumax-erp-component/src/lib/input-number/input-number.component.ts","../../../projects/ngx-sumax-erp-component/src/lib/input-number/input-number.component.html","../../../projects/ngx-sumax-erp-component/src/lib/input-number/input-number.ts","../../../projects/ngx-sumax-erp-component/src/lib/input-number/input-number.module.ts","../../../projects/ngx-sumax-erp-component/src/lib/input-text/input-text.service.ts","../../../projects/ngx-sumax-erp-component/src/lib/input-text/input-text.component.ts","../../../projects/ngx-sumax-erp-component/src/lib/input-text/input-text.component.html","../../../projects/ngx-sumax-erp-component/src/lib/input-text/input-text.ts","../../../projects/ngx-sumax-erp-component/src/lib/input-text/input-text.module.ts","../../../projects/ngx-sumax-erp-component/src/lib/ng-select-multiple/ng-select-multiple.service.ts","../../../projects/ngx-sumax-erp-component/src/lib/ng-select-multiple/ng-select-multiple.component.ts","../../../projects/ngx-sumax-erp-component/src/lib/ng-select-multiple/ng-select-multiple.component.html","../../../projects/ngx-sumax-erp-component/src/lib/ng-select-multiple/ng-select-multiple.ts","../../../projects/ngx-sumax-erp-component/src/lib/ng-select-multiple/ng-select-multiple.module.ts","../../../projects/ngx-sumax-erp-component/src/lib/sc-ag-grid/sc-ag-grid-pagination/sc-ag-grid-pagination.component.ts","../../../projects/ngx-sumax-erp-component/src/lib/sc-ag-grid/sc-ag-grid-pagination/sc-ag-grid-pagination.component.html","../../../projects/ngx-sumax-erp-component/src/lib/sc-ag-grid/input-search/input-search.component.ts","../../../projects/ngx-sumax-erp-component/src/lib/sc-ag-grid/input-search/input-search.component.html","../../../projects/ngx-sumax-erp-component/src/lib/dialog-ag-grid-search/dialog-ag-grid-search.component.ts","../../../projects/ngx-sumax-erp-component/src/lib/dialog-ag-grid-search/dialog-ag-grid-search.component.html","../../../projects/ngx-sumax-erp-component/src/lib/utils/ValidateUtil.ts","../../../projects/ngx-sumax-erp-component/src/lib/ng-select-simple/ng-select-simple.service.ts","../../../projects/ngx-sumax-erp-component/src/lib/ng-select-simple/ng-select-simple.component.ts","../../../projects/ngx-sumax-erp-component/src/lib/ng-select-simple/ng-select-simple.component.html","../../../projects/ngx-sumax-erp-component/src/lib/ng-select-simple/ng-select-simple.ts","../../../projects/ngx-sumax-erp-component/src/lib/sc-ag-grid/sc-ag-grid-pagination/sc-ag-grid-pagination.module.ts","../../../projects/ngx-sumax-erp-component/src/lib/sc-ag-grid/input-search/input-search.module.ts","../../../projects/ngx-sumax-erp-component/src/lib/dialog-ag-grid-search/dialog-ag-grid-search.module.ts","../../../projects/ngx-sumax-erp-component/src/lib/ng-select-simple/ng-select-simple.module.ts","../../../projects/ngx-sumax-erp-component/src/lib/utils/IScAgGrid.ts","../../../projects/ngx-sumax-erp-component/src/lib/sc-ag-grid/cell-editors/container-shared/container-shared.component.ts","../../../projects/ngx-sumax-erp-component/src/lib/sc-ag-grid/cell-editors/container-shared/container-shared.component.html","../../../projects/ngx-sumax-erp-component/src/lib/sc-ag-grid/cell-render/no-rows-overlay/noRowsOverlayCustom.component.ts","../../../projects/ngx-sumax-erp-component/src/lib/sc-ag-grid/cell-render/no-rows-overlay/noRowsOverlayDefault.component.ts","../../../projects/ngx-sumax-erp-component/src/lib/sc-ag-grid/cell-render/sc-cell-render-button/sc-cell-render-button.component.ts","../../../projects/ngx-sumax-erp-component/src/lib/sc-ag-grid/cell-render/sc-cell-render-button/sc-cell-render-button.component.html","../../../projects/ngx-sumax-erp-component/src/lib/sc-ag-grid/cell-render/sc-cell-render-checkbox-list/sc-cell-render-checkbox-list.component.ts","../../../projects/ngx-sumax-erp-component/src/lib/sc-ag-grid/cell-render/sc-cell-render-select/sc-cell-render-select.component.ts","../../../projects/ngx-sumax-erp-component/src/lib/sc-ag-grid/cell-render/sc-cell-render-toggle/sc-cell-render-toggle.component.ts","../../../projects/ngx-sumax-erp-component/src/lib/sc-ag-grid/directives/scAgGrid.directive.ts","../../../projects/ngx-sumax-erp-component/src/lib/sc-ag-grid/cell-render/sc-cell-render-config.ts","../../../projects/ngx-sumax-erp-component/src/lib/sc-ag-grid/sc-ag-grid-customizable/sc-ag-grid-customizable.component.ts","../../../projects/ngx-sumax-erp-component/src/lib/sc-ag-grid/sc-ag-grid-customizable/sc-ag-grid-customizable.component.html","../../../projects/ngx-sumax-erp-component/src/lib/sc-ag-grid/sc-ag-grid.module.ts","../../../projects/ngx-sumax-erp-component/src/lib/sc-ag-grid/sc-grid.uitl.ts","../../../projects/ngx-sumax-erp-component/src/lib/sc-wizard/sc-wizard.component.ts","../../../projects/ngx-sumax-erp-component/src/lib/sc-wizard/sc-wizard.component.html","../../../projects/ngx-sumax-erp-component/src/lib/sc-wizard/sc-wizard.module.ts","../../../projects/ngx-sumax-erp-component/src/lib/text-area/text-area.service.ts","../../../projects/ngx-sumax-erp-component/src/lib/text-area/text-area.component.ts","../../../projects/ngx-sumax-erp-component/src/lib/text-area/text-area.component.html","../../../projects/ngx-sumax-erp-component/src/lib/text-area/text-area.ts","../../../projects/ngx-sumax-erp-component/src/lib/text-area/text-area.module.ts","../../../projects/ngx-sumax-erp-component/src/lib/utils/ScWizardBase.ts","../../../projects/ngx-sumax-erp-component/src/public-api.ts","../../../projects/ngx-sumax-erp-component/src/ngx-sumax-erp-components.ts"],"sourcesContent":["import { Injectable } from \"@angular/core\";\r\nimport { NgbDateStruct, NgbDatepickerI18n } from \"@ng-bootstrap/ng-bootstrap\";\r\n\r\ninterface I18N {\r\n fr: {\r\n weekdays: string[];\r\n months: string[];\r\n };\r\n}\r\n\r\nconst I18N_VALUES: I18N = {\r\n fr: {\r\n weekdays: [\"Lu\", \"Ma\", \"Mi\", \"Jue\", \"Vi\", \"Sa\", \"Do\"],\r\n months: [\"Ene\", \"Feb\", \"Mar\", \"Abr\", \"May\", \"Jun\", \"Jul\", \"Ago\", \"Sep\", \"Oct\", \"Nov\", \"Dic\"],\r\n },\r\n // other languages you would support\r\n};\r\n\r\n// Define a service holding the language. You probably already have one if your app is i18ned. Or you could also\r\n// use the Angular LOCALE_ID value\r\n@Injectable()\r\nexport class I18n {\r\n language: keyof I18N = \"fr\";\r\n}\r\n\r\n// Define custom service providing the months and weekdays translations\r\n@Injectable()\r\nexport class CustomDatepickerI18n extends NgbDatepickerI18n {\r\n constructor(private _i18n: I18n) {\r\n super();\r\n }\r\n\r\n getWeekdayShortName(weekday: number): string {\r\n return I18N_VALUES[this._i18n.language].weekdays[weekday - 1];\r\n }\r\n getMonthShortName(month: number): string {\r\n return I18N_VALUES[this._i18n.language].months[month - 1];\r\n }\r\n getMonthFullName(month: number): string {\r\n return this.getMonthShortName(month);\r\n }\r\n\r\n getDayAriaLabel(date: NgbDateStruct): string {\r\n return `${date.day}-${date.month}-${date.year}`;\r\n }\r\n\r\n getWeekdayLabel(weekday: number): string {\r\n return I18N_VALUES[this._i18n.language].weekdays[weekday - 1];\r\n }\r\n}\r\n","import { Injectable } from \"@angular/core\";\r\nimport { NgbDateParserFormatter, NgbDateStruct } from \"@ng-bootstrap/ng-bootstrap\";\r\n\r\nexport function toInteger(value: any): number {\r\n return parseInt(`${value}`, 10);\r\n}\r\n\r\nexport function isNumber(value: any): value is number {\r\n return !isNaN(toInteger(value));\r\n}\r\n\r\nexport function padNumber(value: number) {\r\n if (isNumber(value)) {\r\n return `0${value}`.slice(-2);\r\n } else {\r\n return \"\";\r\n }\r\n}\r\n@Injectable()\r\nexport class CustomDatepickerFormat extends NgbDateParserFormatter {\r\n parse(value: string): NgbDateStruct | any {\r\n if (value) {\r\n const dateParts = value.trim().split(\"-\");\r\n if (dateParts.length === 1 && isNumber(dateParts[0])) {\r\n return { day: toInteger(dateParts[0]), month: null, year: null };\r\n } else if (dateParts.length === 2 && isNumber(dateParts[0]) && isNumber(dateParts[1])) {\r\n return { day: toInteger(dateParts[0]), month: toInteger(dateParts[1]), year: null };\r\n } else if (dateParts.length === 3 && isNumber(dateParts[0]) && isNumber(dateParts[1]) && isNumber(dateParts[2])) {\r\n return { day: toInteger(dateParts[0]), month: toInteger(dateParts[1]), year: toInteger(dateParts[2]) };\r\n }\r\n }\r\n return null;\r\n }\r\n\r\n format(date: NgbDateStruct): string {\r\n return date ? `${isNumber(date.day) ? padNumber(date.day) : \"\"}/${isNumber(date.month) ? padNumber(date.month) : \"\"}/${date.year}` : \"\";\r\n }\r\n}\r\n","export class SharedComponentsUtil {\r\n stopByValidator(controls:any, validatorAlert: boolean, label: string){\r\n let validateError = null;\r\n if(controls != undefined){\r\n validateError = controls.errors;\r\n };\r\n let message = \"\";\r\n if(validatorAlert && validateError != null ){\r\n if(validateError.required != undefined){\r\n message = `El Campo ${label} es Requerido.`;\r\n }\r\n else if(validateError.minlength != undefined){\r\n message = `El Campo ${label} requiere ${validateError.minlength.requiredLength} caracteres minimo.`;\r\n }\r\n else if(validateError.maxlength != undefined){\r\n message = `El Campo ${label} requiere ${validateError.maxlength.requiredLength} caracteres maximo.`;\r\n }\r\n else if(validateError.pattern != undefined){\r\n message = `El Campo ${label} tiene formato incorrecto.`;\r\n }\r\n else if(validateError.customValidator != undefined){\r\n message = `${validateError.customValidator.message}`;\r\n }\r\n \r\n return {\r\n error: true,\r\n message: message\r\n };\r\n }else{\r\n return {\r\n error: false,\r\n message: \"Sin errores\"\r\n };\r\n }\r\n }\r\n\t\r\n}","import { NgOption } from \"@ng-select/ng-select\";\r\nimport {\r\n addDays as addDaysFns,\r\n differenceInDays as differenceInDaysFns,\r\n endOfMonth as endOfMonthFns,\r\n formatDistance as formatDistanceFns,\r\n format as formatFns,\r\n getHours as getHoursFns,\r\n getMinutes as getMinutesFns,\r\n getSeconds as getSecondsFns,\r\n isAfter as isAfterFns,\r\n isValid as isValidFns,\r\n parse as parseFns,\r\n parseISO,\r\n startOfMonth as startOfMonthFns,\r\n subDays as subDaysFns,\r\n} from \"date-fns\";\r\n\r\nexport type DateFormat =\r\n | \"ISO\"\r\n | \"ISODATE\"\r\n | \"ISODATETIME_NO_TIMEZONE\"\r\n | \"ISODATETIME_NO_TIMEZONE_NO_SEC\"\r\n | \"DATE\"\r\n | \"DATE_GUION\"\r\n | \"ISODATETIME_MAXHOURS\"\r\n | \"DATETIME\"\r\n | \"DATETIME_NO_SEC\"\r\n | \"TIME\"\r\n | \"MASK_24_HOURS\"\r\n | \"MASK_12_HOURS\"\r\n | \"MIDDAY_INDICATOR\";\r\n\r\nexport class DateUtil {\r\n private static readonly dateRegex = /\\d{2}\\/\\d{2}\\/\\d{4}/;\r\n private static readonly timeRegex = /(0?[0-9]|1[0-9]|2[0-3]):([0-5][0-9]):([0-5][0-9])/;\r\n private static readonly ISO8601 =\r\n /^(\\d{4}-\\d{2}-\\d{2})(T(0?[0-9]|1[0-9]|2[0-3]):([0-5][0-9]):([0-5][0-9])(\\.\\d+)?(Z|[+-]\\d{2}:\\d{2})?)?$/;\r\n private static readonly isoNoSec = /^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}$/;\r\n private static readonly DATE_FORMATS: Record<DateFormat, string> = {\r\n ISO: \"yyyy-MM-dd'T'HH:mm:ss.SSS'Z'\",\r\n ISODATE: \"yyyy-MM-dd\",\r\n ISODATETIME_NO_TIMEZONE: \"yyyy-MM-dd'T'HH:mm:ss\",\r\n ISODATETIME_NO_TIMEZONE_NO_SEC: \"yyyy-MM-dd'T'HH:mm\",\r\n DATE: \"dd/MM/yyyy\",\r\n DATE_GUION: \"dd-MM-yyyy\",\r\n TIME: \"HH:mm:ss\",\r\n DATETIME: \"dd/MM/yyyy HH:mm:ss\",\r\n DATETIME_NO_SEC: \"dd/MM/yyyy hh:mm a\",\r\n ISODATETIME_MAXHOURS: \"yyyy-MM-dd'T'23:59:59\",\r\n MASK_24_HOURS: \"HH\",\r\n MASK_12_HOURS: \"hh\",\r\n MIDDAY_INDICATOR: \"a\",\r\n };\r\n public static MONTHS = [\r\n \"enero\",\r\n \"febrero\",\r\n \"marzo\",\r\n \"abril\",\r\n \"mayo\",\r\n \"junio\",\r\n \"julio\",\r\n \"agosto\",\r\n \"setiembre\",\r\n \"octubre\",\r\n \"noviembre\",\r\n \"diciembre\",\r\n ];\r\n\r\n public static now(format: DateFormat = \"DATE\") {\r\n return this.format(new Date(), format);\r\n }\r\n\r\n public static parse(date: string, format: DateFormat): Date {\r\n return parseFns(date, this.DATE_FORMATS[format], new Date());\r\n }\r\n\r\n public static format(date: Date, format: DateFormat): string {\r\n return formatFns(date, this.DATE_FORMATS[format]);\r\n }\r\n\r\n static isValidDatePickerValue(value: string): boolean {\r\n return !value || value.length !== 10 ? false : this.isValid(this.parse(value, \"DATE\"));\r\n }\r\n\r\n static isValid(date: string | Date | number): boolean {\r\n return isValidFns(date);\r\n }\r\n\r\n static isAfter(date: string | Date, dateToCompare: string | Date): boolean {\r\n return isAfterFns(this.toDate(date), this.toDate(dateToCompare));\r\n }\r\n\r\n public static subDays(date: string | Date, days: number): Date {\r\n const newDate = this.toDate(date);\r\n return subDaysFns(newDate, days);\r\n }\r\n\r\n public static addDays(date: string | Date, days: number): Date {\r\n const newDate = this.toDate(date);\r\n return addDaysFns(newDate, days);\r\n }\r\n\r\n static toStrFormat(date: string | Date, targetFormat: DateFormat): string {\r\n return this.format(this.toDate(date), targetFormat);\r\n }\r\n\r\n public static toDate(date: string | Date): Date {\r\n if (date instanceof Date) {\r\n return date;\r\n }\r\n const dateFormat = this.getFormat(date);\r\n const parsedDate = dateFormat == \"ISO\" ? parseISO(date) : this.parse(date, dateFormat);\r\n if (!this.isValid(parsedDate)) {\r\n throw new Error(\"Invalid date\");\r\n }\r\n return parsedDate;\r\n }\r\n\r\n public static diffDays(later: string | Date, earlier: string | Date): number {\r\n const laterDate = this.toDate(later);\r\n const earlierDate = this.toDate(earlier);\r\n return differenceInDaysFns(laterDate, earlierDate);\r\n }\r\n\r\n static getYear(date: string | Date = new Date()): number {\r\n const dateObj = this.toDate(date);\r\n return dateObj.getUTCFullYear();\r\n }\r\n\r\n static getMonth(date: string | Date = new Date()): number {\r\n const dateObj = this.toDate(date);\r\n return dateObj.getUTCMonth() + 1;\r\n }\r\n\r\n static getDay(date: string | Date = new Date()): number {\r\n const dateObj = this.toDate(date);\r\n return dateObj.getUTCDate();\r\n }\r\n\r\n static getHours(date: string | Date = new Date()): number {\r\n const dateObj = this.toDate(date);\r\n return getHoursFns(dateObj);\r\n }\r\n\r\n static getMinutes(date: string | Date = new Date()): number {\r\n const dateObj = this.toDate(date);\r\n return getMinutesFns(dateObj);\r\n }\r\n\r\n static getSeconds(date: string | Date = new Date()): number {\r\n const dateObj = this.toDate(date);\r\n return getSecondsFns(dateObj);\r\n }\r\n\r\n static startOfMonth(targetFormat: DateFormat = \"DATE\"): string {\r\n return this.format(startOfMonthFns(new Date()), targetFormat);\r\n }\r\n\r\n static endOfMonth(fchIni: string | Date = new Date(), targetFormat: DateFormat = \"DATE\"): string {\r\n const date = this.toDate(fchIni);\r\n return this.format(endOfMonthFns(date), targetFormat);\r\n }\r\n\r\n static formatDistance(dateStr: string | Date): string {\r\n return formatDistanceFns(new Date(), this.toDate(dateStr));\r\n }\r\n\r\n static getFormat(dateStr: string): DateFormat {\r\n if (this.ISO8601.test(dateStr)) {\r\n return \"ISO\";\r\n } else if (this.dateRegex.test(dateStr)) {\r\n return \"DATE\";\r\n } else if (this.timeRegex.test(dateStr)) {\r\n return \"TIME\";\r\n } else if (this.isoNoSec.test(dateStr)) {\r\n return \"ISODATETIME_NO_TIMEZONE_NO_SEC\";\r\n } else {\r\n throw new Error(\"Unknown format\");\r\n }\r\n }\r\n\r\n static getNgOptionList(): NgOption[] {\r\n return this.MONTHS.map((month, index) => ({\r\n value: index,\r\n label: month.charAt(0).toUpperCase() + month.slice(1),\r\n }));\r\n }\r\n\r\n static validatorFecha(fch: string) {\r\n const datedFch = this.parse(fch, \"DATE\");\r\n const valid = this.isValid(datedFch);\r\n let errfch = \"\";\r\n if (!valid) {\r\n errfch = \"Fecha no válida\";\r\n if (typeof errfch === \"undefined\") {\r\n return { valid: true, errfch };\r\n }\r\n }\r\n return { valid, errfch };\r\n }\r\n\r\n ///------------------------------------------------------------------///\r\n\r\n static dateAutoComplete(fecha: any) {\r\n let now = new Date();\r\n let dia;\r\n let mes;\r\n let anio;\r\n switch (fecha.length) {\r\n case 1:\r\n case 2:\r\n dia = fecha.padStart(2, \"0\");\r\n mes = (now.getMonth() + 1).toString().padStart(2, \"0\");\r\n anio = now.getFullYear();\r\n break;\r\n case 3:\r\n case 4:\r\n dia = fecha.substring(0, 2);\r\n mes = fecha.substring(2, 4).padStart(2, \"0\");\r\n anio = now.getFullYear();\r\n break;\r\n case 6:\r\n dia = fecha.substring(0, 2);\r\n mes = fecha.substring(2, 4);\r\n anio = \"20\" + fecha.substring(4, 6);\r\n break;\r\n case 8:\r\n dia = fecha.substring(0, 2);\r\n mes = fecha.substring(2, 4);\r\n anio = fecha.substring(4);\r\n break;\r\n case 10:\r\n if (this.isValid(fecha)) {\r\n let d = this.parse(fecha, \"DATE\");\r\n dia = d.getDay();\r\n mes = d.getMonth() + 1;\r\n anio = d.getFullYear();\r\n }\r\n break;\r\n }\r\n if (typeof dia !== \"undefined\" || typeof mes !== \"undefined\" || typeof anio !== \"undefined\") {\r\n return this.toStrFormat(new Date(anio, mes - 1, dia), \"DATE\");\r\n } else {\r\n return this.toStrFormat(new Date(), \"DATE\");\r\n }\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\n//import toastr from 'toastr';\r\n import * as toastr_ from 'toastr';\r\n const toastr = toastr_;\r\n\r\n@Injectable({\r\n\tprovidedIn: 'root'\r\n})\r\nexport class MessageUtilService {\r\n\tmessage = '';\r\n\tconstructor() { }\r\n\r\n\tgetMessageError(codigo: string, element: string = '', message?: string): any {\r\n\t\t// tslint:disable: indent\r\n\t\tswitch (codigo) {\r\n\t\t\tcase 'A001':\r\n\t\t\t\tthis.message = `El campo ${element} es requerido`;\r\n\t\t\t\tbreak;\r\n\t\t\tcase 'A002':\r\n\t\t\t\tthis.message = `El campo ${element} no cumple con el formato establecido`;\r\n\t\t\t\tbreak;\r\n\t\t\tcase 'A003':\r\n\t\t\t\tthis.message = `La fecha ingresada no puede ser superior a la fecha del dí­a actual`;\r\n\t\t\t\tbreak;\r\n\t\t\tcase 'A004':\r\n\t\t\t\tthis.message = `La fecha del documento no puede ser menor a la fecha del ultimo documento ingresado`;\r\n\t\t\t\tbreak;\r\n\t\t\tcase '000046':\r\n\t\t\t\tthis.message = `${message}`;\r\n\t\t\t\tbreak;\r\n\t\t\tcase 'A005':\r\n\t\t\t\tthis.message = `No ha ingresado la serie`;\r\n\t\t\t\tbreak;\r\n\t\t\tcase 'A999':\r\n\t\t\t\tthis.message = `${element}`;\r\n\t\t\t\telement = 'Error';\r\n\t\t\t\t// return toastr.error(this.message);\r\n\t\t\t\tbreak;\r\n\t\t\tcase '500':\r\n\t\t\t\tthis.message = `Por favor comuniquese con el soporte del Sistema`;\r\n\t\t\t\tbreak;\r\n\t\t\tdefault:\r\n\t\t\t\tthis.message = element;\r\n\t\t\t\tbreak;\r\n\t\t}\r\n\t\ttoastr.options.positionClass = 'toast-bottom-right'\r\n\t\ttoastr.options.closeButton = true;\r\n\t\ttoastr.options.progressBar = true;\r\n\t\ttoastr.options.newestOnTop = true;\r\n\t\ttoastr.error(this.message, `<h5 class='text-white'> ${element} </h5>`);\r\n\t\treturn toastr;\r\n\t}\r\n\r\n\tgetAlertWarning(mensaje: string): any{\r\n\t\ttoastr.options.positionClass = 'toast-bottom-right'\r\n\t\ttoastr.options.closeButton = true;\r\n\t\ttoastr.options.progressBar = true;\r\n\t\ttoastr.options.newestOnTop = true;\r\n\t\ttoastr.warning(mensaje);\r\n\t\treturn toastr;\r\n\t}\r\n\r\n\tgetAlertSuccess(mensaje: string): any{\r\n\t\ttoastr.options.positionClass = 'toast-bottom-right'\r\n\t\ttoastr.options.closeButton = true;\r\n\t\ttoastr.options.progressBar = true;\r\n\t\ttoastr.options.newestOnTop = true;\r\n\t\ttoastr.success(mensaje);\r\n\t\treturn toastr;\r\n\t}\r\n\r\n\r\n}\r\n","import { Inject, Injectable } from \"@angular/core\";\r\n\r\n@Injectable()\r\nexport class DatePickerService {\r\n\r\n constructor(\r\n @Inject('DATE_PICKER_SHOW_LABEL') private showLabel: boolean = true,\r\n @Inject('DATE_PICKER_AUTOCOMPLETE') private autocomplete: string = \"off\",\r\n @Inject('DATE_PICKER_NO_AUTO_COMPLETE_NULL') private noAutoCompleteNull: boolean = true,\r\n @Inject('DATE_PICKER_FOCUS_INITIAL') private focusInitial: boolean = false,\r\n @Inject('DATE_PICKER_VALIDATOR_MESSAGE') private validatorMessage: boolean = false,\r\n @Inject('DATE_PICKER_TOOLTIP_MESSAGE') private tooltipMessage: boolean = true,\r\n @Inject('DATE_PICKER_SUBMITTED') private submitted: boolean = true,\r\n @Inject('DATE_PICKER_VALIDATOR_ALERT') private validatorAlert: boolean = false\r\n ) {\r\n }\r\n\r\n public getShowLabel(): boolean {\r\n return this.showLabel;\r\n }\r\n public getAutocomplete(): string {\r\n return this.autocomplete;\r\n }\r\n public getNoAutoCompleteNull(): boolean {\r\n return this.noAutoCompleteNull;\r\n }\r\n public getFocusInitial(): boolean {\r\n return this.focusInitial;\r\n }\r\n public getValidatorMessage(): boolean {\r\n return this.validatorMessage;\r\n }\r\n public getTooltipMessage(): boolean {\r\n return this.tooltipMessage;\r\n }\r\n public getSubmitted(): boolean {\r\n return this.submitted;\r\n }\r\n public getValidatorAlert(): boolean {\r\n return this.validatorAlert;\r\n }\r\n \r\n \r\n}","import { Component, OnInit, Input } from \"@angular/core\";\r\n\r\n@Component({\r\n selector: \"error-message\",\r\n templateUrl: \"./error-message.component.html\",\r\n styleUrls: [\"./error-message.component.scss\"],\r\n})\r\nexport class errorMessageComponent implements OnInit {\r\n /**\r\n * @description Muestra mensajes de ayuda como tooltips\r\n * @default undefined\r\n * @type boolean\r\n */\r\n @Input() tooltipMessage: boolean | undefined;\r\n \r\n /**\r\n * @description Muestra mensajes de validación\r\n * @default undefined\r\n * @type boolean\r\n */\r\n @Input() validatorMessage: boolean | undefined;\r\n \r\n /**\r\n * @description Controles del formulario para validación\r\n * @default undefined\r\n * @type any\r\n */\r\n @Input() controls: any;\r\n \r\n /**\r\n * @description Etiqueta del campo para mostrar en mensajes de error\r\n * @default undefined\r\n * @type any\r\n */\r\n @Input() label: any;\r\n \r\n /**\r\n * @description Indica si el formulario ha sido enviado para mostrar validaciones\r\n * @default undefined\r\n * @type boolean\r\n */\r\n @Input() submitted: boolean | undefined;\r\n\r\n constructor() {}\r\n\r\n ngOnInit() {}\r\n}\r\n","<!-- VALIDATOR GENERICOS -->\r\n<small *ngIf=\"validatorMessage && controls?.errors?.required && (controls?.dirty || controls?.touched) && submitted\" class=\"text-danger\">\r\n El campo {{ label }} es requerido<br />\r\n</small>\r\n<small *ngIf=\"validatorMessage && controls?.errors?.minlength && (controls?.dirty || controls?.touched) && submitted\" class=\"text-danger\">\r\n El campo {{ label }} requiere {{ controls.errors.minlength.requiredLength }} caracteres minimo.<br />\r\n</small>\r\n<small *ngIf=\"validatorMessage && controls?.errors?.maxlength && (controls?.dirty || controls?.touched) && submitted\" class=\"text-danger\">\r\n El campo {{ label }} requiere {{ controls.errors.maxlength.requiredLength }} caracteres maximo.<br />\r\n</small>\r\n<small *ngIf=\"validatorMessage && controls?.errors?.pattern && (controls?.dirty || controls?.touched) && submitted\" class=\"text-danger\">\r\n El campo {{ label }} tiene formato incorrecto.<br />\r\n</small>\r\n<small *ngIf=\"validatorMessage && controls?.errors?.min && (controls?.dirty || controls?.touched) && submitted\" class=\"text-danger\">\r\n El valor minimo del campo {{ label }} es: {{ controls?.errors?.min.min }}\r\n</small>\r\n<small *ngIf=\"validatorMessage && controls?.errors?.max && (controls?.dirty || controls?.touched) && submitted\" class=\"text-danger\">\r\n El valor máximo del campo {{ label }} es: {{ controls?.errors?.max.max }}\r\n</small>\r\n<!-- CUSTOM VALIDATOR -->\r\n<small\r\n *ngIf=\"validatorMessage && controls?.errors?.customValidator && (controls?.dirty || controls?.touched) && submitted\"\r\n class=\"text-danger\">\r\n {{ controls.errors?.customValidator.message }}<br />\r\n</small>\r\n","import { Component, OnInit, Input } from \"@angular/core\";\r\n\r\n@Component({\r\n selector: \"tooltip-message\",\r\n templateUrl: \"./tooltip-message.component.html\",\r\n styleUrls: [\"./tooltip-message.component.scss\"],\r\n})\r\nexport class tooltipMessageComponent implements OnInit {\r\n /**\r\n * @description Muestra mensajes de ayuda como tooltips\r\n * @default undefined\r\n * @type boolean\r\n */\r\n @Input() tooltipMessage: boolean | undefined;\r\n \r\n /**\r\n * @description Muestra mensajes de validación\r\n * @default undefined\r\n * @type boolean\r\n */\r\n @Input() validatorMessage: boolean | undefined;\r\n \r\n /**\r\n * @description Control asociado para validaciones\r\n * @default undefined\r\n * @type any\r\n */\r\n @Input() controls: any;\r\n \r\n /**\r\n * @description Texto a mostrar como etiqueta\r\n * @default undefined\r\n * @type any\r\n */\r\n @Input() label: any;\r\n \r\n /**\r\n * @description Indica si el formulario ha sido enviado para mostrar validaciones\r\n * @default undefined\r\n * @type boolean\r\n */\r\n @Input() submitted: boolean | undefined;\r\n\r\n constructor() {}\r\n\r\n ngOnInit() {}\r\n}\r\n","<i\r\n *ngIf=\"controls?.errors != null && (controls?.dirty || controls?.touched) && submitted\"\r\n class=\"fa fa-exclamation-circle text-danger mb-2 ml-3\"\r\n [matTooltip]=\"\r\n tooltipMessage && submitted && !validatorMessage && controls?.errors?.required && (controls?.dirty || controls?.touched)\r\n ? 'El campo ' + label + ' es requerido.'\r\n : tooltipMessage && submitted && !validatorMessage && controls?.errors?.minlength && (controls?.dirty || controls?.touched)\r\n ? 'El campo ' + label + ' requiere ' + controls.errors.minlength.requiredLength + ' caracteres minimo.'\r\n : tooltipMessage && submitted && !validatorMessage && controls?.errors?.maxlength && (controls?.dirty || controls?.touched)\r\n ? 'El campo ' + label + ' requiere ' + controls.errors.maxlength.requiredLength + ' caracteres maximo.'\r\n : tooltipMessage && submitted && !validatorMessage && controls?.errors?.min && (controls?.dirty || controls?.touched)\r\n ? 'El valor minimo del campo ' + label + ' es: ' + controls.errors.min.min\r\n : tooltipMessage && submitted && !validatorMessage && controls?.errors?.max && (controls?.dirty || controls?.touched)\r\n ? 'El valor máximo del campo ' + label + ' es: ' + controls.errors.max.max\r\n : tooltipMessage && submitted && !validatorMessage && controls?.errors?.pattern && (controls?.dirty || controls?.touched)\r\n ? 'El campo ' + label + ' tiene formato incorrecto.'\r\n : tooltipMessage &&\r\n submitted &&\r\n !validatorMessage &&\r\n controls?.errors?.customValidator &&\r\n (controls?.dirty || controls?.touched)\r\n ? controls.errors.customValidator.message\r\n : null\r\n \"s\r\n [matTooltipClass]=\"'bg-danger'\"></i>","import {\r\n Component,\r\n ElementRef,\r\n EventEmitter,\r\n Input,\r\n OnChanges,\r\n OnInit,\r\n Output,\r\n Renderer2,\r\n SimpleChanges,\r\n ViewChild,\r\n forwardRef,\r\n} from '@angular/core';\r\nimport {\r\n AbstractControl,\r\n ControlValueAccessor,\r\n NG_VALIDATORS,\r\n NG_VALUE_ACCESSOR,\r\n ValidationErrors,\r\n} from '@angular/forms';\r\nimport {\r\n NgbDate,\r\n NgbDateParserFormatter,\r\n NgbDateStruct,\r\n NgbDatepicker,\r\n NgbDatepickerI18n,\r\n} from '@ng-bootstrap/ng-bootstrap';\r\nimport { DatePickerService } from './date-picker.service';\r\nimport { MessageUtilService } from '../utils/message-util.service';\r\nimport { CustomDatepickerI18n, I18n } from './CustomDatePickerI18n';\r\nimport { CustomDatepickerFormat } from './CustomDatePickerFormat';\r\nimport { SharedComponentsUtil } from '../utils/SharedComponentsUtil';\r\nimport { DateUtil } from '../utils/DateUtil';\r\n\r\n@Component({\r\n selector: 'date-picker',\r\n templateUrl: './date-picker.component.html',\r\n styleUrls: ['./date-picker.component.scss'],\r\n providers: [\r\n {\r\n provide: NG_VALUE_ACCESSOR,\r\n useExisting: forwardRef(() => DatePickerComponent),\r\n multi: true,\r\n },\r\n {\r\n provide: NG_VALIDATORS,\r\n useExisting: forwardRef(() => DatePickerComponent),\r\n multi: true,\r\n },\r\n I18n,\r\n { provide: NgbDatepickerI18n, useClass: CustomDatepickerI18n },\r\n { provide: NgbDateParserFormatter, useClass: CustomDatepickerFormat },\r\n ],\r\n})\r\n\r\n// providers: [I18n, { provide: NgbDatepickerI18n, useClass: CustomDatepickerI18n }, { provide: NgbDateParserFormatter, useClass: CustomDatepickerFormat }]\r\nexport class DatePickerComponent\r\n implements OnInit, OnChanges, ControlValueAccessor\r\n{\r\n /**\r\n * @description Controla la visualización del texto superior (label)\r\n * @default true\r\n * @type boolean\r\n */\r\n @Input() showLabel: boolean = true;\r\n \r\n /**\r\n * @description Texto a mostrar como etiqueta del campo\r\n * @default null\r\n * @type any\r\n */\r\n @Input() label: any = null;\r\n \r\n /**\r\n * @description Valor para el atributo autocomplete del input\r\n * @default 'off'\r\n * @type string\r\n */\r\n @Input() autocomplete: string = 'off';\r\n \r\n /**\r\n * @description Referencia al siguiente control para navegación\r\n * @default undefined\r\n * @type any\r\n */\r\n @Input() next: any;\r\n \r\n /**\r\n * @description Referencia al control alternativo cuando el siguiente está deshabilitado\r\n * @default undefined\r\n * @type any\r\n */\r\n @Input() nextIsDisable: any;\r\n \r\n /**\r\n * @description Referencia al control anterior para navegación\r\n * @default undefined\r\n * @type any\r\n */\r\n @Input() back: any;\r\n \r\n /**\r\n * @description Referencia al control alternativo cuando el anterior está deshabilitado\r\n * @default undefined\r\n * @type any\r\n */\r\n @Input() backIsDisable: any;\r\n \r\n /**\r\n * @description Indica si el campo es obligatorio\r\n * @default false\r\n * @type boolean\r\n */\r\n @Input() required: boolean = false;\r\n \r\n /**\r\n * @description Completa automáticamente con null cuando el valor está vacío\r\n * @default true\r\n * @type boolean\r\n */\r\n @Input() noAutoCompleteNull: boolean = true;\r\n \r\n /**\r\n * @description Establece el control como solo lectura\r\n * @default false\r\n * @type boolean\r\n */\r\n @Input() readonly: boolean = false;\r\n \r\n /**\r\n * @description Muestra mensajes de validación\r\n * @default false\r\n * @type boolean\r\n */\r\n @Input() validatorMessage: boolean = false;\r\n \r\n /**\r\n * @description Muestra mensajes de ayuda como tooltips\r\n * @default true\r\n * @type boolean\r\n */\r\n @Input() tooltipMessage: boolean = true;\r\n \r\n /**\r\n * @description Muestra alertas de validación\r\n * @default false\r\n * @type boolean\r\n */\r\n @Input() validatorAlert: boolean = false;\r\n \r\n /**\r\n * @description Indica si el formulario ha sido enviado para mostrar validaciones\r\n * @default true\r\n * @type boolean\r\n */\r\n @Input() submitted: boolean = true;\r\n \r\n /**\r\n * @description Habilita información adicional para la etiqueta\r\n * @default false\r\n * @type boolean\r\n */\r\n @Input() labelInfo: boolean = false;\r\n \r\n /**\r\n * @description Texto informativo adicional para la etiqueta\r\n * @default ''\r\n * @type string\r\n */\r\n @Input() textLabelInfo: string = '';\r\n \r\n /**\r\n * @description Fecha mínima seleccionable\r\n * @default undefined\r\n * @type NgbDateStruct\r\n */\r\n @Input() minDate!: NgbDateStruct;\r\n \r\n /**\r\n * @description Fecha máxima seleccionable\r\n * @default undefined\r\n * @type NgbDateStruct\r\n */\r\n @Input() maxDate!: NgbDateStruct;\r\n \r\n /**\r\n * @description Indica si el valor es inválido\r\n * @default false\r\n * @type boolean\r\n */\r\n @Input() invalid: boolean = false;\r\n \r\n /**\r\n * @description Establece el foco inicial en el componente\r\n * @default false\r\n * @type boolean\r\n */\r\n @Input() focusInitial: boolean = false;\r\n \r\n /**\r\n * @description Deshabilita el control\r\n * @default false\r\n * @type boolean\r\n */\r\n @Input() disabled: boolean = false;\r\n\r\n /**\r\n * @description Restringe la entrada a máximo 8 dígitos (DDMMYYYY) o 10 caracteres (DD/MM/YYYY)\r\n * @default false\r\n * @type boolean\r\n */\r\n @Input() restrictInputLength: boolean = false;\r\n\r\n @Output() onNext: EventEmitter<any> = new EventEmitter();\r\n @Output() onBack: EventEmitter<any> = new EventEmitter();\r\n @Output() input: EventEmitter<any> = new EventEmitter();\r\n @Output() onchange: EventEmitter<any> = new EventEmitter();\r\n @Output() blur: EventEmitter<any> = new EventEmitter();\r\n // xminDate = null;\r\n // xmaxDate = null;\r\n value: any;\r\n controls: any;\r\n emitValue: NgbDate | string = '';\r\n sharedComponentsUtil = new SharedComponentsUtil();\r\n @ViewChild('fecha') ngbDatepicker: NgbDatepicker | any;\r\n\r\n _tempValue = '';\r\n _initValue = false;\r\n\r\n constructor(\r\n private el: ElementRef,\r\n private messageUtilService: MessageUtilService,\r\n private datePickerService: DatePickerService,\r\n private _render: Renderer2\r\n ) {\r\n this.showLabel = this.datePickerService.getShowLabel();\r\n this.autocomplete = this.datePickerService.getAutocomplete();\r\n this.noAutoCompleteNull = this.datePickerService.getNoAutoCompleteNull();\r\n this.focusInitial = this.datePickerService.getFocusInitial();\r\n this.validatorMessage = this.datePickerService.getValidatorMessage();\r\n this.tooltipMessage = this.datePickerService.getTooltipMessage();\r\n this.submitted = this.datePickerService.getSubmitted();\r\n this.validatorAlert = this.datePickerService.getValidatorAlert();\r\n }\r\n\r\n ngOnChanges(changes: SimpleChanges): void {\r\n if (changes['submitted']) {\r\n if (this.controls !== undefined && changes['submitted'].currentValue) {\r\n this.controls.markAsDirty();\r\n this.controls.markAsTouched();\r\n }\r\n }\r\n }\r\n\r\n ngOnInit() {\r\n if (this.minDate) {\r\n this.minDate = this.strDateToNgbDate(this.minDate);\r\n }\r\n if (this.focusInitial == true && this.disabled == false) {\r\n const invalidControl =\r\n this.el.nativeElement.querySelector('[type=\"text\"]');\r\n invalidControl.focus();\r\n invalidControl.select();\r\n }\r\n }\r\n\r\n onChange = (_: any) => {};\r\n onValidationChange = () => {};\r\n onTouch = () => {};\r\n\r\n focus = () => {\r\n const invalidControl = this.el.nativeElement.querySelector('[type=\"text\"]');\r\n invalidControl.focus();\r\n invalidControl.select();\r\n };\r\n\r\n onFocus(evt: any) {\r\n if (evt) {\r\n const invalidControl =\r\n this.el.nativeElement.querySelector('[type=\"text\"]');\r\n invalidControl.select();\r\n }\r\n }\r\n\r\n writeValue(value: any): void {\r\n if (value) {\r\n this.value = this.strDateToNgbDate(value) || '';\r\n if (value && value instanceof Date) {\r\n this._tempValue = DateUtil.dateAutoComplete(value);\r\n if (this.controls) {\r\n this._render.setProperty(this.controls, 'value', this._tempValue);\r\n }\r\n }\r\n if (value && typeof value === 'string') this._tempValue = value.trim();\r\n } else {\r\n this.value = '';\r\n this._tempValue = '';\r\n }\r\n }\r\n registerOnChange(fn: any): void {\r\n this.onChange = fn;\r\n }\r\n registerOnTouched(fn: any): void {\r\n this.onTouch = fn;\r\n }\r\n setDisabledState?(isDisabled: boolean = false): void {\r\n this.disabled = isDisabled;\r\n }\r\n\r\n validate(control: AbstractControl): ValidationErrors | any {\r\n this.controls = control;\r\n if (!this._initValue) {\r\n if (this._tempValue) {\r\n this._render.setProperty(control, 'value', this._tempValue);\r\n }\r\n this._initValue = true;\r\n }\r\n return null;\r\n }\r\n\r\n registerOnValidatorChange?(fn: () => void): void {\r\n this.onValidationChange = fn;\r\n }\r\n\r\n onBlur(): void {\r\n this.onTouch();\r\n }\r\n\r\n onInput(value: any) {\r\n this.emitValue = value;\r\n\r\n this.value = value;\r\n if (this.value instanceof NgbDate) {\r\n this.emitValue = this.ngbDatetoString(value);\r\n }\r\n\r\n this.onChange(this.emitValue);\r\n this.onchange.emit(this.emitValue);\r\n this.input.emit(this.emitValue);\r\n\r\n this._tempValue = '';\r\n }\r\n\r\n onKeyUpEnter(): void {\r\n this.enterKeyUp();\r\n }\r\n\r\n handlePaste(event: ClipboardEvent): void {\r\n if(!this.restrictInputLength) return;\r\n event.preventDefault(); \r\n\r\n if(!this.isApplicableToHandlePaste(event)) return;\r\n\r\n const pastedText = event.clipboardData?.getData('text') || '';\r\n if (!pastedText) return;\r\n \r\n this.formatDate(pastedText);\r\n }\r\n\r\n private isApplicableToHandlePaste(event: ClipboardEvent): boolean {\r\n const input = event.target as HTMLInputElement;\r\n\r\n if(this._hasTextSelection(input)){\r\n return this._isFullySelected(input);\r\n }\r\n\r\n return true;\r\n }\r\n\r\n handleKeyPress(event: KeyboardEvent): void {\r\n if (this.restrictInputLength) {\r\n this._handleRestrictInputLength(event);\r\n } else {\r\n this.onlyNumbers(event as any);\r\n }\r\n }\r\n\r\n private _handleRestrictInputLength(event: KeyboardEvent): void {\r\n const isValidCharacter = this._isDigitOrSlash(event.key);\r\n\r\n if (!isValidCharacter) {\r\n event.preventDefault();\r\n return;\r\n }\r\n\r\n const input = event.target as HTMLInputElement;\r\n const currentValue = input.value;\r\n\r\n const hasSelectedText = this._hasTextSelection(input);\r\n\r\n if (hasSelectedText) {\r\n return;\r\n }\r\n\r\n const isInputLengthExceeded = this._isInputLengthExceeded(currentValue);\r\n\r\n if (isInputLengthExceeded) {\r\n event.preventDefault();\r\n }\r\n }\r\n\r\n private _isDigitOrSlash(key: string): boolean {\r\n return /[\\d\\/]/.test(key);\r\n }\r\n\r\n private _hasTextSelection(input: HTMLInputElement): boolean {\r\n return input.selectionStart !== input.selectionEnd;\r\n }\r\n \r\n private _isFullySelected(input: HTMLInputElement): boolean {\r\n return input.selectionStart === 0 && \r\n input.selectionEnd === input.value.length && \r\n input.value.length > 0;\r\n }\r\n\r\n private _isInputLengthExceeded(currentValue: string): boolean {\r\n const hasSlashes = /\\//.test(currentValue);\r\n\r\n // DD/MM/YYYY (máximo 10 caracteres) o 12032025 (máximo 8 dígitos)\r\n const maxLength = hasSlashes ? 10 : 8; \r\n return currentValue.length >= maxLength;\r\n }\r\n\r\n onlyNumbers(e: any) {\r\n if (!(e.keyCode >= 48 && e.keyCode <= 57) && e.keyCode != 47) {\r\n e.preventDefault();\r\n e.stopPropagation();\r\n }\r\n }\r\n\r\n strDateToNgbDate(value: any) {\r\n const date: Date = DateUtil.parse(value, 'DATE');\r\n const ngbDate: NgbDateStruct = {\r\n day: Number(DateUtil.getDay(date)),\r\n month: Number(DateUtil.getMonth(date)),\r\n year: Number(DateUtil.getYear(date)),\r\n };\r\n // return ngbDate;\r\n return new NgbDate(ngbDate.year, ngbDate.month, ngbDate.day);\r\n }\r\n\r\n ngbDatetoString(value: NgbDateStruct): NgbDate | string {\r\n const concatNgbDate =\r\n `0${value.day}`.slice(-2) + `0${value.month}`.slice(-2) + value.year;\r\n return DateUtil.dateAutoComplete(concatNgbDate);\r\n }\r\n\r\n enterKeyUp() {\r\n if (!this.disabled) {\r\n let validator = this.sharedComponentsUtil.stopByValidator(\r\n this.controls,\r\n this.validatorAlert,\r\n this.label\r\n );\r\n if (validator.error) {\r\n this.messageUtilService.getMessageError(\r\n '000046',\r\n 'Error',\r\n validator.message\r\n );\r\n return;\r\n }\r\n }\r\n if (this.next != undefined) {\r\n if (this.next.disabled || this.next.readonly) {\r\n if (this.nextIsDisable != undefined) {\r\n this.nextIsDisable.focus();\r\n }\r\n } else {\r\n this.next.focus();\r\n }\r\n } else {\r\n if (this.nextIsDisable != undefined) {\r\n this.nextIsDisable.focus();\r\n } else {\r\n this.onNext.emit();\r\n }\r\n }\r\n }\r\n\r\n arrowUpKeyUp() {\r\n if (!this.disabled) {\r\n let validator = this.sharedComponentsUtil.stopByValidator(\r\n this.controls,\r\n this.validatorAlert,\r\n this.label\r\n );\r\n if (validator.error) {\r\n this.messageUtilService.getMessageError(\r\n '000046',\r\n 'Error',\r\n validator.message\r\n );\r\n return;\r\n }\r\n }\r\n if (this.back != undefined) {\r\n if (this.back.disabled || this.back.readonly) {\r\n if (this.backIsDisable != undefined) {\r\n this.backIsDisable.focus();\r\n }\r\n } else {\r\n this.back.focus();\r\n }\r\n } else {\r\n if (this.backIsDisable != undefined) {\r\n this.backIsDisable.focus();\r\n } else {\r\n this.onBack.emit();\r\n }\r\n }\r\n }\r\n\r\n focusOut(value: any) {\r\n this.formatDate(value);\r\n }\r\n\r\n formatDate(value: any): void {\r\n if (value && value?.trim() !== '') {\r\n if (this._tempValue === value) return;\r\n\r\n this.ngbDatepicker.close();\r\n if (value instanceof NgbDate) {\r\n if (value !== this.ngbDatetoString(value)) {\r\n this.emitValue = this.ngbDatetoString(value);\r\n } else {\r\n this.emitValue = value;\r\n }\r\n } else {\r\n value = value.replaceAll('/', '');\r\n if (this.noAutoCompleteNull) {\r\n this.value = this.strDateToNgbDate(\r\n DateUtil.dateAutoComplete(value)\r\n );\r\n this.emitValue = DateUtil.dateAutoComplete(value);\r\n } else {\r\n if (value != '' && value != null) {\r\n this.value = this.strDateToNgbDate(\r\n DateUtil.dateAutoComplete(value)\r\n );\r\n this.emitValue = DateUtil.dateAutoComplete(value);\r\n }\r\n }\r\n }\r\n\r\n this.onTouch();\r\n this.onChange(this.emitValue);\r\n\r\n if (typeof this.emitValue === 'string') this._tempValue = this.emitValue;\r\n }\r\n }\r\n}\r\n","<label *ngIf=\"label != null && label != '' && showLabel\" class=\"d-flex sumax-label mb-0 p-0\"\r\n ><span [title]=\"label\" style=\"white-space: nowrap; overflow: hidden; text-overflow: ellipsis\">{{ label }}</span>\r\n <span *ngIf=\"required\" class=\"ms-1\" [class.text-danger]=\"controls?.errors != null\"> *</span>\r\n <span *ngIf=\"labelInfo\">\r\n <i class=\"fa fa-exclamation-circle text-info ms-2\" [matTooltip]=\"textLabelInfo\" matTooltipClass=\"bg-info\"></i>\r\n </span>\r\n</label>\r\n<div\r\n [class.input-icon]=\"controls?.errors != null && (controls?.dirty || controls?.touched) && submitted\"\r\n [class.right]=\"controls?.errors != null && (controls?.dirty || controls?.touched) && submitted\">\r\n <!-- tooltip-message es el icono de error -->\r\n\r\n <div class=\"d-flex p-0 group-input-button position-relative\">\r\n <tooltip-message\r\n [label]=\"label\"\r\n [controls]=\"controls\"\r\n [validatorMessage]=\"validatorMessage\"\r\n [submitted]=\"submitted\"\r\n [tooltipMessage]=\"tooltipMessage\"></tooltip-message>\r\n <input\r\n type=\"text\"\r\n [attr.autocomplete]=\"autocomplete\"\r\n [class.is-invalid]=\"controls?.errors != null && (controls?.dirty || controls?.touched) && submitted\"\r\n [disabled]=\"disabled\"\r\n [readonly]=\"readonly\"\r\n (keyup.enter)=\"onKeyUpEnter()\"\r\n (keyup.ArrowUp)=\"arrowUpKeyUp()\"\r\n (keypress)=\"handleKeyPress($event)\"\r\n (input)=\"onInput($any($event.target).value)\"\r\n (dateSelect)=\"onInput($event)\"\r\n (focus)=\"onFocus($any($event.target).value)\"\r\n (focusout)=\"focusOut($any($event.target).value)\"\r\n (blur)=\"onBlur()\"\r\n (paste)=\"handlePaste($event)\"\r\n class=\"form-control form-control-sm rounded-left use-input\"\r\n container=\"body\"\r\n placeholder=\"dd/mm/yyyy\"\r\n [minDate]=\"{ year: 1960, month: 1, day: 1 }\"\r\n [maxDate]=\"maxDate\"\r\n name=\"fecha\"\r\n ngbDatepicker\r\n #fecha=\"ngbDatepicker\"\r\n [(ngModel)]=\"value\" />\r\n <button type=\"button\" [disabled]=\"disabled || readonly\" class=\"btn btn-info p-0 rounded-0 use-button\" (click)=\"fecha.toggle()\">\r\n <!-- <mat-icon class=\"text-white pt-1\" style=\"font-size: 18px;\" [matTooltip]=\"'Calendario'\" matTooltipClass=\"bg-info\">calendar_today</mat-icon> -->\r\n <i class=\"fa fa-calendar text-white px-1\" aria-hidden=\"true\"></i>\r\n </button>\r\n </div>\r\n</div>\r\n<!-- error-message es el mansaje que aparece abajo del componente -->\r\n<error-message\r\n [label]=\"label\"\r\n [controls]=\"controls\"\r\n [validatorMessage]=\"validatorMessage\"\r\n [submitted]=\"submitted\"\r\n [tooltipMessage]=\"tooltipMessage\"></error-message>\r\n","import { CommonModule } from \"@angular/common\";\r\nimport { NgModule } from \"@angular/core\";\r\nimport { RouterModule } from \"@angular/router\";\r\nimport { errorMessageComponent } from \"./error-message.component\";\r\n\r\n@NgModule({\r\n declarations: [errorMessageComponent],\r\n imports: [CommonModule, RouterModule],\r\n exports: [errorMessageComponent],\r\n})\r\nexport class ErrorMessageModule {}\r\n","import { CommonModule } from \"@angular/common\";\r\nimport { NgModule } from \"@angular/core\";\r\nimport { MatIconModule } from \"@angular/material/icon\";\r\nimport { MatTooltipModule } from \"@angular/material/tooltip\";\r\nimport { RouterModule } from \"@angular/router\";\r\nimport { tooltipMessageComponent } from \"./tooltip-message.component\";\r\n\r\n@NgModule({\r\n declarations: [tooltipMessageComponent],\r\n imports: [CommonModule, RouterModule, MatIconModule, MatTooltipModule],\r\n exports: [tooltipMessageComponent],\r\n})\r\nexport class TooltipMessageModule {}\r\n","export class DatePicker {\r\n showLabel?: boolean;\r\n autocomplete?: string;\r\n noAutoCompleteNull?: boolean;\r\n focusInitial?: boolean;\r\n validatorMessage?: boolean;\r\n tooltipMessage?: boolean;\r\n submitted?: boolean;\r\n validatorAlert?: boolean;\r\n}\r\n","import { CommonModule } from \"@angular/common\";\r\nimport { ModuleWithProviders, NgModule } from \"@angular/core\";\r\nimport { FormsModule, ReactiveFormsModule } from \"@angular/forms\";\r\nimport { MatIconModule } from \"@angular/material/icon\";\r\nimport { MatTooltipModule } from \"@angular/material/tooltip\";\r\nimport { RouterModule } from \"@angular/router\";\r\nimport { NgbDatepickerModule } from \"@ng-bootstrap/ng-bootstrap\";\r\nimport { ErrorMessageModule } from \"../error-message/error-message.module\";\r\nimport { TooltipMessageModule } from \"../tooltip-message/tooltip-message.module\";\r\nimport { DatePickerComponent } from \"./date-picker.component\";\r\nimport { DatePicker } from \"./date-picker\";\r\nimport { DatePickerService } from \"./date-picker.service\";\r\n\r\n@NgModule({\r\n declarations: [DatePickerComponent],\r\n imports: [\r\n CommonModule,\r\n RouterModule,\r\n FormsModule,\r\n ReactiveFormsModule,\r\n ErrorMessageModule,\r\n TooltipMessageModule,\r\n MatIconModule,\r\n MatTooltipModule,\r\n NgbDatepickerModule,\r\n ],\r\n exports: [DatePickerComponent],\r\n})\r\nexport class DatePickerModule {\r\n static forRoot(datePicker: DatePicker = new DatePicker()): ModuleWithProviders<DatePickerModule> {\r\n return {\r\n ngModule: DatePickerModule,\r\n providers: [\r\n { provide: \"DATE_PICKER_SHOW_LABEL\", useValue: datePicker.showLabel },\r\n { provide: \"DATE_PICKER_AUTOCOMPLETE\", useValue: datePicker.autocomplete },\r\n { provide: \"DATE_PICKER_NO_AUTO_COMPLETE_NULL\", useValue: datePicker.noAutoCompleteNull },\r\n { provide: \"DATE_PICKER_FOCUS_INITIAL\", useValue: datePicker.focusInitial },\r\n { provide: \"DATE_PICKER_VALIDATOR_MESSAGE\", useValue: datePicker.validatorMessage },\r\n { provide: \"DATE_PICKER_TOOLTIP_MESSAGE\", useValue: datePicker.tooltipMessage },\r\n { provide: \"DATE_PICKER_SUBMITTED\", useValue: datePicker.submitted },\r\n { provide: \"DATE_PICKER_VALIDATOR_ALERT\", useValue: datePicker.validatorAlert },\r\n DatePickerService,\r\n ],\r\n };\r\n }\r\n}\r\n","import { NgbTimeStruct, NgbDateStruct } from '@ng-bootstrap/ng-bootstrap';\r\n\r\nexport interface NgbDateTimeStruct extends NgbDateStruct, NgbTimeStruct { }\r\n\r\nexport class DateTimeModel implements NgbDateTimeStruct {\r\n\tyear!: number;\r\n\tmonth!: number;\r\n\tday!: number;\r\n\thour!: number;\r\n\tminute!: number;\r\n\tsecond!: number;\r\n\r\n\ttimeZoneOffset!: number;\r\n\r\n\tpublic constructor(init?: Partial<DateTimeModel>) {\r\n\t\tObject.assign(this, init);\r\n\t}\r\n\r\n\tpublic static fromLocalString(dateString: string): DateTimeModel | any {\r\n\t\tconst date = new Date(dateString);\r\n\r\n\t\tconst isValidDate = !isNaN(date.valueOf());\r\n\r\n\t\tif (!dateString || !isValidDate) {\r\n\t\t\treturn null;\r\n\t\t}\r\n\r\n\t\treturn new DateTimeModel({\r\n\t\t\tyear: date.getFullYear(),\r\n\t\t\tmonth: date.getMonth() + 1,\r\n\t\t\tday: date.getDate(),\r\n\t\t\thour: date.getHours(),\r\n\t\t\tminute: date.getMinutes(),\r\n\t\t\tsecond: date.getSeconds(),\r\n\t\t\ttimeZoneOffset: date.getTimezoneOffset()\r\n\t\t});\r\n\t}\r\n\r\n\tprivate isInteger(value: any): value is number {\r\n\t\treturn typeof value === 'number' && isFinite(value) && Math.floor(value) === value;\r\n\t}\r\n\r\n\tpublic toString(): string | any{\r\n\t\tif (this.isInteger(this.year) && this.isInteger(this.month) && this.isInteger(this.day)) {\r\n\t\t\tconst year = this.year.toString().padStart(2, '0');\r\n\t\t\tconst month = this.month.toString().padStart(2, '0');\r\n\t\t\tconst day = this.day.toString().padStart(2, '0');\r\n\r\n\t\t\tif (!this.hour) {\r\n\t\t\t\tthis.hour = 0;\r\n\t\t\t}\r\n\t\t\tif (!this.minute) {\r\n\t\t\t\tthis.minute = 0;\r\n\t\t\t}\r\n\t\t\tif (!this.second) {\r\n\t\t\t\tthis.second = 0;\r\n\t\t\t}\r\n\t\t\tif (!this.timeZoneOffset) {\r\n\t\t\t\tthis.timeZoneOffset = new Date().getTimezoneOffset();\r\n\t\t\t}\r\n\r\n\t\t\tconst hour = this.hour.toString().padStart(2, '0');\r\n\t\t\tconst minute = this.minute.toString().padStart(2, '0');\r\n\t\t\tconst second = this.second.toString().padStart(2, '0');\r\n\r\n\t\t\tconst tzo = -this.timeZoneOffset;\r\n\r\n\t\t\tconst dif = tzo >= 0 ? '+' : '-';\r\n\t\t\tconst pad = (num : any) => {\r\n\t\t\t\tconst norm = Math.floor(Math.abs(num));\r\n\t\t\t\treturn (norm < 10 ? '0' : '') + norm;\r\n\t\t\t};\r\n\r\n\t\t\tconst isoString = `${pad(year)}-${pad(month)}-${pad(day)}T${pad(hour)}:${pad(minute)}:${pad(second)}${dif}${pad(tzo / 60)}:${pad(tzo % 60)}`;\r\n\t\t\treturn isoString;\r\n\t\t}\r\n\r\n\t\treturn null;\r\n\t}\r\n}\r\n\r\n","import { Inject, Injectable } from '@angular/core';\r\nimport { formatHour } from '../utils/DateTimePickerEditable';\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class DateTimePickerEditableService {\r\n constructor(\r\n @Inject('DATE_TIME_PICKER_SHOW_LABEL') private showLabel: boolean = true,\r\n @Inject('DATE_TIME_PICKER_OPEN_WHEN_FOCUS')\r\n private openWhenFocus: boolean = false,\r\n @Inject('DATE_TIME_PICKER_GO_NEXT_WHEN_SELECT')\r\n private goNextWhenSelect: boolean = false,\r\n @Inject('DATE_TIME_PICKER_VALIDATOR_MESSAGE')\r\n private validatorMessage: boolean = false,\r\n @Inject('DATE_TIME_PICKER_TOOLTIP_MESSAGE')\r\n private tooltipMessage: boolean = true,\r\n @Inject('DATE_TIME_PICKER_SUBMITTED') private submitted: boolean = true,\r\n @Inject('DATE_TIME_PICKER_FORMAT') private format: formatHour = 12,\r\n @Inject('DATE_TIME_PICKER_CLEARABLE') private clearable: boolean = true,\r\n @Inject('DATE_TIME_PICKER_AUTOCOMPLETE_HOURS') private autoCompleteHours: boolean = false,\r\n @Inject('DATE_TIME_PICKER_AUTOCOMPLETE') private autoComplete: boolean = true\r\n ) {}\r\n public getShowLabel(): boolean {\r\n return this.showLabel;\r\n }\r\n public getOpenWhenFocus(): boolean {\r\n return this.openWhenFocus;\r\n }\r\n public getGoNextWhenSelect(): boolean {\r\n return this.goNextWhenSelect;\r\n }\r\n public getValidatorMessage(): boolean {\r\n return this.validatorMessage;\r\n }\r\n public getTooltipMessage(): boolean {\r\n return this.tooltipMessage;\r\n }\r\n public getSubmitted(): boolean {\r\n return this.submitted;\r\n }\r\n public getFormat(): formatHour {\r\n return this.format;\r\n }\r\n public getClearable(): boolean {\r\n return this.clearable\r\n }\r\n public getAutoCompleteHours(): boolean {\r\n return this.autoCompleteHours;\r\n }\r\n public getAutoComplete(): boolean {\r\n return this.autoComplete;\r\n }\r\n}\r\n","import { DatePipe } from \"@angular/common\";\r\nimport {\r\n ChangeDetectorRef,\r\n Component,\r\n ElementRef,\r\n EventEmitter,\r\n Input,\r\n OnChanges,\r\n OnInit,\r\n Output,\r\n SimpleChanges,\r\n ViewChild,\r\n forwardRef,\r\n inject,\r\n input,\r\n viewChild,\r\n} from \"@angular/core\";\r\nimport {\r\n AbstractControl,\r\n ControlValueAccessor,\r\n FormControl,\r\n NG_VALIDATORS,\r\n NG_VALUE_ACCESSOR,\r\n UntypedFormControl,\r\n ValidationErrors,\r\n} from \"@angular/forms\";\r\nimport { NgbCalendar, NgbDateParserFormatter, NgbDatepickerI18n, NgbInputDatepicker } from \"@ng-bootstrap/ng-bootstrap\";\r\nimport { CustomDatepickerFormat } from \"../date-picker/CustomDatePickerFormat\";\r\nimport { CustomDatepickerI18n, I18n } from \"../date-picker/CustomDatePickerI18n\";\r\nimport { DateTimeModel } from \"../utils/DateTimeModel\";\r\nimport { formatHour } from \"../utils/DateTimePickerEditable\";\r\nimport { DateUtil } from \"../utils/DateUtil\";\r\nimport { DateTimePickerEditableService } from \"./date-time-picker-editable.service\";\r\n\r\nconst MASK_12_HOURS = \"dd/mm/yyyy --:-- --\";\r\nconst MASK_24_HOURS = \"dd/mm/yyyy --:--\";\r\n\r\n@Component({\r\n selector: \"date-time-picker-editable\",\r\n templateUrl: \"./date-time-picker-editable.component.html\",\r\n styleUrls: [\"./date-time-picker-editable.component.scss\"],\r\n providers: [\r\n {\r\n provide: NG_VALUE_ACCESSOR,\r\n multi: true,\r\n useExisting: DateTimePickerEditableComponent,\r\n },\r\n {\r\n provide: NG_VALIDATORS,\r\n useExisting: forwardRef(() => DateTimePickerEditableComponent),\r\n multi: true,\r\n },\r\n I18n,\r\n { provide: NgbDatepickerI18n, useClass: CustomDatepickerI18n },\r\n { provide: NgbDateParserFormatter, useClass: CustomDatepickerFormat },\r\n ],\r\n})\r\nexport class DateTimePickerEditableComponent implements OnInit, ControlValueAccessor, OnChanges {\r\n private _datePipe = inject(DatePipe);\r\n private _calendar = inject(NgbCalendar);\r\n private _dateTimePickerEditableService = inject(DateTimePickerEditableService);\r\n private _cdrf = inject(ChangeDetectorRef);\r\n\r\n @ViewChild(\"inputDateTime\") inputDateTime: any;\r\n @ViewChild(\"btnOpen\") btnOpen!: ElementRef;\r\n @ViewChild(\"btnClean\") btnClean!: ElementRef;\r\n @ViewChild(\"d2\") ngbDatepicker!: NgbInputDatepicker;\r\n\r\n /**\r\n * @description Texto superior\r\n * @default \"\"\r\n * @type string\r\n */\r\n @Input() label: string = \"\";\r\n \r\n /**\r\n * @description Controla la visualización del texto superior\r\n * @default true\r\n * @type boolean\r\n */\r\n @Input() showLabel: boolean = true;\r\n \r\n /**\r\n * @description Establece el control como solo lectura\r\n * @default false\r\n * @type boolean\r\n */\r\n @Input() readonly: boolean = false;\r\n \r\n /**\r\n * @description Indica si el campo es obligatorio\r\n * @default false\r\n * @type boolean\r\n */\r\n @Input() required: boolean = false;\r\n \r\n /**\r\n * @description Muestra mensajes de validación\r\n * @default false\r\n * @type boolean\r\n */\r\n @Input() validatorMessage: boolean = false;\r\n \r\n /**\r\n * @description Muestra mensajes de ayuda como tooltips\r\n * @default true\r\n * @type boolean\r\n */\r\n @Input() tooltipMessage: boolean = true;\r\n \r\n /**\r\n * @description Indica si el formulario ha sido enviado para mostrar validaciones\r\n * @default true\r\n * @type boolean\r\n */\r\n @Input() submitted: boolean = true;\r\n \r\n /**\r\n * @description Formato de hora: 12 o 24 horas\r\n * @default 24\r\n * @type formatHour\r\n */\r\n @Input() format: formatHour = 24;\r\n \r\n /**\r\n * @description Referencia al siguiente control para navegación\r\n * @default undefined\r\n * @type any\r\n */\r\n @Input() next: any;\r\n \r\n /**\r\n * @description Referencia al control alternativo cuando el siguiente está deshabilitado\r\n * @default undefined\r\n * @type any\r\n */\r\n @Input() nextIsDisable: any;\r\n \r\n /**\r\n * @description Habilita información adicional para la etiqueta\r\n * @default false\r\n * @type boolean\r\n */\r\n @Input() labelInfo: boolean = false;\r\n \r\n /**\r\n * @description Texto informativo adicional para la etiqueta\r\n * @default \"\"\r\n * @type string\r\n */\r\n @Input() textLabelInfo: string = \"\";\r\n \r\n /**\r\n * @description Referencia al control anterior para navegación\r\n * @default undefined\r\n * @type any\r\n */\r\n @Input() back: any;\r\n \r\n /**\r\n * @description Referencia al control alternativo cuando el anterior está deshabilitado\r\n * @default undefined\r\n * @type any\r\n */\r\n @Input() backIsDisable: any;\r\n \r\n /**\r\n * @description Abre el selector al recibir el foco\r\n * @default false\r\n * @type boolean\r\n */\r\n @Input() openWhenFocus: boolean = false;\r\n \r\n /**\r\n * @description Navega al siguiente control al seleccionar una fecha\r\n * @default false\r\n * @type boolean\r\n */\r\n @Input() goNextWhenSelect: boolean = false;\r\n \r\n /**\r\n * @description Muestra el botón de eliminar\r\n * @default false\r\n * @type boolean\r\n */\r\n @Input() clearable: boolean = true;\r\n \r\n /**\r\n * @description Autocompleta con la hora/minuto actual (true) o con 00:00 (false)\r\n * @default false\r\n * @type boolean\r\n */\r\n @Input() autoCompleteHours: boolean = false;\r\n \r\n /**\r\n * @description Habilita el autocompletado\r\n * @default true\r\n * @type boolean\r\n */\r\n @Input() autoComplete: boolean = true;\r\n \r\n /**\r\n * @description Deshabilita el control\r\n * @default false\r\n * @type boolean\r\n */\r\n @Input() disabled = false;\r\n @Output() onNext: EventEmitter<any> = new EventEmitter();\r\n @Output() onBack: EventEmitter<any> = new EventEmitter();\r\n\r\n onChange = (_: any) => { };\r\n onTouch = () => { };\r\n onValidationChange = () => { };\r\n\r\n controls: AbstractControl | undefined;\r\n contador = 0;\r\n position = 0;\r\n dateTimeControl = new FormControl(\"dd/mm/yyyy --:-- --\");\r\n hoursControl = new UntypedFormControl({\r\n hour: null,\r\n minute: null,\r\n });\r\n dateControl = new UntypedFormControl({\r\n year: null,\r\n month: null,\r\n day: null,\r\n });\r\n today = this._calendar.getToday();\r\n\r\n get stringFormat (): string {\r\n return this.format === 12 ? \"dd/MM/yyyy hh:mm a\" : \"dd/MM/yyyy HH:mm\";\r\n }\r\n\r\n constructor() {\r\n this.showLabel = this._dateTimePickerEditableService.getShowLabel();\r\n this.openWhenFocus = this._dateTimePickerEditableService.getOpenWhenFocus();\r\n this.goNextWhenSelect = this._dateTimePickerEditableService.getGoNextWhenSelect();\r\n this.validatorMessage = this._dateTimePickerEditableService.getValidatorMessage();\r\n this.tooltipMessage = this._dateTimePickerEditableService.getTooltipMessage();\r\n this.submitted = this._dateTimePickerEditableService.getSubmitted();\r\n this.format = this._dateTimePickerEditableService.getFormat();\r\n this.clearable = this._dateTimePickerEditableService.getClearable();\r\n this.autoCompleteHours = this._dateTimePickerEditableService.getAutoCompleteHours();\r\n this.autoComplete = this._dateTimePickerEditableService.getAutoComplete();\r\n }\r\n\r\n\r\n validate (control: AbstractControl): ValidationErrors | any {\r\n this.controls = control;\r\n this._cdrf.detectChanges();\r\n return null;\r\n }\r\n\r\n registerOnValidatorChange?(fn: () => void): void {\r\n this.onValidationChange = fn;\r\n }\r\n\r\n ngOnInit (): void {\r\n this.hoursChange();\r\n const timeout = setTimeout(() => {\r\n this.dateChange();\r\n clearTimeout(timeout);\r\n if (!this.clearable) this.btnClean!.nativeElement.style.visibility = \"hidden\";\r\n }, 100);\r\n\r\n if (this.format == 12) {\r\n this.dateTimeControl.setValue(MASK_12_HOURS);\r\n } else {\r\n this.dateTimeControl.setValue(MASK_24_HOURS);\r\n }\r\n }\r\n\r\n ngOnChanges (changes: SimpleChanges): void {\r\n if (changes[\"submitted\"]) {\r\n if (this.controls !== undefined && changes[\"submitted\"].currentValue) {\r\n this.controls.markAsDirty();\r\n this.controls.markAsTouched();\r\n }\r\n }\r\n }\r\n\r\n focus (): void {\r\n this.inputDateTime.nativeElement.focus();\r\n\r\n const timeout = setTimeout(() => {\r\n if (!this.disabled) this.inputDateTime.nativeElement.setSelectionRange(0, 2);\r\n\r\n clearTimeout(timeout);\r\n }, 100);\r\n\r\n if (!this.readonly && this.openWhenFocus) {\r\n this.ngbDatepicker?.open();\r\n }\r\n }\r\n\r\n writeValue (obj: any): void {\r\n if (obj != null) {\r\n this.dateControl.setValue(DateTimeModel.fromLocalString(obj));\r\n this.hoursControl.setValue({\r\n hour: this.dateControl.value.hour,\r\n minute: this.dateControl.value.minute,\r\n second: this.dateControl.value.second,\r\n });\r\n this.dateTimeControl.setValue(this._datePipe.transform(obj, this.stringFormat));\r\n }\r\n }\r\n registerOnChange (fn: any): void {\r\n this.onChange = fn;\r\n }\r\n registerOnTouched (fn: any): void {\r\n this.onTouch = fn;\r\n }\r\n setDisabledState?(isDisabled: boolean): void {\r\n this.disabled = isDisabled;\r\n if (this.disabled) this.dateTimeControl.disable();\r\n else this.dateTimeControl.enable();\r\n }\r\n\r\n hoursChange () {\r\n if (this.format == 12)\r\n this.hoursControl.valueChanges.subscribe((res) => {\r\n if (\r\n /[0-3][0-9]\\/[0-1][0-9]\\/[0-9][0-9][0-9][0-9] [0-1][0-9]:[0-6][0-9] [A,P]M/.test(this.dateTimeControl.value!) ||\r\n /[0-3][0-9]\\/[0-1][0-9]\\/[0-9][0-9][0-9][0-9]/.test(this.dateTimeControl.value!.substring(0, 10))\r\n ) {\r\n this.dateControl.setValue(\r\n {\r\n ...this.dateControl.value!,\r\n ...res,\r\n },\r\n { emitEvent: false }\r\n );\r\n try {\r\n const input: any = new DateTimeModel(Object.assign(this.dateControl.value, this.hoursControl.value));\r\n\r\n this.dateTimeControl.setValue(this._datePipe.transform(input, this.stringFormat));\r\n } finally {\r\n this.onEmit();\r\n }\r\n }\r\n });\r\n else if (this.format == 24)\r\n this.hoursControl.valueChanges.subscribe((res) => {\r\n if (\r\n /[0-3][0-9]\\/[0-1][0-9]\\/[0-9][0-9][0-9][0-9] [0-1][0-9]:[0-6][0-9]/.test(this.dateTimeControl.value!) ||\r\n /[0-3][0-9]\\/[0-1][0-9]\\/[0-9][0-9][0-9][0-9]/.test(this.dateTimeControl.value!.substring(0, 10))\r\n ) {\r\n this.dateControl.setValue(\r\n {\r\n ...this.dateControl.value,\r\n ...res,\r\n },\r\n { emitEvent: false }\r\n );\r\n try {\r\n const input: any = new DateTimeModel(Object.assign(this.dateControl.value, this.hoursControl.value));\r\n this.dateTimeControl.setValue(this._datePipe.transform(input, this.stringFormat));\r\n } catch (error) {\r\n /* console.error(error) */\r\n } finally {\r\n this.onEmit();\r\n }\r\n }\r\n });\r\n }\r\n\r\n onEmit (emitValue: any = null) {\r\n try {\r\n const value = new DateTimeModel(Object.assign(this.dateControl.value, this.hoursControl.value));\r\n emitValue = this._datePipe.transform(value.toString(), \"yyyy-MM-ddTHH:mm\");\r\n } catch (e) { }\r\n this.onChange(emitValue);\r\n this.onTouch();\r\n }\r\n\r\n dateChange () {\r\n if (this.format == 12)\r\n this.dateControl.valueChanges.subscribe((res) => {\r\n if (\r\n /[0-3][0-9]\\/[0-1][0-9]\\/[0-9][0-9][0-9][0-9] [0-1][0-9]:[0-6][0-9] [A,P]M/.test(this.dateTimeControl.value!) ||\r\n /[0-1][0-9]:[0-6][0-9]/.test(this.dateTimeControl.value!.substring(11, 16))\r\n ) {\r\n this.dateControl.setValue(\r\n {\r\n ...this.hoursControl.value,\r\n ...res,\r\n },\r\n { emitEvent: false }\r\n );\r\n\r\n try {\r\n const input: any = new DateTimeModel(Object.assign(this.dateControl.value, this.hoursControl.value));\r\n this.dateTimeControl.setValue(this._datePipe.transform(input, this.stringFormat));\r\n } catch (error) {\r\n } finally {\r\n this.onEmit();\r\n }\r\n }\r\n });\r\n else if (this.format == 24)\r\n this.dateControl.valueChanges.subscribe((res) => {\r\n if (\r\n /[0-3][0-9]\\/[0-1][0-9]\\/[0-9][0-9][0-9][0-9] [0-1][0-9]:[0-6][0-9] [A,P]M/.test(this.dateTimeControl.value!) ||\r\n /[0-1][0-9]:[0-6][0-9]/.test(this.dateTimeControl.value!.substring(11, 16))\r\n ) {\r\n this.dateControl.setValue(\r\n {\r\n ...this.hoursControl.value,\r\n ...res,\r\n },\r\n { emitEvent: false }\r\n );\r\n\r\n try {\r\n const input: any = new DateTimeModel(Object.assign(this.dateControl.value, this.hoursControl.value));\r\n this.dateTimeControl.setValue(this._datePipe.transform(input, this.stringFormat));\r\n } catch (error) {\r\n } finally {\r\n this.onEmit();\r\n }\r\n }\r\n });\r\n }\r\n\r\n onBlur (): void {\r\n this.onEmit();\r\n }\r\n\r\n focusOutInput (): void {\r\n if(this.autoComplete){\r\n const value = this.dateTimeControl.value;\r\n\r\n if ((value != MASK_12_HOURS && this.format == 12) || (value != MASK_24_HOURS && this.format == 24)) {\r\n const dia = value?.substring(0, 2);\r\n const mes = value?.substring(3, 5);\r\n const anio = value?.substring(6, 10);\r\n const hora = value?.substring(11, 13);\r\n const minutos = value?.substring(14, 16);\r\n\r\n if (\r\n isNaN(Number(dia)) ||\r\n dia == \"00\" ||\r\n isNaN(Number(mes)) ||\r\n mes == \"00\" ||\r\n isNaN(Number(anio)) ||\r\n anio == \"0000\" ||\r\n isNaN(Number(hora)) ||\r\n isNaN(Number(minutos))\r\n ) {\r\n this.dateControl.setValue(\r\n {\r\n year: isNaN(Number(anio)) || anio == \"0000\" ? this.today.year : Number(anio),\r\n month: isNaN(Number(mes)) || mes == \"00\" ? this.today.month : Number(mes),\r\n day: isNaN(Number(dia)) || dia == \"00\" ? this.today.day : Number(dia),\r\n },\r\n { emitEvent: false }\r\n );\r\n let hour = this.hoursControl.value.hour;\r\n if (isNaN(Number(hora))) hour = this.autoCompleteHours ? DateUtil.getHours(DateUtil.now(\"ISODATETIME_NO_TIMEZONE\")) : 0;\r\n\r\n let minute = this.hoursControl.value.minute;\r\n if (isNaN(Number(minutos))) minute = this.autoCompleteHours ? DateUtil.getMinutes(DateUtil.now(\"ISODATETIME_NO_TIMEZONE\")) : 0;\r\n\r\n this.hoursControl.setValue(\r\n {\r\n hour,\r\n minute,\r\n },\r\n { emitEvent: false }\r\n );\r\n const input: any = new DateTimeModel(Object.assign(this.dateControl.value, this.hoursControl.value));\r\n try {\r\n this.dateTimeControl.setValue(this._datePipe.transform(input, this.stringFormat));\r\n } finally {\r\n this.onEmit();\r\n }\r\n }\r\n }\r\n\r\n this.contador = 0;\r\n }\r\n }\r\n\r\n onKeyUp (e: any): void {\r\n const input = e.target;\r\n\r\n if (this.disabled) return;\r\n\r\n if (!isNaN(Number(e.key)) && e.key.trim() != \"\") {\r\n //============================= DIA ==================================\r\n if (input.selectionStart == 0 && input.selectionEnd == 2) {\r\n const valorActual: string = this.dateTimeControl.value!;\r\n const diaActual: string = valorActual.substring(0, 2);\r\n\r\n if (diaActual == \"dd\") {\r\n const nuevoValor = `${ e.key.padStart(2, 0) }${ valorActual.substring(2) }`;\r\n this.dateTimeControl.setValue(nuevoValor);\r\n this.dateControl.setValue({\r\n ...this.dateControl.value,\r\n day: Number(this.dateTimeControl.value!.substring(0, 2)),\r\n });\r\n this.contador++;\r\n if (e.key > 3) {\r\n this.contador = 0;\r\n input.setSelectionRange(3, 5);\r\n this.onEmit();\r\n return;\r\n } else this.onEmit();\r\n } else if (Number(diaActual) <= 3 && Number(diaActual) > 0 && this.contador > 0) {\r\n const nuevoValor = `${ Number(Number(diaActual).toString() + Number(e.key)) > 31 ? 31 : Number(diaActual).toString() + Number(e.key)\r\n }${ valorActual.substring(2) }`;\r\n this.dateTimeControl.setValue(nuevoValor);\r\n this.dateControl.setValue({\r\n ...this.dateControl.value,\r\n day: Number(this.dateTimeControl.value!.substring(0, 2)),\r\n });\r\n this.contador++;\r\n this.onEmit();\r\n input.setSelectionRange(3, 5);\r\n this.contador = 0;\r\n return;\r\n } else {\r\n const nuevoValor = `${ e.key.padStart(2, 0) }${ valorActual.substring(2) }`;\r\n this.dateTimeControl.setValue(nuevoValor);\r\n this.dateControl.setValue({\r\n ...this.dateControl.value,\r\n day: Number(this.dateTimeControl.value!.substring(0, 2)),\r\n });\r\n this.contador++;\r\n if (Number(e.key.padStart(2, 0)) > 3 || this.contador > 1) {\r\n this.contador = 0;\r\n input.setSelectionRange(3, 5);\r\n this.onEmit();\r\n return;\r\n } else this.onEmit();\r\n }\r\n this.onEmit();\r\n input.setSelectionRange(0, 2);\r\n }\r\n //============================= MES ==================================\r\n else if (input.selectionStart == 3 && input.selectionEnd == 5) {\r\n const valorActual: string = this.dateTimeControl.value!;\r\n const mesActual: string = valorActual.substring(3, 5);\r\n\r\n if (mesActual == \"mm\") {\r\n const nuevoValor = `${ valorActual.substring(0, 3) }${ e.key.padStart(2, 0) }${ valorActual.substring(5) }`;\r\n this.dateTimeControl.setValue(nuevoValor);\r\n this.dateControl.setValue({\r\n ...this.dateControl.value,\r\n month: Number(this.dateTimeControl.value!.substring(3, 5)),\r\n });\r\n this.contador++;\r\n if (e.key > 1) {\r\n this.onEmit();\r\n input.setSelectionRange(6, 10);\r\n this.contador = 0;\r\n return;\r\n } else this.onEmit();\r\n } else if (Number(mesActual) <= 1 && Number(mesActual) > 0 && this.contador > 0) {\r\n const nuevoValor = `${ valorActual.substring(0, 3) }${ Number(Number(mesActual).toString() + Number(e.key)) > 12 ? 12 : Number(mesActual).toString() + Number(e.key)\r\n }${ valorActual.substring(5) }`;\r\n this.dateTimeControl.setValue(nuevoValor);\r\n this.dateControl.setValue({\r\n ...this.dateControl.value,\r\n month: Number(this.dateTimeControl.value!.substring(3, 5)),\r\n });\r\n this.contador++;\r\n this.onEmit();\r\n input.setSelectionRange(6, 10);\r\n this.contador = 0;\r\n return;\r\n } else {\r\n const nuevoValor = `${ valorActual.substring(0, 3) }${ e.key.padStart(2, 0) }${ valorActual.substring(5) }`;\r\n this.dateTimeControl.setValue(nuevoValor);\r\n this.dateControl.setValue({\r\n ...this.dateControl.value,\r\n month: Number(this.dateTimeControl.value!.substring(3, 5)),\r\n });\r\n this.contador++;\r\n if (Number(e.key.padStart(2, 0)) > 1 || this.contador > 1) {\r\n this.onEmit();\r\n input.setSelectionRange(6, 10);\r\n this.contador = 0;\r\n return;\r\n } else this.onEmit();\r\n }\r\n this.onEmit();\r\n input.setSelectionRange(3, 5);\r\n }\r\n //============================= AÑO ==================================\r\n else if (input.selectionStart == 6 && input.selectionEnd == 10) {\r\n const valorActual: string = this.dateTimeControl.value!;\r\n const anioActual: string = valorActual.substring(6, 10);\r\n if (anioActual == \"yyyy\") {\r\n const nuevoValor = `${ valorActual.substring(0, 6) }${ e.key.padStart(4, 0) }${ valorActual.substring(10) }`;\r\n this.dateTimeControl.setValue(nuevoValor);\r\n this.dateControl.setValue({\r\n ...this.dateControl.value,\r\n year: Number(this.dateTimeControl.value!.substring(6, 10)),\r\n });\r\n this.contador++;\r\n if (e.key > 2) {\r\n const nuevoValor = `${ valorActual.substring(0, 6) }${ DateUtil.getYear(DateUtil.now()) }${ valorActual.substring(10) }`;\r\n this.dateTimeControl.setValue(nuevoValor);\r\n this.dateControl.setValue({\r\n ...this.dateControl.value,\r\n year: Number(this.dateTimeControl.value!.substring(6, 10)),\r\n });\r\n this.onEmit();\r\n input.setSelectionRange(11, 13);\r\n this.contador = 0;\r\n return;\r\n } else this.onEmit();\r\n } else if (Number(anioActual) <= 2999 && Number(anioActual) > 0) {\r\n let nuevoValor;\r\n this.contador++;\r\n if (Number(anioActual) >= 1000) {\r\n nuevoValor = `${ valorActual.substring(0, 6) }${ Number(e.key).toString().padStart(4, \"0\") }${ valorActual.substring(10) }`;\r\n } else {\r\n nuevoValor = `${ valorActual.substring(0, 6) }${ (Number(anioActual).toString() + Number(e.key)).padStart(\r\n 4,\r\n \"0\"\r\n ) }${ valorActual.substring(10) }`;\r\n this.dateTimeControl.setValue(nuevoValor);\r\n this.dateControl.setValue({\r\n ...this.dateControl.value,\r\n year: Number(this.dateTimeControl.value!.substring(6, 10)),\r\n });\r\n if (\r\n Number(Number(anioActual).toString() + Number(e.key)) > 1000 &&\r\n Number(Number(anioActual).toString() + Number(e.key)) < 3000\r\n ) {\r\n this.onEmit();\r\n input.setSelectionRange(11, 13);\r\n this.contador = 0;\r\n return;\r\n } else if (Number(Number(anioActual).toString() + Number(e.key)) > 2999) {\r\n nuevoValor = `${ valorActual.substring(0, 6) }${ DateUtil.getYear(DateUtil.now()) }${ valorActual.substring(10) }`;\r\n this.dateTimeControl.setValue(nuevoValor);\r\n this.dateControl.setValue({\r\n ...this.dateControl.value,\r\n year: Number(this.dateTimeControl.value!.substring(6, 10)),\r\n });\r\n this.onEmit();\r\n input.setSelectionRange(11, 13);\r\n this.contador = 0;\r\n return;\r\n }\r\n }\r\n this.dateTimeControl.setValue(nuevoValor);\r\n this.dateControl.setValue({\r\n ...this.dateControl.value,\r\n year: Number(this.dateTimeControl.value!.substring(6, 10)),\r\n });\r\n } else {\r\n const nuevoValor = `${ valorActual.substring(0, 6) }${ e.key.padStart(4, 0) }${ valorActual.substring(10) }`;\r\n this.dateTimeControl.setValue(nuevoValor);\r\n this.dateControl.setValue({\r\n ...this.dateControl.value,\r\n year: Number(this.dateTimeControl.value!.substring(6, 10)),\r\n });\r\n }\r\n this.contador++;\r\n this.onEmit();\r\n input.setSelectionRange(6, 10);\r\n }\r\n //============================= HORA =================================\r\n else if (input.selectionStart == 11 && input.selectionEnd == 13) {\r\n const valorActual: string = this.dateTimeControl.value!;\r\n const horaActual: string = valorActual.substring(11, 13);\r\n\r\n if (horaActual == \"--\") {\r\n const nuevoValor = `${ valorActual.substring(0, 11) }${ e.key.padStart(2, 0) }${ valorActual.substring(13) }`;\r\n this.dateTimeControl.setValue(nuevoValor);\r\n //=========== FORMATO 12 HORAS===========\r\n if (this.format == 12)\r\n this.hoursControl.setValue({\r\n ...this.hoursControl.value,\r\n hour: /[0-1][0-9]:[0-6][0-9] [A,P]M/.test(this.dateTimeControl.value!.substring(11))\r\n ? Number(this._datePipe.transform(`01/01/2020 ${ this.dateTimeControl.value!.substring(11) }`, \"HH\"))\r\n : Number(this.dateTimeControl.value!.substring(11, 13)),\r\n minute: this.dateTimeControl.value!.substring(14, 16) == \"--\" ? 0 : this.hoursControl.value.minute,\r\n });\r\n //=========== FORMATO 24 HORAS===========\r\n else\r\n this.hoursControl.setValue({\r\n ...this.hoursControl.value,\r\n hour: /[0-1][0-9]:[0-6][0-9]/.test(this.dateTimeControl.value!.substring(11))\r\n ? Number(this._datePipe.transform(`01/01/2020 ${ this.dateTimeControl.value!.substring(11) }`, \"HH\"))\r\n : Number(this.dateTimeControl.value!.substring(11, 13)),\r\n minute: this.dateTimeControl.value!.substring(14, 16) == \"00\" ? 0 : this.hoursControl.value.minute,\r\n });\r\n this.contador++;\r\n if (e.key > 1 && this.format == 12) {\r\n this.onEmit();\r\n input.setSelectionRange(14, 16);\r\n this.contador = 0;\r\n return;\r\n } else if (e.key > 2 && this.format == 24) {\r\n this.onEmit();\r\n input.setSelectionRange(14, 16);\r\n this.contador = 0;\r\n return;\r\n } else this.onEmit();\r\n } else if (Number(horaActual) <= 1 && Number(horaActual) > 0 && this.contador > 0 && this.format == 12) {\r\n const nuevoValor = `${ valorActual.substring(0, 11) }${ Number(Number(horaActual).toString() + Number(e.key)) > 12 ? 12 : Number(horaActual).toString() + Number(e.key)\r\n }${ valorActual.substring(13) }`;\r\n this.dateTimeControl.setValue(nuevoValor);\r\n this.hoursControl.setValue({\r\n ...this.hoursControl.value,\r\n hour: /[0-1][0-9]:[0-6][0-9] [A,P]M/.test(this.dateTimeControl.value!.substring(11))\r\n ? Number(this._datePipe.transform(`01/01/2020 ${ this.dateTimeControl.value!.substring(11) }`, \"HH\"))\r\n : Number(this.dateTimeControl.value!.substring(11, 13)),\r\n minute: this.dateTimeControl.value!.substring(14, 16) == \"00\" ? 0 : this.hoursControl.value.minute,\r\n });\r\n this.contador++;\r\n this.onEmit();\r\n input.setSelectionRange(14, 16);\r\n this.contador = 0;\r\n return;\r\n } else if (Number(horaActual) <= 2 && Number(horaActual) > 0 && this.contador > 0 && this.format == 24) {\r\n const nuevoValor = `${ valorActual.substring(0, 11) }${ Number(Number(horaActual).toString() + Number(e.key)) > 24 ? 24 : Number(horaActual).toString() + Number(e.key)\r\n }${ valorActual.substring(13) }`;\r\n this.dateTimeControl.setValue(nuevoValor);\r\n let hour;\r\n try {\r\n hour = /[0-1][0-9]:[0-6][0-9]/.test(this.dateTimeControl.value!.substring(11))\r\n ? Number(this._datePipe.transform(`01/01/2020 ${ this.dateTimeControl.value!.substring(11) }`, \"HH\"))\r\n : Number(this.dateTimeControl.value!.substring(11, 13));\r\n } catch (error) {\r\n hour = Number(this.dateTimeControl.value!.substring(11, 13));\r\n }\r\n this.hoursControl.setValue({\r\n ...this.hoursControl.value,\r\n hour,\r\n minute: this.dateTimeControl.value!.substring(14, 16) == \"00\" ? 0 : this.hoursControl.value.minute,\r\n });\r\n this.contador++;\r\n this.onEmit();\r\n input.setSelectionRange(14, 16);\r\n this.contador = 0;\r\n return;\r\n } else {\r\n const nuevoValor = `${ valorActual.substring(0, 11) }${ e.key.padStart(2, 0) }${ valorActual.substring(13) }`;\r\n this.dateTimeControl.setValue(nuevoValor);\r\n const regex = this.format == 12 ? /[0-1][0-9]:[0-6][0-9] [A,P]M/ : /[0-1][0-9]:[0-6][0-9]/;\r\n\r\n this.hoursControl.setValue({\r\n ...this.hoursControl.value,\r\n hour: regex.test(this.dateTimeControl.value!.substring(11))\r\n ? Number(this._datePipe.transform(`01/01/2020 ${ this.dateTimeControl.value!.substring(11) }`, \"HH\"))\r\n : Number(this.dateTimeControl.value!.substring(11, 13)),\r\n minute:\r\n this.dateTimeControl.value!.substring(14, 16) == \"00\" || this.dateTimeControl.value!.substring(14, 16) == \"--\"\r\n ? 0\r\n : this.hoursControl.value.minute,\r\n });\r\n this.contador++;\r\n if ((Number(e.key.padStart(2, 0)) > 1 || this.contador > 1) && this.format == 12) {\r\n this.onEmit();\r\n input.setSelectionRange(14, 16);\r\n this.contador = 0;\r\n return;\r\n } else if ((Number(e.key.padStart(2, 0)) > 2 || this.contador > 1) && this.format == 24) {\r\n this.onEmit();\r\n input.setSelectionRange(14, 16);\r\n this.contador = 0;\r\n return;\r\n } else this.onEmit();\r\n }\r\n this.onEmit();\r\n input.setSelectionRange(11, 13);\r\n }\r\n //============================ MINUTOS ===============================\r\n else if (input.selectionStart == 14 && input.selectionEnd == 16) {\r\n const valorActual: string = this.dateTimeControl.value!;\r\n const minutosActuales: string = valorActual.substring(14, 16);\r\n if (minutosActuales == \"--\") {\r\n const nuevoValor = `${ valorActual.substring(0, 14) }${ e.key.padStart(2, 0) }${ valorActual.substring(16) }`;\r\n this.dateTimeControl.setValue(nuevoValor);\r\n this.hoursControl.setValue({\r\n ...this.hoursControl.value,\r\n minute: /[0-1][0-9]:[0-6][0-9] [A,P]M/.test(this.dateTimeControl.value!.substring(11))\r\n ? Number(this._datePipe.transform(`01/01/2020 ${ this.dateTimeControl.value!.substring(11) }`, \"mm\"))\r\n : Number(this.dateTimeControl.value!.substring(14, 16)),\r\n });\r\n this.contador++;\r\n if (e.key > 5) {\r\n this.onEmit();\r\n if (this.format == 12) input.setSelectionRange(17, 19);\r\n else input.setSelectionRange(14, 16);\r\n this.contador = 0;\r\n return;\r\n } else this.onEmit();\r\n } else if (Number(minutosActuales) <= 5 && Number(minutosActuales) > 0 && this.contador > 0) {\r\n const nuevoValor = `${ valorActual.substring(0, 14) }${ Number(Number(minutosActuales).toString() + Number(e.key)) > 59 ? 59 : Number(minutosActuales).toString() + Number(e.key)\r\n }${ valorActual.substring(16) }`;\r\n this.dateTimeControl.setValue(nuevoValor);\r\n let minute;\r\n const regex = this.format == 12 ? /[0-1][0-9]:[0-6][0-9] [A,P]M/ : /[0-1][0-9]:[0-6][0-9]/;\r\n try {\r\n minute = regex.test(this.dateTimeControl.value!.substring(11))\r\n ? Number(this._datePipe.transform(`01/01/2020 ${ this.dateTimeControl.value!.substring(11) }`, \"mm\"))\r\n : Number(this.dateTimeControl.value!.substring(14, 16));\r\n } catch (error) {\r\n minute = Number(this.dateTimeControl.value!.substring(14, 16));\r\n }\r\n this.hoursControl.setValue({\r\n ...this.hoursControl.value,\r\n minute,\r\n });\r\n this.contador++;\r\n this.onEmit();\r\n if (this.format == 12) input.setSelectionRange(17, 19);\r\n else input.setSelectionRange(14, 16);\r\n this.contador = 0;\r\n return;\r\n } else {\r\n const nuevoValor = `${ valorActual.substring(0, 14) }${ e.key.padStart(2, 0) }${ valorActual.substring(16) }`;\r\n this.dateTimeControl.setValue(nuevoValor);\r\n this.hoursControl.setValue({\r\n ...this.hoursControl.value,\r\n minute: /[0-1][0-9]:[0-6][0-9] [A,P]M/.test(this.dateTimeControl.value!.substring(11))\r\n ? Number(this._datePipe.transform(`01/01/2020 ${ this.dateTimeControl.value!.substring(11) }`, \"mm\"))\r\n : Number(this.dateTimeControl.value!.substring(14, 16)),\r\n });\r\n this.contador++;\r\n if (Number(e.key.padStart(2, 0)) > 5 || this.contador > 1) {\r\n this.onEmit();\r\n if (this.format == 12) input.setSelectionRange(17, 19);\r\n else input.setSelectionRange(14, 16);\r\n this.contador = 0;\r\n return;\r\n } else this.onEmit();\r\n }\r\n this.onEmit();\r\n input.setSelectionRange(14, 16);\r\n }\r\n } else {\r\n //======================== EVENTOS TECLADO ===========================\r\n if (e.key == \"ArrowRight\") {\r\n if (input.selectionStart == 0 && input.selectionEnd == 2) {\r\n input.setSelectionRange(3, 5);\r\n this.contador = 0;\r\n } else if (input.selectionStart == 3 && input.selectionEnd == 5) {\r\n input.setSelectionRange(6, 10);\r\n this.contador = 0;\r\n } else if (input.selectionStart == 6 && input.selectionEnd == 10) {\r\n input.setSelectionRange(11, 13);\r\n this.contador = 0;\r\n } else if (input.selectionStart == 11 && input.selectionEnd == 13) {\r\n input.setSelectionRange(14, 16);\r\n this.contador = 0;\r\n } else if (input.selectionStart == 14 && input.selectionEnd == 16) {\r\n if (this.format == 12) input.setSelectionRange(17, 19);\r\n else if (this.format == 24) this.btnOpen?.nativeElement.focus();\r\n this.contador = 0;\r\n } else if (input.selectionStart == 17 && input.selectionEnd == 19) {\r\n this.btnOpen?.nativeElement.focus();\r\n this.contador = 0;\r\n }\r\n } else if (e.key == \"ArrowLeft\") {\r\n if (input.selectionStart == 0 && input.selectionEnd == 2) {\r\n this.goBack();\r\n this.contador = 0;\r\n } else if (input.selectionStart == 3 && input.selectionEnd == 5) {\r\n input.setSelectionRange(0, 2);\r\n this.contador = 0;\r\n } else if (input.selectionStart == 6 && input.selectionEnd == 10) {\r\n input.setSelectionRange(3, 5);\r\n this.contador = 0;\r\n } else if (input.selectionStart == 11 && input.selectionEnd == 13) {\r\n input.setSelectionRange(6, 10);\r\n this.contador = 0;\r\n } else if (input.selectionStart == 14 && input.selectionEnd == 16) {\r\n input.setSelectionRange(11, 13);\r\n this.contador = 0;\r\n } else if (input.selectionStart == 17 && input.selectionEnd == 19) {\r\n input.setSelectionRange(14, 16);\r\n this.contador = 0;\r\n }\r\n } else if (e.key.toLowerCase() == \"a\") {\r\n if (input.selectionStart == 17 && input.selectionEnd == 19) {\r\n const valorActual = this.dateTimeControl.value;\r\n const nuevoValor = `${ valorActual!.substring(0, 17) }AM`;\r\n this.dateTimeControl.setValue(nuevoValor);\r\n this.hoursControl.setValue({\r\n ...this.hoursControl.value,\r\n hour: Number(this._datePipe.transform(`01/01/2020 ${ this.dateTimeControl.value!.substring(11) }`, \"HH\")),\r\n });\r\n this.onEmit();\r\n input.setSelectionRange(17, 19);\r\n }\r\n } else if (e.key.toLowerCase() == \"p\") {\r\n if (input.selectionStart == 17 && input.selectionEnd == 19) {\r\n const valorActual = this.dateTimeControl.value;\r\n const nuevoValor = `${ valorActual!.substring(0, 17) }PM`;\r\n this.dateTimeControl.setValue(nuevoValor);\r\n this.hoursControl.setValue({\r\n ...this.hoursControl.value,\r\n hour: Number(this._datePipe.transform(`01/01/2020 ${ this.dateTimeControl.value!.substring(11) }`, \"HH\")),\r\n });\r\n this.onEmit();\r\n input.setSelectionRange(17, 19);\r\n }\r\n } else if (e.code == \"Space\" && this.autoComplete) {\r\n const valorActual: string = this.dateTimeControl.value!;\r\n const diaActual: string = this.today.day.toString();\r\n const mesActual: string = this.today.month.toString();\r\n const anioActual: string = this.today.year.toString();\r\n const horaActual: string = DateUtil.toStrFormat(DateUtil.now(\"ISODATETIME_NO_TIMEZONE\"), this.format == 24 ? \"MASK_24_HOURS\" : \"MASK_12_HOURS\");\r\n const t: string = DateUtil.toStrFormat(DateUtil.now(\"ISODATETIME_NO_TIMEZONE\"), \"MIDDAY_INDICATOR\");\r\n const minutosActuales: string = DateUtil.getMinutes(DateUtil.now(\"ISODATETIME_NO_TIMEZONE\")).toString().padStart(2, \"0\");\r\n if (input.selectionStart == 0 && input.selectionEnd == 2) {\r\n const nuevoValor = `${ diaActual.padStart(2, \"0\") }${ valorActual.substring(2) }`;\r\n this.dateTimeControl.setValue(nuevoValor);\r\n this.dateControl.setValue(\r\n {\r\n ...this.dateControl.value,\r\n day: this.today.day,\r\n },\r\n { emitEvent: false }\r\n );\r\n input.setSelectionRange(3, 5);\r\n } else if (input.selectionStart == 3 && input.selectionEnd == 5) {\r\n const nuevoValor = `${ valorActual.substring(0, 3) }${ mesActual.padStart(2, \"0\") }${ valorActual.substring(5) }`;\r\n this.dateTimeControl.setValue(nuevoValor);\r\n this.dateControl.setValue(\r\n {\r\n ...this.dateControl.value,\r\n month: this.today.month,\r\n },\r\n { emitEvent: false }\r\n );\r\n input.setSelectionRange(6, 10);\r\n } else if (input.selectionStart == 6 && input.selectionEnd == 10) {\r\n const nuevoValor = `${ valorActual.substring(0, 6) }${ anioActual.padStart(4, \"0\") }${ valorActual.substring(10) }`;\r\n this.dateTimeControl.setValue(nuevoValor);\r\n this.dateControl.setValue(\r\n {\r\n ...this.dateControl.value,\r\n year: this.today.year,\r\n },\r\n { emitEvent: false }\r\n );\r\n input.setSelectionRange(11, 13);\r\n } else if (input.selectionStart == 11 && input.selectionEnd == 13) {\r\n let nuevoValor;\r\n if (this.format == 24) nuevoValor = `${ valorActual.substring(0, 11) }${ horaActual }${ valorActual.substring(13) }`;\r\n else if (this.format == 12)\r\n nuevoValor = `${ valorActual.substring(0, 11) }${ horaActual }${ valorActual.substring(13, 17) }${ t.toUpperCase() }`;\r\n\r\n this.dateTimeControl.setValue(nuevoValor!);\r\n this.hoursControl.setValue({\r\n ...this.hoursControl.value,\r\n minute: this.hoursControl.value.minute != null ? this.hoursControl.value.minute : 0,\r\n hour: this.format == 12 ? Number(horaActual) : Number(horaActual) + 12,\r\n });\r\n input.setSelectionRange(14, 16);\r\n } else if (input.selectionStart == 14 && input.selectionEnd == 16) {\r\n const nuevoValor = `${ valorActual.substring(0, 14) }${ minutosActuales.padStart(2, \"0\") }${ valorActual.substring(16) }`;\r\n this.dateTimeControl.setValue(nuevoValor);\r\n this.hoursControl.setValue({\r\n ...this.hoursControl.value,\r\n minute: Number(minutosActuales),\r\n });\r\n if (this.format == 12) input.setSelectionRange(17, 19);\r\n else input.setSelectionRange(14, 16);\r\n }\r\n this.onEmit();\r\n } else if (e.key == \"Enter\" || e.key == \"ArrowDown\") {\r\n this.goNext();\r\n } else if (e.key == \"ArrowUp\") {\r\n this.goBack();\r\n } else if (e.key == \"Delete\") {\r\n this.limpiarTodo();\r\n } else if (e.key == \"Backspace\") {\r\n this.limpiar();\r\n }\r\n }\r\n }\r\n\r\n goNext (): void {\r\n if (this.next != undefined) {\r\n if (this.next.disabled || this.next.readonly) {\r\n if (this.nextIsDisable != undefined) {\r\n this.nextIsDisable.focus();\r\n }\r\n } else {\r\n this.next.focus();\r\n }\r\n } else {\r\n if (this.nextIsDisable != undefined) {\r\n this.nextIsDisable.focus();\r\n } else {\r\n this.onNext.emit();\r\n }\r\n }\r\n }\r\n\r\n goBack (): void {\r\n if (this.back != undefined) {\r\n if (this.back.disabled || this.back.readonly) {\r\n if (this.backIsDisable != undefined) {\r\n this.backIsDisable.focus();\r\n }\r\n } else {\r\n this.back.focus();\r\n }\r\n } else {\r\n if (this.backIsDisable != undefined) {\r\n this.backIsDisable.focus();\r\n } else {\r\n this.onBack.emit();\r\n }\r\n }\r\n }\r\n\r\n limpiarTodo () {\r\n this.contador = 0;\r\n this.hoursControl.setValue(\r\n {\r\n hour: null,\r\n minute: null,\r\n },\r\n { emitEvent: false }\r\n );\r\n this.dateControl.setValue(\r\n {\r\n year: null,\r\n month: null,\r\n day: null,\r\n },\r\n { emitEvent: false }\r\n );\r\n if (this.format == 12) this.dateTimeControl.setValue(\"dd/mm/yyyy --:-- --\");\r\n else if (this.format == 24) this.dateTimeControl.setValue(\"dd/mm/yyyy --:--\");\r\n this.inputDateTime.nativeElement.setSelectionRange(0, 2);\r\n this.onChange(null);\r\n this.onTouch();\r\n }\r\n\r\n limpiar () {\r\n if (this.inputDateTime.nativeElement.selectionStart == 0 && this.inputDateTime.nativeElement.selectionEnd == 2) {\r\n this.dateControl.setValue(\r\n {\r\n ...this.dateControl.value,\r\n day: null,\r\n },\r\n { emitEvent: false }\r\n );\r\n this.dateTimeControl.setValue(`dd${ this.dateTimeControl.value!.substring(2) }`);\r\n this.onChange(null);\r\n this.onTouch();\r\n this.inputDateTime.nativeElement.setSelectionRange(0, 2);\r\n this.contador = 0;\r\n } else if (this.inputDateTime.nativeElement.selectionStart == 3 && this.inputDateTime.nativeElement.selectionEnd == 5) {\r\n this.dateControl.setValue(\r\n {\r\n ...this.dateControl.value,\r\n month: null,\r\n },\r\n { emitEvent: false }\r\n );\r\n this.dateTimeControl.setValue(`${ this.dateTimeControl.value!.substring(0, 3) }mm${ this.dateTimeControl.value!.substring(5) }`);\r\n this.onChange(null);\r\n this.onTouch();\r\n this.inputDateTime.nativeElement.setSelectionRange(3, 5);\r\n this.contador = 0;\r\n } else if (this.inputDateTime.nativeElement.selectionStart == 6 && this.inputDateTime.nativeElement.selectionEnd == 10) {\r\n this.dateControl.setValue(\r\n {\r\n ...this.dateControl.value,\r\n year: null,\r\n },\r\n { emitEvent: false }\r\n );\r\n this.dateTimeControl.setValue(`${ this.dateTimeControl.value!.substring(0, 6) }yyyy${ this.dateTimeControl.value!.substring(10) }`);\r\n this.onChange(null);\r\n this.onTouch();\r\n this.inputDateTime.nativeElement.setSelectionRange(6, 10);\r\n this.contador = 0;\r\n } else if (this.inputDateTime.nativeElement.selectionStart == 11 && this.inputDateTime.nativeElement.selectionEnd == 13) {\r\n this.hoursControl.setValue(\r\n {\r\n ...this.dateControl.value,\r\n hour: null,\r\n },\r\n { emitEvent: false }\r\n );\r\n this.dateTimeControl.setValue(`${ this.dateTimeControl.value!.substring(0, 11) }--${ this.dateTimeControl.value!.substring(13) }`);\r\n this.onChange(null);\r\n this.onTouch();\r\n this.inputDateTime.nativeElement.setSelectionRange(11, 13);\r\n this.contador = 0;\r\n } else if (this.inputDateTime.nativeElement.selectionStart == 14 && this.inputDateTime.nativeElement.selectionEnd == 16) {\r\n this.hoursControl.setValue(\r\n {\r\n ...this.dateControl.value,\r\n minute: null,\r\n },\r\n { emitEvent: false }\r\n );\r\n this.dateTimeControl.setValue(`${ this.dateTimeControl.value!.substring(0, 14) }--${ this.dateTimeControl.value!.substring(16) }`);\r\n this.onChange(null);\r\n this.onTouch();\r\n this.inputDateTime.nativeElement.setSelectionRange(14, 16);\r\n this.contador = 0;\r\n }\r\n }\r\n preventDefault (e: any) {\r\n e.preventDefault();\r\n return false;\r\n }\r\n\r\n onClick (e: Event, input: HTMLInputElement) {\r\n e.preventDefault();\r\n\r\n if (this.disabled) return;\r\n\r\n if (input.selectionStart == 0 || input.selectionStart == 1 || input.selectionStart == 2) {\r\n const timeout = setTimeout(() => {\r\n input.setSelectionRange(0, 2);\r\n this.contador = 0;\r\n clearTimeout(timeout);\r\n }, 100);\r\n } else if (input.selectionStart == 3 || input.selectionStart == 4 || input.selectionStart == 5) {\r\n const timeout = setTimeout(() => {\r\n input.setSelectionRange(3, 5);\r\n this.contador = 0;\r\n clearTimeout(timeout);\r\n }, 100);\r\n } else if (\r\n input.selectionStart == 6 ||\r\n input.selectionStart == 7 ||\r\n input.selectionStart == 8 ||\r\n input.selectionStart == 9 ||\r\n input.selectionStart == 10\r\n ) {\r\n const timeout = setTimeout(() => {\r\n input.setSelectionRange(6, 10);\r\n this.contador = 0;\r\n clearTimeout(timeout);\r\n }, 100);\r\n } else if (input.selectionStart == 11 || input.selectionStart == 12 || input.selectionStart == 13) {\r\n const timeout = setTimeout(() => {\r\n input.setSelectionRange(11, 13);\r\n this.contador = 0;\r\n clearTimeout(timeout);\r\n }, 100);\r\n } else if (input.selectionStart == 14 || input.selectionStart == 15 || input.selectionStart == 16) {\r\n const timeout = setTimeout(() => {\r\n input.setSelectionRange(14, 16);\r\n this.contador = 0;\r\n clearTimeout(timeout);\r\n }, 100);\r\n } else if (input.selectionStart == 17 || input.selectionStart == 18 || input.selectionStart == 19) {\r\n const timeout = setTimeout(() => {\r\n input.setSelectionRange(17, 19);\r\n this.contador = 0;\r\n clearTimeout(timeout);\r\n }, 100);\r\n } else {\r\n const timeout = setTimeout(() => {\r\n input.setSelectionRange(0, 2);\r\n this.contador = 0;\r\n clearTimeout(timeout);\r\n }, 100);\r\n }\r\n }\r\n open (d: NgbInputDatepicker): void {\r\n if (this.dateTimeControl.value == \"dd/mm/yyyy --:-- --\" || this.dateTimeControl.value == \"dd/mm/yyyy --:--\") {\r\n this.hoursControl.setValue({\r\n hour: new Date().getHours(),\r\n minute: new Date().getMinutes(),\r\n second: new Date().getSeconds(),\r\n });\r\n this.dateControl.setValue({\r\n year: new Date().getFullYear(),\r\n month: new Date().getMonth() + 1,\r\n day: new Date().getDate(),\r\n ...this.hoursControl.value,\r\n });\r\n const value = new DateTimeModel(Object.assign(this.dateControl.value, this.hoursControl.value));\r\n this.dateTimeControl.setValue(this._datePipe.transform(value.toString(), this.stringFormat));\r\n this.onEmit();\r\n }\r\n }\r\n\r\n focusOut (event: any): void {\r\n if (event.target.ariaLabel == \"Minutes\") {\r\n this.ngbDatepicker?.close();\r\n if (this.goNextWhenSelect) {\r\n this.goNext();\r\n }\r\n }\r\n }\r\n}\r\n","<div class=\"row\">\r\n <div class=\"col-12\" style=\"overflow: hidden\">\r\n <label *ngIf=\"label != null && label != '' && showLabel\" class=\"d-flex sumax-label mb-0 p-0\"\r\n ><span [title]=\"label\" style=\"white-space: nowrap; overflow: hidden; text-overflow: ellipsis\">{{ label }}</span>\r\n <span *ngIf=\"required\" class=\"ms-1\" [class.text-danger]=\"controls?.errors != null\"> *</span>\r\n <span *ngIf=\"labelInfo\">\r\n <i class=\"fa fa-exclamation-circle text-info ms-2\" [matTooltip]=\"textLabelInfo\" matTooltipClass=\"bg-info\"></i>\r\n </span>\r\n </label>\r\n <input\r\n type=\"text\"\r\n class=\"form-control form-control-sm position-absolute\"\r\n container=\"body\"\r\n id=\"fakeInput\"\r\n ngbDatepicker\r\n [formControl]=\"dateControl\"\r\n [autoClose]=\"'outside'\"\r\n [footerTemplate]=\"footerTemplate\"\r\n [minDate]=\"{ year: 1960, month: 1, day: 1 }\"\r\n #d2=\"ngbDatepicker\" />\r\n <div class=\"input-group w-100\">\r\n <input\r\n type=\"text\"\r\n readonly\r\n id=\"inputDateTime\"\r\n #inputDateTime\r\n style=\"flex: 1\"\r\n [class.is-invalid]=\"controls?.errors != null && (controls?.dirty || controls?.touched) && submitted\"\r\n [disabled]=\"disabled || readonly\"\r\n class=\"form-control form-control-sm\"\r\n (blur)=\"onBlur()\"\r\n (focusout)=\"focusOutInput()\"\r\n (keyup)=\"onKeyUp($event)\"\r\n (dblclick)=\"preventDefault($event)\"\r\n (click)=\"preventDefault($event)\"\r\n (mouseup)=\"onClick($event, inputDateTime)\"\r\n [formControl]=\"dateTimeControl\" />\r\n <div class=\"input-group-append\">\r\n <button\r\n #btnOpen\r\n (keyup.ArrowLeft)=\"goBack()\"\r\n [disabled]=\"disabled || readonly\"\r\n (keyup.ArrowRight)=\"clearable ? btnClean.focus() : goNext()\"\r\n class=\"btn btn-info p-0 rounded-0 use-button\"\r\n (click)=\"d2.toggle(); open(d2)\"\r\n type=\"button\">\r\n <i aria-hidden=\"true\" class=\"fa fa-calendar text-light px-1\"></i>\r\n </button>\r\n <button\r\n #btnClean\r\n class=\"btn btn-danger p-0 rounded-0 limpiar\"\r\n [disabled]=\"disabled || readonly\"\r\n (click)=\"limpiarTodo()\"\r\n (keyup.ArrowLeft)=\"btnOpen.focus()\"\r\n (keyup.ArrowRight)=\"goNext()\"\r\n type=\"button\">\r\n <!-- <mat-icon class=\"text-white pt-1\" style=\"font-size: 18px;\" [matTooltip]=\"'Limpiar'\" matTooltipClass=\"bg-danger\">close</mat-icon> -->\r\n <i aria-hidden=\"true\" class=\"fa fa-times px-1 text-light\"></i>\r\n </button>\r\n </div>\r\n <div class=\"position-absolute container-tooltipmessage\">\r\n <tooltip-message\r\n [label]=\"label\"\r\n [controls]=\"controls\"\r\n [validatorMessage]=\"validatorMessage\"\r\n [tooltipMessage]=\"tooltipMessage\"\r\n [submitted]=\"submitted\"></tooltip-message>\r\n </div>\r\n </div>\r\n <error-message\r\n [label]=\"label\"\r\n [controls]=\"controls\"\r\n [validatorMessage]=\"validatorMessage\"\r\n [tooltipMessage]=\"tooltipMessage\"\r\n [submitted]=\"submitted\"></error-message>\r\n <ng-template #footerTemplate>\r\n <ngb-timepicker [formControl]=\"hoursControl\" [meridian]=\"format == 12 ? true : false\" (focusout)=\"focusOut($event)\"></ngb-timepicker>\r\n </ng-template>\r\n </div>\r\n</div>\r\n","export type formatHour = 12 | 24;\r\nexport class DateTimePickerEditable {\r\n showLabel?: boolean;\r\n openWhenFocus?: boolean;\r\n goNextWhenSelect?: boolean;\r\n validatorMessage?: boolean;\r\n tooltipMessage?: boolean;\r\n submitted?: boolean;\r\n format?: formatHour;\r\n clearable?: boolean;\r\n autoCompleteHours?: boolean;\r\n autoComplete?: boolean;\r\n}\r\n","import { CommonModule } from '@angular/common';\r\nimport { ModuleWithProviders, NgModule } from '@angular/core';\r\nimport { ReactiveFormsModule } from '@angular/forms';\r\nimport { MatTooltipModule } from '@angular/material/tooltip';\r\nimport {\r\n NgbDatepickerModule,\r\n NgbTimepickerModule,\r\n} from '@ng-bootstrap/ng-bootstrap';\r\nimport { ErrorMessageModule } from '../error-message/error-message.module';\r\nimport { TooltipMessageModule } from '../tooltip-message/tooltip-message.module';\r\nimport { DateTimePickerEditableService } from './date-time-picker-editable.service';\r\nimport { DateTimePickerEditable } from '../utils/DateTimePickerEditable';\r\nimport { DateTimePickerEditableComponent } from './date-time-picker-editable.component';\r\n\r\n@NgModule({\r\n declarations: [DateTimePickerEditableComponent],\r\n imports: [\r\n CommonModule,\r\n NgbTimepickerModule,\r\n NgbDatepickerModule,\r\n ReactiveFormsModule,\r\n TooltipMessageModule,\r\n MatTooltipModule,\r\n ErrorMessageModule,\r\n ],\r\n exports: [DateTimePickerEditableComponent],\r\n})\r\nexport class DateTimePickerEditableModule {\r\n static forRoot(\r\n dateTimePicker: DateTimePickerEditable = new DateTimePickerEditable()\r\n ): ModuleWithProviders<DateTimePickerEditableModule> {\r\n return {\r\n ngModule: DateTimePickerEditableModule,\r\n providers: [\r\n {\r\n provide: 'DATE_TIME_PICKER_SHOW_LABEL',\r\n useValue: dateTimePicker.showLabel,\r\n },\r\n {\r\n provide: 'DATE_TIME_PICKER_OPEN_WHEN_FOCUS',\r\n useValue: dateTimePicker.openWhenFocus,\r\n },\r\n {\r\n provide: 'DATE_TIME_PICKER_GO_NEXT_WHEN_SELECT',\r\n useValue: dateTimePicker.goNextWhenSelect,\r\n },\r\n {\r\n provide: 'DATE_TIME_PICKER_VALIDATOR_MESSAGE',\r\n useValue: dateTimePicker.validatorMessage,\r\n },\r\n {\r\n provide: 'DATE_TIME_PICKER_TOOLTIP_MESSAGE',\r\n useValue: dateTimePicker.tooltipMessage,\r\n },\r\n {\r\n provide: 'DATE_TIME_PICKER_SUBMITTED',\r\n useValue: dateTimePicker.submitted,\r\n },\r\n {\r\n provide: 'DATE_TIME_PICKER_FORMAT',\r\n useValue: dateTimePicker.format,\r\n },\r\n {\r\n provide: 'DATE_TIME_PICKER_CLEARABLE',\r\n useValue: dateTimePicker.clearable,\r\n },\r\n {\r\n provide: 'DATE_TIME_PICKER_AUTOCOMPLETE_HOURS',\r\n useValue: dateTimePicker.autoCompleteHours,\r\n },\r\n {\r\n provide: 'DATE_TIME_PICKER_AUTOCOMPLETE',\r\n useValue: dateTimePicker.autoComplete,\r\n },\r\n DateTimePickerEditableService,\r\n ],\r\n };\r\n }\r\n}\r\n","import { Inject, Injectable } from \"@angular/core\";\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class DateTimePickerService {\r\n\r\n constructor(\r\n @Inject('DATE_TIME_PICKER_INPUT_DATE_TIME_FORMAT') private inputDatetimeFormat: string = 'dd/MM/yyyy HH:mm',\r\n @Inject('DATE_TIME_PICKER_SHOW_LABEL') private showLabel: boolean = true,\r\n @Inject('DATE_TIME_PICKER_OPEN_WHEN_FOCUS') private openWhenFocus: boolean = false,\r\n @Inject('DATE_TIME_PICKER_GO_NEXT_WHEN_SELECT') private goNextWhenSelect: boolean = false,\r\n @Inject('DATE_TIME_PICKER_VALIDATOR_MESSAGE') private validatorMessage: boolean = false,\r\n @Inject('DATE_TIME_PICKER_TOOLTIP_MESSAGE') private tooltipMessage: boolean = true,\r\n @Inject('DATE_TIME_PICKER_SUBMITTED') private submitted: boolean = true,\r\n ) {\r\n }\r\n\r\n public getInputDatetimeFormat(): string {\r\n return this.inputDatetimeFormat;\r\n }\r\n public getShowLabel(): boolean {\r\n return this.showLabel;\r\n }\r\n public getOpenWhenFocus(): boolean {\r\n return this.openWhenFocus;\r\n }\r\n public getGoNextWhenSelect(): boolean {\r\n return this.goNextWhenSelect;\r\n }\r\n public getValidatorMessage(): boolean {\r\n return this.validatorMessage;\r\n }\r\n public getTooltipMessage(): boolean {\r\n return this.tooltipMessage;\r\n }\r\n public getSubmitted(): boolean {\r\n return this.submitted;\r\n }\r\n \r\n}","import { DatePipe } from '@angular/common';\r\nimport {\r\n ChangeDetectionStrategy,\r\n Component,\r\n ElementRef,\r\n EventEmitter,\r\n Input,\r\n OnChanges,\r\n OnInit,\r\n Output,\r\n Renderer2,\r\n SimpleChanges,\r\n ViewChild,\r\n forwardRef,\r\n} from '@angular/core';\r\nimport {\r\n AbstractControl,\r\n ControlValueAccessor,\r\n NG_VALIDATORS,\r\n NG_VALUE_ACCESSOR,\r\n ValidationErrors,\r\n} from '@angular/forms';\r\nimport {\r\n NgbCalendar,\r\n NgbDateParserFormatter,\r\n NgbDateStruct,\r\n NgbDatepickerI18n,\r\n NgbInputDatepicker,\r\n NgbTimeStruct,\r\n NgbTimepicker\r\n} from '@ng-bootstrap/ng-bootstrap';\r\nimport { DateTimePickerService } from './date-time-picker.service';\r\nimport { CustomDatepickerI18n, I18n } from '../date-picker/CustomDatePickerI18n';\r\nimport { CustomDatepickerFormat } from '../date-picker/CustomDatePickerFormat';\r\nimport { DateTimeModel } from '../utils/DateTimeModel';\r\n\r\n@Component({\r\n selector: 'date-time-picker',\r\n templateUrl: './date-time-picker.component.html',\r\n styleUrls: ['./date-time-picker.component.scss'],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n providers: [\r\n {\r\n provide: NG_VALUE_ACCESSOR,\r\n useExisting: forwardRef(() => DateTimePickerComponent),\r\n multi: true,\r\n },\r\n {\r\n provide: NG_VALIDATORS,\r\n useExisting: forwardRef(() => DateTimePickerComponent),\r\n multi: true,\r\n },\r\n I18n,\r\n { provide: NgbDatepickerI18n, useClass: CustomDatepickerI18n },\r\n { provide: NgbDateParserFormatter, useClass: CustomDatepickerFormat },\r\n ],\r\n})\r\nexport class DateTimePickerComponent\r\n implements OnInit, OnChanges, ControlValueAccessor\r\n{\r\n /**\r\n * @description Formato de la fecha:\r\n * 'dd/MM/yyyy HH:mm' - 'dd/MM/yyyy HH:mm:ss' - 'M/d/yyyy H:mm:ss'\r\n * @default 'dd/MM/yyyy HH:mm'\r\n * @type {string}\r\n */\r\n @Input() inputDatetimeFormat: string = 'dd/MM/yyyy HH:mm';\r\n \r\n /**\r\n * @description Texto a mostrar como etiqueta del campo\r\n * @default ''\r\n * @type string\r\n */\r\n @Input() label: string = '';\r\n \r\n /**\r\n * @description Controla la visualización del texto superior (label)\r\n * @default true\r\n * @type boolean\r\n */\r\n @Input() showLabel: boolean = true;\r\n \r\n /**\r\n * @description Establece el control como solo lectura\r\n * @default false\r\n * @type boolean\r\n */\r\n @Input() readonly: boolean = false;\r\n \r\n /**\r\n * @description Indica si el campo es obligatorio\r\n * @default false\r\n * @type boolean\r\n */\r\n @Input() required: boolean = false;\r\n \r\n /**\r\n * @description Muestra mensajes de validación\r\n * @default false\r\n * @type boolean\r\n */\r\n @Input() validatorMessage: boolean = false;\r\n \r\n /**\r\n * @description Muestra mensajes de ayuda como tooltips\r\n * @default true\r\n * @type boolean\r\n */\r\n @Input() tooltipMessage: boolean = true;\r\n \r\n /**\r\n * @description Indica si el formulario ha sido enviado para mostrar validaciones\r\n * @default true\r\n * @type boolean\r\n */\r\n @Input() submitted: boolean = true;\r\n \r\n /**\r\n * @description Referencia al siguiente control para navegación\r\n * @default undefined\r\n * @type any\r\n */\r\n @Input() next: any;\r\n \r\n /**\r\n * @description Referencia al control alternativo cuando el siguiente está deshabilitado\r\n * @default undefined\r\n * @type any\r\n */\r\n @Input() nextIsDisable: any;\r\n \r\n /**\r\n * @description Referencia al control anterior para navegación\r\n * @default undefined\r\n * @type any\r\n */\r\n @Input() back: any;\r\n \r\n /**\r\n * @description Referencia al control alternativo cuando el anterior está deshabilitado\r\n * @default undefined\r\n * @type any\r\n */\r\n @Input() backIsDisable: any;\r\n \r\n /**\r\n * @description Habilita información adicional para la etiqueta\r\n * @default false\r\n * @type boolean\r\n */\r\n @Input() labelInfo: boolean = false;\r\n \r\n /**\r\n * @description Texto informativo adicional para la etiqueta\r\n * @default ''\r\n * @type string\r\n */\r\n @Input() textLabelInfo: string = '';\r\n \r\n /**\r\n * @description Abre el selector al recibir el foco\r\n * @default false\r\n * @type boolean\r\n */\r\n @Input() openWhenFocus: boolean = false;\r\n \r\n /**\r\n * @description Navega al siguiente control al seleccionar una fecha\r\n * @default false\r\n * @type boolean\r\n */\r\n @Input() goNextWhenSelect: boolean = false;\r\n @Output() onNext: EventEmitter<any> = new EventEmitter();\r\n @Output() onBack: EventEmitter<any> = new EventEmitter();\r\n\r\n @ViewChild('d') ngbDatepicker!: NgbInputDatepicker;\r\n @ViewChild('tp') timePicker!: NgbTimepicker;\r\n @ViewChild('btnOpen') btnOpen!: ElementRef;\r\n @ViewChild('btnClean') btnClean!: ElementRef;\r\n\r\n controls?: AbstractControl;\r\n today = this.calendar.getToday();\r\n date: NgbDateStruct | any = this.today;\r\n time: NgbTimeStruct = {\r\n hour: new Date().getHours(),\r\n minute: new Date().getMinutes(),\r\n second: new Date().getSeconds(),\r\n };\r\n input: any = new DateTimeModel(Object.assign(this.date, this.time));\r\n isDisabled = false;\r\n\r\n _tempValue: string | null = null;\r\n _initValue = false;\r\n\r\n constructor(\r\n private calendar: NgbCalendar,\r\n private datePipe: DatePipe,\r\n private dateTimePickerService: DateTimePickerService,\r\n private _render: Renderer2\r\n ) {\r\n this.inputDatetimeFormat =\r\n this.dateTimePickerService.getInputDatetimeFormat();\r\n this.showLabel = this.dateTimePickerService.getShowLabel();\r\n this.openWhenFocus = this.dateTimePickerService.getOpenWhenFocus();\r\n this.goNextWhenSelect = this.dateTimePickerService.getGoNextWhenSelect();\r\n this.validatorMessage = this.dateTimePickerService.getValidatorMessage();\r\n this.tooltipMessage = this.dateTimePickerService.getTooltipMessage();\r\n this.submitted = this.dateTimePickerService.getSubmitted();\r\n }\r\n\r\n onChange = (_: any) => {};\r\n onValidationChange = () => {};\r\n onTouch = () => {};\r\n focus = () => {\r\n this.btnOpen.nativeElement.focus();\r\n if (!this.readonly && this.openWhenFocus) {\r\n this.ngbDatepicker.open();\r\n }\r\n };\r\n\r\n ngOnChanges(changes: SimpleChanges): void {\r\n if (changes['submitted']) {\r\n if (this.controls !== undefined && changes['submitted'].currentValue) {\r\n this.controls.markAsDirty();\r\n this.controls.markAsTouched();\r\n }\r\n }\r\n }\r\n\r\n ngOnInit() {}\r\n\r\n // onDateSelect(evt: any) {\r\n //this.ngbDatepicker.close();\r\n // if (this.goNextWhenSelect) {\r\n // \tthis.goNext();\r\n // }\r\n //console.log(evt);\r\n // }\r\n\r\n focusOut(event: any): void {\r\n if (event.target.ariaLabel == 'Minutes') {\r\n this.ngbDatepicker.close();\r\n if (this.goNextWhenSelect) {\r\n this.goNext();\r\n }\r\n }\r\n }\r\n\r\n onModelDateChange(evt: NgbDateStruct | NgbTimeStruct): void {\r\n this.input = new DateTimeModel(Object.assign(this.date, this.time));\r\n const emitValue = this.datePipe.transform(this.input, 'yyyy-MM-ddTHH:mm');\r\n this.onTouch();\r\n this.onChange(emitValue);\r\n }\r\n\r\n limpiar(): void {\r\n this.date = null;\r\n this.time = { minute: 0, hour: 0, second: 0 };\r\n this.input = null;\r\n this.onTouch();\r\n this.onChange(null);\r\n }\r\n\r\n writeValue(newModel: any): void {\r\n // this.input = new DateTimeModel(Object.assign(this.date, this.time));\r\n if (newModel) {\r\n // this.input = Object.assign(!this.input, DateTimeModel.fromLocalString(newModel));\r\n if (!this.input) {\r\n this.input = DateTimeModel.fromLocalString(newModel);\r\n } else {\r\n this.input = Object.assign(\r\n this.input,\r\n DateTimeModel.fromLocalString(newModel)\r\n );\r\n }\r\n\r\n this.date = this.input;\r\n this.time = {\r\n hour: this.input.hour,\r\n minute: this.input.minute,\r\n second: this.input.second,\r\n };\r\n\r\n this._tempValue = this.datePipe.transform(this.input, 'yyyy-MM-ddTHH:mm');\r\n // this.onTouch();\r\n\r\n if (this.controls) {\r\n this._render.setProperty(this.controls, 'value', this._tempValue);\r\n }\r\n } else {\r\n // Agregue el limpiar para que cargue vacio si se le setea vacio o null\r\n this.limpiar();\r\n // this.input = new DateTimeModel();\r\n }\r\n }\r\n\r\n registerOnChange(fn: any): void {\r\n this.onChange = fn;\r\n }\r\n\r\n registerOnTouched(fn: any): void {\r\n this.onTouch = fn;\r\n }\r\n\r\n setDisabledState?(isDisabled: boolean): void {\r\n this.isDisabled = isDisabled;\r\n }\r\n\r\n validate(control: AbstractControl): ValidationErrors | any {\r\n this.controls = control;\r\n\r\n if (!this._initValue) {\r\n if (this._tempValue) {\r\n this._render.setProperty(control, 'value', this._tempValue);\r\n }\r\n this._initValue = true;\r\n }\r\n return null;\r\n }\r\n\r\n registerOnValidatorChange?(fn: () => void): void {\r\n this.onValidationChange = fn;\r\n }\r\n\r\n open(d: NgbInputDatepicker): void {\r\n if (this.input === null) {\r\n this.date = this.today;\r\n this.time = {\r\n hour: new Date().getHours(),\r\n minute: new Date().getMinutes(),\r\n second: new Date().getSeconds(),\r\n };\r\n this.input = new DateTimeModel(Object.assign(this.date, this.time));\r\n const emitValue = this.datePipe.transform(this.input, 'yyyy-MM-ddTHH:mm');\r\n this.onTouch();\r\n this.onChange(emitValue);\r\n }\r\n //abrir el datetime\r\n d.open();\r\n }\r\n\r\n goNext(): void {\r\n if (this.next != undefined) {\r\n if (this.next.disabled || this.next.readonly) {\r\n if (this.nextIsDisable != undefined) {\r\n this.nextIsDisable.focus();\r\n }\r\n } else {\r\n this.next.focus();\r\n }\r\n } else {\r\n if (this.nextIsDisable != undefined) {\r\n this.nextIsDisable.focus();\r\n } else {\r\n this.onNext.emit();\r\n }\r\n }\r\n }\r\n\r\n goBack(): void {\r\n if (this.back != undefined) {\r\n if (this.back.disabled || this.back.readonly) {\r\n if (this.backIsDisable != undefined) {\r\n this.backIsDisable.focus();\r\n }\r\n } else {\r\n this.back.focus();\r\n }\r\n } else {\r\n if (this.backIsDisable != undefined) {\r\n this.backIsDisable.focus();\r\n } else {\r\n this.onBack.emit();\r\n }\r\n }\r\n }\r\n}\r\n","<label *ngIf=\"label != null && label != '' && showLabel\" class=\"d-flex sumax-label mb-0 p-0\"\r\n ><span [title]=\"label\" style=\"white-space: nowrap; overflow: hidden; text-overflow: ellipsis\">{{ label }}</span>\r\n <span *ngIf=\"required\" class=\"ms-1\" [class.text-danger]=\"controls?.errors != null\"> *</span>\r\n <span *ngIf=\"labelInfo\">\r\n <i class=\"fa fa-exclamation-circle text-info ms-2\" [matTooltip]=\"textLabelInfo\" matTooltipClass=\"bg-info\"></i>\r\n </span>\r\n</label>\r\n<div\r\n [class.input-icon]=\"controls?.errors != null && (controls?.dirty || controls?.touched) && submitted\"\r\n class=\"position-relative\"\r\n [class.right]=\"controls?.errors != null && (controls?.dirty || controls?.touched) && submitted\">\r\n <!-- tooltip-message es el icono de error -->\r\n\r\n <tooltip-message\r\n [label]=\"label\"\r\n [controls]=\"controls\"\r\n [validatorMessage]=\"validatorMessage\"\r\n [tooltipMessage]=\"tooltipMessage\"\r\n [submitted]=\"submitted\"></tooltip-message>\r\n <div class=\"input-group mr-2\">\r\n <input name=\"input\" type=\"text\" class=\"form-control form-control-sm\" [disabled]=\"true\" [ngModel]=\"input | date: inputDatetimeFormat\" />\r\n <input\r\n class=\"form-control form-control-sm\"\r\n container=\"body\"\r\n [readonly]=\"true\"\r\n placeholder=\"dd/mm/yyyy\"\r\n name=\"dp\"\r\n [(ngModel)]=\"date\"\r\n (ngModelChange)=\"onModelDateChange($event)\"\r\n [autoClose]=\"'outside'\"\r\n ngbDatepicker\r\n [footerTemplate]=\"footerTemplate\"\r\n [minDate]=\"{ year: 1960, month: 1, day: 1 }\"\r\n #d=\"ngbDatepicker\" />\r\n <!-- (dateSelect)=\"onDateSelect($event)\" -->\r\n <div class=\"input-group-append\">\r\n <button\r\n #btnOpen\r\n class=\"btn btn-info p-0 rounded-0 h-100\"\r\n [disabled]=\"isDisabled || readonly\"\r\n (click)=\"open(d)\"\r\n (keyup.ArrowLeft)=\"goBack()\"\r\n (keyup.ArrowRight)=\"btnClean.focus()\"\r\n type=\"button\">\r\n <!-- <mat-icon class=\"text-white pt-1\" style=\"font-size: 18px;\" [matTooltip]=\"'Calendario'\" matTooltipClass=\"bg-info\">calendar_today</mat-icon> -->\r\n <i aria-hidden=\"true\" class=\"fa fa-calendar text-light px-1\"></i>\r\n </button>\r\n <button\r\n #btnClean\r\n class=\"btn btn-danger p-0 rounded-0 limpiar h-100\"\r\n [disabled]=\"isDisabled || readonly\"\r\n (click)=\"limpiar()\"\r\n (keyup.ArrowLeft)=\"btnOpen.focus()\"\r\n (keyup.ArrowRight)=\"goNext()\"\r\n type=\"button\">\r\n <!-- <mat-icon class=\"text-white pt-1\" style=\"font-size: 18px;\" [matTooltip]=\"'Limpiar'\" matTooltipClass=\"bg-danger\">close</mat-icon> -->\r\n <i aria-hidden=\"true\" class=\"fa fa-times px-1 text-light\"></i>\r\n </button>\r\n </div>\r\n </div>\r\n</div>\r\n\r\n<ng-template #footerTemplate>\r\n <hr class=\"my-0\" />\r\n <ngb-timepicker #tp [(ngModel)]=\"time\" name=\"timepicker\" (ngModelChange)=\"onModelDateChange($event)\" (focusout)=\"focusOut($event)\">\r\n </ngb-timepicker>\r\n</ng-template>\r\n<!-- error-message es el mansaje que aparece abajo del componente -->\r\n<error-message\r\n [label]=\"label\"\r\n [controls]=\"controls\"\r\n [validatorMessage]=\"validatorMessage\"\r\n [tooltipMessage]=\"tooltipMessage\"\r\n [submitted]=\"submitted\"></error-message>\r\n","export class DateTimePicker {\r\n inputDatetimeFormat?:string;\r\n showLabel?:boolean;\r\n openWhenFocus?:boolean;\r\n goNextWhenSelect?:boolean;\r\n validatorMessage?: boolean;\r\n tooltipMessage?: boolean;\r\n submitted?: boolean;\r\n}","import { CommonModule, DatePipe } from '@angular/common';\r\nimport { ModuleWithProviders, NgModule } from '@angular/core';\r\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\r\nimport { MatIconModule } from '@angular/material/icon';\r\nimport { MatTooltipModule } from '@angular/material/tooltip';\r\nimport { RouterModule } from '@angular/router';\r\nimport { NgbDatepickerModule, NgbTimepickerModule } from '@ng-bootstrap/ng-bootstrap';\r\nimport { ErrorMessageModule } from '../error-message/error-message.module';\r\nimport { TooltipMessageModule } from '../tooltip-message/tooltip-message.module';\r\nimport { DateTimePickerComponent } from './date-time-picker.component';\r\nimport { DateTimePickerService } from './date-time-picker.service';\r\nimport { DateTimePicker } from './date-time-picker';\r\n\r\n\r\n@NgModule({\r\n declarations: [DateTimePickerComponent],\r\n imports: [\r\n CommonModule,\r\n RouterModule,\r\n FormsModule,\r\n ReactiveFormsModule,\r\n ErrorMessageModule,\r\n TooltipMessageModule,\r\n NgbDatepickerModule,\r\n MatIconModule,\r\n MatTooltipModule,\r\n NgbTimepickerModule\r\n ],\r\n exports: [DateTimePickerComponent],\r\n\tproviders: [\r\n\t\tDatePipe\r\n\t]\r\n})\r\nexport class DateTimePickerModule { \r\n static forRoot(dateTimePicker: DateTimePicker = new DateTimePicker()): ModuleWithProviders<DateTimePickerModule> {\r\n return {\r\n ngModule: DateTimePickerModule,\r\n providers: [\r\n { provide: 'DATE_TIME_PICKER_INPUT_DATE_TIME_FORMAT', useValue: dateTimePicker.inputDatetimeFormat },\r\n { provide: 'DATE_TIME_PICKER_SHOW_LABEL', useValue: dateTimePicker.showLabel },\r\n { provide: 'DATE_TIME_PICKER_OPEN_WHEN_FOCUS', useValue: dateTimePicker.openWhenFocus },\r\n { provide: 'DATE_TIME_PICKER_GO_NEXT_WHEN_SELECT', useValue: dateTimePicker.goNextWhenSelect },\r\n { provide: 'DATE_TIME_PICKER_VALIDATOR_MESSAGE', useValue: dateTimePicker.validatorMessage },\r\n { provide: 'DATE_TIME_PICKER_TOOLTIP_MESSAGE', useValue: dateTimePicker.tooltipMessage },\r\n { provide: 'DATE_TIME_PICKER_SUBMITTED', useValue: dateTimePicker.submitted },\r\n DateTimePickerService\r\n ]\r\n }\r\n }\r\n}\r\n","import { Inject, Injectable } from \"@angular/core\";\r\n\r\n@Injectable()\r\nexport class InputNumberService {\r\n constructor(\r\n @Inject(\"INPUT_NUMBER_DECIMALS\") private decimals: number = -1,\r\n @Inject(\"INPUT_NUMBER_FORMAT_CERO\") private formatCero: boolean = false,\r\n @Inject(\"INPUT_NUMBER_BTN_ENABLE\") private btnEnable: boolean = false,\r\n @Inject(\"INPUT_NUMBER_BOLD\") private bold: boolean = false,\r\n @Inject(\"INPUT_NUMBER_VALIDATOR_MESSAGE\") private validatorMessage: boolean = false,\r\n @Inject(\"INPUT_NUMBER_TOOLTIP_MESSAGE\") private tooltipMessage: boolean = true,\r\n @Inject(\"INPUT_NUMBER_SUBMITTED\") private submitted: boolean = true,\r\n @Inject(\"INPUT_NUMBER_VALIDATOR_ALERT\") private validatorAlert: boolean = false\r\n ) {}\r\n\r\n public getDecimals(): number {\r\n return this.decimals;\r\n }\r\n public getFormatCero(): boolean {\r\n return this.formatCero;\r\n }\r\n public getBtnEnable(): boolean {\r\n return this.btnEnable;\r\n }\r\n public getBold(): boolean {\r\n return this.bold;\r\n }\r\n public getValidatorMessage(): boolean {\r\n return this.validatorMessage;\r\n }\r\n public getTooltipMessage(): boolean {\r\n return this.tooltipMessage;\r\n }\r\n public getSubmitted(): boolean {\r\n return this.submitted;\r\n }\r\n public getValidatorAlert(): boolean {\r\n return this.validatorAlert;\r\n }\r\n}\r\n","import {\r\n\tAfterViewInit,\r\n\tComponent,\r\n\tElementRef,\r\n\tEventEmitter,\r\n\tforwardRef,\r\n\tInput,\r\n\tOnChanges,\r\n\tOnInit,\r\n\tOutput,\r\n\tRenderer2,\r\n\tSimpleChanges,\r\n\tViewChild\r\n} from '@angular/core';\r\nimport {\r\n\tAbstractControl,\r\n\tControlValueAccessor,\r\n\tNG_VALIDATORS,\r\n\tNG_VALUE_ACCESSOR,\r\n\tValidationErrors\r\n} from '@angular/forms';\r\nimport { InputNumberService } from './input-number.service';\r\nimport { SharedComponentsUtil } from '../utils/SharedComponentsUtil';\r\nimport { MessageUtilService } from '../utils/message-util.service';\r\n\r\n@Component({\r\n\tselector: 'input-number',\r\n\ttemplateUrl: './input-number.component.html',\r\n\tstyleUrls: ['./input-number.component.scss'],\r\n\tproviders: [\r\n\t\t{\r\n\t\t\tprovide: NG_VALUE_ACCESSOR,\r\n\t\t\tuseExisting: forwardRef(() => InputNumberComponent),\r\n\t\t\tmulti: true\r\n\t\t},\r\n\t\t{\r\n\t\t\tprovide: NG_VALIDATORS,\r\n\t\t\tuseExisting: forwardRef(() => InputNumberComponent),\r\n\t\t\tmulti: true\r\n\t\t}\r\n\t]\r\n})\r\nexport class InputNumberComponent implements OnInit, AfterViewInit, OnChanges, ControlValueAccessor {\r\n\t/**\r\n\t * @description Controla la visualización del texto superior (label)\r\n\t * @default true\r\n\t * @type boolean\r\n\t */\r\n\t@Input() showLabel: boolean = true;\r\n\t\r\n\t/**\r\n\t * @description Texto a mostrar como etiqueta del campo\r\n\t * @default null\r\n\t * @type any\r\n\t */\r\n\t@Input() label: any = null;\r\n\t\r\n\t/**\r\n\t * @description Habilita el botón para activar el campo\r\n\t * @default false\r\n\t * @type boolean\r\n\t */\r\n\t@Input() btnEnable: boolean = false;\r\n\t\r\n\t/**\r\n\t * @description Valor para el atributo autocomplete del input\r\n\t * @default \"no-autocomplete-input-number\"\r\n\t * @type string\r\n\t */\r\n\t@Input() autocomplete: string = 'no-autocomplete-input-number';\r\n\t\r\n\t/**\r\n\t * @description Aplica estilo negrita al texto\r\n\t * @default false\r\n\t * @type boolean\r\n\t */\r\n\t@Input() bold: boolean = false;\r\n\t\r\n\t/**\r\n\t * @description Número de decimales a mostrar (-1 para no especificar)\r\n\t * @default -1\r\n\t * @type number\r\n\t */\r\n\t@Input() decimals: number = -1;\r\n\t\r\n\t/**\r\n\t * @description Formatea valores vacíos como cero\r\n\t * @default false\r\n\t * @type boolean\r\n\t */\r\n\t@Input() formatCero: boolean = false;\r\n\t\r\n\t/**\r\n\t * @description Longitud máxima permitida para el número\r\n\t * @default null\r\n\t * @type any\r\n\t */\r\n\t@Input() maxLength: any = null;\r\n\t\r\n\t/**\r\n\t * @description Referencia al siguiente control para navegación\r\n\t * @default undefined\r\n\t * @type any\r\n\t */\r\n\t@Input() next: any;\r\n\t\r\n\t/**\r\n\t * @description Referencia al control alternativo cuando el siguiente está deshabilitado\r\n\t * @default undefined\r\n\t * @type any\r\n\t */\r\n\t@Input() nextIsDisable: any;\r\n\t\r\n\t/**\r\n\t * @description Referencia al control anterior para navegación\r\n\t * @default undefined\r\n\t * @type any\r\n\t */\r\n\t@Input() back: any;\r\n\t\r\n\t/**\r\n\t * @description Referencia al control alternativo cuando el anterior está deshabilitado\r\n\t * @default undefined\r\n\t * @type any\r\n\t */\r\n\t@Input() backIsDisable: any;\r\n\t\r\n\t/**\r\n\t * @description Indica si el campo es obligatorio\r\n\t * @default false\r\n\t * @type boolean\r\n\t */\r\n\t@Input() required: boolean = false;\r\n\t\r\n\t/**\r\n\t * @description Deshabilita el control\r\n\t * @default false\r\n\t * @type boolean\r\n\t */\r\n\t@Input() disabled: boolean = false;\r\n\t\r\n\t/**\r\n\t * @description Establece el control como solo lectura\r\n\t * @default false\r\n\t * @type boolean\r\n\t */\r\n\t@Input() readonly: boolean = false;\r\n\t\r\n\t/**\r\n\t * @description Muestra mensajes de validación\r\n\t * @default false\r\n\t * @type boolean\r\n\t */\r\n\t@Input() validatorMessage: boolean = false;\r\n\t\r\n\t/**\r\n\t * @description Muestra mensajes de ayuda como tooltips\r\n\t * @default true\r\n\t * @type boolean\r\n\t */\r\n\t@Input() tooltipMessage: boolean = true;\r\n\t\r\n\t/**\r\n\t * @description Indica si el formulario ha sido enviado para mostrar validaciones\r\n\t * @default true\r\n\t * @type boolean\r\n\t */\r\n\t@Input() submitted: boolean = true;\r\n\t\r\n\t/**\r\n\t * @description Habilita información adicional para la etiqueta\r\n\t * @default false\r\n\t * @type boolean\r\n\t */\r\n\t@Input() labelInfo: boolean = false;\r\n\t\r\n\t/**\r\n\t * @description Texto informativo adicional para la etiqueta\r\n\t * @default \"\"\r\n\t * @type string\r\n\t */\r\n\t@Input() textLabelInfo: string = '';\r\n\t\r\n\t/**\r\n\t * @description Muestra alertas de validación\r\n\t * @default false\r\n\t * @type boolean\r\n\t */\r\n\t@Input() validatorAlert: boolean = false;\r\n\t\r\n\t/**\r\n\t * @description Clases CSS adicionales para el componente\r\n\t * @default \"\"\r\n\t * @type string\r\n\t */\r\n\t@Input() setNgClass: string = '';\r\n\t\r\n\t/**\r\n\t * @description Texto de placeholder para el input\r\n\t * @default \"\"\r\n\t * @type string\r\n\t */\r\n\t@Input() placeholder: string = '';\r\n\t\r\n\t/**\r\n\t * @description Permite valores negativos\r\n\t * @default false\r\n\t * @type boolean\r\n\t */\r\n\t@Input() allowNegativeNumbers: boolean = false;\r\n\t@Output() onNext: EventEmitter<any> = new EventEmitter();\r\n\t@Output() onBack: EventEmitter<any> = new EventEmitter();\r\n\t@Output() change: EventEmitter<any> = new EventEmitter();\r\n\t@Output() onchange: EventEmitter<any> = new EventEmitter();\r\n\t@Output() blur: EventEmitter<any> = new EventEmitter();\r\n\t@Output() onfocus: EventEmitter<any> = new EventEmitter();\r\n\t@Output() onfocusout: EventEmitter<any> = new EventEmitter();\r\n\t@ViewChild('inputText') inputText!: ElementRef<HTMLInputElement>;\r\n\r\n\tsharedComponentsUtil = new SharedComponentsUtil();\r\n\r\n\tformat = 'separator';\r\n\r\n\tcontrols: AbstractControl | null = null;\r\n\tvalue: any;\r\n\tvalueEmit: any;\r\n\t_initValue = false;\r\n\r\n\tconstructor(\r\n\t\tprivate messageUtilService: MessageUtilService,\r\n\t\tprivate inputNumberService: InputNumberService,\r\n\t\tprivate _render: Renderer2\r\n\t) {\r\n\t\tthis.decimals = this.inputNumberService.getDecimals();\r\n\t\tthis.formatCero = this.inputNumberService.getFormatCero();\r\n\t\tthis.btnEnable = this.inputNumberService.getBtnEnable();\r\n\t\tthis.bold = this.inputNumberService.getBold();\r\n\t\tthis.validatorMessage = this.inputNumberService.getValidatorMessage();\r\n\t\tthis.tooltipMessage = this.inputNumberService.getTooltipMessage();\r\n\t\tthis.submitted = this.inputNumberService.getSubmitted();\r\n\t\tthis.validatorAlert = this.inputNumberService.getValidatorAlert();\r\n\t}\r\n\r\n\tngOnChanges(changes: SimpleChanges): void {\r\n\t\tif (changes['submitted']) {\r\n\t\t\tif (this.controls != null && changes['submitted'].currentValue) {\r\n\t\t\t\tthis.controls.markAsDirty();\r\n\t\t\t\tthis.controls.markAsTouched();\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\tngOnInit() {\r\n\t\tif (this.decimals != -1) {\r\n\t\t\tthis.format = 'separator' + '.' + this.decimals.toString();\r\n\t\t} else {\r\n\t\t\tthis.format = 'separator';\r\n\t\t}\r\n\t}\r\n\r\n\tngAfterViewInit(): void {}\r\n\r\n\tonChange = (_: any) => {};\r\n\tonValidationChange = () => {};\r\n\tonTouch = () => {};\r\n\tfocus = () => {\r\n\t\tthis.inputText.nativeElement.focus();\r\n\t\tthis.inputText.nativeElement.select();\r\n\t};\r\n\r\n\tonBlur(value: any) {\r\n\t\tthis.onTouch();\r\n\t\tif ((value == '' || value == null) && this.formatCero) {\r\n\t\t\tvalue = 0;\r\n\t\t}\r\n\t\tconst newValue = this.formatNumber(value);\r\n\r\n\t\tif (this.value !== newValue) {\r\n\t\t\tthis.value = newValue;\r\n\t\t\tthis.onChange(this.emitValue(newValue));\r\n\t\t}\r\n\r\n\t\t// if (newValue) {\r\n\t\tthis.onValidationChange();\r\n\t\tthis.blur.emit(this.emitValue(newValue));\r\n\t\t// }\r\n\t}\r\n\r\n\tonFocus(evt: any) {\r\n\t\tthis.inputText.nativeElement.select();\r\n\t\tthis.onfocus.emit(evt);\r\n\t}\r\n\r\n\tonInput(evt: any) {\r\n\t\tthis.onTouch();\r\n\t\tthis.onChange(this.emitValue(evt));\r\n\t\tthis.onValidationChange();\r\n\t\tthis.change.emit(this.emitValue(evt));\r\n\t\tthis.onchange.emit(this.emitValue(evt));\r\n\t}\r\n\r\n\twriteValue(value: any): void {\r\n\t\tif (value != null) {\r\n\t\t\tthis.value = this.formatNumber(value);\r\n\r\n\t\t\tif (this.value === 'NaN') {\r\n\t\t\t\tif (this.controls) {\r\n\t\t\t\t\tthis._render.setProperty(this.controls, 'value', null);\r\n\t\t\t\t}\r\n\t\t\t\tthrow new Error('Not a number');\r\n\t\t\t}\r\n\r\n\t\t\tif (this.controls) {\r\n\t\t\t\tthis._render.setProperty(this.controls, 'value', Number(this.value));\r\n\t\t\t}\r\n\t\t} else {\r\n\t\t\tthis.value = null;\r\n\t\t}\r\n\t}\r\n\r\n\tregisterOnChange(fn: any): void {\r\n\t\tthis.onChange = fn;\r\n\t}\r\n\r\n\tregisterOnTouched(fn: any): void {\r\n\t\tthis.onTouch = fn;\r\n\t}\r\n\r\n\tsetDisabledState(isDisabled: boolean): void {\r\n\t\tthis.disabled = isDisabled;\r\n\t}\r\n\r\n\tvalidate(control: AbstractControl): ValidationErrors | any {\r\n\t\tthis.controls = control;\r\n\r\n\t\tif (!this._initValue) {\r\n\t\t\tif (this.value === 'NaN') {\r\n\t\t\t\tthis._render.setProperty(this.controls, 'value', null);\r\n\t\t\t\tthrow new Error('Not a number');\r\n\t\t\t}\r\n\r\n\t\t\tif (this.value !== null) {\r\n\t\t\t\tthis._render.setProperty(this.controls, 'value', Number(this.value));\r\n\t\t\t}\r\n\t\t\tthis._initValue = true;\r\n\t\t}\r\n\r\n\t\treturn null;\r\n\t}\r\n\r\n\tregisterOnValidatorChange?(fn: () => void): void {\r\n\t\tthis.onValidationChange = fn;\r\n\t}\r\n\r\n\tformatNumber(value: any) {\r\n\t\tif (value != null) {\r\n\t\t\tvalue = value.toString();\r\n\t\t}\r\n\t\tif (this.decimals != null && value != null && value != '') {\r\n\t\t\tif (this.decimals > 0) {\r\n\t\t\t\treturn Number(value.replaceAll(',', '')).toFixed(this.decimals);\r\n\t\t\t} else {\r\n\t\t\t\treturn Number(value.replaceAll(',', '')).toFixed();\r\n\t\t\t}\r\n\t\t} else {\r\n\t\t\tif (value != null && value != '') {\r\n\t\t\t\treturn Number(value.replaceAll(',', ''));\r\n\t\t\t} else {\r\n\t\t\t\treturn null;\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\temitValue(value: any) {\r\n\t\tif (value != null && value != '') {\r\n\t\t\tif (this.decimals != null) {\r\n\t\t\t\tif (this.decimals > 0) {\r\n\t\t\t\t\treturn Number(Number(value.replaceAll(',', '')).toFixed(this.decimals));\r\n\t\t\t\t} else {\r\n\t\t\t\t\treturn Number(Number(value.replaceAll(',', '')).toFixed());\r\n\t\t\t\t}\r\n\t\t\t} else {\r\n\t\t\t\treturn Number(value.replaceAll(',', ''));\r\n\t\t\t}\r\n\t\t} else {\r\n\t\t\treturn null;\r\n\t\t}\r\n\t}\r\n\r\n\tenterKeyUp() {\r\n\t\tif (!this.disabled) {\r\n\t\t\tlet validator = this.sharedComponentsUtil.stopByValidator(this.controls, this.validatorAlert, this.label);\r\n\t\t\tif (validator.error) {\r\n\t\t\t\tthis.messageUtilService.getMessageError('000046', 'Error', validator.message);\r\n\t\t\t\treturn;\r\n\t\t\t}\r\n\t\t}\r\n\t\tif (this.next != undefined) {\r\n\t\t\tif (this.next.disabled || this.next.readonly) {\r\n\t\t\t\tif (this.nextIsDisable != undefined) {\r\n\t\t\t\t\tthis.nextIsDisable.focus();\r\n\t\t\t\t}\r\n\t\t\t} else {\r\n\t\t\t\tthis.next.focus();\r\n\t\t\t}\r\n\t\t} else {\r\n\t\t\tif (this.nextIsDisable != undefined) {\r\n\t\t\t\tthis.nextIsDisable.focus();\r\n\t\t\t} else {\r\n\t\t\t\tthis.onNext.emit();\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\tarrowUpKeyUp() {\r\n\t\tif (!this.disabled) {\r\n\t\t\tlet validator = this.sharedComponentsUtil.stopByValidator(this.controls, this.validatorAlert, this.label);\r\n\t\t\tif (validator.error) {\r\n\t\t\t\tthis.messageUtilService.getMessageError('000046', 'Error', validator.message);\r\n\t\t\t\treturn;\r\n\t\t\t}\r\n\t\t}\r\n\t\tif (this.back != undefined) {\r\n\t\t\tif (this.back.disabled || this.back.readonly) {\r\n\t\t\t\tif (this.backIsDisable != undefined) {\r\n\t\t\t\t\tthis.backIsDisable.focus();\r\n\t\t\t\t}\r\n\t\t\t} else {\r\n\t\t\t\tthis.back.focus();\r\n\t\t\t}\r\n\t\t} else {\r\n\t\t\tif (this.backIsDisable != undefined) {\r\n\t\t\t\tthis.backIsDisable.focus();\r\n\t\t\t} else {\r\n\t\t\t\tthis.onBack.emit();\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\tonFocusOut(evt: any) {\r\n\t\tthis.onfocusout.emit(evt);\r\n\t\tif (this.btnEnable) {\r\n\t\t\tthis.disabled = true;\r\n\t\t}\r\n\t}\r\n\r\n\tclickEnable() {\r\n\t\tthis.disabled = false;\r\n\t\tthis.readonly = false;\r\n\t\tsetTimeout(() => {\r\n\t\t\tthis.focus();\r\n\t\t}, 150);\r\n\t}\r\n}\r\n","<label *ngIf=\"label != null && label != '' && showLabel\" class=\"d-flex sumax-label mb-0 p-0\"\r\n\t><span [title]=\"label\" style=\"white-space: nowrap; overflow: hidden; text-overflow: ellipsis\">{{ label }}</span>\r\n\t<span *ngIf=\"required\" class=\"ms-1\" [class.text-danger]=\"controls?.errors != null\"> *</span>\r\n\t<span *ngIf=\"labelInfo\">\r\n\t\t<i class=\"fa fa-exclamation-circle text-info ms-2\" [matTooltip]=\"textLabelInfo\" matTooltipClass=\"bg-info\"></i>\r\n\t</span>\r\n</label>\r\n<div\r\n\t[class.input-icon]=\"controls?.errors != null && (controls?.dirty || controls?.touched) && submitted\"\r\n\t[class.right]=\"controls?.errors != null && (controls?.dirty || controls?.touched) && submitted\"\r\n>\r\n\t<div class=\"d-flex\">\r\n\t\t<div class=\"w-100 position-relative\">\r\n\t\t\t<tooltip-message\r\n\t\t\t\t[label]=\"label\"\r\n\t\t\t\t[controls]=\"controls\"\r\n\t\t\t\t[validatorMessage]=\"validatorMessage\"\r\n\t\t\t\t[tooltipMessage]=\"tooltipMessage\"\r\n\t\t\t\t[submitted]=\"submitted\"\r\n\t\t\t></tooltip-message>\r\n\t\t\t<input\r\n\t\t\t\t#inputText\r\n\t\t\t\ttype=\"text\"\r\n\t\t\t\tclass=\"form-control form-control-sm text-end\"\r\n\t\t\t\t[class.is-invalid]=\"controls?.errors != null && (controls?.dirty || controls?.touched) && submitted\"\r\n\t\t\t\t[(ngModel)]=\"value\"\r\n\t\t\t\t[disabled]=\"disabled\"\r\n\t\t\t\t[readonly]=\"readonly\"\r\n\t\t\t\t[mask]=\"format\"\r\n\t\t\t\tthousandSeparator=\",\"\r\n\t\t\t\t(blur)=\"onBlur($any($event.target).value)\"\r\n\t\t\t\t(input)=\"onInput($any($event.target).value)\"\r\n\t\t\t\t(focusout)=\"onFocusOut($any($event.target).value)\"\r\n\t\t\t\t[attr.autocomplete]=\"autocomplete\"\r\n\t\t\t\t[placeholder]=\"placeholder\"\r\n\t\t\t\t(focus)=\"onFocus($any($event.target).value)\"\r\n\t\t\t\t[attr.maxLength]=\"maxLength\"\r\n\t\t\t\t(keyup.enter)=\"enterKeyUp()\"\r\n\t\t\t\t(keyup.ArrowUp)=\"arrowUpKeyUp()\"\r\n\t\t\t\t[ngClass]=\"setNgClass\"\r\n\t\t\t\t[class.bold]=\"bold\"\r\n\t\t\t\t[allowNegativeNumbers]=\"allowNegativeNumbers\"\r\n\t\t\t\t[leadZero]=\"!allowNegativeNumbers\"\r\n\t\t\t/>\r\n\t\t</div>\r\n\t\t<div class=\"bd-highlight\" *ngIf=\"btnEnable\">\r\n\t\t\t<button type=\"button\" class=\"btn btn-info p-0 rounded-0 h-100\" (click)=\"clickEnable()\">\r\n\t\t\t\t<i class=\"fa fa-check text-white px-1\" [matTooltip]=\"'Habilitar'\" matTooltipClass=\"bg-info\"></i>\r\n\t\t\t</button>\r\n\t\t</div>\r\n\t\t<ng-content select=\"[more-buttons]\"></ng-content>\r\n\t</div>\r\n</div>\r\n<error-message\r\n\t[label]=\"label\"\r\n\t[controls]=\"controls\"\r\n\t[validatorMessage]=\"validatorMessage\"\r\n\t[tooltipMessage]=\"tooltipMessage\"\r\n\t[submitted]=\"submitted\"\r\n></error-message>\r\n","export class InputNumber {\r\n decimals?: number;\r\n formatCero?: boolean;\r\n btnEnable?: boolean;\r\n bold?: boolean;\r\n validatorMessage?: boolean;\r\n tooltipMessage?: boolean;\r\n submitted?: boolean;\r\n validatorAlert?: boolean;\r\n}","import { CommonModule } from \"@angular/common\";\r\nimport { ModuleWithProviders, NgModule } from \"@angular/core\";\r\nimport { FormsModule, ReactiveFormsModule } from \"@angular/forms\";\r\nimport { MatTooltipModule } from \"@angular/material/tooltip\";\r\nimport { RouterModule } from \"@angular/router\";\r\nimport { NgxMaskDirective, provideNgxMask } from \"ngx-mask\";\r\nimport { ErrorMessageModule } from \"../error-message/error-message.module\";\r\nimport { TooltipMessageModule } from \"../tooltip-message/tooltip-message.module\";\r\nimport { InputNumber } from \"./input-number\";\r\nimport { InputNumberComponent } from \"./input-number.component\";\r\nimport { InputNumberService } from \"./input-number.service\";\r\n\r\n@NgModule({\r\n declarations: [InputNumberComponent],\r\n imports: [\r\n CommonModule,\r\n RouterModule,\r\n FormsModule,\r\n ReactiveFormsModule,\r\n ErrorMessageModule,\r\n TooltipMessageModule,\r\n MatTooltipModule,\r\n NgxMaskDirective,\r\n ],\r\n exports: [InputNumberComponent],\r\n providers: [provideNgxMask({ validation: false })],\r\n})\r\nexport class InputNumberModule {\r\n static forRoot(inputNumber: InputNumber = new InputNumber()): ModuleWithProviders<InputNumberModule> {\r\n return {\r\n ngModule: InputNumberModule,\r\n providers: [\r\n { provide: \"INPUT_NUMBER_DECIMALS\", useValue: inputNumber.decimals },\r\n { provide: \"INPUT_NUMBER_FORMAT_CERO\", useValue: inputNumber.formatCero },\r\n { provide: \"INPUT_NUMBER_BTN_ENABLE\", useValue: inputNumber.btnEnable },\r\n { provide: \"INPUT_NUMBER_BOLD\", useValue: inputNumber.bold },\r\n { provide: \"INPUT_NUMBER_VALIDATOR_MESSAGE\", useValue: inputNumber.validatorMessage },\r\n { provide: \"INPUT_NUMBER_TOOLTIP_MESSAGE\", useValue: inputNumber.tooltipMessage },\r\n { provide: \"INPUT_NUMBER_SUBMITTED\", useValue: inputNumber.submitted },\r\n { provide: \"INPUT_NUMBER_VALIDATOR_ALERT\", useValue: inputNumber.validatorAlert },\r\n InputNumberService,\r\n ],\r\n };\r\n }\r\n}\r\n","import { Inject, Injectable } from \"@angular/core\";\r\nimport { Format } from \"./input-text\";\r\n\r\n@Injectable()\r\nexport class InputTextService {\r\n constructor(\r\n @Inject(\"INPUT_TEXT_FORMAT\") private format: Format = \"M\",\r\n @Inject(\"INPUT_TEXT_SHOW_LABEL\") private showLabel: boolean = true,\r\n @Inject(\"INPUT_TEXT_BTN_ENABLE\") private btnEnable: boolean = false,\r\n @Inject(\"INPUT_TEXT_BOLD\") private bold: boolean = false,\r\n @Inject(\"INPUT_TEXT_TEXT_RIGHT\") private textRight: boolean = false,\r\n @Inject(\"INPUT_TEXT_VALIDATOR_MESSAGE\") private validatorMessage: boolean = false,\r\n @Inject(\"INPUT_TEXT_TOOLTIP_MESSAGE\") private tooltipMessage: boolean = true,\r\n @Inject(\"INPUT_TEXT_SUBMITTED\") private submitted: boolean = true,\r\n @Inject(\"INPUT_TEXT_VALIDATOR_ALERT\") private validatorAlert: boolean = false,\r\n @Inject(\"INPUT_TEXT_CONTROL_CLEAR_REPLACE_REGEX\") private controlCharClearReplace: boolean = false,\r\n @Inject(\"INPUT_TEXT_REPLACE_REGEX\") private replaceRegex: {[key:string]: string} = {},\r\n @Inject(\"INPUT_TEXT_CLEAR_REGEX\") private clearRegex: string = ''\r\n ) {}\r\n\r\n public getFormat(): Format {\r\n return this.format;\r\n }\r\n public getShowLabel(): boolean {\r\n return this.showLabel;\r\n }\r\n public getBtnEnable(): boolean {\r\n return this.btnEnable;\r\n }\r\n public getBold(): boolean {\r\n return this.bold;\r\n }\r\n public getTextRight(): boolean {\r\n return this.textRight;\r\n }\r\n public getValidatorMessage(): boolean {\r\n return this.validatorMessage;\r\n }\r\n public getTooltipMessage(): boolean {\r\n return this.tooltipMessage;\r\n }\r\n public getSubmitted(): boolean {\r\n return this.submitted;\r\n }\r\n public getValidatorAlert(): boolean {\r\n return this.validatorAlert;\r\n }\r\n public getControlCharClearReplace(): boolean {\r\n return this.controlCharClearReplace;\r\n }\r\n public getReplaceRegex(): {[key:string]: string} {\r\n return this.replaceRegex;\r\n }\r\n public getClearRegex(): string {\r\n return this.clearRegex;\r\n }\r\n}\r\n","import {\r\n AfterViewInit,\r\n Component,\r\n ElementRef,\r\n EventEmitter,\r\n Input,\r\n OnChanges,\r\n OnInit,\r\n Output,\r\n Renderer2,\r\n SimpleChanges,\r\n ViewChild,\r\n forwardRef,\r\n} from \"@angular/core\";\r\nimport { AbstractControl, ControlValueAccessor, NG_VALIDATORS, NG_VALUE_ACCESSOR, ValidationErrors } from \"@angular/forms\";\r\nimport { InputTextService } from \"./input-text.service\";\r\nimport { MessageUtilService } from \"../utils/message-util.service\";\r\nimport { SharedComponentsUtil } from \"../utils/SharedComponentsUtil\";\r\n\r\nexport type Type = \"text\" | \"password\" | \"email\";\r\n\r\n@Component({\r\n selector: \"input-text\",\r\n templateUrl: \"./input-text.component.html\",\r\n styleUrls: [\"./input-text.component.scss\"],\r\n providers: [\r\n {\r\n provide: NG_VALUE_ACCESSOR,\r\n useExisting: forwardRef(() => InputTextComponent),\r\n multi: true,\r\n },\r\n {\r\n provide: NG_VALIDATORS,\r\n useExisting: forwardRef(() => InputTextComponent),\r\n multi: true,\r\n },\r\n ],\r\n})\r\nexport class InputTextComponent implements OnInit, OnChanges, AfterViewInit, ControlValueAccessor {\r\n /**\r\n * @description Formato de texto (M: mayúsculas, m: minúsculas, null: sin formato)\r\n * @default \"M\"\r\n * @type string\r\n */\r\n @Input() format: string = \"M\";\r\n \r\n /**\r\n * @description Tipo de input (texto, contraseña, email)\r\n * @default \"text\"\r\n * @type Type\r\n */\r\n @Input() type: Type = \"text\";\r\n \r\n /**\r\n * @description Controla la visualización del texto superior (label)\r\n * @default true\r\n * @type boolean\r\n */\r\n @Input() showLabel: boolean = true;\r\n \r\n /**\r\n * @description Texto a mostrar como etiqueta del campo\r\n * @default \"\"\r\n * @type any\r\n */\r\n @Input() label: any = \"\";\r\n \r\n /**\r\n * @description Habilita el botón para activar el campo\r\n * @default false\r\n * @type boolean\r\n */\r\n @Input() btnEnable: boolean = false;\r\n \r\n /**\r\n * @description Valor para el atributo autocomplete del input\r\n * @default \"no-autocomplete-input-text\"\r\n * @type string\r\n */\r\n @Input() autocomplete: string = \"no-autocomplete-input-text\";\r\n \r\n /**\r\n * @description Aplica estilo negrita al texto\r\n * @default false\r\n * @type boolean\r\n */\r\n @Input() bold: boolean = false;\r\n \r\n /**\r\n * @description Máscara para el input (formato específico)\r\n * @default null\r\n * @type string | null\r\n */\r\n @Input() inputMask: string | null = null;\r\n \r\n /**\r\n * @description Muestra la máscara mientras se escribe\r\n * @default false\r\n * @type boolean\r\n */\r\n @Input() showMaskTyped: boolean = false;\r\n \r\n /**\r\n * @description Referencia al siguiente control para navegación\r\n * @default undefined\r\n * @type any\r\n */\r\n @Input() next: any;\r\n \r\n /**\r\n * @description Referencia al control alternativo cuando el siguiente está deshabilitado\r\n * @default undefined\r\n * @type any\r\n */\r\n @Input() nextIsDisable: any;\r\n \r\n /**\r\n * @description Referencia al control anterior para navegación\r\n * @default undefined\r\n * @type any\r\n */\r\n @Input() back: any;\r\n \r\n /**\r\n * @description Referencia al control alternativo cuando el anterior está deshabilitado\r\n * @default undefined\r\n * @type any\r\n */\r\n @Input() backIsDisable: any;\r\n \r\n /**\r\n * @description Indica si el campo es obligatorio\r\n * @default false\r\n * @type boolean\r\n */\r\n @Input() required: boolean = false;\r\n \r\n /**\r\n * @description Alinea el texto a la derecha\r\n * @default false\r\n * @type boolean\r\n */\r\n @Input() textRight: boolean = false;\r\n \r\n /**\r\n * @description Deshabilita el control\r\n * @default false\r\n * @type boolean\r\n */\r\n @Input() disabled: boolean = false;\r\n \r\n /**\r\n * @description Establece el control como solo lectura\r\n * @default false\r\n * @type boolean\r\n */\r\n @Input() readonly: boolean = false;\r\n \r\n /**\r\n * @description Muestra mensajes de validación\r\n * @default false\r\n * @type boolean\r\n */\r\n @Input() validatorMessage: boolean = false;\r\n \r\n /**\r\n * @description Muestra mensajes de ayuda como tooltips\r\n * @default true\r\n * @type boolean\r\n */\r\n @Input() tooltipMessage: boolean = true;\r\n \r\n /**\r\n * @description Longitud máxima permitida para el texto\r\n * @default null\r\n * @type any\r\n */\r\n @Input() maxLength: any = null;\r\n \r\n /**\r\n * @description Indica si el formulario ha sido enviado para mostrar validaciones\r\n * @default true\r\n * @type boolean\r\n */\r\n @Input() submitted: boolean = true;\r\n \r\n /**\r\n * @description Muestra alertas de validación\r\n * @default false\r\n * @type boolean\r\n */\r\n @Input() validatorAlert: boolean = false;\r\n \r\n /**\r\n * @description Clases CSS adicionales para el componente\r\n * @default \"\"\r\n * @type string\r\n */\r\n @Input() setNgClass: string = \"\";\r\n \r\n /**\r\n * @description Patrones de validación para el campo\r\n * @default \"\"\r\n * @type any\r\n */\r\n @Input() patterns: any = \"\";\r\n \r\n /**\r\n * @description Texto de placeholder para el input\r\n * @default \"\"\r\n * @type string\r\n */\r\n @Input() placeholder: string = \"\";\r\n \r\n /**\r\n * @description Habilita información adicional para la etiqueta\r\n * @default false\r\n * @type boolean\r\n */\r\n @Input() labelInfo: boolean = false;\r\n \r\n /**\r\n * @description Texto informativo adicional para la etiqueta\r\n * @default \"\"\r\n * @type string\r\n */\r\n @Input() textLabelInfo: string = \"\";\r\n \r\n /**\r\n * @description Habilita la limpieza y reemplazo de caracteres especiales\r\n * @default false\r\n * @type boolean\r\n */\r\n @Input() controlCharClearReplace: boolean = false;\r\n \r\n /**\r\n * @description Mapa de caracteres a reemplazar\r\n * @default {}\r\n * @type {[key:string]: string}\r\n */\r\n @Input() replaceRegex: {[key:string]: string} = {};\r\n \r\n /**\r\n * @description Expresión regular para limpiar caracteres\r\n * @default \"\"\r\n * @type string\r\n */\r\n @Input() clearRegex: string = \"\";\r\n @Output() onNext: EventEmitter<any> = new EventEmitter();\r\n @Output() onBack: EventEmitter<any> = new EventEmitter();\r\n @Output() change: EventEmitter<any> = new EventEmitter();\r\n @Output() blur: EventEmitter<any> = new EventEmitter();\r\n @Output() onfocus: EventEmitter<any> = new EventEmitter();\r\n @Output() onchange: EventEmitter<any> = new EventEmitter();\r\n @Output() onfocusout: EventEmitter<any> = new EventEmitter();\r\n\r\n @ViewChild(\"inputText\") _inputText!: ElementRef<HTMLInputElement>;\r\n\r\n controls: AbstractControl | null = null;\r\n value: any;\r\n sharedComponentsUtil = new SharedComponentsUtil();\r\n _initValue = false;\r\n\r\n showPassword = false;\r\n\r\n constructor(\r\n private messageUtilService: MessageUtilService,\r\n private inputTextService: InputTextService,\r\n private _render: Renderer2\r\n ) {\r\n this.format = this.inputTextService.getFormat();\r\n this.showLabel = this.inputTextService.getShowLabel();\r\n this.btnEnable = this.inputTextService.getBtnEnable();\r\n this.bold = this.inputTextService.getBold();\r\n this.textRight = this.inputTextService.getTextRight();\r\n this.validatorMessage = this.inputTextService.getValidatorMessage();\r\n this.tooltipMessage = this.inputTextService.getTooltipMessage();\r\n this.submitted = this.inputTextService.getSubmitted();\r\n this.validatorAlert = this.inputTextService.getValidatorAlert();\r\n this.controlCharClearReplace = this.inputTextService.getControlCharClearReplace();\r\n this.replaceRegex = this.inputTextService.getReplaceRegex();\r\n this.clearRegex = this.inputTextService.getClearRegex();\r\n }\r\n\r\n ngOnChanges (changes: SimpleChanges): void {\r\n if (changes[\"submitted\"]) {\r\n if (this.controls != null && changes[\"submitted\"].currentValue) {\r\n this.controls.markAsDirty();\r\n this.controls.markAsTouched();\r\n }\r\n }\r\n }\r\n\r\n ngOnInit () { }\r\n\r\n ngAfterViewInit (): void { }\r\n\r\n get nativeElement (): HTMLInputElement {\r\n return this._inputText.nativeElement;\r\n }\r\n\r\n onChange = (_: any) => { };\r\n onValidationChange = () => { };\r\n onTouch = () => { };\r\n focus = () => {\r\n this.nativeElement?.focus();\r\n this.nativeElement?.select();\r\n };\r\n\r\n onBlur (value: string): void {\r\n this.onTouch();\r\n this.blur.emit(this.formatInput(value));\r\n }\r\n\r\n onFocus (value: string): void {\r\n if (value.trim() !== \"\") {\r\n this.nativeElement?.select();\r\n this.onfocus.emit(value.trim());\r\n }\r\n }\r\n\r\n onInput (value: string): void {\r\n const newValue = this.formatInput(value);\r\n\r\n this.onTouch();\r\n this.onChange(newValue);\r\n this.onValidationChange();\r\n this.onchange.emit(newValue);\r\n this.change.emit(newValue);\r\n }\r\n\r\n writeValue (value: any): void {\r\n if (value) {\r\n this.value = this.formatInput(value);\r\n if (this.controls) {\r\n this._render.setProperty(this.controls, \"value\", this.value);\r\n }\r\n } else {\r\n this.value = null;\r\n }\r\n }\r\n\r\n registerOnChange (fn: (v: any) => void): void {\r\n this.onChange = fn;\r\n }\r\n\r\n registerOnTouched (fn: any): void {\r\n this.onTouch = fn;\r\n }\r\n\r\n setDisabledState (isDisabled: boolean): void {\r\n this.disabled = isDisabled;\r\n }\r\n\r\n validate (control: AbstractControl): ValidationErrors | any {\r\n this.controls = control;\r\n if (!this._initValue) {\r\n if (this.value) {\r\n this._render.setProperty(this.controls, \"value\", this.value);\r\n }\r\n this._initValue = true;\r\n }\r\n return null;\r\n }\r\n\r\n registerOnValidatorChange?(fn: () => void): void {\r\n this.onValidationChange = fn;\r\n }\r\n\r\n formatInput (value: string): string {\r\n if (value !== null && value.toString().trim() !== \"\") {\r\n let newValue = value.toString().trim();\r\n if (this.format === \"M\") newValue = newValue.toUpperCase();\r\n if (this.format === \"m\") newValue = newValue.toLowerCase();\r\n\r\n if (this.controlCharClearReplace) {\r\n newValue = this.clearCharacters(newValue);\r\n newValue = this.replaceCharacters(newValue);\r\n }\r\n return newValue;\r\n }\r\n\r\n return value;\r\n }\r\n\r\n enterKeyUp () {\r\n if (!this.disabled) {\r\n this.writeValue(this.value);\r\n let validator = this.sharedComponentsUtil.stopByValidator(this.controls, this.validatorAlert, this.label);\r\n if (validator.error) {\r\n this.messageUtilService.getMessageError(\"000046\", \"Error\", validator.message);\r\n return;\r\n }\r\n }\r\n if (this.next != undefined) {\r\n if (this.next.disabled || this.next.readonly) {\r\n if (this.nextIsDisable != undefined) {\r\n this.nextIsDisable.focus();\r\n }\r\n } else {\r\n this.next.focus();\r\n }\r\n } else {\r\n if (this.nextIsDisable != undefined) {\r\n this.nextIsDisable.focus();\r\n } else {\r\n this.onNext.emit();\r\n }\r\n }\r\n }\r\n\r\n arrowUpKeyUp () {\r\n if (!this.disabled) {\r\n let validator = this.sharedComponentsUtil.stopByValidator(this.controls, this.validatorAlert, this.label);\r\n if (validator.error) {\r\n this.messageUtilService.getMessageError(\"000046\", \"Error\", validator.message);\r\n return;\r\n }\r\n }\r\n if (this.back != undefined) {\r\n if (this.back.disabled || this.back.readonly) {\r\n if (this.backIsDisable != undefined) {\r\n this.backIsDisable.focus();\r\n }\r\n } else {\r\n this.back.focus();\r\n }\r\n } else {\r\n if (this.backIsDisable != undefined) {\r\n this.backIsDisable.focus();\r\n } else {\r\n this.onBack.emit();\r\n }\r\n }\r\n }\r\n\r\n onFocusOut (evt: any) {\r\n this.onfocusout.emit(evt);\r\n if (this.btnEnable) {\r\n this.disabled = true;\r\n }\r\n }\r\n\r\n clickEnable () {\r\n this.disabled = false;\r\n this.readonly = false;\r\n setTimeout(() => {\r\n this.focus();\r\n }, 150);\r\n }\r\n\r\n clickShowPassword (): void {\r\n this.showPassword = !this.showPassword;\r\n }\r\n\r\n clearCharacters(text: string): string {\r\n if (!text) return text;\r\n const regexPattern = `[${this.clearRegex}]`;\r\n let formattedString = text.replace(new RegExp(regexPattern, 'g'), '');\r\n return formattedString;\r\n }\r\n\r\n replaceCharacters(text: string): string {\r\n if (!text) return text;\r\n const regexReplace = Object.keys(this.replaceRegex).join('');\r\n const regexPattern = `[${regexReplace}]`;\r\n return text.replace(new RegExp(regexPattern, 'g'), (char) => this.replaceRegex[char] || char);\r\n }\r\n}\r\n\r\n","<label *ngIf=\"label != null && label != '' && showLabel\" class=\"d-flex sumax-label mb-0 p-0\"\r\n ><span [title]=\"label\" style=\"white-space: nowrap; overflow: hidden; text-overflow: ellipsis\">{{ label }}</span>\r\n <span *ngIf=\"required\" class=\"ml-1\" [class.text-danger]=\"controls?.errors != null\"> *</span>\r\n <span *ngIf=\"labelInfo\">\r\n <i class=\"fa fa-exclamation-circle text-info ms-2\" [matTooltip]=\"textLabelInfo\" matTooltipClass=\"bg-info\"></i>\r\n </span>\r\n</label>\r\n<div\r\n [class.input-icon]=\"controls?.errors != null && (controls?.dirty || controls?.touched) && submitted\"\r\n [class.right]=\"controls?.errors != null && (controls?.dirty || controls?.touched) && submitted\">\r\n <div class=\"d-flex\">\r\n <div class=\"w-100 position-relative\">\r\n <tooltip-message\r\n [label]=\"label\"\r\n [controls]=\"controls\"\r\n [validatorMessage]=\"validatorMessage\"\r\n [submitted]=\"submitted\"\r\n [tooltipMessage]=\"tooltipMessage\"></tooltip-message>\r\n\r\n <input\r\n *ngIf=\"inputMask != null\"\r\n #inputText\r\n type=\"text\"\r\n class=\"form-control form-control-sm\"\r\n [class.text-uppercase]=\"format === 'M'\"\r\n [class.text-lowercase]=\"format === 'm'\"\r\n [class.text-end]=\"textRight\"\r\n [attr.autocomplete]=\"autocomplete\"\r\n [placeholder]=\"placeholder\"\r\n [class.is-invalid]=\"controls?.errors != null && (controls?.dirty || controls?.touched) && submitted\"\r\n [disabled]=\"disabled\"\r\n [readonly]=\"readonly\"\r\n [mask]=\"inputMask\"\r\n [showMaskTyped]=\"showMaskTyped\"\r\n [patterns]=\"patterns\"\r\n (blur)=\"onBlur($any($event.target).value)\"\r\n (input)=\"onInput($any($event.target).value)\"\r\n (focusout)=\"onFocusOut($any($event.target).value)\"\r\n (focus)=\"onFocus($any($event.target).value)\"\r\n (keyup.enter)=\"enterKeyUp()\"\r\n (keyup.ArrowUp)=\"arrowUpKeyUp()\"\r\n [ngClass]=\"setNgClass\"\r\n [(ngModel)]=\"value\"\r\n [class.bold]=\"bold\" />\r\n <input\r\n *ngIf=\"inputMask == null\"\r\n #inputText\r\n [type]=\"type === 'password' ? (showPassword ? 'text' : 'password') : type\"\r\n class=\"form-control form-control-sm\"\r\n [class.text-uppercase]=\"format === 'M'\"\r\n [class.text-lowercase]=\"format === 'm'\"\r\n [class.text-end]=\"textRight\"\r\n [attr.autocomplete]=\"autocomplete\"\r\n [placeholder]=\"placeholder\"\r\n [class.is-invalid]=\"controls?.errors != null && (controls?.dirty || controls?.touched) && submitted\"\r\n [disabled]=\"disabled\"\r\n [readonly]=\"readonly\"\r\n [attr.maxLength]=\"maxLength\"\r\n (blur)=\"onBlur($any($event.target).value)\"\r\n (input)=\"onInput($any($event.target).value)\"\r\n (focusout)=\"onFocusOut($any($event.target).value)\"\r\n (focus)=\"onFocus($any($event.target).value)\"\r\n (keyup.enter)=\"enterKeyUp()\"\r\n (keyup.ArrowUp)=\"arrowUpKeyUp()\"\r\n [ngClass]=\"setNgClass\"\r\n [(ngModel)]=\"value\"\r\n [class.bold]=\"bold\" />\r\n </div>\r\n <div class=\"bd-highlight\" *ngIf=\"type === 'password'\">\r\n <button type=\"button\" class=\"btn btn-info p-0 rounded-0 h-100\" (click)=\"clickShowPassword()\">\r\n <i\r\n [class.fa-eye]=\"showPassword\"\r\n [class.fa-eye-slash]=\"!showPassword\"\r\n class=\"far px-1\"\r\n [matTooltip]=\"!showPassword ? 'Mostrar' : 'Ocultar'\"\r\n matTooltipClass=\"bg-info\"></i>\r\n </button>\r\n </div>\r\n <div class=\"bd-highlight\" *ngIf=\"btnEnable\">\r\n <button type=\"button\" class=\"btn btn-info p-0 rounded-0 h-100\" (click)=\"clickEnable()\">\r\n <i class=\"fa fa-check text-white px-1\" [matTooltip]=\"'Habilitar'\" matTooltipClass=\"bg-info\"></i>\r\n </button>\r\n </div>\r\n <ng-content select=\"[more-buttons]\"></ng-content>\r\n </div>\r\n</div>\r\n<error-message\r\n [label]=\"label\"\r\n [controls]=\"controls\"\r\n [validatorMessage]=\"validatorMessage\"\r\n [submitted]=\"submitted\"\r\n [tooltipMessage]=\"tooltipMessage\"></error-message>\r\n","export class InputText {\r\n format?: string;\r\n showLabel?: boolean;\r\n btnEnable?: boolean;\r\n bold?: boolean;\r\n textRight?: boolean;\r\n validatorMessage?: boolean;\r\n tooltipMessage?: boolean;\r\n submitted?: boolean;\r\n validatorAlert?: boolean;\r\n controlCharClearReplace?: boolean;\r\n replaceRegex?: {[key:string]: string};\r\n clearRegex?: string;\r\n}\r\n\r\nexport type Format = \"M\" | \"m\" | \"Mn\";\r\n","import { CommonModule } from \"@angular/common\";\r\nimport { ModuleWithProviders, NgModule } from \"@angular/core\";\r\nimport { FormsModule, ReactiveFormsModule } from \"@angular/forms\";\r\nimport { MatIconModule } from \"@angular/material/icon\";\r\nimport { MatTooltipModule } from \"@angular/material/tooltip\";\r\nimport { RouterModule } from \"@angular/router\";\r\nimport { NgxMaskDirective, provideNgxMask } from \"ngx-mask\";\r\nimport { ErrorMessageModule } from \"../error-message/error-message.module\";\r\nimport { TooltipMessageModule } from \"../tooltip-message/tooltip-message.module\";\r\nimport { InputText } from \"./input-text\";\r\nimport { InputTextComponent } from \"./input-text.component\";\r\nimport { InputTextService } from \"./input-text.service\";\r\n\r\n@NgModule({\r\n declarations: [InputTextComponent],\r\n imports: [\r\n CommonModule,\r\n RouterModule,\r\n FormsModule,\r\n ReactiveFormsModule,\r\n ErrorMessageModule,\r\n TooltipMessageModule,\r\n MatIconModule,\r\n MatTooltipModule,\r\n NgxMaskDirective,\r\n ],\r\n exports: [InputTextComponent],\r\n providers: [provideNgxMask({ validation: false })],\r\n})\r\nexport class InputTextModule {\r\n static forRoot(inputText: InputText = new InputText()): ModuleWithProviders<InputTextModule> {\r\n return {\r\n ngModule: InputTextModule,\r\n providers: [\r\n { provide: \"INPUT_TEXT_FORMAT\", useValue: inputText.format },\r\n { provide: \"INPUT_TEXT_SHOW_LABEL\", useValue: inputText.showLabel },\r\n { provide: \"INPUT_TEXT_BTN_ENABLE\", useValue: inputText.btnEnable },\r\n { provide: \"INPUT_TEXT_BOLD\", useValue: inputText.bold },\r\n { provide: \"INPUT_TEXT_TEXT_RIGHT\", useValue: inputText.textRight },\r\n { provide: \"INPUT_TEXT_VALIDATOR_MESSAGE\", useValue: inputText.validatorMessage },\r\n { provide: \"INPUT_TEXT_TOOLTIP_MESSAGE\", useValue: inputText.tooltipMessage },\r\n { provide: \"INPUT_TEXT_SUBMITTED\", useValue: inputText.submitted },\r\n { provide: \"INPUT_TEXT_VALIDATOR_ALERT\", useValue: inputText.validatorAlert },\r\n { provide: \"INPUT_TEXT_CONTROL_CLEAR_REPLACE_REGEX\", useValue: inputText.controlCharClearReplace },\r\n { provide: \"INPUT_TEXT_REPLACE_REGEX\", useValue: inputText.replaceRegex },\r\n { provide: \"INPUT_TEXT_CLEAR_REGEX\", useValue: inputText.clearRegex },\r\n InputTextService\r\n ],\r\n \r\n };\r\n }\r\n}\r\n","import { Inject, Injectable } from \"@angular/core\";\r\n\r\n@Injectable()\r\nexport class NgSelectMultipleService {\r\n constructor(\r\n @Inject(\"NG_SELECT_MULTIPLE_SHOWLIMIT\") private showlimit: number = 2,\r\n @Inject(\"NG_SELECT_MULTIPLE_HEADER\") private Header: boolean = true,\r\n @Inject(\"NG_SELECT_MULTIPLE_FOOTER\") private Footer: boolean = true,\r\n @Inject(\"NG_SELECT_MULTIPLE_MARK_FIRST\") private markFirst: boolean = false,\r\n @Inject(\"NG_SELECT_MULTIPLE_OPEN_WHEN_FOCUS\") private openWhenFocus: boolean = false,\r\n @Inject(\"NG_SELECT_MULTIPLE_VALIDATOR_MESSAGE\") private validatorMessage: boolean = false,\r\n @Inject(\"NG_SELECT_MULTIPLE_TOOLTIP_MESSAGE\") private tooltipMessage: boolean = true,\r\n @Inject(\"NG_SELECT_MULTIPLE_VALIDATOR_ALERT\") private validatorAlert: boolean = false,\r\n @Inject(\"NG_SELECT_MULTIPLE_SUBMITTED\") private submitted: boolean = true,\r\n @Inject(\"NG_SELECT_MULTIPLE_APPEND_TO\") private appendTo: string = \"body\",\r\n @Inject(\"NG_SELECT_MULTIPLE_LOADING_TEXT\") private loadingText: string = \"Cargando...\",\r\n @Inject(\"NG_SELECT_MULTIPLE_VIRTUAL_SCROLL\") private virtualScroll: boolean = true\r\n ) {}\r\n\r\n public getShowlimit(): number {\r\n return this.showlimit;\r\n }\r\n public getHeader(): boolean {\r\n return this.Header;\r\n }\r\n public getFooter(): boolean {\r\n return this.Footer;\r\n }\r\n public getMarkFirst(): boolean {\r\n return this.markFirst;\r\n }\r\n public getOpenWhenFocus(): boolean {\r\n return this.openWhenFocus;\r\n }\r\n public getValidatorMessage(): boolean {\r\n return this.validatorMessage;\r\n }\r\n public getTooltipMessage(): boolean {\r\n return this.tooltipMessage;\r\n }\r\n public getValidatorAlert(): boolean {\r\n return this.validatorAlert;\r\n }\r\n public getSubmitted(): boolean {\r\n return this.submitted;\r\n }\r\n public getAppendTo(): string {\r\n return this.appendTo;\r\n }\r\n public getLoadingText(): string {\r\n return this.loadingText;\r\n }\r\n public getVirtualScroll(): boolean {\r\n return this.virtualScroll;\r\n }\r\n}\r\n","import { ChangeDetectorRef, Component, EventEmitter, Input, OnChanges, OnDestroy, OnInit, Output, SimpleChanges, ViewChild, forwardRef } from '@angular/core';\r\nimport { AbstractControl, NG_VALIDATORS, NG_VALUE_ACCESSOR, ValidationErrors } from '@angular/forms';\r\nimport { NgSelectComponent } from '@ng-select/ng-select';\r\nimport { Observable, Subscription, isObservable } from 'rxjs';\r\nimport { shareReplay } from 'rxjs/operators';\r\nimport { NgSelectMultipleService } from './ng-select-multiple.service';\r\nimport { SharedComponentsUtil } from '../utils/SharedComponentsUtil';\r\nimport { MessageUtilService } from '../utils/message-util.service';\r\n\r\n@Component({\r\n selector: 'ng-select-multiple',\r\n templateUrl: './ng-select-multiple.component.html',\r\n styleUrls: ['./ng-select-multiple.component.scss'],\r\n providers: [\r\n {\r\n provide: NG_VALUE_ACCESSOR,\r\n useExisting: forwardRef(() => NgSelectMultipleComponent),\r\n multi: true\r\n },\r\n {\r\n provide: NG_VALIDATORS,\r\n useExisting: forwardRef(() => NgSelectMultipleComponent),\r\n multi: true,\r\n }\r\n ]\r\n})\r\nexport class NgSelectMultipleComponent implements OnInit, OnChanges, OnDestroy {\r\n\r\n\r\n @ViewChild('ngSelectMultiple') ngSelectMultiple!: NgSelectComponent;\r\n\r\n onChange = (_: any) => { };\r\n onTouched = () => { };\r\n onValidationChange = () => { };\r\n\r\n /**\r\n * @description Lista de elementos para el selector\r\n * @default undefined\r\n * @type Observable<any[]>\r\n */\r\n @Input() items!: Observable<any[]>;\r\n \r\n /**\r\n * @description Límite de elementos a mostrar\r\n * @default 2\r\n * @type number\r\n */\r\n @Input() showlimit: number = 2;\r\n \r\n /**\r\n * @description Controla la visualización del texto superior (label)\r\n * @default true\r\n * @type boolean\r\n */\r\n @Input() showLabel: boolean = true;\r\n \r\n /**\r\n * @description Texto a mostrar como etiqueta del campo\r\n * @default null\r\n * @type any\r\n */\r\n @Input() label: any = null;\r\n \r\n /**\r\n * @description Valor para el atributo autocomplete del input\r\n * @default \"no-autocomplete-ng-select\"\r\n * @type string\r\n */\r\n @Input() autocomplete: string = \"no-autocomplete-ng-select\";\r\n \r\n /**\r\n * @description Muestra el encabezado del selector\r\n * @default true\r\n * @type boolean\r\n */\r\n @Input() Header: boolean = true;\r\n \r\n /**\r\n * @description Muestra el pie del selector\r\n * @default true\r\n * @type boolean\r\n */\r\n @Input() Footer: boolean = true;\r\n \r\n /**\r\n * @description Indica si el campo es obligatorio\r\n * @default false\r\n * @type boolean\r\n */\r\n @Input() required: boolean = false;\r\n \r\n /**\r\n * @description Referencia al siguiente control para navegación\r\n * @default undefined\r\n * @type any\r\n */\r\n @Input() next: any;\r\n \r\n /**\r\n * @description Referencia al control alternativo cuando el siguiente está deshabilitado\r\n * @default undefined\r\n * @type any\r\n */\r\n @Input() nextIsDisable: any;\r\n \r\n /**\r\n * @description Referencia al control anterior para navegación\r\n * @default undefined\r\n * @type any\r\n */\r\n @Input() back: any;\r\n \r\n /**\r\n * @description Referencia al control alternativo cuando el anterior está deshabilitado\r\n * @default undefined\r\n * @type any\r\n */\r\n @Input() backIsDisable: any;\r\n \r\n /**\r\n * @description Deshabilita el control\r\n * @default false\r\n * @type boolean\r\n */\r\n @Input() disabled: boolean = false;\r\n \r\n /**\r\n * @description Establece el control como solo lectura\r\n * @default false\r\n * @type boolean\r\n */\r\n @Input() readonly: boolean = false;\r\n \r\n /**\r\n * @description Abre el selector al recibir el foco\r\n * @default false\r\n * @type boolean\r\n */\r\n @Input() openWhenFocus: boolean = false;\r\n \r\n /**\r\n * @description Marca el primer elemento de la lista\r\n * @default false\r\n * @type boolean\r\n */\r\n @Input() markFirst: boolean = false;\r\n \r\n /**\r\n * @description Habilita información adicional para la etiqueta\r\n * @default false\r\n * @type boolean\r\n */\r\n @Input() labelInfo: boolean = false;\r\n \r\n /**\r\n * @description Texto informativo adicional para la etiqueta\r\n * @default ''\r\n * @type string\r\n */\r\n @Input() textLabelInfo: string = '';\r\n \r\n /**\r\n * @description Muestra mensajes de validación\r\n * @default false\r\n * @type boolean\r\n */\r\n @Input() validatorMessage: boolean = false;\r\n \r\n /**\r\n * @description Muestra mensajes de ayuda como tooltips\r\n * @default true\r\n * @type boolean\r\n */\r\n @Input() tooltipMessage: boolean = true;\r\n \r\n /**\r\n * @description Muestra alertas de validación\r\n * @default false\r\n * @type boolean\r\n */\r\n @Input() validatorAlert: boolean = false;\r\n \r\n /**\r\n * @description Indica si el formulario ha sido enviado para mostrar validaciones\r\n * @default true\r\n * @type boolean\r\n */\r\n @Input() submitted: boolean = true;\r\n \r\n /**\r\n * @description Muestra el botón de actualizar\r\n * @default false\r\n * @type boolean\r\n */\r\n @Input() refresh: boolean = false;\r\n /**\r\n * @description Indica si se está utilizando para filtros\r\n * @default true\r\n * @type boolean\r\n */\r\n @Input() isForFilter: boolean = true;\r\n \r\n /**\r\n * @description Elemento al que se adjuntará el dropdown\r\n * @default \"body\"\r\n * @type any\r\n */\r\n @Input() appendTo: any = \"body\";\r\n \r\n /**\r\n * @description Textos personalizados para el componente\r\n * @default \"{ Selected: 'Seleccionados', SelectAll: 'TODOS', UnselectAll: 'NINGUNO', All: 'TODOS' }\"\r\n * @type object\r\n */\r\n @Input() Language: any = {\r\n Selected: 'Seleccionados',\r\n SelectAll: 'TODOS',\r\n UnselectAll: 'NINGUNO',\r\n All: 'TODOS'\r\n };\r\n \r\n /**\r\n * @description Habilita el desplazamiento virtual para listas grandes\r\n * @default true\r\n * @type boolean\r\n */\r\n @Input() virtualScroll: boolean = true;\r\n\r\n /**\r\n * @description Indica si está cargando datos\r\n * @default true\r\n * @type boolean\r\n */\r\n @Input() loading: boolean = true;\r\n \r\n /**\r\n * @description Texto a mostrar durante la carga\r\n * @default \"Cargando...\"\r\n * @type string\r\n */\r\n @Input() loadingText: string = \"Cargando...\";\r\n\r\n /**\r\n * @description Evento emitido al navegar al siguiente control\r\n * @type EventEmitter<any>\r\n */\r\n @Output() onNext: EventEmitter<any> = new EventEmitter();\r\n \r\n /**\r\n * @description Evento emitido al navegar al control anterior\r\n * @type EventEmitter<any>\r\n */\r\n @Output() onBack: EventEmitter<any> = new EventEmitter();\r\n \r\n /**\r\n * @description Evento emitido al cambiar la selección\r\n * @type EventEmitter<any>\r\n */\r\n @Output() change: EventEmitter<any> = new EventEmitter();\r\n \r\n /**\r\n * @description Evento emitido al perder el foco\r\n * @type EventEmitter<any>\r\n */\r\n @Output() blur: EventEmitter<any> = new EventEmitter();\r\n \r\n /**\r\n * @description Evento emitido al recibir el foco\r\n * @type EventEmitter<any>\r\n */\r\n @Output() onfocus: EventEmitter<any> = new EventEmitter();\r\n \r\n /**\r\n * @description Evento emitido al actualizar\r\n * @type EventEmitter<any>\r\n */\r\n @Output() onrefresh: EventEmitter<any> = new EventEmitter();\r\n \r\n /**\r\n * @description Utilidad para componentes compartidos\r\n * @type SharedComponentsUtil\r\n */\r\n sharedComponentsUtil = new SharedComponentsUtil();\r\n\r\n /**\r\n * @description Valor actual del componente\r\n * @private\r\n */\r\n _value: any;\r\n \r\n /**\r\n * @description Referencia al control del formulario\r\n * @private\r\n */\r\n controls: any;\r\n \r\n /**\r\n * @description Lista completa de elementos\r\n * @private\r\n */\r\n all: any;\r\n \r\n /**\r\n * @description Indica si todos los elementos están seleccionados\r\n * @private\r\n */\r\n checkedAll = false;\r\n \r\n /**\r\n * @description Indica si hay una selección parcial\r\n * @private\r\n */\r\n checkedIndeterminate = false;\r\n\r\n /**\r\n * @description Lista de suscripciones para limpiar al destruir el componente\r\n * @private\r\n */\r\n private subscriptions: Subscription[] = [];\r\n\r\n constructor(\r\n private cdrf: ChangeDetectorRef,\r\n private messageUtilService: MessageUtilService,\r\n private ngSelectMultipleService: NgSelectMultipleService\r\n ) {\r\n this.showlimit = this.ngSelectMultipleService.getShowlimit();\r\n this.Header = this.ngSelectMultipleService.getHeader();\r\n this.Footer = this.ngSelectMultipleService.getFooter();\r\n this.validatorMessage = this.ngSelectMultipleService.getValidatorMessage();\r\n this.tooltipMessage = this.ngSelectMultipleService.getTooltipMessage();\r\n this.openWhenFocus = this.ngSelectMultipleService.getOpenWhenFocus();\r\n this.submitted = this.ngSelectMultipleService.getSubmitted();\r\n this.validatorAlert = this.ngSelectMultipleService.getValidatorAlert();\r\n this.appendTo = this.ngSelectMultipleService.getAppendTo();\r\n this.loadingText = this.ngSelectMultipleService.getLoadingText();\r\n this.markFirst = this.ngSelectMultipleService.getMarkFirst();\r\n this.virtualScroll = this.ngSelectMultipleService.getVirtualScroll();\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this.subscriptions.forEach(s => s.unsubscribe());\r\n }\r\n\r\n validate(control: AbstractControl): ValidationErrors | any {\r\n this.controls = control;\r\n return null;\r\n }\r\n\r\n registerOnValidatorChange?(fn: () => void): void {\r\n this.onValidationChange = fn;\r\n }\r\n\r\n ngOnChanges(changes: SimpleChanges): void {\r\n if (changes['items']) {\r\n this.loading = true;\r\n if (isObservable(this.items)) {\r\n this.carga();\r\n // this.setAll();\r\n // this.items$ = this.items.pipe(finalize(() => {\r\n // this.loading = false;\r\n // this.cdrf.markForCheck();\r\n // })).subscribe(res => {\r\n // this.cdrf.markForCheck();\r\n // })\r\n } else {\r\n this.all = this.items;\r\n this.loading = false;\r\n }\r\n }\r\n if (changes['submitted']) {\r\n if (this.controls !== undefined && changes['submitted'].currentValue) {\r\n this.controls.markAsDirty();\r\n this.controls.markAsTouched();\r\n }\r\n }\r\n }\r\n\r\n async carga() {\r\n this.all = await new Promise((resolve, reject) => {\r\n this.items = this.items.pipe(shareReplay({ refCount: true }));\r\n const subscription = this.items.subscribe(res => {\r\n resolve(res);\r\n });\r\n this.subscriptions.push(subscription);\r\n });\r\n this.loading = false;\r\n }\r\n\r\n /**\r\n * @description Verifica si un objeto es un Observable\r\n * @param items Elementos a verificar\r\n * @returns {boolean} true si es Observable, false en caso contrario\r\n */\r\n checkIfObservable(items: any) {\r\n if (isObservable(items))\r\n return true;\r\n else\r\n return false;\r\n }\r\n\r\n /**\r\n * @description Maneja el evento de foco\r\n * @param e Evento de foco\r\n */\r\n eventFocus(e: any) {\r\n this.onfocus.emit(e);\r\n if (this.openWhenFocus) {\r\n this.ngSelectMultiple.open();\r\n }\r\n }\r\n\r\n /**\r\n * @description Maneja el evento de pérdida de foco\r\n * @param e Evento de pérdida de foco\r\n */\r\n eventBlur(e: any) {\r\n this.onTouched();\r\n this.onValidationChange();\r\n this.blur.emit(e);\r\n }\r\n\r\n /**\r\n * @description Establece el foco en el componente\r\n */\r\n focus = () => {\r\n this.ngSelectMultiple.focus();\r\n if (this.openWhenFocus) {\r\n this.ngSelectMultiple.open();\r\n }\r\n }\r\n /**\r\n * @description Maneja el evento de actualización\r\n */\r\n onRefresh() {\r\n this.onrefresh.emit();\r\n }\r\n\r\n /**\r\n * @description Cierra el dropdown\r\n */\r\n close = () => {\r\n this.ngSelectMultiple.close();\r\n }\r\n\r\n\r\n ngOnInit() {\r\n if (isObservable(this.items)) {\r\n //this.setAll();\r\n }\r\n else {\r\n this.all = this.items;\r\n }\r\n }\r\n setAll() {\r\n const subscription = this.items.subscribe(res => {\r\n this.all = res;\r\n });\r\n this.subscriptions.push(subscription);\r\n }\r\n\r\n writeValue(value: any): void {\r\n if (value) {\r\n this._value = value;\r\n } else {\r\n this._value = [];\r\n }\r\n }\r\n registerOnChange(fn: any): void {\r\n this.onChange = fn;\r\n }\r\n registerOnTouched(fn: any): void {\r\n this.onTouched = fn;\r\n }\r\n setDisabledState(isDisabled: boolean): void {\r\n this.disabled = isDisabled;\r\n }\r\n\r\n selectAll(e: any) {\r\n if (e.checked) {\r\n this.writeValue(this.all);\r\n if(this.isForFilter){\r\n this.onChange(null);\r\n }else{\r\n this.onChange(this.all);\r\n }\r\n } else {\r\n this.writeValue([]);\r\n this.onChange([]);\r\n }\r\n this.checkedIndeterminate = false;\r\n this.ngSelectMultiple.focus();\r\n this.cdrf.markForCheck;\r\n }\r\n\r\n eventChange(e: any) {\r\n if (e.length == this.all.length) {\r\n this.checkedAll = true;\r\n this.checkedIndeterminate = false;\r\n } else if (e.length == 0) {\r\n this.checkedAll = false;\r\n this.checkedIndeterminate = false;\r\n } else {\r\n this.checkedAll = false;\r\n this.checkedIndeterminate = true;\r\n }\r\n this.writeValue(e);\r\n this.onChange(e);\r\n this.change.emit(e);\r\n\r\n }\r\n\r\n rightKeyUp() {\r\n this.ngSelectMultiple.close();\r\n if (!this.disabled) {\r\n let validator = this.sharedComponentsUtil.stopByValidator(this.controls, this.validatorAlert, this.label);\r\n if (validator.error) {\r\n this.messageUtilService.getMessageError(\"000046\", \"Error\", validator.message);\r\n return;\r\n }\r\n }\r\n if (this.next != undefined) {\r\n if (this.next.disabled || this.next.readonly) {\r\n if (this.nextIsDisable != undefined) {\r\n this.nextIsDisable.focus();\r\n }\r\n } else {\r\n this.next.focus();\r\n }\r\n } else {\r\n if (this.nextIsDisable != undefined) {\r\n this.nextIsDisable.focus();\r\n } else {\r\n this.onNext.emit();\r\n }\r\n }\r\n }\r\n\r\n leftKeyUp() {\r\n this.ngSelectMultiple.close();\r\n if (!this.disabled) {\r\n let validator = this.sharedComponentsUtil.stopByValidator(this.controls, this.validatorAlert, this.label);\r\n if (validator.error) {\r\n this.messageUtilService.getMessageError(\"000046\", \"Error\", validator.message);\r\n return;\r\n }\r\n }\r\n if (this.back != undefined) {\r\n if (this.back.disabled || this.back.readonly) {\r\n if (this.backIsDisable != undefined) {\r\n this.backIsDisable.focus();\r\n }\r\n } else {\r\n this.back.focus();\r\n }\r\n } else {\r\n if (this.backIsDisable != undefined) {\r\n this.backIsDisable.focus();\r\n } else {\r\n this.onBack.emit();\r\n }\r\n }\r\n }\r\n\r\n}\r\n","<label *ngIf=\"label != null && label != '' && showLabel\" class=\"d-flex sumax-label mb-0 p-0\"\r\n ><span [title]=\"label\" style=\"white-space: nowrap; overflow: hidden; text-overflow: ellipsis\">{{ label }}</span>\r\n <span *ngIf=\"required\" class=\"ml-1\" [class.text-danger]=\"controls?.errors != null\"> *</span>\r\n <span *ngIf=\"labelInfo\">\r\n <i class=\"fa fa-exclamation-circle text-info ms-2\" [matTooltip]=\"textLabelInfo\" matTooltipClass=\"bg-info\"></i>\r\n </span>\r\n</label>\r\n\r\n<div\r\n [class.input-icon]=\"controls?.errors != null && (controls?.dirty || controls?.touched) && submitted\"\r\n [class.refresh]=\"controls?.errors != null && (controls?.dirty || controls?.touched) && submitted && refresh\"\r\n [class.right]=\"controls?.errors != null && (controls?.dirty || controls?.touched) && submitted\">\r\n <div class=\"d-flex\">\r\n <div class=\"position-relative\" [class.app-ng-selec-container]=\"refresh\" [class.w-100]=\"!refresh\">\r\n <!-- tooltip-message es el icono de error -->\r\n <tooltip-message\r\n [label]=\"label\"\r\n [controls]=\"controls\"\r\n [validatorMessage]=\"validatorMessage\"\r\n [submitted]=\"submitted\"\r\n [tooltipMessage]=\"tooltipMessage\"></tooltip-message>\r\n <ng-select\r\n #ngSelectMultiple\r\n [class]=\"refresh ? 'app-ng-select' : 'w-100'\"\r\n [items]=\"$any(checkIfObservable(items) ? (items | async) : items)\"\r\n [(ngModel)]=\"_value\"\r\n [readonly]=\"disabled || readonly\"\r\n (change)=\"eventChange($event)\"\r\n (focus)=\"eventFocus($event)\"\r\n (blur)=\"eventBlur($event)\"\r\n [virtualScroll]=\"virtualScroll\"\r\n [multiple]=\"true\"\r\n placeholder=\"Seleccionar\"\r\n [closeOnSelect]=\"false\"\r\n [appendTo]=\"appendTo\"\r\n [inputAttrs]=\"{ autocomplete: autocomplete }\"\r\n [markFirst]=\"markFirst\"\r\n (keyup.ArrowLeft)=\"leftKeyUp()\"\r\n (keyup.ArrowRight)=\"rightKeyUp()\"\r\n [loading]=\"loading\"\r\n [loadingText]=\"loadingText\"\r\n [clearSearchOnAdd]=\"true\"\r\n [class.ng-select-invalid]=\"controls?.errors != null && (controls?.dirty || controls?.touched) && submitted\"\r\n [class.ng-select-touched]=\"controls?.errors != null && (controls?.dirty || controls?.touched) && submitted\">\r\n <ng-template ng-header-tmp *ngIf=\"Header\">\r\n <mat-checkbox\r\n class=\"ng-multiselect-checkbox\"\r\n [color]=\"'primary'\"\r\n [(ngModel)]=\"checkedAll\"\r\n [indeterminate]=\"checkedIndeterminate\"\r\n (change)=\"selectAll($event)\">\r\n <span *ngIf=\"!checkedAll\">{{ Language.SelectAll }}</span>\r\n <span *ngIf=\"checkedAll\">{{ Language.UnselectAll }}</span>\r\n </mat-checkbox>\r\n </ng-template>\r\n\r\n <ng-template\r\n ng-multi-label-tmp\r\n let-items=\"items\"\r\n let-clear=\"clear\"\r\n *ngIf=\"$any(checkIfObservable(items) ? (items | async) : items)?.length != _value.length\">\r\n <div class=\"ng-value\" *ngFor=\"let item of items | slice: 0 : showlimit\">\r\n <span class=\"ng-value-label\"> {{ $any(item).label }}</span>\r\n <span class=\"ng-value-icon right\" (click)=\"clear(item)\" aria-hidden=\"true\">×</span>\r\n </div>\r\n <div class=\"ng-value\" *ngIf=\"items.length > showlimit\">\r\n <span class=\"ng-value-label\">+{{ items.length - showlimit }}</span>\r\n </div>\r\n </ng-template>\r\n\r\n <ng-template ng-option-tmp let-item=\"item\" let-item$=\"item$\" let-index=\"index\">\r\n <mat-checkbox class=\"ng-multiselect-checkbox\" id=\"item-{{ index }}\" color=\"primary\" [checked]=\"item$.selected\">\r\n <span data-toggle=\"tooltip\" title=\"{{ item.label }}\">{{ item.label }}</span>\r\n </mat-checkbox>\r\n </ng-template>\r\n\r\n <ng-template\r\n ng-multi-label-tmp\r\n let-items=\"items\"\r\n let-clear=\"clear\"\r\n *ngIf=\"$any(checkIfObservable(items) ? (items | async) : items)?.length == _value.length\">\r\n <div class=\"ng-value\">\r\n <span class=\"ng-value-label\">{{ Language.All }}</span>\r\n </div>\r\n </ng-template>\r\n\r\n <ng-template ng-footer-tmp *ngIf=\"Footer\"> {{ Language.Selected }}: {{ _value.length }} </ng-template>\r\n </ng-select>\r\n </div>\r\n <div class=\"app-ng-select-button bd-highlight\" *ngIf=\"refresh\">\r\n <button\r\n *ngIf=\"refresh\"\r\n type=\"button\"\r\n [disabled]=\"disabled || readonly\"\r\n class=\"btn btn-info p-0 rounded-0 h-100\"\r\n (click)=\"onRefresh()\">\r\n <!-- <mat-icon class=\"text-white pt-1\" style=\"font-size: 18px;\" [matTooltip]=\"'Refrescar'\" matTooltipClass=\"bg-info\">refresh</mat-icon> -->\r\n <i class=\"fa fa-refresh text-white px-1\" [matTooltip]=\"'Refrescar'\" matTooltipClass=\"bg-info\"></i>\r\n </button>\r\n </div>\r\n <ng-content select=\"[more-buttons]\"></ng-content>\r\n </div>\r\n</div>\r\n\r\n<!-- error-message es el mansaje que aparece abajo del componente -->\r\n<error-message\r\n [label]=\"label\"\r\n [controls]=\"controls\"\r\n [validatorMessage]=\"validatorMessage\"\r\n [tooltipMessage]=\"tooltipMessage\"\r\n [submitted]=\"submitted\"></error-message>\r\n","export class NgSelectMultiple {\r\n showlimit?: number;\r\n Header?: boolean;\r\n Footer?: boolean;\r\n validatorMessage?: boolean;\r\n tooltipMessage?: boolean;\r\n openWhenFocus?: boolean;\r\n submitted?: boolean;\r\n validatorAlert?: boolean;\r\n appendTo?: string;\r\n loadingText?: string;\r\n markFirst?: boolean;\r\n virtualScroll?: boolean;\r\n}\r\n","import { CommonModule } from \"@angular/common\";\r\nimport { ModuleWithProviders, NgModule } from \"@angular/core\";\r\nimport { FormsModule, ReactiveFormsModule } from \"@angular/forms\";\r\nimport { MatCheckboxModule } from \"@angular/material/checkbox\";\r\nimport { MatTooltipModule } from \"@angular/material/tooltip\";\r\nimport { NgSelectModule } from \"@ng-select/ng-select\";\r\nimport { ErrorMessageModule } from \"../error-message/error-message.module\";\r\nimport { TooltipMessageModule } from \"../tooltip-message/tooltip-message.module\";\r\nimport { NgSelectMultiple } from \"./ng-select-multiple\";\r\nimport { NgSelectMultipleComponent } from \"./ng-select-multiple.component\";\r\nimport { NgSelectMultipleService } from \"./ng-select-multiple.service\";\r\n\r\n@NgModule({\r\n declarations: [NgSelectMultipleComponent],\r\n imports: [\r\n CommonModule,\r\n FormsModule,\r\n ReactiveFormsModule,\r\n ErrorMessageModule,\r\n TooltipMessageModule,\r\n NgSelectModule,\r\n MatCheckboxModule,\r\n MatTooltipModule,\r\n ],\r\n exports: [NgSelectMultipleComponent],\r\n})\r\nexport class NgSelectMultipleModule {\r\n static forRoot(ngSelectMultiple: NgSelectMultiple = new NgSelectMultiple()): ModuleWithProviders<NgSelectMultipleModule> {\r\n return {\r\n ngModule: NgSelectMultipleModule,\r\n providers: [\r\n { provide: \"NG_SELECT_MULTIPLE_SHOWLIMIT\", useValue: ngSelectMultiple.showlimit },\r\n { provide: \"NG_SELECT_MULTIPLE_HEADER\", useValue: ngSelectMultiple.Header },\r\n { provide: \"NG_SELECT_MULTIPLE_FOOTER\", useValue: ngSelectMultiple.Footer },\r\n { provide: \"NG_SELECT_MULTIPLE_VALIDATOR_MESSAGE\", useValue: ngSelectMultiple.validatorMessage },\r\n { provide: \"NG_SELECT_MULTIPLE_TOOLTIP_MESSAGE\", useValue: ngSelectMultiple.tooltipMessage },\r\n { provide: \"NG_SELECT_MULTIPLE_OPEN_WHEN_FOCUS\", useValue: ngSelectMultiple.openWhenFocus },\r\n { provide: \"NG_SELECT_MULTIPLE_SUBMITTED\", useValue: ngSelectMultiple.submitted },\r\n { provide: \"NG_SELECT_MULTIPLE_VALIDATOR_ALERT\", useValue: ngSelectMultiple.validatorAlert },\r\n { provide: \"NG_SELECT_MULTIPLE_APPEND_TO\", useValue: ngSelectMultiple.appendTo },\r\n { provide: \"NG_SELECT_MULTIPLE_LOADING_TEXT\", useValue: ngSelectMultiple.loadingText },\r\n { provide: \"NG_SELECT_MULTIPLE_MARK_FIRST\", useValue: ngSelectMultiple.markFirst },\r\n { provide: \"NG_SELECT_MULTIPLE_VIRTUAL_SCROLL\", useValue: ngSelectMultiple.virtualScroll },\r\n NgSelectMultipleService\r\n ],\r\n };\r\n }\r\n}\r\n","import { ChangeDetectorRef, Input, Component, OnInit } from '@angular/core';\r\nimport { GridApi } from 'ag-grid-community';\r\n\r\nlet nextId = 0;\r\n\r\n@Component({\r\n\tselector: 'sc-ag-grid-pagination',\r\n\ttemplateUrl: './sc-ag-grid-pagination.component.html',\r\n\tstyleUrls: ['./sc-ag-grid-pagination.component.scss'],\r\n\thost: {\r\n\t\t'[id]': 'idScAgGridPaginationComponent',\r\n\t},\r\n})\r\nexport class ScAgGridPaginationComponent implements OnInit {\r\n\tidScAgGridPaginationComponent = `sc-ag-grid-paginatio-${++nextId}`;\r\n\r\n\t/**\r\n\t * @description Tamaño de página para la paginación\r\n\t * @default 15\r\n\t * @type number\r\n\t */\r\n\t@Input() paginationPageSize = 15;\r\n\t\r\n\t/**\r\n\t * @description API de la grilla AG Grid\r\n\t * @default undefined\r\n\t * @type GridApi\r\n\t */\r\n\t@Input() gridApi?: GridApi;\r\n\t\r\n\t/**\r\n\t * @description Opciones de tamaño de página disponibles\r\n\t * @default \"[5, 10, 15, 20, 25]\"\r\n\t * @type number[]\r\n\t */\r\n\t@Input() pageSizeOptions = [5, 10, 15, 20, 25];\r\n\r\n\t_pageFrom!: number;\r\n\t_pageUp!: number;\r\n\t_pageFound!: boolean;\r\n\tpages: number[] = [];\r\n\r\n\tconstructor(private readonly _changeRef: ChangeDetectorRef) {}\r\n\r\n\tngOnInit(): void {\r\n\t\tif (this.pageSizeOptions && this.pageSizeOptions.length > 0) {\r\n\t\t\t// establecer la página si la matriz de elementos no está vacía\r\n\t\t\tif (this.pageSizeOptions.filter((p) => p === this.paginationPageSize).length == 0) {\r\n\t\t\t\tthis.paginationPageSize = this.pageSizeOptions[0];\r\n\t\t\t}\r\n\t\t} else {\r\n\t\t\tthis.pageSizeOptions = [5, 10, 15, 20, 25];\r\n\t\t\tthis.paginationPageSize = this.pageSizeOptions[0];\r\n\t\t}\r\n\r\n\t\tthis.onPaginationChanged();\r\n\t}\r\n\r\n\tonPaginationGoToFirstPage(): void {\r\n\t\tthis.gridApi?.paginationGoToFirstPage();\r\n\t}\r\n\r\n\tonPaginationGoToPreviousPage(): void {\r\n\t\tthis.gridApi?.paginationGoToPreviousPage();\r\n\t}\r\n\r\n\tonPaginationGoToPage(page: number): void {\r\n\t\tthis.gridApi?.paginationGoToPage(page);\r\n\t}\r\n\r\n\tonPaginationGoToNextPage(): void {\r\n\t\tthis.gridApi?.paginationGoToNextPage();\r\n\t}\r\n\r\n\tonPaginationGoToLastPage(): void {\r\n\t\tthis.gridApi?.paginationGoToLastPage();\r\n\t}\r\n\r\n\tonPageSizeChanged(evt: any): void {\r\n\t\tthis.gridApi?.paginationSetPageSize(Number(evt.target.value));\r\n\t}\r\n\r\n\tonPaginationChanged(): void {\r\n\t\tif (!this.gridApi) return;\r\n\r\n\t\tif (this.gridApi.paginationGetRowCount() > -1) {\r\n\t\t\tthis._pageFound = this.gridApi.paginationGetTotalPages() < 1;\r\n\t\t\tthis._pageFrom = Math.min(\r\n\t\t\t\tMath.max(1, this.gridApi.paginationGetCurrentPage() - 2),\r\n\t\t\t\tthis.gridApi.paginationGetTotalPages() - 2\r\n\t\t\t);\r\n\t\t\tthis._pageUp = Math.max(\r\n\t\t\t\tMath.min(\r\n\t\t\t\t\tthis.gridApi.paginationGetTotalPages(),\r\n\t\t\t\t\tthis.gridApi.paginationGetCurrentPage() + 2\r\n\t\t\t\t),\r\n\t\t\t\t5\r\n\t\t\t);\r\n\t\t\tif (this.gridApi.paginationGetTotalPages() > 5) {\r\n\t\t\t\tthis.pages = new Array(this._pageUp - this._pageFrom + 1)\r\n\t\t\t\t\t.fill(0)\r\n\t\t\t\t\t.map((_, index) => index + this._pageFrom);\r\n\t\t\t} else {\r\n\t\t\t\tthis.pages = new Array(this.gridApi.paginationGetTotalPages())\r\n\t\t\t\t\t.fill(0)\r\n\t\t\t\t\t.map((_, index) => index + 1);\r\n\t\t\t}\r\n\r\n\t\t\tthis._changeRef.markForCheck();\r\n\t\t}\r\n\t}\r\n}\r\n","<div\r\n class=\"d-flex mt-2 justify-content-center justify-content-sm-between sc-ag-grid__pagination\"\r\n>\r\n <nav class=\"d-flex flex-wrap\" aria-label=\"AgGrid pagination\">\r\n <ul class=\"pagination p-0 m-0\">\r\n <li\r\n class=\"page-item\"\r\n [ngClass]=\"\r\n gridApi?.paginationGetCurrentPage() == 0 || pages.length == 0\r\n ? 'disabled'\r\n : ''\r\n \"\r\n >\r\n <a class=\"page-link\" (click)=\"onPaginationGoToFirstPage()\"\r\n ><em class=\"fa fa-angle-double-left\"></em\r\n ></a>\r\n </li>\r\n <li\r\n class=\"page-item\"\r\n [ngClass]=\"\r\n gridApi?.paginationGetCurrentPage() == 0 || pages.length == 0\r\n ? 'disabled'\r\n : ''\r\n \"\r\n >\r\n <a class=\"page-link\" (click)=\"onPaginationGoToPreviousPage()\"\r\n ><em class=\"fa fa-angle-left\"></em\r\n ></a>\r\n </li>\r\n\r\n <li\r\n class=\"page-item\"\r\n *ngFor=\"let page of pages\"\r\n [ngClass]=\"\r\n page - 1 == gridApi?.paginationGetCurrentPage() ? 'active' : ''\r\n \"\r\n >\r\n <span\r\n class=\"page-link\"\r\n *ngIf=\"page - 1 == gridApi?.paginationGetCurrentPage()\"\r\n >\r\n {{ page }}\r\n </span>\r\n <a\r\n class=\"page-link\"\r\n *ngIf=\"page - 1 != gridApi?.paginationGetCurrentPage()\"\r\n (click)=\"onPaginationGoToPage(page - 1)\"\r\n >{{ page }}</a\r\n >\r\n </li>\r\n\r\n <li\r\n class=\"page-item\"\r\n [ngClass]=\"\r\n gridApi?.paginationGetCurrentPage() ==\r\n (gridApi?.paginationGetTotalPages() || 1) - 1 || pages.length == 0\r\n ? 'disabled'\r\n : ''\r\n \"\r\n >\r\n <a class=\"page-link\" (click)=\"onPaginationGoToNextPage()\"\r\n ><em class=\"fa fa-angle-right\"></em\r\n ></a>\r\n </li>\r\n <li\r\n class=\"page-item\"\r\n [ngClass]=\"\r\n gridApi?.paginationGetCurrentPage() ==\r\n (gridApi?.paginationGetTotalPages() || 1) - 1 || pages.length == 0\r\n ? 'disabled'\r\n : ''\r\n \"\r\n >\r\n <a class=\"page-link\" (click)=\"onPaginationGoToLastPage()\"\r\n ><em class=\"fa fa-angle-double-right\"></em\r\n ></a>\r\n </li>\r\n </ul>\r\n <div class=\"d-flex mx-2 align-items-center input-group-sm\">\r\n Mostrar\r\n <select\r\n [(ngModel)]=\"paginationPageSize\"\r\n (change)=\"onPageSizeChanged($event)\"\r\n class=\"custom-select mx-2\"\r\n >\r\n <option *ngFor=\"let option of pageSizeOptions\" [value]=\"option\">\r\n {{ option }}\r\n </option>\r\n </select>\r\n registros\r\n </div>\r\n </nav>\r\n\r\n <div class=\"d-flex justify-content-end mt-2 mt-sm-0\">\r\n <div\r\n class=\"sc-ag-grid__pagination--total d-flex align-items-center flex-nowrap\"\r\n >\r\n <span class=\"value\">{{ gridApi?.paginationGetRowCount() }}&nbsp;</span>\r\n <span class=\"label\">{{\r\n gridApi?.paginationGetRowCount() ?? 0 > 1 ? \"Registros.\" : \"Registro.\"\r\n }}</span>\r\n <span class=\"label\">&nbsp;P&aacute;gina&nbsp;</span>\r\n <span class=\"value\">\r\n {{ (gridApi?.paginationGetCurrentPage() ?? 0) + 1 }}\r\n </span>\r\n <span class=\"label\">&nbsp;de&nbsp;</span>\r\n <span class=\"value\">\r\n {{\r\n gridApi?.paginationGetTotalPages() == 0\r\n ? 1\r\n : gridApi?.paginationGetTotalPages() ?? 0\r\n }}\r\n </span>\r\n </div>\r\n </div>\r\n</div>\r\n","import { Component, output } from '@angular/core';\r\nimport { FormControl } from '@angular/forms';\r\nimport { Subscription } from 'rxjs';\r\n\r\n@Component({\r\n selector: 'input-search',\r\n templateUrl: './input-search.component.html',\r\n styleUrl: './input-search.component.scss'\r\n})\r\nexport class InputSearchComponent {\r\n onChange = output<any>();\r\n _subscription!: Subscription;\r\n formControl = new FormControl('');\r\n\r\n constructor(){\r\n this._subscription = this.formControl.valueChanges.subscribe(\r\n (value) => {\r\n this.onChange.emit(value?.toString().trim());\r\n }\r\n );\r\n }\r\n}\r\n","<div class=\"input-search\">\r\n <input\r\n class=\"input form-control form-control-sm\"\r\n [class.input-border]=\"true\"\r\n type=\"text\"\r\n [placeholder]=\"'Buscar...'\"\r\n [formControl]=\"formControl\"/>\r\n <span class=\"clear\">\r\n <i class=\"fas fa-search\"></i>\r\n </span>\r\n</div>","import { ChangeDetectorRef, Component, ElementRef, EventEmitter, Inject, Input, OnInit, Output, ViewChild } from '@angular/core';\r\nimport { FormControl } from '@angular/forms';\r\nimport { MAT_DIALOG_DATA, MatDialogRef } from '@angular/material/dialog';\r\nimport { AgGridAngular } from 'ag-grid-angular';\r\nimport { GridApi, IsRowSelectable } from 'ag-grid-community';\r\nimport { Observable, Subscription, debounceTime, of } from 'rxjs';\r\nimport { ScAgGridPaginationComponent } from '../sc-ag-grid/sc-ag-grid-pagination/sc-ag-grid-pagination.component';\r\n\r\n@Component({\r\n selector: 'lib-dialog-ag-grid-search',\r\n templateUrl: './dialog-ag-grid-search.component.html',\r\n styleUrl: './dialog-ag-grid-search.component.scss'\r\n})\r\nexport class DialogAgGridSearchComponent implements OnInit {\r\n\r\n @ViewChild('btnAceptar') btnAceptar!: ElementRef;\r\n @ViewChild('btnCancelar') btnCancelar!: ElementRef;\r\n @ViewChild('elTxtBuscar') elTxtBuscar!: ElementRef;\r\n @ViewChild('agGrid') agGrid?: AgGridAngular;\r\n\r\n\r\n\r\n @Output() onSelectRow: EventEmitter<any> = new EventEmitter();\r\n\r\n /**\r\n * @description Datos que se mostrarán en la grilla\r\n * @default of([])\r\n * @type Observable<any[]>\r\n */\r\n @Input() rowData: Observable<any[]> = of([]);\r\n \r\n /**\r\n * @description Definición de columnas para la grilla\r\n * @default []\r\n * @type any[]\r\n */\r\n @Input() columnDefs: any[] = [];\r\n columnDefsActions: any[] = [];\r\n \r\n /**\r\n * @description Título del diálogo\r\n * @default ''\r\n * @type string\r\n */\r\n @Input() tittle = '';\r\n\r\n txtBuscar = new FormControl('');\r\n $subscriptiontxtBuscar: Subscription;\r\n\r\n /** BEGIN: Config Ag-Grid */\r\n /**\r\n * @description Tipo de selección de filas ('single' o 'multiple')\r\n * @default 'single'\r\n * @type string\r\n */\r\n @Input() rowSelection = 'single';\r\n\r\n _context = { componentParent: this as any };\r\n isRowSelectable: IsRowSelectable = () => true;\r\n gridApi!: GridApi;\r\n rowDataSubscription!: Subscription;\r\n disableAceptar = true;\r\n\r\n overlayNoRowsTemplate =\r\n `<span class=\"ag-overlay-loading-center border-0 bg-transparent shadow-none\">\r\n\t\tNo se encontraron registros...\r\n\t\t</span>`;\r\n overlayLoadingTemplate =\r\n `<span class=\"ag-overlay-loading-top d-flex align-items-center border-0 bg-white shadow p-4 text-info\" style=\"height: 20px;\">\r\n\t\t<img src=\"assets/media-demo/loading.gif\" height=\"20\" width=\"25\" class=\"mr-2\">\r\n\t\t<strong>Cargando registros</strong>\r\n\t\t</span>`;\r\n /** END: Config Ag-Grid */\r\n /** BEGIN: Pagination */\r\n\r\n @ViewChild('lbPageSize') elbPageSize!: ElementRef;\r\n @ViewChild('lbCurrentPage') elbCurrentPage!: ElementRef;\r\n @ViewChild('lbTotalPages') elbTotalPages!: ElementRef;\r\n @ViewChild('agGridPagination') \r\n private _scAgGridPagination?: ScAgGridPaginationComponent;\r\n\r\n /**\r\n * @description Habilita/deshabilita la paginación\r\n * @default true\r\n * @type boolean\r\n */\r\n @Input() pagination = true;\r\n paginationPageSize = 10;\r\n\r\n pageFound!: boolean;\r\n paginas: number[] = [];\r\n desde!: number;\r\n hasta!: number;\r\n /** END: Pagination */\r\n constructor(\r\n private dialogRef: MatDialogRef<DialogAgGridSearchComponent>,\r\n private cdrf: ChangeDetectorRef,\r\n @Inject(MAT_DIALOG_DATA) data: any\r\n ) {\r\n\r\n this.$subscriptiontxtBuscar = this.txtBuscar.valueChanges.pipe(\r\n debounceTime(350)\r\n ).subscribe(data => {\r\n this.gridApi.forEachNodeAfterFilter((node: any) => node.setSelected(false))\r\n if (data) this.gridApi.setQuickFilter(data);\r\n });\r\n }\r\n\r\n ngOnInit () {\r\n this.dialogRef.keydownEvents().subscribe((event: KeyboardEvent) => {\r\n event.stopPropagation();\r\n if (event.key === 'Escape') {\r\n this.closeDialog();\r\n }\r\n });\r\n }\r\n selectFirstSearch () {\r\n if (!this.gridApi) {\r\n return;\r\n }\r\n if (this.columnDefsActions.length === 1) {\r\n return;\r\n }\r\n let rowData = [];\r\n this.gridApi.forEachNode((node: any) => rowData.push(node.data));\r\n if (rowData.length === 0) {\r\n this.btnAceptar.nativeElement.focus();\r\n }\r\n // return rowData;\r\n this.gridApi.forEachNodeAfterFilter((node: any) => node.rowIndex ? 0 : node.setSelected(true))\r\n this.gridApi.setFocusedCell(0, this.columnDefsActions[1].field);\r\n\r\n }\r\n\r\n focusLastRow () {\r\n let lastIndex = -1;\r\n this.gridApi.forEachNodeAfterFilter((node: any) => {\r\n if (node.rowIndex > lastIndex) {\r\n lastIndex = node.rowIndex;\r\n }\r\n });\r\n if (lastIndex === -1) {\r\n return;\r\n }\r\n this.gridApi.setFocusedCell(lastIndex, this.columnDefsActions[1].field);\r\n }\r\n onCellKeyPress (e: any) {\r\n let keyPressed = e.event.key;\r\n if (keyPressed === 'Enter') {\r\n let rowNode = e.node;\r\n if (rowNode.selected) {\r\n this.btnAceptar.nativeElement.focus();\r\n } else {\r\n rowNode.setSelected(true);\r\n }\r\n }\r\n }\r\n guardar () {\r\n this.dialogRef.close(this.gridApi.getSelectedRows());\r\n }\r\n closeDialog () {\r\n this.dialogRef.close([]);\r\n }\r\n /** BEGIN: Events Config Ag-Grid */\r\n onGridReady (gridApi: GridApi) {\r\n this.columnDefsActions = this.columnDefs.concat([\r\n {\r\n headerName: '',\r\n field: '',\r\n width: 40,\r\n minWidth: 40,\r\n maxWidth: 40,\r\n checkboxSelection (params: any) {\r\n return params.columnApi.getRowGroupColumns().length === 0;\r\n },\r\n pinned: 'left',\r\n sortable: false,\r\n lockPosition: true\r\n }\r\n ]);\r\n\r\n this.gridApi = gridApi;\r\n this.initRowData();\r\n }\r\n /** END: Events Config Ag-Grid */\r\n /** BEGIN: Events de desplazamiento en ag-grid */\r\n onPaginationChanged () {\r\n if (!this.gridApi) {\r\n return;\r\n }\r\n if (this.pagination && this.gridApi.paginationGetRowCount() > -1) {\r\n this.elbPageSize.nativeElement.innerHTML = this.gridApi.paginationGetRowCount();\r\n this.elbCurrentPage.nativeElement.innerHTML = this.gridApi.paginationGetCurrentPage() + 1;\r\n this.elbTotalPages.nativeElement.innerHTML = this.gridApi.paginationGetTotalPages();\r\n // this.elbtLast.nativeElement.setAttribute('disabled', !this.gridApi.paginationIsLastPageFound());\r\n this.pageFound = this.gridApi.paginationGetTotalPages() < 1;\r\n this.desde = Math.min(Math.max(1, this.gridApi.paginationGetCurrentPage() - 2), this.gridApi.paginationGetTotalPages() - 2);\r\n this.hasta = Math.max(Math.min(this.gridApi.paginationGetTotalPages(), this.gridApi.paginationGetCurrentPage() + 2), 5);\r\n if (this.gridApi.paginationGetTotalPages() > 5) {\r\n this.paginas = new Array(this.hasta - this.desde + 1).fill(0).map((valor, indice) => indice + this.desde);\r\n } else {\r\n this.paginas = new Array(this.gridApi.paginationGetTotalPages()).fill(0).map((valor, indice) => indice + 1);\r\n }\r\n\r\n }\r\n }\r\n onBtFirst () {\r\n this.gridApi.paginationGoToFirstPage();\r\n this.autoSizeColumns();\r\n }\r\n onBtPrevious () {\r\n this.gridApi.paginationGoToPreviousPage();\r\n this.autoSizeColumns();\r\n }\r\n onBtNext () {\r\n this.gridApi.paginationGoToNextPage();\r\n this.autoSizeColumns();\r\n }\r\n onBtLast () {\r\n this.gridApi.paginationGoToLastPage();\r\n this.autoSizeColumns();\r\n }\r\n\r\n onPageSizeChanged (evt: any) {\r\n this.gridApi.paginationSetPageSize(Number(evt.target.value));\r\n }\r\n onGoToPage (page: any) {\r\n this.gridApi.paginationGoToPage(page);\r\n }\r\n\r\n /** END: Events de desplazamiento en ag-grid */\r\n /** BEGIN: UTILS */\r\n initRowData () {\r\n if (this.rowDataSubscription) {\r\n this.rowDataSubscription.unsubscribe();\r\n this.gridApi.setGridOption(\"rowData\", []);\r\n this.gridApi.showLoadingOverlay();\r\n }\r\n this.rowDataSubscription = this.rowData.subscribe((data) => {\r\n this.gridApi.setGridOption(\"rowData\", data);\r\n if (this.columnDefs.length === 0 && data.length > 0) {\r\n let columnDefs: any = [];\r\n let keys = Object.keys(data[0]);\r\n keys.forEach(element => {\r\n if (typeof data[0][element] !== 'object') {\r\n columnDefs.push({ field: element, headerName: element.toUpperCase() });\r\n }\r\n });\r\n this.columnDefsActions = columnDefs.concat([\r\n {\r\n headerName: '',\r\n field: '',\r\n width: 40,\r\n minWidth: 40,\r\n maxWidth: 40,\r\n checkboxSelection (params: any) {\r\n return params.columnApi.getRowGroupColumns().length === 0;\r\n },\r\n pinned: 'left',\r\n sortable: false,\r\n lockPosition: true\r\n }\r\n ]);\r\n }\r\n\r\n this.gridApi.sizeColumnsToFit();\r\n const colIds = this.gridApi\r\n .getAllDisplayedColumns()\r\n .map((col: any) => col.getColId());\r\n this.gridApi.autoSizeColumns(colIds);\r\n this.cdrf.detectChanges();\r\n });\r\n }\r\n autoSizeColumns () {\r\n const colIds = this.gridApi\r\n .getAllDisplayedColumns()\r\n .map((col: any) => col.getColId());\r\n this.gridApi.autoSizeColumns(colIds);\r\n }\r\n /** END: UTILS */\r\n get ngStyleContainer () {\r\n return {\r\n width: \"100%\",\r\n height: \"25em\",\r\n };\r\n }\r\n\r\n get ngStyleAgGrid () {\r\n return {\r\n width: \"100%\",\r\n height: \"103%\",\r\n };\r\n }\r\n\r\n onSelectedChange () {\r\n if (this.gridApi != null && this.gridApi.getSelectedRows().length > 0) {\r\n this.disableAceptar = false\r\n } else {\r\n this.disableAceptar = true\r\n }\r\n }\r\n\r\n paginationChanged(): void {\r\n if (this._scAgGridPagination) this._scAgGridPagination.onPaginationChanged();\r\n }\r\n\r\n changeFilter(value: string) {\r\n this.gridApi?.setGridOption(\"quickFilterText\", value);\r\n }\r\n}\r\n","<div class=\"container w-100\">\r\n <div class=\"row\">\r\n <div class=\"sumax-dialog-head\">\r\n <div style=\"display: flex; align-items: center; gap: 0.5rem\">\r\n <div class=\"mr-3\"><i class=\"fa fa-list\" style=\"font-size: 1.25em !important; color: #646c9a\"></i></div>\r\n <h3\r\n class=\"sumax-dialog-head-title py-1 mr-1\"\r\n style=\"line-height: 1.2; font-family: Soho Gothic Pro; -ms-text-size-adjust: 100%; -webkit-font-smoothing: antialiased\">\r\n <strong>{{ tittle }}</strong>\r\n </h3>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"row mx-1\">\r\n <div class=\"col-12\">\r\n <div class=\"row\">\r\n <div class=\"col-5 my-2\">\r\n <input-search (onChange)=\"changeFilter($event)\"></input-search>\r\n </div>\r\n </div>\r\n <div class=\"row\">\r\n <div class=\"col-12\" [ngStyle]=\"ngStyleContainer\">\r\n <ag-grid-angular\r\n #agGrid\r\n class=\"ag-theme-balham\"\r\n [ngStyle]=\"ngStyleAgGrid\"\r\n [columnDefs]=\"columnDefs\"\r\n [context]=\"_context\"\r\n [rowSelection]=\"'single'\"\r\n [isRowSelectable]=\"isRowSelectable\"\r\n [rowDragManaged]=\"false\"\r\n [domLayout]=\"'normal'\"\r\n [overlayNoRowsTemplate]=\"overlayNoRowsTemplate\"\r\n [overlayLoadingTemplate]=\"overlayLoadingTemplate\"\r\n [suppressPropertyNamesCheck]=\"true\"\r\n [paginationPageSize]=\"pagination ? paginationPageSize : undefined\"\r\n [pagination]=\"pagination\"\r\n [suppressPaginationPanel]=\"true\"\r\n (gridReady)=\"onGridReady($event.api)\"\r\n (selectionChanged)=\"onSelectedChange()\"\r\n (paginationChanged)=\"paginationChanged()\"\r\n [enableCellTextSelection]=\"true\"\r\n oncontextmenu=\"return false;\">\r\n </ag-grid-angular>\r\n </div>\r\n </div>\r\n <div class=\"row\">\r\n <div class=\"col-12 py-2\">\r\n <sc-ag-grid-pagination\r\n #agGridPagination\r\n [gridApi]=\"gridApi\"\r\n [paginationPageSize]=\"paginationPageSize\"\r\n [pageSizeOptions]=\"[5, 10, 15, 20, 25]\"></sc-ag-grid-pagination>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"row\">\r\n <div\r\n class=\"row pt-3 pb-3 w-100\"\r\n style=\"border-top: 1px solid #ebedf2; border-bottom-left-radius: 4px; border-bottom-right-radius: 4px\">\r\n <div class=\"col-lg-12 d-flex justify-content-end my-auto gap-1\">\r\n <button\r\n style=\"width: 110px\"\r\n #btnAceptar\r\n (click)=\"guardar()\"\r\n [disabled]=\"disableAceptar\"\r\n (keyup.ArrowUp)=\"focusLastRow()\"\r\n (keyup.ArrowRight)=\"btnCancelar.focus()\"\r\n type=\"button\"\r\n class=\"btn btn-sm btn-success mr-3\">\r\n Aceptar\r\n </button>\r\n <button\r\n style=\"width: 110px\"\r\n #btnCancelar\r\n (click)=\"closeDialog()\"\r\n (keyup.ArrowUp)=\"focusLastRow()\"\r\n (keyup.ArrowLeft)=\"btnAceptar.focus()\"\r\n type=\"button\"\r\n class=\"btn btn-sm btn-danger\">\r\n Cancelar\r\n </button>\r\n </div>\r\n </div>\r\n </div>\r\n</div>\r\n","\r\nexport class ValidateUtil {\r\n\r\n\t// messageUtilService = new MessageUtilService();\r\n\r\n\trequerido(obj: any, nombre: string) {\r\n\t\tif (typeof obj == \"undefined\" || obj == \"Invalid date\" || obj == null) {\r\n\t\t\tthrow nombre;\r\n\t\t}\r\n\t}\r\n\tisUndefinedOrNull(obj: any) : boolean{\r\n\t\tif (typeof obj == \"undefined\" || obj == \"Invalid date\" || obj == null) {\r\n\t\t\treturn true;\r\n\t\t}\r\n\r\n\t\tif(typeof obj == \"string\" && obj ==''){\r\n\t\t\treturn true;\r\n\t\t}\r\n\r\n\t\treturn false;\r\n\t}\r\n}\r\n","import { Inject, Injectable } from \"@angular/core\";\r\n\r\n@Injectable()\r\nexport class NgSelectSimpleService {\r\n constructor(\r\n @Inject(\"NG_SELECT_SIMPLE_VALIDATOR_MESSAGE\") private validatorMessage: boolean = false,\r\n @Inject(\"NG_SELECT_SIMPLE_TOOLTIP_MESSAGE\") private tooltipMessage: boolean = true,\r\n @Inject(\"NG_SELECT_SIMPLE_OPEN_WHEN_FOCUS\") private openWhenFocus: boolean = false,\r\n @Inject(\"NG_SELECT_SIMPLE_SEARCH_BY\") private searchBy: string = \"value\",\r\n @Inject(\"NG_SELECT_SIMPLE_MARK_FIRST_ITEM\") private markFirstItem: boolean = false,\r\n @Inject(\"NG_SELECT_SIMPLE_SUBMITTED\") private submitted: boolean = true,\r\n @Inject(\"NG_SELECT_SIMPLE_SEARCHABLE\") private searchable: boolean = true,\r\n @Inject(\"NG_SELECT_SIMPLE_VALIDATOR_ALERT\") private validatorAlert: boolean = false,\r\n @Inject(\"NG_SELECT_SIMPLE_UPPER_CASE\") private upperCase: boolean = false,\r\n @Inject(\"NG_SELECT_SIMPLE_APPEND_TO\") private appendTo: string = \"body\",\r\n @Inject(\"NG_SELECT_SIMPLE_LOADING_TEXT\") private loadingText: string = \"Cargando...\",\r\n @Inject(\"NG_SELECT_SIMPLE_CLEAR_ALL_TEXT\") private clearAllText: string = \"Limpiar\",\r\n @Inject(\"NG_SELECT_SIMPLE_MARK_FIRST\") private markFirst: boolean = true,\r\n @Inject(\"NG_SELECT_SIMPLE_CLEARABLE\") private clearable: boolean = true,\r\n @Inject(\"NG_SELECT_SIMPLE_CLEAR_ON_BACKSPACE\") private clearOnBackspace: boolean = false,\r\n @Inject(\"NG_SELECT_SIMPLE_VIRTUAL_SCROLL\") private virtualScroll: boolean = true,\r\n @Inject(\"NG_SELECT_SIMPLE_OPEN_ON_ENTER\") private openOnEnter: boolean = false,\r\n @Inject(\"NG_SELECT_SIMPLE_NOT_FOUND_TEXT\") private notFoundText: string = \"No se encontraron resultados\"\r\n ) {}\r\n\r\n public getValidatorMessage(): boolean {\r\n return this.validatorMessage;\r\n }\r\n public getTooltipMessage(): boolean {\r\n return this.tooltipMessage;\r\n }\r\n public getOpenWhenFocus(): boolean {\r\n return this.openWhenFocus;\r\n }\r\n public getSearchBy(): string {\r\n return this.searchBy;\r\n }\r\n public getMarkFirstItem(): boolean {\r\n return this.markFirstItem;\r\n }\r\n public getSubmitted(): boolean {\r\n return this.submitted;\r\n }\r\n public getSearchable(): boolean {\r\n return this.searchable;\r\n }\r\n public getValidatorAlert(): boolean {\r\n return this.validatorAlert;\r\n }\r\n public getUpperCase(): boolean {\r\n return this.upperCase;\r\n }\r\n public getAppendTo(): string {\r\n return this.appendTo;\r\n }\r\n public getLoadingText(): string {\r\n return this.loadingText;\r\n }\r\n public getClearAllText(): string {\r\n return this.clearAllText;\r\n }\r\n public getMarkFirst(): boolean {\r\n return this.markFirst;\r\n }\r\n public getClearable(): boolean {\r\n return this.clearable;\r\n }\r\n public getClearOnBackspace(): boolean {\r\n return this.clearOnBackspace;\r\n }\r\n public getVirtualScroll(): boolean {\r\n return this.virtualScroll;\r\n }\r\n public getOpenOnEnter(): boolean {\r\n return this.openOnEnter;\r\n }\r\n public getNotFoundText(): string {\r\n return this.notFoundText;\r\n }\r\n}\r\n\r\n// @Input() validatorMessage: boolean = false;\r\n// @Input() tooltipMessage: boolean = true;\r\n// @Input() openWhenFocus: boolean = false;\r\n// @Input() searchBy: string = \"value\";\r\n// @Input() markFirstItem: boolean = false;\r\n// @Input() submitted: boolean = true;\r\n// @Input() searchable: boolean = true;\r\n// @Input() validatorAlert: boolean = false;\r\n// @Input() upperCase = false;\r\n// @Input() appendTo: any = \"body\"\r\n// @Input() loadingText: string = \"Cargando...\";\r\n// @Input() clearAllText: string = \"Limpiar\";\r\n// @Input() markFirst: boolean = true;\r\n// @Input() clearable: boolean = true;\r\n// @Input() clearOnBackspace: boolean = false;\r\n// @Input() virtualScroll: boolean = true;\r\n// @Input() openOnEnter: boolean = false;\r\n","import {\r\n Component,\r\n ElementRef,\r\n EventEmitter,\r\n forwardRef,\r\n Input,\r\n OnChanges,\r\n OnDestroy,\r\n OnInit,\r\n Output,\r\n SimpleChanges,\r\n TemplateRef,\r\n ViewChild,\r\n ViewEncapsulation,\r\n} from \"@angular/core\";\r\nimport { AbstractControl, NG_VALIDATORS, NG_VALUE_ACCESSOR, ValidationErrors } from \"@angular/forms\";\r\nimport { MatDialog } from \"@angular/material/dialog\";\r\nimport { NgSelectComponent } from \"@ng-select/ng-select\";\r\nimport { Observable, of, Subscription } from \"rxjs\";\r\nimport { shareReplay } from \"rxjs/operators\";\r\nimport { DialogAgGridSearchComponent } from '../dialog-ag-grid-search/dialog-ag-grid-search.component';\r\nimport { MessageUtilService } from \"../utils/message-util.service\";\r\nimport { SharedComponentsUtil } from \"../utils/SharedComponentsUtil\";\r\nimport { ValidateUtil } from \"../utils/ValidateUtil\";\r\nimport { NgSelectSimpleService } from \"./ng-select-simple.service\";\r\n\r\n\r\nexport class SearchParams {\r\n constructor(\r\n public columnDefs: ColumnDefs[] = [],\r\n public title: string = \"\",\r\n public width: string = \"990px\",\r\n public rowData: Observable<any[]> = of([])\r\n ) { }\r\n}\r\n\r\nexport class ColumnDefs {\r\n headerName?: string;\r\n field?: string;\r\n width?: string;\r\n cellRenderer?: any;\r\n valueGetter?: (field: any) => string | string;\r\n sortable?: boolean;\r\n resizable?: boolean;\r\n cellClass?: string[];\r\n cellStyle?: {};\r\n valueFormatter?: any;\r\n pinned?: string;\r\n sort?: string;\r\n}\r\n\r\n@Component({\r\n selector: 'ng-select-simple',\r\n templateUrl: './ng-select-simple.component.html',\r\n styleUrls: ['./ng-select-simple.component.scss'],\r\n providers: [\r\n {\r\n provide: NG_VALUE_ACCESSOR,\r\n useExisting: forwardRef(() => NgSelectSimpleComponent),\r\n multi: true,\r\n },\r\n {\r\n provide: NG_VALIDATORS,\r\n useExisting: forwardRef(() => NgSelectSimpleComponent),\r\n multi: true,\r\n },\r\n ],\r\n encapsulation: ViewEncapsulation.None,\r\n})\r\nexport class NgSelectSimpleComponent implements OnInit, OnChanges, OnDestroy {\r\n @ViewChild(\"ngSelectSimple\") ngSelectSimple!: NgSelectComponent;\r\n @ViewChild(\"btnSearch\") btnSearch!: ElementRef;\r\n\r\n /**\r\n * @description Controla la visualización del texto superior (label)\r\n * @default true\r\n * @type boolean\r\n */\r\n @Input() showLabel: boolean = true;\r\n \r\n /**\r\n * @description Texto a mostrar como etiqueta del campo\r\n * @default null\r\n * @type any\r\n */\r\n @Input() label: any = null;\r\n \r\n /**\r\n * @description Valor para el atributo autocomplete del input\r\n * @default \"no-autocomplete-ng-select\"\r\n * @type string\r\n */\r\n @Input() autocomplete: string = \"no-autocomplete-ng-select\";\r\n \r\n /**\r\n * @description Referencia al siguiente control para navegación\r\n * @default undefined\r\n * @type any\r\n */\r\n @Input() next: any;\r\n \r\n /**\r\n * @description Referencia al control alternativo cuando el siguiente está deshabilitado\r\n * @default undefined\r\n * @type any\r\n */\r\n @Input() nextIsDisable: any;\r\n \r\n /**\r\n * @description Referencia al control anterior para navegación\r\n * @default undefined\r\n * @type any\r\n */\r\n @Input() back: any;\r\n \r\n /**\r\n * @description Referencia al control alternativo cuando el anterior está deshabilitado\r\n * @default undefined\r\n * @type any\r\n */\r\n @Input() backIsDisable: any;\r\n \r\n /**\r\n * @description Indica si el campo es obligatorio\r\n * @default false\r\n * @type boolean\r\n */\r\n @Input() required: boolean = false;\r\n \r\n /**\r\n * @description Deshabilita el control\r\n * @default false\r\n * @type boolean\r\n */\r\n @Input() disabled: boolean = false;\r\n \r\n /**\r\n * @description Establece el control como solo lectura\r\n * @default false\r\n * @type boolean\r\n */\r\n @Input() readonly: boolean = false;\r\n \r\n /**\r\n * @description Muestra mensajes de validación\r\n * @default false\r\n * @type boolean\r\n */\r\n @Input() validatorMessage: boolean = false;\r\n \r\n /**\r\n * @description Muestra mensajes de ayuda como tooltips\r\n * @default true\r\n * @type boolean\r\n */\r\n @Input() tooltipMessage: boolean = true;\r\n \r\n /**\r\n * @description Abre el selector al recibir el foco\r\n * @default false\r\n * @type boolean\r\n */\r\n @Input() openWhenFocus: boolean = false;\r\n \r\n /**\r\n * @description Campo por el cual se realizará la búsqueda\r\n * @default \"value\"\r\n * @type string\r\n */\r\n @Input() searchBy: string = \"value\";\r\n \r\n /**\r\n * @description Marca el primer elemento automáticamente\r\n * @default false\r\n * @type boolean\r\n */\r\n @Input() markFirstItem: boolean = false;\r\n \r\n /**\r\n * @description Marca automáticamente cuando solo hay un elemento\r\n * @default false\r\n * @type boolean\r\n */\r\n @Input() markWhenHaveOneItem: boolean = false;\r\n \r\n /**\r\n * @description Indica si el formulario ha sido enviado para mostrar validaciones\r\n * @default true\r\n * @type boolean\r\n */\r\n @Input() submitted: boolean = true;\r\n \r\n /**\r\n * @description Clases CSS adicionales para el componente\r\n * @default \"\"\r\n * @type string\r\n */\r\n @Input() setNgClass: string = \"\";\r\n \r\n /**\r\n * @description Habilita la búsqueda en el selector\r\n * @default true\r\n * @type boolean\r\n */\r\n @Input() searchable: boolean = true;\r\n \r\n /**\r\n * @description Muestra alertas de validación\r\n * @default false\r\n * @type boolean\r\n */\r\n @Input() validatorAlert: boolean = false;\r\n \r\n /**\r\n * @description Convierte el texto a mayúsculas\r\n * @default false\r\n * @type boolean\r\n */\r\n @Input() upperCase: boolean = false;\r\n \r\n /**\r\n * @description Plantilla personalizada para la etiqueta\r\n * @default null\r\n * @type TemplateRef<any> | null\r\n */\r\n @Input() templateLabel: TemplateRef<any> | null = null;\r\n \r\n /**\r\n * @description Elemento al que se adjuntará el dropdown\r\n * @default \"body\"\r\n * @type string\r\n */\r\n @Input() appendTo: string = \"body\";\r\n \r\n /**\r\n * @description Lista de elementos para el selector\r\n * @default undefined\r\n * @type Observable<any[]>\r\n */\r\n @Input() items!: Observable<any[]>;\r\n \r\n /**\r\n * @description Indica si está cargando datos\r\n * @default true\r\n * @type boolean\r\n */\r\n @Input() loading: boolean = true;\r\n \r\n /**\r\n * @description Texto a mostrar durante la carga\r\n * @default \"Cargando...\"\r\n * @type string\r\n */\r\n @Input() loadingText: string = \"Cargando...\";\r\n \r\n /**\r\n * @description Texto para el botón de limpiar selección\r\n * @default \"Limpiar\"\r\n * @type string\r\n */\r\n @Input() clearAllText: string = \"Limpiar\";\r\n \r\n /**\r\n * @description Texto a mostrar cuando no hay resultados\r\n * @default \"No se encontraron resultados\"\r\n * @type string\r\n */\r\n @Input() notFoundText: string = \"No se encontraron resultados\";\r\n \r\n /**\r\n * @description Marca el primer elemento de la lista\r\n * @default true\r\n * @type boolean\r\n */\r\n @Input() markFirst: boolean = true;\r\n \r\n /**\r\n * @description Permite limpiar la selección\r\n * @default true\r\n * @type boolean\r\n */\r\n @Input() clearable: boolean = true;\r\n \r\n /**\r\n * @description Limpia la selección al presionar retroceso\r\n * @default false\r\n * @type boolean\r\n */\r\n @Input() clearOnBackspace: boolean = false;\r\n \r\n /**\r\n * @description Habilita el desplazamiento virtual para listas grandes\r\n * @default true\r\n * @type boolean\r\n */\r\n @Input() virtualScroll: boolean = true;\r\n \r\n /**\r\n * @description Abre el selector al presionar Enter\r\n * @default false\r\n * @type boolean\r\n */\r\n @Input() openOnEnter: boolean = false;\r\n \r\n /**\r\n * @description Muestra el botón de actualizar\r\n * @default false\r\n * @type boolean\r\n */\r\n @Input() refresh: boolean = false;\r\n \r\n /**\r\n * @description Deshabilita el botón de actualizar\r\n * @default false\r\n * @type boolean\r\n */\r\n @Input() isRefreshDisabled: boolean = false;\r\n \r\n /**\r\n * @description Muestra el botón de búsqueda\r\n * @default false\r\n * @type boolean\r\n */\r\n @Input() search: boolean = false;\r\n \r\n /**\r\n * @description Muestra el botón de redirección\r\n * @default false\r\n * @type boolean\r\n */\r\n @Input() redirect: boolean = false;\r\n \r\n /**\r\n * @description Parámetros para la búsqueda avanzada\r\n * @default new SearchParams()\r\n * @type SearchParams\r\n */\r\n @Input() searchParams: SearchParams = new SearchParams();\r\n \r\n /**\r\n * @description Habilita información adicional para la etiqueta\r\n * @default false\r\n * @type boolean\r\n */\r\n @Input() labelInfo: boolean = false;\r\n \r\n /**\r\n * @description Texto informativo adicional para la etiqueta\r\n * @default \"\"\r\n * @type string\r\n */\r\n @Input() textLabelInfo: string = \"\";\r\n \r\n /**\r\n * @description URL para redirección\r\n * @default \"\"\r\n * @type string\r\n */\r\n @Input() urlRedirect: string = \"\";\r\n \r\n /**\r\n * @description Título para el botón de redirección\r\n * @default \"\"\r\n * @type string\r\n */\r\n @Input() titleRedirect: string = \"\";\r\n \r\n /**\r\n * @description Deshabilita el botón de redirección\r\n * @default false\r\n * @type boolean\r\n */\r\n @Input() isRedirectDisabled: boolean = false;\r\n\r\n @Output() onNext: EventEmitter<any> = new EventEmitter();\r\n @Output() onBack: EventEmitter<any> = new EventEmitter();\r\n @Output() change: EventEmitter<any> = new EventEmitter();\r\n @Output() blur: EventEmitter<any> = new EventEmitter();\r\n @Output() onfocus: EventEmitter<any> = new EventEmitter();\r\n @Output() onrefresh: EventEmitter<any> = new EventEmitter();\r\n @Output() onsearch: EventEmitter<any> = new EventEmitter();\r\n validateUtil = new ValidateUtil();\r\n sharedComponentsUtil = new SharedComponentsUtil();\r\n\r\n allItems = [];\r\n _value: any;\r\n controls: any;\r\n\r\n private subscriptions: Subscription[] = [];\r\n\r\n onChange = (_: any) => { };\r\n\r\n onValidationChange = () => { };\r\n\r\n onTouched = () => { };\r\n\r\n focus = () => {\r\n this.ngSelectSimple.focus();\r\n if (this.openWhenFocus) {\r\n this.ngSelectSimple.open();\r\n }\r\n };\r\n\r\n close = () => {\r\n this.ngSelectSimple.close();\r\n };\r\n\r\n openEnlace (): void {\r\n window.open(this.urlRedirect);\r\n }\r\n\r\n constructor(\r\n private messageUtilService: MessageUtilService,\r\n public dialog: MatDialog,\r\n private ngSelectSimpleService: NgSelectSimpleService\r\n ) {\r\n this.validatorMessage = this.ngSelectSimpleService.getValidatorMessage();\r\n this.tooltipMessage = this.ngSelectSimpleService.getTooltipMessage();\r\n this.openWhenFocus = this.ngSelectSimpleService.getOpenWhenFocus();\r\n this.searchBy = this.ngSelectSimpleService.getSearchBy();\r\n this.markFirstItem = this.ngSelectSimpleService.getMarkFirstItem();\r\n this.submitted = this.ngSelectSimpleService.getSubmitted();\r\n this.searchable = this.ngSelectSimpleService.getSearchable();\r\n this.validatorAlert = this.ngSelectSimpleService.getValidatorAlert();\r\n this.upperCase = this.ngSelectSimpleService.getUpperCase();\r\n this.appendTo = this.ngSelectSimpleService.getAppendTo();\r\n this.loadingText = this.ngSelectSimpleService.getLoadingText();\r\n this.clearAllText = this.ngSelectSimpleService.getClearAllText();\r\n this.markFirst = this.ngSelectSimpleService.getMarkFirst();\r\n this.clearable = this.ngSelectSimpleService.getClearable();\r\n this.clearOnBackspace = this.ngSelectSimpleService.getClearOnBackspace();\r\n this.virtualScroll = this.ngSelectSimpleService.getVirtualScroll();\r\n this.openOnEnter = this.ngSelectSimpleService.getOpenOnEnter();\r\n this.notFoundText = this.ngSelectSimpleService.getNotFoundText();\r\n }\r\n\r\n ngOnDestroy (): void {\r\n this.subscriptions.forEach(s => s.unsubscribe())\r\n }\r\n\r\n ngOnChanges (changes: SimpleChanges): void {\r\n if (changes[\"items\"]) {\r\n this.loading = true;\r\n this.carga();\r\n }\r\n if (changes[\"submitted\"]) {\r\n if (this.controls !== undefined && changes[\"submitted\"].currentValue) {\r\n this.controls.markAsDirty();\r\n this.controls.markAsTouched();\r\n }\r\n }\r\n }\r\n\r\n async carga () {\r\n this.allItems = await new Promise((resolve, reject) => {\r\n this.items = this.items.pipe(shareReplay({ refCount: true }));\r\n const subscription = this.items.subscribe((res: any) => {\r\n resolve(res);\r\n });\r\n this.subscriptions.push(subscription);\r\n });\r\n this.loading = false;\r\n if (this._value != null) {\r\n this.allItems.forEach((element) => {\r\n if (\r\n !this.validateUtil.isUndefinedOrNull(this.getObject(element, this.searchBy)) &&\r\n this.getObject(element, this.searchBy) === this._value\r\n ) {\r\n this._value = element;\r\n this.onChange(this._value);\r\n this.onValidationChange();\r\n this.change.emit(this._value);\r\n }\r\n });\r\n } else {\r\n if (this.markFirstItem && this.allItems.length > 0) {\r\n this._value = this.allItems[0];\r\n this.onChange(this._value);\r\n this.onValidationChange();\r\n this.change.emit(this._value);\r\n }\r\n if (this.markWhenHaveOneItem && this.allItems.length === 1) {\r\n this._value = this.allItems[0];\r\n this.onChange(this._value);\r\n this.onValidationChange();\r\n this.change.emit(this._value);\r\n }\r\n }\r\n }\r\n\r\n ngOnInit () { }\r\n\r\n getObject (obj: any, key: any) {\r\n return key.split(\".\").reduce(function (o: any, x: any) {\r\n return typeof o == \"undefined\" || o === null ? o : o[x];\r\n }, obj);\r\n }\r\n\r\n writeValue (value: any): void {\r\n if (value != null) {\r\n if (this.loading) {\r\n this._value = value;\r\n } else {\r\n this._value = value;\r\n this.allItems.forEach((element) => {\r\n if (\r\n !this.validateUtil.isUndefinedOrNull(this.getObject(element, this.searchBy)) &&\r\n this.getObject(element, this.searchBy) === this._value\r\n ) {\r\n this._value = element;\r\n this.onChange(this._value);\r\n this.onValidationChange();\r\n this.change.emit(this._value);\r\n }\r\n });\r\n }\r\n\r\n //this.searchElement(value);\r\n this.onValidationChange();\r\n } else {\r\n this._value = null;\r\n this.onValidationChange();\r\n }\r\n }\r\n registerOnChange (fn: any): void {\r\n this.onChange = fn;\r\n }\r\n registerOnTouched (fn: any): void {\r\n this.onTouched = fn;\r\n }\r\n setDisabledState (isDisabled: boolean): void {\r\n this.disabled = isDisabled;\r\n }\r\n\r\n validate (control: AbstractControl): ValidationErrors | any {\r\n this.controls = control;\r\n return null;\r\n }\r\n\r\n registerOnValidatorChange?(fn: () => void): void {\r\n this.onValidationChange = fn;\r\n }\r\n\r\n eventChange (e: any) {\r\n this.onChange(e);\r\n this.onValidationChange();\r\n this.change.emit(e);\r\n }\r\n\r\n eventBlur (e: any) {\r\n this.onTouched();\r\n this.onValidationChange();\r\n this.blur.emit(e);\r\n }\r\n\r\n eventFocus (e: any) {\r\n // this.ngSelectSimple.focus();\r\n if (this.openWhenFocus) {\r\n this.ngSelectSimple.open();\r\n }\r\n this.onfocus.emit(e);\r\n }\r\n\r\n eventSearch (e: any) {\r\n this.onsearch.emit(e);\r\n }\r\n\r\n enterKeyUp () {\r\n this.ngSelectSimple.close();\r\n if (!this.disabled) {\r\n let validator = this.sharedComponentsUtil.stopByValidator(this.controls, this.validatorAlert, this.label);\r\n if (validator.error) {\r\n this.messageUtilService.getMessageError(\"000046\", \"Error\", validator.message);\r\n return;\r\n }\r\n }\r\n if (this.next != undefined) {\r\n if (this.next.disabled || this.next.readonly) {\r\n if (this.nextIsDisable != undefined) {\r\n this.nextIsDisable.focus();\r\n }\r\n } else {\r\n this.next.focus();\r\n }\r\n } else {\r\n if (this.nextIsDisable != undefined) {\r\n this.nextIsDisable.focus();\r\n } else {\r\n this.onNext.emit();\r\n }\r\n }\r\n }\r\n\r\n leftKeyUp () {\r\n this.ngSelectSimple.close();\r\n if (!this.disabled) {\r\n let validator = this.sharedComponentsUtil.stopByValidator(this.controls, this.validatorAlert, this.label);\r\n if (validator.error) {\r\n this.messageUtilService.getMessageError(\"000046\", \"Error\", validator.message);\r\n return;\r\n }\r\n }\r\n if (this.back != undefined) {\r\n if (this.back.disabled || this.back.readonly) {\r\n if (this.backIsDisable != undefined) {\r\n this.backIsDisable.focus();\r\n }\r\n } else {\r\n this.back.focus();\r\n }\r\n } else {\r\n if (this.backIsDisable != undefined) {\r\n this.backIsDisable.focus();\r\n } else {\r\n this.onBack.emit();\r\n }\r\n }\r\n }\r\n\r\n clear () {\r\n this._value = null;\r\n this.onChange(this._value);\r\n this.onValidationChange();\r\n this.change.emit(this._value);\r\n }\r\n\r\n onRefresh () {\r\n this.onrefresh.emit();\r\n }\r\n\r\n async onSearch () {\r\n const dialogRef = this.dialog.open(DialogAgGridSearchComponent, {\r\n width: this.searchParams.width,\r\n disableClose: true,\r\n });\r\n let rowdata = await this.searchParams.rowData.toPromise();\r\n let instance = dialogRef.componentInstance;\r\n instance.tittle = this.searchParams.title === \"\" ? this.label : this.searchParams.title;\r\n instance.rowData = rowdata && rowdata.length < 1 ? this.items : this.searchParams.rowData;\r\n instance.columnDefs = this.searchParams.columnDefs;\r\n dialogRef.afterClosed().subscribe((resp: any[]) => {\r\n this.focus();\r\n if (resp.length > 0) {\r\n this._value = resp[0];\r\n this.onChange(this._value);\r\n this.onValidationChange();\r\n this.change.emit(this._value);\r\n }\r\n });\r\n }\r\n\r\n f1KeyUp () {\r\n if (!this.btnSearch) {\r\n return;\r\n }\r\n this.ngSelectSimple.close();\r\n //this.btnSearch.nativeElement.focus();\r\n this.onSearch();\r\n }\r\n}\r\n","<label *ngIf=\"label != null && label != '' && showLabel\" class=\"d-flex sumax-label mb-0 p-0\">\r\n <span *ngIf=\"!templateLabel; else templateLabel\" [title]=\"label\" style=\"white-space: nowrap; overflow: hidden; text-overflow: ellipsis\">\r\n {{ label }}\r\n </span>\r\n <span *ngIf=\"required\" [class.text-danger]=\"controls?.errors != null\"> *</span>\r\n <span *ngIf=\"labelInfo\">\r\n <i class=\"fa fa-exclamation-circle text-info ms-2\" [matTooltip]=\"textLabelInfo\" matTooltipClass=\"bg-info\"></i>\r\n </span>\r\n</label>\r\n\r\n<div\r\n [class.input-icon]=\"controls?.errors != null && (controls?.dirty || controls?.touched) && submitted\"\r\n [class.right]=\"controls?.errors != null && (controls?.dirty || controls?.touched) && submitted\"\r\n [class.refresh]=\"controls?.errors != null && (controls?.dirty || controls?.touched) && submitted && refresh\"\r\n [class.search]=\"controls?.errors != null && (controls?.dirty || controls?.touched) && submitted && search\">\r\n <div class=\"d-flex\">\r\n <div\r\n class=\"position-relative\"\r\n [class.ng-select-container-fullbuttons]=\"search && refresh && redirect\"\r\n [class.app-ng-selec-container]=\"search || refresh\"\r\n [class.w-100]=\"!search && !refresh\">\r\n <ng-select\r\n #ngSelectSimple\r\n [class]=\"search || refresh ? 'app-ng-select' : 'w-100'\"\r\n [class.action]=\"search && refresh\"\r\n [items]=\"items | async\"\r\n [(ngModel)]=\"_value\"\r\n [disabled]=\"disabled\"\r\n [readonly]=\"readonly\"\r\n (change)=\"eventChange($event)\"\r\n (blur)=\"eventBlur($event)\"\r\n (focus)=\"eventFocus($event)\"\r\n (search)=\"eventSearch($event)\"\r\n [markFirst]=\"markFirst\"\r\n [clearable]=\"!required && clearable\"\r\n [virtualScroll]=\"virtualScroll\"\r\n [inputAttrs]=\"{ autocomplete: autocomplete }\"\r\n [clearOnBackspace]=\"clearOnBackspace\"\r\n [openOnEnter]=\"openOnEnter\"\r\n (keydown.delete)=\"!required && clearable ? clear() : ''\"\r\n (clear)=\"clear()\"\r\n (keyup.F1)=\"f1KeyUp()\"\r\n [notFoundText]=\"notFoundText\"\r\n placeholder=\"Seleccionar\"\r\n (keyup.enter)=\"enterKeyUp()\"\r\n [clearAllText]=\"clearAllText\"\r\n [searchable]=\"searchable\"\r\n (keyup.ArrowLeft)=\"leftKeyUp()\"\r\n [appendTo]=\"appendTo\"\r\n [loading]=\"loading\"\r\n [loadingText]=\"loadingText\"\r\n [class.ng-select-invalid]=\"controls?.errors != null && (controls?.dirty || controls?.touched) && submitted\"\r\n [class.ng-select-touched]=\"controls?.errors != null && (controls?.dirty || controls?.touched) && submitted\"\r\n [class.upperCase]=\"upperCase\"\r\n [ngClass]=\"setNgClass\">\r\n <!-- OPCIONES DE LISTADO -->\r\n <ng-template ng-option-tmp let-item=\"item\" let-index=\"index\">\r\n <span data-toggle=\"tooltip\" title=\"{{ item.label }}\">{{ item.label }}</span>\r\n </ng-template>\r\n </ng-select>\r\n\r\n <!-- tooltip-message es el icono de error -->\r\n <tooltip-message\r\n [label]=\"label\"\r\n [controls]=\"controls\"\r\n [validatorMessage]=\"validatorMessage\"\r\n [submitted]=\"submitted\"\r\n [tooltipMessage]=\"tooltipMessage\"></tooltip-message>\r\n </div>\r\n <ng-container *ngIf=\"search && refresh && redirect; else templateAction\">\r\n <div class=\"app-ng-select-action bd-highligh\">\r\n <button\r\n #btnSearch\r\n type=\"button\"\r\n [disabled]=\"disabled || readonly\"\r\n class=\"btn btn-success p-0 rounded-0 h-100\"\r\n (keyup.ArrowLeft)=\"ngSelectSimple.focus()\"\r\n style=\"background-color: orange; border-color: orange\"\r\n (click)=\"onSearch()\">\r\n <i class=\"fa fa-search text-white px-1\" [matTooltip]=\"'Buscar'\" matTooltipClass=\"custom-tooltip\"></i>\r\n </button>\r\n <button\r\n *ngIf=\"refresh\"\r\n type=\"button\"\r\n [disabled]=\"disabled || readonly || isRefreshDisabled\"\r\n class=\"btn btn-info p-0 rounded-0 h-100\"\r\n (click)=\"onRefresh()\">\r\n <i class=\"fa fa-refresh text-white px-1\" [matTooltip]=\"'Refrescar'\" matTooltipClass=\"bg-info\"></i>\r\n </button>\r\n <button\r\n type=\"button\"\r\n class=\"btn btn-success p-0 rounded-0 h-100\"\r\n (click)=\"openEnlace()\"\r\n [disabled]=\"disabled || readonly || isRedirectDisabled\">\r\n <em class=\"fa-regular fa-rectangle-list text-white px-1\" [matTooltip]=\"titleRedirect!\" matTooltipClass=\"bg-success\"> </em>\r\n </button>\r\n </div>\r\n </ng-container>\r\n\r\n <ng-template #templateAction>\r\n <div class=\"app-ng-select-button bd-highlight\" *ngIf=\"search\">\r\n <button\r\n #btnSearch\r\n type=\"button\"\r\n [disabled]=\"disabled || readonly\"\r\n class=\"btn btn-success p-0 rounded-0 h-100\"\r\n (keyup.ArrowLeft)=\"ngSelectSimple.focus()\"\r\n (click)=\"onSearch()\">\r\n <i class=\"fa fa-search text-white px-1\" [matTooltip]=\"'Buscar'\" matTooltipClass=\"bg-success\"></i>\r\n </button>\r\n </div>\r\n <div class=\"app-ng-select-button bd-highlight\" *ngIf=\"refresh\">\r\n <button\r\n *ngIf=\"refresh\"\r\n type=\"button\"\r\n [disabled]=\"disabled || readonly || isRefreshDisabled\"\r\n class=\"btn btn-info p-0 rounded-0 h-100\"\r\n (click)=\"onRefresh()\">\r\n <i class=\"fa fa-refresh text-white px-1\" [matTooltip]=\"'Refrescar'\" matTooltipClass=\"bg-info\"></i>\r\n </button>\r\n </div>\r\n <div class=\"app-ng-select-button bd-highlight\" *ngIf=\"redirect\">\r\n <button\r\n type=\"button\"\r\n class=\"btn btn-success p-0 rounded-0 h-100\"\r\n style=\"padding-top: 3px; padding-bottom: 7px; border-radius: 0px\"\r\n (click)=\"openEnlace()\"\r\n [disabled]=\"disabled || readonly || isRedirectDisabled\">\r\n <em class=\"fa-regular fa-rectangle-list text-white px-1\" [matTooltip]=\"titleRedirect!\" matTooltipClass=\"bg-success\"> </em>\r\n </button>\r\n </div>\r\n </ng-template>\r\n\r\n <ng-content select=\"[more-buttons]\"></ng-content>\r\n </div>\r\n</div>\r\n\r\n<!-- error-message es el mansaje que aparece abajo del componente -->\r\n<error-message\r\n [label]=\"label\"\r\n [controls]=\"controls\"\r\n [validatorMessage]=\"validatorMessage\"\r\n [submitted]=\"submitted\"\r\n [tooltipMessage]=\"tooltipMessage\"></error-message>\r\n","export class NgSelectSimple {\r\n validatorMessage?: boolean;\r\n tooltipMessage?: boolean;\r\n openWhenFocus?: boolean;\r\n searchBy?: string;\r\n markFirstItem?: boolean;\r\n submitted?: boolean;\r\n searchable?: boolean;\r\n validatorAlert?: boolean;\r\n upperCase?: boolean;\r\n appendTo?: string;\r\n loadingText?: string;\r\n clearAllText?: string;\r\n markFirst?: boolean;\r\n clearable?: boolean;\r\n clearOnBackspace?: boolean;\r\n virtualScroll?: boolean;\r\n openOnEnter?: boolean;\r\n notFoundText?: string;\r\n}\r\n","import { NgModule } from \"@angular/core\";\r\nimport { CommonModule } from \"@angular/common\";\r\nimport { FormsModule, ReactiveFormsModule } from \"@angular/forms\";\r\nimport { ScAgGridPaginationComponent } from \"./sc-ag-grid-pagination.component\";\r\n\r\n@NgModule({\r\n declarations: [\r\n ScAgGridPaginationComponent\r\n ],\r\n imports: [\r\n CommonModule,\r\n FormsModule,\r\n ReactiveFormsModule,\r\n ],\r\n exports: [\r\n ScAgGridPaginationComponent\r\n ],\r\n})\r\nexport class ScAgGridPaginationModule { }\r\n","import { NgModule } from \"@angular/core\";\r\nimport { CommonModule } from \"@angular/common\";\r\nimport { FormsModule, ReactiveFormsModule } from \"@angular/forms\";\r\nimport { InputSearchComponent } from \"./input-search.component\";\r\n\r\n@NgModule({\r\n declarations: [\r\n InputSearchComponent\r\n ],\r\n imports: [\r\n CommonModule,\r\n FormsModule,\r\n ReactiveFormsModule,\r\n ],\r\n exports: [\r\n InputSearchComponent\r\n ],\r\n})\r\nexport class InputSearchModule { }\r\n","import { CommonModule } from \"@angular/common\";\r\nimport { NgModule } from \"@angular/core\";\r\nimport { FormsModule, ReactiveFormsModule } from \"@angular/forms\";\r\nimport { AgGridModule } from \"ag-grid-angular\";\r\nimport { MatDialogModule } from \"@angular/material/dialog\";\r\nimport { DialogAgGridSearchComponent } from \"./dialog-ag-grid-search.component\";\r\nimport { ScAgGridPaginationModule } from \"../sc-ag-grid/sc-ag-grid-pagination/sc-ag-grid-pagination.module\";\r\nimport { InputSearchModule } from \"../sc-ag-grid/input-search/input-search.module\";\r\n\r\n@NgModule({\r\n declarations: [DialogAgGridSearchComponent],\r\n imports: [CommonModule, FormsModule, ReactiveFormsModule, AgGridModule, MatDialogModule, ScAgGridPaginationModule, InputSearchModule],\r\n exports: [DialogAgGridSearchComponent],\r\n})\r\nexport class DialogAgGridSearchModule {}\r\n","import { CommonModule } from \"@angular/common\";\r\nimport { ModuleWithProviders, NgModule } from \"@angular/core\";\r\nimport { FormsModule, ReactiveFormsModule } from \"@angular/forms\";\r\nimport { MatTooltipModule } from \"@angular/material/tooltip\";\r\nimport { NgSelectModule } from \"@ng-select/ng-select\";\r\nimport { ErrorMessageModule } from \"../error-message/error-message.module\";\r\nimport { TooltipMessageModule } from \"../tooltip-message/tooltip-message.module\";\r\nimport { NgSelectSimple } from \"./ng-select-simple\";\r\nimport { NgSelectSimpleComponent } from \"./ng-select-simple.component\";\r\nimport { NgSelectSimpleService } from \"./ng-select-simple.service\";\r\nimport { DialogAgGridSearchModule } from \"../dialog-ag-grid-search/dialog-ag-grid-search.module\";\r\n\r\n@NgModule({\r\n declarations: [NgSelectSimpleComponent],\r\n imports: [CommonModule, FormsModule, ReactiveFormsModule, ErrorMessageModule, TooltipMessageModule, MatTooltipModule, NgSelectModule, DialogAgGridSearchModule],\r\n exports: [NgSelectSimpleComponent],\r\n providers: [],\r\n})\r\nexport class NgSelectSimpleModule {\r\n static forRoot(ngSelectSimple: NgSelectSimple = new NgSelectSimple()): ModuleWithProviders<NgSelectSimpleModule> {\r\n return {\r\n ngModule: NgSelectSimpleModule,\r\n providers: [\r\n { provide: \"NG_SELECT_SIMPLE_VALIDATOR_MESSAGE\", useValue: ngSelectSimple.validatorMessage },\r\n { provide: \"NG_SELECT_SIMPLE_TOOLTIP_MESSAGE\", useValue: ngSelectSimple.tooltipMessage },\r\n { provide: \"NG_SELECT_SIMPLE_OPEN_WHEN_FOCUS\", useValue: ngSelectSimple.openWhenFocus },\r\n { provide: \"NG_SELECT_SIMPLE_SEARCH_BY\", useValue: ngSelectSimple.searchBy },\r\n { provide: \"NG_SELECT_SIMPLE_MARK_FIRST_ITEM\", useValue: ngSelectSimple.markFirstItem },\r\n { provide: \"NG_SELECT_SIMPLE_SUBMITTED\", useValue: ngSelectSimple.submitted },\r\n { provide: \"NG_SELECT_SIMPLE_SEARCHABLE\", useValue: ngSelectSimple.searchable },\r\n { provide: \"NG_SELECT_SIMPLE_VALIDATOR_ALERT\", useValue: ngSelectSimple.validatorAlert },\r\n { provide: \"NG_SELECT_SIMPLE_UPPER_CASE\", useValue: ngSelectSimple.upperCase },\r\n { provide: \"NG_SELECT_SIMPLE_APPEND_TO\", useValue: ngSelectSimple.appendTo },\r\n { provide: \"NG_SELECT_SIMPLE_LOADING_TEXT\", useValue: ngSelectSimple.loadingText },\r\n { provide: \"NG_SELECT_SIMPLE_CLEAR_ALL_TEXT\", useValue: ngSelectSimple.clearAllText },\r\n { provide: \"NG_SELECT_SIMPLE_MARK_FIRST\", useValue: ngSelectSimple.markFirst },\r\n { provide: \"NG_SELECT_SIMPLE_CLEARABLE\", useValue: ngSelectSimple.clearable },\r\n { provide: \"NG_SELECT_SIMPLE_CLEAR_ON_BACKSPACE\", useValue: ngSelectSimple.clearOnBackspace },\r\n { provide: \"NG_SELECT_SIMPLE_VIRTUAL_SCROLL\", useValue: ngSelectSimple.virtualScroll },\r\n { provide: \"NG_SELECT_SIMPLE_OPEN_ON_ENTER\", useValue: ngSelectSimple.openOnEnter },\r\n { provide: \"NG_SELECT_SIMPLE_NOT_FOUND_TEXT\", useValue: ngSelectSimple.notFoundText },\r\n NgSelectSimpleService\r\n ],\r\n };\r\n }\r\n}\r\n","import { ICellRendererParams, RowClassParams } from 'ag-grid-community';\r\n\r\nexport enum EnumButtonType {\r\n TYPE_NONE = 'TYPE_NONE',\r\n TYPE_EDIT = 'TYPE_EDIT',\r\n TYPE_DELETE = 'TYPE_DELETE',\r\n}\r\n\r\nexport interface RowStyle {\r\n [cssProperty: string]: string;\r\n}\r\n\r\nexport type GetRowStyle = (params: RowClassParams) => RowStyle | undefined;\r\n\r\nexport interface DisabledFuc {\r\n (params: ICellRendererParams): boolean;\r\n}\r\nexport interface HideFuc {\r\n (params?: ICellRendererParams): boolean;\r\n}\r\n\r\nexport type RowSelection = 'multiple' | 'single';\r\n\r\nexport interface SubMenu {\r\n actionCode: EnumButtonType | string;\r\n label: string;\r\n icon?: string;\r\n iconClass?: string;\r\n disabled?: boolean | DisabledFuc;\r\n hide?: boolean | HideFuc;\r\n // classList?: string;\r\n submenu?: SubMenu[];\r\n}\r\nexport interface TooltipOption {\r\n label: string;\r\n classList?: string;\r\n}\r\n\r\nexport interface ButtonOption {\r\n classList?: string;\r\n}\r\n\r\nexport interface IconOption {\r\n icon: string;\r\n classList?: string;\r\n}\r\n\r\nexport interface ButtonHeader {\r\n visible: boolean;\r\n disabled?: boolean;\r\n allowTypeFiles?: string;\r\n}\r\n\r\nexport interface PropertyButtonHeader {\r\n visible: boolean;\r\n disabled: boolean;\r\n}\r\n\r\nexport interface ConfigButtonAction {\r\n header?: ConfigButtonHeader;\r\n agGrid?: {\r\n actions: ConfigButtonAgGrid[];\r\n };\r\n}\r\n\r\nexport interface ConfigButtonAgGrid {\r\n actionCode: EnumButtonType | string;\r\n tooltipOption: TooltipOption | ((params: ICellRendererParams) => TooltipOption);\r\n buttonOption?: ButtonOption;\r\n iconOption: IconOption;\r\n disabled?: boolean | DisabledFuc;\r\n hide?: boolean | HideFuc;\r\n submenu?: SubMenu[];\r\n}\r\n\r\nexport interface ConfigButtonHeader {\r\n disabled?: boolean;\r\n submenu?: SubMenu[];\r\n}\r\n","import { Component, ViewChild } from '@angular/core';\r\nimport { UntypedFormControl, ValidatorFn } from '@angular/forms';\r\nimport { AgEditorComponent } from 'ag-grid-angular';\r\nimport { ICellEditorParams } from 'ag-grid-community';\r\nimport { Observable, of } from 'rxjs';\r\nimport { DatePickerComponent } from '../../../date-picker/date-picker.component';\r\nimport { InputNumberComponent } from '../../../input-number/input-number.component';\r\nimport { InputTextComponent } from '../../../input-text/input-text.component';\r\nimport { NgSelectSimpleComponent } from '../../../ng-select-simple/ng-select-simple.component';\r\nexport interface ConfigControl {\r\n\trequired: boolean;\r\n\tlabel: string;\r\n\ttypeControl: TypeControl;\r\n\tinputMask: string;\r\n\ttextRight: boolean;\r\n\tformatCero: boolean;\r\n\tmaxLength: number;\r\n\tdecimals: number;\r\n\tclearable: boolean;\r\n}\r\nexport interface ParamsContainerComponents extends ICellEditorParams {\r\n\twidth: string;\r\n\titems: Observable<any>;\r\n\tdefaultValue: (data: any) => any;\r\n\tvalidatorsCellEditor: ValidatorFn[] | ValidatorFn;\r\n\tfieldValid: string;\r\n\tconfigControl: ConfigControl,\r\n}\r\nexport enum TypeControl {\r\n\tINPUT_TEXT = 'input-text',\r\n\tINPUT_NUMBER = 'input-number',\r\n\tNG_SELECT_SIMPLE = 'ng-select-simple',\r\n\tNG_SELECT_MULTIPLE = 'ng-select-multiple',\r\n\tDATE_PICKER = 'date-picker',\r\n\tDATE_TIME_PICKER_EDITABLE = 'date-time-picker-editable',\r\n}\r\n@Component({\r\n\tselector: 'container-shared-component',\r\n\ttemplateUrl: './container-shared.component.html',\r\n\tstyleUrls: ['./container-shared.component.scss'],\r\n})\r\nexport class ContainerSharedComponent implements AgEditorComponent {\r\n\t@ViewChild('control') set control(v: any) {\r\n\t\tsetTimeout(() => {\r\n\t\t\tif (v instanceof NgSelectSimpleComponent) v.ngSelectSimple.focus();\r\n\t\t\telse if (v instanceof InputTextComponent) v._inputText.nativeElement.focus();\r\n\t\t\telse if (v instanceof InputNumberComponent) v.inputText.nativeElement.focus();\r\n\t\t\telse if (v instanceof DatePickerComponent) v.focus();\r\n\t\t\telse v.focus();\r\n\t\t}, 150);\r\n\t}\r\n\tvalue: any = null;\r\n\tparams: Partial<ParamsContainerComponents> = {} ;\r\n\tlabel = 'undefined';\r\n\twidth = '100px';\r\n\titems = of([]);\r\n\tdefaultValue: string | null = null;\r\n\tvalidators: ValidatorFn[] | ValidatorFn = [];\r\n\trequired = false;\r\n\tinputMask = '';\r\n\ttextRight = false;\r\n\tdecimals = 0;\r\n\tformatCero = false;\r\n\tclearable = false;\r\n\tmaxLength: number | undefined = undefined;\r\n\ttypeControl: TypeControl | null = null;\r\n\tformControl = new UntypedFormControl(null);\r\n\r\n\tconstructor() {}\r\n\tagInit(params: ICellEditorParams): void {\r\n\t\tthis.formControl.markAllAsTouched();\r\n\t\tthis.params = params;\r\n\t\tif (this.params.width) this.width = this.params.width;\r\n\t\tif (this.params.items) this.items = this.params.items;\r\n\t\tif (this.params.defaultValue) this.defaultValue = this.params.defaultValue(this.params.data);\r\n\r\n\t\tif (this.params.validatorsCellEditor) this.validators = this.params.validatorsCellEditor;\r\n\r\n\t\tthis.formControl.setValidators(this.validators);\r\n\t\tthis.formControl.updateValueAndValidity();\r\n\r\n\t\tif (this.params.configControl) {\r\n\t\t\tconst configControl = this.params.configControl;\r\n\t\t\tif (configControl.required) this.required = configControl.required;\r\n\t\t\tif (configControl.label) this.label = configControl.label;\r\n\t\t\tif (configControl.typeControl) this.typeControl = configControl.typeControl;\r\n\t\t\tif (configControl.inputMask) this.inputMask = configControl.inputMask;\r\n\t\t\tif (configControl.textRight) this.textRight = configControl.textRight;\r\n\t\t\tif (configControl.formatCero) this.formatCero = configControl.formatCero;\r\n\t\t\tif (configControl.maxLength) this.maxLength = configControl.maxLength;\r\n\t\t\tif (configControl.decimals) this.decimals = configControl.decimals;\r\n\t\t\tif (configControl.clearable) this.clearable = configControl.clearable;\r\n\t\t}\r\n\t\tif (this.typeControl == 'input-number' && this.defaultValue)\r\n\t\t\tthis.formControl.setValue(this.defaultValue.toString());\r\n\t\telse this.formControl.setValue(this.defaultValue);\r\n\t}\r\n\r\n\tgetValue(): any {\r\n\t\tif (this.formControl.invalid) {\r\n\t\t\tthis.params.data = { ...this.params.node?.data, [this.params.fieldValid as string]: false };\r\n\t\t\tif (this.params.fieldValid) this.params.node?.setDataValue(this.params.fieldValid, false);\r\n\t\t\treturn 'INVALID CONTROL';\r\n\t\t} else {\r\n\t\t\tif (this.params.fieldValid) this.params.node?.setDataValue(this.params.fieldValid, true);\r\n\t\t\treturn this.formControl.value;\r\n\t\t}\r\n\t}\r\n\tdetec(event: KeyboardEvent): void {\r\n\t\tconst letra = event.key;\r\n\t\tconst patt = new RegExp(/^[A-Za-z0-9\\-]+$/g);\r\n\r\n\t\t// Validar que el valor ingresado solo contenga combinaciones de (letras,numeros,-)\r\n\t\tif (!patt.test(letra)) {\r\n\t\t\tevent.preventDefault();\r\n\t\t}\r\n\t}\r\n\tisPopup(): boolean {\r\n\t\treturn true;\r\n\t}\r\n\tonClick(happy: boolean) {\r\n\t\tthis.params.api?.stopEditing();\r\n\t}\r\n\r\n\tonKeyDown(event: KeyboardEvent): void {\r\n\t\tconst key = event.which || event.keyCode;\r\n\t\tif (\r\n\t\t\tkey == 37 ||\r\n\t\t\tkey == 39\r\n\t\t) {\r\n\t\t\tevent.stopPropagation();\r\n\t\t}\r\n\t}\r\n\tonFocusOut(): void {\r\n\t\tthis.params.api?.stopEditing();\r\n\t}\r\n}\r\n","<div [ngStyle]=\"{'width': width}\" class=\"position-relative row\">\r\n\t<div *ngIf=\"typeControl==='ng-select-simple'\" class=\"col-12\">\r\n\t\t<ng-select-simple\r\n\t\t\t[showLabel]=\"false\"\r\n\t\t\t[label]=\"label\"\r\n\t\t\t[required]=\"required\"\r\n\t\t\t[clearable]=\"clearable\"\r\n\t\t\t[formControl]=\"formControl\"\r\n\t\t\t[tooltipMessage]=\"true\"\r\n\t\t\t[validatorMessage]=\"false\"\r\n\t\t\t#control\r\n\t\t\t[items]=\"items\">\r\n\t\t</ng-select-simple>\r\n\t</div>\r\n\t<div *ngIf=\"typeControl==='input-text'\" class=\"col-12\">\r\n\t\t<input-text\r\n\t\t\t(blur)=\"onFocusOut()\"\r\n\t\t\t[showLabel]=\"false\"\r\n\t\t\t[label]=\"label\"\r\n\t\t\t[required]=\"required\"\r\n\t\t\t[formControl]=\"formControl\"\r\n\t\t\t[inputMask]=\"inputMask\"\r\n\t\t\t[textRight]=\"textRight\"\r\n\t\t\t[tooltipMessage]=\"true\"\r\n\t\t\t[validatorMessage]=\"false\"\r\n\t\t\t(keypress)=\"detec($event)\"\r\n\t\t\t#control>\r\n\t\t</input-text>\r\n\t</div>\r\n\t<div *ngIf=\"typeControl==='input-number'\" class=\"col-12\">\r\n\t\t<input-number\r\n\t\t\t(blur)=\"onFocusOut()\"\r\n\t\t\t[formatCero]=\"formatCero\"\r\n\t\t\t[maxLength]=\"maxLength\"\r\n\t\t\t[showLabel]=\"false\"\r\n\t\t\t[decimals]=\"decimals\"\r\n\t\t\t[label]=\"label\"\r\n\t\t\t[tooltipMessage]=\"true\"\r\n\t\t\t[validatorMessage]=\"false\"\r\n\t\t\t[required]=\"required\"\r\n\t\t\t[formControl]=\"formControl\"\r\n\t\t\t#control>\r\n\t\t</input-number>\r\n\t</div>\r\n\t<div *ngIf=\"typeControl==='date-picker'\" class=\"col-12\">\r\n\t\t<date-picker\r\n\t\t\t[showLabel]=\"false\"\r\n\t\t\t[label]=\"label\"\r\n\t\t\t[required]=\"required\"\r\n\t\t\t[formControl]=\"formControl\"\r\n\t\t\t[tooltipMessage]=\"true\"\r\n\t\t\t[validatorMessage]=\"false\"\r\n\t\t\t#control>\r\n\t\t</date-picker>\r\n\t</div>\r\n\t<div *ngIf=\"typeControl==='date-time-picker-editable'\" class=\"col-12\">\r\n\t\t<date-time-picker-editable\r\n\t\t\t[showLabel]=\"false\"\r\n\t\t\t[label]=\"label\"\r\n\t\t\t[required]=\"required\"\r\n\t\t\t[formControl]=\"formControl\"\r\n\t\t\t[tooltipMessage]=\"true\"\r\n\t\t\t[validatorMessage]=\"false\"\r\n\t\t\t#control>\r\n\t\t\t></date-time-picker-editable\r\n\t\t>\r\n\t</div>\r\n</div>\r\n","import { Component } from '@angular/core';\r\nimport { INoRowsOverlayAngularComp } from 'ag-grid-angular';\r\nimport { INoRowsOverlayParams } from 'ag-grid-community';\r\n\r\n@Component({\r\n\tselector: 'edit-delete',\r\n\ttemplate: `\r\n\t\t<p class=\"ag-overlay-loading-center border-0 bg-transparent shadow-none d-flex flex-column\">\r\n\t\t\t<span>No se encontraron registros...</span>\r\n\t\t\t<a href=\"javascript:void(0)\" (click)=\"onNoRowsClick()\">Agregar</a>\r\n\t\t</p>\r\n\t`,\r\n\tstyles: [],\r\n})\r\nexport class NoRowsOverlayCustomComponent implements INoRowsOverlayAngularComp {\r\n\tparams: any;\r\n\tagInit(params: INoRowsOverlayParams): void {\r\n\t\tthis.params = params;\r\n\t}\r\n\tonNoRowsClick() {\r\n\t\tthis.params?.addRow();\r\n\t}\r\n}\r\n","import { Component } from '@angular/core';\r\nimport { INoRowsOverlayAngularComp } from 'ag-grid-angular';\r\nimport { INoRowsOverlayParams } from 'ag-grid-community';\r\n\r\n@Component({\r\n\tselector: 'edit-delete',\r\n\ttemplate: `\r\n\t\t<span class=\"ag-overlay-loading-center border-0 bg-transparent shadow-none\">\r\n\t\t\tNo se encontraron registros...\r\n\t\t</span>\r\n\t`,\r\n\tstyles: [],\r\n})\r\nexport class NoRowsOverlayDefaultComponent implements INoRowsOverlayAngularComp {\r\n\tparams: any;\r\n\tagInit(params: INoRowsOverlayParams): void {\r\n\t\tthis.params = params;\r\n\t}\r\n}\r\n","import {\r\n Component,\r\n Directive,\r\n Injectable,\r\n Input,\r\n ViewChild,\r\n ViewEncapsulation,\r\n} from '@angular/core';\r\nimport { MatMenu } from '@angular/material/menu';\r\nimport { ICellRendererAngularComp } from 'ag-grid-angular';\r\nimport { ICellRendererParams } from 'ag-grid-community';\r\nimport { Subject } from 'rxjs';\r\nimport { ConfigButtonAgGrid, DisabledFuc, EnumButtonType, HideFuc, SubMenu, TooltipOption } from '../../../utils/IScAgGrid';\r\n\r\nlet scCellRenderButtonNextId = 0;\r\nlet scMenuPanelNextId = 0;\r\n\r\n@Injectable({providedIn: 'root'})\r\nexport class ScCellRenderButtonService {\r\n private _handlerButtonAction$ = new Subject<{\r\n index: number;\r\n action: string;\r\n }>();\r\n handlerButtonAction$ = this._handlerButtonAction$.asObservable();\r\n\r\n buttonAction(option: { index: number; action: string }): void {\r\n this._handlerButtonAction$.next(option);\r\n }\r\n}\r\n\r\n@Directive()\r\nabstract class ScCellRenderBase {\r\n params!: ICellRendererParams;\r\n\r\n isFunctionDisabled(value: boolean | DisabledFuc | undefined): boolean {\r\n if (value == null) return false;\r\n\r\n if (typeof value === 'function') {\r\n return value(this.params);\r\n }\r\n\r\n return value;\r\n }\r\n\r\n isFunctionHide(value: boolean | HideFuc): boolean {\r\n if (value == null) return false;\r\n\r\n if (typeof value === 'function') {\r\n return value(this.params);\r\n }\r\n\r\n return value;\r\n }\r\n}\r\n\r\n@Component({\r\n selector: 'sc-menu-panel',\r\n template: `\r\n <mat-menu #menu>\r\n <ng-container *ngFor=\"let subMenu of subMenus\">\r\n <ng-container *ngIf=\"!isFunctionHide(subMenu.hide ?? false)\">\r\n <button\r\n *ngIf=\"!subMenu.submenu; else branch\"\r\n mat-menu-item\r\n [disabled]=\"isFunctionDisabled(subMenu?.disabled)\"\r\n [class.sc-menu-panel-bottom]=\"subMenu?.icon !== undefined\"\r\n [attr.aria-label]=\"subMenu?.label ?? ''\"\r\n (click)=\"onButtonActionEmit(subMenu?.actionCode ?? '')\"\r\n >\r\n <i\r\n *ngIf=\"subMenu?.icon\"\r\n class=\"fa-lg\"\r\n [class]=\"\r\n 'sc-menu-panel-icon ' +\r\n subMenu.icon +\r\n ' ' +\r\n (isFunctionDisabled(subMenu?.disabled)\r\n ? 'text-muted'\r\n : subMenu?.iconClass ?? '')\r\n \"\r\n ></i>\r\n <span class=\"sumax-label\">{{ subMenu?.label ?? '' }}</span>\r\n </button>\r\n\r\n <ng-template #branch>\r\n <button\r\n mat-menu-item\r\n [matMenuTriggerFor]=\"innerPanel.menu\"\r\n [class.sc-menu-panel-bottom]=\"subMenu?.icon !== undefined\"\r\n [disabled]=\"isFunctionDisabled(subMenu?.disabled)\"\r\n [attr.aria-label]=\"subMenu?.label ?? ''\"\r\n >\r\n <i\r\n *ngIf=\"subMenu?.icon\"\r\n class=\"fa-lg\"\r\n [class]=\"\r\n 'sc-menu-panel-icon ' +\r\n subMenu.icon +\r\n ' ' +\r\n (isFunctionDisabled(subMenu?.disabled)\r\n ? 'text-muted'\r\n : subMenu?.iconClass ?? '')\r\n \"\r\n ></i>\r\n <span class=\"sumax-label\">{{ subMenu?.label ?? '' }}</span>\r\n </button>\r\n\r\n <sc-menu-panel\r\n #innerPanel\r\n [params]=\"params\"\r\n (onButtonAction)=\"onButtonActionEmit(subMenu?.actionCode ?? '')\"\r\n [subMenus]=\"subMenu.submenu ?? []\"\r\n ></sc-menu-panel>\r\n </ng-template>\r\n </ng-container>\r\n </ng-container>\r\n </mat-menu>\r\n `,\r\n styles: [\r\n `\r\n .sc-menu-panel-bottom {\r\n display: flex;\r\n align-items: center;\r\n }\r\n\r\n .sc-menu-panel-icon {\r\n width: 1.6rem;\r\n margin-right: 0.3em;\r\n }\r\n\r\n .mat-menu-item[disabled] {\r\n pointer-events: auto !important;\r\n cursor: no-drop !important;\r\n }\r\n\r\n button:disabled {\r\n cursor: no-drop;\r\n }\r\n `,\r\n ],\r\n host: {\r\n '[id]': 'idScMenuPanel',\r\n },\r\n})\r\nexport class ScMenuPanelComponent extends ScCellRenderBase {\r\n idScMenuPanel = `sc-menu-panel-${++scMenuPanelNextId}`;\r\n\r\n @ViewChild('menu', { static: true }) menu!: MatMenu;\r\n\r\n @Input() subMenus: SubMenu[] = [];\r\n @Input() override params!: ICellRendererParams;\r\n\r\n constructor(\r\n private readonly _scCellRenderButtonService: ScCellRenderButtonService\r\n ) {\r\n super();\r\n }\r\n\r\n onButtonActionEmit(action: string): void {\r\n const index = this.params?.node.rowIndex ?? -1;\r\n this._scCellRenderButtonService.buttonAction({\r\n index,\r\n action,\r\n });\r\n }\r\n}\r\n\r\n@Component({\r\n templateUrl: './sc-cell-render-button.component.html',\r\n styles: [\r\n `\r\n .sc-cell-render-button {\r\n padding: 0.1em 1em;\r\n }\r\n .sc-cell-render-button-action {\r\n border: none;\r\n border-radius: 50%;\r\n padding: 0 0.5em;\r\n text-align: center;\r\n margin: 0.1em;\r\n background-color: transparent;\r\n }\r\n .sc-cell-render-button-action i {\r\n display: block;\r\n width: 1.7em;\r\n height: 1.7em;\r\n line-height: 1.7em;\r\n padding-right: 0;\r\n }\r\n button:disabled {\r\n cursor: no-drop;\r\n }\r\n `,\r\n ],\r\n host: {\r\n '[id]': 'idScCellRenderButton',\r\n class: 'd-flex justify-content-center sc-cell-render-button',\r\n },\r\n encapsulation: ViewEncapsulation.None,\r\n})\r\nexport class ScCellRendererButtonComponent\r\n extends ScCellRenderBase\r\n implements ICellRendererAngularComp\r\n{\r\n idScCellRenderButton = `sc-cell-render-button-${++scCellRenderButtonNextId}`;\r\n\r\n override params!: ICellRendererParams;\r\n\r\n configButtons: ConfigButtonAgGrid[] = [];\r\n\r\n agInit(params: ICellRendererParams): void {\r\n this.params = params;\r\n this.configButtons =\r\n params.context.componentParent._configButtonsDefaultAgGrid;\r\n }\r\n\r\n onButtonAction(typeButton: EnumButtonType | string) {\r\n if (typeButton)\r\n this.params?.context.componentParent.onButtonActionAgGridEmit(\r\n this.params.node.rowIndex,\r\n typeButton\r\n );\r\n }\r\n\r\n refresh(_: any): boolean {\r\n return true;\r\n }\r\n\r\n hideSubMenu(subMenu: SubMenu[]): boolean {\r\n if (subMenu.length === 0) return true;\r\n\r\n return subMenu.every(({ hide }) => {\r\n if (hide == null) return false;\r\n if (typeof hide == 'function') return hide();\r\n return hide;\r\n });\r\n }\r\n\r\n getTooltipOption(configButtons: ConfigButtonAgGrid): TooltipOption {\r\n if(typeof configButtons?.tooltipOption === 'function')\r\n return configButtons?.tooltipOption(this.params)\r\n else \r\n return configButtons?.tooltipOption;\r\n }\r\n}\r\n","<ng-container *ngFor=\"let option of configButtons\">\r\n <ng-container *ngIf=\"option?.submenu?.length ?? 0 > 0; else buttonPrincipal\">\r\n <ng-container *ngIf=\"!hideSubMenu(option?.submenu ?? [])\">\r\n <button\r\n matRipple\r\n class=\"btn sc-cell-render-button-action\"\r\n [ngClass]=\"option?.buttonOption?.classList ? $any(option?.buttonOption?.classList) : ''\"\r\n *ngIf=\"!isFunctionHide(option?.hide ?? false)\"\r\n [disabled]=\"isFunctionDisabled(option?.disabled)\"\r\n [matMenuTriggerFor]=\"panel.menu\"\r\n [matTooltip]=\"getTooltipOption(option).label\"\r\n [matTooltipClass]=\"getTooltipOption(option).classList ?? ''\"\r\n [matTooltipDisabled]=\"isFunctionDisabled(option?.disabled)\"\r\n [attr.aria-label]=\"getTooltipOption(option).label\">\r\n <em\r\n class=\"p-0\"\r\n [class]=\"\r\n (option?.iconOption?.icon ?? '') +\r\n ' ' +\r\n (isFunctionDisabled(option?.disabled) ? 'text-muted' : option?.iconOption?.classList ?? '')\r\n \"></em>\r\n </button>\r\n\r\n <sc-menu-panel #panel [params]=\"params\" [subMenus]=\"option.submenu ?? []\"></sc-menu-panel>\r\n </ng-container>\r\n </ng-container>\r\n\r\n <ng-template #buttonPrincipal>\r\n <button\r\n *ngIf=\"!isFunctionHide(option?.hide ?? false)\"\r\n [disabled]=\"isFunctionDisabled(option?.disabled)\"\r\n [ngClass]=\"option?.buttonOption?.classList ? $any(option?.buttonOption?.classList) : ''\"\r\n class=\"btn sc-cell-render-button-action\"\r\n matRipple\r\n (click)=\"onButtonAction(option?.actionCode ?? '')\"\r\n type=\"button\"\r\n [matTooltip]=\"getTooltipOption(option).label\"\r\n [matTooltipClass]=\"getTooltipOption(option).classList ?? ''\"\r\n [matTooltipDisabled]=\"isFunctionDisabled(option?.disabled)\"\r\n [attr.aria-label]=\"getTooltipOption(option).label\">\r\n <em\r\n class=\"pt-0\"\r\n [class]=\"\r\n (option?.iconOption?.icon ?? '') +\r\n ' ' +\r\n (isFunctionDisabled(option?.disabled) ? 'text-muted' : option?.iconOption?.classList ?? '')\r\n \"></em>\r\n </button>\r\n </ng-template>\r\n</ng-container>\r\n","import { Component, ViewEncapsulation } from '@angular/core';\r\nimport { ICellRendererAngularComp } from 'ag-grid-angular';\r\nimport { ICellRendererParams } from 'ag-grid-community';\r\n\r\nlet nextId = 0;\r\n\r\n@Component({\r\n\ttemplate: `\r\n\t\t<div>\r\n\t\t\t<ul>\r\n\t\t\t\t<ng-container *ngIf=\"params?.value as items\">\r\n\t\t\t\t\t<li *ngFor=\"let item of items\">\r\n\t\t\t\t\t\t<ng-container *ngIf=\"item\">\r\n\t\t\t\t\t\t\t<mat-checkbox\r\n\t\t\t\t\t\t\t\t[ngClass]=\"{ 'checkbox-list-disabled': item.disabled }\"\r\n\t\t\t\t\t\t\t\tcolor=\"primary\"\r\n\t\t\t\t\t\t\t\t[(ngModel)]=\"item.checked\"\r\n\t\t\t\t\t\t\t\t[disabled]=\"item.disabled\"\r\n\t\t\t\t\t\t\t\t>{{ item.label || '' }}</mat-checkbox\r\n\t\t\t\t\t\t\t>\r\n\t\t\t\t\t\t</ng-container>\r\n\t\t\t\t\t</li>\r\n\t\t\t\t</ng-container>\r\n\t\t\t</ul>\r\n\t\t</div>\r\n\t`,\r\n\tstyles: [\r\n\t\t`\r\n\t\t\tul {\r\n\t\t\t\tlist-style-type: none;\r\n\t\t\t\tmargin-top: 1.5px;\r\n\t\t\t\tpadding-left: 0px;\r\n\t\t\t}\r\n\t\t`,\r\n\t],\r\n\thost: {\r\n\t\t'[id]': 'idScCellRenderCheckboxLis',\r\n\t},\r\n\tencapsulation: ViewEncapsulation.None,\r\n})\r\nexport class ScCellRenderCheckboxListComponent implements ICellRendererAngularComp {\r\n\tidScCellRenderCheckboxLis = `sc-cell-render-checkbox-list-${++nextId}`;\r\n\r\n\tparams?: ICellRendererParams;\r\n\r\n\tagInit(params: ICellRendererParams): void {\r\n\t\tthis.params = params;\r\n\t}\r\n\r\n\trefresh(_: any): boolean {\r\n\t\treturn false;\r\n\t}\r\n}\r\n","import { Component } from '@angular/core';\r\nimport { FormControl } from '@angular/forms';\r\nimport { ICellRendererAngularComp } from 'ag-grid-angular';\r\nimport { ICellRendererParams } from 'ag-grid-community';\r\nimport { Observable, of } from 'rxjs';\r\nimport { map } from 'rxjs/operators';\r\n\r\n@Component({\r\n selector: 'sc-cell-render-select',\r\n template: `\r\n <ng-select-simple\r\n (change)=\"onChange($event)\"\r\n [formControl]=\"formControl\"\r\n [items]=\"items$\"\r\n [virtualScroll]=\"true\"\r\n [clearable]=\"false\"\r\n >\r\n </ng-select-simple>\r\n `,\r\n})\r\nexport class ScCellRenderSelectComponent implements ICellRendererAngularComp {\r\n private _params!: ICellRendererParams;\r\n items$: Observable<any> = of([]);\r\n\r\n formControl = new FormControl();\r\n\r\n agInit(params: ICellRendererParams): void {\r\n this._params = params;\r\n const values = (params as any).values;\r\n\r\n if (values) {\r\n if (Array.isArray(values)) this.items$ = of((params as any).values);\r\n else this.items$ = (params as any).values;\r\n\r\n if (params.value !== null) {\r\n const { value } = params.value;\r\n\r\n this.items$\r\n .pipe(map((data) => data.filter((d: any) => d.value === value)))\r\n .subscribe((v) => {\r\n if (v[0]) {\r\n this.formControl.setValue(v[0]);\r\n }\r\n });\r\n }\r\n }\r\n }\r\n\r\n refresh(_: ICellRendererParams): boolean {\r\n return false;\r\n }\r\n\r\n getValue(): any {\r\n return this.formControl.value;\r\n }\r\n\r\n onChange(_: any): void {\r\n this._params.api.stopEditing();\r\n }\r\n}\r\n","import { Component } from '@angular/core';\r\nimport { MatSlideToggleChange } from '@angular/material/slide-toggle';\r\nimport { ICellRendererAngularComp } from 'ag-grid-angular';\r\nimport { ICellRendererParams } from 'ag-grid-community';\r\n\r\n@Component({\r\n selector: 'sc-cell-render-toggle',\r\n template: `\r\n\t\t<mat-slide-toggle [disabled]=\"disabled\" [checked]=\"checkbox\" (change)=\"onChange($event)\">{{\r\n\t\t\tlabel\r\n\t\t}}</mat-slide-toggle>\r\n\t`,\r\n styles: [],\r\n})\r\nexport class ScCellRenderToggleComponent implements ICellRendererAngularComp {\r\n private _params!: ICellRendererParams;\r\n checkbox = false;\r\n disabled = false;\r\n label = '';\r\n\r\n agInit (params: ICellRendererParams): void {\r\n const { value } = params;\r\n this._params = params;\r\n\r\n this.label = (params as any).label ?? '';\r\n this.disabled = (params as any).disabled ?? true;\r\n\r\n this.checkbox = value ?? false;\r\n }\r\n\r\n refresh (_: ICellRendererParams): boolean {\r\n return false;\r\n }\r\n\r\n getValue (): boolean {\r\n return this.checkbox;\r\n }\r\n\r\n onChange (change: MatSlideToggleChange): void {\r\n this.checkbox = change.checked;\r\n if (this._params.context && this._params.context.toggleChanged) {\r\n this._params.context.toggleChanged(this.checkbox);\r\n }\r\n this._params.api.stopEditing();\r\n }\r\n}\r\n","import {\r\n Directive,\r\n InjectionToken,\r\n TemplateRef,\r\n ViewChild,\r\n} from '@angular/core';\r\n\r\nexport const SC_AG_GRID_BUTTON_HEADER =\r\n new InjectionToken<ScAgGridButtonHeader>('ScAgGridButtonHeader');\r\n\r\n@Directive({\r\n selector: 'ng-template[scAgridButtonHeader]',\r\n providers: [\r\n { provide: SC_AG_GRID_BUTTON_HEADER, useExisting: ScAgGridButtonHeader },\r\n ],\r\n})\r\nexport class ScAgGridButtonHeader {\r\n @ViewChild(TemplateRef, { static: true }) content!: TemplateRef<any>;\r\n\r\n constructor(public template: TemplateRef<any>) {}\r\n}\r\n","import { NoRowsOverlayDefaultComponent } from './no-rows-overlay/noRowsOverlayDefault.component';\r\nimport { ScCellRendererButtonComponent, ScMenuPanelComponent } from './sc-cell-render-button/sc-cell-render-button.component';\r\nimport { ScCellRenderCheckboxListComponent } from './sc-cell-render-checkbox-list/sc-cell-render-checkbox-list.component';\r\nimport { ScCellRenderSelectComponent } from './sc-cell-render-select/sc-cell-render-select.component';\r\nimport { ScCellRenderToggleComponent } from './sc-cell-render-toggle/sc-cell-render-toggle.component';\r\n\r\nexport const scCellRendererFramework = {\r\n\tscCellRendererButtonComponent: ScCellRendererButtonComponent,\r\n\tscCellRenderCheckboxListComponent: ScCellRenderCheckboxListComponent,\r\n\tscCellRenderSelectComponent: ScCellRenderSelectComponent,\r\n\tscCellRenderToggleComponent: ScCellRenderToggleComponent,\r\n\tnoRowsOverlayDefault: NoRowsOverlayDefaultComponent\r\n};\r\nexport const scCellRendererComponents = [\r\n\tScCellRendererButtonComponent,\r\n\tScCellRenderCheckboxListComponent,\r\n\tScCellRenderSelectComponent,\r\n\tScCellRenderToggleComponent,\r\n\tScMenuPanelComponent\r\n];\r\n\r\nexport const scComponents = {\r\n\t'scCellRendererButtonComponent' : ScCellRendererButtonComponent,\r\n\t'scCellRenderCheckboxListComponent' : ScCellRenderCheckboxListComponent,\r\n\t'scCellRenderSelectComponent' : ScCellRenderSelectComponent,\r\n\t'scCellRenderToggleComponent' : ScCellRenderToggleComponent,\r\n\t'noRowsOverlayDefault' : ScMenuPanelComponent\r\n};\r\n","import {\r\n ChangeDetectionStrategy,\r\n Component,\r\n ContentChildren,\r\n ElementRef,\r\n EventEmitter,\r\n Input,\r\n OnChanges,\r\n OnDestroy,\r\n OnInit,\r\n Output,\r\n QueryList,\r\n SimpleChanges,\r\n ViewChild,\r\n inject,\r\n} from \"@angular/core\";\r\nimport { FormGroup } from \"@angular/forms\";\r\nimport { MatMenuTrigger } from \"@angular/material/menu\";\r\nimport {\r\n CellContextMenuEvent,\r\n CellEditingStoppedEvent,\r\n CellKeyDownEvent,\r\n CellValueChangedEvent,\r\n ColDef,\r\n GridApi,\r\n GridReadyEvent,\r\n IRowNode,\r\n IsRowSelectable,\r\n RowClickedEvent,\r\n RowDataUpdatedEvent,\r\n RowDoubleClickedEvent,\r\n RowDragEvent,\r\n RowEditingStartedEvent,\r\n RowSelectedEvent,\r\n} from \"ag-grid-community\";\r\nimport { Observable, Subscription, of } from \"rxjs\";\r\nimport { INgSelect } from \"../../utils/INgSelect\";\r\nimport {\r\n ButtonHeader,\r\n ConfigButtonAction,\r\n ConfigButtonAgGrid,\r\n ConfigButtonHeader,\r\n EnumButtonType,\r\n GetRowStyle,\r\n HideFuc,\r\n RowSelection,\r\n} from \"../../utils/IScAgGrid\";\r\nimport { MessageUtilService } from \"../../utils/message-util.service\";\r\nimport { ScCellRenderButtonService } from \"../cell-render/sc-cell-render-button/sc-cell-render-button.component\";\r\nimport { scComponents } from \"../cell-render/sc-cell-render-config\";\r\nimport { ScAgGridButtonHeader } from \"../directives/scAgGrid.directive\";\r\nimport { ScAgGridPaginationComponent } from \"../sc-ag-grid-pagination/sc-ag-grid-pagination.component\";\r\n\r\nlet nextId = 0;\r\n@Component({\r\n selector: \"sc-ag-grid-customizable\",\r\n templateUrl: \"./sc-ag-grid-customizable.component.html\",\r\n styleUrl: \"./sc-ag-grid-customizable.component.scss\",\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n host: {\r\n \"[id]\": \"idScAgGridCustomizableComponent\",\r\n class: \"sc-ag-grid-customizable\",\r\n },\r\n})\r\nexport class ScAgGridCustomizableComponent implements OnInit, OnChanges, OnDestroy {\r\n @ContentChildren(ScAgGridButtonHeader, { descendants: true })\r\n viewChildrenButtonHeaders!: QueryList<ScAgGridButtonHeader>;\r\n\r\n @ViewChild(\"menuTrigger\") menuTrigger?: MatMenuTrigger;\r\n\r\n @ViewChild(\"scAgGridPagination\")\r\n private _scAgGridPagination?: ScAgGridPaginationComponent;\r\n\r\n @ViewChild(\"buttonAdd\") buttonAdd?: ElementRef<HTMLButtonElement>;\r\n get buttonAddElement(): HTMLButtonElement | null {\r\n return this.buttonAdd?.nativeElement ?? null;\r\n }\r\n\r\n idScAgGridCustomizableComponent = `sc-ag-grid-customizable-${++nextId}`;\r\n\r\n @Input() isRowSelectable: IsRowSelectable = () => true;\r\n\r\n searchClass = \"col-12 col-sm-12 col-md-6 col-lg-6 col-xl-5 my-2\";\r\n @Input() getRowStyle: GetRowStyle = () => undefined;\r\n @Input() fillSearch = false;\r\n //#region Inputs\r\n /**\r\n * @description Cantidad de items que se mostrará por página\r\n * @default 15\r\n */\r\n @Input() paginationPageSize = 15;\r\n @Input() searchWidth = \"\";\r\n /**\r\n * @description Opciones de tamaño de página\r\n * @default '[5, 10, 15, 20, 25]'\r\n */\r\n @Input() pageSizeOptions = [5, 10, 15, 20, 25];\r\n /**\r\n * @description Si el valor es `true` muestra la paginación\r\n * @default true\r\n */\r\n @Input() pagination = true;\r\n /**\r\n * @description Tipo de selecion en la `grilla`s\r\n * @default 'simple'\r\n */\r\n @Input() rowSelection: RowSelection = \"single\";\r\n // @Input() suppressRowClickSelection = true;\r\n get suppressRowClickSelection(): boolean {\r\n return this.rowSelection === \"single\" ? false : true;\r\n }\r\n /**\r\n * @description Array de columnas que se mostrara en la `grilla`\r\n * @default undefined\r\n */\r\n @Input() columnDefs: ColDef[] = [];\r\n /**\r\n * @description Array de datos que se mostrara en la `grilla`\r\n * @default null\r\n */\r\n @Input() rowData: Observable<any[]> = of([]);\r\n\r\n @Input() configButtonsAction!: ConfigButtonAction;\r\n get configHeader(): ConfigButtonHeader | null {\r\n return this.configButtonsAction?.header ?? null;\r\n }\r\n\r\n @Input() defaultCellRendererActions: string | undefined = undefined;\r\n\r\n _configButtonsDefaultAgGrid: ConfigButtonAgGrid[] = [];\r\n\r\n /**\r\n * @description Si el valor es `true` muestra el `buscador`\r\n * @default true\r\n */\r\n @Input() visibleSearch = true;\r\n\r\n @Input() domLayout: \"normal\" | \"autoHeight\" = \"normal\";\r\n @Input() height = \"20em\";\r\n\r\n /**\r\n * @description Cpnfiguración para el boton `Agregar`\r\n * @default '{ visible: true, disabled: false }'\r\n */\r\n @Input() btnAdd: ButtonHeader = { visible: true };\r\n /**\r\n * @description Para activar o descativar el drag & drop\r\n * @default false\r\n */\r\n @Input() rowDragManaged: boolean = false;\r\n\r\n /**\r\n * @description Para activar o descativar las animaciones\r\n * @default false\r\n */\r\n @Input() animateRows: boolean = false;\r\n\r\n @Input() useGridCopy = false;\r\n @Input() multiSortKey!: any;\r\n @Input() showMenuDefault = false;\r\n @Input() enableCellTextSelection = true;\r\n @Input() suppressRowTransform = false;\r\n @Input() enableRangeSelection = false;\r\n @Input() noRowsOverlayComponent = \"\";\r\n @Input() noRowsOverlayComponentParams = {};\r\n @Input() validatePasteCell?: (evtSource: CellKeyDownEvent, evtTarget: CellKeyDownEvent) => Promise<boolean> = (\r\n evtSource: CellKeyDownEvent,\r\n evtTarget: CellKeyDownEvent\r\n ) => Promise.resolve(true);\r\n @Input() validatePasteRows?: (evtSource: IRowNode[], evtTarget: IRowNode[]) => Promise<boolean> = (\r\n evtSource: IRowNode[],\r\n evtTarget: IRowNode[]\r\n ) => Promise.resolve(true);\r\n //#endregion\r\n\r\n /**\r\n * @description Para agregar componentes internos dentro de la grilla\r\n */\r\n @Input()\r\n set frameworkComponents(value: any) {\r\n this._frameworkComponents = { ...this._frameworkComponents, ...value };\r\n }\r\n\r\n /**\r\n * @description Para poder agregar más objetos al contexto\r\n */\r\n @Input()\r\n set context(value: any) {\r\n this._context = { ...this._context, ...value };\r\n }\r\n\r\n //#region Output\r\n @Output() onChangeFilter = new EventEmitter<string>();\r\n @Output() onAddRow = new EventEmitter<GridApi>();\r\n @Output() onGridAddRow = new EventEmitter<CellKeyDownEvent>();\r\n @Output() onEditRow = new EventEmitter<IRowNode>();\r\n @Output() onDeleteRow = new EventEmitter<[GridApi, any[]]>();\r\n @Output() onCellKeyDown: EventEmitter<any> = new EventEmitter();\r\n @Output() onCellStopEditing: EventEmitter<any> = new EventEmitter();\r\n @Output() onButtonActionAgGrid = new EventEmitter<[EnumButtonType | string, IRowNode]>();\r\n @Output() onButtonActionHeader = new EventEmitter<[EnumButtonType | string, any[]]>();\r\n\r\n // AgGrid Events - Ouput\r\n @Output() onGridReady = new EventEmitter<[GridApi]>();\r\n @Output() onGridSelectChange = new EventEmitter<any[]>();\r\n @Output() onGridChange = new EventEmitter<[GridApi, RowDataUpdatedEvent]>();\r\n @Output() onRowDragEnd = new EventEmitter<RowDragEvent>();\r\n @Output() onRowEditingStarted = new EventEmitter<RowEditingStartedEvent>();\r\n @Output() rowClicked = new EventEmitter<RowClickedEvent>();\r\n @Output() rowDoubleClicked = new EventEmitter<RowDoubleClickedEvent>();\r\n @Output() onRowSelected = new EventEmitter<RowSelectedEvent>();\r\n @Output() cellValueChanged = new EventEmitter<CellValueChangedEvent>();\r\n @Output() onCellContextMenu = new EventEmitter<CellContextMenuEvent>();\r\n @Output() onPasteMenu = new EventEmitter<CellContextMenuEvent>();\r\n @Output() onCopyMenu = new EventEmitter<CellContextMenuEvent>();\r\n @Output() afterPasteCell = new EventEmitter<[CellKeyDownEvent, CellKeyDownEvent]>();\r\n @Output() beforePasteCell = new EventEmitter<[CellKeyDownEvent, CellKeyDownEvent]>();\r\n @Output() afterPasteRows = new EventEmitter<[IRowNode[], IRowNode[]]>();\r\n @Output() beforePasteRows = new EventEmitter<[IRowNode[], IRowNode[]]>();\r\n\r\n columnDefsAndAddCellActions: ColDef[] = [];\r\n defaultColDef: ColDef = {\r\n resizable: true,\r\n sortable: true,\r\n };\r\n _frameworkComponents = { ...scComponents };\r\n _context = { componentParent: this as any };\r\n\r\n bottomMenu: string = \"0\";\r\n leftMenu: string = \"0\";\r\n hiddenMenu: boolean = true;\r\n\r\n copiedCell?: CellKeyDownEvent;\r\n copiedRow?: IRowNode[];\r\n\r\n @Input()\r\n overlayNoRowsTemplate = `<span class=\"ag-overlay-loading-center border-0 bg-transparent shadow-none\">\r\n\t\t\tNo se encontraron registros...\r\n\t\t</span>`;\r\n\r\n overlayLoadingTemplate = `<span class=\"ag-overlay-loading-top d-flex align-items-center border-0 bg-white shadow p-4 text-info\" style=\"height: 20px;\">\r\n\t\t\t<img src=\"assets/media-demo/loading.gif\" height=\"20\" width=\"25\" class=\"mr-2\">\r\n\t\t\t<strong>Cargando registros</strong>\r\n\t\t</span>\r\n\t\t`;\r\n suppressDragLeaveHidesColumns = true;\r\n suppressScrollOnNewData = false;\r\n suppressPaginationPanel = true;\r\n\r\n // AgGrid Style\r\n get ngStyleContainer() {\r\n return {\r\n width: \"100%\",\r\n height: this.height,\r\n };\r\n }\r\n\r\n get ngStyleAgGrid() {\r\n return {\r\n width: \"100%\",\r\n height: \"100%\",\r\n };\r\n }\r\n\r\n _subscription$ = new Subscription();\r\n progressVisibled = false;\r\n\r\n gridApi!: GridApi;\r\n _subscriptionRowData$?: Subscription;\r\n\r\n selectedRows: any[] = [];\r\n\r\n cellContextMenuActual?: CellContextMenuEvent;\r\n\r\n private _scCellRenderButtonService = inject(ScCellRenderButtonService);\r\n private _messageUtilService = inject(MessageUtilService);\r\n\r\n ngOnInit(): void {\r\n this._subscription$.add(\r\n this._scCellRenderButtonService.handlerButtonAction$.subscribe(({ index, action }) => {\r\n if (action == null) return;\r\n if (action.trim() === \"\") return;\r\n\r\n if (index !== -1) {\r\n this.onButtonActionAgGridEmit(index, action);\r\n return;\r\n }\r\n\r\n this.onButtonActionHeaderEmit(action);\r\n })\r\n );\r\n\r\n this.initActionButton();\r\n }\r\n\r\n ngOnChanges(changes: SimpleChanges): void {\r\n if (!this.gridApi) return;\r\n if (changes[\"configButtonsAction\"]) this.initActionButton();\r\n if (changes[\"rowData\"]) this.initRowData();\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this._subscription$?.unsubscribe();\r\n this._subscriptionRowData$?.unsubscribe();\r\n this.selectedRows.length = 0;\r\n }\r\n\r\n onButtonActionHeaderEmit(typeButton: string): void {\r\n const rowsSelected = this.gridApi?.getSelectedRows();\r\n this.onButtonActionHeader.emit([typeButton, rowsSelected]);\r\n }\r\n\r\n initActionButton(): void {\r\n if (isObjEmpty(this.configButtonsAction)) return;\r\n\r\n const { agGrid } = this.configButtonsAction!;\r\n\r\n if (agGrid && agGrid.actions.length > 0) {\r\n this._configButtonsDefaultAgGrid = [...agGrid.actions];\r\n }\r\n\r\n this.sizeFitColumnAction();\r\n }\r\n\r\n sizeFitColumnAction(): void {\r\n const length = this._configButtonsDefaultAgGrid.filter(({ hide }) => {\r\n return !this._hideFunc(hide);\r\n }).length;\r\n\r\n const width = length == 2 ? 90 : 80;\r\n const minWidth = length > 2 ? length * 33 + 10 : width;\r\n\r\n const newColumns: ColDef = {\r\n headerName: \"Acciones\",\r\n headerClass: \"ag-header__center\",\r\n field: \"\",\r\n width: minWidth,\r\n minWidth,\r\n maxWidth: minWidth,\r\n cellClass: [\"d-flex\", \"justify-content-center\", \"align-items-center\"],\r\n cellStyle: { overflow: \"visible\" },\r\n resizable: false,\r\n sortable: false,\r\n cellRenderer: this.defaultCellRendererActions ? this.defaultCellRendererActions : \"scCellRendererButtonComponent\",\r\n pinned: \"right\",\r\n suppressMenu: true,\r\n lockPosition: true,\r\n };\r\n this.columnDefsAndAddCellActions = this._hideAgGridMenuAction() ? [...this.columnDefs] : [...this.columnDefs, newColumns];\r\n }\r\n\r\n private _hideAgGridMenuAction(): boolean {\r\n if (this.configButtonsAction == null) return true;\r\n return (\r\n this.configButtonsAction?.agGrid?.actions.every(({ hide }) => {\r\n return this._hideFunc(hide);\r\n }) ?? true\r\n );\r\n }\r\n\r\n private _hideFunc(hide: HideFuc | boolean | undefined): boolean {\r\n if (hide == null) return false;\r\n if (typeof hide == \"function\") return hide();\r\n\r\n return hide;\r\n }\r\n\r\n onButtonActionAgGridEmit(rowIndex: number, typeButton: string) {\r\n const IRowNode = this.gridApi?.getDisplayedRowAtIndex(rowIndex);\r\n\r\n if (IRowNode) {\r\n if (typeButton === EnumButtonType.TYPE_EDIT) {\r\n this.onEditRow.emit(IRowNode);\r\n return;\r\n }\r\n if (typeButton === EnumButtonType.TYPE_DELETE) {\r\n this.onDeleteRow.emit([this.gridApi, [IRowNode.data]]);\r\n return;\r\n }\r\n\r\n this.onButtonActionAgGrid.emit([typeButton, IRowNode]);\r\n }\r\n }\r\n\r\n initRowData(): void {\r\n if (!this.configButtonsAction?.agGrid) this.sizeFitColumnAction();\r\n if (this._subscriptionRowData$) {\r\n this._subscriptionRowData$.unsubscribe();\r\n this.gridApi.setGridOption(\"rowData\", []);\r\n this.gridApi?.showLoadingOverlay();\r\n }\r\n this._subscriptionRowData$ = this.rowData.subscribe((data) => {\r\n this.gridApi.setGridOption(\"rowData\", data);\r\n });\r\n }\r\n\r\n changeFilter(value: string) {\r\n this.gridApi?.setQuickFilter(value);\r\n this.onChangeFilter.emit(value);\r\n }\r\n\r\n onAddRowEmit(): void {\r\n this.onAddRow.emit(this.gridApi);\r\n }\r\n\r\n hideHeaderMenuAction(): boolean {\r\n return (\r\n this.configButtonsAction?.header?.submenu?.every(({ hide }) => {\r\n return this._hideFunc(hide);\r\n }) ?? false\r\n );\r\n }\r\n\r\n paginationChanged(): void {\r\n if (this._scAgGridPagination) this._scAgGridPagination.onPaginationChanged();\r\n }\r\n\r\n gridReady(event: GridReadyEvent): void {\r\n this.gridApi = event.api;\r\n\r\n this.initRowData();\r\n this.onGridReady.emit([this.gridApi]);\r\n }\r\n\r\n /**\r\n * @param event: opcional - Contiene el nodo y la data de la fila actual.\r\n * @description Se dispara cada vez que la fila es colocada en su nueva posición (Drag & Drop).\r\n */\r\n rowDragEndEmit(event: RowDragEvent): void {\r\n this.onRowDragEnd.emit(event);\r\n }\r\n\r\n cellContextMenu(event: CellContextMenuEvent) {\r\n this.cellContextMenuActual = event;\r\n this.onCellContextMenu.emit(event);\r\n this.leftMenu = (event.event! as PointerEvent).x.toString();\r\n this.bottomMenu = ((event.event! as PointerEvent).y - 20).toString();\r\n if (event.value !== undefined && this.showMenuDefault) this.menuTrigger?.openMenu();\r\n }\r\n\r\n rowDataChanged(event: RowDataUpdatedEvent): void {\r\n if (!this.gridApi) return;\r\n\r\n if (!this.gridApi?.getDisplayedRowCount()) return;\r\n\r\n this.onGridChange.emit([this.gridApi, event]);\r\n }\r\n\r\n selectionChanged(): void {\r\n this.selectedRows = this.gridApi?.getSelectedRows();\r\n this.onGridSelectChange.emit(this.gridApi?.getSelectedRows());\r\n }\r\n\r\n cellStopEditing(evt: CellEditingStoppedEvent) {\r\n this.onCellStopEditing.emit(evt);\r\n }\r\n\r\n async cellKeyDown(evt: CellKeyDownEvent) {\r\n this.onCellKeyDown.emit(evt);\r\n if ((evt.event as KeyboardEvent).ctrlKey && (evt.event as KeyboardEvent).key === \"ArrowDown\" && evt.node.lastChild) {\r\n this.onGridAddRow.emit(evt);\r\n } else if ((evt.event as KeyboardEvent).ctrlKey && (evt.event as KeyboardEvent).key.toLocaleLowerCase() === \"c\" && this.useGridCopy) {\r\n this.copy(evt);\r\n } else if ((evt.event as KeyboardEvent).ctrlKey && (evt.event as KeyboardEvent).key.toLocaleLowerCase() === \"v\" && this.useGridCopy) {\r\n await this.paste(evt);\r\n }\r\n }\r\n\r\n copy(evt: CellKeyDownEvent): void {\r\n if (!evt.node.isSelected()) {\r\n this.copiedCell = evt;\r\n if (evt.value instanceof Object) navigator.clipboard.writeText((evt.value as INgSelect)?.label ?? \"\");\r\n else navigator.clipboard.writeText(evt.value ?? \"\");\r\n this._messageUtilService.getAlertSuccess(\"Celda Copiada\");\r\n } else {\r\n this.copiedRow = this.gridApi.getSelectedNodes();\r\n this._messageUtilService.getAlertSuccess(\"Fila Copiada\");\r\n }\r\n this.gridApi.deselectAll();\r\n }\r\n\r\n async paste(evt: CellKeyDownEvent) {\r\n if (!evt.node.isSelected() && this.copiedCell) {\r\n if (evt.column.getColId() === this.copiedCell.column.getColId() && (evt.data as FormGroup).get(evt.column.getColId())!.enabled) {\r\n let isValid = true;\r\n if (this.validatePasteCell) isValid = await this.validatePasteCell(this.copiedCell, evt);\r\n else this.gridApi.deselectAll();\r\n this.beforePasteCell.emit([evt, this.copiedCell]);\r\n if (isValid) {\r\n (evt.data as FormGroup).get(evt.column.getColId())!.setValue(this.copiedCell.value);\r\n this.gridApi.refreshCells({\r\n columns: [evt.column],\r\n });\r\n this.afterPasteCell.emit([evt, this.copiedCell]);\r\n }\r\n }\r\n } else if (evt.node.isSelected() && this.copiedRow) {\r\n const IRowNode = this.gridApi.getSelectedNodes();\r\n let isValid = true;\r\n if (this.validatePasteRows) isValid = await this.validatePasteRows(this.copiedRow, IRowNode);\r\n else this.gridApi.deselectAll();\r\n this.beforePasteRows.emit([this.gridApi.getSelectedNodes(), this.copiedRow]);\r\n if (isValid) {\r\n let indexRowCopy = 0;\r\n IRowNode.forEach((r) => {\r\n (r.data as FormGroup).patchValue((this.copiedRow![indexRowCopy].data as FormGroup).getRawValue());\r\n this.gridApi.refreshCells({\r\n rowNodes: [r],\r\n });\r\n indexRowCopy++;\r\n if (indexRowCopy == this.copiedRow!.length) {\r\n indexRowCopy = 0;\r\n }\r\n });\r\n this.afterPasteRows.emit([this.gridApi.getSelectedNodes(), this.copiedRow]);\r\n this.gridApi.deselectAll();\r\n }\r\n }\r\n }\r\n\r\n copyMenu(event: CellContextMenuEvent) {\r\n this.onCopyMenu.emit(event);\r\n this.copy(event);\r\n }\r\n\r\n pasteMenu(event: CellContextMenuEvent) {\r\n this.onPasteMenu.emit(event);\r\n this.paste(event);\r\n }\r\n\r\n get disabledPasteMenu(): boolean {\r\n if (this.gridApi?.getSelectedRows().length == 0 && !this.copiedCell) {\r\n return true;\r\n } else if (this.gridApi?.getSelectedRows().length > 0 && !this.copiedRow) {\r\n return true;\r\n } else if (!this.copiedCell && !this.copiedRow) {\r\n return true;\r\n } else {\r\n return false;\r\n }\r\n }\r\n}\r\n\r\nexport function isObjEmpty<T>(object: T): boolean {\r\n if (object === null || object === undefined) return true;\r\n\r\n return Object.keys(object).length === 0;\r\n}\r\n","<div class=\"w-100\">\r\n <!--===========================================-->\r\n <!-- AG-GRID HEADER -->\r\n <!--===========================================-->\r\n <div\r\n class=\"row justify-content-between align-items-center my-2\"\r\n *ngIf=\"visibleSearch || btnAdd?.visible || viewChildrenButtonHeaders?.length\">\r\n <div [class]=\"fillSearch ? 'col-12 my-2' : searchClass\" *ngIf=\"visibleSearch\">\r\n <input-search (onChange)=\"changeFilter($event)\"></input-search>\r\n </div>\r\n\r\n <div\r\n [class]=\"visibleSearch ? 'col-sm-12 col-md-6 col-lg-6 col-xl-7 col-12' : 'col-12'\"\r\n class=\"sc-ag-grid-header-actions d-flex justify-content-end\"\r\n *ngIf=\"btnAdd?.visible || viewChildrenButtonHeaders?.length || configButtonsAction?.header || configHeader != null\">\r\n <!-- Header actions buttons -->\r\n <ng-container *ngIf=\"configButtonsAction && configHeader\">\r\n <ng-container *ngIf=\"configHeader.disabled === false; else templateAction\">\r\n <ng-container [ngTemplateOutlet]=\"tempActions\"></ng-container>\r\n </ng-container>\r\n\r\n <ng-template #templateAction>\r\n <ng-container *ngIf=\"selectedRows.length === 0; else tempActions\">\r\n <button class=\"btn-icon btn-width btn btn-primary btn-sm\" disabled>\r\n Acciones\r\n <em class=\"fa fa-chevron-down\"></em>\r\n </button>\r\n </ng-container>\r\n </ng-template>\r\n\r\n <ng-template #tempActions>\r\n <button *ngIf=\"hideHeaderMenuAction(); else templateHeaderAction\" class=\"btn-icon btn-width btn btn-primary btn-sm\">\r\n Acciones\r\n <em class=\"fa fa-chevron-down\"></em>\r\n </button>\r\n\r\n <ng-template #templateHeaderAction>\r\n <button type=\"button\" class=\"btn-icon btn-width btn btn-primary btn-sm\" [matMenuTriggerFor]=\"panel.menu\">\r\n Acciones\r\n <em class=\"fa fa-chevron-down\"></em>\r\n </button>\r\n\r\n <sc-menu-panel #panel class=\"d-none\" [subMenus]=\"configHeader.submenu ?? []\"></sc-menu-panel>\r\n </ng-template>\r\n </ng-template>\r\n </ng-container>\r\n <!-- End header actions buttons -->\r\n\r\n <!-- Other buttons -->\r\n <ng-container *ngIf=\"viewChildrenButtonHeaders?.length\">\r\n <ng-container\r\n *ngFor=\"let viewChildrenButtonHeader of viewChildrenButtonHeaders\"\r\n [ngTemplateOutlet]=\"viewChildrenButtonHeader.template\">\r\n </ng-container>\r\n </ng-container>\r\n <!--End other buttons -->\r\n\r\n <!-- Add button -->\r\n <ng-container *ngIf=\"btnAdd?.visible\">\r\n <button\r\n type=\"button\"\r\n class=\"btn-width btn btn-warning btn-sm\"\r\n (click)=\"onAddRowEmit()\"\r\n #buttonAdd\r\n [disabled]=\"btnAdd.disabled ?? false\">\r\n Agregar\r\n </button>\r\n </ng-container>\r\n <!--End add button -->\r\n </div>\r\n </div>\r\n <!--===========================================-->\r\n <!-- AG-GRID HEADER END -->\r\n <!--===========================================-->\r\n\r\n <div class=\"row\">\r\n <div class=\"col-12\" [ngStyle]=\"ngStyleContainer\">\r\n <ag-grid-angular\r\n #agGrid\r\n class=\"ag-theme-balham\"\r\n [ngStyle]=\"ngStyleAgGrid\"\r\n [columnDefs]=\"columnDefsAndAddCellActions\"\r\n [defaultColDef]=\"defaultColDef\"\r\n [components]=\"_frameworkComponents\"\r\n [context]=\"_context\"\r\n [rowSelection]=\"rowSelection\"\r\n [isRowSelectable]=\"isRowSelectable\"\r\n [rowDragManaged]=\"rowDragManaged\"\r\n [domLayout]=\"domLayout\"\r\n [animateRows]=\"animateRows\"\r\n [getRowStyle]=\"getRowStyle\"\r\n [enableRangeSelection]=\"enableRangeSelection\"\r\n [suppressRowTransform]=\"suppressRowTransform\"\r\n [suppressMoveWhenRowDragging]=\"animateRows\"\r\n [overlayNoRowsTemplate]=\"overlayNoRowsTemplate\"\r\n [overlayLoadingTemplate]=\"overlayLoadingTemplate\"\r\n [noRowsOverlayComponentParams]=\"noRowsOverlayComponentParams\"\r\n [suppressRowClickSelection]=\"suppressRowClickSelection\"\r\n [suppressDragLeaveHidesColumns]=\"suppressDragLeaveHidesColumns\"\r\n [suppressScrollOnNewData]=\"suppressScrollOnNewData\"\r\n [suppressPropertyNamesCheck]=\"true\"\r\n [paginationPageSize]=\"pagination ? paginationPageSize : undefined\"\r\n [pagination]=\"pagination\"\r\n [suppressPaginationPanel]=\"suppressPaginationPanel\"\r\n (rowClicked)=\"rowClicked.emit($event)\"\r\n (rowDoubleClicked)=\"rowDoubleClicked.emit($event)\"\r\n (rowSelected)=\"onRowSelected.emit($event)\"\r\n (paginationChanged)=\"paginationChanged()\"\r\n (gridReady)=\"gridReady($event)\"\r\n (rowDragEnd)=\"rowDragEndEmit($event)\"\r\n (cellContextMenu)=\"cellContextMenu($event)\"\r\n [enableCellTextSelection]=\"enableCellTextSelection\"\r\n (rowDataUpdated)=\"rowDataChanged($event)\"\r\n (rowEditingStarted)=\"onRowEditingStarted.emit($event)\"\r\n (cellValueChanged)=\"cellValueChanged.emit($event)\"\r\n (selectionChanged)=\"selectionChanged()\"\r\n (cellEditingStopped)=\"cellStopEditing($event)\"\r\n (cellKeyDown)=\"cellKeyDown($any($event))\"\r\n [multiSortKey]=\"multiSortKey\"\r\n oncontextmenu=\"return false;\">\r\n </ag-grid-angular>\r\n </div>\r\n </div>\r\n\r\n <!--===========================================-->\r\n <!-- AG-GRID PAGINATION -->\r\n <!--===========================================-->\r\n <div class=\"row\" *ngIf=\"pagination\">\r\n <div class=\"col-12\">\r\n <sc-ag-grid-pagination\r\n #scAgGridPagination\r\n [gridApi]=\"gridApi\"\r\n [paginationPageSize]=\"paginationPageSize\"\r\n [pageSizeOptions]=\"pageSizeOptions\"></sc-ag-grid-pagination>\r\n </div>\r\n </div>\r\n <!--===========================================-->\r\n <!-- AG-GRID PAGINATION END -->\r\n <!--===========================================-->\r\n</div>\r\n\r\n<div\r\n *ngIf=\"showMenuDefault\"\r\n oncontextmenu=\"return false;\"\r\n style=\"position: fixed; width: 0px; height: 0px\"\r\n [ngStyle]=\"{ top: bottomMenu + 'px', left: leftMenu + 'px' }\">\r\n <mat-menu oncontextmenu=\"return false;\" #scMenu=\"matMenu\">\r\n <button oncontextmenu=\"return false;\" (click)=\"copyMenu(cellContextMenuActual!)\" mat-menu-item>\r\n <mat-icon>content_copy</mat-icon> <span>Copiar</span>\r\n </button>\r\n <button [disabled]=\"disabledPasteMenu\" oncontextmenu=\"return false;\" (click)=\"pasteMenu(cellContextMenuActual!)\" mat-menu-item>\r\n <mat-icon>content_paste</mat-icon><span>Pegar</span>\r\n </button>\r\n </mat-menu>\r\n <button oncontextmenu=\"return false;\" style=\"visibility: hidden\" mat-button [matMenuTriggerFor]=\"scMenu\" #menuTrigger=\"matMenuTrigger\">\r\n Menu\r\n </button>\r\n</div>\r\n","import { CommonModule } from '@angular/common';\r\nimport { NgModule } from '@angular/core';\r\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\r\nimport { MatCheckboxModule } from '@angular/material/checkbox';\r\nimport { MatDialogModule } from '@angular/material/dialog';\r\nimport { MatIconModule } from '@angular/material/icon';\r\nimport { MatMenuModule } from '@angular/material/menu';\r\nimport { MatProgressBarModule } from '@angular/material/progress-bar';\r\nimport { MatSlideToggleModule } from '@angular/material/slide-toggle';\r\nimport { MatTooltipModule } from '@angular/material/tooltip';\r\nimport { AgGridModule } from 'ag-grid-angular';\r\nimport { NgSelectSimpleModule } from '../ng-select-simple/ng-select-simple.module';\r\nimport { ContainerSharedComponent } from './cell-editors/container-shared/container-shared.component';\r\nimport { ScAgGridButtonHeader } from './directives/scAgGrid.directive';\r\nimport { ScAgGridCustomizableComponent } from './sc-ag-grid-customizable/sc-ag-grid-customizable.component';\r\nimport { NoRowsOverlayDefaultComponent } from './cell-render/no-rows-overlay/noRowsOverlayDefault.component';\r\nimport { NoRowsOverlayCustomComponent } from './cell-render/no-rows-overlay/noRowsOverlayCustom.component';\r\nimport { scCellRendererComponents } from './cell-render/sc-cell-render-config';\r\nimport { InputTextModule } from '../input-text/input-text.module';\r\nimport { InputNumberModule } from '../input-number/input-number.module';\r\nimport { DatePickerModule } from '../date-picker/date-picker.module';\r\nimport { DateTimePickerEditableModule } from '../date-time-picker-editable/date-time-picker-editable.module';\r\nimport { ScAgGridPaginationModule } from './sc-ag-grid-pagination/sc-ag-grid-pagination.module';\r\nimport { InputSearchModule } from './input-search/input-search.module';\r\n\r\n@NgModule({\r\n declarations: [\r\n ScAgGridCustomizableComponent,\r\n ContainerSharedComponent,\r\n NoRowsOverlayDefaultComponent,\r\n NoRowsOverlayCustomComponent,\r\n // Cell Renders\r\n ...scCellRendererComponents,\r\n\r\n //Directives\r\n ScAgGridButtonHeader,\r\n ],\r\n imports: [\r\n CommonModule,\r\n FormsModule,\r\n ReactiveFormsModule,\r\n AgGridModule,\r\n MatMenuModule,\r\n MatIconModule,\r\n MatDialogModule,\r\n MatTooltipModule,\r\n MatCheckboxModule,\r\n MatSlideToggleModule,\r\n MatProgressBarModule,\r\n NgSelectSimpleModule,\r\n InputTextModule,\r\n InputNumberModule,\r\n DatePickerModule,\r\n DateTimePickerEditableModule,\r\n ScAgGridPaginationModule,\r\n InputSearchModule,\r\n ],\r\n exports: [\r\n ScAgGridCustomizableComponent,\r\n ContainerSharedComponent,\r\n //Directives\r\n ScAgGridButtonHeader,\r\n ],\r\n})\r\nexport class ScAgGridModule { }\r\n","export type JustyfyContent = 'start' | 'end' | 'center' | 'between' | 'around';\r\nexport type AlignItems = 'start' | 'end' | 'center' | 'baseline' | 'stretch';\r\n\r\nexport function setClassFlex(\r\n justifyContent: JustyfyContent,\r\n alignItems: AlignItems\r\n) {\r\n return `d-flex justify-content-${justifyContent} align-items-${alignItems}`;\r\n}\r\n\r\nexport function bodyContentCenter(): string {\r\n return setClassFlex('center', 'center');\r\n}\r\n\r\nexport function bodyContentRight(): string {\r\n return setClassFlex('end', 'center');\r\n}\r\n","import { Directionality } from \"@angular/cdk/bidi\";\r\nimport { CdkStepper } from \"@angular/cdk/stepper\";\r\nimport {\r\n ChangeDetectionStrategy,\r\n ChangeDetectorRef,\r\n Component,\r\n ElementRef,\r\n EventEmitter,\r\n Input,\r\n Optional,\r\n Output,\r\n SimpleChanges,\r\n ViewChild,\r\n} from \"@angular/core\";\r\n\r\nexport type LabelType = {\r\n id?: number;\r\n title: string;\r\n subtitle?: string;\r\n subtitleStyleActive?: { [klass: string]: any } | null;\r\n subtitleClassActive?: string | string[] | Set<string> | { [klass: string]: any };\r\n disabled?: boolean;\r\n visibility?: boolean;\r\n icon?: string\r\n};\r\n\r\n@Component({\r\n selector: \"sc-wizard\",\r\n templateUrl: \"./sc-wizard.component.html\",\r\n styleUrls: [\"./sc-wizard.component.scss\"],\r\n providers: [{ provide: CdkStepper, useExisting: ScWizardComponent }],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class ScWizardComponent extends CdkStepper {\r\n _isStepSet = false;\r\n\r\n @ViewChild(\"scWizardContainer\") private readonly _scWizardContainer!: ElementRef<HTMLDivElement>;\r\n @Output() clickStepEmit = new EventEmitter<number>();\r\n @Input() hasAutoFillSteps = true;\r\n @Input() hasSkeleton = false;\r\n @Input() showArrows = true;\r\n @Input() subWizard = false;\r\n @Input() baseSubWizard = 1;\r\n @Input() showExpanded = false;\r\n\tisExpanded = false;\r\n\r\n @Input() stepNavigationHandler: ((stepNumber: number, cdkStepper: CdkStepper) => void) | null = null;\r\n // @Input() hasAutoScrolling = false;\r\n constructor(\r\n @Optional() dir: Directionality,\r\n private changeDetectorRef: ChangeDetectorRef,\r\n elementRef: ElementRef<HTMLElement>\r\n ) {\r\n super(dir, changeDetectorRef, elementRef);\r\n }\r\n\r\n convertLabelToType(label: string): LabelType {\r\n try {\r\n return JSON.parse(label) as LabelType;\r\n } catch {\r\n return {\r\n title: label,\r\n };\r\n }\r\n }\r\n\r\n goTo = (stepToMove: number) => {\r\n if (this.stepNavigationHandler) {\r\n return this.stepNavigationHandler(stepToMove, this);\r\n }\r\n super.selectedIndex = stepToMove;\r\n };\r\n\r\n\tngOnChanges(changes: SimpleChanges): void {\r\n\t\tif (changes['orientation'] && changes['orientation'].currentValue === 'horizontal') {\r\n\t\t\tthis.isExpanded = false;\r\n\t\t}\r\n\t}\r\n}\r\n","<div \r\n [class.sc-wizard-horizontal]=\"this.orientation === 'horizontal'\"\r\n [class.sc-wizard-vertical]=\"this.orientation === 'vertical'\" \r\n [class.sc-wizard-vertical-nav]=\"this.orientation === 'vertical' && isExpanded\">\r\n <div \r\n [class]=\"'sc-wizard-' + orientation + (isExpanded ? '-nav' : '') + '-steps-container'\"\r\n [ngStyle]=\"{ display: 'grid', 'margin-right': '0px' }\">\r\n <!--PREVIOUS STEP BUTTON-->\r\n <button\r\n *ngIf=\"showArrows\"\r\n [disabled]=\"this.selectedIndex === 0\"\r\n [class.sc-wizard-skeleton]=\"hasSkeleton\"\r\n [class]=\"'sc-wizard-' + orientation + '-button prev'\"\r\n type=\"button\"\r\n mat-icon-button\r\n cdkStepperPrevious>\r\n <mat-icon>{{ orientation === \"horizontal\" ? \"chevron_left\" : \"expand_less\" }}</mat-icon>\r\n </button>\r\n\r\n <ng-container *ngIf=\"this.orientation === 'horizontal'\">\r\n <ng-container *ngIf=\"hasAutoFillSteps\">\r\n <div class=\"sc-wizard-horizontal-steps sc-wizard-horizontal-steps-fill\">\r\n <ng-container [ngTemplateOutlet]=\"templateSteps\"></ng-container>\r\n </div>\r\n </ng-container>\r\n\r\n <ng-container *ngIf=\"!hasAutoFillSteps\">\r\n <div class=\"sc-wizard-horizontal-steps\">\r\n <div class=\"sc-wizard-horizontal-steps-wrapper\" [style.width]=\"24 * steps.length + 'rem'\">\r\n <ng-container [ngTemplateOutlet]=\"templateSteps\"></ng-container>\r\n </div>\r\n </div>\r\n </ng-container>\r\n </ng-container>\r\n\r\n <ng-container *ngIf=\"this.orientation === 'vertical'\">\r\n <div style=\"display: flex; justify-content: space-between;\">\r\n <div class=\"sc-wizard-steps sc-wizard-vertical-steps\">\r\n <ng-container [ngTemplateOutlet]=\"templateSteps\"></ng-container>\r\n </div>\r\n <div class=\"sc-wizard-expand-icon-container\">\r\n <ng-container *ngIf=\"showExpanded\">\r\n <em class=\"z-3 fa\" [ngClass]=\"{ 'fa-chevron-right': isExpanded, 'fa-chevron-left': !isExpanded }\" style=\"cursor: pointer; font-size: 18px\" (click)=\"this.isExpanded = !this.isExpanded\"> </em>\r\n </ng-container>\r\n </div>\r\n </div>\r\n </ng-container>\r\n\r\n <!--NEXT STEP BUTTON-->\r\n <button\r\n *ngIf=\"showArrows\"\r\n [disabled]=\"this.steps.length - 1 === this.selectedIndex\"\r\n [class.sc-wizard-skeleton]=\"hasSkeleton\"\r\n [class]=\"'sc-wizard-' + orientation + '-button next'\"\r\n type=\"button\"\r\n mat-icon-button\r\n cdkStepperNext>\r\n <mat-icon>{{ orientation === \"horizontal\" ? \"navigate_next\" : \"expand_more\" }}</mat-icon>\r\n </button>\r\n </div>\r\n\r\n <div #scWizardContainer [class.sc-wizard-skeleton]=\"hasSkeleton\" [class]=\"'sc-wizard-' + orientation + '-content'\">\r\n <ng-container [ngTemplateOutlet]=\"selected ? selected.content : null\"></ng-container>\r\n </div>\r\n</div>\r\n\r\n<ng-template #templateSteps>\r\n\t<div\r\n\t\t*ngFor=\"let step of steps; let i = index\"\r\n\t\t[class.invisible]=\"step.content.elementRef.nativeElement.parentNode.className === 'invisible'\"\r\n\t\t[tabIndex]=\"selectedIndex === i ? 1 : -1\"\r\n\t\t[attr.data-position]=\"i\"\r\n\t\t[class.sc-wizard-steps-item-active]=\"selectedIndex === i && !step.hasError\"\r\n\t\t[class.sc-wizard-steps-item-error]=\"selectedIndex === i && step.hasError\"\r\n\t\t[class.sc-wizard-steps-item-disable]=\"!step.editable || convertLabelToType(step.label)!.disabled\"\r\n\t\tclass=\"sc-wizard-steps-item\"\r\n\t\t[class.sc-wizard-skeleton]=\"hasSkeleton\"\r\n\t\t(click)=\"goTo(i); clickStepEmit.emit(i)\">\r\n\t\t<span\r\n [matTooltipClass]=\"showExpanded && isExpanded && step.hasError ? 'custom-mat-tooltip-error' : 'custom-mat-tooltip-active'\"\r\n [matTooltip]=\"isExpanded ? convertLabelToType(step.label)!.title : ''\"\r\n\t\t\tclass=\"sc-wizard-steps-item-number d-flex justify-content-center align-items-center\"\r\n\t\t\t[class.sc-wizard-steps-item-number-active]=\"selectedIndex === i\"\r\n\t\t\t[class.sc-wizard-steps-item-number-error]=\"step.hasError\">\r\n <ng-container *ngIf=\"!step.hasError && convertLabelToType(step.label).icon\">\r\n\t\t\t\t<em [class]=\"convertLabelToType(step.label).icon\"></em>\r\n\t\t\t</ng-container>\r\n <ng-container *ngIf=\"!step.hasError && !convertLabelToType(step.label).icon\">\r\n\t\t\t\t{{ subWizard ? baseSubWizard + '.' + (i + 1) : i + 1 }}\r\n\t\t\t</ng-container>\r\n\t\t\t<ng-container *ngIf=\"step.hasError\">\r\n\t\t\t\t<em class=\"fa fa-exclamation-triangle\"></em>\r\n\t\t\t</ng-container>\r\n\t\t</span>\r\n\r\n\t\t<div\r\n *ngIf=\"!isExpanded\"\r\n\t\t\tclass=\"sc-wizard-steps-item-label\"\r\n\t\t\t[class.sc-wizard-steps-item-label-error]=\"step.hasError\">\r\n\t\t\t<p\r\n\t\t\t\tclass=\"sc-wizard-steps-item-label-title\"\r\n\t\t\t\t[class.sc-wizard-steps-item-label-title-active]=\"selectedIndex === i\"\r\n\t\t\t\t[class.sc-wizard-steps-item-label-title-error]=\"step.hasError\">\r\n\t\t\t\t{{ convertLabelToType(step.label).title }}\r\n\t\t\t</p>\r\n\t\t\t<span\r\n\t\t\t\tclass=\"sc-wizard-steps-item-label-subtitle\"\r\n\t\t\t\t[ngStyle]=\"selectedIndex === i ? convertLabelToType(step.label).subtitleStyleActive! : null\"\r\n\t\t\t\t[ngClass]=\"selectedIndex === i ? convertLabelToType(step.label).subtitleClassActive! : []\"\r\n\t\t\t\t[class.sc-wizard-steps-item-label-subtitle-error]=\"step.hasError\">\r\n\t\t\t\t<ng-container *ngIf=\"!step.hasError && convertLabelToType(step.label)?.subtitle\">\r\n\t\t\t\t\t{{ convertLabelToType(step.label).subtitle }}\r\n\t\t\t\t</ng-container>\r\n\t\t\t\t<ng-container *ngIf=\"step.hasError\">\r\n\t\t\t\t\t{{ step.errorMessage }}\r\n\t\t\t\t</ng-container>\r\n\t\t\t</span>\r\n\t\t</div>\r\n\t</div>\r\n</ng-template>","import { CommonModule } from '@angular/common';\r\nimport { NgModule } from '@angular/core';\r\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\r\nimport { ScWizardComponent } from './sc-wizard.component';\r\n\r\nimport { CdkStepperModule } from '@angular/cdk/stepper';\r\nimport { MatButtonModule } from '@angular/material/button';\r\nimport { MatIconModule } from '@angular/material/icon';\r\nimport { MatTooltipModule } from '@angular/material/tooltip';\r\n\r\n@NgModule({\r\n\timports: [\r\n\t\tCommonModule,\r\n\t\tFormsModule,\r\n\t\tReactiveFormsModule,\r\n\t\tCdkStepperModule,\r\n\t\tMatButtonModule,\r\n\t\tMatIconModule,\r\n\t\tMatTooltipModule\r\n\t],\r\n\texports: [ScWizardComponent, CdkStepperModule],\r\n\tdeclarations: [ScWizardComponent],\r\n\tproviders: [],\r\n})\r\nexport class ScWizardModule {}\r\n","import { Inject, Injectable } from \"@angular/core\";\r\n\r\n@Injectable()\r\nexport class TextAreaService {\r\n\r\n constructor(\r\n @Inject('TEXT_AREA_FORMAT') private format: string = 'M',\r\n @Inject('TEXT_AREA_SHOW_LABEL') private showLabel: boolean = true,\r\n @Inject('TEXT_AREA_VALIDATOR_MESSAGE') private validatorMessage: boolean = false,\r\n @Inject('TEXT_AREA_TOOLTIP_MESSAGE') private tooltipMessage: boolean = true,\r\n @Inject('TEXT_AREA_SUBMITTED') private submitted: boolean = true,\r\n @Inject('TEXT_AREA_VALIDATOR_ALERT') private validatorAlert: boolean = false\r\n ) {\r\n }\r\n\r\n public getFormat(): string {\r\n return this.format;\r\n }\r\n public getShowLabel(): boolean {\r\n return this.showLabel;\r\n }\r\n public getValidatorMessage(): boolean {\r\n return this.validatorMessage;\r\n }\r\n public getTooltipMessage(): boolean {\r\n return this.tooltipMessage;\r\n }\r\n public getSubmitted(): boolean {\r\n return this.submitted;\r\n }\r\n public getValidatorAlert(): boolean {\r\n return this.validatorAlert;\r\n }\r\n \r\n \r\n}","import {\r\n AfterViewInit,\r\n Component,\r\n ElementRef,\r\n EventEmitter,\r\n Input,\r\n OnChanges,\r\n OnInit,\r\n Output,\r\n Renderer2,\r\n SimpleChanges,\r\n ViewChild,\r\n forwardRef,\r\n} from \"@angular/core\";\r\nimport { AbstractControl, ControlValueAccessor, NG_VALIDATORS, NG_VALUE_ACCESSOR, ValidationErrors } from \"@angular/forms\";\r\nimport { TextAreaService } from \"./text-area.service\";\r\nimport { MessageUtilService } from \"../utils/message-util.service\";\r\nimport { SharedComponentsUtil } from \"../utils/SharedComponentsUtil\";\r\n\r\n@Component({\r\n selector: \"text-area\",\r\n templateUrl: \"./text-area.component.html\",\r\n styleUrls: [\"./text-area.component.scss\"],\r\n providers: [\r\n {\r\n provide: NG_VALUE_ACCESSOR,\r\n useExisting: forwardRef(() => TextAreaComponent),\r\n multi: true,\r\n },\r\n {\r\n provide: NG_VALIDATORS,\r\n useExisting: forwardRef(() => TextAreaComponent),\r\n multi: true,\r\n },\r\n ],\r\n})\r\nexport class TextAreaComponent implements OnInit, OnChanges, AfterViewInit, ControlValueAccessor {\r\n /**\r\n * @description Formato del texto (M: mayúsculas, m: minúsculas)\r\n * @default \"M\"\r\n * @type string\r\n */\r\n @Input() format: string = \"M\";\r\n \r\n /**\r\n * @description Controla la visualización del texto superior\r\n * @default true\r\n * @type boolean\r\n */\r\n @Input() showLabel: boolean = true;\r\n \r\n /**\r\n * @description Texto a mostrar como etiqueta del campo\r\n * @default null\r\n * @type any\r\n */\r\n @Input() label: any = null;\r\n \r\n /**\r\n * @description Longitud máxima del texto\r\n * @default null\r\n * @type number | null\r\n */\r\n @Input() maxLength = null;\r\n \r\n /**\r\n * @description Establece el control como solo lectura\r\n * @default false\r\n * @type boolean\r\n */\r\n @Input() readonly: boolean = false;\r\n \r\n /**\r\n * @description Referencia al siguiente control para navegación\r\n * @default undefined\r\n * @type any\r\n */\r\n @Input() next: any;\r\n \r\n /**\r\n * @description Referencia al control alternativo cuando el siguiente está deshabilitado\r\n * @default undefined\r\n * @type any\r\n */\r\n @Input() nextIsDisable: any;\r\n \r\n /**\r\n * @description Referencia al control anterior para navegación\r\n * @default undefined\r\n * @type any\r\n */\r\n @Input() back: any;\r\n \r\n /**\r\n * @description Referencia al control alternativo cuando el anterior está deshabilitado\r\n * @default undefined\r\n * @type any\r\n */\r\n @Input() backIsDisable: any;\r\n \r\n /**\r\n * @description Indica si el campo es obligatorio\r\n * @default false\r\n * @type boolean\r\n */\r\n @Input() required: boolean = false;\r\n \r\n /**\r\n * @description Muestra mensajes de validación\r\n * @default false\r\n * @type boolean\r\n */\r\n @Input() validatorMessage: boolean = false;\r\n \r\n /**\r\n * @description Muestra alertas de validación\r\n * @default false\r\n * @type boolean\r\n */\r\n @Input() validatorAlert: boolean = false;\r\n \r\n /**\r\n * @description Muestra mensajes de ayuda como tooltips\r\n * @default true\r\n * @type boolean\r\n */\r\n @Input() tooltipMessage: boolean = true;\r\n \r\n /**\r\n * @description Indica si el formulario ha sido enviado para mostrar validaciones\r\n * @default true\r\n * @type boolean\r\n */\r\n @Input() submitted: boolean = true;\r\n \r\n /**\r\n * @description Número de columnas del textarea\r\n * @default null\r\n * @type number | any\r\n */\r\n @Input() cols: number | any = null;\r\n \r\n /**\r\n * @description Número de filas del textarea\r\n * @default null\r\n * @type number | any\r\n */\r\n @Input() rows: number | any = null;\r\n \r\n /**\r\n * @description Altura del textarea\r\n * @default \"\"\r\n * @type string\r\n */\r\n @Input() height: string = \"\";\r\n \r\n /**\r\n * @description Ancho del textarea\r\n * @default \"\"\r\n * @type string\r\n */\r\n @Input() width: string = \"\";\r\n \r\n /**\r\n * @description Deshabilita el control\r\n * @default false\r\n * @type boolean\r\n */\r\n @Input() disabled: boolean = false;\r\n \r\n /**\r\n * @description Texto de marcador de posición\r\n * @default \"\"\r\n * @type string\r\n */\r\n @Input() placeholder: string = \"\";\r\n \r\n /**\r\n * @description Habilita información adicional para la etiqueta\r\n * @default false\r\n * @type boolean\r\n */\r\n @Input() labelInfo: boolean = false;\r\n \r\n /**\r\n * @description Texto informativo adicional para la etiqueta\r\n * @default \"\"\r\n * @type string\r\n */\r\n @Input() textLabelInfo: string = \"\";\r\n @Output() change: EventEmitter<any> = new EventEmitter();\r\n @Output() onchange: EventEmitter<any> = new EventEmitter();\r\n @Output() blur: EventEmitter<any> = new EventEmitter();\r\n @Output() onfocus: EventEmitter<any> = new EventEmitter();\r\n @Output() onNext: EventEmitter<any> = new EventEmitter();\r\n @Output() onBack: EventEmitter<any> = new EventEmitter();\r\n @ViewChild(\"textArea\") textArea!: ElementRef<HTMLTextAreaElement>;\r\n controls: any;\r\n value: any;\r\n sharedComponentsUtil = new SharedComponentsUtil();\r\n _initValue = false;\r\n\r\n constructor(\r\n private messageUtilService: MessageUtilService,\r\n private textAreaService: TextAreaService,\r\n private _render: Renderer2\r\n ) {\r\n this.format = this.textAreaService.getFormat();\r\n this.showLabel = this.textAreaService.getShowLabel();\r\n this.validatorMessage = this.textAreaService.getValidatorMessage();\r\n this.tooltipMessage = this.textAreaService.getTooltipMessage();\r\n this.submitted = this.textAreaService.getSubmitted();\r\n this.validatorAlert = this.textAreaService.getValidatorAlert();\r\n }\r\n\r\n ngOnChanges(changes: SimpleChanges): void {\r\n if (changes[\"submitted\"]) {\r\n if (this.controls !== undefined && changes[\"submitted\"].currentValue) {\r\n this.controls.markAsDirty();\r\n this.controls.markAsTouched();\r\n }\r\n }\r\n }\r\n\r\n ngOnInit() {}\r\n\r\n ngAfterViewInit(): void {}\r\n\r\n onChange = (_: any) => {};\r\n onValidationChange = () => {};\r\n onTouch = () => {};\r\n focus = () => {\r\n this.textArea.nativeElement.focus();\r\n this.textArea.nativeElement.select();\r\n };\r\n\r\n onBlur(value: string): void {\r\n // this.value = this.formatInput(value);\r\n this.onTouch();\r\n // this.onValidationChange();\r\n // this.onChange(this.value);\r\n this.blur.emit(this.formatInput(value));\r\n }\r\n\r\n onFocus(evt: any) {\r\n this.textArea.nativeElement.select();\r\n this.onfocus.emit(evt);\r\n }\r\n\r\n onInput(evt: any) {\r\n const value = this.formatInput(evt);\r\n this.onTouch();\r\n this.onChange(value);\r\n this.onValidationChange();\r\n this.change.emit(value);\r\n this.onchange.emit(value);\r\n }\r\n\r\n writeValue(value: any): void {\r\n if (value) {\r\n this.value = this.formatInput(value);\r\n // this.onChange(this.value);\r\n if (this.controls) {\r\n this._render.setProperty(this.controls, \"value\", this.value);\r\n }\r\n } else {\r\n this.value = null;\r\n }\r\n }\r\n registerOnChange(fn: any): void {\r\n this.onChange = fn;\r\n }\r\n registerOnTouched(fn: any): void {\r\n this.onTouch = fn;\r\n }\r\n setDisabledState(isDisabled: boolean): void {\r\n this.disabled = isDisabled;\r\n }\r\n\r\n validate(control: AbstractControl): ValidationErrors | any {\r\n this.controls = control;\r\n\r\n if (!this._initValue) {\r\n if (this.value) {\r\n this._render.setProperty(this.controls, \"value\", this.value);\r\n }\r\n this._initValue = true;\r\n }\r\n return null;\r\n }\r\n\r\n registerOnValidatorChange?(fn: () => void): void {\r\n this.onValidationChange = fn;\r\n }\r\n\r\n formatInput(value: any) {\r\n if (value !== null && value.toString().trim() !== \"\") {\r\n const newValue = value.toString().trim();\r\n\r\n if (this.format === \"M\") return newValue.toUpperCase();\r\n if (this.format === \"m\") return newValue.toLowerCase();\r\n }\r\n\r\n return value;\r\n }\r\n\r\n ArrowRight(e: any) {\r\n if (!this.disabled) {\r\n let validator = this.sharedComponentsUtil.stopByValidator(this.controls, this.validatorAlert, this.label);\r\n if (validator.error) {\r\n this.messageUtilService.getMessageError(\"000046\", \"Error\", validator.message);\r\n return;\r\n }\r\n }\r\n if (this.next != undefined) {\r\n if (this.next.disabled || this.next.readonly) {\r\n if (this.nextIsDisable != undefined) {\r\n this.nextIsDisable.focus();\r\n }\r\n } else {\r\n this.next.focus();\r\n }\r\n } else {\r\n if (this.nextIsDisable != undefined) {\r\n this.nextIsDisable.focus();\r\n } else {\r\n this.onNext.emit();\r\n }\r\n }\r\n }\r\n\r\n ArrowLeft(e: any) {\r\n if (!this.disabled) {\r\n let validator = this.sharedComponentsUtil.stopByValidator(this.controls, this.validatorAlert, this.label);\r\n if (validator.error) {\r\n this.messageUtilService.getMessageError(\"000046\", \"Error\", validator.message);\r\n return;\r\n }\r\n }\r\n if (this.back != undefined) {\r\n if (this.back.disabled || this.back.readonly) {\r\n if (this.backIsDisable != undefined) {\r\n this.backIsDisable.focus();\r\n }\r\n } else {\r\n this.back.focus();\r\n }\r\n } else {\r\n if (this.backIsDisable != undefined) {\r\n this.backIsDisable.focus();\r\n } else {\r\n this.onBack.emit();\r\n }\r\n }\r\n }\r\n}\r\n","<label *ngIf=\"label != null && label != '' && showLabel\" class=\"d-flex sumax-label mb-0 p-0\"\r\n ><span [title]=\"label\" style=\"white-space: nowrap; overflow: hidden; text-overflow: ellipsis\">{{ label }}</span>\r\n <span *ngIf=\"required\" class=\"ml-1\" [class.text-danger]=\"controls?.errors != null\"> *</span>\r\n <span *ngIf=\"labelInfo\">\r\n <i class=\"fa fa-exclamation-circle text-info ms-2\" [matTooltip]=\"textLabelInfo\" matTooltipClass=\"bg-info\"></i>\r\n </span>\r\n</label>\r\n<div\r\n [class.input-icon]=\"controls?.errors != null && (controls?.dirty || controls?.touched) && submitted\"\r\n [class.right]=\"controls?.errors != null && (controls?.dirty || controls?.touched) && submitted\">\r\n <!-- tooltip-message es el icono de error -->\r\n <tooltip-message\r\n [label]=\"label\"\r\n [controls]=\"controls\"\r\n [validatorMessage]=\"validatorMessage\"\r\n [tooltipMessage]=\"tooltipMessage\"\r\n [submitted]=\"submitted\"></tooltip-message>\r\n\r\n <textarea\r\n #textArea\r\n class=\"form-control\"\r\n [class.text-uppercase]=\"format === 'M'\"\r\n [class.text-lowercase]=\"format === 'm'\"\r\n [placeholder]=\"placeholder\"\r\n [class.is-invalid]=\"controls?.errors != null && (controls?.dirty || controls?.touched) && submitted\"\r\n [(ngModel)]=\"value\"\r\n [readonly]=\"disabled || readonly\"\r\n (blur)=\"onBlur($any($event.target).value)\"\r\n (input)=\"onInput($any($event.target).value)\"\r\n (focus)=\"onFocus($any($event.target).value)\"\r\n (keydown.control.arrowleft)=\"ArrowLeft($event)\"\r\n [rows]=\"rows\"\r\n [cols]=\"cols\"\r\n [ngStyle]=\"{ height: height, width: width }\"\r\n (keydown.control.arrowright)=\"ArrowRight($event)\"></textarea>\r\n</div>\r\n\r\n<!-- error-message es el mansaje que aparece abajo del componente -->\r\n<error-message\r\n [label]=\"label\"\r\n [controls]=\"controls\"\r\n [validatorMessage]=\"validatorMessage\"\r\n [tooltipMessage]=\"tooltipMessage\"\r\n [submitted]=\"submitted\"></error-message>\r\n","export class TextArea {\r\n format?: string;\r\n showLabel?: boolean;\r\n validatorMessage?: boolean;\r\n tooltipMessage?: boolean;\r\n submitted?: boolean;\r\n validatorAlert?: boolean;\r\n }\r\n ","import { CommonModule } from '@angular/common';\r\nimport { ModuleWithProviders, NgModule } from '@angular/core';\r\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\r\nimport { MatTooltipModule } from '@angular/material/tooltip';\r\nimport { RouterModule } from '@angular/router';\r\nimport { ErrorMessageModule } from '../error-message/error-message.module';\r\nimport { TooltipMessageModule } from '../tooltip-message/tooltip-message.module';\r\nimport { TextAreaService } from './text-area.service';\r\nimport { TextAreaComponent } from './text-area.component';\r\nimport { TextArea } from './text-area';\r\n\r\n\r\n@NgModule({\r\n declarations: [TextAreaComponent],\r\n imports: [\r\n CommonModule,\r\n RouterModule,\r\n FormsModule,\r\n ReactiveFormsModule,\r\n ErrorMessageModule,\r\n TooltipMessageModule,\r\n MatTooltipModule\r\n ],\r\n exports: [TextAreaComponent],\r\n providers: []\r\n})\r\nexport class TextAreaModule {\r\n static forRoot(textArea: TextArea = new TextArea()): ModuleWithProviders<TextAreaModule> {\r\n return {\r\n ngModule: TextAreaModule,\r\n providers: [\r\n { provide: 'TEXT_AREA_FORMAT', useValue: textArea.format },\r\n { provide: 'TEXT_AREA_SHOW_LABEL', useValue: textArea.showLabel },\r\n { provide: 'TEXT_AREA_VALIDATOR_MESSAGE', useValue: textArea.validatorMessage },\r\n { provide: 'TEXT_AREA_TOOLTIP_MESSAGE', useValue: textArea.tooltipMessage },\r\n { provide: 'TEXT_AREA_SUBMITTED', useValue: textArea.submitted },\r\n { provide: 'TEXT_AREA_VALIDATOR_ALERT', useValue: textArea.validatorAlert },\r\n TextAreaService\r\n ]\r\n }\r\n }\r\n }\r\n","import { Directive } from '@angular/core';\r\nimport { LabelType } from '../sc-wizard/sc-wizard.component';\r\n\r\n@Directive()\r\nexport abstract class ScWizardBase {\r\n\tprotected abstract labels: LabelType[];\r\n\r\n\tconstructor() {}\r\n\r\n\tconvertToStringLabel(index: number): string {\r\n\t\treturn JSON.stringify(this.labels[index]);\r\n\t}\r\n}\r\n","/*\r\n * Public API Surface of ngx-sumax-erp-component\r\n */\r\n\r\nexport * from \"./lib/date-picker/date-picker.component\";\r\nexport * from \"./lib/date-picker/date-picker.module\";\r\nexport * from \"./lib/date-picker/date-picker.service\";\r\nexport * from \"./lib/date-time-picker-editable/date-time-picker-editable.component\";\r\nexport * from \"./lib/date-time-picker-editable/date-time-picker-editable.module\";\r\nexport * from \"./lib/date-time-picker-editable/date-time-picker-editable.service\";\r\nexport * from \"./lib/date-time-picker/date-time-picker.component\";\r\nexport * from \"./lib/date-time-picker/date-time-picker.module\";\r\nexport * from \"./lib/date-time-picker/date-time-picker.service\";\r\nexport * from \"./lib/input-number/input-number.component\";\r\nexport * from \"./lib/input-number/input-number.module\";\r\nexport * from \"./lib/input-number/input-number.service\";\r\nexport * from \"./lib/input-text/input-text.component\";\r\nexport * from \"./lib/input-text/input-text.module\";\r\nexport * from \"./lib/input-text/input-text.service\";\r\nexport * from \"./lib/ng-select-multiple/ng-select-multiple.component\";\r\nexport * from \"./lib/ng-select-multiple/ng-select-multiple.module\";\r\nexport * from \"./lib/ng-select-multiple/ng-select-multiple.service\";\r\nexport * from \"./lib/ng-select-simple/ng-select-simple.component\";\r\nexport * from \"./lib/ng-select-simple/ng-select-simple.module\";\r\nexport * from \"./lib/ng-select-simple/ng-select-simple.service\";\r\nexport * from \"./lib/sc-ag-grid\";\r\nexport * from \"./lib/sc-ag-grid/cell-render/no-rows-overlay/noRowsOverlayCustom.component\";\r\nexport * from \"./lib/sc-wizard/sc-wizard.module\";\r\nexport * from \"./lib/sc-wizard/sc-wizard.component\";\r\nexport * from \"./lib/text-area/text-area.component\";\r\nexport * from \"./lib/text-area/text-area.module\";\r\nexport * from \"./lib/text-area/text-area.service\";\r\nexport * from './lib/utils/ScWizardBase';","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["parseFns","format","formatFns","isValidFns","isAfterFns","subDaysFns","addDaysFns","differenceInDaysFns","getHoursFns","getMinutesFns","getSecondsFns","startOfMonthFns","endOfMonthFns","formatDistanceFns","i2","i1.MessageUtilService","i2.DatePickerService","i3","i5.errorMessageComponent","i6.tooltipMessageComponent","i8","i4.tooltipMessageComponent","i5","i6.errorMessageComponent","i1","i3.DateTimePickerService","i2.InputNumberService","i2.InputTextService","i2.NgSelectMultipleService","i7","i9","nextId","i4.ScAgGridPaginationComponent","i5.InputSearchComponent","i3.NgSelectSimpleService","i4","i7.tooltipMessageComponent","i3.NgSelectSimpleComponent","i4.InputTextComponent","i5.InputNumberComponent","i6.DatePickerComponent","i7.DateTimePickerEditableComponent","i2.NgSelectSimpleComponent","i5.ScAgGridPaginationComponent","i6.InputSearchComponent","i7.ScMenuPanelComponent","i1.ScCellRendererButtonComponent","i2.ScCellRenderCheckboxListComponent","i3.ScCellRenderSelectComponent","i4.ScCellRenderToggleComponent","i1.ScMenuPanelComponent","i6","i2.TextAreaService"],"mappings":"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"}
1
+ {"version":3,"file":"ngx-sumax-erp-components.mjs","sources":["../../../projects/ngx-sumax-erp-component/src/lib/date-picker/CustomDatePickerI18n.ts","../../../projects/ngx-sumax-erp-component/src/lib/date-picker/CustomDatePickerFormat.ts","../../../projects/ngx-sumax-erp-component/src/lib/utils/SharedComponentsUtil.ts","../../../projects/ngx-sumax-erp-component/src/lib/utils/DateUtil.ts","../../../projects/ngx-sumax-erp-component/src/lib/utils/message-util.service.ts","../../../projects/ngx-sumax-erp-component/src/lib/date-picker/date-picker.service.ts","../../../projects/ngx-sumax-erp-component/src/lib/error-message/error-message.component.ts","../../../projects/ngx-sumax-erp-component/src/lib/error-message/error-message.component.html","../../../projects/ngx-sumax-erp-component/src/lib/tooltip-message/tooltip-message.component.ts","../../../projects/ngx-sumax-erp-component/src/lib/tooltip-message/tooltip-message.component.html","../../../projects/ngx-sumax-erp-component/src/lib/date-picker/date-picker.component.ts","../../../projects/ngx-sumax-erp-component/src/lib/date-picker/date-picker.component.html","../../../projects/ngx-sumax-erp-component/src/lib/error-message/error-message.module.ts","../../../projects/ngx-sumax-erp-component/src/lib/tooltip-message/tooltip-message.module.ts","../../../projects/ngx-sumax-erp-component/src/lib/date-picker/date-picker.ts","../../../projects/ngx-sumax-erp-component/src/lib/date-picker/date-picker.module.ts","../../../projects/ngx-sumax-erp-component/src/lib/utils/DateTimeModel.ts","../../../projects/ngx-sumax-erp-component/src/lib/date-time-picker-editable/date-time-picker-editable.service.ts","../../../projects/ngx-sumax-erp-component/src/lib/date-time-picker-editable/date-time-picker-editable.component.ts","../../../projects/ngx-sumax-erp-component/src/lib/date-time-picker-editable/date-time-picker-editable.component.html","../../../projects/ngx-sumax-erp-component/src/lib/utils/DateTimePickerEditable.ts","../../../projects/ngx-sumax-erp-component/src/lib/date-time-picker-editable/date-time-picker-editable.module.ts","../../../projects/ngx-sumax-erp-component/src/lib/date-time-picker/date-time-picker.service.ts","../../../projects/ngx-sumax-erp-component/src/lib/date-time-picker/date-time-picker.component.ts","../../../projects/ngx-sumax-erp-component/src/lib/date-time-picker/date-time-picker.component.html","../../../projects/ngx-sumax-erp-component/src/lib/date-time-picker/date-time-picker.ts","../../../projects/ngx-sumax-erp-component/src/lib/date-time-picker/date-time-picker.module.ts","../../../projects/ngx-sumax-erp-component/src/lib/input-number/input-number.service.ts","../../../projects/ngx-sumax-erp-component/src/lib/input-number/input-number.component.ts","../../../projects/ngx-sumax-erp-component/src/lib/input-number/input-number.component.html","../../../projects/ngx-sumax-erp-component/src/lib/input-number/input-number.ts","../../../projects/ngx-sumax-erp-component/src/lib/input-number/input-number.module.ts","../../../projects/ngx-sumax-erp-component/src/lib/input-text/input-text.service.ts","../../../projects/ngx-sumax-erp-component/src/lib/input-text/input-text.component.ts","../../../projects/ngx-sumax-erp-component/src/lib/input-text/input-text.component.html","../../../projects/ngx-sumax-erp-component/src/lib/input-text/input-text.ts","../../../projects/ngx-sumax-erp-component/src/lib/input-text/input-text.module.ts","../../../projects/ngx-sumax-erp-component/src/lib/ng-select-multiple/ng-select-multiple.service.ts","../../../projects/ngx-sumax-erp-component/src/lib/ng-select-multiple/ng-select-multiple.component.ts","../../../projects/ngx-sumax-erp-component/src/lib/ng-select-multiple/ng-select-multiple.component.html","../../../projects/ngx-sumax-erp-component/src/lib/ng-select-multiple/ng-select-multiple.ts","../../../projects/ngx-sumax-erp-component/src/lib/ng-select-multiple/ng-select-multiple.module.ts","../../../projects/ngx-sumax-erp-component/src/lib/sc-ag-grid/sc-ag-grid-pagination/sc-ag-grid-pagination.component.ts","../../../projects/ngx-sumax-erp-component/src/lib/sc-ag-grid/sc-ag-grid-pagination/sc-ag-grid-pagination.component.html","../../../projects/ngx-sumax-erp-component/src/lib/sc-ag-grid/input-search/input-search.component.ts","../../../projects/ngx-sumax-erp-component/src/lib/sc-ag-grid/input-search/input-search.component.html","../../../projects/ngx-sumax-erp-component/src/lib/dialog-ag-grid-search/dialog-ag-grid-search.component.ts","../../../projects/ngx-sumax-erp-component/src/lib/dialog-ag-grid-search/dialog-ag-grid-search.component.html","../../../projects/ngx-sumax-erp-component/src/lib/utils/ValidateUtil.ts","../../../projects/ngx-sumax-erp-component/src/lib/ng-select-simple/ng-select-simple.service.ts","../../../projects/ngx-sumax-erp-component/src/lib/ng-select-simple/ng-select-simple.component.ts","../../../projects/ngx-sumax-erp-component/src/lib/ng-select-simple/ng-select-simple.component.html","../../../projects/ngx-sumax-erp-component/src/lib/ng-select-simple/ng-select-simple.ts","../../../projects/ngx-sumax-erp-component/src/lib/sc-ag-grid/sc-ag-grid-pagination/sc-ag-grid-pagination.module.ts","../../../projects/ngx-sumax-erp-component/src/lib/sc-ag-grid/input-search/input-search.module.ts","../../../projects/ngx-sumax-erp-component/src/lib/dialog-ag-grid-search/dialog-ag-grid-search.module.ts","../../../projects/ngx-sumax-erp-component/src/lib/ng-select-simple/ng-select-simple.module.ts","../../../projects/ngx-sumax-erp-component/src/lib/utils/IScAgGrid.ts","../../../projects/ngx-sumax-erp-component/src/lib/sc-ag-grid/cell-editors/container-shared/container-shared.component.ts","../../../projects/ngx-sumax-erp-component/src/lib/sc-ag-grid/cell-editors/container-shared/container-shared.component.html","../../../projects/ngx-sumax-erp-component/src/lib/sc-ag-grid/cell-render/no-rows-overlay/noRowsOverlayCustom.component.ts","../../../projects/ngx-sumax-erp-component/src/lib/sc-ag-grid/cell-render/no-rows-overlay/noRowsOverlayDefault.component.ts","../../../projects/ngx-sumax-erp-component/src/lib/sc-ag-grid/cell-render/sc-cell-render-button/sc-cell-render-button.component.ts","../../../projects/ngx-sumax-erp-component/src/lib/sc-ag-grid/cell-render/sc-cell-render-button/sc-cell-render-button.component.html","../../../projects/ngx-sumax-erp-component/src/lib/sc-ag-grid/cell-render/sc-cell-render-checkbox-list/sc-cell-render-checkbox-list.component.ts","../../../projects/ngx-sumax-erp-component/src/lib/sc-ag-grid/cell-render/sc-cell-render-select/sc-cell-render-select.component.ts","../../../projects/ngx-sumax-erp-component/src/lib/sc-ag-grid/cell-render/sc-cell-render-toggle/sc-cell-render-toggle.component.ts","../../../projects/ngx-sumax-erp-component/src/lib/sc-ag-grid/directives/scAgGrid.directive.ts","../../../projects/ngx-sumax-erp-component/src/lib/sc-ag-grid/cell-render/sc-cell-render-config.ts","../../../projects/ngx-sumax-erp-component/src/lib/sc-ag-grid/sc-ag-grid-customizable/sc-ag-grid-customizable.component.ts","../../../projects/ngx-sumax-erp-component/src/lib/sc-ag-grid/sc-ag-grid-customizable/sc-ag-grid-customizable.component.html","../../../projects/ngx-sumax-erp-component/src/lib/sc-ag-grid/sc-ag-grid.module.ts","../../../projects/ngx-sumax-erp-component/src/lib/sc-ag-grid/sc-grid.uitl.ts","../../../projects/ngx-sumax-erp-component/src/lib/sc-wizard/sc-wizard.component.ts","../../../projects/ngx-sumax-erp-component/src/lib/sc-wizard/sc-wizard.component.html","../../../projects/ngx-sumax-erp-component/src/lib/sc-wizard/sc-wizard.module.ts","../../../projects/ngx-sumax-erp-component/src/lib/text-area/text-area.service.ts","../../../projects/ngx-sumax-erp-component/src/lib/text-area/text-area.component.ts","../../../projects/ngx-sumax-erp-component/src/lib/text-area/text-area.component.html","../../../projects/ngx-sumax-erp-component/src/lib/text-area/text-area.ts","../../../projects/ngx-sumax-erp-component/src/lib/text-area/text-area.module.ts","../../../projects/ngx-sumax-erp-component/src/lib/utils/ScWizardBase.ts","../../../projects/ngx-sumax-erp-component/src/public-api.ts","../../../projects/ngx-sumax-erp-component/src/ngx-sumax-erp-components.ts"],"sourcesContent":["import { Injectable } from \"@angular/core\";\r\nimport { NgbDateStruct, NgbDatepickerI18n } from \"@ng-bootstrap/ng-bootstrap\";\r\n\r\ninterface I18N {\r\n fr: {\r\n weekdays: string[];\r\n months: string[];\r\n };\r\n}\r\n\r\nconst I18N_VALUES: I18N = {\r\n fr: {\r\n weekdays: [\"Lu\", \"Ma\", \"Mi\", \"Jue\", \"Vi\", \"Sa\", \"Do\"],\r\n months: [\"Ene\", \"Feb\", \"Mar\", \"Abr\", \"May\", \"Jun\", \"Jul\", \"Ago\", \"Sep\", \"Oct\", \"Nov\", \"Dic\"],\r\n },\r\n // other languages you would support\r\n};\r\n\r\n// Define a service holding the language. You probably already have one if your app is i18ned. Or you could also\r\n// use the Angular LOCALE_ID value\r\n@Injectable()\r\nexport class I18n {\r\n language: keyof I18N = \"fr\";\r\n}\r\n\r\n// Define custom service providing the months and weekdays translations\r\n@Injectable()\r\nexport class CustomDatepickerI18n extends NgbDatepickerI18n {\r\n constructor(private _i18n: I18n) {\r\n super();\r\n }\r\n\r\n getWeekdayShortName(weekday: number): string {\r\n return I18N_VALUES[this._i18n.language].weekdays[weekday - 1];\r\n }\r\n getMonthShortName(month: number): string {\r\n return I18N_VALUES[this._i18n.language].months[month - 1];\r\n }\r\n getMonthFullName(month: number): string {\r\n return this.getMonthShortName(month);\r\n }\r\n\r\n getDayAriaLabel(date: NgbDateStruct): string {\r\n return `${date.day}-${date.month}-${date.year}`;\r\n }\r\n\r\n getWeekdayLabel(weekday: number): string {\r\n return I18N_VALUES[this._i18n.language].weekdays[weekday - 1];\r\n }\r\n}\r\n","import { Injectable } from \"@angular/core\";\r\nimport { NgbDateParserFormatter, NgbDateStruct } from \"@ng-bootstrap/ng-bootstrap\";\r\n\r\nexport function toInteger(value: any): number {\r\n return parseInt(`${value}`, 10);\r\n}\r\n\r\nexport function isNumber(value: any): value is number {\r\n return !isNaN(toInteger(value));\r\n}\r\n\r\nexport function padNumber(value: number) {\r\n if (isNumber(value)) {\r\n return `0${value}`.slice(-2);\r\n } else {\r\n return \"\";\r\n }\r\n}\r\n@Injectable()\r\nexport class CustomDatepickerFormat extends NgbDateParserFormatter {\r\n parse(value: string): NgbDateStruct | any {\r\n if (value) {\r\n const dateParts = value.trim().split(\"-\");\r\n if (dateParts.length === 1 && isNumber(dateParts[0])) {\r\n return { day: toInteger(dateParts[0]), month: null, year: null };\r\n } else if (dateParts.length === 2 && isNumber(dateParts[0]) && isNumber(dateParts[1])) {\r\n return { day: toInteger(dateParts[0]), month: toInteger(dateParts[1]), year: null };\r\n } else if (dateParts.length === 3 && isNumber(dateParts[0]) && isNumber(dateParts[1]) && isNumber(dateParts[2])) {\r\n return { day: toInteger(dateParts[0]), month: toInteger(dateParts[1]), year: toInteger(dateParts[2]) };\r\n }\r\n }\r\n return null;\r\n }\r\n\r\n format(date: NgbDateStruct): string {\r\n return date ? `${isNumber(date.day) ? padNumber(date.day) : \"\"}/${isNumber(date.month) ? padNumber(date.month) : \"\"}/${date.year}` : \"\";\r\n }\r\n}\r\n","export class SharedComponentsUtil {\r\n stopByValidator(controls:any, validatorAlert: boolean, label: string){\r\n let validateError = null;\r\n if(controls != undefined){\r\n validateError = controls.errors;\r\n };\r\n let message = \"\";\r\n if(validatorAlert && validateError != null ){\r\n if(validateError.required != undefined){\r\n message = `El Campo ${label} es Requerido.`;\r\n }\r\n else if(validateError.minlength != undefined){\r\n message = `El Campo ${label} requiere ${validateError.minlength.requiredLength} caracteres minimo.`;\r\n }\r\n else if(validateError.maxlength != undefined){\r\n message = `El Campo ${label} requiere ${validateError.maxlength.requiredLength} caracteres maximo.`;\r\n }\r\n else if(validateError.pattern != undefined){\r\n message = `El Campo ${label} tiene formato incorrecto.`;\r\n }\r\n else if(validateError.customValidator != undefined){\r\n message = `${validateError.customValidator.message}`;\r\n }\r\n \r\n return {\r\n error: true,\r\n message: message\r\n };\r\n }else{\r\n return {\r\n error: false,\r\n message: \"Sin errores\"\r\n };\r\n }\r\n }\r\n\t\r\n}","import { NgOption } from \"@ng-select/ng-select\";\r\nimport {\r\n addDays as addDaysFns,\r\n differenceInDays as differenceInDaysFns,\r\n endOfMonth as endOfMonthFns,\r\n formatDistance as formatDistanceFns,\r\n format as formatFns,\r\n getHours as getHoursFns,\r\n getMinutes as getMinutesFns,\r\n getSeconds as getSecondsFns,\r\n isAfter as isAfterFns,\r\n isValid as isValidFns,\r\n parse as parseFns,\r\n parseISO,\r\n startOfMonth as startOfMonthFns,\r\n subDays as subDaysFns,\r\n} from \"date-fns\";\r\n\r\nexport type DateFormat =\r\n | \"ISO\"\r\n | \"ISODATE\"\r\n | \"ISODATETIME_NO_TIMEZONE\"\r\n | \"ISODATETIME_NO_TIMEZONE_NO_SEC\"\r\n | \"DATE\"\r\n | \"DATE_GUION\"\r\n | \"ISODATETIME_MAXHOURS\"\r\n | \"DATETIME\"\r\n | \"DATETIME_NO_SEC\"\r\n | \"TIME\"\r\n | \"MASK_24_HOURS\"\r\n | \"MASK_12_HOURS\"\r\n | \"MIDDAY_INDICATOR\";\r\n\r\nexport class DateUtil {\r\n private static readonly dateRegex = /\\d{2}\\/\\d{2}\\/\\d{4}/;\r\n private static readonly timeRegex = /(0?[0-9]|1[0-9]|2[0-3]):([0-5][0-9]):([0-5][0-9])/;\r\n private static readonly ISO8601 =\r\n /^(\\d{4}-\\d{2}-\\d{2})(T(0?[0-9]|1[0-9]|2[0-3]):([0-5][0-9]):([0-5][0-9])(\\.\\d+)?(Z|[+-]\\d{2}:\\d{2})?)?$/;\r\n private static readonly isoNoSec = /^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}$/;\r\n private static readonly DATE_FORMATS: Record<DateFormat, string> = {\r\n ISO: \"yyyy-MM-dd'T'HH:mm:ss.SSS'Z'\",\r\n ISODATE: \"yyyy-MM-dd\",\r\n ISODATETIME_NO_TIMEZONE: \"yyyy-MM-dd'T'HH:mm:ss\",\r\n ISODATETIME_NO_TIMEZONE_NO_SEC: \"yyyy-MM-dd'T'HH:mm\",\r\n DATE: \"dd/MM/yyyy\",\r\n DATE_GUION: \"dd-MM-yyyy\",\r\n TIME: \"HH:mm:ss\",\r\n DATETIME: \"dd/MM/yyyy HH:mm:ss\",\r\n DATETIME_NO_SEC: \"dd/MM/yyyy hh:mm a\",\r\n ISODATETIME_MAXHOURS: \"yyyy-MM-dd'T'23:59:59\",\r\n MASK_24_HOURS: \"HH\",\r\n MASK_12_HOURS: \"hh\",\r\n MIDDAY_INDICATOR: \"a\",\r\n };\r\n public static MONTHS = [\r\n \"enero\",\r\n \"febrero\",\r\n \"marzo\",\r\n \"abril\",\r\n \"mayo\",\r\n \"junio\",\r\n \"julio\",\r\n \"agosto\",\r\n \"setiembre\",\r\n \"octubre\",\r\n \"noviembre\",\r\n \"diciembre\",\r\n ];\r\n\r\n public static now(format: DateFormat = \"DATE\") {\r\n return this.format(new Date(), format);\r\n }\r\n\r\n public static parse(date: string, format: DateFormat): Date {\r\n return parseFns(date, this.DATE_FORMATS[format], new Date());\r\n }\r\n\r\n public static format(date: Date, format: DateFormat): string {\r\n return formatFns(date, this.DATE_FORMATS[format]);\r\n }\r\n\r\n static isValidDatePickerValue(value: string): boolean {\r\n return !value || value.length !== 10 ? false : this.isValid(this.parse(value, \"DATE\"));\r\n }\r\n\r\n static isValid(date: string | Date | number): boolean {\r\n return isValidFns(date);\r\n }\r\n\r\n static isAfter(date: string | Date, dateToCompare: string | Date): boolean {\r\n return isAfterFns(this.toDate(date), this.toDate(dateToCompare));\r\n }\r\n\r\n public static subDays(date: string | Date, days: number): Date {\r\n const newDate = this.toDate(date);\r\n return subDaysFns(newDate, days);\r\n }\r\n\r\n public static addDays(date: string | Date, days: number): Date {\r\n const newDate = this.toDate(date);\r\n return addDaysFns(newDate, days);\r\n }\r\n\r\n static toStrFormat(date: string | Date, targetFormat: DateFormat): string {\r\n return this.format(this.toDate(date), targetFormat);\r\n }\r\n\r\n public static toDate(date: string | Date): Date {\r\n if (date instanceof Date) {\r\n return date;\r\n }\r\n const dateFormat = this.getFormat(date);\r\n const parsedDate = dateFormat == \"ISO\" ? parseISO(date) : this.parse(date, dateFormat);\r\n if (!this.isValid(parsedDate)) {\r\n throw new Error(\"Invalid date\");\r\n }\r\n return parsedDate;\r\n }\r\n\r\n public static diffDays(later: string | Date, earlier: string | Date): number {\r\n const laterDate = this.toDate(later);\r\n const earlierDate = this.toDate(earlier);\r\n return differenceInDaysFns(laterDate, earlierDate);\r\n }\r\n\r\n static getYear(date: string | Date = new Date()): number {\r\n const dateObj = this.toDate(date);\r\n return dateObj.getUTCFullYear();\r\n }\r\n\r\n static getMonth(date: string | Date = new Date()): number {\r\n const dateObj = this.toDate(date);\r\n return dateObj.getUTCMonth() + 1;\r\n }\r\n\r\n static getDay(date: string | Date = new Date()): number {\r\n const dateObj = this.toDate(date);\r\n return dateObj.getUTCDate();\r\n }\r\n\r\n static getHours(date: string | Date = new Date()): number {\r\n const dateObj = this.toDate(date);\r\n return getHoursFns(dateObj);\r\n }\r\n\r\n static getMinutes(date: string | Date = new Date()): number {\r\n const dateObj = this.toDate(date);\r\n return getMinutesFns(dateObj);\r\n }\r\n\r\n static getSeconds(date: string | Date = new Date()): number {\r\n const dateObj = this.toDate(date);\r\n return getSecondsFns(dateObj);\r\n }\r\n\r\n static startOfMonth(targetFormat: DateFormat = \"DATE\"): string {\r\n return this.format(startOfMonthFns(new Date()), targetFormat);\r\n }\r\n\r\n static endOfMonth(fchIni: string | Date = new Date(), targetFormat: DateFormat = \"DATE\"): string {\r\n const date = this.toDate(fchIni);\r\n return this.format(endOfMonthFns(date), targetFormat);\r\n }\r\n\r\n static formatDistance(dateStr: string | Date): string {\r\n return formatDistanceFns(new Date(), this.toDate(dateStr));\r\n }\r\n\r\n static getFormat(dateStr: string): DateFormat {\r\n if (this.ISO8601.test(dateStr)) {\r\n return \"ISO\";\r\n } else if (this.dateRegex.test(dateStr)) {\r\n return \"DATE\";\r\n } else if (this.timeRegex.test(dateStr)) {\r\n return \"TIME\";\r\n } else if (this.isoNoSec.test(dateStr)) {\r\n return \"ISODATETIME_NO_TIMEZONE_NO_SEC\";\r\n } else {\r\n throw new Error(\"Unknown format\");\r\n }\r\n }\r\n\r\n static getNgOptionList(): NgOption[] {\r\n return this.MONTHS.map((month, index) => ({\r\n value: index,\r\n label: month.charAt(0).toUpperCase() + month.slice(1),\r\n }));\r\n }\r\n\r\n static validatorFecha(fch: string) {\r\n const datedFch = this.parse(fch, \"DATE\");\r\n const valid = this.isValid(datedFch);\r\n let errfch = \"\";\r\n if (!valid) {\r\n errfch = \"Fecha no válida\";\r\n if (typeof errfch === \"undefined\") {\r\n return { valid: true, errfch };\r\n }\r\n }\r\n return { valid, errfch };\r\n }\r\n\r\n ///------------------------------------------------------------------///\r\n\r\n static dateAutoComplete(fecha: any) {\r\n let now = new Date();\r\n let dia;\r\n let mes;\r\n let anio;\r\n switch (fecha.length) {\r\n case 1:\r\n case 2:\r\n dia = fecha.padStart(2, \"0\");\r\n mes = (now.getMonth() + 1).toString().padStart(2, \"0\");\r\n anio = now.getFullYear();\r\n break;\r\n case 3:\r\n case 4:\r\n dia = fecha.substring(0, 2);\r\n mes = fecha.substring(2, 4).padStart(2, \"0\");\r\n anio = now.getFullYear();\r\n break;\r\n case 6:\r\n dia = fecha.substring(0, 2);\r\n mes = fecha.substring(2, 4);\r\n anio = \"20\" + fecha.substring(4, 6);\r\n break;\r\n case 8:\r\n dia = fecha.substring(0, 2);\r\n mes = fecha.substring(2, 4);\r\n anio = fecha.substring(4);\r\n break;\r\n case 10:\r\n if (this.isValid(fecha)) {\r\n let d = this.parse(fecha, \"DATE\");\r\n dia = d.getDay();\r\n mes = d.getMonth() + 1;\r\n anio = d.getFullYear();\r\n }\r\n break;\r\n }\r\n if (typeof dia !== \"undefined\" || typeof mes !== \"undefined\" || typeof anio !== \"undefined\") {\r\n return this.toStrFormat(new Date(anio, mes - 1, dia), \"DATE\");\r\n } else {\r\n return this.toStrFormat(new Date(), \"DATE\");\r\n }\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\n//import toastr from 'toastr';\r\n import * as toastr_ from 'toastr';\r\n const toastr = toastr_;\r\n\r\n@Injectable({\r\n\tprovidedIn: 'root'\r\n})\r\nexport class MessageUtilService {\r\n\tmessage = '';\r\n\tconstructor() { }\r\n\r\n\tgetMessageError(codigo: string, element: string = '', message?: string): any {\r\n\t\t// tslint:disable: indent\r\n\t\tswitch (codigo) {\r\n\t\t\tcase 'A001':\r\n\t\t\t\tthis.message = `El campo ${element} es requerido`;\r\n\t\t\t\tbreak;\r\n\t\t\tcase 'A002':\r\n\t\t\t\tthis.message = `El campo ${element} no cumple con el formato establecido`;\r\n\t\t\t\tbreak;\r\n\t\t\tcase 'A003':\r\n\t\t\t\tthis.message = `La fecha ingresada no puede ser superior a la fecha del dí­a actual`;\r\n\t\t\t\tbreak;\r\n\t\t\tcase 'A004':\r\n\t\t\t\tthis.message = `La fecha del documento no puede ser menor a la fecha del ultimo documento ingresado`;\r\n\t\t\t\tbreak;\r\n\t\t\tcase '000046':\r\n\t\t\t\tthis.message = `${message}`;\r\n\t\t\t\tbreak;\r\n\t\t\tcase 'A005':\r\n\t\t\t\tthis.message = `No ha ingresado la serie`;\r\n\t\t\t\tbreak;\r\n\t\t\tcase 'A999':\r\n\t\t\t\tthis.message = `${element}`;\r\n\t\t\t\telement = 'Error';\r\n\t\t\t\t// return toastr.error(this.message);\r\n\t\t\t\tbreak;\r\n\t\t\tcase '500':\r\n\t\t\t\tthis.message = `Por favor comuniquese con el soporte del Sistema`;\r\n\t\t\t\tbreak;\r\n\t\t\tdefault:\r\n\t\t\t\tthis.message = element;\r\n\t\t\t\tbreak;\r\n\t\t}\r\n\t\ttoastr.options.positionClass = 'toast-bottom-right'\r\n\t\ttoastr.options.closeButton = true;\r\n\t\ttoastr.options.progressBar = true;\r\n\t\ttoastr.options.newestOnTop = true;\r\n\t\ttoastr.error(this.message, `<h5 class='text-white'> ${element} </h5>`);\r\n\t\treturn toastr;\r\n\t}\r\n\r\n\tgetAlertWarning(mensaje: string): any{\r\n\t\ttoastr.options.positionClass = 'toast-bottom-right'\r\n\t\ttoastr.options.closeButton = true;\r\n\t\ttoastr.options.progressBar = true;\r\n\t\ttoastr.options.newestOnTop = true;\r\n\t\ttoastr.warning(mensaje);\r\n\t\treturn toastr;\r\n\t}\r\n\r\n\tgetAlertSuccess(mensaje: string): any{\r\n\t\ttoastr.options.positionClass = 'toast-bottom-right'\r\n\t\ttoastr.options.closeButton = true;\r\n\t\ttoastr.options.progressBar = true;\r\n\t\ttoastr.options.newestOnTop = true;\r\n\t\ttoastr.success(mensaje);\r\n\t\treturn toastr;\r\n\t}\r\n\r\n\r\n}\r\n","import { Inject, Injectable } from \"@angular/core\";\r\n\r\n@Injectable()\r\nexport class DatePickerService {\r\n\r\n constructor(\r\n @Inject('DATE_PICKER_SHOW_LABEL') private showLabel: boolean = true,\r\n @Inject('DATE_PICKER_AUTOCOMPLETE') private autocomplete: string = \"off\",\r\n @Inject('DATE_PICKER_NO_AUTO_COMPLETE_NULL') private noAutoCompleteNull: boolean = true,\r\n @Inject('DATE_PICKER_FOCUS_INITIAL') private focusInitial: boolean = false,\r\n @Inject('DATE_PICKER_VALIDATOR_MESSAGE') private validatorMessage: boolean = false,\r\n @Inject('DATE_PICKER_TOOLTIP_MESSAGE') private tooltipMessage: boolean = true,\r\n @Inject('DATE_PICKER_SUBMITTED') private submitted: boolean = true,\r\n @Inject('DATE_PICKER_VALIDATOR_ALERT') private validatorAlert: boolean = false\r\n ) {\r\n }\r\n\r\n public getShowLabel(): boolean {\r\n return this.showLabel;\r\n }\r\n public getAutocomplete(): string {\r\n return this.autocomplete;\r\n }\r\n public getNoAutoCompleteNull(): boolean {\r\n return this.noAutoCompleteNull;\r\n }\r\n public getFocusInitial(): boolean {\r\n return this.focusInitial;\r\n }\r\n public getValidatorMessage(): boolean {\r\n return this.validatorMessage;\r\n }\r\n public getTooltipMessage(): boolean {\r\n return this.tooltipMessage;\r\n }\r\n public getSubmitted(): boolean {\r\n return this.submitted;\r\n }\r\n public getValidatorAlert(): boolean {\r\n return this.validatorAlert;\r\n }\r\n \r\n \r\n}","import { Component, OnInit, Input } from \"@angular/core\";\r\n\r\n@Component({\r\n selector: \"error-message\",\r\n templateUrl: \"./error-message.component.html\",\r\n styleUrls: [\"./error-message.component.scss\"],\r\n})\r\nexport class errorMessageComponent implements OnInit {\r\n /**\r\n * @description Muestra mensajes de ayuda como tooltips\r\n * @default undefined\r\n * @type boolean\r\n */\r\n @Input() tooltipMessage: boolean | undefined;\r\n \r\n /**\r\n * @description Muestra mensajes de validación\r\n * @default undefined\r\n * @type boolean\r\n */\r\n @Input() validatorMessage: boolean | undefined;\r\n \r\n /**\r\n * @description Controles del formulario para validación\r\n * @default undefined\r\n * @type any\r\n */\r\n @Input() controls: any;\r\n \r\n /**\r\n * @description Etiqueta del campo para mostrar en mensajes de error\r\n * @default undefined\r\n * @type any\r\n */\r\n @Input() label: any;\r\n \r\n /**\r\n * @description Indica si el formulario ha sido enviado para mostrar validaciones\r\n * @default undefined\r\n * @type boolean\r\n */\r\n @Input() submitted: boolean | undefined;\r\n\r\n constructor() {}\r\n\r\n ngOnInit() {}\r\n}\r\n","<!-- VALIDATOR GENERICOS -->\r\n<small *ngIf=\"validatorMessage && controls?.errors?.required && (controls?.dirty || controls?.touched) && submitted\" class=\"text-danger\">\r\n El campo {{ label }} es requerido<br />\r\n</small>\r\n<small *ngIf=\"validatorMessage && controls?.errors?.minlength && (controls?.dirty || controls?.touched) && submitted\" class=\"text-danger\">\r\n El campo {{ label }} requiere {{ controls.errors.minlength.requiredLength }} caracteres minimo.<br />\r\n</small>\r\n<small *ngIf=\"validatorMessage && controls?.errors?.maxlength && (controls?.dirty || controls?.touched) && submitted\" class=\"text-danger\">\r\n El campo {{ label }} requiere {{ controls.errors.maxlength.requiredLength }} caracteres maximo.<br />\r\n</small>\r\n<small *ngIf=\"validatorMessage && controls?.errors?.pattern && (controls?.dirty || controls?.touched) && submitted\" class=\"text-danger\">\r\n El campo {{ label }} tiene formato incorrecto.<br />\r\n</small>\r\n<small *ngIf=\"validatorMessage && controls?.errors?.min && (controls?.dirty || controls?.touched) && submitted\" class=\"text-danger\">\r\n El valor minimo del campo {{ label }} es: {{ controls?.errors?.min.min }}\r\n</small>\r\n<small *ngIf=\"validatorMessage && controls?.errors?.max && (controls?.dirty || controls?.touched) && submitted\" class=\"text-danger\">\r\n El valor máximo del campo {{ label }} es: {{ controls?.errors?.max.max }}\r\n</small>\r\n<!-- CUSTOM VALIDATOR -->\r\n<small\r\n *ngIf=\"validatorMessage && controls?.errors?.customValidator && (controls?.dirty || controls?.touched) && submitted\"\r\n class=\"text-danger\">\r\n {{ controls.errors?.customValidator.message }}<br />\r\n</small>\r\n","import { Component, OnInit, Input } from \"@angular/core\";\r\n\r\n@Component({\r\n selector: \"tooltip-message\",\r\n templateUrl: \"./tooltip-message.component.html\",\r\n styleUrls: [\"./tooltip-message.component.scss\"],\r\n})\r\nexport class tooltipMessageComponent implements OnInit {\r\n /**\r\n * @description Muestra mensajes de ayuda como tooltips\r\n * @default undefined\r\n * @type boolean\r\n */\r\n @Input() tooltipMessage: boolean | undefined;\r\n \r\n /**\r\n * @description Muestra mensajes de validación\r\n * @default undefined\r\n * @type boolean\r\n */\r\n @Input() validatorMessage: boolean | undefined;\r\n \r\n /**\r\n * @description Control asociado para validaciones\r\n * @default undefined\r\n * @type any\r\n */\r\n @Input() controls: any;\r\n \r\n /**\r\n * @description Texto a mostrar como etiqueta\r\n * @default undefined\r\n * @type any\r\n */\r\n @Input() label: any;\r\n \r\n /**\r\n * @description Indica si el formulario ha sido enviado para mostrar validaciones\r\n * @default undefined\r\n * @type boolean\r\n */\r\n @Input() submitted: boolean | undefined;\r\n\r\n constructor() {}\r\n\r\n ngOnInit() {}\r\n}\r\n","<i\r\n *ngIf=\"controls?.errors != null && (controls?.dirty || controls?.touched) && submitted\"\r\n class=\"fa fa-exclamation-circle text-danger mb-2 ml-3\"\r\n [matTooltip]=\"\r\n tooltipMessage && submitted && !validatorMessage && controls?.errors?.required && (controls?.dirty || controls?.touched)\r\n ? 'El campo ' + label + ' es requerido.'\r\n : tooltipMessage && submitted && !validatorMessage && controls?.errors?.minlength && (controls?.dirty || controls?.touched)\r\n ? 'El campo ' + label + ' requiere ' + controls.errors.minlength.requiredLength + ' caracteres minimo.'\r\n : tooltipMessage && submitted && !validatorMessage && controls?.errors?.maxlength && (controls?.dirty || controls?.touched)\r\n ? 'El campo ' + label + ' requiere ' + controls.errors.maxlength.requiredLength + ' caracteres maximo.'\r\n : tooltipMessage && submitted && !validatorMessage && controls?.errors?.min && (controls?.dirty || controls?.touched)\r\n ? 'El valor minimo del campo ' + label + ' es: ' + controls.errors.min.min\r\n : tooltipMessage && submitted && !validatorMessage && controls?.errors?.max && (controls?.dirty || controls?.touched)\r\n ? 'El valor máximo del campo ' + label + ' es: ' + controls.errors.max.max\r\n : tooltipMessage && submitted && !validatorMessage && controls?.errors?.pattern && (controls?.dirty || controls?.touched)\r\n ? 'El campo ' + label + ' tiene formato incorrecto.'\r\n : tooltipMessage &&\r\n submitted &&\r\n !validatorMessage &&\r\n controls?.errors?.customValidator &&\r\n (controls?.dirty || controls?.touched)\r\n ? controls.errors.customValidator.message\r\n : null\r\n \"s\r\n [matTooltipClass]=\"'bg-danger'\"></i>","import {\r\n Component,\r\n ElementRef,\r\n EventEmitter,\r\n Input,\r\n OnChanges,\r\n OnInit,\r\n Output,\r\n Renderer2,\r\n SimpleChanges,\r\n ViewChild,\r\n forwardRef,\r\n} from '@angular/core';\r\nimport {\r\n AbstractControl,\r\n ControlValueAccessor,\r\n NG_VALIDATORS,\r\n NG_VALUE_ACCESSOR,\r\n ValidationErrors,\r\n} from '@angular/forms';\r\nimport {\r\n NgbDate,\r\n NgbDateParserFormatter,\r\n NgbDateStruct,\r\n NgbDatepicker,\r\n NgbDatepickerI18n,\r\n} from '@ng-bootstrap/ng-bootstrap';\r\nimport { DatePickerService } from './date-picker.service';\r\nimport { MessageUtilService } from '../utils/message-util.service';\r\nimport { CustomDatepickerI18n, I18n } from './CustomDatePickerI18n';\r\nimport { CustomDatepickerFormat } from './CustomDatePickerFormat';\r\nimport { SharedComponentsUtil } from '../utils/SharedComponentsUtil';\r\nimport { DateUtil } from '../utils/DateUtil';\r\n\r\n@Component({\r\n selector: 'date-picker',\r\n templateUrl: './date-picker.component.html',\r\n styleUrls: ['./date-picker.component.scss'],\r\n providers: [\r\n {\r\n provide: NG_VALUE_ACCESSOR,\r\n useExisting: forwardRef(() => DatePickerComponent),\r\n multi: true,\r\n },\r\n {\r\n provide: NG_VALIDATORS,\r\n useExisting: forwardRef(() => DatePickerComponent),\r\n multi: true,\r\n },\r\n I18n,\r\n { provide: NgbDatepickerI18n, useClass: CustomDatepickerI18n },\r\n { provide: NgbDateParserFormatter, useClass: CustomDatepickerFormat },\r\n ],\r\n})\r\n\r\n// providers: [I18n, { provide: NgbDatepickerI18n, useClass: CustomDatepickerI18n }, { provide: NgbDateParserFormatter, useClass: CustomDatepickerFormat }]\r\nexport class DatePickerComponent\r\n implements OnInit, OnChanges, ControlValueAccessor\r\n{\r\n /**\r\n * @description Controla la visualización del texto superior (label)\r\n * @default true\r\n * @type boolean\r\n */\r\n @Input() showLabel: boolean = true;\r\n \r\n /**\r\n * @description Texto a mostrar como etiqueta del campo\r\n * @default null\r\n * @type any\r\n */\r\n @Input() label: any = null;\r\n \r\n /**\r\n * @description Valor para el atributo autocomplete del input\r\n * @default 'off'\r\n * @type string\r\n */\r\n @Input() autocomplete: string = 'off';\r\n \r\n /**\r\n * @description Referencia al siguiente control para navegación\r\n * @default undefined\r\n * @type any\r\n */\r\n @Input() next: any;\r\n \r\n /**\r\n * @description Referencia al control alternativo cuando el siguiente está deshabilitado\r\n * @default undefined\r\n * @type any\r\n */\r\n @Input() nextIsDisable: any;\r\n \r\n /**\r\n * @description Referencia al control anterior para navegación\r\n * @default undefined\r\n * @type any\r\n */\r\n @Input() back: any;\r\n \r\n /**\r\n * @description Referencia al control alternativo cuando el anterior está deshabilitado\r\n * @default undefined\r\n * @type any\r\n */\r\n @Input() backIsDisable: any;\r\n \r\n /**\r\n * @description Indica si el campo es obligatorio\r\n * @default false\r\n * @type boolean\r\n */\r\n @Input() required: boolean = false;\r\n \r\n /**\r\n * @description Completa automáticamente con null cuando el valor está vacío\r\n * @default true\r\n * @type boolean\r\n */\r\n @Input() noAutoCompleteNull: boolean = true;\r\n \r\n /**\r\n * @description Establece el control como solo lectura\r\n * @default false\r\n * @type boolean\r\n */\r\n @Input() readonly: boolean = false;\r\n \r\n /**\r\n * @description Muestra mensajes de validación\r\n * @default false\r\n * @type boolean\r\n */\r\n @Input() validatorMessage: boolean = false;\r\n \r\n /**\r\n * @description Muestra mensajes de ayuda como tooltips\r\n * @default true\r\n * @type boolean\r\n */\r\n @Input() tooltipMessage: boolean = true;\r\n \r\n /**\r\n * @description Muestra alertas de validación\r\n * @default false\r\n * @type boolean\r\n */\r\n @Input() validatorAlert: boolean = false;\r\n \r\n /**\r\n * @description Indica si el formulario ha sido enviado para mostrar validaciones\r\n * @default true\r\n * @type boolean\r\n */\r\n @Input() submitted: boolean = true;\r\n \r\n /**\r\n * @description Habilita información adicional para la etiqueta\r\n * @default false\r\n * @type boolean\r\n */\r\n @Input() labelInfo: boolean = false;\r\n \r\n /**\r\n * @description Texto informativo adicional para la etiqueta\r\n * @default ''\r\n * @type string\r\n */\r\n @Input() textLabelInfo: string = '';\r\n \r\n /**\r\n * @description Fecha mínima seleccionable\r\n * @default undefined\r\n * @type NgbDateStruct\r\n */\r\n @Input() minDate!: NgbDateStruct;\r\n \r\n /**\r\n * @description Fecha máxima seleccionable\r\n * @default undefined\r\n * @type NgbDateStruct\r\n */\r\n @Input() maxDate!: NgbDateStruct;\r\n \r\n /**\r\n * @description Indica si el valor es inválido\r\n * @default false\r\n * @type boolean\r\n */\r\n @Input() invalid: boolean = false;\r\n \r\n /**\r\n * @description Establece el foco inicial en el componente\r\n * @default false\r\n * @type boolean\r\n */\r\n @Input() focusInitial: boolean = false;\r\n \r\n /**\r\n * @description Deshabilita el control\r\n * @default false\r\n * @type boolean\r\n */\r\n @Input() disabled: boolean = false;\r\n\r\n /**\r\n * @description Restringe la entrada a máximo 8 dígitos (DDMMYYYY) o 10 caracteres (DD/MM/YYYY)\r\n * @default false\r\n * @type boolean\r\n */\r\n @Input() restrictInputLength: boolean = false;\r\n\r\n @Output() onNext: EventEmitter<any> = new EventEmitter();\r\n @Output() onBack: EventEmitter<any> = new EventEmitter();\r\n @Output() input: EventEmitter<any> = new EventEmitter();\r\n @Output() onchange: EventEmitter<any> = new EventEmitter();\r\n @Output() blur: EventEmitter<any> = new EventEmitter();\r\n // xminDate = null;\r\n // xmaxDate = null;\r\n value: any;\r\n controls: any;\r\n emitValue: NgbDate | string = '';\r\n sharedComponentsUtil = new SharedComponentsUtil();\r\n @ViewChild('fecha') ngbDatepicker: NgbDatepicker | any;\r\n\r\n _tempValue = '';\r\n _initValue = false;\r\n\r\n constructor(\r\n private el: ElementRef,\r\n private messageUtilService: MessageUtilService,\r\n private datePickerService: DatePickerService,\r\n private _render: Renderer2\r\n ) {\r\n this.showLabel = this.datePickerService.getShowLabel();\r\n this.autocomplete = this.datePickerService.getAutocomplete();\r\n this.noAutoCompleteNull = this.datePickerService.getNoAutoCompleteNull();\r\n this.focusInitial = this.datePickerService.getFocusInitial();\r\n this.validatorMessage = this.datePickerService.getValidatorMessage();\r\n this.tooltipMessage = this.datePickerService.getTooltipMessage();\r\n this.submitted = this.datePickerService.getSubmitted();\r\n this.validatorAlert = this.datePickerService.getValidatorAlert();\r\n }\r\n\r\n ngOnChanges(changes: SimpleChanges): void {\r\n if (changes['submitted']) {\r\n if (this.controls !== undefined && changes['submitted'].currentValue) {\r\n this.controls.markAsDirty();\r\n this.controls.markAsTouched();\r\n }\r\n }\r\n }\r\n\r\n ngOnInit() {\r\n if (this.minDate) {\r\n this.minDate = this.strDateToNgbDate(this.minDate);\r\n }\r\n if (this.focusInitial == true && this.disabled == false) {\r\n const invalidControl =\r\n this.el.nativeElement.querySelector('[type=\"text\"]');\r\n invalidControl.focus();\r\n invalidControl.select();\r\n }\r\n }\r\n\r\n onChange = (_: any) => {};\r\n onValidationChange = () => {};\r\n onTouch = () => {};\r\n\r\n focus = () => {\r\n const invalidControl = this.el.nativeElement.querySelector('[type=\"text\"]');\r\n invalidControl.focus();\r\n invalidControl.select();\r\n };\r\n\r\n onFocus(evt: any) {\r\n if (evt) {\r\n const invalidControl =\r\n this.el.nativeElement.querySelector('[type=\"text\"]');\r\n invalidControl.select();\r\n }\r\n }\r\n\r\n writeValue(value: any): void {\r\n if (value) {\r\n this.value = this.strDateToNgbDate(value) || '';\r\n if (value && value instanceof Date) {\r\n this._tempValue = DateUtil.dateAutoComplete(value);\r\n if (this.controls) {\r\n this._render.setProperty(this.controls, 'value', this._tempValue);\r\n }\r\n }\r\n if (value && typeof value === 'string') this._tempValue = value.trim();\r\n } else {\r\n this.value = '';\r\n this._tempValue = '';\r\n }\r\n }\r\n registerOnChange(fn: any): void {\r\n this.onChange = fn;\r\n }\r\n registerOnTouched(fn: any): void {\r\n this.onTouch = fn;\r\n }\r\n setDisabledState?(isDisabled: boolean = false): void {\r\n this.disabled = isDisabled;\r\n }\r\n\r\n validate(control: AbstractControl): ValidationErrors | any {\r\n this.controls = control;\r\n if (!this._initValue) {\r\n if (this._tempValue) {\r\n this._render.setProperty(control, 'value', this._tempValue);\r\n }\r\n this._initValue = true;\r\n }\r\n return null;\r\n }\r\n\r\n registerOnValidatorChange?(fn: () => void): void {\r\n this.onValidationChange = fn;\r\n }\r\n\r\n onBlur(): void {\r\n this.onTouch();\r\n }\r\n\r\n onInput(value: any) {\r\n this.emitValue = value;\r\n\r\n this.value = value;\r\n if (this.value instanceof NgbDate) {\r\n this.emitValue = this.ngbDatetoString(value);\r\n }\r\n\r\n this.onChange(this.emitValue);\r\n this.onchange.emit(this.emitValue);\r\n this.input.emit(this.emitValue);\r\n\r\n this._tempValue = '';\r\n }\r\n\r\n onKeyUpEnter(): void {\r\n this.enterKeyUp();\r\n }\r\n\r\n handlePaste(event: ClipboardEvent): void {\r\n if(!this.restrictInputLength) return;\r\n event.preventDefault(); \r\n\r\n if(!this.isApplicableToHandlePaste(event)) return;\r\n\r\n const pastedText = event.clipboardData?.getData('text') || '';\r\n if (!pastedText) return;\r\n \r\n this.formatDate(pastedText);\r\n }\r\n\r\n private isApplicableToHandlePaste(event: ClipboardEvent): boolean {\r\n const input = event.target as HTMLInputElement;\r\n\r\n if(this._hasTextSelection(input)){\r\n return this._isFullySelected(input);\r\n }\r\n\r\n return true;\r\n }\r\n\r\n handleKeyPress(event: KeyboardEvent): void {\r\n if (this.restrictInputLength) {\r\n this._handleRestrictInputLength(event);\r\n } else {\r\n this.onlyNumbers(event as any);\r\n }\r\n }\r\n\r\n private _handleRestrictInputLength(event: KeyboardEvent): void {\r\n const isValidCharacter = this._isDigitOrSlash(event.key);\r\n\r\n if (!isValidCharacter) {\r\n event.preventDefault();\r\n return;\r\n }\r\n\r\n const input = event.target as HTMLInputElement;\r\n const currentValue = input.value;\r\n\r\n const hasSelectedText = this._hasTextSelection(input);\r\n\r\n if (hasSelectedText) {\r\n return;\r\n }\r\n\r\n const isInputLengthExceeded = this._isInputLengthExceeded(currentValue);\r\n\r\n if (isInputLengthExceeded) {\r\n event.preventDefault();\r\n }\r\n }\r\n\r\n private _isDigitOrSlash(key: string): boolean {\r\n return /[\\d\\/]/.test(key);\r\n }\r\n\r\n private _hasTextSelection(input: HTMLInputElement): boolean {\r\n return input.selectionStart !== input.selectionEnd;\r\n }\r\n \r\n private _isFullySelected(input: HTMLInputElement): boolean {\r\n return input.selectionStart === 0 && \r\n input.selectionEnd === input.value.length && \r\n input.value.length > 0;\r\n }\r\n\r\n private _isInputLengthExceeded(currentValue: string): boolean {\r\n const hasSlashes = /\\//.test(currentValue);\r\n\r\n // DD/MM/YYYY (máximo 10 caracteres) o 12032025 (máximo 8 dígitos)\r\n const maxLength = hasSlashes ? 10 : 8; \r\n return currentValue.length >= maxLength;\r\n }\r\n\r\n onlyNumbers(e: any) {\r\n if (!(e.keyCode >= 48 && e.keyCode <= 57) && e.keyCode != 47) {\r\n e.preventDefault();\r\n e.stopPropagation();\r\n }\r\n }\r\n\r\n strDateToNgbDate(value: any) {\r\n const date: Date = DateUtil.parse(value, 'DATE');\r\n const ngbDate: NgbDateStruct = {\r\n day: Number(DateUtil.getDay(date)),\r\n month: Number(DateUtil.getMonth(date)),\r\n year: Number(DateUtil.getYear(date)),\r\n };\r\n // return ngbDate;\r\n return new NgbDate(ngbDate.year, ngbDate.month, ngbDate.day);\r\n }\r\n\r\n ngbDatetoString(value: NgbDateStruct): NgbDate | string {\r\n const concatNgbDate =\r\n `0${value.day}`.slice(-2) + `0${value.month}`.slice(-2) + value.year;\r\n return DateUtil.dateAutoComplete(concatNgbDate);\r\n }\r\n\r\n enterKeyUp() {\r\n if (!this.disabled) {\r\n let validator = this.sharedComponentsUtil.stopByValidator(\r\n this.controls,\r\n this.validatorAlert,\r\n this.label\r\n );\r\n if (validator.error) {\r\n this.messageUtilService.getMessageError(\r\n '000046',\r\n 'Error',\r\n validator.message\r\n );\r\n return;\r\n }\r\n }\r\n if (this.next != undefined) {\r\n if (this.next.disabled || this.next.readonly) {\r\n if (this.nextIsDisable != undefined) {\r\n this.nextIsDisable.focus();\r\n }\r\n } else {\r\n this.next.focus();\r\n }\r\n } else {\r\n if (this.nextIsDisable != undefined) {\r\n this.nextIsDisable.focus();\r\n } else {\r\n this.onNext.emit();\r\n }\r\n }\r\n }\r\n\r\n arrowUpKeyUp() {\r\n if (!this.disabled) {\r\n let validator = this.sharedComponentsUtil.stopByValidator(\r\n this.controls,\r\n this.validatorAlert,\r\n this.label\r\n );\r\n if (validator.error) {\r\n this.messageUtilService.getMessageError(\r\n '000046',\r\n 'Error',\r\n validator.message\r\n );\r\n return;\r\n }\r\n }\r\n if (this.back != undefined) {\r\n if (this.back.disabled || this.back.readonly) {\r\n if (this.backIsDisable != undefined) {\r\n this.backIsDisable.focus();\r\n }\r\n } else {\r\n this.back.focus();\r\n }\r\n } else {\r\n if (this.backIsDisable != undefined) {\r\n this.backIsDisable.focus();\r\n } else {\r\n this.onBack.emit();\r\n }\r\n }\r\n }\r\n\r\n focusOut(value: any) {\r\n this.formatDate(value);\r\n }\r\n\r\n formatDate(value: any): void {\r\n if (value && value?.trim() !== '') {\r\n if (this._tempValue === value) return;\r\n\r\n this.ngbDatepicker.close();\r\n if (value instanceof NgbDate) {\r\n if (value !== this.ngbDatetoString(value)) {\r\n this.emitValue = this.ngbDatetoString(value);\r\n } else {\r\n this.emitValue = value;\r\n }\r\n } else {\r\n value = value.replaceAll('/', '');\r\n if (this.noAutoCompleteNull) {\r\n this.value = this.strDateToNgbDate(\r\n DateUtil.dateAutoComplete(value)\r\n );\r\n this.emitValue = DateUtil.dateAutoComplete(value);\r\n } else {\r\n if (value != '' && value != null) {\r\n this.value = this.strDateToNgbDate(\r\n DateUtil.dateAutoComplete(value)\r\n );\r\n this.emitValue = DateUtil.dateAutoComplete(value);\r\n }\r\n }\r\n }\r\n\r\n this.onTouch();\r\n this.onChange(this.emitValue);\r\n\r\n if (typeof this.emitValue === 'string') this._tempValue = this.emitValue;\r\n }\r\n }\r\n}\r\n","<label *ngIf=\"label != null && label != '' && showLabel\" class=\"d-flex sumax-label mb-0 p-0\"\r\n ><span [title]=\"label\" style=\"white-space: nowrap; overflow: hidden; text-overflow: ellipsis\">{{ label }}</span>\r\n <span *ngIf=\"required\" class=\"ms-1\" [class.text-danger]=\"controls?.errors != null\"> *</span>\r\n <span *ngIf=\"labelInfo\">\r\n <i class=\"fa fa-exclamation-circle text-info ms-2\" [matTooltip]=\"textLabelInfo\" matTooltipClass=\"bg-info\"></i>\r\n </span>\r\n</label>\r\n<div\r\n [class.input-icon]=\"controls?.errors != null && (controls?.dirty || controls?.touched) && submitted\"\r\n [class.right]=\"controls?.errors != null && (controls?.dirty || controls?.touched) && submitted\">\r\n <!-- tooltip-message es el icono de error -->\r\n\r\n <div class=\"d-flex p-0 group-input-button position-relative\">\r\n <tooltip-message\r\n [label]=\"label\"\r\n [controls]=\"controls\"\r\n [validatorMessage]=\"validatorMessage\"\r\n [submitted]=\"submitted\"\r\n [tooltipMessage]=\"tooltipMessage\"></tooltip-message>\r\n <input\r\n type=\"text\"\r\n [attr.autocomplete]=\"autocomplete\"\r\n [class.is-invalid]=\"controls?.errors != null && (controls?.dirty || controls?.touched) && submitted\"\r\n [disabled]=\"disabled\"\r\n [readonly]=\"readonly\"\r\n (keyup.enter)=\"onKeyUpEnter()\"\r\n (keyup.ArrowUp)=\"arrowUpKeyUp()\"\r\n (keypress)=\"handleKeyPress($event)\"\r\n (input)=\"onInput($any($event.target).value)\"\r\n (dateSelect)=\"onInput($event)\"\r\n (focus)=\"onFocus($any($event.target).value)\"\r\n (focusout)=\"focusOut($any($event.target).value)\"\r\n (blur)=\"onBlur()\"\r\n (paste)=\"handlePaste($event)\"\r\n class=\"form-control form-control-sm rounded-left use-input\"\r\n container=\"body\"\r\n placeholder=\"dd/mm/yyyy\"\r\n [minDate]=\"{ year: 1960, month: 1, day: 1 }\"\r\n [maxDate]=\"maxDate\"\r\n name=\"fecha\"\r\n ngbDatepicker\r\n #fecha=\"ngbDatepicker\"\r\n [(ngModel)]=\"value\" />\r\n <button type=\"button\" [disabled]=\"disabled || readonly\" class=\"btn btn-info p-0 rounded-0 use-button\" (click)=\"fecha.toggle()\">\r\n <!-- <mat-icon class=\"text-white pt-1\" style=\"font-size: 18px;\" [matTooltip]=\"'Calendario'\" matTooltipClass=\"bg-info\">calendar_today</mat-icon> -->\r\n <i class=\"fa fa-calendar text-white px-1\" aria-hidden=\"true\"></i>\r\n </button>\r\n </div>\r\n</div>\r\n<!-- error-message es el mansaje que aparece abajo del componente -->\r\n<error-message\r\n [label]=\"label\"\r\n [controls]=\"controls\"\r\n [validatorMessage]=\"validatorMessage\"\r\n [submitted]=\"submitted\"\r\n [tooltipMessage]=\"tooltipMessage\"></error-message>\r\n","import { CommonModule } from \"@angular/common\";\r\nimport { NgModule } from \"@angular/core\";\r\nimport { RouterModule } from \"@angular/router\";\r\nimport { errorMessageComponent } from \"./error-message.component\";\r\n\r\n@NgModule({\r\n declarations: [errorMessageComponent],\r\n imports: [CommonModule, RouterModule],\r\n exports: [errorMessageComponent],\r\n})\r\nexport class ErrorMessageModule {}\r\n","import { CommonModule } from \"@angular/common\";\r\nimport { NgModule } from \"@angular/core\";\r\nimport { MatIconModule } from \"@angular/material/icon\";\r\nimport { MatTooltipModule } from \"@angular/material/tooltip\";\r\nimport { RouterModule } from \"@angular/router\";\r\nimport { tooltipMessageComponent } from \"./tooltip-message.component\";\r\n\r\n@NgModule({\r\n declarations: [tooltipMessageComponent],\r\n imports: [CommonModule, RouterModule, MatIconModule, MatTooltipModule],\r\n exports: [tooltipMessageComponent],\r\n})\r\nexport class TooltipMessageModule {}\r\n","export class DatePicker {\r\n showLabel?: boolean;\r\n autocomplete?: string;\r\n noAutoCompleteNull?: boolean;\r\n focusInitial?: boolean;\r\n validatorMessage?: boolean;\r\n tooltipMessage?: boolean;\r\n submitted?: boolean;\r\n validatorAlert?: boolean;\r\n}\r\n","import { CommonModule } from \"@angular/common\";\r\nimport { ModuleWithProviders, NgModule } from \"@angular/core\";\r\nimport { FormsModule, ReactiveFormsModule } from \"@angular/forms\";\r\nimport { MatIconModule } from \"@angular/material/icon\";\r\nimport { MatTooltipModule } from \"@angular/material/tooltip\";\r\nimport { RouterModule } from \"@angular/router\";\r\nimport { NgbDatepickerModule } from \"@ng-bootstrap/ng-bootstrap\";\r\nimport { ErrorMessageModule } from \"../error-message/error-message.module\";\r\nimport { TooltipMessageModule } from \"../tooltip-message/tooltip-message.module\";\r\nimport { DatePickerComponent } from \"./date-picker.component\";\r\nimport { DatePicker } from \"./date-picker\";\r\nimport { DatePickerService } from \"./date-picker.service\";\r\n\r\n@NgModule({\r\n declarations: [DatePickerComponent],\r\n imports: [\r\n CommonModule,\r\n RouterModule,\r\n FormsModule,\r\n ReactiveFormsModule,\r\n ErrorMessageModule,\r\n TooltipMessageModule,\r\n MatIconModule,\r\n MatTooltipModule,\r\n NgbDatepickerModule,\r\n ],\r\n exports: [DatePickerComponent],\r\n})\r\nexport class DatePickerModule {\r\n static forRoot(datePicker: DatePicker = new DatePicker()): ModuleWithProviders<DatePickerModule> {\r\n return {\r\n ngModule: DatePickerModule,\r\n providers: [\r\n { provide: \"DATE_PICKER_SHOW_LABEL\", useValue: datePicker.showLabel },\r\n { provide: \"DATE_PICKER_AUTOCOMPLETE\", useValue: datePicker.autocomplete },\r\n { provide: \"DATE_PICKER_NO_AUTO_COMPLETE_NULL\", useValue: datePicker.noAutoCompleteNull },\r\n { provide: \"DATE_PICKER_FOCUS_INITIAL\", useValue: datePicker.focusInitial },\r\n { provide: \"DATE_PICKER_VALIDATOR_MESSAGE\", useValue: datePicker.validatorMessage },\r\n { provide: \"DATE_PICKER_TOOLTIP_MESSAGE\", useValue: datePicker.tooltipMessage },\r\n { provide: \"DATE_PICKER_SUBMITTED\", useValue: datePicker.submitted },\r\n { provide: \"DATE_PICKER_VALIDATOR_ALERT\", useValue: datePicker.validatorAlert },\r\n DatePickerService,\r\n ],\r\n };\r\n }\r\n}\r\n","import { NgbTimeStruct, NgbDateStruct } from '@ng-bootstrap/ng-bootstrap';\r\n\r\nexport interface NgbDateTimeStruct extends NgbDateStruct, NgbTimeStruct { }\r\n\r\nexport class DateTimeModel implements NgbDateTimeStruct {\r\n\tyear!: number;\r\n\tmonth!: number;\r\n\tday!: number;\r\n\thour!: number;\r\n\tminute!: number;\r\n\tsecond!: number;\r\n\r\n\ttimeZoneOffset!: number;\r\n\r\n\tpublic constructor(init?: Partial<DateTimeModel>) {\r\n\t\tObject.assign(this, init);\r\n\t}\r\n\r\n\tpublic static fromLocalString(dateString: string): DateTimeModel | any {\r\n\t\tconst date = new Date(dateString);\r\n\r\n\t\tconst isValidDate = !isNaN(date.valueOf());\r\n\r\n\t\tif (!dateString || !isValidDate) {\r\n\t\t\treturn null;\r\n\t\t}\r\n\r\n\t\treturn new DateTimeModel({\r\n\t\t\tyear: date.getFullYear(),\r\n\t\t\tmonth: date.getMonth() + 1,\r\n\t\t\tday: date.getDate(),\r\n\t\t\thour: date.getHours(),\r\n\t\t\tminute: date.getMinutes(),\r\n\t\t\tsecond: date.getSeconds(),\r\n\t\t\ttimeZoneOffset: date.getTimezoneOffset()\r\n\t\t});\r\n\t}\r\n\r\n\tprivate isInteger(value: any): value is number {\r\n\t\treturn typeof value === 'number' && isFinite(value) && Math.floor(value) === value;\r\n\t}\r\n\r\n\tpublic toString(): string | any{\r\n\t\tif (this.isInteger(this.year) && this.isInteger(this.month) && this.isInteger(this.day)) {\r\n\t\t\tconst year = this.year.toString().padStart(2, '0');\r\n\t\t\tconst month = this.month.toString().padStart(2, '0');\r\n\t\t\tconst day = this.day.toString().padStart(2, '0');\r\n\r\n\t\t\tif (!this.hour) {\r\n\t\t\t\tthis.hour = 0;\r\n\t\t\t}\r\n\t\t\tif (!this.minute) {\r\n\t\t\t\tthis.minute = 0;\r\n\t\t\t}\r\n\t\t\tif (!this.second) {\r\n\t\t\t\tthis.second = 0;\r\n\t\t\t}\r\n\t\t\tif (!this.timeZoneOffset) {\r\n\t\t\t\tthis.timeZoneOffset = new Date().getTimezoneOffset();\r\n\t\t\t}\r\n\r\n\t\t\tconst hour = this.hour.toString().padStart(2, '0');\r\n\t\t\tconst minute = this.minute.toString().padStart(2, '0');\r\n\t\t\tconst second = this.second.toString().padStart(2, '0');\r\n\r\n\t\t\tconst tzo = -this.timeZoneOffset;\r\n\r\n\t\t\tconst dif = tzo >= 0 ? '+' : '-';\r\n\t\t\tconst pad = (num : any) => {\r\n\t\t\t\tconst norm = Math.floor(Math.abs(num));\r\n\t\t\t\treturn (norm < 10 ? '0' : '') + norm;\r\n\t\t\t};\r\n\r\n\t\t\tconst isoString = `${pad(year)}-${pad(month)}-${pad(day)}T${pad(hour)}:${pad(minute)}:${pad(second)}${dif}${pad(tzo / 60)}:${pad(tzo % 60)}`;\r\n\t\t\treturn isoString;\r\n\t\t}\r\n\r\n\t\treturn null;\r\n\t}\r\n}\r\n\r\n","import { Inject, Injectable } from '@angular/core';\r\nimport { formatHour } from '../utils/DateTimePickerEditable';\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class DateTimePickerEditableService {\r\n constructor(\r\n @Inject('DATE_TIME_PICKER_SHOW_LABEL') private showLabel: boolean = true,\r\n @Inject('DATE_TIME_PICKER_OPEN_WHEN_FOCUS')\r\n private openWhenFocus: boolean = false,\r\n @Inject('DATE_TIME_PICKER_GO_NEXT_WHEN_SELECT')\r\n private goNextWhenSelect: boolean = false,\r\n @Inject('DATE_TIME_PICKER_VALIDATOR_MESSAGE')\r\n private validatorMessage: boolean = false,\r\n @Inject('DATE_TIME_PICKER_TOOLTIP_MESSAGE')\r\n private tooltipMessage: boolean = true,\r\n @Inject('DATE_TIME_PICKER_SUBMITTED') private submitted: boolean = true,\r\n @Inject('DATE_TIME_PICKER_FORMAT') private format: formatHour = 12,\r\n @Inject('DATE_TIME_PICKER_CLEARABLE') private clearable: boolean = true,\r\n @Inject('DATE_TIME_PICKER_AUTOCOMPLETE_HOURS') private autoCompleteHours: boolean = false,\r\n @Inject('DATE_TIME_PICKER_AUTOCOMPLETE') private autoComplete: boolean = true\r\n ) {}\r\n public getShowLabel(): boolean {\r\n return this.showLabel;\r\n }\r\n public getOpenWhenFocus(): boolean {\r\n return this.openWhenFocus;\r\n }\r\n public getGoNextWhenSelect(): boolean {\r\n return this.goNextWhenSelect;\r\n }\r\n public getValidatorMessage(): boolean {\r\n return this.validatorMessage;\r\n }\r\n public getTooltipMessage(): boolean {\r\n return this.tooltipMessage;\r\n }\r\n public getSubmitted(): boolean {\r\n return this.submitted;\r\n }\r\n public getFormat(): formatHour {\r\n return this.format;\r\n }\r\n public getClearable(): boolean {\r\n return this.clearable\r\n }\r\n public getAutoCompleteHours(): boolean {\r\n return this.autoCompleteHours;\r\n }\r\n public getAutoComplete(): boolean {\r\n return this.autoComplete;\r\n }\r\n}\r\n","import { DatePipe } from \"@angular/common\";\r\nimport {\r\n ChangeDetectorRef,\r\n Component,\r\n ElementRef,\r\n EventEmitter,\r\n Input,\r\n OnChanges,\r\n OnInit,\r\n Output,\r\n SimpleChanges,\r\n ViewChild,\r\n forwardRef,\r\n inject,\r\n input,\r\n viewChild,\r\n} from \"@angular/core\";\r\nimport {\r\n AbstractControl,\r\n ControlValueAccessor,\r\n FormControl,\r\n NG_VALIDATORS,\r\n NG_VALUE_ACCESSOR,\r\n UntypedFormControl,\r\n ValidationErrors,\r\n} from \"@angular/forms\";\r\nimport { NgbCalendar, NgbDateParserFormatter, NgbDatepickerI18n, NgbInputDatepicker } from \"@ng-bootstrap/ng-bootstrap\";\r\nimport { CustomDatepickerFormat } from \"../date-picker/CustomDatePickerFormat\";\r\nimport { CustomDatepickerI18n, I18n } from \"../date-picker/CustomDatePickerI18n\";\r\nimport { DateTimeModel } from \"../utils/DateTimeModel\";\r\nimport { formatHour } from \"../utils/DateTimePickerEditable\";\r\nimport { DateUtil } from \"../utils/DateUtil\";\r\nimport { DateTimePickerEditableService } from \"./date-time-picker-editable.service\";\r\n\r\nconst MASK_12_HOURS = \"dd/mm/yyyy --:-- --\";\r\nconst MASK_24_HOURS = \"dd/mm/yyyy --:--\";\r\n\r\n@Component({\r\n selector: \"date-time-picker-editable\",\r\n templateUrl: \"./date-time-picker-editable.component.html\",\r\n styleUrls: [\"./date-time-picker-editable.component.scss\"],\r\n providers: [\r\n {\r\n provide: NG_VALUE_ACCESSOR,\r\n multi: true,\r\n useExisting: DateTimePickerEditableComponent,\r\n },\r\n {\r\n provide: NG_VALIDATORS,\r\n useExisting: forwardRef(() => DateTimePickerEditableComponent),\r\n multi: true,\r\n },\r\n I18n,\r\n { provide: NgbDatepickerI18n, useClass: CustomDatepickerI18n },\r\n { provide: NgbDateParserFormatter, useClass: CustomDatepickerFormat },\r\n ],\r\n})\r\nexport class DateTimePickerEditableComponent implements OnInit, ControlValueAccessor, OnChanges {\r\n private _datePipe = inject(DatePipe);\r\n private _calendar = inject(NgbCalendar);\r\n private _dateTimePickerEditableService = inject(DateTimePickerEditableService);\r\n private _cdrf = inject(ChangeDetectorRef);\r\n\r\n @ViewChild(\"inputDateTime\") inputDateTime: any;\r\n @ViewChild(\"btnOpen\") btnOpen!: ElementRef;\r\n @ViewChild(\"btnClean\") btnClean!: ElementRef;\r\n @ViewChild(\"d2\") ngbDatepicker!: NgbInputDatepicker;\r\n\r\n /**\r\n * @description Texto superior\r\n * @default \"\"\r\n * @type string\r\n */\r\n @Input() label: string = \"\";\r\n \r\n /**\r\n * @description Controla la visualización del texto superior\r\n * @default true\r\n * @type boolean\r\n */\r\n @Input() showLabel: boolean = true;\r\n \r\n /**\r\n * @description Establece el control como solo lectura\r\n * @default false\r\n * @type boolean\r\n */\r\n @Input() readonly: boolean = false;\r\n \r\n /**\r\n * @description Indica si el campo es obligatorio\r\n * @default false\r\n * @type boolean\r\n */\r\n @Input() required: boolean = false;\r\n \r\n /**\r\n * @description Muestra mensajes de validación\r\n * @default false\r\n * @type boolean\r\n */\r\n @Input() validatorMessage: boolean = false;\r\n \r\n /**\r\n * @description Muestra mensajes de ayuda como tooltips\r\n * @default true\r\n * @type boolean\r\n */\r\n @Input() tooltipMessage: boolean = true;\r\n \r\n /**\r\n * @description Indica si el formulario ha sido enviado para mostrar validaciones\r\n * @default true\r\n * @type boolean\r\n */\r\n @Input() submitted: boolean = true;\r\n \r\n /**\r\n * @description Formato de hora: 12 o 24 horas\r\n * @default 24\r\n * @type formatHour\r\n */\r\n @Input() format: formatHour = 24;\r\n \r\n /**\r\n * @description Referencia al siguiente control para navegación\r\n * @default undefined\r\n * @type any\r\n */\r\n @Input() next: any;\r\n \r\n /**\r\n * @description Referencia al control alternativo cuando el siguiente está deshabilitado\r\n * @default undefined\r\n * @type any\r\n */\r\n @Input() nextIsDisable: any;\r\n \r\n /**\r\n * @description Habilita información adicional para la etiqueta\r\n * @default false\r\n * @type boolean\r\n */\r\n @Input() labelInfo: boolean = false;\r\n \r\n /**\r\n * @description Texto informativo adicional para la etiqueta\r\n * @default \"\"\r\n * @type string\r\n */\r\n @Input() textLabelInfo: string = \"\";\r\n \r\n /**\r\n * @description Referencia al control anterior para navegación\r\n * @default undefined\r\n * @type any\r\n */\r\n @Input() back: any;\r\n \r\n /**\r\n * @description Referencia al control alternativo cuando el anterior está deshabilitado\r\n * @default undefined\r\n * @type any\r\n */\r\n @Input() backIsDisable: any;\r\n \r\n /**\r\n * @description Abre el selector al recibir el foco\r\n * @default false\r\n * @type boolean\r\n */\r\n @Input() openWhenFocus: boolean = false;\r\n \r\n /**\r\n * @description Navega al siguiente control al seleccionar una fecha\r\n * @default false\r\n * @type boolean\r\n */\r\n @Input() goNextWhenSelect: boolean = false;\r\n \r\n /**\r\n * @description Muestra el botón de eliminar\r\n * @default false\r\n * @type boolean\r\n */\r\n @Input() clearable: boolean = true;\r\n \r\n /**\r\n * @description Autocompleta con la hora/minuto actual (true) o con 00:00 (false)\r\n * @default false\r\n * @type boolean\r\n */\r\n @Input() autoCompleteHours: boolean = false;\r\n \r\n /**\r\n * @description Habilita el autocompletado\r\n * @default true\r\n * @type boolean\r\n */\r\n @Input() autoComplete: boolean = true;\r\n \r\n /**\r\n * @description Deshabilita el control\r\n * @default false\r\n * @type boolean\r\n */\r\n @Input() disabled = false;\r\n @Output() onNext: EventEmitter<any> = new EventEmitter();\r\n @Output() onBack: EventEmitter<any> = new EventEmitter();\r\n\r\n onChange = (_: any) => { };\r\n onTouch = () => { };\r\n onValidationChange = () => { };\r\n\r\n controls: AbstractControl | undefined;\r\n contador = 0;\r\n position = 0;\r\n dateTimeControl = new FormControl(\"dd/mm/yyyy --:-- --\");\r\n hoursControl = new UntypedFormControl({\r\n hour: null,\r\n minute: null,\r\n });\r\n dateControl = new UntypedFormControl({\r\n year: null,\r\n month: null,\r\n day: null,\r\n });\r\n today = this._calendar.getToday();\r\n\r\n get stringFormat (): string {\r\n return this.format === 12 ? \"dd/MM/yyyy hh:mm a\" : \"dd/MM/yyyy HH:mm\";\r\n }\r\n\r\n constructor() {\r\n this.showLabel = this._dateTimePickerEditableService.getShowLabel();\r\n this.openWhenFocus = this._dateTimePickerEditableService.getOpenWhenFocus();\r\n this.goNextWhenSelect = this._dateTimePickerEditableService.getGoNextWhenSelect();\r\n this.validatorMessage = this._dateTimePickerEditableService.getValidatorMessage();\r\n this.tooltipMessage = this._dateTimePickerEditableService.getTooltipMessage();\r\n this.submitted = this._dateTimePickerEditableService.getSubmitted();\r\n this.format = this._dateTimePickerEditableService.getFormat();\r\n this.clearable = this._dateTimePickerEditableService.getClearable();\r\n this.autoCompleteHours = this._dateTimePickerEditableService.getAutoCompleteHours();\r\n this.autoComplete = this._dateTimePickerEditableService.getAutoComplete();\r\n }\r\n\r\n\r\n validate (control: AbstractControl): ValidationErrors | any {\r\n this.controls = control;\r\n this._cdrf.detectChanges();\r\n return null;\r\n }\r\n\r\n registerOnValidatorChange?(fn: () => void): void {\r\n this.onValidationChange = fn;\r\n }\r\n\r\n ngOnInit (): void {\r\n this.hoursChange();\r\n const timeout = setTimeout(() => {\r\n this.dateChange();\r\n clearTimeout(timeout);\r\n if (!this.clearable) this.btnClean!.nativeElement.style.visibility = \"hidden\";\r\n }, 100);\r\n\r\n if (this.format == 12) {\r\n this.dateTimeControl.setValue(MASK_12_HOURS);\r\n } else {\r\n this.dateTimeControl.setValue(MASK_24_HOURS);\r\n }\r\n }\r\n\r\n ngOnChanges (changes: SimpleChanges): void {\r\n if (changes[\"submitted\"]) {\r\n if (this.controls !== undefined && changes[\"submitted\"].currentValue) {\r\n this.controls.markAsDirty();\r\n this.controls.markAsTouched();\r\n }\r\n }\r\n }\r\n\r\n focus (): void {\r\n this.inputDateTime.nativeElement.focus();\r\n\r\n const timeout = setTimeout(() => {\r\n if (!this.disabled) this.inputDateTime.nativeElement.setSelectionRange(0, 2);\r\n\r\n clearTimeout(timeout);\r\n }, 100);\r\n\r\n if (!this.readonly && this.openWhenFocus) {\r\n this.ngbDatepicker?.open();\r\n }\r\n }\r\n\r\n writeValue (obj: any): void {\r\n if (obj != null) {\r\n this.dateControl.setValue(DateTimeModel.fromLocalString(obj));\r\n this.hoursControl.setValue({\r\n hour: this.dateControl.value.hour,\r\n minute: this.dateControl.value.minute,\r\n second: this.dateControl.value.second,\r\n });\r\n this.dateTimeControl.setValue(this._datePipe.transform(obj, this.stringFormat));\r\n }\r\n }\r\n registerOnChange (fn: any): void {\r\n this.onChange = fn;\r\n }\r\n registerOnTouched (fn: any): void {\r\n this.onTouch = fn;\r\n }\r\n setDisabledState?(isDisabled: boolean): void {\r\n this.disabled = isDisabled;\r\n if (this.disabled) this.dateTimeControl.disable();\r\n else this.dateTimeControl.enable();\r\n }\r\n\r\n hoursChange () {\r\n if (this.format == 12)\r\n this.hoursControl.valueChanges.subscribe((res) => {\r\n if (\r\n /[0-3][0-9]\\/[0-1][0-9]\\/[0-9][0-9][0-9][0-9] [0-1][0-9]:[0-6][0-9] [A,P]M/.test(this.dateTimeControl.value!) ||\r\n /[0-3][0-9]\\/[0-1][0-9]\\/[0-9][0-9][0-9][0-9]/.test(this.dateTimeControl.value!.substring(0, 10))\r\n ) {\r\n this.dateControl.setValue(\r\n {\r\n ...this.dateControl.value!,\r\n ...res,\r\n },\r\n { emitEvent: false }\r\n );\r\n try {\r\n const input: any = new DateTimeModel(Object.assign(this.dateControl.value, this.hoursControl.value));\r\n\r\n this.dateTimeControl.setValue(this._datePipe.transform(input, this.stringFormat));\r\n } finally {\r\n this.onEmit();\r\n }\r\n }\r\n });\r\n else if (this.format == 24)\r\n this.hoursControl.valueChanges.subscribe((res) => {\r\n if (\r\n /[0-3][0-9]\\/[0-1][0-9]\\/[0-9][0-9][0-9][0-9] [0-1][0-9]:[0-6][0-9]/.test(this.dateTimeControl.value!) ||\r\n /[0-3][0-9]\\/[0-1][0-9]\\/[0-9][0-9][0-9][0-9]/.test(this.dateTimeControl.value!.substring(0, 10))\r\n ) {\r\n this.dateControl.setValue(\r\n {\r\n ...this.dateControl.value,\r\n ...res,\r\n },\r\n { emitEvent: false }\r\n );\r\n try {\r\n const input: any = new DateTimeModel(Object.assign(this.dateControl.value, this.hoursControl.value));\r\n this.dateTimeControl.setValue(this._datePipe.transform(input, this.stringFormat));\r\n } catch (error) {\r\n /* console.error(error) */\r\n } finally {\r\n this.onEmit();\r\n }\r\n }\r\n });\r\n }\r\n\r\n onEmit (emitValue: any = null) {\r\n try {\r\n const value = new DateTimeModel(Object.assign(this.dateControl.value, this.hoursControl.value));\r\n emitValue = this._datePipe.transform(value.toString(), \"yyyy-MM-ddTHH:mm\");\r\n } catch (e) { }\r\n this.onChange(emitValue);\r\n this.onTouch();\r\n }\r\n\r\n dateChange () {\r\n if (this.format == 12)\r\n this.dateControl.valueChanges.subscribe((res) => {\r\n if (\r\n /[0-3][0-9]\\/[0-1][0-9]\\/[0-9][0-9][0-9][0-9] [0-1][0-9]:[0-6][0-9] [A,P]M/.test(this.dateTimeControl.value!) ||\r\n /[0-1][0-9]:[0-6][0-9]/.test(this.dateTimeControl.value!.substring(11, 16))\r\n ) {\r\n this.dateControl.setValue(\r\n {\r\n ...this.hoursControl.value,\r\n ...res,\r\n },\r\n { emitEvent: false }\r\n );\r\n\r\n try {\r\n const input: any = new DateTimeModel(Object.assign(this.dateControl.value, this.hoursControl.value));\r\n this.dateTimeControl.setValue(this._datePipe.transform(input, this.stringFormat));\r\n } catch (error) {\r\n } finally {\r\n this.onEmit();\r\n }\r\n }\r\n });\r\n else if (this.format == 24)\r\n this.dateControl.valueChanges.subscribe((res) => {\r\n if (\r\n /[0-3][0-9]\\/[0-1][0-9]\\/[0-9][0-9][0-9][0-9] [0-1][0-9]:[0-6][0-9] [A,P]M/.test(this.dateTimeControl.value!) ||\r\n /[0-1][0-9]:[0-6][0-9]/.test(this.dateTimeControl.value!.substring(11, 16))\r\n ) {\r\n this.dateControl.setValue(\r\n {\r\n ...this.hoursControl.value,\r\n ...res,\r\n },\r\n { emitEvent: false }\r\n );\r\n\r\n try {\r\n const input: any = new DateTimeModel(Object.assign(this.dateControl.value, this.hoursControl.value));\r\n this.dateTimeControl.setValue(this._datePipe.transform(input, this.stringFormat));\r\n } catch (error) {\r\n } finally {\r\n this.onEmit();\r\n }\r\n }\r\n });\r\n }\r\n\r\n onBlur (): void {\r\n this.onEmit();\r\n }\r\n\r\n focusOutInput (): void {\r\n if(this.autoComplete){\r\n const value = this.dateTimeControl.value;\r\n\r\n if ((value != MASK_12_HOURS && this.format == 12) || (value != MASK_24_HOURS && this.format == 24)) {\r\n const dia = value?.substring(0, 2);\r\n const mes = value?.substring(3, 5);\r\n const anio = value?.substring(6, 10);\r\n const hora = value?.substring(11, 13);\r\n const minutos = value?.substring(14, 16);\r\n\r\n if (\r\n isNaN(Number(dia)) ||\r\n dia == \"00\" ||\r\n isNaN(Number(mes)) ||\r\n mes == \"00\" ||\r\n isNaN(Number(anio)) ||\r\n anio == \"0000\" ||\r\n isNaN(Number(hora)) ||\r\n isNaN(Number(minutos))\r\n ) {\r\n this.dateControl.setValue(\r\n {\r\n year: isNaN(Number(anio)) || anio == \"0000\" ? this.today.year : Number(anio),\r\n month: isNaN(Number(mes)) || mes == \"00\" ? this.today.month : Number(mes),\r\n day: isNaN(Number(dia)) || dia == \"00\" ? this.today.day : Number(dia),\r\n },\r\n { emitEvent: false }\r\n );\r\n let hour = this.hoursControl.value.hour;\r\n if (isNaN(Number(hora))) hour = this.autoCompleteHours ? DateUtil.getHours(DateUtil.now(\"ISODATETIME_NO_TIMEZONE\")) : 0;\r\n\r\n let minute = this.hoursControl.value.minute;\r\n if (isNaN(Number(minutos))) minute = this.autoCompleteHours ? DateUtil.getMinutes(DateUtil.now(\"ISODATETIME_NO_TIMEZONE\")) : 0;\r\n\r\n this.hoursControl.setValue(\r\n {\r\n hour,\r\n minute,\r\n },\r\n { emitEvent: false }\r\n );\r\n const input: any = new DateTimeModel(Object.assign(this.dateControl.value, this.hoursControl.value));\r\n try {\r\n this.dateTimeControl.setValue(this._datePipe.transform(input, this.stringFormat));\r\n } finally {\r\n this.onEmit();\r\n }\r\n }\r\n }\r\n\r\n this.contador = 0;\r\n }\r\n }\r\n\r\n onKeyUp (e: any): void {\r\n const input = e.target;\r\n\r\n if (this.disabled) return;\r\n\r\n if (!isNaN(Number(e.key)) && e.key.trim() != \"\") {\r\n //============================= DIA ==================================\r\n if (input.selectionStart == 0 && input.selectionEnd == 2) {\r\n const valorActual: string = this.dateTimeControl.value!;\r\n const diaActual: string = valorActual.substring(0, 2);\r\n\r\n if (diaActual == \"dd\") {\r\n const nuevoValor = `${ e.key.padStart(2, 0) }${ valorActual.substring(2) }`;\r\n this.dateTimeControl.setValue(nuevoValor);\r\n this.dateControl.setValue({\r\n ...this.dateControl.value,\r\n day: Number(this.dateTimeControl.value!.substring(0, 2)),\r\n });\r\n this.contador++;\r\n if (e.key > 3) {\r\n this.contador = 0;\r\n input.setSelectionRange(3, 5);\r\n this.onEmit();\r\n return;\r\n } else this.onEmit();\r\n } else if (Number(diaActual) <= 3 && Number(diaActual) > 0 && this.contador > 0) {\r\n const nuevoValor = `${ Number(Number(diaActual).toString() + Number(e.key)) > 31 ? 31 : Number(diaActual).toString() + Number(e.key)\r\n }${ valorActual.substring(2) }`;\r\n this.dateTimeControl.setValue(nuevoValor);\r\n this.dateControl.setValue({\r\n ...this.dateControl.value,\r\n day: Number(this.dateTimeControl.value!.substring(0, 2)),\r\n });\r\n this.contador++;\r\n this.onEmit();\r\n input.setSelectionRange(3, 5);\r\n this.contador = 0;\r\n return;\r\n } else {\r\n const nuevoValor = `${ e.key.padStart(2, 0) }${ valorActual.substring(2) }`;\r\n this.dateTimeControl.setValue(nuevoValor);\r\n this.dateControl.setValue({\r\n ...this.dateControl.value,\r\n day: Number(this.dateTimeControl.value!.substring(0, 2)),\r\n });\r\n this.contador++;\r\n if (Number(e.key.padStart(2, 0)) > 3 || this.contador > 1) {\r\n this.contador = 0;\r\n input.setSelectionRange(3, 5);\r\n this.onEmit();\r\n return;\r\n } else this.onEmit();\r\n }\r\n this.onEmit();\r\n input.setSelectionRange(0, 2);\r\n }\r\n //============================= MES ==================================\r\n else if (input.selectionStart == 3 && input.selectionEnd == 5) {\r\n const valorActual: string = this.dateTimeControl.value!;\r\n const mesActual: string = valorActual.substring(3, 5);\r\n\r\n if (mesActual == \"mm\") {\r\n const nuevoValor = `${ valorActual.substring(0, 3) }${ e.key.padStart(2, 0) }${ valorActual.substring(5) }`;\r\n this.dateTimeControl.setValue(nuevoValor);\r\n this.dateControl.setValue({\r\n ...this.dateControl.value,\r\n month: Number(this.dateTimeControl.value!.substring(3, 5)),\r\n });\r\n this.contador++;\r\n if (e.key > 1) {\r\n this.onEmit();\r\n input.setSelectionRange(6, 10);\r\n this.contador = 0;\r\n return;\r\n } else this.onEmit();\r\n } else if (Number(mesActual) <= 1 && Number(mesActual) > 0 && this.contador > 0) {\r\n const nuevoValor = `${ valorActual.substring(0, 3) }${ Number(Number(mesActual).toString() + Number(e.key)) > 12 ? 12 : Number(mesActual).toString() + Number(e.key)\r\n }${ valorActual.substring(5) }`;\r\n this.dateTimeControl.setValue(nuevoValor);\r\n this.dateControl.setValue({\r\n ...this.dateControl.value,\r\n month: Number(this.dateTimeControl.value!.substring(3, 5)),\r\n });\r\n this.contador++;\r\n this.onEmit();\r\n input.setSelectionRange(6, 10);\r\n this.contador = 0;\r\n return;\r\n } else {\r\n const nuevoValor = `${ valorActual.substring(0, 3) }${ e.key.padStart(2, 0) }${ valorActual.substring(5) }`;\r\n this.dateTimeControl.setValue(nuevoValor);\r\n this.dateControl.setValue({\r\n ...this.dateControl.value,\r\n month: Number(this.dateTimeControl.value!.substring(3, 5)),\r\n });\r\n this.contador++;\r\n if (Number(e.key.padStart(2, 0)) > 1 || this.contador > 1) {\r\n this.onEmit();\r\n input.setSelectionRange(6, 10);\r\n this.contador = 0;\r\n return;\r\n } else this.onEmit();\r\n }\r\n this.onEmit();\r\n input.setSelectionRange(3, 5);\r\n }\r\n //============================= AÑO ==================================\r\n else if (input.selectionStart == 6 && input.selectionEnd == 10) {\r\n const valorActual: string = this.dateTimeControl.value!;\r\n const anioActual: string = valorActual.substring(6, 10);\r\n if (anioActual == \"yyyy\") {\r\n const nuevoValor = `${ valorActual.substring(0, 6) }${ e.key.padStart(4, 0) }${ valorActual.substring(10) }`;\r\n this.dateTimeControl.setValue(nuevoValor);\r\n this.dateControl.setValue({\r\n ...this.dateControl.value,\r\n year: Number(this.dateTimeControl.value!.substring(6, 10)),\r\n });\r\n this.contador++;\r\n if (e.key > 2) {\r\n const nuevoValor = `${ valorActual.substring(0, 6) }${ DateUtil.getYear(DateUtil.now()) }${ valorActual.substring(10) }`;\r\n this.dateTimeControl.setValue(nuevoValor);\r\n this.dateControl.setValue({\r\n ...this.dateControl.value,\r\n year: Number(this.dateTimeControl.value!.substring(6, 10)),\r\n });\r\n this.onEmit();\r\n input.setSelectionRange(11, 13);\r\n this.contador = 0;\r\n return;\r\n } else this.onEmit();\r\n } else if (Number(anioActual) <= 2999 && Number(anioActual) > 0) {\r\n let nuevoValor;\r\n this.contador++;\r\n if (Number(anioActual) >= 1000) {\r\n nuevoValor = `${ valorActual.substring(0, 6) }${ Number(e.key).toString().padStart(4, \"0\") }${ valorActual.substring(10) }`;\r\n } else {\r\n nuevoValor = `${ valorActual.substring(0, 6) }${ (Number(anioActual).toString() + Number(e.key)).padStart(\r\n 4,\r\n \"0\"\r\n ) }${ valorActual.substring(10) }`;\r\n this.dateTimeControl.setValue(nuevoValor);\r\n this.dateControl.setValue({\r\n ...this.dateControl.value,\r\n year: Number(this.dateTimeControl.value!.substring(6, 10)),\r\n });\r\n if (\r\n Number(Number(anioActual).toString() + Number(e.key)) > 1000 &&\r\n Number(Number(anioActual).toString() + Number(e.key)) < 3000\r\n ) {\r\n this.onEmit();\r\n input.setSelectionRange(11, 13);\r\n this.contador = 0;\r\n return;\r\n } else if (Number(Number(anioActual).toString() + Number(e.key)) > 2999) {\r\n nuevoValor = `${ valorActual.substring(0, 6) }${ DateUtil.getYear(DateUtil.now()) }${ valorActual.substring(10) }`;\r\n this.dateTimeControl.setValue(nuevoValor);\r\n this.dateControl.setValue({\r\n ...this.dateControl.value,\r\n year: Number(this.dateTimeControl.value!.substring(6, 10)),\r\n });\r\n this.onEmit();\r\n input.setSelectionRange(11, 13);\r\n this.contador = 0;\r\n return;\r\n }\r\n }\r\n this.dateTimeControl.setValue(nuevoValor);\r\n this.dateControl.setValue({\r\n ...this.dateControl.value,\r\n year: Number(this.dateTimeControl.value!.substring(6, 10)),\r\n });\r\n } else {\r\n const nuevoValor = `${ valorActual.substring(0, 6) }${ e.key.padStart(4, 0) }${ valorActual.substring(10) }`;\r\n this.dateTimeControl.setValue(nuevoValor);\r\n this.dateControl.setValue({\r\n ...this.dateControl.value,\r\n year: Number(this.dateTimeControl.value!.substring(6, 10)),\r\n });\r\n }\r\n this.contador++;\r\n this.onEmit();\r\n input.setSelectionRange(6, 10);\r\n }\r\n //============================= HORA =================================\r\n else if (input.selectionStart == 11 && input.selectionEnd == 13) {\r\n const valorActual: string = this.dateTimeControl.value!;\r\n const horaActual: string = valorActual.substring(11, 13);\r\n\r\n if (horaActual == \"--\") {\r\n const nuevoValor = `${ valorActual.substring(0, 11) }${ e.key.padStart(2, 0) }${ valorActual.substring(13) }`;\r\n this.dateTimeControl.setValue(nuevoValor);\r\n //=========== FORMATO 12 HORAS===========\r\n if (this.format == 12)\r\n this.hoursControl.setValue({\r\n ...this.hoursControl.value,\r\n hour: /[0-1][0-9]:[0-6][0-9] [A,P]M/.test(this.dateTimeControl.value!.substring(11))\r\n ? Number(this._datePipe.transform(`01/01/2020 ${ this.dateTimeControl.value!.substring(11) }`, \"HH\"))\r\n : Number(this.dateTimeControl.value!.substring(11, 13)),\r\n minute: this.dateTimeControl.value!.substring(14, 16) == \"--\" ? 0 : this.hoursControl.value.minute,\r\n });\r\n //=========== FORMATO 24 HORAS===========\r\n else\r\n this.hoursControl.setValue({\r\n ...this.hoursControl.value,\r\n hour: /[0-1][0-9]:[0-6][0-9]/.test(this.dateTimeControl.value!.substring(11))\r\n ? Number(this._datePipe.transform(`01/01/2020 ${ this.dateTimeControl.value!.substring(11) }`, \"HH\"))\r\n : Number(this.dateTimeControl.value!.substring(11, 13)),\r\n minute: this.dateTimeControl.value!.substring(14, 16) == \"00\" ? 0 : this.hoursControl.value.minute,\r\n });\r\n this.contador++;\r\n if (e.key > 1 && this.format == 12) {\r\n this.onEmit();\r\n input.setSelectionRange(14, 16);\r\n this.contador = 0;\r\n return;\r\n } else if (e.key > 2 && this.format == 24) {\r\n this.onEmit();\r\n input.setSelectionRange(14, 16);\r\n this.contador = 0;\r\n return;\r\n } else this.onEmit();\r\n } else if (Number(horaActual) <= 1 && Number(horaActual) > 0 && this.contador > 0 && this.format == 12) {\r\n const nuevoValor = `${ valorActual.substring(0, 11) }${ Number(Number(horaActual).toString() + Number(e.key)) > 12 ? 12 : Number(horaActual).toString() + Number(e.key)\r\n }${ valorActual.substring(13) }`;\r\n this.dateTimeControl.setValue(nuevoValor);\r\n this.hoursControl.setValue({\r\n ...this.hoursControl.value,\r\n hour: /[0-1][0-9]:[0-6][0-9] [A,P]M/.test(this.dateTimeControl.value!.substring(11))\r\n ? Number(this._datePipe.transform(`01/01/2020 ${ this.dateTimeControl.value!.substring(11) }`, \"HH\"))\r\n : Number(this.dateTimeControl.value!.substring(11, 13)),\r\n minute: this.dateTimeControl.value!.substring(14, 16) == \"00\" ? 0 : this.hoursControl.value.minute,\r\n });\r\n this.contador++;\r\n this.onEmit();\r\n input.setSelectionRange(14, 16);\r\n this.contador = 0;\r\n return;\r\n } else if (Number(horaActual) <= 2 && Number(horaActual) > 0 && this.contador > 0 && this.format == 24) {\r\n const nuevoValor = `${ valorActual.substring(0, 11) }${ Number(Number(horaActual).toString() + Number(e.key)) > 24 ? 24 : Number(horaActual).toString() + Number(e.key)\r\n }${ valorActual.substring(13) }`;\r\n this.dateTimeControl.setValue(nuevoValor);\r\n let hour;\r\n try {\r\n hour = /[0-1][0-9]:[0-6][0-9]/.test(this.dateTimeControl.value!.substring(11))\r\n ? Number(this._datePipe.transform(`01/01/2020 ${ this.dateTimeControl.value!.substring(11) }`, \"HH\"))\r\n : Number(this.dateTimeControl.value!.substring(11, 13));\r\n } catch (error) {\r\n hour = Number(this.dateTimeControl.value!.substring(11, 13));\r\n }\r\n this.hoursControl.setValue({\r\n ...this.hoursControl.value,\r\n hour,\r\n minute: this.dateTimeControl.value!.substring(14, 16) == \"00\" ? 0 : this.hoursControl.value.minute,\r\n });\r\n this.contador++;\r\n this.onEmit();\r\n input.setSelectionRange(14, 16);\r\n this.contador = 0;\r\n return;\r\n } else {\r\n const nuevoValor = `${ valorActual.substring(0, 11) }${ e.key.padStart(2, 0) }${ valorActual.substring(13) }`;\r\n this.dateTimeControl.setValue(nuevoValor);\r\n const regex = this.format == 12 ? /[0-1][0-9]:[0-6][0-9] [A,P]M/ : /[0-1][0-9]:[0-6][0-9]/;\r\n\r\n this.hoursControl.setValue({\r\n ...this.hoursControl.value,\r\n hour: regex.test(this.dateTimeControl.value!.substring(11))\r\n ? Number(this._datePipe.transform(`01/01/2020 ${ this.dateTimeControl.value!.substring(11) }`, \"HH\"))\r\n : Number(this.dateTimeControl.value!.substring(11, 13)),\r\n minute:\r\n this.dateTimeControl.value!.substring(14, 16) == \"00\" || this.dateTimeControl.value!.substring(14, 16) == \"--\"\r\n ? 0\r\n : this.hoursControl.value.minute,\r\n });\r\n this.contador++;\r\n if ((Number(e.key.padStart(2, 0)) > 1 || this.contador > 1) && this.format == 12) {\r\n this.onEmit();\r\n input.setSelectionRange(14, 16);\r\n this.contador = 0;\r\n return;\r\n } else if ((Number(e.key.padStart(2, 0)) > 2 || this.contador > 1) && this.format == 24) {\r\n this.onEmit();\r\n input.setSelectionRange(14, 16);\r\n this.contador = 0;\r\n return;\r\n } else this.onEmit();\r\n }\r\n this.onEmit();\r\n input.setSelectionRange(11, 13);\r\n }\r\n //============================ MINUTOS ===============================\r\n else if (input.selectionStart == 14 && input.selectionEnd == 16) {\r\n const valorActual: string = this.dateTimeControl.value!;\r\n const minutosActuales: string = valorActual.substring(14, 16);\r\n if (minutosActuales == \"--\") {\r\n const nuevoValor = `${ valorActual.substring(0, 14) }${ e.key.padStart(2, 0) }${ valorActual.substring(16) }`;\r\n this.dateTimeControl.setValue(nuevoValor);\r\n this.hoursControl.setValue({\r\n ...this.hoursControl.value,\r\n minute: /[0-1][0-9]:[0-6][0-9] [A,P]M/.test(this.dateTimeControl.value!.substring(11))\r\n ? Number(this._datePipe.transform(`01/01/2020 ${ this.dateTimeControl.value!.substring(11) }`, \"mm\"))\r\n : Number(this.dateTimeControl.value!.substring(14, 16)),\r\n });\r\n this.contador++;\r\n if (e.key > 5) {\r\n this.onEmit();\r\n if (this.format == 12) input.setSelectionRange(17, 19);\r\n else input.setSelectionRange(14, 16);\r\n this.contador = 0;\r\n return;\r\n } else this.onEmit();\r\n } else if (Number(minutosActuales) <= 5 && Number(minutosActuales) > 0 && this.contador > 0) {\r\n const nuevoValor = `${ valorActual.substring(0, 14) }${ Number(Number(minutosActuales).toString() + Number(e.key)) > 59 ? 59 : Number(minutosActuales).toString() + Number(e.key)\r\n }${ valorActual.substring(16) }`;\r\n this.dateTimeControl.setValue(nuevoValor);\r\n let minute;\r\n const regex = this.format == 12 ? /[0-1][0-9]:[0-6][0-9] [A,P]M/ : /[0-1][0-9]:[0-6][0-9]/;\r\n try {\r\n minute = regex.test(this.dateTimeControl.value!.substring(11))\r\n ? Number(this._datePipe.transform(`01/01/2020 ${ this.dateTimeControl.value!.substring(11) }`, \"mm\"))\r\n : Number(this.dateTimeControl.value!.substring(14, 16));\r\n } catch (error) {\r\n minute = Number(this.dateTimeControl.value!.substring(14, 16));\r\n }\r\n this.hoursControl.setValue({\r\n ...this.hoursControl.value,\r\n minute,\r\n });\r\n this.contador++;\r\n this.onEmit();\r\n if (this.format == 12) input.setSelectionRange(17, 19);\r\n else input.setSelectionRange(14, 16);\r\n this.contador = 0;\r\n return;\r\n } else {\r\n const nuevoValor = `${ valorActual.substring(0, 14) }${ e.key.padStart(2, 0) }${ valorActual.substring(16) }`;\r\n this.dateTimeControl.setValue(nuevoValor);\r\n this.hoursControl.setValue({\r\n ...this.hoursControl.value,\r\n minute: /[0-1][0-9]:[0-6][0-9] [A,P]M/.test(this.dateTimeControl.value!.substring(11))\r\n ? Number(this._datePipe.transform(`01/01/2020 ${ this.dateTimeControl.value!.substring(11) }`, \"mm\"))\r\n : Number(this.dateTimeControl.value!.substring(14, 16)),\r\n });\r\n this.contador++;\r\n if (Number(e.key.padStart(2, 0)) > 5 || this.contador > 1) {\r\n this.onEmit();\r\n if (this.format == 12) input.setSelectionRange(17, 19);\r\n else input.setSelectionRange(14, 16);\r\n this.contador = 0;\r\n return;\r\n } else this.onEmit();\r\n }\r\n this.onEmit();\r\n input.setSelectionRange(14, 16);\r\n }\r\n } else {\r\n //======================== EVENTOS TECLADO ===========================\r\n if (e.key == \"ArrowRight\") {\r\n if (input.selectionStart == 0 && input.selectionEnd == 2) {\r\n input.setSelectionRange(3, 5);\r\n this.contador = 0;\r\n } else if (input.selectionStart == 3 && input.selectionEnd == 5) {\r\n input.setSelectionRange(6, 10);\r\n this.contador = 0;\r\n } else if (input.selectionStart == 6 && input.selectionEnd == 10) {\r\n input.setSelectionRange(11, 13);\r\n this.contador = 0;\r\n } else if (input.selectionStart == 11 && input.selectionEnd == 13) {\r\n input.setSelectionRange(14, 16);\r\n this.contador = 0;\r\n } else if (input.selectionStart == 14 && input.selectionEnd == 16) {\r\n if (this.format == 12) input.setSelectionRange(17, 19);\r\n else if (this.format == 24) this.btnOpen?.nativeElement.focus();\r\n this.contador = 0;\r\n } else if (input.selectionStart == 17 && input.selectionEnd == 19) {\r\n this.btnOpen?.nativeElement.focus();\r\n this.contador = 0;\r\n }\r\n } else if (e.key == \"ArrowLeft\") {\r\n if (input.selectionStart == 0 && input.selectionEnd == 2) {\r\n this.goBack();\r\n this.contador = 0;\r\n } else if (input.selectionStart == 3 && input.selectionEnd == 5) {\r\n input.setSelectionRange(0, 2);\r\n this.contador = 0;\r\n } else if (input.selectionStart == 6 && input.selectionEnd == 10) {\r\n input.setSelectionRange(3, 5);\r\n this.contador = 0;\r\n } else if (input.selectionStart == 11 && input.selectionEnd == 13) {\r\n input.setSelectionRange(6, 10);\r\n this.contador = 0;\r\n } else if (input.selectionStart == 14 && input.selectionEnd == 16) {\r\n input.setSelectionRange(11, 13);\r\n this.contador = 0;\r\n } else if (input.selectionStart == 17 && input.selectionEnd == 19) {\r\n input.setSelectionRange(14, 16);\r\n this.contador = 0;\r\n }\r\n } else if (e.key.toLowerCase() == \"a\") {\r\n if (input.selectionStart == 17 && input.selectionEnd == 19) {\r\n const valorActual = this.dateTimeControl.value;\r\n const nuevoValor = `${ valorActual!.substring(0, 17) }AM`;\r\n this.dateTimeControl.setValue(nuevoValor);\r\n this.hoursControl.setValue({\r\n ...this.hoursControl.value,\r\n hour: Number(this._datePipe.transform(`01/01/2020 ${ this.dateTimeControl.value!.substring(11) }`, \"HH\")),\r\n });\r\n this.onEmit();\r\n input.setSelectionRange(17, 19);\r\n }\r\n } else if (e.key.toLowerCase() == \"p\") {\r\n if (input.selectionStart == 17 && input.selectionEnd == 19) {\r\n const valorActual = this.dateTimeControl.value;\r\n const nuevoValor = `${ valorActual!.substring(0, 17) }PM`;\r\n this.dateTimeControl.setValue(nuevoValor);\r\n this.hoursControl.setValue({\r\n ...this.hoursControl.value,\r\n hour: Number(this._datePipe.transform(`01/01/2020 ${ this.dateTimeControl.value!.substring(11) }`, \"HH\")),\r\n });\r\n this.onEmit();\r\n input.setSelectionRange(17, 19);\r\n }\r\n } else if (e.code == \"Space\" && this.autoComplete) {\r\n const valorActual: string = this.dateTimeControl.value!;\r\n const diaActual: string = this.today.day.toString();\r\n const mesActual: string = this.today.month.toString();\r\n const anioActual: string = this.today.year.toString();\r\n const horaActual: string = DateUtil.toStrFormat(DateUtil.now(\"ISODATETIME_NO_TIMEZONE\"), this.format == 24 ? \"MASK_24_HOURS\" : \"MASK_12_HOURS\");\r\n const t: string = DateUtil.toStrFormat(DateUtil.now(\"ISODATETIME_NO_TIMEZONE\"), \"MIDDAY_INDICATOR\");\r\n const minutosActuales: string = DateUtil.getMinutes(DateUtil.now(\"ISODATETIME_NO_TIMEZONE\")).toString().padStart(2, \"0\");\r\n if (input.selectionStart == 0 && input.selectionEnd == 2) {\r\n const nuevoValor = `${ diaActual.padStart(2, \"0\") }${ valorActual.substring(2) }`;\r\n this.dateTimeControl.setValue(nuevoValor);\r\n this.dateControl.setValue(\r\n {\r\n ...this.dateControl.value,\r\n day: this.today.day,\r\n },\r\n { emitEvent: false }\r\n );\r\n input.setSelectionRange(3, 5);\r\n } else if (input.selectionStart == 3 && input.selectionEnd == 5) {\r\n const nuevoValor = `${ valorActual.substring(0, 3) }${ mesActual.padStart(2, \"0\") }${ valorActual.substring(5) }`;\r\n this.dateTimeControl.setValue(nuevoValor);\r\n this.dateControl.setValue(\r\n {\r\n ...this.dateControl.value,\r\n month: this.today.month,\r\n },\r\n { emitEvent: false }\r\n );\r\n input.setSelectionRange(6, 10);\r\n } else if (input.selectionStart == 6 && input.selectionEnd == 10) {\r\n const nuevoValor = `${ valorActual.substring(0, 6) }${ anioActual.padStart(4, \"0\") }${ valorActual.substring(10) }`;\r\n this.dateTimeControl.setValue(nuevoValor);\r\n this.dateControl.setValue(\r\n {\r\n ...this.dateControl.value,\r\n year: this.today.year,\r\n },\r\n { emitEvent: false }\r\n );\r\n input.setSelectionRange(11, 13);\r\n } else if (input.selectionStart == 11 && input.selectionEnd == 13) {\r\n let nuevoValor;\r\n if (this.format == 24) nuevoValor = `${ valorActual.substring(0, 11) }${ horaActual }${ valorActual.substring(13) }`;\r\n else if (this.format == 12)\r\n nuevoValor = `${ valorActual.substring(0, 11) }${ horaActual }${ valorActual.substring(13, 17) }${ t.toUpperCase() }`;\r\n\r\n this.dateTimeControl.setValue(nuevoValor!);\r\n this.hoursControl.setValue({\r\n ...this.hoursControl.value,\r\n minute: this.hoursControl.value.minute != null ? this.hoursControl.value.minute : 0,\r\n hour: this.format == 12 ? Number(horaActual) : Number(horaActual) + 12,\r\n });\r\n input.setSelectionRange(14, 16);\r\n } else if (input.selectionStart == 14 && input.selectionEnd == 16) {\r\n const nuevoValor = `${ valorActual.substring(0, 14) }${ minutosActuales.padStart(2, \"0\") }${ valorActual.substring(16) }`;\r\n this.dateTimeControl.setValue(nuevoValor);\r\n this.hoursControl.setValue({\r\n ...this.hoursControl.value,\r\n minute: Number(minutosActuales),\r\n });\r\n if (this.format == 12) input.setSelectionRange(17, 19);\r\n else input.setSelectionRange(14, 16);\r\n }\r\n this.onEmit();\r\n } else if (e.key == \"Enter\" || e.key == \"ArrowDown\") {\r\n this.goNext();\r\n } else if (e.key == \"ArrowUp\") {\r\n this.goBack();\r\n } else if (e.key == \"Delete\") {\r\n this.limpiarTodo();\r\n } else if (e.key == \"Backspace\") {\r\n this.limpiar();\r\n }\r\n }\r\n }\r\n\r\n goNext (): void {\r\n if (this.next != undefined) {\r\n if (this.next.disabled || this.next.readonly) {\r\n if (this.nextIsDisable != undefined) {\r\n this.nextIsDisable.focus();\r\n }\r\n } else {\r\n this.next.focus();\r\n }\r\n } else {\r\n if (this.nextIsDisable != undefined) {\r\n this.nextIsDisable.focus();\r\n } else {\r\n this.onNext.emit();\r\n }\r\n }\r\n }\r\n\r\n goBack (): void {\r\n if (this.back != undefined) {\r\n if (this.back.disabled || this.back.readonly) {\r\n if (this.backIsDisable != undefined) {\r\n this.backIsDisable.focus();\r\n }\r\n } else {\r\n this.back.focus();\r\n }\r\n } else {\r\n if (this.backIsDisable != undefined) {\r\n this.backIsDisable.focus();\r\n } else {\r\n this.onBack.emit();\r\n }\r\n }\r\n }\r\n\r\n limpiarTodo () {\r\n this.contador = 0;\r\n this.hoursControl.setValue(\r\n {\r\n hour: null,\r\n minute: null,\r\n },\r\n { emitEvent: false }\r\n );\r\n this.dateControl.setValue(\r\n {\r\n year: null,\r\n month: null,\r\n day: null,\r\n },\r\n { emitEvent: false }\r\n );\r\n if (this.format == 12) this.dateTimeControl.setValue(\"dd/mm/yyyy --:-- --\");\r\n else if (this.format == 24) this.dateTimeControl.setValue(\"dd/mm/yyyy --:--\");\r\n this.inputDateTime.nativeElement.setSelectionRange(0, 2);\r\n this.onChange(null);\r\n this.onTouch();\r\n }\r\n\r\n limpiar () {\r\n if (this.inputDateTime.nativeElement.selectionStart == 0 && this.inputDateTime.nativeElement.selectionEnd == 2) {\r\n this.dateControl.setValue(\r\n {\r\n ...this.dateControl.value,\r\n day: null,\r\n },\r\n { emitEvent: false }\r\n );\r\n this.dateTimeControl.setValue(`dd${ this.dateTimeControl.value!.substring(2) }`);\r\n this.onChange(null);\r\n this.onTouch();\r\n this.inputDateTime.nativeElement.setSelectionRange(0, 2);\r\n this.contador = 0;\r\n } else if (this.inputDateTime.nativeElement.selectionStart == 3 && this.inputDateTime.nativeElement.selectionEnd == 5) {\r\n this.dateControl.setValue(\r\n {\r\n ...this.dateControl.value,\r\n month: null,\r\n },\r\n { emitEvent: false }\r\n );\r\n this.dateTimeControl.setValue(`${ this.dateTimeControl.value!.substring(0, 3) }mm${ this.dateTimeControl.value!.substring(5) }`);\r\n this.onChange(null);\r\n this.onTouch();\r\n this.inputDateTime.nativeElement.setSelectionRange(3, 5);\r\n this.contador = 0;\r\n } else if (this.inputDateTime.nativeElement.selectionStart == 6 && this.inputDateTime.nativeElement.selectionEnd == 10) {\r\n this.dateControl.setValue(\r\n {\r\n ...this.dateControl.value,\r\n year: null,\r\n },\r\n { emitEvent: false }\r\n );\r\n this.dateTimeControl.setValue(`${ this.dateTimeControl.value!.substring(0, 6) }yyyy${ this.dateTimeControl.value!.substring(10) }`);\r\n this.onChange(null);\r\n this.onTouch();\r\n this.inputDateTime.nativeElement.setSelectionRange(6, 10);\r\n this.contador = 0;\r\n } else if (this.inputDateTime.nativeElement.selectionStart == 11 && this.inputDateTime.nativeElement.selectionEnd == 13) {\r\n this.hoursControl.setValue(\r\n {\r\n ...this.dateControl.value,\r\n hour: null,\r\n },\r\n { emitEvent: false }\r\n );\r\n this.dateTimeControl.setValue(`${ this.dateTimeControl.value!.substring(0, 11) }--${ this.dateTimeControl.value!.substring(13) }`);\r\n this.onChange(null);\r\n this.onTouch();\r\n this.inputDateTime.nativeElement.setSelectionRange(11, 13);\r\n this.contador = 0;\r\n } else if (this.inputDateTime.nativeElement.selectionStart == 14 && this.inputDateTime.nativeElement.selectionEnd == 16) {\r\n this.hoursControl.setValue(\r\n {\r\n ...this.dateControl.value,\r\n minute: null,\r\n },\r\n { emitEvent: false }\r\n );\r\n this.dateTimeControl.setValue(`${ this.dateTimeControl.value!.substring(0, 14) }--${ this.dateTimeControl.value!.substring(16) }`);\r\n this.onChange(null);\r\n this.onTouch();\r\n this.inputDateTime.nativeElement.setSelectionRange(14, 16);\r\n this.contador = 0;\r\n }\r\n }\r\n preventDefault (e: any) {\r\n e.preventDefault();\r\n return false;\r\n }\r\n\r\n onClick (e: Event, input: HTMLInputElement) {\r\n e.preventDefault();\r\n\r\n if (this.disabled) return;\r\n\r\n if (input.selectionStart == 0 || input.selectionStart == 1 || input.selectionStart == 2) {\r\n const timeout = setTimeout(() => {\r\n input.setSelectionRange(0, 2);\r\n this.contador = 0;\r\n clearTimeout(timeout);\r\n }, 100);\r\n } else if (input.selectionStart == 3 || input.selectionStart == 4 || input.selectionStart == 5) {\r\n const timeout = setTimeout(() => {\r\n input.setSelectionRange(3, 5);\r\n this.contador = 0;\r\n clearTimeout(timeout);\r\n }, 100);\r\n } else if (\r\n input.selectionStart == 6 ||\r\n input.selectionStart == 7 ||\r\n input.selectionStart == 8 ||\r\n input.selectionStart == 9 ||\r\n input.selectionStart == 10\r\n ) {\r\n const timeout = setTimeout(() => {\r\n input.setSelectionRange(6, 10);\r\n this.contador = 0;\r\n clearTimeout(timeout);\r\n }, 100);\r\n } else if (input.selectionStart == 11 || input.selectionStart == 12 || input.selectionStart == 13) {\r\n const timeout = setTimeout(() => {\r\n input.setSelectionRange(11, 13);\r\n this.contador = 0;\r\n clearTimeout(timeout);\r\n }, 100);\r\n } else if (input.selectionStart == 14 || input.selectionStart == 15 || input.selectionStart == 16) {\r\n const timeout = setTimeout(() => {\r\n input.setSelectionRange(14, 16);\r\n this.contador = 0;\r\n clearTimeout(timeout);\r\n }, 100);\r\n } else if (input.selectionStart == 17 || input.selectionStart == 18 || input.selectionStart == 19) {\r\n const timeout = setTimeout(() => {\r\n input.setSelectionRange(17, 19);\r\n this.contador = 0;\r\n clearTimeout(timeout);\r\n }, 100);\r\n } else {\r\n const timeout = setTimeout(() => {\r\n input.setSelectionRange(0, 2);\r\n this.contador = 0;\r\n clearTimeout(timeout);\r\n }, 100);\r\n }\r\n }\r\n open (d: NgbInputDatepicker): void {\r\n if (this.dateTimeControl.value == \"dd/mm/yyyy --:-- --\" || this.dateTimeControl.value == \"dd/mm/yyyy --:--\") {\r\n this.hoursControl.setValue({\r\n hour: new Date().getHours(),\r\n minute: new Date().getMinutes(),\r\n second: new Date().getSeconds(),\r\n });\r\n this.dateControl.setValue({\r\n year: new Date().getFullYear(),\r\n month: new Date().getMonth() + 1,\r\n day: new Date().getDate(),\r\n ...this.hoursControl.value,\r\n });\r\n const value = new DateTimeModel(Object.assign(this.dateControl.value, this.hoursControl.value));\r\n this.dateTimeControl.setValue(this._datePipe.transform(value.toString(), this.stringFormat));\r\n this.onEmit();\r\n }\r\n }\r\n\r\n focusOut (event: any): void {\r\n if (event.target.ariaLabel == \"Minutes\") {\r\n this.ngbDatepicker?.close();\r\n if (this.goNextWhenSelect) {\r\n this.goNext();\r\n }\r\n }\r\n }\r\n}\r\n","<div class=\"row\">\r\n <div class=\"col-12\" style=\"overflow: hidden\">\r\n <label *ngIf=\"label != null && label != '' && showLabel\" class=\"d-flex sumax-label mb-0 p-0\"\r\n ><span [title]=\"label\" style=\"white-space: nowrap; overflow: hidden; text-overflow: ellipsis\">{{ label }}</span>\r\n <span *ngIf=\"required\" class=\"ms-1\" [class.text-danger]=\"controls?.errors != null\"> *</span>\r\n <span *ngIf=\"labelInfo\">\r\n <i class=\"fa fa-exclamation-circle text-info ms-2\" [matTooltip]=\"textLabelInfo\" matTooltipClass=\"bg-info\"></i>\r\n </span>\r\n </label>\r\n <input\r\n type=\"text\"\r\n class=\"form-control form-control-sm position-absolute\"\r\n container=\"body\"\r\n id=\"fakeInput\"\r\n ngbDatepicker\r\n [formControl]=\"dateControl\"\r\n [autoClose]=\"'outside'\"\r\n [footerTemplate]=\"footerTemplate\"\r\n [minDate]=\"{ year: 1960, month: 1, day: 1 }\"\r\n #d2=\"ngbDatepicker\" />\r\n <div class=\"input-group w-100\">\r\n <input\r\n type=\"text\"\r\n readonly\r\n id=\"inputDateTime\"\r\n #inputDateTime\r\n style=\"flex: 1\"\r\n [class.is-invalid]=\"controls?.errors != null && (controls?.dirty || controls?.touched) && submitted\"\r\n [disabled]=\"disabled || readonly\"\r\n class=\"form-control form-control-sm\"\r\n (blur)=\"onBlur()\"\r\n (focusout)=\"focusOutInput()\"\r\n (keyup)=\"onKeyUp($event)\"\r\n (dblclick)=\"preventDefault($event)\"\r\n (click)=\"preventDefault($event)\"\r\n (mouseup)=\"onClick($event, inputDateTime)\"\r\n [formControl]=\"dateTimeControl\" />\r\n <div class=\"input-group-append\">\r\n <button\r\n #btnOpen\r\n (keyup.ArrowLeft)=\"goBack()\"\r\n [disabled]=\"disabled || readonly\"\r\n (keyup.ArrowRight)=\"clearable ? btnClean.focus() : goNext()\"\r\n class=\"btn btn-info p-0 rounded-0 use-button\"\r\n (click)=\"d2.toggle(); open(d2)\"\r\n type=\"button\">\r\n <i aria-hidden=\"true\" class=\"fa fa-calendar text-light px-1\"></i>\r\n </button>\r\n <button\r\n #btnClean\r\n [hidden]=\"!clearable\"\r\n class=\"btn btn-danger p-0 rounded-0 limpiar\"\r\n [disabled]=\"disabled || readonly\"\r\n (click)=\"limpiarTodo()\"\r\n (keyup.ArrowLeft)=\"btnOpen.focus()\"\r\n (keyup.ArrowRight)=\"goNext()\"\r\n type=\"button\">\r\n <!-- <mat-icon class=\"text-white pt-1\" style=\"font-size: 18px;\" [matTooltip]=\"'Limpiar'\" matTooltipClass=\"bg-danger\">close</mat-icon> -->\r\n <i aria-hidden=\"true\" class=\"fa fa-times px-1 text-light\"></i>\r\n </button>\r\n </div>\r\n <div class=\"position-absolute container-tooltipmessage\">\r\n <tooltip-message\r\n [label]=\"label\"\r\n [controls]=\"controls\"\r\n [validatorMessage]=\"validatorMessage\"\r\n [tooltipMessage]=\"tooltipMessage\"\r\n [submitted]=\"submitted\"></tooltip-message>\r\n </div>\r\n </div>\r\n <error-message\r\n [label]=\"label\"\r\n [controls]=\"controls\"\r\n [validatorMessage]=\"validatorMessage\"\r\n [tooltipMessage]=\"tooltipMessage\"\r\n [submitted]=\"submitted\"></error-message>\r\n <ng-template #footerTemplate>\r\n <ngb-timepicker [formControl]=\"hoursControl\" [meridian]=\"format == 12 ? true : false\" (focusout)=\"focusOut($event)\"></ngb-timepicker>\r\n </ng-template>\r\n </div>\r\n</div>\r\n","export type formatHour = 12 | 24;\r\nexport class DateTimePickerEditable {\r\n showLabel?: boolean;\r\n openWhenFocus?: boolean;\r\n goNextWhenSelect?: boolean;\r\n validatorMessage?: boolean;\r\n tooltipMessage?: boolean;\r\n submitted?: boolean;\r\n format?: formatHour;\r\n clearable?: boolean;\r\n autoCompleteHours?: boolean;\r\n autoComplete?: boolean;\r\n}\r\n","import { CommonModule } from '@angular/common';\r\nimport { ModuleWithProviders, NgModule } from '@angular/core';\r\nimport { ReactiveFormsModule } from '@angular/forms';\r\nimport { MatTooltipModule } from '@angular/material/tooltip';\r\nimport {\r\n NgbDatepickerModule,\r\n NgbTimepickerModule,\r\n} from '@ng-bootstrap/ng-bootstrap';\r\nimport { ErrorMessageModule } from '../error-message/error-message.module';\r\nimport { TooltipMessageModule } from '../tooltip-message/tooltip-message.module';\r\nimport { DateTimePickerEditableService } from './date-time-picker-editable.service';\r\nimport { DateTimePickerEditable } from '../utils/DateTimePickerEditable';\r\nimport { DateTimePickerEditableComponent } from './date-time-picker-editable.component';\r\n\r\n@NgModule({\r\n declarations: [DateTimePickerEditableComponent],\r\n imports: [\r\n CommonModule,\r\n NgbTimepickerModule,\r\n NgbDatepickerModule,\r\n ReactiveFormsModule,\r\n TooltipMessageModule,\r\n MatTooltipModule,\r\n ErrorMessageModule,\r\n ],\r\n exports: [DateTimePickerEditableComponent],\r\n})\r\nexport class DateTimePickerEditableModule {\r\n static forRoot(\r\n dateTimePicker: DateTimePickerEditable = new DateTimePickerEditable()\r\n ): ModuleWithProviders<DateTimePickerEditableModule> {\r\n return {\r\n ngModule: DateTimePickerEditableModule,\r\n providers: [\r\n {\r\n provide: 'DATE_TIME_PICKER_SHOW_LABEL',\r\n useValue: dateTimePicker.showLabel,\r\n },\r\n {\r\n provide: 'DATE_TIME_PICKER_OPEN_WHEN_FOCUS',\r\n useValue: dateTimePicker.openWhenFocus,\r\n },\r\n {\r\n provide: 'DATE_TIME_PICKER_GO_NEXT_WHEN_SELECT',\r\n useValue: dateTimePicker.goNextWhenSelect,\r\n },\r\n {\r\n provide: 'DATE_TIME_PICKER_VALIDATOR_MESSAGE',\r\n useValue: dateTimePicker.validatorMessage,\r\n },\r\n {\r\n provide: 'DATE_TIME_PICKER_TOOLTIP_MESSAGE',\r\n useValue: dateTimePicker.tooltipMessage,\r\n },\r\n {\r\n provide: 'DATE_TIME_PICKER_SUBMITTED',\r\n useValue: dateTimePicker.submitted,\r\n },\r\n {\r\n provide: 'DATE_TIME_PICKER_FORMAT',\r\n useValue: dateTimePicker.format,\r\n },\r\n {\r\n provide: 'DATE_TIME_PICKER_CLEARABLE',\r\n useValue: dateTimePicker.clearable,\r\n },\r\n {\r\n provide: 'DATE_TIME_PICKER_AUTOCOMPLETE_HOURS',\r\n useValue: dateTimePicker.autoCompleteHours,\r\n },\r\n {\r\n provide: 'DATE_TIME_PICKER_AUTOCOMPLETE',\r\n useValue: dateTimePicker.autoComplete,\r\n },\r\n DateTimePickerEditableService,\r\n ],\r\n };\r\n }\r\n}\r\n","import { Inject, Injectable } from \"@angular/core\";\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class DateTimePickerService {\r\n\r\n constructor(\r\n @Inject('DATE_TIME_PICKER_INPUT_DATE_TIME_FORMAT') private inputDatetimeFormat: string = 'dd/MM/yyyy HH:mm',\r\n @Inject('DATE_TIME_PICKER_SHOW_LABEL') private showLabel: boolean = true,\r\n @Inject('DATE_TIME_PICKER_OPEN_WHEN_FOCUS') private openWhenFocus: boolean = false,\r\n @Inject('DATE_TIME_PICKER_GO_NEXT_WHEN_SELECT') private goNextWhenSelect: boolean = false,\r\n @Inject('DATE_TIME_PICKER_VALIDATOR_MESSAGE') private validatorMessage: boolean = false,\r\n @Inject('DATE_TIME_PICKER_TOOLTIP_MESSAGE') private tooltipMessage: boolean = true,\r\n @Inject('DATE_TIME_PICKER_SUBMITTED') private submitted: boolean = true,\r\n ) {\r\n }\r\n\r\n public getInputDatetimeFormat(): string {\r\n return this.inputDatetimeFormat;\r\n }\r\n public getShowLabel(): boolean {\r\n return this.showLabel;\r\n }\r\n public getOpenWhenFocus(): boolean {\r\n return this.openWhenFocus;\r\n }\r\n public getGoNextWhenSelect(): boolean {\r\n return this.goNextWhenSelect;\r\n }\r\n public getValidatorMessage(): boolean {\r\n return this.validatorMessage;\r\n }\r\n public getTooltipMessage(): boolean {\r\n return this.tooltipMessage;\r\n }\r\n public getSubmitted(): boolean {\r\n return this.submitted;\r\n }\r\n \r\n}","import { DatePipe } from '@angular/common';\r\nimport {\r\n ChangeDetectionStrategy,\r\n Component,\r\n ElementRef,\r\n EventEmitter,\r\n Input,\r\n OnChanges,\r\n OnInit,\r\n Output,\r\n Renderer2,\r\n SimpleChanges,\r\n ViewChild,\r\n forwardRef,\r\n} from '@angular/core';\r\nimport {\r\n AbstractControl,\r\n ControlValueAccessor,\r\n NG_VALIDATORS,\r\n NG_VALUE_ACCESSOR,\r\n ValidationErrors,\r\n} from '@angular/forms';\r\nimport {\r\n NgbCalendar,\r\n NgbDateParserFormatter,\r\n NgbDateStruct,\r\n NgbDatepickerI18n,\r\n NgbInputDatepicker,\r\n NgbTimeStruct,\r\n NgbTimepicker\r\n} from '@ng-bootstrap/ng-bootstrap';\r\nimport { DateTimePickerService } from './date-time-picker.service';\r\nimport { CustomDatepickerI18n, I18n } from '../date-picker/CustomDatePickerI18n';\r\nimport { CustomDatepickerFormat } from '../date-picker/CustomDatePickerFormat';\r\nimport { DateTimeModel } from '../utils/DateTimeModel';\r\n\r\n@Component({\r\n selector: 'date-time-picker',\r\n templateUrl: './date-time-picker.component.html',\r\n styleUrls: ['./date-time-picker.component.scss'],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n providers: [\r\n {\r\n provide: NG_VALUE_ACCESSOR,\r\n useExisting: forwardRef(() => DateTimePickerComponent),\r\n multi: true,\r\n },\r\n {\r\n provide: NG_VALIDATORS,\r\n useExisting: forwardRef(() => DateTimePickerComponent),\r\n multi: true,\r\n },\r\n I18n,\r\n { provide: NgbDatepickerI18n, useClass: CustomDatepickerI18n },\r\n { provide: NgbDateParserFormatter, useClass: CustomDatepickerFormat },\r\n ],\r\n})\r\nexport class DateTimePickerComponent\r\n implements OnInit, OnChanges, ControlValueAccessor\r\n{\r\n /**\r\n * @description Formato de la fecha:\r\n * 'dd/MM/yyyy HH:mm' - 'dd/MM/yyyy HH:mm:ss' - 'M/d/yyyy H:mm:ss'\r\n * @default 'dd/MM/yyyy HH:mm'\r\n * @type {string}\r\n */\r\n @Input() inputDatetimeFormat: string = 'dd/MM/yyyy HH:mm';\r\n \r\n /**\r\n * @description Texto a mostrar como etiqueta del campo\r\n * @default ''\r\n * @type string\r\n */\r\n @Input() label: string = '';\r\n \r\n /**\r\n * @description Controla la visualización del texto superior (label)\r\n * @default true\r\n * @type boolean\r\n */\r\n @Input() showLabel: boolean = true;\r\n \r\n /**\r\n * @description Establece el control como solo lectura\r\n * @default false\r\n * @type boolean\r\n */\r\n @Input() readonly: boolean = false;\r\n \r\n /**\r\n * @description Indica si el campo es obligatorio\r\n * @default false\r\n * @type boolean\r\n */\r\n @Input() required: boolean = false;\r\n \r\n /**\r\n * @description Muestra mensajes de validación\r\n * @default false\r\n * @type boolean\r\n */\r\n @Input() validatorMessage: boolean = false;\r\n \r\n /**\r\n * @description Muestra mensajes de ayuda como tooltips\r\n * @default true\r\n * @type boolean\r\n */\r\n @Input() tooltipMessage: boolean = true;\r\n \r\n /**\r\n * @description Indica si el formulario ha sido enviado para mostrar validaciones\r\n * @default true\r\n * @type boolean\r\n */\r\n @Input() submitted: boolean = true;\r\n \r\n /**\r\n * @description Referencia al siguiente control para navegación\r\n * @default undefined\r\n * @type any\r\n */\r\n @Input() next: any;\r\n \r\n /**\r\n * @description Referencia al control alternativo cuando el siguiente está deshabilitado\r\n * @default undefined\r\n * @type any\r\n */\r\n @Input() nextIsDisable: any;\r\n \r\n /**\r\n * @description Referencia al control anterior para navegación\r\n * @default undefined\r\n * @type any\r\n */\r\n @Input() back: any;\r\n \r\n /**\r\n * @description Referencia al control alternativo cuando el anterior está deshabilitado\r\n * @default undefined\r\n * @type any\r\n */\r\n @Input() backIsDisable: any;\r\n \r\n /**\r\n * @description Habilita información adicional para la etiqueta\r\n * @default false\r\n * @type boolean\r\n */\r\n @Input() labelInfo: boolean = false;\r\n \r\n /**\r\n * @description Texto informativo adicional para la etiqueta\r\n * @default ''\r\n * @type string\r\n */\r\n @Input() textLabelInfo: string = '';\r\n \r\n /**\r\n * @description Abre el selector al recibir el foco\r\n * @default false\r\n * @type boolean\r\n */\r\n @Input() openWhenFocus: boolean = false;\r\n \r\n /**\r\n * @description Navega al siguiente control al seleccionar una fecha\r\n * @default false\r\n * @type boolean\r\n */\r\n @Input() goNextWhenSelect: boolean = false;\r\n @Output() onNext: EventEmitter<any> = new EventEmitter();\r\n @Output() onBack: EventEmitter<any> = new EventEmitter();\r\n\r\n @ViewChild('d') ngbDatepicker!: NgbInputDatepicker;\r\n @ViewChild('tp') timePicker!: NgbTimepicker;\r\n @ViewChild('btnOpen') btnOpen!: ElementRef;\r\n @ViewChild('btnClean') btnClean!: ElementRef;\r\n\r\n controls?: AbstractControl;\r\n today = this.calendar.getToday();\r\n date: NgbDateStruct | any = this.today;\r\n time: NgbTimeStruct = {\r\n hour: new Date().getHours(),\r\n minute: new Date().getMinutes(),\r\n second: new Date().getSeconds(),\r\n };\r\n input: any = new DateTimeModel(Object.assign(this.date, this.time));\r\n isDisabled = false;\r\n\r\n _tempValue: string | null = null;\r\n _initValue = false;\r\n\r\n constructor(\r\n private calendar: NgbCalendar,\r\n private datePipe: DatePipe,\r\n private dateTimePickerService: DateTimePickerService,\r\n private _render: Renderer2\r\n ) {\r\n this.inputDatetimeFormat =\r\n this.dateTimePickerService.getInputDatetimeFormat();\r\n this.showLabel = this.dateTimePickerService.getShowLabel();\r\n this.openWhenFocus = this.dateTimePickerService.getOpenWhenFocus();\r\n this.goNextWhenSelect = this.dateTimePickerService.getGoNextWhenSelect();\r\n this.validatorMessage = this.dateTimePickerService.getValidatorMessage();\r\n this.tooltipMessage = this.dateTimePickerService.getTooltipMessage();\r\n this.submitted = this.dateTimePickerService.getSubmitted();\r\n }\r\n\r\n onChange = (_: any) => {};\r\n onValidationChange = () => {};\r\n onTouch = () => {};\r\n focus = () => {\r\n this.btnOpen.nativeElement.focus();\r\n if (!this.readonly && this.openWhenFocus) {\r\n this.ngbDatepicker.open();\r\n }\r\n };\r\n\r\n ngOnChanges(changes: SimpleChanges): void {\r\n if (changes['submitted']) {\r\n if (this.controls !== undefined && changes['submitted'].currentValue) {\r\n this.controls.markAsDirty();\r\n this.controls.markAsTouched();\r\n }\r\n }\r\n }\r\n\r\n ngOnInit() {}\r\n\r\n // onDateSelect(evt: any) {\r\n //this.ngbDatepicker.close();\r\n // if (this.goNextWhenSelect) {\r\n // \tthis.goNext();\r\n // }\r\n //console.log(evt);\r\n // }\r\n\r\n focusOut(event: any): void {\r\n if (event.target.ariaLabel == 'Minutes') {\r\n this.ngbDatepicker.close();\r\n if (this.goNextWhenSelect) {\r\n this.goNext();\r\n }\r\n }\r\n }\r\n\r\n onModelDateChange(evt: NgbDateStruct | NgbTimeStruct): void {\r\n this.input = new DateTimeModel(Object.assign(this.date, this.time));\r\n const emitValue = this.datePipe.transform(this.input, 'yyyy-MM-ddTHH:mm');\r\n this.onTouch();\r\n this.onChange(emitValue);\r\n }\r\n\r\n limpiar(): void {\r\n this.date = null;\r\n this.time = { minute: 0, hour: 0, second: 0 };\r\n this.input = null;\r\n this.onTouch();\r\n this.onChange(null);\r\n }\r\n\r\n writeValue(newModel: any): void {\r\n // this.input = new DateTimeModel(Object.assign(this.date, this.time));\r\n if (newModel) {\r\n // this.input = Object.assign(!this.input, DateTimeModel.fromLocalString(newModel));\r\n if (!this.input) {\r\n this.input = DateTimeModel.fromLocalString(newModel);\r\n } else {\r\n this.input = Object.assign(\r\n this.input,\r\n DateTimeModel.fromLocalString(newModel)\r\n );\r\n }\r\n\r\n this.date = this.input;\r\n this.time = {\r\n hour: this.input.hour,\r\n minute: this.input.minute,\r\n second: this.input.second,\r\n };\r\n\r\n this._tempValue = this.datePipe.transform(this.input, 'yyyy-MM-ddTHH:mm');\r\n // this.onTouch();\r\n\r\n if (this.controls) {\r\n this._render.setProperty(this.controls, 'value', this._tempValue);\r\n }\r\n } else {\r\n // Agregue el limpiar para que cargue vacio si se le setea vacio o null\r\n this.limpiar();\r\n // this.input = new DateTimeModel();\r\n }\r\n }\r\n\r\n registerOnChange(fn: any): void {\r\n this.onChange = fn;\r\n }\r\n\r\n registerOnTouched(fn: any): void {\r\n this.onTouch = fn;\r\n }\r\n\r\n setDisabledState?(isDisabled: boolean): void {\r\n this.isDisabled = isDisabled;\r\n }\r\n\r\n validate(control: AbstractControl): ValidationErrors | any {\r\n this.controls = control;\r\n\r\n if (!this._initValue) {\r\n if (this._tempValue) {\r\n this._render.setProperty(control, 'value', this._tempValue);\r\n }\r\n this._initValue = true;\r\n }\r\n return null;\r\n }\r\n\r\n registerOnValidatorChange?(fn: () => void): void {\r\n this.onValidationChange = fn;\r\n }\r\n\r\n open(d: NgbInputDatepicker): void {\r\n if (this.input === null) {\r\n this.date = this.today;\r\n this.time = {\r\n hour: new Date().getHours(),\r\n minute: new Date().getMinutes(),\r\n second: new Date().getSeconds(),\r\n };\r\n this.input = new DateTimeModel(Object.assign(this.date, this.time));\r\n const emitValue = this.datePipe.transform(this.input, 'yyyy-MM-ddTHH:mm');\r\n this.onTouch();\r\n this.onChange(emitValue);\r\n }\r\n //abrir el datetime\r\n d.open();\r\n }\r\n\r\n goNext(): void {\r\n if (this.next != undefined) {\r\n if (this.next.disabled || this.next.readonly) {\r\n if (this.nextIsDisable != undefined) {\r\n this.nextIsDisable.focus();\r\n }\r\n } else {\r\n this.next.focus();\r\n }\r\n } else {\r\n if (this.nextIsDisable != undefined) {\r\n this.nextIsDisable.focus();\r\n } else {\r\n this.onNext.emit();\r\n }\r\n }\r\n }\r\n\r\n goBack(): void {\r\n if (this.back != undefined) {\r\n if (this.back.disabled || this.back.readonly) {\r\n if (this.backIsDisable != undefined) {\r\n this.backIsDisable.focus();\r\n }\r\n } else {\r\n this.back.focus();\r\n }\r\n } else {\r\n if (this.backIsDisable != undefined) {\r\n this.backIsDisable.focus();\r\n } else {\r\n this.onBack.emit();\r\n }\r\n }\r\n }\r\n}\r\n","<label *ngIf=\"label != null && label != '' && showLabel\" class=\"d-flex sumax-label mb-0 p-0\"\r\n ><span [title]=\"label\" style=\"white-space: nowrap; overflow: hidden; text-overflow: ellipsis\">{{ label }}</span>\r\n <span *ngIf=\"required\" class=\"ms-1\" [class.text-danger]=\"controls?.errors != null\"> *</span>\r\n <span *ngIf=\"labelInfo\">\r\n <i class=\"fa fa-exclamation-circle text-info ms-2\" [matTooltip]=\"textLabelInfo\" matTooltipClass=\"bg-info\"></i>\r\n </span>\r\n</label>\r\n<div\r\n [class.input-icon]=\"controls?.errors != null && (controls?.dirty || controls?.touched) && submitted\"\r\n class=\"position-relative\"\r\n [class.right]=\"controls?.errors != null && (controls?.dirty || controls?.touched) && submitted\">\r\n <!-- tooltip-message es el icono de error -->\r\n\r\n <tooltip-message\r\n [label]=\"label\"\r\n [controls]=\"controls\"\r\n [validatorMessage]=\"validatorMessage\"\r\n [tooltipMessage]=\"tooltipMessage\"\r\n [submitted]=\"submitted\"></tooltip-message>\r\n <div class=\"input-group mr-2\">\r\n <input name=\"input\" type=\"text\" class=\"form-control form-control-sm\" [disabled]=\"true\" [ngModel]=\"input | date: inputDatetimeFormat\" />\r\n <input\r\n class=\"form-control form-control-sm\"\r\n container=\"body\"\r\n [readonly]=\"true\"\r\n placeholder=\"dd/mm/yyyy\"\r\n name=\"dp\"\r\n [(ngModel)]=\"date\"\r\n (ngModelChange)=\"onModelDateChange($event)\"\r\n [autoClose]=\"'outside'\"\r\n ngbDatepicker\r\n [footerTemplate]=\"footerTemplate\"\r\n [minDate]=\"{ year: 1960, month: 1, day: 1 }\"\r\n #d=\"ngbDatepicker\" />\r\n <!-- (dateSelect)=\"onDateSelect($event)\" -->\r\n <div class=\"input-group-append\">\r\n <button\r\n #btnOpen\r\n class=\"btn btn-info p-0 rounded-0 h-100\"\r\n [disabled]=\"isDisabled || readonly\"\r\n (click)=\"open(d)\"\r\n (keyup.ArrowLeft)=\"goBack()\"\r\n (keyup.ArrowRight)=\"btnClean.focus()\"\r\n type=\"button\">\r\n <!-- <mat-icon class=\"text-white pt-1\" style=\"font-size: 18px;\" [matTooltip]=\"'Calendario'\" matTooltipClass=\"bg-info\">calendar_today</mat-icon> -->\r\n <i aria-hidden=\"true\" class=\"fa fa-calendar text-light px-1\"></i>\r\n </button>\r\n <button\r\n #btnClean\r\n class=\"btn btn-danger p-0 rounded-0 limpiar h-100\"\r\n [disabled]=\"isDisabled || readonly\"\r\n (click)=\"limpiar()\"\r\n (keyup.ArrowLeft)=\"btnOpen.focus()\"\r\n (keyup.ArrowRight)=\"goNext()\"\r\n type=\"button\">\r\n <!-- <mat-icon class=\"text-white pt-1\" style=\"font-size: 18px;\" [matTooltip]=\"'Limpiar'\" matTooltipClass=\"bg-danger\">close</mat-icon> -->\r\n <i aria-hidden=\"true\" class=\"fa fa-times px-1 text-light\"></i>\r\n </button>\r\n </div>\r\n </div>\r\n</div>\r\n\r\n<ng-template #footerTemplate>\r\n <hr class=\"my-0\" />\r\n <ngb-timepicker #tp [(ngModel)]=\"time\" name=\"timepicker\" (ngModelChange)=\"onModelDateChange($event)\" (focusout)=\"focusOut($event)\">\r\n </ngb-timepicker>\r\n</ng-template>\r\n<!-- error-message es el mansaje que aparece abajo del componente -->\r\n<error-message\r\n [label]=\"label\"\r\n [controls]=\"controls\"\r\n [validatorMessage]=\"validatorMessage\"\r\n [tooltipMessage]=\"tooltipMessage\"\r\n [submitted]=\"submitted\"></error-message>\r\n","export class DateTimePicker {\r\n inputDatetimeFormat?:string;\r\n showLabel?:boolean;\r\n openWhenFocus?:boolean;\r\n goNextWhenSelect?:boolean;\r\n validatorMessage?: boolean;\r\n tooltipMessage?: boolean;\r\n submitted?: boolean;\r\n}","import { CommonModule, DatePipe } from '@angular/common';\r\nimport { ModuleWithProviders, NgModule } from '@angular/core';\r\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\r\nimport { MatIconModule } from '@angular/material/icon';\r\nimport { MatTooltipModule } from '@angular/material/tooltip';\r\nimport { RouterModule } from '@angular/router';\r\nimport { NgbDatepickerModule, NgbTimepickerModule } from '@ng-bootstrap/ng-bootstrap';\r\nimport { ErrorMessageModule } from '../error-message/error-message.module';\r\nimport { TooltipMessageModule } from '../tooltip-message/tooltip-message.module';\r\nimport { DateTimePickerComponent } from './date-time-picker.component';\r\nimport { DateTimePickerService } from './date-time-picker.service';\r\nimport { DateTimePicker } from './date-time-picker';\r\n\r\n\r\n@NgModule({\r\n declarations: [DateTimePickerComponent],\r\n imports: [\r\n CommonModule,\r\n RouterModule,\r\n FormsModule,\r\n ReactiveFormsModule,\r\n ErrorMessageModule,\r\n TooltipMessageModule,\r\n NgbDatepickerModule,\r\n MatIconModule,\r\n MatTooltipModule,\r\n NgbTimepickerModule\r\n ],\r\n exports: [DateTimePickerComponent],\r\n\tproviders: [\r\n\t\tDatePipe\r\n\t]\r\n})\r\nexport class DateTimePickerModule { \r\n static forRoot(dateTimePicker: DateTimePicker = new DateTimePicker()): ModuleWithProviders<DateTimePickerModule> {\r\n return {\r\n ngModule: DateTimePickerModule,\r\n providers: [\r\n { provide: 'DATE_TIME_PICKER_INPUT_DATE_TIME_FORMAT', useValue: dateTimePicker.inputDatetimeFormat },\r\n { provide: 'DATE_TIME_PICKER_SHOW_LABEL', useValue: dateTimePicker.showLabel },\r\n { provide: 'DATE_TIME_PICKER_OPEN_WHEN_FOCUS', useValue: dateTimePicker.openWhenFocus },\r\n { provide: 'DATE_TIME_PICKER_GO_NEXT_WHEN_SELECT', useValue: dateTimePicker.goNextWhenSelect },\r\n { provide: 'DATE_TIME_PICKER_VALIDATOR_MESSAGE', useValue: dateTimePicker.validatorMessage },\r\n { provide: 'DATE_TIME_PICKER_TOOLTIP_MESSAGE', useValue: dateTimePicker.tooltipMessage },\r\n { provide: 'DATE_TIME_PICKER_SUBMITTED', useValue: dateTimePicker.submitted },\r\n DateTimePickerService\r\n ]\r\n }\r\n }\r\n}\r\n","import { Inject, Injectable } from \"@angular/core\";\r\n\r\n@Injectable()\r\nexport class InputNumberService {\r\n constructor(\r\n @Inject(\"INPUT_NUMBER_DECIMALS\") private decimals: number = -1,\r\n @Inject(\"INPUT_NUMBER_FORMAT_CERO\") private formatCero: boolean = false,\r\n @Inject(\"INPUT_NUMBER_BTN_ENABLE\") private btnEnable: boolean = false,\r\n @Inject(\"INPUT_NUMBER_BOLD\") private bold: boolean = false,\r\n @Inject(\"INPUT_NUMBER_VALIDATOR_MESSAGE\") private validatorMessage: boolean = false,\r\n @Inject(\"INPUT_NUMBER_TOOLTIP_MESSAGE\") private tooltipMessage: boolean = true,\r\n @Inject(\"INPUT_NUMBER_SUBMITTED\") private submitted: boolean = true,\r\n @Inject(\"INPUT_NUMBER_VALIDATOR_ALERT\") private validatorAlert: boolean = false\r\n ) {}\r\n\r\n public getDecimals(): number {\r\n return this.decimals;\r\n }\r\n public getFormatCero(): boolean {\r\n return this.formatCero;\r\n }\r\n public getBtnEnable(): boolean {\r\n return this.btnEnable;\r\n }\r\n public getBold(): boolean {\r\n return this.bold;\r\n }\r\n public getValidatorMessage(): boolean {\r\n return this.validatorMessage;\r\n }\r\n public getTooltipMessage(): boolean {\r\n return this.tooltipMessage;\r\n }\r\n public getSubmitted(): boolean {\r\n return this.submitted;\r\n }\r\n public getValidatorAlert(): boolean {\r\n return this.validatorAlert;\r\n }\r\n}\r\n","import {\r\n\tAfterViewInit,\r\n\tComponent,\r\n\tElementRef,\r\n\tEventEmitter,\r\n\tforwardRef,\r\n\tInput,\r\n\tOnChanges,\r\n\tOnInit,\r\n\tOutput,\r\n\tRenderer2,\r\n\tSimpleChanges,\r\n\tViewChild\r\n} from '@angular/core';\r\nimport {\r\n\tAbstractControl,\r\n\tControlValueAccessor,\r\n\tNG_VALIDATORS,\r\n\tNG_VALUE_ACCESSOR,\r\n\tValidationErrors\r\n} from '@angular/forms';\r\nimport { InputNumberService } from './input-number.service';\r\nimport { SharedComponentsUtil } from '../utils/SharedComponentsUtil';\r\nimport { MessageUtilService } from '../utils/message-util.service';\r\n\r\n@Component({\r\n\tselector: 'input-number',\r\n\ttemplateUrl: './input-number.component.html',\r\n\tstyleUrls: ['./input-number.component.scss'],\r\n\tproviders: [\r\n\t\t{\r\n\t\t\tprovide: NG_VALUE_ACCESSOR,\r\n\t\t\tuseExisting: forwardRef(() => InputNumberComponent),\r\n\t\t\tmulti: true\r\n\t\t},\r\n\t\t{\r\n\t\t\tprovide: NG_VALIDATORS,\r\n\t\t\tuseExisting: forwardRef(() => InputNumberComponent),\r\n\t\t\tmulti: true\r\n\t\t}\r\n\t]\r\n})\r\nexport class InputNumberComponent implements OnInit, AfterViewInit, OnChanges, ControlValueAccessor {\r\n\t/**\r\n\t * @description Controla la visualización del texto superior (label)\r\n\t * @default true\r\n\t * @type boolean\r\n\t */\r\n\t@Input() showLabel: boolean = true;\r\n\t\r\n\t/**\r\n\t * @description Texto a mostrar como etiqueta del campo\r\n\t * @default null\r\n\t * @type any\r\n\t */\r\n\t@Input() label: any = null;\r\n\t\r\n\t/**\r\n\t * @description Habilita el botón para activar el campo\r\n\t * @default false\r\n\t * @type boolean\r\n\t */\r\n\t@Input() btnEnable: boolean = false;\r\n\t\r\n\t/**\r\n\t * @description Valor para el atributo autocomplete del input\r\n\t * @default \"no-autocomplete-input-number\"\r\n\t * @type string\r\n\t */\r\n\t@Input() autocomplete: string = 'no-autocomplete-input-number';\r\n\t\r\n\t/**\r\n\t * @description Aplica estilo negrita al texto\r\n\t * @default false\r\n\t * @type boolean\r\n\t */\r\n\t@Input() bold: boolean = false;\r\n\t\r\n\t/**\r\n\t * @description Número de decimales a mostrar (-1 para no especificar)\r\n\t * @default -1\r\n\t * @type number\r\n\t */\r\n\t@Input() decimals: number = -1;\r\n\t\r\n\t/**\r\n\t * @description Formatea valores vacíos como cero\r\n\t * @default false\r\n\t * @type boolean\r\n\t */\r\n\t@Input() formatCero: boolean = false;\r\n\t\r\n\t/**\r\n\t * @description Longitud máxima permitida para el número\r\n\t * @default null\r\n\t * @type any\r\n\t */\r\n\t@Input() maxLength: any = null;\r\n\t\r\n\t/**\r\n\t * @description Referencia al siguiente control para navegación\r\n\t * @default undefined\r\n\t * @type any\r\n\t */\r\n\t@Input() next: any;\r\n\t\r\n\t/**\r\n\t * @description Referencia al control alternativo cuando el siguiente está deshabilitado\r\n\t * @default undefined\r\n\t * @type any\r\n\t */\r\n\t@Input() nextIsDisable: any;\r\n\t\r\n\t/**\r\n\t * @description Referencia al control anterior para navegación\r\n\t * @default undefined\r\n\t * @type any\r\n\t */\r\n\t@Input() back: any;\r\n\t\r\n\t/**\r\n\t * @description Referencia al control alternativo cuando el anterior está deshabilitado\r\n\t * @default undefined\r\n\t * @type any\r\n\t */\r\n\t@Input() backIsDisable: any;\r\n\t\r\n\t/**\r\n\t * @description Indica si el campo es obligatorio\r\n\t * @default false\r\n\t * @type boolean\r\n\t */\r\n\t@Input() required: boolean = false;\r\n\t\r\n\t/**\r\n\t * @description Deshabilita el control\r\n\t * @default false\r\n\t * @type boolean\r\n\t */\r\n\t@Input() disabled: boolean = false;\r\n\t\r\n\t/**\r\n\t * @description Establece el control como solo lectura\r\n\t * @default false\r\n\t * @type boolean\r\n\t */\r\n\t@Input() readonly: boolean = false;\r\n\t\r\n\t/**\r\n\t * @description Muestra mensajes de validación\r\n\t * @default false\r\n\t * @type boolean\r\n\t */\r\n\t@Input() validatorMessage: boolean = false;\r\n\t\r\n\t/**\r\n\t * @description Muestra mensajes de ayuda como tooltips\r\n\t * @default true\r\n\t * @type boolean\r\n\t */\r\n\t@Input() tooltipMessage: boolean = true;\r\n\t\r\n\t/**\r\n\t * @description Indica si el formulario ha sido enviado para mostrar validaciones\r\n\t * @default true\r\n\t * @type boolean\r\n\t */\r\n\t@Input() submitted: boolean = true;\r\n\t\r\n\t/**\r\n\t * @description Habilita información adicional para la etiqueta\r\n\t * @default false\r\n\t * @type boolean\r\n\t */\r\n\t@Input() labelInfo: boolean = false;\r\n\t\r\n\t/**\r\n\t * @description Texto informativo adicional para la etiqueta\r\n\t * @default \"\"\r\n\t * @type string\r\n\t */\r\n\t@Input() textLabelInfo: string = '';\r\n\t\r\n\t/**\r\n\t * @description Muestra alertas de validación\r\n\t * @default false\r\n\t * @type boolean\r\n\t */\r\n\t@Input() validatorAlert: boolean = false;\r\n\t\r\n\t/**\r\n\t * @description Clases CSS adicionales para el componente\r\n\t * @default \"\"\r\n\t * @type string\r\n\t */\r\n\t@Input() setNgClass: string = '';\r\n\t\r\n\t/**\r\n\t * @description Texto de placeholder para el input\r\n\t * @default \"\"\r\n\t * @type string\r\n\t */\r\n\t@Input() placeholder: string = '';\r\n\t\r\n\t/**\r\n\t * @description Permite valores negativos\r\n\t * @default false\r\n\t * @type boolean\r\n\t */\r\n\t@Input() allowNegativeNumbers: boolean = false;\r\n\r\n /**\r\n * @description Deshabilita el separador de miles\r\n * @default false\r\n * @type boolean\r\n */\r\n @Input() disableThousandSeparator: boolean = false;\r\n\r\n\t@Output() onNext: EventEmitter<any> = new EventEmitter();\r\n\t@Output() onBack: EventEmitter<any> = new EventEmitter();\r\n\t@Output() change: EventEmitter<any> = new EventEmitter();\r\n\t@Output() onchange: EventEmitter<any> = new EventEmitter();\r\n\t@Output() blur: EventEmitter<any> = new EventEmitter();\r\n\t@Output() onfocus: EventEmitter<any> = new EventEmitter();\r\n\t@Output() onfocusout: EventEmitter<any> = new EventEmitter();\r\n\t@ViewChild('inputText') inputText!: ElementRef<HTMLInputElement>;\r\n\r\n\tsharedComponentsUtil = new SharedComponentsUtil();\r\n\r\n\tformat = 'separator';\r\n\r\n\tcontrols: AbstractControl | null = null;\r\n\tvalue: any;\r\n\tvalueEmit: any;\r\n\t_initValue = false;\r\n\r\n\tconstructor(\r\n\t\tprivate messageUtilService: MessageUtilService,\r\n\t\tprivate inputNumberService: InputNumberService,\r\n\t\tprivate _render: Renderer2\r\n\t) {\r\n\t\tthis.decimals = this.inputNumberService.getDecimals();\r\n\t\tthis.formatCero = this.inputNumberService.getFormatCero();\r\n\t\tthis.btnEnable = this.inputNumberService.getBtnEnable();\r\n\t\tthis.bold = this.inputNumberService.getBold();\r\n\t\tthis.validatorMessage = this.inputNumberService.getValidatorMessage();\r\n\t\tthis.tooltipMessage = this.inputNumberService.getTooltipMessage();\r\n\t\tthis.submitted = this.inputNumberService.getSubmitted();\r\n\t\tthis.validatorAlert = this.inputNumberService.getValidatorAlert();\r\n\t}\r\n\r\n\tngOnChanges(changes: SimpleChanges): void {\r\n\t\tif (changes['submitted']) {\r\n\t\t\tif (this.controls != null && changes['submitted'].currentValue) {\r\n\t\t\t\tthis.controls.markAsDirty();\r\n\t\t\t\tthis.controls.markAsTouched();\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\tngOnInit() {\r\n\t\tif (this.decimals != -1) {\r\n\t\t\tthis.format = 'separator' + '.' + this.decimals.toString();\r\n\t\t} else {\r\n\t\t\tthis.format = 'separator';\r\n\t\t}\r\n\t}\r\n\r\n\tngAfterViewInit(): void {}\r\n\r\n\tonChange = (_: any) => {};\r\n\tonValidationChange = () => {};\r\n\tonTouch = () => {};\r\n\tfocus = () => {\r\n\t\tthis.inputText.nativeElement.focus();\r\n\t\tthis.inputText.nativeElement.select();\r\n\t};\r\n\r\n\tonBlur(value: any) {\r\n\t\tthis.onTouch();\r\n\t\tif ((value == '' || value == null) && this.formatCero) {\r\n\t\t\tvalue = 0;\r\n\t\t}\r\n\t\tconst newValue = this.formatNumber(value);\r\n\r\n\t\tif (this.value !== newValue) {\r\n\t\t\tthis.value = newValue;\r\n\t\t\tthis.onChange(this.emitValue(newValue));\r\n\t\t}\r\n\r\n\t\t// if (newValue) {\r\n\t\tthis.onValidationChange();\r\n\t\tthis.blur.emit(this.emitValue(newValue));\r\n\t\t// }\r\n\t}\r\n\r\n\tonFocus(evt: any) {\r\n\t\tthis.inputText.nativeElement.select();\r\n\t\tthis.onfocus.emit(evt);\r\n\t}\r\n\r\n\tonInput(evt: any) {\r\n\t\tthis.onTouch();\r\n\t\tthis.onChange(this.emitValue(evt));\r\n\t\tthis.onValidationChange();\r\n\t\tthis.change.emit(this.emitValue(evt));\r\n\t\tthis.onchange.emit(this.emitValue(evt));\r\n\t}\r\n\r\n\twriteValue(value: any): void {\r\n\t\tif (value != null) {\r\n\t\t\tthis.value = this.formatNumber(value);\r\n\r\n\t\t\tif (this.value === 'NaN') {\r\n\t\t\t\tif (this.controls) {\r\n\t\t\t\t\tthis._render.setProperty(this.controls, 'value', null);\r\n\t\t\t\t}\r\n\t\t\t\tthrow new Error('Not a number');\r\n\t\t\t}\r\n\r\n\t\t\tif (this.controls) {\r\n\t\t\t\tthis._render.setProperty(this.controls, 'value', Number(this.value));\r\n\t\t\t}\r\n\t\t} else {\r\n\t\t\tthis.value = null;\r\n\t\t}\r\n\t}\r\n\r\n\tregisterOnChange(fn: any): void {\r\n\t\tthis.onChange = fn;\r\n\t}\r\n\r\n\tregisterOnTouched(fn: any): void {\r\n\t\tthis.onTouch = fn;\r\n\t}\r\n\r\n\tsetDisabledState(isDisabled: boolean): void {\r\n\t\tthis.disabled = isDisabled;\r\n\t}\r\n\r\n\tvalidate(control: AbstractControl): ValidationErrors | any {\r\n\t\tthis.controls = control;\r\n\r\n\t\tif (!this._initValue) {\r\n\t\t\tif (this.value === 'NaN') {\r\n\t\t\t\tthis._render.setProperty(this.controls, 'value', null);\r\n\t\t\t\tthrow new Error('Not a number');\r\n\t\t\t}\r\n\r\n\t\t\tif (this.value !== null) {\r\n\t\t\t\tthis._render.setProperty(this.controls, 'value', Number(this.value));\r\n\t\t\t}\r\n\t\t\tthis._initValue = true;\r\n\t\t}\r\n\r\n\t\treturn null;\r\n\t}\r\n\r\n\tregisterOnValidatorChange?(fn: () => void): void {\r\n\t\tthis.onValidationChange = fn;\r\n\t}\r\n\r\n\tformatNumber(value: any) {\r\n\t\tif (value != null) {\r\n\t\t\tvalue = value.toString();\r\n\t\t}\r\n\t\tif (this.decimals != null && value != null && value != '') {\r\n\t\t\tif (this.decimals > 0) {\r\n\t\t\t\treturn Number(value.replaceAll(',', '')).toFixed(this.decimals);\r\n\t\t\t} else {\r\n\t\t\t\treturn Number(value.replaceAll(',', '')).toFixed();\r\n\t\t\t}\r\n\t\t} else {\r\n\t\t\tif (value != null && value != '') {\r\n\t\t\t\treturn Number(value.replaceAll(',', ''));\r\n\t\t\t} else {\r\n\t\t\t\treturn null;\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\temitValue(value: any) {\r\n\t\tif (value != null && value != '') {\r\n\t\t\tif (this.decimals != null) {\r\n\t\t\t\tif (this.decimals > 0) {\r\n\t\t\t\t\treturn Number(Number(value.replaceAll(',', '')).toFixed(this.decimals));\r\n\t\t\t\t} else {\r\n\t\t\t\t\treturn Number(Number(value.replaceAll(',', '')).toFixed());\r\n\t\t\t\t}\r\n\t\t\t} else {\r\n\t\t\t\treturn Number(value.replaceAll(',', ''));\r\n\t\t\t}\r\n\t\t} else {\r\n\t\t\treturn null;\r\n\t\t}\r\n\t}\r\n\r\n\tenterKeyUp() {\r\n\t\tif (!this.disabled) {\r\n\t\t\tlet validator = this.sharedComponentsUtil.stopByValidator(this.controls, this.validatorAlert, this.label);\r\n\t\t\tif (validator.error) {\r\n\t\t\t\tthis.messageUtilService.getMessageError('000046', 'Error', validator.message);\r\n\t\t\t\treturn;\r\n\t\t\t}\r\n\t\t}\r\n\t\tif (this.next != undefined) {\r\n\t\t\tif (this.next.disabled || this.next.readonly) {\r\n\t\t\t\tif (this.nextIsDisable != undefined) {\r\n\t\t\t\t\tthis.nextIsDisable.focus();\r\n\t\t\t\t}\r\n\t\t\t} else {\r\n\t\t\t\tthis.next.focus();\r\n\t\t\t}\r\n\t\t} else {\r\n\t\t\tif (this.nextIsDisable != undefined) {\r\n\t\t\t\tthis.nextIsDisable.focus();\r\n\t\t\t} else {\r\n\t\t\t\tthis.onNext.emit();\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\tarrowUpKeyUp() {\r\n\t\tif (!this.disabled) {\r\n\t\t\tlet validator = this.sharedComponentsUtil.stopByValidator(this.controls, this.validatorAlert, this.label);\r\n\t\t\tif (validator.error) {\r\n\t\t\t\tthis.messageUtilService.getMessageError('000046', 'Error', validator.message);\r\n\t\t\t\treturn;\r\n\t\t\t}\r\n\t\t}\r\n\t\tif (this.back != undefined) {\r\n\t\t\tif (this.back.disabled || this.back.readonly) {\r\n\t\t\t\tif (this.backIsDisable != undefined) {\r\n\t\t\t\t\tthis.backIsDisable.focus();\r\n\t\t\t\t}\r\n\t\t\t} else {\r\n\t\t\t\tthis.back.focus();\r\n\t\t\t}\r\n\t\t} else {\r\n\t\t\tif (this.backIsDisable != undefined) {\r\n\t\t\t\tthis.backIsDisable.focus();\r\n\t\t\t} else {\r\n\t\t\t\tthis.onBack.emit();\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\tonFocusOut(evt: any) {\r\n\t\tthis.onfocusout.emit(evt);\r\n\t\tif (this.btnEnable) {\r\n\t\t\tthis.disabled = true;\r\n\t\t}\r\n\t}\r\n\r\n\tclickEnable() {\r\n\t\tthis.disabled = false;\r\n\t\tthis.readonly = false;\r\n\t\tsetTimeout(() => {\r\n\t\t\tthis.focus();\r\n\t\t}, 150);\r\n\t}\r\n}\r\n","<label *ngIf=\"label != null && label != '' && showLabel\" class=\"d-flex sumax-label mb-0 p-0\"\r\n\t><span [title]=\"label\" style=\"white-space: nowrap; overflow: hidden; text-overflow: ellipsis\">{{ label }}</span>\r\n\t<span *ngIf=\"required\" class=\"ms-1\" [class.text-danger]=\"controls?.errors != null\"> *</span>\r\n\t<span *ngIf=\"labelInfo\">\r\n\t\t<i class=\"fa fa-exclamation-circle text-info ms-2\" [matTooltip]=\"textLabelInfo\" matTooltipClass=\"bg-info\"></i>\r\n\t</span>\r\n</label>\r\n<div\r\n\t[class.input-icon]=\"controls?.errors != null && (controls?.dirty || controls?.touched) && submitted\"\r\n\t[class.right]=\"controls?.errors != null && (controls?.dirty || controls?.touched) && submitted\"\r\n>\r\n\t<div class=\"d-flex\">\r\n\t\t<div class=\"w-100 position-relative\">\r\n\t\t\t<tooltip-message\r\n\t\t\t\t[label]=\"label\"\r\n\t\t\t\t[controls]=\"controls\"\r\n\t\t\t\t[validatorMessage]=\"validatorMessage\"\r\n\t\t\t\t[tooltipMessage]=\"tooltipMessage\"\r\n\t\t\t\t[submitted]=\"submitted\"\r\n\t\t\t></tooltip-message>\r\n\t\t\t<input\r\n\t\t\t\t#inputText\r\n\t\t\t\ttype=\"text\"\r\n\t\t\t\tclass=\"form-control form-control-sm text-end\"\r\n\t\t\t\t[class.is-invalid]=\"controls?.errors != null && (controls?.dirty || controls?.touched) && submitted\"\r\n\t\t\t\t[(ngModel)]=\"value\"\r\n\t\t\t\t[disabled]=\"disabled\"\r\n\t\t\t\t[readonly]=\"readonly\"\r\n\t\t\t\t[mask]=\"format\"\r\n\t\t\t\t[thousandSeparator]=\"disableThousandSeparator ? '' : ','\"\r\n\t\t\t\t(blur)=\"onBlur($any($event.target).value)\"\r\n\t\t\t\t(input)=\"onInput($any($event.target).value)\"\r\n\t\t\t\t(focusout)=\"onFocusOut($any($event.target).value)\"\r\n\t\t\t\t[attr.autocomplete]=\"autocomplete\"\r\n\t\t\t\t[placeholder]=\"placeholder\"\r\n\t\t\t\t(focus)=\"onFocus($any($event.target).value)\"\r\n\t\t\t\t[attr.maxLength]=\"maxLength\"\r\n\t\t\t\t(keyup.enter)=\"enterKeyUp()\"\r\n\t\t\t\t(keyup.ArrowUp)=\"arrowUpKeyUp()\"\r\n\t\t\t\t[ngClass]=\"setNgClass\"\r\n\t\t\t\t[class.bold]=\"bold\"\r\n\t\t\t\t[allowNegativeNumbers]=\"allowNegativeNumbers\"\r\n\t\t\t\t[leadZero]=\"!allowNegativeNumbers\"\r\n\t\t\t/>\r\n\t\t</div>\r\n\t\t<div class=\"bd-highlight\" *ngIf=\"btnEnable\">\r\n\t\t\t<button type=\"button\" class=\"btn btn-info p-0 rounded-0 h-100\" (click)=\"clickEnable()\">\r\n\t\t\t\t<i class=\"fa fa-check text-white px-1\" [matTooltip]=\"'Habilitar'\" matTooltipClass=\"bg-info\"></i>\r\n\t\t\t</button>\r\n\t\t</div>\r\n\t\t<ng-content select=\"[more-buttons]\"></ng-content>\r\n\t</div>\r\n</div>\r\n<error-message\r\n\t[label]=\"label\"\r\n\t[controls]=\"controls\"\r\n\t[validatorMessage]=\"validatorMessage\"\r\n\t[tooltipMessage]=\"tooltipMessage\"\r\n\t[submitted]=\"submitted\"\r\n></error-message>\r\n","export class InputNumber {\r\n decimals?: number;\r\n formatCero?: boolean;\r\n btnEnable?: boolean;\r\n bold?: boolean;\r\n validatorMessage?: boolean;\r\n tooltipMessage?: boolean;\r\n submitted?: boolean;\r\n validatorAlert?: boolean;\r\n}","import { CommonModule } from \"@angular/common\";\r\nimport { ModuleWithProviders, NgModule } from \"@angular/core\";\r\nimport { FormsModule, ReactiveFormsModule } from \"@angular/forms\";\r\nimport { MatTooltipModule } from \"@angular/material/tooltip\";\r\nimport { RouterModule } from \"@angular/router\";\r\nimport { NgxMaskDirective, provideNgxMask } from \"ngx-mask\";\r\nimport { ErrorMessageModule } from \"../error-message/error-message.module\";\r\nimport { TooltipMessageModule } from \"../tooltip-message/tooltip-message.module\";\r\nimport { InputNumber } from \"./input-number\";\r\nimport { InputNumberComponent } from \"./input-number.component\";\r\nimport { InputNumberService } from \"./input-number.service\";\r\n\r\n@NgModule({\r\n declarations: [InputNumberComponent],\r\n imports: [\r\n CommonModule,\r\n RouterModule,\r\n FormsModule,\r\n ReactiveFormsModule,\r\n ErrorMessageModule,\r\n TooltipMessageModule,\r\n MatTooltipModule,\r\n NgxMaskDirective,\r\n ],\r\n exports: [InputNumberComponent],\r\n providers: [provideNgxMask({ validation: false })],\r\n})\r\nexport class InputNumberModule {\r\n static forRoot(inputNumber: InputNumber = new InputNumber()): ModuleWithProviders<InputNumberModule> {\r\n return {\r\n ngModule: InputNumberModule,\r\n providers: [\r\n { provide: \"INPUT_NUMBER_DECIMALS\", useValue: inputNumber.decimals },\r\n { provide: \"INPUT_NUMBER_FORMAT_CERO\", useValue: inputNumber.formatCero },\r\n { provide: \"INPUT_NUMBER_BTN_ENABLE\", useValue: inputNumber.btnEnable },\r\n { provide: \"INPUT_NUMBER_BOLD\", useValue: inputNumber.bold },\r\n { provide: \"INPUT_NUMBER_VALIDATOR_MESSAGE\", useValue: inputNumber.validatorMessage },\r\n { provide: \"INPUT_NUMBER_TOOLTIP_MESSAGE\", useValue: inputNumber.tooltipMessage },\r\n { provide: \"INPUT_NUMBER_SUBMITTED\", useValue: inputNumber.submitted },\r\n { provide: \"INPUT_NUMBER_VALIDATOR_ALERT\", useValue: inputNumber.validatorAlert },\r\n InputNumberService,\r\n ],\r\n };\r\n }\r\n}\r\n","import { Inject, Injectable } from \"@angular/core\";\r\nimport { Format } from \"./input-text\";\r\n\r\n@Injectable()\r\nexport class InputTextService {\r\n constructor(\r\n @Inject(\"INPUT_TEXT_FORMAT\") private format: Format = \"M\",\r\n @Inject(\"INPUT_TEXT_SHOW_LABEL\") private showLabel: boolean = true,\r\n @Inject(\"INPUT_TEXT_BTN_ENABLE\") private btnEnable: boolean = false,\r\n @Inject(\"INPUT_TEXT_BOLD\") private bold: boolean = false,\r\n @Inject(\"INPUT_TEXT_TEXT_RIGHT\") private textRight: boolean = false,\r\n @Inject(\"INPUT_TEXT_VALIDATOR_MESSAGE\") private validatorMessage: boolean = false,\r\n @Inject(\"INPUT_TEXT_TOOLTIP_MESSAGE\") private tooltipMessage: boolean = true,\r\n @Inject(\"INPUT_TEXT_SUBMITTED\") private submitted: boolean = true,\r\n @Inject(\"INPUT_TEXT_VALIDATOR_ALERT\") private validatorAlert: boolean = false,\r\n @Inject(\"INPUT_TEXT_CONTROL_CLEAR_REPLACE_REGEX\") private controlCharClearReplace: boolean = false,\r\n @Inject(\"INPUT_TEXT_REPLACE_REGEX\") private replaceRegex: {[key:string]: string} = {},\r\n @Inject(\"INPUT_TEXT_CLEAR_REGEX\") private clearRegex: string = ''\r\n ) {}\r\n\r\n public getFormat(): Format {\r\n return this.format;\r\n }\r\n public getShowLabel(): boolean {\r\n return this.showLabel;\r\n }\r\n public getBtnEnable(): boolean {\r\n return this.btnEnable;\r\n }\r\n public getBold(): boolean {\r\n return this.bold;\r\n }\r\n public getTextRight(): boolean {\r\n return this.textRight;\r\n }\r\n public getValidatorMessage(): boolean {\r\n return this.validatorMessage;\r\n }\r\n public getTooltipMessage(): boolean {\r\n return this.tooltipMessage;\r\n }\r\n public getSubmitted(): boolean {\r\n return this.submitted;\r\n }\r\n public getValidatorAlert(): boolean {\r\n return this.validatorAlert;\r\n }\r\n public getControlCharClearReplace(): boolean {\r\n return this.controlCharClearReplace;\r\n }\r\n public getReplaceRegex(): {[key:string]: string} {\r\n return this.replaceRegex;\r\n }\r\n public getClearRegex(): string {\r\n return this.clearRegex;\r\n }\r\n}\r\n","import {\r\n AfterViewInit,\r\n Component,\r\n ElementRef,\r\n EventEmitter,\r\n Input,\r\n OnChanges,\r\n OnInit,\r\n Output,\r\n Renderer2,\r\n SimpleChanges,\r\n ViewChild,\r\n forwardRef,\r\n} from \"@angular/core\";\r\nimport { AbstractControl, ControlValueAccessor, NG_VALIDATORS, NG_VALUE_ACCESSOR, ValidationErrors } from \"@angular/forms\";\r\nimport { InputTextService } from \"./input-text.service\";\r\nimport { MessageUtilService } from \"../utils/message-util.service\";\r\nimport { SharedComponentsUtil } from \"../utils/SharedComponentsUtil\";\r\n\r\nexport type Type = \"text\" | \"password\" | \"email\";\r\n\r\n@Component({\r\n selector: \"input-text\",\r\n templateUrl: \"./input-text.component.html\",\r\n styleUrls: [\"./input-text.component.scss\"],\r\n providers: [\r\n {\r\n provide: NG_VALUE_ACCESSOR,\r\n useExisting: forwardRef(() => InputTextComponent),\r\n multi: true,\r\n },\r\n {\r\n provide: NG_VALIDATORS,\r\n useExisting: forwardRef(() => InputTextComponent),\r\n multi: true,\r\n },\r\n ],\r\n})\r\nexport class InputTextComponent implements OnInit, OnChanges, AfterViewInit, ControlValueAccessor {\r\n /**\r\n * @description Formato de texto (M: mayúsculas, m: minúsculas, null: sin formato)\r\n * @default \"M\"\r\n * @type string\r\n */\r\n @Input() format: string = \"M\";\r\n \r\n /**\r\n * @description Tipo de input (texto, contraseña, email)\r\n * @default \"text\"\r\n * @type Type\r\n */\r\n @Input() type: Type = \"text\";\r\n \r\n /**\r\n * @description Controla la visualización del texto superior (label)\r\n * @default true\r\n * @type boolean\r\n */\r\n @Input() showLabel: boolean = true;\r\n \r\n /**\r\n * @description Texto a mostrar como etiqueta del campo\r\n * @default \"\"\r\n * @type any\r\n */\r\n @Input() label: any = \"\";\r\n \r\n /**\r\n * @description Habilita el botón para activar el campo\r\n * @default false\r\n * @type boolean\r\n */\r\n @Input() btnEnable: boolean = false;\r\n \r\n /**\r\n * @description Valor para el atributo autocomplete del input\r\n * @default \"no-autocomplete-input-text\"\r\n * @type string\r\n */\r\n @Input() autocomplete: string = \"no-autocomplete-input-text\";\r\n \r\n /**\r\n * @description Aplica estilo negrita al texto\r\n * @default false\r\n * @type boolean\r\n */\r\n @Input() bold: boolean = false;\r\n \r\n /**\r\n * @description Máscara para el input (formato específico)\r\n * @default null\r\n * @type string | null\r\n */\r\n @Input() inputMask: string | null = null;\r\n \r\n /**\r\n * @description Muestra la máscara mientras se escribe\r\n * @default false\r\n * @type boolean\r\n */\r\n @Input() showMaskTyped: boolean = false;\r\n \r\n /**\r\n * @description Referencia al siguiente control para navegación\r\n * @default undefined\r\n * @type any\r\n */\r\n @Input() next: any;\r\n \r\n /**\r\n * @description Referencia al control alternativo cuando el siguiente está deshabilitado\r\n * @default undefined\r\n * @type any\r\n */\r\n @Input() nextIsDisable: any;\r\n \r\n /**\r\n * @description Referencia al control anterior para navegación\r\n * @default undefined\r\n * @type any\r\n */\r\n @Input() back: any;\r\n \r\n /**\r\n * @description Referencia al control alternativo cuando el anterior está deshabilitado\r\n * @default undefined\r\n * @type any\r\n */\r\n @Input() backIsDisable: any;\r\n \r\n /**\r\n * @description Indica si el campo es obligatorio\r\n * @default false\r\n * @type boolean\r\n */\r\n @Input() required: boolean = false;\r\n \r\n /**\r\n * @description Alinea el texto a la derecha\r\n * @default false\r\n * @type boolean\r\n */\r\n @Input() textRight: boolean = false;\r\n \r\n /**\r\n * @description Deshabilita el control\r\n * @default false\r\n * @type boolean\r\n */\r\n @Input() disabled: boolean = false;\r\n \r\n /**\r\n * @description Establece el control como solo lectura\r\n * @default false\r\n * @type boolean\r\n */\r\n @Input() readonly: boolean = false;\r\n \r\n /**\r\n * @description Muestra mensajes de validación\r\n * @default false\r\n * @type boolean\r\n */\r\n @Input() validatorMessage: boolean = false;\r\n \r\n /**\r\n * @description Muestra mensajes de ayuda como tooltips\r\n * @default true\r\n * @type boolean\r\n */\r\n @Input() tooltipMessage: boolean = true;\r\n \r\n /**\r\n * @description Longitud máxima permitida para el texto\r\n * @default null\r\n * @type any\r\n */\r\n @Input() maxLength: any = null;\r\n \r\n /**\r\n * @description Indica si el formulario ha sido enviado para mostrar validaciones\r\n * @default true\r\n * @type boolean\r\n */\r\n @Input() submitted: boolean = true;\r\n \r\n /**\r\n * @description Muestra alertas de validación\r\n * @default false\r\n * @type boolean\r\n */\r\n @Input() validatorAlert: boolean = false;\r\n \r\n /**\r\n * @description Clases CSS adicionales para el componente\r\n * @default \"\"\r\n * @type string\r\n */\r\n @Input() setNgClass: string = \"\";\r\n \r\n /**\r\n * @description Patrones de validación para el campo\r\n * @default \"\"\r\n * @type any\r\n */\r\n @Input() patterns: any = \"\";\r\n \r\n /**\r\n * @description Texto de placeholder para el input\r\n * @default \"\"\r\n * @type string\r\n */\r\n @Input() placeholder: string = \"\";\r\n \r\n /**\r\n * @description Habilita información adicional para la etiqueta\r\n * @default false\r\n * @type boolean\r\n */\r\n @Input() labelInfo: boolean = false;\r\n \r\n /**\r\n * @description Texto informativo adicional para la etiqueta\r\n * @default \"\"\r\n * @type string\r\n */\r\n @Input() textLabelInfo: string = \"\";\r\n \r\n /**\r\n * @description Habilita la limpieza y reemplazo de caracteres especiales\r\n * @default false\r\n * @type boolean\r\n */\r\n @Input() controlCharClearReplace: boolean = false;\r\n \r\n /**\r\n * @description Mapa de caracteres a reemplazar\r\n * @default {}\r\n * @type {[key:string]: string}\r\n */\r\n @Input() replaceRegex: {[key:string]: string} = {};\r\n \r\n /**\r\n * @description Expresión regular para limpiar caracteres\r\n * @default \"\"\r\n * @type string\r\n */\r\n @Input() clearRegex: string = \"\";\r\n @Output() onNext: EventEmitter<any> = new EventEmitter();\r\n @Output() onBack: EventEmitter<any> = new EventEmitter();\r\n @Output() change: EventEmitter<any> = new EventEmitter();\r\n @Output() blur: EventEmitter<any> = new EventEmitter();\r\n @Output() onfocus: EventEmitter<any> = new EventEmitter();\r\n @Output() onchange: EventEmitter<any> = new EventEmitter();\r\n @Output() onfocusout: EventEmitter<any> = new EventEmitter();\r\n\r\n @ViewChild(\"inputText\") _inputText!: ElementRef<HTMLInputElement>;\r\n\r\n controls: AbstractControl | null = null;\r\n value: any;\r\n sharedComponentsUtil = new SharedComponentsUtil();\r\n _initValue = false;\r\n\r\n showPassword = false;\r\n\r\n constructor(\r\n private messageUtilService: MessageUtilService,\r\n private inputTextService: InputTextService,\r\n private _render: Renderer2\r\n ) {\r\n this.format = this.inputTextService.getFormat();\r\n this.showLabel = this.inputTextService.getShowLabel();\r\n this.btnEnable = this.inputTextService.getBtnEnable();\r\n this.bold = this.inputTextService.getBold();\r\n this.textRight = this.inputTextService.getTextRight();\r\n this.validatorMessage = this.inputTextService.getValidatorMessage();\r\n this.tooltipMessage = this.inputTextService.getTooltipMessage();\r\n this.submitted = this.inputTextService.getSubmitted();\r\n this.validatorAlert = this.inputTextService.getValidatorAlert();\r\n this.controlCharClearReplace = this.inputTextService.getControlCharClearReplace();\r\n this.replaceRegex = this.inputTextService.getReplaceRegex();\r\n this.clearRegex = this.inputTextService.getClearRegex();\r\n }\r\n\r\n ngOnChanges (changes: SimpleChanges): void {\r\n if (changes[\"submitted\"]) {\r\n if (this.controls != null && changes[\"submitted\"].currentValue) {\r\n this.controls.markAsDirty();\r\n this.controls.markAsTouched();\r\n }\r\n }\r\n }\r\n\r\n ngOnInit () { }\r\n\r\n ngAfterViewInit (): void { }\r\n\r\n get nativeElement (): HTMLInputElement {\r\n return this._inputText.nativeElement;\r\n }\r\n\r\n onChange = (_: any) => { };\r\n onValidationChange = () => { };\r\n onTouch = () => { };\r\n focus = () => {\r\n this.nativeElement?.focus();\r\n this.nativeElement?.select();\r\n };\r\n\r\n onBlur (value: string): void {\r\n this.onTouch();\r\n this.blur.emit(this.formatInput(value));\r\n }\r\n\r\n onFocus (value: string): void {\r\n if (value.trim() !== \"\") {\r\n this.nativeElement?.select();\r\n this.onfocus.emit(value.trim());\r\n }\r\n }\r\n\r\n onInput (value: string): void {\r\n const newValue = this.formatInput(value);\r\n\r\n this.onTouch();\r\n this.onChange(newValue);\r\n this.onValidationChange();\r\n this.onchange.emit(newValue);\r\n this.change.emit(newValue);\r\n }\r\n\r\n writeValue (value: any): void {\r\n if (value) {\r\n this.value = this.formatInput(value);\r\n if (this.controls) {\r\n this._render.setProperty(this.controls, \"value\", this.value);\r\n }\r\n } else {\r\n this.value = null;\r\n }\r\n }\r\n\r\n registerOnChange (fn: (v: any) => void): void {\r\n this.onChange = fn;\r\n }\r\n\r\n registerOnTouched (fn: any): void {\r\n this.onTouch = fn;\r\n }\r\n\r\n setDisabledState (isDisabled: boolean): void {\r\n this.disabled = isDisabled;\r\n }\r\n\r\n validate (control: AbstractControl): ValidationErrors | any {\r\n this.controls = control;\r\n if (!this._initValue) {\r\n if (this.value) {\r\n this._render.setProperty(this.controls, \"value\", this.value);\r\n }\r\n this._initValue = true;\r\n }\r\n return null;\r\n }\r\n\r\n registerOnValidatorChange?(fn: () => void): void {\r\n this.onValidationChange = fn;\r\n }\r\n\r\n formatInput (value: string): string {\r\n if (value !== null && value.toString().trim() !== \"\") {\r\n let newValue = value.toString().trim();\r\n if (this.format === \"M\") newValue = newValue.toUpperCase();\r\n if (this.format === \"m\") newValue = newValue.toLowerCase();\r\n\r\n if (this.controlCharClearReplace) {\r\n newValue = this.clearCharacters(newValue);\r\n newValue = this.replaceCharacters(newValue);\r\n }\r\n return newValue;\r\n }\r\n\r\n return value;\r\n }\r\n\r\n enterKeyUp () {\r\n if (!this.disabled) {\r\n this.writeValue(this.value);\r\n let validator = this.sharedComponentsUtil.stopByValidator(this.controls, this.validatorAlert, this.label);\r\n if (validator.error) {\r\n this.messageUtilService.getMessageError(\"000046\", \"Error\", validator.message);\r\n return;\r\n }\r\n }\r\n if (this.next != undefined) {\r\n if (this.next.disabled || this.next.readonly) {\r\n if (this.nextIsDisable != undefined) {\r\n this.nextIsDisable.focus();\r\n }\r\n } else {\r\n this.next.focus();\r\n }\r\n } else {\r\n if (this.nextIsDisable != undefined) {\r\n this.nextIsDisable.focus();\r\n } else {\r\n this.onNext.emit();\r\n }\r\n }\r\n }\r\n\r\n arrowUpKeyUp () {\r\n if (!this.disabled) {\r\n let validator = this.sharedComponentsUtil.stopByValidator(this.controls, this.validatorAlert, this.label);\r\n if (validator.error) {\r\n this.messageUtilService.getMessageError(\"000046\", \"Error\", validator.message);\r\n return;\r\n }\r\n }\r\n if (this.back != undefined) {\r\n if (this.back.disabled || this.back.readonly) {\r\n if (this.backIsDisable != undefined) {\r\n this.backIsDisable.focus();\r\n }\r\n } else {\r\n this.back.focus();\r\n }\r\n } else {\r\n if (this.backIsDisable != undefined) {\r\n this.backIsDisable.focus();\r\n } else {\r\n this.onBack.emit();\r\n }\r\n }\r\n }\r\n\r\n onFocusOut (evt: any) {\r\n this.onfocusout.emit(evt);\r\n if (this.btnEnable) {\r\n this.disabled = true;\r\n }\r\n }\r\n\r\n clickEnable () {\r\n this.disabled = false;\r\n this.readonly = false;\r\n setTimeout(() => {\r\n this.focus();\r\n }, 150);\r\n }\r\n\r\n clickShowPassword (): void {\r\n this.showPassword = !this.showPassword;\r\n }\r\n\r\n clearCharacters(text: string): string {\r\n if (!text) return text;\r\n const regexPattern = `[${this.clearRegex}]`;\r\n let formattedString = text.replace(new RegExp(regexPattern, 'g'), '');\r\n return formattedString;\r\n }\r\n\r\n replaceCharacters(text: string): string {\r\n if (!text) return text;\r\n const regexReplace = Object.keys(this.replaceRegex).join('');\r\n const regexPattern = `[${regexReplace}]`;\r\n return text.replace(new RegExp(regexPattern, 'g'), (char) => this.replaceRegex[char] || char);\r\n }\r\n}\r\n\r\n","<label *ngIf=\"label != null && label != '' && showLabel\" class=\"d-flex sumax-label mb-0 p-0\"\r\n ><span [title]=\"label\" style=\"white-space: nowrap; overflow: hidden; text-overflow: ellipsis\">{{ label }}</span>\r\n <span *ngIf=\"required\" class=\"ml-1\" [class.text-danger]=\"controls?.errors != null\"> *</span>\r\n <span *ngIf=\"labelInfo\">\r\n <i class=\"fa fa-exclamation-circle text-info ms-2\" [matTooltip]=\"textLabelInfo\" matTooltipClass=\"bg-info\"></i>\r\n </span>\r\n</label>\r\n<div\r\n [class.input-icon]=\"controls?.errors != null && (controls?.dirty || controls?.touched) && submitted\"\r\n [class.right]=\"controls?.errors != null && (controls?.dirty || controls?.touched) && submitted\">\r\n <div class=\"d-flex\">\r\n <div class=\"w-100 position-relative\">\r\n <tooltip-message\r\n [label]=\"label\"\r\n [controls]=\"controls\"\r\n [validatorMessage]=\"validatorMessage\"\r\n [submitted]=\"submitted\"\r\n [tooltipMessage]=\"tooltipMessage\"></tooltip-message>\r\n\r\n <input\r\n *ngIf=\"inputMask != null\"\r\n #inputText\r\n type=\"text\"\r\n class=\"form-control form-control-sm\"\r\n [class.text-uppercase]=\"format === 'M'\"\r\n [class.text-lowercase]=\"format === 'm'\"\r\n [class.text-end]=\"textRight\"\r\n [attr.autocomplete]=\"autocomplete\"\r\n [placeholder]=\"placeholder\"\r\n [class.is-invalid]=\"controls?.errors != null && (controls?.dirty || controls?.touched) && submitted\"\r\n [disabled]=\"disabled\"\r\n [readonly]=\"readonly\"\r\n [mask]=\"inputMask\"\r\n [showMaskTyped]=\"showMaskTyped\"\r\n [patterns]=\"patterns\"\r\n (blur)=\"onBlur($any($event.target).value)\"\r\n (input)=\"onInput($any($event.target).value)\"\r\n (focusout)=\"onFocusOut($any($event.target).value)\"\r\n (focus)=\"onFocus($any($event.target).value)\"\r\n (keyup.enter)=\"enterKeyUp()\"\r\n (keyup.ArrowUp)=\"arrowUpKeyUp()\"\r\n [ngClass]=\"setNgClass\"\r\n [(ngModel)]=\"value\"\r\n [class.bold]=\"bold\" />\r\n <input\r\n *ngIf=\"inputMask == null\"\r\n #inputText\r\n [type]=\"type === 'password' ? (showPassword ? 'text' : 'password') : type\"\r\n class=\"form-control form-control-sm\"\r\n [class.text-uppercase]=\"format === 'M'\"\r\n [class.text-lowercase]=\"format === 'm'\"\r\n [class.text-end]=\"textRight\"\r\n [attr.autocomplete]=\"autocomplete\"\r\n [placeholder]=\"placeholder\"\r\n [class.is-invalid]=\"controls?.errors != null && (controls?.dirty || controls?.touched) && submitted\"\r\n [disabled]=\"disabled\"\r\n [readonly]=\"readonly\"\r\n [attr.maxLength]=\"maxLength\"\r\n (blur)=\"onBlur($any($event.target).value)\"\r\n (input)=\"onInput($any($event.target).value)\"\r\n (focusout)=\"onFocusOut($any($event.target).value)\"\r\n (focus)=\"onFocus($any($event.target).value)\"\r\n (keyup.enter)=\"enterKeyUp()\"\r\n (keyup.ArrowUp)=\"arrowUpKeyUp()\"\r\n [ngClass]=\"setNgClass\"\r\n [(ngModel)]=\"value\"\r\n [class.bold]=\"bold\" />\r\n </div>\r\n <div class=\"bd-highlight\" *ngIf=\"type === 'password'\">\r\n <button type=\"button\" class=\"btn btn-info p-0 rounded-0 h-100\" (click)=\"clickShowPassword()\">\r\n <i\r\n [class.fa-eye]=\"showPassword\"\r\n [class.fa-eye-slash]=\"!showPassword\"\r\n class=\"far px-1\"\r\n [matTooltip]=\"!showPassword ? 'Mostrar' : 'Ocultar'\"\r\n matTooltipClass=\"bg-info\"></i>\r\n </button>\r\n </div>\r\n <div class=\"bd-highlight\" *ngIf=\"btnEnable\">\r\n <button type=\"button\" class=\"btn btn-info p-0 rounded-0 h-100\" (click)=\"clickEnable()\">\r\n <i class=\"fa fa-check text-white px-1\" [matTooltip]=\"'Habilitar'\" matTooltipClass=\"bg-info\"></i>\r\n </button>\r\n </div>\r\n <ng-content select=\"[more-buttons]\"></ng-content>\r\n </div>\r\n</div>\r\n<error-message\r\n [label]=\"label\"\r\n [controls]=\"controls\"\r\n [validatorMessage]=\"validatorMessage\"\r\n [submitted]=\"submitted\"\r\n [tooltipMessage]=\"tooltipMessage\"></error-message>\r\n","export class InputText {\r\n format?: string;\r\n showLabel?: boolean;\r\n btnEnable?: boolean;\r\n bold?: boolean;\r\n textRight?: boolean;\r\n validatorMessage?: boolean;\r\n tooltipMessage?: boolean;\r\n submitted?: boolean;\r\n validatorAlert?: boolean;\r\n controlCharClearReplace?: boolean;\r\n replaceRegex?: {[key:string]: string};\r\n clearRegex?: string;\r\n}\r\n\r\nexport type Format = \"M\" | \"m\" | \"Mn\";\r\n","import { CommonModule } from \"@angular/common\";\r\nimport { ModuleWithProviders, NgModule } from \"@angular/core\";\r\nimport { FormsModule, ReactiveFormsModule } from \"@angular/forms\";\r\nimport { MatIconModule } from \"@angular/material/icon\";\r\nimport { MatTooltipModule } from \"@angular/material/tooltip\";\r\nimport { RouterModule } from \"@angular/router\";\r\nimport { NgxMaskDirective, provideNgxMask } from \"ngx-mask\";\r\nimport { ErrorMessageModule } from \"../error-message/error-message.module\";\r\nimport { TooltipMessageModule } from \"../tooltip-message/tooltip-message.module\";\r\nimport { InputText } from \"./input-text\";\r\nimport { InputTextComponent } from \"./input-text.component\";\r\nimport { InputTextService } from \"./input-text.service\";\r\n\r\n@NgModule({\r\n declarations: [InputTextComponent],\r\n imports: [\r\n CommonModule,\r\n RouterModule,\r\n FormsModule,\r\n ReactiveFormsModule,\r\n ErrorMessageModule,\r\n TooltipMessageModule,\r\n MatIconModule,\r\n MatTooltipModule,\r\n NgxMaskDirective,\r\n ],\r\n exports: [InputTextComponent],\r\n providers: [provideNgxMask({ validation: false })],\r\n})\r\nexport class InputTextModule {\r\n static forRoot(inputText: InputText = new InputText()): ModuleWithProviders<InputTextModule> {\r\n return {\r\n ngModule: InputTextModule,\r\n providers: [\r\n { provide: \"INPUT_TEXT_FORMAT\", useValue: inputText.format },\r\n { provide: \"INPUT_TEXT_SHOW_LABEL\", useValue: inputText.showLabel },\r\n { provide: \"INPUT_TEXT_BTN_ENABLE\", useValue: inputText.btnEnable },\r\n { provide: \"INPUT_TEXT_BOLD\", useValue: inputText.bold },\r\n { provide: \"INPUT_TEXT_TEXT_RIGHT\", useValue: inputText.textRight },\r\n { provide: \"INPUT_TEXT_VALIDATOR_MESSAGE\", useValue: inputText.validatorMessage },\r\n { provide: \"INPUT_TEXT_TOOLTIP_MESSAGE\", useValue: inputText.tooltipMessage },\r\n { provide: \"INPUT_TEXT_SUBMITTED\", useValue: inputText.submitted },\r\n { provide: \"INPUT_TEXT_VALIDATOR_ALERT\", useValue: inputText.validatorAlert },\r\n { provide: \"INPUT_TEXT_CONTROL_CLEAR_REPLACE_REGEX\", useValue: inputText.controlCharClearReplace },\r\n { provide: \"INPUT_TEXT_REPLACE_REGEX\", useValue: inputText.replaceRegex },\r\n { provide: \"INPUT_TEXT_CLEAR_REGEX\", useValue: inputText.clearRegex },\r\n InputTextService\r\n ],\r\n \r\n };\r\n }\r\n}\r\n","import { Inject, Injectable } from \"@angular/core\";\r\n\r\n@Injectable()\r\nexport class NgSelectMultipleService {\r\n constructor(\r\n @Inject(\"NG_SELECT_MULTIPLE_SHOWLIMIT\") private showlimit: number = 2,\r\n @Inject(\"NG_SELECT_MULTIPLE_HEADER\") private Header: boolean = true,\r\n @Inject(\"NG_SELECT_MULTIPLE_FOOTER\") private Footer: boolean = true,\r\n @Inject(\"NG_SELECT_MULTIPLE_MARK_FIRST\") private markFirst: boolean = false,\r\n @Inject(\"NG_SELECT_MULTIPLE_OPEN_WHEN_FOCUS\") private openWhenFocus: boolean = false,\r\n @Inject(\"NG_SELECT_MULTIPLE_VALIDATOR_MESSAGE\") private validatorMessage: boolean = false,\r\n @Inject(\"NG_SELECT_MULTIPLE_TOOLTIP_MESSAGE\") private tooltipMessage: boolean = true,\r\n @Inject(\"NG_SELECT_MULTIPLE_VALIDATOR_ALERT\") private validatorAlert: boolean = false,\r\n @Inject(\"NG_SELECT_MULTIPLE_SUBMITTED\") private submitted: boolean = true,\r\n @Inject(\"NG_SELECT_MULTIPLE_APPEND_TO\") private appendTo: string = \"body\",\r\n @Inject(\"NG_SELECT_MULTIPLE_LOADING_TEXT\") private loadingText: string = \"Cargando...\",\r\n @Inject(\"NG_SELECT_MULTIPLE_VIRTUAL_SCROLL\") private virtualScroll: boolean = true\r\n ) {}\r\n\r\n public getShowlimit(): number {\r\n return this.showlimit;\r\n }\r\n public getHeader(): boolean {\r\n return this.Header;\r\n }\r\n public getFooter(): boolean {\r\n return this.Footer;\r\n }\r\n public getMarkFirst(): boolean {\r\n return this.markFirst;\r\n }\r\n public getOpenWhenFocus(): boolean {\r\n return this.openWhenFocus;\r\n }\r\n public getValidatorMessage(): boolean {\r\n return this.validatorMessage;\r\n }\r\n public getTooltipMessage(): boolean {\r\n return this.tooltipMessage;\r\n }\r\n public getValidatorAlert(): boolean {\r\n return this.validatorAlert;\r\n }\r\n public getSubmitted(): boolean {\r\n return this.submitted;\r\n }\r\n public getAppendTo(): string {\r\n return this.appendTo;\r\n }\r\n public getLoadingText(): string {\r\n return this.loadingText;\r\n }\r\n public getVirtualScroll(): boolean {\r\n return this.virtualScroll;\r\n }\r\n}\r\n","import { ChangeDetectorRef, Component, EventEmitter, Input, OnChanges, OnDestroy, OnInit, Output, SimpleChanges, ViewChild, forwardRef } from '@angular/core';\r\nimport { AbstractControl, NG_VALIDATORS, NG_VALUE_ACCESSOR, ValidationErrors } from '@angular/forms';\r\nimport { NgSelectComponent } from '@ng-select/ng-select';\r\nimport { Observable, Subscription, isObservable } from 'rxjs';\r\nimport { shareReplay } from 'rxjs/operators';\r\nimport { NgSelectMultipleService } from './ng-select-multiple.service';\r\nimport { SharedComponentsUtil } from '../utils/SharedComponentsUtil';\r\nimport { MessageUtilService } from '../utils/message-util.service';\r\n\r\n@Component({\r\n selector: 'ng-select-multiple',\r\n templateUrl: './ng-select-multiple.component.html',\r\n styleUrls: ['./ng-select-multiple.component.scss'],\r\n providers: [\r\n {\r\n provide: NG_VALUE_ACCESSOR,\r\n useExisting: forwardRef(() => NgSelectMultipleComponent),\r\n multi: true\r\n },\r\n {\r\n provide: NG_VALIDATORS,\r\n useExisting: forwardRef(() => NgSelectMultipleComponent),\r\n multi: true,\r\n }\r\n ]\r\n})\r\nexport class NgSelectMultipleComponent implements OnInit, OnChanges, OnDestroy {\r\n\r\n\r\n @ViewChild('ngSelectMultiple') ngSelectMultiple!: NgSelectComponent;\r\n\r\n onChange = (_: any) => { };\r\n onTouched = () => { };\r\n onValidationChange = () => { };\r\n\r\n /**\r\n * @description Lista de elementos para el selector\r\n * @default undefined\r\n * @type Observable<any[]>\r\n */\r\n @Input() items!: Observable<any[]>;\r\n \r\n /**\r\n * @description Límite de elementos a mostrar\r\n * @default 2\r\n * @type number\r\n */\r\n @Input() showlimit: number = 2;\r\n \r\n /**\r\n * @description Controla la visualización del texto superior (label)\r\n * @default true\r\n * @type boolean\r\n */\r\n @Input() showLabel: boolean = true;\r\n \r\n /**\r\n * @description Texto a mostrar como etiqueta del campo\r\n * @default null\r\n * @type any\r\n */\r\n @Input() label: any = null;\r\n \r\n /**\r\n * @description Valor para el atributo autocomplete del input\r\n * @default \"no-autocomplete-ng-select\"\r\n * @type string\r\n */\r\n @Input() autocomplete: string = \"no-autocomplete-ng-select\";\r\n \r\n /**\r\n * @description Muestra el encabezado del selector\r\n * @default true\r\n * @type boolean\r\n */\r\n @Input() Header: boolean = true;\r\n \r\n /**\r\n * @description Muestra el pie del selector\r\n * @default true\r\n * @type boolean\r\n */\r\n @Input() Footer: boolean = true;\r\n \r\n /**\r\n * @description Indica si el campo es obligatorio\r\n * @default false\r\n * @type boolean\r\n */\r\n @Input() required: boolean = false;\r\n \r\n /**\r\n * @description Referencia al siguiente control para navegación\r\n * @default undefined\r\n * @type any\r\n */\r\n @Input() next: any;\r\n \r\n /**\r\n * @description Referencia al control alternativo cuando el siguiente está deshabilitado\r\n * @default undefined\r\n * @type any\r\n */\r\n @Input() nextIsDisable: any;\r\n \r\n /**\r\n * @description Referencia al control anterior para navegación\r\n * @default undefined\r\n * @type any\r\n */\r\n @Input() back: any;\r\n \r\n /**\r\n * @description Referencia al control alternativo cuando el anterior está deshabilitado\r\n * @default undefined\r\n * @type any\r\n */\r\n @Input() backIsDisable: any;\r\n \r\n /**\r\n * @description Deshabilita el control\r\n * @default false\r\n * @type boolean\r\n */\r\n @Input() disabled: boolean = false;\r\n \r\n /**\r\n * @description Establece el control como solo lectura\r\n * @default false\r\n * @type boolean\r\n */\r\n @Input() readonly: boolean = false;\r\n \r\n /**\r\n * @description Abre el selector al recibir el foco\r\n * @default false\r\n * @type boolean\r\n */\r\n @Input() openWhenFocus: boolean = false;\r\n \r\n /**\r\n * @description Marca el primer elemento de la lista\r\n * @default false\r\n * @type boolean\r\n */\r\n @Input() markFirst: boolean = false;\r\n \r\n /**\r\n * @description Habilita información adicional para la etiqueta\r\n * @default false\r\n * @type boolean\r\n */\r\n @Input() labelInfo: boolean = false;\r\n \r\n /**\r\n * @description Texto informativo adicional para la etiqueta\r\n * @default ''\r\n * @type string\r\n */\r\n @Input() textLabelInfo: string = '';\r\n \r\n /**\r\n * @description Muestra mensajes de validación\r\n * @default false\r\n * @type boolean\r\n */\r\n @Input() validatorMessage: boolean = false;\r\n \r\n /**\r\n * @description Muestra mensajes de ayuda como tooltips\r\n * @default true\r\n * @type boolean\r\n */\r\n @Input() tooltipMessage: boolean = true;\r\n \r\n /**\r\n * @description Muestra alertas de validación\r\n * @default false\r\n * @type boolean\r\n */\r\n @Input() validatorAlert: boolean = false;\r\n \r\n /**\r\n * @description Indica si el formulario ha sido enviado para mostrar validaciones\r\n * @default true\r\n * @type boolean\r\n */\r\n @Input() submitted: boolean = true;\r\n \r\n /**\r\n * @description Muestra el botón de actualizar\r\n * @default false\r\n * @type boolean\r\n */\r\n @Input() refresh: boolean = false;\r\n /**\r\n * @description Indica si se está utilizando para filtros\r\n * @default true\r\n * @type boolean\r\n */\r\n @Input() isForFilter: boolean = true;\r\n \r\n /**\r\n * @description Elemento al que se adjuntará el dropdown\r\n * @default \"body\"\r\n * @type any\r\n */\r\n @Input() appendTo: any = \"body\";\r\n \r\n /**\r\n * @description Textos personalizados para el componente\r\n * @default \"{ Selected: 'Seleccionados', SelectAll: 'TODOS', UnselectAll: 'NINGUNO', All: 'TODOS' }\"\r\n * @type object\r\n */\r\n @Input() Language: any = {\r\n Selected: 'Seleccionados',\r\n SelectAll: 'TODOS',\r\n UnselectAll: 'NINGUNO',\r\n All: 'TODOS'\r\n };\r\n \r\n /**\r\n * @description Habilita el desplazamiento virtual para listas grandes\r\n * @default true\r\n * @type boolean\r\n */\r\n @Input() virtualScroll: boolean = true;\r\n\r\n /**\r\n * @description Indica si está cargando datos\r\n * @default true\r\n * @type boolean\r\n */\r\n @Input() loading: boolean = true;\r\n \r\n /**\r\n * @description Texto a mostrar durante la carga\r\n * @default \"Cargando...\"\r\n * @type string\r\n */\r\n @Input() loadingText: string = \"Cargando...\";\r\n\r\n /**\r\n * @description Evento emitido al navegar al siguiente control\r\n * @type EventEmitter<any>\r\n */\r\n @Output() onNext: EventEmitter<any> = new EventEmitter();\r\n \r\n /**\r\n * @description Evento emitido al navegar al control anterior\r\n * @type EventEmitter<any>\r\n */\r\n @Output() onBack: EventEmitter<any> = new EventEmitter();\r\n \r\n /**\r\n * @description Evento emitido al cambiar la selección\r\n * @type EventEmitter<any>\r\n */\r\n @Output() change: EventEmitter<any> = new EventEmitter();\r\n \r\n /**\r\n * @description Evento emitido al perder el foco\r\n * @type EventEmitter<any>\r\n */\r\n @Output() blur: EventEmitter<any> = new EventEmitter();\r\n \r\n /**\r\n * @description Evento emitido al recibir el foco\r\n * @type EventEmitter<any>\r\n */\r\n @Output() onfocus: EventEmitter<any> = new EventEmitter();\r\n \r\n /**\r\n * @description Evento emitido al actualizar\r\n * @type EventEmitter<any>\r\n */\r\n @Output() onrefresh: EventEmitter<any> = new EventEmitter();\r\n \r\n /**\r\n * @description Utilidad para componentes compartidos\r\n * @type SharedComponentsUtil\r\n */\r\n sharedComponentsUtil = new SharedComponentsUtil();\r\n\r\n /**\r\n * @description Valor actual del componente\r\n * @private\r\n */\r\n _value: any;\r\n \r\n /**\r\n * @description Referencia al control del formulario\r\n * @private\r\n */\r\n controls: any;\r\n \r\n /**\r\n * @description Lista completa de elementos\r\n * @private\r\n */\r\n all: any;\r\n \r\n /**\r\n * @description Indica si todos los elementos están seleccionados\r\n * @private\r\n */\r\n checkedAll = false;\r\n \r\n /**\r\n * @description Indica si hay una selección parcial\r\n * @private\r\n */\r\n checkedIndeterminate = false;\r\n\r\n /**\r\n * @description Lista de suscripciones para limpiar al destruir el componente\r\n * @private\r\n */\r\n private subscriptions: Subscription[] = [];\r\n\r\n constructor(\r\n private cdrf: ChangeDetectorRef,\r\n private messageUtilService: MessageUtilService,\r\n private ngSelectMultipleService: NgSelectMultipleService\r\n ) {\r\n this.showlimit = this.ngSelectMultipleService.getShowlimit();\r\n this.Header = this.ngSelectMultipleService.getHeader();\r\n this.Footer = this.ngSelectMultipleService.getFooter();\r\n this.validatorMessage = this.ngSelectMultipleService.getValidatorMessage();\r\n this.tooltipMessage = this.ngSelectMultipleService.getTooltipMessage();\r\n this.openWhenFocus = this.ngSelectMultipleService.getOpenWhenFocus();\r\n this.submitted = this.ngSelectMultipleService.getSubmitted();\r\n this.validatorAlert = this.ngSelectMultipleService.getValidatorAlert();\r\n this.appendTo = this.ngSelectMultipleService.getAppendTo();\r\n this.loadingText = this.ngSelectMultipleService.getLoadingText();\r\n this.markFirst = this.ngSelectMultipleService.getMarkFirst();\r\n this.virtualScroll = this.ngSelectMultipleService.getVirtualScroll();\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this.subscriptions.forEach(s => s.unsubscribe());\r\n }\r\n\r\n validate(control: AbstractControl): ValidationErrors | any {\r\n this.controls = control;\r\n return null;\r\n }\r\n\r\n registerOnValidatorChange?(fn: () => void): void {\r\n this.onValidationChange = fn;\r\n }\r\n\r\n ngOnChanges(changes: SimpleChanges): void {\r\n if (changes['items']) {\r\n this.loading = true;\r\n if (isObservable(this.items)) {\r\n this.carga();\r\n // this.setAll();\r\n // this.items$ = this.items.pipe(finalize(() => {\r\n // this.loading = false;\r\n // this.cdrf.markForCheck();\r\n // })).subscribe(res => {\r\n // this.cdrf.markForCheck();\r\n // })\r\n } else {\r\n this.all = this.items;\r\n this.loading = false;\r\n }\r\n }\r\n if (changes['submitted']) {\r\n if (this.controls !== undefined && changes['submitted'].currentValue) {\r\n this.controls.markAsDirty();\r\n this.controls.markAsTouched();\r\n }\r\n }\r\n }\r\n\r\n async carga() {\r\n this.all = await new Promise((resolve, reject) => {\r\n this.items = this.items.pipe(shareReplay({ refCount: true }));\r\n const subscription = this.items.subscribe(res => {\r\n resolve(res);\r\n });\r\n this.subscriptions.push(subscription);\r\n });\r\n this.loading = false;\r\n }\r\n\r\n /**\r\n * @description Verifica si un objeto es un Observable\r\n * @param items Elementos a verificar\r\n * @returns {boolean} true si es Observable, false en caso contrario\r\n */\r\n checkIfObservable(items: any) {\r\n if (isObservable(items))\r\n return true;\r\n else\r\n return false;\r\n }\r\n\r\n /**\r\n * @description Maneja el evento de foco\r\n * @param e Evento de foco\r\n */\r\n eventFocus(e: any) {\r\n this.onfocus.emit(e);\r\n if (this.openWhenFocus) {\r\n this.ngSelectMultiple.open();\r\n }\r\n }\r\n\r\n /**\r\n * @description Maneja el evento de pérdida de foco\r\n * @param e Evento de pérdida de foco\r\n */\r\n eventBlur(e: any) {\r\n this.onTouched();\r\n this.onValidationChange();\r\n this.blur.emit(e);\r\n }\r\n\r\n /**\r\n * @description Establece el foco en el componente\r\n */\r\n focus = () => {\r\n this.ngSelectMultiple.focus();\r\n if (this.openWhenFocus) {\r\n this.ngSelectMultiple.open();\r\n }\r\n }\r\n /**\r\n * @description Maneja el evento de actualización\r\n */\r\n onRefresh() {\r\n this.onrefresh.emit();\r\n }\r\n\r\n /**\r\n * @description Cierra el dropdown\r\n */\r\n close = () => {\r\n this.ngSelectMultiple.close();\r\n }\r\n\r\n\r\n ngOnInit() {\r\n if (isObservable(this.items)) {\r\n //this.setAll();\r\n }\r\n else {\r\n this.all = this.items;\r\n }\r\n }\r\n setAll() {\r\n const subscription = this.items.subscribe(res => {\r\n this.all = res;\r\n });\r\n this.subscriptions.push(subscription);\r\n }\r\n\r\n writeValue(value: any): void {\r\n if (value) {\r\n this._value = value;\r\n } else {\r\n this._value = [];\r\n }\r\n }\r\n registerOnChange(fn: any): void {\r\n this.onChange = fn;\r\n }\r\n registerOnTouched(fn: any): void {\r\n this.onTouched = fn;\r\n }\r\n setDisabledState(isDisabled: boolean): void {\r\n this.disabled = isDisabled;\r\n }\r\n\r\n selectAll(e: any) {\r\n if (e.checked) {\r\n this.writeValue(this.all);\r\n if(this.isForFilter){\r\n this.onChange(null);\r\n }else{\r\n this.onChange(this.all);\r\n }\r\n } else {\r\n this.writeValue([]);\r\n this.onChange([]);\r\n }\r\n this.checkedIndeterminate = false;\r\n this.ngSelectMultiple.focus();\r\n this.cdrf.markForCheck;\r\n }\r\n\r\n eventChange(e: any) {\r\n if (e.length == this.all.length) {\r\n this.checkedAll = true;\r\n this.checkedIndeterminate = false;\r\n } else if (e.length == 0) {\r\n this.checkedAll = false;\r\n this.checkedIndeterminate = false;\r\n } else {\r\n this.checkedAll = false;\r\n this.checkedIndeterminate = true;\r\n }\r\n this.writeValue(e);\r\n this.onChange(e);\r\n this.change.emit(e);\r\n\r\n }\r\n\r\n rightKeyUp() {\r\n this.ngSelectMultiple.close();\r\n if (!this.disabled) {\r\n let validator = this.sharedComponentsUtil.stopByValidator(this.controls, this.validatorAlert, this.label);\r\n if (validator.error) {\r\n this.messageUtilService.getMessageError(\"000046\", \"Error\", validator.message);\r\n return;\r\n }\r\n }\r\n if (this.next != undefined) {\r\n if (this.next.disabled || this.next.readonly) {\r\n if (this.nextIsDisable != undefined) {\r\n this.nextIsDisable.focus();\r\n }\r\n } else {\r\n this.next.focus();\r\n }\r\n } else {\r\n if (this.nextIsDisable != undefined) {\r\n this.nextIsDisable.focus();\r\n } else {\r\n this.onNext.emit();\r\n }\r\n }\r\n }\r\n\r\n leftKeyUp() {\r\n this.ngSelectMultiple.close();\r\n if (!this.disabled) {\r\n let validator = this.sharedComponentsUtil.stopByValidator(this.controls, this.validatorAlert, this.label);\r\n if (validator.error) {\r\n this.messageUtilService.getMessageError(\"000046\", \"Error\", validator.message);\r\n return;\r\n }\r\n }\r\n if (this.back != undefined) {\r\n if (this.back.disabled || this.back.readonly) {\r\n if (this.backIsDisable != undefined) {\r\n this.backIsDisable.focus();\r\n }\r\n } else {\r\n this.back.focus();\r\n }\r\n } else {\r\n if (this.backIsDisable != undefined) {\r\n this.backIsDisable.focus();\r\n } else {\r\n this.onBack.emit();\r\n }\r\n }\r\n }\r\n\r\n}\r\n","<label *ngIf=\"label != null && label != '' && showLabel\" class=\"d-flex sumax-label mb-0 p-0\"\r\n ><span [title]=\"label\" style=\"white-space: nowrap; overflow: hidden; text-overflow: ellipsis\">{{ label }}</span>\r\n <span *ngIf=\"required\" class=\"ml-1\" [class.text-danger]=\"controls?.errors != null\"> *</span>\r\n <span *ngIf=\"labelInfo\">\r\n <i class=\"fa fa-exclamation-circle text-info ms-2\" [matTooltip]=\"textLabelInfo\" matTooltipClass=\"bg-info\"></i>\r\n </span>\r\n</label>\r\n\r\n<div\r\n [class.input-icon]=\"controls?.errors != null && (controls?.dirty || controls?.touched) && submitted\"\r\n [class.refresh]=\"controls?.errors != null && (controls?.dirty || controls?.touched) && submitted && refresh\"\r\n [class.right]=\"controls?.errors != null && (controls?.dirty || controls?.touched) && submitted\">\r\n <div class=\"d-flex\">\r\n <div class=\"position-relative\" [class.app-ng-selec-container]=\"refresh\" [class.w-100]=\"!refresh\">\r\n <!-- tooltip-message es el icono de error -->\r\n <tooltip-message\r\n [label]=\"label\"\r\n [controls]=\"controls\"\r\n [validatorMessage]=\"validatorMessage\"\r\n [submitted]=\"submitted\"\r\n [tooltipMessage]=\"tooltipMessage\"></tooltip-message>\r\n <ng-select\r\n #ngSelectMultiple\r\n [class]=\"refresh ? 'app-ng-select' : 'w-100'\"\r\n [items]=\"$any(checkIfObservable(items) ? (items | async) : items)\"\r\n [(ngModel)]=\"_value\"\r\n [readonly]=\"disabled || readonly\"\r\n (change)=\"eventChange($event)\"\r\n (focus)=\"eventFocus($event)\"\r\n (blur)=\"eventBlur($event)\"\r\n [virtualScroll]=\"virtualScroll\"\r\n [multiple]=\"true\"\r\n placeholder=\"Seleccionar\"\r\n [closeOnSelect]=\"false\"\r\n [appendTo]=\"appendTo\"\r\n [inputAttrs]=\"{ autocomplete: autocomplete }\"\r\n [markFirst]=\"markFirst\"\r\n (keyup.ArrowLeft)=\"leftKeyUp()\"\r\n (keyup.ArrowRight)=\"rightKeyUp()\"\r\n [loading]=\"loading\"\r\n [loadingText]=\"loadingText\"\r\n [clearSearchOnAdd]=\"true\"\r\n [class.ng-select-invalid]=\"controls?.errors != null && (controls?.dirty || controls?.touched) && submitted\"\r\n [class.ng-select-touched]=\"controls?.errors != null && (controls?.dirty || controls?.touched) && submitted\">\r\n <ng-template ng-header-tmp *ngIf=\"Header\">\r\n <mat-checkbox\r\n class=\"ng-multiselect-checkbox\"\r\n [color]=\"'primary'\"\r\n [(ngModel)]=\"checkedAll\"\r\n [indeterminate]=\"checkedIndeterminate\"\r\n (change)=\"selectAll($event)\">\r\n <span *ngIf=\"!checkedAll\">{{ Language.SelectAll }}</span>\r\n <span *ngIf=\"checkedAll\">{{ Language.UnselectAll }}</span>\r\n </mat-checkbox>\r\n </ng-template>\r\n\r\n <ng-template\r\n ng-multi-label-tmp\r\n let-items=\"items\"\r\n let-clear=\"clear\"\r\n *ngIf=\"$any(checkIfObservable(items) ? (items | async) : items)?.length != _value.length\">\r\n <div class=\"ng-value\" *ngFor=\"let item of items | slice: 0 : showlimit\">\r\n <span class=\"ng-value-label\"> {{ $any(item).label }}</span>\r\n <span class=\"ng-value-icon right\" (click)=\"clear(item)\" aria-hidden=\"true\">×</span>\r\n </div>\r\n <div class=\"ng-value\" *ngIf=\"items.length > showlimit\">\r\n <span class=\"ng-value-label\">+{{ items.length - showlimit }}</span>\r\n </div>\r\n </ng-template>\r\n\r\n <ng-template ng-option-tmp let-item=\"item\" let-item$=\"item$\" let-index=\"index\">\r\n <mat-checkbox class=\"ng-multiselect-checkbox\" id=\"item-{{ index }}\" color=\"primary\" [checked]=\"item$.selected\">\r\n <span data-toggle=\"tooltip\" title=\"{{ item.label }}\">{{ item.label }}</span>\r\n </mat-checkbox>\r\n </ng-template>\r\n\r\n <ng-template\r\n ng-multi-label-tmp\r\n let-items=\"items\"\r\n let-clear=\"clear\"\r\n *ngIf=\"$any(checkIfObservable(items) ? (items | async) : items)?.length == _value.length\">\r\n <div class=\"ng-value\">\r\n <span class=\"ng-value-label\">{{ Language.All }}</span>\r\n </div>\r\n </ng-template>\r\n\r\n <ng-template ng-footer-tmp *ngIf=\"Footer\"> {{ Language.Selected }}: {{ _value.length }} </ng-template>\r\n </ng-select>\r\n </div>\r\n <div class=\"app-ng-select-button bd-highlight\" *ngIf=\"refresh\">\r\n <button\r\n *ngIf=\"refresh\"\r\n type=\"button\"\r\n [disabled]=\"disabled || readonly\"\r\n class=\"btn btn-info p-0 rounded-0 h-100\"\r\n (click)=\"onRefresh()\">\r\n <!-- <mat-icon class=\"text-white pt-1\" style=\"font-size: 18px;\" [matTooltip]=\"'Refrescar'\" matTooltipClass=\"bg-info\">refresh</mat-icon> -->\r\n <i class=\"fa fa-refresh text-white px-1\" [matTooltip]=\"'Refrescar'\" matTooltipClass=\"bg-info\"></i>\r\n </button>\r\n </div>\r\n <ng-content select=\"[more-buttons]\"></ng-content>\r\n </div>\r\n</div>\r\n\r\n<!-- error-message es el mansaje que aparece abajo del componente -->\r\n<error-message\r\n [label]=\"label\"\r\n [controls]=\"controls\"\r\n [validatorMessage]=\"validatorMessage\"\r\n [tooltipMessage]=\"tooltipMessage\"\r\n [submitted]=\"submitted\"></error-message>\r\n","export class NgSelectMultiple {\r\n showlimit?: number;\r\n Header?: boolean;\r\n Footer?: boolean;\r\n validatorMessage?: boolean;\r\n tooltipMessage?: boolean;\r\n openWhenFocus?: boolean;\r\n submitted?: boolean;\r\n validatorAlert?: boolean;\r\n appendTo?: string;\r\n loadingText?: string;\r\n markFirst?: boolean;\r\n virtualScroll?: boolean;\r\n}\r\n","import { CommonModule } from \"@angular/common\";\r\nimport { ModuleWithProviders, NgModule } from \"@angular/core\";\r\nimport { FormsModule, ReactiveFormsModule } from \"@angular/forms\";\r\nimport { MatCheckboxModule } from \"@angular/material/checkbox\";\r\nimport { MatTooltipModule } from \"@angular/material/tooltip\";\r\nimport { NgSelectModule } from \"@ng-select/ng-select\";\r\nimport { ErrorMessageModule } from \"../error-message/error-message.module\";\r\nimport { TooltipMessageModule } from \"../tooltip-message/tooltip-message.module\";\r\nimport { NgSelectMultiple } from \"./ng-select-multiple\";\r\nimport { NgSelectMultipleComponent } from \"./ng-select-multiple.component\";\r\nimport { NgSelectMultipleService } from \"./ng-select-multiple.service\";\r\n\r\n@NgModule({\r\n declarations: [NgSelectMultipleComponent],\r\n imports: [\r\n CommonModule,\r\n FormsModule,\r\n ReactiveFormsModule,\r\n ErrorMessageModule,\r\n TooltipMessageModule,\r\n NgSelectModule,\r\n MatCheckboxModule,\r\n MatTooltipModule,\r\n ],\r\n exports: [NgSelectMultipleComponent],\r\n})\r\nexport class NgSelectMultipleModule {\r\n static forRoot(ngSelectMultiple: NgSelectMultiple = new NgSelectMultiple()): ModuleWithProviders<NgSelectMultipleModule> {\r\n return {\r\n ngModule: NgSelectMultipleModule,\r\n providers: [\r\n { provide: \"NG_SELECT_MULTIPLE_SHOWLIMIT\", useValue: ngSelectMultiple.showlimit },\r\n { provide: \"NG_SELECT_MULTIPLE_HEADER\", useValue: ngSelectMultiple.Header },\r\n { provide: \"NG_SELECT_MULTIPLE_FOOTER\", useValue: ngSelectMultiple.Footer },\r\n { provide: \"NG_SELECT_MULTIPLE_VALIDATOR_MESSAGE\", useValue: ngSelectMultiple.validatorMessage },\r\n { provide: \"NG_SELECT_MULTIPLE_TOOLTIP_MESSAGE\", useValue: ngSelectMultiple.tooltipMessage },\r\n { provide: \"NG_SELECT_MULTIPLE_OPEN_WHEN_FOCUS\", useValue: ngSelectMultiple.openWhenFocus },\r\n { provide: \"NG_SELECT_MULTIPLE_SUBMITTED\", useValue: ngSelectMultiple.submitted },\r\n { provide: \"NG_SELECT_MULTIPLE_VALIDATOR_ALERT\", useValue: ngSelectMultiple.validatorAlert },\r\n { provide: \"NG_SELECT_MULTIPLE_APPEND_TO\", useValue: ngSelectMultiple.appendTo },\r\n { provide: \"NG_SELECT_MULTIPLE_LOADING_TEXT\", useValue: ngSelectMultiple.loadingText },\r\n { provide: \"NG_SELECT_MULTIPLE_MARK_FIRST\", useValue: ngSelectMultiple.markFirst },\r\n { provide: \"NG_SELECT_MULTIPLE_VIRTUAL_SCROLL\", useValue: ngSelectMultiple.virtualScroll },\r\n NgSelectMultipleService\r\n ],\r\n };\r\n }\r\n}\r\n","import { ChangeDetectorRef, Input, Component, OnInit } from '@angular/core';\r\nimport { GridApi } from 'ag-grid-community';\r\n\r\nlet nextId = 0;\r\n\r\n@Component({\r\n\tselector: 'sc-ag-grid-pagination',\r\n\ttemplateUrl: './sc-ag-grid-pagination.component.html',\r\n\tstyleUrls: ['./sc-ag-grid-pagination.component.scss'],\r\n\thost: {\r\n\t\t'[id]': 'idScAgGridPaginationComponent',\r\n\t},\r\n})\r\nexport class ScAgGridPaginationComponent implements OnInit {\r\n\tidScAgGridPaginationComponent = `sc-ag-grid-paginatio-${++nextId}`;\r\n\r\n\t/**\r\n\t * @description Tamaño de página para la paginación\r\n\t * @default 15\r\n\t * @type number\r\n\t */\r\n\t@Input() paginationPageSize = 15;\r\n\t\r\n\t/**\r\n\t * @description API de la grilla AG Grid\r\n\t * @default undefined\r\n\t * @type GridApi\r\n\t */\r\n\t@Input() gridApi?: GridApi;\r\n\t\r\n\t/**\r\n\t * @description Opciones de tamaño de página disponibles\r\n\t * @default \"[5, 10, 15, 20, 25]\"\r\n\t * @type number[]\r\n\t */\r\n\t@Input() pageSizeOptions = [5, 10, 15, 20, 25];\r\n\r\n\t_pageFrom!: number;\r\n\t_pageUp!: number;\r\n\t_pageFound!: boolean;\r\n\tpages: number[] = [];\r\n\r\n\tconstructor(private readonly _changeRef: ChangeDetectorRef) {}\r\n\r\n\tngOnInit(): void {\r\n\t\tif (this.pageSizeOptions && this.pageSizeOptions.length > 0) {\r\n\t\t\t// establecer la página si la matriz de elementos no está vacía\r\n\t\t\tif (this.pageSizeOptions.filter((p) => p === this.paginationPageSize).length == 0) {\r\n\t\t\t\tthis.paginationPageSize = this.pageSizeOptions[0];\r\n\t\t\t}\r\n\t\t} else {\r\n\t\t\tthis.pageSizeOptions = [5, 10, 15, 20, 25];\r\n\t\t\tthis.paginationPageSize = this.pageSizeOptions[0];\r\n\t\t}\r\n\r\n\t\tthis.onPaginationChanged();\r\n\t}\r\n\r\n\tonPaginationGoToFirstPage(): void {\r\n\t\tthis.gridApi?.paginationGoToFirstPage();\r\n\t}\r\n\r\n\tonPaginationGoToPreviousPage(): void {\r\n\t\tthis.gridApi?.paginationGoToPreviousPage();\r\n\t}\r\n\r\n\tonPaginationGoToPage(page: number): void {\r\n\t\tthis.gridApi?.paginationGoToPage(page);\r\n\t}\r\n\r\n\tonPaginationGoToNextPage(): void {\r\n\t\tthis.gridApi?.paginationGoToNextPage();\r\n\t}\r\n\r\n\tonPaginationGoToLastPage(): void {\r\n\t\tthis.gridApi?.paginationGoToLastPage();\r\n\t}\r\n\r\n\tonPageSizeChanged(evt: any): void {\r\n\t\tthis.gridApi?.paginationSetPageSize(Number(evt.target.value));\r\n\t}\r\n\r\n\tonPaginationChanged(): void {\r\n\t\tif (!this.gridApi) return;\r\n\r\n\t\tif (this.gridApi.paginationGetRowCount() > -1) {\r\n\t\t\tthis._pageFound = this.gridApi.paginationGetTotalPages() < 1;\r\n\t\t\tthis._pageFrom = Math.min(\r\n\t\t\t\tMath.max(1, this.gridApi.paginationGetCurrentPage() - 2),\r\n\t\t\t\tthis.gridApi.paginationGetTotalPages() - 2\r\n\t\t\t);\r\n\t\t\tthis._pageUp = Math.max(\r\n\t\t\t\tMath.min(\r\n\t\t\t\t\tthis.gridApi.paginationGetTotalPages(),\r\n\t\t\t\t\tthis.gridApi.paginationGetCurrentPage() + 2\r\n\t\t\t\t),\r\n\t\t\t\t5\r\n\t\t\t);\r\n\t\t\tif (this.gridApi.paginationGetTotalPages() > 5) {\r\n\t\t\t\tthis.pages = new Array(this._pageUp - this._pageFrom + 1)\r\n\t\t\t\t\t.fill(0)\r\n\t\t\t\t\t.map((_, index) => index + this._pageFrom);\r\n\t\t\t} else {\r\n\t\t\t\tthis.pages = new Array(this.gridApi.paginationGetTotalPages())\r\n\t\t\t\t\t.fill(0)\r\n\t\t\t\t\t.map((_, index) => index + 1);\r\n\t\t\t}\r\n\r\n\t\t\tthis._changeRef.markForCheck();\r\n\t\t}\r\n\t}\r\n}\r\n","<div\r\n class=\"d-flex mt-2 justify-content-center justify-content-sm-between sc-ag-grid__pagination\"\r\n>\r\n <nav class=\"d-flex flex-wrap\" aria-label=\"AgGrid pagination\">\r\n <ul class=\"pagination p-0 m-0\">\r\n <li\r\n class=\"page-item\"\r\n [ngClass]=\"\r\n gridApi?.paginationGetCurrentPage() == 0 || pages.length == 0\r\n ? 'disabled'\r\n : ''\r\n \"\r\n >\r\n <a class=\"page-link\" (click)=\"onPaginationGoToFirstPage()\"\r\n ><em class=\"fa fa-angle-double-left\"></em\r\n ></a>\r\n </li>\r\n <li\r\n class=\"page-item\"\r\n [ngClass]=\"\r\n gridApi?.paginationGetCurrentPage() == 0 || pages.length == 0\r\n ? 'disabled'\r\n : ''\r\n \"\r\n >\r\n <a class=\"page-link\" (click)=\"onPaginationGoToPreviousPage()\"\r\n ><em class=\"fa fa-angle-left\"></em\r\n ></a>\r\n </li>\r\n\r\n <li\r\n class=\"page-item\"\r\n *ngFor=\"let page of pages\"\r\n [ngClass]=\"\r\n page - 1 == gridApi?.paginationGetCurrentPage() ? 'active' : ''\r\n \"\r\n >\r\n <span\r\n class=\"page-link\"\r\n *ngIf=\"page - 1 == gridApi?.paginationGetCurrentPage()\"\r\n >\r\n {{ page }}\r\n </span>\r\n <a\r\n class=\"page-link\"\r\n *ngIf=\"page - 1 != gridApi?.paginationGetCurrentPage()\"\r\n (click)=\"onPaginationGoToPage(page - 1)\"\r\n >{{ page }}</a\r\n >\r\n </li>\r\n\r\n <li\r\n class=\"page-item\"\r\n [ngClass]=\"\r\n gridApi?.paginationGetCurrentPage() ==\r\n (gridApi?.paginationGetTotalPages() || 1) - 1 || pages.length == 0\r\n ? 'disabled'\r\n : ''\r\n \"\r\n >\r\n <a class=\"page-link\" (click)=\"onPaginationGoToNextPage()\"\r\n ><em class=\"fa fa-angle-right\"></em\r\n ></a>\r\n </li>\r\n <li\r\n class=\"page-item\"\r\n [ngClass]=\"\r\n gridApi?.paginationGetCurrentPage() ==\r\n (gridApi?.paginationGetTotalPages() || 1) - 1 || pages.length == 0\r\n ? 'disabled'\r\n : ''\r\n \"\r\n >\r\n <a class=\"page-link\" (click)=\"onPaginationGoToLastPage()\"\r\n ><em class=\"fa fa-angle-double-right\"></em\r\n ></a>\r\n </li>\r\n </ul>\r\n <div class=\"d-flex mx-2 align-items-center input-group-sm\">\r\n Mostrar\r\n <select\r\n [(ngModel)]=\"paginationPageSize\"\r\n (change)=\"onPageSizeChanged($event)\"\r\n class=\"custom-select mx-2\"\r\n >\r\n <option *ngFor=\"let option of pageSizeOptions\" [value]=\"option\">\r\n {{ option }}\r\n </option>\r\n </select>\r\n registros\r\n </div>\r\n </nav>\r\n\r\n <div class=\"d-flex justify-content-end mt-2 mt-sm-0\">\r\n <div\r\n class=\"sc-ag-grid__pagination--total d-flex align-items-center flex-nowrap\"\r\n >\r\n <span class=\"value\">{{ gridApi?.paginationGetRowCount() }}&nbsp;</span>\r\n <span class=\"label\">{{\r\n gridApi?.paginationGetRowCount() ?? 0 > 1 ? \"Registros.\" : \"Registro.\"\r\n }}</span>\r\n <span class=\"label\">&nbsp;P&aacute;gina&nbsp;</span>\r\n <span class=\"value\">\r\n {{ (gridApi?.paginationGetCurrentPage() ?? 0) + 1 }}\r\n </span>\r\n <span class=\"label\">&nbsp;de&nbsp;</span>\r\n <span class=\"value\">\r\n {{\r\n gridApi?.paginationGetTotalPages() == 0\r\n ? 1\r\n : gridApi?.paginationGetTotalPages() ?? 0\r\n }}\r\n </span>\r\n </div>\r\n </div>\r\n</div>\r\n","import { Component, output } from '@angular/core';\r\nimport { FormControl } from '@angular/forms';\r\nimport { Subscription } from 'rxjs';\r\n\r\n@Component({\r\n selector: 'input-search',\r\n templateUrl: './input-search.component.html',\r\n styleUrl: './input-search.component.scss'\r\n})\r\nexport class InputSearchComponent {\r\n onChange = output<any>();\r\n _subscription!: Subscription;\r\n formControl = new FormControl('');\r\n\r\n constructor(){\r\n this._subscription = this.formControl.valueChanges.subscribe(\r\n (value) => {\r\n this.onChange.emit(value?.toString().trim());\r\n }\r\n );\r\n }\r\n}\r\n","<div class=\"input-search\">\r\n <input\r\n class=\"input form-control form-control-sm\"\r\n [class.input-border]=\"true\"\r\n type=\"text\"\r\n [placeholder]=\"'Buscar...'\"\r\n [formControl]=\"formControl\"/>\r\n <span class=\"clear\">\r\n <i class=\"fas fa-search\"></i>\r\n </span>\r\n</div>","import { ChangeDetectorRef, Component, ElementRef, EventEmitter, Inject, Input, OnInit, Output, ViewChild } from '@angular/core';\r\nimport { FormControl } from '@angular/forms';\r\nimport { MAT_DIALOG_DATA, MatDialogRef } from '@angular/material/dialog';\r\nimport { AgGridAngular } from 'ag-grid-angular';\r\nimport { GridApi, IsRowSelectable } from 'ag-grid-community';\r\nimport { Observable, Subscription, debounceTime, of } from 'rxjs';\r\nimport { ScAgGridPaginationComponent } from '../sc-ag-grid/sc-ag-grid-pagination/sc-ag-grid-pagination.component';\r\n\r\n@Component({\r\n selector: 'lib-dialog-ag-grid-search',\r\n templateUrl: './dialog-ag-grid-search.component.html',\r\n styleUrl: './dialog-ag-grid-search.component.scss'\r\n})\r\nexport class DialogAgGridSearchComponent implements OnInit {\r\n\r\n @ViewChild('btnAceptar') btnAceptar!: ElementRef;\r\n @ViewChild('btnCancelar') btnCancelar!: ElementRef;\r\n @ViewChild('elTxtBuscar') elTxtBuscar!: ElementRef;\r\n @ViewChild('agGrid') agGrid?: AgGridAngular;\r\n\r\n\r\n\r\n @Output() onSelectRow: EventEmitter<any> = new EventEmitter();\r\n\r\n /**\r\n * @description Datos que se mostrarán en la grilla\r\n * @default of([])\r\n * @type Observable<any[]>\r\n */\r\n @Input() rowData: Observable<any[]> = of([]);\r\n \r\n /**\r\n * @description Definición de columnas para la grilla\r\n * @default []\r\n * @type any[]\r\n */\r\n @Input() columnDefs: any[] = [];\r\n columnDefsActions: any[] = [];\r\n \r\n /**\r\n * @description Título del diálogo\r\n * @default ''\r\n * @type string\r\n */\r\n @Input() tittle = '';\r\n\r\n txtBuscar = new FormControl('');\r\n $subscriptiontxtBuscar: Subscription;\r\n\r\n /** BEGIN: Config Ag-Grid */\r\n /**\r\n * @description Tipo de selección de filas ('single' o 'multiple')\r\n * @default 'single'\r\n * @type string\r\n */\r\n @Input() rowSelection = 'single';\r\n\r\n _context = { componentParent: this as any };\r\n isRowSelectable: IsRowSelectable = () => true;\r\n gridApi!: GridApi;\r\n rowDataSubscription!: Subscription;\r\n disableAceptar = true;\r\n\r\n overlayNoRowsTemplate =\r\n `<span class=\"ag-overlay-loading-center border-0 bg-transparent shadow-none\">\r\n\t\tNo se encontraron registros...\r\n\t\t</span>`;\r\n overlayLoadingTemplate =\r\n `<span class=\"ag-overlay-loading-top d-flex align-items-center border-0 bg-white shadow p-4 text-info\" style=\"height: 20px;\">\r\n\t\t<img src=\"assets/media-demo/loading.gif\" height=\"20\" width=\"25\" class=\"mr-2\">\r\n\t\t<strong>Cargando registros</strong>\r\n\t\t</span>`;\r\n /** END: Config Ag-Grid */\r\n /** BEGIN: Pagination */\r\n\r\n @ViewChild('lbPageSize') elbPageSize!: ElementRef;\r\n @ViewChild('lbCurrentPage') elbCurrentPage!: ElementRef;\r\n @ViewChild('lbTotalPages') elbTotalPages!: ElementRef;\r\n @ViewChild('agGridPagination') \r\n private _scAgGridPagination?: ScAgGridPaginationComponent;\r\n\r\n /**\r\n * @description Habilita/deshabilita la paginación\r\n * @default true\r\n * @type boolean\r\n */\r\n @Input() pagination = true;\r\n paginationPageSize = 10;\r\n\r\n pageFound!: boolean;\r\n paginas: number[] = [];\r\n desde!: number;\r\n hasta!: number;\r\n /** END: Pagination */\r\n constructor(\r\n private dialogRef: MatDialogRef<DialogAgGridSearchComponent>,\r\n private cdrf: ChangeDetectorRef,\r\n @Inject(MAT_DIALOG_DATA) data: any\r\n ) {\r\n\r\n this.$subscriptiontxtBuscar = this.txtBuscar.valueChanges.pipe(\r\n debounceTime(350)\r\n ).subscribe(data => {\r\n this.gridApi.forEachNodeAfterFilter((node: any) => node.setSelected(false))\r\n if (data) this.gridApi.setQuickFilter(data);\r\n });\r\n }\r\n\r\n ngOnInit () {\r\n this.dialogRef.keydownEvents().subscribe((event: KeyboardEvent) => {\r\n event.stopPropagation();\r\n if (event.key === 'Escape') {\r\n this.closeDialog();\r\n }\r\n });\r\n }\r\n selectFirstSearch () {\r\n if (!this.gridApi) {\r\n return;\r\n }\r\n if (this.columnDefsActions.length === 1) {\r\n return;\r\n }\r\n let rowData = [];\r\n this.gridApi.forEachNode((node: any) => rowData.push(node.data));\r\n if (rowData.length === 0) {\r\n this.btnAceptar.nativeElement.focus();\r\n }\r\n // return rowData;\r\n this.gridApi.forEachNodeAfterFilter((node: any) => node.rowIndex ? 0 : node.setSelected(true))\r\n this.gridApi.setFocusedCell(0, this.columnDefsActions[1].field);\r\n\r\n }\r\n\r\n focusLastRow () {\r\n let lastIndex = -1;\r\n this.gridApi.forEachNodeAfterFilter((node: any) => {\r\n if (node.rowIndex > lastIndex) {\r\n lastIndex = node.rowIndex;\r\n }\r\n });\r\n if (lastIndex === -1) {\r\n return;\r\n }\r\n this.gridApi.setFocusedCell(lastIndex, this.columnDefsActions[1].field);\r\n }\r\n onCellKeyPress (e: any) {\r\n let keyPressed = e.event.key;\r\n if (keyPressed === 'Enter') {\r\n let rowNode = e.node;\r\n if (rowNode.selected) {\r\n this.btnAceptar.nativeElement.focus();\r\n } else {\r\n rowNode.setSelected(true);\r\n }\r\n }\r\n }\r\n guardar () {\r\n this.dialogRef.close(this.gridApi.getSelectedRows());\r\n }\r\n closeDialog () {\r\n this.dialogRef.close([]);\r\n }\r\n /** BEGIN: Events Config Ag-Grid */\r\n onGridReady (gridApi: GridApi) {\r\n this.columnDefsActions = this.columnDefs.concat([\r\n {\r\n headerName: '',\r\n field: '',\r\n width: 40,\r\n minWidth: 40,\r\n maxWidth: 40,\r\n checkboxSelection (params: any) {\r\n return params.columnApi.getRowGroupColumns().length === 0;\r\n },\r\n pinned: 'left',\r\n sortable: false,\r\n lockPosition: true\r\n }\r\n ]);\r\n\r\n this.gridApi = gridApi;\r\n this.initRowData();\r\n }\r\n /** END: Events Config Ag-Grid */\r\n /** BEGIN: Events de desplazamiento en ag-grid */\r\n onPaginationChanged () {\r\n if (!this.gridApi) {\r\n return;\r\n }\r\n if (this.pagination && this.gridApi.paginationGetRowCount() > -1) {\r\n this.elbPageSize.nativeElement.innerHTML = this.gridApi.paginationGetRowCount();\r\n this.elbCurrentPage.nativeElement.innerHTML = this.gridApi.paginationGetCurrentPage() + 1;\r\n this.elbTotalPages.nativeElement.innerHTML = this.gridApi.paginationGetTotalPages();\r\n // this.elbtLast.nativeElement.setAttribute('disabled', !this.gridApi.paginationIsLastPageFound());\r\n this.pageFound = this.gridApi.paginationGetTotalPages() < 1;\r\n this.desde = Math.min(Math.max(1, this.gridApi.paginationGetCurrentPage() - 2), this.gridApi.paginationGetTotalPages() - 2);\r\n this.hasta = Math.max(Math.min(this.gridApi.paginationGetTotalPages(), this.gridApi.paginationGetCurrentPage() + 2), 5);\r\n if (this.gridApi.paginationGetTotalPages() > 5) {\r\n this.paginas = new Array(this.hasta - this.desde + 1).fill(0).map((valor, indice) => indice + this.desde);\r\n } else {\r\n this.paginas = new Array(this.gridApi.paginationGetTotalPages()).fill(0).map((valor, indice) => indice + 1);\r\n }\r\n\r\n }\r\n }\r\n onBtFirst () {\r\n this.gridApi.paginationGoToFirstPage();\r\n this.autoSizeColumns();\r\n }\r\n onBtPrevious () {\r\n this.gridApi.paginationGoToPreviousPage();\r\n this.autoSizeColumns();\r\n }\r\n onBtNext () {\r\n this.gridApi.paginationGoToNextPage();\r\n this.autoSizeColumns();\r\n }\r\n onBtLast () {\r\n this.gridApi.paginationGoToLastPage();\r\n this.autoSizeColumns();\r\n }\r\n\r\n onPageSizeChanged (evt: any) {\r\n this.gridApi.paginationSetPageSize(Number(evt.target.value));\r\n }\r\n onGoToPage (page: any) {\r\n this.gridApi.paginationGoToPage(page);\r\n }\r\n\r\n /** END: Events de desplazamiento en ag-grid */\r\n /** BEGIN: UTILS */\r\n initRowData () {\r\n if (this.rowDataSubscription) {\r\n this.rowDataSubscription.unsubscribe();\r\n this.gridApi.setGridOption(\"rowData\", []);\r\n this.gridApi.showLoadingOverlay();\r\n }\r\n this.rowDataSubscription = this.rowData.subscribe((data) => {\r\n this.gridApi.setGridOption(\"rowData\", data);\r\n if (this.columnDefs.length === 0 && data.length > 0) {\r\n let columnDefs: any = [];\r\n let keys = Object.keys(data[0]);\r\n keys.forEach(element => {\r\n if (typeof data[0][element] !== 'object') {\r\n columnDefs.push({ field: element, headerName: element.toUpperCase() });\r\n }\r\n });\r\n this.columnDefsActions = columnDefs.concat([\r\n {\r\n headerName: '',\r\n field: '',\r\n width: 40,\r\n minWidth: 40,\r\n maxWidth: 40,\r\n checkboxSelection (params: any) {\r\n return params.columnApi.getRowGroupColumns().length === 0;\r\n },\r\n pinned: 'left',\r\n sortable: false,\r\n lockPosition: true\r\n }\r\n ]);\r\n }\r\n\r\n this.gridApi.sizeColumnsToFit();\r\n const colIds = this.gridApi\r\n .getAllDisplayedColumns()\r\n .map((col: any) => col.getColId());\r\n this.gridApi.autoSizeColumns(colIds);\r\n this.cdrf.detectChanges();\r\n });\r\n }\r\n autoSizeColumns () {\r\n const colIds = this.gridApi\r\n .getAllDisplayedColumns()\r\n .map((col: any) => col.getColId());\r\n this.gridApi.autoSizeColumns(colIds);\r\n }\r\n /** END: UTILS */\r\n get ngStyleContainer () {\r\n return {\r\n width: \"100%\",\r\n height: \"25em\",\r\n };\r\n }\r\n\r\n get ngStyleAgGrid () {\r\n return {\r\n width: \"100%\",\r\n height: \"103%\",\r\n };\r\n }\r\n\r\n onSelectedChange () {\r\n if (this.gridApi != null && this.gridApi.getSelectedRows().length > 0) {\r\n this.disableAceptar = false\r\n } else {\r\n this.disableAceptar = true\r\n }\r\n }\r\n\r\n paginationChanged(): void {\r\n if (this._scAgGridPagination) this._scAgGridPagination.onPaginationChanged();\r\n }\r\n\r\n changeFilter(value: string) {\r\n this.gridApi?.setGridOption(\"quickFilterText\", value);\r\n }\r\n}\r\n","<div class=\"container w-100\">\r\n <div class=\"row\">\r\n <div class=\"sumax-dialog-head\">\r\n <div style=\"display: flex; align-items: center; gap: 0.5rem\">\r\n <div class=\"mr-3\"><i class=\"fa fa-list\" style=\"font-size: 1.25em !important; color: #646c9a\"></i></div>\r\n <h3\r\n class=\"sumax-dialog-head-title py-1 mr-1\"\r\n style=\"line-height: 1.2; font-family: Soho Gothic Pro; -ms-text-size-adjust: 100%; -webkit-font-smoothing: antialiased\">\r\n <strong>{{ tittle }}</strong>\r\n </h3>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"row mx-1\">\r\n <div class=\"col-12\">\r\n <div class=\"row\">\r\n <div class=\"col-5 my-2\">\r\n <input-search (onChange)=\"changeFilter($event)\"></input-search>\r\n </div>\r\n </div>\r\n <div class=\"row\">\r\n <div class=\"col-12\" [ngStyle]=\"ngStyleContainer\">\r\n <ag-grid-angular\r\n #agGrid\r\n class=\"ag-theme-balham\"\r\n [ngStyle]=\"ngStyleAgGrid\"\r\n [columnDefs]=\"columnDefs\"\r\n [context]=\"_context\"\r\n [rowSelection]=\"'single'\"\r\n [isRowSelectable]=\"isRowSelectable\"\r\n [rowDragManaged]=\"false\"\r\n [domLayout]=\"'normal'\"\r\n [overlayNoRowsTemplate]=\"overlayNoRowsTemplate\"\r\n [overlayLoadingTemplate]=\"overlayLoadingTemplate\"\r\n [suppressPropertyNamesCheck]=\"true\"\r\n [paginationPageSize]=\"pagination ? paginationPageSize : undefined\"\r\n [pagination]=\"pagination\"\r\n [suppressPaginationPanel]=\"true\"\r\n (gridReady)=\"onGridReady($event.api)\"\r\n (selectionChanged)=\"onSelectedChange()\"\r\n (paginationChanged)=\"paginationChanged()\"\r\n [enableCellTextSelection]=\"true\"\r\n oncontextmenu=\"return false;\">\r\n </ag-grid-angular>\r\n </div>\r\n </div>\r\n <div class=\"row\">\r\n <div class=\"col-12 py-2\">\r\n <sc-ag-grid-pagination\r\n #agGridPagination\r\n [gridApi]=\"gridApi\"\r\n [paginationPageSize]=\"paginationPageSize\"\r\n [pageSizeOptions]=\"[5, 10, 15, 20, 25]\"></sc-ag-grid-pagination>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"row\">\r\n <div\r\n class=\"row pt-3 pb-3 w-100\"\r\n style=\"border-top: 1px solid #ebedf2; border-bottom-left-radius: 4px; border-bottom-right-radius: 4px\">\r\n <div class=\"col-lg-12 d-flex justify-content-end my-auto gap-1\">\r\n <button\r\n style=\"width: 110px\"\r\n #btnAceptar\r\n (click)=\"guardar()\"\r\n [disabled]=\"disableAceptar\"\r\n (keyup.ArrowUp)=\"focusLastRow()\"\r\n (keyup.ArrowRight)=\"btnCancelar.focus()\"\r\n type=\"button\"\r\n class=\"btn btn-sm btn-success mr-3\">\r\n Aceptar\r\n </button>\r\n <button\r\n style=\"width: 110px\"\r\n #btnCancelar\r\n (click)=\"closeDialog()\"\r\n (keyup.ArrowUp)=\"focusLastRow()\"\r\n (keyup.ArrowLeft)=\"btnAceptar.focus()\"\r\n type=\"button\"\r\n class=\"btn btn-sm btn-danger\">\r\n Cancelar\r\n </button>\r\n </div>\r\n </div>\r\n </div>\r\n</div>\r\n","\r\nexport class ValidateUtil {\r\n\r\n\t// messageUtilService = new MessageUtilService();\r\n\r\n\trequerido(obj: any, nombre: string) {\r\n\t\tif (typeof obj == \"undefined\" || obj == \"Invalid date\" || obj == null) {\r\n\t\t\tthrow nombre;\r\n\t\t}\r\n\t}\r\n\tisUndefinedOrNull(obj: any) : boolean{\r\n\t\tif (typeof obj == \"undefined\" || obj == \"Invalid date\" || obj == null) {\r\n\t\t\treturn true;\r\n\t\t}\r\n\r\n\t\tif(typeof obj == \"string\" && obj ==''){\r\n\t\t\treturn true;\r\n\t\t}\r\n\r\n\t\treturn false;\r\n\t}\r\n}\r\n","import { Inject, Injectable } from \"@angular/core\";\r\n\r\n@Injectable()\r\nexport class NgSelectSimpleService {\r\n constructor(\r\n @Inject(\"NG_SELECT_SIMPLE_VALIDATOR_MESSAGE\") private validatorMessage: boolean = false,\r\n @Inject(\"NG_SELECT_SIMPLE_TOOLTIP_MESSAGE\") private tooltipMessage: boolean = true,\r\n @Inject(\"NG_SELECT_SIMPLE_OPEN_WHEN_FOCUS\") private openWhenFocus: boolean = false,\r\n @Inject(\"NG_SELECT_SIMPLE_SEARCH_BY\") private searchBy: string = \"value\",\r\n @Inject(\"NG_SELECT_SIMPLE_MARK_FIRST_ITEM\") private markFirstItem: boolean = false,\r\n @Inject(\"NG_SELECT_SIMPLE_SUBMITTED\") private submitted: boolean = true,\r\n @Inject(\"NG_SELECT_SIMPLE_SEARCHABLE\") private searchable: boolean = true,\r\n @Inject(\"NG_SELECT_SIMPLE_VALIDATOR_ALERT\") private validatorAlert: boolean = false,\r\n @Inject(\"NG_SELECT_SIMPLE_UPPER_CASE\") private upperCase: boolean = false,\r\n @Inject(\"NG_SELECT_SIMPLE_APPEND_TO\") private appendTo: string = \"body\",\r\n @Inject(\"NG_SELECT_SIMPLE_LOADING_TEXT\") private loadingText: string = \"Cargando...\",\r\n @Inject(\"NG_SELECT_SIMPLE_CLEAR_ALL_TEXT\") private clearAllText: string = \"Limpiar\",\r\n @Inject(\"NG_SELECT_SIMPLE_MARK_FIRST\") private markFirst: boolean = true,\r\n @Inject(\"NG_SELECT_SIMPLE_CLEARABLE\") private clearable: boolean = true,\r\n @Inject(\"NG_SELECT_SIMPLE_CLEAR_ON_BACKSPACE\") private clearOnBackspace: boolean = false,\r\n @Inject(\"NG_SELECT_SIMPLE_VIRTUAL_SCROLL\") private virtualScroll: boolean = true,\r\n @Inject(\"NG_SELECT_SIMPLE_OPEN_ON_ENTER\") private openOnEnter: boolean = false,\r\n @Inject(\"NG_SELECT_SIMPLE_NOT_FOUND_TEXT\") private notFoundText: string = \"No se encontraron resultados\"\r\n ) {}\r\n\r\n public getValidatorMessage(): boolean {\r\n return this.validatorMessage;\r\n }\r\n public getTooltipMessage(): boolean {\r\n return this.tooltipMessage;\r\n }\r\n public getOpenWhenFocus(): boolean {\r\n return this.openWhenFocus;\r\n }\r\n public getSearchBy(): string {\r\n return this.searchBy;\r\n }\r\n public getMarkFirstItem(): boolean {\r\n return this.markFirstItem;\r\n }\r\n public getSubmitted(): boolean {\r\n return this.submitted;\r\n }\r\n public getSearchable(): boolean {\r\n return this.searchable;\r\n }\r\n public getValidatorAlert(): boolean {\r\n return this.validatorAlert;\r\n }\r\n public getUpperCase(): boolean {\r\n return this.upperCase;\r\n }\r\n public getAppendTo(): string {\r\n return this.appendTo;\r\n }\r\n public getLoadingText(): string {\r\n return this.loadingText;\r\n }\r\n public getClearAllText(): string {\r\n return this.clearAllText;\r\n }\r\n public getMarkFirst(): boolean {\r\n return this.markFirst;\r\n }\r\n public getClearable(): boolean {\r\n return this.clearable;\r\n }\r\n public getClearOnBackspace(): boolean {\r\n return this.clearOnBackspace;\r\n }\r\n public getVirtualScroll(): boolean {\r\n return this.virtualScroll;\r\n }\r\n public getOpenOnEnter(): boolean {\r\n return this.openOnEnter;\r\n }\r\n public getNotFoundText(): string {\r\n return this.notFoundText;\r\n }\r\n}\r\n\r\n// @Input() validatorMessage: boolean = false;\r\n// @Input() tooltipMessage: boolean = true;\r\n// @Input() openWhenFocus: boolean = false;\r\n// @Input() searchBy: string = \"value\";\r\n// @Input() markFirstItem: boolean = false;\r\n// @Input() submitted: boolean = true;\r\n// @Input() searchable: boolean = true;\r\n// @Input() validatorAlert: boolean = false;\r\n// @Input() upperCase = false;\r\n// @Input() appendTo: any = \"body\"\r\n// @Input() loadingText: string = \"Cargando...\";\r\n// @Input() clearAllText: string = \"Limpiar\";\r\n// @Input() markFirst: boolean = true;\r\n// @Input() clearable: boolean = true;\r\n// @Input() clearOnBackspace: boolean = false;\r\n// @Input() virtualScroll: boolean = true;\r\n// @Input() openOnEnter: boolean = false;\r\n","import {\r\n Component,\r\n ElementRef,\r\n EventEmitter,\r\n forwardRef,\r\n Input,\r\n OnChanges,\r\n OnDestroy,\r\n OnInit,\r\n Output,\r\n SimpleChanges,\r\n TemplateRef,\r\n ViewChild,\r\n ViewEncapsulation,\r\n} from \"@angular/core\";\r\nimport { AbstractControl, NG_VALIDATORS, NG_VALUE_ACCESSOR, ValidationErrors } from \"@angular/forms\";\r\nimport { MatDialog } from \"@angular/material/dialog\";\r\nimport { NgSelectComponent } from \"@ng-select/ng-select\";\r\nimport { Observable, of, Subscription } from \"rxjs\";\r\nimport { shareReplay } from \"rxjs/operators\";\r\nimport { DialogAgGridSearchComponent } from '../dialog-ag-grid-search/dialog-ag-grid-search.component';\r\nimport { MessageUtilService } from \"../utils/message-util.service\";\r\nimport { SharedComponentsUtil } from \"../utils/SharedComponentsUtil\";\r\nimport { ValidateUtil } from \"../utils/ValidateUtil\";\r\nimport { NgSelectSimpleService } from \"./ng-select-simple.service\";\r\n\r\n\r\nexport class SearchParams {\r\n constructor(\r\n public columnDefs: ColumnDefs[] = [],\r\n public title: string = \"\",\r\n public width: string = \"990px\",\r\n public rowData: Observable<any[]> = of([])\r\n ) { }\r\n}\r\n\r\nexport class ColumnDefs {\r\n headerName?: string;\r\n field?: string;\r\n width?: string;\r\n cellRenderer?: any;\r\n valueGetter?: (field: any) => string | string;\r\n sortable?: boolean;\r\n resizable?: boolean;\r\n cellClass?: string[];\r\n cellStyle?: {};\r\n valueFormatter?: any;\r\n pinned?: string;\r\n sort?: string;\r\n}\r\n\r\n@Component({\r\n selector: 'ng-select-simple',\r\n templateUrl: './ng-select-simple.component.html',\r\n styleUrls: ['./ng-select-simple.component.scss'],\r\n providers: [\r\n {\r\n provide: NG_VALUE_ACCESSOR,\r\n useExisting: forwardRef(() => NgSelectSimpleComponent),\r\n multi: true,\r\n },\r\n {\r\n provide: NG_VALIDATORS,\r\n useExisting: forwardRef(() => NgSelectSimpleComponent),\r\n multi: true,\r\n },\r\n ],\r\n encapsulation: ViewEncapsulation.None,\r\n})\r\nexport class NgSelectSimpleComponent implements OnInit, OnChanges, OnDestroy {\r\n @ViewChild(\"ngSelectSimple\") ngSelectSimple!: NgSelectComponent;\r\n @ViewChild(\"btnSearch\") btnSearch!: ElementRef;\r\n\r\n /**\r\n * @description Controla la visualización del texto superior (label)\r\n * @default true\r\n * @type boolean\r\n */\r\n @Input() showLabel: boolean = true;\r\n \r\n /**\r\n * @description Texto a mostrar como etiqueta del campo\r\n * @default null\r\n * @type any\r\n */\r\n @Input() label: any = null;\r\n \r\n /**\r\n * @description Valor para el atributo autocomplete del input\r\n * @default \"no-autocomplete-ng-select\"\r\n * @type string\r\n */\r\n @Input() autocomplete: string = \"no-autocomplete-ng-select\";\r\n \r\n /**\r\n * @description Referencia al siguiente control para navegación\r\n * @default undefined\r\n * @type any\r\n */\r\n @Input() next: any;\r\n \r\n /**\r\n * @description Referencia al control alternativo cuando el siguiente está deshabilitado\r\n * @default undefined\r\n * @type any\r\n */\r\n @Input() nextIsDisable: any;\r\n \r\n /**\r\n * @description Referencia al control anterior para navegación\r\n * @default undefined\r\n * @type any\r\n */\r\n @Input() back: any;\r\n \r\n /**\r\n * @description Referencia al control alternativo cuando el anterior está deshabilitado\r\n * @default undefined\r\n * @type any\r\n */\r\n @Input() backIsDisable: any;\r\n \r\n /**\r\n * @description Indica si el campo es obligatorio\r\n * @default false\r\n * @type boolean\r\n */\r\n @Input() required: boolean = false;\r\n \r\n /**\r\n * @description Deshabilita el control\r\n * @default false\r\n * @type boolean\r\n */\r\n @Input() disabled: boolean = false;\r\n \r\n /**\r\n * @description Establece el control como solo lectura\r\n * @default false\r\n * @type boolean\r\n */\r\n @Input() readonly: boolean = false;\r\n \r\n /**\r\n * @description Muestra mensajes de validación\r\n * @default false\r\n * @type boolean\r\n */\r\n @Input() validatorMessage: boolean = false;\r\n \r\n /**\r\n * @description Muestra mensajes de ayuda como tooltips\r\n * @default true\r\n * @type boolean\r\n */\r\n @Input() tooltipMessage: boolean = true;\r\n \r\n /**\r\n * @description Abre el selector al recibir el foco\r\n * @default false\r\n * @type boolean\r\n */\r\n @Input() openWhenFocus: boolean = false;\r\n \r\n /**\r\n * @description Campo por el cual se realizará la búsqueda\r\n * @default \"value\"\r\n * @type string\r\n */\r\n @Input() searchBy: string = \"value\";\r\n \r\n /**\r\n * @description Marca el primer elemento automáticamente\r\n * @default false\r\n * @type boolean\r\n */\r\n @Input() markFirstItem: boolean = false;\r\n \r\n /**\r\n * @description Marca automáticamente cuando solo hay un elemento\r\n * @default false\r\n * @type boolean\r\n */\r\n @Input() markWhenHaveOneItem: boolean = false;\r\n \r\n /**\r\n * @description Indica si el formulario ha sido enviado para mostrar validaciones\r\n * @default true\r\n * @type boolean\r\n */\r\n @Input() submitted: boolean = true;\r\n \r\n /**\r\n * @description Clases CSS adicionales para el componente\r\n * @default \"\"\r\n * @type string\r\n */\r\n @Input() setNgClass: string = \"\";\r\n \r\n /**\r\n * @description Habilita la búsqueda en el selector\r\n * @default true\r\n * @type boolean\r\n */\r\n @Input() searchable: boolean = true;\r\n \r\n /**\r\n * @description Muestra alertas de validación\r\n * @default false\r\n * @type boolean\r\n */\r\n @Input() validatorAlert: boolean = false;\r\n \r\n /**\r\n * @description Convierte el texto a mayúsculas\r\n * @default false\r\n * @type boolean\r\n */\r\n @Input() upperCase: boolean = false;\r\n \r\n /**\r\n * @description Plantilla personalizada para la etiqueta\r\n * @default null\r\n * @type TemplateRef<any> | null\r\n */\r\n @Input() templateLabel: TemplateRef<any> | null = null;\r\n \r\n /**\r\n * @description Elemento al que se adjuntará el dropdown\r\n * @default \"body\"\r\n * @type string\r\n */\r\n @Input() appendTo: string = \"body\";\r\n \r\n /**\r\n * @description Lista de elementos para el selector\r\n * @default undefined\r\n * @type Observable<any[]>\r\n */\r\n @Input() items!: Observable<any[]>;\r\n \r\n /**\r\n * @description Indica si está cargando datos\r\n * @default true\r\n * @type boolean\r\n */\r\n @Input() loading: boolean = true;\r\n \r\n /**\r\n * @description Texto a mostrar durante la carga\r\n * @default \"Cargando...\"\r\n * @type string\r\n */\r\n @Input() loadingText: string = \"Cargando...\";\r\n \r\n /**\r\n * @description Texto para el botón de limpiar selección\r\n * @default \"Limpiar\"\r\n * @type string\r\n */\r\n @Input() clearAllText: string = \"Limpiar\";\r\n \r\n /**\r\n * @description Texto a mostrar cuando no hay resultados\r\n * @default \"No se encontraron resultados\"\r\n * @type string\r\n */\r\n @Input() notFoundText: string = \"No se encontraron resultados\";\r\n \r\n /**\r\n * @description Marca el primer elemento de la lista\r\n * @default true\r\n * @type boolean\r\n */\r\n @Input() markFirst: boolean = true;\r\n \r\n /**\r\n * @description Permite limpiar la selección\r\n * @default true\r\n * @type boolean\r\n */\r\n @Input() clearable: boolean = true;\r\n \r\n /**\r\n * @description Limpia la selección al presionar retroceso\r\n * @default false\r\n * @type boolean\r\n */\r\n @Input() clearOnBackspace: boolean = false;\r\n \r\n /**\r\n * @description Habilita el desplazamiento virtual para listas grandes\r\n * @default true\r\n * @type boolean\r\n */\r\n @Input() virtualScroll: boolean = true;\r\n \r\n /**\r\n * @description Abre el selector al presionar Enter\r\n * @default false\r\n * @type boolean\r\n */\r\n @Input() openOnEnter: boolean = false;\r\n \r\n /**\r\n * @description Muestra el botón de actualizar\r\n * @default false\r\n * @type boolean\r\n */\r\n @Input() refresh: boolean = false;\r\n \r\n /**\r\n * @description Deshabilita el botón de actualizar\r\n * @default false\r\n * @type boolean\r\n */\r\n @Input() isRefreshDisabled: boolean = false;\r\n \r\n /**\r\n * @description Muestra el botón de búsqueda\r\n * @default false\r\n * @type boolean\r\n */\r\n @Input() search: boolean = false;\r\n \r\n /**\r\n * @description Muestra el botón de redirección\r\n * @default false\r\n * @type boolean\r\n */\r\n @Input() redirect: boolean = false;\r\n \r\n /**\r\n * @description Parámetros para la búsqueda avanzada\r\n * @default new SearchParams()\r\n * @type SearchParams\r\n */\r\n @Input() searchParams: SearchParams = new SearchParams();\r\n \r\n /**\r\n * @description Habilita información adicional para la etiqueta\r\n * @default false\r\n * @type boolean\r\n */\r\n @Input() labelInfo: boolean = false;\r\n \r\n /**\r\n * @description Texto informativo adicional para la etiqueta\r\n * @default \"\"\r\n * @type string\r\n */\r\n @Input() textLabelInfo: string = \"\";\r\n \r\n /**\r\n * @description URL para redirección\r\n * @default \"\"\r\n * @type string\r\n */\r\n @Input() urlRedirect: string = \"\";\r\n \r\n /**\r\n * @description Título para el botón de redirección\r\n * @default \"\"\r\n * @type string\r\n */\r\n @Input() titleRedirect: string = \"\";\r\n \r\n /**\r\n * @description Deshabilita el botón de redirección\r\n * @default false\r\n * @type boolean\r\n */\r\n @Input() isRedirectDisabled: boolean = false;\r\n\r\n @Output() onNext: EventEmitter<any> = new EventEmitter();\r\n @Output() onBack: EventEmitter<any> = new EventEmitter();\r\n @Output() change: EventEmitter<any> = new EventEmitter();\r\n @Output() blur: EventEmitter<any> = new EventEmitter();\r\n @Output() onfocus: EventEmitter<any> = new EventEmitter();\r\n @Output() onrefresh: EventEmitter<any> = new EventEmitter();\r\n @Output() onsearch: EventEmitter<any> = new EventEmitter();\r\n validateUtil = new ValidateUtil();\r\n sharedComponentsUtil = new SharedComponentsUtil();\r\n\r\n allItems = [];\r\n _value: any;\r\n controls: any;\r\n\r\n private subscriptions: Subscription[] = [];\r\n\r\n onChange = (_: any) => { };\r\n\r\n onValidationChange = () => { };\r\n\r\n onTouched = () => { };\r\n\r\n focus = () => {\r\n this.ngSelectSimple.focus();\r\n if (this.openWhenFocus) {\r\n this.ngSelectSimple.open();\r\n }\r\n };\r\n\r\n close = () => {\r\n this.ngSelectSimple.close();\r\n };\r\n\r\n openEnlace (): void {\r\n window.open(this.urlRedirect);\r\n }\r\n\r\n constructor(\r\n private messageUtilService: MessageUtilService,\r\n public dialog: MatDialog,\r\n private ngSelectSimpleService: NgSelectSimpleService\r\n ) {\r\n this.validatorMessage = this.ngSelectSimpleService.getValidatorMessage();\r\n this.tooltipMessage = this.ngSelectSimpleService.getTooltipMessage();\r\n this.openWhenFocus = this.ngSelectSimpleService.getOpenWhenFocus();\r\n this.searchBy = this.ngSelectSimpleService.getSearchBy();\r\n this.markFirstItem = this.ngSelectSimpleService.getMarkFirstItem();\r\n this.submitted = this.ngSelectSimpleService.getSubmitted();\r\n this.searchable = this.ngSelectSimpleService.getSearchable();\r\n this.validatorAlert = this.ngSelectSimpleService.getValidatorAlert();\r\n this.upperCase = this.ngSelectSimpleService.getUpperCase();\r\n this.appendTo = this.ngSelectSimpleService.getAppendTo();\r\n this.loadingText = this.ngSelectSimpleService.getLoadingText();\r\n this.clearAllText = this.ngSelectSimpleService.getClearAllText();\r\n this.markFirst = this.ngSelectSimpleService.getMarkFirst();\r\n this.clearable = this.ngSelectSimpleService.getClearable();\r\n this.clearOnBackspace = this.ngSelectSimpleService.getClearOnBackspace();\r\n this.virtualScroll = this.ngSelectSimpleService.getVirtualScroll();\r\n this.openOnEnter = this.ngSelectSimpleService.getOpenOnEnter();\r\n this.notFoundText = this.ngSelectSimpleService.getNotFoundText();\r\n }\r\n\r\n ngOnDestroy (): void {\r\n this.subscriptions.forEach(s => s.unsubscribe())\r\n }\r\n\r\n ngOnChanges (changes: SimpleChanges): void {\r\n if (changes[\"items\"]) {\r\n this.loading = true;\r\n this.carga();\r\n }\r\n if (changes[\"submitted\"]) {\r\n if (this.controls !== undefined && changes[\"submitted\"].currentValue) {\r\n this.controls.markAsDirty();\r\n this.controls.markAsTouched();\r\n }\r\n }\r\n }\r\n\r\n async carga () {\r\n this.allItems = await new Promise((resolve, reject) => {\r\n this.items = this.items.pipe(shareReplay({ refCount: true }));\r\n const subscription = this.items.subscribe((res: any) => {\r\n resolve(res);\r\n });\r\n this.subscriptions.push(subscription);\r\n });\r\n this.loading = false;\r\n if (this._value != null) {\r\n this.allItems.forEach((element) => {\r\n if (\r\n !this.validateUtil.isUndefinedOrNull(this.getObject(element, this.searchBy)) &&\r\n this.getObject(element, this.searchBy) === this._value\r\n ) {\r\n this._value = element;\r\n this.onChange(this._value);\r\n this.onValidationChange();\r\n this.change.emit(this._value);\r\n }\r\n });\r\n } else {\r\n if (this.markFirstItem && this.allItems.length > 0) {\r\n this._value = this.allItems[0];\r\n this.onChange(this._value);\r\n this.onValidationChange();\r\n this.change.emit(this._value);\r\n }\r\n if (this.markWhenHaveOneItem && this.allItems.length === 1) {\r\n this._value = this.allItems[0];\r\n this.onChange(this._value);\r\n this.onValidationChange();\r\n this.change.emit(this._value);\r\n }\r\n }\r\n }\r\n\r\n ngOnInit () { }\r\n\r\n getObject (obj: any, key: any) {\r\n return key.split(\".\").reduce(function (o: any, x: any) {\r\n return typeof o == \"undefined\" || o === null ? o : o[x];\r\n }, obj);\r\n }\r\n\r\n writeValue (value: any): void {\r\n if (value != null) {\r\n if (this.loading) {\r\n this._value = value;\r\n } else {\r\n this._value = value;\r\n this.allItems.forEach((element) => {\r\n if (\r\n !this.validateUtil.isUndefinedOrNull(this.getObject(element, this.searchBy)) &&\r\n this.getObject(element, this.searchBy) === this._value\r\n ) {\r\n this._value = element;\r\n this.onChange(this._value);\r\n this.onValidationChange();\r\n this.change.emit(this._value);\r\n }\r\n });\r\n }\r\n\r\n //this.searchElement(value);\r\n this.onValidationChange();\r\n } else {\r\n this._value = null;\r\n this.onValidationChange();\r\n }\r\n }\r\n registerOnChange (fn: any): void {\r\n this.onChange = fn;\r\n }\r\n registerOnTouched (fn: any): void {\r\n this.onTouched = fn;\r\n }\r\n setDisabledState (isDisabled: boolean): void {\r\n this.disabled = isDisabled;\r\n }\r\n\r\n validate (control: AbstractControl): ValidationErrors | any {\r\n this.controls = control;\r\n return null;\r\n }\r\n\r\n registerOnValidatorChange?(fn: () => void): void {\r\n this.onValidationChange = fn;\r\n }\r\n\r\n eventChange (e: any) {\r\n this.onChange(e);\r\n this.onValidationChange();\r\n this.change.emit(e);\r\n }\r\n\r\n eventBlur (e: any) {\r\n this.onTouched();\r\n this.onValidationChange();\r\n this.blur.emit(e);\r\n }\r\n\r\n eventFocus (e: any) {\r\n // this.ngSelectSimple.focus();\r\n if (this.openWhenFocus) {\r\n this.ngSelectSimple.open();\r\n }\r\n this.onfocus.emit(e);\r\n }\r\n\r\n eventSearch (e: any) {\r\n this.onsearch.emit(e);\r\n }\r\n\r\n enterKeyUp () {\r\n this.ngSelectSimple.close();\r\n if (!this.disabled) {\r\n let validator = this.sharedComponentsUtil.stopByValidator(this.controls, this.validatorAlert, this.label);\r\n if (validator.error) {\r\n this.messageUtilService.getMessageError(\"000046\", \"Error\", validator.message);\r\n return;\r\n }\r\n }\r\n if (this.next != undefined) {\r\n if (this.next.disabled || this.next.readonly) {\r\n if (this.nextIsDisable != undefined) {\r\n this.nextIsDisable.focus();\r\n }\r\n } else {\r\n this.next.focus();\r\n }\r\n } else {\r\n if (this.nextIsDisable != undefined) {\r\n this.nextIsDisable.focus();\r\n } else {\r\n this.onNext.emit();\r\n }\r\n }\r\n }\r\n\r\n leftKeyUp () {\r\n this.ngSelectSimple.close();\r\n if (!this.disabled) {\r\n let validator = this.sharedComponentsUtil.stopByValidator(this.controls, this.validatorAlert, this.label);\r\n if (validator.error) {\r\n this.messageUtilService.getMessageError(\"000046\", \"Error\", validator.message);\r\n return;\r\n }\r\n }\r\n if (this.back != undefined) {\r\n if (this.back.disabled || this.back.readonly) {\r\n if (this.backIsDisable != undefined) {\r\n this.backIsDisable.focus();\r\n }\r\n } else {\r\n this.back.focus();\r\n }\r\n } else {\r\n if (this.backIsDisable != undefined) {\r\n this.backIsDisable.focus();\r\n } else {\r\n this.onBack.emit();\r\n }\r\n }\r\n }\r\n\r\n clear () {\r\n this._value = null;\r\n this.onChange(this._value);\r\n this.onValidationChange();\r\n this.change.emit(this._value);\r\n }\r\n\r\n onRefresh () {\r\n this.onrefresh.emit();\r\n }\r\n\r\n async onSearch () {\r\n const dialogRef = this.dialog.open(DialogAgGridSearchComponent, {\r\n width: this.searchParams.width,\r\n disableClose: true,\r\n });\r\n let rowdata = await this.searchParams.rowData.toPromise();\r\n let instance = dialogRef.componentInstance;\r\n instance.tittle = this.searchParams.title === \"\" ? this.label : this.searchParams.title;\r\n instance.rowData = rowdata && rowdata.length < 1 ? this.items : this.searchParams.rowData;\r\n instance.columnDefs = this.searchParams.columnDefs;\r\n dialogRef.afterClosed().subscribe((resp: any[]) => {\r\n this.focus();\r\n if (resp.length > 0) {\r\n this._value = resp[0];\r\n this.onChange(this._value);\r\n this.onValidationChange();\r\n this.change.emit(this._value);\r\n }\r\n });\r\n }\r\n\r\n f1KeyUp () {\r\n if (!this.btnSearch) {\r\n return;\r\n }\r\n this.ngSelectSimple.close();\r\n //this.btnSearch.nativeElement.focus();\r\n this.onSearch();\r\n }\r\n}\r\n","<label *ngIf=\"label != null && label != '' && showLabel\" class=\"d-flex sumax-label mb-0 p-0\">\r\n <span *ngIf=\"!templateLabel; else templateLabel\" [title]=\"label\" style=\"white-space: nowrap; overflow: hidden; text-overflow: ellipsis\">\r\n {{ label }}\r\n </span>\r\n <span *ngIf=\"required\" [class.text-danger]=\"controls?.errors != null\"> *</span>\r\n <span *ngIf=\"labelInfo\">\r\n <i class=\"fa fa-exclamation-circle text-info ms-2\" [matTooltip]=\"textLabelInfo\" matTooltipClass=\"bg-info\"></i>\r\n </span>\r\n</label>\r\n\r\n<div\r\n [class.input-icon]=\"controls?.errors != null && (controls?.dirty || controls?.touched) && submitted\"\r\n [class.right]=\"controls?.errors != null && (controls?.dirty || controls?.touched) && submitted\"\r\n [class.refresh]=\"controls?.errors != null && (controls?.dirty || controls?.touched) && submitted && refresh\"\r\n [class.search]=\"controls?.errors != null && (controls?.dirty || controls?.touched) && submitted && search\">\r\n <div class=\"d-flex\">\r\n <div\r\n class=\"position-relative\"\r\n [class.ng-select-container-fullbuttons]=\"search && refresh && redirect\"\r\n [class.app-ng-selec-container]=\"search || refresh\"\r\n [class.w-100]=\"!search && !refresh\"\r\n style=\"flex: 1; min-width: 0;\">\r\n <ng-select\r\n #ngSelectSimple\r\n [class]=\"search || refresh ? 'app-ng-select ng-select-fixed-width' : 'w-100 ng-select-fixed-width'\"\r\n [class.action]=\"search && refresh\"\r\n [items]=\"items | async\"\r\n [(ngModel)]=\"_value\"\r\n [disabled]=\"disabled\"\r\n [readonly]=\"readonly\"\r\n (change)=\"eventChange($event)\"\r\n (blur)=\"eventBlur($event)\"\r\n (focus)=\"eventFocus($event)\"\r\n (search)=\"eventSearch($event)\"\r\n [markFirst]=\"markFirst\"\r\n [clearable]=\"!required && clearable\"\r\n [virtualScroll]=\"virtualScroll\"\r\n [inputAttrs]=\"{ autocomplete: autocomplete }\"\r\n [clearOnBackspace]=\"clearOnBackspace\"\r\n [openOnEnter]=\"openOnEnter\"\r\n (keydown.delete)=\"!required && clearable ? clear() : ''\"\r\n (clear)=\"clear()\"\r\n (keyup.F1)=\"f1KeyUp()\"\r\n [notFoundText]=\"notFoundText\"\r\n placeholder=\"Seleccionar\"\r\n (keyup.enter)=\"enterKeyUp()\"\r\n [clearAllText]=\"clearAllText\"\r\n [searchable]=\"searchable\"\r\n (keyup.ArrowLeft)=\"leftKeyUp()\"\r\n [appendTo]=\"appendTo\"\r\n [loading]=\"loading\"\r\n [loadingText]=\"loadingText\"\r\n [class.ng-select-invalid]=\"controls?.errors != null && (controls?.dirty || controls?.touched) && submitted\"\r\n [class.ng-select-touched]=\"controls?.errors != null && (controls?.dirty || controls?.touched) && submitted\"\r\n [class.upperCase]=\"upperCase\"\r\n [ngClass]=\"setNgClass\"\r\n style=\"max-width: 100%; width: 100%;\">\r\n\r\n <!-- OPCIONES DE LISTADO -->\r\n <ng-template ng-option-tmp let-item=\"item\" let-index=\"index\">\r\n <span data-toggle=\"tooltip\"\r\n [title]=\"item.label\"\r\n style=\"white-space: nowrap; overflow: hidden; text-overflow: ellipsis; max-width: 100%; display: inline-block;\">\r\n {{ item.label }}\r\n </span>\r\n </ng-template>\r\n\r\n <!-- Template personalizado para el valor seleccionado -->\r\n <ng-template ng-label-tmp let-item=\"item\">\r\n <span [title]=\"item.label\"\r\n style=\"white-space: nowrap; overflow: hidden; text-overflow: ellipsis; max-width: 100%; display: inline-block;\">\r\n {{ item.label }}\r\n </span>\r\n </ng-template>\r\n </ng-select>\r\n\r\n <!-- tooltip-message es el icono de error -->\r\n <tooltip-message\r\n [label]=\"label\"\r\n [controls]=\"controls\"\r\n [validatorMessage]=\"validatorMessage\"\r\n [submitted]=\"submitted\"\r\n [tooltipMessage]=\"tooltipMessage\"></tooltip-message>\r\n </div>\r\n <ng-container *ngIf=\"search && refresh && redirect; else templateAction\">\r\n <div class=\"app-ng-select-action bd-highligh\" style=\"flex-shrink: 0;\"> <!-- Agregado flex-shrink: 0 -->\r\n <button\r\n #btnSearch\r\n type=\"button\"\r\n [disabled]=\"disabled || readonly\"\r\n class=\"btn btn-success p-0 rounded-0 h-100\"\r\n (keyup.ArrowLeft)=\"ngSelectSimple.focus()\"\r\n style=\"background-color: orange; border-color: orange\"\r\n (click)=\"onSearch()\">\r\n <i class=\"fa fa-search text-white px-1\" [matTooltip]=\"'Buscar'\" matTooltipClass=\"custom-tooltip\"></i>\r\n </button>\r\n <button\r\n *ngIf=\"refresh\"\r\n type=\"button\"\r\n [disabled]=\"disabled || readonly || isRefreshDisabled\"\r\n class=\"btn btn-info p-0 rounded-0 h-100\"\r\n (click)=\"onRefresh()\">\r\n <i class=\"fa fa-refresh text-white px-1\" [matTooltip]=\"'Refrescar'\" matTooltipClass=\"bg-info\"></i>\r\n </button>\r\n <button\r\n type=\"button\"\r\n class=\"btn btn-success p-0 rounded-0 h-100\"\r\n (click)=\"openEnlace()\"\r\n [disabled]=\"disabled || readonly || isRedirectDisabled\">\r\n <em class=\"fa-regular fa-rectangle-list text-white px-1\" [matTooltip]=\"titleRedirect!\" matTooltipClass=\"bg-success\"> </em>\r\n </button>\r\n </div>\r\n </ng-container>\r\n\r\n <ng-template #templateAction>\r\n <div class=\"app-ng-select-button bd-highlight\" *ngIf=\"search\" style=\"flex-shrink: 0;\">\r\n <button\r\n #btnSearch\r\n type=\"button\"\r\n [disabled]=\"disabled || readonly\"\r\n class=\"btn btn-success p-0 rounded-0 h-100\"\r\n (keyup.ArrowLeft)=\"ngSelectSimple.focus()\"\r\n (click)=\"onSearch()\">\r\n <i class=\"fa fa-search text-white px-1\" [matTooltip]=\"'Buscar'\" matTooltipClass=\"bg-success\"></i>\r\n </button>\r\n </div>\r\n <div class=\"app-ng-select-button bd-highlight\" *ngIf=\"refresh\" style=\"flex-shrink: 0;\">\r\n <button\r\n *ngIf=\"refresh\"\r\n type=\"button\"\r\n [disabled]=\"disabled || readonly || isRefreshDisabled\"\r\n class=\"btn btn-info p-0 rounded-0 h-100\"\r\n (click)=\"onRefresh()\">\r\n <i class=\"fa fa-refresh text-white px-1\" [matTooltip]=\"'Refrescar'\" matTooltipClass=\"bg-info\"></i>\r\n </button>\r\n </div>\r\n <div class=\"app-ng-select-button bd-highlight\" *ngIf=\"redirect\" style=\"flex-shrink: 0;\">\r\n <button\r\n type=\"button\"\r\n class=\"btn btn-success p-0 rounded-0 h-100\"\r\n style=\"padding-top: 3px; padding-bottom: 7px; border-radius: 0px\"\r\n (click)=\"openEnlace()\"\r\n [disabled]=\"disabled || readonly || isRedirectDisabled\">\r\n <em class=\"fa-regular fa-rectangle-list text-white px-1\" [matTooltip]=\"titleRedirect!\" matTooltipClass=\"bg-success\"> </em>\r\n </button>\r\n </div>\r\n </ng-template>\r\n\r\n <ng-content select=\"[more-buttons]\"></ng-content>\r\n </div>\r\n</div>\r\n\r\n<!-- error-message es el mansaje que aparece abajo del componente -->\r\n<error-message\r\n [label]=\"label\"\r\n [controls]=\"controls\"\r\n [validatorMessage]=\"validatorMessage\"\r\n [submitted]=\"submitted\"\r\n [tooltipMessage]=\"tooltipMessage\"></error-message>\r\n","export class NgSelectSimple {\r\n validatorMessage?: boolean;\r\n tooltipMessage?: boolean;\r\n openWhenFocus?: boolean;\r\n searchBy?: string;\r\n markFirstItem?: boolean;\r\n submitted?: boolean;\r\n searchable?: boolean;\r\n validatorAlert?: boolean;\r\n upperCase?: boolean;\r\n appendTo?: string;\r\n loadingText?: string;\r\n clearAllText?: string;\r\n markFirst?: boolean;\r\n clearable?: boolean;\r\n clearOnBackspace?: boolean;\r\n virtualScroll?: boolean;\r\n openOnEnter?: boolean;\r\n notFoundText?: string;\r\n}\r\n","import { NgModule } from \"@angular/core\";\r\nimport { CommonModule } from \"@angular/common\";\r\nimport { FormsModule, ReactiveFormsModule } from \"@angular/forms\";\r\nimport { ScAgGridPaginationComponent } from \"./sc-ag-grid-pagination.component\";\r\n\r\n@NgModule({\r\n declarations: [\r\n ScAgGridPaginationComponent\r\n ],\r\n imports: [\r\n CommonModule,\r\n FormsModule,\r\n ReactiveFormsModule,\r\n ],\r\n exports: [\r\n ScAgGridPaginationComponent\r\n ],\r\n})\r\nexport class ScAgGridPaginationModule { }\r\n","import { NgModule } from \"@angular/core\";\r\nimport { CommonModule } from \"@angular/common\";\r\nimport { FormsModule, ReactiveFormsModule } from \"@angular/forms\";\r\nimport { InputSearchComponent } from \"./input-search.component\";\r\n\r\n@NgModule({\r\n declarations: [\r\n InputSearchComponent\r\n ],\r\n imports: [\r\n CommonModule,\r\n FormsModule,\r\n ReactiveFormsModule,\r\n ],\r\n exports: [\r\n InputSearchComponent\r\n ],\r\n})\r\nexport class InputSearchModule { }\r\n","import { CommonModule } from \"@angular/common\";\r\nimport { NgModule } from \"@angular/core\";\r\nimport { FormsModule, ReactiveFormsModule } from \"@angular/forms\";\r\nimport { AgGridModule } from \"ag-grid-angular\";\r\nimport { MatDialogModule } from \"@angular/material/dialog\";\r\nimport { DialogAgGridSearchComponent } from \"./dialog-ag-grid-search.component\";\r\nimport { ScAgGridPaginationModule } from \"../sc-ag-grid/sc-ag-grid-pagination/sc-ag-grid-pagination.module\";\r\nimport { InputSearchModule } from \"../sc-ag-grid/input-search/input-search.module\";\r\n\r\n@NgModule({\r\n declarations: [DialogAgGridSearchComponent],\r\n imports: [CommonModule, FormsModule, ReactiveFormsModule, AgGridModule, MatDialogModule, ScAgGridPaginationModule, InputSearchModule],\r\n exports: [DialogAgGridSearchComponent],\r\n})\r\nexport class DialogAgGridSearchModule {}\r\n","import { CommonModule } from \"@angular/common\";\r\nimport { ModuleWithProviders, NgModule } from \"@angular/core\";\r\nimport { FormsModule, ReactiveFormsModule } from \"@angular/forms\";\r\nimport { MatTooltipModule } from \"@angular/material/tooltip\";\r\nimport { NgSelectModule } from \"@ng-select/ng-select\";\r\nimport { ErrorMessageModule } from \"../error-message/error-message.module\";\r\nimport { TooltipMessageModule } from \"../tooltip-message/tooltip-message.module\";\r\nimport { NgSelectSimple } from \"./ng-select-simple\";\r\nimport { NgSelectSimpleComponent } from \"./ng-select-simple.component\";\r\nimport { NgSelectSimpleService } from \"./ng-select-simple.service\";\r\nimport { DialogAgGridSearchModule } from \"../dialog-ag-grid-search/dialog-ag-grid-search.module\";\r\n\r\n@NgModule({\r\n declarations: [NgSelectSimpleComponent],\r\n imports: [CommonModule, FormsModule, ReactiveFormsModule, ErrorMessageModule, TooltipMessageModule, MatTooltipModule, NgSelectModule, DialogAgGridSearchModule],\r\n exports: [NgSelectSimpleComponent],\r\n providers: [],\r\n})\r\nexport class NgSelectSimpleModule {\r\n static forRoot(ngSelectSimple: NgSelectSimple = new NgSelectSimple()): ModuleWithProviders<NgSelectSimpleModule> {\r\n return {\r\n ngModule: NgSelectSimpleModule,\r\n providers: [\r\n { provide: \"NG_SELECT_SIMPLE_VALIDATOR_MESSAGE\", useValue: ngSelectSimple.validatorMessage },\r\n { provide: \"NG_SELECT_SIMPLE_TOOLTIP_MESSAGE\", useValue: ngSelectSimple.tooltipMessage },\r\n { provide: \"NG_SELECT_SIMPLE_OPEN_WHEN_FOCUS\", useValue: ngSelectSimple.openWhenFocus },\r\n { provide: \"NG_SELECT_SIMPLE_SEARCH_BY\", useValue: ngSelectSimple.searchBy },\r\n { provide: \"NG_SELECT_SIMPLE_MARK_FIRST_ITEM\", useValue: ngSelectSimple.markFirstItem },\r\n { provide: \"NG_SELECT_SIMPLE_SUBMITTED\", useValue: ngSelectSimple.submitted },\r\n { provide: \"NG_SELECT_SIMPLE_SEARCHABLE\", useValue: ngSelectSimple.searchable },\r\n { provide: \"NG_SELECT_SIMPLE_VALIDATOR_ALERT\", useValue: ngSelectSimple.validatorAlert },\r\n { provide: \"NG_SELECT_SIMPLE_UPPER_CASE\", useValue: ngSelectSimple.upperCase },\r\n { provide: \"NG_SELECT_SIMPLE_APPEND_TO\", useValue: ngSelectSimple.appendTo },\r\n { provide: \"NG_SELECT_SIMPLE_LOADING_TEXT\", useValue: ngSelectSimple.loadingText },\r\n { provide: \"NG_SELECT_SIMPLE_CLEAR_ALL_TEXT\", useValue: ngSelectSimple.clearAllText },\r\n { provide: \"NG_SELECT_SIMPLE_MARK_FIRST\", useValue: ngSelectSimple.markFirst },\r\n { provide: \"NG_SELECT_SIMPLE_CLEARABLE\", useValue: ngSelectSimple.clearable },\r\n { provide: \"NG_SELECT_SIMPLE_CLEAR_ON_BACKSPACE\", useValue: ngSelectSimple.clearOnBackspace },\r\n { provide: \"NG_SELECT_SIMPLE_VIRTUAL_SCROLL\", useValue: ngSelectSimple.virtualScroll },\r\n { provide: \"NG_SELECT_SIMPLE_OPEN_ON_ENTER\", useValue: ngSelectSimple.openOnEnter },\r\n { provide: \"NG_SELECT_SIMPLE_NOT_FOUND_TEXT\", useValue: ngSelectSimple.notFoundText },\r\n NgSelectSimpleService\r\n ],\r\n };\r\n }\r\n}\r\n","import { ICellRendererParams, RowClassParams } from 'ag-grid-community';\r\n\r\nexport enum EnumButtonType {\r\n TYPE_NONE = 'TYPE_NONE',\r\n TYPE_EDIT = 'TYPE_EDIT',\r\n TYPE_DELETE = 'TYPE_DELETE',\r\n}\r\n\r\nexport interface RowStyle {\r\n [cssProperty: string]: string;\r\n}\r\n\r\nexport type GetRowStyle = (params: RowClassParams) => RowStyle | undefined;\r\n\r\nexport interface DisabledFuc {\r\n (params: ICellRendererParams): boolean;\r\n}\r\nexport interface HideFuc {\r\n (params?: ICellRendererParams): boolean;\r\n}\r\n\r\nexport type RowSelection = 'multiple' | 'single';\r\n\r\nexport interface SubMenu {\r\n actionCode: EnumButtonType | string;\r\n label: string;\r\n icon?: string;\r\n iconClass?: string;\r\n disabled?: boolean | DisabledFuc;\r\n hide?: boolean | HideFuc;\r\n // classList?: string;\r\n submenu?: SubMenu[];\r\n}\r\nexport interface TooltipOption {\r\n label: string;\r\n classList?: string;\r\n}\r\n\r\nexport interface ButtonOption {\r\n classList?: string;\r\n}\r\n\r\nexport interface IconOption {\r\n icon: string;\r\n classList?: string;\r\n}\r\n\r\nexport interface ButtonHeader {\r\n visible: boolean;\r\n disabled?: boolean;\r\n allowTypeFiles?: string;\r\n}\r\n\r\nexport interface PropertyButtonHeader {\r\n visible: boolean;\r\n disabled: boolean;\r\n}\r\n\r\nexport interface ConfigButtonAction {\r\n header?: ConfigButtonHeader;\r\n agGrid?: {\r\n actions: ConfigButtonAgGrid[];\r\n };\r\n}\r\n\r\nexport interface ConfigButtonAgGrid {\r\n actionCode: EnumButtonType | string;\r\n tooltipOption: TooltipOption | ((params: ICellRendererParams) => TooltipOption);\r\n buttonOption?: ButtonOption;\r\n iconOption: IconOption;\r\n disabled?: boolean | DisabledFuc;\r\n hide?: boolean | HideFuc;\r\n submenu?: SubMenu[];\r\n}\r\n\r\nexport interface ConfigButtonHeader {\r\n disabled?: boolean;\r\n submenu?: SubMenu[];\r\n}\r\n","import { Component, ViewChild } from '@angular/core';\r\nimport { UntypedFormControl, ValidatorFn } from '@angular/forms';\r\nimport { AgEditorComponent } from 'ag-grid-angular';\r\nimport { ICellEditorParams } from 'ag-grid-community';\r\nimport { Observable, of } from 'rxjs';\r\nimport { DatePickerComponent } from '../../../date-picker/date-picker.component';\r\nimport { InputNumberComponent } from '../../../input-number/input-number.component';\r\nimport { InputTextComponent } from '../../../input-text/input-text.component';\r\nimport { NgSelectSimpleComponent } from '../../../ng-select-simple/ng-select-simple.component';\r\nexport interface ConfigControl {\r\n\trequired: boolean;\r\n\tlabel: string;\r\n\ttypeControl: TypeControl;\r\n\tinputMask: string;\r\n\ttextRight: boolean;\r\n\tformatCero: boolean;\r\n\tmaxLength: number;\r\n\tdecimals: number;\r\n\tclearable: boolean;\r\n}\r\nexport interface ParamsContainerComponents extends ICellEditorParams {\r\n\twidth: string;\r\n\titems: Observable<any>;\r\n\tdefaultValue: (data: any) => any;\r\n\tvalidatorsCellEditor: ValidatorFn[] | ValidatorFn;\r\n\tfieldValid: string;\r\n\tconfigControl: ConfigControl,\r\n}\r\nexport enum TypeControl {\r\n\tINPUT_TEXT = 'input-text',\r\n\tINPUT_NUMBER = 'input-number',\r\n\tNG_SELECT_SIMPLE = 'ng-select-simple',\r\n\tNG_SELECT_MULTIPLE = 'ng-select-multiple',\r\n\tDATE_PICKER = 'date-picker',\r\n\tDATE_TIME_PICKER_EDITABLE = 'date-time-picker-editable',\r\n}\r\n@Component({\r\n\tselector: 'container-shared-component',\r\n\ttemplateUrl: './container-shared.component.html',\r\n\tstyleUrls: ['./container-shared.component.scss'],\r\n})\r\nexport class ContainerSharedComponent implements AgEditorComponent {\r\n\t@ViewChild('control') set control(v: any) {\r\n\t\tsetTimeout(() => {\r\n\t\t\tif (v instanceof NgSelectSimpleComponent) v.ngSelectSimple.focus();\r\n\t\t\telse if (v instanceof InputTextComponent) v._inputText.nativeElement.focus();\r\n\t\t\telse if (v instanceof InputNumberComponent) v.inputText.nativeElement.focus();\r\n\t\t\telse if (v instanceof DatePickerComponent) v.focus();\r\n\t\t\telse v.focus();\r\n\t\t}, 150);\r\n\t}\r\n\tvalue: any = null;\r\n\tparams: Partial<ParamsContainerComponents> = {} ;\r\n\tlabel = 'undefined';\r\n\twidth = '100px';\r\n\titems = of([]);\r\n\tdefaultValue: string | null = null;\r\n\tvalidators: ValidatorFn[] | ValidatorFn = [];\r\n\trequired = false;\r\n\tinputMask = '';\r\n\ttextRight = false;\r\n\tdecimals = 0;\r\n\tformatCero = false;\r\n\tclearable = false;\r\n\tmaxLength: number | undefined = undefined;\r\n\ttypeControl: TypeControl | null = null;\r\n\tformControl = new UntypedFormControl(null);\r\n\r\n\tconstructor() {}\r\n\tagInit(params: ICellEditorParams): void {\r\n\t\tthis.formControl.markAllAsTouched();\r\n\t\tthis.params = params;\r\n\t\tif (this.params.width) this.width = this.params.width;\r\n\t\tif (this.params.items) this.items = this.params.items;\r\n\t\tif (this.params.defaultValue) this.defaultValue = this.params.defaultValue(this.params.data);\r\n\r\n\t\tif (this.params.validatorsCellEditor) this.validators = this.params.validatorsCellEditor;\r\n\r\n\t\tthis.formControl.setValidators(this.validators);\r\n\t\tthis.formControl.updateValueAndValidity();\r\n\r\n\t\tif (this.params.configControl) {\r\n\t\t\tconst configControl = this.params.configControl;\r\n\t\t\tif (configControl.required) this.required = configControl.required;\r\n\t\t\tif (configControl.label) this.label = configControl.label;\r\n\t\t\tif (configControl.typeControl) this.typeControl = configControl.typeControl;\r\n\t\t\tif (configControl.inputMask) this.inputMask = configControl.inputMask;\r\n\t\t\tif (configControl.textRight) this.textRight = configControl.textRight;\r\n\t\t\tif (configControl.formatCero) this.formatCero = configControl.formatCero;\r\n\t\t\tif (configControl.maxLength) this.maxLength = configControl.maxLength;\r\n\t\t\tif (configControl.decimals) this.decimals = configControl.decimals;\r\n\t\t\tif (configControl.clearable) this.clearable = configControl.clearable;\r\n\t\t}\r\n\t\tif (this.typeControl == 'input-number' && this.defaultValue)\r\n\t\t\tthis.formControl.setValue(this.defaultValue.toString());\r\n\t\telse this.formControl.setValue(this.defaultValue);\r\n\t}\r\n\r\n\tgetValue(): any {\r\n\t\tif (this.formControl.invalid) {\r\n\t\t\tthis.params.data = { ...this.params.node?.data, [this.params.fieldValid as string]: false };\r\n\t\t\tif (this.params.fieldValid) this.params.node?.setDataValue(this.params.fieldValid, false);\r\n\t\t\treturn 'INVALID CONTROL';\r\n\t\t} else {\r\n\t\t\tif (this.params.fieldValid) this.params.node?.setDataValue(this.params.fieldValid, true);\r\n\t\t\treturn this.formControl.value;\r\n\t\t}\r\n\t}\r\n\tdetec(event: KeyboardEvent): void {\r\n\t\tconst letra = event.key;\r\n\t\tconst patt = new RegExp(/^[A-Za-z0-9\\-]+$/g);\r\n\r\n\t\t// Validar que el valor ingresado solo contenga combinaciones de (letras,numeros,-)\r\n\t\tif (!patt.test(letra)) {\r\n\t\t\tevent.preventDefault();\r\n\t\t}\r\n\t}\r\n\tisPopup(): boolean {\r\n\t\treturn true;\r\n\t}\r\n\tonClick(happy: boolean) {\r\n\t\tthis.params.api?.stopEditing();\r\n\t}\r\n\r\n\tonKeyDown(event: KeyboardEvent): void {\r\n\t\tconst key = event.which || event.keyCode;\r\n\t\tif (\r\n\t\t\tkey == 37 ||\r\n\t\t\tkey == 39\r\n\t\t) {\r\n\t\t\tevent.stopPropagation();\r\n\t\t}\r\n\t}\r\n\tonFocusOut(): void {\r\n\t\tthis.params.api?.stopEditing();\r\n\t}\r\n}\r\n","<div [ngStyle]=\"{'width': width}\" class=\"position-relative row\">\r\n\t<div *ngIf=\"typeControl==='ng-select-simple'\" class=\"col-12\">\r\n\t\t<ng-select-simple\r\n\t\t\t[showLabel]=\"false\"\r\n\t\t\t[label]=\"label\"\r\n\t\t\t[required]=\"required\"\r\n\t\t\t[clearable]=\"clearable\"\r\n\t\t\t[formControl]=\"formControl\"\r\n\t\t\t[tooltipMessage]=\"true\"\r\n\t\t\t[validatorMessage]=\"false\"\r\n\t\t\t#control\r\n\t\t\t[items]=\"items\">\r\n\t\t</ng-select-simple>\r\n\t</div>\r\n\t<div *ngIf=\"typeControl==='input-text'\" class=\"col-12\">\r\n\t\t<input-text\r\n\t\t\t(blur)=\"onFocusOut()\"\r\n\t\t\t[showLabel]=\"false\"\r\n\t\t\t[label]=\"label\"\r\n\t\t\t[required]=\"required\"\r\n\t\t\t[formControl]=\"formControl\"\r\n\t\t\t[inputMask]=\"inputMask\"\r\n\t\t\t[textRight]=\"textRight\"\r\n\t\t\t[tooltipMessage]=\"true\"\r\n\t\t\t[validatorMessage]=\"false\"\r\n\t\t\t(keypress)=\"detec($event)\"\r\n\t\t\t#control>\r\n\t\t</input-text>\r\n\t</div>\r\n\t<div *ngIf=\"typeControl==='input-number'\" class=\"col-12\">\r\n\t\t<input-number\r\n\t\t\t(blur)=\"onFocusOut()\"\r\n\t\t\t[formatCero]=\"formatCero\"\r\n\t\t\t[maxLength]=\"maxLength\"\r\n\t\t\t[showLabel]=\"false\"\r\n\t\t\t[decimals]=\"decimals\"\r\n\t\t\t[label]=\"label\"\r\n\t\t\t[tooltipMessage]=\"true\"\r\n\t\t\t[validatorMessage]=\"false\"\r\n\t\t\t[required]=\"required\"\r\n\t\t\t[formControl]=\"formControl\"\r\n\t\t\t#control>\r\n\t\t</input-number>\r\n\t</div>\r\n\t<div *ngIf=\"typeControl==='date-picker'\" class=\"col-12\">\r\n\t\t<date-picker\r\n\t\t\t[showLabel]=\"false\"\r\n\t\t\t[label]=\"label\"\r\n\t\t\t[required]=\"required\"\r\n\t\t\t[formControl]=\"formControl\"\r\n\t\t\t[tooltipMessage]=\"true\"\r\n\t\t\t[validatorMessage]=\"false\"\r\n\t\t\t#control>\r\n\t\t</date-picker>\r\n\t</div>\r\n\t<div *ngIf=\"typeControl==='date-time-picker-editable'\" class=\"col-12\">\r\n\t\t<date-time-picker-editable\r\n\t\t\t[showLabel]=\"false\"\r\n\t\t\t[label]=\"label\"\r\n\t\t\t[required]=\"required\"\r\n\t\t\t[formControl]=\"formControl\"\r\n\t\t\t[tooltipMessage]=\"true\"\r\n\t\t\t[validatorMessage]=\"false\"\r\n\t\t\t#control>\r\n\t\t\t></date-time-picker-editable\r\n\t\t>\r\n\t</div>\r\n</div>\r\n","import { Component } from '@angular/core';\r\nimport { INoRowsOverlayAngularComp } from 'ag-grid-angular';\r\nimport { INoRowsOverlayParams } from 'ag-grid-community';\r\n\r\n@Component({\r\n\tselector: 'edit-delete',\r\n\ttemplate: `\r\n\t\t<p class=\"ag-overlay-loading-center border-0 bg-transparent shadow-none d-flex flex-column\">\r\n\t\t\t<span>No se encontraron registros...</span>\r\n\t\t\t<a href=\"javascript:void(0)\" (click)=\"onNoRowsClick()\">Agregar</a>\r\n\t\t</p>\r\n\t`,\r\n\tstyles: [],\r\n})\r\nexport class NoRowsOverlayCustomComponent implements INoRowsOverlayAngularComp {\r\n\tparams: any;\r\n\tagInit(params: INoRowsOverlayParams): void {\r\n\t\tthis.params = params;\r\n\t}\r\n\tonNoRowsClick() {\r\n\t\tthis.params?.addRow();\r\n\t}\r\n}\r\n","import { Component } from '@angular/core';\r\nimport { INoRowsOverlayAngularComp } from 'ag-grid-angular';\r\nimport { INoRowsOverlayParams } from 'ag-grid-community';\r\n\r\n@Component({\r\n\tselector: 'edit-delete',\r\n\ttemplate: `\r\n\t\t<span class=\"ag-overlay-loading-center border-0 bg-transparent shadow-none\">\r\n\t\t\tNo se encontraron registros...\r\n\t\t</span>\r\n\t`,\r\n\tstyles: [],\r\n})\r\nexport class NoRowsOverlayDefaultComponent implements INoRowsOverlayAngularComp {\r\n\tparams: any;\r\n\tagInit(params: INoRowsOverlayParams): void {\r\n\t\tthis.params = params;\r\n\t}\r\n}\r\n","import {\r\n Component,\r\n Directive,\r\n Injectable,\r\n Input,\r\n ViewChild,\r\n ViewEncapsulation,\r\n} from '@angular/core';\r\nimport { MatMenu } from '@angular/material/menu';\r\nimport { ICellRendererAngularComp } from 'ag-grid-angular';\r\nimport { ICellRendererParams } from 'ag-grid-community';\r\nimport { Subject } from 'rxjs';\r\nimport { ConfigButtonAgGrid, DisabledFuc, EnumButtonType, HideFuc, SubMenu, TooltipOption } from '../../../utils/IScAgGrid';\r\n\r\nlet scCellRenderButtonNextId = 0;\r\nlet scMenuPanelNextId = 0;\r\n\r\n@Injectable({providedIn: 'root'})\r\nexport class ScCellRenderButtonService {\r\n private _handlerButtonAction$ = new Subject<{\r\n index: number;\r\n action: string;\r\n }>();\r\n handlerButtonAction$ = this._handlerButtonAction$.asObservable();\r\n\r\n buttonAction(option: { index: number; action: string }): void {\r\n this._handlerButtonAction$.next(option);\r\n }\r\n}\r\n\r\n@Directive()\r\nabstract class ScCellRenderBase {\r\n params!: ICellRendererParams;\r\n\r\n isFunctionDisabled(value: boolean | DisabledFuc | undefined): boolean {\r\n if (value == null) return false;\r\n\r\n if (typeof value === 'function') {\r\n return value(this.params);\r\n }\r\n\r\n return value;\r\n }\r\n\r\n isFunctionHide(value: boolean | HideFuc): boolean {\r\n if (value == null) return false;\r\n\r\n if (typeof value === 'function') {\r\n return value(this.params);\r\n }\r\n\r\n return value;\r\n }\r\n}\r\n\r\n@Component({\r\n selector: 'sc-menu-panel',\r\n template: `\r\n <mat-menu #menu>\r\n <ng-container *ngFor=\"let subMenu of subMenus\">\r\n <ng-container *ngIf=\"!isFunctionHide(subMenu.hide ?? false)\">\r\n <button\r\n *ngIf=\"!subMenu.submenu; else branch\"\r\n mat-menu-item\r\n [disabled]=\"isFunctionDisabled(subMenu?.disabled)\"\r\n [class.sc-menu-panel-bottom]=\"subMenu?.icon !== undefined\"\r\n [attr.aria-label]=\"subMenu?.label ?? ''\"\r\n (click)=\"onButtonActionEmit(subMenu?.actionCode ?? '')\"\r\n >\r\n <i\r\n *ngIf=\"subMenu?.icon\"\r\n class=\"fa-lg\"\r\n [class]=\"\r\n 'sc-menu-panel-icon ' +\r\n subMenu.icon +\r\n ' ' +\r\n (isFunctionDisabled(subMenu?.disabled)\r\n ? 'text-muted'\r\n : subMenu?.iconClass ?? '')\r\n \"\r\n ></i>\r\n <span class=\"sumax-label\">{{ subMenu?.label ?? '' }}</span>\r\n </button>\r\n\r\n <ng-template #branch>\r\n <button\r\n mat-menu-item\r\n [matMenuTriggerFor]=\"innerPanel.menu\"\r\n [class.sc-menu-panel-bottom]=\"subMenu?.icon !== undefined\"\r\n [disabled]=\"isFunctionDisabled(subMenu?.disabled)\"\r\n [attr.aria-label]=\"subMenu?.label ?? ''\"\r\n >\r\n <i\r\n *ngIf=\"subMenu?.icon\"\r\n class=\"fa-lg\"\r\n [class]=\"\r\n 'sc-menu-panel-icon ' +\r\n subMenu.icon +\r\n ' ' +\r\n (isFunctionDisabled(subMenu?.disabled)\r\n ? 'text-muted'\r\n : subMenu?.iconClass ?? '')\r\n \"\r\n ></i>\r\n <span class=\"sumax-label\">{{ subMenu?.label ?? '' }}</span>\r\n </button>\r\n\r\n <sc-menu-panel\r\n #innerPanel\r\n [params]=\"params\"\r\n (onButtonAction)=\"onButtonActionEmit(subMenu?.actionCode ?? '')\"\r\n [subMenus]=\"subMenu.submenu ?? []\"\r\n ></sc-menu-panel>\r\n </ng-template>\r\n </ng-container>\r\n </ng-container>\r\n </mat-menu>\r\n `,\r\n styles: [\r\n `\r\n .sc-menu-panel-bottom {\r\n display: flex;\r\n align-items: center;\r\n }\r\n\r\n .sc-menu-panel-icon {\r\n width: 1.6rem;\r\n margin-right: 0.3em;\r\n }\r\n\r\n .mat-menu-item[disabled] {\r\n pointer-events: auto !important;\r\n cursor: no-drop !important;\r\n }\r\n\r\n button:disabled {\r\n cursor: no-drop;\r\n }\r\n `,\r\n ],\r\n host: {\r\n '[id]': 'idScMenuPanel',\r\n },\r\n})\r\nexport class ScMenuPanelComponent extends ScCellRenderBase {\r\n idScMenuPanel = `sc-menu-panel-${++scMenuPanelNextId}`;\r\n\r\n @ViewChild('menu', { static: true }) menu!: MatMenu;\r\n\r\n @Input() subMenus: SubMenu[] = [];\r\n @Input() override params!: ICellRendererParams;\r\n\r\n constructor(\r\n private readonly _scCellRenderButtonService: ScCellRenderButtonService\r\n ) {\r\n super();\r\n }\r\n\r\n onButtonActionEmit(action: string): void {\r\n const index = this.params?.node.rowIndex ?? -1;\r\n this._scCellRenderButtonService.buttonAction({\r\n index,\r\n action,\r\n });\r\n }\r\n}\r\n\r\n@Component({\r\n templateUrl: './sc-cell-render-button.component.html',\r\n styles: [\r\n `\r\n .sc-cell-render-button {\r\n padding: 0.1em 1em;\r\n }\r\n .sc-cell-render-button-action {\r\n border: none;\r\n border-radius: 50%;\r\n padding: 0 0.5em;\r\n text-align: center;\r\n margin: 0.1em;\r\n background-color: transparent;\r\n }\r\n .sc-cell-render-button-action i {\r\n display: block;\r\n width: 1.7em;\r\n height: 1.7em;\r\n line-height: 1.7em;\r\n padding-right: 0;\r\n }\r\n button:disabled {\r\n cursor: no-drop;\r\n }\r\n `,\r\n ],\r\n host: {\r\n '[id]': 'idScCellRenderButton',\r\n class: 'd-flex justify-content-center sc-cell-render-button',\r\n },\r\n encapsulation: ViewEncapsulation.None,\r\n})\r\nexport class ScCellRendererButtonComponent\r\n extends ScCellRenderBase\r\n implements ICellRendererAngularComp\r\n{\r\n idScCellRenderButton = `sc-cell-render-button-${++scCellRenderButtonNextId}`;\r\n\r\n override params!: ICellRendererParams;\r\n\r\n configButtons: ConfigButtonAgGrid[] = [];\r\n\r\n agInit(params: ICellRendererParams): void {\r\n this.params = params;\r\n this.configButtons =\r\n params.context.componentParent._configButtonsDefaultAgGrid;\r\n }\r\n\r\n onButtonAction(typeButton: EnumButtonType | string) {\r\n if (typeButton)\r\n this.params?.context.componentParent.onButtonActionAgGridEmit(\r\n this.params.node.rowIndex,\r\n typeButton\r\n );\r\n }\r\n\r\n refresh(_: any): boolean {\r\n return true;\r\n }\r\n\r\n hideSubMenu(subMenu: SubMenu[]): boolean {\r\n if (subMenu.length === 0) return true;\r\n\r\n return subMenu.every(({ hide }) => {\r\n if (hide == null) return false;\r\n if (typeof hide == 'function') return hide();\r\n return hide;\r\n });\r\n }\r\n\r\n getTooltipOption(configButtons: ConfigButtonAgGrid): TooltipOption {\r\n if(typeof configButtons?.tooltipOption === 'function')\r\n return configButtons?.tooltipOption(this.params)\r\n else \r\n return configButtons?.tooltipOption;\r\n }\r\n}\r\n","<ng-container *ngFor=\"let option of configButtons\">\r\n <ng-container *ngIf=\"option?.submenu?.length ?? 0 > 0; else buttonPrincipal\">\r\n <ng-container *ngIf=\"!hideSubMenu(option?.submenu ?? [])\">\r\n <button\r\n matRipple\r\n class=\"btn sc-cell-render-button-action\"\r\n [ngClass]=\"option?.buttonOption?.classList ? $any(option?.buttonOption?.classList) : ''\"\r\n *ngIf=\"!isFunctionHide(option?.hide ?? false)\"\r\n [disabled]=\"isFunctionDisabled(option?.disabled)\"\r\n [matMenuTriggerFor]=\"panel.menu\"\r\n [matTooltip]=\"getTooltipOption(option).label\"\r\n [matTooltipClass]=\"getTooltipOption(option).classList ?? ''\"\r\n [matTooltipDisabled]=\"isFunctionDisabled(option?.disabled)\"\r\n [attr.aria-label]=\"getTooltipOption(option).label\">\r\n <em\r\n class=\"p-0\"\r\n [class]=\"\r\n (option?.iconOption?.icon ?? '') +\r\n ' ' +\r\n (isFunctionDisabled(option?.disabled) ? 'text-muted' : option?.iconOption?.classList ?? '')\r\n \"></em>\r\n </button>\r\n\r\n <sc-menu-panel #panel [params]=\"params\" [subMenus]=\"option.submenu ?? []\"></sc-menu-panel>\r\n </ng-container>\r\n </ng-container>\r\n\r\n <ng-template #buttonPrincipal>\r\n <button\r\n *ngIf=\"!isFunctionHide(option?.hide ?? false)\"\r\n [disabled]=\"isFunctionDisabled(option?.disabled)\"\r\n [ngClass]=\"option?.buttonOption?.classList ? $any(option?.buttonOption?.classList) : ''\"\r\n class=\"btn sc-cell-render-button-action\"\r\n matRipple\r\n (click)=\"onButtonAction(option?.actionCode ?? '')\"\r\n type=\"button\"\r\n [matTooltip]=\"getTooltipOption(option).label\"\r\n [matTooltipClass]=\"getTooltipOption(option).classList ?? ''\"\r\n [matTooltipDisabled]=\"isFunctionDisabled(option?.disabled)\"\r\n [attr.aria-label]=\"getTooltipOption(option).label\">\r\n <em\r\n class=\"pt-0\"\r\n [class]=\"\r\n (option?.iconOption?.icon ?? '') +\r\n ' ' +\r\n (isFunctionDisabled(option?.disabled) ? 'text-muted' : option?.iconOption?.classList ?? '')\r\n \"></em>\r\n </button>\r\n </ng-template>\r\n</ng-container>\r\n","import { Component, ViewEncapsulation } from '@angular/core';\r\nimport { ICellRendererAngularComp } from 'ag-grid-angular';\r\nimport { ICellRendererParams } from 'ag-grid-community';\r\n\r\nlet nextId = 0;\r\n\r\n@Component({\r\n\ttemplate: `\r\n\t\t<div>\r\n\t\t\t<ul>\r\n\t\t\t\t<ng-container *ngIf=\"params?.value as items\">\r\n\t\t\t\t\t<li *ngFor=\"let item of items\">\r\n\t\t\t\t\t\t<ng-container *ngIf=\"item\">\r\n\t\t\t\t\t\t\t<mat-checkbox\r\n\t\t\t\t\t\t\t\t[ngClass]=\"{ 'checkbox-list-disabled': item.disabled }\"\r\n\t\t\t\t\t\t\t\tcolor=\"primary\"\r\n\t\t\t\t\t\t\t\t[(ngModel)]=\"item.checked\"\r\n\t\t\t\t\t\t\t\t[disabled]=\"item.disabled\"\r\n\t\t\t\t\t\t\t\t>{{ item.label || '' }}</mat-checkbox\r\n\t\t\t\t\t\t\t>\r\n\t\t\t\t\t\t</ng-container>\r\n\t\t\t\t\t</li>\r\n\t\t\t\t</ng-container>\r\n\t\t\t</ul>\r\n\t\t</div>\r\n\t`,\r\n\tstyles: [\r\n\t\t`\r\n\t\t\tul {\r\n\t\t\t\tlist-style-type: none;\r\n\t\t\t\tmargin-top: 1.5px;\r\n\t\t\t\tpadding-left: 0px;\r\n\t\t\t}\r\n\t\t`,\r\n\t],\r\n\thost: {\r\n\t\t'[id]': 'idScCellRenderCheckboxLis',\r\n\t},\r\n\tencapsulation: ViewEncapsulation.None,\r\n})\r\nexport class ScCellRenderCheckboxListComponent implements ICellRendererAngularComp {\r\n\tidScCellRenderCheckboxLis = `sc-cell-render-checkbox-list-${++nextId}`;\r\n\r\n\tparams?: ICellRendererParams;\r\n\r\n\tagInit(params: ICellRendererParams): void {\r\n\t\tthis.params = params;\r\n\t}\r\n\r\n\trefresh(_: any): boolean {\r\n\t\treturn false;\r\n\t}\r\n}\r\n","import { Component } from '@angular/core';\r\nimport { FormControl } from '@angular/forms';\r\nimport { ICellRendererAngularComp } from 'ag-grid-angular';\r\nimport { ICellRendererParams } from 'ag-grid-community';\r\nimport { Observable, of } from 'rxjs';\r\nimport { map } from 'rxjs/operators';\r\n\r\n@Component({\r\n selector: 'sc-cell-render-select',\r\n template: `\r\n <ng-select-simple\r\n (change)=\"onChange($event)\"\r\n [formControl]=\"formControl\"\r\n [items]=\"items$\"\r\n [virtualScroll]=\"true\"\r\n [clearable]=\"false\"\r\n >\r\n </ng-select-simple>\r\n `,\r\n})\r\nexport class ScCellRenderSelectComponent implements ICellRendererAngularComp {\r\n private _params!: ICellRendererParams;\r\n items$: Observable<any> = of([]);\r\n\r\n formControl = new FormControl();\r\n\r\n agInit(params: ICellRendererParams): void {\r\n this._params = params;\r\n const values = (params as any).values;\r\n\r\n if (values) {\r\n if (Array.isArray(values)) this.items$ = of((params as any).values);\r\n else this.items$ = (params as any).values;\r\n\r\n if (params.value !== null) {\r\n const { value } = params.value;\r\n\r\n this.items$\r\n .pipe(map((data) => data.filter((d: any) => d.value === value)))\r\n .subscribe((v) => {\r\n if (v[0]) {\r\n this.formControl.setValue(v[0]);\r\n }\r\n });\r\n }\r\n }\r\n }\r\n\r\n refresh(_: ICellRendererParams): boolean {\r\n return false;\r\n }\r\n\r\n getValue(): any {\r\n return this.formControl.value;\r\n }\r\n\r\n onChange(_: any): void {\r\n this._params.api.stopEditing();\r\n }\r\n}\r\n","import { Component } from '@angular/core';\r\nimport { MatSlideToggleChange } from '@angular/material/slide-toggle';\r\nimport { ICellRendererAngularComp } from 'ag-grid-angular';\r\nimport { ICellRendererParams } from 'ag-grid-community';\r\n\r\n@Component({\r\n selector: 'sc-cell-render-toggle',\r\n template: `\r\n\t\t<mat-slide-toggle [disabled]=\"disabled\" [checked]=\"checkbox\" (change)=\"onChange($event)\">{{\r\n\t\t\tlabel\r\n\t\t}}</mat-slide-toggle>\r\n\t`,\r\n styles: [],\r\n})\r\nexport class ScCellRenderToggleComponent implements ICellRendererAngularComp {\r\n private _params!: ICellRendererParams;\r\n checkbox = false;\r\n disabled = false;\r\n label = '';\r\n\r\n agInit (params: ICellRendererParams): void {\r\n const { value } = params;\r\n this._params = params;\r\n\r\n this.label = (params as any).label ?? '';\r\n this.disabled = (params as any).disabled ?? true;\r\n\r\n this.checkbox = value ?? false;\r\n }\r\n\r\n refresh (_: ICellRendererParams): boolean {\r\n return false;\r\n }\r\n\r\n getValue (): boolean {\r\n return this.checkbox;\r\n }\r\n\r\n onChange (change: MatSlideToggleChange): void {\r\n this.checkbox = change.checked;\r\n if (this._params.context && this._params.context.toggleChanged) {\r\n this._params.context.toggleChanged(this.checkbox);\r\n }\r\n this._params.api.stopEditing();\r\n }\r\n}\r\n","import {\r\n Directive,\r\n InjectionToken,\r\n TemplateRef,\r\n ViewChild,\r\n} from '@angular/core';\r\n\r\nexport const SC_AG_GRID_BUTTON_HEADER =\r\n new InjectionToken<ScAgGridButtonHeader>('ScAgGridButtonHeader');\r\n\r\n@Directive({\r\n selector: 'ng-template[scAgridButtonHeader]',\r\n providers: [\r\n { provide: SC_AG_GRID_BUTTON_HEADER, useExisting: ScAgGridButtonHeader },\r\n ],\r\n})\r\nexport class ScAgGridButtonHeader {\r\n @ViewChild(TemplateRef, { static: true }) content!: TemplateRef<any>;\r\n\r\n constructor(public template: TemplateRef<any>) {}\r\n}\r\n","import { NoRowsOverlayDefaultComponent } from './no-rows-overlay/noRowsOverlayDefault.component';\r\nimport { ScCellRendererButtonComponent, ScMenuPanelComponent } from './sc-cell-render-button/sc-cell-render-button.component';\r\nimport { ScCellRenderCheckboxListComponent } from './sc-cell-render-checkbox-list/sc-cell-render-checkbox-list.component';\r\nimport { ScCellRenderSelectComponent } from './sc-cell-render-select/sc-cell-render-select.component';\r\nimport { ScCellRenderToggleComponent } from './sc-cell-render-toggle/sc-cell-render-toggle.component';\r\n\r\nexport const scCellRendererFramework = {\r\n\tscCellRendererButtonComponent: ScCellRendererButtonComponent,\r\n\tscCellRenderCheckboxListComponent: ScCellRenderCheckboxListComponent,\r\n\tscCellRenderSelectComponent: ScCellRenderSelectComponent,\r\n\tscCellRenderToggleComponent: ScCellRenderToggleComponent,\r\n\tnoRowsOverlayDefault: NoRowsOverlayDefaultComponent\r\n};\r\nexport const scCellRendererComponents = [\r\n\tScCellRendererButtonComponent,\r\n\tScCellRenderCheckboxListComponent,\r\n\tScCellRenderSelectComponent,\r\n\tScCellRenderToggleComponent,\r\n\tScMenuPanelComponent\r\n];\r\n\r\nexport const scComponents = {\r\n\t'scCellRendererButtonComponent' : ScCellRendererButtonComponent,\r\n\t'scCellRenderCheckboxListComponent' : ScCellRenderCheckboxListComponent,\r\n\t'scCellRenderSelectComponent' : ScCellRenderSelectComponent,\r\n\t'scCellRenderToggleComponent' : ScCellRenderToggleComponent,\r\n\t'noRowsOverlayDefault' : ScMenuPanelComponent\r\n};\r\n","import {\r\n ChangeDetectionStrategy,\r\n Component,\r\n ContentChildren,\r\n ElementRef,\r\n EventEmitter,\r\n Input,\r\n OnChanges,\r\n OnDestroy,\r\n OnInit,\r\n Output,\r\n QueryList,\r\n SimpleChanges,\r\n ViewChild,\r\n inject,\r\n} from \"@angular/core\";\r\nimport { FormGroup } from \"@angular/forms\";\r\nimport { MatMenuTrigger } from \"@angular/material/menu\";\r\nimport {\r\n CellContextMenuEvent,\r\n CellEditingStoppedEvent,\r\n CellKeyDownEvent,\r\n CellValueChangedEvent,\r\n ColDef,\r\n GridApi,\r\n GridReadyEvent,\r\n IRowNode,\r\n IsRowSelectable,\r\n RowClickedEvent,\r\n RowDataUpdatedEvent,\r\n RowDoubleClickedEvent,\r\n RowDragEvent,\r\n RowEditingStartedEvent,\r\n RowSelectedEvent,\r\n} from \"ag-grid-community\";\r\nimport { Observable, Subscription, of } from \"rxjs\";\r\nimport { INgSelect } from \"../../utils/INgSelect\";\r\nimport {\r\n ButtonHeader,\r\n ConfigButtonAction,\r\n ConfigButtonAgGrid,\r\n ConfigButtonHeader,\r\n EnumButtonType,\r\n GetRowStyle,\r\n HideFuc,\r\n RowSelection,\r\n} from \"../../utils/IScAgGrid\";\r\nimport { MessageUtilService } from \"../../utils/message-util.service\";\r\nimport { ScCellRenderButtonService } from \"../cell-render/sc-cell-render-button/sc-cell-render-button.component\";\r\nimport { scComponents } from \"../cell-render/sc-cell-render-config\";\r\nimport { ScAgGridButtonHeader } from \"../directives/scAgGrid.directive\";\r\nimport { ScAgGridPaginationComponent } from \"../sc-ag-grid-pagination/sc-ag-grid-pagination.component\";\r\n\r\nlet nextId = 0;\r\n@Component({\r\n selector: \"sc-ag-grid-customizable\",\r\n templateUrl: \"./sc-ag-grid-customizable.component.html\",\r\n styleUrl: \"./sc-ag-grid-customizable.component.scss\",\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n host: {\r\n \"[id]\": \"idScAgGridCustomizableComponent\",\r\n class: \"sc-ag-grid-customizable\",\r\n },\r\n})\r\nexport class ScAgGridCustomizableComponent implements OnInit, OnChanges, OnDestroy {\r\n @ContentChildren(ScAgGridButtonHeader, { descendants: true })\r\n viewChildrenButtonHeaders!: QueryList<ScAgGridButtonHeader>;\r\n\r\n @ViewChild(\"menuTrigger\") menuTrigger?: MatMenuTrigger;\r\n\r\n @ViewChild(\"scAgGridPagination\")\r\n private _scAgGridPagination?: ScAgGridPaginationComponent;\r\n\r\n @ViewChild(\"buttonAdd\") buttonAdd?: ElementRef<HTMLButtonElement>;\r\n get buttonAddElement(): HTMLButtonElement | null {\r\n return this.buttonAdd?.nativeElement ?? null;\r\n }\r\n\r\n idScAgGridCustomizableComponent = `sc-ag-grid-customizable-${++nextId}`;\r\n\r\n @Input() isRowSelectable: IsRowSelectable = () => true;\r\n\r\n searchClass = \"col-12 col-sm-12 col-md-6 col-lg-6 col-xl-5 my-2\";\r\n @Input() getRowStyle: GetRowStyle = () => undefined;\r\n @Input() fillSearch = false;\r\n //#region Inputs\r\n /**\r\n * @description Cantidad de items que se mostrará por página\r\n * @default 15\r\n */\r\n @Input() paginationPageSize = 15;\r\n @Input() searchWidth = \"\";\r\n /**\r\n * @description Opciones de tamaño de página\r\n * @default '[5, 10, 15, 20, 25]'\r\n */\r\n @Input() pageSizeOptions = [5, 10, 15, 20, 25];\r\n /**\r\n * @description Si el valor es `true` muestra la paginación\r\n * @default true\r\n */\r\n @Input() pagination = true;\r\n /**\r\n * @description Tipo de selecion en la `grilla`s\r\n * @default 'simple'\r\n */\r\n @Input() rowSelection: RowSelection = \"single\";\r\n // @Input() suppressRowClickSelection = true;\r\n get suppressRowClickSelection(): boolean {\r\n return this.rowSelection === \"single\" ? false : true;\r\n }\r\n /**\r\n * @description Array de columnas que se mostrara en la `grilla`\r\n * @default undefined\r\n */\r\n @Input() columnDefs: ColDef[] = [];\r\n /**\r\n * @description Array de datos que se mostrara en la `grilla`\r\n * @default null\r\n */\r\n @Input() rowData: Observable<any[]> = of([]);\r\n\r\n @Input() configButtonsAction!: ConfigButtonAction;\r\n get configHeader(): ConfigButtonHeader | null {\r\n return this.configButtonsAction?.header ?? null;\r\n }\r\n\r\n @Input() defaultCellRendererActions: string | undefined = undefined;\r\n\r\n _configButtonsDefaultAgGrid: ConfigButtonAgGrid[] = [];\r\n\r\n /**\r\n * @description Si el valor es `true` muestra el `buscador`\r\n * @default true\r\n */\r\n @Input() visibleSearch = true;\r\n\r\n @Input() domLayout: \"normal\" | \"autoHeight\" = \"normal\";\r\n @Input() height = \"20em\";\r\n\r\n /**\r\n * @description Cpnfiguración para el boton `Agregar`\r\n * @default '{ visible: true, disabled: false }'\r\n */\r\n @Input() btnAdd: ButtonHeader = { visible: true };\r\n /**\r\n * @description Para activar o descativar el drag & drop\r\n * @default false\r\n */\r\n @Input() rowDragManaged: boolean = false;\r\n\r\n /**\r\n * @description Para activar o descativar las animaciones\r\n * @default false\r\n */\r\n @Input() animateRows: boolean = false;\r\n\r\n @Input() useGridCopy = false;\r\n @Input() multiSortKey!: any;\r\n @Input() showMenuDefault = false;\r\n @Input() enableCellTextSelection = true;\r\n @Input() suppressRowTransform = false;\r\n @Input() enableRangeSelection = false;\r\n @Input() noRowsOverlayComponent = \"\";\r\n @Input() noRowsOverlayComponentParams = {};\r\n @Input() validatePasteCell?: (evtSource: CellKeyDownEvent, evtTarget: CellKeyDownEvent) => Promise<boolean> = (\r\n evtSource: CellKeyDownEvent,\r\n evtTarget: CellKeyDownEvent\r\n ) => Promise.resolve(true);\r\n @Input() validatePasteRows?: (evtSource: IRowNode[], evtTarget: IRowNode[]) => Promise<boolean> = (\r\n evtSource: IRowNode[],\r\n evtTarget: IRowNode[]\r\n ) => Promise.resolve(true);\r\n //#endregion\r\n\r\n /**\r\n * @description Para agregar componentes internos dentro de la grilla\r\n */\r\n @Input()\r\n set frameworkComponents(value: any) {\r\n this._frameworkComponents = { ...this._frameworkComponents, ...value };\r\n }\r\n\r\n /**\r\n * @description Para poder agregar más objetos al contexto\r\n */\r\n @Input()\r\n set context(value: any) {\r\n this._context = { ...this._context, ...value };\r\n }\r\n\r\n //#region Output\r\n @Output() onChangeFilter = new EventEmitter<string>();\r\n @Output() onAddRow = new EventEmitter<GridApi>();\r\n @Output() onGridAddRow = new EventEmitter<CellKeyDownEvent>();\r\n @Output() onEditRow = new EventEmitter<IRowNode>();\r\n @Output() onDeleteRow = new EventEmitter<[GridApi, any[]]>();\r\n @Output() onCellKeyDown: EventEmitter<any> = new EventEmitter();\r\n @Output() onCellStopEditing: EventEmitter<any> = new EventEmitter();\r\n @Output() onButtonActionAgGrid = new EventEmitter<[EnumButtonType | string, IRowNode]>();\r\n @Output() onButtonActionHeader = new EventEmitter<[EnumButtonType | string, any[]]>();\r\n\r\n // AgGrid Events - Ouput\r\n @Output() onGridReady = new EventEmitter<[GridApi]>();\r\n @Output() onGridSelectChange = new EventEmitter<any[]>();\r\n @Output() onGridChange = new EventEmitter<[GridApi, RowDataUpdatedEvent]>();\r\n @Output() onRowDragEnd = new EventEmitter<RowDragEvent>();\r\n @Output() onRowEditingStarted = new EventEmitter<RowEditingStartedEvent>();\r\n @Output() rowClicked = new EventEmitter<RowClickedEvent>();\r\n @Output() rowDoubleClicked = new EventEmitter<RowDoubleClickedEvent>();\r\n @Output() onRowSelected = new EventEmitter<RowSelectedEvent>();\r\n @Output() cellValueChanged = new EventEmitter<CellValueChangedEvent>();\r\n @Output() onCellContextMenu = new EventEmitter<CellContextMenuEvent>();\r\n @Output() onPasteMenu = new EventEmitter<CellContextMenuEvent>();\r\n @Output() onCopyMenu = new EventEmitter<CellContextMenuEvent>();\r\n @Output() afterPasteCell = new EventEmitter<[CellKeyDownEvent, CellKeyDownEvent]>();\r\n @Output() beforePasteCell = new EventEmitter<[CellKeyDownEvent, CellKeyDownEvent]>();\r\n @Output() afterPasteRows = new EventEmitter<[IRowNode[], IRowNode[]]>();\r\n @Output() beforePasteRows = new EventEmitter<[IRowNode[], IRowNode[]]>();\r\n\r\n columnDefsAndAddCellActions: ColDef[] = [];\r\n defaultColDef: ColDef = {\r\n resizable: true,\r\n sortable: true,\r\n };\r\n _frameworkComponents = { ...scComponents };\r\n _context = { componentParent: this as any };\r\n\r\n bottomMenu: string = \"0\";\r\n leftMenu: string = \"0\";\r\n hiddenMenu: boolean = true;\r\n\r\n copiedCell?: CellKeyDownEvent;\r\n copiedRow?: IRowNode[];\r\n\r\n @Input()\r\n overlayNoRowsTemplate = `<span class=\"ag-overlay-loading-center border-0 bg-transparent shadow-none\">\r\n\t\t\tNo se encontraron registros...\r\n\t\t</span>`;\r\n\r\n overlayLoadingTemplate = `<span class=\"ag-overlay-loading-top d-flex align-items-center border-0 bg-white shadow p-4 text-info\" style=\"height: 20px;\">\r\n\t\t\t<img src=\"assets/media-demo/loading.gif\" height=\"20\" width=\"25\" class=\"mr-2\">\r\n\t\t\t<strong>Cargando registros</strong>\r\n\t\t</span>\r\n\t\t`;\r\n suppressDragLeaveHidesColumns = true;\r\n suppressScrollOnNewData = false;\r\n suppressPaginationPanel = true;\r\n\r\n // AgGrid Style\r\n get ngStyleContainer() {\r\n return {\r\n width: \"100%\",\r\n height: this.height,\r\n };\r\n }\r\n\r\n get ngStyleAgGrid() {\r\n return {\r\n width: \"100%\",\r\n height: \"100%\",\r\n };\r\n }\r\n\r\n _subscription$ = new Subscription();\r\n progressVisibled = false;\r\n\r\n gridApi!: GridApi;\r\n _subscriptionRowData$?: Subscription;\r\n\r\n selectedRows: any[] = [];\r\n\r\n cellContextMenuActual?: CellContextMenuEvent;\r\n\r\n private _scCellRenderButtonService = inject(ScCellRenderButtonService);\r\n private _messageUtilService = inject(MessageUtilService);\r\n\r\n ngOnInit(): void {\r\n this._subscription$.add(\r\n this._scCellRenderButtonService.handlerButtonAction$.subscribe(({ index, action }) => {\r\n if (action == null) return;\r\n if (action.trim() === \"\") return;\r\n\r\n if (index !== -1) {\r\n this.onButtonActionAgGridEmit(index, action);\r\n return;\r\n }\r\n\r\n this.onButtonActionHeaderEmit(action);\r\n })\r\n );\r\n\r\n this.initActionButton();\r\n }\r\n\r\n ngOnChanges(changes: SimpleChanges): void {\r\n if (!this.gridApi) return;\r\n if (changes[\"configButtonsAction\"]) this.initActionButton();\r\n if (changes[\"rowData\"]) this.initRowData();\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this._subscription$?.unsubscribe();\r\n this._subscriptionRowData$?.unsubscribe();\r\n this.selectedRows.length = 0;\r\n }\r\n\r\n onButtonActionHeaderEmit(typeButton: string): void {\r\n const rowsSelected = this.gridApi?.getSelectedRows();\r\n this.onButtonActionHeader.emit([typeButton, rowsSelected]);\r\n }\r\n\r\n initActionButton(): void {\r\n if (isObjEmpty(this.configButtonsAction)) return;\r\n\r\n const { agGrid } = this.configButtonsAction!;\r\n\r\n if (agGrid && agGrid.actions.length > 0) {\r\n this._configButtonsDefaultAgGrid = [...agGrid.actions];\r\n }\r\n\r\n this.sizeFitColumnAction();\r\n }\r\n\r\n sizeFitColumnAction(): void {\r\n const length = this._configButtonsDefaultAgGrid.filter(({ hide }) => {\r\n return !this._hideFunc(hide);\r\n }).length;\r\n\r\n const width = length == 2 ? 90 : 80;\r\n const minWidth = length > 2 ? length * 33 + 10 : width;\r\n\r\n const newColumns: ColDef = {\r\n headerName: \"Acciones\",\r\n headerClass: \"ag-header__center\",\r\n field: \"\",\r\n width: minWidth,\r\n minWidth,\r\n maxWidth: minWidth,\r\n cellClass: [\"d-flex\", \"justify-content-center\", \"align-items-center\"],\r\n cellStyle: { overflow: \"visible\" },\r\n resizable: false,\r\n sortable: false,\r\n cellRenderer: this.defaultCellRendererActions ? this.defaultCellRendererActions : \"scCellRendererButtonComponent\",\r\n pinned: \"right\",\r\n suppressMenu: true,\r\n lockPosition: true,\r\n };\r\n this.columnDefsAndAddCellActions = this._hideAgGridMenuAction() ? [...this.columnDefs] : [...this.columnDefs, newColumns];\r\n }\r\n\r\n private _hideAgGridMenuAction(): boolean {\r\n if (this.configButtonsAction == null) return true;\r\n return (\r\n this.configButtonsAction?.agGrid?.actions.every(({ hide }) => {\r\n return this._hideFunc(hide);\r\n }) ?? true\r\n );\r\n }\r\n\r\n private _hideFunc(hide: HideFuc | boolean | undefined): boolean {\r\n if (hide == null) return false;\r\n if (typeof hide == \"function\") return hide();\r\n\r\n return hide;\r\n }\r\n\r\n onButtonActionAgGridEmit(rowIndex: number, typeButton: string) {\r\n const IRowNode = this.gridApi?.getDisplayedRowAtIndex(rowIndex);\r\n\r\n if (IRowNode) {\r\n if (typeButton === EnumButtonType.TYPE_EDIT) {\r\n this.onEditRow.emit(IRowNode);\r\n return;\r\n }\r\n if (typeButton === EnumButtonType.TYPE_DELETE) {\r\n this.onDeleteRow.emit([this.gridApi, [IRowNode.data]]);\r\n return;\r\n }\r\n\r\n this.onButtonActionAgGrid.emit([typeButton, IRowNode]);\r\n }\r\n }\r\n\r\n initRowData(): void {\r\n if (!this.configButtonsAction?.agGrid) this.sizeFitColumnAction();\r\n if (this._subscriptionRowData$) {\r\n this._subscriptionRowData$.unsubscribe();\r\n this.gridApi.setGridOption(\"rowData\", []);\r\n this.gridApi?.showLoadingOverlay();\r\n }\r\n this._subscriptionRowData$ = this.rowData.subscribe((data) => {\r\n this.gridApi.setGridOption(\"rowData\", data);\r\n });\r\n }\r\n\r\n changeFilter(value: string) {\r\n this.gridApi?.setQuickFilter(value);\r\n this.onChangeFilter.emit(value);\r\n }\r\n\r\n onAddRowEmit(): void {\r\n this.onAddRow.emit(this.gridApi);\r\n }\r\n\r\n hideHeaderMenuAction(): boolean {\r\n return (\r\n this.configButtonsAction?.header?.submenu?.every(({ hide }) => {\r\n return this._hideFunc(hide);\r\n }) ?? false\r\n );\r\n }\r\n\r\n paginationChanged(): void {\r\n if (this._scAgGridPagination) this._scAgGridPagination.onPaginationChanged();\r\n }\r\n\r\n gridReady(event: GridReadyEvent): void {\r\n this.gridApi = event.api;\r\n\r\n this.initRowData();\r\n this.onGridReady.emit([this.gridApi]);\r\n }\r\n\r\n /**\r\n * @param event: opcional - Contiene el nodo y la data de la fila actual.\r\n * @description Se dispara cada vez que la fila es colocada en su nueva posición (Drag & Drop).\r\n */\r\n rowDragEndEmit(event: RowDragEvent): void {\r\n this.onRowDragEnd.emit(event);\r\n }\r\n\r\n cellContextMenu(event: CellContextMenuEvent) {\r\n this.cellContextMenuActual = event;\r\n this.onCellContextMenu.emit(event);\r\n this.leftMenu = (event.event! as PointerEvent).x.toString();\r\n this.bottomMenu = ((event.event! as PointerEvent).y - 20).toString();\r\n if (event.value !== undefined && this.showMenuDefault) this.menuTrigger?.openMenu();\r\n }\r\n\r\n rowDataChanged(event: RowDataUpdatedEvent): void {\r\n if (!this.gridApi) return;\r\n\r\n if (!this.gridApi?.getDisplayedRowCount()) return;\r\n\r\n this.onGridChange.emit([this.gridApi, event]);\r\n }\r\n\r\n selectionChanged(): void {\r\n this.selectedRows = this.gridApi?.getSelectedRows();\r\n this.onGridSelectChange.emit(this.gridApi?.getSelectedRows());\r\n }\r\n\r\n cellStopEditing(evt: CellEditingStoppedEvent) {\r\n this.onCellStopEditing.emit(evt);\r\n }\r\n\r\n async cellKeyDown(evt: CellKeyDownEvent) {\r\n this.onCellKeyDown.emit(evt);\r\n if ((evt.event as KeyboardEvent).ctrlKey && (evt.event as KeyboardEvent).key === \"ArrowDown\" && evt.node.lastChild) {\r\n this.onGridAddRow.emit(evt);\r\n } else if ((evt.event as KeyboardEvent).ctrlKey && (evt.event as KeyboardEvent).key.toLocaleLowerCase() === \"c\" && this.useGridCopy) {\r\n this.copy(evt);\r\n } else if ((evt.event as KeyboardEvent).ctrlKey && (evt.event as KeyboardEvent).key.toLocaleLowerCase() === \"v\" && this.useGridCopy) {\r\n await this.paste(evt);\r\n }\r\n }\r\n\r\n copy(evt: CellKeyDownEvent): void {\r\n if (!evt.node.isSelected()) {\r\n this.copiedCell = evt;\r\n if (evt.value instanceof Object) navigator.clipboard.writeText((evt.value as INgSelect)?.label ?? \"\");\r\n else navigator.clipboard.writeText(evt.value ?? \"\");\r\n this._messageUtilService.getAlertSuccess(\"Celda Copiada\");\r\n } else {\r\n this.copiedRow = this.gridApi.getSelectedNodes();\r\n this._messageUtilService.getAlertSuccess(\"Fila Copiada\");\r\n }\r\n this.gridApi.deselectAll();\r\n }\r\n\r\n async paste(evt: CellKeyDownEvent) {\r\n if (!evt.node.isSelected() && this.copiedCell) {\r\n if (evt.column.getColId() === this.copiedCell.column.getColId() && (evt.data as FormGroup).get(evt.column.getColId())!.enabled) {\r\n let isValid = true;\r\n if (this.validatePasteCell) isValid = await this.validatePasteCell(this.copiedCell, evt);\r\n else this.gridApi.deselectAll();\r\n this.beforePasteCell.emit([evt, this.copiedCell]);\r\n if (isValid) {\r\n (evt.data as FormGroup).get(evt.column.getColId())!.setValue(this.copiedCell.value);\r\n this.gridApi.refreshCells({\r\n columns: [evt.column],\r\n });\r\n this.afterPasteCell.emit([evt, this.copiedCell]);\r\n }\r\n }\r\n } else if (evt.node.isSelected() && this.copiedRow) {\r\n const IRowNode = this.gridApi.getSelectedNodes();\r\n let isValid = true;\r\n if (this.validatePasteRows) isValid = await this.validatePasteRows(this.copiedRow, IRowNode);\r\n else this.gridApi.deselectAll();\r\n this.beforePasteRows.emit([this.gridApi.getSelectedNodes(), this.copiedRow]);\r\n if (isValid) {\r\n let indexRowCopy = 0;\r\n IRowNode.forEach((r) => {\r\n (r.data as FormGroup).patchValue((this.copiedRow![indexRowCopy].data as FormGroup).getRawValue());\r\n this.gridApi.refreshCells({\r\n rowNodes: [r],\r\n });\r\n indexRowCopy++;\r\n if (indexRowCopy == this.copiedRow!.length) {\r\n indexRowCopy = 0;\r\n }\r\n });\r\n this.afterPasteRows.emit([this.gridApi.getSelectedNodes(), this.copiedRow]);\r\n this.gridApi.deselectAll();\r\n }\r\n }\r\n }\r\n\r\n copyMenu(event: CellContextMenuEvent) {\r\n this.onCopyMenu.emit(event);\r\n this.copy(event);\r\n }\r\n\r\n pasteMenu(event: CellContextMenuEvent) {\r\n this.onPasteMenu.emit(event);\r\n this.paste(event);\r\n }\r\n\r\n get disabledPasteMenu(): boolean {\r\n if (this.gridApi?.getSelectedRows().length == 0 && !this.copiedCell) {\r\n return true;\r\n } else if (this.gridApi?.getSelectedRows().length > 0 && !this.copiedRow) {\r\n return true;\r\n } else if (!this.copiedCell && !this.copiedRow) {\r\n return true;\r\n } else {\r\n return false;\r\n }\r\n }\r\n}\r\n\r\nexport function isObjEmpty<T>(object: T): boolean {\r\n if (object === null || object === undefined) return true;\r\n\r\n return Object.keys(object).length === 0;\r\n}\r\n","<div class=\"w-100\">\r\n <!--===========================================-->\r\n <!-- AG-GRID HEADER -->\r\n <!--===========================================-->\r\n <div\r\n class=\"row justify-content-between align-items-center my-2\"\r\n *ngIf=\"visibleSearch || btnAdd?.visible || viewChildrenButtonHeaders?.length\">\r\n <div [class]=\"fillSearch ? 'col-12 my-2' : searchClass\" *ngIf=\"visibleSearch\">\r\n <input-search (onChange)=\"changeFilter($event)\"></input-search>\r\n </div>\r\n\r\n <div\r\n [class]=\"visibleSearch ? 'col-sm-12 col-md-6 col-lg-6 col-xl-7 col-12' : 'col-12'\"\r\n class=\"sc-ag-grid-header-actions d-flex justify-content-end\"\r\n *ngIf=\"btnAdd?.visible || viewChildrenButtonHeaders?.length || configButtonsAction?.header || configHeader != null\">\r\n <!-- Header actions buttons -->\r\n <ng-container *ngIf=\"configButtonsAction && configHeader\">\r\n <ng-container *ngIf=\"configHeader.disabled === false; else templateAction\">\r\n <ng-container [ngTemplateOutlet]=\"tempActions\"></ng-container>\r\n </ng-container>\r\n\r\n <ng-template #templateAction>\r\n <ng-container *ngIf=\"selectedRows.length === 0; else tempActions\">\r\n <button class=\"btn-icon btn-width btn btn-primary btn-sm\" disabled>\r\n Acciones\r\n <em class=\"fa fa-chevron-down\"></em>\r\n </button>\r\n </ng-container>\r\n </ng-template>\r\n\r\n <ng-template #tempActions>\r\n <button *ngIf=\"hideHeaderMenuAction(); else templateHeaderAction\" class=\"btn-icon btn-width btn btn-primary btn-sm\">\r\n Acciones\r\n <em class=\"fa fa-chevron-down\"></em>\r\n </button>\r\n\r\n <ng-template #templateHeaderAction>\r\n <button type=\"button\" class=\"btn-icon btn-width btn btn-primary btn-sm\" [matMenuTriggerFor]=\"panel.menu\">\r\n Acciones\r\n <em class=\"fa fa-chevron-down\"></em>\r\n </button>\r\n\r\n <sc-menu-panel #panel class=\"d-none\" [subMenus]=\"configHeader.submenu ?? []\"></sc-menu-panel>\r\n </ng-template>\r\n </ng-template>\r\n </ng-container>\r\n <!-- End header actions buttons -->\r\n\r\n <!-- Other buttons -->\r\n <ng-container *ngIf=\"viewChildrenButtonHeaders?.length\">\r\n <ng-container\r\n *ngFor=\"let viewChildrenButtonHeader of viewChildrenButtonHeaders\"\r\n [ngTemplateOutlet]=\"viewChildrenButtonHeader.template\">\r\n </ng-container>\r\n </ng-container>\r\n <!--End other buttons -->\r\n\r\n <!-- Add button -->\r\n <ng-container *ngIf=\"btnAdd?.visible\">\r\n <button\r\n type=\"button\"\r\n class=\"btn-width btn btn-warning btn-sm\"\r\n (click)=\"onAddRowEmit()\"\r\n #buttonAdd\r\n [disabled]=\"btnAdd.disabled ?? false\">\r\n Agregar\r\n </button>\r\n </ng-container>\r\n <!--End add button -->\r\n </div>\r\n </div>\r\n <!--===========================================-->\r\n <!-- AG-GRID HEADER END -->\r\n <!--===========================================-->\r\n\r\n <div class=\"row\">\r\n <div class=\"col-12\" [ngStyle]=\"ngStyleContainer\">\r\n <ag-grid-angular\r\n #agGrid\r\n class=\"ag-theme-balham\"\r\n [ngStyle]=\"ngStyleAgGrid\"\r\n [columnDefs]=\"columnDefsAndAddCellActions\"\r\n [defaultColDef]=\"defaultColDef\"\r\n [components]=\"_frameworkComponents\"\r\n [context]=\"_context\"\r\n [rowSelection]=\"rowSelection\"\r\n [isRowSelectable]=\"isRowSelectable\"\r\n [rowDragManaged]=\"rowDragManaged\"\r\n [domLayout]=\"domLayout\"\r\n [animateRows]=\"animateRows\"\r\n [getRowStyle]=\"getRowStyle\"\r\n [enableRangeSelection]=\"enableRangeSelection\"\r\n [suppressRowTransform]=\"suppressRowTransform\"\r\n [suppressMoveWhenRowDragging]=\"animateRows\"\r\n [overlayNoRowsTemplate]=\"overlayNoRowsTemplate\"\r\n [overlayLoadingTemplate]=\"overlayLoadingTemplate\"\r\n [noRowsOverlayComponentParams]=\"noRowsOverlayComponentParams\"\r\n [suppressRowClickSelection]=\"suppressRowClickSelection\"\r\n [suppressDragLeaveHidesColumns]=\"suppressDragLeaveHidesColumns\"\r\n [suppressScrollOnNewData]=\"suppressScrollOnNewData\"\r\n [suppressPropertyNamesCheck]=\"true\"\r\n [paginationPageSize]=\"pagination ? paginationPageSize : undefined\"\r\n [pagination]=\"pagination\"\r\n [suppressPaginationPanel]=\"suppressPaginationPanel\"\r\n (rowClicked)=\"rowClicked.emit($event)\"\r\n (rowDoubleClicked)=\"rowDoubleClicked.emit($event)\"\r\n (rowSelected)=\"onRowSelected.emit($event)\"\r\n (paginationChanged)=\"paginationChanged()\"\r\n (gridReady)=\"gridReady($event)\"\r\n (rowDragEnd)=\"rowDragEndEmit($event)\"\r\n (cellContextMenu)=\"cellContextMenu($event)\"\r\n [enableCellTextSelection]=\"enableCellTextSelection\"\r\n (rowDataUpdated)=\"rowDataChanged($event)\"\r\n (rowEditingStarted)=\"onRowEditingStarted.emit($event)\"\r\n (cellValueChanged)=\"cellValueChanged.emit($event)\"\r\n (selectionChanged)=\"selectionChanged()\"\r\n (cellEditingStopped)=\"cellStopEditing($event)\"\r\n (cellKeyDown)=\"cellKeyDown($any($event))\"\r\n [multiSortKey]=\"multiSortKey\"\r\n oncontextmenu=\"return false;\">\r\n </ag-grid-angular>\r\n </div>\r\n </div>\r\n\r\n <!--===========================================-->\r\n <!-- AG-GRID PAGINATION -->\r\n <!--===========================================-->\r\n <div class=\"row\" *ngIf=\"pagination\">\r\n <div class=\"col-12\">\r\n <sc-ag-grid-pagination\r\n #scAgGridPagination\r\n [gridApi]=\"gridApi\"\r\n [paginationPageSize]=\"paginationPageSize\"\r\n [pageSizeOptions]=\"pageSizeOptions\"></sc-ag-grid-pagination>\r\n </div>\r\n </div>\r\n <!--===========================================-->\r\n <!-- AG-GRID PAGINATION END -->\r\n <!--===========================================-->\r\n</div>\r\n\r\n<div\r\n *ngIf=\"showMenuDefault\"\r\n oncontextmenu=\"return false;\"\r\n style=\"position: fixed; width: 0px; height: 0px\"\r\n [ngStyle]=\"{ top: bottomMenu + 'px', left: leftMenu + 'px' }\">\r\n <mat-menu oncontextmenu=\"return false;\" #scMenu=\"matMenu\">\r\n <button oncontextmenu=\"return false;\" (click)=\"copyMenu(cellContextMenuActual!)\" mat-menu-item>\r\n <mat-icon>content_copy</mat-icon> <span>Copiar</span>\r\n </button>\r\n <button [disabled]=\"disabledPasteMenu\" oncontextmenu=\"return false;\" (click)=\"pasteMenu(cellContextMenuActual!)\" mat-menu-item>\r\n <mat-icon>content_paste</mat-icon><span>Pegar</span>\r\n </button>\r\n </mat-menu>\r\n <button oncontextmenu=\"return false;\" style=\"visibility: hidden\" mat-button [matMenuTriggerFor]=\"scMenu\" #menuTrigger=\"matMenuTrigger\">\r\n Menu\r\n </button>\r\n</div>\r\n","import { CommonModule } from '@angular/common';\r\nimport { NgModule } from '@angular/core';\r\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\r\nimport { MatCheckboxModule } from '@angular/material/checkbox';\r\nimport { MatDialogModule } from '@angular/material/dialog';\r\nimport { MatIconModule } from '@angular/material/icon';\r\nimport { MatMenuModule } from '@angular/material/menu';\r\nimport { MatProgressBarModule } from '@angular/material/progress-bar';\r\nimport { MatSlideToggleModule } from '@angular/material/slide-toggle';\r\nimport { MatTooltipModule } from '@angular/material/tooltip';\r\nimport { AgGridModule } from 'ag-grid-angular';\r\nimport { NgSelectSimpleModule } from '../ng-select-simple/ng-select-simple.module';\r\nimport { ContainerSharedComponent } from './cell-editors/container-shared/container-shared.component';\r\nimport { ScAgGridButtonHeader } from './directives/scAgGrid.directive';\r\nimport { ScAgGridCustomizableComponent } from './sc-ag-grid-customizable/sc-ag-grid-customizable.component';\r\nimport { NoRowsOverlayDefaultComponent } from './cell-render/no-rows-overlay/noRowsOverlayDefault.component';\r\nimport { NoRowsOverlayCustomComponent } from './cell-render/no-rows-overlay/noRowsOverlayCustom.component';\r\nimport { scCellRendererComponents } from './cell-render/sc-cell-render-config';\r\nimport { InputTextModule } from '../input-text/input-text.module';\r\nimport { InputNumberModule } from '../input-number/input-number.module';\r\nimport { DatePickerModule } from '../date-picker/date-picker.module';\r\nimport { DateTimePickerEditableModule } from '../date-time-picker-editable/date-time-picker-editable.module';\r\nimport { ScAgGridPaginationModule } from './sc-ag-grid-pagination/sc-ag-grid-pagination.module';\r\nimport { InputSearchModule } from './input-search/input-search.module';\r\n\r\n@NgModule({\r\n declarations: [\r\n ScAgGridCustomizableComponent,\r\n ContainerSharedComponent,\r\n NoRowsOverlayDefaultComponent,\r\n NoRowsOverlayCustomComponent,\r\n // Cell Renders\r\n ...scCellRendererComponents,\r\n\r\n //Directives\r\n ScAgGridButtonHeader,\r\n ],\r\n imports: [\r\n CommonModule,\r\n FormsModule,\r\n ReactiveFormsModule,\r\n AgGridModule,\r\n MatMenuModule,\r\n MatIconModule,\r\n MatDialogModule,\r\n MatTooltipModule,\r\n MatCheckboxModule,\r\n MatSlideToggleModule,\r\n MatProgressBarModule,\r\n NgSelectSimpleModule,\r\n InputTextModule,\r\n InputNumberModule,\r\n DatePickerModule,\r\n DateTimePickerEditableModule,\r\n ScAgGridPaginationModule,\r\n InputSearchModule,\r\n ],\r\n exports: [\r\n ScAgGridCustomizableComponent,\r\n ContainerSharedComponent,\r\n //Directives\r\n ScAgGridButtonHeader,\r\n ],\r\n})\r\nexport class ScAgGridModule { }\r\n","export type JustyfyContent = 'start' | 'end' | 'center' | 'between' | 'around';\r\nexport type AlignItems = 'start' | 'end' | 'center' | 'baseline' | 'stretch';\r\n\r\nexport function setClassFlex(\r\n justifyContent: JustyfyContent,\r\n alignItems: AlignItems\r\n) {\r\n return `d-flex justify-content-${justifyContent} align-items-${alignItems}`;\r\n}\r\n\r\nexport function bodyContentCenter(): string {\r\n return setClassFlex('center', 'center');\r\n}\r\n\r\nexport function bodyContentRight(): string {\r\n return setClassFlex('end', 'center');\r\n}\r\n","import { Directionality } from \"@angular/cdk/bidi\";\r\nimport { CdkStepper } from \"@angular/cdk/stepper\";\r\nimport {\r\n ChangeDetectionStrategy,\r\n ChangeDetectorRef,\r\n Component,\r\n ElementRef,\r\n EventEmitter,\r\n Input,\r\n Optional,\r\n Output,\r\n SimpleChanges,\r\n ViewChild,\r\n} from \"@angular/core\";\r\n\r\nexport type LabelType = {\r\n id?: number;\r\n title: string;\r\n subtitle?: string;\r\n subtitleStyleActive?: { [klass: string]: any } | null;\r\n subtitleClassActive?: string | string[] | Set<string> | { [klass: string]: any };\r\n disabled?: boolean;\r\n visibility?: boolean;\r\n icon?: string\r\n};\r\n\r\n@Component({\r\n selector: \"sc-wizard\",\r\n templateUrl: \"./sc-wizard.component.html\",\r\n styleUrls: [\"./sc-wizard.component.scss\"],\r\n providers: [{ provide: CdkStepper, useExisting: ScWizardComponent }],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class ScWizardComponent extends CdkStepper {\r\n _isStepSet = false;\r\n\r\n @ViewChild(\"scWizardContainer\") private readonly _scWizardContainer!: ElementRef<HTMLDivElement>;\r\n @Output() clickStepEmit = new EventEmitter<number>();\r\n @Input() hasAutoFillSteps = true;\r\n @Input() hasSkeleton = false;\r\n @Input() showArrows = true;\r\n @Input() subWizard = false;\r\n @Input() baseSubWizard = 1;\r\n @Input() showExpanded = false;\r\n\tisExpanded = false;\r\n\r\n @Input() stepNavigationHandler: ((stepNumber: number, cdkStepper: CdkStepper) => void) | null = null;\r\n // @Input() hasAutoScrolling = false;\r\n constructor(\r\n @Optional() dir: Directionality,\r\n private changeDetectorRef: ChangeDetectorRef,\r\n elementRef: ElementRef<HTMLElement>\r\n ) {\r\n super(dir, changeDetectorRef, elementRef);\r\n }\r\n\r\n convertLabelToType(label: string): LabelType {\r\n try {\r\n return JSON.parse(label) as LabelType;\r\n } catch {\r\n return {\r\n title: label,\r\n };\r\n }\r\n }\r\n\r\n goTo = (stepToMove: number) => {\r\n if (this.stepNavigationHandler) {\r\n return this.stepNavigationHandler(stepToMove, this);\r\n }\r\n super.selectedIndex = stepToMove;\r\n };\r\n\r\n\tngOnChanges(changes: SimpleChanges): void {\r\n\t\tif (changes['orientation'] && changes['orientation'].currentValue === 'horizontal') {\r\n\t\t\tthis.isExpanded = false;\r\n\t\t}\r\n\t}\r\n}\r\n","<div \r\n [class.sc-wizard-horizontal]=\"this.orientation === 'horizontal'\"\r\n [class.sc-wizard-vertical]=\"this.orientation === 'vertical'\" \r\n [class.sc-wizard-vertical-nav]=\"this.orientation === 'vertical' && isExpanded\">\r\n <div \r\n [class]=\"'sc-wizard-' + orientation + (isExpanded ? '-nav' : '') + '-steps-container'\"\r\n [ngStyle]=\"{ display: 'grid', 'margin-right': '0px' }\">\r\n <!--PREVIOUS STEP BUTTON-->\r\n <button\r\n *ngIf=\"showArrows\"\r\n [disabled]=\"this.selectedIndex === 0\"\r\n [class.sc-wizard-skeleton]=\"hasSkeleton\"\r\n [class]=\"'sc-wizard-' + orientation + '-button prev'\"\r\n type=\"button\"\r\n mat-icon-button\r\n cdkStepperPrevious>\r\n <mat-icon>{{ orientation === \"horizontal\" ? \"chevron_left\" : \"expand_less\" }}</mat-icon>\r\n </button>\r\n\r\n <ng-container *ngIf=\"this.orientation === 'horizontal'\">\r\n <ng-container *ngIf=\"hasAutoFillSteps\">\r\n <div class=\"sc-wizard-horizontal-steps sc-wizard-horizontal-steps-fill\">\r\n <ng-container [ngTemplateOutlet]=\"templateSteps\"></ng-container>\r\n </div>\r\n </ng-container>\r\n\r\n <ng-container *ngIf=\"!hasAutoFillSteps\">\r\n <div class=\"sc-wizard-horizontal-steps\">\r\n <div class=\"sc-wizard-horizontal-steps-wrapper\" [style.width]=\"24 * steps.length + 'rem'\">\r\n <ng-container [ngTemplateOutlet]=\"templateSteps\"></ng-container>\r\n </div>\r\n </div>\r\n </ng-container>\r\n </ng-container>\r\n\r\n <ng-container *ngIf=\"this.orientation === 'vertical'\">\r\n <div style=\"display: flex; justify-content: space-between;\">\r\n <div class=\"sc-wizard-steps sc-wizard-vertical-steps\">\r\n <ng-container [ngTemplateOutlet]=\"templateSteps\"></ng-container>\r\n </div>\r\n <div class=\"sc-wizard-expand-icon-container\">\r\n <ng-container *ngIf=\"showExpanded\">\r\n <em class=\"z-3 fa\" [ngClass]=\"{ 'fa-chevron-right': isExpanded, 'fa-chevron-left': !isExpanded }\" style=\"cursor: pointer; font-size: 18px\" (click)=\"this.isExpanded = !this.isExpanded\"> </em>\r\n </ng-container>\r\n </div>\r\n </div>\r\n </ng-container>\r\n\r\n <!--NEXT STEP BUTTON-->\r\n <button\r\n *ngIf=\"showArrows\"\r\n [disabled]=\"this.steps.length - 1 === this.selectedIndex\"\r\n [class.sc-wizard-skeleton]=\"hasSkeleton\"\r\n [class]=\"'sc-wizard-' + orientation + '-button next'\"\r\n type=\"button\"\r\n mat-icon-button\r\n cdkStepperNext>\r\n <mat-icon>{{ orientation === \"horizontal\" ? \"navigate_next\" : \"expand_more\" }}</mat-icon>\r\n </button>\r\n </div>\r\n\r\n <div #scWizardContainer [class.sc-wizard-skeleton]=\"hasSkeleton\" [class]=\"'sc-wizard-' + orientation + '-content'\">\r\n <ng-container [ngTemplateOutlet]=\"selected ? selected.content : null\"></ng-container>\r\n </div>\r\n</div>\r\n\r\n<ng-template #templateSteps>\r\n\t<div\r\n\t\t*ngFor=\"let step of steps; let i = index\"\r\n\t\t[class.invisible]=\"step.content.elementRef.nativeElement.parentNode.className === 'invisible'\"\r\n\t\t[tabIndex]=\"selectedIndex === i ? 1 : -1\"\r\n\t\t[attr.data-position]=\"i\"\r\n\t\t[class.sc-wizard-steps-item-active]=\"selectedIndex === i && !step.hasError\"\r\n\t\t[class.sc-wizard-steps-item-error]=\"selectedIndex === i && step.hasError\"\r\n\t\t[class.sc-wizard-steps-item-disable]=\"!step.editable || convertLabelToType(step.label)!.disabled\"\r\n\t\tclass=\"sc-wizard-steps-item\"\r\n\t\t[class.sc-wizard-skeleton]=\"hasSkeleton\"\r\n\t\t(click)=\"goTo(i); clickStepEmit.emit(i)\">\r\n\t\t<span\r\n [matTooltipClass]=\"showExpanded && isExpanded && step.hasError ? 'custom-mat-tooltip-error' : 'custom-mat-tooltip-active'\"\r\n [matTooltip]=\"isExpanded ? convertLabelToType(step.label)!.title : ''\"\r\n\t\t\tclass=\"sc-wizard-steps-item-number d-flex justify-content-center align-items-center\"\r\n\t\t\t[class.sc-wizard-steps-item-number-active]=\"selectedIndex === i\"\r\n\t\t\t[class.sc-wizard-steps-item-number-error]=\"step.hasError\">\r\n <ng-container *ngIf=\"!step.hasError && convertLabelToType(step.label).icon\">\r\n\t\t\t\t<em [class]=\"convertLabelToType(step.label).icon\"></em>\r\n\t\t\t</ng-container>\r\n <ng-container *ngIf=\"!step.hasError && !convertLabelToType(step.label).icon\">\r\n\t\t\t\t{{ subWizard ? baseSubWizard + '.' + (i + 1) : i + 1 }}\r\n\t\t\t</ng-container>\r\n\t\t\t<ng-container *ngIf=\"step.hasError\">\r\n\t\t\t\t<em class=\"fa fa-exclamation-triangle\"></em>\r\n\t\t\t</ng-container>\r\n\t\t</span>\r\n\r\n\t\t<div\r\n *ngIf=\"!isExpanded\"\r\n\t\t\tclass=\"sc-wizard-steps-item-label\"\r\n\t\t\t[class.sc-wizard-steps-item-label-error]=\"step.hasError\">\r\n\t\t\t<p\r\n\t\t\t\tclass=\"sc-wizard-steps-item-label-title\"\r\n\t\t\t\t[class.sc-wizard-steps-item-label-title-active]=\"selectedIndex === i\"\r\n\t\t\t\t[class.sc-wizard-steps-item-label-title-error]=\"step.hasError\">\r\n\t\t\t\t{{ convertLabelToType(step.label).title }}\r\n\t\t\t</p>\r\n\t\t\t<span\r\n\t\t\t\tclass=\"sc-wizard-steps-item-label-subtitle\"\r\n\t\t\t\t[ngStyle]=\"selectedIndex === i ? convertLabelToType(step.label).subtitleStyleActive! : null\"\r\n\t\t\t\t[ngClass]=\"selectedIndex === i ? convertLabelToType(step.label).subtitleClassActive! : []\"\r\n\t\t\t\t[class.sc-wizard-steps-item-label-subtitle-error]=\"step.hasError\">\r\n\t\t\t\t<ng-container *ngIf=\"!step.hasError && convertLabelToType(step.label)?.subtitle\">\r\n\t\t\t\t\t{{ convertLabelToType(step.label).subtitle }}\r\n\t\t\t\t</ng-container>\r\n\t\t\t\t<ng-container *ngIf=\"step.hasError\">\r\n\t\t\t\t\t{{ step.errorMessage }}\r\n\t\t\t\t</ng-container>\r\n\t\t\t</span>\r\n\t\t</div>\r\n\t</div>\r\n</ng-template>","import { CommonModule } from '@angular/common';\r\nimport { NgModule } from '@angular/core';\r\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\r\nimport { ScWizardComponent } from './sc-wizard.component';\r\n\r\nimport { CdkStepperModule } from '@angular/cdk/stepper';\r\nimport { MatButtonModule } from '@angular/material/button';\r\nimport { MatIconModule } from '@angular/material/icon';\r\nimport { MatTooltipModule } from '@angular/material/tooltip';\r\n\r\n@NgModule({\r\n\timports: [\r\n\t\tCommonModule,\r\n\t\tFormsModule,\r\n\t\tReactiveFormsModule,\r\n\t\tCdkStepperModule,\r\n\t\tMatButtonModule,\r\n\t\tMatIconModule,\r\n\t\tMatTooltipModule\r\n\t],\r\n\texports: [ScWizardComponent, CdkStepperModule],\r\n\tdeclarations: [ScWizardComponent],\r\n\tproviders: [],\r\n})\r\nexport class ScWizardModule {}\r\n","import { Inject, Injectable } from \"@angular/core\";\r\n\r\n@Injectable()\r\nexport class TextAreaService {\r\n\r\n constructor(\r\n @Inject('TEXT_AREA_FORMAT') private format: string = 'M',\r\n @Inject('TEXT_AREA_SHOW_LABEL') private showLabel: boolean = true,\r\n @Inject('TEXT_AREA_VALIDATOR_MESSAGE') private validatorMessage: boolean = false,\r\n @Inject('TEXT_AREA_TOOLTIP_MESSAGE') private tooltipMessage: boolean = true,\r\n @Inject('TEXT_AREA_SUBMITTED') private submitted: boolean = true,\r\n @Inject('TEXT_AREA_VALIDATOR_ALERT') private validatorAlert: boolean = false\r\n ) {\r\n }\r\n\r\n public getFormat(): string {\r\n return this.format;\r\n }\r\n public getShowLabel(): boolean {\r\n return this.showLabel;\r\n }\r\n public getValidatorMessage(): boolean {\r\n return this.validatorMessage;\r\n }\r\n public getTooltipMessage(): boolean {\r\n return this.tooltipMessage;\r\n }\r\n public getSubmitted(): boolean {\r\n return this.submitted;\r\n }\r\n public getValidatorAlert(): boolean {\r\n return this.validatorAlert;\r\n }\r\n \r\n \r\n}","import {\r\n AfterViewInit,\r\n Component,\r\n ElementRef,\r\n EventEmitter,\r\n Input,\r\n OnChanges,\r\n OnInit,\r\n Output,\r\n Renderer2,\r\n SimpleChanges,\r\n ViewChild,\r\n forwardRef,\r\n} from \"@angular/core\";\r\nimport { AbstractControl, ControlValueAccessor, NG_VALIDATORS, NG_VALUE_ACCESSOR, ValidationErrors } from \"@angular/forms\";\r\nimport { TextAreaService } from \"./text-area.service\";\r\nimport { MessageUtilService } from \"../utils/message-util.service\";\r\nimport { SharedComponentsUtil } from \"../utils/SharedComponentsUtil\";\r\n\r\n@Component({\r\n selector: \"text-area\",\r\n templateUrl: \"./text-area.component.html\",\r\n styleUrls: [\"./text-area.component.scss\"],\r\n providers: [\r\n {\r\n provide: NG_VALUE_ACCESSOR,\r\n useExisting: forwardRef(() => TextAreaComponent),\r\n multi: true,\r\n },\r\n {\r\n provide: NG_VALIDATORS,\r\n useExisting: forwardRef(() => TextAreaComponent),\r\n multi: true,\r\n },\r\n ],\r\n})\r\nexport class TextAreaComponent implements OnInit, OnChanges, AfterViewInit, ControlValueAccessor {\r\n /**\r\n * @description Formato del texto (M: mayúsculas, m: minúsculas)\r\n * @default \"M\"\r\n * @type string\r\n */\r\n @Input() format: string = \"M\";\r\n \r\n /**\r\n * @description Controla la visualización del texto superior\r\n * @default true\r\n * @type boolean\r\n */\r\n @Input() showLabel: boolean = true;\r\n \r\n /**\r\n * @description Texto a mostrar como etiqueta del campo\r\n * @default null\r\n * @type any\r\n */\r\n @Input() label: any = null;\r\n \r\n /**\r\n * @description Longitud máxima del texto\r\n * @default null\r\n * @type number | null\r\n */\r\n @Input() maxLength = null;\r\n \r\n /**\r\n * @description Establece el control como solo lectura\r\n * @default false\r\n * @type boolean\r\n */\r\n @Input() readonly: boolean = false;\r\n \r\n /**\r\n * @description Referencia al siguiente control para navegación\r\n * @default undefined\r\n * @type any\r\n */\r\n @Input() next: any;\r\n \r\n /**\r\n * @description Referencia al control alternativo cuando el siguiente está deshabilitado\r\n * @default undefined\r\n * @type any\r\n */\r\n @Input() nextIsDisable: any;\r\n \r\n /**\r\n * @description Referencia al control anterior para navegación\r\n * @default undefined\r\n * @type any\r\n */\r\n @Input() back: any;\r\n \r\n /**\r\n * @description Referencia al control alternativo cuando el anterior está deshabilitado\r\n * @default undefined\r\n * @type any\r\n */\r\n @Input() backIsDisable: any;\r\n \r\n /**\r\n * @description Indica si el campo es obligatorio\r\n * @default false\r\n * @type boolean\r\n */\r\n @Input() required: boolean = false;\r\n \r\n /**\r\n * @description Muestra mensajes de validación\r\n * @default false\r\n * @type boolean\r\n */\r\n @Input() validatorMessage: boolean = false;\r\n \r\n /**\r\n * @description Muestra alertas de validación\r\n * @default false\r\n * @type boolean\r\n */\r\n @Input() validatorAlert: boolean = false;\r\n \r\n /**\r\n * @description Muestra mensajes de ayuda como tooltips\r\n * @default true\r\n * @type boolean\r\n */\r\n @Input() tooltipMessage: boolean = true;\r\n \r\n /**\r\n * @description Indica si el formulario ha sido enviado para mostrar validaciones\r\n * @default true\r\n * @type boolean\r\n */\r\n @Input() submitted: boolean = true;\r\n \r\n /**\r\n * @description Número de columnas del textarea\r\n * @default null\r\n * @type number | any\r\n */\r\n @Input() cols: number | any = null;\r\n \r\n /**\r\n * @description Número de filas del textarea\r\n * @default null\r\n * @type number | any\r\n */\r\n @Input() rows: number | any = null;\r\n \r\n /**\r\n * @description Altura del textarea\r\n * @default \"\"\r\n * @type string\r\n */\r\n @Input() height: string = \"\";\r\n \r\n /**\r\n * @description Ancho del textarea\r\n * @default \"\"\r\n * @type string\r\n */\r\n @Input() width: string = \"\";\r\n \r\n /**\r\n * @description Deshabilita el control\r\n * @default false\r\n * @type boolean\r\n */\r\n @Input() disabled: boolean = false;\r\n \r\n /**\r\n * @description Texto de marcador de posición\r\n * @default \"\"\r\n * @type string\r\n */\r\n @Input() placeholder: string = \"\";\r\n \r\n /**\r\n * @description Habilita información adicional para la etiqueta\r\n * @default false\r\n * @type boolean\r\n */\r\n @Input() labelInfo: boolean = false;\r\n \r\n /**\r\n * @description Texto informativo adicional para la etiqueta\r\n * @default \"\"\r\n * @type string\r\n */\r\n @Input() textLabelInfo: string = \"\";\r\n @Output() change: EventEmitter<any> = new EventEmitter();\r\n @Output() onchange: EventEmitter<any> = new EventEmitter();\r\n @Output() blur: EventEmitter<any> = new EventEmitter();\r\n @Output() onfocus: EventEmitter<any> = new EventEmitter();\r\n @Output() onNext: EventEmitter<any> = new EventEmitter();\r\n @Output() onBack: EventEmitter<any> = new EventEmitter();\r\n @ViewChild(\"textArea\") textArea!: ElementRef<HTMLTextAreaElement>;\r\n controls: any;\r\n value: any;\r\n sharedComponentsUtil = new SharedComponentsUtil();\r\n _initValue = false;\r\n\r\n constructor(\r\n private messageUtilService: MessageUtilService,\r\n private textAreaService: TextAreaService,\r\n private _render: Renderer2\r\n ) {\r\n this.format = this.textAreaService.getFormat();\r\n this.showLabel = this.textAreaService.getShowLabel();\r\n this.validatorMessage = this.textAreaService.getValidatorMessage();\r\n this.tooltipMessage = this.textAreaService.getTooltipMessage();\r\n this.submitted = this.textAreaService.getSubmitted();\r\n this.validatorAlert = this.textAreaService.getValidatorAlert();\r\n }\r\n\r\n ngOnChanges(changes: SimpleChanges): void {\r\n if (changes[\"submitted\"]) {\r\n if (this.controls !== undefined && changes[\"submitted\"].currentValue) {\r\n this.controls.markAsDirty();\r\n this.controls.markAsTouched();\r\n }\r\n }\r\n }\r\n\r\n ngOnInit() {}\r\n\r\n ngAfterViewInit(): void {}\r\n\r\n onChange = (_: any) => {};\r\n onValidationChange = () => {};\r\n onTouch = () => {};\r\n focus = () => {\r\n this.textArea.nativeElement.focus();\r\n this.textArea.nativeElement.select();\r\n };\r\n\r\n onBlur(value: string): void {\r\n // this.value = this.formatInput(value);\r\n this.onTouch();\r\n // this.onValidationChange();\r\n // this.onChange(this.value);\r\n this.blur.emit(this.formatInput(value));\r\n }\r\n\r\n onFocus(evt: any) {\r\n this.textArea.nativeElement.select();\r\n this.onfocus.emit(evt);\r\n }\r\n\r\n onInput(evt: any) {\r\n const value = this.formatInput(evt);\r\n this.onTouch();\r\n this.onChange(value);\r\n this.onValidationChange();\r\n this.change.emit(value);\r\n this.onchange.emit(value);\r\n }\r\n\r\n writeValue(value: any): void {\r\n if (value) {\r\n this.value = this.formatInput(value);\r\n // this.onChange(this.value);\r\n if (this.controls) {\r\n this._render.setProperty(this.controls, \"value\", this.value);\r\n }\r\n } else {\r\n this.value = null;\r\n }\r\n }\r\n registerOnChange(fn: any): void {\r\n this.onChange = fn;\r\n }\r\n registerOnTouched(fn: any): void {\r\n this.onTouch = fn;\r\n }\r\n setDisabledState(isDisabled: boolean): void {\r\n this.disabled = isDisabled;\r\n }\r\n\r\n validate(control: AbstractControl): ValidationErrors | any {\r\n this.controls = control;\r\n\r\n if (!this._initValue) {\r\n if (this.value) {\r\n this._render.setProperty(this.controls, \"value\", this.value);\r\n }\r\n this._initValue = true;\r\n }\r\n return null;\r\n }\r\n\r\n registerOnValidatorChange?(fn: () => void): void {\r\n this.onValidationChange = fn;\r\n }\r\n\r\n formatInput(value: any) {\r\n if (value !== null && value.toString().trim() !== \"\") {\r\n const newValue = value.toString().trim();\r\n\r\n if (this.format === \"M\") return newValue.toUpperCase();\r\n if (this.format === \"m\") return newValue.toLowerCase();\r\n }\r\n\r\n return value;\r\n }\r\n\r\n ArrowRight(e: any) {\r\n if (!this.disabled) {\r\n let validator = this.sharedComponentsUtil.stopByValidator(this.controls, this.validatorAlert, this.label);\r\n if (validator.error) {\r\n this.messageUtilService.getMessageError(\"000046\", \"Error\", validator.message);\r\n return;\r\n }\r\n }\r\n if (this.next != undefined) {\r\n if (this.next.disabled || this.next.readonly) {\r\n if (this.nextIsDisable != undefined) {\r\n this.nextIsDisable.focus();\r\n }\r\n } else {\r\n this.next.focus();\r\n }\r\n } else {\r\n if (this.nextIsDisable != undefined) {\r\n this.nextIsDisable.focus();\r\n } else {\r\n this.onNext.emit();\r\n }\r\n }\r\n }\r\n\r\n ArrowLeft(e: any) {\r\n if (!this.disabled) {\r\n let validator = this.sharedComponentsUtil.stopByValidator(this.controls, this.validatorAlert, this.label);\r\n if (validator.error) {\r\n this.messageUtilService.getMessageError(\"000046\", \"Error\", validator.message);\r\n return;\r\n }\r\n }\r\n if (this.back != undefined) {\r\n if (this.back.disabled || this.back.readonly) {\r\n if (this.backIsDisable != undefined) {\r\n this.backIsDisable.focus();\r\n }\r\n } else {\r\n this.back.focus();\r\n }\r\n } else {\r\n if (this.backIsDisable != undefined) {\r\n this.backIsDisable.focus();\r\n } else {\r\n this.onBack.emit();\r\n }\r\n }\r\n }\r\n}\r\n","<label *ngIf=\"label != null && label != '' && showLabel\" class=\"d-flex sumax-label mb-0 p-0\"\r\n ><span [title]=\"label\" style=\"white-space: nowrap; overflow: hidden; text-overflow: ellipsis\">{{ label }}</span>\r\n <span *ngIf=\"required\" class=\"ml-1\" [class.text-danger]=\"controls?.errors != null\"> *</span>\r\n <span *ngIf=\"labelInfo\">\r\n <i class=\"fa fa-exclamation-circle text-info ms-2\" [matTooltip]=\"textLabelInfo\" matTooltipClass=\"bg-info\"></i>\r\n </span>\r\n</label>\r\n<div\r\n [class.input-icon]=\"controls?.errors != null && (controls?.dirty || controls?.touched) && submitted\"\r\n [class.right]=\"controls?.errors != null && (controls?.dirty || controls?.touched) && submitted\">\r\n <!-- tooltip-message es el icono de error -->\r\n <tooltip-message\r\n [label]=\"label\"\r\n [controls]=\"controls\"\r\n [validatorMessage]=\"validatorMessage\"\r\n [tooltipMessage]=\"tooltipMessage\"\r\n [submitted]=\"submitted\"></tooltip-message>\r\n\r\n <textarea\r\n #textArea\r\n class=\"form-control\"\r\n [class.text-uppercase]=\"format === 'M'\"\r\n [class.text-lowercase]=\"format === 'm'\"\r\n [placeholder]=\"placeholder\"\r\n [class.is-invalid]=\"controls?.errors != null && (controls?.dirty || controls?.touched) && submitted\"\r\n [(ngModel)]=\"value\"\r\n [readonly]=\"disabled || readonly\"\r\n (blur)=\"onBlur($any($event.target).value)\"\r\n (input)=\"onInput($any($event.target).value)\"\r\n (focus)=\"onFocus($any($event.target).value)\"\r\n (keydown.control.arrowleft)=\"ArrowLeft($event)\"\r\n [rows]=\"rows\"\r\n [cols]=\"cols\"\r\n [ngStyle]=\"{ height: height, width: width }\"\r\n (keydown.control.arrowright)=\"ArrowRight($event)\"></textarea>\r\n</div>\r\n\r\n<!-- error-message es el mansaje que aparece abajo del componente -->\r\n<error-message\r\n [label]=\"label\"\r\n [controls]=\"controls\"\r\n [validatorMessage]=\"validatorMessage\"\r\n [tooltipMessage]=\"tooltipMessage\"\r\n [submitted]=\"submitted\"></error-message>\r\n","export class TextArea {\r\n format?: string;\r\n showLabel?: boolean;\r\n validatorMessage?: boolean;\r\n tooltipMessage?: boolean;\r\n submitted?: boolean;\r\n validatorAlert?: boolean;\r\n }\r\n ","import { CommonModule } from '@angular/common';\r\nimport { ModuleWithProviders, NgModule } from '@angular/core';\r\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\r\nimport { MatTooltipModule } from '@angular/material/tooltip';\r\nimport { RouterModule } from '@angular/router';\r\nimport { ErrorMessageModule } from '../error-message/error-message.module';\r\nimport { TooltipMessageModule } from '../tooltip-message/tooltip-message.module';\r\nimport { TextAreaService } from './text-area.service';\r\nimport { TextAreaComponent } from './text-area.component';\r\nimport { TextArea } from './text-area';\r\n\r\n\r\n@NgModule({\r\n declarations: [TextAreaComponent],\r\n imports: [\r\n CommonModule,\r\n RouterModule,\r\n FormsModule,\r\n ReactiveFormsModule,\r\n ErrorMessageModule,\r\n TooltipMessageModule,\r\n MatTooltipModule\r\n ],\r\n exports: [TextAreaComponent],\r\n providers: []\r\n})\r\nexport class TextAreaModule {\r\n static forRoot(textArea: TextArea = new TextArea()): ModuleWithProviders<TextAreaModule> {\r\n return {\r\n ngModule: TextAreaModule,\r\n providers: [\r\n { provide: 'TEXT_AREA_FORMAT', useValue: textArea.format },\r\n { provide: 'TEXT_AREA_SHOW_LABEL', useValue: textArea.showLabel },\r\n { provide: 'TEXT_AREA_VALIDATOR_MESSAGE', useValue: textArea.validatorMessage },\r\n { provide: 'TEXT_AREA_TOOLTIP_MESSAGE', useValue: textArea.tooltipMessage },\r\n { provide: 'TEXT_AREA_SUBMITTED', useValue: textArea.submitted },\r\n { provide: 'TEXT_AREA_VALIDATOR_ALERT', useValue: textArea.validatorAlert },\r\n TextAreaService\r\n ]\r\n }\r\n }\r\n }\r\n","import { Directive } from '@angular/core';\r\nimport { LabelType } from '../sc-wizard/sc-wizard.component';\r\n\r\n@Directive()\r\nexport abstract class ScWizardBase {\r\n\tprotected abstract labels: LabelType[];\r\n\r\n\tconstructor() {}\r\n\r\n\tconvertToStringLabel(index: number): string {\r\n\t\treturn JSON.stringify(this.labels[index]);\r\n\t}\r\n}\r\n","/*\r\n * Public API Surface of ngx-sumax-erp-component\r\n */\r\n\r\nexport * from \"./lib/date-picker/date-picker.component\";\r\nexport * from \"./lib/date-picker/date-picker.module\";\r\nexport * from \"./lib/date-picker/date-picker.service\";\r\nexport * from \"./lib/date-time-picker-editable/date-time-picker-editable.component\";\r\nexport * from \"./lib/date-time-picker-editable/date-time-picker-editable.module\";\r\nexport * from \"./lib/date-time-picker-editable/date-time-picker-editable.service\";\r\nexport * from \"./lib/date-time-picker/date-time-picker.component\";\r\nexport * from \"./lib/date-time-picker/date-time-picker.module\";\r\nexport * from \"./lib/date-time-picker/date-time-picker.service\";\r\nexport * from \"./lib/input-number/input-number.component\";\r\nexport * from \"./lib/input-number/input-number.module\";\r\nexport * from \"./lib/input-number/input-number.service\";\r\nexport * from \"./lib/input-text/input-text.component\";\r\nexport * from \"./lib/input-text/input-text.module\";\r\nexport * from \"./lib/input-text/input-text.service\";\r\nexport * from \"./lib/ng-select-multiple/ng-select-multiple.component\";\r\nexport * from \"./lib/ng-select-multiple/ng-select-multiple.module\";\r\nexport * from \"./lib/ng-select-multiple/ng-select-multiple.service\";\r\nexport * from \"./lib/ng-select-simple/ng-select-simple.component\";\r\nexport * from \"./lib/ng-select-simple/ng-select-simple.module\";\r\nexport * from \"./lib/ng-select-simple/ng-select-simple.service\";\r\nexport * from \"./lib/sc-ag-grid\";\r\nexport * from \"./lib/sc-ag-grid/cell-render/no-rows-overlay/noRowsOverlayCustom.component\";\r\nexport * from \"./lib/sc-wizard/sc-wizard.module\";\r\nexport * from \"./lib/sc-wizard/sc-wizard.component\";\r\nexport * from \"./lib/text-area/text-area.component\";\r\nexport * from \"./lib/text-area/text-area.module\";\r\nexport * from \"./lib/text-area/text-area.service\";\r\nexport * from './lib/utils/ScWizardBase';","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["parseFns","format","formatFns","isValidFns","isAfterFns","subDaysFns","addDaysFns","differenceInDaysFns","getHoursFns","getMinutesFns","getSecondsFns","startOfMonthFns","endOfMonthFns","formatDistanceFns","i2","i1.MessageUtilService","i2.DatePickerService","i3","i5.errorMessageComponent","i6.tooltipMessageComponent","i8","i4.tooltipMessageComponent","i5","i6.errorMessageComponent","i1","i3.DateTimePickerService","i2.InputNumberService","i2.InputTextService","i2.NgSelectMultipleService","i7","i9","nextId","i4.ScAgGridPaginationComponent","i5.InputSearchComponent","i3.NgSelectSimpleService","i4","i7.tooltipMessageComponent","i3.NgSelectSimpleComponent","i4.InputTextComponent","i5.InputNumberComponent","i6.DatePickerComponent","i7.DateTimePickerEditableComponent","i2.NgSelectSimpleComponent","i5.ScAgGridPaginationComponent","i6.InputSearchComponent","i7.ScMenuPanelComponent","i1.ScCellRendererButtonComponent","i2.ScCellRenderCheckboxListComponent","i3.ScCellRenderSelectComponent","i4.ScCellRenderToggleComponent","i1.ScMenuPanelComponent","i6","i2.TextAreaService"],"mappings":"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"}