UNPKG

cfc-ui-test

Version:

Design System do Conselho Federal de Contabilidade baseado no govbr-ds

132 lines 13.9 kB
import { Inject, Injectable, Optional } from '@angular/core'; import { DateAdapter, MAT_DATE_LOCALE } from '@angular/material/core'; import dayjs from 'dayjs'; import 'dayjs/locale/pt-br'; import localeData from 'dayjs/plugin/localeData'; import * as i0 from "@angular/core"; dayjs.extend(localeData); export class DayjsDateAdapter extends DateAdapter { locale; constructor(locale) { super(); this.locale = locale; dayjs.locale(locale); } getYear(date) { return date.year(); } getMonth(date) { return date.month(); } getDate(date) { return date.date(); } getDayOfWeek(date) { return date.day(); } getMonthNames(style) { return style === 'long' ? dayjs.months() : dayjs.monthsShort(); } getDateNames() { const dateNames = []; for (let i = 1; i <= 31; i++) { dateNames.push(String(i)); } return dateNames; } getDayOfWeekNames(style) { return style === 'long' ? dayjs.weekdays() : dayjs.weekdaysShort(); } getYearName(date) { return date.format('YYYY'); } getFirstDayOfWeek() { return 0; } getNumDaysInMonth(date) { return date.daysInMonth(); } clone(date) { return date.clone(); } createDate(year, month, date) { // Corrigido: usar o método dayjs() para criar a data return dayjs(new Date(year, month, date)); } today() { return dayjs(); } parse(value, parseFormat) { if (value && typeof value === 'string') { return dayjs(value, parseFormat); } else if (value instanceof Date) { return dayjs(value); } else if (typeof value === 'number') { return dayjs(value); } else if (dayjs.isDayjs(value)) { return dayjs(value).locale(this.locale); } return null; } format(date, displayFormat) { if (!this.isValid(date)) { throw Error('DayjsDateAdapter: Cannot format invalid date.'); } return date.locale(this.locale).format(displayFormat); } addCalendarYears(date, years) { return date.add(years, 'year'); } addCalendarMonths(date, months) { return date.add(months, 'month'); } addCalendarDays(date, days) { return date.add(days, 'day'); } toIso8601(date) { return date.toISOString(); } deserialize(value) { let date; if (value instanceof Date) { date = dayjs(value); } if (typeof value === 'string') { if (!value) { return null; } date = dayjs(value).locale(this.locale); } if (date && this.isValid(date)) { return date; } return super.deserialize(value); } isDateInstance(obj) { return dayjs.isDayjs(obj); } isValid(date) { return date && date.isValid(); } invalid() { return dayjs(null); } static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: DayjsDateAdapter, deps: [{ token: MAT_DATE_LOCALE, optional: true }], target: i0.ɵɵFactoryTarget.Injectable }); static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: DayjsDateAdapter }); } i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: DayjsDateAdapter, decorators: [{ type: Injectable }], ctorParameters: () => [{ type: undefined, decorators: [{ type: Optional }, { type: Inject, args: [MAT_DATE_LOCALE] }] }] }); //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF5c2pzLWRhdGUtYWRhcHRlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NmYy11aS9zcmMvbGliL3Byb3ZpZGVycy9kYXlzanMtZGF0ZS1hZGFwdGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUM3RCxPQUFPLEVBQUUsV0FBVyxFQUFFLGVBQWUsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ3RFLE9BQU8sS0FBSyxNQUFNLE9BQU8sQ0FBQztBQUMxQixPQUFPLG9CQUFvQixDQUFDO0FBQzVCLE9BQU8sVUFBVSxNQUFNLHlCQUF5QixDQUFDOztBQUVqRCxLQUFLLENBQUMsTUFBTSxDQUFDLFVBQVUsQ0FBQyxDQUFDO0FBR3pCLE1BQU0sT0FBTyxnQkFBaUIsU0FBUSxXQUF3QjtJQUNLO0lBQWpFLFlBQWlFLE1BQWM7UUFDN0UsS0FBSyxFQUFFLENBQUM7UUFEdUQsV0FBTSxHQUFOLE1BQU0sQ0FBUTtRQUU3RSxLQUFLLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQ3ZCLENBQUM7SUFFRCxPQUFPLENBQUMsSUFBaUI7UUFDdkIsT0FBTyxJQUFJLENBQUMsSUFBSSxFQUFFLENBQUM7SUFDckIsQ0FBQztJQUVELFFBQVEsQ0FBQyxJQUFpQjtRQUN4QixPQUFPLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQztJQUN0QixDQUFDO0lBRUQsT0FBTyxDQUFDLElBQWlCO1FBQ3ZCLE9BQU8sSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDO0lBQ3JCLENBQUM7SUFFRCxZQUFZLENBQUMsSUFBaUI7UUFDNUIsT0FBTyxJQUFJLENBQUMsR0FBRyxFQUFFLENBQUM7SUFDcEIsQ0FBQztJQUVELGFBQWEsQ0FBQyxLQUFrQztRQUM5QyxPQUFPLEtBQUssS0FBSyxNQUFNO1lBQ3JCLENBQUMsQ0FB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QUMsZUFBZSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdCwgSW5qZWN0YWJsZSwgT3B0aW9uYWwgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgRGF0ZUFkYXB0ZXIsIE1BVF9EQVRFX0xPQ0FMRSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2NvcmUnO1xyXG5pbXBvcnQgZGF5anMgZnJvbSAnZGF5anMnO1xyXG5pbXBvcnQgJ2RheWpzL2xvY2FsZS9wdC1icic7XHJcbmltcG9ydCBsb2NhbGVEYXRhIGZyb20gJ2RheWpzL3BsdWdpbi9sb2NhbGVEYXRhJztcclxuXHJcbmRheWpzLmV4dGVuZChsb2NhbGVEYXRhKTtcclxuXHJcbkBJbmplY3RhYmxlKClcclxuZXhwb3J0IGNsYXNzIERheWpzRGF0ZUFkYXB0ZXIgZXh0ZW5kcyBEYXRlQWRhcHRlcjxkYXlqcy5EYXlqcz4ge1xyXG4gIGNvbnN0cnVjdG9yKEBPcHRpb25hbCgpIEBJbmplY3QoTUFUX0RBVEVfTE9DQUxFKSBwdWJsaWMgb3ZlcnJpZGUgbG9jYWxlOiBzdHJpbmcpIHtcclxuICAgIHN1cGVyKCk7XHJcbiAgICBkYXlqcy5sb2NhbGUobG9jYWxlKTtcclxuICB9XHJcblxyXG4gIGdldFllYXIoZGF0ZTogZGF5anMuRGF5anMpOiBudW1iZXIge1xyXG4gICAgcmV0dXJuIGRhdGUueWVhcigpO1xyXG4gIH1cclxuXHJcbiAgZ2V0TW9udGgoZGF0ZTogZGF5anMuRGF5anMpOiBudW1iZXIge1xyXG4gICAgcmV0dXJuIGRhdGUubW9udGgoKTtcclxuICB9XHJcblxyXG4gIGdldERhdGUoZGF0ZTogZGF5anMuRGF5anMpOiBudW1iZXIge1xyXG4gICAgcmV0dXJuIGRhdGUuZGF0ZSgpO1xyXG4gIH1cclxuXHJcbiAgZ2V0RGF5T2ZXZWVrKGRhdGU6IGRheWpzLkRheWpzKTogbnVtYmVyIHtcclxuICAgIHJldHVybiBkYXRlLmRheSgpO1xyXG4gIH1cclxuXHJcbiAgZ2V0TW9udGhOYW1lcyhzdHlsZTogJ2xvbmcnIHwgJ3Nob3J0JyB8ICduYXJyb3cnKTogc3RyaW5nW10ge1xyXG4gICAgcmV0dXJuIHN0eWxlID09PSAnbG9uZydcclxuICAgICAgPyBkYXlqcy5tb250aHMoKVxyXG4gICAgICA6IGRheWpzLm1vbnRoc1Nob3J0KCk7XHJcbiAgfVxyXG5cclxuICBnZXREYXRlTmFtZXMoKTogc3RyaW5nW10ge1xyXG4gICAgY29uc3QgZGF0ZU5hbWVzOiBzdHJpbmdbXSA9IFtdO1xyXG4gICAgZm9yIChsZXQgaSA9IDE7IGkgPD0gMzE7IGkrKykge1xyXG4gICAgICBkYXRlTmFtZXMucHVzaChTdHJpbmcoaSkpO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIGRhdGVOYW1lcztcclxuICB9XHJcblxyXG4gIGdldERheU9mV2Vla05hbWVzKHN0eWxlOiAnbG9uZycgfCAnc2hvcnQnIHwgJ25hcnJvdycpOiBzdHJpbmdbXSB7XHJcbiAgICByZXR1cm4gc3R5bGUgPT09ICdsb25nJ1xyXG4gICAgICA/IGRheWpzLndlZWtkYXlzKClcclxuICAgICAgOiBkYXlqcy53ZWVrZGF5c1Nob3J0KCk7XHJcbiAgfVxyXG5cclxuICBnZXRZZWFyTmFtZShkYXRlOiBkYXlqcy5EYXlqcyk6IHN0cmluZyB7XHJcbiAgICByZXR1cm4gZGF0ZS5mb3JtYXQoJ1lZWVknKTtcclxuICB9XHJcblxyXG4gIGdldEZpcnN0RGF5T2ZXZWVrKCk6IG51bWJlciB7XHJcbiAgICByZXR1cm4gMDtcclxuICB9XHJcblxyXG4gIGdldE51bURheXNJbk1vbnRoKGRhdGU6IGRheWpzLkRheWpzKTogbnVtYmVyIHtcclxuICAgIHJldHVybiBkYXRlLmRheXNJbk1vbnRoKCk7XHJcbiAgfVxyXG5cclxuICBjbG9uZShkYXRlOiBkYXlqcy5EYXlqcyk6IGRheWpzLkRheWpzIHtcclxuICAgIHJldHVybiBkYXRlLmNsb25lKCk7XHJcbiAgfVxyXG5cclxuICBjcmVhdGVEYXRlKHllYXI6IG51bWJlciwgbW9udGg6IG51bWJlciwgZGF0ZTogbnVtYmVyKTogZGF5anMuRGF5anMge1xyXG4gICAgLy8gQ29ycmlnaWRvOiB1c2FyIG8gbcOpdG9kbyBkYXlqcygpIHBhcmEgY3JpYXIgYSBkYXRhXHJcbiAgICByZXR1cm4gZGF5anMobmV3IERhdGUoeWVhciwgbW9udGgsIGRhdGUpKTtcclxuICB9XHJcblxyXG4gIHRvZGF5KCk6IGRheWpzLkRheWpzIHtcclxuICAgIHJldHVybiBkYXlqcygpO1xyXG4gIH1cclxuXHJcbiAgcGFyc2UodmFsdWU6IHVua25vd24sIHBhcnNlRm9ybWF0OiBzdHJpbmcgfCBzdHJpbmdbXSB8IHVuZGVmaW5lZCk6IGRheWpzLkRheWpzIHwgbnVsbCB7XHJcbiAgICBpZiAodmFsdWUgJiYgdHlwZW9mIHZhbHVlID09PSAnc3RyaW5nJykge1xyXG4gICAgICByZXR1cm4gZGF5anModmFsdWUsIHBhcnNlRm9ybWF0KTtcclxuICAgIH0gZWxzZSBpZiAodmFsdWUgaW5zdGFuY2VvZiBEYXRlKSB7XHJcbiAgICAgIHJldHVybiBkYXlqcyh2YWx1ZSk7XHJcbiAgICB9IGVsc2UgaWYgKHR5cGVvZiB2YWx1ZSA9PT0gJ251bWJlcicpIHtcclxuICAgICAgcmV0dXJuIGRheWpzKHZhbHVlKTtcclxuICAgIH0gZWxzZSBpZiAoZGF5anMuaXNEYXlqcyh2YWx1ZSkpIHtcclxuICAgICAgcmV0dXJuIGRheWpzKHZhbHVlKS5sb2NhbGUodGhpcy5sb2NhbGUpO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIG51bGw7XHJcbiAgfVxyXG5cclxuICBmb3JtYXQoZGF0ZTogZGF5anMuRGF5anMsIGRpc3BsYXlGb3JtYXQ6IHN0cmluZyB8IHVuZGVmaW5lZCk6IHN0cmluZyB7XHJcbiAgICBpZiAoIXRoaXMuaXNWYWxpZChkYXRlKSkge1xyXG4gICAgICB0aHJvdyBFcnJvcignRGF5anNEYXRlQWRhcHRlcjogQ2Fubm90IGZvcm1hdCBpbnZhbGlkIGRhdGUuJyk7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gZGF0ZS5sb2NhbGUodGhpcy5sb2NhbGUpLmZvcm1hdChkaXNwbGF5Rm9ybWF0KTtcclxuICB9XHJcblxyXG4gIGFkZENhbGVuZGFyWWVhcnMoZGF0ZTogZGF5anMuRGF5anMsIHllYXJzOiBudW1iZXIpOiBkYXlqcy5EYXlqcyB7XHJcbiAgICByZXR1cm4gZGF0ZS5hZGQoeWVhcnMsICd5ZWFyJyk7XHJcbiAgfVxyXG5cclxuICBhZGRDYWxlbmRhck1vbnRocyhkYXRlOiBkYXlqcy5EYXlqcywgbW9udGhzOiBudW1iZXIpOiBkYXlqcy5EYXlqcyB7XHJcbiAgICByZXR1cm4gZGF0ZS5hZGQobW9udGhzLCAnbW9udGgnKTtcclxuICB9XHJcblxyXG4gIGFkZENhbGVuZGFyRGF5cyhkYXRlOiBkYXlqcy5EYXlqcywgZGF5czogbnVtYmVyKTogZGF5anMuRGF5anMge1xyXG4gICAgcmV0dXJuIGRhdGUuYWRkKGRheXMsICdkYXknKTtcclxuICB9XHJcblxyXG4gIHRvSXNvODYwMShkYXRlOiBkYXlqcy5EYXlqcyk6IHN0cmluZyB7XHJcbiAgICByZXR1cm4gZGF0ZS50b0lTT1N0cmluZygpO1xyXG4gIH1cclxuXHJcbiAgb3ZlcnJpZGUgZGVzZXJpYWxpemUodmFsdWU6IHVua25vd24pOiBkYXlqcy5EYXlqcyB8IG51bGwge1xyXG4gICAgbGV0IGRhdGU7XHJcbiAgICBpZiAodmFsdWUgaW5zdGFuY2VvZiBEYXRlKSB7XHJcbiAgICAgIGRhdGUgPSBkYXlqcyh2YWx1ZSk7XHJcbiAgICB9XHJcbiAgICBpZiAodHlwZW9mIHZhbHVlID09PSAnc3RyaW5nJykge1xyXG4gICAgICBpZiAoIXZhbHVlKSB7XHJcbiAgICAgICAgcmV0dXJuIG51bGw7XHJcbiAgICAgIH1cclxuICAgICAgZGF0ZSA9IGRheWpzKHZhbHVlKS5sb2NhbGUodGhpcy5sb2NhbGUpO1xyXG4gICAgfVxyXG4gICAgaWYgKGRhdGUgJiYgdGhpcy5pc1ZhbGlkKGRhdGUpKSB7XHJcbiAgICAgIHJldHVybiBkYXRlO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIHN1cGVyLmRlc2VyaWFsaXplKHZhbHVlKTtcclxuICB9XHJcblxyXG4gIGlzRGF0ZUluc3RhbmNlKG9iajogdW5rbm93bik6IGJvb2xlYW4ge1xyXG4gICAgcmV0dXJuIGRheWpzLmlzRGF5anMob2JqKTtcclxuICB9XHJcblxyXG4gIGlzVmFsaWQoZGF0ZTogZGF5anMuRGF5anMpOiBib29sZWFuIHtcclxuICAgIHJldHVybiBkYXRlICYmIGRhdGUuaXNWYWxpZCgpO1xyXG4gIH1cclxuXHJcbiAgaW52YWxpZCgpOiBkYXlqcy5EYXlqcyB7XHJcbiAgICByZXR1cm4gZGF5anMobnVsbCk7XHJcbiAgfVxyXG59XHJcbiJdfQ==