UNPKG

material-dynamic-forms

Version:

¡Crea formularios dinámicos, potentes y configurables en Angular usando Material Design! 🚀

51 lines 7.65 kB
import { NativeDateAdapter } from '@angular/material/core'; const CONST_TYPE_STRING = 'string'; const CONST_TYPE_NUMBER = 'number'; const CONST_TYPE_NUMERIC = 'numeric'; const CONST_TYPE_LONG = 'long'; const CONST_DISPLAY_FORMAT_INPUT = 'input'; const CONST_DISPLAY_FORMAT_INPUTMONTH = 'inputMonth'; export class AppDateAdapter extends NativeDateAdapter { parse(value) { if (typeof value === CONST_TYPE_STRING && value.indexOf('/') > -1) { const str = value.split('/'); const year = Number(str[2]); const month = Number(str[1]) - 1; const date = Number(str[0]); return new Date(year, month, date); } const timestamp = typeof value === CONST_TYPE_NUMBER ? value : Date.parse(value); return isNaN(timestamp) ? null : new Date(timestamp); } format(date, displayFormat) { if (displayFormat === CONST_DISPLAY_FORMAT_INPUT) { let day = date.getDate(); let month = date.getMonth() + 1; let year = date.getFullYear(); return this._to2digit(day) + '/' + this._to2digit(month) + '/' + year; } else if (displayFormat === CONST_DISPLAY_FORMAT_INPUTMONTH) { let month = date.getMonth() + 1; let year = date.getFullYear(); return this._to2digit(month) + '/' + year; } else { return date.toDateString(); } } _to2digit(n) { return ('00' + n).slice(-2); } } export const APP_DATE_FORMATS = { parse: { dateInput: { month: 'short', year: CONST_TYPE_NUMERIC, day: CONST_TYPE_NUMERIC }, }, display: { dateInput: CONST_DISPLAY_FORMAT_INPUT, monthYearLabel: CONST_DISPLAY_FORMAT_INPUTMONTH, dateA11yLabel: { year: CONST_TYPE_NUMERIC, month: CONST_TYPE_LONG, day: CONST_TYPE_NUMERIC }, monthYearA11yLabel: { year: CONST_TYPE_NUMERIC, month: CONST_TYPE_LONG }, }, }; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0ZS5hZGFwdGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZHluYW1pYy1mb3JtL3NyYy9saWIvdXRpbHMvZGF0ZS5hZGFwdGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBRTNELE1BQU0saUJBQWlCLEdBQUcsUUFBUSxDQUFDO0FBQ25DLE1BQU0saUJBQWlCLEdBQUcsUUFBUSxDQUFDO0FBQ25DLE1BQU0sa0JBQWtCLEdBQUcsU0FBUyxDQUFDO0FBQ3JDLE1BQU0sZUFBZSxHQUFHLE1BQU0sQ0FBQztBQUMvQixNQUFNLDBCQUEwQixHQUFHLE9BQU8sQ0FBQztBQUMzQyxNQUFNLCtCQUErQixHQUFHLFlBQVksQ0FBQztBQUVyRCxNQUFNLE9BQU8sY0FBZSxTQUFRLGlCQUFpQjtJQUMxQyxLQUFLLENBQUMsS0FBVTtRQUN2QixJQUFJLE9BQU8sS0FBSyxLQUFLLGlCQUFpQixJQUFJLEtBQUssQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEVBQUU7WUFDakUsTUFBTSxHQUFHLEdBQUcsS0FBSyxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQztZQUM3QixNQUFNLElBQUksR0FBRyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDNUIsTUFBTSxLQUFLLEdBQUcsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQztZQUNqQyxNQUFNLElBQUksR0FBRyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDNUIsT0FBTyxJQUFJLElBQUksQ0FBQyxJQUFJLEVBQUUsS0FBSyxFQUFFLElBQUksQ0FBQyxDQUFDO1NBQ3BDO1FBQ0QsTUFBTSxTQUFTLEdBQUcsT0FBTyxLQUFLLEtBQUssaUJBQWlCLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUNqRixPQUFPLEtBQUssQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxJQUFJLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQztJQUN2RCxDQUFDO0lBQ1EsTUFBTSxDQUFDLElBQVUsRUFBRSxhQUFxQjtRQUMvQyxJQUFJLGFBQWEsS0FBSywwQkFBMEIsRUFBRTtZQUNoRCxJQUFJLEdBQUcsR0FBRyxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUM7WUFDekIsSUFBSSxLQUFLLEdBQUcsSUFBSSxDQUFDLFFBQVEsRUFBRSxHQUFHLENBQUMsQ0FBQztZQUNoQyxJQUFJLElBQUksR0FBRyxJQUFJLENBQUMsV0FBVyxFQUFFLENBQUM7WUFDOUIsT0FBTyxJQUFJLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxHQUFHLEdBQUcsR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxHQUFHLEdBQUcsR0FBRyxJQUFJLENBQUM7U0FDdkU7YUFBTSxJQUFJLGFBQWEsS0FBSywrQkFBK0IsRUFBRTtZQUM1RCxJQUFJLEtBQUssR0FBRyxJQUFJLENBQUMsUUFBUSxFQUFFLEdBQUcsQ0FBQyxDQUFDO1lBQ2hDLElBQUksSUFBSSxHQUFHLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQztZQUM5QixPQUFPLElBQUksQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLEdBQUcsR0FBRyxHQUFHLElBQUksQ0FBQztTQUMzQzthQUFNO1lBQ0wsT0FBTyxJQUFJLENBQUMsWUFBWSxFQUFFLENBQUM7U0FDNUI7SUFDSCxDQUFDO0lBRU8sU0FBUyxDQUFDLENBQVM7UUFDekIsT0FBTyxDQUFDLElBQUksR0FBRyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUM5QixDQUFDO0NBQ0Y7QUFFRCxNQUFNLENBQUMsTUFBTSxnQkFBZ0IsR0FBRztJQUM5QixLQUFLLEVBQUU7UUFDTCxTQUFTLEVBQUUsRUFBRSxLQUFLLEVBQUUsT0FBTyxFQUFFLElBQUksRUFBRSxrQkFBa0IsRUFBRSxHQUFHLEVBQUUsa0JBQWtCLEVBQUU7S0FDakY7SUFDRCxPQUFPLEVBQUU7UUFDUCxTQUFTLEVBQUUsMEJBQTBCO1FBQ3JDLGNBQWMsRUFBRSwrQkFBK0I7UUFDL0MsYUFBYSxFQUFFLEVBQUUsSUFBSSxFQUFFLGtCQUFrQixFQUFFLEtBQUssRUFBRSxlQUFlLEVBQUUsR0FBRyxFQUFFLGtCQUFrQixFQUFFO1FBQzVGLGtCQUFrQixFQUFFLEVBQUUsSUFBSSxFQUFFLGtCQUFrQixFQUFFLEtBQUssRUFBRSxlQUFlLEVBQUU7S0FDekU7Q0FDRixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTmF0aXZlRGF0ZUFkYXB0ZXIgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9jb3JlJztcclxuXHJcbmNvbnN0IENPTlNUX1RZUEVfU1RSSU5HID0gJ3N0cmluZyc7XHJcbmNvbnN0IENPTlNUX1RZUEVfTlVNQkVSID0gJ251bWJlcic7XHJcbmNvbnN0IENPTlNUX1RZUEVfTlVNRVJJQyA9ICdudW1lcmljJztcclxuY29uc3QgQ09OU1RfVFlQRV9MT05HID0gJ2xvbmcnO1xyXG5jb25zdCBDT05TVF9ESVNQTEFZX0ZPUk1BVF9JTlBVVCA9ICdpbnB1dCc7XHJcbmNvbnN0IENPTlNUX0RJU1BMQVlfRk9STUFUX0lOUFVUTU9OVEggPSAnaW5wdXRNb250aCc7XHJcblxyXG5leHBvcnQgY2xhc3MgQXBwRGF0ZUFkYXB0ZXIgZXh0ZW5kcyBOYXRpdmVEYXRlQWRhcHRlciB7XHJcbiAgb3ZlcnJpZGUgcGFyc2UodmFsdWU6IGFueSk6IERhdGUgfCBudWxsIHtcclxuICAgIGlmICh0eXBlb2YgdmFsdWUgPT09IENPTlNUX1RZUEVfU1RSSU5HICYmIHZhbHVlLmluZGV4T2YoJy8nKSA+IC0xKSB7XHJcbiAgICAgIGNvbnN0IHN0ciA9IHZhbHVlLnNwbGl0KCcvJyk7XHJcbiAgICAgIGNvbnN0IHllYXIgPSBOdW1iZXIoc3RyWzJdKTtcclxuICAgICAgY29uc3QgbW9udGggPSBOdW1iZXIoc3RyWzFdKSAtIDE7XHJcbiAgICAgIGNvbnN0IGRhdGUgPSBOdW1iZXIoc3RyWzBdKTtcclxuICAgICAgcmV0dXJuIG5ldyBEYXRlKHllYXIsIG1vbnRoLCBkYXRlKTtcclxuICAgIH1cclxuICAgIGNvbnN0IHRpbWVzdGFtcCA9IHR5cGVvZiB2YWx1ZSA9PT0gQ09OU1RfVFlQRV9OVU1CRVIgPyB2YWx1ZSA6IERhdGUucGFyc2UodmFsdWUpO1xyXG4gICAgcmV0dXJuIGlzTmFOKHRpbWVzdGFtcCkgPyBudWxsIDogbmV3IERhdGUodGltZXN0YW1wKTtcclxuICB9XHJcbiAgb3ZlcnJpZGUgZm9ybWF0KGRhdGU6IERhdGUsIGRpc3BsYXlGb3JtYXQ6IHN0cmluZyk6IHN0cmluZyB7XHJcbiAgICBpZiAoZGlzcGxheUZvcm1hdCA9PT0gQ09OU1RfRElTUExBWV9GT1JNQVRfSU5QVVQpIHtcclxuICAgICAgbGV0IGRheSA9IGRhdGUuZ2V0RGF0ZSgpO1xyXG4gICAgICBsZXQgbW9udGggPSBkYXRlLmdldE1vbnRoKCkgKyAxO1xyXG4gICAgICBsZXQgeWVhciA9IGRhdGUuZ2V0RnVsbFllYXIoKTtcclxuICAgICAgcmV0dXJuIHRoaXMuX3RvMmRpZ2l0KGRheSkgKyAnLycgKyB0aGlzLl90bzJkaWdpdChtb250aCkgKyAnLycgKyB5ZWFyO1xyXG4gICAgfSBlbHNlIGlmIChkaXNwbGF5Rm9ybWF0ID09PSBDT05TVF9ESVNQTEFZX0ZPUk1BVF9JTlBVVE1PTlRIKSB7XHJcbiAgICAgIGxldCBtb250aCA9IGRhdGUuZ2V0TW9udGgoKSArIDE7XHJcbiAgICAgIGxldCB5ZWFyID0gZGF0ZS5nZXRGdWxsWWVhcigpO1xyXG4gICAgICByZXR1cm4gdGhpcy5fdG8yZGlnaXQobW9udGgpICsgJy8nICsgeWVhcjtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHJldHVybiBkYXRlLnRvRGF0ZVN0cmluZygpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBfdG8yZGlnaXQobjogbnVtYmVyKSB7XHJcbiAgICByZXR1cm4gKCcwMCcgKyBuKS5zbGljZSgtMik7XHJcbiAgfVxyXG59XHJcblxyXG5leHBvcnQgY29uc3QgQVBQX0RBVEVfRk9STUFUUyA9IHtcclxuICBwYXJzZToge1xyXG4gICAgZGF0ZUlucHV0OiB7IG1vbnRoOiAnc2hvcnQnLCB5ZWFyOiBDT05TVF9UWVBFX05VTUVSSUMsIGRheTogQ09OU1RfVFlQRV9OVU1FUklDIH0sXHJcbiAgfSxcclxuICBkaXNwbGF5OiB7XHJcbiAgICBkYXRlSW5wdXQ6IENPTlNUX0RJU1BMQVlfRk9STUFUX0lOUFVULFxyXG4gICAgbW9udGhZZWFyTGFiZWw6IENPTlNUX0RJU1BMQVlfRk9STUFUX0lOUFVUTU9OVEgsXHJcbiAgICBkYXRlQTExeUxhYmVsOiB7IHllYXI6IENPTlNUX1RZUEVfTlVNRVJJQywgbW9udGg6IENPTlNUX1RZUEVfTE9ORywgZGF5OiBDT05TVF9UWVBFX05VTUVSSUMgfSxcclxuICAgIG1vbnRoWWVhckExMXlMYWJlbDogeyB5ZWFyOiBDT05TVF9UWVBFX05VTUVSSUMsIG1vbnRoOiBDT05TVF9UWVBFX0xPTkcgfSxcclxuICB9LFxyXG59O1xyXG4iXX0=