UNPKG

@angular/material

Version:
409 lines (403 loc) 12 kB
export { _MatInternalFormField } from './_internal-form-field-chunk.mjs'; import * as i0 from '@angular/core'; import { Version, inject, Injectable, NgModule } from '@angular/core'; export { MATERIAL_ANIMATIONS, _animationsDisabled, _getAnimationsState } from './_animation-chunk.mjs'; export { _ErrorStateTracker } from './_error-state-chunk.mjs'; import { DateAdapter, MAT_DATE_LOCALE, MAT_DATE_FORMATS } from './_date-formats-chunk.mjs'; export { ErrorStateMatcher, ShowOnDirtyErrorStateMatcher } from './_error-options-chunk.mjs'; export { _StructuralStylesLoader } from './_structural-styles-chunk.mjs'; export { MatLine, MatLineModule, setLines } from './_line-chunk.mjs'; export { MatOptionModule } from './_option-module-chunk.mjs'; export { MAT_OPTGROUP, MAT_OPTION_PARENT_COMPONENT, MatOptgroup, MatOption, MatOptionSelectionChange, _countGroupLabelsBeforeOption, _getOptionScrollPosition } from './_option-chunk.mjs'; export { MatRippleLoader } from './_ripple-loader-chunk.mjs'; export { MAT_RIPPLE_GLOBAL_OPTIONS, MatRipple, RippleRef, RippleRenderer, RippleState, defaultRippleAnimationConfig } from './_ripple-chunk.mjs'; export { MatRippleModule } from './_ripple-module-chunk.mjs'; export { MatPseudoCheckbox } from './_pseudo-checkbox-chunk.mjs'; export { MatPseudoCheckboxModule } from './_pseudo-checkbox-module-chunk.mjs'; import '@angular/cdk/layout'; import 'rxjs'; import '@angular/cdk/bidi'; import 'rxjs/operators'; import '@angular/cdk/a11y'; import '@angular/cdk/keycodes'; import '@angular/cdk/private'; import '@angular/cdk/platform'; import '@angular/cdk/coercion'; const VERSION = new Version('21.0.5'); const ISO_8601_REGEX = /^\d{4}-\d{2}-\d{2}(?:T\d{2}:\d{2}:\d{2}(?:\.\d+)?(?:Z|(?:(?:\+|-)\d{2}:\d{2}))?)?$/; const TIME_REGEX = /^(\d?\d)[:.](\d?\d)(?:[:.](\d?\d))?\s*(AM|PM)?$/i; function range(length, valueFunction) { const valuesArray = Array(length); for (let i = 0; i < length; i++) { valuesArray[i] = valueFunction(i); } return valuesArray; } class NativeDateAdapter extends DateAdapter { _matDateLocale = inject(MAT_DATE_LOCALE, { optional: true }); constructor() { super(); const matDateLocale = inject(MAT_DATE_LOCALE, { optional: true }); if (matDateLocale !== undefined) { this._matDateLocale = matDateLocale; } super.setLocale(this._matDateLocale); } getYear(date) { return date.getFullYear(); } getMonth(date) { return date.getMonth(); } getDate(date) { return date.getDate(); } getDayOfWeek(date) { return date.getDay(); } getMonthNames(style) { const dtf = new Intl.DateTimeFormat(this.locale, { month: style, timeZone: 'utc' }); return range(12, i => this._format(dtf, new Date(2017, i, 1))); } getDateNames() { const dtf = new Intl.DateTimeFormat(this.locale, { day: 'numeric', timeZone: 'utc' }); return range(31, i => this._format(dtf, new Date(2017, 0, i + 1))); } getDayOfWeekNames(style) { const dtf = new Intl.DateTimeFormat(this.locale, { weekday: style, timeZone: 'utc' }); return range(7, i => this._format(dtf, new Date(2017, 0, i + 1))); } getYearName(date) { const dtf = new Intl.DateTimeFormat(this.locale, { year: 'numeric', timeZone: 'utc' }); return this._format(dtf, date); } getFirstDayOfWeek() { if (typeof Intl !== 'undefined' && Intl.Locale) { const locale = new Intl.Locale(this.locale); const firstDay = (locale.getWeekInfo?.() || locale.weekInfo)?.firstDay ?? 0; return firstDay === 7 ? 0 : firstDay; } return 0; } getNumDaysInMonth(date) { return this.getDate(this._createDateWithOverflow(this.getYear(date), this.getMonth(date) + 1, 0)); } clone(date) { return new Date(date.getTime()); } createDate(year, month, date) { if (typeof ngDevMode === 'undefined' || ngDevMode) { if (month < 0 || month > 11) { throw Error(`Invalid month index "${month}". Month index has to be between 0 and 11.`); } if (date < 1) { throw Error(`Invalid date "${date}". Date has to be greater than 0.`); } } let result = this._createDateWithOverflow(year, month, date); if (result.getMonth() != month && (typeof ngDevMode === 'undefined' || ngDevMode)) { throw Error(`Invalid date "${date}" for month with index "${month}".`); } return result; } today() { return new Date(); } parse(value, parseFormat) { if (typeof value == 'number') { return new Date(value); } return value ? new Date(Date.parse(value)) : null; } format(date, displayFormat) { if (!this.isValid(date)) { throw Error('NativeDateAdapter: Cannot format invalid date.'); } const dtf = new Intl.DateTimeFormat(this.locale, { ...displayFormat, timeZone: 'utc' }); return this._format(dtf, date); } addCalendarYears(date, years) { return this.addCalendarMonths(date, years * 12); } addCalendarMonths(date, months) { let newDate = this._createDateWithOverflow(this.getYear(date), this.getMonth(date) + months, this.getDate(date)); if (this.getMonth(newDate) != ((this.getMonth(date) + months) % 12 + 12) % 12) { newDate = this._createDateWithOverflow(this.getYear(newDate), this.getMonth(newDate), 0); } return newDate; } addCalendarDays(date, days) { return this._createDateWithOverflow(this.getYear(date), this.getMonth(date), this.getDate(date) + days); } toIso8601(date) { return [date.getUTCFullYear(), this._2digit(date.getUTCMonth() + 1), this._2digit(date.getUTCDate())].join('-'); } deserialize(value) { if (typeof value === 'string') { if (!value) { return null; } if (ISO_8601_REGEX.test(value)) { let date = new Date(value); if (this.isValid(date)) { return date; } } } return super.deserialize(value); } isDateInstance(obj) { return obj instanceof Date; } isValid(date) { return !isNaN(date.getTime()); } invalid() { return new Date(NaN); } setTime(target, hours, minutes, seconds) { if (typeof ngDevMode === 'undefined' || ngDevMode) { if (!inRange(hours, 0, 23)) { throw Error(`Invalid hours "${hours}". Hours value must be between 0 and 23.`); } if (!inRange(minutes, 0, 59)) { throw Error(`Invalid minutes "${minutes}". Minutes value must be between 0 and 59.`); } if (!inRange(seconds, 0, 59)) { throw Error(`Invalid seconds "${seconds}". Seconds value must be between 0 and 59.`); } } const clone = this.clone(target); clone.setHours(hours, minutes, seconds, 0); return clone; } getHours(date) { return date.getHours(); } getMinutes(date) { return date.getMinutes(); } getSeconds(date) { return date.getSeconds(); } parseTime(userValue, parseFormat) { if (typeof userValue !== 'string') { return userValue instanceof Date ? new Date(userValue.getTime()) : null; } const value = userValue.trim(); if (value.length === 0) { return null; } let result = this._parseTimeString(value); if (result === null) { const withoutExtras = value.replace(/[^0-9:(AM|PM)]/gi, '').trim(); if (withoutExtras.length > 0) { result = this._parseTimeString(withoutExtras); } } return result || this.invalid(); } addSeconds(date, amount) { return new Date(date.getTime() + amount * 1000); } _createDateWithOverflow(year, month, date) { const d = new Date(); d.setFullYear(year, month, date); d.setHours(0, 0, 0, 0); return d; } _2digit(n) { return ('00' + n).slice(-2); } _format(dtf, date) { const d = new Date(); d.setUTCFullYear(date.getFullYear(), date.getMonth(), date.getDate()); d.setUTCHours(date.getHours(), date.getMinutes(), date.getSeconds(), date.getMilliseconds()); return dtf.format(d); } _parseTimeString(value) { const parsed = value.toUpperCase().match(TIME_REGEX); if (parsed) { let hours = parseInt(parsed[1]); const minutes = parseInt(parsed[2]); let seconds = parsed[3] == null ? undefined : parseInt(parsed[3]); const amPm = parsed[4]; if (hours === 12) { hours = amPm === 'AM' ? 0 : hours; } else if (amPm === 'PM') { hours += 12; } if (inRange(hours, 0, 23) && inRange(minutes, 0, 59) && (seconds == null || inRange(seconds, 0, 59))) { return this.setTime(this.today(), hours, minutes, seconds || 0); } } return null; } static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.3", ngImport: i0, type: NativeDateAdapter, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.0.3", ngImport: i0, type: NativeDateAdapter }); } i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.3", ngImport: i0, type: NativeDateAdapter, decorators: [{ type: Injectable }], ctorParameters: () => [] }); function inRange(value, min, max) { return !isNaN(value) && value >= min && value <= max; } const MAT_NATIVE_DATE_FORMATS = { parse: { dateInput: null, timeInput: null }, display: { dateInput: { year: 'numeric', month: 'numeric', day: 'numeric' }, timeInput: { hour: 'numeric', minute: 'numeric' }, monthYearLabel: { year: 'numeric', month: 'short' }, dateA11yLabel: { year: 'numeric', month: 'long', day: 'numeric' }, monthYearA11yLabel: { year: 'numeric', month: 'long' }, timeOptionLabel: { hour: 'numeric', minute: 'numeric' } } }; class NativeDateModule { static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.3", ngImport: i0, type: NativeDateModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "21.0.3", ngImport: i0, type: NativeDateModule }); static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "21.0.3", ngImport: i0, type: NativeDateModule, providers: [{ provide: DateAdapter, useClass: NativeDateAdapter }] }); } i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.3", ngImport: i0, type: NativeDateModule, decorators: [{ type: NgModule, args: [{ providers: [{ provide: DateAdapter, useClass: NativeDateAdapter }] }] }] }); class MatNativeDateModule { static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.3", ngImport: i0, type: MatNativeDateModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "21.0.3", ngImport: i0, type: MatNativeDateModule }); static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "21.0.3", ngImport: i0, type: MatNativeDateModule, providers: [provideNativeDateAdapter()] }); } i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.3", ngImport: i0, type: MatNativeDateModule, decorators: [{ type: NgModule, args: [{ providers: [provideNativeDateAdapter()] }] }] }); function provideNativeDateAdapter(formats = MAT_NATIVE_DATE_FORMATS) { return [{ provide: DateAdapter, useClass: NativeDateAdapter }, { provide: MAT_DATE_FORMATS, useValue: formats }]; } export { DateAdapter, MAT_DATE_FORMATS, MAT_DATE_LOCALE, MAT_NATIVE_DATE_FORMATS, MatNativeDateModule, NativeDateAdapter, NativeDateModule, VERSION, provideNativeDateAdapter }; //# sourceMappingURL=core.mjs.map