@angular/material 21.1.1 → 21.2.0-next.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/fesm2022/core.mjs CHANGED
@@ -24,7 +24,7 @@ import '@angular/cdk/private';
24
24
  import '@angular/cdk/platform';
25
25
  import '@angular/cdk/coercion';
26
26
 
27
- const VERSION = new Version('21.1.1');
27
+ const VERSION = new Version('21.2.0-next.1');
28
28
 
29
29
  const ISO_8601_REGEX = /^\d{4}-\d{2}-\d{2}(?:T\d{2}:\d{2}:\d{2}(?:\.\d+)?(?:Z|(?:(?:\+|-)\d{2}:\d{2}))?)?$/;
30
30
  const TIME_REGEX = /^(\d?\d)[:.](\d?\d)(?:[:.](\d?\d))?\s*(AM|PM)?$/i;
@@ -1 +1 @@
1
- {"version":3,"file":"core.mjs","sources":["../../../../../darwin_arm64-fastbuild-ST-fdfa778d11ba/bin/src/material/core/version.ts","../../../../../darwin_arm64-fastbuild-ST-fdfa778d11ba/bin/src/material/core/datetime/native-date-adapter.ts","../../../../../darwin_arm64-fastbuild-ST-fdfa778d11ba/bin/src/material/core/datetime/native-date-formats.ts","../../../../../darwin_arm64-fastbuild-ST-fdfa778d11ba/bin/src/material/core/datetime/index.ts"],"sourcesContent":["/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.dev/license\n */\n\nimport {Version} from '@angular/core';\n\n/** Current version of Angular Material. */\nexport const VERSION = new Version('21.1.1');\n","/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.dev/license\n */\n\nimport {inject, Injectable} from '@angular/core';\nimport {DateAdapter, MAT_DATE_LOCALE} from './date-adapter';\n\n/**\n * Matches strings that have the form of a valid RFC 3339 string\n * (https://tools.ietf.org/html/rfc3339). Note that the string may not actually be a valid date\n * because the regex will match strings with an out of bounds month, date, etc.\n */\nconst ISO_8601_REGEX =\n /^\\d{4}-\\d{2}-\\d{2}(?:T\\d{2}:\\d{2}:\\d{2}(?:\\.\\d+)?(?:Z|(?:(?:\\+|-)\\d{2}:\\d{2}))?)?$/;\n\n/**\n * Matches a time string. Supported formats:\n * - {{hours}}:{{minutes}}\n * - {{hours}}:{{minutes}}:{{seconds}}\n * - {{hours}}:{{minutes}} AM/PM\n * - {{hours}}:{{minutes}}:{{seconds}} AM/PM\n * - {{hours}}.{{minutes}}\n * - {{hours}}.{{minutes}}.{{seconds}}\n * - {{hours}}.{{minutes}} AM/PM\n * - {{hours}}.{{minutes}}.{{seconds}} AM/PM\n */\nconst TIME_REGEX = /^(\\d?\\d)[:.](\\d?\\d)(?:[:.](\\d?\\d))?\\s*(AM|PM)?$/i;\n\n/** Creates an array and fills it with values. */\nfunction range<T>(length: number, valueFunction: (index: number) => T): T[] {\n const valuesArray = Array(length);\n for (let i = 0; i < length; i++) {\n valuesArray[i] = valueFunction(i);\n }\n return valuesArray;\n}\n\n/** Adapts the native JS Date for use with cdk-based components that work with dates. */\n@Injectable()\nexport class NativeDateAdapter extends DateAdapter<Date> {\n /** The injected locale. */\n private readonly _matDateLocale = inject(MAT_DATE_LOCALE, {optional: true});\n\n constructor(...args: unknown[]);\n\n constructor() {\n super();\n\n const matDateLocale = inject(MAT_DATE_LOCALE, {optional: true});\n\n if (matDateLocale !== undefined) {\n this._matDateLocale = matDateLocale;\n }\n\n super.setLocale(this._matDateLocale);\n }\n\n getYear(date: Date): number {\n return date.getFullYear();\n }\n\n getMonth(date: Date): number {\n return date.getMonth();\n }\n\n getDate(date: Date): number {\n return date.getDate();\n }\n\n getDayOfWeek(date: Date): number {\n return date.getDay();\n }\n\n getMonthNames(style: 'long' | 'short' | 'narrow'): string[] {\n const dtf = new Intl.DateTimeFormat(this.locale, {month: style, timeZone: 'utc'});\n return range(12, i => this._format(dtf, new Date(2017, i, 1)));\n }\n\n getDateNames(): string[] {\n const dtf = new Intl.DateTimeFormat(this.locale, {day: 'numeric', timeZone: 'utc'});\n return range(31, i => this._format(dtf, new Date(2017, 0, i + 1)));\n }\n\n getDayOfWeekNames(style: 'long' | 'short' | 'narrow'): string[] {\n const dtf = new Intl.DateTimeFormat(this.locale, {weekday: style, timeZone: 'utc'});\n return range(7, i => this._format(dtf, new Date(2017, 0, i + 1)));\n }\n\n getYearName(date: Date): string {\n const dtf = new Intl.DateTimeFormat(this.locale, {year: 'numeric', timeZone: 'utc'});\n return this._format(dtf, date);\n }\n\n getFirstDayOfWeek(): number {\n // At the time of writing `Intl.Locale` isn't available\n // in the internal types so we need to cast to `any`.\n if (typeof Intl !== 'undefined' && (Intl as any).Locale) {\n const locale = new (Intl as any).Locale(this.locale) as {\n getWeekInfo?: () => {firstDay: number};\n weekInfo?: {firstDay: number};\n };\n\n // Some browsers implement a `getWeekInfo` method while others have a `weekInfo` getter.\n // Note that this isn't supported in all browsers so we need to null check it.\n const firstDay = (locale.getWeekInfo?.() || locale.weekInfo)?.firstDay ?? 0;\n\n // `weekInfo.firstDay` is a number between 1 and 7 where, starting from Monday,\n // whereas our representation is 0 to 6 where 0 is Sunday so we need to normalize it.\n return firstDay === 7 ? 0 : firstDay;\n }\n\n // Default to Sunday if the browser doesn't provide the week information.\n return 0;\n }\n\n getNumDaysInMonth(date: Date): number {\n return this.getDate(\n this._createDateWithOverflow(this.getYear(date), this.getMonth(date) + 1, 0),\n );\n }\n\n clone(date: Date): Date {\n return new Date(date.getTime());\n }\n\n createDate(year: number, month: number, date: number): Date {\n if (typeof ngDevMode === 'undefined' || ngDevMode) {\n // Check for invalid month and date (except upper bound on date which we have to check after\n // creating the Date).\n if (month < 0 || month > 11) {\n throw Error(`Invalid month index \"${month}\". Month index has to be between 0 and 11.`);\n }\n\n if (date < 1) {\n throw Error(`Invalid date \"${date}\". Date has to be greater than 0.`);\n }\n }\n\n let result = this._createDateWithOverflow(year, month, date);\n // Check that the date wasn't above the upper bound for the month, causing the month to overflow\n if (result.getMonth() != month && (typeof ngDevMode === 'undefined' || ngDevMode)) {\n throw Error(`Invalid date \"${date}\" for month with index \"${month}\".`);\n }\n\n return result;\n }\n\n today(): Date {\n return new Date();\n }\n\n parse(value: any, parseFormat?: any): Date | null {\n // We have no way using the native JS Date to set the parse format or locale, so we ignore these\n // parameters.\n if (typeof value == 'number') {\n return new Date(value);\n }\n return value ? new Date(Date.parse(value)) : null;\n }\n\n format(date: Date, displayFormat: Object): string {\n if (!this.isValid(date)) {\n throw Error('NativeDateAdapter: Cannot format invalid date.');\n }\n\n const dtf = new Intl.DateTimeFormat(this.locale, {...displayFormat, timeZone: 'utc'});\n return this._format(dtf, date);\n }\n\n addCalendarYears(date: Date, years: number): Date {\n return this.addCalendarMonths(date, years * 12);\n }\n\n addCalendarMonths(date: Date, months: number): Date {\n let newDate = this._createDateWithOverflow(\n this.getYear(date),\n this.getMonth(date) + months,\n this.getDate(date),\n );\n\n // It's possible to wind up in the wrong month if the original month has more days than the new\n // month. In this case we want to go to the last day of the desired month.\n // Note: the additional + 12 % 12 ensures we end up with a positive number, since JS % doesn't\n // guarantee this.\n if (this.getMonth(newDate) != (((this.getMonth(date) + months) % 12) + 12) % 12) {\n newDate = this._createDateWithOverflow(this.getYear(newDate), this.getMonth(newDate), 0);\n }\n\n return newDate;\n }\n\n addCalendarDays(date: Date, days: number): Date {\n return this._createDateWithOverflow(\n this.getYear(date),\n this.getMonth(date),\n this.getDate(date) + days,\n );\n }\n\n toIso8601(date: Date): string {\n return [\n date.getUTCFullYear(),\n this._2digit(date.getUTCMonth() + 1),\n this._2digit(date.getUTCDate()),\n ].join('-');\n }\n\n /**\n * Returns the given value if given a valid Date or null. Deserializes valid ISO 8601 strings\n * (https://www.ietf.org/rfc/rfc3339.txt) into valid Dates and empty string into null. Returns an\n * invalid date for all other values.\n */\n override deserialize(value: any): Date | null {\n if (typeof value === 'string') {\n if (!value) {\n return null;\n }\n // The `Date` constructor accepts formats other than ISO 8601, so we need to make sure the\n // string is the right format first.\n if (ISO_8601_REGEX.test(value)) {\n let date = new Date(value);\n if (this.isValid(date)) {\n return date;\n }\n }\n }\n return super.deserialize(value);\n }\n\n isDateInstance(obj: any) {\n return obj instanceof Date;\n }\n\n isValid(date: Date) {\n return !isNaN(date.getTime());\n }\n\n invalid(): Date {\n return new Date(NaN);\n }\n\n override setTime(target: Date, hours: number, minutes: number, seconds: number): Date {\n if (typeof ngDevMode === 'undefined' || ngDevMode) {\n if (!inRange(hours, 0, 23)) {\n throw Error(`Invalid hours \"${hours}\". Hours value must be between 0 and 23.`);\n }\n\n if (!inRange(minutes, 0, 59)) {\n throw Error(`Invalid minutes \"${minutes}\". Minutes value must be between 0 and 59.`);\n }\n\n if (!inRange(seconds, 0, 59)) {\n throw Error(`Invalid seconds \"${seconds}\". Seconds value must be between 0 and 59.`);\n }\n }\n\n const clone = this.clone(target);\n clone.setHours(hours, minutes, seconds, 0);\n return clone;\n }\n\n override getHours(date: Date): number {\n return date.getHours();\n }\n\n override getMinutes(date: Date): number {\n return date.getMinutes();\n }\n\n override getSeconds(date: Date): number {\n return date.getSeconds();\n }\n\n override parseTime(userValue: any, parseFormat?: any): Date | null {\n if (typeof userValue !== 'string') {\n return userValue instanceof Date ? new Date(userValue.getTime()) : null;\n }\n\n const value = userValue.trim();\n\n if (value.length === 0) {\n return null;\n }\n\n // Attempt to parse the value directly.\n let result = this._parseTimeString(value);\n\n // Some locales add extra characters around the time, but are otherwise parseable\n // (e.g. `00:05 ч.` in bg-BG). Try replacing all non-number and non-colon characters.\n if (result === null) {\n const withoutExtras = value.replace(/[^0-9:(AM|PM)]/gi, '').trim();\n\n if (withoutExtras.length > 0) {\n result = this._parseTimeString(withoutExtras);\n }\n }\n\n return result || this.invalid();\n }\n\n override addSeconds(date: Date, amount: number): Date {\n return new Date(date.getTime() + amount * 1000);\n }\n\n /** Creates a date but allows the month and date to overflow. */\n private _createDateWithOverflow(year: number, month: number, date: number) {\n // Passing the year to the constructor causes year numbers <100 to be converted to 19xx.\n // To work around this we use `setFullYear` and `setHours` instead.\n const d = new Date();\n d.setFullYear(year, month, date);\n d.setHours(0, 0, 0, 0);\n return d;\n }\n\n /**\n * Pads a number to make it two digits.\n * @param n The number to pad.\n * @returns The padded number.\n */\n private _2digit(n: number) {\n return ('00' + n).slice(-2);\n }\n\n /**\n * When converting Date object to string, javascript built-in functions may return wrong\n * results because it applies its internal DST rules. The DST rules around the world change\n * very frequently, and the current valid rule is not always valid in previous years though.\n * We work around this problem building a new Date object which has its internal UTC\n * representation with the local date and time.\n * @param dtf Intl.DateTimeFormat object, containing the desired string format. It must have\n * timeZone set to 'utc' to work fine.\n * @param date Date from which we want to get the string representation according to dtf\n * @returns A Date object with its UTC representation based on the passed in date info\n */\n private _format(dtf: Intl.DateTimeFormat, date: Date) {\n // Passing the year to the constructor causes year numbers <100 to be converted to 19xx.\n // To work around this we use `setUTCFullYear` and `setUTCHours` instead.\n const d = new Date();\n d.setUTCFullYear(date.getFullYear(), date.getMonth(), date.getDate());\n d.setUTCHours(date.getHours(), date.getMinutes(), date.getSeconds(), date.getMilliseconds());\n return dtf.format(d);\n }\n\n /**\n * Attempts to parse a time string into a date object. Returns null if it cannot be parsed.\n * @param value Time string to parse.\n */\n private _parseTimeString(value: string): Date | null {\n // Note: we can technically rely on the browser for the time parsing by generating\n // an ISO string and appending the string to the end of it. We don't do it, because\n // browsers aren't consistent in what they support. Some examples:\n // - Safari doesn't support AM/PM.\n // - Firefox produces a valid date object if the time string has overflows (e.g. 12:75) while\n // other browsers produce an invalid date.\n // - Safari doesn't allow padded numbers.\n const parsed = value.toUpperCase().match(TIME_REGEX);\n\n if (parsed) {\n let hours = parseInt(parsed[1]);\n const minutes = parseInt(parsed[2]);\n let seconds: number | undefined = parsed[3] == null ? undefined : parseInt(parsed[3]);\n const amPm = parsed[4] as 'AM' | 'PM' | undefined;\n\n if (hours === 12) {\n hours = amPm === 'AM' ? 0 : hours;\n } else if (amPm === 'PM') {\n hours += 12;\n }\n\n if (\n inRange(hours, 0, 23) &&\n inRange(minutes, 0, 59) &&\n (seconds == null || inRange(seconds, 0, 59))\n ) {\n return this.setTime(this.today(), hours, minutes, seconds || 0);\n }\n }\n\n return null;\n }\n}\n\n/** Checks whether a number is within a certain range. */\nfunction inRange(value: number, min: number, max: number): boolean {\n return !isNaN(value) && value >= min && value <= max;\n}\n","/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.dev/license\n */\n\nimport {MatDateFormats} from './date-formats';\n\nexport const MAT_NATIVE_DATE_FORMATS: MatDateFormats = {\n parse: {\n dateInput: null,\n timeInput: null,\n },\n display: {\n dateInput: {year: 'numeric', month: 'numeric', day: 'numeric'},\n timeInput: {hour: 'numeric', minute: 'numeric'},\n monthYearLabel: {year: 'numeric', month: 'short'},\n dateA11yLabel: {year: 'numeric', month: 'long', day: 'numeric'},\n monthYearA11yLabel: {year: 'numeric', month: 'long'},\n timeOptionLabel: {hour: 'numeric', minute: 'numeric'},\n },\n};\n","/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.dev/license\n */\n\nimport {NgModule, Provider} from '@angular/core';\nimport {DateAdapter} from './date-adapter';\nimport {MAT_DATE_FORMATS, MatDateFormats} from './date-formats';\nimport {NativeDateAdapter} from './native-date-adapter';\nimport {MAT_NATIVE_DATE_FORMATS} from './native-date-formats';\n\nexport * from './date-adapter';\nexport * from './date-formats';\nexport * from './native-date-adapter';\nexport * from './native-date-formats';\n\n@NgModule({\n providers: [{provide: DateAdapter, useClass: NativeDateAdapter}],\n})\nexport class NativeDateModule {}\n\n@NgModule({\n providers: [provideNativeDateAdapter()],\n})\nexport class MatNativeDateModule {}\n\nexport function provideNativeDateAdapter(\n formats: MatDateFormats = MAT_NATIVE_DATE_FORMATS,\n): Provider[] {\n return [\n {provide: DateAdapter, useClass: NativeDateAdapter},\n {provide: MAT_DATE_FORMATS, useValue: formats},\n ];\n}\n"],"names":["VERSION","Version","ISO_8601_REGEX","TIME_REGEX","range","length","valueFunction","valuesArray","Array","i","NativeDateAdapter","DateAdapter","_matDateLocale","inject","MAT_DATE_LOCALE","optional","constructor","matDateLocale","undefined","setLocale","getYear","date","getFullYear","getMonth","getDate","getDayOfWeek","getDay","getMonthNames","style","dtf","Intl","DateTimeFormat","locale","month","timeZone","_format","Date","getDateNames","day","getDayOfWeekNames","weekday","getYearName","year","getFirstDayOfWeek","Locale","firstDay","getWeekInfo","weekInfo","getNumDaysInMonth","_createDateWithOverflow","clone","getTime","createDate","ngDevMode","Error","result","today","parse","value","parseFormat","format","displayFormat","isValid","addCalendarYears","years","addCalendarMonths","months","newDate","addCalendarDays","days","toIso8601","getUTCFullYear","_2digit","getUTCMonth","getUTCDate","join","deserialize","test","isDateInstance","obj","isNaN","invalid","NaN","setTime","target","hours","minutes","seconds","inRange","setHours","getHours","getMinutes","getSeconds","parseTime","userValue","trim","_parseTimeString","withoutExtras","replace","addSeconds","amount","d","setFullYear","n","slice","setUTCFullYear","setUTCHours","getMilliseconds","parsed","toUpperCase","match","parseInt","amPm","deps","i0","ɵɵFactoryTarget","Injectable","decorators","min","max","MAT_NATIVE_DATE_FORMATS","dateInput","timeInput","display","hour","minute","monthYearLabel","dateA11yLabel","monthYearA11yLabel","timeOptionLabel","NativeDateModule","NgModule","providers","provide","useClass","args","MatNativeDateModule","ɵinj","ɵɵngDeclareInjector","minVersion","version","ngImport","type","provideNativeDateAdapter","formats","MAT_DATE_FORMATS","useValue"],"mappings":"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"}
1
+ {"version":3,"file":"core.mjs","sources":["../../../../../darwin_arm64-fastbuild-ST-fdfa778d11ba/bin/src/material/core/version.ts","../../../../../darwin_arm64-fastbuild-ST-fdfa778d11ba/bin/src/material/core/datetime/native-date-adapter.ts","../../../../../darwin_arm64-fastbuild-ST-fdfa778d11ba/bin/src/material/core/datetime/native-date-formats.ts","../../../../../darwin_arm64-fastbuild-ST-fdfa778d11ba/bin/src/material/core/datetime/index.ts"],"sourcesContent":["/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.dev/license\n */\n\nimport {Version} from '@angular/core';\n\n/** Current version of Angular Material. */\nexport const VERSION = new Version('21.2.0-next.1');\n","/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.dev/license\n */\n\nimport {inject, Injectable} from '@angular/core';\nimport {DateAdapter, MAT_DATE_LOCALE} from './date-adapter';\n\n/**\n * Matches strings that have the form of a valid RFC 3339 string\n * (https://tools.ietf.org/html/rfc3339). Note that the string may not actually be a valid date\n * because the regex will match strings with an out of bounds month, date, etc.\n */\nconst ISO_8601_REGEX =\n /^\\d{4}-\\d{2}-\\d{2}(?:T\\d{2}:\\d{2}:\\d{2}(?:\\.\\d+)?(?:Z|(?:(?:\\+|-)\\d{2}:\\d{2}))?)?$/;\n\n/**\n * Matches a time string. Supported formats:\n * - {{hours}}:{{minutes}}\n * - {{hours}}:{{minutes}}:{{seconds}}\n * - {{hours}}:{{minutes}} AM/PM\n * - {{hours}}:{{minutes}}:{{seconds}} AM/PM\n * - {{hours}}.{{minutes}}\n * - {{hours}}.{{minutes}}.{{seconds}}\n * - {{hours}}.{{minutes}} AM/PM\n * - {{hours}}.{{minutes}}.{{seconds}} AM/PM\n */\nconst TIME_REGEX = /^(\\d?\\d)[:.](\\d?\\d)(?:[:.](\\d?\\d))?\\s*(AM|PM)?$/i;\n\n/** Creates an array and fills it with values. */\nfunction range<T>(length: number, valueFunction: (index: number) => T): T[] {\n const valuesArray = Array(length);\n for (let i = 0; i < length; i++) {\n valuesArray[i] = valueFunction(i);\n }\n return valuesArray;\n}\n\n/** Adapts the native JS Date for use with cdk-based components that work with dates. */\n@Injectable()\nexport class NativeDateAdapter extends DateAdapter<Date> {\n /** The injected locale. */\n private readonly _matDateLocale = inject(MAT_DATE_LOCALE, {optional: true});\n\n constructor(...args: unknown[]);\n\n constructor() {\n super();\n\n const matDateLocale = inject(MAT_DATE_LOCALE, {optional: true});\n\n if (matDateLocale !== undefined) {\n this._matDateLocale = matDateLocale;\n }\n\n super.setLocale(this._matDateLocale);\n }\n\n getYear(date: Date): number {\n return date.getFullYear();\n }\n\n getMonth(date: Date): number {\n return date.getMonth();\n }\n\n getDate(date: Date): number {\n return date.getDate();\n }\n\n getDayOfWeek(date: Date): number {\n return date.getDay();\n }\n\n getMonthNames(style: 'long' | 'short' | 'narrow'): string[] {\n const dtf = new Intl.DateTimeFormat(this.locale, {month: style, timeZone: 'utc'});\n return range(12, i => this._format(dtf, new Date(2017, i, 1)));\n }\n\n getDateNames(): string[] {\n const dtf = new Intl.DateTimeFormat(this.locale, {day: 'numeric', timeZone: 'utc'});\n return range(31, i => this._format(dtf, new Date(2017, 0, i + 1)));\n }\n\n getDayOfWeekNames(style: 'long' | 'short' | 'narrow'): string[] {\n const dtf = new Intl.DateTimeFormat(this.locale, {weekday: style, timeZone: 'utc'});\n return range(7, i => this._format(dtf, new Date(2017, 0, i + 1)));\n }\n\n getYearName(date: Date): string {\n const dtf = new Intl.DateTimeFormat(this.locale, {year: 'numeric', timeZone: 'utc'});\n return this._format(dtf, date);\n }\n\n getFirstDayOfWeek(): number {\n // At the time of writing `Intl.Locale` isn't available\n // in the internal types so we need to cast to `any`.\n if (typeof Intl !== 'undefined' && (Intl as any).Locale) {\n const locale = new (Intl as any).Locale(this.locale) as {\n getWeekInfo?: () => {firstDay: number};\n weekInfo?: {firstDay: number};\n };\n\n // Some browsers implement a `getWeekInfo` method while others have a `weekInfo` getter.\n // Note that this isn't supported in all browsers so we need to null check it.\n const firstDay = (locale.getWeekInfo?.() || locale.weekInfo)?.firstDay ?? 0;\n\n // `weekInfo.firstDay` is a number between 1 and 7 where, starting from Monday,\n // whereas our representation is 0 to 6 where 0 is Sunday so we need to normalize it.\n return firstDay === 7 ? 0 : firstDay;\n }\n\n // Default to Sunday if the browser doesn't provide the week information.\n return 0;\n }\n\n getNumDaysInMonth(date: Date): number {\n return this.getDate(\n this._createDateWithOverflow(this.getYear(date), this.getMonth(date) + 1, 0),\n );\n }\n\n clone(date: Date): Date {\n return new Date(date.getTime());\n }\n\n createDate(year: number, month: number, date: number): Date {\n if (typeof ngDevMode === 'undefined' || ngDevMode) {\n // Check for invalid month and date (except upper bound on date which we have to check after\n // creating the Date).\n if (month < 0 || month > 11) {\n throw Error(`Invalid month index \"${month}\". Month index has to be between 0 and 11.`);\n }\n\n if (date < 1) {\n throw Error(`Invalid date \"${date}\". Date has to be greater than 0.`);\n }\n }\n\n let result = this._createDateWithOverflow(year, month, date);\n // Check that the date wasn't above the upper bound for the month, causing the month to overflow\n if (result.getMonth() != month && (typeof ngDevMode === 'undefined' || ngDevMode)) {\n throw Error(`Invalid date \"${date}\" for month with index \"${month}\".`);\n }\n\n return result;\n }\n\n today(): Date {\n return new Date();\n }\n\n parse(value: any, parseFormat?: any): Date | null {\n // We have no way using the native JS Date to set the parse format or locale, so we ignore these\n // parameters.\n if (typeof value == 'number') {\n return new Date(value);\n }\n return value ? new Date(Date.parse(value)) : null;\n }\n\n format(date: Date, displayFormat: Object): string {\n if (!this.isValid(date)) {\n throw Error('NativeDateAdapter: Cannot format invalid date.');\n }\n\n const dtf = new Intl.DateTimeFormat(this.locale, {...displayFormat, timeZone: 'utc'});\n return this._format(dtf, date);\n }\n\n addCalendarYears(date: Date, years: number): Date {\n return this.addCalendarMonths(date, years * 12);\n }\n\n addCalendarMonths(date: Date, months: number): Date {\n let newDate = this._createDateWithOverflow(\n this.getYear(date),\n this.getMonth(date) + months,\n this.getDate(date),\n );\n\n // It's possible to wind up in the wrong month if the original month has more days than the new\n // month. In this case we want to go to the last day of the desired month.\n // Note: the additional + 12 % 12 ensures we end up with a positive number, since JS % doesn't\n // guarantee this.\n if (this.getMonth(newDate) != (((this.getMonth(date) + months) % 12) + 12) % 12) {\n newDate = this._createDateWithOverflow(this.getYear(newDate), this.getMonth(newDate), 0);\n }\n\n return newDate;\n }\n\n addCalendarDays(date: Date, days: number): Date {\n return this._createDateWithOverflow(\n this.getYear(date),\n this.getMonth(date),\n this.getDate(date) + days,\n );\n }\n\n toIso8601(date: Date): string {\n return [\n date.getUTCFullYear(),\n this._2digit(date.getUTCMonth() + 1),\n this._2digit(date.getUTCDate()),\n ].join('-');\n }\n\n /**\n * Returns the given value if given a valid Date or null. Deserializes valid ISO 8601 strings\n * (https://www.ietf.org/rfc/rfc3339.txt) into valid Dates and empty string into null. Returns an\n * invalid date for all other values.\n */\n override deserialize(value: any): Date | null {\n if (typeof value === 'string') {\n if (!value) {\n return null;\n }\n // The `Date` constructor accepts formats other than ISO 8601, so we need to make sure the\n // string is the right format first.\n if (ISO_8601_REGEX.test(value)) {\n let date = new Date(value);\n if (this.isValid(date)) {\n return date;\n }\n }\n }\n return super.deserialize(value);\n }\n\n isDateInstance(obj: any) {\n return obj instanceof Date;\n }\n\n isValid(date: Date) {\n return !isNaN(date.getTime());\n }\n\n invalid(): Date {\n return new Date(NaN);\n }\n\n override setTime(target: Date, hours: number, minutes: number, seconds: number): Date {\n if (typeof ngDevMode === 'undefined' || ngDevMode) {\n if (!inRange(hours, 0, 23)) {\n throw Error(`Invalid hours \"${hours}\". Hours value must be between 0 and 23.`);\n }\n\n if (!inRange(minutes, 0, 59)) {\n throw Error(`Invalid minutes \"${minutes}\". Minutes value must be between 0 and 59.`);\n }\n\n if (!inRange(seconds, 0, 59)) {\n throw Error(`Invalid seconds \"${seconds}\". Seconds value must be between 0 and 59.`);\n }\n }\n\n const clone = this.clone(target);\n clone.setHours(hours, minutes, seconds, 0);\n return clone;\n }\n\n override getHours(date: Date): number {\n return date.getHours();\n }\n\n override getMinutes(date: Date): number {\n return date.getMinutes();\n }\n\n override getSeconds(date: Date): number {\n return date.getSeconds();\n }\n\n override parseTime(userValue: any, parseFormat?: any): Date | null {\n if (typeof userValue !== 'string') {\n return userValue instanceof Date ? new Date(userValue.getTime()) : null;\n }\n\n const value = userValue.trim();\n\n if (value.length === 0) {\n return null;\n }\n\n // Attempt to parse the value directly.\n let result = this._parseTimeString(value);\n\n // Some locales add extra characters around the time, but are otherwise parseable\n // (e.g. `00:05 ч.` in bg-BG). Try replacing all non-number and non-colon characters.\n if (result === null) {\n const withoutExtras = value.replace(/[^0-9:(AM|PM)]/gi, '').trim();\n\n if (withoutExtras.length > 0) {\n result = this._parseTimeString(withoutExtras);\n }\n }\n\n return result || this.invalid();\n }\n\n override addSeconds(date: Date, amount: number): Date {\n return new Date(date.getTime() + amount * 1000);\n }\n\n /** Creates a date but allows the month and date to overflow. */\n private _createDateWithOverflow(year: number, month: number, date: number) {\n // Passing the year to the constructor causes year numbers <100 to be converted to 19xx.\n // To work around this we use `setFullYear` and `setHours` instead.\n const d = new Date();\n d.setFullYear(year, month, date);\n d.setHours(0, 0, 0, 0);\n return d;\n }\n\n /**\n * Pads a number to make it two digits.\n * @param n The number to pad.\n * @returns The padded number.\n */\n private _2digit(n: number) {\n return ('00' + n).slice(-2);\n }\n\n /**\n * When converting Date object to string, javascript built-in functions may return wrong\n * results because it applies its internal DST rules. The DST rules around the world change\n * very frequently, and the current valid rule is not always valid in previous years though.\n * We work around this problem building a new Date object which has its internal UTC\n * representation with the local date and time.\n * @param dtf Intl.DateTimeFormat object, containing the desired string format. It must have\n * timeZone set to 'utc' to work fine.\n * @param date Date from which we want to get the string representation according to dtf\n * @returns A Date object with its UTC representation based on the passed in date info\n */\n private _format(dtf: Intl.DateTimeFormat, date: Date) {\n // Passing the year to the constructor causes year numbers <100 to be converted to 19xx.\n // To work around this we use `setUTCFullYear` and `setUTCHours` instead.\n const d = new Date();\n d.setUTCFullYear(date.getFullYear(), date.getMonth(), date.getDate());\n d.setUTCHours(date.getHours(), date.getMinutes(), date.getSeconds(), date.getMilliseconds());\n return dtf.format(d);\n }\n\n /**\n * Attempts to parse a time string into a date object. Returns null if it cannot be parsed.\n * @param value Time string to parse.\n */\n private _parseTimeString(value: string): Date | null {\n // Note: we can technically rely on the browser for the time parsing by generating\n // an ISO string and appending the string to the end of it. We don't do it, because\n // browsers aren't consistent in what they support. Some examples:\n // - Safari doesn't support AM/PM.\n // - Firefox produces a valid date object if the time string has overflows (e.g. 12:75) while\n // other browsers produce an invalid date.\n // - Safari doesn't allow padded numbers.\n const parsed = value.toUpperCase().match(TIME_REGEX);\n\n if (parsed) {\n let hours = parseInt(parsed[1]);\n const minutes = parseInt(parsed[2]);\n let seconds: number | undefined = parsed[3] == null ? undefined : parseInt(parsed[3]);\n const amPm = parsed[4] as 'AM' | 'PM' | undefined;\n\n if (hours === 12) {\n hours = amPm === 'AM' ? 0 : hours;\n } else if (amPm === 'PM') {\n hours += 12;\n }\n\n if (\n inRange(hours, 0, 23) &&\n inRange(minutes, 0, 59) &&\n (seconds == null || inRange(seconds, 0, 59))\n ) {\n return this.setTime(this.today(), hours, minutes, seconds || 0);\n }\n }\n\n return null;\n }\n}\n\n/** Checks whether a number is within a certain range. */\nfunction inRange(value: number, min: number, max: number): boolean {\n return !isNaN(value) && value >= min && value <= max;\n}\n","/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.dev/license\n */\n\nimport {MatDateFormats} from './date-formats';\n\nexport const MAT_NATIVE_DATE_FORMATS: MatDateFormats = {\n parse: {\n dateInput: null,\n timeInput: null,\n },\n display: {\n dateInput: {year: 'numeric', month: 'numeric', day: 'numeric'},\n timeInput: {hour: 'numeric', minute: 'numeric'},\n monthYearLabel: {year: 'numeric', month: 'short'},\n dateA11yLabel: {year: 'numeric', month: 'long', day: 'numeric'},\n monthYearA11yLabel: {year: 'numeric', month: 'long'},\n timeOptionLabel: {hour: 'numeric', minute: 'numeric'},\n },\n};\n","/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.dev/license\n */\n\nimport {NgModule, Provider} from '@angular/core';\nimport {DateAdapter} from './date-adapter';\nimport {MAT_DATE_FORMATS, MatDateFormats} from './date-formats';\nimport {NativeDateAdapter} from './native-date-adapter';\nimport {MAT_NATIVE_DATE_FORMATS} from './native-date-formats';\n\nexport * from './date-adapter';\nexport * from './date-formats';\nexport * from './native-date-adapter';\nexport * from './native-date-formats';\n\n@NgModule({\n providers: [{provide: DateAdapter, useClass: NativeDateAdapter}],\n})\nexport class NativeDateModule {}\n\n@NgModule({\n providers: [provideNativeDateAdapter()],\n})\nexport class MatNativeDateModule {}\n\nexport function provideNativeDateAdapter(\n formats: MatDateFormats = MAT_NATIVE_DATE_FORMATS,\n): Provider[] {\n return [\n {provide: DateAdapter, useClass: NativeDateAdapter},\n {provide: MAT_DATE_FORMATS, useValue: formats},\n ];\n}\n"],"names":["VERSION","Version","ISO_8601_REGEX","TIME_REGEX","range","length","valueFunction","valuesArray","Array","i","NativeDateAdapter","DateAdapter","_matDateLocale","inject","MAT_DATE_LOCALE","optional","constructor","matDateLocale","undefined","setLocale","getYear","date","getFullYear","getMonth","getDate","getDayOfWeek","getDay","getMonthNames","style","dtf","Intl","DateTimeFormat","locale","month","timeZone","_format","Date","getDateNames","day","getDayOfWeekNames","weekday","getYearName","year","getFirstDayOfWeek","Locale","firstDay","getWeekInfo","weekInfo","getNumDaysInMonth","_createDateWithOverflow","clone","getTime","createDate","ngDevMode","Error","result","today","parse","value","parseFormat","format","displayFormat","isValid","addCalendarYears","years","addCalendarMonths","months","newDate","addCalendarDays","days","toIso8601","getUTCFullYear","_2digit","getUTCMonth","getUTCDate","join","deserialize","test","isDateInstance","obj","isNaN","invalid","NaN","setTime","target","hours","minutes","seconds","inRange","setHours","getHours","getMinutes","getSeconds","parseTime","userValue","trim","_parseTimeString","withoutExtras","replace","addSeconds","amount","d","setFullYear","n","slice","setUTCFullYear","setUTCHours","getMilliseconds","parsed","toUpperCase","match","parseInt","amPm","deps","i0","ɵɵFactoryTarget","Injectable","decorators","min","max","MAT_NATIVE_DATE_FORMATS","dateInput","timeInput","display","hour","minute","monthYearLabel","dateA11yLabel","monthYearA11yLabel","timeOptionLabel","NativeDateModule","NgModule","providers","provide","useClass","args","MatNativeDateModule","ɵinj","ɵɵngDeclareInjector","minVersion","version","ngImport","type","provideNativeDateAdapter","formats","MAT_DATE_FORMATS","useValue"],"mappings":"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"}
package/fesm2022/sort.mjs CHANGED
@@ -1,10 +1,11 @@
1
1
  import { BidiModule } from '@angular/cdk/bidi';
2
2
  import * as i0 from '@angular/core';
3
- import { InjectionToken, EventEmitter, booleanAttribute, Directive, Optional, Inject, Input, Output, Injectable, inject, ChangeDetectorRef, ElementRef, signal, Component, ViewEncapsulation, ChangeDetectionStrategy, NgModule } from '@angular/core';
3
+ import { InjectionToken, EventEmitter, booleanAttribute, Directive, Optional, Inject, Input, Output, inject, ChangeDetectorRef, ElementRef, signal, Component, ViewEncapsulation, ChangeDetectionStrategy, NgModule, Injectable } from '@angular/core';
4
4
  import { FocusMonitor, AriaDescriber } from '@angular/cdk/a11y';
5
5
  import { SPACE, ENTER } from '@angular/cdk/keycodes';
6
- import { ReplaySubject, Subject, merge } from 'rxjs';
7
6
  import { _CdkPrivateStyleLoader } from '@angular/cdk/private';
7
+ import { CdkColumnDef } from '@angular/cdk/table';
8
+ import { ReplaySubject, Subject, merge } from 'rxjs';
8
9
  import { _animationsDisabled } from './_animation-chunk.mjs';
9
10
  import { _StructuralStylesLoader } from './_structural-styles-chunk.mjs';
10
11
  import '@angular/cdk/layout';
@@ -198,43 +199,11 @@ function getSortDirectionCycle(start, disableClear) {
198
199
  return sortOrder;
199
200
  }
200
201
 
201
- class MatSortHeaderIntl {
202
- changes = new Subject();
203
- static ɵfac = i0.ɵɵngDeclareFactory({
204
- minVersion: "12.0.0",
205
- version: "21.0.3",
206
- ngImport: i0,
207
- type: MatSortHeaderIntl,
208
- deps: [],
209
- target: i0.ɵɵFactoryTarget.Injectable
210
- });
211
- static ɵprov = i0.ɵɵngDeclareInjectable({
212
- minVersion: "12.0.0",
213
- version: "21.0.3",
214
- ngImport: i0,
215
- type: MatSortHeaderIntl,
216
- providedIn: 'root'
217
- });
218
- }
219
- i0.ɵɵngDeclareClassMetadata({
220
- minVersion: "12.0.0",
221
- version: "21.0.3",
222
- ngImport: i0,
223
- type: MatSortHeaderIntl,
224
- decorators: [{
225
- type: Injectable,
226
- args: [{
227
- providedIn: 'root'
228
- }]
229
- }]
230
- });
231
-
232
202
  class MatSortHeader {
233
- _intl = inject(MatSortHeaderIntl);
234
203
  _sort = inject(MatSort, {
235
204
  optional: true
236
205
  });
237
- _columnDef = inject('MAT_SORT_HEADER_COLUMN_DEF', {
206
+ _columnDef = inject(CdkColumnDef, {
238
207
  optional: true
239
208
  });
240
209
  _changeDetectorRef = inject(ChangeDetectorRef);
@@ -466,5 +435,36 @@ i0.ɵɵngDeclareClassMetadata({
466
435
  }]
467
436
  });
468
437
 
438
+ class MatSortHeaderIntl {
439
+ changes = new Subject();
440
+ static ɵfac = i0.ɵɵngDeclareFactory({
441
+ minVersion: "12.0.0",
442
+ version: "21.0.3",
443
+ ngImport: i0,
444
+ type: MatSortHeaderIntl,
445
+ deps: [],
446
+ target: i0.ɵɵFactoryTarget.Injectable
447
+ });
448
+ static ɵprov = i0.ɵɵngDeclareInjectable({
449
+ minVersion: "12.0.0",
450
+ version: "21.0.3",
451
+ ngImport: i0,
452
+ type: MatSortHeaderIntl,
453
+ providedIn: 'root'
454
+ });
455
+ }
456
+ i0.ɵɵngDeclareClassMetadata({
457
+ minVersion: "12.0.0",
458
+ version: "21.0.3",
459
+ ngImport: i0,
460
+ type: MatSortHeaderIntl,
461
+ decorators: [{
462
+ type: Injectable,
463
+ args: [{
464
+ providedIn: 'root'
465
+ }]
466
+ }]
467
+ });
468
+
469
469
  export { MAT_SORT_DEFAULT_OPTIONS, MatSort, MatSortHeader, MatSortHeaderIntl, MatSortModule };
470
470
  //# sourceMappingURL=sort.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"sort.mjs","sources":["../../../../../darwin_arm64-fastbuild-ST-fdfa778d11ba/bin/src/material/sort/sort-errors.ts","../../../../../darwin_arm64-fastbuild-ST-fdfa778d11ba/bin/src/material/sort/sort.ts","../../../../../darwin_arm64-fastbuild-ST-fdfa778d11ba/bin/src/material/sort/sort-header-intl.ts","../../../../../darwin_arm64-fastbuild-ST-fdfa778d11ba/bin/src/material/sort/sort-header.ts","../../../../../darwin_arm64-fastbuild-ST-fdfa778d11ba/bin/src/material/sort/sort-header.html","../../../../../darwin_arm64-fastbuild-ST-fdfa778d11ba/bin/src/material/sort/sort-module.ts"],"sourcesContent":["/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.dev/license\n */\n\n/** @docs-private */\nexport function getSortDuplicateSortableIdError(id: string): Error {\n return Error(`Cannot have two MatSortables with the same id (${id}).`);\n}\n\n/** @docs-private */\nexport function getSortHeaderNotContainedWithinSortError(): Error {\n return Error(`MatSortHeader must be placed within a parent element with the MatSort directive.`);\n}\n\n/** @docs-private */\nexport function getSortHeaderMissingIdError(): Error {\n return Error(`MatSortHeader must be provided with a unique id.`);\n}\n\n/** @docs-private */\nexport function getSortInvalidDirectionError(direction: string): Error {\n return Error(`${direction} is not a valid sort direction ('asc' or 'desc').`);\n}\n","/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.dev/license\n */\n\nimport {\n Directive,\n EventEmitter,\n Inject,\n InjectionToken,\n Input,\n OnChanges,\n OnDestroy,\n OnInit,\n Optional,\n Output,\n booleanAttribute,\n} from '@angular/core';\nimport {Observable, ReplaySubject, Subject} from 'rxjs';\nimport {SortDirection} from './sort-direction';\nimport {\n getSortDuplicateSortableIdError,\n getSortHeaderMissingIdError,\n getSortInvalidDirectionError,\n} from './sort-errors';\n\n/** Position of the arrow that displays when sorted. */\nexport type SortHeaderArrowPosition = 'before' | 'after';\n\n/** Interface for a directive that holds sorting state consumed by `MatSortHeader`. */\nexport interface MatSortable {\n /** The id of the column being sorted. */\n id: string;\n\n /** Starting sort direction. */\n start: SortDirection;\n\n /** Whether to disable clearing the sorting state. */\n disableClear: boolean;\n}\n\n/** The current sort state. */\nexport interface Sort {\n /** The id of the column being sorted. */\n active: string;\n\n /** The sort direction. */\n direction: SortDirection;\n}\n\n/** Default options for `mat-sort`. */\nexport interface MatSortDefaultOptions {\n /** Whether to disable clearing the sorting state. */\n disableClear?: boolean;\n /** Position of the arrow that displays when sorted. */\n arrowPosition?: SortHeaderArrowPosition;\n}\n\n/** Injection token to be used to override the default options for `mat-sort`. */\nexport const MAT_SORT_DEFAULT_OPTIONS = new InjectionToken<MatSortDefaultOptions>(\n 'MAT_SORT_DEFAULT_OPTIONS',\n);\n\n/** Container for MatSortables to manage the sort state and provide default sort parameters. */\n@Directive({\n selector: '[matSort]',\n exportAs: 'matSort',\n host: {\n 'class': 'mat-sort',\n },\n})\nexport class MatSort implements OnChanges, OnDestroy, OnInit {\n private _initializedStream = new ReplaySubject<void>(1);\n\n /** Collection of all registered sortables that this directive manages. */\n sortables = new Map<string, MatSortable>();\n\n /** Used to notify any child components listening to state changes. */\n readonly _stateChanges = new Subject<void>();\n\n /** The id of the most recently sorted MatSortable. */\n @Input('matSortActive') active!: string;\n\n /**\n * The direction to set when an MatSortable is initially sorted.\n * May be overridden by the MatSortable's sort start.\n */\n @Input('matSortStart') start: SortDirection = 'asc';\n\n /** The sort direction of the currently active MatSortable. */\n @Input('matSortDirection')\n get direction(): SortDirection {\n return this._direction;\n }\n set direction(direction: SortDirection) {\n if (\n direction &&\n direction !== 'asc' &&\n direction !== 'desc' &&\n (typeof ngDevMode === 'undefined' || ngDevMode)\n ) {\n throw getSortInvalidDirectionError(direction);\n }\n this._direction = direction;\n }\n private _direction: SortDirection = '';\n\n /**\n * Whether to disable the user from clearing the sort by finishing the sort direction cycle.\n * May be overridden by the MatSortable's disable clear input.\n */\n @Input({alias: 'matSortDisableClear', transform: booleanAttribute})\n disableClear!: boolean;\n\n /** Whether the sortable is disabled. */\n @Input({alias: 'matSortDisabled', transform: booleanAttribute})\n disabled: boolean = false;\n\n /** Event emitted when the user changes either the active sort or sort direction. */\n @Output('matSortChange') readonly sortChange: EventEmitter<Sort> = new EventEmitter<Sort>();\n\n /** Emits when the paginator is initialized. */\n initialized: Observable<void> = this._initializedStream;\n\n constructor(\n @Optional()\n @Inject(MAT_SORT_DEFAULT_OPTIONS)\n private _defaultOptions?: MatSortDefaultOptions,\n ) {}\n\n /**\n * Register function to be used by the contained MatSortables. Adds the MatSortable to the\n * collection of MatSortables.\n */\n register(sortable: MatSortable): void {\n if (typeof ngDevMode === 'undefined' || ngDevMode) {\n if (!sortable.id) {\n throw getSortHeaderMissingIdError();\n }\n\n if (this.sortables.has(sortable.id)) {\n throw getSortDuplicateSortableIdError(sortable.id);\n }\n }\n\n this.sortables.set(sortable.id, sortable);\n }\n\n /**\n * Unregister function to be used by the contained MatSortables. Removes the MatSortable from the\n * collection of contained MatSortables.\n */\n deregister(sortable: MatSortable): void {\n this.sortables.delete(sortable.id);\n }\n\n /** Sets the active sort id and determines the new sort direction. */\n sort(sortable: MatSortable): void {\n if (this.active != sortable.id) {\n this.active = sortable.id;\n this.direction = sortable.start ? sortable.start : this.start;\n } else {\n this.direction = this.getNextSortDirection(sortable);\n }\n\n this.sortChange.emit({active: this.active, direction: this.direction});\n }\n\n /** Returns the next sort direction of the active sortable, checking for potential overrides. */\n getNextSortDirection(sortable: MatSortable): SortDirection {\n if (!sortable) {\n return '';\n }\n\n // Get the sort direction cycle with the potential sortable overrides.\n const disableClear =\n sortable?.disableClear ?? this.disableClear ?? !!this._defaultOptions?.disableClear;\n let sortDirectionCycle = getSortDirectionCycle(sortable.start || this.start, disableClear);\n\n // Get and return the next direction in the cycle\n let nextDirectionIndex = sortDirectionCycle.indexOf(this.direction) + 1;\n if (nextDirectionIndex >= sortDirectionCycle.length) {\n nextDirectionIndex = 0;\n }\n return sortDirectionCycle[nextDirectionIndex];\n }\n\n ngOnInit() {\n this._initializedStream.next();\n }\n\n ngOnChanges() {\n this._stateChanges.next();\n }\n\n ngOnDestroy() {\n this._stateChanges.complete();\n this._initializedStream.complete();\n }\n}\n\n/** Returns the sort direction cycle to use given the provided parameters of order and clear. */\nfunction getSortDirectionCycle(start: SortDirection, disableClear: boolean): SortDirection[] {\n let sortOrder: SortDirection[] = ['asc', 'desc'];\n if (start == 'desc') {\n sortOrder.reverse();\n }\n if (!disableClear) {\n sortOrder.push('');\n }\n\n return sortOrder;\n}\n","/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.dev/license\n */\n\nimport {Injectable} from '@angular/core';\nimport {Subject} from 'rxjs';\n\n/**\n * To modify the labels and text displayed, create a new instance of MatSortHeaderIntl and\n * include it in a custom provider.\n */\n@Injectable({providedIn: 'root'})\nexport class MatSortHeaderIntl {\n /**\n * Stream that emits whenever the labels here are changed. Use this to notify\n * components if the labels have changed after initialization.\n */\n readonly changes: Subject<void> = new Subject<void>();\n}\n","/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.dev/license\n */\n\nimport {AriaDescriber, FocusMonitor} from '@angular/cdk/a11y';\nimport {ENTER, SPACE} from '@angular/cdk/keycodes';\nimport {\n AfterViewInit,\n ChangeDetectionStrategy,\n Component,\n ElementRef,\n Input,\n OnDestroy,\n OnInit,\n ViewEncapsulation,\n booleanAttribute,\n inject,\n signal,\n ChangeDetectorRef,\n} from '@angular/core';\nimport {merge, Subscription} from 'rxjs';\nimport {\n MAT_SORT_DEFAULT_OPTIONS,\n MatSort,\n MatSortable,\n MatSortDefaultOptions,\n SortHeaderArrowPosition,\n} from './sort';\nimport {SortDirection} from './sort-direction';\nimport {getSortHeaderNotContainedWithinSortError} from './sort-errors';\nimport {MatSortHeaderIntl} from './sort-header-intl';\nimport {_CdkPrivateStyleLoader} from '@angular/cdk/private';\nimport {_animationsDisabled, _StructuralStylesLoader} from '../core';\n\n/**\n * Valid positions for the arrow to be in for its opacity and translation. If the state is a\n * sort direction, the position of the arrow will be above/below and opacity 0. If the state is\n * hint, the arrow will be in the center with a slight opacity. Active state means the arrow will\n * be fully opaque in the center.\n *\n * @docs-private\n * @deprecated No longer being used, to be removed.\n * @breaking-change 21.0.0\n */\nexport type ArrowViewState = SortDirection | 'hint' | 'active';\n\n/**\n * States describing the arrow's animated position (animating fromState to toState).\n * If the fromState is not defined, there will be no animated transition to the toState.\n * @docs-private\n * @deprecated No longer being used, to be removed.\n * @breaking-change 21.0.0\n */\nexport interface ArrowViewStateTransition {\n fromState?: ArrowViewState;\n toState?: ArrowViewState;\n}\n\n/** Column definition associated with a `MatSortHeader`. */\ninterface MatSortHeaderColumnDef {\n name: string;\n}\n\n/**\n * Applies sorting behavior (click to change sort) and styles to an element, including an\n * arrow to display the current sort direction.\n *\n * Must be provided with an id and contained within a parent MatSort directive.\n *\n * If used on header cells in a CdkTable, it will automatically default its id from its containing\n * column definition.\n */\n@Component({\n selector: '[mat-sort-header]',\n exportAs: 'matSortHeader',\n templateUrl: 'sort-header.html',\n styleUrl: 'sort-header.css',\n host: {\n 'class': 'mat-sort-header',\n '(click)': '_toggleOnInteraction()',\n '(keydown)': '_handleKeydown($event)',\n '(mouseleave)': '_recentlyCleared.set(null)',\n '[attr.aria-sort]': '_getAriaSortAttribute()',\n '[class.mat-sort-header-disabled]': '_isDisabled()',\n },\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class MatSortHeader implements MatSortable, OnDestroy, OnInit, AfterViewInit {\n _intl = inject(MatSortHeaderIntl);\n _sort = inject(MatSort, {optional: true})!;\n _columnDef = inject<MatSortHeaderColumnDef>('MAT_SORT_HEADER_COLUMN_DEF' as any, {\n optional: true,\n });\n private _changeDetectorRef = inject(ChangeDetectorRef);\n private _focusMonitor = inject(FocusMonitor);\n private _elementRef = inject<ElementRef<HTMLElement>>(ElementRef);\n private _ariaDescriber = inject(AriaDescriber, {optional: true});\n private _renderChanges: Subscription | undefined;\n protected _animationsDisabled = _animationsDisabled();\n\n /**\n * Indicates which state was just cleared from the sort header.\n * Will be reset on the next interaction. Used for coordinating animations.\n */\n protected _recentlyCleared = signal<SortDirection | null>(null);\n\n /**\n * The element with role=\"button\" inside this component's view. We need this\n * in order to apply a description with AriaDescriber.\n */\n private _sortButton!: HTMLElement;\n\n /**\n * ID of this sort header. If used within the context of a CdkColumnDef, this will default to\n * the column's name.\n */\n @Input('mat-sort-header') id!: string;\n\n /** Sets the position of the arrow that displays when sorted. */\n @Input() arrowPosition: SortHeaderArrowPosition = 'after';\n\n /** Overrides the sort start value of the containing MatSort for this MatSortable. */\n @Input() start!: SortDirection;\n\n /** whether the sort header is disabled. */\n @Input({transform: booleanAttribute})\n disabled: boolean = false;\n\n /**\n * Description applied to MatSortHeader's button element with aria-describedby. This text should\n * describe the action that will occur when the user clicks the sort header.\n */\n @Input()\n get sortActionDescription(): string {\n return this._sortActionDescription;\n }\n set sortActionDescription(value: string) {\n this._updateSortActionDescription(value);\n }\n // Default the action description to \"Sort\" because it's better than nothing.\n // Without a description, the button's label comes from the sort header text content,\n // which doesn't give any indication that it performs a sorting operation.\n private _sortActionDescription: string = 'Sort';\n\n /** Overrides the disable clear value of the containing MatSort for this MatSortable. */\n @Input({transform: booleanAttribute})\n disableClear!: boolean;\n\n constructor(...args: unknown[]);\n\n constructor() {\n inject(_CdkPrivateStyleLoader).load(_StructuralStylesLoader);\n const defaultOptions = inject<MatSortDefaultOptions>(MAT_SORT_DEFAULT_OPTIONS, {\n optional: true,\n });\n\n // Note that we use a string token for the `_columnDef`, because the value is provided both by\n // `material/table` and `cdk/table` and we can't have the CDK depending on Material,\n // and we want to avoid having the sort header depending on the CDK table because\n // of this single reference.\n if (!this._sort && (typeof ngDevMode === 'undefined' || ngDevMode)) {\n throw getSortHeaderNotContainedWithinSortError();\n }\n\n if (defaultOptions?.arrowPosition) {\n this.arrowPosition = defaultOptions?.arrowPosition;\n }\n }\n\n ngOnInit() {\n if (!this.id && this._columnDef) {\n this.id = this._columnDef.name;\n }\n\n this._sort.register(this);\n this._renderChanges = merge(this._sort._stateChanges, this._sort.sortChange).subscribe(() =>\n this._changeDetectorRef.markForCheck(),\n );\n this._sortButton = this._elementRef.nativeElement.querySelector('.mat-sort-header-container')!;\n this._updateSortActionDescription(this._sortActionDescription);\n }\n\n ngAfterViewInit() {\n // We use the focus monitor because we also want to style\n // things differently based on the focus origin.\n this._focusMonitor.monitor(this._elementRef, true).subscribe(() => {\n // We need the delay here, because we can trigger a signal write error if the header\n // has a signal bound to `disabled` which causes it to be blurred (see #31723.)\n Promise.resolve().then(() => this._recentlyCleared.set(null));\n });\n }\n\n ngOnDestroy() {\n this._focusMonitor.stopMonitoring(this._elementRef);\n this._sort.deregister(this);\n this._renderChanges?.unsubscribe();\n\n if (this._sortButton) {\n this._ariaDescriber?.removeDescription(this._sortButton, this._sortActionDescription);\n }\n }\n\n /** Triggers the sort on this sort header and removes the indicator hint. */\n _toggleOnInteraction() {\n if (!this._isDisabled()) {\n const wasSorted = this._isSorted();\n const prevDirection = this._sort.direction;\n this._sort.sort(this);\n this._recentlyCleared.set(wasSorted && !this._isSorted() ? prevDirection : null);\n }\n }\n\n _handleKeydown(event: KeyboardEvent) {\n if (event.keyCode === SPACE || event.keyCode === ENTER) {\n event.preventDefault();\n this._toggleOnInteraction();\n }\n }\n\n /** Whether this MatSortHeader is currently sorted in either ascending or descending order. */\n _isSorted() {\n return (\n this._sort.active == this.id &&\n (this._sort.direction === 'asc' || this._sort.direction === 'desc')\n );\n }\n\n _isDisabled() {\n return this._sort.disabled || this.disabled;\n }\n\n /**\n * Gets the aria-sort attribute that should be applied to this sort header. If this header\n * is not sorted, returns null so that the attribute is removed from the host element. Aria spec\n * says that the aria-sort property should only be present on one header at a time, so removing\n * ensures this is true.\n */\n _getAriaSortAttribute() {\n if (!this._isSorted()) {\n return 'none';\n }\n\n return this._sort.direction == 'asc' ? 'ascending' : 'descending';\n }\n\n /** Whether the arrow inside the sort header should be rendered. */\n _renderArrow() {\n return !this._isDisabled() || this._isSorted();\n }\n\n private _updateSortActionDescription(newDescription: string) {\n // We use AriaDescriber for the sort button instead of setting an `aria-label` because some\n // screen readers (notably VoiceOver) will read both the column header *and* the button's label\n // for every *cell* in the table, creating a lot of unnecessary noise.\n\n // If _sortButton is undefined, the component hasn't been initialized yet so there's\n // nothing to update in the DOM.\n if (this._sortButton) {\n // removeDescription will no-op if there is no existing message.\n // TODO(jelbourn): remove optional chaining when AriaDescriber is required.\n this._ariaDescriber?.removeDescription(this._sortButton, this._sortActionDescription);\n this._ariaDescriber?.describe(this._sortButton, newDescription);\n }\n\n this._sortActionDescription = newDescription;\n }\n}\n","<!--\n We set the `tabindex` on an element inside the table header, rather than the header itself,\n because of a bug in NVDA where having a `tabindex` on a `th` breaks keyboard navigation in the\n table (see https://github.com/nvaccess/nvda/issues/7718). This allows for the header to both\n be focusable, and have screen readers read out its `aria-sort` state. We prefer this approach\n over having a button with an `aria-label` inside the header, because the button's `aria-label`\n will be read out as the user is navigating the table's cell (see #13012).\n\n The approach is based off of: https://dequeuniversity.com/library/aria/tables/sf-sortable-grid\n-->\n<div class=\"mat-sort-header-container mat-focus-indicator\"\n [class.mat-sort-header-sorted]=\"_isSorted()\"\n [class.mat-sort-header-position-before]=\"arrowPosition === 'before'\"\n [class.mat-sort-header-descending]=\"_sort.direction === 'desc'\"\n [class.mat-sort-header-ascending]=\"_sort.direction === 'asc'\"\n [class.mat-sort-header-recently-cleared-ascending]=\"_recentlyCleared() === 'asc'\"\n [class.mat-sort-header-recently-cleared-descending]=\"_recentlyCleared() === 'desc'\"\n [class.mat-sort-header-animations-disabled]=\"_animationsDisabled\"\n [attr.tabindex]=\"_isDisabled() ? null : 0\"\n [attr.role]=\"_isDisabled() ? null : 'button'\">\n\n <!--\n TODO(crisbeto): this div isn't strictly necessary, but we have to keep it due to a large\n number of screenshot diff failures. It should be removed eventually. Note that the difference\n isn't visible with a shorter header, but once it breaks up into multiple lines, this element\n causes it to be center-aligned, whereas removing it will keep the text to the left.\n -->\n <div class=\"mat-sort-header-content\">\n <ng-content></ng-content>\n </div>\n\n <!-- Disable animations while a current animation is running -->\n @if (_renderArrow()) {\n <div class=\"mat-sort-header-arrow\">\n <ng-content select=\"[matSortHeaderIcon]\">\n <svg viewBox=\"0 -960 960 960\" focusable=\"false\" aria-hidden=\"true\">\n <path d=\"M440-240v-368L296-464l-56-56 240-240 240 240-56 56-144-144v368h-80Z\"/>\n </svg>\n </ng-content>\n </div>\n }\n</div>\n","/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.dev/license\n */\n\nimport {BidiModule} from '@angular/cdk/bidi';\nimport {NgModule} from '@angular/core';\nimport {MatSortHeader} from './sort-header';\nimport {MatSort} from './sort';\n\n@NgModule({\n imports: [MatSort, MatSortHeader],\n exports: [MatSort, MatSortHeader, BidiModule],\n})\nexport class MatSortModule {}\n"],"names":["getSortDuplicateSortableIdError","id","Error","getSortHeaderNotContainedWithinSortError","getSortHeaderMissingIdError","getSortInvalidDirectionError","direction","MAT_SORT_DEFAULT_OPTIONS","InjectionToken","MatSort","_defaultOptions","_initializedStream","ReplaySubject","sortables","Map","_stateChanges","Subject","active","start","_direction","ngDevMode","disableClear","disabled","sortChange","EventEmitter","initialized","constructor","register","sortable","has","set","deregister","delete","sort","getNextSortDirection","emit","sortDirectionCycle","getSortDirectionCycle","nextDirectionIndex","indexOf","length","ngOnInit","next","ngOnChanges","ngOnDestroy","complete","ɵfac","i0","ɵɵngDeclareFactory","minVersion","version","ngImport","type","optional","target","ɵɵFactoryTarget","Directive","isStandalone","selector","inputs","booleanAttribute","outputs","host","classAttribute","exportAs","usesOnChanges","decorators","args","Optional","Inject","Input","alias","transform","Output","sortOrder","reverse","push","MatSortHeaderIntl","changes","deps","Injectable","ɵprov","ɵɵngDeclareInjectable","providedIn","MatSortHeader","_intl","inject","_sort","_columnDef","_changeDetectorRef","ChangeDetectorRef","_focusMonitor","FocusMonitor","_elementRef","ElementRef","_ariaDescriber","AriaDescriber","_renderChanges","_animationsDisabled","_recentlyCleared","signal","_sortButton","arrowPosition","sortActionDescription","_sortActionDescription","value","_updateSortActionDescription","_CdkPrivateStyleLoader","load","_StructuralStylesLoader","defaultOptions","name","merge","subscribe","markForCheck","nativeElement","querySelector","ngAfterViewInit","monitor","Promise","resolve","then","stopMonitoring","unsubscribe","removeDescription","_toggleOnInteraction","_isDisabled","wasSorted","_isSorted","prevDirection","_handleKeydown","event","keyCode","SPACE","ENTER","preventDefault","_getAriaSortAttribute","_renderArrow","newDescription","describe","Component","ɵcmp","ɵɵngDeclareComponent","styles","changeDetection","ChangeDetectionStrategy","OnPush","encapsulation","ViewEncapsulation","None","template","MatSortModule","NgModule","imports","BidiModule","ɵinj","ɵɵngDeclareInjector","exports"],"mappings":"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"}
1
+ {"version":3,"file":"sort.mjs","sources":["../../../../../darwin_arm64-fastbuild-ST-fdfa778d11ba/bin/src/material/sort/sort-errors.ts","../../../../../darwin_arm64-fastbuild-ST-fdfa778d11ba/bin/src/material/sort/sort.ts","../../../../../darwin_arm64-fastbuild-ST-fdfa778d11ba/bin/src/material/sort/sort-header.ts","../../../../../darwin_arm64-fastbuild-ST-fdfa778d11ba/bin/src/material/sort/sort-header.html","../../../../../darwin_arm64-fastbuild-ST-fdfa778d11ba/bin/src/material/sort/sort-module.ts","../../../../../darwin_arm64-fastbuild-ST-fdfa778d11ba/bin/src/material/sort/sort-header-intl.ts"],"sourcesContent":["/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.dev/license\n */\n\n/** @docs-private */\nexport function getSortDuplicateSortableIdError(id: string): Error {\n return Error(`Cannot have two MatSortables with the same id (${id}).`);\n}\n\n/** @docs-private */\nexport function getSortHeaderNotContainedWithinSortError(): Error {\n return Error(`MatSortHeader must be placed within a parent element with the MatSort directive.`);\n}\n\n/** @docs-private */\nexport function getSortHeaderMissingIdError(): Error {\n return Error(`MatSortHeader must be provided with a unique id.`);\n}\n\n/** @docs-private */\nexport function getSortInvalidDirectionError(direction: string): Error {\n return Error(`${direction} is not a valid sort direction ('asc' or 'desc').`);\n}\n","/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.dev/license\n */\n\nimport {\n Directive,\n EventEmitter,\n Inject,\n InjectionToken,\n Input,\n OnChanges,\n OnDestroy,\n OnInit,\n Optional,\n Output,\n booleanAttribute,\n} from '@angular/core';\nimport {Observable, ReplaySubject, Subject} from 'rxjs';\nimport {SortDirection} from './sort-direction';\nimport {\n getSortDuplicateSortableIdError,\n getSortHeaderMissingIdError,\n getSortInvalidDirectionError,\n} from './sort-errors';\n\n/** Position of the arrow that displays when sorted. */\nexport type SortHeaderArrowPosition = 'before' | 'after';\n\n/** Interface for a directive that holds sorting state consumed by `MatSortHeader`. */\nexport interface MatSortable {\n /** The id of the column being sorted. */\n id: string;\n\n /** Starting sort direction. */\n start: SortDirection;\n\n /** Whether to disable clearing the sorting state. */\n disableClear: boolean;\n}\n\n/** The current sort state. */\nexport interface Sort {\n /** The id of the column being sorted. */\n active: string;\n\n /** The sort direction. */\n direction: SortDirection;\n}\n\n/** Default options for `mat-sort`. */\nexport interface MatSortDefaultOptions {\n /** Whether to disable clearing the sorting state. */\n disableClear?: boolean;\n /** Position of the arrow that displays when sorted. */\n arrowPosition?: SortHeaderArrowPosition;\n}\n\n/** Injection token to be used to override the default options for `mat-sort`. */\nexport const MAT_SORT_DEFAULT_OPTIONS = new InjectionToken<MatSortDefaultOptions>(\n 'MAT_SORT_DEFAULT_OPTIONS',\n);\n\n/** Container for MatSortables to manage the sort state and provide default sort parameters. */\n@Directive({\n selector: '[matSort]',\n exportAs: 'matSort',\n host: {\n 'class': 'mat-sort',\n },\n})\nexport class MatSort implements OnChanges, OnDestroy, OnInit {\n private _initializedStream = new ReplaySubject<void>(1);\n\n /** Collection of all registered sortables that this directive manages. */\n sortables = new Map<string, MatSortable>();\n\n /** Used to notify any child components listening to state changes. */\n readonly _stateChanges = new Subject<void>();\n\n /** The id of the most recently sorted MatSortable. */\n @Input('matSortActive') active!: string;\n\n /**\n * The direction to set when an MatSortable is initially sorted.\n * May be overridden by the MatSortable's sort start.\n */\n @Input('matSortStart') start: SortDirection = 'asc';\n\n /** The sort direction of the currently active MatSortable. */\n @Input('matSortDirection')\n get direction(): SortDirection {\n return this._direction;\n }\n set direction(direction: SortDirection) {\n if (\n direction &&\n direction !== 'asc' &&\n direction !== 'desc' &&\n (typeof ngDevMode === 'undefined' || ngDevMode)\n ) {\n throw getSortInvalidDirectionError(direction);\n }\n this._direction = direction;\n }\n private _direction: SortDirection = '';\n\n /**\n * Whether to disable the user from clearing the sort by finishing the sort direction cycle.\n * May be overridden by the MatSortable's disable clear input.\n */\n @Input({alias: 'matSortDisableClear', transform: booleanAttribute})\n disableClear!: boolean;\n\n /** Whether the sortable is disabled. */\n @Input({alias: 'matSortDisabled', transform: booleanAttribute})\n disabled: boolean = false;\n\n /** Event emitted when the user changes either the active sort or sort direction. */\n @Output('matSortChange') readonly sortChange: EventEmitter<Sort> = new EventEmitter<Sort>();\n\n /** Emits when the paginator is initialized. */\n initialized: Observable<void> = this._initializedStream;\n\n constructor(\n @Optional()\n @Inject(MAT_SORT_DEFAULT_OPTIONS)\n private _defaultOptions?: MatSortDefaultOptions,\n ) {}\n\n /**\n * Register function to be used by the contained MatSortables. Adds the MatSortable to the\n * collection of MatSortables.\n */\n register(sortable: MatSortable): void {\n if (typeof ngDevMode === 'undefined' || ngDevMode) {\n if (!sortable.id) {\n throw getSortHeaderMissingIdError();\n }\n\n if (this.sortables.has(sortable.id)) {\n throw getSortDuplicateSortableIdError(sortable.id);\n }\n }\n\n this.sortables.set(sortable.id, sortable);\n }\n\n /**\n * Unregister function to be used by the contained MatSortables. Removes the MatSortable from the\n * collection of contained MatSortables.\n */\n deregister(sortable: MatSortable): void {\n this.sortables.delete(sortable.id);\n }\n\n /** Sets the active sort id and determines the new sort direction. */\n sort(sortable: MatSortable): void {\n if (this.active != sortable.id) {\n this.active = sortable.id;\n this.direction = sortable.start ? sortable.start : this.start;\n } else {\n this.direction = this.getNextSortDirection(sortable);\n }\n\n this.sortChange.emit({active: this.active, direction: this.direction});\n }\n\n /** Returns the next sort direction of the active sortable, checking for potential overrides. */\n getNextSortDirection(sortable: MatSortable): SortDirection {\n if (!sortable) {\n return '';\n }\n\n // Get the sort direction cycle with the potential sortable overrides.\n const disableClear =\n sortable?.disableClear ?? this.disableClear ?? !!this._defaultOptions?.disableClear;\n let sortDirectionCycle = getSortDirectionCycle(sortable.start || this.start, disableClear);\n\n // Get and return the next direction in the cycle\n let nextDirectionIndex = sortDirectionCycle.indexOf(this.direction) + 1;\n if (nextDirectionIndex >= sortDirectionCycle.length) {\n nextDirectionIndex = 0;\n }\n return sortDirectionCycle[nextDirectionIndex];\n }\n\n ngOnInit() {\n this._initializedStream.next();\n }\n\n ngOnChanges() {\n this._stateChanges.next();\n }\n\n ngOnDestroy() {\n this._stateChanges.complete();\n this._initializedStream.complete();\n }\n}\n\n/** Returns the sort direction cycle to use given the provided parameters of order and clear. */\nfunction getSortDirectionCycle(start: SortDirection, disableClear: boolean): SortDirection[] {\n let sortOrder: SortDirection[] = ['asc', 'desc'];\n if (start == 'desc') {\n sortOrder.reverse();\n }\n if (!disableClear) {\n sortOrder.push('');\n }\n\n return sortOrder;\n}\n","/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.dev/license\n */\n\nimport {AriaDescriber, FocusMonitor} from '@angular/cdk/a11y';\nimport {ENTER, SPACE} from '@angular/cdk/keycodes';\nimport {\n AfterViewInit,\n ChangeDetectionStrategy,\n Component,\n ElementRef,\n Input,\n OnDestroy,\n OnInit,\n ViewEncapsulation,\n booleanAttribute,\n inject,\n signal,\n ChangeDetectorRef,\n} from '@angular/core';\nimport {_CdkPrivateStyleLoader} from '@angular/cdk/private';\nimport {CdkColumnDef} from '@angular/cdk/table';\nimport {merge, Subscription} from 'rxjs';\nimport {\n MAT_SORT_DEFAULT_OPTIONS,\n MatSort,\n MatSortable,\n MatSortDefaultOptions,\n SortHeaderArrowPosition,\n} from './sort';\nimport {SortDirection} from './sort-direction';\nimport {getSortHeaderNotContainedWithinSortError} from './sort-errors';\nimport {_animationsDisabled, _StructuralStylesLoader} from '../core';\n\n/**\n * Valid positions for the arrow to be in for its opacity and translation. If the state is a\n * sort direction, the position of the arrow will be above/below and opacity 0. If the state is\n * hint, the arrow will be in the center with a slight opacity. Active state means the arrow will\n * be fully opaque in the center.\n *\n * @docs-private\n * @deprecated No longer being used, to be removed.\n * @breaking-change 21.0.0\n */\nexport type ArrowViewState = SortDirection | 'hint' | 'active';\n\n/**\n * States describing the arrow's animated position (animating fromState to toState).\n * If the fromState is not defined, there will be no animated transition to the toState.\n * @docs-private\n * @deprecated No longer being used, to be removed.\n * @breaking-change 21.0.0\n */\nexport interface ArrowViewStateTransition {\n fromState?: ArrowViewState;\n toState?: ArrowViewState;\n}\n\n/**\n * Applies sorting behavior (click to change sort) and styles to an element, including an\n * arrow to display the current sort direction.\n *\n * Must be provided with an id and contained within a parent MatSort directive.\n *\n * If used on header cells in a CdkTable, it will automatically default its id from its containing\n * column definition.\n */\n@Component({\n selector: '[mat-sort-header]',\n exportAs: 'matSortHeader',\n templateUrl: 'sort-header.html',\n styleUrl: 'sort-header.css',\n host: {\n 'class': 'mat-sort-header',\n '(click)': '_toggleOnInteraction()',\n '(keydown)': '_handleKeydown($event)',\n '(mouseleave)': '_recentlyCleared.set(null)',\n '[attr.aria-sort]': '_getAriaSortAttribute()',\n '[class.mat-sort-header-disabled]': '_isDisabled()',\n },\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class MatSortHeader implements MatSortable, OnDestroy, OnInit, AfterViewInit {\n protected _sort = inject(MatSort, {optional: true})!;\n private _columnDef = inject(CdkColumnDef, {optional: true});\n private _changeDetectorRef = inject(ChangeDetectorRef);\n private _focusMonitor = inject(FocusMonitor);\n private _elementRef = inject<ElementRef<HTMLElement>>(ElementRef);\n private _ariaDescriber = inject(AriaDescriber, {optional: true});\n private _renderChanges: Subscription | undefined;\n protected _animationsDisabled = _animationsDisabled();\n\n /**\n * Indicates which state was just cleared from the sort header.\n * Will be reset on the next interaction. Used for coordinating animations.\n */\n protected _recentlyCleared = signal<SortDirection | null>(null);\n\n /**\n * The element with role=\"button\" inside this component's view. We need this\n * in order to apply a description with AriaDescriber.\n */\n private _sortButton!: HTMLElement;\n\n /**\n * ID of this sort header. If used within the context of a CdkColumnDef, this will default to\n * the column's name.\n */\n @Input('mat-sort-header') id!: string;\n\n /** Sets the position of the arrow that displays when sorted. */\n @Input() arrowPosition: SortHeaderArrowPosition = 'after';\n\n /** Overrides the sort start value of the containing MatSort for this MatSortable. */\n @Input() start!: SortDirection;\n\n /** whether the sort header is disabled. */\n @Input({transform: booleanAttribute})\n disabled: boolean = false;\n\n /**\n * Description applied to MatSortHeader's button element with aria-describedby. This text should\n * describe the action that will occur when the user clicks the sort header.\n */\n @Input()\n get sortActionDescription(): string {\n return this._sortActionDescription;\n }\n set sortActionDescription(value: string) {\n this._updateSortActionDescription(value);\n }\n // Default the action description to \"Sort\" because it's better than nothing.\n // Without a description, the button's label comes from the sort header text content,\n // which doesn't give any indication that it performs a sorting operation.\n private _sortActionDescription: string = 'Sort';\n\n /** Overrides the disable clear value of the containing MatSort for this MatSortable. */\n @Input({transform: booleanAttribute})\n disableClear!: boolean;\n\n constructor(...args: unknown[]);\n\n constructor() {\n inject(_CdkPrivateStyleLoader).load(_StructuralStylesLoader);\n const defaultOptions = inject<MatSortDefaultOptions>(MAT_SORT_DEFAULT_OPTIONS, {\n optional: true,\n });\n\n // Note that we use a string token for the `_columnDef`, because the value is provided both by\n // `material/table` and `cdk/table` and we can't have the CDK depending on Material,\n // and we want to avoid having the sort header depending on the CDK table because\n // of this single reference.\n if (!this._sort && (typeof ngDevMode === 'undefined' || ngDevMode)) {\n throw getSortHeaderNotContainedWithinSortError();\n }\n\n if (defaultOptions?.arrowPosition) {\n this.arrowPosition = defaultOptions?.arrowPosition;\n }\n }\n\n ngOnInit() {\n if (!this.id && this._columnDef) {\n this.id = this._columnDef.name;\n }\n\n this._sort.register(this);\n this._renderChanges = merge(this._sort._stateChanges, this._sort.sortChange).subscribe(() =>\n this._changeDetectorRef.markForCheck(),\n );\n this._sortButton = this._elementRef.nativeElement.querySelector('.mat-sort-header-container')!;\n this._updateSortActionDescription(this._sortActionDescription);\n }\n\n ngAfterViewInit() {\n // We use the focus monitor because we also want to style\n // things differently based on the focus origin.\n this._focusMonitor.monitor(this._elementRef, true).subscribe(() => {\n // We need the delay here, because we can trigger a signal write error if the header\n // has a signal bound to `disabled` which causes it to be blurred (see #31723.)\n Promise.resolve().then(() => this._recentlyCleared.set(null));\n });\n }\n\n ngOnDestroy() {\n this._focusMonitor.stopMonitoring(this._elementRef);\n this._sort.deregister(this);\n this._renderChanges?.unsubscribe();\n\n if (this._sortButton) {\n this._ariaDescriber?.removeDescription(this._sortButton, this._sortActionDescription);\n }\n }\n\n /** Triggers the sort on this sort header and removes the indicator hint. */\n _toggleOnInteraction() {\n if (!this._isDisabled()) {\n const wasSorted = this._isSorted();\n const prevDirection = this._sort.direction;\n this._sort.sort(this);\n this._recentlyCleared.set(wasSorted && !this._isSorted() ? prevDirection : null);\n }\n }\n\n _handleKeydown(event: KeyboardEvent) {\n if (event.keyCode === SPACE || event.keyCode === ENTER) {\n event.preventDefault();\n this._toggleOnInteraction();\n }\n }\n\n /** Whether this MatSortHeader is currently sorted in either ascending or descending order. */\n _isSorted() {\n return (\n this._sort.active == this.id &&\n (this._sort.direction === 'asc' || this._sort.direction === 'desc')\n );\n }\n\n _isDisabled() {\n return this._sort.disabled || this.disabled;\n }\n\n /**\n * Gets the aria-sort attribute that should be applied to this sort header. If this header\n * is not sorted, returns null so that the attribute is removed from the host element. Aria spec\n * says that the aria-sort property should only be present on one header at a time, so removing\n * ensures this is true.\n */\n _getAriaSortAttribute() {\n if (!this._isSorted()) {\n return 'none';\n }\n\n return this._sort.direction == 'asc' ? 'ascending' : 'descending';\n }\n\n /** Whether the arrow inside the sort header should be rendered. */\n _renderArrow() {\n return !this._isDisabled() || this._isSorted();\n }\n\n private _updateSortActionDescription(newDescription: string) {\n // We use AriaDescriber for the sort button instead of setting an `aria-label` because some\n // screen readers (notably VoiceOver) will read both the column header *and* the button's label\n // for every *cell* in the table, creating a lot of unnecessary noise.\n\n // If _sortButton is undefined, the component hasn't been initialized yet so there's\n // nothing to update in the DOM.\n if (this._sortButton) {\n // removeDescription will no-op if there is no existing message.\n // TODO(jelbourn): remove optional chaining when AriaDescriber is required.\n this._ariaDescriber?.removeDescription(this._sortButton, this._sortActionDescription);\n this._ariaDescriber?.describe(this._sortButton, newDescription);\n }\n\n this._sortActionDescription = newDescription;\n }\n}\n","<!--\n We set the `tabindex` on an element inside the table header, rather than the header itself,\n because of a bug in NVDA where having a `tabindex` on a `th` breaks keyboard navigation in the\n table (see https://github.com/nvaccess/nvda/issues/7718). This allows for the header to both\n be focusable, and have screen readers read out its `aria-sort` state. We prefer this approach\n over having a button with an `aria-label` inside the header, because the button's `aria-label`\n will be read out as the user is navigating the table's cell (see #13012).\n\n The approach is based off of: https://dequeuniversity.com/library/aria/tables/sf-sortable-grid\n-->\n<div class=\"mat-sort-header-container mat-focus-indicator\"\n [class.mat-sort-header-sorted]=\"_isSorted()\"\n [class.mat-sort-header-position-before]=\"arrowPosition === 'before'\"\n [class.mat-sort-header-descending]=\"_sort.direction === 'desc'\"\n [class.mat-sort-header-ascending]=\"_sort.direction === 'asc'\"\n [class.mat-sort-header-recently-cleared-ascending]=\"_recentlyCleared() === 'asc'\"\n [class.mat-sort-header-recently-cleared-descending]=\"_recentlyCleared() === 'desc'\"\n [class.mat-sort-header-animations-disabled]=\"_animationsDisabled\"\n [attr.tabindex]=\"_isDisabled() ? null : 0\"\n [attr.role]=\"_isDisabled() ? null : 'button'\">\n\n <!--\n TODO(crisbeto): this div isn't strictly necessary, but we have to keep it due to a large\n number of screenshot diff failures. It should be removed eventually. Note that the difference\n isn't visible with a shorter header, but once it breaks up into multiple lines, this element\n causes it to be center-aligned, whereas removing it will keep the text to the left.\n -->\n <div class=\"mat-sort-header-content\">\n <ng-content></ng-content>\n </div>\n\n <!-- Disable animations while a current animation is running -->\n @if (_renderArrow()) {\n <div class=\"mat-sort-header-arrow\">\n <ng-content select=\"[matSortHeaderIcon]\">\n <svg viewBox=\"0 -960 960 960\" focusable=\"false\" aria-hidden=\"true\">\n <path d=\"M440-240v-368L296-464l-56-56 240-240 240 240-56 56-144-144v368h-80Z\"/>\n </svg>\n </ng-content>\n </div>\n }\n</div>\n","/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.dev/license\n */\n\nimport {BidiModule} from '@angular/cdk/bidi';\nimport {NgModule} from '@angular/core';\nimport {MatSortHeader} from './sort-header';\nimport {MatSort} from './sort';\n\n@NgModule({\n imports: [MatSort, MatSortHeader],\n exports: [MatSort, MatSortHeader, BidiModule],\n})\nexport class MatSortModule {}\n","/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.dev/license\n */\n\nimport {Injectable} from '@angular/core';\nimport {Subject} from 'rxjs';\n\n/**\n * To modify the labels and text displayed, create a new instance of MatSortHeaderIntl and\n * include it in a custom provider.\n */\n@Injectable({providedIn: 'root'})\nexport class MatSortHeaderIntl {\n /**\n * Stream that emits whenever the labels here are changed. Use this to notify\n * components if the labels have changed after initialization.\n */\n readonly changes: Subject<void> = new Subject<void>();\n}\n"],"names":["getSortDuplicateSortableIdError","id","Error","getSortHeaderNotContainedWithinSortError","getSortHeaderMissingIdError","getSortInvalidDirectionError","direction","MAT_SORT_DEFAULT_OPTIONS","InjectionToken","MatSort","_defaultOptions","_initializedStream","ReplaySubject","sortables","Map","_stateChanges","Subject","active","start","_direction","ngDevMode","disableClear","disabled","sortChange","EventEmitter","initialized","constructor","register","sortable","has","set","deregister","delete","sort","getNextSortDirection","emit","sortDirectionCycle","getSortDirectionCycle","nextDirectionIndex","indexOf","length","ngOnInit","next","ngOnChanges","ngOnDestroy","complete","ɵfac","i0","ɵɵngDeclareFactory","minVersion","version","ngImport","type","optional","target","ɵɵFactoryTarget","Directive","isStandalone","selector","inputs","booleanAttribute","outputs","host","classAttribute","exportAs","usesOnChanges","decorators","args","Optional","Inject","Input","alias","transform","Output","sortOrder","reverse","push","MatSortHeader","_sort","inject","_columnDef","CdkColumnDef","_changeDetectorRef","ChangeDetectorRef","_focusMonitor","FocusMonitor","_elementRef","ElementRef","_ariaDescriber","AriaDescriber","_renderChanges","_animationsDisabled","_recentlyCleared","signal","_sortButton","arrowPosition","sortActionDescription","_sortActionDescription","value","_updateSortActionDescription","_CdkPrivateStyleLoader","load","_StructuralStylesLoader","defaultOptions","name","merge","subscribe","markForCheck","nativeElement","querySelector","ngAfterViewInit","monitor","Promise","resolve","then","stopMonitoring","unsubscribe","removeDescription","_toggleOnInteraction","_isDisabled","wasSorted","_isSorted","prevDirection","_handleKeydown","event","keyCode","SPACE","ENTER","preventDefault","_getAriaSortAttribute","_renderArrow","newDescription","describe","deps","Component","ɵcmp","ɵɵngDeclareComponent","styles","changeDetection","ChangeDetectionStrategy","OnPush","encapsulation","ViewEncapsulation","None","template","MatSortModule","NgModule","imports","BidiModule","ɵinj","ɵɵngDeclareInjector","exports","MatSortHeaderIntl","changes","Injectable","ɵprov","ɵɵngDeclareInjectable","providedIn"],"mappings":"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"}
@@ -336,9 +336,6 @@ class MatColumnDef extends CdkColumnDef {
336
336
  providers: [{
337
337
  provide: CdkColumnDef,
338
338
  useExisting: MatColumnDef
339
- }, {
340
- provide: 'MAT_SORT_HEADER_COLUMN_DEF',
341
- useExisting: MatColumnDef
342
339
  }],
343
340
  usesInheritance: true,
344
341
  ngImport: i0
@@ -356,9 +353,6 @@ i0.ɵɵngDeclareClassMetadata({
356
353
  providers: [{
357
354
  provide: CdkColumnDef,
358
355
  useExisting: MatColumnDef
359
- }, {
360
- provide: 'MAT_SORT_HEADER_COLUMN_DEF',
361
- useExisting: MatColumnDef
362
356
  }]
363
357
  }]
364
358
  }],
@@ -1 +1 @@
1
- {"version":3,"file":"table.mjs","sources":["../../../../../darwin_arm64-fastbuild-ST-fdfa778d11ba/bin/src/material/table/table.ts","../../../../../darwin_arm64-fastbuild-ST-fdfa778d11ba/bin/src/material/table/cell.ts","../../../../../darwin_arm64-fastbuild-ST-fdfa778d11ba/bin/src/material/table/row.ts","../../../../../darwin_arm64-fastbuild-ST-fdfa778d11ba/bin/src/material/table/text-column.ts","../../../../../darwin_arm64-fastbuild-ST-fdfa778d11ba/bin/src/material/table/table-module.ts","../../../../../darwin_arm64-fastbuild-ST-fdfa778d11ba/bin/src/material/table/table-data-source.ts"],"sourcesContent":["/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.dev/license\n */\n\nimport {ChangeDetectionStrategy, Component, Directive, ViewEncapsulation} from '@angular/core';\nimport {\n CdkTable,\n CDK_TABLE,\n STICKY_POSITIONING_LISTENER,\n HeaderRowOutlet,\n DataRowOutlet,\n NoDataRowOutlet,\n FooterRowOutlet,\n} from '@angular/cdk/table';\nimport {_DisposeViewRepeaterStrategy, _RecycleViewRepeaterStrategy} from '@angular/cdk/collections';\n\n/**\n * Enables the recycle view repeater strategy, which reduces rendering latency. Not compatible with\n * tables that animate rows.\n *\n * @deprecated This directive is a no-op and will be removed.\n * @breaking-change 23.0.0\n */\n@Directive({selector: 'mat-table[recycleRows], table[mat-table][recycleRows]'})\nexport class MatRecycleRows {}\n\n@Component({\n selector: 'mat-table, table[mat-table]',\n exportAs: 'matTable',\n // Note that according to MDN, the `caption` element has to be projected as the **first**\n // element in the table. See https://developer.mozilla.org/en-US/docs/Web/HTML/Element/caption\n template: `\n <ng-content select=\"caption\"/>\n <ng-content select=\"colgroup, col\"/>\n\n <!--\n Unprojected content throws a hydration error so we need this to capture it.\n It gets removed on the client so it doesn't affect the layout.\n -->\n @if (_isServer) {\n <ng-content/>\n }\n\n @if (_isNativeHtmlTable) {\n <thead role=\"rowgroup\">\n <ng-container headerRowOutlet/>\n </thead>\n <tbody class=\"mdc-data-table__content\" role=\"rowgroup\">\n <ng-container rowOutlet/>\n <ng-container noDataRowOutlet/>\n </tbody>\n <tfoot role=\"rowgroup\">\n <ng-container footerRowOutlet/>\n </tfoot>\n } @else {\n <ng-container headerRowOutlet/>\n <ng-container rowOutlet/>\n <ng-container noDataRowOutlet/>\n <ng-container footerRowOutlet/>\n }\n `,\n styleUrl: 'table.css',\n host: {\n 'class': 'mat-mdc-table mdc-data-table__table',\n '[class.mat-table-fixed-layout]': 'fixedLayout',\n },\n providers: [\n {provide: CdkTable, useExisting: MatTable},\n {provide: CDK_TABLE, useExisting: MatTable},\n // Prevent nested tables from seeing this table's StickyPositioningListener.\n {provide: STICKY_POSITIONING_LISTENER, useValue: null},\n ],\n encapsulation: ViewEncapsulation.None,\n // See note on CdkTable for explanation on why this uses the default change detection strategy.\n // tslint:disable-next-line:validate-decorators\n changeDetection: ChangeDetectionStrategy.Default,\n imports: [HeaderRowOutlet, DataRowOutlet, NoDataRowOutlet, FooterRowOutlet],\n})\nexport class MatTable<T> extends CdkTable<T> {\n /** Overrides the sticky CSS class set by the `CdkTable`. */\n protected override stickyCssClass = 'mat-mdc-table-sticky';\n\n /** Overrides the need to add position: sticky on every sticky cell element in `CdkTable`. */\n protected override needsPositionStickyOnElement = false;\n}\n","/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.dev/license\n */\n\nimport {Directive, Input} from '@angular/core';\nimport {\n CdkCell,\n CdkCellDef,\n CdkColumnDef,\n CdkFooterCell,\n CdkFooterCellDef,\n CdkHeaderCell,\n CdkHeaderCellDef,\n} from '@angular/cdk/table';\n\n/**\n * Cell definition for the mat-table.\n * Captures the template of a column's data row cell as well as cell-specific properties.\n */\n@Directive({\n selector: '[matCellDef]',\n providers: [{provide: CdkCellDef, useExisting: MatCellDef}],\n})\nexport class MatCellDef extends CdkCellDef {}\n\n/**\n * Header cell definition for the mat-table.\n * Captures the template of a column's header cell and as well as cell-specific properties.\n */\n@Directive({\n selector: '[matHeaderCellDef]',\n providers: [{provide: CdkHeaderCellDef, useExisting: MatHeaderCellDef}],\n})\nexport class MatHeaderCellDef extends CdkHeaderCellDef {}\n\n/**\n * Footer cell definition for the mat-table.\n * Captures the template of a column's footer cell and as well as cell-specific properties.\n */\n@Directive({\n selector: '[matFooterCellDef]',\n providers: [{provide: CdkFooterCellDef, useExisting: MatFooterCellDef}],\n})\nexport class MatFooterCellDef extends CdkFooterCellDef {}\n\n/**\n * Column definition for the mat-table.\n * Defines a set of cells available for a table column.\n */\n@Directive({\n selector: '[matColumnDef]',\n providers: [\n {provide: CdkColumnDef, useExisting: MatColumnDef},\n {provide: 'MAT_SORT_HEADER_COLUMN_DEF', useExisting: MatColumnDef},\n ],\n})\nexport class MatColumnDef extends CdkColumnDef {\n /** Unique name for this column. */\n @Input('matColumnDef')\n override get name(): string {\n return this._name;\n }\n override set name(name: string) {\n this._setNameInput(name);\n }\n\n /**\n * Add \"mat-column-\" prefix in addition to \"cdk-column-\" prefix.\n * In the future, this will only add \"mat-column-\" and columnCssClassName\n * will change from type string[] to string.\n * @docs-private\n */\n protected override _updateColumnCssClassName() {\n super._updateColumnCssClassName();\n this._columnCssClassName!.push(`mat-column-${this.cssClassFriendlyName}`);\n }\n}\n\n/** Header cell template container that adds the right classes and role. */\n@Directive({\n selector: 'mat-header-cell, th[mat-header-cell]',\n host: {\n 'class': 'mat-mdc-header-cell mdc-data-table__header-cell',\n 'role': 'columnheader',\n },\n})\nexport class MatHeaderCell extends CdkHeaderCell {}\n\n/** Footer cell template container that adds the right classes and role. */\n@Directive({\n selector: 'mat-footer-cell, td[mat-footer-cell]',\n host: {\n 'class': 'mat-mdc-footer-cell mdc-data-table__cell',\n },\n})\nexport class MatFooterCell extends CdkFooterCell {}\n\n/** Cell template container that adds the right classes and role. */\n@Directive({\n selector: 'mat-cell, td[mat-cell]',\n host: {\n 'class': 'mat-mdc-cell mdc-data-table__cell',\n },\n})\nexport class MatCell extends CdkCell {}\n","/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.dev/license\n */\n\nimport {\n CdkFooterRow,\n CdkFooterRowDef,\n CdkHeaderRow,\n CdkHeaderRowDef,\n CdkRow,\n CdkRowDef,\n CdkNoDataRow,\n CdkCellOutlet,\n} from '@angular/cdk/table';\nimport {\n ChangeDetectionStrategy,\n Component,\n Directive,\n ViewEncapsulation,\n booleanAttribute,\n} from '@angular/core';\n\n// We can't reuse `CDK_ROW_TEMPLATE` because it's incompatible with local compilation mode.\nconst ROW_TEMPLATE = `<ng-container cdkCellOutlet></ng-container>`;\n\n/**\n * Header row definition for the mat-table.\n * Captures the header row's template and other header properties such as the columns to display.\n */\n@Directive({\n selector: '[matHeaderRowDef]',\n providers: [{provide: CdkHeaderRowDef, useExisting: MatHeaderRowDef}],\n inputs: [\n {name: 'columns', alias: 'matHeaderRowDef'},\n {name: 'sticky', alias: 'matHeaderRowDefSticky', transform: booleanAttribute},\n ],\n})\nexport class MatHeaderRowDef extends CdkHeaderRowDef {}\n\n/**\n * Footer row definition for the mat-table.\n * Captures the footer row's template and other footer properties such as the columns to display.\n */\n@Directive({\n selector: '[matFooterRowDef]',\n providers: [{provide: CdkFooterRowDef, useExisting: MatFooterRowDef}],\n inputs: [\n {name: 'columns', alias: 'matFooterRowDef'},\n {name: 'sticky', alias: 'matFooterRowDefSticky', transform: booleanAttribute},\n ],\n})\nexport class MatFooterRowDef extends CdkFooterRowDef {}\n\n/**\n * Data row definition for the mat-table.\n * Captures the data row's template and other properties such as the columns to display and\n * a when predicate that describes when this row should be used.\n */\n@Directive({\n selector: '[matRowDef]',\n providers: [{provide: CdkRowDef, useExisting: MatRowDef}],\n inputs: [\n {name: 'columns', alias: 'matRowDefColumns'},\n {name: 'when', alias: 'matRowDefWhen'},\n ],\n})\nexport class MatRowDef<T> extends CdkRowDef<T> {}\n\n/** Header template container that contains the cell outlet. Adds the right class and role. */\n@Component({\n selector: 'mat-header-row, tr[mat-header-row]',\n template: ROW_TEMPLATE,\n host: {\n 'class': 'mat-mdc-header-row mdc-data-table__header-row',\n 'role': 'row',\n },\n // See note on CdkTable for explanation on why this uses the default change detection strategy.\n // tslint:disable-next-line:validate-decorators\n changeDetection: ChangeDetectionStrategy.Default,\n encapsulation: ViewEncapsulation.None,\n exportAs: 'matHeaderRow',\n providers: [{provide: CdkHeaderRow, useExisting: MatHeaderRow}],\n imports: [CdkCellOutlet],\n})\nexport class MatHeaderRow extends CdkHeaderRow {}\n\n/** Footer template container that contains the cell outlet. Adds the right class and role. */\n@Component({\n selector: 'mat-footer-row, tr[mat-footer-row]',\n template: ROW_TEMPLATE,\n host: {\n 'class': 'mat-mdc-footer-row mdc-data-table__row',\n 'role': 'row',\n },\n // See note on CdkTable for explanation on why this uses the default change detection strategy.\n // tslint:disable-next-line:validate-decorators\n changeDetection: ChangeDetectionStrategy.Default,\n encapsulation: ViewEncapsulation.None,\n exportAs: 'matFooterRow',\n providers: [{provide: CdkFooterRow, useExisting: MatFooterRow}],\n imports: [CdkCellOutlet],\n})\nexport class MatFooterRow extends CdkFooterRow {}\n\n/** Data row template container that contains the cell outlet. Adds the right class and role. */\n@Component({\n selector: 'mat-row, tr[mat-row]',\n template: ROW_TEMPLATE,\n host: {\n 'class': 'mat-mdc-row mdc-data-table__row',\n 'role': 'row',\n },\n // See note on CdkTable for explanation on why this uses the default change detection strategy.\n // tslint:disable-next-line:validate-decorators\n changeDetection: ChangeDetectionStrategy.Default,\n encapsulation: ViewEncapsulation.None,\n exportAs: 'matRow',\n providers: [{provide: CdkRow, useExisting: MatRow}],\n imports: [CdkCellOutlet],\n})\nexport class MatRow extends CdkRow {}\n\n/** Row that can be used to display a message when no data is shown in the table. */\n@Directive({\n selector: 'ng-template[matNoDataRow]',\n providers: [{provide: CdkNoDataRow, useExisting: MatNoDataRow}],\n})\nexport class MatNoDataRow extends CdkNoDataRow {\n override _cellSelector = 'td, mat-cell, [mat-cell], .mat-cell';\n\n constructor() {\n super();\n this._contentClassNames.push('mat-mdc-no-data-row', 'mat-mdc-row', 'mdc-data-table__row');\n this._cellClassNames.push('mat-mdc-cell', 'mdc-data-table__cell', 'mat-no-data-cell');\n }\n}\n","/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.dev/license\n */\n\nimport {CdkTextColumn} from '@angular/cdk/table';\nimport {ChangeDetectionStrategy, Component, ViewEncapsulation} from '@angular/core';\nimport {MatColumnDef, MatHeaderCellDef, MatHeaderCell, MatCellDef, MatCell} from './cell';\n\n/**\n * Column that simply shows text content for the header and row cells. Assumes that the table\n * is using the native table implementation (`<table>`).\n *\n * By default, the name of this column will be the header text and data property accessor.\n * The header text can be overridden with the `headerText` input. Cell values can be overridden with\n * the `dataAccessor` input. Change the text justification to the start or end using the `justify`\n * input.\n */\n@Component({\n selector: 'mat-text-column',\n template: `\n <ng-container matColumnDef>\n <th mat-header-cell *matHeaderCellDef [style.text-align]=\"justify\">\n {{headerText}}\n </th>\n <td mat-cell *matCellDef=\"let data\" [style.text-align]=\"justify\">\n {{dataAccessor(data, name)}}\n </td>\n </ng-container>\n `,\n encapsulation: ViewEncapsulation.None,\n // Change detection is intentionally not set to OnPush. This component's template will be provided\n // to the table to be inserted into its view. This is problematic when change detection runs since\n // the bindings in this template will be evaluated _after_ the table's view is evaluated, which\n // mean's the template in the table's view will not have the updated value (and in fact will cause\n // an ExpressionChangedAfterItHasBeenCheckedError).\n // tslint:disable-next-line:validate-decorators\n changeDetection: ChangeDetectionStrategy.Default,\n imports: [MatColumnDef, MatHeaderCellDef, MatHeaderCell, MatCellDef, MatCell],\n})\nexport class MatTextColumn<T> extends CdkTextColumn<T> {}\n","/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.dev/license\n */\n\nimport {NgModule} from '@angular/core';\nimport {MatRecycleRows, MatTable} from './table';\nimport {BidiModule} from '@angular/cdk/bidi';\nimport {CdkTableModule} from '@angular/cdk/table';\nimport {\n MatCell,\n MatCellDef,\n MatColumnDef,\n MatFooterCell,\n MatFooterCellDef,\n MatHeaderCell,\n MatHeaderCellDef,\n} from './cell';\nimport {\n MatFooterRow,\n MatFooterRowDef,\n MatHeaderRow,\n MatHeaderRowDef,\n MatRow,\n MatRowDef,\n MatNoDataRow,\n} from './row';\nimport {MatTextColumn} from './text-column';\n\nconst EXPORTED_DECLARATIONS = [\n // Table\n MatTable,\n MatRecycleRows,\n\n // Template defs\n MatHeaderCellDef,\n MatHeaderRowDef,\n MatColumnDef,\n MatCellDef,\n MatRowDef,\n MatFooterCellDef,\n MatFooterRowDef,\n\n // Cell directives\n MatHeaderCell,\n MatCell,\n MatFooterCell,\n\n // Row directives\n MatHeaderRow,\n MatRow,\n MatFooterRow,\n MatNoDataRow,\n\n MatTextColumn,\n];\n\n@NgModule({\n imports: [CdkTableModule, ...EXPORTED_DECLARATIONS],\n exports: [BidiModule, EXPORTED_DECLARATIONS],\n})\nexport class MatTableModule {}\n","/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.dev/license\n */\n\nimport {MatPaginator, PageEvent} from '../paginator';\nimport {\n BehaviorSubject,\n combineLatest,\n merge,\n Observable,\n of as observableOf,\n Subject,\n Subscription,\n} from 'rxjs';\nimport {DataSource} from '@angular/cdk/collections';\nimport {MatSort, Sort} from '../sort';\nimport {_isNumberValue} from '@angular/cdk/coercion';\nimport {map} from 'rxjs/operators';\n\n/**\n * Corresponds to `Number.MAX_SAFE_INTEGER`. Moved out into a variable here due to\n * flaky browser support and the value not being defined in Closure's typings.\n */\nconst MAX_SAFE_INTEGER = 9007199254740991;\n\n/**\n * Data source that accepts a client-side data array and includes native support of filtering,\n * sorting (using MatSort), and pagination (using MatPaginator).\n *\n * Allows for sort customization by overriding sortingDataAccessor, which defines how data\n * properties are accessed. Also allows for filter customization by overriding filterPredicate,\n * which defines how row data is converted to a string for filter matching.\n *\n * **Note:** This class is meant to be a simple data source to help you get started. As such\n * it isn't equipped to handle some more advanced cases like robust i18n support or server-side\n * interactions. If your app needs to support more advanced use cases, consider implementing your\n * own `DataSource`.\n */\nexport class MatTableDataSource<\n // TODO: Remove `any` type below in a breaking change:\n T extends object | any,\n P extends MatPaginator = MatPaginator,\n> extends DataSource<T> {\n /** Stream that emits when a new data array is set on the data source. */\n private readonly _data: BehaviorSubject<T[]>;\n\n /** Stream emitting render data to the table (depends on ordered data changes). */\n private readonly _renderData = new BehaviorSubject<T[]>([]);\n\n /** Stream that emits when a new filter string is set on the data source. */\n private readonly _filter = new BehaviorSubject<string>('');\n\n /** Used to react to internal changes of the paginator that are made by the data source itself. */\n private readonly _internalPageChanges = new Subject<void>();\n\n /**\n * Subscription to the changes that should trigger an update to the table's rendered rows, such\n * as filtering, sorting, pagination, or base data changes.\n */\n _renderChangesSubscription: Subscription | null = null;\n\n /**\n * The filtered set of data that has been matched by the filter string, or all the data if there\n * is no filter. Useful for knowing the set of data the table represents.\n * For example, a 'selectAll()' function would likely want to select the set of filtered data\n * shown to the user rather than all the data.\n */\n filteredData!: T[];\n\n /** Array of data that should be rendered by the table, where each object represents one row. */\n get data() {\n return this._data.value;\n }\n\n set data(data: T[]) {\n data = Array.isArray(data) ? data : [];\n this._data.next(data);\n // Normally the `filteredData` is updated by the re-render\n // subscription, but that won't happen if it's inactive.\n if (!this._renderChangesSubscription) {\n this._filterData(data);\n }\n }\n\n /**\n * Filter term that should be used to filter out objects from the data array. To override how\n * data objects match to this filter string, provide a custom function for filterPredicate.\n */\n get filter(): string {\n return this._filter.value;\n }\n\n set filter(filter: string) {\n this._filter.next(filter);\n // Normally the `filteredData` is updated by the re-render\n // subscription, but that won't happen if it's inactive.\n if (!this._renderChangesSubscription) {\n this._filterData(this.data);\n }\n }\n\n /**\n * Instance of the MatSort directive used by the table to control its sorting. Sort changes\n * emitted by the MatSort will trigger an update to the table's rendered data.\n */\n get sort(): MatSort | null | undefined {\n return this._sort;\n }\n\n set sort(sort: MatSort | null | undefined) {\n this._sort = sort;\n this._updateChangeSubscription();\n }\n\n private _sort: MatSort | null | undefined;\n\n /**\n * Instance of the paginator component used by the table to control what page of the data is\n * displayed. Page changes emitted by the paginator will trigger an update to the\n * table's rendered data.\n *\n * Note that the data source uses the paginator's properties to calculate which page of data\n * should be displayed. If the paginator receives its properties as template inputs,\n * e.g. `[pageLength]=100` or `[pageIndex]=1`, then be sure that the paginator's view has been\n * initialized before assigning it to this data source.\n */\n get paginator(): P | null | undefined {\n return this._paginator;\n }\n\n set paginator(paginator: P | null | undefined) {\n this._paginator = paginator;\n this._updateChangeSubscription();\n }\n\n private _paginator: P | null | undefined;\n\n /**\n * Data accessor function that is used for accessing data properties for sorting through\n * the default sortData function.\n * This default function assumes that the sort header IDs (which defaults to the column name)\n * matches the data's properties (e.g. column Xyz represents data['Xyz']).\n * May be set to a custom function for different behavior.\n * @param data Data object that is being accessed.\n * @param sortHeaderId The name of the column that represents the data.\n */\n sortingDataAccessor: (data: T, sortHeaderId: string) => string | number = (\n data: T,\n sortHeaderId: string,\n ): string | number => {\n const value = (data as unknown as Record<string, any>)[sortHeaderId];\n\n if (_isNumberValue(value)) {\n const numberValue = Number(value);\n\n // Numbers beyond `MAX_SAFE_INTEGER` can't be compared reliably so we leave them as strings.\n // See https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Number/MAX_SAFE_INTEGER\n return numberValue < MAX_SAFE_INTEGER ? numberValue : value;\n }\n\n return value;\n };\n\n /**\n * Gets a sorted copy of the data array based on the state of the MatSort. Called\n * after changes are made to the filtered data or when sort changes are emitted from MatSort.\n * By default, the function retrieves the active sort and its direction and compares data\n * by retrieving data using the sortingDataAccessor. May be overridden for a custom implementation\n * of data ordering.\n * @param data The array of data that should be sorted.\n * @param sort The connected MatSort that holds the current sort state.\n */\n sortData: (data: T[], sort: MatSort) => T[] = (data: T[], sort: MatSort): T[] => {\n const active = sort.active;\n const direction = sort.direction;\n if (!active || direction == '') {\n return data;\n }\n\n return data.sort((a, b) => {\n let valueA = this.sortingDataAccessor(a, active);\n let valueB = this.sortingDataAccessor(b, active);\n\n // If there are data in the column that can be converted to a number,\n // it must be ensured that the rest of the data\n // is of the same type so as not to order incorrectly.\n const valueAType = typeof valueA;\n const valueBType = typeof valueB;\n\n if (valueAType !== valueBType) {\n if (valueAType === 'number') {\n valueA += '';\n }\n if (valueBType === 'number') {\n valueB += '';\n }\n }\n\n // If both valueA and valueB exist (truthy), then compare the two. Otherwise, check if\n // one value exists while the other doesn't. In this case, existing value should come last.\n // This avoids inconsistent results when comparing values to undefined/null.\n // If neither value exists, return 0 (equal).\n let comparatorResult = 0;\n if (valueA != null && valueB != null) {\n // Check if one value is greater than the other; if equal, comparatorResult should remain 0.\n if (valueA > valueB) {\n comparatorResult = 1;\n } else if (valueA < valueB) {\n comparatorResult = -1;\n }\n } else if (valueA != null) {\n comparatorResult = 1;\n } else if (valueB != null) {\n comparatorResult = -1;\n }\n\n return comparatorResult * (direction == 'asc' ? 1 : -1);\n });\n };\n\n /**\n * Checks if a data object matches the data source's filter string. By default, each data object\n * is converted to a string of its properties and returns true if the filter has\n * at least one occurrence in that string. By default, the filter string has its whitespace\n * trimmed and the match is case-insensitive. May be overridden for a custom implementation of\n * filter matching.\n * @param data Data object used to check against the filter.\n * @param filter Filter string that has been set on the data source.\n * @returns Whether the filter matches against the data\n */\n filterPredicate: (data: T, filter: string) => boolean = (data: T, filter: string): boolean => {\n if (\n (typeof ngDevMode === 'undefined' || ngDevMode) &&\n (typeof data !== 'object' || data === null)\n ) {\n console.warn(\n 'Default implementation of filterPredicate requires data to be a non-null object.',\n );\n }\n\n // Transform the filter by converting it to lowercase and removing whitespace.\n const transformedFilter = filter.trim().toLowerCase();\n // Loops over the values in the array and returns true if any of them match the filter string\n // TODO: Remove `as object` cast when `T` stops extending `any`:\n return Object.values(data as object).some(value =>\n `${value}`.toLowerCase().includes(transformedFilter),\n );\n };\n\n constructor(initialData: T[] = []) {\n super();\n this._data = new BehaviorSubject<T[]>(initialData);\n this._updateChangeSubscription();\n }\n\n /**\n * Subscribe to changes that should trigger an update to the table's rendered rows. When the\n * changes occur, process the current state of the filter, sort, and pagination along with\n * the provided base data and send it to the table for rendering.\n */\n _updateChangeSubscription() {\n // Sorting and/or pagination should be watched if sort and/or paginator are provided.\n // The events should emit whenever the component emits a change or initializes, or if no\n // component is provided, a stream with just a null event should be provided.\n // The `sortChange` and `pageChange` acts as a signal to the combineLatests below so that the\n // pipeline can progress to the next step. Note that the value from these streams are not used,\n // they purely act as a signal to progress in the pipeline.\n const sortChange: Observable<Sort | null | void> = this._sort\n ? (merge(this._sort.sortChange, this._sort.initialized) as Observable<Sort | void>)\n : observableOf(null);\n const pageChange: Observable<PageEvent | null | void> = this._paginator\n ? (merge(\n this._paginator.page,\n this._internalPageChanges,\n this._paginator.initialized,\n ) as Observable<PageEvent | void>)\n : observableOf(null);\n const dataStream = this._data;\n // Watch for base data or filter changes to provide a filtered set of data.\n const filteredData = combineLatest([dataStream, this._filter]).pipe(\n map(([data]) => this._filterData(data)),\n );\n // Watch for filtered data or sort changes to provide an ordered set of data.\n const orderedData = combineLatest([filteredData, sortChange]).pipe(\n map(([data]) => this._orderData(data)),\n );\n // Watch for ordered data or page changes to provide a paged set of data.\n const paginatedData = combineLatest([orderedData, pageChange]).pipe(\n map(([data]) => this._pageData(data)),\n );\n // Watched for paged data changes and send the result to the table to render.\n this._renderChangesSubscription?.unsubscribe();\n this._renderChangesSubscription = paginatedData.subscribe(data => this._renderData.next(data));\n }\n\n /**\n * Returns a filtered data array where each filter object contains the filter string within\n * the result of the filterPredicate function. If no filter is set, returns the data array\n * as provided.\n */\n _filterData(data: T[]) {\n // If there is a filter string, filter out data that does not contain it.\n // Each data object is converted to a string using the function defined by filterPredicate.\n // May be overridden for customization.\n this.filteredData =\n this.filter == null || this.filter === ''\n ? data\n : data.filter(obj => this.filterPredicate(obj, this.filter));\n\n if (this.paginator) {\n this._updatePaginator(this.filteredData.length);\n }\n\n return this.filteredData;\n }\n\n /**\n * Returns a sorted copy of the data if MatSort has a sort applied, otherwise just returns the\n * data array as provided. Uses the default data accessor for data lookup, unless a\n * sortDataAccessor function is defined.\n */\n _orderData(data: T[]): T[] {\n // If there is no active sort or direction, return the data without trying to sort.\n if (!this.sort) {\n return data;\n }\n\n return this.sortData(data.slice(), this.sort);\n }\n\n /**\n * Returns a paged slice of the provided data array according to the provided paginator's page\n * index and length. If there is no paginator provided, returns the data array as provided.\n */\n _pageData(data: T[]): T[] {\n if (!this.paginator) {\n return data;\n }\n\n const startIndex = this.paginator.pageIndex * this.paginator.pageSize;\n return data.slice(startIndex, startIndex + this.paginator.pageSize);\n }\n\n /**\n * Updates the paginator to reflect the length of the filtered data, and makes sure that the page\n * index does not exceed the paginator's last page. Values are changed in a resolved promise to\n * guard against making property changes within a round of change detection.\n */\n _updatePaginator(filteredDataLength: number) {\n Promise.resolve().then(() => {\n const paginator = this.paginator;\n\n if (!paginator) {\n return;\n }\n\n paginator.length = filteredDataLength;\n\n // If the page index is set beyond the page, reduce it to the last page.\n if (paginator.pageIndex > 0) {\n const lastPageIndex = Math.ceil(paginator.length / paginator.pageSize) - 1 || 0;\n const newPageIndex = Math.min(paginator.pageIndex, lastPageIndex);\n\n if (newPageIndex !== paginator.pageIndex) {\n paginator.pageIndex = newPageIndex;\n\n // Since the paginator only emits after user-generated changes,\n // we need our own stream so we know to should re-render the data.\n this._internalPageChanges.next();\n }\n }\n });\n }\n\n /**\n * Used by the MatTable. Called when it connects to the data source.\n * @docs-private\n */\n connect() {\n if (!this._renderChangesSubscription) {\n this._updateChangeSubscription();\n }\n\n return this._renderData;\n }\n\n /**\n * Used by the MatTable. Called when it disconnects from the data source.\n * @docs-private\n */\n disconnect() {\n this._renderChangesSubscription?.unsubscribe();\n this._renderChangesSubscription = null;\n }\n}\n"],"names":["MatRecycleRows","deps","target","i0","ɵɵFactoryTarget","Directive","isStandalone","selector","ngImport","decorators","MatTable","CdkTable","stickyCssClass","needsPositionStickyOnElement","Component","ɵcmp","ɵɵngDeclareComponent","minVersion","version","type","host","properties","classAttribute","providers","provide","useExisting","CDK_TABLE","STICKY_POSITIONING_LISTENER","useValue","exportAs","usesInheritance","template","isInline","styles","dependencies","kind","HeaderRowOutlet","DataRowOutlet","NoDataRowOutlet","FooterRowOutlet","changeDetection","ChangeDetectionStrategy","Default","encapsulation","ViewEncapsulation","None","imports","MatCellDef","CdkCellDef","args","MatHeaderCellDef","CdkHeaderCellDef","MatFooterCellDef","CdkFooterCellDef","MatColumnDef","CdkColumnDef","name","_name","_setNameInput","_updateColumnCssClassName","_columnCssClassName","push","cssClassFriendlyName","ɵdir","ɵɵngDeclareDirective","inputs","Input","MatHeaderCell","CdkHeaderCell","attributes","MatFooterCell","CdkFooterCell","MatCell","CdkCell","ROW_TEMPLATE","MatHeaderRowDef","CdkHeaderRowDef","columns","sticky","booleanAttribute","alias","transform","MatFooterRowDef","CdkFooterRowDef","MatRowDef","CdkRowDef","when","MatHeaderRow","CdkHeaderRow","CdkCellOutlet","MatFooterRow","CdkFooterRow","MatRow","CdkRow","MatNoDataRow","CdkNoDataRow","_cellSelector","constructor","_contentClassNames","_cellClassNames","MatTextColumn","CdkTextColumn","EXPORTED_DECLARATIONS","MatTableModule","NgModule","ɵmod","ɵɵngDeclareNgModule","CdkTableModule","BidiModule","exports","MAX_SAFE_INTEGER","MatTableDataSource","DataSource","_data","_renderData","BehaviorSubject","_filter","_internalPageChanges","Subject","_renderChangesSubscription","filteredData","data","value","Array","isArray","next","_filterData","filter","sort","_sort","_updateChangeSubscription","paginator","_paginator","sortingDataAccessor","sortHeaderId","_isNumberValue","numberValue","Number","sortData","active","direction","a","b","valueA","valueB","valueAType","valueBType","comparatorResult","filterPredicate","ngDevMode","console","warn","transformedFilter","trim","toLowerCase","Object","values","some","includes","initialData","sortChange","merge","initialized","observableOf","pageChange","page","dataStream","combineLatest","pipe","map","orderedData","_orderData","paginatedData","_pageData","unsubscribe","subscribe","obj","_updatePaginator","length","slice","startIndex","pageIndex","pageSize","filteredDataLength","Promise","resolve","then","lastPageIndex","Math","ceil","newPageIndex","min","connect","disconnect"],"mappings":"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"}
1
+ {"version":3,"file":"table.mjs","sources":["../../../../../darwin_arm64-fastbuild-ST-fdfa778d11ba/bin/src/material/table/table.ts","../../../../../darwin_arm64-fastbuild-ST-fdfa778d11ba/bin/src/material/table/cell.ts","../../../../../darwin_arm64-fastbuild-ST-fdfa778d11ba/bin/src/material/table/row.ts","../../../../../darwin_arm64-fastbuild-ST-fdfa778d11ba/bin/src/material/table/text-column.ts","../../../../../darwin_arm64-fastbuild-ST-fdfa778d11ba/bin/src/material/table/table-module.ts","../../../../../darwin_arm64-fastbuild-ST-fdfa778d11ba/bin/src/material/table/table-data-source.ts"],"sourcesContent":["/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.dev/license\n */\n\nimport {ChangeDetectionStrategy, Component, Directive, ViewEncapsulation} from '@angular/core';\nimport {\n CdkTable,\n CDK_TABLE,\n STICKY_POSITIONING_LISTENER,\n HeaderRowOutlet,\n DataRowOutlet,\n NoDataRowOutlet,\n FooterRowOutlet,\n} from '@angular/cdk/table';\nimport {_DisposeViewRepeaterStrategy, _RecycleViewRepeaterStrategy} from '@angular/cdk/collections';\n\n/**\n * Enables the recycle view repeater strategy, which reduces rendering latency. Not compatible with\n * tables that animate rows.\n *\n * @deprecated This directive is a no-op and will be removed.\n * @breaking-change 23.0.0\n */\n@Directive({selector: 'mat-table[recycleRows], table[mat-table][recycleRows]'})\nexport class MatRecycleRows {}\n\n@Component({\n selector: 'mat-table, table[mat-table]',\n exportAs: 'matTable',\n // Note that according to MDN, the `caption` element has to be projected as the **first**\n // element in the table. See https://developer.mozilla.org/en-US/docs/Web/HTML/Element/caption\n template: `\n <ng-content select=\"caption\"/>\n <ng-content select=\"colgroup, col\"/>\n\n <!--\n Unprojected content throws a hydration error so we need this to capture it.\n It gets removed on the client so it doesn't affect the layout.\n -->\n @if (_isServer) {\n <ng-content/>\n }\n\n @if (_isNativeHtmlTable) {\n <thead role=\"rowgroup\">\n <ng-container headerRowOutlet/>\n </thead>\n <tbody class=\"mdc-data-table__content\" role=\"rowgroup\">\n <ng-container rowOutlet/>\n <ng-container noDataRowOutlet/>\n </tbody>\n <tfoot role=\"rowgroup\">\n <ng-container footerRowOutlet/>\n </tfoot>\n } @else {\n <ng-container headerRowOutlet/>\n <ng-container rowOutlet/>\n <ng-container noDataRowOutlet/>\n <ng-container footerRowOutlet/>\n }\n `,\n styleUrl: 'table.css',\n host: {\n 'class': 'mat-mdc-table mdc-data-table__table',\n '[class.mat-table-fixed-layout]': 'fixedLayout',\n },\n providers: [\n {provide: CdkTable, useExisting: MatTable},\n {provide: CDK_TABLE, useExisting: MatTable},\n // Prevent nested tables from seeing this table's StickyPositioningListener.\n {provide: STICKY_POSITIONING_LISTENER, useValue: null},\n ],\n encapsulation: ViewEncapsulation.None,\n // See note on CdkTable for explanation on why this uses the default change detection strategy.\n // tslint:disable-next-line:validate-decorators\n changeDetection: ChangeDetectionStrategy.Default,\n imports: [HeaderRowOutlet, DataRowOutlet, NoDataRowOutlet, FooterRowOutlet],\n})\nexport class MatTable<T> extends CdkTable<T> {\n /** Overrides the sticky CSS class set by the `CdkTable`. */\n protected override stickyCssClass = 'mat-mdc-table-sticky';\n\n /** Overrides the need to add position: sticky on every sticky cell element in `CdkTable`. */\n protected override needsPositionStickyOnElement = false;\n}\n","/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.dev/license\n */\n\nimport {Directive, Input} from '@angular/core';\nimport {\n CdkCell,\n CdkCellDef,\n CdkColumnDef,\n CdkFooterCell,\n CdkFooterCellDef,\n CdkHeaderCell,\n CdkHeaderCellDef,\n} from '@angular/cdk/table';\n\n/**\n * Cell definition for the mat-table.\n * Captures the template of a column's data row cell as well as cell-specific properties.\n */\n@Directive({\n selector: '[matCellDef]',\n providers: [{provide: CdkCellDef, useExisting: MatCellDef}],\n})\nexport class MatCellDef extends CdkCellDef {}\n\n/**\n * Header cell definition for the mat-table.\n * Captures the template of a column's header cell and as well as cell-specific properties.\n */\n@Directive({\n selector: '[matHeaderCellDef]',\n providers: [{provide: CdkHeaderCellDef, useExisting: MatHeaderCellDef}],\n})\nexport class MatHeaderCellDef extends CdkHeaderCellDef {}\n\n/**\n * Footer cell definition for the mat-table.\n * Captures the template of a column's footer cell and as well as cell-specific properties.\n */\n@Directive({\n selector: '[matFooterCellDef]',\n providers: [{provide: CdkFooterCellDef, useExisting: MatFooterCellDef}],\n})\nexport class MatFooterCellDef extends CdkFooterCellDef {}\n\n/**\n * Column definition for the mat-table.\n * Defines a set of cells available for a table column.\n */\n@Directive({\n selector: '[matColumnDef]',\n providers: [{provide: CdkColumnDef, useExisting: MatColumnDef}],\n})\nexport class MatColumnDef extends CdkColumnDef {\n /** Unique name for this column. */\n @Input('matColumnDef')\n override get name(): string {\n return this._name;\n }\n override set name(name: string) {\n this._setNameInput(name);\n }\n\n /**\n * Add \"mat-column-\" prefix in addition to \"cdk-column-\" prefix.\n * In the future, this will only add \"mat-column-\" and columnCssClassName\n * will change from type string[] to string.\n * @docs-private\n */\n protected override _updateColumnCssClassName() {\n super._updateColumnCssClassName();\n this._columnCssClassName!.push(`mat-column-${this.cssClassFriendlyName}`);\n }\n}\n\n/** Header cell template container that adds the right classes and role. */\n@Directive({\n selector: 'mat-header-cell, th[mat-header-cell]',\n host: {\n 'class': 'mat-mdc-header-cell mdc-data-table__header-cell',\n 'role': 'columnheader',\n },\n})\nexport class MatHeaderCell extends CdkHeaderCell {}\n\n/** Footer cell template container that adds the right classes and role. */\n@Directive({\n selector: 'mat-footer-cell, td[mat-footer-cell]',\n host: {\n 'class': 'mat-mdc-footer-cell mdc-data-table__cell',\n },\n})\nexport class MatFooterCell extends CdkFooterCell {}\n\n/** Cell template container that adds the right classes and role. */\n@Directive({\n selector: 'mat-cell, td[mat-cell]',\n host: {\n 'class': 'mat-mdc-cell mdc-data-table__cell',\n },\n})\nexport class MatCell extends CdkCell {}\n","/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.dev/license\n */\n\nimport {\n CdkFooterRow,\n CdkFooterRowDef,\n CdkHeaderRow,\n CdkHeaderRowDef,\n CdkRow,\n CdkRowDef,\n CdkNoDataRow,\n CdkCellOutlet,\n} from '@angular/cdk/table';\nimport {\n ChangeDetectionStrategy,\n Component,\n Directive,\n ViewEncapsulation,\n booleanAttribute,\n} from '@angular/core';\n\n// We can't reuse `CDK_ROW_TEMPLATE` because it's incompatible with local compilation mode.\nconst ROW_TEMPLATE = `<ng-container cdkCellOutlet></ng-container>`;\n\n/**\n * Header row definition for the mat-table.\n * Captures the header row's template and other header properties such as the columns to display.\n */\n@Directive({\n selector: '[matHeaderRowDef]',\n providers: [{provide: CdkHeaderRowDef, useExisting: MatHeaderRowDef}],\n inputs: [\n {name: 'columns', alias: 'matHeaderRowDef'},\n {name: 'sticky', alias: 'matHeaderRowDefSticky', transform: booleanAttribute},\n ],\n})\nexport class MatHeaderRowDef extends CdkHeaderRowDef {}\n\n/**\n * Footer row definition for the mat-table.\n * Captures the footer row's template and other footer properties such as the columns to display.\n */\n@Directive({\n selector: '[matFooterRowDef]',\n providers: [{provide: CdkFooterRowDef, useExisting: MatFooterRowDef}],\n inputs: [\n {name: 'columns', alias: 'matFooterRowDef'},\n {name: 'sticky', alias: 'matFooterRowDefSticky', transform: booleanAttribute},\n ],\n})\nexport class MatFooterRowDef extends CdkFooterRowDef {}\n\n/**\n * Data row definition for the mat-table.\n * Captures the data row's template and other properties such as the columns to display and\n * a when predicate that describes when this row should be used.\n */\n@Directive({\n selector: '[matRowDef]',\n providers: [{provide: CdkRowDef, useExisting: MatRowDef}],\n inputs: [\n {name: 'columns', alias: 'matRowDefColumns'},\n {name: 'when', alias: 'matRowDefWhen'},\n ],\n})\nexport class MatRowDef<T> extends CdkRowDef<T> {}\n\n/** Header template container that contains the cell outlet. Adds the right class and role. */\n@Component({\n selector: 'mat-header-row, tr[mat-header-row]',\n template: ROW_TEMPLATE,\n host: {\n 'class': 'mat-mdc-header-row mdc-data-table__header-row',\n 'role': 'row',\n },\n // See note on CdkTable for explanation on why this uses the default change detection strategy.\n // tslint:disable-next-line:validate-decorators\n changeDetection: ChangeDetectionStrategy.Default,\n encapsulation: ViewEncapsulation.None,\n exportAs: 'matHeaderRow',\n providers: [{provide: CdkHeaderRow, useExisting: MatHeaderRow}],\n imports: [CdkCellOutlet],\n})\nexport class MatHeaderRow extends CdkHeaderRow {}\n\n/** Footer template container that contains the cell outlet. Adds the right class and role. */\n@Component({\n selector: 'mat-footer-row, tr[mat-footer-row]',\n template: ROW_TEMPLATE,\n host: {\n 'class': 'mat-mdc-footer-row mdc-data-table__row',\n 'role': 'row',\n },\n // See note on CdkTable for explanation on why this uses the default change detection strategy.\n // tslint:disable-next-line:validate-decorators\n changeDetection: ChangeDetectionStrategy.Default,\n encapsulation: ViewEncapsulation.None,\n exportAs: 'matFooterRow',\n providers: [{provide: CdkFooterRow, useExisting: MatFooterRow}],\n imports: [CdkCellOutlet],\n})\nexport class MatFooterRow extends CdkFooterRow {}\n\n/** Data row template container that contains the cell outlet. Adds the right class and role. */\n@Component({\n selector: 'mat-row, tr[mat-row]',\n template: ROW_TEMPLATE,\n host: {\n 'class': 'mat-mdc-row mdc-data-table__row',\n 'role': 'row',\n },\n // See note on CdkTable for explanation on why this uses the default change detection strategy.\n // tslint:disable-next-line:validate-decorators\n changeDetection: ChangeDetectionStrategy.Default,\n encapsulation: ViewEncapsulation.None,\n exportAs: 'matRow',\n providers: [{provide: CdkRow, useExisting: MatRow}],\n imports: [CdkCellOutlet],\n})\nexport class MatRow extends CdkRow {}\n\n/** Row that can be used to display a message when no data is shown in the table. */\n@Directive({\n selector: 'ng-template[matNoDataRow]',\n providers: [{provide: CdkNoDataRow, useExisting: MatNoDataRow}],\n})\nexport class MatNoDataRow extends CdkNoDataRow {\n override _cellSelector = 'td, mat-cell, [mat-cell], .mat-cell';\n\n constructor() {\n super();\n this._contentClassNames.push('mat-mdc-no-data-row', 'mat-mdc-row', 'mdc-data-table__row');\n this._cellClassNames.push('mat-mdc-cell', 'mdc-data-table__cell', 'mat-no-data-cell');\n }\n}\n","/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.dev/license\n */\n\nimport {CdkTextColumn} from '@angular/cdk/table';\nimport {ChangeDetectionStrategy, Component, ViewEncapsulation} from '@angular/core';\nimport {MatColumnDef, MatHeaderCellDef, MatHeaderCell, MatCellDef, MatCell} from './cell';\n\n/**\n * Column that simply shows text content for the header and row cells. Assumes that the table\n * is using the native table implementation (`<table>`).\n *\n * By default, the name of this column will be the header text and data property accessor.\n * The header text can be overridden with the `headerText` input. Cell values can be overridden with\n * the `dataAccessor` input. Change the text justification to the start or end using the `justify`\n * input.\n */\n@Component({\n selector: 'mat-text-column',\n template: `\n <ng-container matColumnDef>\n <th mat-header-cell *matHeaderCellDef [style.text-align]=\"justify\">\n {{headerText}}\n </th>\n <td mat-cell *matCellDef=\"let data\" [style.text-align]=\"justify\">\n {{dataAccessor(data, name)}}\n </td>\n </ng-container>\n `,\n encapsulation: ViewEncapsulation.None,\n // Change detection is intentionally not set to OnPush. This component's template will be provided\n // to the table to be inserted into its view. This is problematic when change detection runs since\n // the bindings in this template will be evaluated _after_ the table's view is evaluated, which\n // mean's the template in the table's view will not have the updated value (and in fact will cause\n // an ExpressionChangedAfterItHasBeenCheckedError).\n // tslint:disable-next-line:validate-decorators\n changeDetection: ChangeDetectionStrategy.Default,\n imports: [MatColumnDef, MatHeaderCellDef, MatHeaderCell, MatCellDef, MatCell],\n})\nexport class MatTextColumn<T> extends CdkTextColumn<T> {}\n","/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.dev/license\n */\n\nimport {NgModule} from '@angular/core';\nimport {MatRecycleRows, MatTable} from './table';\nimport {BidiModule} from '@angular/cdk/bidi';\nimport {CdkTableModule} from '@angular/cdk/table';\nimport {\n MatCell,\n MatCellDef,\n MatColumnDef,\n MatFooterCell,\n MatFooterCellDef,\n MatHeaderCell,\n MatHeaderCellDef,\n} from './cell';\nimport {\n MatFooterRow,\n MatFooterRowDef,\n MatHeaderRow,\n MatHeaderRowDef,\n MatRow,\n MatRowDef,\n MatNoDataRow,\n} from './row';\nimport {MatTextColumn} from './text-column';\n\nconst EXPORTED_DECLARATIONS = [\n // Table\n MatTable,\n MatRecycleRows,\n\n // Template defs\n MatHeaderCellDef,\n MatHeaderRowDef,\n MatColumnDef,\n MatCellDef,\n MatRowDef,\n MatFooterCellDef,\n MatFooterRowDef,\n\n // Cell directives\n MatHeaderCell,\n MatCell,\n MatFooterCell,\n\n // Row directives\n MatHeaderRow,\n MatRow,\n MatFooterRow,\n MatNoDataRow,\n\n MatTextColumn,\n];\n\n@NgModule({\n imports: [CdkTableModule, ...EXPORTED_DECLARATIONS],\n exports: [BidiModule, EXPORTED_DECLARATIONS],\n})\nexport class MatTableModule {}\n","/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.dev/license\n */\n\nimport {MatPaginator, PageEvent} from '../paginator';\nimport {\n BehaviorSubject,\n combineLatest,\n merge,\n Observable,\n of as observableOf,\n Subject,\n Subscription,\n} from 'rxjs';\nimport {DataSource} from '@angular/cdk/collections';\nimport {MatSort, Sort} from '../sort';\nimport {_isNumberValue} from '@angular/cdk/coercion';\nimport {map} from 'rxjs/operators';\n\n/**\n * Corresponds to `Number.MAX_SAFE_INTEGER`. Moved out into a variable here due to\n * flaky browser support and the value not being defined in Closure's typings.\n */\nconst MAX_SAFE_INTEGER = 9007199254740991;\n\n/**\n * Data source that accepts a client-side data array and includes native support of filtering,\n * sorting (using MatSort), and pagination (using MatPaginator).\n *\n * Allows for sort customization by overriding sortingDataAccessor, which defines how data\n * properties are accessed. Also allows for filter customization by overriding filterPredicate,\n * which defines how row data is converted to a string for filter matching.\n *\n * **Note:** This class is meant to be a simple data source to help you get started. As such\n * it isn't equipped to handle some more advanced cases like robust i18n support or server-side\n * interactions. If your app needs to support more advanced use cases, consider implementing your\n * own `DataSource`.\n */\nexport class MatTableDataSource<\n // TODO: Remove `any` type below in a breaking change:\n T extends object | any,\n P extends MatPaginator = MatPaginator,\n> extends DataSource<T> {\n /** Stream that emits when a new data array is set on the data source. */\n private readonly _data: BehaviorSubject<T[]>;\n\n /** Stream emitting render data to the table (depends on ordered data changes). */\n private readonly _renderData = new BehaviorSubject<T[]>([]);\n\n /** Stream that emits when a new filter string is set on the data source. */\n private readonly _filter = new BehaviorSubject<string>('');\n\n /** Used to react to internal changes of the paginator that are made by the data source itself. */\n private readonly _internalPageChanges = new Subject<void>();\n\n /**\n * Subscription to the changes that should trigger an update to the table's rendered rows, such\n * as filtering, sorting, pagination, or base data changes.\n */\n _renderChangesSubscription: Subscription | null = null;\n\n /**\n * The filtered set of data that has been matched by the filter string, or all the data if there\n * is no filter. Useful for knowing the set of data the table represents.\n * For example, a 'selectAll()' function would likely want to select the set of filtered data\n * shown to the user rather than all the data.\n */\n filteredData!: T[];\n\n /** Array of data that should be rendered by the table, where each object represents one row. */\n get data() {\n return this._data.value;\n }\n\n set data(data: T[]) {\n data = Array.isArray(data) ? data : [];\n this._data.next(data);\n // Normally the `filteredData` is updated by the re-render\n // subscription, but that won't happen if it's inactive.\n if (!this._renderChangesSubscription) {\n this._filterData(data);\n }\n }\n\n /**\n * Filter term that should be used to filter out objects from the data array. To override how\n * data objects match to this filter string, provide a custom function for filterPredicate.\n */\n get filter(): string {\n return this._filter.value;\n }\n\n set filter(filter: string) {\n this._filter.next(filter);\n // Normally the `filteredData` is updated by the re-render\n // subscription, but that won't happen if it's inactive.\n if (!this._renderChangesSubscription) {\n this._filterData(this.data);\n }\n }\n\n /**\n * Instance of the MatSort directive used by the table to control its sorting. Sort changes\n * emitted by the MatSort will trigger an update to the table's rendered data.\n */\n get sort(): MatSort | null | undefined {\n return this._sort;\n }\n\n set sort(sort: MatSort | null | undefined) {\n this._sort = sort;\n this._updateChangeSubscription();\n }\n\n private _sort: MatSort | null | undefined;\n\n /**\n * Instance of the paginator component used by the table to control what page of the data is\n * displayed. Page changes emitted by the paginator will trigger an update to the\n * table's rendered data.\n *\n * Note that the data source uses the paginator's properties to calculate which page of data\n * should be displayed. If the paginator receives its properties as template inputs,\n * e.g. `[pageLength]=100` or `[pageIndex]=1`, then be sure that the paginator's view has been\n * initialized before assigning it to this data source.\n */\n get paginator(): P | null | undefined {\n return this._paginator;\n }\n\n set paginator(paginator: P | null | undefined) {\n this._paginator = paginator;\n this._updateChangeSubscription();\n }\n\n private _paginator: P | null | undefined;\n\n /**\n * Data accessor function that is used for accessing data properties for sorting through\n * the default sortData function.\n * This default function assumes that the sort header IDs (which defaults to the column name)\n * matches the data's properties (e.g. column Xyz represents data['Xyz']).\n * May be set to a custom function for different behavior.\n * @param data Data object that is being accessed.\n * @param sortHeaderId The name of the column that represents the data.\n */\n sortingDataAccessor: (data: T, sortHeaderId: string) => string | number = (\n data: T,\n sortHeaderId: string,\n ): string | number => {\n const value = (data as unknown as Record<string, any>)[sortHeaderId];\n\n if (_isNumberValue(value)) {\n const numberValue = Number(value);\n\n // Numbers beyond `MAX_SAFE_INTEGER` can't be compared reliably so we leave them as strings.\n // See https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Number/MAX_SAFE_INTEGER\n return numberValue < MAX_SAFE_INTEGER ? numberValue : value;\n }\n\n return value;\n };\n\n /**\n * Gets a sorted copy of the data array based on the state of the MatSort. Called\n * after changes are made to the filtered data or when sort changes are emitted from MatSort.\n * By default, the function retrieves the active sort and its direction and compares data\n * by retrieving data using the sortingDataAccessor. May be overridden for a custom implementation\n * of data ordering.\n * @param data The array of data that should be sorted.\n * @param sort The connected MatSort that holds the current sort state.\n */\n sortData: (data: T[], sort: MatSort) => T[] = (data: T[], sort: MatSort): T[] => {\n const active = sort.active;\n const direction = sort.direction;\n if (!active || direction == '') {\n return data;\n }\n\n return data.sort((a, b) => {\n let valueA = this.sortingDataAccessor(a, active);\n let valueB = this.sortingDataAccessor(b, active);\n\n // If there are data in the column that can be converted to a number,\n // it must be ensured that the rest of the data\n // is of the same type so as not to order incorrectly.\n const valueAType = typeof valueA;\n const valueBType = typeof valueB;\n\n if (valueAType !== valueBType) {\n if (valueAType === 'number') {\n valueA += '';\n }\n if (valueBType === 'number') {\n valueB += '';\n }\n }\n\n // If both valueA and valueB exist (truthy), then compare the two. Otherwise, check if\n // one value exists while the other doesn't. In this case, existing value should come last.\n // This avoids inconsistent results when comparing values to undefined/null.\n // If neither value exists, return 0 (equal).\n let comparatorResult = 0;\n if (valueA != null && valueB != null) {\n // Check if one value is greater than the other; if equal, comparatorResult should remain 0.\n if (valueA > valueB) {\n comparatorResult = 1;\n } else if (valueA < valueB) {\n comparatorResult = -1;\n }\n } else if (valueA != null) {\n comparatorResult = 1;\n } else if (valueB != null) {\n comparatorResult = -1;\n }\n\n return comparatorResult * (direction == 'asc' ? 1 : -1);\n });\n };\n\n /**\n * Checks if a data object matches the data source's filter string. By default, each data object\n * is converted to a string of its properties and returns true if the filter has\n * at least one occurrence in that string. By default, the filter string has its whitespace\n * trimmed and the match is case-insensitive. May be overridden for a custom implementation of\n * filter matching.\n * @param data Data object used to check against the filter.\n * @param filter Filter string that has been set on the data source.\n * @returns Whether the filter matches against the data\n */\n filterPredicate: (data: T, filter: string) => boolean = (data: T, filter: string): boolean => {\n if (\n (typeof ngDevMode === 'undefined' || ngDevMode) &&\n (typeof data !== 'object' || data === null)\n ) {\n console.warn(\n 'Default implementation of filterPredicate requires data to be a non-null object.',\n );\n }\n\n // Transform the filter by converting it to lowercase and removing whitespace.\n const transformedFilter = filter.trim().toLowerCase();\n // Loops over the values in the array and returns true if any of them match the filter string\n // TODO: Remove `as object` cast when `T` stops extending `any`:\n return Object.values(data as object).some(value =>\n `${value}`.toLowerCase().includes(transformedFilter),\n );\n };\n\n constructor(initialData: T[] = []) {\n super();\n this._data = new BehaviorSubject<T[]>(initialData);\n this._updateChangeSubscription();\n }\n\n /**\n * Subscribe to changes that should trigger an update to the table's rendered rows. When the\n * changes occur, process the current state of the filter, sort, and pagination along with\n * the provided base data and send it to the table for rendering.\n */\n _updateChangeSubscription() {\n // Sorting and/or pagination should be watched if sort and/or paginator are provided.\n // The events should emit whenever the component emits a change or initializes, or if no\n // component is provided, a stream with just a null event should be provided.\n // The `sortChange` and `pageChange` acts as a signal to the combineLatests below so that the\n // pipeline can progress to the next step. Note that the value from these streams are not used,\n // they purely act as a signal to progress in the pipeline.\n const sortChange: Observable<Sort | null | void> = this._sort\n ? (merge(this._sort.sortChange, this._sort.initialized) as Observable<Sort | void>)\n : observableOf(null);\n const pageChange: Observable<PageEvent | null | void> = this._paginator\n ? (merge(\n this._paginator.page,\n this._internalPageChanges,\n this._paginator.initialized,\n ) as Observable<PageEvent | void>)\n : observableOf(null);\n const dataStream = this._data;\n // Watch for base data or filter changes to provide a filtered set of data.\n const filteredData = combineLatest([dataStream, this._filter]).pipe(\n map(([data]) => this._filterData(data)),\n );\n // Watch for filtered data or sort changes to provide an ordered set of data.\n const orderedData = combineLatest([filteredData, sortChange]).pipe(\n map(([data]) => this._orderData(data)),\n );\n // Watch for ordered data or page changes to provide a paged set of data.\n const paginatedData = combineLatest([orderedData, pageChange]).pipe(\n map(([data]) => this._pageData(data)),\n );\n // Watched for paged data changes and send the result to the table to render.\n this._renderChangesSubscription?.unsubscribe();\n this._renderChangesSubscription = paginatedData.subscribe(data => this._renderData.next(data));\n }\n\n /**\n * Returns a filtered data array where each filter object contains the filter string within\n * the result of the filterPredicate function. If no filter is set, returns the data array\n * as provided.\n */\n _filterData(data: T[]) {\n // If there is a filter string, filter out data that does not contain it.\n // Each data object is converted to a string using the function defined by filterPredicate.\n // May be overridden for customization.\n this.filteredData =\n this.filter == null || this.filter === ''\n ? data\n : data.filter(obj => this.filterPredicate(obj, this.filter));\n\n if (this.paginator) {\n this._updatePaginator(this.filteredData.length);\n }\n\n return this.filteredData;\n }\n\n /**\n * Returns a sorted copy of the data if MatSort has a sort applied, otherwise just returns the\n * data array as provided. Uses the default data accessor for data lookup, unless a\n * sortDataAccessor function is defined.\n */\n _orderData(data: T[]): T[] {\n // If there is no active sort or direction, return the data without trying to sort.\n if (!this.sort) {\n return data;\n }\n\n return this.sortData(data.slice(), this.sort);\n }\n\n /**\n * Returns a paged slice of the provided data array according to the provided paginator's page\n * index and length. If there is no paginator provided, returns the data array as provided.\n */\n _pageData(data: T[]): T[] {\n if (!this.paginator) {\n return data;\n }\n\n const startIndex = this.paginator.pageIndex * this.paginator.pageSize;\n return data.slice(startIndex, startIndex + this.paginator.pageSize);\n }\n\n /**\n * Updates the paginator to reflect the length of the filtered data, and makes sure that the page\n * index does not exceed the paginator's last page. Values are changed in a resolved promise to\n * guard against making property changes within a round of change detection.\n */\n _updatePaginator(filteredDataLength: number) {\n Promise.resolve().then(() => {\n const paginator = this.paginator;\n\n if (!paginator) {\n return;\n }\n\n paginator.length = filteredDataLength;\n\n // If the page index is set beyond the page, reduce it to the last page.\n if (paginator.pageIndex > 0) {\n const lastPageIndex = Math.ceil(paginator.length / paginator.pageSize) - 1 || 0;\n const newPageIndex = Math.min(paginator.pageIndex, lastPageIndex);\n\n if (newPageIndex !== paginator.pageIndex) {\n paginator.pageIndex = newPageIndex;\n\n // Since the paginator only emits after user-generated changes,\n // we need our own stream so we know to should re-render the data.\n this._internalPageChanges.next();\n }\n }\n });\n }\n\n /**\n * Used by the MatTable. Called when it connects to the data source.\n * @docs-private\n */\n connect() {\n if (!this._renderChangesSubscription) {\n this._updateChangeSubscription();\n }\n\n return this._renderData;\n }\n\n /**\n * Used by the MatTable. Called when it disconnects from the data source.\n * @docs-private\n */\n disconnect() {\n this._renderChangesSubscription?.unsubscribe();\n this._renderChangesSubscription = null;\n }\n}\n"],"names":["MatRecycleRows","deps","target","i0","ɵɵFactoryTarget","Directive","isStandalone","selector","ngImport","decorators","MatTable","CdkTable","stickyCssClass","needsPositionStickyOnElement","Component","ɵcmp","ɵɵngDeclareComponent","minVersion","version","type","host","properties","classAttribute","providers","provide","useExisting","CDK_TABLE","STICKY_POSITIONING_LISTENER","useValue","exportAs","usesInheritance","template","isInline","styles","dependencies","kind","HeaderRowOutlet","DataRowOutlet","NoDataRowOutlet","FooterRowOutlet","changeDetection","ChangeDetectionStrategy","Default","encapsulation","ViewEncapsulation","None","imports","MatCellDef","CdkCellDef","args","MatHeaderCellDef","CdkHeaderCellDef","MatFooterCellDef","CdkFooterCellDef","MatColumnDef","CdkColumnDef","name","_name","_setNameInput","_updateColumnCssClassName","_columnCssClassName","push","cssClassFriendlyName","inputs","Input","MatHeaderCell","CdkHeaderCell","attributes","MatFooterCell","CdkFooterCell","MatCell","CdkCell","ROW_TEMPLATE","MatHeaderRowDef","CdkHeaderRowDef","ɵdir","ɵɵngDeclareDirective","columns","sticky","booleanAttribute","alias","transform","MatFooterRowDef","CdkFooterRowDef","MatRowDef","CdkRowDef","when","MatHeaderRow","CdkHeaderRow","CdkCellOutlet","MatFooterRow","CdkFooterRow","MatRow","CdkRow","MatNoDataRow","CdkNoDataRow","_cellSelector","constructor","_contentClassNames","_cellClassNames","MatTextColumn","CdkTextColumn","EXPORTED_DECLARATIONS","MatTableModule","NgModule","ɵmod","ɵɵngDeclareNgModule","CdkTableModule","BidiModule","exports","MAX_SAFE_INTEGER","MatTableDataSource","DataSource","_data","_renderData","BehaviorSubject","_filter","_internalPageChanges","Subject","_renderChangesSubscription","filteredData","data","value","Array","isArray","next","_filterData","filter","sort","_sort","_updateChangeSubscription","paginator","_paginator","sortingDataAccessor","sortHeaderId","_isNumberValue","numberValue","Number","sortData","active","direction","a","b","valueA","valueB","valueAType","valueBType","comparatorResult","filterPredicate","ngDevMode","console","warn","transformedFilter","trim","toLowerCase","Object","values","some","includes","initialData","sortChange","merge","initialized","observableOf","pageChange","page","dataStream","combineLatest","pipe","map","orderedData","_orderData","paginatedData","_pageData","unsubscribe","subscribe","obj","_updatePaginator","length","slice","startIndex","pageIndex","pageSize","filteredDataLength","Promise","resolve","then","lastPageIndex","Math","ceil","newPageIndex","min","connect","disconnect"],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@angular/material",
3
- "version": "21.1.1",
3
+ "version": "21.2.0-next.1",
4
4
  "description": "Angular Material",
5
5
  "repository": {
6
6
  "type": "git",
@@ -353,11 +353,11 @@
353
353
  }
354
354
  },
355
355
  "peerDependencies": {
356
- "@angular/cdk": "21.1.1",
357
- "@angular/core": "^21.0.0 || ^22.0.0",
358
- "@angular/common": "^21.0.0 || ^22.0.0",
359
- "@angular/forms": "^21.0.0 || ^22.0.0",
360
- "@angular/platform-browser": "^21.0.0 || ^22.0.0",
356
+ "@angular/cdk": "21.2.0-next.1",
357
+ "@angular/core": "^21.0.0-0 || ^21.1.0-0 || ^21.2.0-0 || ^21.3.0-0 || ^22.0.0-0",
358
+ "@angular/common": "^21.0.0-0 || ^21.1.0-0 || ^21.2.0-0 || ^21.3.0-0 || ^22.0.0-0",
359
+ "@angular/forms": "^21.0.0-0 || ^21.1.0-0 || ^21.2.0-0 || ^21.3.0-0 || ^22.0.0-0",
360
+ "@angular/platform-browser": "^21.0.0-0 || ^21.1.0-0 || ^21.2.0-0 || ^21.3.0-0 || ^22.0.0-0",
361
361
  "rxjs": "^6.5.3 || ^7.4.0"
362
362
  },
363
363
  "dependencies": {
@@ -19,7 +19,7 @@ const package_config_1 = require("./package-config");
19
19
  * Note that the fallback version range does not use caret, but tilde because that is
20
20
  * the default for Angular framework dependencies in CLI projects.
21
21
  */
22
- const fallbackMaterialVersionRange = `~21.1.1`;
22
+ const fallbackMaterialVersionRange = `~21.2.0-next.1`;
23
23
  /**
24
24
  * Schematic factory entry-point for the `ng-add` schematic. The ng-add schematic will be
25
25
  * automatically executed if developers run `ng add @angular/material`.
@@ -34,7 +34,7 @@ function default_1(options) {
34
34
  // have the same version tag if possible.
35
35
  const ngCoreVersionTag = (0, package_config_1.getPackageVersionFromPackageJson)(host, '@angular/core');
36
36
  const materialVersionRange = (0, package_config_1.getPackageVersionFromPackageJson)(host, '@angular/material');
37
- const angularDependencyVersion = ngCoreVersionTag || `^21.0.0 || ^22.0.0`;
37
+ const angularDependencyVersion = ngCoreVersionTag || `^21.0.0-0 || ^21.1.0-0 || ^21.2.0-0 || ^21.3.0-0 || ^22.0.0-0`;
38
38
  // The CLI inserts `@angular/material` into the `package.json` before this schematic runs.
39
39
  // This means that we do not need to insert Angular Material into `package.json` files again.
40
40
  // In some cases though, it could happen that this schematic runs outside of the CLI `ng add`
package/types/sort.d.ts CHANGED
@@ -3,22 +3,8 @@ import { OnDestroy, OnInit, AfterViewInit } from '@angular/core';
3
3
  import { MatSortable, MatSort, SortHeaderArrowPosition } from './_sort-chunk.js';
4
4
  export { MAT_SORT_DEFAULT_OPTIONS, MatSortDefaultOptions, Sort } from './_sort-chunk.js';
5
5
  import { SortDirection } from './_sort-direction-chunk.js';
6
- import { Subject } from 'rxjs';
7
6
  import * as i2 from '@angular/cdk/bidi';
8
-
9
- /**
10
- * To modify the labels and text displayed, create a new instance of MatSortHeaderIntl and
11
- * include it in a custom provider.
12
- */
13
- declare class MatSortHeaderIntl {
14
- /**
15
- * Stream that emits whenever the labels here are changed. Use this to notify
16
- * components if the labels have changed after initialization.
17
- */
18
- readonly changes: Subject<void>;
19
- static ɵfac: i0.ɵɵFactoryDeclaration<MatSortHeaderIntl, never>;
20
- static ɵprov: i0.ɵɵInjectableDeclaration<MatSortHeaderIntl>;
21
- }
7
+ import { Subject } from 'rxjs';
22
8
 
23
9
  /**
24
10
  * Valid positions for the arrow to be in for its opacity and translation. If the state is a
@@ -42,10 +28,6 @@ interface ArrowViewStateTransition {
42
28
  fromState?: ArrowViewState;
43
29
  toState?: ArrowViewState;
44
30
  }
45
- /** Column definition associated with a `MatSortHeader`. */
46
- interface MatSortHeaderColumnDef {
47
- name: string;
48
- }
49
31
  /**
50
32
  * Applies sorting behavior (click to change sort) and styles to an element, including an
51
33
  * arrow to display the current sort direction.
@@ -56,9 +38,8 @@ interface MatSortHeaderColumnDef {
56
38
  * column definition.
57
39
  */
58
40
  declare class MatSortHeader implements MatSortable, OnDestroy, OnInit, AfterViewInit {
59
- _intl: MatSortHeaderIntl;
60
- _sort: MatSort;
61
- _columnDef: MatSortHeaderColumnDef | null;
41
+ protected _sort: MatSort;
42
+ private _columnDef;
62
43
  private _changeDetectorRef;
63
44
  private _focusMonitor;
64
45
  private _elementRef;
@@ -127,5 +108,19 @@ declare class MatSortModule {
127
108
  static ɵinj: i0.ɵɵInjectorDeclaration<MatSortModule>;
128
109
  }
129
110
 
111
+ /**
112
+ * To modify the labels and text displayed, create a new instance of MatSortHeaderIntl and
113
+ * include it in a custom provider.
114
+ */
115
+ declare class MatSortHeaderIntl {
116
+ /**
117
+ * Stream that emits whenever the labels here are changed. Use this to notify
118
+ * components if the labels have changed after initialization.
119
+ */
120
+ readonly changes: Subject<void>;
121
+ static ɵfac: i0.ɵɵFactoryDeclaration<MatSortHeaderIntl, never>;
122
+ static ɵprov: i0.ɵɵInjectableDeclaration<MatSortHeaderIntl>;
123
+ }
124
+
130
125
  export { MatSort, MatSortHeader, MatSortHeaderIntl, MatSortModule, MatSortable, SortDirection, SortHeaderArrowPosition };
131
126
  export type { ArrowViewState, ArrowViewStateTransition };