ngx-mat-lib
Version:
A bunch of utilities and components to use in your Angular 7+ apps!
133 lines (132 loc) • 13.4 kB
JavaScript
/**
* @fileoverview added by tsickle
* @suppress {checkTypes,extraRequire,uselessCode} checked by tsc
*/
import { Injectable } from "@angular/core";
import { NativeDateAdapter } from "@angular/material";
/** @type {?} */
const xmatSep = "/";
/** @type {?} */
const xmatDay = "DD";
/** @type {?} */
const xmatMonth = "MM";
/** @type {?} */
const xmatYear = "YYYY";
/** @type {?} */
const xmatCurrentYear = new Date().getFullYear();
/** @type {?} */
const xmatCentury = Math.round(xmatCurrentYear / 100);
/** @type {?} */
export const XMAT_LOCALE_IT = "it-IT";
/** @type {?} */
export const XMAT_LOCALE_EN = "en-GB";
/** @type {?} */
export const XMAT_LOCALE_FR = "fr-FR";
/** @type {?} */
export const XMAT_FORMATS = {
"it-IT": `${xmatDay}${xmatSep}${xmatMonth}${xmatSep}${xmatYear}`,
"en-GB": `${xmatMonth}${xmatSep}${xmatDay}${xmatSep}${xmatYear}`,
"fr-FR": `${xmatDay}${xmatSep}${xmatMonth}${xmatSep}${xmatYear}`
};
/** @type {?} */
export const XMAT_DATE_FORMATS = {
parse: {
dateInput: { month: "numeric", year: "numeric", day: "numeric" }
},
display: {
dateInput: XMAT_FORMATS[XMAT_LOCALE_IT],
monthYearLabel: `${xmatMonth}${xmatSep}${xmatYear}`,
dateA11yLabel: XMAT_FORMATS[XMAT_LOCALE_IT],
monthYearA11yLabel: `${xmatMonth}${xmatSep}${xmatYear}`
}
};
export class XmatMatDateLocale extends NativeDateAdapter {
constructor() {
super(...arguments);
this.displayFormat = XMAT_DATE_FORMATS.display.dateInput;
}
/**
* @param {?} value
* @return {?}
*/
parse(value) {
if (this.displayFormat === XMAT_DATE_FORMATS.display.dateInput) {
if ((typeof value === typeof "") && value.length > 0) {
/** @type {?} */
const str = value.split(xmatSep);
if (str.length < 3) {
return new Date("xmat");
}
/** @type {?} */
const yearBak = str[2];
if (str[2].length < 4) {
str[2] = xmatCentury + str[2];
}
if (str[2].length !== 4) {
return new Date("xmat");
}
/** @type {?} */
const year = +str[2];
/** @type {?} */
const month = +str[1] - 1;
/** @type {?} */
const day = +str[0];
return new Date(year, month, day);
}
else {
return null;
}
}
else {
console.warn("Date input format not valid." +
" Be sure to use XMAT_DATE_FORMATS" +
" or extend this class with your own 'parser' and format 'methods'");
console.info("For a complete guide visit github.com/tonysamperi/ngx-mat-lib");
return null;
}
}
/**
* @param {?} date
* @param {?} displayFormat
* @return {?}
*/
format(date, displayFormat) {
this.displayFormat = displayFormat;
if (displayFormat === XMAT_DATE_FORMATS.display.dateInput) {
/** @type {?} */
const day = date.getDate();
/** @type {?} */
const month = date.getMonth() + 1;
/** @type {?} */
const year = date.getFullYear();
return this._addLeadingZeroes(day) + xmatSep + this._addLeadingZeroes(month) + xmatSep + year;
}
else {
/** @type {?} */
let formattedDate = "";
try {
formattedDate = date.toLocaleDateString(XMAT_LOCALE_IT, displayFormat);
}
catch (e) {
console.warn("Catched error while printing ", e);
formattedDate = date.toDateString();
}
return formattedDate;
}
}
/**
* @param {?} n
* @return {?}
*/
_addLeadingZeroes(n) {
return ("0" + n).slice(-2);
}
}
XmatMatDateLocale.decorators = [
{ type: Injectable }
];
if (false) {
/** @type {?} */
XmatMatDateLocale.prototype.displayFormat;
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoieG1hdC1kYXRlLWxvY2FsZS5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6Im5nOi8vbmd4LW1hdC1saWIvIiwic291cmNlcyI6WyJsaWIvc2VydmljZXMveG1hdC1kYXRlLWxvY2FsZS5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7QUFBQSxPQUFPLEVBQUMsVUFBVSxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBQ3pDLE9BQU8sRUFBQyxpQkFBaUIsRUFBQyxNQUFNLG1CQUFtQixDQUFDOztBQUVwRCxNQUFNLE9BQU8sR0FBVyxHQUFHLENBQUM7O0FBQzVCLE1BQU0sT0FBTyxHQUFXLElBQUksQ0FBQzs7QUFDN0IsTUFBTSxTQUFTLEdBQVcsSUFBSSxDQUFDOztBQUMvQixNQUFNLFFBQVEsR0FBVyxNQUFNLENBQUM7O0FBQ2hDLE1BQU0sZUFBZSxHQUFXLElBQUksSUFBSSxFQUFFLENBQUMsV0FBVyxFQUFFLENBQUM7O0FBQ3pELE1BQU0sV0FBVyxHQUFXLElBQUksQ0FBQyxLQUFLLENBQUMsZUFBZSxHQUFHLEdBQUcsQ0FBQyxDQUFDOztBQUc5RCxhQUFhLGNBQWMsR0FBVyxPQUFPLENBQUM7O0FBRTlDLGFBQWEsY0FBYyxHQUFXLE9BQU8sQ0FBQzs7QUFFOUMsYUFBYSxjQUFjLEdBQVcsT0FBTyxDQUFDOztBQUc5QyxhQUFhLFlBQVksR0FBRztJQUN4QixPQUFPLEVBQUUsR0FBRyxPQUFPLEdBQUcsT0FBTyxHQUFHLFNBQVMsR0FBRyxPQUFPLEdBQUcsUUFBUSxFQUFFO0lBQ2hFLE9BQU8sRUFBRSxHQUFHLFNBQVMsR0FBRyxPQUFPLEdBQUcsT0FBTyxHQUFHLE9BQU8sR0FBRyxRQUFRLEVBQUU7SUFDaEUsT0FBTyxFQUFFLEdBQUcsT0FBTyxHQUFHLE9BQU8sR0FBRyxTQUFTLEdBQUcsT0FBTyxHQUFHLFFBQVEsRUFBRTtDQUNuRSxDQUFDOztBQUlGLGFBQWEsaUJBQWlCLEdBQUc7SUFDN0IsS0FBSyxFQUFFO1FBQ0gsU0FBUyxFQUFFLEVB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RyxFQUFFLENBQUM7WUFDdkIsSUFBSTtnQkFDQSxhQUFhLEdBQUcsSUFBSSxDQUFDLGtCQUFrQixDQUFDLGNBQWMsRUFBRSxhQUFhLENBQUMsQ0FBQzthQUMxRTtZQUFDLE9BQU8sQ0FBQyxFQUFFO2dCQUNSLE9BQU8sQ0FBQyxJQUFJLENBQUMsK0JBQStCLEVBQUUsQ0FBQyxDQUFDLENBQUM7Z0JBQ2pELGFBQWEsR0FBRyxJQUFJLENBQUMsWUFBWSxFQUFFLENBQUM7YUFDdkM7WUFDRCxPQUFPLGFBQWEsQ0FBQztTQUN4QjtLQUNKOzs7OztJQUVPLGlCQUFpQixDQUFDLENBQVM7UUFDL0IsT0FBTyxDQUFDLEdBQUcsR0FBRyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQzs7OztZQTNEbEMsVUFBVSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7SW5qZWN0YWJsZX0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcbmltcG9ydCB7TmF0aXZlRGF0ZUFkYXB0ZXJ9IGZyb20gXCJAYW5ndWxhci9tYXRlcmlhbFwiO1xuXG5jb25zdCB4bWF0U2VwOiBzdHJpbmcgPSBcIi9cIjtcbmNvbnN0IHhtYXREYXk6IHN0cmluZyA9IFwiRERcIjtcbmNvbnN0IHhtYXRNb250aDogc3RyaW5nID0gXCJNTVwiO1xuY29uc3QgeG1hdFllYXI6IHN0cmluZyA9IFwiWVlZWVwiO1xuY29uc3QgeG1hdEN1cnJlbnRZZWFyOiBudW1iZXIgPSBuZXcgRGF0ZSgpLmdldEZ1bGxZZWFyKCk7XG5jb25zdCB4bWF0Q2VudHVyeTogbnVtYmVyID0gTWF0aC5yb3VuZCh4bWF0Q3VycmVudFllYXIgLyAxMDApO1xuXG4vLyB0c2xpbnQ6ZGlzYWJsZS1uZXh0LWxpbmU6bmFtaW5nLWNvbnZlbnRpb25cbmV4cG9ydCBjb25zdCBYTUFUX0xPQ0FMRV9JVDogc3RyaW5nID0gXCJpdC1JVFwiO1xuLy8gdHNsaW50OmRpc2FibGUtbmV4dC1saW5lOm5hbWluZy1jb252ZW50aW9uXG5leHBvcnQgY29uc3QgWE1BVF9MT0NBTEVfRU46IHN0cmluZyA9IFwiZW4tR0JcIjtcbi8vIHRzbGludDpkaXNhYmxlLW5leHQtbGluZTpuYW1pbmctY29udmVudGlvblxuZXhwb3J0IGNvbnN0IFhNQVRfTE9DQUxFX0ZSOiBzdHJpbmcgPSBcImZyLUZSXCI7XG5cbi8vIHRzbGludDpkaXNhYmxlLW5leHQtbGluZTpuYW1pbmctY29udmVudGlvblxuZXhwb3J0IGNvbnN0IFhNQVRfRk9STUFUUyA9IHtcbiAgICBcIml0LUlUXCI6IGAke3htYXREYXl9JHt4bWF0U2VwfSR7eG1hdE1vbnRofSR7eG1hdFNlcH0ke3htYXRZZWFyfWAsXG4gICAgXCJlbi1HQlwiOiBgJHt4bWF0TW9udGh9JHt4bWF0U2VwfSR7eG1hdERheX0ke3htYXRTZXB9JHt4bWF0WWVhcn1gLFxuICAgIFwiZnItRlJcIjogYCR7eG1hdERheX0ke3htYXRTZXB9JHt4bWF0TW9udGh9JHt4bWF0U2VwfSR7eG1hdFllYXJ9YFxufTtcblxuLy8gVElQOiBDT1BZIFRISVMgVE8gQ1VTVE9NSVpFIENBTEVOREFSIEZPUk1BVFMhIVxuLy8gdHNsaW50OmRpc2FibGUtbmV4dC1saW5lOm5hbWluZy1jb252ZW50aW9uXG5leHBvcnQgY29uc3QgWE1BVF9EQVRFX0ZPUk1BVFMgPSB7XG4gICAgcGFyc2U6IHtcbiAgICAgICAgZGF0ZUlucHV0OiB7bW9udGg6IFwibnVtZXJpY1wiLCB5ZWFyOiBcIm51bWVyaWNcIiwgZGF5OiBcIm51bWVyaWNcIn1cbiAgICB9LFxuICAgIGRpc3BsYXk6IHtcbiAgICAgICAgZGF0ZUlucHV0OiBYTUFUX0ZPUk1BVFNbWE1BVF9MT0NBTEVfSVRdLFxuICAgICAgICBtb250aFllYXJMYWJlbDogYCR7eG1hdE1vbnRofSR7eG1hdFNlcH0ke3htYXRZZWFyfWAsXG4gICAgICAgIGRhdGVBMTF5TGFiZWw6IFhNQVRfRk9STUFUU1tYTUFUX0xPQ0FMRV9JVF0sXG4gICAgICAgIG1vbnRoWWVhckExMXlMYWJlbDogYCR7eG1hdE1vbnRofSR7eG1hdFNlcH0ke3htYXRZZWFyfWBcbiAgICB9XG59O1xuXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgWG1hdE1hdERhdGVMb2NhbGUgZXh0ZW5kcyBOYXRpdmVEYXRlQWRhcHRlciB7XG5cbiAgICBkaXNwbGF5Rm9ybWF0OiBPYmplY3QgfCBzdHJpbmcgPSBYTUFUX0RBVEVfRk9STUFUUy5kaXNwbGF5LmRhdGVJbnB1dDtcblxuICAgIHBhcnNlKHZhbHVlOiBhbnkpOiBEYXRlIHwgbnVsbCB7XG4gICAgICAgIGlmICh0aGlzLmRpc3BsYXlGb3JtYXQgPT09IFhNQVRfREFURV9GT1JNQVRTLmRpc3BsYXkuZGF0ZUlucHV0KSB7XG4gICAgICAgICAgICBpZiAoKHR5cGVvZiB2YWx1ZSA9PT0gdHlwZW9mIFwiXCIpICYmIHZhbHVlLmxlbmd0aCA+IDApIHtcbiAgICAgICAgICAgICAgICBjb25zdCBzdHIgPSB2YWx1ZS5zcGxpdCh4bWF0U2VwKTtcbiAgICAgICAgICAgICAgICBpZiAoc3RyLmxlbmd0aCA8IDMpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG5ldyBEYXRlKFwieG1hdFwiKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgY29uc3QgeWVhckJhayA9IHN0clsyXTtcbiAgICAgICAgICAgICAgICBpZiAoc3RyWzJdLmxlbmd0aCA8IDQpIHtcbiAgICAgICAgICAgICAgICAgICAgc3RyWzJdID0geG1hdENlbnR1cnkgKyBzdHJbMl07XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGlmIChzdHJbMl0ubGVuZ3RoICE9PSA0KSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBuZXcgRGF0ZShcInhtYXRcIik7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGNvbnN0IHllYXIgPSArc3RyWzJdO1xuICAgICAgICAgICAgICAgIGNvbnN0IG1vbnRoID0gK3N0clsxXSAtIDE7XG4gICAgICAgICAgICAgICAgY29uc3QgZGF5ID0gK3N0clswXTtcblxuICAgICAgICAgICAgICAgIHJldHVybiBuZXcgRGF0ZSh5ZWFyLCBtb250aCwgZGF5KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgIHJldHVybiBudWxsO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgY29uc29sZS53YXJuKFwiRGF0ZSBpbnB1dCBmb3JtYXQgbm90IHZhbGlkLlwiICtcbiAgICAgICAgICAgICAgICBcIiBCZSBzdXJlIHRvIHVzZSBYTUFUX0RBVEVfRk9STUFUU1wiICtcbiAgICAgICAgICAgICAgICBcIiBvciBleHRlbmQgdGhpcyBjbGFzcyB3aXRoIHlvdXIgb3duICdwYXJzZXInIGFuZCBmb3JtYXQgJ21ldGhvZHMnXCIpO1xuICAgICAgICAgICAgY29uc29sZS5pbmZvKFwiRm9yIGEgY29tcGxldGUgZ3VpZGUgdmlzaXQgZ2l0aHViLmNvbS90b255c2FtcGVyaS9uZ3gtbWF0LWxpYlwiKTtcbiAgICAgICAgICAgIHJldHVybiBudWxsO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgZm9ybWF0KGRhdGU6IERhdGUsIGRpc3BsYXlGb3JtYXQ6IE9iamVjdCk6IHN0cmluZyB7XG4gICAgICAgIHRoaXMuZGlzcGxheUZvcm1hdCA9IGRpc3BsYXlGb3JtYXQ7XG4gICAgICAgIGlmIChkaXNwbGF5Rm9ybWF0ID09PSBYTUFUX0RBVEVfRk9STUFUUy5kaXNwbGF5LmRhdGVJbnB1dCkge1xuICAgICAgICAgICAgY29uc3QgZGF5ID0gZGF0ZS5nZXREYXRlKCk7XG4gICAgICAgICAgICBjb25zdCBtb250aCA9IGRhdGUuZ2V0TW9udGgoKSArIDE7XG4gICAgICAgICAgICBjb25zdCB5ZWFyID0gZGF0ZS5nZXRGdWxsWWVhcigpO1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMuX2FkZExlYWRpbmdaZXJvZXMoZGF5KSArIHhtYXRTZXAgKyB0aGlzLl9hZGRMZWFkaW5nWmVyb2VzKG1vbnRoKSArIHhtYXRTZXAgKyB5ZWFyO1xuICAgICAgICB9XG4gICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgbGV0IGZvcm1hdHRlZERhdGUgPSBcIlwiO1xuICAgICAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgICAgICBmb3JtYXR0ZWREYXRlID0gZGF0ZS50b0xvY2FsZURhdGVTdHJpbmcoWE1BVF9MT0NBTEVfSVQsIGRpc3BsYXlGb3JtYXQpO1xuICAgICAgICAgICAgfSBjYXRjaCAoZSkge1xuICAgICAgICAgICAgICAgIGNvbnNvbGUud2FybihcIkNhdGNoZWQgZXJyb3Igd2hpbGUgcHJpbnRpbmcgXCIsIGUpO1xuICAgICAgICAgICAgICAgIGZvcm1hdHRlZERhdGUgPSBkYXRlLnRvRGF0ZVN0cmluZygpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmV0dXJuIGZvcm1hdHRlZERhdGU7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwcml2YXRlIF9hZGRMZWFkaW5nWmVyb2VzKG46IG51bWJlcikge1xuICAgICAgICByZXR1cm4gKFwiMFwiICsgbikuc2xpY2UoLTIpO1xuICAgIH1cbn1cbiJdfQ==