@spartan-ng/brain 0.0.1-alpha.714 → 0.0.1-alpha.716

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.
@@ -1 +1 @@
1
- {"version":3,"file":"spartan-ng-brain-date-time.mjs","sources":["../../../../libs/brain/date-time/src/lib/native-date-adapter.ts","../../../../libs/brain/date-time/src/lib/utc-date-adapter.ts","../../../../libs/brain/date-time/src/lib/date-adapter.ts","../../../../libs/brain/date-time/src/spartan-ng-brain-date-time.ts"],"sourcesContent":["import type { BrnDateAdapter, BrnDateUnits, BrnDuration } from './date-adapter';\n\nexport class BrnNativeDateAdapter implements BrnDateAdapter<Date> {\n\t/**\n\t * Create a new date time object.\n\t */\n\tcreate({ day, hour, minute, month, second, year, millisecond }: BrnDateUnits): Date {\n\t\tconst now = new Date();\n\n\t\treturn new Date(\n\t\t\tyear ?? now.getFullYear(),\n\t\t\tmonth ?? now.getMonth(),\n\t\t\tday ?? now.getDate(),\n\t\t\thour ?? now.getHours(),\n\t\t\tminute ?? now.getMinutes(),\n\t\t\tsecond ?? now.getSeconds(),\n\t\t\tmillisecond ?? now.getMilliseconds(),\n\t\t);\n\t}\n\n\t/**\n\t * Create a new date with the current date and time.\n\t */\n\tnow(): Date {\n\t\treturn new Date();\n\t}\n\n\t/**\n\t * Set the year of the date time object based on a duration.\n\t */\n\tset(date: Date, values: BrnDateUnits): Date {\n\t\treturn new Date(\n\t\t\tvalues.year ?? date.getFullYear(),\n\t\t\tvalues.month ?? date.getMonth(),\n\t\t\tvalues.day ?? date.getDate(),\n\t\t\tvalues.hour ?? date.getHours(),\n\t\t\tvalues.minute ?? date.getMinutes(),\n\t\t\tvalues.second ?? date.getSeconds(),\n\t\t\tvalues.millisecond ?? date.getMilliseconds(),\n\t\t);\n\t}\n\n\t/**\n\t * Add a duration to the date time object.\n\t */\n\tadd(date: Date, duration: BrnDuration): Date {\n\t\treturn new Date(\n\t\t\tdate.getFullYear() + (duration.years ?? 0),\n\t\t\tdate.getMonth() + (duration.months ?? 0),\n\t\t\tdate.getDate() + (duration.days ?? 0),\n\t\t\tdate.getHours() + (duration.hours ?? 0),\n\t\t\tdate.getMinutes() + (duration.minutes ?? 0),\n\t\t\tdate.getSeconds() + (duration.seconds ?? 0),\n\t\t\tdate.getMilliseconds() + (duration.milliseconds ?? 0),\n\t\t);\n\t}\n\n\t/**\n\t * Subtract a duration from the date time object\n\t */\n\tsubtract(date: Date, duration: BrnDuration): Date {\n\t\treturn new Date(\n\t\t\tdate.getFullYear() - (duration.years ?? 0),\n\t\t\tdate.getMonth() - (duration.months ?? 0),\n\t\t\tdate.getDate() - (duration.days ?? 0),\n\t\t\tdate.getHours() - (duration.hours ?? 0),\n\t\t\tdate.getMinutes() - (duration.minutes ?? 0),\n\t\t\tdate.getSeconds() - (duration.seconds ?? 0),\n\t\t\tdate.getMilliseconds() - (duration.milliseconds ?? 0),\n\t\t);\n\t}\n\n\t/**\n\t * Compare two date time objects\n\t */\n\tcompare(a: Date, b: Date): number {\n\t\tconst diff = a.getTime() - b.getTime();\n\t\treturn diff === 0 ? 0 : diff > 0 ? 1 : -1;\n\t}\n\n\t/**\n\t * Determine if two date time objects are equal.\n\t */\n\tisEqual(a: Date, b: Date): boolean {\n\t\treturn a.getTime() === b.getTime();\n\t}\n\n\t/**\n\t * Determine if a date time object is before another.\n\t */\n\tisBefore(a: Date, b: Date): boolean {\n\t\treturn a.getTime() < b.getTime();\n\t}\n\n\t/**\n\t * Determine if a date time object is after another.\n\t */\n\tisAfter(a: Date, b: Date): boolean {\n\t\treturn a.getTime() > b.getTime();\n\t}\n\n\t/**\n\t * Determine if two date objects are on the same day.\n\t */\n\tisSameDay(a: Date, b: Date): boolean {\n\t\treturn this.isSameYear(a, b) && this.isSameMonth(a, b) && a.getDate() === b.getDate();\n\t}\n\n\t/**\n\t * Determine if two date objects are on the same month.\n\t */\n\tisSameMonth(a: Date, b: Date): boolean {\n\t\treturn this.isSameYear(a, b) && a.getMonth() === b.getMonth();\n\t}\n\n\t/**\n\t * Determine if two date objects are on the same year.\n\t */\n\tisSameYear(a: Date, b: Date): boolean {\n\t\treturn a.getFullYear() === b.getFullYear();\n\t}\n\n\t/**\n\t * Get the year.\n\t */\n\tgetYear(date: Date): number {\n\t\treturn date.getFullYear();\n\t}\n\n\t/**\n\t * Get the month.\n\t */\n\tgetMonth(date: Date): number {\n\t\treturn date.getMonth();\n\t}\n\n\t/**\n\t * Get the day.\n\t */\n\tgetDay(date: Date): number {\n\t\treturn date.getDay();\n\t}\n\n\t/**\n\t * Get the date.\n\t */\n\tgetDate(date: Date): number {\n\t\treturn date.getDate();\n\t}\n\n\t/**\n\t * Get the hours.\n\t */\n\tgetHours(date: Date): number {\n\t\treturn date.getHours();\n\t}\n\n\t/**\n\t * Get the minutes.\n\t */\n\tgetMinutes(date: Date): number {\n\t\treturn date.getMinutes();\n\t}\n\n\t/**\n\t * Get the seconds.\n\t */\n\tgetSeconds(date: Date): number {\n\t\treturn date.getSeconds();\n\t}\n\n\t/**\n\t * Get the milliseconds.\n\t */\n\tgetMilliseconds(date: Date): number {\n\t\treturn date.getMilliseconds();\n\t}\n\n\t/**\n\t * Get the first day of the month.\n\t */\n\tstartOfMonth(date: Date): Date {\n\t\treturn new Date(date.getFullYear(), date.getMonth(), 1);\n\t}\n\n\t/**\n\t * Get the last day of the month.\n\t */\n\tendOfMonth(date: Date): Date {\n\t\treturn new Date(date.getFullYear(), date.getMonth() + 1, 0);\n\t}\n\n\t/**\n\t * Get the start of the day.\n\t */\n\tstartOfDay(date: Date): Date {\n\t\treturn new Date(date.getFullYear(), date.getMonth(), date.getDate());\n\t}\n\n\t/**\n\t * Get the end of the day.\n\t */\n\tendOfDay(date: Date): Date {\n\t\treturn new Date(date.getFullYear(), date.getMonth(), date.getDate(), 23, 59, 59, 999);\n\t}\n\n\t/**\n\t * Get the time.\n\t */\n\tgetTime(date: Date): number {\n\t\treturn date.getTime();\n\t}\n}\n","import type { BrnDateAdapter, BrnDateUnits, BrnDuration } from './date-adapter';\n\nexport class BrnUtcDateAdapter implements BrnDateAdapter<Date> {\n\tcreate({ day, hour, minute, month, second, year, millisecond }: BrnDateUnits): Date {\n\t\tconst now = new Date();\n\t\tconst utcTime = Date.UTC(\n\t\t\tyear ?? now.getUTCFullYear(),\n\t\t\tmonth ?? now.getUTCMonth(),\n\t\t\tday ?? now.getUTCDate(),\n\t\t\thour ?? now.getUTCHours(),\n\t\t\tminute ?? now.getUTCMinutes(),\n\t\t\tsecond ?? now.getUTCSeconds(),\n\t\t\tmillisecond ?? now.getUTCMilliseconds(),\n\t\t);\n\t\treturn new Date(utcTime);\n\t}\n\n\tnow(): Date {\n\t\treturn new Date(Date.now());\n\t}\n\n\tset(date: Date, values: BrnDateUnits): Date {\n\t\tconst utcTime = Date.UTC(\n\t\t\tvalues.year ?? date.getUTCFullYear(),\n\t\t\tvalues.month ?? date.getUTCMonth(),\n\t\t\tvalues.day ?? date.getUTCDate(),\n\t\t\tvalues.hour ?? date.getUTCHours(),\n\t\t\tvalues.minute ?? date.getUTCMinutes(),\n\t\t\tvalues.second ?? date.getUTCSeconds(),\n\t\t\tvalues.millisecond ?? date.getUTCMilliseconds(),\n\t\t);\n\t\treturn new Date(utcTime);\n\t}\n\n\tadd(date: Date, duration: BrnDuration): Date {\n\t\treturn new Date(\n\t\t\tDate.UTC(\n\t\t\t\tdate.getUTCFullYear() + (duration.years ?? 0),\n\t\t\t\tdate.getUTCMonth() + (duration.months ?? 0),\n\t\t\t\tdate.getUTCDate() + (duration.days ?? 0),\n\t\t\t\tdate.getUTCHours() + (duration.hours ?? 0),\n\t\t\t\tdate.getUTCMinutes() + (duration.minutes ?? 0),\n\t\t\t\tdate.getUTCSeconds() + (duration.seconds ?? 0),\n\t\t\t\tdate.getUTCMilliseconds() + (duration.milliseconds ?? 0),\n\t\t\t),\n\t\t);\n\t}\n\n\tsubtract(date: Date, duration: BrnDuration): Date {\n\t\treturn new Date(\n\t\t\tDate.UTC(\n\t\t\t\tdate.getUTCFullYear() - (duration.years ?? 0),\n\t\t\t\tdate.getUTCMonth() - (duration.months ?? 0),\n\t\t\t\tdate.getUTCDate() - (duration.days ?? 0),\n\t\t\t\tdate.getUTCHours() - (duration.hours ?? 0),\n\t\t\t\tdate.getUTCMinutes() - (duration.minutes ?? 0),\n\t\t\t\tdate.getUTCSeconds() - (duration.seconds ?? 0),\n\t\t\t\tdate.getUTCMilliseconds() - (duration.milliseconds ?? 0),\n\t\t\t),\n\t\t);\n\t}\n\n\tcompare(a: Date, b: Date): number {\n\t\tconst diff = a.getTime() - b.getTime();\n\t\treturn diff === 0 ? 0 : diff > 0 ? 1 : -1;\n\t}\n\n\tisEqual(a: Date, b: Date): boolean {\n\t\treturn a.getTime() === b.getTime();\n\t}\n\n\tisBefore(a: Date, b: Date): boolean {\n\t\treturn a.getTime() < b.getTime();\n\t}\n\n\tisAfter(a: Date, b: Date): boolean {\n\t\treturn a.getTime() > b.getTime();\n\t}\n\n\tisSameDay(a: Date, b: Date): boolean {\n\t\treturn this.isSameYear(a, b) && this.isSameMonth(a, b) && a.getUTCDate() === b.getUTCDate();\n\t}\n\n\tisSameMonth(a: Date, b: Date): boolean {\n\t\treturn this.isSameYear(a, b) && a.getUTCMonth() === b.getUTCMonth();\n\t}\n\n\tisSameYear(a: Date, b: Date): boolean {\n\t\treturn a.getUTCFullYear() === b.getUTCFullYear();\n\t}\n\n\tgetYear(date: Date): number {\n\t\treturn date.getUTCFullYear();\n\t}\n\n\tgetMonth(date: Date): number {\n\t\treturn date.getUTCMonth();\n\t}\n\n\tgetDay(date: Date): number {\n\t\treturn date.getUTCDay();\n\t}\n\n\tgetDate(date: Date): number {\n\t\treturn date.getUTCDate();\n\t}\n\n\tgetHours(date: Date): number {\n\t\treturn date.getUTCHours();\n\t}\n\n\tgetMinutes(date: Date): number {\n\t\treturn date.getUTCMinutes();\n\t}\n\n\tgetSeconds(date: Date): number {\n\t\treturn date.getUTCSeconds();\n\t}\n\n\tgetMilliseconds(date: Date): number {\n\t\treturn date.getUTCMilliseconds();\n\t}\n\n\tgetTime(date: Date): number {\n\t\treturn date.getTime();\n\t}\n\n\tstartOfMonth(date: Date): Date {\n\t\treturn new Date(Date.UTC(date.getUTCFullYear(), date.getUTCMonth(), 1));\n\t}\n\n\tendOfMonth(date: Date): Date {\n\t\treturn new Date(Date.UTC(date.getUTCFullYear(), date.getUTCMonth() + 1, 0, 23, 59, 59, 999));\n\t}\n\n\tstartOfDay(date: Date): Date {\n\t\treturn new Date(Date.UTC(date.getUTCFullYear(), date.getUTCMonth(), date.getUTCDate()));\n\t}\n\n\tendOfDay(date: Date): Date {\n\t\treturn new Date(Date.UTC(date.getUTCFullYear(), date.getUTCMonth(), date.getUTCDate(), 23, 59, 59, 999));\n\t}\n}\n","import { type ClassProvider, InjectionToken, type Type, inject } from '@angular/core';\nimport { BrnNativeDateAdapter } from './native-date-adapter';\nimport { BrnUtcDateAdapter } from './utc-date-adapter';\n\n/**\n * An abstraction that can be used to create and modify date time objects\n * immutably regardless of the underlying implementation.\n */\nexport interface BrnDateAdapter<T> {\n\t/**\n\t * Create a new date time object.\n\t */\n\tcreate(values: BrnDateUnits): T;\n\n\t/**\n\t * Create a new date with the current date and time.\n\t */\n\tnow(): T;\n\n\t/**\n\t * Set the year of the date time object based on a duration.\n\t */\n\tset(date: T, values: BrnDateUnits): T;\n\n\t/**\n\t * Add a duration to the date time object.\n\t */\n\tadd(date: T, duration: BrnDuration): T;\n\n\t/**\n\t * Subtract a duration from the date time object.\n\t */\n\tsubtract(date: T, duration: BrnDuration): T;\n\n\t/**\n\t * Compare two date time objects.\n\t */\n\tcompare(a: T, b: T): number;\n\n\t/**\n\t * Determine if two date time objects are equal.\n\t */\n\tisEqual(a: T, b: T): boolean;\n\n\t/**\n\t * Determine if a date time object is before another.\n\t */\n\tisBefore(a: T, b: T): boolean;\n\n\t/**\n\t * Determine if a date time object is after another.\n\t */\n\tisAfter(a: T, b: T): boolean;\n\n\t/**\n\t * Determine if two date objects are on the same day.\n\t */\n\tisSameDay(a: T, b: T): boolean;\n\n\t/**\n\t * Determine if two date objects are on the same month.\n\t */\n\tisSameMonth(a: T, b: T): boolean;\n\n\t/**\n\t * Determine if two date objects are on the same year.\n\t */\n\tisSameYear(a: T, b: T): boolean;\n\n\t/**\n\t * Get the year.\n\t */\n\tgetYear(date: T): number;\n\n\t/**\n\t * Get the month.\n\t */\n\tgetMonth(date: T): number;\n\n\t/**\n\t * Get the date.\n\t */\n\tgetDate(date: T): number;\n\n\t/**\n\t * Get the day of the week.\n\t *\n\t * Returns a value between 0 and 6 where 0 is Sunday\n\t */\n\tgetDay(date: T): number;\n\n\t/**\n\t * Get the hours.\n\t */\n\tgetHours(date: T): number;\n\n\t/**\n\t * Get the minutes.\n\t */\n\tgetMinutes(date: T): number;\n\n\t/**\n\t * Get the seconds.\n\t */\n\tgetSeconds(date: T): number;\n\n\t/**\n\t * Get the milliseconds.\n\t */\n\tgetMilliseconds(date: T): number;\n\n\t/**\n\t * Get the time.\n\t */\n\tgetTime(date: T): number;\n\n\t/**\n\t * Get the first day of the month.\n\t */\n\tstartOfMonth(date: T): T;\n\n\t/**\n\t * Get the last day of the month.\n\t */\n\tendOfMonth(date: T): T;\n\n\t/**\n\t * Get the start of the day.\n\t */\n\tstartOfDay(date: T): T;\n\n\t/**\n\t * Get the end of the day.\n\t */\n\tendOfDay(date: T): T;\n}\n\nexport interface BrnDateUnits {\n\t/**\n\t * The year.\n\t */\n\tyear?: number;\n\n\t/**\n\t * The month.\n\t */\n\tmonth?: number;\n\n\t/**\n\t * The day.\n\t */\n\tday?: number;\n\n\t/**\n\t * The hour.\n\t */\n\thour?: number;\n\n\t/**\n\t * The minute.\n\t */\n\tminute?: number;\n\n\t/**\n\t * The second.\n\t */\n\tsecond?: number;\n\n\t/**\n\t * The millisecond.\n\t */\n\tmillisecond?: number;\n}\n\nexport interface BrnDuration {\n\t/**\n\t * The years.\n\t */\n\tyears?: number;\n\n\t/**\n\t * The months.\n\t */\n\tmonths?: number;\n\n\t/**\n\t * The days.\n\t */\n\tdays?: number;\n\n\t/**\n\t * The hours.\n\t */\n\thours?: number;\n\n\t/**\n\t * The minutes.\n\t */\n\tminutes?: number;\n\n\t/**\n\t * The seconds.\n\t */\n\tseconds?: number;\n\n\t/**\n\t * The milliseconds.\n\t */\n\tmilliseconds?: number;\n}\n\nexport const BrnDateAdapterToken = new InjectionToken<BrnDateAdapter<unknown>>('BrnDateAdapterToken');\n\n/**\n * Inject the DateAdapter instance\n */\nexport function injectDateAdapter<T>(): BrnDateAdapter<T> {\n\treturn (inject(BrnDateAdapterToken, { optional: true }) as BrnDateAdapter<T>) ?? new BrnNativeDateAdapter();\n}\n\n/**\n * Provide the DateAdapter instance\n */\nexport function provideDateAdapter<T>(adapter: Type<BrnDateAdapter<T>>): ClassProvider {\n\treturn { provide: BrnDateAdapterToken, useClass: adapter };\n}\n\n/**\n * Provide the native date adapter\n */\nexport function provideNativeDateAdapter(): ClassProvider {\n\treturn provideDateAdapter(BrnNativeDateAdapter);\n}\n\n/**\n * Provide the UTC date adapter\n */\nexport function provideUtcDateAdapter(): ClassProvider {\n\treturn provideDateAdapter(BrnUtcDateAdapter);\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"spartan-ng-brain-date-time.mjs","sources":["../../../../libs/brain/date-time/src/lib/native-date-adapter.ts","../../../../libs/brain/date-time/src/lib/utc-date-adapter.ts","../../../../libs/brain/date-time/src/lib/date-adapter.ts","../../../../libs/brain/date-time/src/lib/persian-date.ts","../../../../libs/brain/date-time/src/lib/jalali-date.ts","../../../../libs/brain/date-time/src/lib/jalali-date-adapter.ts","../../../../libs/brain/date-time/src/spartan-ng-brain-date-time.ts"],"sourcesContent":["import type { BrnDateAdapter, BrnDateUnits, BrnDuration } from './date-adapter';\n\nexport class BrnNativeDateAdapter implements BrnDateAdapter<Date> {\n\t/**\n\t * Create a new date time object.\n\t */\n\tcreate({ day, hour, minute, month, second, year, millisecond }: BrnDateUnits): Date {\n\t\tconst now = new Date();\n\n\t\treturn new Date(\n\t\t\tyear ?? now.getFullYear(),\n\t\t\tmonth ?? now.getMonth(),\n\t\t\tday ?? now.getDate(),\n\t\t\thour ?? now.getHours(),\n\t\t\tminute ?? now.getMinutes(),\n\t\t\tsecond ?? now.getSeconds(),\n\t\t\tmillisecond ?? now.getMilliseconds(),\n\t\t);\n\t}\n\n\t/**\n\t * Create a new date with the current date and time.\n\t */\n\tnow(): Date {\n\t\treturn new Date();\n\t}\n\n\t/**\n\t * Set the year of the date time object based on a duration.\n\t */\n\tset(date: Date, values: BrnDateUnits): Date {\n\t\treturn new Date(\n\t\t\tvalues.year ?? date.getFullYear(),\n\t\t\tvalues.month ?? date.getMonth(),\n\t\t\tvalues.day ?? date.getDate(),\n\t\t\tvalues.hour ?? date.getHours(),\n\t\t\tvalues.minute ?? date.getMinutes(),\n\t\t\tvalues.second ?? date.getSeconds(),\n\t\t\tvalues.millisecond ?? date.getMilliseconds(),\n\t\t);\n\t}\n\n\t/**\n\t * Add a duration to the date time object.\n\t */\n\tadd(date: Date, duration: BrnDuration): Date {\n\t\treturn new Date(\n\t\t\tdate.getFullYear() + (duration.years ?? 0),\n\t\t\tdate.getMonth() + (duration.months ?? 0),\n\t\t\tdate.getDate() + (duration.days ?? 0),\n\t\t\tdate.getHours() + (duration.hours ?? 0),\n\t\t\tdate.getMinutes() + (duration.minutes ?? 0),\n\t\t\tdate.getSeconds() + (duration.seconds ?? 0),\n\t\t\tdate.getMilliseconds() + (duration.milliseconds ?? 0),\n\t\t);\n\t}\n\n\t/**\n\t * Subtract a duration from the date time object\n\t */\n\tsubtract(date: Date, duration: BrnDuration): Date {\n\t\treturn new Date(\n\t\t\tdate.getFullYear() - (duration.years ?? 0),\n\t\t\tdate.getMonth() - (duration.months ?? 0),\n\t\t\tdate.getDate() - (duration.days ?? 0),\n\t\t\tdate.getHours() - (duration.hours ?? 0),\n\t\t\tdate.getMinutes() - (duration.minutes ?? 0),\n\t\t\tdate.getSeconds() - (duration.seconds ?? 0),\n\t\t\tdate.getMilliseconds() - (duration.milliseconds ?? 0),\n\t\t);\n\t}\n\n\t/**\n\t * Compare two date time objects\n\t */\n\tcompare(a: Date, b: Date): number {\n\t\tconst diff = a.getTime() - b.getTime();\n\t\treturn diff === 0 ? 0 : diff > 0 ? 1 : -1;\n\t}\n\n\t/**\n\t * Determine if two date time objects are equal.\n\t */\n\tisEqual(a: Date, b: Date): boolean {\n\t\treturn a.getTime() === b.getTime();\n\t}\n\n\t/**\n\t * Determine if a date time object is before another.\n\t */\n\tisBefore(a: Date, b: Date): boolean {\n\t\treturn a.getTime() < b.getTime();\n\t}\n\n\t/**\n\t * Determine if a date time object is after another.\n\t */\n\tisAfter(a: Date, b: Date): boolean {\n\t\treturn a.getTime() > b.getTime();\n\t}\n\n\t/**\n\t * Determine if two date objects are on the same day.\n\t */\n\tisSameDay(a: Date, b: Date): boolean {\n\t\treturn this.isSameYear(a, b) && this.isSameMonth(a, b) && a.getDate() === b.getDate();\n\t}\n\n\t/**\n\t * Determine if two date objects are on the same month.\n\t */\n\tisSameMonth(a: Date, b: Date): boolean {\n\t\treturn this.isSameYear(a, b) && a.getMonth() === b.getMonth();\n\t}\n\n\t/**\n\t * Determine if two date objects are on the same year.\n\t */\n\tisSameYear(a: Date, b: Date): boolean {\n\t\treturn a.getFullYear() === b.getFullYear();\n\t}\n\n\t/**\n\t * Get the year.\n\t */\n\tgetYear(date: Date): number {\n\t\treturn date.getFullYear();\n\t}\n\n\t/**\n\t * Get the month.\n\t */\n\tgetMonth(date: Date): number {\n\t\treturn date.getMonth();\n\t}\n\n\t/**\n\t * Get the day.\n\t */\n\tgetDay(date: Date): number {\n\t\treturn date.getDay();\n\t}\n\n\t/**\n\t * Get the date.\n\t */\n\tgetDate(date: Date): number {\n\t\treturn date.getDate();\n\t}\n\n\t/**\n\t * Get the hours.\n\t */\n\tgetHours(date: Date): number {\n\t\treturn date.getHours();\n\t}\n\n\t/**\n\t * Get the minutes.\n\t */\n\tgetMinutes(date: Date): number {\n\t\treturn date.getMinutes();\n\t}\n\n\t/**\n\t * Get the seconds.\n\t */\n\tgetSeconds(date: Date): number {\n\t\treturn date.getSeconds();\n\t}\n\n\t/**\n\t * Get the milliseconds.\n\t */\n\tgetMilliseconds(date: Date): number {\n\t\treturn date.getMilliseconds();\n\t}\n\n\t/**\n\t * Get the first day of the month.\n\t */\n\tstartOfMonth(date: Date): Date {\n\t\treturn new Date(date.getFullYear(), date.getMonth(), 1);\n\t}\n\n\t/**\n\t * Get the last day of the month.\n\t */\n\tendOfMonth(date: Date): Date {\n\t\treturn new Date(date.getFullYear(), date.getMonth() + 1, 0);\n\t}\n\n\t/**\n\t * Get the start of the day.\n\t */\n\tstartOfDay(date: Date): Date {\n\t\treturn new Date(date.getFullYear(), date.getMonth(), date.getDate());\n\t}\n\n\t/**\n\t * Get the end of the day.\n\t */\n\tendOfDay(date: Date): Date {\n\t\treturn new Date(date.getFullYear(), date.getMonth(), date.getDate(), 23, 59, 59, 999);\n\t}\n\n\t/**\n\t * Get the time.\n\t */\n\tgetTime(date: Date): number {\n\t\treturn date.getTime();\n\t}\n}\n","import type { BrnDateAdapter, BrnDateUnits, BrnDuration } from './date-adapter';\n\nexport class BrnUtcDateAdapter implements BrnDateAdapter<Date> {\n\tcreate({ day, hour, minute, month, second, year, millisecond }: BrnDateUnits): Date {\n\t\tconst now = new Date();\n\t\tconst utcTime = Date.UTC(\n\t\t\tyear ?? now.getUTCFullYear(),\n\t\t\tmonth ?? now.getUTCMonth(),\n\t\t\tday ?? now.getUTCDate(),\n\t\t\thour ?? now.getUTCHours(),\n\t\t\tminute ?? now.getUTCMinutes(),\n\t\t\tsecond ?? now.getUTCSeconds(),\n\t\t\tmillisecond ?? now.getUTCMilliseconds(),\n\t\t);\n\t\treturn new Date(utcTime);\n\t}\n\n\tnow(): Date {\n\t\treturn new Date(Date.now());\n\t}\n\n\tset(date: Date, values: BrnDateUnits): Date {\n\t\tconst utcTime = Date.UTC(\n\t\t\tvalues.year ?? date.getUTCFullYear(),\n\t\t\tvalues.month ?? date.getUTCMonth(),\n\t\t\tvalues.day ?? date.getUTCDate(),\n\t\t\tvalues.hour ?? date.getUTCHours(),\n\t\t\tvalues.minute ?? date.getUTCMinutes(),\n\t\t\tvalues.second ?? date.getUTCSeconds(),\n\t\t\tvalues.millisecond ?? date.getUTCMilliseconds(),\n\t\t);\n\t\treturn new Date(utcTime);\n\t}\n\n\tadd(date: Date, duration: BrnDuration): Date {\n\t\treturn new Date(\n\t\t\tDate.UTC(\n\t\t\t\tdate.getUTCFullYear() + (duration.years ?? 0),\n\t\t\t\tdate.getUTCMonth() + (duration.months ?? 0),\n\t\t\t\tdate.getUTCDate() + (duration.days ?? 0),\n\t\t\t\tdate.getUTCHours() + (duration.hours ?? 0),\n\t\t\t\tdate.getUTCMinutes() + (duration.minutes ?? 0),\n\t\t\t\tdate.getUTCSeconds() + (duration.seconds ?? 0),\n\t\t\t\tdate.getUTCMilliseconds() + (duration.milliseconds ?? 0),\n\t\t\t),\n\t\t);\n\t}\n\n\tsubtract(date: Date, duration: BrnDuration): Date {\n\t\treturn new Date(\n\t\t\tDate.UTC(\n\t\t\t\tdate.getUTCFullYear() - (duration.years ?? 0),\n\t\t\t\tdate.getUTCMonth() - (duration.months ?? 0),\n\t\t\t\tdate.getUTCDate() - (duration.days ?? 0),\n\t\t\t\tdate.getUTCHours() - (duration.hours ?? 0),\n\t\t\t\tdate.getUTCMinutes() - (duration.minutes ?? 0),\n\t\t\t\tdate.getUTCSeconds() - (duration.seconds ?? 0),\n\t\t\t\tdate.getUTCMilliseconds() - (duration.milliseconds ?? 0),\n\t\t\t),\n\t\t);\n\t}\n\n\tcompare(a: Date, b: Date): number {\n\t\tconst diff = a.getTime() - b.getTime();\n\t\treturn diff === 0 ? 0 : diff > 0 ? 1 : -1;\n\t}\n\n\tisEqual(a: Date, b: Date): boolean {\n\t\treturn a.getTime() === b.getTime();\n\t}\n\n\tisBefore(a: Date, b: Date): boolean {\n\t\treturn a.getTime() < b.getTime();\n\t}\n\n\tisAfter(a: Date, b: Date): boolean {\n\t\treturn a.getTime() > b.getTime();\n\t}\n\n\tisSameDay(a: Date, b: Date): boolean {\n\t\treturn this.isSameYear(a, b) && this.isSameMonth(a, b) && a.getUTCDate() === b.getUTCDate();\n\t}\n\n\tisSameMonth(a: Date, b: Date): boolean {\n\t\treturn this.isSameYear(a, b) && a.getUTCMonth() === b.getUTCMonth();\n\t}\n\n\tisSameYear(a: Date, b: Date): boolean {\n\t\treturn a.getUTCFullYear() === b.getUTCFullYear();\n\t}\n\n\tgetYear(date: Date): number {\n\t\treturn date.getUTCFullYear();\n\t}\n\n\tgetMonth(date: Date): number {\n\t\treturn date.getUTCMonth();\n\t}\n\n\tgetDay(date: Date): number {\n\t\treturn date.getUTCDay();\n\t}\n\n\tgetDate(date: Date): number {\n\t\treturn date.getUTCDate();\n\t}\n\n\tgetHours(date: Date): number {\n\t\treturn date.getUTCHours();\n\t}\n\n\tgetMinutes(date: Date): number {\n\t\treturn date.getUTCMinutes();\n\t}\n\n\tgetSeconds(date: Date): number {\n\t\treturn date.getUTCSeconds();\n\t}\n\n\tgetMilliseconds(date: Date): number {\n\t\treturn date.getUTCMilliseconds();\n\t}\n\n\tgetTime(date: Date): number {\n\t\treturn date.getTime();\n\t}\n\n\tstartOfMonth(date: Date): Date {\n\t\treturn new Date(Date.UTC(date.getUTCFullYear(), date.getUTCMonth(), 1));\n\t}\n\n\tendOfMonth(date: Date): Date {\n\t\treturn new Date(Date.UTC(date.getUTCFullYear(), date.getUTCMonth() + 1, 0, 23, 59, 59, 999));\n\t}\n\n\tstartOfDay(date: Date): Date {\n\t\treturn new Date(Date.UTC(date.getUTCFullYear(), date.getUTCMonth(), date.getUTCDate()));\n\t}\n\n\tendOfDay(date: Date): Date {\n\t\treturn new Date(Date.UTC(date.getUTCFullYear(), date.getUTCMonth(), date.getUTCDate(), 23, 59, 59, 999));\n\t}\n}\n","import { type ClassProvider, InjectionToken, type Type, inject } from '@angular/core';\nimport { BrnNativeDateAdapter } from './native-date-adapter';\nimport { BrnUtcDateAdapter } from './utc-date-adapter';\n\n/**\n * An abstraction that can be used to create and modify date time objects\n * immutably regardless of the underlying implementation.\n */\nexport interface BrnDateAdapter<T> {\n\t/**\n\t * Create a new date time object.\n\t */\n\tcreate(values: BrnDateUnits): T;\n\n\t/**\n\t * Create a new date with the current date and time.\n\t */\n\tnow(): T;\n\n\t/**\n\t * Set the year of the date time object based on a duration.\n\t */\n\tset(date: T, values: BrnDateUnits): T;\n\n\t/**\n\t * Add a duration to the date time object.\n\t */\n\tadd(date: T, duration: BrnDuration): T;\n\n\t/**\n\t * Subtract a duration from the date time object.\n\t */\n\tsubtract(date: T, duration: BrnDuration): T;\n\n\t/**\n\t * Compare two date time objects.\n\t */\n\tcompare(a: T, b: T): number;\n\n\t/**\n\t * Determine if two date time objects are equal.\n\t */\n\tisEqual(a: T, b: T): boolean;\n\n\t/**\n\t * Determine if a date time object is before another.\n\t */\n\tisBefore(a: T, b: T): boolean;\n\n\t/**\n\t * Determine if a date time object is after another.\n\t */\n\tisAfter(a: T, b: T): boolean;\n\n\t/**\n\t * Determine if two date objects are on the same day.\n\t */\n\tisSameDay(a: T, b: T): boolean;\n\n\t/**\n\t * Determine if two date objects are on the same month.\n\t */\n\tisSameMonth(a: T, b: T): boolean;\n\n\t/**\n\t * Determine if two date objects are on the same year.\n\t */\n\tisSameYear(a: T, b: T): boolean;\n\n\t/**\n\t * Get the year.\n\t */\n\tgetYear(date: T): number;\n\n\t/**\n\t * Get the month.\n\t */\n\tgetMonth(date: T): number;\n\n\t/**\n\t * Get the date.\n\t */\n\tgetDate(date: T): number;\n\n\t/**\n\t * Get the day of the week.\n\t *\n\t * Returns a value between 0 and 6 where 0 is Sunday\n\t */\n\tgetDay(date: T): number;\n\n\t/**\n\t * Get the hours.\n\t */\n\tgetHours(date: T): number;\n\n\t/**\n\t * Get the minutes.\n\t */\n\tgetMinutes(date: T): number;\n\n\t/**\n\t * Get the seconds.\n\t */\n\tgetSeconds(date: T): number;\n\n\t/**\n\t * Get the milliseconds.\n\t */\n\tgetMilliseconds(date: T): number;\n\n\t/**\n\t * Get the time.\n\t */\n\tgetTime(date: T): number;\n\n\t/**\n\t * Get the first day of the month.\n\t */\n\tstartOfMonth(date: T): T;\n\n\t/**\n\t * Get the last day of the month.\n\t */\n\tendOfMonth(date: T): T;\n\n\t/**\n\t * Get the start of the day.\n\t */\n\tstartOfDay(date: T): T;\n\n\t/**\n\t * Get the end of the day.\n\t */\n\tendOfDay(date: T): T;\n}\n\nexport interface BrnDateUnits {\n\t/**\n\t * The year.\n\t */\n\tyear?: number;\n\n\t/**\n\t * The month.\n\t */\n\tmonth?: number;\n\n\t/**\n\t * The day.\n\t */\n\tday?: number;\n\n\t/**\n\t * The hour.\n\t */\n\thour?: number;\n\n\t/**\n\t * The minute.\n\t */\n\tminute?: number;\n\n\t/**\n\t * The second.\n\t */\n\tsecond?: number;\n\n\t/**\n\t * The millisecond.\n\t */\n\tmillisecond?: number;\n}\n\nexport interface BrnDuration {\n\t/**\n\t * The years.\n\t */\n\tyears?: number;\n\n\t/**\n\t * The months.\n\t */\n\tmonths?: number;\n\n\t/**\n\t * The days.\n\t */\n\tdays?: number;\n\n\t/**\n\t * The hours.\n\t */\n\thours?: number;\n\n\t/**\n\t * The minutes.\n\t */\n\tminutes?: number;\n\n\t/**\n\t * The seconds.\n\t */\n\tseconds?: number;\n\n\t/**\n\t * The milliseconds.\n\t */\n\tmilliseconds?: number;\n}\n\nexport const BrnDateAdapterToken = new InjectionToken<BrnDateAdapter<unknown>>('BrnDateAdapterToken');\n\n/**\n * Inject the DateAdapter instance\n */\nexport function injectDateAdapter<T>(): BrnDateAdapter<T> {\n\treturn (inject(BrnDateAdapterToken, { optional: true }) as BrnDateAdapter<T>) ?? new BrnNativeDateAdapter();\n}\n\n/**\n * Provide the DateAdapter instance\n */\nexport function provideDateAdapter<T>(adapter: Type<BrnDateAdapter<T>>): ClassProvider {\n\treturn { provide: BrnDateAdapterToken, useClass: adapter };\n}\n\n/**\n * Provide the native date adapter\n */\nexport function provideNativeDateAdapter(): ClassProvider {\n\treturn provideDateAdapter(BrnNativeDateAdapter);\n}\n\n/**\n * Provide the UTC date adapter\n */\nexport function provideUtcDateAdapter(): ClassProvider {\n\treturn provideDateAdapter(BrnUtcDateAdapter);\n}\n","export const PersianDate = {\n\tgregorianDaysInMonth: [31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31],\n\tjalaliDaysInMonth: [31, 31, 31, 31, 31, 31, 30, 30, 30, 30, 30, 29],\n\n\tjalaliToGregorian: function (jalaliYear: number, jalaliMonth: number, jalaliDay: number): [number, number, number] {\n\t\tconst jalaliYearDelta = jalaliYear - 979;\n\t\tconst jalaliMonthIdx = jalaliMonth - 1;\n\t\tconst jalaliDayIdx = jalaliDay - 1;\n\n\t\tlet jalaliDayNo =\n\t\t\t365 * jalaliYearDelta + Math.floor(jalaliYearDelta / 33) * 8 + Math.floor(((jalaliYearDelta % 33) + 3) / 4);\n\t\tfor (let i = 0; i < jalaliMonthIdx; ++i) jalaliDayNo += this.jalaliDaysInMonth[i];\n\n\t\tjalaliDayNo += jalaliDayIdx;\n\n\t\tlet gregorianDayNo = jalaliDayNo + 79;\n\n\t\tlet gregorianYear = 1600 + 400 * Math.floor(gregorianDayNo / 146097);\n\t\tgregorianDayNo = gregorianDayNo % 146097;\n\n\t\tlet leap = true;\n\t\tif (gregorianDayNo >= 36525) {\n\t\t\tgregorianDayNo--;\n\t\t\tgregorianYear += 100 * Math.floor(gregorianDayNo / 36524);\n\t\t\tgregorianDayNo = gregorianDayNo % 36524;\n\n\t\t\tif (gregorianDayNo >= 365) gregorianDayNo++;\n\t\t\telse leap = false;\n\t\t}\n\n\t\tgregorianYear += 4 * Math.floor(gregorianDayNo / 1461);\n\t\tgregorianDayNo %= 1461;\n\n\t\tif (gregorianDayNo >= 366) {\n\t\t\tleap = false;\n\t\t\tgregorianDayNo--;\n\t\t\tgregorianYear += Math.floor(gregorianDayNo / 365);\n\t\t\tgregorianDayNo = gregorianDayNo % 365;\n\t\t}\n\n\t\tlet i = 0;\n\t\tfor (; gregorianDayNo >= this.gregorianDaysInMonth[i] + (i === 1 && leap ? 1 : 0); i++) {\n\t\t\tgregorianDayNo -= this.gregorianDaysInMonth[i] + (i === 1 && leap ? 1 : 0);\n\t\t}\n\n\t\tconst gregorianMonth = i + 1;\n\t\tconst gregorianDay = gregorianDayNo + 1;\n\n\t\treturn [gregorianYear, gregorianMonth, gregorianDay];\n\t},\n\n\tgregorianToJalali: function (\n\t\tgregorianYear: number,\n\t\tgregorianMonth: number,\n\t\tgregorianDay: number,\n\t): [number, number, number] {\n\t\tconst gregorianYearDelta = gregorianYear - 1600;\n\t\tconst gregorianMonthIdx = gregorianMonth - 1;\n\t\tconst gregorianDayIdx = gregorianDay - 1;\n\n\t\tlet gregorianDayNo =\n\t\t\t365 * gregorianYearDelta +\n\t\t\tMath.floor((gregorianYearDelta + 3) / 4) -\n\t\t\tMath.floor((gregorianYearDelta + 99) / 100) +\n\t\t\tMath.floor((gregorianYearDelta + 399) / 400);\n\n\t\tfor (let i = 0; i < gregorianMonthIdx; ++i) gregorianDayNo += this.gregorianDaysInMonth[i];\n\n\t\tif (\n\t\t\tgregorianMonthIdx > 1 &&\n\t\t\t((gregorianYearDelta % 4 === 0 && gregorianYearDelta % 100 !== 0) || gregorianYearDelta % 400 === 0)\n\t\t)\n\t\t\tgregorianDayNo++;\n\n\t\tgregorianDayNo += gregorianDayIdx;\n\n\t\tlet jalaliDayNo = gregorianDayNo - 79;\n\t\tconst jalaliCycleCount = Math.floor(jalaliDayNo / 12053);\n\t\tjalaliDayNo = jalaliDayNo % 12053;\n\n\t\tlet jalaliYear = 979 + 33 * jalaliCycleCount + 4 * Math.floor(jalaliDayNo / 1461);\n\n\t\tjalaliDayNo %= 1461;\n\n\t\tif (jalaliDayNo >= 366) {\n\t\t\tjalaliYear += Math.floor((jalaliDayNo - 1) / 365);\n\t\t\tjalaliDayNo = (jalaliDayNo - 1) % 365;\n\t\t}\n\n\t\tlet i = 0;\n\t\tfor (; i < 11 && jalaliDayNo >= this.jalaliDaysInMonth[i]; ++i) {\n\t\t\tjalaliDayNo -= this.jalaliDaysInMonth[i];\n\t\t}\n\n\t\tconst jalaliMonth = i + 1;\n\t\tconst jalaliDay = jalaliDayNo + 1;\n\n\t\treturn [jalaliYear, jalaliMonth, jalaliDay];\n\t},\n\n\tisLeapJalaliYear: function (year: number): boolean {\n\t\tconst breaks = [1, 5, 9, 13, 17, 22, 26, 30];\n\t\treturn breaks.includes(year % 33);\n\t},\n\n\tgetDaysInMonth: function (year: number, month: number): number {\n\t\tif (month < 1 || month > 12) return 0;\n\t\tif (month <= 6) return 31;\n\t\tif (month <= 11) return 30;\n\t\treturn this.isLeapJalaliYear(year) ? 30 : 29;\n\t},\n\n\tgetDayOfWeek: function (jalaliYear: number, jalaliMonth: number, jalaliDay: number): number {\n\t\tconst [gregorianYear, gregorianMonth, gregorianDay] = this.jalaliToGregorian(jalaliYear, jalaliMonth, jalaliDay);\n\t\tconst date = new Date(gregorianYear, gregorianMonth - 1, gregorianDay);\n\t\treturn date.getDay();\n\t},\n\n\tgetDaysInYear: function (year: number): number {\n\t\treturn this.isLeapJalaliYear(year) ? 366 : 365;\n\t},\n\n\tisValidDate: function (year: number, month: number, day: number): boolean {\n\t\tif (year < 0 || month < 1 || month > 12 || day < 1) return false;\n\t\treturn day <= this.getDaysInMonth(year, month);\n\t},\n};\n","import { PersianDate } from './persian-date';\n\nexport class JalaliDate {\n\tconstructor(\n\t\tpublic readonly year: number,\n\t\tpublic readonly month: number,\n\t\tpublic readonly day: number,\n\t) {}\n\n\tvalueOf(): number {\n\t\tconst [gregorianYear, gregorianMonth, gregorianDay] = PersianDate.jalaliToGregorian(\n\t\t\tthis.year,\n\t\t\tthis.month,\n\t\t\tthis.day,\n\t\t);\n\t\treturn new Date(gregorianYear, gregorianMonth - 1, gregorianDay).getTime();\n\t}\n\n\ttoString(): string {\n\t\treturn `${this.year}/${String(this.month).padStart(2, '0')}/${String(this.day).padStart(2, '0')}`;\n\t}\n}\n","import type { BrnDateAdapter, BrnDateUnits, BrnDuration } from './date-adapter';\nimport { JalaliDate } from './jalali-date';\nimport { PersianDate } from './persian-date';\n\nexport class BrnJalaliDateAdapter implements BrnDateAdapter<JalaliDate> {\n\tcreate({ year, month, day }: BrnDateUnits): JalaliDate {\n\t\tconst now = this.now();\n\t\tconst m = month !== undefined ? month + 1 : now.month;\n\t\treturn this._constrain(year ?? now.year, m, day ?? now.day);\n\t}\n\n\tnow(): JalaliDate {\n\t\tconst today = new Date();\n\t\tconst [jalaliYear, jalaliMonth, jalaliDay] = PersianDate.gregorianToJalali(\n\t\t\ttoday.getFullYear(),\n\t\t\ttoday.getMonth() + 1,\n\t\t\ttoday.getDate(),\n\t\t);\n\t\treturn this._constrain(jalaliYear, jalaliMonth, jalaliDay);\n\t}\n\n\tset(date: JalaliDate, values: BrnDateUnits): JalaliDate {\n\t\tconst year = values.year ?? date.year;\n\t\tconst month = values.month !== undefined ? values.month + 1 : date.month;\n\t\tconst day = values.day ?? date.day;\n\t\treturn this._constrain(year, month, day);\n\t}\n\n\tadd(date: JalaliDate, duration: BrnDuration): JalaliDate {\n\t\tlet { year, month, day } = date;\n\n\t\tif (duration.years) {\n\t\t\tyear += duration.years;\n\t\t}\n\n\t\tif (duration.months) {\n\t\t\tmonth += duration.months;\n\t\t\tif (month > 12) {\n\t\t\t\tyear += Math.floor((month - 1) / 12);\n\t\t\t\tmonth = ((month - 1) % 12) + 1;\n\t\t\t} else if (month < 1) {\n\t\t\t\tyear += Math.floor((month - 1) / 12);\n\t\t\t\tmonth = ((((month - 1) % 12) + 12) % 12) + 1;\n\t\t\t}\n\t\t\tday = Math.min(day, PersianDate.getDaysInMonth(year, month));\n\t\t}\n\n\t\tif (duration.days) {\n\t\t\tconst [gregorianYear, gregorianMonth, gregorianDay] = PersianDate.jalaliToGregorian(year, month, day);\n\t\t\tconst jsDate = new Date(gregorianYear, gregorianMonth - 1, gregorianDay);\n\t\t\tjsDate.setDate(jsDate.getDate() + duration.days);\n\t\t\t[year, month, day] = PersianDate.gregorianToJalali(jsDate.getFullYear(), jsDate.getMonth() + 1, jsDate.getDate());\n\t\t}\n\n\t\treturn this._constrain(year, month, day);\n\t}\n\n\tsubtract(date: JalaliDate, duration: BrnDuration): JalaliDate {\n\t\treturn this.add(date, {\n\t\t\tyears: duration.years ? -duration.years : undefined,\n\t\t\tmonths: duration.months ? -duration.months : undefined,\n\t\t\tdays: duration.days ? -duration.days : undefined,\n\t\t});\n\t}\n\n\tcompare(a: JalaliDate, b: JalaliDate): number {\n\t\tconst diff = a.valueOf() - b.valueOf();\n\t\treturn diff === 0 ? 0 : diff > 0 ? 1 : -1;\n\t}\n\n\tisEqual(a: JalaliDate, b: JalaliDate): boolean {\n\t\treturn a.valueOf() === b.valueOf();\n\t}\n\n\tisBefore(a: JalaliDate, b: JalaliDate): boolean {\n\t\treturn a.valueOf() < b.valueOf();\n\t}\n\n\tisAfter(a: JalaliDate, b: JalaliDate): boolean {\n\t\treturn a.valueOf() > b.valueOf();\n\t}\n\n\tisSameDay(a: JalaliDate, b: JalaliDate): boolean {\n\t\treturn a.year === b.year && a.month === b.month && a.day === b.day;\n\t}\n\n\tisSameMonth(a: JalaliDate, b: JalaliDate): boolean {\n\t\treturn a.year === b.year && a.month === b.month;\n\t}\n\n\tisSameYear(a: JalaliDate, b: JalaliDate): boolean {\n\t\treturn a.year === b.year;\n\t}\n\n\tgetYear(date: JalaliDate): number {\n\t\treturn date.year;\n\t}\n\n\tgetMonth(date: JalaliDate): number {\n\t\treturn date.month - 1;\n\t}\n\n\tgetDate(date: JalaliDate): number {\n\t\treturn date.day;\n\t}\n\n\tgetDay(date: JalaliDate): number {\n\t\tconst [gregorianYear, gregorianMonth, gregorianDay] = PersianDate.jalaliToGregorian(\n\t\t\tdate.year,\n\t\t\tdate.month,\n\t\t\tdate.day,\n\t\t);\n\t\treturn new Date(gregorianYear, gregorianMonth - 1, gregorianDay).getDay();\n\t}\n\n\tgetHours(_date: JalaliDate): number {\n\t\treturn 0;\n\t}\n\n\tgetMinutes(_date: JalaliDate): number {\n\t\treturn 0;\n\t}\n\n\tgetSeconds(_date: JalaliDate): number {\n\t\treturn 0;\n\t}\n\n\tgetMilliseconds(_date: JalaliDate): number {\n\t\treturn 0;\n\t}\n\n\tgetTime(date: JalaliDate): number {\n\t\treturn date.valueOf();\n\t}\n\n\tstartOfMonth(date: JalaliDate): JalaliDate {\n\t\treturn new JalaliDate(date.year, date.month, 1);\n\t}\n\n\tendOfMonth(date: JalaliDate): JalaliDate {\n\t\treturn new JalaliDate(date.year, date.month, PersianDate.getDaysInMonth(date.year, date.month));\n\t}\n\n\tstartOfDay(date: JalaliDate): JalaliDate {\n\t\treturn date;\n\t}\n\n\tendOfDay(date: JalaliDate): JalaliDate {\n\t\treturn date;\n\t}\n\n\tprivate _constrain(year: number, month: number, day: number): JalaliDate {\n\t\tconst maxDay = PersianDate.getDaysInMonth(year, month);\n\t\treturn new JalaliDate(year, month, Math.min(day, maxDay));\n\t}\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
@@ -111,10 +111,6 @@ class BrnDialogRef {
111
111
  }
112
112
 
113
113
  let dialogSequence = 0;
114
- /** @deprecated `injectBrnDialogCtx` will no longer be supported once components are stable. Use `injectBrnDialogContext` instead. */
115
- const injectBrnDialogCtx = () => {
116
- return inject(DIALOG_DATA);
117
- };
118
114
  // eslint-disable-next-line @typescript-eslint/no-explicit-any
119
115
  const injectBrnDialogContext = (options = {}) => {
120
116
  return inject(DIALOG_DATA, options);
@@ -626,5 +622,5 @@ const BrnDialogImports = [
626
622
  * Generated bundle index. Do not edit.
627
623
  */
628
624
 
629
- export { BrnDialog, BrnDialogClose, BrnDialogContent, BrnDialogDescription, BrnDialogImports, BrnDialogOverlay, BrnDialogRef, BrnDialogService, BrnDialogTitle, BrnDialogTrigger, cssClassesToArray, defaultOptions, injectBrnDialogContext, injectBrnDialogCtx, injectBrnDialogDefaultOptions, provideBrnDialogDefaultOptions };
625
+ export { BrnDialog, BrnDialogClose, BrnDialogContent, BrnDialogDescription, BrnDialogImports, BrnDialogOverlay, BrnDialogRef, BrnDialogService, BrnDialogTitle, BrnDialogTrigger, cssClassesToArray, defaultOptions, injectBrnDialogContext, injectBrnDialogDefaultOptions, provideBrnDialogDefaultOptions };
630
626
  //# sourceMappingURL=spartan-ng-brain-dialog.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"spartan-ng-brain-dialog.mjs","sources":["../../../../libs/brain/dialog/src/lib/brn-dialog-token.ts","../../../../libs/brain/dialog/src/lib/brn-dialog-utils.ts","../../../../libs/brain/dialog/src/lib/brn-dialog-ref.ts","../../../../libs/brain/dialog/src/lib/brn-dialog.service.ts","../../../../libs/brain/dialog/src/lib/brn-dialog.ts","../../../../libs/brain/dialog/src/lib/brn-dialog-close.ts","../../../../libs/brain/dialog/src/lib/brn-dialog-content.ts","../../../../libs/brain/dialog/src/lib/brn-dialog-description.ts","../../../../libs/brain/dialog/src/lib/brn-dialog-overlay.ts","../../../../libs/brain/dialog/src/lib/brn-dialog-title.ts","../../../../libs/brain/dialog/src/lib/brn-dialog-trigger.ts","../../../../libs/brain/dialog/src/index.ts","../../../../libs/brain/dialog/src/spartan-ng-brain-dialog.ts"],"sourcesContent":["import { inject, InjectionToken, type ValueProvider } from '@angular/core';\nimport type { BrnDialogOptions } from './brn-dialog-options';\n\nexport interface BrnDialogDefaultOptions {\n\t/** Aria label to assign to the dialog element. */\n\tariaLabel: BrnDialogOptions['ariaLabel'];\n\n\t/** Whether the dialog should be considered a modal dialog. */\n\tariaModal: BrnDialogOptions['ariaModal'];\n\n\t/** A connected position as specified by the user. */\n\tattachPositions: BrnDialogOptions['attachPositions'];\n\n\t/** Element to which the dialog should be attached. */\n\tattachTo: BrnDialogOptions['attachTo'];\n\n\t/** Options for where to set focus to automatically on dialog open */\n\tautoFocus: BrnDialogOptions['autoFocus'];\n\n\t/** CSS class to be applied to the backdrop. */\n\tbackdropClass: BrnDialogOptions['backdropClass'];\n\n\t/** The delay in milliseconds before the dialog closes. */\n\tcloseDelay: BrnDialogOptions['closeDelay'];\n\n\t/** Close dialog on backdrop click */\n\tcloseOnBackdropClick: BrnDialogOptions['closeOnBackdropClick'];\n\n\t/** Close dialog on outside pointer event */\n\tcloseOnOutsidePointerEvents: BrnDialogOptions['closeOnOutsidePointerEvents'];\n\n\t/** Whether the dialog closes with the escape key or pointer events outside the panel element. */\n\tdisableClose: BrnDialogOptions['disableClose'];\n\n\t/** Whether the dialog has a backdrop. */\n\thasBackdrop: BrnDialogOptions['hasBackdrop'];\n\n\t/** CSS class applied to the panel. */\n\tpanelClass: BrnDialogOptions['panelClass'];\n\n\t/** Strategy to use when positioning the dialog */\n\tpositionStrategy: BrnDialogOptions['positionStrategy'];\n\n\t/** Whether the dialog should restore focus to the previously-focused element upon closing. */\n\trestoreFocus: BrnDialogOptions['restoreFocus'];\n\n\t/** The role of the dialog */\n\trole: BrnDialogOptions['role'];\n\n\t/** Scroll strategy to be used for the dialog. */\n\tscrollStrategy: BrnDialogOptions['scrollStrategy'] | 'close' | 'reposition';\n}\n\nexport const defaultOptions: BrnDialogDefaultOptions = {\n\tariaLabel: undefined,\n\tariaModal: true,\n\tattachPositions: [],\n\tattachTo: null,\n\tautoFocus: 'first-tabbable',\n\tbackdropClass: '',\n\tcloseDelay: 100,\n\tcloseOnBackdropClick: true,\n\tcloseOnOutsidePointerEvents: false,\n\tdisableClose: false,\n\thasBackdrop: true,\n\tpanelClass: '',\n\tpositionStrategy: null,\n\trestoreFocus: true,\n\trole: 'dialog',\n\tscrollStrategy: null,\n};\n\nconst BRN_DIALOG_DEFAULT_OPTIONS = new InjectionToken<BrnDialogDefaultOptions>('brn-dialog-default-options', {\n\tprovidedIn: 'root',\n\tfactory: () => defaultOptions,\n});\n\nexport function provideBrnDialogDefaultOptions(options: Partial<BrnDialogDefaultOptions>): ValueProvider {\n\treturn { provide: BRN_DIALOG_DEFAULT_OPTIONS, useValue: { ...defaultOptions, ...options } };\n}\n\nexport function injectBrnDialogDefaultOptions(): BrnDialogDefaultOptions {\n\treturn inject(BRN_DIALOG_DEFAULT_OPTIONS, { optional: true }) ?? defaultOptions;\n}\n","// brn-dialog-utils.ts\n\nexport const cssClassesToArray = (classes: string | string[] | undefined | null, defaultClass = ''): string[] => {\n\tif (typeof classes === 'string') {\n\t\tconst splitClasses = classes.trim().split(' ');\n\t\tif (splitClasses.length === 0) {\n\t\t\treturn [defaultClass];\n\t\t}\n\t\treturn splitClasses;\n\t}\n\treturn classes ?? [];\n};\n","import type { DialogRef } from '@angular/cdk/dialog';\nimport type { Signal, WritableSignal } from '@angular/core';\nimport { signal } from '@angular/core';\nimport { type Observable, Subject } from 'rxjs';\nimport { take } from 'rxjs/operators';\nimport type { BrnDialogOptions } from './brn-dialog-options';\nimport type { BrnDialogState } from './brn-dialog-state';\nimport { cssClassesToArray } from './brn-dialog-utils';\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport class BrnDialogRef<DialogResult = any> {\n\tprivate readonly _closing$ = new Subject<void>();\n\tpublic readonly closing$ = this._closing$.asObservable();\n\n\tpublic readonly closed$: Observable<DialogResult | undefined>;\n\n\tprivate _previousTimeout: ReturnType<typeof setTimeout> | undefined;\n\n\tpublic get open() {\n\t\treturn this.state() === 'open';\n\t}\n\n\tprivate readonly _options = signal<undefined | BrnDialogOptions>(undefined);\n\tpublic readonly options = this._options.asReadonly();\n\n\tconstructor(\n\t\tprivate readonly _cdkDialogRef: DialogRef<DialogResult>,\n\t\tprivate readonly _open: WritableSignal<boolean>,\n\t\tpublic readonly state: Signal<BrnDialogState>,\n\t\tpublic readonly dialogId: number,\n\t\t_options?: BrnDialogOptions,\n\t) {\n\t\tif (_options) {\n\t\t\tthis._options.set(_options);\n\t\t}\n\t\tthis.closed$ = this._cdkDialogRef.closed.pipe(take(1));\n\t}\n\n\tpublic updateOptions(options: Partial<BrnDialogOptions>): void {\n\t\tthis._options.update((prev) => ({ ...(prev ?? {}), ...options }) as BrnDialogOptions);\n\t}\n\n\tpublic close(result?: DialogResult, delay: number = this._options()?.closeDelay ?? 0): void {\n\t\tif (!this.open || this._options()?.disableClose) return;\n\n\t\tthis._closing$.next();\n\t\tthis._open.set(false);\n\n\t\tif (this._previousTimeout) {\n\t\t\tclearTimeout(this._previousTimeout);\n\t\t}\n\n\t\tthis._previousTimeout = setTimeout(() => {\n\t\t\tthis._cdkDialogRef.close(result);\n\t\t}, delay);\n\t}\n\n\tpublic setPanelClass(paneClass: string | null | undefined): void {\n\t\tthis._cdkDialogRef.config.panelClass = cssClassesToArray(paneClass);\n\t}\n\n\tpublic setOverlayClass(overlayClass: string | null | undefined): void {\n\t\tthis._cdkDialogRef.config.backdropClass = cssClassesToArray(overlayClass);\n\t}\n\n\tpublic setAriaDescribedBy(ariaDescribedBy: string | null | undefined): void {\n\t\tthis._cdkDialogRef.config.ariaDescribedBy = ariaDescribedBy;\n\t}\n\n\tpublic setAriaLabelledBy(ariaLabelledBy: string | null | undefined): void {\n\t\tthis._cdkDialogRef.config.ariaLabelledBy = ariaLabelledBy;\n\t}\n\n\tpublic setAriaLabel(ariaLabel: string | null | undefined): void {\n\t\tthis._cdkDialogRef.config.ariaLabel = ariaLabel;\n\t}\n\n\tpublic updatePosition(): void {\n\t\tthis._cdkDialogRef.overlayRef?.updatePosition();\n\t}\n}\n","import { Dialog, DIALOG_DATA } from '@angular/cdk/dialog';\nimport {\n\ttype ComponentType,\n\tFlexibleConnectedPositionStrategy,\n\tOverlayOutsideClickDispatcher,\n\tOverlayPositionBuilder,\n\tOverlayRef,\n\tScrollStrategyOptions,\n} from '@angular/cdk/overlay';\nimport { BasePortalOutlet } from '@angular/cdk/portal';\nimport {\n\tChangeDetectorRef,\n\tcomputed,\n\teffect,\n\ttype EffectRef,\n\tElementRef,\n\tinject,\n\tInjectable,\n\ttype InjectOptions,\n\tInjector,\n\tRendererFactory2,\n\trunInInjectionContext,\n\tsignal,\n\ttype StaticProvider,\n\ttype TemplateRef,\n\ttype ViewContainerRef,\n} from '@angular/core';\nimport { merge, Subject } from 'rxjs';\nimport { filter, takeUntil } from 'rxjs/operators';\nimport type { BrnDialogOptions } from './brn-dialog-options';\nimport { BrnDialogRef } from './brn-dialog-ref';\nimport type { BrnDialogState } from './brn-dialog-state';\nimport { injectBrnDialogDefaultOptions } from './brn-dialog-token';\n\nlet dialogSequence = 0;\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport type BrnDialogContext<T> = T & { close: (result?: any) => void };\n\n/** @deprecated `injectBrnDialogCtx` will no longer be supported once components are stable. Use `injectBrnDialogContext` instead. */\nexport const injectBrnDialogCtx = <T>(): BrnDialogContext<T> => {\n\treturn inject(DIALOG_DATA);\n};\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport const injectBrnDialogContext = <DialogContext = any>(options: InjectOptions = {}) => {\n\treturn inject(DIALOG_DATA, options) as DialogContext;\n};\n\n@Injectable({ providedIn: 'root' })\nexport class BrnDialogService {\n\tprivate readonly _overlayCloseDispatcher = inject(OverlayOutsideClickDispatcher);\n\tprivate readonly _cdkDialog = inject(Dialog);\n\tprivate readonly _rendererFactory = inject(RendererFactory2);\n\tprivate readonly _renderer = this._rendererFactory.createRenderer(null, null);\n\tprivate readonly _positionBuilder = inject(OverlayPositionBuilder);\n\tprivate readonly _sso = inject(ScrollStrategyOptions);\n\tprivate readonly _injector = inject(Injector);\n\tprivate readonly _defaultOptions = injectBrnDialogDefaultOptions();\n\n\tpublic open<DialogContext>(\n\t\tcontent: ComponentType<unknown> | TemplateRef<unknown>,\n\t\tvcr?: ViewContainerRef,\n\t\tcontext?: DialogContext,\n\t\toptions?: Partial<BrnDialogOptions>,\n\t) {\n\t\tif (options?.id && this._cdkDialog.getDialogById(options.id)) {\n\t\t\tthrow new Error(`Dialog with ID: ${options.id} already exists`);\n\t\t}\n\n\t\tconst attachTo = options?.attachTo ?? this._defaultOptions.attachTo;\n\n\t\tconst positionStrategy =\n\t\t\toptions?.positionStrategy ??\n\t\t\tthis._defaultOptions.positionStrategy ??\n\t\t\t(attachTo && options?.attachPositions && options?.attachPositions?.length > 0\n\t\t\t\t? this._positionBuilder?.flexibleConnectedTo(attachTo).withPositions(options.attachPositions ?? [])\n\t\t\t\t: this._positionBuilder.global().centerHorizontally().centerVertically());\n\n\t\tlet brnDialogRef!: BrnDialogRef;\n\t\tconst effectRefs: EffectRef[] = [];\n\n\t\t// eslint-disable-next-line @typescript-eslint/no-explicit-any\n\t\tconst contextOrData: BrnDialogContext<any> = {\n\t\t\t...context,\n\t\t\t// eslint-disable-next-line @typescript-eslint/no-explicit-any\n\t\t\tclose: (result: any = undefined) => brnDialogRef.close(result, options?.closeDelay),\n\t\t};\n\n\t\tconst destroyed$ = new Subject<void>();\n\t\tconst optionsChanged$ = new Subject<void>();\n\t\tconst open = signal<boolean>(true);\n\t\tconst state = computed<BrnDialogState>(() => (open() ? 'open' : 'closed'));\n\t\tconst dialogId = ++dialogSequence;\n\n\t\t// eslint-disable-next-line @typescript-eslint/ban-ts-comment\n\t\t// @ts-ignore\n\t\tconst cdkDialogRef = this._cdkDialog.open(content, {\n\t\t\tid: options?.id ?? `brn-dialog-${dialogId}`,\n\t\t\trole: options?.role ?? this._defaultOptions.role,\n\t\t\tviewContainerRef: vcr,\n\t\t\ttemplateContext: () => ({\n\t\t\t\t$implicit: contextOrData,\n\t\t\t}),\n\t\t\tdata: contextOrData,\n\t\t\tdirection: options?.direction,\n\t\t\thasBackdrop: options?.hasBackdrop ?? this._defaultOptions.hasBackdrop,\n\t\t\tpanelClass: options?.panelClass,\n\t\t\tbackdropClass: options?.backdropClass,\n\t\t\tpositionStrategy,\n\t\t\tscrollStrategy: options?.scrollStrategy ?? this._defaultOptions.scrollStrategy ?? this._sso?.block(),\n\t\t\trestoreFocus: options?.restoreFocus ?? this._defaultOptions.restoreFocus,\n\t\t\tdisableClose: true,\n\t\t\tautoFocus: options?.autoFocus ?? this._defaultOptions.autoFocus,\n\t\t\tariaDescribedBy: options?.ariaDescribedBy ?? `brn-dialog-description-${dialogId}`,\n\t\t\tariaLabelledBy: options?.ariaLabelledBy ?? `brn-dialog-title-${dialogId}`,\n\t\t\tariaLabel: options?.ariaLabel ?? this._defaultOptions.ariaLabel,\n\t\t\tariaModal: options?.ariaModal ?? this._defaultOptions.ariaModal,\n\t\t\tproviders: (cdkDialogRef) => {\n\t\t\t\tbrnDialogRef = new BrnDialogRef(cdkDialogRef, open, state, dialogId, options as BrnDialogOptions);\n\n\t\t\t\trunInInjectionContext(this._injector, () => {\n\t\t\t\t\tconst ref = effect(() => {\n\t\t\t\t\t\tif (overlay) {\n\t\t\t\t\t\t\tthis._renderer.setAttribute(overlay, 'data-state', state());\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif (backdrop) {\n\t\t\t\t\t\t\tthis._renderer.setAttribute(backdrop, 'data-state', state());\n\t\t\t\t\t\t}\n\t\t\t\t\t});\n\t\t\t\t\teffectRefs.push(ref);\n\t\t\t\t});\n\n\t\t\t\tconst providers: StaticProvider[] = [\n\t\t\t\t\t{\n\t\t\t\t\t\tprovide: BrnDialogRef,\n\t\t\t\t\t\tuseValue: brnDialogRef,\n\t\t\t\t\t},\n\t\t\t\t];\n\n\t\t\t\tif (options?.providers) {\n\t\t\t\t\tif (typeof options.providers === 'function') {\n\t\t\t\t\t\tproviders.push(...options.providers());\n\t\t\t\t\t}\n\n\t\t\t\t\tif (Array.isArray(options.providers)) {\n\t\t\t\t\t\tproviders.push(...options.providers);\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\treturn providers;\n\t\t\t},\n\t\t});\n\n\t\tconst overlay = cdkDialogRef.overlayRef.overlayElement;\n\t\tconst backdrop = cdkDialogRef.overlayRef.backdropElement;\n\n\t\trunInInjectionContext(this._injector, () => {\n\t\t\tconst optionChangeEffect = effect(() => {\n\t\t\t\tconst options = brnDialogRef.options();\n\t\t\t\toptionsChanged$.next();\n\t\t\t\tconst closeOnOutsidePointerEvents =\n\t\t\t\t\toptions?.closeOnOutsidePointerEvents ?? this._defaultOptions.closeOnOutsidePointerEvents;\n\t\t\t\tif (closeOnOutsidePointerEvents) {\n\t\t\t\t\tcdkDialogRef.outsidePointerEvents.pipe(takeUntil(merge(destroyed$, optionsChanged$))).subscribe(() => {\n\t\t\t\t\t\tconst overlays = this._overlayCloseDispatcher._attachedOverlays;\n\t\t\t\t\t\tconst index = overlays.indexOf(cdkDialogRef.overlayRef);\n\t\t\t\t\t\t// close if this is the topmost overlay\n\t\t\t\t\t\t// but prevent closing if this overlay contains the top overlay (which will be closed)\n\t\t\t\t\t\tif (\n\t\t\t\t\t\t\tindex === overlays.length - 1 ||\n\t\t\t\t\t\t\t(overlays.length > 1 && !this.isNested(cdkDialogRef.overlayRef, overlays.at(-1)!))\n\t\t\t\t\t\t) {\n\t\t\t\t\t\t\tbrnDialogRef.close(undefined, options?.closeDelay);\n\t\t\t\t\t\t}\n\t\t\t\t\t});\n\t\t\t\t}\n\n\t\t\t\tconst closeOnBackdropClick = options?.closeOnBackdropClick ?? this._defaultOptions.closeOnBackdropClick;\n\t\t\t\tif (closeOnBackdropClick) {\n\t\t\t\t\tcdkDialogRef.backdropClick.pipe(takeUntil(merge(destroyed$, optionsChanged$))).subscribe(() => {\n\t\t\t\t\t\tbrnDialogRef.close(undefined, options?.closeDelay);\n\t\t\t\t\t});\n\t\t\t\t}\n\n\t\t\t\tconst disableClose = options?.disableClose ?? this._defaultOptions.disableClose;\n\t\t\t\tif (!disableClose) {\n\t\t\t\t\tcdkDialogRef.keydownEvents\n\t\t\t\t\t\t.pipe(\n\t\t\t\t\t\t\tfilter((e) => e.key === 'Escape'),\n\t\t\t\t\t\t\ttakeUntil(merge(destroyed$, optionsChanged$)),\n\t\t\t\t\t\t)\n\t\t\t\t\t\t.subscribe(() => {\n\t\t\t\t\t\t\tbrnDialogRef.close(undefined, options?.closeDelay);\n\t\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t});\n\n\t\t\teffectRefs.push(optionChangeEffect);\n\t\t});\n\t\tcdkDialogRef.closed.pipe(takeUntil(destroyed$)).subscribe(() => {\n\t\t\teffectRefs.forEach((a) => a.destroy());\n\t\t\tdestroyed$.next();\n\t\t\toptionsChanged$.next();\n\t\t});\n\n\t\t// this is not ideal, but we need to force change detection to run in the dialog,\n\t\t// otherwise in some conditions (like menu launching a dialog) the dialog content\n\t\t// does not render.\n\t\tif ('_changeDetectorRef' in cdkDialogRef.containerInstance) {\n\t\t\tconst containerInstance = cdkDialogRef.containerInstance as BasePortalOutlet & {\n\t\t\t\t_changeDetectorRef: ChangeDetectorRef;\n\t\t\t};\n\t\t\tcontainerInstance._changeDetectorRef.detectChanges();\n\t\t}\n\n\t\treturn brnDialogRef;\n\t}\n\n\tprivate isNested(parent: OverlayRef, child: OverlayRef): boolean {\n\t\tconst childOrigin = (child.getConfig().positionStrategy as FlexibleConnectedPositionStrategy)._origin;\n\t\tif (!childOrigin) {\n\t\t\treturn false;\n\t\t} else if ('width' in childOrigin && 'height' in childOrigin) {\n\t\t\tconst rect = parent.hostElement.getBoundingClientRect();\n\t\t\treturn (\n\t\t\t\tchildOrigin.x >= rect.left &&\n\t\t\t\tchildOrigin.x <= rect.right &&\n\t\t\t\tchildOrigin.y >= rect.top &&\n\t\t\t\tchildOrigin.y <= rect.bottom\n\t\t\t);\n\t\t} else {\n\t\t\tconst element: Element = (childOrigin as ElementRef).nativeElement || childOrigin;\n\t\t\treturn parent.hostElement.contains(element);\n\t\t}\n\t}\n}\n","import { Directionality } from '@angular/cdk/bidi';\nimport { type BooleanInput, type NumberInput } from '@angular/cdk/coercion';\nimport { OverlayPositionBuilder, type ScrollStrategy, ScrollStrategyOptions } from '@angular/cdk/overlay';\nimport {\n\tafterNextRender,\n\tbooleanAttribute,\n\tcomputed,\n\tDestroyRef,\n\tDirective,\n\teffect,\n\ttype EffectRef,\n\tinject,\n\tInjector,\n\tinput,\n\tlinkedSignal,\n\tnumberAttribute,\n\toutput,\n\trunInInjectionContext,\n\tsignal,\n\ttype TemplateRef,\n\tuntracked,\n\tViewContainerRef,\n} from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { take } from 'rxjs/operators';\nimport type { BrnDialogOptions } from './brn-dialog-options';\nimport type { BrnDialogRef } from './brn-dialog-ref';\nimport type { BrnDialogState } from './brn-dialog-state';\nimport { injectBrnDialogDefaultOptions } from './brn-dialog-token';\nimport { cssClassesToArray } from './brn-dialog-utils';\nimport { BrnDialogService } from './brn-dialog.service';\n\n@Directive({\n\tselector: '[brnDialog],brn-dialog',\n\texportAs: 'brnDialog',\n})\nexport class BrnDialog<TResult = unknown, TContext extends Record<string, unknown> = Record<string, unknown>> {\n\tprivate readonly _dialogService = inject(BrnDialogService);\n\tprivate readonly _destroyRef = inject(DestroyRef);\n\tprivate readonly _vcr = inject(ViewContainerRef);\n\tpublic readonly positionBuilder = inject(OverlayPositionBuilder);\n\tpublic readonly ssos = inject(ScrollStrategyOptions);\n\tprivate readonly _injector = inject(Injector);\n\tprivate readonly _directionality = inject(Directionality);\n\n\tprotected readonly _defaultOptions = injectBrnDialogDefaultOptions();\n\n\tprivate _context: TContext = {} as TContext;\n\tpublic readonly stateComputed = computed(() => this._dialogRef()?.state() ?? 'closed');\n\n\tprivate _contentTemplate: TemplateRef<unknown> | undefined;\n\tprivate readonly _dialogRef = signal<BrnDialogRef | undefined>(undefined);\n\tprivate readonly _dialogStateEffectRefs: EffectRef[] = [];\n\tprivate readonly _backdropClass = signal<string | null | undefined>(null);\n\tprivate readonly _panelClass = signal<string | null | undefined>(null);\n\n\tpublic readonly closed = output<TResult>();\n\n\tpublic readonly stateChanged = output<BrnDialogState>();\n\n\tpublic readonly state = input<BrnDialogState | null>(null);\n\n\tpublic readonly role = input<BrnDialogOptions['role']>(this._defaultOptions.role);\n\n\tpublic readonly hasBackdrop = input<boolean, BooleanInput>(this._defaultOptions.hasBackdrop, {\n\t\ttransform: booleanAttribute,\n\t});\n\n\tpublic readonly positionStrategy = input<BrnDialogOptions['positionStrategy']>(this._defaultOptions.positionStrategy);\n\tpublic readonly mutablePositionStrategy = linkedSignal(() => this.positionStrategy());\n\n\tpublic readonly scrollStrategy = input<BrnDialogOptions['scrollStrategy'] | 'close' | 'reposition' | null>(\n\t\tthis._defaultOptions.scrollStrategy,\n\t);\n\n\tprotected readonly _options = computed<Partial<BrnDialogOptions>>(() => {\n\t\tconst scrollStrategyInput = this.scrollStrategy();\n\t\tlet scrollStrategy: ScrollStrategy | null | undefined;\n\n\t\tif (scrollStrategyInput === 'close') {\n\t\t\tscrollStrategy = this.ssos.close();\n\t\t} else if (scrollStrategyInput === 'reposition') {\n\t\t\tscrollStrategy = this.ssos.reposition();\n\t\t} else {\n\t\t\tscrollStrategy = scrollStrategyInput;\n\t\t}\n\n\t\treturn {\n\t\t\trole: this.role(),\n\t\t\tdirection: this._directionality.valueSignal(),\n\t\t\thasBackdrop: this.hasBackdrop(),\n\t\t\tpositionStrategy: this.mutablePositionStrategy(),\n\t\t\tscrollStrategy,\n\t\t\trestoreFocus: this.restoreFocus(),\n\t\t\tcloseOnOutsidePointerEvents: this.mutableCloseOnOutsidePointerEvents(),\n\t\t\tcloseOnBackdropClick: this.closeOnBackdropClick(),\n\t\t\tattachTo: this.mutableAttachTo(),\n\t\t\tattachPositions: this.mutableAttachPositions(),\n\t\t\tautoFocus: this.autoFocus(),\n\t\t\tcloseDelay: this.closeDelay(),\n\t\t\tdisableClose: this.disableClose(),\n\t\t\tbackdropClass: cssClassesToArray(this._backdropClass() ?? this._defaultOptions.backdropClass),\n\t\t\tpanelClass: cssClassesToArray(this._panelClass() ?? this._defaultOptions.panelClass),\n\t\t\tariaDescribedBy: this._mutableAriaDescribedBy(),\n\t\t\tariaLabelledBy: this._mutableAriaLabelledBy(),\n\t\t\tariaLabel: this._mutableAriaLabel(),\n\t\t\tariaModal: this._mutableAriaModal(),\n\t\t};\n\t});\n\n\tconstructor() {\n\t\tafterNextRender(() => {\n\t\t\teffect(\n\t\t\t\t() => {\n\t\t\t\t\tconst state = this.state();\n\t\t\t\t\tif (state === 'open') {\n\t\t\t\t\t\tuntracked(() => this.open());\n\t\t\t\t\t}\n\t\t\t\t\tif (state === 'closed') {\n\t\t\t\t\t\tuntracked(() => this.close());\n\t\t\t\t\t}\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\tinjector: this._injector,\n\t\t\t\t},\n\t\t\t);\n\t\t});\n\t}\n\n\tpublic readonly restoreFocus = input<BrnDialogOptions['restoreFocus']>(this._defaultOptions.restoreFocus);\n\n\tpublic readonly closeOnOutsidePointerEvents = input<boolean, BooleanInput>(\n\t\tthis._defaultOptions.closeOnOutsidePointerEvents,\n\t\t{\n\t\t\ttransform: booleanAttribute,\n\t\t},\n\t);\n\tpublic readonly mutableCloseOnOutsidePointerEvents = linkedSignal(() => this.closeOnOutsidePointerEvents());\n\n\tpublic readonly closeOnBackdropClick = input<boolean, BooleanInput>(this._defaultOptions.closeOnBackdropClick, {\n\t\ttransform: booleanAttribute,\n\t});\n\n\tpublic readonly attachTo = input<BrnDialogOptions['attachTo']>(null);\n\tpublic readonly mutableAttachTo = linkedSignal(() => this.attachTo());\n\n\tpublic readonly attachPositions = input<BrnDialogOptions['attachPositions']>(this._defaultOptions.attachPositions);\n\tpublic readonly mutableAttachPositions = linkedSignal(() => this.attachPositions());\n\n\tpublic readonly autoFocus = input<BrnDialogOptions['autoFocus']>(this._defaultOptions.autoFocus);\n\n\tpublic readonly closeDelay = input<number, NumberInput>(this._defaultOptions.closeDelay, {\n\t\ttransform: numberAttribute,\n\t});\n\n\tpublic readonly disableClose = input<boolean, BooleanInput>(this._defaultOptions.disableClose, {\n\t\ttransform: booleanAttribute,\n\t});\n\n\tpublic readonly ariaDescribedBy = input<BrnDialogOptions['ariaDescribedBy']>(null, {\n\t\talias: 'aria-describedby',\n\t});\n\tprivate readonly _mutableAriaDescribedBy = linkedSignal(() => this.ariaDescribedBy());\n\n\tpublic readonly ariaLabelledBy = input<BrnDialogOptions['ariaLabelledBy']>(null, { alias: 'aria-labelledby' });\n\tprivate readonly _mutableAriaLabelledBy = linkedSignal(() => this.ariaLabelledBy());\n\n\tpublic readonly ariaLabel = input<BrnDialogOptions['ariaLabel']>(null, { alias: 'aria-label' });\n\tprivate readonly _mutableAriaLabel = linkedSignal(() => this.ariaLabel());\n\n\tpublic readonly ariaModal = input<boolean, BooleanInput>(true, { alias: 'aria-modal', transform: booleanAttribute });\n\tprivate readonly _mutableAriaModal = linkedSignal(() => this.ariaModal());\n\n\tpublic open(): void {\n\t\tif (!this._contentTemplate || this._dialogRef()) return;\n\n\t\tthis._dialogStateEffectRefs.forEach((ref) => ref.destroy());\n\n\t\tconst dialogRef = this._dialogService.open<TContext>(\n\t\t\tthis._contentTemplate,\n\t\t\tthis._vcr,\n\t\t\tthis._context,\n\t\t\tthis._options(),\n\t\t);\n\n\t\tthis._dialogRef.set(dialogRef);\n\n\t\trunInInjectionContext(this._injector, () => {\n\t\t\tthis._dialogStateEffectRefs.push(\n\t\t\t\teffect(() => {\n\t\t\t\t\tconst state = dialogRef.state();\n\t\t\t\t\tuntracked(() => this.stateChanged.emit(state));\n\t\t\t\t}),\n\t\t\t\teffect(() => dialogRef.updateOptions(this._options())),\n\t\t\t);\n\t\t});\n\n\t\tdialogRef.closed$.pipe(take(1), takeUntilDestroyed(this._destroyRef)).subscribe((result) => {\n\t\t\tthis._dialogRef.set(undefined);\n\t\t\tthis.closed.emit(result);\n\t\t});\n\t}\n\n\tpublic close(result?: TResult, delay?: number): void {\n\t\tthis._dialogRef()?.close(result, delay ?? this._options().closeDelay);\n\t}\n\n\tpublic registerTemplate(template: TemplateRef<unknown>): void {\n\t\tthis._contentTemplate = template;\n\t}\n\n\tpublic setOverlayClass(overlayClass: string | null | undefined): void {\n\t\tthis._backdropClass.set(overlayClass);\n\t\tthis._dialogRef()?.setOverlayClass(overlayClass);\n\t}\n\n\tpublic setPanelClass(panelClass: string | null | undefined): void {\n\t\tthis._panelClass.set(panelClass ?? '');\n\t\tthis._dialogRef()?.setPanelClass(panelClass);\n\t}\n\n\tpublic setContext(context: TContext): void {\n\t\tthis._context = { ...this._context, ...context };\n\t}\n\n\tpublic setAriaDescribedBy(ariaDescribedBy: string | null | undefined): void {\n\t\tthis._mutableAriaDescribedBy.set(ariaDescribedBy);\n\t\tthis._dialogRef()?.setAriaDescribedBy(ariaDescribedBy);\n\t}\n\n\tpublic setAriaLabelledBy(ariaLabelledBy: string | null | undefined): void {\n\t\tthis._mutableAriaLabelledBy.set(ariaLabelledBy);\n\t\tthis._dialogRef()?.setAriaLabelledBy(ariaLabelledBy);\n\t}\n\n\tpublic setAriaLabel(ariaLabel: string | null | undefined): void {\n\t\tthis._mutableAriaLabel.set(ariaLabel);\n\t\tthis._dialogRef()?.setAriaLabel(ariaLabel);\n\t}\n\n\tpublic setAriaModal(ariaModal: boolean): void {\n\t\tthis._mutableAriaModal.set(ariaModal);\n\t}\n\n\tpublic updatePosition(): void {\n\t\tthis._dialogRef()?.updatePosition();\n\t}\n}\n","import { coerceNumberProperty } from '@angular/cdk/coercion';\nimport { Directive, inject, input } from '@angular/core';\nimport { BrnDialogRef } from './brn-dialog-ref';\n\n@Directive({\n\tselector: 'button[brnDialogClose]',\n\thost: {\n\t\t'(click)': 'close()',\n\t},\n})\nexport class BrnDialogClose {\n\tprivate readonly _brnDialogRef = inject(BrnDialogRef);\n\n\tpublic readonly delay = input<number | undefined, number>(undefined, { transform: coerceNumberProperty });\n\n\tpublic close() {\n\t\tthis._brnDialogRef.close(undefined, this.delay());\n\t}\n}\n","import { computed, Directive, effect, inject, input, TemplateRef, untracked } from '@angular/core';\nimport { provideExposesStateProviderExisting } from '@spartan-ng/brain/core';\nimport { BrnDialog } from './brn-dialog';\nimport { BrnDialogRef } from './brn-dialog-ref';\n\n@Directive({\n\tselector: '[brnDialogContent]',\n\tproviders: [provideExposesStateProviderExisting(() => BrnDialogContent)],\n})\nexport class BrnDialogContent<T> {\n\tprivate readonly _brnDialog = inject(BrnDialog, { optional: true });\n\tprivate readonly _brnDialogRef = inject(BrnDialogRef, { optional: true });\n\tprivate readonly _template = inject(TemplateRef);\n\tpublic readonly state = computed(() => this._brnDialog?.stateComputed() ?? this._brnDialogRef?.state() ?? 'closed');\n\n\tpublic readonly className = input<string | null | undefined>(undefined, { alias: 'class' });\n\n\tpublic readonly context = input<T | undefined>(undefined);\n\n\tconstructor() {\n\t\tif (!this._brnDialog) return;\n\t\tthis._brnDialog.registerTemplate(this._template);\n\t\teffect(() => {\n\t\t\tconst context = this.context();\n\t\t\tif (!this._brnDialog || !context) return;\n\t\t\tuntracked(() => this._brnDialog?.setContext(context));\n\t\t});\n\t\teffect(() => {\n\t\t\tif (!this._brnDialog) return;\n\t\t\tconst newClass = this.className();\n\t\t\tuntracked(() => this._brnDialog?.setPanelClass(newClass));\n\t\t});\n\t}\n}\n","import { Directive, effect, inject, signal } from '@angular/core';\nimport { BrnDialogRef } from './brn-dialog-ref';\n\n@Directive({\n\tselector: '[brnDialogDescription]',\n\thost: {\n\t\t'[id]': '_id()',\n\t},\n})\nexport class BrnDialogDescription {\n\tprivate readonly _brnDialogRef = inject(BrnDialogRef);\n\n\tprotected readonly _id = signal(`brn-dialog-description-${this._brnDialogRef?.dialogId}`);\n\n\tconstructor() {\n\t\teffect(() => {\n\t\t\tthis._brnDialogRef.setAriaDescribedBy(this._id());\n\t\t});\n\t}\n}\n","import { Directive, effect, inject, input, untracked } from '@angular/core';\nimport { provideCustomClassSettableExisting } from '@spartan-ng/brain/core';\nimport { BrnDialog } from './brn-dialog';\n\n@Directive({\n\tselector: '[brnDialogOverlay],brn-dialog-overlay',\n\tproviders: [provideCustomClassSettableExisting(() => BrnDialogOverlay)],\n})\nexport class BrnDialogOverlay {\n\tprivate readonly _brnDialog = inject(BrnDialog);\n\n\tpublic readonly className = input<string | null | undefined>(undefined, { alias: 'class' });\n\n\tconstructor() {\n\t\teffect(() => {\n\t\t\tif (!this._brnDialog) return;\n\t\t\tconst newClass = this.className();\n\t\t\tuntracked(() => this._brnDialog.setOverlayClass(newClass));\n\t\t});\n\t}\n\n\tsetClassToCustomElement(newClass: string) {\n\t\tthis._brnDialog.setOverlayClass(newClass);\n\t}\n}\n","import { Directive, effect, inject, signal } from '@angular/core';\nimport { BrnDialogRef } from './brn-dialog-ref';\n\n@Directive({\n\tselector: '[brnDialogTitle]',\n\thost: {\n\t\t'[id]': '_id()',\n\t},\n})\nexport class BrnDialogTitle {\n\tprivate readonly _brnDialogRef = inject(BrnDialogRef);\n\n\tprotected readonly _id = signal(`brn-dialog-title-${this._brnDialogRef?.dialogId}`);\n\n\tconstructor() {\n\t\teffect(() => {\n\t\t\tthis._brnDialogRef.setAriaLabelledBy(this._id());\n\t\t});\n\t}\n}\n","import { computed, Directive, effect, inject, input, signal } from '@angular/core';\nimport { BrnDialog } from './brn-dialog';\nimport { BrnDialogRef } from './brn-dialog-ref';\nimport type { BrnDialogState } from './brn-dialog-state';\n\nlet idSequence = 0;\n\n@Directive({\n\tselector: 'button[brnDialogTrigger],button[brnDialogTriggerFor]',\n\texportAs: 'brnDialogTrigger',\n\thost: {\n\t\t'[id]': 'id()',\n\t\t'(click)': 'open()',\n\t\t'aria-haspopup': 'dialog',\n\t\t'[attr.aria-expanded]': \"state() === 'open' ? 'true': 'false'\",\n\t\t'[attr.data-state]': 'state()',\n\t\t'[attr.aria-controls]': 'dialogId',\n\t\t'[type]': 'type()',\n\t},\n})\nexport class BrnDialogTrigger {\n\tprotected _brnDialog = inject(BrnDialog, { optional: true });\n\tprotected readonly _brnDialogRef = inject(BrnDialogRef, { optional: true });\n\n\tpublic readonly id = input<string>(`brn-dialog-trigger-${++idSequence}`);\n\tpublic readonly type = input<'button' | 'submit' | 'reset'>('button');\n\n\tpublic readonly state = computed<BrnDialogState>(() => {\n\t\t// If we have a dialog component from the input, use its state (the highest priority)\n\t\tconst dialogFromInput = this.brnDialogTriggerForState();\n\t\tif (dialogFromInput) {\n\t\t\treturn dialogFromInput.stateComputed();\n\t\t}\n\n\t\t// If we have a dialog component, use its state\n\t\tif (this._brnDialog) {\n\t\t\treturn this._brnDialog.stateComputed();\n\t\t}\n\n\t\t// If we have a dialog ref, use its state\n\t\tif (this._brnDialogRef) {\n\t\t\treturn this._brnDialogRef.state();\n\t\t}\n\n\t\treturn 'closed';\n\t});\n\n\tpublic readonly dialogId = `brn-dialog-${this._brnDialogRef?.dialogId ?? ++idSequence}`;\n\n\tpublic readonly brnDialogTriggerFor = input<BrnDialog | undefined>(undefined, {\n\t\talias: 'brnDialogTriggerFor',\n\t});\n\tpublic readonly mutableBrnDialogTriggerFor = computed(() => signal(this.brnDialogTriggerFor()));\n\tpublic readonly brnDialogTriggerForState = computed(() => this.mutableBrnDialogTriggerFor()());\n\n\tconstructor() {\n\t\teffect(() => {\n\t\t\tconst brnDialog = this.brnDialogTriggerForState();\n\t\t\tif (!brnDialog) return;\n\t\t\tthis._brnDialog = brnDialog;\n\t\t});\n\t}\n\n\topen() {\n\t\tthis._brnDialog?.open();\n\t}\n}\n","import { BrnDialog } from './lib/brn-dialog';\nimport { BrnDialogClose } from './lib/brn-dialog-close';\nimport { BrnDialogContent } from './lib/brn-dialog-content';\nimport { BrnDialogDescription } from './lib/brn-dialog-description';\nimport { BrnDialogOverlay } from './lib/brn-dialog-overlay';\nimport { BrnDialogTitle } from './lib/brn-dialog-title';\nimport { BrnDialogTrigger } from './lib/brn-dialog-trigger';\n\nexport * from './lib/brn-dialog';\nexport * from './lib/brn-dialog-close';\nexport * from './lib/brn-dialog-content';\nexport * from './lib/brn-dialog-description';\nexport * from './lib/brn-dialog-options';\nexport * from './lib/brn-dialog-overlay';\nexport * from './lib/brn-dialog-ref';\nexport * from './lib/brn-dialog-state';\nexport * from './lib/brn-dialog-title';\nexport * from './lib/brn-dialog-token';\nexport * from './lib/brn-dialog-trigger';\nexport * from './lib/brn-dialog-utils';\nexport * from './lib/brn-dialog.service';\n\nexport const BrnDialogImports = [\n\tBrnDialog,\n\tBrnDialogOverlay,\n\tBrnDialogTrigger,\n\tBrnDialogClose,\n\tBrnDialogContent,\n\tBrnDialogTitle,\n\tBrnDialogDescription,\n] as const;\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"spartan-ng-brain-dialog.mjs","sources":["../../../../libs/brain/dialog/src/lib/brn-dialog-token.ts","../../../../libs/brain/dialog/src/lib/brn-dialog-utils.ts","../../../../libs/brain/dialog/src/lib/brn-dialog-ref.ts","../../../../libs/brain/dialog/src/lib/brn-dialog.service.ts","../../../../libs/brain/dialog/src/lib/brn-dialog.ts","../../../../libs/brain/dialog/src/lib/brn-dialog-close.ts","../../../../libs/brain/dialog/src/lib/brn-dialog-content.ts","../../../../libs/brain/dialog/src/lib/brn-dialog-description.ts","../../../../libs/brain/dialog/src/lib/brn-dialog-overlay.ts","../../../../libs/brain/dialog/src/lib/brn-dialog-title.ts","../../../../libs/brain/dialog/src/lib/brn-dialog-trigger.ts","../../../../libs/brain/dialog/src/index.ts","../../../../libs/brain/dialog/src/spartan-ng-brain-dialog.ts"],"sourcesContent":["import { inject, InjectionToken, type ValueProvider } from '@angular/core';\nimport type { BrnDialogOptions } from './brn-dialog-options';\n\nexport interface BrnDialogDefaultOptions {\n\t/** Aria label to assign to the dialog element. */\n\tariaLabel: BrnDialogOptions['ariaLabel'];\n\n\t/** Whether the dialog should be considered a modal dialog. */\n\tariaModal: BrnDialogOptions['ariaModal'];\n\n\t/** A connected position as specified by the user. */\n\tattachPositions: BrnDialogOptions['attachPositions'];\n\n\t/** Element to which the dialog should be attached. */\n\tattachTo: BrnDialogOptions['attachTo'];\n\n\t/** Options for where to set focus to automatically on dialog open */\n\tautoFocus: BrnDialogOptions['autoFocus'];\n\n\t/** CSS class to be applied to the backdrop. */\n\tbackdropClass: BrnDialogOptions['backdropClass'];\n\n\t/** The delay in milliseconds before the dialog closes. */\n\tcloseDelay: BrnDialogOptions['closeDelay'];\n\n\t/** Close dialog on backdrop click */\n\tcloseOnBackdropClick: BrnDialogOptions['closeOnBackdropClick'];\n\n\t/** Close dialog on outside pointer event */\n\tcloseOnOutsidePointerEvents: BrnDialogOptions['closeOnOutsidePointerEvents'];\n\n\t/** Whether the dialog closes with the escape key or pointer events outside the panel element. */\n\tdisableClose: BrnDialogOptions['disableClose'];\n\n\t/** Whether the dialog has a backdrop. */\n\thasBackdrop: BrnDialogOptions['hasBackdrop'];\n\n\t/** CSS class applied to the panel. */\n\tpanelClass: BrnDialogOptions['panelClass'];\n\n\t/** Strategy to use when positioning the dialog */\n\tpositionStrategy: BrnDialogOptions['positionStrategy'];\n\n\t/** Whether the dialog should restore focus to the previously-focused element upon closing. */\n\trestoreFocus: BrnDialogOptions['restoreFocus'];\n\n\t/** The role of the dialog */\n\trole: BrnDialogOptions['role'];\n\n\t/** Scroll strategy to be used for the dialog. */\n\tscrollStrategy: BrnDialogOptions['scrollStrategy'] | 'close' | 'reposition';\n}\n\nexport const defaultOptions: BrnDialogDefaultOptions = {\n\tariaLabel: undefined,\n\tariaModal: true,\n\tattachPositions: [],\n\tattachTo: null,\n\tautoFocus: 'first-tabbable',\n\tbackdropClass: '',\n\tcloseDelay: 100,\n\tcloseOnBackdropClick: true,\n\tcloseOnOutsidePointerEvents: false,\n\tdisableClose: false,\n\thasBackdrop: true,\n\tpanelClass: '',\n\tpositionStrategy: null,\n\trestoreFocus: true,\n\trole: 'dialog',\n\tscrollStrategy: null,\n};\n\nconst BRN_DIALOG_DEFAULT_OPTIONS = new InjectionToken<BrnDialogDefaultOptions>('brn-dialog-default-options', {\n\tprovidedIn: 'root',\n\tfactory: () => defaultOptions,\n});\n\nexport function provideBrnDialogDefaultOptions(options: Partial<BrnDialogDefaultOptions>): ValueProvider {\n\treturn { provide: BRN_DIALOG_DEFAULT_OPTIONS, useValue: { ...defaultOptions, ...options } };\n}\n\nexport function injectBrnDialogDefaultOptions(): BrnDialogDefaultOptions {\n\treturn inject(BRN_DIALOG_DEFAULT_OPTIONS, { optional: true }) ?? defaultOptions;\n}\n","// brn-dialog-utils.ts\n\nexport const cssClassesToArray = (classes: string | string[] | undefined | null, defaultClass = ''): string[] => {\n\tif (typeof classes === 'string') {\n\t\tconst splitClasses = classes.trim().split(' ');\n\t\tif (splitClasses.length === 0) {\n\t\t\treturn [defaultClass];\n\t\t}\n\t\treturn splitClasses;\n\t}\n\treturn classes ?? [];\n};\n","import type { DialogRef } from '@angular/cdk/dialog';\nimport type { Signal, WritableSignal } from '@angular/core';\nimport { signal } from '@angular/core';\nimport { type Observable, Subject } from 'rxjs';\nimport { take } from 'rxjs/operators';\nimport type { BrnDialogOptions } from './brn-dialog-options';\nimport type { BrnDialogState } from './brn-dialog-state';\nimport { cssClassesToArray } from './brn-dialog-utils';\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport class BrnDialogRef<DialogResult = any> {\n\tprivate readonly _closing$ = new Subject<void>();\n\tpublic readonly closing$ = this._closing$.asObservable();\n\n\tpublic readonly closed$: Observable<DialogResult | undefined>;\n\n\tprivate _previousTimeout: ReturnType<typeof setTimeout> | undefined;\n\n\tpublic get open() {\n\t\treturn this.state() === 'open';\n\t}\n\n\tprivate readonly _options = signal<undefined | BrnDialogOptions>(undefined);\n\tpublic readonly options = this._options.asReadonly();\n\n\tconstructor(\n\t\tprivate readonly _cdkDialogRef: DialogRef<DialogResult>,\n\t\tprivate readonly _open: WritableSignal<boolean>,\n\t\tpublic readonly state: Signal<BrnDialogState>,\n\t\tpublic readonly dialogId: number,\n\t\t_options?: BrnDialogOptions,\n\t) {\n\t\tif (_options) {\n\t\t\tthis._options.set(_options);\n\t\t}\n\t\tthis.closed$ = this._cdkDialogRef.closed.pipe(take(1));\n\t}\n\n\tpublic updateOptions(options: Partial<BrnDialogOptions>): void {\n\t\tthis._options.update((prev) => ({ ...(prev ?? {}), ...options }) as BrnDialogOptions);\n\t}\n\n\tpublic close(result?: DialogResult, delay: number = this._options()?.closeDelay ?? 0): void {\n\t\tif (!this.open || this._options()?.disableClose) return;\n\n\t\tthis._closing$.next();\n\t\tthis._open.set(false);\n\n\t\tif (this._previousTimeout) {\n\t\t\tclearTimeout(this._previousTimeout);\n\t\t}\n\n\t\tthis._previousTimeout = setTimeout(() => {\n\t\t\tthis._cdkDialogRef.close(result);\n\t\t}, delay);\n\t}\n\n\tpublic setPanelClass(paneClass: string | null | undefined): void {\n\t\tthis._cdkDialogRef.config.panelClass = cssClassesToArray(paneClass);\n\t}\n\n\tpublic setOverlayClass(overlayClass: string | null | undefined): void {\n\t\tthis._cdkDialogRef.config.backdropClass = cssClassesToArray(overlayClass);\n\t}\n\n\tpublic setAriaDescribedBy(ariaDescribedBy: string | null | undefined): void {\n\t\tthis._cdkDialogRef.config.ariaDescribedBy = ariaDescribedBy;\n\t}\n\n\tpublic setAriaLabelledBy(ariaLabelledBy: string | null | undefined): void {\n\t\tthis._cdkDialogRef.config.ariaLabelledBy = ariaLabelledBy;\n\t}\n\n\tpublic setAriaLabel(ariaLabel: string | null | undefined): void {\n\t\tthis._cdkDialogRef.config.ariaLabel = ariaLabel;\n\t}\n\n\tpublic updatePosition(): void {\n\t\tthis._cdkDialogRef.overlayRef?.updatePosition();\n\t}\n}\n","import { Dialog, DIALOG_DATA } from '@angular/cdk/dialog';\nimport {\n\ttype ComponentType,\n\tFlexibleConnectedPositionStrategy,\n\tOverlayOutsideClickDispatcher,\n\tOverlayPositionBuilder,\n\tOverlayRef,\n\tScrollStrategyOptions,\n} from '@angular/cdk/overlay';\nimport { BasePortalOutlet } from '@angular/cdk/portal';\nimport {\n\tChangeDetectorRef,\n\tcomputed,\n\teffect,\n\ttype EffectRef,\n\tElementRef,\n\tinject,\n\tInjectable,\n\ttype InjectOptions,\n\tInjector,\n\tRendererFactory2,\n\trunInInjectionContext,\n\tsignal,\n\ttype StaticProvider,\n\ttype TemplateRef,\n\ttype ViewContainerRef,\n} from '@angular/core';\nimport { merge, Subject } from 'rxjs';\nimport { filter, takeUntil } from 'rxjs/operators';\nimport type { BrnDialogOptions } from './brn-dialog-options';\nimport { BrnDialogRef } from './brn-dialog-ref';\nimport type { BrnDialogState } from './brn-dialog-state';\nimport { injectBrnDialogDefaultOptions } from './brn-dialog-token';\n\nlet dialogSequence = 0;\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport type BrnDialogContext<T> = T & { close: (result?: any) => void };\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport const injectBrnDialogContext = <DialogContext = any>(options: InjectOptions = {}) => {\n\treturn inject(DIALOG_DATA, options) as DialogContext;\n};\n\n@Injectable({ providedIn: 'root' })\nexport class BrnDialogService {\n\tprivate readonly _overlayCloseDispatcher = inject(OverlayOutsideClickDispatcher);\n\tprivate readonly _cdkDialog = inject(Dialog);\n\tprivate readonly _rendererFactory = inject(RendererFactory2);\n\tprivate readonly _renderer = this._rendererFactory.createRenderer(null, null);\n\tprivate readonly _positionBuilder = inject(OverlayPositionBuilder);\n\tprivate readonly _sso = inject(ScrollStrategyOptions);\n\tprivate readonly _injector = inject(Injector);\n\tprivate readonly _defaultOptions = injectBrnDialogDefaultOptions();\n\n\tpublic open<DialogContext>(\n\t\tcontent: ComponentType<unknown> | TemplateRef<unknown>,\n\t\tvcr?: ViewContainerRef,\n\t\tcontext?: DialogContext,\n\t\toptions?: Partial<BrnDialogOptions>,\n\t) {\n\t\tif (options?.id && this._cdkDialog.getDialogById(options.id)) {\n\t\t\tthrow new Error(`Dialog with ID: ${options.id} already exists`);\n\t\t}\n\n\t\tconst attachTo = options?.attachTo ?? this._defaultOptions.attachTo;\n\n\t\tconst positionStrategy =\n\t\t\toptions?.positionStrategy ??\n\t\t\tthis._defaultOptions.positionStrategy ??\n\t\t\t(attachTo && options?.attachPositions && options?.attachPositions?.length > 0\n\t\t\t\t? this._positionBuilder?.flexibleConnectedTo(attachTo).withPositions(options.attachPositions ?? [])\n\t\t\t\t: this._positionBuilder.global().centerHorizontally().centerVertically());\n\n\t\tlet brnDialogRef!: BrnDialogRef;\n\t\tconst effectRefs: EffectRef[] = [];\n\n\t\t// eslint-disable-next-line @typescript-eslint/no-explicit-any\n\t\tconst contextOrData: BrnDialogContext<any> = {\n\t\t\t...context,\n\t\t\t// eslint-disable-next-line @typescript-eslint/no-explicit-any\n\t\t\tclose: (result: any = undefined) => brnDialogRef.close(result, options?.closeDelay),\n\t\t};\n\n\t\tconst destroyed$ = new Subject<void>();\n\t\tconst optionsChanged$ = new Subject<void>();\n\t\tconst open = signal<boolean>(true);\n\t\tconst state = computed<BrnDialogState>(() => (open() ? 'open' : 'closed'));\n\t\tconst dialogId = ++dialogSequence;\n\n\t\t// eslint-disable-next-line @typescript-eslint/ban-ts-comment\n\t\t// @ts-ignore\n\t\tconst cdkDialogRef = this._cdkDialog.open(content, {\n\t\t\tid: options?.id ?? `brn-dialog-${dialogId}`,\n\t\t\trole: options?.role ?? this._defaultOptions.role,\n\t\t\tviewContainerRef: vcr,\n\t\t\ttemplateContext: () => ({\n\t\t\t\t$implicit: contextOrData,\n\t\t\t}),\n\t\t\tdata: contextOrData,\n\t\t\tdirection: options?.direction,\n\t\t\thasBackdrop: options?.hasBackdrop ?? this._defaultOptions.hasBackdrop,\n\t\t\tpanelClass: options?.panelClass,\n\t\t\tbackdropClass: options?.backdropClass,\n\t\t\tpositionStrategy,\n\t\t\tscrollStrategy: options?.scrollStrategy ?? this._defaultOptions.scrollStrategy ?? this._sso?.block(),\n\t\t\trestoreFocus: options?.restoreFocus ?? this._defaultOptions.restoreFocus,\n\t\t\tdisableClose: true,\n\t\t\tautoFocus: options?.autoFocus ?? this._defaultOptions.autoFocus,\n\t\t\tariaDescribedBy: options?.ariaDescribedBy ?? `brn-dialog-description-${dialogId}`,\n\t\t\tariaLabelledBy: options?.ariaLabelledBy ?? `brn-dialog-title-${dialogId}`,\n\t\t\tariaLabel: options?.ariaLabel ?? this._defaultOptions.ariaLabel,\n\t\t\tariaModal: options?.ariaModal ?? this._defaultOptions.ariaModal,\n\t\t\tproviders: (cdkDialogRef) => {\n\t\t\t\tbrnDialogRef = new BrnDialogRef(cdkDialogRef, open, state, dialogId, options as BrnDialogOptions);\n\n\t\t\t\trunInInjectionContext(this._injector, () => {\n\t\t\t\t\tconst ref = effect(() => {\n\t\t\t\t\t\tif (overlay) {\n\t\t\t\t\t\t\tthis._renderer.setAttribute(overlay, 'data-state', state());\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif (backdrop) {\n\t\t\t\t\t\t\tthis._renderer.setAttribute(backdrop, 'data-state', state());\n\t\t\t\t\t\t}\n\t\t\t\t\t});\n\t\t\t\t\teffectRefs.push(ref);\n\t\t\t\t});\n\n\t\t\t\tconst providers: StaticProvider[] = [\n\t\t\t\t\t{\n\t\t\t\t\t\tprovide: BrnDialogRef,\n\t\t\t\t\t\tuseValue: brnDialogRef,\n\t\t\t\t\t},\n\t\t\t\t];\n\n\t\t\t\tif (options?.providers) {\n\t\t\t\t\tif (typeof options.providers === 'function') {\n\t\t\t\t\t\tproviders.push(...options.providers());\n\t\t\t\t\t}\n\n\t\t\t\t\tif (Array.isArray(options.providers)) {\n\t\t\t\t\t\tproviders.push(...options.providers);\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\treturn providers;\n\t\t\t},\n\t\t});\n\n\t\tconst overlay = cdkDialogRef.overlayRef.overlayElement;\n\t\tconst backdrop = cdkDialogRef.overlayRef.backdropElement;\n\n\t\trunInInjectionContext(this._injector, () => {\n\t\t\tconst optionChangeEffect = effect(() => {\n\t\t\t\tconst options = brnDialogRef.options();\n\t\t\t\toptionsChanged$.next();\n\t\t\t\tconst closeOnOutsidePointerEvents =\n\t\t\t\t\toptions?.closeOnOutsidePointerEvents ?? this._defaultOptions.closeOnOutsidePointerEvents;\n\t\t\t\tif (closeOnOutsidePointerEvents) {\n\t\t\t\t\tcdkDialogRef.outsidePointerEvents.pipe(takeUntil(merge(destroyed$, optionsChanged$))).subscribe(() => {\n\t\t\t\t\t\tconst overlays = this._overlayCloseDispatcher._attachedOverlays;\n\t\t\t\t\t\tconst index = overlays.indexOf(cdkDialogRef.overlayRef);\n\t\t\t\t\t\t// close if this is the topmost overlay\n\t\t\t\t\t\t// but prevent closing if this overlay contains the top overlay (which will be closed)\n\t\t\t\t\t\tif (\n\t\t\t\t\t\t\tindex === overlays.length - 1 ||\n\t\t\t\t\t\t\t(overlays.length > 1 && !this.isNested(cdkDialogRef.overlayRef, overlays.at(-1)!))\n\t\t\t\t\t\t) {\n\t\t\t\t\t\t\tbrnDialogRef.close(undefined, options?.closeDelay);\n\t\t\t\t\t\t}\n\t\t\t\t\t});\n\t\t\t\t}\n\n\t\t\t\tconst closeOnBackdropClick = options?.closeOnBackdropClick ?? this._defaultOptions.closeOnBackdropClick;\n\t\t\t\tif (closeOnBackdropClick) {\n\t\t\t\t\tcdkDialogRef.backdropClick.pipe(takeUntil(merge(destroyed$, optionsChanged$))).subscribe(() => {\n\t\t\t\t\t\tbrnDialogRef.close(undefined, options?.closeDelay);\n\t\t\t\t\t});\n\t\t\t\t}\n\n\t\t\t\tconst disableClose = options?.disableClose ?? this._defaultOptions.disableClose;\n\t\t\t\tif (!disableClose) {\n\t\t\t\t\tcdkDialogRef.keydownEvents\n\t\t\t\t\t\t.pipe(\n\t\t\t\t\t\t\tfilter((e) => e.key === 'Escape'),\n\t\t\t\t\t\t\ttakeUntil(merge(destroyed$, optionsChanged$)),\n\t\t\t\t\t\t)\n\t\t\t\t\t\t.subscribe(() => {\n\t\t\t\t\t\t\tbrnDialogRef.close(undefined, options?.closeDelay);\n\t\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t});\n\n\t\t\teffectRefs.push(optionChangeEffect);\n\t\t});\n\t\tcdkDialogRef.closed.pipe(takeUntil(destroyed$)).subscribe(() => {\n\t\t\teffectRefs.forEach((a) => a.destroy());\n\t\t\tdestroyed$.next();\n\t\t\toptionsChanged$.next();\n\t\t});\n\n\t\t// this is not ideal, but we need to force change detection to run in the dialog,\n\t\t// otherwise in some conditions (like menu launching a dialog) the dialog content\n\t\t// does not render.\n\t\tif ('_changeDetectorRef' in cdkDialogRef.containerInstance) {\n\t\t\tconst containerInstance = cdkDialogRef.containerInstance as BasePortalOutlet & {\n\t\t\t\t_changeDetectorRef: ChangeDetectorRef;\n\t\t\t};\n\t\t\tcontainerInstance._changeDetectorRef.detectChanges();\n\t\t}\n\n\t\treturn brnDialogRef;\n\t}\n\n\tprivate isNested(parent: OverlayRef, child: OverlayRef): boolean {\n\t\tconst childOrigin = (child.getConfig().positionStrategy as FlexibleConnectedPositionStrategy)._origin;\n\t\tif (!childOrigin) {\n\t\t\treturn false;\n\t\t} else if ('width' in childOrigin && 'height' in childOrigin) {\n\t\t\tconst rect = parent.hostElement.getBoundingClientRect();\n\t\t\treturn (\n\t\t\t\tchildOrigin.x >= rect.left &&\n\t\t\t\tchildOrigin.x <= rect.right &&\n\t\t\t\tchildOrigin.y >= rect.top &&\n\t\t\t\tchildOrigin.y <= rect.bottom\n\t\t\t);\n\t\t} else {\n\t\t\tconst element: Element = (childOrigin as ElementRef).nativeElement || childOrigin;\n\t\t\treturn parent.hostElement.contains(element);\n\t\t}\n\t}\n}\n","import { Directionality } from '@angular/cdk/bidi';\nimport { type BooleanInput, type NumberInput } from '@angular/cdk/coercion';\nimport { OverlayPositionBuilder, type ScrollStrategy, ScrollStrategyOptions } from '@angular/cdk/overlay';\nimport {\n\tafterNextRender,\n\tbooleanAttribute,\n\tcomputed,\n\tDestroyRef,\n\tDirective,\n\teffect,\n\ttype EffectRef,\n\tinject,\n\tInjector,\n\tinput,\n\tlinkedSignal,\n\tnumberAttribute,\n\toutput,\n\trunInInjectionContext,\n\tsignal,\n\ttype TemplateRef,\n\tuntracked,\n\tViewContainerRef,\n} from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { take } from 'rxjs/operators';\nimport type { BrnDialogOptions } from './brn-dialog-options';\nimport type { BrnDialogRef } from './brn-dialog-ref';\nimport type { BrnDialogState } from './brn-dialog-state';\nimport { injectBrnDialogDefaultOptions } from './brn-dialog-token';\nimport { cssClassesToArray } from './brn-dialog-utils';\nimport { BrnDialogService } from './brn-dialog.service';\n\n@Directive({\n\tselector: '[brnDialog],brn-dialog',\n\texportAs: 'brnDialog',\n})\nexport class BrnDialog<TResult = unknown, TContext extends Record<string, unknown> = Record<string, unknown>> {\n\tprivate readonly _dialogService = inject(BrnDialogService);\n\tprivate readonly _destroyRef = inject(DestroyRef);\n\tprivate readonly _vcr = inject(ViewContainerRef);\n\tpublic readonly positionBuilder = inject(OverlayPositionBuilder);\n\tpublic readonly ssos = inject(ScrollStrategyOptions);\n\tprivate readonly _injector = inject(Injector);\n\tprivate readonly _directionality = inject(Directionality);\n\n\tprotected readonly _defaultOptions = injectBrnDialogDefaultOptions();\n\n\tprivate _context: TContext = {} as TContext;\n\tpublic readonly stateComputed = computed(() => this._dialogRef()?.state() ?? 'closed');\n\n\tprivate _contentTemplate: TemplateRef<unknown> | undefined;\n\tprivate readonly _dialogRef = signal<BrnDialogRef | undefined>(undefined);\n\tprivate readonly _dialogStateEffectRefs: EffectRef[] = [];\n\tprivate readonly _backdropClass = signal<string | null | undefined>(null);\n\tprivate readonly _panelClass = signal<string | null | undefined>(null);\n\n\tpublic readonly closed = output<TResult>();\n\n\tpublic readonly stateChanged = output<BrnDialogState>();\n\n\tpublic readonly state = input<BrnDialogState | null>(null);\n\n\tpublic readonly role = input<BrnDialogOptions['role']>(this._defaultOptions.role);\n\n\tpublic readonly hasBackdrop = input<boolean, BooleanInput>(this._defaultOptions.hasBackdrop, {\n\t\ttransform: booleanAttribute,\n\t});\n\n\tpublic readonly positionStrategy = input<BrnDialogOptions['positionStrategy']>(this._defaultOptions.positionStrategy);\n\tpublic readonly mutablePositionStrategy = linkedSignal(() => this.positionStrategy());\n\n\tpublic readonly scrollStrategy = input<BrnDialogOptions['scrollStrategy'] | 'close' | 'reposition' | null>(\n\t\tthis._defaultOptions.scrollStrategy,\n\t);\n\n\tprotected readonly _options = computed<Partial<BrnDialogOptions>>(() => {\n\t\tconst scrollStrategyInput = this.scrollStrategy();\n\t\tlet scrollStrategy: ScrollStrategy | null | undefined;\n\n\t\tif (scrollStrategyInput === 'close') {\n\t\t\tscrollStrategy = this.ssos.close();\n\t\t} else if (scrollStrategyInput === 'reposition') {\n\t\t\tscrollStrategy = this.ssos.reposition();\n\t\t} else {\n\t\t\tscrollStrategy = scrollStrategyInput;\n\t\t}\n\n\t\treturn {\n\t\t\trole: this.role(),\n\t\t\tdirection: this._directionality.valueSignal(),\n\t\t\thasBackdrop: this.hasBackdrop(),\n\t\t\tpositionStrategy: this.mutablePositionStrategy(),\n\t\t\tscrollStrategy,\n\t\t\trestoreFocus: this.restoreFocus(),\n\t\t\tcloseOnOutsidePointerEvents: this.mutableCloseOnOutsidePointerEvents(),\n\t\t\tcloseOnBackdropClick: this.closeOnBackdropClick(),\n\t\t\tattachTo: this.mutableAttachTo(),\n\t\t\tattachPositions: this.mutableAttachPositions(),\n\t\t\tautoFocus: this.autoFocus(),\n\t\t\tcloseDelay: this.closeDelay(),\n\t\t\tdisableClose: this.disableClose(),\n\t\t\tbackdropClass: cssClassesToArray(this._backdropClass() ?? this._defaultOptions.backdropClass),\n\t\t\tpanelClass: cssClassesToArray(this._panelClass() ?? this._defaultOptions.panelClass),\n\t\t\tariaDescribedBy: this._mutableAriaDescribedBy(),\n\t\t\tariaLabelledBy: this._mutableAriaLabelledBy(),\n\t\t\tariaLabel: this._mutableAriaLabel(),\n\t\t\tariaModal: this._mutableAriaModal(),\n\t\t};\n\t});\n\n\tconstructor() {\n\t\tafterNextRender(() => {\n\t\t\teffect(\n\t\t\t\t() => {\n\t\t\t\t\tconst state = this.state();\n\t\t\t\t\tif (state === 'open') {\n\t\t\t\t\t\tuntracked(() => this.open());\n\t\t\t\t\t}\n\t\t\t\t\tif (state === 'closed') {\n\t\t\t\t\t\tuntracked(() => this.close());\n\t\t\t\t\t}\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\tinjector: this._injector,\n\t\t\t\t},\n\t\t\t);\n\t\t});\n\t}\n\n\tpublic readonly restoreFocus = input<BrnDialogOptions['restoreFocus']>(this._defaultOptions.restoreFocus);\n\n\tpublic readonly closeOnOutsidePointerEvents = input<boolean, BooleanInput>(\n\t\tthis._defaultOptions.closeOnOutsidePointerEvents,\n\t\t{\n\t\t\ttransform: booleanAttribute,\n\t\t},\n\t);\n\tpublic readonly mutableCloseOnOutsidePointerEvents = linkedSignal(() => this.closeOnOutsidePointerEvents());\n\n\tpublic readonly closeOnBackdropClick = input<boolean, BooleanInput>(this._defaultOptions.closeOnBackdropClick, {\n\t\ttransform: booleanAttribute,\n\t});\n\n\tpublic readonly attachTo = input<BrnDialogOptions['attachTo']>(null);\n\tpublic readonly mutableAttachTo = linkedSignal(() => this.attachTo());\n\n\tpublic readonly attachPositions = input<BrnDialogOptions['attachPositions']>(this._defaultOptions.attachPositions);\n\tpublic readonly mutableAttachPositions = linkedSignal(() => this.attachPositions());\n\n\tpublic readonly autoFocus = input<BrnDialogOptions['autoFocus']>(this._defaultOptions.autoFocus);\n\n\tpublic readonly closeDelay = input<number, NumberInput>(this._defaultOptions.closeDelay, {\n\t\ttransform: numberAttribute,\n\t});\n\n\tpublic readonly disableClose = input<boolean, BooleanInput>(this._defaultOptions.disableClose, {\n\t\ttransform: booleanAttribute,\n\t});\n\n\tpublic readonly ariaDescribedBy = input<BrnDialogOptions['ariaDescribedBy']>(null, {\n\t\talias: 'aria-describedby',\n\t});\n\tprivate readonly _mutableAriaDescribedBy = linkedSignal(() => this.ariaDescribedBy());\n\n\tpublic readonly ariaLabelledBy = input<BrnDialogOptions['ariaLabelledBy']>(null, { alias: 'aria-labelledby' });\n\tprivate readonly _mutableAriaLabelledBy = linkedSignal(() => this.ariaLabelledBy());\n\n\tpublic readonly ariaLabel = input<BrnDialogOptions['ariaLabel']>(null, { alias: 'aria-label' });\n\tprivate readonly _mutableAriaLabel = linkedSignal(() => this.ariaLabel());\n\n\tpublic readonly ariaModal = input<boolean, BooleanInput>(true, { alias: 'aria-modal', transform: booleanAttribute });\n\tprivate readonly _mutableAriaModal = linkedSignal(() => this.ariaModal());\n\n\tpublic open(): void {\n\t\tif (!this._contentTemplate || this._dialogRef()) return;\n\n\t\tthis._dialogStateEffectRefs.forEach((ref) => ref.destroy());\n\n\t\tconst dialogRef = this._dialogService.open<TContext>(\n\t\t\tthis._contentTemplate,\n\t\t\tthis._vcr,\n\t\t\tthis._context,\n\t\t\tthis._options(),\n\t\t);\n\n\t\tthis._dialogRef.set(dialogRef);\n\n\t\trunInInjectionContext(this._injector, () => {\n\t\t\tthis._dialogStateEffectRefs.push(\n\t\t\t\teffect(() => {\n\t\t\t\t\tconst state = dialogRef.state();\n\t\t\t\t\tuntracked(() => this.stateChanged.emit(state));\n\t\t\t\t}),\n\t\t\t\teffect(() => dialogRef.updateOptions(this._options())),\n\t\t\t);\n\t\t});\n\n\t\tdialogRef.closed$.pipe(take(1), takeUntilDestroyed(this._destroyRef)).subscribe((result) => {\n\t\t\tthis._dialogRef.set(undefined);\n\t\t\tthis.closed.emit(result);\n\t\t});\n\t}\n\n\tpublic close(result?: TResult, delay?: number): void {\n\t\tthis._dialogRef()?.close(result, delay ?? this._options().closeDelay);\n\t}\n\n\tpublic registerTemplate(template: TemplateRef<unknown>): void {\n\t\tthis._contentTemplate = template;\n\t}\n\n\tpublic setOverlayClass(overlayClass: string | null | undefined): void {\n\t\tthis._backdropClass.set(overlayClass);\n\t\tthis._dialogRef()?.setOverlayClass(overlayClass);\n\t}\n\n\tpublic setPanelClass(panelClass: string | null | undefined): void {\n\t\tthis._panelClass.set(panelClass ?? '');\n\t\tthis._dialogRef()?.setPanelClass(panelClass);\n\t}\n\n\tpublic setContext(context: TContext): void {\n\t\tthis._context = { ...this._context, ...context };\n\t}\n\n\tpublic setAriaDescribedBy(ariaDescribedBy: string | null | undefined): void {\n\t\tthis._mutableAriaDescribedBy.set(ariaDescribedBy);\n\t\tthis._dialogRef()?.setAriaDescribedBy(ariaDescribedBy);\n\t}\n\n\tpublic setAriaLabelledBy(ariaLabelledBy: string | null | undefined): void {\n\t\tthis._mutableAriaLabelledBy.set(ariaLabelledBy);\n\t\tthis._dialogRef()?.setAriaLabelledBy(ariaLabelledBy);\n\t}\n\n\tpublic setAriaLabel(ariaLabel: string | null | undefined): void {\n\t\tthis._mutableAriaLabel.set(ariaLabel);\n\t\tthis._dialogRef()?.setAriaLabel(ariaLabel);\n\t}\n\n\tpublic setAriaModal(ariaModal: boolean): void {\n\t\tthis._mutableAriaModal.set(ariaModal);\n\t}\n\n\tpublic updatePosition(): void {\n\t\tthis._dialogRef()?.updatePosition();\n\t}\n}\n","import { coerceNumberProperty } from '@angular/cdk/coercion';\nimport { Directive, inject, input } from '@angular/core';\nimport { BrnDialogRef } from './brn-dialog-ref';\n\n@Directive({\n\tselector: 'button[brnDialogClose]',\n\thost: {\n\t\t'(click)': 'close()',\n\t},\n})\nexport class BrnDialogClose {\n\tprivate readonly _brnDialogRef = inject(BrnDialogRef);\n\n\tpublic readonly delay = input<number | undefined, number>(undefined, { transform: coerceNumberProperty });\n\n\tpublic close() {\n\t\tthis._brnDialogRef.close(undefined, this.delay());\n\t}\n}\n","import { computed, Directive, effect, inject, input, TemplateRef, untracked } from '@angular/core';\nimport { provideExposesStateProviderExisting } from '@spartan-ng/brain/core';\nimport { BrnDialog } from './brn-dialog';\nimport { BrnDialogRef } from './brn-dialog-ref';\n\n@Directive({\n\tselector: '[brnDialogContent]',\n\tproviders: [provideExposesStateProviderExisting(() => BrnDialogContent)],\n})\nexport class BrnDialogContent<T> {\n\tprivate readonly _brnDialog = inject(BrnDialog, { optional: true });\n\tprivate readonly _brnDialogRef = inject(BrnDialogRef, { optional: true });\n\tprivate readonly _template = inject(TemplateRef);\n\tpublic readonly state = computed(() => this._brnDialog?.stateComputed() ?? this._brnDialogRef?.state() ?? 'closed');\n\n\tpublic readonly className = input<string | null | undefined>(undefined, { alias: 'class' });\n\n\tpublic readonly context = input<T | undefined>(undefined);\n\n\tconstructor() {\n\t\tif (!this._brnDialog) return;\n\t\tthis._brnDialog.registerTemplate(this._template);\n\t\teffect(() => {\n\t\t\tconst context = this.context();\n\t\t\tif (!this._brnDialog || !context) return;\n\t\t\tuntracked(() => this._brnDialog?.setContext(context));\n\t\t});\n\t\teffect(() => {\n\t\t\tif (!this._brnDialog) return;\n\t\t\tconst newClass = this.className();\n\t\t\tuntracked(() => this._brnDialog?.setPanelClass(newClass));\n\t\t});\n\t}\n}\n","import { Directive, effect, inject, signal } from '@angular/core';\nimport { BrnDialogRef } from './brn-dialog-ref';\n\n@Directive({\n\tselector: '[brnDialogDescription]',\n\thost: {\n\t\t'[id]': '_id()',\n\t},\n})\nexport class BrnDialogDescription {\n\tprivate readonly _brnDialogRef = inject(BrnDialogRef);\n\n\tprotected readonly _id = signal(`brn-dialog-description-${this._brnDialogRef?.dialogId}`);\n\n\tconstructor() {\n\t\teffect(() => {\n\t\t\tthis._brnDialogRef.setAriaDescribedBy(this._id());\n\t\t});\n\t}\n}\n","import { Directive, effect, inject, input, untracked } from '@angular/core';\nimport { provideCustomClassSettableExisting } from '@spartan-ng/brain/core';\nimport { BrnDialog } from './brn-dialog';\n\n@Directive({\n\tselector: '[brnDialogOverlay],brn-dialog-overlay',\n\tproviders: [provideCustomClassSettableExisting(() => BrnDialogOverlay)],\n})\nexport class BrnDialogOverlay {\n\tprivate readonly _brnDialog = inject(BrnDialog);\n\n\tpublic readonly className = input<string | null | undefined>(undefined, { alias: 'class' });\n\n\tconstructor() {\n\t\teffect(() => {\n\t\t\tif (!this._brnDialog) return;\n\t\t\tconst newClass = this.className();\n\t\t\tuntracked(() => this._brnDialog.setOverlayClass(newClass));\n\t\t});\n\t}\n\n\tsetClassToCustomElement(newClass: string) {\n\t\tthis._brnDialog.setOverlayClass(newClass);\n\t}\n}\n","import { Directive, effect, inject, signal } from '@angular/core';\nimport { BrnDialogRef } from './brn-dialog-ref';\n\n@Directive({\n\tselector: '[brnDialogTitle]',\n\thost: {\n\t\t'[id]': '_id()',\n\t},\n})\nexport class BrnDialogTitle {\n\tprivate readonly _brnDialogRef = inject(BrnDialogRef);\n\n\tprotected readonly _id = signal(`brn-dialog-title-${this._brnDialogRef?.dialogId}`);\n\n\tconstructor() {\n\t\teffect(() => {\n\t\t\tthis._brnDialogRef.setAriaLabelledBy(this._id());\n\t\t});\n\t}\n}\n","import { computed, Directive, effect, inject, input, signal } from '@angular/core';\nimport { BrnDialog } from './brn-dialog';\nimport { BrnDialogRef } from './brn-dialog-ref';\nimport type { BrnDialogState } from './brn-dialog-state';\n\nlet idSequence = 0;\n\n@Directive({\n\tselector: 'button[brnDialogTrigger],button[brnDialogTriggerFor]',\n\texportAs: 'brnDialogTrigger',\n\thost: {\n\t\t'[id]': 'id()',\n\t\t'(click)': 'open()',\n\t\t'aria-haspopup': 'dialog',\n\t\t'[attr.aria-expanded]': \"state() === 'open' ? 'true': 'false'\",\n\t\t'[attr.data-state]': 'state()',\n\t\t'[attr.aria-controls]': 'dialogId',\n\t\t'[type]': 'type()',\n\t},\n})\nexport class BrnDialogTrigger {\n\tprotected _brnDialog = inject(BrnDialog, { optional: true });\n\tprotected readonly _brnDialogRef = inject(BrnDialogRef, { optional: true });\n\n\tpublic readonly id = input<string>(`brn-dialog-trigger-${++idSequence}`);\n\tpublic readonly type = input<'button' | 'submit' | 'reset'>('button');\n\n\tpublic readonly state = computed<BrnDialogState>(() => {\n\t\t// If we have a dialog component from the input, use its state (the highest priority)\n\t\tconst dialogFromInput = this.brnDialogTriggerForState();\n\t\tif (dialogFromInput) {\n\t\t\treturn dialogFromInput.stateComputed();\n\t\t}\n\n\t\t// If we have a dialog component, use its state\n\t\tif (this._brnDialog) {\n\t\t\treturn this._brnDialog.stateComputed();\n\t\t}\n\n\t\t// If we have a dialog ref, use its state\n\t\tif (this._brnDialogRef) {\n\t\t\treturn this._brnDialogRef.state();\n\t\t}\n\n\t\treturn 'closed';\n\t});\n\n\tpublic readonly dialogId = `brn-dialog-${this._brnDialogRef?.dialogId ?? ++idSequence}`;\n\n\tpublic readonly brnDialogTriggerFor = input<BrnDialog | undefined>(undefined, {\n\t\talias: 'brnDialogTriggerFor',\n\t});\n\tpublic readonly mutableBrnDialogTriggerFor = computed(() => signal(this.brnDialogTriggerFor()));\n\tpublic readonly brnDialogTriggerForState = computed(() => this.mutableBrnDialogTriggerFor()());\n\n\tconstructor() {\n\t\teffect(() => {\n\t\t\tconst brnDialog = this.brnDialogTriggerForState();\n\t\t\tif (!brnDialog) return;\n\t\t\tthis._brnDialog = brnDialog;\n\t\t});\n\t}\n\n\topen() {\n\t\tthis._brnDialog?.open();\n\t}\n}\n","import { BrnDialog } from './lib/brn-dialog';\nimport { BrnDialogClose } from './lib/brn-dialog-close';\nimport { BrnDialogContent } from './lib/brn-dialog-content';\nimport { BrnDialogDescription } from './lib/brn-dialog-description';\nimport { BrnDialogOverlay } from './lib/brn-dialog-overlay';\nimport { BrnDialogTitle } from './lib/brn-dialog-title';\nimport { BrnDialogTrigger } from './lib/brn-dialog-trigger';\n\nexport * from './lib/brn-dialog';\nexport * from './lib/brn-dialog-close';\nexport * from './lib/brn-dialog-content';\nexport * from './lib/brn-dialog-description';\nexport * from './lib/brn-dialog-options';\nexport * from './lib/brn-dialog-overlay';\nexport * from './lib/brn-dialog-ref';\nexport * from './lib/brn-dialog-state';\nexport * from './lib/brn-dialog-title';\nexport * from './lib/brn-dialog-token';\nexport * from './lib/brn-dialog-trigger';\nexport * from './lib/brn-dialog-utils';\nexport * from './lib/brn-dialog.service';\n\nexport const BrnDialogImports = [\n\tBrnDialog,\n\tBrnDialogOverlay,\n\tBrnDialogTrigger,\n\tBrnDialogClose,\n\tBrnDialogContent,\n\tBrnDialogTitle,\n\tBrnDialogDescription,\n] as const;\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
@@ -111,7 +111,12 @@ class BrnDrawerHandle {
111
111
  _destroyRef = inject(DestroyRef);
112
112
  _pointerId = -1;
113
113
  constructor() {
114
- this._destroyRef.onDestroy(() => this._cleanup());
114
+ this._destroyRef.onDestroy(() => {
115
+ this._cleanup();
116
+ // Cancel any pending reset timeout: on destroy its target elements are gone, so the
117
+ // deferred style write is a stale no-op that also retains this directive for ~500ms.
118
+ this._clearResetTimeout();
119
+ });
115
120
  effect(() => {
116
121
  const state = this._brnDialogRef?.state();
117
122
  untracked(() => {
@@ -138,6 +143,7 @@ class BrnDrawerHandle {
138
143
  _openTime = null;
139
144
  _lastTimeDragPrevented = null;
140
145
  _dragStartTime = null;
146
+ _resetTimeout = null;
141
147
  closeThreshold = input(DEFAULT_CLOSE_THRESHOLD, ...(ngDevMode ? [{ debugName: "closeThreshold" }] : /* istanbul ignore next */ []));
142
148
  get _isVertical() {
143
149
  return this._direction === 'bottom' || this._direction === 'top';
@@ -348,13 +354,21 @@ class BrnDrawerHandle {
348
354
  this._backdropEl.style.transition = animate ? OVERLAY_TRANSITION : 'none';
349
355
  this._backdropEl.style.opacity = String(this._initialBackdropOpacity);
350
356
  }
351
- setTimeout(() => {
357
+ this._clearResetTimeout();
358
+ this._resetTimeout = setTimeout(() => {
359
+ this._resetTimeout = null;
352
360
  if (this._drawerEl)
353
361
  this._drawerEl.style.transition = '';
354
362
  if (this._backdropEl)
355
363
  this._backdropEl.style.transition = '';
356
364
  }, 500);
357
365
  }
366
+ _clearResetTimeout() {
367
+ if (this._resetTimeout !== null) {
368
+ clearTimeout(this._resetTimeout);
369
+ this._resetTimeout = null;
370
+ }
371
+ }
358
372
  _animateAndClose() {
359
373
  if (!this._drawerEl)
360
374
  return;
@@ -385,6 +399,11 @@ class BrnDrawerHandle {
385
399
  this._pointerId = -1;
386
400
  }
387
401
  this._document.removeEventListener('pointermove', this._onPointerMove);
402
+ // pointerup/pointercancel are registered with `{ once: true }`, but a destroy-during-drag (or a
403
+ // normal end where pointercancel never fired) would otherwise leave them on `document`, pinning
404
+ // this directive until the next global pointer release auto-removes them.
405
+ this._document.removeEventListener('pointerup', this._onPointerUp);
406
+ this._document.removeEventListener('pointercancel', this._onPointerCancel);
388
407
  }
389
408
  _findScrollableAncestor(element) {
390
409
  if (!element)