UNPKG

ngx-mat-lib

Version:

A bunch of utilities and components to use in your Angular 7+ apps!

151 lines (150 loc) 14 kB
/** * @fileoverview added by tsickle * @suppress {checkTypes,extraRequire,uselessCode} checked by tsc */ import * as tslib_1 from "tslib"; import { Injectable } from "@angular/core"; import { NativeDateAdapter } from "@angular/material"; /** @type {?} */ var xmatSep = "/"; /** @type {?} */ var xmatDay = "DD"; /** @type {?} */ var xmatMonth = "MM"; /** @type {?} */ var xmatYear = "YYYY"; /** @type {?} */ var xmatCurrentYear = new Date().getFullYear(); /** @type {?} */ var xmatCentury = Math.round(xmatCurrentYear / 100); /** @type {?} */ export var XMAT_LOCALE_IT = "it-IT"; /** @type {?} */ export var XMAT_LOCALE_EN = "en-GB"; /** @type {?} */ export var XMAT_LOCALE_FR = "fr-FR"; /** @type {?} */ export var 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 var 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 } }; var XmatMatDateLocale = /** @class */ (function (_super) { tslib_1.__extends(XmatMatDateLocale, _super); function XmatMatDateLocale() { var _this = _super !== null && _super.apply(this, arguments) || this; _this.displayFormat = XMAT_DATE_FORMATS.display.dateInput; return _this; } /** * @param {?} value * @return {?} */ XmatMatDateLocale.prototype.parse = /** * @param {?} value * @return {?} */ function (value) { if (this.displayFormat === XMAT_DATE_FORMATS.display.dateInput) { if ((typeof value === typeof "") && value.length > 0) { /** @type {?} */ var str = value.split(xmatSep); if (str.length < 3) { return new Date("xmat"); } /** @type {?} */ var yearBak = str[2]; if (str[2].length < 4) { str[2] = xmatCentury + str[2]; } if (str[2].length !== 4) { return new Date("xmat"); } /** @type {?} */ var year = +str[2]; /** @type {?} */ var month = +str[1] - 1; /** @type {?} */ var 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 {?} */ XmatMatDateLocale.prototype.format = /** * @param {?} date * @param {?} displayFormat * @return {?} */ function (date, displayFormat) { this.displayFormat = displayFormat; if (displayFormat === XMAT_DATE_FORMATS.display.dateInput) { /** @type {?} */ var day = date.getDate(); /** @type {?} */ var month = date.getMonth() + 1; /** @type {?} */ var year = date.getFullYear(); return this._addLeadingZeroes(day) + xmatSep + this._addLeadingZeroes(month) + xmatSep + year; } else { /** @type {?} */ var 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 {?} */ XmatMatDateLocale.prototype._addLeadingZeroes = /** * @param {?} n * @return {?} */ function (n) { return ("0" + n).slice(-2); }; XmatMatDateLocale.decorators = [ { type: Injectable } ]; return XmatMatDateLocale; }(NativeDateAdapter)); export { XmatMatDateLocale }; if (false) { /** @type {?} */ XmatMatDateLocale.prototype.displayFormat; } //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoieG1hdC1kYXRlLWxvY2FsZS5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6Im5nOi8vbmd4LW1hdC1saWIvIiwic291cmNlcyI6WyJsaWIvc2VydmljZXMveG1hdC1kYXRlLWxvY2FsZS5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUEsT0FBTyxFQUFDLFVBQVUsRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUN6QyxPQUFPLEVBQUMsaUJBQWlCLEVBQUMsTUFBTSxtQkFBbUIsQ0FBQzs7QUFFcEQsSUFBTSxPQUFPLEdBQVcsR0FBRyxDQUFDOztBQUM1QixJQUFNLE9BQU8sR0FBVyxJQUFJLENBQUM7O0FBQzdCLElBQU0sU0FBUyxHQUFXLElBQUksQ0FBQzs7QUFDL0IsSUFBTSxRQUFRLEdBQVcsTUFBTSxDQUFDOztBQUNoQyxJQUFNLGVBQWUsR0FBVyxJQUFJLElBQUksRUFBRSxDQUFDLFdBQVcsRUFBRSxDQUFDOztBQUN6RCxJQUFNLFdBQVcsR0FBVyxJQUFJLENBQUMsS0FBSyxDQUFDLGVBQWUsR0FBRyxHQUFHLENBQUMsQ0FBQzs7QUFHOUQsV0FBYSxjQUFjLEdBQVcsT0FBTyxDQUFDOztBQUU5QyxXQUFhLGNBQWMsR0FBVyxPQUFPLENBQUM7O0FBRTlDLFdBQWEsY0FBYyxHQUFXLE9BQU8sQ0FBQzs7QUFHOUMsV0FBYSxZQUFZLEdBQUc7SUFDeEIsT0FBTyxFQUFFLEtBQUcsT0FBTyxHQUFHLE9BQU8sR0FBRyxTQUFTLEdBQUcsT0FBTyxHQUFHLFFBQVU7SUFDaEUsT0FBTyxFQUFFLEtBQUcsU0FBUyxHQUFHLE9BQU8sR0FBRyxPQUFPLEdBQUcsT0FBTyxHQUFHLFFBQVU7SUFDaEUsT0FBTyxFQUFFLEtBQUcsT0FBTyxHQUFHLE9BQU8sR0FBRyxTQUFTLEdBQUcsT0FBTyxHQUFHLFFBQVU7Q0FDbkUsQ0FBQzs7QUFJRixXQUFhLGlCQUFpQixHQUFHO0lBQzdCLEtBQUssRUFBRTtRQUNILFNBQVMsRUFBRSxFQUFDLEtBQUssRUFBRSxT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QkFDQSxhQUFhLEdBQUcsSUFBSSxDQUFDLGtCQUFrQixDQUFDLGNBQWMsRUFBRSxhQUFhLENBQUMsQ0FBQzthQUMxRTtZQUFDLE9BQU8sQ0FBQyxFQUFFO2dCQUNSLE9BQU8sQ0FBQyxJQUFJLENBQUMsK0JBQStCLEVBQUUsQ0FBQyxDQUFDLENBQUM7Z0JBQ2pELGFBQWEsR0FBRyxJQUFJLENBQUMsWUFBWSxFQUFFLENBQUM7YUFDdkM7WUFDRCxPQUFPLGFBQWEsQ0FBQztTQUN4QjtLQUNKOzs7OztJQUVPLDZDQUFpQjs7OztjQUFDLENBQVM7UUFDL0IsT0FBTyxDQUFDLEdBQUcsR0FBRyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQzs7O2dCQTNEbEMsVUFBVTs7NEJBdENYO0VBdUN1QyxpQkFBaUI7U0FBM0MsaUJBQWlCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtJbmplY3RhYmxlfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xuaW1wb3J0IHtOYXRpdmVEYXRlQWRhcHRlcn0gZnJvbSBcIkBhbmd1bGFyL21hdGVyaWFsXCI7XG5cbmNvbnN0IHhtYXRTZXA6IHN0cmluZyA9IFwiL1wiO1xuY29uc3QgeG1hdERheTogc3RyaW5nID0gXCJERFwiO1xuY29uc3QgeG1hdE1vbnRoOiBzdHJpbmcgPSBcIk1NXCI7XG5jb25zdCB4bWF0WWVhcjogc3RyaW5nID0gXCJZWVlZXCI7XG5jb25zdCB4bWF0Q3VycmVudFllYXI6IG51bWJlciA9IG5ldyBEYXRlKCkuZ2V0RnVsbFllYXIoKTtcbmNvbnN0IHhtYXRDZW50dXJ5OiBudW1iZXIgPSBNYXRoLnJvdW5kKHhtYXRDdXJyZW50WWVhciAvIDEwMCk7XG5cbi8vIHRzbGludDpkaXNhYmxlLW5leHQtbGluZTpuYW1pbmctY29udmVudGlvblxuZXhwb3J0IGNvbnN0IFhNQVRfTE9DQUxFX0lUOiBzdHJpbmcgPSBcIml0LUlUXCI7XG4vLyB0c2xpbnQ6ZGlzYWJsZS1uZXh0LWxpbmU6bmFtaW5nLWNvbnZlbnRpb25cbmV4cG9ydCBjb25zdCBYTUFUX0xPQ0FMRV9FTjogc3RyaW5nID0gXCJlbi1HQlwiO1xuLy8gdHNsaW50OmRpc2FibGUtbmV4dC1saW5lOm5hbWluZy1jb252ZW50aW9uXG5leHBvcnQgY29uc3QgWE1BVF9MT0NBTEVfRlI6IHN0cmluZyA9IFwiZnItRlJcIjtcblxuLy8gdHNsaW50OmRpc2FibGUtbmV4dC1saW5lOm5hbWluZy1jb252ZW50aW9uXG5leHBvcnQgY29uc3QgWE1BVF9GT1JNQVRTID0ge1xuICAgIFwiaXQtSVRcIjogYCR7eG1hdERheX0ke3htYXRTZXB9JHt4bWF0TW9udGh9JHt4bWF0U2VwfSR7eG1hdFllYXJ9YCxcbiAgICBcImVuLUdCXCI6IGAke3htYXRNb250aH0ke3htYXRTZXB9JHt4bWF0RGF5fSR7eG1hdFNlcH0ke3htYXRZZWFyfWAsXG4gICAgXCJmci1GUlwiOiBgJHt4bWF0RGF5fSR7eG1hdFNlcH0ke3htYXRNb250aH0ke3htYXRTZXB9JHt4bWF0WWVhcn1gXG59O1xuXG4vLyBUSVA6IENPUFkgVEhJUyBUTyBDVVNUT01JWkUgQ0FMRU5EQVIgRk9STUFUUyEhXG4vLyB0c2xpbnQ6ZGlzYWJsZS1uZXh0LWxpbmU6bmFtaW5nLWNvbnZlbnRpb25cbmV4cG9ydCBjb25zdCBYTUFUX0RBVEVfRk9STUFUUyA9IHtcbiAgICBwYXJzZToge1xuICAgICAgICBkYXRlSW5wdXQ6IHttb250aDogXCJudW1lcmljXCIsIHllYXI6IFwibnVtZXJpY1wiLCBkYXk6IFwibnVtZXJpY1wifVxuICAgIH0sXG4gICAgZGlzcGxheToge1xuICAgICAgICBkYXRlSW5wdXQ6IFhNQVRfRk9STUFUU1tYTUFUX0xPQ0FMRV9JVF0sXG4gICAgICAgIG1vbnRoWWVhckxhYmVsOiBgJHt4bWF0TW9udGh9JHt4bWF0U2VwfSR7eG1hdFllYXJ9YCxcbiAgICAgICAgZGF0ZUExMXlMYWJlbDogWE1BVF9GT1JNQVRTW1hNQVRfTE9DQUxFX0lUXSxcbiAgICAgICAgbW9udGhZZWFyQTExeUxhYmVsOiBgJHt4bWF0TW9udGh9JHt4bWF0U2VwfSR7eG1hdFllYXJ9YFxuICAgIH1cbn07XG5cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBYbWF0TWF0RGF0ZUxvY2FsZSBleHRlbmRzIE5hdGl2ZURhdGVBZGFwdGVyIHtcblxuICAgIGRpc3BsYXlGb3JtYXQ6IE9iamVjdCB8IHN0cmluZyA9IFhNQVRfREFURV9GT1JNQVRTLmRpc3BsYXkuZGF0ZUlucHV0O1xuXG4gICAgcGFyc2UodmFsdWU6IGFueSk6IERhdGUgfCBudWxsIHtcbiAgICAgICAgaWYgKHRoaXMuZGlzcGxheUZvcm1hdCA9PT0gWE1BVF9EQVRFX0ZPUk1BVFMuZGlzcGxheS5kYXRlSW5wdXQpIHtcbiAgICAgICAgICAgIGlmICgodHlwZW9mIHZhbHVlID09PSB0eXBlb2YgXCJcIikgJiYgdmFsdWUubGVuZ3RoID4gMCkge1xuICAgICAgICAgICAgICAgIGNvbnN0IHN0ciA9IHZhbHVlLnNwbGl0KHhtYXRTZXApO1xuICAgICAgICAgICAgICAgIGlmIChzdHIubGVuZ3RoIDwgMykge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gbmV3IERhdGUoXCJ4bWF0XCIpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBjb25zdCB5ZWFyQmFrID0gc3RyWzJdO1xuICAgICAgICAgICAgICAgIGlmIChzdHJbMl0ubGVuZ3RoIDwgNCkge1xuICAgICAgICAgICAgICAgICAgICBzdHJbMl0gPSB4bWF0Q2VudHVyeSArIHN0clsyXTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgaWYgKHN0clsyXS5sZW5ndGggIT09IDQpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG5ldyBEYXRlKFwieG1hdFwiKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgY29uc3QgeWVhciA9ICtzdHJbMl07XG4gICAgICAgICAgICAgICAgY29uc3QgbW9udGggPSArc3RyWzFdIC0gMTtcbiAgICAgICAgICAgICAgICBjb25zdCBkYXkgPSArc3RyWzBdO1xuXG4gICAgICAgICAgICAgICAgcmV0dXJuIG5ldyBEYXRlKHllYXIsIG1vbnRoLCBkYXkpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICBjb25zb2xlLndhcm4oXCJEYXRlIGlucHV0IGZvcm1hdCBub3QgdmFsaWQuXCIgK1xuICAgICAgICAgICAgICAgIFwiIEJlIHN1cmUgdG8gdXNlIFhNQVRfREFURV9GT1JNQVRTXCIgK1xuICAgICAgICAgICAgICAgIFwiIG9yIGV4dGVuZCB0aGlzIGNsYXNzIHdpdGggeW91ciBvd24gJ3BhcnNlcicgYW5kIGZvcm1hdCAnbWV0aG9kcydcIik7XG4gICAgICAgICAgICBjb25zb2xlLmluZm8oXCJGb3IgYSBjb21wbGV0ZSBndWlkZSB2aXNpdCBnaXRodWIuY29tL3RvbnlzYW1wZXJpL25neC1tYXQtbGliXCIpO1xuICAgICAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBmb3JtYXQoZGF0ZTogRGF0ZSwgZGlzcGxheUZvcm1hdDogT2JqZWN0KTogc3RyaW5nIHtcbiAgICAgICAgdGhpcy5kaXNwbGF5Rm9ybWF0ID0gZGlzcGxheUZvcm1hdDtcbiAgICAgICAgaWYgKGRpc3BsYXlGb3JtYXQgPT09IFhNQVRfREFURV9GT1JNQVRTLmRpc3BsYXkuZGF0ZUlucHV0KSB7XG4gICAgICAgICAgICBjb25zdCBkYXkgPSBkYXRlLmdldERhdGUoKTtcbiAgICAgICAgICAgIGNvbnN0IG1vbnRoID0gZGF0ZS5nZXRNb250aCgpICsgMTtcbiAgICAgICAgICAgIGNvbnN0IHllYXIgPSBkYXRlLmdldEZ1bGxZZWFyKCk7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5fYWRkTGVhZGluZ1plcm9lcyhkYXkpICsgeG1hdFNlcCArIHRoaXMuX2FkZExlYWRpbmdaZXJvZXMobW9udGgpICsgeG1hdFNlcCArIHllYXI7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICBsZXQgZm9ybWF0dGVkRGF0ZSA9IFwiXCI7XG4gICAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgICAgIGZvcm1hdHRlZERhdGUgPSBkYXRlLnRvTG9jYWxlRGF0ZVN0cmluZyhYTUFUX0xPQ0FMRV9JVCwgZGlzcGxheUZvcm1hdCk7XG4gICAgICAgICAgICB9IGNhdGNoIChlKSB7XG4gICAgICAgICAgICAgICAgY29uc29sZS53YXJuKFwiQ2F0Y2hlZCBlcnJvciB3aGlsZSBwcmludGluZyBcIiwgZSk7XG4gICAgICAgICAgICAgICAgZm9ybWF0dGVkRGF0ZSA9IGRhdGUudG9EYXRlU3RyaW5nKCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm4gZm9ybWF0dGVkRGF0ZTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByaXZhdGUgX2FkZExlYWRpbmdaZXJvZXMobjogbnVtYmVyKSB7XG4gICAgICAgIHJldHVybiAoXCIwXCIgKyBuKS5zbGljZSgtMik7XG4gICAgfVxufVxuIl19