ember-power-calendar 1.2.0 → 1.3.0

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":"days.js","sources":["../../../src/components/power-calendar/days.hbs","../../../src/components/power-calendar/days.ts"],"sourcesContent":["import { precompileTemplate } from \"@ember/template-compilation\";\nexport default precompileTemplate(\"{{! template-lint-disable no-invalid-interactive }}\\n<div\\n class=\\\"ember-power-calendar-days\\\"\\n data-power-calendar-id={{or @calendar.calendarUniqueId @calendar.uniqueId}}\\n {{on \\\"click\\\" this.handleClick}}\\n ...attributes\\n>\\n <div class=\\\"ember-power-calendar-row ember-power-calendar-weekdays\\\">\\n {{#each this.weekdaysNames as |wdn|}}\\n <div class=\\\"ember-power-calendar-weekday\\\">{{wdn}}</div>\\n {{/each}}\\n </div>\\n <div class=\\\"ember-power-calendar-day-grid\\\" {{on \\\"keydown\\\" this.handleKeyDown}}>\\n {{#each this.weeks key=\\'id\\' as |week|}}\\n <div class=\\\"ember-power-calendar-row ember-power-calendar-week\\\" data-missing-days={{week.missingDays}}>\\n {{#each week.days key=\\'id\\' as |day|}}\\n <button type=\\\"button\\\"\\n data-date=\\\"{{day.id}}\\\"\\n class={{ember-power-calendar-day-classes day @calendar this.weeks @dayClass}}\\n {{on \\\"focus\\\" this.handleDayFocus}}\\n {{on \\\"blur\\\" this.handleDayBlur}}\\n disabled={{day.isDisabled}}>\\n {{#if (has-block)}}\\n {{yield day @calendar this.weeks}}\\n {{else}}\\n {{day.number}}\\n {{/if}}\\n </button>\\n {{/each}}\\n </div>\\n {{/each}}\\n </div>\\n</div>\\n\")","import Component from '@glimmer/component';\nimport { tracked } from '@glimmer/tracking';\nimport { action } from '@ember/object';\nimport { scheduleOnce } from '@ember/runloop';\nimport { inject as service } from '@ember/service';\nimport {\n add,\n getWeekdays,\n getWeekdaysMin,\n getWeekdaysShort,\n isBefore,\n isSame,\n normalizeDate,\n withLocale,\n type PowerCalendarDay,\n} from '../../utils.ts';\nimport type { CalendarAPI } from '../power-calendar.ts';\nimport type PowerCalendarService from '../../services/power-calendar.ts';\nimport {\n firstDay,\n localeStartOfWeekOrFallback,\n weekdaysNames,\n weeks,\n handleDayKeyDown,\n focusDate,\n buildDay,\n lastDay,\n handleClick,\n type TWeekdayFormat,\n type Week,\n} from '../../-private/days-utils.ts';\n\nexport interface PowerCalendarDaysArgs {\n calendar: CalendarAPI;\n dayClass?: string;\n disabledDates?: Array<Date | string>;\n maxDate?: Date;\n minDate?: Date;\n selected?: Date;\n showDaysAround?: boolean;\n startOfWeek?: string;\n center?: Date;\n weekdayFormat?: TWeekdayFormat;\n}\n\nexport interface PowerCalendarDaysSignature {\n Element: HTMLElement;\n Args: PowerCalendarDaysArgs;\n Blocks: {\n default: [day: PowerCalendarDay, calendar: CalendarAPI, weeks: Week[]];\n };\n}\n\nexport default class PowerCalendarDaysComponent extends Component<PowerCalendarDaysSignature> {\n @service declare powerCalendar: PowerCalendarService;\n\n @tracked focusedId: string | null = null;\n\n get weekdayFormat(): TWeekdayFormat {\n return this.args.weekdayFormat || 'short'; // \"min\" | \"short\" | \"long\"\n }\n\n get showDaysAround(): boolean {\n return this.args.showDaysAround !== undefined\n ? this.args.showDaysAround\n : true;\n }\n\n get weekdaysMin(): string[] {\n return withLocale(this.args.calendar.locale, getWeekdaysMin) as string[];\n }\n\n get weekdaysShort(): string[] {\n return withLocale(this.args.calendar.locale, getWeekdaysShort) as string[];\n }\n\n get weekdays(): string[] {\n return withLocale(this.args.calendar.locale, getWeekdays) as string[];\n }\n\n get localeStartOfWeek(): number {\n return localeStartOfWeekOrFallback(\n this.args.startOfWeek,\n this.args.calendar.locale,\n );\n }\n\n get weekdaysNames(): string[] {\n return weekdaysNames(\n this.localeStartOfWeek,\n this.weekdayFormat,\n this.weekdays,\n this.weekdaysMin,\n this.weekdaysShort,\n );\n }\n\n get days(): PowerCalendarDay[] {\n const today = this.powerCalendar.getDate();\n const theLastDay = lastDay(this.localeStartOfWeek, this.currentCenter);\n let day = firstDay(this.currentCenter, this.localeStartOfWeek);\n const days: PowerCalendarDay[] = [];\n while (isBefore(day, theLastDay)) {\n days.push(\n buildDay(\n day,\n today,\n this.args.calendar,\n this.focusedId,\n this.currentCenter,\n this.dayIsSelected.bind(this),\n this.args.minDate,\n this.args.maxDate,\n this.args.disabledDates,\n ),\n );\n day = add(day, 1, 'day');\n }\n return days;\n }\n\n get weeks(): Week[] {\n return weeks(this.days, this.showDaysAround);\n }\n\n get currentCenter(): Date {\n let center = this.args.center;\n if (!center) {\n center = this.args.selected || this.args.calendar.center;\n }\n return normalizeDate(center) || this.args.calendar.center;\n }\n\n // Actions\n @action\n handleDayFocus(e: FocusEvent): void {\n scheduleOnce(\n 'actions',\n this,\n this._updateFocused,\n (e.target as HTMLElement).dataset['date'],\n );\n }\n\n @action\n handleDayBlur(): void {\n scheduleOnce('actions', this, this._updateFocused, null);\n }\n\n @action\n handleKeyDown(e: KeyboardEvent): void {\n const day = handleDayKeyDown(e, this.focusedId, this.days);\n if (!day) {\n return;\n }\n this.focusedId = day.id;\n scheduleOnce(\n 'afterRender',\n this,\n focusDate,\n this.args.calendar.uniqueId,\n this.focusedId ?? '',\n );\n }\n\n @action\n handleClick(e: MouseEvent) {\n handleClick(e, this.days, this.args.calendar);\n }\n\n // Methods\n dayIsSelected(date: Date, calendar: CalendarAPI = this.args.calendar) {\n return calendar.selected\n ? isSame(date, calendar.selected as Date, 'day')\n : false;\n }\n\n _updateFocused(id?: string | null) {\n this.focusedId = id ?? null;\n }\n}\n"],"names":["PowerCalendarDaysComponent","Component","g","prototype","service","i","void 0","tracked","weekdayFormat","args","showDaysAround","undefined","weekdaysMin","withLocale","calendar","locale","getWeekdaysMin","weekdaysShort","getWeekdaysShort","weekdays","getWeekdays","localeStartOfWeek","localeStartOfWeekOrFallback","startOfWeek","weekdaysNames","days","today","powerCalendar","getDate","theLastDay","lastDay","currentCenter","day","firstDay","isBefore","push","buildDay","focusedId","dayIsSelected","bind","minDate","maxDate","disabledDates","add","weeks","center","selected","normalizeDate","handleDayFocus","e","scheduleOnce","_updateFocused","target","dataset","n","action","handleDayBlur","handleKeyDown","handleDayKeyDown","id","focusDate","uniqueId","handleClick","date","isSame","setComponentTemplate","TEMPLATE"],"mappings":"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"}
1
+ {"version":3,"file":"days.js","sources":["../../../src/components/power-calendar/days.ts"],"sourcesContent":["import Component from '@glimmer/component';\nimport { tracked } from '@glimmer/tracking';\nimport { action } from '@ember/object';\nimport { scheduleOnce } from '@ember/runloop';\nimport { inject as service } from '@ember/service';\nimport {\n add,\n getWeekdays,\n getWeekdaysMin,\n getWeekdaysShort,\n isBefore,\n isSame,\n normalizeDate,\n withLocale,\n type PowerCalendarDay,\n} from '../../utils.ts';\nimport type { CalendarAPI } from '../power-calendar.ts';\nimport type PowerCalendarService from '../../services/power-calendar.ts';\nimport {\n firstDay,\n localeStartOfWeekOrFallback,\n weekdaysNames,\n weeks,\n handleDayKeyDown,\n focusDate,\n buildDay,\n lastDay,\n handleClick,\n type TWeekdayFormat,\n type Week,\n} from '../../-private/days-utils.ts';\n\nexport interface PowerCalendarDaysArgs {\n calendar: CalendarAPI;\n dayClass?: string;\n disabledDates?: Array<Date | string>;\n maxDate?: Date;\n minDate?: Date;\n selected?: Date;\n showDaysAround?: boolean;\n startOfWeek?: string;\n center?: Date;\n weekdayFormat?: TWeekdayFormat;\n}\n\nexport interface PowerCalendarDaysSignature {\n Element: HTMLElement;\n Args: PowerCalendarDaysArgs;\n Blocks: {\n default: [day: PowerCalendarDay, calendar: CalendarAPI, weeks: Week[]];\n };\n}\n\nexport default class PowerCalendarDaysComponent extends Component<PowerCalendarDaysSignature> {\n @service declare powerCalendar: PowerCalendarService;\n\n @tracked focusedId: string | null = null;\n\n get weekdayFormat(): TWeekdayFormat {\n return this.args.weekdayFormat || 'short'; // \"min\" | \"short\" | \"long\"\n }\n\n get showDaysAround(): boolean {\n return this.args.showDaysAround !== undefined\n ? this.args.showDaysAround\n : true;\n }\n\n get weekdaysMin(): string[] {\n return withLocale(this.args.calendar.locale, getWeekdaysMin) as string[];\n }\n\n get weekdaysShort(): string[] {\n return withLocale(this.args.calendar.locale, getWeekdaysShort) as string[];\n }\n\n get weekdays(): string[] {\n return withLocale(this.args.calendar.locale, getWeekdays) as string[];\n }\n\n get localeStartOfWeek(): number {\n return localeStartOfWeekOrFallback(\n this.args.startOfWeek,\n this.args.calendar.locale,\n );\n }\n\n get weekdaysNames(): string[] {\n return weekdaysNames(\n this.localeStartOfWeek,\n this.weekdayFormat,\n this.weekdays,\n this.weekdaysMin,\n this.weekdaysShort,\n );\n }\n\n get days(): PowerCalendarDay[] {\n const today = this.powerCalendar.getDate();\n const theLastDay = lastDay(this.localeStartOfWeek, this.currentCenter);\n let day = firstDay(this.currentCenter, this.localeStartOfWeek);\n const days: PowerCalendarDay[] = [];\n while (isBefore(day, theLastDay)) {\n days.push(\n buildDay(\n day,\n today,\n this.args.calendar,\n this.focusedId,\n this.currentCenter,\n this.dayIsSelected.bind(this),\n this.args.minDate,\n this.args.maxDate,\n this.args.disabledDates,\n ),\n );\n day = add(day, 1, 'day');\n }\n return days;\n }\n\n get weeks(): Week[] {\n return weeks(this.days, this.showDaysAround);\n }\n\n get currentCenter(): Date {\n let center = this.args.center;\n if (!center) {\n center = this.args.selected || this.args.calendar.center;\n }\n return normalizeDate(center) || this.args.calendar.center;\n }\n\n // Actions\n @action\n handleDayFocus(e: FocusEvent): void {\n scheduleOnce(\n 'actions',\n this,\n this._updateFocused,\n (e.target as HTMLElement).dataset['date'],\n );\n }\n\n @action\n handleDayBlur(): void {\n scheduleOnce('actions', this, this._updateFocused, null);\n }\n\n @action\n handleKeyDown(e: KeyboardEvent): void {\n const day = handleDayKeyDown(e, this.focusedId, this.days);\n if (!day) {\n return;\n }\n this.focusedId = day.id;\n scheduleOnce(\n 'afterRender',\n this,\n focusDate,\n this.args.calendar.uniqueId,\n this.focusedId ?? '',\n );\n }\n\n @action\n handleClick(e: MouseEvent) {\n handleClick(e, this.days, this.args.calendar);\n }\n\n // Methods\n dayIsSelected(date: Date, calendar: CalendarAPI = this.args.calendar) {\n return calendar.selected\n ? isSame(date, calendar.selected as Date, 'day')\n : false;\n }\n\n _updateFocused(id?: string | null) {\n this.focusedId = id ?? null;\n }\n}\n"],"names":["PowerCalendarDaysComponent","Component","g","prototype","service","i","void 0","tracked","weekdayFormat","args","showDaysAround","undefined","weekdaysMin","withLocale","calendar","locale","getWeekdaysMin","weekdaysShort","getWeekdaysShort","weekdays","getWeekdays","localeStartOfWeek","localeStartOfWeekOrFallback","startOfWeek","weekdaysNames","days","today","powerCalendar","getDate","theLastDay","lastDay","currentCenter","day","firstDay","isBefore","push","buildDay","focusedId","dayIsSelected","bind","minDate","maxDate","disabledDates","add","weeks","center","selected","normalizeDate","handleDayFocus","e","scheduleOnce","_updateFocused","target","dataset","n","action","handleDayBlur","handleKeyDown","handleDayKeyDown","id","focusDate","uniqueId","handleClick","date","isSame","setComponentTemplate","TEMPLATE"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"nav.js","sources":["../../../src/components/power-calendar/nav.hbs","../../../src/components/power-calendar/nav.ts"],"sourcesContent":["import { precompileTemplate } from \"@ember/template-compilation\";\nexport default precompileTemplate(\"<nav class=\\\"ember-power-calendar-nav\\\">\\n {{#if @calendar.actions.moveCenter}}\\n <button type=\\\"button\\\" class=\\\"ember-power-calendar-nav-control ember-power-calendar-nav-control--previous\\\" {{on \\\"click\\\" (fn @calendar.actions.moveCenter -1 this.unit @calendar)}}>«</button>\\n {{/if}}\\n <div class=\\\"ember-power-calendar-nav-title\\\">\\n {{#if (has-block)}}\\n {{yield @calendar}}\\n {{else}}\\n {{power-calendar-format-date @calendar.center this.format locale=@calendar.locale}}\\n {{/if}}\\n </div>\\n {{#if @calendar.actions.moveCenter}}\\n <button type=\\\"button\\\" class=\\\"ember-power-calendar-nav-control ember-power-calendar-nav-control--next\\\" {{on \\\"click\\\" (fn @calendar.actions.moveCenter 1 this.unit @calendar)}}>»</button>\\n {{/if}}\\n</nav>\\n\")","import Component from '@glimmer/component';\nimport type {\n CalendarAPI,\n TPowerCalendarMoveCenterUnit,\n} from '../power-calendar.ts';\n\ninterface PowerCalendarNavSignature {\n Args: {\n calendar: CalendarAPI;\n format: string;\n unit: TPowerCalendarMoveCenterUnit;\n };\n Blocks: {\n default: [calendar: CalendarAPI];\n };\n}\n\nexport default class PowerCalendarNavComponent extends Component<PowerCalendarNavSignature> {\n get unit(): TPowerCalendarMoveCenterUnit {\n return this.args.unit || 'month';\n }\n\n get format() {\n return this.args.format || 'MMMM YYYY';\n }\n}\n"],"names":["PowerCalendarNavComponent","Component","unit","args","format","setComponentTemplate","TEMPLATE"],"mappings":";;;;AACA,eAAe,kBAAkB,CAAC,2wBAA2wB;;ACgB9xB,MAAMA,yBAAyB,SAASC,SAAS,CAA4B;EAC1F,IAAIC,IAAIA,GAAiC;AACvC,IAAA,OAAO,IAAI,CAACC,IAAI,CAACD,IAAI,IAAI,OAAO,CAAA;AAClC,GAAA;EAEA,IAAIE,MAAMA,GAAG;AACX,IAAA,OAAO,IAAI,CAACD,IAAI,CAACC,MAAM,IAAI,WAAW,CAAA;AACxC,GAAA;AACF,CAAA;AAACC,oBAAA,CAAAC,QAAA,EARoBN,yBAAyB,CAAA;;;;"}
1
+ {"version":3,"file":"nav.js","sources":["../../../src/components/power-calendar/nav.ts"],"sourcesContent":["import Component from '@glimmer/component';\nimport type {\n CalendarAPI,\n TPowerCalendarMoveCenterUnit,\n} from '../power-calendar.ts';\n\ninterface PowerCalendarNavSignature {\n Args: {\n calendar: CalendarAPI;\n format: string;\n unit: TPowerCalendarMoveCenterUnit;\n };\n Blocks: {\n default: [calendar: CalendarAPI];\n };\n}\n\nexport default class PowerCalendarNavComponent extends Component<PowerCalendarNavSignature> {\n get unit(): TPowerCalendarMoveCenterUnit {\n return this.args.unit || 'month';\n }\n\n get format() {\n return this.args.format || 'MMMM YYYY';\n }\n}\n"],"names":["PowerCalendarNavComponent","Component","unit","args","format","setComponentTemplate","TEMPLATE"],"mappings":";;;;;;AAiBe,MAAMA,yBAAyB,SAASC,SAAS,CAA4B;EAC1F,IAAIC,IAAIA,GAAiC;AACvC,IAAA,OAAO,IAAI,CAACC,IAAI,CAACD,IAAI,IAAI,OAAO;AAClC;EAEA,IAAIE,MAAMA,GAAG;AACX,IAAA,OAAO,IAAI,CAACD,IAAI,CAACC,MAAM,IAAI,WAAW;AACxC;AACF;AAACC,oBAAA,CAAAC,QAAA,EARoBN,yBAAyB,CAAA;;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"days.js","sources":["../../../src/components/power-calendar-multiple/days.hbs","../../../src/components/power-calendar-multiple/days.ts"],"sourcesContent":["import { precompileTemplate } from \"@ember/template-compilation\";\nexport default precompileTemplate(\"{{! template-lint-disable no-invalid-interactive }}\\n<div\\n class=\\\"ember-power-calendar-days\\\"\\n data-power-calendar-id={{or @calendar.calendarUniqueId @calendar.uniqueId}}\\n {{on \\\"click\\\" this.handleClick}}\\n ...attributes\\n>\\n <div class=\\\"ember-power-calendar-row ember-power-calendar-weekdays\\\">\\n {{#each this.weekdaysNames as |wdn|}}\\n <div class=\\\"ember-power-calendar-weekday\\\">{{wdn}}</div>\\n {{/each}}\\n </div>\\n <div class=\\\"ember-power-calendar-day-grid\\\" {{on \\\"keydown\\\" this.handleKeyDown}}>\\n {{#each this.weeks key=\\'id\\' as |week|}}\\n <div class=\\\"ember-power-calendar-row ember-power-calendar-week\\\" data-missing-days={{week.missingDays}}>\\n {{#each week.days key=\\'id\\' as |day|}}\\n <button type=\\\"button\\\"\\n data-date=\\\"{{day.id}}\\\"\\n class={{ember-power-calendar-day-classes day @calendar this.weeks @dayClass}}\\n {{on \\\"focus\\\" this.handleDayFocus}}\\n {{on \\\"blur\\\" this.handleDayBlur}}\\n disabled={{day.isDisabled}}>\\n {{#if (has-block)}}\\n {{yield day @calendar this.weeks}}\\n {{else}}\\n {{day.number}}\\n {{/if}}\\n </button>\\n {{/each}}\\n </div>\\n {{/each}}\\n </div>\\n</div>\\n\")","import Component from '@glimmer/component';\nimport { tracked } from '@glimmer/tracking';\nimport { action } from '@ember/object';\nimport { scheduleOnce } from '@ember/runloop';\nimport { inject as service } from '@ember/service';\nimport {\n add,\n getWeekdays,\n getWeekdaysMin,\n getWeekdaysShort,\n isBefore,\n isSame,\n normalizeDate,\n withLocale,\n type PowerCalendarDay,\n} from '../../utils.ts';\nimport type { PowerCalendarMultipleAPI } from '../power-calendar-multiple.ts';\nimport {\n buildDay,\n dayIsDisabled,\n firstDay,\n lastDay,\n localeStartOfWeekOrFallback,\n weekdaysNames,\n weeks,\n handleDayKeyDown,\n focusDate,\n handleClick,\n type TWeekdayFormat,\n type Week,\n} from '../../-private/days-utils.ts';\nimport type { CalendarAPI } from '../power-calendar.ts';\nimport type PowerCalendarService from '../../services/power-calendar.ts';\nimport type {\n PowerCalendarDaysArgs,\n PowerCalendarDaysSignature,\n} from '../power-calendar/days.ts';\n\ninterface PowerCalendarMultipleDaysArgs\n extends Omit<PowerCalendarDaysArgs, 'selected'> {\n selected?: Date[];\n maxLength?: number;\n}\n\ninterface PowerCalendarMultipleDaysSignature\n extends Omit<PowerCalendarDaysSignature, 'Args'> {\n Args: PowerCalendarMultipleDaysArgs;\n}\n\nexport default class PowerCalendarMultipleDaysComponent extends Component<PowerCalendarMultipleDaysSignature> {\n @service declare powerCalendar: PowerCalendarService;\n\n @tracked focusedId: string | null = null;\n\n get weekdayFormat(): TWeekdayFormat {\n return this.args.weekdayFormat || 'short'; // \"min\" | \"short\" | \"long\"\n }\n\n get showDaysAround(): boolean {\n return this.args.showDaysAround !== undefined\n ? this.args.showDaysAround\n : true;\n }\n\n get weekdaysMin(): string[] {\n return withLocale(this.args.calendar.locale, getWeekdaysMin) as string[];\n }\n\n get weekdaysShort(): string[] {\n return withLocale(this.args.calendar.locale, getWeekdaysShort) as string[];\n }\n\n get weekdays(): string[] {\n return withLocale(this.args.calendar.locale, getWeekdays) as string[];\n }\n\n get localeStartOfWeek(): number {\n return localeStartOfWeekOrFallback(\n this.args.startOfWeek,\n this.args.calendar.locale,\n );\n }\n\n get weekdaysNames(): string[] {\n return weekdaysNames(\n this.localeStartOfWeek,\n this.weekdayFormat,\n this.weekdays,\n this.weekdaysMin,\n this.weekdaysShort,\n );\n }\n\n get days(): PowerCalendarDay[] {\n const today = this.powerCalendar.getDate();\n const theLastDay = lastDay(this.localeStartOfWeek, this.currentCenter);\n let day = firstDay(this.currentCenter, this.localeStartOfWeek);\n const days: PowerCalendarDay[] = [];\n while (isBefore(day, theLastDay)) {\n days.push(\n buildDay(\n day,\n today,\n this.args.calendar,\n this.focusedId,\n this.currentCenter,\n this.dayIsSelected.bind(this),\n this.args.minDate,\n this.args.maxDate,\n this.args.disabledDates,\n this.dayIsDisabled.bind(this),\n ),\n );\n day = add(day, 1, 'day');\n }\n return days;\n }\n\n get weeks(): Week[] {\n return weeks(this.days, this.showDaysAround);\n }\n\n get currentCenter(): Date {\n let center = this.args.center;\n if (!center) {\n center = this.args.selected\n ? this.args.selected[0]\n : this.args.calendar.center;\n }\n return normalizeDate(center) || this.args.calendar.center;\n }\n\n get maxLength(): number {\n return this.args.maxLength || Infinity;\n }\n\n // Actions\n @action\n handleDayFocus(e: FocusEvent): void {\n scheduleOnce(\n 'actions',\n this,\n this._updateFocused,\n (e.target as HTMLElement).dataset['date'],\n );\n }\n\n @action\n handleDayBlur(): void {\n scheduleOnce('actions', this, this._updateFocused, null);\n }\n\n @action\n handleKeyDown(e: KeyboardEvent): void {\n const day = handleDayKeyDown(e, this.focusedId, this.days);\n if (!day) {\n return;\n }\n this.focusedId = day.id;\n scheduleOnce(\n 'afterRender',\n this,\n focusDate,\n this.args.calendar.uniqueId,\n this.focusedId ?? '',\n );\n }\n\n @action\n handleClick(e: MouseEvent) {\n handleClick(e, this.days, this.args.calendar);\n }\n\n // Methods\n dayIsSelected(date: Date, calendar: CalendarAPI = this.args.calendar) {\n const selected = (calendar as PowerCalendarMultipleAPI).selected || [];\n return selected.some((d) => isSame(date, d, 'day'));\n }\n\n _updateFocused(id?: string | null) {\n this.focusedId = id ?? null;\n }\n\n dayIsDisabled(\n date: Date,\n calendarApi: CalendarAPI,\n minDate?: Date,\n maxDate?: Date,\n disabledDates?: Array<Date | string>,\n ) {\n const calendar = calendarApi as PowerCalendarMultipleAPI;\n const numSelected = (calendar.selected && calendar.selected.length) || 0;\n const maxLength = this.maxLength || Infinity;\n return (\n dayIsDisabled(date, calendar, minDate, maxDate, disabledDates) ||\n (numSelected >= maxLength && !this.dayIsSelected(date))\n );\n }\n}\n"],"names":["PowerCalendarMultipleDaysComponent","Component","g","prototype","service","i","void 0","tracked","weekdayFormat","args","showDaysAround","undefined","weekdaysMin","withLocale","calendar","locale","getWeekdaysMin","weekdaysShort","getWeekdaysShort","weekdays","getWeekdays","localeStartOfWeek","localeStartOfWeekOrFallback","startOfWeek","weekdaysNames","days","today","powerCalendar","getDate","theLastDay","lastDay","currentCenter","day","firstDay","isBefore","push","buildDay","focusedId","dayIsSelected","bind","minDate","maxDate","disabledDates","dayIsDisabled","add","weeks","center","selected","normalizeDate","maxLength","Infinity","handleDayFocus","e","scheduleOnce","_updateFocused","target","dataset","n","action","handleDayBlur","handleKeyDown","handleDayKeyDown","id","focusDate","uniqueId","handleClick","date","some","d","isSame","calendarApi","numSelected","length","setComponentTemplate","TEMPLATE"],"mappings":"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"}
1
+ {"version":3,"file":"days.js","sources":["../../../src/components/power-calendar-multiple/days.ts"],"sourcesContent":["import Component from '@glimmer/component';\nimport { tracked } from '@glimmer/tracking';\nimport { action } from '@ember/object';\nimport { scheduleOnce } from '@ember/runloop';\nimport { inject as service } from '@ember/service';\nimport {\n add,\n getWeekdays,\n getWeekdaysMin,\n getWeekdaysShort,\n isBefore,\n isSame,\n normalizeDate,\n withLocale,\n type PowerCalendarDay,\n} from '../../utils.ts';\nimport type { PowerCalendarMultipleAPI } from '../power-calendar-multiple.ts';\nimport {\n buildDay,\n dayIsDisabled,\n firstDay,\n lastDay,\n localeStartOfWeekOrFallback,\n weekdaysNames,\n weeks,\n handleDayKeyDown,\n focusDate,\n handleClick,\n type TWeekdayFormat,\n type Week,\n} from '../../-private/days-utils.ts';\nimport type { CalendarAPI } from '../power-calendar.ts';\nimport type PowerCalendarService from '../../services/power-calendar.ts';\nimport type {\n PowerCalendarDaysArgs,\n PowerCalendarDaysSignature,\n} from '../power-calendar/days.ts';\n\ninterface PowerCalendarMultipleDaysArgs\n extends Omit<PowerCalendarDaysArgs, 'selected'> {\n selected?: Date[];\n maxLength?: number;\n}\n\ninterface PowerCalendarMultipleDaysSignature\n extends Omit<PowerCalendarDaysSignature, 'Args'> {\n Args: PowerCalendarMultipleDaysArgs;\n}\n\nexport default class PowerCalendarMultipleDaysComponent extends Component<PowerCalendarMultipleDaysSignature> {\n @service declare powerCalendar: PowerCalendarService;\n\n @tracked focusedId: string | null = null;\n\n get weekdayFormat(): TWeekdayFormat {\n return this.args.weekdayFormat || 'short'; // \"min\" | \"short\" | \"long\"\n }\n\n get showDaysAround(): boolean {\n return this.args.showDaysAround !== undefined\n ? this.args.showDaysAround\n : true;\n }\n\n get weekdaysMin(): string[] {\n return withLocale(this.args.calendar.locale, getWeekdaysMin) as string[];\n }\n\n get weekdaysShort(): string[] {\n return withLocale(this.args.calendar.locale, getWeekdaysShort) as string[];\n }\n\n get weekdays(): string[] {\n return withLocale(this.args.calendar.locale, getWeekdays) as string[];\n }\n\n get localeStartOfWeek(): number {\n return localeStartOfWeekOrFallback(\n this.args.startOfWeek,\n this.args.calendar.locale,\n );\n }\n\n get weekdaysNames(): string[] {\n return weekdaysNames(\n this.localeStartOfWeek,\n this.weekdayFormat,\n this.weekdays,\n this.weekdaysMin,\n this.weekdaysShort,\n );\n }\n\n get days(): PowerCalendarDay[] {\n const today = this.powerCalendar.getDate();\n const theLastDay = lastDay(this.localeStartOfWeek, this.currentCenter);\n let day = firstDay(this.currentCenter, this.localeStartOfWeek);\n const days: PowerCalendarDay[] = [];\n while (isBefore(day, theLastDay)) {\n days.push(\n buildDay(\n day,\n today,\n this.args.calendar,\n this.focusedId,\n this.currentCenter,\n this.dayIsSelected.bind(this),\n this.args.minDate,\n this.args.maxDate,\n this.args.disabledDates,\n this.dayIsDisabled.bind(this),\n ),\n );\n day = add(day, 1, 'day');\n }\n return days;\n }\n\n get weeks(): Week[] {\n return weeks(this.days, this.showDaysAround);\n }\n\n get currentCenter(): Date {\n let center = this.args.center;\n if (!center) {\n center = this.args.selected\n ? this.args.selected[0]\n : this.args.calendar.center;\n }\n return normalizeDate(center) || this.args.calendar.center;\n }\n\n get maxLength(): number {\n return this.args.maxLength || Infinity;\n }\n\n // Actions\n @action\n handleDayFocus(e: FocusEvent): void {\n scheduleOnce(\n 'actions',\n this,\n this._updateFocused,\n (e.target as HTMLElement).dataset['date'],\n );\n }\n\n @action\n handleDayBlur(): void {\n scheduleOnce('actions', this, this._updateFocused, null);\n }\n\n @action\n handleKeyDown(e: KeyboardEvent): void {\n const day = handleDayKeyDown(e, this.focusedId, this.days);\n if (!day) {\n return;\n }\n this.focusedId = day.id;\n scheduleOnce(\n 'afterRender',\n this,\n focusDate,\n this.args.calendar.uniqueId,\n this.focusedId ?? '',\n );\n }\n\n @action\n handleClick(e: MouseEvent) {\n handleClick(e, this.days, this.args.calendar);\n }\n\n // Methods\n dayIsSelected(date: Date, calendar: CalendarAPI = this.args.calendar) {\n const selected = (calendar as PowerCalendarMultipleAPI).selected || [];\n return selected.some((d) => isSame(date, d, 'day'));\n }\n\n _updateFocused(id?: string | null) {\n this.focusedId = id ?? null;\n }\n\n dayIsDisabled(\n date: Date,\n calendarApi: CalendarAPI,\n minDate?: Date,\n maxDate?: Date,\n disabledDates?: Array<Date | string>,\n ) {\n const calendar = calendarApi as PowerCalendarMultipleAPI;\n const numSelected = (calendar.selected && calendar.selected.length) || 0;\n const maxLength = this.maxLength || Infinity;\n return (\n dayIsDisabled(date, calendar, minDate, maxDate, disabledDates) ||\n (numSelected >= maxLength && !this.dayIsSelected(date))\n );\n }\n}\n"],"names":["PowerCalendarMultipleDaysComponent","Component","g","prototype","service","i","void 0","tracked","weekdayFormat","args","showDaysAround","undefined","weekdaysMin","withLocale","calendar","locale","getWeekdaysMin","weekdaysShort","getWeekdaysShort","weekdays","getWeekdays","localeStartOfWeek","localeStartOfWeekOrFallback","startOfWeek","weekdaysNames","days","today","powerCalendar","getDate","theLastDay","lastDay","currentCenter","day","firstDay","isBefore","push","buildDay","focusedId","dayIsSelected","bind","minDate","maxDate","disabledDates","dayIsDisabled","add","weeks","center","selected","normalizeDate","maxLength","Infinity","handleDayFocus","e","scheduleOnce","_updateFocused","target","dataset","n","action","handleDayBlur","handleKeyDown","handleDayKeyDown","id","focusDate","uniqueId","handleClick","date","some","d","isSame","calendarApi","numSelected","length","setComponentTemplate","TEMPLATE"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"power-calendar-multiple.js","sources":["../../src/components/power-calendar-multiple.hbs","../../src/components/power-calendar-multiple.ts"],"sourcesContent":["import { precompileTemplate } from \"@ember/template-compilation\";\nexport default precompileTemplate(\"{{#let (assign this.publicAPI (hash\\n Nav=(component (ensure-safe-component (or @navComponent this.navComponent)) calendar=(readonly this.publicAPI))\\n Days=(component (ensure-safe-component (or @daysComponent this.daysComponent)) calendar=(readonly this.publicAPI))\\n)) as |calendar|}}\\n {{#let (element this.tagWithDefault) as |Tag|}}\\n <Tag class=\\\"ember-power-calendar\\\" ...attributes id={{calendar.uniqueId}}>\\n {{#if (has-block)}}\\n {{yield calendar}}\\n {{else}}\\n <calendar.Nav/>\\n <calendar.Days/>\\n {{/if}}\\n </Tag>\\n {{/let}}\\n{{/let}}\\n\")","import Component from '@glimmer/component';\nimport { tracked } from '@glimmer/tracking';\nimport { guidFor } from '@ember/object/internals';\nimport { inject as service } from '@ember/service';\nimport { assert } from '@ember/debug';\nimport { isArray } from '@ember/array';\nimport { action } from '@ember/object';\nimport { task } from 'ember-concurrency';\nimport PowerCalendarMultipleDaysComponent from './power-calendar-multiple/days.ts';\nimport PowerCalendarNavComponent from './power-calendar/nav.ts';\nimport { publicActionsObject } from '../-private/utils.ts';\nimport {\n normalizeDate,\n isSame,\n normalizeMultipleActionValue,\n normalizeCalendarValue,\n type NormalizeMultipleActionValue,\n type PowerCalendarDay,\n} from '../utils.ts';\nimport type {\n CalendarAPI,\n CalendarDay,\n PowerCalendarAPI,\n PowerCalendarActions,\n PowerCalendarArgs,\n PowerCalendarSignature,\n SelectedDays,\n TCalendarType,\n} from './power-calendar.ts';\nimport type Owner from '@ember/owner';\nimport type { ComponentLike } from '@glint/template';\nimport type PowerCalendarService from '../services/power-calendar.ts';\n\nexport interface PowerCalendarMultipleAPI\n extends Omit<PowerCalendarAPI, 'selected'> {\n selected?: Date[];\n}\n\nexport type TPowerCalendarMultipleOnSelect = (\n day: NormalizeMultipleActionValue,\n calendar: PowerCalendarMultipleAPI,\n event: MouseEvent,\n) => void;\n\ninterface PowerCalendarMultipleArgs\n extends Omit<PowerCalendarArgs, 'selected' | 'onSelect'> {\n selected?: Date[];\n onSelect?: TPowerCalendarMultipleOnSelect;\n}\n\ninterface PowerCalendarMultipleDefaultBlock extends PowerCalendarMultipleAPI {\n NavComponent: ComponentLike<any>;\n DaysComponent: ComponentLike<any>;\n}\n\ninterface PowerCalendarMultipleSignature\n extends Omit<PowerCalendarSignature, 'Args'> {\n Args: PowerCalendarMultipleArgs;\n Blocks: {\n default: [PowerCalendarMultipleDefaultBlock];\n };\n}\n\nexport default class PowerCalendarMultipleComponent extends Component<PowerCalendarMultipleSignature> {\n @service declare powerCalendar: PowerCalendarService;\n\n @tracked center = null;\n @tracked _calendarType: TCalendarType = 'multiple';\n @tracked _selected?: SelectedDays;\n\n navComponent: ComponentLike<any> = PowerCalendarNavComponent;\n daysComponent: ComponentLike<any> = PowerCalendarMultipleDaysComponent;\n\n // Lifecycle hooks\n constructor(owner: Owner, args: PowerCalendarMultipleArgs) {\n super(owner, args);\n this.registerCalendar();\n if (this.args.onInit) {\n this.args.onInit(this.publicAPI);\n }\n }\n\n willDestroy(): void {\n super.willDestroy();\n this.unregisterCalendar();\n }\n\n get publicActions(): PowerCalendarActions {\n return publicActionsObject(\n this.args.onSelect,\n this.select,\n this.args.onCenterChange,\n this.changeCenterTask,\n this.currentCenter,\n );\n }\n\n get selected(): Date[] | undefined {\n if (this._selected) {\n return (this._selected as Date[]) || undefined;\n }\n\n const value = this.args.selected;\n\n if (!isArray(value)) {\n return value;\n }\n\n const selected: Date[] = [];\n\n for (const date of value) {\n const normalizedDate = normalizeDate(date);\n if (!(normalizedDate instanceof Date)) {\n continue;\n }\n selected.push(normalizedDate);\n }\n\n return selected;\n }\n\n set selected(v: SelectedDays) {\n this._selected = normalizeDate(v as Date | undefined);\n }\n\n get currentCenter(): Date {\n let center = this.args.center;\n if (!center) {\n center = (this.selected || [])[0] || this.powerCalendar.getDate();\n }\n return normalizeDate(center) || this.powerCalendar.getDate();\n }\n\n get publicAPI(): PowerCalendarAPI {\n return {\n uniqueId: guidFor(this),\n type: this._calendarType,\n selected: this.selected,\n loading: this.changeCenterTask.isRunning,\n center: this.currentCenter,\n locale: this.args.locale || this.powerCalendar.locale,\n actions: this.publicActions,\n };\n }\n\n get tagWithDefault(): string {\n if (this.args.tag === undefined || this.args.tag === null) {\n return 'div';\n }\n return this.args.tag;\n }\n\n // Tasks\n changeCenterTask = task(\n async (newCenter: Date, calendar: PowerCalendarAPI, e: MouseEvent) => {\n assert(\n \"You attempted to move the center of a calendar that doesn't receive an `@onCenterChange` action.\",\n typeof this.args.onCenterChange === 'function',\n );\n const value = normalizeCalendarValue({ date: newCenter });\n await this.args.onCenterChange(value, calendar, e);\n },\n );\n\n // Actions\n @action\n select(dayOrDays: CalendarDay, calendar: CalendarAPI, e: MouseEvent) {\n assert(\n `The select action expects an array of date objects, or a date object. ${typeof dayOrDays} was recieved instead.`,\n isArray(dayOrDays) ||\n (dayOrDays instanceof Object && dayOrDays.date instanceof Date),\n );\n\n let days;\n\n if (isArray(dayOrDays)) {\n days = dayOrDays;\n } else if (dayOrDays instanceof Object && dayOrDays.date instanceof Date) {\n days = [dayOrDays];\n }\n\n if (this.args.onSelect) {\n this.args.onSelect(\n this._buildCollection((days as PowerCalendarDay[]) ?? []),\n calendar as PowerCalendarMultipleAPI,\n e,\n );\n }\n }\n\n // Methods\n _buildCollection(days: PowerCalendarDay[]): NormalizeMultipleActionValue {\n let selected = this.selected || [];\n\n for (const day of days) {\n const index = selected.findIndex((selectedDate) =>\n isSame(day.date, selectedDate, 'day'),\n );\n if (index === -1) {\n selected = [...selected, day.date];\n } else {\n selected = selected.slice(0, index).concat(selected.slice(index + 1));\n }\n }\n\n return normalizeMultipleActionValue({ date: selected });\n }\n\n // Methods\n registerCalendar() {\n if (window) {\n // @ts-expect-error Property '__powerCalendars'\n window.__powerCalendars = window.__powerCalendars || {}; // TODO: weakmap??\n // @ts-expect-error Property '__powerCalendars'\n window.__powerCalendars[this.publicAPI.uniqueId] = this;\n }\n }\n\n unregisterCalendar() {\n // @ts-expect-error Property '__powerCalendars'\n if (window && window.__powerCalendars?.[guidFor(this)]) {\n // @ts-expect-error Property '__powerCalendars'\n delete window.__powerCalendars[guidFor(this)];\n }\n }\n}\n"],"names":["PowerCalendarMultipleComponent","Component","g","prototype","service","i","void 0","tracked","navComponent","PowerCalendarNavComponent","daysComponent","PowerCalendarMultipleDaysComponent","constructor","owner","args","registerCalendar","onInit","publicAPI","willDestroy","unregisterCalendar","publicActions","publicActionsObject","onSelect","select","onCenterChange","changeCenterTask","currentCenter","selected","_selected","undefined","value","isArray","date","normalizedDate","normalizeDate","Date","push","v","center","powerCalendar","getDate","uniqueId","guidFor","type","_calendarType","loading","isRunning","locale","actions","tagWithDefault","tag","_buildTask","context","generator","newCenter","calendar","e","assert","normalizeCalendarValue","dayOrDays","Object","days","_buildCollection","n","action","day","index","findIndex","selectedDate","isSame","slice","concat","normalizeMultipleActionValue","window","__powerCalendars","setComponentTemplate","TEMPLATE"],"mappings":"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"}
1
+ {"version":3,"file":"power-calendar-multiple.js","sources":["../../src/components/power-calendar-multiple.ts"],"sourcesContent":["import Component from '@glimmer/component';\nimport { tracked } from '@glimmer/tracking';\nimport { guidFor } from '@ember/object/internals';\nimport { inject as service } from '@ember/service';\nimport { assert } from '@ember/debug';\nimport { isArray } from '@ember/array';\nimport { action } from '@ember/object';\nimport { task } from 'ember-concurrency';\nimport PowerCalendarMultipleDaysComponent from './power-calendar-multiple/days.ts';\nimport PowerCalendarNavComponent from './power-calendar/nav.ts';\nimport { publicActionsObject } from '../-private/utils.ts';\nimport {\n normalizeDate,\n isSame,\n normalizeMultipleActionValue,\n normalizeCalendarValue,\n type NormalizeMultipleActionValue,\n type PowerCalendarDay,\n} from '../utils.ts';\nimport type {\n CalendarAPI,\n CalendarDay,\n PowerCalendarAPI,\n PowerCalendarActions,\n PowerCalendarArgs,\n PowerCalendarSignature,\n SelectedDays,\n TCalendarType,\n} from './power-calendar.ts';\nimport type Owner from '@ember/owner';\nimport type { ComponentLike } from '@glint/template';\nimport type PowerCalendarService from '../services/power-calendar.ts';\n\nexport interface PowerCalendarMultipleAPI\n extends Omit<PowerCalendarAPI, 'selected'> {\n selected?: Date[];\n}\n\nexport type TPowerCalendarMultipleOnSelect = (\n day: NormalizeMultipleActionValue,\n calendar: PowerCalendarMultipleAPI,\n event: MouseEvent,\n) => void;\n\ninterface PowerCalendarMultipleArgs\n extends Omit<PowerCalendarArgs, 'selected' | 'onSelect'> {\n selected?: Date[];\n onSelect?: TPowerCalendarMultipleOnSelect;\n}\n\ninterface PowerCalendarMultipleDefaultBlock extends PowerCalendarMultipleAPI {\n NavComponent: ComponentLike<any>;\n DaysComponent: ComponentLike<any>;\n}\n\ninterface PowerCalendarMultipleSignature\n extends Omit<PowerCalendarSignature, 'Args'> {\n Args: PowerCalendarMultipleArgs;\n Blocks: {\n default: [PowerCalendarMultipleDefaultBlock];\n };\n}\n\nexport default class PowerCalendarMultipleComponent extends Component<PowerCalendarMultipleSignature> {\n @service declare powerCalendar: PowerCalendarService;\n\n @tracked center = null;\n @tracked _calendarType: TCalendarType = 'multiple';\n @tracked _selected?: SelectedDays;\n\n navComponent: ComponentLike<any> = PowerCalendarNavComponent;\n daysComponent: ComponentLike<any> = PowerCalendarMultipleDaysComponent;\n\n // Lifecycle hooks\n constructor(owner: Owner, args: PowerCalendarMultipleArgs) {\n super(owner, args);\n this.registerCalendar();\n if (this.args.onInit) {\n this.args.onInit(this.publicAPI);\n }\n }\n\n willDestroy(): void {\n super.willDestroy();\n this.unregisterCalendar();\n }\n\n get publicActions(): PowerCalendarActions {\n return publicActionsObject(\n this.args.onSelect,\n this.select,\n this.args.onCenterChange,\n this.changeCenterTask,\n this.currentCenter,\n );\n }\n\n get selected(): Date[] | undefined {\n if (this._selected) {\n return (this._selected as Date[]) || undefined;\n }\n\n const value = this.args.selected;\n\n if (!isArray(value)) {\n return value;\n }\n\n const selected: Date[] = [];\n\n for (const date of value) {\n const normalizedDate = normalizeDate(date);\n if (!(normalizedDate instanceof Date)) {\n continue;\n }\n selected.push(normalizedDate);\n }\n\n return selected;\n }\n\n set selected(v: SelectedDays) {\n this._selected = normalizeDate(v as Date | undefined);\n }\n\n get currentCenter(): Date {\n let center = this.args.center;\n if (!center) {\n center = (this.selected || [])[0] || this.powerCalendar.getDate();\n }\n return normalizeDate(center) || this.powerCalendar.getDate();\n }\n\n get publicAPI(): PowerCalendarAPI {\n return {\n uniqueId: guidFor(this),\n type: this._calendarType,\n selected: this.selected,\n loading: this.changeCenterTask.isRunning,\n center: this.currentCenter,\n locale: this.args.locale || this.powerCalendar.locale,\n actions: this.publicActions,\n };\n }\n\n get tagWithDefault(): string {\n if (this.args.tag === undefined || this.args.tag === null) {\n return 'div';\n }\n return this.args.tag;\n }\n\n // Tasks\n changeCenterTask = task(\n async (newCenter: Date, calendar: PowerCalendarAPI, e: MouseEvent) => {\n assert(\n \"You attempted to move the center of a calendar that doesn't receive an `@onCenterChange` action.\",\n typeof this.args.onCenterChange === 'function',\n );\n const value = normalizeCalendarValue({ date: newCenter });\n await this.args.onCenterChange(value, calendar, e);\n },\n );\n\n // Actions\n @action\n select(dayOrDays: CalendarDay, calendar: CalendarAPI, e: MouseEvent) {\n assert(\n `The select action expects an array of date objects, or a date object. ${typeof dayOrDays} was recieved instead.`,\n isArray(dayOrDays) ||\n (dayOrDays instanceof Object && dayOrDays.date instanceof Date),\n );\n\n let days;\n\n if (isArray(dayOrDays)) {\n days = dayOrDays;\n } else if (dayOrDays instanceof Object && dayOrDays.date instanceof Date) {\n days = [dayOrDays];\n }\n\n if (this.args.onSelect) {\n this.args.onSelect(\n this._buildCollection((days as PowerCalendarDay[]) ?? []),\n calendar as PowerCalendarMultipleAPI,\n e,\n );\n }\n }\n\n // Methods\n _buildCollection(days: PowerCalendarDay[]): NormalizeMultipleActionValue {\n let selected = this.selected || [];\n\n for (const day of days) {\n const index = selected.findIndex((selectedDate) =>\n isSame(day.date, selectedDate, 'day'),\n );\n if (index === -1) {\n selected = [...selected, day.date];\n } else {\n selected = selected.slice(0, index).concat(selected.slice(index + 1));\n }\n }\n\n return normalizeMultipleActionValue({ date: selected });\n }\n\n // Methods\n registerCalendar() {\n if (window) {\n // @ts-expect-error Property '__powerCalendars'\n window.__powerCalendars = window.__powerCalendars || {}; // TODO: weakmap??\n // @ts-expect-error Property '__powerCalendars'\n window.__powerCalendars[this.publicAPI.uniqueId] = this;\n }\n }\n\n unregisterCalendar() {\n // @ts-expect-error Property '__powerCalendars'\n if (window && window.__powerCalendars?.[guidFor(this)]) {\n // @ts-expect-error Property '__powerCalendars'\n delete window.__powerCalendars[guidFor(this)];\n }\n }\n}\n"],"names":["PowerCalendarMultipleComponent","Component","g","prototype","service","i","void 0","tracked","navComponent","PowerCalendarNavComponent","daysComponent","PowerCalendarMultipleDaysComponent","constructor","owner","args","registerCalendar","onInit","publicAPI","willDestroy","unregisterCalendar","publicActions","publicActionsObject","onSelect","select","onCenterChange","changeCenterTask","currentCenter","selected","_selected","undefined","value","isArray","date","normalizedDate","normalizeDate","Date","push","v","center","powerCalendar","getDate","uniqueId","guidFor","type","_calendarType","loading","isRunning","locale","actions","tagWithDefault","tag","_buildTask","context","generator","newCenter","calendar","e","assert","normalizeCalendarValue","dayOrDays","Object","days","_buildCollection","n","action","day","index","findIndex","selectedDate","isSame","slice","concat","normalizeMultipleActionValue","window","__powerCalendars","setComponentTemplate","TEMPLATE"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"days.js","sources":["../../../src/components/power-calendar-range/days.hbs","../../../src/components/power-calendar-range/days.ts"],"sourcesContent":["import { precompileTemplate } from \"@ember/template-compilation\";\nexport default precompileTemplate(\"{{! template-lint-disable no-invalid-interactive }}\\n<div\\n class=\\\"ember-power-calendar-days\\\"\\n data-power-calendar-id={{or @calendar.calendarUniqueId @calendar.uniqueId}}\\n {{on \\\"click\\\" this.handleClick}}\\n ...attributes\\n>\\n <div class=\\\"ember-power-calendar-row ember-power-calendar-weekdays\\\">\\n {{#each this.weekdaysNames as |wdn|}}\\n <div class=\\\"ember-power-calendar-weekday\\\">{{wdn}}</div>\\n {{/each}}\\n </div>\\n <div class=\\\"ember-power-calendar-day-grid\\\" {{on \\\"keydown\\\" this.handleKeyDown}}>\\n {{#each this.weeks key=\\'id\\' as |week|}}\\n <div class=\\\"ember-power-calendar-row ember-power-calendar-week\\\" data-missing-days={{week.missingDays}}>\\n {{#each week.days key=\\'id\\' as |day|}}\\n <button type=\\\"button\\\"\\n data-date=\\\"{{day.id}}\\\"\\n class={{ember-power-calendar-day-classes day @calendar this.weeks @dayClass}}\\n {{on \\\"focus\\\" this.handleDayFocus}}\\n {{on \\\"blur\\\" this.handleDayBlur}}\\n disabled={{day.isDisabled}}>\\n {{#if (has-block)}}\\n {{yield day @calendar this.weeks}}\\n {{else}}\\n {{day.number}}\\n {{/if}}\\n </button>\\n {{/each}}\\n </div>\\n {{/each}}\\n </div>\\n</div>\\n\")","import Component from '@glimmer/component';\nimport { tracked } from '@glimmer/tracking';\nimport { action } from '@ember/object';\nimport { scheduleOnce } from '@ember/runloop';\nimport { inject as service } from '@ember/service';\nimport type {\n PowerCalendarDaysArgs,\n PowerCalendarDaysSignature,\n} from '../power-calendar/days.ts';\nimport {\n isBetween,\n isSame,\n diff,\n isBefore,\n add,\n withLocale,\n getWeekdaysMin,\n getWeekdaysShort,\n getWeekdays,\n normalizeDate,\n type PowerCalendarDay,\n} from '../../utils.ts';\nimport type { PowerCalendarRangeAPI } from '../power-calendar-range.ts';\nimport {\n buildDay,\n firstDay,\n lastDay,\n localeStartOfWeekOrFallback,\n weekdaysNames,\n weeks,\n handleDayKeyDown,\n focusDate,\n handleClick,\n type TWeekdayFormat,\n type Week,\n} from '../../-private/days-utils.ts';\nimport type PowerCalendarService from '../../services/power-calendar.ts';\n\ninterface PowerCalendarMultipleDaysArgs\n extends Omit<PowerCalendarDaysArgs, 'selected'> {\n selected?: {\n start: Date | null;\n end: Date | null;\n };\n}\n\ninterface PowerCalendarRangeSignature\n extends Omit<PowerCalendarDaysSignature, 'Args'> {\n Args: PowerCalendarMultipleDaysArgs;\n}\n\nexport default class PowerCalendarRangeDaysComponent extends Component<PowerCalendarRangeSignature> {\n @service declare powerCalendar: PowerCalendarService;\n\n @tracked focusedId: string | null = null;\n\n get weekdayFormat(): TWeekdayFormat {\n return this.args.weekdayFormat || 'short'; // \"min\" | \"short\" | \"long\"\n }\n\n get showDaysAround(): boolean {\n return this.args.showDaysAround !== undefined\n ? this.args.showDaysAround\n : true;\n }\n\n get weekdaysMin(): string[] {\n return withLocale(this.args.calendar.locale, getWeekdaysMin) as string[];\n }\n\n get weekdaysShort(): string[] {\n return withLocale(this.args.calendar.locale, getWeekdaysShort) as string[];\n }\n\n get weekdays(): string[] {\n return withLocale(this.args.calendar.locale, getWeekdays) as string[];\n }\n\n get localeStartOfWeek(): number {\n return localeStartOfWeekOrFallback(\n this.args.startOfWeek,\n this.args.calendar.locale,\n );\n }\n\n get weekdaysNames(): string[] {\n return weekdaysNames(\n this.localeStartOfWeek,\n this.weekdayFormat,\n this.weekdays,\n this.weekdaysMin,\n this.weekdaysShort,\n );\n }\n\n get days(): PowerCalendarDay[] {\n const today = this.powerCalendar.getDate();\n const theLastDay = lastDay(this.localeStartOfWeek, this.currentCenter);\n let day = firstDay(this.currentCenter, this.localeStartOfWeek);\n const days: PowerCalendarDay[] = [];\n while (isBefore(day, theLastDay)) {\n days.push(\n this.buildDay(day, today, this.args.calendar as PowerCalendarRangeAPI),\n );\n day = add(day, 1, 'day');\n }\n return days;\n }\n\n get weeks(): Week[] {\n return weeks(this.days, this.showDaysAround);\n }\n\n get currentCenter(): Date {\n let center = this.args.center;\n\n if (!center) {\n center = this.args.selected?.start || this.args.calendar.center;\n }\n return normalizeDate(center) || this.args.calendar.center;\n }\n\n // Actions\n @action\n handleDayFocus(e: FocusEvent): void {\n scheduleOnce(\n 'actions',\n this,\n this._updateFocused,\n (e.target as HTMLElement).dataset['date'],\n );\n }\n\n @action\n handleDayBlur(): void {\n scheduleOnce('actions', this, this._updateFocused, null);\n }\n\n @action\n handleKeyDown(e: KeyboardEvent): void {\n const day = handleDayKeyDown(e, this.focusedId, this.days);\n if (!day) {\n return;\n }\n this.focusedId = day.id;\n scheduleOnce(\n 'afterRender',\n this,\n focusDate,\n this.args.calendar.uniqueId,\n this.focusedId ?? '',\n );\n }\n\n @action\n handleClick(e: MouseEvent) {\n handleClick(e, this.days, this.args.calendar);\n }\n\n // Methods\n buildDay(date: Date, today: Date, calendar: PowerCalendarRangeAPI) {\n const day = buildDay(\n date,\n today,\n calendar,\n this.focusedId,\n this.currentCenter,\n this.dayIsSelected.bind(this),\n this.args.minDate,\n this.args.maxDate,\n this.args.disabledDates,\n );\n\n const { start, end } = calendar.selected || { start: null, end: null };\n if (start && end) {\n day.isSelected = isBetween(date, start, end, 'day', '[]');\n day.isRangeStart = day.isSelected && isSame(date, start, 'day');\n day.isRangeEnd = day.isSelected && isSame(date, end, 'day');\n } else {\n day.isRangeEnd = false;\n if (!start) {\n day.isRangeStart = false;\n } else {\n day.isRangeStart = day.isSelected = isSame(date, start, 'day');\n if (!day.isDisabled) {\n const diffInMs = Math.abs(diff(day.date, start));\n const minRange = calendar.minRange;\n const maxRange = calendar.maxRange;\n day.isDisabled =\n (minRange && diffInMs < minRange) ||\n (maxRange !== null &&\n maxRange !== undefined &&\n diffInMs > maxRange);\n }\n }\n }\n return day;\n }\n\n dayIsSelected() {\n return false;\n }\n\n _updateFocused(id?: string | null) {\n this.focusedId = id ?? null;\n }\n}\n"],"names":["PowerCalendarRangeDaysComponent","Component","g","prototype","service","i","void 0","tracked","weekdayFormat","args","showDaysAround","undefined","weekdaysMin","withLocale","calendar","locale","getWeekdaysMin","weekdaysShort","getWeekdaysShort","weekdays","getWeekdays","localeStartOfWeek","localeStartOfWeekOrFallback","startOfWeek","weekdaysNames","days","today","powerCalendar","getDate","theLastDay","lastDay","currentCenter","day","firstDay","isBefore","push","buildDay","add","weeks","center","selected","start","normalizeDate","handleDayFocus","e","scheduleOnce","_updateFocused","target","dataset","n","action","handleDayBlur","handleKeyDown","handleDayKeyDown","focusedId","id","focusDate","uniqueId","handleClick","date","dayIsSelected","bind","minDate","maxDate","disabledDates","end","isSelected","isBetween","isRangeStart","isSame","isRangeEnd","isDisabled","diffInMs","Math","abs","diff","minRange","maxRange","setComponentTemplate","TEMPLATE"],"mappings":"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"}
1
+ {"version":3,"file":"days.js","sources":["../../../src/components/power-calendar-range/days.ts"],"sourcesContent":["import Component from '@glimmer/component';\nimport { tracked } from '@glimmer/tracking';\nimport { action } from '@ember/object';\nimport { scheduleOnce } from '@ember/runloop';\nimport { inject as service } from '@ember/service';\nimport type {\n PowerCalendarDaysArgs,\n PowerCalendarDaysSignature,\n} from '../power-calendar/days.ts';\nimport {\n isBetween,\n isSame,\n diff,\n isBefore,\n add,\n withLocale,\n getWeekdaysMin,\n getWeekdaysShort,\n getWeekdays,\n normalizeDate,\n type PowerCalendarDay,\n} from '../../utils.ts';\nimport type { PowerCalendarRangeAPI } from '../power-calendar-range.ts';\nimport {\n buildDay,\n firstDay,\n lastDay,\n localeStartOfWeekOrFallback,\n weekdaysNames,\n weeks,\n handleDayKeyDown,\n focusDate,\n handleClick,\n type TWeekdayFormat,\n type Week,\n} from '../../-private/days-utils.ts';\nimport type PowerCalendarService from '../../services/power-calendar.ts';\n\ninterface PowerCalendarMultipleDaysArgs\n extends Omit<PowerCalendarDaysArgs, 'selected'> {\n selected?: {\n start: Date | null;\n end: Date | null;\n };\n}\n\ninterface PowerCalendarRangeSignature\n extends Omit<PowerCalendarDaysSignature, 'Args'> {\n Args: PowerCalendarMultipleDaysArgs;\n}\n\nexport default class PowerCalendarRangeDaysComponent extends Component<PowerCalendarRangeSignature> {\n @service declare powerCalendar: PowerCalendarService;\n\n @tracked focusedId: string | null = null;\n\n get weekdayFormat(): TWeekdayFormat {\n return this.args.weekdayFormat || 'short'; // \"min\" | \"short\" | \"long\"\n }\n\n get showDaysAround(): boolean {\n return this.args.showDaysAround !== undefined\n ? this.args.showDaysAround\n : true;\n }\n\n get weekdaysMin(): string[] {\n return withLocale(this.args.calendar.locale, getWeekdaysMin) as string[];\n }\n\n get weekdaysShort(): string[] {\n return withLocale(this.args.calendar.locale, getWeekdaysShort) as string[];\n }\n\n get weekdays(): string[] {\n return withLocale(this.args.calendar.locale, getWeekdays) as string[];\n }\n\n get localeStartOfWeek(): number {\n return localeStartOfWeekOrFallback(\n this.args.startOfWeek,\n this.args.calendar.locale,\n );\n }\n\n get weekdaysNames(): string[] {\n return weekdaysNames(\n this.localeStartOfWeek,\n this.weekdayFormat,\n this.weekdays,\n this.weekdaysMin,\n this.weekdaysShort,\n );\n }\n\n get days(): PowerCalendarDay[] {\n const today = this.powerCalendar.getDate();\n const theLastDay = lastDay(this.localeStartOfWeek, this.currentCenter);\n let day = firstDay(this.currentCenter, this.localeStartOfWeek);\n const days: PowerCalendarDay[] = [];\n while (isBefore(day, theLastDay)) {\n days.push(\n this.buildDay(day, today, this.args.calendar as PowerCalendarRangeAPI),\n );\n day = add(day, 1, 'day');\n }\n return days;\n }\n\n get weeks(): Week[] {\n return weeks(this.days, this.showDaysAround);\n }\n\n get currentCenter(): Date {\n let center = this.args.center;\n\n if (!center) {\n center = this.args.selected?.start || this.args.calendar.center;\n }\n return normalizeDate(center) || this.args.calendar.center;\n }\n\n // Actions\n @action\n handleDayFocus(e: FocusEvent): void {\n scheduleOnce(\n 'actions',\n this,\n this._updateFocused,\n (e.target as HTMLElement).dataset['date'],\n );\n }\n\n @action\n handleDayBlur(): void {\n scheduleOnce('actions', this, this._updateFocused, null);\n }\n\n @action\n handleKeyDown(e: KeyboardEvent): void {\n const day = handleDayKeyDown(e, this.focusedId, this.days);\n if (!day) {\n return;\n }\n this.focusedId = day.id;\n scheduleOnce(\n 'afterRender',\n this,\n focusDate,\n this.args.calendar.uniqueId,\n this.focusedId ?? '',\n );\n }\n\n @action\n handleClick(e: MouseEvent) {\n handleClick(e, this.days, this.args.calendar);\n }\n\n // Methods\n buildDay(date: Date, today: Date, calendar: PowerCalendarRangeAPI) {\n const day = buildDay(\n date,\n today,\n calendar,\n this.focusedId,\n this.currentCenter,\n this.dayIsSelected.bind(this),\n this.args.minDate,\n this.args.maxDate,\n this.args.disabledDates,\n );\n\n const { start, end } = calendar.selected || { start: null, end: null };\n if (start && end) {\n day.isSelected = isBetween(date, start, end, 'day', '[]');\n day.isRangeStart = day.isSelected && isSame(date, start, 'day');\n day.isRangeEnd = day.isSelected && isSame(date, end, 'day');\n } else {\n day.isRangeEnd = false;\n if (!start) {\n day.isRangeStart = false;\n } else {\n day.isRangeStart = day.isSelected = isSame(date, start, 'day');\n if (!day.isDisabled) {\n const diffInMs = Math.abs(diff(day.date, start));\n const minRange = calendar.minRange;\n const maxRange = calendar.maxRange;\n day.isDisabled =\n (minRange && diffInMs < minRange) ||\n (maxRange !== null &&\n maxRange !== undefined &&\n diffInMs > maxRange);\n }\n }\n }\n return day;\n }\n\n dayIsSelected() {\n return false;\n }\n\n _updateFocused(id?: string | null) {\n this.focusedId = id ?? null;\n }\n}\n"],"names":["PowerCalendarRangeDaysComponent","Component","g","prototype","service","i","void 0","tracked","weekdayFormat","args","showDaysAround","undefined","weekdaysMin","withLocale","calendar","locale","getWeekdaysMin","weekdaysShort","getWeekdaysShort","weekdays","getWeekdays","localeStartOfWeek","localeStartOfWeekOrFallback","startOfWeek","weekdaysNames","days","today","powerCalendar","getDate","theLastDay","lastDay","currentCenter","day","firstDay","isBefore","push","buildDay","add","weeks","center","selected","start","normalizeDate","handleDayFocus","e","scheduleOnce","_updateFocused","target","dataset","n","action","handleDayBlur","handleKeyDown","handleDayKeyDown","focusedId","id","focusDate","uniqueId","handleClick","date","dayIsSelected","bind","minDate","maxDate","disabledDates","end","isSelected","isBetween","isRangeStart","isSame","isRangeEnd","isDisabled","diffInMs","Math","abs","diff","minRange","maxRange","setComponentTemplate","TEMPLATE"],"mappings":";;;;;;;;;;;;;AAmDe,MAAMA,+BAA+B,SAASC,SAAS,CAA8B;AAAA,EAAA;IAAAC,CAAA,CAAA,IAAA,CAAAC,SAAA,EAAA,eAAA,EAAA,CACjGC,MAAO,CAAA,CAAA;AAAA;AAAA,EAAA,cAAA,IAAAC,CAAA,CAAA,IAAA,EAAA,eAAA,CAAA,EAAAC,KAAA,CAAA;AAAA,EAAA;IAAAJ,CAAA,CAAA,IAAA,CAAAC,SAAA,EAAA,WAAA,EAAA,CAEPI,OAAO,CAAA,EAAA,YAAA;AAAA,MAAA,OAA4B,IAAI;AAAA,KAAA,CAAA;AAAA;AAAA,EAAA,UAAA,IAAAF,CAAA,CAAA,IAAA,EAAA,WAAA,CAAA,EAAAC,KAAA,CAAA;EAExC,IAAIE,aAAaA,GAAmB;IAClC,OAAO,IAAI,CAACC,IAAI,CAACD,aAAa,IAAI,OAAO,CAAC;AAC5C;EAEA,IAAIE,cAAcA,GAAY;AAC5B,IAAA,OAAO,IAAI,CAACD,IAAI,CAACC,cAAc,KAAKC,SAAS,GACzC,IAAI,CAACF,IAAI,CAACC,cAAc,GACxB,IAAI;AACV;EAEA,IAAIE,WAAWA,GAAa;IAC1B,OAAOC,UAAU,CAAC,IAAI,CAACJ,IAAI,CAACK,QAAQ,CAACC,MAAM,EAAEC,cAAc,CAAC;AAC9D;EAEA,IAAIC,aAAaA,GAAa;IAC5B,OAAOJ,UAAU,CAAC,IAAI,CAACJ,IAAI,CAACK,QAAQ,CAACC,MAAM,EAAEG,gBAAgB,CAAC;AAChE;EAEA,IAAIC,QAAQA,GAAa;IACvB,OAAON,UAAU,CAAC,IAAI,CAACJ,IAAI,CAACK,QAAQ,CAACC,MAAM,EAAEK,WAAW,CAAC;AAC3D;EAEA,IAAIC,iBAAiBA,GAAW;AAC9B,IAAA,OAAOC,2BAA2B,CAChC,IAAI,CAACb,IAAI,CAACc,WAAW,EACrB,IAAI,CAACd,IAAI,CAACK,QAAQ,CAACC,MACrB,CAAC;AACH;EAEA,IAAIS,aAAaA,GAAa;IAC5B,OAAOA,aAAa,CAClB,IAAI,CAACH,iBAAiB,EACtB,IAAI,CAACb,aAAa,EAClB,IAAI,CAACW,QAAQ,EACb,IAAI,CAACP,WAAW,EAChB,IAAI,CAACK,aACP,CAAC;AACH;EAEA,IAAIQ,IAAIA,GAAuB;IAC7B,MAAMC,KAAK,GAAG,IAAI,CAACC,aAAa,CAACC,OAAO,EAAE;IAC1C,MAAMC,UAAU,GAAGC,OAAO,CAAC,IAAI,CAACT,iBAAiB,EAAE,IAAI,CAACU,aAAa,CAAC;IACtE,IAAIC,GAAG,GAAGC,QAAQ,CAAC,IAAI,CAACF,aAAa,EAAE,IAAI,CAACV,iBAAiB,CAAC;IAC9D,MAAMI,IAAwB,GAAG,EAAE;AACnC,IAAA,OAAOS,QAAQ,CAACF,GAAG,EAAEH,UAAU,CAAC,EAAE;AAChCJ,MAAAA,IAAI,CAACU,IAAI,CACP,IAAI,CAACC,QAAQ,CAACJ,GAAG,EAAEN,KAAK,EAAE,IAAI,CAACjB,IAAI,CAACK,QAAiC,CACvE,CAAC;MACDkB,GAAG,GAAGK,GAAG,CAACL,GAAG,EAAE,CAAC,EAAE,KAAK,CAAC;AAC1B;AACA,IAAA,OAAOP,IAAI;AACb;EAEA,IAAIa,KAAKA,GAAW;IAClB,OAAOA,KAAK,CAAC,IAAI,CAACb,IAAI,EAAE,IAAI,CAACf,cAAc,CAAC;AAC9C;EAEA,IAAIqB,aAAaA,GAAS;AACxB,IAAA,IAAIQ,MAAM,GAAG,IAAI,CAAC9B,IAAI,CAAC8B,MAAM;IAE7B,IAAI,CAACA,MAAM,EAAE;AACXA,MAAAA,MAAM,GAAG,IAAI,CAAC9B,IAAI,CAAC+B,QAAQ,EAAEC,KAAK,IAAI,IAAI,CAAChC,IAAI,CAACK,QAAQ,CAACyB,MAAM;AACjE;IACA,OAAOG,aAAa,CAACH,MAAM,CAAC,IAAI,IAAI,CAAC9B,IAAI,CAACK,QAAQ,CAACyB,MAAM;AAC3D;;AAEA;EAEAI,cAAcA,CAACC,CAAa,EAAQ;AAClCC,IAAAA,YAAY,CACV,SAAS,EACT,IAAI,EACJ,IAAI,CAACC,cAAc,EAClBF,CAAC,CAACG,MAAM,CAAiBC,OAAO,CAAC,MAAM,CAC1C,CAAC;AACH;AAAC,EAAA;IAAAC,CAAA,CAAA,IAAA,CAAA9C,SAAA,EAAA,gBAAA,EAAA,CARA+C,MAAM,CAAA,CAAA;AAAA;AAWPC,EAAAA,aAAaA,GAAS;IACpBN,YAAY,CAAC,SAAS,EAAE,IAAI,EAAE,IAAI,CAACC,cAAc,EAAE,IAAI,CAAC;AAC1D;AAAC,EAAA;IAAAG,CAAA,CAAA,IAAA,CAAA9C,SAAA,EAAA,eAAA,EAAA,CAHA+C,MAAM,CAAA,CAAA;AAAA;EAMPE,aAAaA,CAACR,CAAgB,EAAQ;AACpC,IAAA,MAAMZ,GAAG,GAAGqB,gBAAgB,CAACT,CAAC,EAAE,IAAI,CAACU,SAAS,EAAE,IAAI,CAAC7B,IAAI,CAAC;IAC1D,IAAI,CAACO,GAAG,EAAE;AACR,MAAA;AACF;AACA,IAAA,IAAI,CAACsB,SAAS,GAAGtB,GAAG,CAACuB,EAAE;IACvBV,YAAY,CACV,aAAa,EACb,IAAI,EACJW,SAAS,EACT,IAAI,CAAC/C,IAAI,CAACK,QAAQ,CAAC2C,QAAQ,EAC3B,IAAI,CAACH,SAAS,IAAI,EACpB,CAAC;AACH;AAAC,EAAA;IAAAL,CAAA,CAAA,IAAA,CAAA9C,SAAA,EAAA,eAAA,EAAA,CAdA+C,MAAM,CAAA,CAAA;AAAA;EAiBPQ,WAAWA,CAACd,CAAa,EAAE;AACzBc,IAAAA,WAAW,CAACd,CAAC,EAAE,IAAI,CAACnB,IAAI,EAAE,IAAI,CAAChB,IAAI,CAACK,QAAQ,CAAC;AAC/C;;AAEA;AAAA,EAAA;IAAAmC,CAAA,CAAA,IAAA,CAAA9C,SAAA,EAAA,aAAA,EAAA,CALC+C,MAAM,CAAA,CAAA;AAAA;AAMPd,EAAAA,QAAQA,CAACuB,IAAU,EAAEjC,KAAW,EAAEZ,QAA+B,EAAE;IACjE,MAAMkB,GAAG,GAAGI,QAAQ,CAClBuB,IAAI,EACJjC,KAAK,EACLZ,QAAQ,EACR,IAAI,CAACwC,SAAS,EACd,IAAI,CAACvB,aAAa,EAClB,IAAI,CAAC6B,aAAa,CAACC,IAAI,CAAC,IAAI,CAAC,EAC7B,IAAI,CAACpD,IAAI,CAACqD,OAAO,EACjB,IAAI,CAACrD,IAAI,CAACsD,OAAO,EACjB,IAAI,CAACtD,IAAI,CAACuD,aACZ,CAAC;IAED,MAAM;MAAEvB,KAAK;AAAEwB,MAAAA;AAAI,KAAC,GAAGnD,QAAQ,CAAC0B,QAAQ,IAAI;AAAEC,MAAAA,KAAK,EAAE,IAAI;AAAEwB,MAAAA,GAAG,EAAE;KAAM;IACtE,IAAIxB,KAAK,IAAIwB,GAAG,EAAE;AAChBjC,MAAAA,GAAG,CAACkC,UAAU,GAAGC,SAAS,CAACR,IAAI,EAAElB,KAAK,EAAEwB,GAAG,EAAE,KAAK,EAAE,IAAI,CAAC;AACzDjC,MAAAA,GAAG,CAACoC,YAAY,GAAGpC,GAAG,CAACkC,UAAU,IAAIG,MAAM,CAACV,IAAI,EAAElB,KAAK,EAAE,KAAK,CAAC;AAC/DT,MAAAA,GAAG,CAACsC,UAAU,GAAGtC,GAAG,CAACkC,UAAU,IAAIG,MAAM,CAACV,IAAI,EAAEM,GAAG,EAAE,KAAK,CAAC;AAC7D,KAAC,MAAM;MACLjC,GAAG,CAACsC,UAAU,GAAG,KAAK;MACtB,IAAI,CAAC7B,KAAK,EAAE;QACVT,GAAG,CAACoC,YAAY,GAAG,KAAK;AAC1B,OAAC,MAAM;AACLpC,QAAAA,GAAG,CAACoC,YAAY,GAAGpC,GAAG,CAACkC,UAAU,GAAGG,MAAM,CAACV,IAAI,EAAElB,KAAK,EAAE,KAAK,CAAC;AAC9D,QAAA,IAAI,CAACT,GAAG,CAACuC,UAAU,EAAE;AACnB,UAAA,MAAMC,QAAQ,GAAGC,IAAI,CAACC,GAAG,CAACC,IAAI,CAAC3C,GAAG,CAAC2B,IAAI,EAAElB,KAAK,CAAC,CAAC;AAChD,UAAA,MAAMmC,QAAQ,GAAG9D,QAAQ,CAAC8D,QAAQ;AAClC,UAAA,MAAMC,QAAQ,GAAG/D,QAAQ,CAAC+D,QAAQ;AAClC7C,UAAAA,GAAG,CAACuC,UAAU,GACXK,QAAQ,IAAIJ,QAAQ,GAAGI,QAAQ,IAC/BC,QAAQ,KAAK,IAAI,IAChBA,QAAQ,KAAKlE,SAAS,IACtB6D,QAAQ,GAAGK,QAAS;AAC1B;AACF;AACF;AACA,IAAA,OAAO7C,GAAG;AACZ;AAEA4B,EAAAA,aAAaA,GAAG;AACd,IAAA,OAAO,KAAK;AACd;EAEAd,cAAcA,CAACS,EAAkB,EAAE;AACjC,IAAA,IAAI,CAACD,SAAS,GAAGC,EAAE,IAAI,IAAI;AAC7B;AACF;AAACuB,oBAAA,CAAAC,QAAA,EA3JoB/E,+BAA+B,CAAA;;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"power-calendar-range.js","sources":["../../src/components/power-calendar-range.hbs","../../src/components/power-calendar-range.ts"],"sourcesContent":["import { precompileTemplate } from \"@ember/template-compilation\";\nexport default precompileTemplate(\"{{#let (assign this.publicAPI (hash\\n Nav=(component (ensure-safe-component (or @navComponent this.navComponent)) calendar=(readonly this.publicAPI))\\n Days=(component (ensure-safe-component (or @daysComponent this.daysComponent)) calendar=(readonly this.publicAPI))\\n)) as |calendar|}}\\n {{#let (element this.tagWithDefault) as |Tag|}}\\n <Tag class=\\\"ember-power-calendar\\\" ...attributes id={{calendar.uniqueId}}>\\n {{#if (has-block)}}\\n {{yield calendar}}\\n {{else}}\\n <calendar.Nav/>\\n <calendar.Days/>\\n {{/if}}\\n </Tag>\\n {{/let}}\\n{{/let}}\\n\")","import Component from '@glimmer/component';\nimport { tracked } from '@glimmer/tracking';\nimport { action } from '@ember/object';\nimport { inject as service } from '@ember/service';\nimport { guidFor } from '@ember/object/internals';\nimport { assert } from '@ember/debug';\nimport { task } from 'ember-concurrency';\nimport PowerCalendarRangeDaysComponent from './power-calendar-range/days.ts';\nimport PowerCalendarNavComponent from './power-calendar/nav.ts';\nimport { publicActionsObject } from '../-private/utils.ts';\nimport {\n normalizeDate,\n normalizeRangeActionValue,\n diff,\n isAfter,\n isBefore,\n normalizeDuration,\n normalizeCalendarValue,\n type NormalizeRangeActionValue,\n type PowerCalendarDay,\n type SelectedPowerCalendarRange,\n} from '../utils.ts';\nimport type {\n PowerCalendarAPI,\n PowerCalendarSignature,\n PowerCalendarArgs,\n TCalendarType,\n SelectedDays,\n PowerCalendarActions,\n CalendarDay,\n CalendarAPI,\n} from './power-calendar.ts';\nimport type Owner from '@ember/owner';\nimport type { ComponentLike } from '@glint/template';\nimport type PowerCalendarService from '../services/power-calendar.ts';\n\nexport interface PowerCalendarRangeDay extends Omit<PowerCalendarDay, 'date'> {\n date: SelectedPowerCalendarRange;\n}\n\nexport const DAY_IN_MS = 86400000;\n\nexport type TPowerCalendarRangeOnSelect = (\n day: NormalizeRangeActionValue,\n calendar: PowerCalendarRangeAPI,\n event: MouseEvent,\n) => void;\n\ninterface PowerCalendarRangeArgs\n extends Omit<PowerCalendarArgs, 'selected' | 'onSelect'> {\n selected?: SelectedPowerCalendarRange;\n minRange?: number;\n maxRange?: number;\n proximitySelection?: boolean;\n onSelect?: TPowerCalendarRangeOnSelect;\n}\n\nexport interface PowerCalendarRangeDefaultBlock extends PowerCalendarRangeAPI {\n NavComponent: ComponentLike<any>;\n DaysComponent: ComponentLike<any>;\n}\n\ninterface PowerCalendarRangeSignature\n extends Omit<PowerCalendarSignature, 'Args' | 'Blocks'> {\n Args: PowerCalendarRangeArgs;\n Blocks: {\n default: [PowerCalendarRangeDefaultBlock];\n };\n}\n\nexport interface PowerCalendarRangeAPI\n extends Omit<PowerCalendarAPI, 'selected'> {\n selected?: SelectedPowerCalendarRange;\n minRange?: number | null;\n maxRange?: number | null;\n}\n\nexport default class PowerCalendarRangeComponent extends Component<PowerCalendarRangeSignature> {\n @service declare powerCalendar: PowerCalendarService;\n\n @tracked center = null;\n @tracked _calendarType: TCalendarType = 'range';\n @tracked _selected?: SelectedDays;\n\n navComponent: ComponentLike<any> = PowerCalendarNavComponent;\n daysComponent: ComponentLike<any> = PowerCalendarRangeDaysComponent;\n\n // Lifecycle hooks\n constructor(owner: Owner, args: PowerCalendarRangeArgs) {\n super(owner, args);\n this.registerCalendar();\n if (this.args.onInit) {\n this.args.onInit(this.publicAPI);\n }\n }\n\n willDestroy(): void {\n super.willDestroy();\n this.unregisterCalendar();\n }\n\n get publicActions(): PowerCalendarActions {\n return publicActionsObject(\n this.args.onSelect,\n this.select,\n this.args.onCenterChange,\n this.changeCenterTask,\n this.currentCenter,\n );\n }\n\n get selected(): SelectedPowerCalendarRange {\n if (this._selected) {\n return this._selected as SelectedPowerCalendarRange;\n }\n\n if (this.args.selected) {\n return {\n start: normalizeDate(this.args.selected.start),\n end: normalizeDate(this.args.selected.end),\n };\n }\n\n return { start: undefined, end: undefined };\n }\n\n set selected(v) {\n if (v === undefined || v === null) {\n v = {};\n }\n this._selected = {\n start: normalizeDate(v.start),\n end: normalizeDate(v.end),\n };\n }\n\n get currentCenter(): Date {\n let center = this.args.center;\n if (!center) {\n center = this.selected.start || this.powerCalendar.getDate();\n }\n return normalizeDate(center) || this.powerCalendar.getDate();\n }\n\n get publicAPI(): PowerCalendarRangeAPI {\n return {\n uniqueId: guidFor(this),\n type: this._calendarType,\n selected: this.selected,\n loading: this.changeCenterTask.isRunning,\n center: this.currentCenter,\n locale: this.args.locale || this.powerCalendar.locale,\n actions: this.publicActions,\n minRange: this.minRange,\n maxRange: this.maxRange,\n };\n }\n\n get tagWithDefault(): string {\n if (this.args.tag === undefined || this.args.tag === null) {\n return 'div';\n }\n return this.args.tag;\n }\n\n get proximitySelection(): boolean {\n return this.args.proximitySelection !== undefined\n ? this.args.proximitySelection\n : false;\n }\n\n get minRange(): number | null {\n if (this.args.minRange !== undefined) {\n return this._formatRange(this.args.minRange) as number;\n }\n\n return DAY_IN_MS;\n }\n\n get maxRange(): number | null {\n if (this.args.maxRange !== undefined) {\n return this._formatRange(this.args.maxRange) as number;\n }\n\n return null;\n }\n\n // Tasks\n changeCenterTask = task(\n async (newCenter: Date, calendar: PowerCalendarRangeAPI, e: MouseEvent) => {\n assert(\n \"You attempted to move the center of a calendar that doesn't receive an `@onCenterChange` action.\",\n typeof this.args.onCenterChange === 'function',\n );\n const value = normalizeCalendarValue({ date: newCenter });\n await this.args.onCenterChange(value, calendar, e);\n },\n );\n\n // Actions\n @action\n select(day: CalendarDay, calendar: CalendarAPI, e: MouseEvent) {\n const { date } = day as NormalizeRangeActionValue;\n assert(\n 'date must be either a Date, or a Range',\n date &&\n (ownProp(date, 'start') ||\n ownProp(date, 'end') ||\n date instanceof Date),\n );\n\n let range: NormalizeRangeActionValue;\n\n if (ownProp(date, 'start') && ownProp(date, 'end')) {\n range = { date };\n } else {\n range = this._buildRange({ date } as { date: Date });\n }\n\n const { start, end } = range.date;\n if (start && end) {\n const { minRange, maxRange } = this.publicAPI;\n const diffInMs = Math.abs(diff(end, start));\n if (\n diffInMs < (minRange ?? DAY_IN_MS) ||\n (maxRange && diffInMs > maxRange)\n ) {\n return;\n }\n }\n\n if (this.args.onSelect) {\n this.args.onSelect(range, calendar as PowerCalendarRangeAPI, e);\n }\n }\n\n _formatRange(v: number | undefined) {\n if (typeof v === 'number') {\n return v * DAY_IN_MS;\n }\n\n return normalizeDuration(v === undefined ? DAY_IN_MS : v);\n }\n\n // Methods\n _buildRange(day: { date: Date }): NormalizeRangeActionValue {\n const selected = this.selected || { start: null, end: null };\n const { start, end } = selected;\n\n if (this.proximitySelection) {\n return this._buildRangeByProximity(day, start, end);\n }\n\n return this._buildDefaultRange(day, start, end);\n }\n\n _buildRangeByProximity(\n day: { date: Date },\n start?: Date | null,\n end?: Date | null,\n ): NormalizeRangeActionValue {\n if (start && end) {\n const changeStart =\n Math.abs(diff(day.date, end)) > Math.abs(diff(day.date, start));\n\n return normalizeRangeActionValue({\n date: {\n start: changeStart ? day.date : start,\n end: changeStart ? end : day.date,\n },\n });\n }\n\n if (start && isBefore(day.date, start)) {\n return normalizeRangeActionValue({\n date: { start: day.date, end: null },\n });\n }\n\n return this._buildDefaultRange(day, start, end);\n }\n\n _buildDefaultRange(\n day: { date: Date },\n start?: Date | null,\n end?: Date | null,\n ): NormalizeRangeActionValue {\n if (start && !end) {\n if (isAfter(start, day.date)) {\n return normalizeRangeActionValue({\n date: { start: day.date, end: start },\n });\n }\n return normalizeRangeActionValue({\n date: { start: start, end: day.date },\n });\n }\n\n return normalizeRangeActionValue({ date: { start: day.date, end: null } });\n }\n\n // Methods\n registerCalendar() {\n if (window) {\n // @ts-expect-error Property '__powerCalendars'\n window.__powerCalendars = window.__powerCalendars || {}; // TODO: weakmap??\n // @ts-expect-error Property '__powerCalendars'\n window.__powerCalendars[this.publicAPI.uniqueId] = this;\n }\n }\n\n unregisterCalendar() {\n // @ts-expect-error Property '__powerCalendars'\n if (window && window.__powerCalendars?.[guidFor(this)]) {\n // @ts-expect-error Property '__powerCalendars'\n delete window.__powerCalendars[guidFor(this)];\n }\n }\n}\n\nfunction ownProp<T = { [key: string | number]: any }>(obj: T, prop: keyof T) {\n return Object.prototype.hasOwnProperty.call(obj, prop);\n}\n"],"names":["DAY_IN_MS","PowerCalendarRangeComponent","Component","g","prototype","service","i","void 0","tracked","navComponent","PowerCalendarNavComponent","daysComponent","PowerCalendarRangeDaysComponent","constructor","owner","args","registerCalendar","onInit","publicAPI","willDestroy","unregisterCalendar","publicActions","publicActionsObject","onSelect","select","onCenterChange","changeCenterTask","currentCenter","selected","_selected","start","normalizeDate","end","undefined","v","center","powerCalendar","getDate","uniqueId","guidFor","type","_calendarType","loading","isRunning","locale","actions","minRange","maxRange","tagWithDefault","tag","proximitySelection","_formatRange","_buildTask","context","generator","newCenter","calendar","e","assert","value","normalizeCalendarValue","date","day","ownProp","Date","range","_buildRange","diffInMs","Math","abs","diff","n","action","normalizeDuration","_buildRangeByProximity","_buildDefaultRange","changeStart","normalizeRangeActionValue","isBefore","isAfter","window","__powerCalendars","obj","prop","Object","hasOwnProperty","call","setComponentTemplate","TEMPLATE"],"mappings":"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"}
1
+ {"version":3,"file":"power-calendar-range.js","sources":["../../src/components/power-calendar-range.ts"],"sourcesContent":["import Component from '@glimmer/component';\nimport { tracked } from '@glimmer/tracking';\nimport { action } from '@ember/object';\nimport { inject as service } from '@ember/service';\nimport { guidFor } from '@ember/object/internals';\nimport { assert } from '@ember/debug';\nimport { task } from 'ember-concurrency';\nimport PowerCalendarRangeDaysComponent from './power-calendar-range/days.ts';\nimport PowerCalendarNavComponent from './power-calendar/nav.ts';\nimport { publicActionsObject } from '../-private/utils.ts';\nimport {\n normalizeDate,\n normalizeRangeActionValue,\n diff,\n isAfter,\n isBefore,\n normalizeDuration,\n normalizeCalendarValue,\n type NormalizeRangeActionValue,\n type PowerCalendarDay,\n type SelectedPowerCalendarRange,\n} from '../utils.ts';\nimport type {\n PowerCalendarAPI,\n PowerCalendarSignature,\n PowerCalendarArgs,\n TCalendarType,\n SelectedDays,\n PowerCalendarActions,\n CalendarDay,\n CalendarAPI,\n} from './power-calendar.ts';\nimport type Owner from '@ember/owner';\nimport type { ComponentLike } from '@glint/template';\nimport type PowerCalendarService from '../services/power-calendar.ts';\n\nexport interface PowerCalendarRangeDay extends Omit<PowerCalendarDay, 'date'> {\n date: SelectedPowerCalendarRange;\n}\n\nexport const DAY_IN_MS = 86400000;\n\nexport type TPowerCalendarRangeOnSelect = (\n day: NormalizeRangeActionValue,\n calendar: PowerCalendarRangeAPI,\n event: MouseEvent,\n) => void;\n\ninterface PowerCalendarRangeArgs\n extends Omit<PowerCalendarArgs, 'selected' | 'onSelect'> {\n selected?: SelectedPowerCalendarRange;\n minRange?: number;\n maxRange?: number;\n proximitySelection?: boolean;\n onSelect?: TPowerCalendarRangeOnSelect;\n}\n\nexport interface PowerCalendarRangeDefaultBlock extends PowerCalendarRangeAPI {\n NavComponent: ComponentLike<any>;\n DaysComponent: ComponentLike<any>;\n}\n\ninterface PowerCalendarRangeSignature\n extends Omit<PowerCalendarSignature, 'Args' | 'Blocks'> {\n Args: PowerCalendarRangeArgs;\n Blocks: {\n default: [PowerCalendarRangeDefaultBlock];\n };\n}\n\nexport interface PowerCalendarRangeAPI\n extends Omit<PowerCalendarAPI, 'selected'> {\n selected?: SelectedPowerCalendarRange;\n minRange?: number | null;\n maxRange?: number | null;\n}\n\nexport default class PowerCalendarRangeComponent extends Component<PowerCalendarRangeSignature> {\n @service declare powerCalendar: PowerCalendarService;\n\n @tracked center = null;\n @tracked _calendarType: TCalendarType = 'range';\n @tracked _selected?: SelectedDays;\n\n navComponent: ComponentLike<any> = PowerCalendarNavComponent;\n daysComponent: ComponentLike<any> = PowerCalendarRangeDaysComponent;\n\n // Lifecycle hooks\n constructor(owner: Owner, args: PowerCalendarRangeArgs) {\n super(owner, args);\n this.registerCalendar();\n if (this.args.onInit) {\n this.args.onInit(this.publicAPI);\n }\n }\n\n willDestroy(): void {\n super.willDestroy();\n this.unregisterCalendar();\n }\n\n get publicActions(): PowerCalendarActions {\n return publicActionsObject(\n this.args.onSelect,\n this.select,\n this.args.onCenterChange,\n this.changeCenterTask,\n this.currentCenter,\n );\n }\n\n get selected(): SelectedPowerCalendarRange {\n if (this._selected) {\n return this._selected as SelectedPowerCalendarRange;\n }\n\n if (this.args.selected) {\n return {\n start: normalizeDate(this.args.selected.start),\n end: normalizeDate(this.args.selected.end),\n };\n }\n\n return { start: undefined, end: undefined };\n }\n\n set selected(v) {\n if (v === undefined || v === null) {\n v = {};\n }\n this._selected = {\n start: normalizeDate(v.start),\n end: normalizeDate(v.end),\n };\n }\n\n get currentCenter(): Date {\n let center = this.args.center;\n if (!center) {\n center = this.selected.start || this.powerCalendar.getDate();\n }\n return normalizeDate(center) || this.powerCalendar.getDate();\n }\n\n get publicAPI(): PowerCalendarRangeAPI {\n return {\n uniqueId: guidFor(this),\n type: this._calendarType,\n selected: this.selected,\n loading: this.changeCenterTask.isRunning,\n center: this.currentCenter,\n locale: this.args.locale || this.powerCalendar.locale,\n actions: this.publicActions,\n minRange: this.minRange,\n maxRange: this.maxRange,\n };\n }\n\n get tagWithDefault(): string {\n if (this.args.tag === undefined || this.args.tag === null) {\n return 'div';\n }\n return this.args.tag;\n }\n\n get proximitySelection(): boolean {\n return this.args.proximitySelection !== undefined\n ? this.args.proximitySelection\n : false;\n }\n\n get minRange(): number | null {\n if (this.args.minRange !== undefined) {\n return this._formatRange(this.args.minRange) as number;\n }\n\n return DAY_IN_MS;\n }\n\n get maxRange(): number | null {\n if (this.args.maxRange !== undefined) {\n return this._formatRange(this.args.maxRange) as number;\n }\n\n return null;\n }\n\n // Tasks\n changeCenterTask = task(\n async (newCenter: Date, calendar: PowerCalendarRangeAPI, e: MouseEvent) => {\n assert(\n \"You attempted to move the center of a calendar that doesn't receive an `@onCenterChange` action.\",\n typeof this.args.onCenterChange === 'function',\n );\n const value = normalizeCalendarValue({ date: newCenter });\n await this.args.onCenterChange(value, calendar, e);\n },\n );\n\n // Actions\n @action\n select(day: CalendarDay, calendar: CalendarAPI, e: MouseEvent) {\n const { date } = day as NormalizeRangeActionValue;\n assert(\n 'date must be either a Date, or a Range',\n date &&\n (ownProp(date, 'start') ||\n ownProp(date, 'end') ||\n date instanceof Date),\n );\n\n let range: NormalizeRangeActionValue;\n\n if (ownProp(date, 'start') && ownProp(date, 'end')) {\n range = { date };\n } else {\n range = this._buildRange({ date } as { date: Date });\n }\n\n const { start, end } = range.date;\n if (start && end) {\n const { minRange, maxRange } = this.publicAPI;\n const diffInMs = Math.abs(diff(end, start));\n if (\n diffInMs < (minRange ?? DAY_IN_MS) ||\n (maxRange && diffInMs > maxRange)\n ) {\n return;\n }\n }\n\n if (this.args.onSelect) {\n this.args.onSelect(range, calendar as PowerCalendarRangeAPI, e);\n }\n }\n\n _formatRange(v: number | undefined) {\n if (typeof v === 'number') {\n return v * DAY_IN_MS;\n }\n\n return normalizeDuration(v === undefined ? DAY_IN_MS : v);\n }\n\n // Methods\n _buildRange(day: { date: Date }): NormalizeRangeActionValue {\n const selected = this.selected || { start: null, end: null };\n const { start, end } = selected;\n\n if (this.proximitySelection) {\n return this._buildRangeByProximity(day, start, end);\n }\n\n return this._buildDefaultRange(day, start, end);\n }\n\n _buildRangeByProximity(\n day: { date: Date },\n start?: Date | null,\n end?: Date | null,\n ): NormalizeRangeActionValue {\n if (start && end) {\n const changeStart =\n Math.abs(diff(day.date, end)) > Math.abs(diff(day.date, start));\n\n return normalizeRangeActionValue({\n date: {\n start: changeStart ? day.date : start,\n end: changeStart ? end : day.date,\n },\n });\n }\n\n if (start && isBefore(day.date, start)) {\n return normalizeRangeActionValue({\n date: { start: day.date, end: null },\n });\n }\n\n return this._buildDefaultRange(day, start, end);\n }\n\n _buildDefaultRange(\n day: { date: Date },\n start?: Date | null,\n end?: Date | null,\n ): NormalizeRangeActionValue {\n if (start && !end) {\n if (isAfter(start, day.date)) {\n return normalizeRangeActionValue({\n date: { start: day.date, end: start },\n });\n }\n return normalizeRangeActionValue({\n date: { start: start, end: day.date },\n });\n }\n\n return normalizeRangeActionValue({ date: { start: day.date, end: null } });\n }\n\n // Methods\n registerCalendar() {\n if (window) {\n // @ts-expect-error Property '__powerCalendars'\n window.__powerCalendars = window.__powerCalendars || {}; // TODO: weakmap??\n // @ts-expect-error Property '__powerCalendars'\n window.__powerCalendars[this.publicAPI.uniqueId] = this;\n }\n }\n\n unregisterCalendar() {\n // @ts-expect-error Property '__powerCalendars'\n if (window && window.__powerCalendars?.[guidFor(this)]) {\n // @ts-expect-error Property '__powerCalendars'\n delete window.__powerCalendars[guidFor(this)];\n }\n }\n}\n\nfunction ownProp<T = { [key: string | number]: any }>(obj: T, prop: keyof T) {\n return Object.prototype.hasOwnProperty.call(obj, prop);\n}\n"],"names":["DAY_IN_MS","PowerCalendarRangeComponent","Component","g","prototype","service","i","void 0","tracked","navComponent","PowerCalendarNavComponent","daysComponent","PowerCalendarRangeDaysComponent","constructor","owner","args","registerCalendar","onInit","publicAPI","willDestroy","unregisterCalendar","publicActions","publicActionsObject","onSelect","select","onCenterChange","changeCenterTask","currentCenter","selected","_selected","start","normalizeDate","end","undefined","v","center","powerCalendar","getDate","uniqueId","guidFor","type","_calendarType","loading","isRunning","locale","actions","minRange","maxRange","tagWithDefault","tag","proximitySelection","_formatRange","_buildTask","context","generator","newCenter","calendar","e","assert","value","normalizeCalendarValue","date","day","ownProp","Date","range","_buildRange","diffInMs","Math","abs","diff","n","action","normalizeDuration","_buildRangeByProximity","_buildDefaultRange","changeStart","normalizeRangeActionValue","isBefore","isAfter","window","__powerCalendars","obj","prop","Object","hasOwnProperty","call","setComponentTemplate","TEMPLATE"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"power-calendar.js","sources":["../../src/components/power-calendar.hbs","../../src/components/power-calendar.ts"],"sourcesContent":["import { precompileTemplate } from \"@ember/template-compilation\";\nexport default precompileTemplate(\"{{#let (assign this.publicAPI (hash\\n Nav=(component (ensure-safe-component (or @navComponent this.navComponent)) calendar=(readonly this.publicAPI))\\n Days=(component (ensure-safe-component (or @daysComponent this.daysComponent)) calendar=(readonly this.publicAPI))\\n)) as |calendar|}}\\n {{#let (element this.tagWithDefault) as |Tag|}}\\n <Tag class=\\\"ember-power-calendar\\\" ...attributes id={{calendar.uniqueId}}>\\n {{#if (has-block)}}\\n {{yield calendar}}\\n {{else}}\\n <calendar.Nav/>\\n <calendar.Days/>\\n {{/if}}\\n </Tag>\\n {{/let}}\\n{{/let}}\\n\")","import Component from '@glimmer/component';\nimport { tracked } from '@glimmer/tracking';\nimport { action } from '@ember/object';\nimport { guidFor } from '@ember/object/internals';\nimport { inject as service } from '@ember/service';\nimport { task } from 'ember-concurrency';\nimport { assert } from '@ember/debug';\nimport type { ComponentLike } from '@glint/template';\nimport {\n normalizeDate,\n normalizeCalendarValue,\n type NormalizeCalendarValue,\n type PowerCalendarDay,\n type SelectedPowerCalendarRange,\n} from '../utils.ts';\nimport PowerCalendarNavComponent from './power-calendar/nav.ts';\nimport PowerCalendarDaysComponent from './power-calendar/days.ts';\nimport type Owner from '@ember/owner';\nimport type PowerCalendarService from '../services/power-calendar.ts';\nimport type {\n PowerCalendarRangeAPI,\n PowerCalendarRangeDay,\n} from './power-calendar-range.ts';\nimport type { PowerCalendarMultipleAPI } from './power-calendar-multiple.ts';\nimport { publicActionsObject } from '../-private/utils.ts';\n\nexport type TCalendarType = 'multiple' | 'range' | 'single';\nexport type TPowerCalendarMoveCenterUnit = 'year' | 'month';\nexport type SelectedDays =\n | SelectedPowerCalendarRange\n | Date\n | Date[]\n | undefined;\nexport type CalendarAPI =\n | PowerCalendarAPI\n | PowerCalendarMultipleAPI\n | PowerCalendarRangeAPI;\n\nexport interface PowerCalendarAPI {\n uniqueId: string;\n calendarUniqueId?: string;\n selected?: SelectedDays;\n loading: boolean;\n center: Date;\n locale: string;\n type: TCalendarType;\n actions: PowerCalendarActions;\n}\n\nexport interface PowerCalendarActions {\n changeCenter?: (\n newCenter: Date,\n calendar: CalendarAPI,\n event: MouseEvent,\n ) => void;\n moveCenter?: (\n step: number,\n unit: TPowerCalendarMoveCenterUnit,\n calendar: PowerCalendarAPI,\n event: MouseEvent,\n ) => void;\n select?: (day: CalendarDay, calendar: CalendarAPI, event: MouseEvent) => void;\n}\n\nexport type TPowerCalendarOnSelect = (\n day: CalendarDay,\n calendar: CalendarAPI,\n event: MouseEvent,\n) => void;\n\nexport interface PowerCalendarArgs {\n daysComponent?: string | ComponentLike<any>;\n locale: string;\n navComponent?: string | ComponentLike<any>;\n onCenterChange?: (\n newCenter: NormalizeCalendarValue,\n calendar: PowerCalendarAPI,\n event: MouseEvent,\n ) => void;\n onInit?: (calendar: PowerCalendarAPI) => void;\n onSelect?: TPowerCalendarOnSelect;\n selected?: SelectedDays;\n center?: Date;\n tag?: string;\n}\n\nexport interface PowerCalendarDefaultBlock extends PowerCalendarAPI {\n NavComponent: ComponentLike<any>;\n DaysComponent: ComponentLike<any>;\n}\n\nexport type CalendarDay =\n | PowerCalendarDay\n | PowerCalendarRangeDay\n | PowerCalendarDay[];\n\nexport interface PowerCalendarSignature {\n Element: HTMLElement;\n Args: PowerCalendarArgs;\n Blocks: {\n default: [PowerCalendarDefaultBlock];\n };\n}\n\nexport default class PowerCalendarComponent extends Component<PowerCalendarSignature> {\n @service declare powerCalendar: PowerCalendarService;\n\n @tracked center = null;\n @tracked _calendarType: TCalendarType = 'single';\n @tracked _selected?: SelectedDays;\n\n navComponent: ComponentLike<any> = PowerCalendarNavComponent;\n daysComponent: ComponentLike<any> = PowerCalendarDaysComponent;\n\n // Lifecycle hooks\n constructor(owner: Owner, args: PowerCalendarArgs) {\n super(owner, args);\n this.registerCalendar();\n if (this.args.onInit) {\n this.args.onInit(this.publicAPI);\n }\n }\n\n willDestroy(): void {\n super.willDestroy();\n this.unregisterCalendar();\n }\n\n get publicActions(): PowerCalendarActions {\n return publicActionsObject(\n this.args.onSelect,\n this.select,\n this.args.onCenterChange,\n this.changeCenterTask,\n this.currentCenter,\n );\n }\n\n get selected(): SelectedDays {\n if (this._selected) {\n return this._selected;\n }\n\n return normalizeDate(this.args.selected as Date);\n }\n\n set selected(v: SelectedDays) {\n this._selected = normalizeDate(v as Date | undefined);\n }\n\n get currentCenter(): Date {\n let center = this.args.center;\n if (!center) {\n center = (this.selected as Date) || this.powerCalendar.getDate();\n }\n return normalizeDate(center) || this.powerCalendar.getDate();\n }\n\n get publicAPI(): PowerCalendarAPI {\n return this._publicAPI;\n }\n\n get _publicAPI(): PowerCalendarAPI {\n return {\n uniqueId: guidFor(this),\n type: this._calendarType,\n selected: this.selected,\n loading: this.changeCenterTask.isRunning,\n center: this.currentCenter,\n locale: this.args.locale || this.powerCalendar.locale,\n actions: this.publicActions,\n };\n }\n\n get tagWithDefault(): string {\n if (this.args.tag === undefined || this.args.tag === null) {\n return 'div';\n }\n return this.args.tag;\n }\n\n // Tasks\n changeCenterTask = task(\n async (newCenter: Date, calendar: PowerCalendarAPI, e: MouseEvent) => {\n assert(\n \"You attempted to move the center of a calendar that doesn't receive an `@onCenterChange` action.\",\n typeof this.args.onCenterChange === 'function',\n );\n const value = normalizeCalendarValue({ date: newCenter });\n await this.args.onCenterChange(value, calendar, e);\n },\n );\n\n // Actions\n @action\n select(day: CalendarDay, calendar: PowerCalendarAPI, e: MouseEvent) {\n if (this.args.onSelect) {\n this.args.onSelect(day, calendar, e);\n }\n }\n\n // Methods\n registerCalendar() {\n if (window) {\n // @ts-expect-error Property '__powerCalendars'\n window.__powerCalendars = window.__powerCalendars || {}; // TODO: weakmap??\n // @ts-expect-error Property '__powerCalendars'\n window.__powerCalendars[this.publicAPI.uniqueId] = this;\n }\n }\n\n unregisterCalendar() {\n // @ts-expect-error Property '__powerCalendars'\n if (window && window.__powerCalendars?.[guidFor(this)]) {\n // @ts-expect-error Property '__powerCalendars'\n delete window.__powerCalendars[guidFor(this)];\n }\n }\n}\n"],"names":["PowerCalendarComponent","Component","g","prototype","service","i","void 0","tracked","navComponent","PowerCalendarNavComponent","daysComponent","PowerCalendarDaysComponent","constructor","owner","args","registerCalendar","onInit","publicAPI","willDestroy","unregisterCalendar","publicActions","publicActionsObject","onSelect","select","onCenterChange","changeCenterTask","currentCenter","selected","_selected","normalizeDate","v","center","powerCalendar","getDate","_publicAPI","uniqueId","guidFor","type","_calendarType","loading","isRunning","locale","actions","tagWithDefault","tag","undefined","_buildTask","context","generator","newCenter","calendar","e","assert","value","normalizeCalendarValue","date","day","n","action","window","__powerCalendars","setComponentTemplate","TEMPLATE"],"mappings":"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"}
1
+ {"version":3,"file":"power-calendar.js","sources":["../../src/components/power-calendar.ts"],"sourcesContent":["import Component from '@glimmer/component';\nimport { tracked } from '@glimmer/tracking';\nimport { action } from '@ember/object';\nimport { guidFor } from '@ember/object/internals';\nimport { inject as service } from '@ember/service';\nimport { task } from 'ember-concurrency';\nimport { assert } from '@ember/debug';\nimport type { ComponentLike } from '@glint/template';\nimport {\n normalizeDate,\n normalizeCalendarValue,\n type NormalizeCalendarValue,\n type PowerCalendarDay,\n type SelectedPowerCalendarRange,\n} from '../utils.ts';\nimport PowerCalendarNavComponent from './power-calendar/nav.ts';\nimport PowerCalendarDaysComponent from './power-calendar/days.ts';\nimport type Owner from '@ember/owner';\nimport type PowerCalendarService from '../services/power-calendar.ts';\nimport type {\n PowerCalendarRangeAPI,\n PowerCalendarRangeDay,\n} from './power-calendar-range.ts';\nimport type { PowerCalendarMultipleAPI } from './power-calendar-multiple.ts';\nimport { publicActionsObject } from '../-private/utils.ts';\n\nexport type TCalendarType = 'multiple' | 'range' | 'single';\nexport type TPowerCalendarMoveCenterUnit = 'year' | 'month';\nexport type SelectedDays =\n | SelectedPowerCalendarRange\n | Date\n | Date[]\n | undefined;\nexport type CalendarAPI =\n | PowerCalendarAPI\n | PowerCalendarMultipleAPI\n | PowerCalendarRangeAPI;\n\nexport interface PowerCalendarAPI {\n uniqueId: string;\n calendarUniqueId?: string;\n selected?: SelectedDays;\n loading: boolean;\n center: Date;\n locale: string;\n type: TCalendarType;\n actions: PowerCalendarActions;\n}\n\nexport interface PowerCalendarActions {\n changeCenter?: (\n newCenter: Date,\n calendar: CalendarAPI,\n event: MouseEvent,\n ) => void;\n moveCenter?: (\n step: number,\n unit: TPowerCalendarMoveCenterUnit,\n calendar: PowerCalendarAPI,\n event: MouseEvent,\n ) => void;\n select?: (day: CalendarDay, calendar: CalendarAPI, event: MouseEvent) => void;\n}\n\nexport type TPowerCalendarOnSelect = (\n day: CalendarDay,\n calendar: CalendarAPI,\n event: MouseEvent,\n) => void;\n\nexport interface PowerCalendarArgs {\n daysComponent?: string | ComponentLike<any>;\n locale: string;\n navComponent?: string | ComponentLike<any>;\n onCenterChange?: (\n newCenter: NormalizeCalendarValue,\n calendar: PowerCalendarAPI,\n event: MouseEvent,\n ) => void;\n onInit?: (calendar: PowerCalendarAPI) => void;\n onSelect?: TPowerCalendarOnSelect;\n selected?: SelectedDays;\n center?: Date;\n tag?: string;\n}\n\nexport interface PowerCalendarDefaultBlock extends PowerCalendarAPI {\n NavComponent: ComponentLike<any>;\n DaysComponent: ComponentLike<any>;\n}\n\nexport type CalendarDay =\n | PowerCalendarDay\n | PowerCalendarRangeDay\n | PowerCalendarDay[];\n\nexport interface PowerCalendarSignature {\n Element: HTMLElement;\n Args: PowerCalendarArgs;\n Blocks: {\n default: [PowerCalendarDefaultBlock];\n };\n}\n\nexport default class PowerCalendarComponent extends Component<PowerCalendarSignature> {\n @service declare powerCalendar: PowerCalendarService;\n\n @tracked center = null;\n @tracked _calendarType: TCalendarType = 'single';\n @tracked _selected?: SelectedDays;\n\n navComponent: ComponentLike<any> = PowerCalendarNavComponent;\n daysComponent: ComponentLike<any> = PowerCalendarDaysComponent;\n\n // Lifecycle hooks\n constructor(owner: Owner, args: PowerCalendarArgs) {\n super(owner, args);\n this.registerCalendar();\n if (this.args.onInit) {\n this.args.onInit(this.publicAPI);\n }\n }\n\n willDestroy(): void {\n super.willDestroy();\n this.unregisterCalendar();\n }\n\n get publicActions(): PowerCalendarActions {\n return publicActionsObject(\n this.args.onSelect,\n this.select,\n this.args.onCenterChange,\n this.changeCenterTask,\n this.currentCenter,\n );\n }\n\n get selected(): SelectedDays {\n if (this._selected) {\n return this._selected;\n }\n\n return normalizeDate(this.args.selected as Date);\n }\n\n set selected(v: SelectedDays) {\n this._selected = normalizeDate(v as Date | undefined);\n }\n\n get currentCenter(): Date {\n let center = this.args.center;\n if (!center) {\n center = (this.selected as Date) || this.powerCalendar.getDate();\n }\n return normalizeDate(center) || this.powerCalendar.getDate();\n }\n\n get publicAPI(): PowerCalendarAPI {\n return this._publicAPI;\n }\n\n get _publicAPI(): PowerCalendarAPI {\n return {\n uniqueId: guidFor(this),\n type: this._calendarType,\n selected: this.selected,\n loading: this.changeCenterTask.isRunning,\n center: this.currentCenter,\n locale: this.args.locale || this.powerCalendar.locale,\n actions: this.publicActions,\n };\n }\n\n get tagWithDefault(): string {\n if (this.args.tag === undefined || this.args.tag === null) {\n return 'div';\n }\n return this.args.tag;\n }\n\n // Tasks\n changeCenterTask = task(\n async (newCenter: Date, calendar: PowerCalendarAPI, e: MouseEvent) => {\n assert(\n \"You attempted to move the center of a calendar that doesn't receive an `@onCenterChange` action.\",\n typeof this.args.onCenterChange === 'function',\n );\n const value = normalizeCalendarValue({ date: newCenter });\n await this.args.onCenterChange(value, calendar, e);\n },\n );\n\n // Actions\n @action\n select(day: CalendarDay, calendar: PowerCalendarAPI, e: MouseEvent) {\n if (this.args.onSelect) {\n this.args.onSelect(day, calendar, e);\n }\n }\n\n // Methods\n registerCalendar() {\n if (window) {\n // @ts-expect-error Property '__powerCalendars'\n window.__powerCalendars = window.__powerCalendars || {}; // TODO: weakmap??\n // @ts-expect-error Property '__powerCalendars'\n window.__powerCalendars[this.publicAPI.uniqueId] = this;\n }\n }\n\n unregisterCalendar() {\n // @ts-expect-error Property '__powerCalendars'\n if (window && window.__powerCalendars?.[guidFor(this)]) {\n // @ts-expect-error Property '__powerCalendars'\n delete window.__powerCalendars[guidFor(this)];\n }\n }\n}\n"],"names":["PowerCalendarComponent","Component","g","prototype","service","i","void 0","tracked","navComponent","PowerCalendarNavComponent","daysComponent","PowerCalendarDaysComponent","constructor","owner","args","registerCalendar","onInit","publicAPI","willDestroy","unregisterCalendar","publicActions","publicActionsObject","onSelect","select","onCenterChange","changeCenterTask","currentCenter","selected","_selected","normalizeDate","v","center","powerCalendar","getDate","_publicAPI","uniqueId","guidFor","type","_calendarType","loading","isRunning","locale","actions","tagWithDefault","tag","undefined","_buildTask","context","generator","newCenter","calendar","e","assert","value","normalizeCalendarValue","date","day","n","action","window","__powerCalendars","setComponentTemplate","TEMPLATE"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"days-utils-D13uOiMt.js","sources":["../src/-private/days-utils.ts"],"sourcesContent":["import { assert } from '@ember/debug';\nimport type { CalendarAPI } from '../components/power-calendar.ts';\nimport {\n endOf,\n endOfWeek,\n formatDate,\n isAfter,\n isBefore,\n isSame,\n localeStartOfWeek,\n normalizeCalendarDay,\n startOf,\n startOfWeek,\n type PowerCalendarDay,\n} from '../utils.ts';\n\nexport const WEEK_DAYS = ['Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat', 'Sun'];\nexport type TWeekdayFormat = 'min' | 'short' | 'long';\n\nexport interface Week {\n id: string;\n days: PowerCalendarDay[];\n missingDays: number;\n}\n\nexport function localeStartOfWeekOrFallback(\n startOfWeek: string | undefined,\n locale: string,\n): number {\n if (startOfWeek) {\n return parseInt(startOfWeek, 10);\n }\n return localeStartOfWeek(locale);\n}\n\nexport function weekdaysNames(\n localeStartOfWeek: number,\n weekdayFormat: TWeekdayFormat,\n weekdays: string[],\n weekdaysMin: string[],\n weekdaysShort: string[],\n): string[] {\n let weekdaysNames;\n if (weekdayFormat === 'long') {\n weekdaysNames = weekdays;\n } else if (weekdayFormat === 'min') {\n weekdaysNames = weekdaysMin;\n } else {\n weekdaysNames = weekdaysShort;\n }\n return weekdaysNames\n .slice(localeStartOfWeek)\n .concat(weekdaysNames.slice(0, localeStartOfWeek));\n}\n\nexport function firstDay(currentCenter: Date, localeStartOfWeek: number): Date {\n const firstDay = startOf(currentCenter, 'month');\n return startOfWeek(firstDay, localeStartOfWeek);\n}\n\nexport function weeks(\n days: PowerCalendarDay[],\n showDaysAround: boolean,\n): Week[] {\n const weeks: Week[] = [];\n let i = 0;\n while (days[i]) {\n let daysOfWeek = days.slice(i, i + 7);\n if (!showDaysAround) {\n daysOfWeek = daysOfWeek.filter((d) => d.isCurrentMonth);\n }\n weeks.push({\n id: `week-of-${daysOfWeek[0]?.id}`,\n days: daysOfWeek,\n missingDays: 7 - daysOfWeek.length,\n });\n i += 7;\n }\n return weeks;\n}\n\nexport function handleDayKeyDown(\n e: KeyboardEvent,\n focusedId: string | null,\n days: PowerCalendarDay[],\n): PowerCalendarDay | undefined {\n if (!focusedId) {\n return;\n }\n let day, index: number | undefined;\n for (let i = 0; i < days.length; i++) {\n if (days[i]?.id === focusedId) {\n index = i;\n break;\n }\n }\n\n if (!index) {\n return;\n }\n\n if (e.key === 'ArrowUp') {\n e.preventDefault();\n const newIndex = Math.max(index - 7, 0);\n day = days[newIndex];\n if (day?.isDisabled) {\n for (let i = newIndex + 1; i <= index; i++) {\n day = days[i];\n if (!day?.isDisabled) {\n break;\n }\n }\n }\n } else if (e.key === 'ArrowDown') {\n e.preventDefault();\n const newIndex = Math.min(index + 7, days.length - 1);\n day = days[newIndex];\n if (day?.isDisabled) {\n for (let i = newIndex - 1; i >= index; i--) {\n day = days[i];\n if (!day?.isDisabled) {\n break;\n }\n }\n }\n } else if (e.key === 'ArrowLeft') {\n day = days[Math.max(index - 1, 0)];\n if (day?.isDisabled) {\n return;\n }\n } else if (e.key === 'ArrowRight') {\n day = days[Math.min(index + 1, days.length - 1)];\n if (day?.isDisabled) {\n return;\n }\n } else {\n return;\n }\n\n return day;\n}\n\nexport function focusDate(uniqueId: string, id: string): void {\n const dayElement: HTMLElement | null = document.querySelector(\n `[data-power-calendar-id=\"${uniqueId}\"] [data-date=\"${id}\"]`,\n );\n if (dayElement) {\n dayElement.focus();\n }\n}\n\nexport function buildDay(\n date: Date,\n today: Date,\n calendar: CalendarAPI,\n focusedId: string | null,\n currentCenter: Date,\n dayIsSelected: (date: Date, calendar: CalendarAPI) => boolean,\n minDate?: Date,\n maxDate?: Date,\n disabledDates?: Array<Date | string>,\n dayIsDisabledExtended?: (\n date: Date,\n calendar: CalendarAPI,\n minDate?: Date,\n maxDate?: Date,\n disabledDates?: Array<Date | string>,\n ) => boolean,\n): PowerCalendarDay {\n const id = formatDate(date, 'YYYY-MM-DD');\n\n let isDisabled = false;\n if (typeof dayIsDisabledExtended === 'function') {\n isDisabled = dayIsDisabledExtended(\n date,\n calendar,\n minDate,\n maxDate,\n disabledDates,\n );\n } else {\n isDisabled = dayIsDisabled(date, calendar, minDate, maxDate, disabledDates);\n }\n\n return normalizeCalendarDay({\n id,\n number: date.getDate(),\n date: new Date(date),\n isDisabled: isDisabled,\n isFocused: focusedId === id,\n isCurrentMonth: isSame(date, currentCenter, 'month'),\n isToday: isSame(date, today, 'day'),\n isSelected: dayIsSelected(date, calendar),\n } as PowerCalendarDay);\n}\n\nexport function dayIsDisabled(\n date: Date,\n calendar: CalendarAPI,\n minDate?: Date,\n maxDate?: Date,\n disabledDates?: Array<Date | string>,\n): boolean {\n const isDisabled = !calendar.actions.select;\n if (isDisabled) {\n return true;\n }\n\n if (minDate && isBefore(date, startOf(minDate, 'day'))) {\n return true;\n }\n\n if (maxDate && isAfter(date, endOf(maxDate, 'day'))) {\n return true;\n }\n\n if (disabledDates) {\n const disabledInRange = disabledDates.some((d) => {\n const isSameDay = isSame(date, d as Date, 'day');\n const isWeekDayIncludes =\n WEEK_DAYS.indexOf(d as string) !== -1 && formatDate(date, 'ddd') === d;\n return isSameDay || isWeekDayIncludes;\n });\n\n if (disabledInRange) {\n return true;\n }\n }\n\n return false;\n}\n\nexport function lastDay(localeStartOfWeek: number, currentCenter: Date): Date {\n assert(\n 'The center of the calendar is an invalid date.',\n !isNaN(currentCenter.getTime()),\n );\n const lastDay = endOf(currentCenter, 'month');\n return endOfWeek(lastDay, localeStartOfWeek);\n}\n\nexport function handleClick(\n e: MouseEvent,\n days: PowerCalendarDay[],\n calendar: CalendarAPI,\n): void {\n const dayEl: HTMLElement | null | undefined = (\n e.target as HTMLElement | null\n )?.closest('[data-date]');\n if (dayEl) {\n const dateStr = dayEl.dataset['date'];\n const day = days.find((d) => d.id === dateStr);\n if (day) {\n if (calendar.actions.select) {\n calendar.actions.select(day, calendar, e);\n }\n }\n }\n}\n"],"names":["WEEK_DAYS","localeStartOfWeekOrFallback","startOfWeek","locale","parseInt","localeStartOfWeek","weekdaysNames","weekdayFormat","weekdays","weekdaysMin","weekdaysShort","slice","concat","firstDay","currentCenter","startOf","weeks","days","showDaysAround","i","daysOfWeek","filter","d","isCurrentMonth","push","id","missingDays","length","handleDayKeyDown","e","focusedId","day","index","key","preventDefault","newIndex","Math","max","isDisabled","min","focusDate","uniqueId","dayElement","document","querySelector","focus","buildDay","date","today","calendar","dayIsSelected","minDate","maxDate","disabledDates","dayIsDisabledExtended","formatDate","dayIsDisabled","normalizeCalendarDay","number","getDate","Date","isFocused","isSame","isToday","isSelected","actions","select","isBefore","isAfter","endOf","disabledInRange","some","isSameDay","isWeekDayIncludes","indexOf","lastDay","assert","isNaN","getTime","endOfWeek","handleClick","dayEl","target","closest","dateStr","dataset","find"],"mappings":"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"}
1
+ {"version":3,"file":"days-utils-D13uOiMt.js","sources":["../src/-private/days-utils.ts"],"sourcesContent":["import { assert } from '@ember/debug';\nimport type { CalendarAPI } from '../components/power-calendar.ts';\nimport {\n endOf,\n endOfWeek,\n formatDate,\n isAfter,\n isBefore,\n isSame,\n localeStartOfWeek,\n normalizeCalendarDay,\n startOf,\n startOfWeek,\n type PowerCalendarDay,\n} from '../utils.ts';\n\nexport const WEEK_DAYS = ['Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat', 'Sun'];\nexport type TWeekdayFormat = 'min' | 'short' | 'long';\n\nexport interface Week {\n id: string;\n days: PowerCalendarDay[];\n missingDays: number;\n}\n\nexport function localeStartOfWeekOrFallback(\n startOfWeek: string | undefined,\n locale: string,\n): number {\n if (startOfWeek) {\n return parseInt(startOfWeek, 10);\n }\n return localeStartOfWeek(locale);\n}\n\nexport function weekdaysNames(\n localeStartOfWeek: number,\n weekdayFormat: TWeekdayFormat,\n weekdays: string[],\n weekdaysMin: string[],\n weekdaysShort: string[],\n): string[] {\n let weekdaysNames;\n if (weekdayFormat === 'long') {\n weekdaysNames = weekdays;\n } else if (weekdayFormat === 'min') {\n weekdaysNames = weekdaysMin;\n } else {\n weekdaysNames = weekdaysShort;\n }\n return weekdaysNames\n .slice(localeStartOfWeek)\n .concat(weekdaysNames.slice(0, localeStartOfWeek));\n}\n\nexport function firstDay(currentCenter: Date, localeStartOfWeek: number): Date {\n const firstDay = startOf(currentCenter, 'month');\n return startOfWeek(firstDay, localeStartOfWeek);\n}\n\nexport function weeks(\n days: PowerCalendarDay[],\n showDaysAround: boolean,\n): Week[] {\n const weeks: Week[] = [];\n let i = 0;\n while (days[i]) {\n let daysOfWeek = days.slice(i, i + 7);\n if (!showDaysAround) {\n daysOfWeek = daysOfWeek.filter((d) => d.isCurrentMonth);\n }\n weeks.push({\n id: `week-of-${daysOfWeek[0]?.id}`,\n days: daysOfWeek,\n missingDays: 7 - daysOfWeek.length,\n });\n i += 7;\n }\n return weeks;\n}\n\nexport function handleDayKeyDown(\n e: KeyboardEvent,\n focusedId: string | null,\n days: PowerCalendarDay[],\n): PowerCalendarDay | undefined {\n if (!focusedId) {\n return;\n }\n let day, index: number | undefined;\n for (let i = 0; i < days.length; i++) {\n if (days[i]?.id === focusedId) {\n index = i;\n break;\n }\n }\n\n if (!index) {\n return;\n }\n\n if (e.key === 'ArrowUp') {\n e.preventDefault();\n const newIndex = Math.max(index - 7, 0);\n day = days[newIndex];\n if (day?.isDisabled) {\n for (let i = newIndex + 1; i <= index; i++) {\n day = days[i];\n if (!day?.isDisabled) {\n break;\n }\n }\n }\n } else if (e.key === 'ArrowDown') {\n e.preventDefault();\n const newIndex = Math.min(index + 7, days.length - 1);\n day = days[newIndex];\n if (day?.isDisabled) {\n for (let i = newIndex - 1; i >= index; i--) {\n day = days[i];\n if (!day?.isDisabled) {\n break;\n }\n }\n }\n } else if (e.key === 'ArrowLeft') {\n day = days[Math.max(index - 1, 0)];\n if (day?.isDisabled) {\n return;\n }\n } else if (e.key === 'ArrowRight') {\n day = days[Math.min(index + 1, days.length - 1)];\n if (day?.isDisabled) {\n return;\n }\n } else {\n return;\n }\n\n return day;\n}\n\nexport function focusDate(uniqueId: string, id: string): void {\n const dayElement: HTMLElement | null = document.querySelector(\n `[data-power-calendar-id=\"${uniqueId}\"] [data-date=\"${id}\"]`,\n );\n if (dayElement) {\n dayElement.focus();\n }\n}\n\nexport function buildDay(\n date: Date,\n today: Date,\n calendar: CalendarAPI,\n focusedId: string | null,\n currentCenter: Date,\n dayIsSelected: (date: Date, calendar: CalendarAPI) => boolean,\n minDate?: Date,\n maxDate?: Date,\n disabledDates?: Array<Date | string>,\n dayIsDisabledExtended?: (\n date: Date,\n calendar: CalendarAPI,\n minDate?: Date,\n maxDate?: Date,\n disabledDates?: Array<Date | string>,\n ) => boolean,\n): PowerCalendarDay {\n const id = formatDate(date, 'YYYY-MM-DD');\n\n let isDisabled = false;\n if (typeof dayIsDisabledExtended === 'function') {\n isDisabled = dayIsDisabledExtended(\n date,\n calendar,\n minDate,\n maxDate,\n disabledDates,\n );\n } else {\n isDisabled = dayIsDisabled(date, calendar, minDate, maxDate, disabledDates);\n }\n\n return normalizeCalendarDay({\n id,\n number: date.getDate(),\n date: new Date(date),\n isDisabled: isDisabled,\n isFocused: focusedId === id,\n isCurrentMonth: isSame(date, currentCenter, 'month'),\n isToday: isSame(date, today, 'day'),\n isSelected: dayIsSelected(date, calendar),\n } as PowerCalendarDay);\n}\n\nexport function dayIsDisabled(\n date: Date,\n calendar: CalendarAPI,\n minDate?: Date,\n maxDate?: Date,\n disabledDates?: Array<Date | string>,\n): boolean {\n const isDisabled = !calendar.actions.select;\n if (isDisabled) {\n return true;\n }\n\n if (minDate && isBefore(date, startOf(minDate, 'day'))) {\n return true;\n }\n\n if (maxDate && isAfter(date, endOf(maxDate, 'day'))) {\n return true;\n }\n\n if (disabledDates) {\n const disabledInRange = disabledDates.some((d) => {\n const isSameDay = isSame(date, d as Date, 'day');\n const isWeekDayIncludes =\n WEEK_DAYS.indexOf(d as string) !== -1 && formatDate(date, 'ddd') === d;\n return isSameDay || isWeekDayIncludes;\n });\n\n if (disabledInRange) {\n return true;\n }\n }\n\n return false;\n}\n\nexport function lastDay(localeStartOfWeek: number, currentCenter: Date): Date {\n assert(\n 'The center of the calendar is an invalid date.',\n !isNaN(currentCenter.getTime()),\n );\n const lastDay = endOf(currentCenter, 'month');\n return endOfWeek(lastDay, localeStartOfWeek);\n}\n\nexport function handleClick(\n e: MouseEvent,\n days: PowerCalendarDay[],\n calendar: CalendarAPI,\n): void {\n const dayEl: HTMLElement | null | undefined = (\n e.target as HTMLElement | null\n )?.closest('[data-date]');\n if (dayEl) {\n const dateStr = dayEl.dataset['date'];\n const day = days.find((d) => d.id === dateStr);\n if (day) {\n if (calendar.actions.select) {\n calendar.actions.select(day, calendar, e);\n }\n }\n }\n}\n"],"names":["WEEK_DAYS","localeStartOfWeekOrFallback","startOfWeek","locale","parseInt","localeStartOfWeek","weekdaysNames","weekdayFormat","weekdays","weekdaysMin","weekdaysShort","slice","concat","firstDay","currentCenter","startOf","weeks","days","showDaysAround","i","daysOfWeek","filter","d","isCurrentMonth","push","id","missingDays","length","handleDayKeyDown","e","focusedId","day","index","key","preventDefault","newIndex","Math","max","isDisabled","min","focusDate","uniqueId","dayElement","document","querySelector","focus","buildDay","date","today","calendar","dayIsSelected","minDate","maxDate","disabledDates","dayIsDisabledExtended","formatDate","dayIsDisabled","normalizeCalendarDay","number","getDate","Date","isFocused","isSame","isToday","isSelected","actions","select","isBefore","isAfter","endOf","disabledInRange","some","isSameDay","isWeekDayIncludes","indexOf","lastDay","assert","isNaN","getTime","endOfWeek","handleClick","dayEl","target","closest","dateStr","dataset","find"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"ember-power-calendar-day-classes.js","sources":["../../src/helpers/ember-power-calendar-day-classes.ts"],"sourcesContent":["import { helper } from '@ember/component/helper';\nimport type { PowerCalendarAPI } from '../components/power-calendar.ts';\nimport type { Week } from '../-private/days-utils.ts';\nimport type { PowerCalendarDay } from '../utils.ts';\n\nexport function emberPowerCalendarDayClasses([day, calendar, weeks, dayClass]: [\n PowerCalendarDay,\n PowerCalendarAPI,\n Week[],\n (\n | string\n | ((\n day: PowerCalendarDay,\n calendar: PowerCalendarAPI,\n weeks: Week[],\n ) => string)\n ),\n]) {\n const classes = ['ember-power-calendar-day'];\n if (calendar.actions.select) {\n classes.push('ember-power-calendar-day--interactive');\n }\n classes.push(\n `ember-power-calendar-day--${\n day.isCurrentMonth ? 'current' : 'other'\n }-month`,\n );\n if (day.isSelected) {\n classes.push('ember-power-calendar-day--selected');\n }\n if (day.isToday) {\n classes.push('ember-power-calendar-day--today');\n }\n if (day.isFocused) {\n classes.push('ember-power-calendar-day--focused');\n }\n if (day.isRangeStart) {\n classes.push('ember-power-calendar-day--range-start');\n }\n if (day.isRangeEnd) {\n classes.push('ember-power-calendar-day--range-end');\n }\n if (dayClass) {\n if (typeof dayClass === 'string') {\n classes.push(dayClass);\n } else if (typeof dayClass === 'function') {\n const k = dayClass(day, calendar, weeks);\n if (k !== null && k !== undefined) {\n classes.push(k);\n }\n }\n }\n return classes.join(' ');\n}\n\nexport default helper(emberPowerCalendarDayClasses);\n"],"names":["emberPowerCalendarDayClasses","day","calendar","weeks","dayClass","classes","actions","select","push","isCurrentMonth","isSelected","isToday","isFocused","isRangeStart","isRangeEnd","k","undefined","join","helper"],"mappings":";;AAKO,SAASA,4BAA4BA,CAAC,CAACC,GAAG,EAAEC,QAAQ,EAAEC,KAAK,EAAEC,QAAQ,CAY3E,EAAE;AACD,EAAA,MAAMC,OAAO,GAAG,CAAC,0BAA0B,CAAC,CAAA;AAC5C,EAAA,IAAIH,QAAQ,CAACI,OAAO,CAACC,MAAM,EAAE;AAC3BF,IAAAA,OAAO,CAACG,IAAI,CAAC,uCAAuC,CAAC,CAAA;AACvD,GAAA;AACAH,EAAAA,OAAO,CAACG,IAAI,CACV,CAAA,0BAAA,EACEP,GAAG,CAACQ,cAAc,GAAG,SAAS,GAAG,OAAO,CAAA,MAAA,CAE5C,CAAC,CAAA;EACD,IAAIR,GAAG,CAACS,UAAU,EAAE;AAClBL,IAAAA,OAAO,CAACG,IAAI,CAAC,oCAAoC,CAAC,CAAA;AACpD,GAAA;EACA,IAAIP,GAAG,CAACU,OAAO,EAAE;AACfN,IAAAA,OAAO,CAACG,IAAI,CAAC,iCAAiC,CAAC,CAAA;AACjD,GAAA;EACA,IAAIP,GAAG,CAACW,SAAS,EAAE;AACjBP,IAAAA,OAAO,CAACG,IAAI,CAAC,mCAAmC,CAAC,CAAA;AACnD,GAAA;EACA,IAAIP,GAAG,CAACY,YAAY,EAAE;AACpBR,IAAAA,OAAO,CAACG,IAAI,CAAC,uCAAuC,CAAC,CAAA;AACvD,GAAA;EACA,IAAIP,GAAG,CAACa,UAAU,EAAE;AAClBT,IAAAA,OAAO,CAACG,IAAI,CAAC,qCAAqC,CAAC,CAAA;AACrD,GAAA;AACA,EAAA,IAAIJ,QAAQ,EAAE;AACZ,IAAA,IAAI,OAAOA,QAAQ,KAAK,QAAQ,EAAE;AAChCC,MAAAA,OAAO,CAACG,IAAI,CAACJ,QAAQ,CAAC,CAAA;AACxB,KAAC,MAAM,IAAI,OAAOA,QAAQ,KAAK,UAAU,EAAE;MACzC,MAAMW,CAAC,GAAGX,QAAQ,CAACH,GAAG,EAAEC,QAAQ,EAAEC,KAAK,CAAC,CAAA;AACxC,MAAA,IAAIY,CAAC,KAAK,IAAI,IAAIA,CAAC,KAAKC,SAAS,EAAE;AACjCX,QAAAA,OAAO,CAACG,IAAI,CAACO,CAAC,CAAC,CAAA;AACjB,OAAA;AACF,KAAA;AACF,GAAA;AACA,EAAA,OAAOV,OAAO,CAACY,IAAI,CAAC,GAAG,CAAC,CAAA;AAC1B,CAAA;AAEA,qCAAeC,MAAM,CAAClB,4BAA4B,CAAC;;;;"}
1
+ {"version":3,"file":"ember-power-calendar-day-classes.js","sources":["../../src/helpers/ember-power-calendar-day-classes.ts"],"sourcesContent":["import { helper } from '@ember/component/helper';\nimport type { PowerCalendarAPI } from '../components/power-calendar.ts';\nimport type { Week } from '../-private/days-utils.ts';\nimport type { PowerCalendarDay } from '../utils.ts';\n\nexport function emberPowerCalendarDayClasses([day, calendar, weeks, dayClass]: [\n PowerCalendarDay,\n PowerCalendarAPI,\n Week[],\n (\n | string\n | ((\n day: PowerCalendarDay,\n calendar: PowerCalendarAPI,\n weeks: Week[],\n ) => string)\n ),\n]) {\n const classes = ['ember-power-calendar-day'];\n if (calendar.actions.select) {\n classes.push('ember-power-calendar-day--interactive');\n }\n classes.push(\n `ember-power-calendar-day--${\n day.isCurrentMonth ? 'current' : 'other'\n }-month`,\n );\n if (day.isSelected) {\n classes.push('ember-power-calendar-day--selected');\n }\n if (day.isToday) {\n classes.push('ember-power-calendar-day--today');\n }\n if (day.isFocused) {\n classes.push('ember-power-calendar-day--focused');\n }\n if (day.isRangeStart) {\n classes.push('ember-power-calendar-day--range-start');\n }\n if (day.isRangeEnd) {\n classes.push('ember-power-calendar-day--range-end');\n }\n if (dayClass) {\n if (typeof dayClass === 'string') {\n classes.push(dayClass);\n } else if (typeof dayClass === 'function') {\n const k = dayClass(day, calendar, weeks);\n if (k !== null && k !== undefined) {\n classes.push(k);\n }\n }\n }\n return classes.join(' ');\n}\n\nexport default helper(emberPowerCalendarDayClasses);\n"],"names":["emberPowerCalendarDayClasses","day","calendar","weeks","dayClass","classes","actions","select","push","isCurrentMonth","isSelected","isToday","isFocused","isRangeStart","isRangeEnd","k","undefined","join","helper"],"mappings":";;AAKO,SAASA,4BAA4BA,CAAC,CAACC,GAAG,EAAEC,QAAQ,EAAEC,KAAK,EAAEC,QAAQ,CAY3E,EAAE;AACD,EAAA,MAAMC,OAAO,GAAG,CAAC,0BAA0B,CAAC;AAC5C,EAAA,IAAIH,QAAQ,CAACI,OAAO,CAACC,MAAM,EAAE;AAC3BF,IAAAA,OAAO,CAACG,IAAI,CAAC,uCAAuC,CAAC;AACvD;AACAH,EAAAA,OAAO,CAACG,IAAI,CACV,CAAA,0BAAA,EACEP,GAAG,CAACQ,cAAc,GAAG,SAAS,GAAG,OAAO,CAAA,MAAA,CAE5C,CAAC;EACD,IAAIR,GAAG,CAACS,UAAU,EAAE;AAClBL,IAAAA,OAAO,CAACG,IAAI,CAAC,oCAAoC,CAAC;AACpD;EACA,IAAIP,GAAG,CAACU,OAAO,EAAE;AACfN,IAAAA,OAAO,CAACG,IAAI,CAAC,iCAAiC,CAAC;AACjD;EACA,IAAIP,GAAG,CAACW,SAAS,EAAE;AACjBP,IAAAA,OAAO,CAACG,IAAI,CAAC,mCAAmC,CAAC;AACnD;EACA,IAAIP,GAAG,CAACY,YAAY,EAAE;AACpBR,IAAAA,OAAO,CAACG,IAAI,CAAC,uCAAuC,CAAC;AACvD;EACA,IAAIP,GAAG,CAACa,UAAU,EAAE;AAClBT,IAAAA,OAAO,CAACG,IAAI,CAAC,qCAAqC,CAAC;AACrD;AACA,EAAA,IAAIJ,QAAQ,EAAE;AACZ,IAAA,IAAI,OAAOA,QAAQ,KAAK,QAAQ,EAAE;AAChCC,MAAAA,OAAO,CAACG,IAAI,CAACJ,QAAQ,CAAC;AACxB,KAAC,MAAM,IAAI,OAAOA,QAAQ,KAAK,UAAU,EAAE;MACzC,MAAMW,CAAC,GAAGX,QAAQ,CAACH,GAAG,EAAEC,QAAQ,EAAEC,KAAK,CAAC;AACxC,MAAA,IAAIY,CAAC,KAAK,IAAI,IAAIA,CAAC,KAAKC,SAAS,EAAE;AACjCX,QAAAA,OAAO,CAACG,IAAI,CAACO,CAAC,CAAC;AACjB;AACF;AACF;AACA,EAAA,OAAOV,OAAO,CAACY,IAAI,CAAC,GAAG,CAAC;AAC1B;AAEA,qCAAeC,MAAM,CAAClB,4BAA4B,CAAC;;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"power-calendar-format-date.js","sources":["../../src/helpers/power-calendar-format-date.ts"],"sourcesContent":["import { helper } from '@ember/component/helper';\nimport { formatDate } from '../utils.ts';\n\nexport function powerCalendarFormatDate(\n [date, format]: [Date, string],\n { locale }: { locale?: string | null },\n) {\n return formatDate(date, format, locale);\n}\n\nexport default helper(powerCalendarFormatDate);\n"],"names":["powerCalendarFormatDate","date","format","locale","formatDate","helper"],"mappings":";;;AAGO,SAASA,uBAAuBA,CACrC,CAACC,IAAI,EAAEC,MAAM,CAAiB,EAC9B;AAAEC,EAAAA,MAAAA;AAAmC,CAAC,EACtC;AACA,EAAA,OAAOC,UAAU,CAACH,IAAI,EAAEC,MAAM,EAAEC,MAAM,CAAC,CAAA;AACzC,CAAA;AAEA,gCAAeE,MAAM,CAACL,uBAAuB,CAAC;;;;"}
1
+ {"version":3,"file":"power-calendar-format-date.js","sources":["../../src/helpers/power-calendar-format-date.ts"],"sourcesContent":["import { helper } from '@ember/component/helper';\nimport { formatDate } from '../utils.ts';\n\nexport function powerCalendarFormatDate(\n [date, format]: [Date, string],\n { locale }: { locale?: string | null },\n) {\n return formatDate(date, format, locale);\n}\n\nexport default helper(powerCalendarFormatDate);\n"],"names":["powerCalendarFormatDate","date","format","locale","formatDate","helper"],"mappings":";;;AAGO,SAASA,uBAAuBA,CACrC,CAACC,IAAI,EAAEC,MAAM,CAAiB,EAC9B;AAAEC,EAAAA;AAAmC,CAAC,EACtC;AACA,EAAA,OAAOC,UAAU,CAACH,IAAI,EAAEC,MAAM,EAAEC,MAAM,CAAC;AACzC;AAEA,gCAAeE,MAAM,CAACL,uBAAuB,CAAC;;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"power-calendar.js","sources":["../../src/services/power-calendar.ts"],"sourcesContent":["import Service from '@ember/service';\nimport { tracked } from '@glimmer/tracking';\nimport { getDefaultLocale } from '../utils.ts';\n\nexport default class extends Service {\n date: Date | null = null;\n\n @tracked _local?: string;\n\n get locale(): string {\n if (this._local) {\n return this._local;\n }\n\n return getDefaultLocale();\n }\n\n set locale(value) {\n this._local = value;\n }\n\n // Methods\n getDate(): Date {\n return this.date || new Date();\n }\n}\n"],"names":["Service","date","g","prototype","tracked","i","void 0","locale","_local","getDefaultLocale","value","getDate","Date"],"mappings":";;;;;AAIe,mBAAA,SAAcA,OAAO,CAAC;AACnCC,EAAAA,IAAI,GAAgB,IAAI,CAAA;AAAC,EAAA;IAAAC,CAAA,CAAA,IAAA,CAAAC,SAAA,EAAA,QAAA,EAAA,CAExBC,OAAO,CAAA,CAAA,CAAA;AAAA,GAAA;AAAA,EAAA,OAAA,IAAAC,CAAA,CAAA,IAAA,EAAA,QAAA,CAAA,EAAAC,KAAA,CAAA,EAAA;EAER,IAAIC,MAAMA,GAAW;IACnB,IAAI,IAAI,CAACC,MAAM,EAAE;MACf,OAAO,IAAI,CAACA,MAAM,CAAA;AACpB,KAAA;IAEA,OAAOC,gBAAgB,EAAE,CAAA;AAC3B,GAAA;EAEA,IAAIF,MAAMA,CAACG,KAAK,EAAE;IAChB,IAAI,CAACF,MAAM,GAAGE,KAAK,CAAA;AACrB,GAAA;;AAEA;AACAC,EAAAA,OAAOA,GAAS;AACd,IAAA,OAAO,IAAI,CAACV,IAAI,IAAI,IAAIW,IAAI,EAAE,CAAA;AAChC,GAAA;AACF;;;;"}
1
+ {"version":3,"file":"power-calendar.js","sources":["../../src/services/power-calendar.ts"],"sourcesContent":["import Service from '@ember/service';\nimport { tracked } from '@glimmer/tracking';\nimport { getDefaultLocale } from '../utils.ts';\n\nexport default class extends Service {\n date: Date | null = null;\n\n @tracked _local?: string;\n\n get locale(): string {\n if (this._local) {\n return this._local;\n }\n\n return getDefaultLocale();\n }\n\n set locale(value) {\n this._local = value;\n }\n\n // Methods\n getDate(): Date {\n return this.date || new Date();\n }\n}\n"],"names":["Service","date","g","prototype","tracked","i","void 0","locale","_local","getDefaultLocale","value","getDate","Date"],"mappings":";;;;;AAIe,mBAAA,SAAcA,OAAO,CAAC;AACnCC,EAAAA,IAAI,GAAgB,IAAI;AAAC,EAAA;IAAAC,CAAA,CAAA,IAAA,CAAAC,SAAA,EAAA,QAAA,EAAA,CAExBC,OAAO,CAAA,CAAA;AAAA;AAAA,EAAA,OAAA,IAAAC,CAAA,CAAA,IAAA,EAAA,QAAA,CAAA,EAAAC,KAAA,CAAA;EAER,IAAIC,MAAMA,GAAW;IACnB,IAAI,IAAI,CAACC,MAAM,EAAE;MACf,OAAO,IAAI,CAACA,MAAM;AACpB;IAEA,OAAOC,gBAAgB,EAAE;AAC3B;EAEA,IAAIF,MAAMA,CAACG,KAAK,EAAE;IAChB,IAAI,CAACF,MAAM,GAAGE,KAAK;AACrB;;AAEA;AACAC,EAAAA,OAAOA,GAAS;AACd,IAAA,OAAO,IAAI,CAACV,IAAI,IAAI,IAAIW,IAAI,EAAE;AAChC;AACF;;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"helpers.js","sources":["../../src/test-support/helpers.ts"],"sourcesContent":["import { run } from '@ember/runloop';\nimport { assert } from '@ember/debug';\nimport { click, settled, find } from '@ember/test-helpers';\nimport { formatDate } from '../utils.ts';\nimport type PowerCalendarMultipleComponent from '../components/power-calendar-multiple.ts';\nimport type PowerCalendarComponent from '../components/power-calendar.ts';\nimport type PowerCalendarRangeComponent from '../components/power-calendar-range.ts';\n\nexport default {};\n\nexport * from '../utils.ts';\n\nfunction findCalendarElement(selector: string): Element | null | undefined {\n const target = find(selector);\n\n if (target) {\n if (target.classList.contains('ember-power-calendar')) {\n return target;\n } else {\n return (\n target.querySelector('.ember-power-calendar') ||\n target.querySelector('[data-power-calendar-id]')\n );\n }\n }\n}\n\nfunction findCalendarGuid(selector: string): string | undefined {\n const maybeCalendar = findCalendarElement(selector);\n if (!maybeCalendar) {\n return;\n }\n if (maybeCalendar.classList.contains('ember-power-calendar')) {\n return maybeCalendar.id;\n } else {\n return (maybeCalendar as HTMLElement).dataset['powerCalendarId'];\n }\n}\n\nfunction findComponentInstance(\n selector: string,\n):\n | PowerCalendarComponent\n | PowerCalendarMultipleComponent\n | PowerCalendarRangeComponent {\n const calendarGuid = findCalendarGuid(selector);\n assert(\n `Could not find a calendar using selector: \"${selector}\"`,\n calendarGuid,\n );\n // @ts-expect-error Property '__powerCalendars'\n return window.__powerCalendars[calendarGuid];\n}\n\nexport async function calendarCenter(\n selector: string,\n newCenter: Date,\n): Promise<void> {\n assert(\n '`calendarCenter` expect a Date object as second argument',\n newCenter instanceof Date,\n );\n const calendarComponent = findComponentInstance(selector);\n const onCenterChange = calendarComponent.args.onCenterChange;\n assert(\n \"You cannot call `calendarCenter` on a component that doesn't has an `@onCenterChange` action\",\n !!onCenterChange,\n );\n const publicAPI = calendarComponent.publicAPI;\n run(() =>\n publicAPI.actions.changeCenter!(newCenter, publicAPI, {} as MouseEvent),\n );\n return settled();\n}\n\nexport async function calendarSelect(\n selector: string,\n selected: Date,\n): Promise<void> {\n assert('`calendarSelect` expect a Date object as second argument', selected);\n const calendarElement = findCalendarElement(selector);\n const daySelector = `${selector} [data-date=\"${formatDate(\n selected,\n 'YYYY-MM-DD',\n )}\"]`;\n const dayElement = calendarElement?.querySelector(daySelector);\n if (!dayElement) {\n await calendarCenter(selector, selected);\n }\n return click(daySelector);\n}\n"],"names":["findCalendarElement","selector","target","find","classList","contains","querySelector","findCalendarGuid","maybeCalendar","id","dataset","findComponentInstance","calendarGuid","assert","window","__powerCalendars","calendarCenter","newCenter","Date","calendarComponent","onCenterChange","args","publicAPI","run","actions","changeCenter","settled","calendarSelect","selected","calendarElement","daySelector","formatDate","dayElement","click"],"mappings":";;;;;;AAQA,cAAe,EAAE,CAAA;AAIjB,SAASA,mBAAmBA,CAACC,QAAgB,EAA8B;AACzE,EAAA,MAAMC,MAAM,GAAGC,IAAI,CAACF,QAAQ,CAAC,CAAA;AAE7B,EAAA,IAAIC,MAAM,EAAE;IACV,IAAIA,MAAM,CAACE,SAAS,CAACC,QAAQ,CAAC,sBAAsB,CAAC,EAAE;AACrD,MAAA,OAAOH,MAAM,CAAA;AACf,KAAC,MAAM;AACL,MAAA,OACEA,MAAM,CAACI,aAAa,CAAC,uBAAuB,CAAC,IAC7CJ,MAAM,CAACI,aAAa,CAAC,0BAA0B,CAAC,CAAA;AAEpD,KAAA;AACF,GAAA;AACF,CAAA;AAEA,SAASC,gBAAgBA,CAACN,QAAgB,EAAsB;AAC9D,EAAA,MAAMO,aAAa,GAAGR,mBAAmB,CAACC,QAAQ,CAAC,CAAA;EACnD,IAAI,CAACO,aAAa,EAAE;AAClB,IAAA,OAAA;AACF,GAAA;EACA,IAAIA,aAAa,CAACJ,SAAS,CAACC,QAAQ,CAAC,sBAAsB,CAAC,EAAE;IAC5D,OAAOG,aAAa,CAACC,EAAE,CAAA;AACzB,GAAC,MAAM;AACL,IAAA,OAAQD,aAAa,CAAiBE,OAAO,CAAC,iBAAiB,CAAC,CAAA;AAClE,GAAA;AACF,CAAA;AAEA,SAASC,qBAAqBA,CAC5BV,QAAgB,EAIc;AAC9B,EAAA,MAAMW,YAAY,GAAGL,gBAAgB,CAACN,QAAQ,CAAC,CAAA;AAC/CY,EAAAA,MAAM,CACJ,CAA8CZ,2CAAAA,EAAAA,QAAQ,CAAG,CAAA,CAAA,EACzDW,YACF,CAAC,CAAA;AACD;AACA,EAAA,OAAOE,MAAM,CAACC,gBAAgB,CAACH,YAAY,CAAC,CAAA;AAC9C,CAAA;AAEO,eAAeI,cAAcA,CAClCf,QAAgB,EAChBgB,SAAe,EACA;AACfJ,EAAAA,MAAM,CACJ,0DAA0D,EAC1DI,SAAS,YAAYC,IACvB,CAAC,CAAA;AACD,EAAA,MAAMC,iBAAiB,GAAGR,qBAAqB,CAACV,QAAQ,CAAC,CAAA;AACzD,EAAA,MAAMmB,cAAc,GAAGD,iBAAiB,CAACE,IAAI,CAACD,cAAc,CAAA;AAC5DP,EAAAA,MAAM,CACJ,8FAA8F,EAC9F,CAAC,CAACO,cACJ,CAAC,CAAA;AACD,EAAA,MAAME,SAAS,GAAGH,iBAAiB,CAACG,SAAS,CAAA;AAC7CC,EAAAA,GAAG,CAAC,MACFD,SAAS,CAACE,OAAO,CAACC,YAAY,CAAER,SAAS,EAAEK,SAAS,EAAE,EAAgB,CACxE,CAAC,CAAA;EACD,OAAOI,OAAO,EAAE,CAAA;AAClB,CAAA;AAEO,eAAeC,cAAcA,CAClC1B,QAAgB,EAChB2B,QAAc,EACC;AACff,EAAAA,MAAM,CAAC,0DAA0D,EAAEe,QAAQ,CAAC,CAAA;AAC5E,EAAA,MAAMC,eAAe,GAAG7B,mBAAmB,CAACC,QAAQ,CAAC,CAAA;EACrD,MAAM6B,WAAW,GAAG,CAAA,EAAG7B,QAAQ,CAAA,aAAA,EAAgB8B,UAAU,CACvDH,QAAQ,EACR,YACF,CAAC,CAAI,EAAA,CAAA,CAAA;AACL,EAAA,MAAMI,UAAU,GAAGH,eAAe,EAAEvB,aAAa,CAACwB,WAAW,CAAC,CAAA;EAC9D,IAAI,CAACE,UAAU,EAAE;AACf,IAAA,MAAMhB,cAAc,CAACf,QAAQ,EAAE2B,QAAQ,CAAC,CAAA;AAC1C,GAAA;EACA,OAAOK,KAAK,CAACH,WAAW,CAAC,CAAA;AAC3B;;;;"}
1
+ {"version":3,"file":"helpers.js","sources":["../../src/test-support/helpers.ts"],"sourcesContent":["import { run } from '@ember/runloop';\nimport { assert } from '@ember/debug';\nimport { click, settled, find } from '@ember/test-helpers';\nimport { formatDate } from '../utils.ts';\nimport type PowerCalendarMultipleComponent from '../components/power-calendar-multiple.ts';\nimport type PowerCalendarComponent from '../components/power-calendar.ts';\nimport type PowerCalendarRangeComponent from '../components/power-calendar-range.ts';\n\nexport default {};\n\nexport * from '../utils.ts';\n\nfunction findCalendarElement(selector: string): Element | null | undefined {\n const target = find(selector);\n\n if (target) {\n if (target.classList.contains('ember-power-calendar')) {\n return target;\n } else {\n return (\n target.querySelector('.ember-power-calendar') ||\n target.querySelector('[data-power-calendar-id]')\n );\n }\n }\n}\n\nfunction findCalendarGuid(selector: string): string | undefined {\n const maybeCalendar = findCalendarElement(selector);\n if (!maybeCalendar) {\n return;\n }\n if (maybeCalendar.classList.contains('ember-power-calendar')) {\n return maybeCalendar.id;\n } else {\n return (maybeCalendar as HTMLElement).dataset['powerCalendarId'];\n }\n}\n\nfunction findComponentInstance(\n selector: string,\n):\n | PowerCalendarComponent\n | PowerCalendarMultipleComponent\n | PowerCalendarRangeComponent {\n const calendarGuid = findCalendarGuid(selector);\n assert(\n `Could not find a calendar using selector: \"${selector}\"`,\n calendarGuid,\n );\n // @ts-expect-error Property '__powerCalendars'\n return window.__powerCalendars[calendarGuid];\n}\n\nexport async function calendarCenter(\n selector: string,\n newCenter: Date,\n): Promise<void> {\n assert(\n '`calendarCenter` expect a Date object as second argument',\n newCenter instanceof Date,\n );\n const calendarComponent = findComponentInstance(selector);\n const onCenterChange = calendarComponent.args.onCenterChange;\n assert(\n \"You cannot call `calendarCenter` on a component that doesn't has an `@onCenterChange` action\",\n !!onCenterChange,\n );\n const publicAPI = calendarComponent.publicAPI;\n run(() =>\n publicAPI.actions.changeCenter!(newCenter, publicAPI, {} as MouseEvent),\n );\n return settled();\n}\n\nexport async function calendarSelect(\n selector: string,\n selected: Date,\n): Promise<void> {\n assert('`calendarSelect` expect a Date object as second argument', selected);\n const calendarElement = findCalendarElement(selector);\n const daySelector = `${selector} [data-date=\"${formatDate(\n selected,\n 'YYYY-MM-DD',\n )}\"]`;\n const dayElement = calendarElement?.querySelector(daySelector);\n if (!dayElement) {\n await calendarCenter(selector, selected);\n }\n return click(daySelector);\n}\n"],"names":["findCalendarElement","selector","target","find","classList","contains","querySelector","findCalendarGuid","maybeCalendar","id","dataset","findComponentInstance","calendarGuid","assert","window","__powerCalendars","calendarCenter","newCenter","Date","calendarComponent","onCenterChange","args","publicAPI","run","actions","changeCenter","settled","calendarSelect","selected","calendarElement","daySelector","formatDate","dayElement","click"],"mappings":";;;;;;AAQA,cAAe,EAAE;AAIjB,SAASA,mBAAmBA,CAACC,QAAgB,EAA8B;AACzE,EAAA,MAAMC,MAAM,GAAGC,IAAI,CAACF,QAAQ,CAAC;AAE7B,EAAA,IAAIC,MAAM,EAAE;IACV,IAAIA,MAAM,CAACE,SAAS,CAACC,QAAQ,CAAC,sBAAsB,CAAC,EAAE;AACrD,MAAA,OAAOH,MAAM;AACf,KAAC,MAAM;AACL,MAAA,OACEA,MAAM,CAACI,aAAa,CAAC,uBAAuB,CAAC,IAC7CJ,MAAM,CAACI,aAAa,CAAC,0BAA0B,CAAC;AAEpD;AACF;AACF;AAEA,SAASC,gBAAgBA,CAACN,QAAgB,EAAsB;AAC9D,EAAA,MAAMO,aAAa,GAAGR,mBAAmB,CAACC,QAAQ,CAAC;EACnD,IAAI,CAACO,aAAa,EAAE;AAClB,IAAA;AACF;EACA,IAAIA,aAAa,CAACJ,SAAS,CAACC,QAAQ,CAAC,sBAAsB,CAAC,EAAE;IAC5D,OAAOG,aAAa,CAACC,EAAE;AACzB,GAAC,MAAM;AACL,IAAA,OAAQD,aAAa,CAAiBE,OAAO,CAAC,iBAAiB,CAAC;AAClE;AACF;AAEA,SAASC,qBAAqBA,CAC5BV,QAAgB,EAIc;AAC9B,EAAA,MAAMW,YAAY,GAAGL,gBAAgB,CAACN,QAAQ,CAAC;AAC/CY,EAAAA,MAAM,CACJ,CAA8CZ,2CAAAA,EAAAA,QAAQ,CAAG,CAAA,CAAA,EACzDW,YACF,CAAC;AACD;AACA,EAAA,OAAOE,MAAM,CAACC,gBAAgB,CAACH,YAAY,CAAC;AAC9C;AAEO,eAAeI,cAAcA,CAClCf,QAAgB,EAChBgB,SAAe,EACA;AACfJ,EAAAA,MAAM,CACJ,0DAA0D,EAC1DI,SAAS,YAAYC,IACvB,CAAC;AACD,EAAA,MAAMC,iBAAiB,GAAGR,qBAAqB,CAACV,QAAQ,CAAC;AACzD,EAAA,MAAMmB,cAAc,GAAGD,iBAAiB,CAACE,IAAI,CAACD,cAAc;AAC5DP,EAAAA,MAAM,CACJ,8FAA8F,EAC9F,CAAC,CAACO,cACJ,CAAC;AACD,EAAA,MAAME,SAAS,GAAGH,iBAAiB,CAACG,SAAS;AAC7CC,EAAAA,GAAG,CAAC,MACFD,SAAS,CAACE,OAAO,CAACC,YAAY,CAAER,SAAS,EAAEK,SAAS,EAAE,EAAgB,CACxE,CAAC;EACD,OAAOI,OAAO,EAAE;AAClB;AAEO,eAAeC,cAAcA,CAClC1B,QAAgB,EAChB2B,QAAc,EACC;AACff,EAAAA,MAAM,CAAC,0DAA0D,EAAEe,QAAQ,CAAC;AAC5E,EAAA,MAAMC,eAAe,GAAG7B,mBAAmB,CAACC,QAAQ,CAAC;EACrD,MAAM6B,WAAW,GAAG,CAAA,EAAG7B,QAAQ,CAAA,aAAA,EAAgB8B,UAAU,CACvDH,QAAQ,EACR,YACF,CAAC,CAAI,EAAA,CAAA;AACL,EAAA,MAAMI,UAAU,GAAGH,eAAe,EAAEvB,aAAa,CAACwB,WAAW,CAAC;EAC9D,IAAI,CAACE,UAAU,EAAE;AACf,IAAA,MAAMhB,cAAc,CAACf,QAAQ,EAAE2B,QAAQ,CAAC;AAC1C;EACA,OAAOK,KAAK,CAACH,WAAW,CAAC;AAC3B;;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"utils-D-RRxMcK.js","sources":["../src/-private/utils.ts"],"sourcesContent":["import type { TaskForAsyncTaskFunction } from 'ember-concurrency';\nimport type {\n CalendarAPI,\n CalendarDay,\n PowerCalendarActions,\n TPowerCalendarOnSelect,\n} from '../components/power-calendar';\nimport { add } from '../utils.ts';\nimport type { TPowerCalendarRangeOnSelect } from '../components/power-calendar-range';\nimport type { TPowerCalendarMultipleOnSelect } from '../components/power-calendar-multiple.ts';\n\nexport function publicActionsObject(\n onSelect:\n | TPowerCalendarOnSelect\n | TPowerCalendarRangeOnSelect\n | TPowerCalendarMultipleOnSelect\n | undefined,\n select: (day: CalendarDay, calendar: CalendarAPI, e: MouseEvent) => void,\n onCenterChange:\n | ((newCenter: any, calendar: CalendarAPI, event: MouseEvent) => void)\n | undefined,\n changeCenterTask: TaskForAsyncTaskFunction<\n unknown,\n (newCenter: Date, calendar: CalendarAPI, e: MouseEvent) => Promise<void>\n >,\n currentCenter: Date,\n): PowerCalendarActions {\n const actions: PowerCalendarActions = {};\n if (onSelect) {\n actions.select = (...args) => select(...args);\n }\n if (onCenterChange) {\n const changeCenter = (\n newCenter: Date,\n calendar: CalendarAPI,\n e: MouseEvent,\n ) => {\n return changeCenterTask.perform(newCenter, calendar, e);\n };\n actions.changeCenter = changeCenter;\n actions.moveCenter = (step, unit, calendar, e) => {\n const newCenter = add(currentCenter, step, unit);\n return changeCenter(newCenter, calendar, e);\n };\n }\n\n return actions;\n}\n"],"names":["publicActionsObject","onSelect","select","onCenterChange","changeCenterTask","currentCenter","actions","args","changeCenter","newCenter","calendar","e","perform","moveCenter","step","unit","add"],"mappings":";;AAWO,SAASA,mBAAmBA,CACjCC,QAIa,EACbC,MAAwE,EACxEC,cAEa,EACbC,gBAGC,EACDC,aAAmB,EACG;EACtB,MAAMC,OAA6B,GAAG,EAAE,CAAA;AACxC,EAAA,IAAIL,QAAQ,EAAE;IACZK,OAAO,CAACJ,MAAM,GAAG,CAAC,GAAGK,IAAI,KAAKL,MAAM,CAAC,GAAGK,IAAI,CAAC,CAAA;AAC/C,GAAA;AACA,EAAA,IAAIJ,cAAc,EAAE;IAClB,MAAMK,YAAY,GAAGA,CACnBC,SAAe,EACfC,QAAqB,EACrBC,CAAa,KACV;MACH,OAAOP,gBAAgB,CAACQ,OAAO,CAACH,SAAS,EAAEC,QAAQ,EAAEC,CAAC,CAAC,CAAA;KACxD,CAAA;IACDL,OAAO,CAACE,YAAY,GAAGA,YAAY,CAAA;IACnCF,OAAO,CAACO,UAAU,GAAG,CAACC,IAAI,EAAEC,IAAI,EAAEL,QAAQ,EAAEC,CAAC,KAAK;MAChD,MAAMF,SAAS,GAAGO,GAAG,CAACX,aAAa,EAAES,IAAI,EAAEC,IAAI,CAAC,CAAA;AAChD,MAAA,OAAOP,YAAY,CAACC,SAAS,EAAEC,QAAQ,EAAEC,CAAC,CAAC,CAAA;KAC5C,CAAA;AACH,GAAA;AAEA,EAAA,OAAOL,OAAO,CAAA;AAChB;;;;"}
1
+ {"version":3,"file":"utils-D-RRxMcK.js","sources":["../src/-private/utils.ts"],"sourcesContent":["import type { TaskForAsyncTaskFunction } from 'ember-concurrency';\nimport type {\n CalendarAPI,\n CalendarDay,\n PowerCalendarActions,\n TPowerCalendarOnSelect,\n} from '../components/power-calendar';\nimport { add } from '../utils.ts';\nimport type { TPowerCalendarRangeOnSelect } from '../components/power-calendar-range';\nimport type { TPowerCalendarMultipleOnSelect } from '../components/power-calendar-multiple.ts';\n\nexport function publicActionsObject(\n onSelect:\n | TPowerCalendarOnSelect\n | TPowerCalendarRangeOnSelect\n | TPowerCalendarMultipleOnSelect\n | undefined,\n select: (day: CalendarDay, calendar: CalendarAPI, e: MouseEvent) => void,\n onCenterChange:\n | ((newCenter: any, calendar: CalendarAPI, event: MouseEvent) => void)\n | undefined,\n changeCenterTask: TaskForAsyncTaskFunction<\n unknown,\n (newCenter: Date, calendar: CalendarAPI, e: MouseEvent) => Promise<void>\n >,\n currentCenter: Date,\n): PowerCalendarActions {\n const actions: PowerCalendarActions = {};\n if (onSelect) {\n actions.select = (...args) => select(...args);\n }\n if (onCenterChange) {\n const changeCenter = (\n newCenter: Date,\n calendar: CalendarAPI,\n e: MouseEvent,\n ) => {\n return changeCenterTask.perform(newCenter, calendar, e);\n };\n actions.changeCenter = changeCenter;\n actions.moveCenter = (step, unit, calendar, e) => {\n const newCenter = add(currentCenter, step, unit);\n return changeCenter(newCenter, calendar, e);\n };\n }\n\n return actions;\n}\n"],"names":["publicActionsObject","onSelect","select","onCenterChange","changeCenterTask","currentCenter","actions","args","changeCenter","newCenter","calendar","e","perform","moveCenter","step","unit","add"],"mappings":";;AAWO,SAASA,mBAAmBA,CACjCC,QAIa,EACbC,MAAwE,EACxEC,cAEa,EACbC,gBAGC,EACDC,aAAmB,EACG;EACtB,MAAMC,OAA6B,GAAG,EAAE;AACxC,EAAA,IAAIL,QAAQ,EAAE;IACZK,OAAO,CAACJ,MAAM,GAAG,CAAC,GAAGK,IAAI,KAAKL,MAAM,CAAC,GAAGK,IAAI,CAAC;AAC/C;AACA,EAAA,IAAIJ,cAAc,EAAE;IAClB,MAAMK,YAAY,GAAGA,CACnBC,SAAe,EACfC,QAAqB,EACrBC,CAAa,KACV;MACH,OAAOP,gBAAgB,CAACQ,OAAO,CAACH,SAAS,EAAEC,QAAQ,EAAEC,CAAC,CAAC;KACxD;IACDL,OAAO,CAACE,YAAY,GAAGA,YAAY;IACnCF,OAAO,CAACO,UAAU,GAAG,CAACC,IAAI,EAAEC,IAAI,EAAEL,QAAQ,EAAEC,CAAC,KAAK;MAChD,MAAMF,SAAS,GAAGO,GAAG,CAACX,aAAa,EAAES,IAAI,EAAEC,IAAI,CAAC;AAChD,MAAA,OAAOP,YAAY,CAACC,SAAS,EAAEC,QAAQ,EAAEC,CAAC,CAAC;KAC5C;AACH;AAEA,EAAA,OAAOL,OAAO;AAChB;;;;"}
package/dist/utils.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"utils.js","sources":["../src/utils.ts"],"sourcesContent":["export interface DateLibrary {\n add: (date: Date, quantity: number, unit: string) => Date;\n formatDate: (date: Date, format: string, locale: string | null) => string;\n startOf: (date: Date, unit: string) => Date;\n endOf: (date: Date, unit: string) => Date;\n weekday: (date: Date) => number;\n isoWeekday: (date: Date) => number;\n getWeekdaysShort: () => string[];\n getWeekdaysMin: () => string[];\n getWeekdays: () => string[];\n isAfter: (date1: Date, date2: Date) => boolean;\n isBefore: (date1: Date, date2: Date) => boolean;\n isSame: (date1: Date, date2: Date, unit: string) => boolean;\n isBetween: (\n date: Date,\n start: Date,\n end: Date,\n unit?: string,\n inclusivity?: string,\n ) => boolean;\n diff: (date1: Date, date2: Date) => number;\n normalizeDate: (date?: unknown) => Date | undefined; // date could be null, number. Date, Moment, undefined...\n normalizeRangeActionValue: (\n val: RangeActionValue,\n ) => NormalizeRangeActionValue;\n normalizeMultipleActionValue: (val: {\n date: Date[];\n }) => NormalizeMultipleActionValue;\n normalizeCalendarDay: (day: PowerCalendarDay) => PowerCalendarDay;\n withLocale: (locale: string, fn: () => unknown) => unknown;\n normalizeCalendarValue: (value: { date: Date }) => NormalizeCalendarValue;\n normalizeDuration: (value: unknown) => number | null | undefined;\n getDefaultLocale: () => string;\n localeStartOfWeek: (locale: string) => number;\n startOfWeek: (day: Date, startOfWeek: number) => Date;\n endOfWeek: (day: Date, startOfWeek: number) => Date;\n}\n\nexport interface NormalizeRangeActionValue {\n date: {\n start?: Date | null;\n end?: Date | null;\n };\n moment?: {\n start?: unknown;\n end?: unknown;\n };\n datetime?: {\n start?: unknown;\n end?: unknown;\n };\n}\n\nexport interface NormalizeMultipleActionValue {\n date: Date[];\n moment?: unknown[];\n datetime?: unknown[];\n}\n\nexport interface NormalizeCalendarValue {\n date: Date | undefined;\n moment?: unknown;\n datetime?: unknown;\n}\n\nexport interface RangeActionValue {\n date: SelectedPowerCalendarRange;\n}\n\nexport interface SelectedPowerCalendarRange {\n start?: Date | null;\n end?: Date | null;\n}\n\nexport interface PowerCalendarDay {\n id: string; // A unique identified of the day. It has the format YYYY-MM-DD\n number: number; // The day's number. From 1 to 31\n date: Date; //\tThe native Date object representing that day.\n moment?: unknown; //\tThe moment representing that day. (only when ember-power-calendar-moment is installed)\n datetime?: unknown; //\tThe luxon representing that day. (only when ember-power-calendar-luxon is installed)\n isFocused: boolean; //\tIt is true when the the cell of that day has the focus\n isCurrentMonth: boolean; //\tIt is true for those days in the current day, and false for those days for the previous/next months shown around.\n isToday: boolean; //\tIt is true if this day is today\n isSelected: boolean; //\tIt is true if the date of this day is the selected one. In multiple select it is true if the date of this day is among the selected ones. In range selects, it is true if the date if this day is in the range, including both ends.\n isRangeStart?: boolean; //\tIt is true if this day is the beginning of a range. It is false in non-range calendars\n isRangeEnd?: boolean; //\tIt is true if this day is the end of a range. It is false in non-range calendars\n isDisabled: boolean; //\tIt is true if days are not in range for range calendars or are included in disabled dates.\n}\n\nlet dateLib: DateLibrary;\n\nexport function registerDateLibrary(dateLibrary: DateLibrary) {\n dateLib = dateLibrary;\n}\n\nfunction getDateLibrary() {\n if (!dateLib) {\n throw new Error(\n `You have installed \"ember-power-calendar\" but you don't have registered any of the required meta-addons to make it work, like 'ember-power-calendar-moment' or 'ember-power-calendar-luxon'. Please add to your app and register the meta package in app.js.`,\n );\n }\n\n return dateLib;\n}\n\nexport function add(date: Date, quantity: number, unit: string): Date {\n return getDateLibrary().add(date, quantity, unit);\n}\n\nexport function formatDate(\n date: Date,\n format: string,\n locale: string | null = null,\n): string {\n return getDateLibrary().formatDate(date, format, locale);\n}\n\nexport function startOf(date: Date, unit: string): Date {\n return getDateLibrary().startOf(date, unit);\n}\n\nexport function endOf(date: Date, unit: string): Date {\n return getDateLibrary().endOf(date, unit);\n}\n\nexport function weekday(date: Date): number {\n return getDateLibrary().weekday(date);\n}\n\nexport function isoWeekday(date: Date): number {\n return getDateLibrary().isoWeekday(date);\n}\n\nexport function getWeekdaysShort(): string[] {\n return getDateLibrary().getWeekdaysShort();\n}\n\nexport function getWeekdaysMin(): string[] {\n return getDateLibrary().getWeekdaysMin();\n}\n\nexport function getWeekdays(): string[] {\n return getDateLibrary().getWeekdays();\n}\n\nexport function isAfter(date1: Date, date2: Date): boolean {\n return getDateLibrary().isAfter(date1, date2);\n}\n\nexport function isBefore(date1: Date, date2: Date): boolean {\n return getDateLibrary().isBefore(date1, date2);\n}\n\nexport function isSame(date1: Date, date2: Date, unit: string): boolean {\n return getDateLibrary().isSame(date1, date2, unit);\n}\n\nexport function isBetween(\n date: Date,\n start: Date,\n end: Date,\n unit: string,\n inclusivity: string,\n): boolean {\n return getDateLibrary().isBetween(date, start, end, unit, inclusivity);\n}\n\nexport function diff(date1: Date, date2: Date): number {\n return getDateLibrary().diff(date1, date2);\n}\n\nexport function normalizeDate(date?: unknown): Date | undefined {\n return getDateLibrary().normalizeDate(date);\n}\n\nexport function normalizeRangeActionValue(\n val: RangeActionValue,\n): NormalizeRangeActionValue {\n return getDateLibrary().normalizeRangeActionValue(val);\n}\n\nexport function normalizeMultipleActionValue(val: {\n date: Date[];\n}): NormalizeMultipleActionValue {\n return getDateLibrary().normalizeMultipleActionValue(val);\n}\n\nexport function normalizeCalendarDay(day: PowerCalendarDay): PowerCalendarDay {\n return getDateLibrary().normalizeCalendarDay(day);\n}\n\nexport function withLocale(locale: string, fn: () => unknown): unknown {\n return getDateLibrary().withLocale(locale, fn);\n}\n\nexport function normalizeCalendarValue(value: {\n date: Date;\n}): NormalizeCalendarValue {\n return getDateLibrary().normalizeCalendarValue(value);\n}\n\nexport function normalizeDuration(value: unknown): number | null | undefined {\n return getDateLibrary().normalizeDuration(value);\n}\n\nexport function getDefaultLocale(): string {\n return getDateLibrary().getDefaultLocale();\n}\n\nexport function localeStartOfWeek(locale: string): number {\n return getDateLibrary().localeStartOfWeek(locale);\n}\n\nexport function startOfWeek(day: Date, startOfWeek: number): Date {\n return getDateLibrary().startOfWeek(day, startOfWeek);\n}\n\nexport function endOfWeek(day: Date, startOfWeek: number): Date {\n return getDateLibrary().endOfWeek(day, startOfWeek);\n}\n"],"names":["dateLib","registerDateLibrary","dateLibrary","getDateLibrary","Error","add","date","quantity","unit","formatDate","format","locale","startOf","endOf","weekday","isoWeekday","getWeekdaysShort","getWeekdaysMin","getWeekdays","isAfter","date1","date2","isBefore","isSame","isBetween","start","end","inclusivity","diff","normalizeDate","normalizeRangeActionValue","val","normalizeMultipleActionValue","normalizeCalendarDay","day","withLocale","fn","normalizeCalendarValue","value","normalizeDuration","getDefaultLocale","localeStartOfWeek","startOfWeek","endOfWeek"],"mappings":"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"}
1
+ {"version":3,"file":"utils.js","sources":["../src/utils.ts"],"sourcesContent":["export interface DateLibrary {\n add: (date: Date, quantity: number, unit: string) => Date;\n formatDate: (date: Date, format: string, locale: string | null) => string;\n startOf: (date: Date, unit: string) => Date;\n endOf: (date: Date, unit: string) => Date;\n weekday: (date: Date) => number;\n isoWeekday: (date: Date) => number;\n getWeekdaysShort: () => string[];\n getWeekdaysMin: () => string[];\n getWeekdays: () => string[];\n isAfter: (date1: Date, date2: Date) => boolean;\n isBefore: (date1: Date, date2: Date) => boolean;\n isSame: (date1: Date, date2: Date, unit: string) => boolean;\n isBetween: (\n date: Date,\n start: Date,\n end: Date,\n unit?: string,\n inclusivity?: string,\n ) => boolean;\n diff: (date1: Date, date2: Date) => number;\n normalizeDate: (date?: unknown) => Date | undefined; // date could be null, number. Date, Moment, undefined...\n normalizeRangeActionValue: (\n val: RangeActionValue,\n ) => NormalizeRangeActionValue;\n normalizeMultipleActionValue: (val: {\n date: Date[];\n }) => NormalizeMultipleActionValue;\n normalizeCalendarDay: (day: PowerCalendarDay) => PowerCalendarDay;\n withLocale: (locale: string, fn: () => unknown) => unknown;\n normalizeCalendarValue: (value: { date: Date }) => NormalizeCalendarValue;\n normalizeDuration: (value: unknown) => number | null | undefined;\n getDefaultLocale: () => string;\n localeStartOfWeek: (locale: string) => number;\n startOfWeek: (day: Date, startOfWeek: number) => Date;\n endOfWeek: (day: Date, startOfWeek: number) => Date;\n}\n\nexport interface NormalizeRangeActionValue {\n date: {\n start?: Date | null;\n end?: Date | null;\n };\n moment?: {\n start?: unknown;\n end?: unknown;\n };\n datetime?: {\n start?: unknown;\n end?: unknown;\n };\n}\n\nexport interface NormalizeMultipleActionValue {\n date: Date[];\n moment?: unknown[];\n datetime?: unknown[];\n}\n\nexport interface NormalizeCalendarValue {\n date: Date | undefined;\n moment?: unknown;\n datetime?: unknown;\n}\n\nexport interface RangeActionValue {\n date: SelectedPowerCalendarRange;\n}\n\nexport interface SelectedPowerCalendarRange {\n start?: Date | null;\n end?: Date | null;\n}\n\nexport interface PowerCalendarDay {\n id: string; // A unique identified of the day. It has the format YYYY-MM-DD\n number: number; // The day's number. From 1 to 31\n date: Date; //\tThe native Date object representing that day.\n moment?: unknown; //\tThe moment representing that day. (only when ember-power-calendar-moment is installed)\n datetime?: unknown; //\tThe luxon representing that day. (only when ember-power-calendar-luxon is installed)\n isFocused: boolean; //\tIt is true when the the cell of that day has the focus\n isCurrentMonth: boolean; //\tIt is true for those days in the current day, and false for those days for the previous/next months shown around.\n isToday: boolean; //\tIt is true if this day is today\n isSelected: boolean; //\tIt is true if the date of this day is the selected one. In multiple select it is true if the date of this day is among the selected ones. In range selects, it is true if the date if this day is in the range, including both ends.\n isRangeStart?: boolean; //\tIt is true if this day is the beginning of a range. It is false in non-range calendars\n isRangeEnd?: boolean; //\tIt is true if this day is the end of a range. It is false in non-range calendars\n isDisabled: boolean; //\tIt is true if days are not in range for range calendars or are included in disabled dates.\n}\n\nlet dateLib: DateLibrary;\n\nexport function registerDateLibrary(dateLibrary: DateLibrary) {\n dateLib = dateLibrary;\n}\n\nfunction getDateLibrary() {\n if (!dateLib) {\n throw new Error(\n `You have installed \"ember-power-calendar\" but you don't have registered any of the required meta-addons to make it work, like 'ember-power-calendar-moment' or 'ember-power-calendar-luxon'. Please add to your app and register the meta package in app.js.`,\n );\n }\n\n return dateLib;\n}\n\nexport function add(date: Date, quantity: number, unit: string): Date {\n return getDateLibrary().add(date, quantity, unit);\n}\n\nexport function formatDate(\n date: Date,\n format: string,\n locale: string | null = null,\n): string {\n return getDateLibrary().formatDate(date, format, locale);\n}\n\nexport function startOf(date: Date, unit: string): Date {\n return getDateLibrary().startOf(date, unit);\n}\n\nexport function endOf(date: Date, unit: string): Date {\n return getDateLibrary().endOf(date, unit);\n}\n\nexport function weekday(date: Date): number {\n return getDateLibrary().weekday(date);\n}\n\nexport function isoWeekday(date: Date): number {\n return getDateLibrary().isoWeekday(date);\n}\n\nexport function getWeekdaysShort(): string[] {\n return getDateLibrary().getWeekdaysShort();\n}\n\nexport function getWeekdaysMin(): string[] {\n return getDateLibrary().getWeekdaysMin();\n}\n\nexport function getWeekdays(): string[] {\n return getDateLibrary().getWeekdays();\n}\n\nexport function isAfter(date1: Date, date2: Date): boolean {\n return getDateLibrary().isAfter(date1, date2);\n}\n\nexport function isBefore(date1: Date, date2: Date): boolean {\n return getDateLibrary().isBefore(date1, date2);\n}\n\nexport function isSame(date1: Date, date2: Date, unit: string): boolean {\n return getDateLibrary().isSame(date1, date2, unit);\n}\n\nexport function isBetween(\n date: Date,\n start: Date,\n end: Date,\n unit: string,\n inclusivity: string,\n): boolean {\n return getDateLibrary().isBetween(date, start, end, unit, inclusivity);\n}\n\nexport function diff(date1: Date, date2: Date): number {\n return getDateLibrary().diff(date1, date2);\n}\n\nexport function normalizeDate(date?: unknown): Date | undefined {\n return getDateLibrary().normalizeDate(date);\n}\n\nexport function normalizeRangeActionValue(\n val: RangeActionValue,\n): NormalizeRangeActionValue {\n return getDateLibrary().normalizeRangeActionValue(val);\n}\n\nexport function normalizeMultipleActionValue(val: {\n date: Date[];\n}): NormalizeMultipleActionValue {\n return getDateLibrary().normalizeMultipleActionValue(val);\n}\n\nexport function normalizeCalendarDay(day: PowerCalendarDay): PowerCalendarDay {\n return getDateLibrary().normalizeCalendarDay(day);\n}\n\nexport function withLocale(locale: string, fn: () => unknown): unknown {\n return getDateLibrary().withLocale(locale, fn);\n}\n\nexport function normalizeCalendarValue(value: {\n date: Date;\n}): NormalizeCalendarValue {\n return getDateLibrary().normalizeCalendarValue(value);\n}\n\nexport function normalizeDuration(value: unknown): number | null | undefined {\n return getDateLibrary().normalizeDuration(value);\n}\n\nexport function getDefaultLocale(): string {\n return getDateLibrary().getDefaultLocale();\n}\n\nexport function localeStartOfWeek(locale: string): number {\n return getDateLibrary().localeStartOfWeek(locale);\n}\n\nexport function startOfWeek(day: Date, startOfWeek: number): Date {\n return getDateLibrary().startOfWeek(day, startOfWeek);\n}\n\nexport function endOfWeek(day: Date, startOfWeek: number): Date {\n return getDateLibrary().endOfWeek(day, startOfWeek);\n}\n"],"names":["dateLib","registerDateLibrary","dateLibrary","getDateLibrary","Error","add","date","quantity","unit","formatDate","format","locale","startOf","endOf","weekday","isoWeekday","getWeekdaysShort","getWeekdaysMin","getWeekdays","isAfter","date1","date2","isBefore","isSame","isBetween","start","end","inclusivity","diff","normalizeDate","normalizeRangeActionValue","val","normalizeMultipleActionValue","normalizeCalendarDay","day","withLocale","fn","normalizeCalendarValue","value","normalizeDuration","getDefaultLocale","localeStartOfWeek","startOfWeek","endOfWeek"],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "ember-power-calendar",
3
- "version": "1.2.0",
3
+ "version": "1.3.0",
4
4
  "description": "Powerful and customizable calendar component for Ember",
5
5
  "keywords": [
6
6
  "ember-addon"
@@ -64,26 +64,26 @@
64
64
  "test": "echo 'A v2 addon does not have tests, run tests in test-app'"
65
65
  },
66
66
  "dependencies": {
67
- "@embroider/addon-shim": "^1.8.9",
68
- "decorator-transforms": "^2.0.0",
67
+ "@embroider/addon-shim": "^1.9.0",
68
+ "decorator-transforms": "^2.3.0",
69
69
  "@embroider/util": "^1.13.2",
70
- "@embroider/macros": "^1.16.6",
70
+ "@embroider/macros": "^1.16.9",
71
71
  "ember-assign-helper": "^0.5.0",
72
72
  "ember-element-helper": "^0.8.6",
73
73
  "ember-truth-helpers": "^4.0.3"
74
74
  },
75
75
  "devDependencies": {
76
- "@babel/core": "^7.25.2",
77
- "@babel/runtime": "^7.25.6",
78
- "@babel/plugin-transform-typescript": "^7.25.2",
79
- "@babel/preset-typescript": "^7.24.7",
76
+ "@babel/core": "^7.26.0",
77
+ "@babel/runtime": "^7.26.0",
78
+ "@babel/plugin-transform-typescript": "^7.25.9",
79
+ "@babel/preset-typescript": "^7.26.0",
80
80
  "@ember/test-helpers": "^4.0.4",
81
- "@embroider/addon-dev": "^5.0.0",
82
- "@glint/core": "^1.4.0",
83
- "@glint/environment-ember-loose": "^1.4.0",
84
- "@glint/environment-ember-template-imports": "^1.4.0",
85
- "@glint/template": "^1.4.0",
86
- "@glimmer/component": "^1.1.2",
81
+ "@embroider/addon-dev": "^7.0.0",
82
+ "@glint/core": "^1.5.0",
83
+ "@glint/environment-ember-loose": "^1.5.0",
84
+ "@glint/environment-ember-template-imports": "^1.5.0",
85
+ "@glint/template": "^1.5.0",
86
+ "@glimmer/component": "^2.0.0",
87
87
  "@glimmer/tracking": "^1.1.2",
88
88
  "@rollup/plugin-babel": "^6.0.4",
89
89
  "@tsconfig/ember": "^3.0.8",
@@ -107,29 +107,28 @@
107
107
  "@types/ember__template": "^4.0.7",
108
108
  "@types/ember__test": "^4.0.6",
109
109
  "@types/ember__utils": "^4.0.7",
110
- "@typescript-eslint/eslint-plugin": "^8.4.0",
111
- "@typescript-eslint/parser": "^8.4.0",
112
- "babel-plugin-ember-template-compilation": "^2.2.5",
113
- "concurrently": "^8.2.2",
110
+ "@typescript-eslint/eslint-plugin": "^8.14.0",
111
+ "@typescript-eslint/parser": "^8.14.0",
112
+ "babel-plugin-ember-template-compilation": "^2.3.0",
113
+ "concurrently": "^9.1.0",
114
114
  "ember-concurrency": "^4.0.2",
115
- "ember-source": "~5.11.0",
115
+ "ember-source": "~5.12.0",
116
116
  "ember-template-lint": "^6.0.0",
117
117
  "eslint": "^8.57.0",
118
118
  "eslint-config-prettier": "^9.1.0",
119
- "eslint-plugin-ember": "^12.2.0",
120
- "eslint-plugin-import": "^2.30.0",
121
- "eslint-plugin-n": "^17.10.2",
119
+ "eslint-plugin-ember": "^12.3.1",
120
+ "eslint-plugin-import": "^2.31.0",
121
+ "eslint-plugin-n": "^17.13.1",
122
122
  "eslint-plugin-prettier": "^5.2.1",
123
- "node-sass": "^9.0.0",
124
- "postcss": "^8.4.45",
123
+ "postcss": "^8.4.49",
125
124
  "prettier": "^3.3.3",
126
- "prettier-plugin-ember-template-tag": "^2.0.2",
127
- "rollup": "^4.21.2",
128
- "rollup-plugin-styles": "^4.0.0",
125
+ "prettier-plugin-ember-template-tag": "^2.0.4",
126
+ "rollup": "^4.25.0",
127
+ "rollup-plugin-sass": "^1.14.0",
129
128
  "rsvp": "^4.8.5",
130
- "sass": "^1.78.0",
131
- "typescript": "^5.5.4",
132
- "webpack": "^5.94.0"
129
+ "sass": "^1.80.6",
130
+ "typescript": "^5.6.3",
131
+ "webpack": "^5.96.1"
133
132
  },
134
133
  "publishConfig": {
135
134
  "registry": "https://registry.npmjs.org"
@@ -157,7 +156,7 @@
157
156
  },
158
157
  "peerDependencies": {
159
158
  "@ember/test-helpers": "^2.9.4 || ^3.2.1 || ^4.0.4",
160
- "@glimmer/component": "^1.1.2",
159
+ "@glimmer/component": "^1.1.2 || ^2.0.0",
161
160
  "@glimmer/tracking": "^1.1.2",
162
161
  "ember-concurrency": "^4.0.2",
163
162
  "ember-source": "^3.28.0 || ^4.0.0 || >=5.0.0"
@@ -1,32 +1,39 @@
1
1
  :root {
2
- --ember-power-calendar-cell-size: 35px; }
2
+ --ember-power-calendar-cell-size: 35px;
3
+ }
3
4
 
4
5
  .ember-power-calendar {
5
6
  box-sizing: border-box;
6
7
  position: relative;
7
8
  font-size: 14px;
8
- line-height: 1.4286; }
9
+ line-height: 1.4286;
10
+ }
9
11
 
10
12
  .ember-power-calendar-nav {
11
13
  box-sizing: border-box;
12
14
  display: flex;
13
15
  justify-content: space-between;
14
- line-height: 2; }
16
+ line-height: 2;
17
+ }
15
18
 
16
19
  .ember-power-calendar-nav * {
17
- box-sizing: border-box; }
20
+ box-sizing: border-box;
21
+ }
18
22
 
19
23
  .ember-power-calendar-days,
20
24
  .ember-power-calendar-days * {
21
- box-sizing: border-box; }
25
+ box-sizing: border-box;
26
+ }
22
27
 
23
28
  .ember-power-calendar-nav-title {
24
29
  flex: 1;
25
- text-align: center; }
30
+ text-align: center;
31
+ }
26
32
 
27
33
  .ember-power-calendar-row {
28
34
  display: flex;
29
- justify-content: space-between; }
35
+ justify-content: space-between;
36
+ }
30
37
 
31
38
  .ember-power-calendar-weekday {
32
39
  appearance: none;
@@ -40,7 +47,8 @@
40
47
  justify-content: center;
41
48
  display: flex;
42
49
  align-items: center;
43
- padding: 0; }
50
+ padding: 0;
51
+ }
44
52
 
45
53
  .ember-power-calendar-day {
46
54
  appearance: none;
@@ -54,7 +62,8 @@
54
62
  font-size: inherit;
55
63
  align-items: center;
56
64
  justify-content: center;
57
- padding: 0; }
65
+ padding: 0;
66
+ }
58
67
 
59
68
  .ember-power-calendar-nav-control {
60
69
  appearance: none;
@@ -65,84 +74,118 @@
65
74
  outline: none;
66
75
  outline: initial;
67
76
  line-height: 1;
68
- font-size: 150%; }
69
- .ember-power-calendar-nav-control:focus {
70
- transform: scale(1.2); }
77
+ font-size: 150%;
78
+ }
79
+ .ember-power-calendar-nav-control:focus {
80
+ transform: scale(1.2);
81
+ }
71
82
 
72
83
  .ember-power-calendar-day--selected,
73
84
  .ember-power-calendar-day--selected:not([disabled]):hover {
74
- font-weight: bold; }
85
+ font-weight: bold;
86
+ }
75
87
 
76
88
  .ember-power-calendar-day--interactive[disabled] {
77
- opacity: 0.4; }
89
+ opacity: 0.4;
90
+ }
78
91
 
79
92
  .ember-power-calendar {
80
- width: calc( calc(var(--ember-power-calendar-cell-size) + 2px) * 7 - 2px + 0 + 0); }
81
- .ember-power-calendar .ember-power-calendar-week:first-child[data-missing-days="1"] {
82
- padding-left: calc(calc(var(--ember-power-calendar-cell-size) + 2px) * 1); }
83
- .ember-power-calendar .ember-power-calendar-week:first-child[data-missing-days="2"] {
84
- padding-left: calc(calc(var(--ember-power-calendar-cell-size) + 2px) * 2); }
85
- .ember-power-calendar .ember-power-calendar-week:first-child[data-missing-days="3"] {
86
- padding-left: calc(calc(var(--ember-power-calendar-cell-size) + 2px) * 3); }
87
- .ember-power-calendar .ember-power-calendar-week:first-child[data-missing-days="4"] {
88
- padding-left: calc(calc(var(--ember-power-calendar-cell-size) + 2px) * 4); }
89
- .ember-power-calendar .ember-power-calendar-week:first-child[data-missing-days="5"] {
90
- padding-left: calc(calc(var(--ember-power-calendar-cell-size) + 2px) * 5); }
91
- .ember-power-calendar .ember-power-calendar-week:first-child[data-missing-days="6"] {
92
- padding-left: calc(calc(var(--ember-power-calendar-cell-size) + 2px) * 6); }
93
- .ember-power-calendar .ember-power-calendar-week:last-child[data-missing-days="1"] {
94
- padding-right: calc(calc(var(--ember-power-calendar-cell-size) + 2px) * 1); }
95
- .ember-power-calendar .ember-power-calendar-week:last-child[data-missing-days="2"] {
96
- padding-right: calc(calc(var(--ember-power-calendar-cell-size) + 2px) * 2); }
97
- .ember-power-calendar .ember-power-calendar-week:last-child[data-missing-days="3"] {
98
- padding-right: calc(calc(var(--ember-power-calendar-cell-size) + 2px) * 3); }
99
- .ember-power-calendar .ember-power-calendar-week:last-child[data-missing-days="4"] {
100
- padding-right: calc(calc(var(--ember-power-calendar-cell-size) + 2px) * 4); }
101
- .ember-power-calendar .ember-power-calendar-week:last-child[data-missing-days="5"] {
102
- padding-right: calc(calc(var(--ember-power-calendar-cell-size) + 2px) * 5); }
103
- .ember-power-calendar .ember-power-calendar-week:last-child[data-missing-days="6"] {
104
- padding-right: calc(calc(var(--ember-power-calendar-cell-size) + 2px) * 6); }
105
- .ember-power-calendar .ember-power-calendar-day,
106
- .ember-power-calendar .ember-power-calendar-weekday {
107
- max-width: "var(--ember-power-calendar-cell-size)";
108
- max-height: "var(--ember-power-calendar-cell-size)";
109
- width: "var(--ember-power-calendar-cell-size)";
110
- height: "var(--ember-power-calendar-cell-size)"; }
111
- .ember-power-calendar .ember-power-calendar-weekdays,
112
- .ember-power-calendar .ember-power-calendar-week {
113
- height: calc(var(--ember-power-calendar-cell-size) + 2px);
114
- padding-left: 0;
115
- padding-right: 0; }
116
- .ember-power-calendar .ember-power-calendar-day {
117
- color: #bbb; }
118
- .ember-power-calendar .ember-power-calendar-weekdays {
119
- color: #333333; }
120
- .ember-power-calendar .ember-power-calendar-nav-control {
121
- color: #0078c9; }
122
- .ember-power-calendar .ember-power-calendar-nav-control:focus {
123
- color: #30acff; }
124
- .ember-power-calendar .ember-power-calendar-day--current-month {
125
- color: #656d78;
126
- background-color: #f5f7fa; }
127
- .ember-power-calendar .ember-power-calendar-day--today {
128
- background-color: #eee; }
129
- .ember-power-calendar .ember-power-calendar-day:not([disabled]):hover {
130
- background-color: #eee; }
131
- .ember-power-calendar .ember-power-calendar-day--focused {
132
- box-shadow: inset 0 -2px 0 0 #0078c9; }
133
- .ember-power-calendar .ember-power-calendar-day--selected.ember-power-calendar-day--range-start {
134
- background-color: #96d5ff; }
135
- .ember-power-calendar .ember-power-calendar-day--selected.ember-power-calendar-day--range-start:hover {
136
- background-color: #96d5ff; }
137
- .ember-power-calendar .ember-power-calendar-day--selected.ember-power-calendar-day--range-end {
138
- background-color: #96d5ff; }
139
- .ember-power-calendar .ember-power-calendar-day--selected.ember-power-calendar-day--range-end:hover {
140
- background-color: #96d5ff; }
141
- .ember-power-calendar .ember-power-calendar-day--selected {
142
- background-color: #c9e9ff;
143
- color: #656d78; }
144
- .ember-power-calendar .ember-power-calendar-day--selected:not([disabled]):hover {
145
- background-color: #c9e9ff;
146
- color: #656d78; }
147
- .ember-power-calendar .ember-power-calendar-day--other-month:not([disabled]):hover {
148
- color: #656d78; }
93
+ width: calc(calc(var(--ember-power-calendar-cell-size) + 2px) * 7 - 2px + 0 + 0);
94
+ }
95
+ .ember-power-calendar .ember-power-calendar-week:first-child[data-missing-days="1"] {
96
+ padding-left: calc(calc(var(--ember-power-calendar-cell-size) + 2px) * 1);
97
+ }
98
+ .ember-power-calendar .ember-power-calendar-week:first-child[data-missing-days="2"] {
99
+ padding-left: calc(calc(var(--ember-power-calendar-cell-size) + 2px) * 2);
100
+ }
101
+ .ember-power-calendar .ember-power-calendar-week:first-child[data-missing-days="3"] {
102
+ padding-left: calc(calc(var(--ember-power-calendar-cell-size) + 2px) * 3);
103
+ }
104
+ .ember-power-calendar .ember-power-calendar-week:first-child[data-missing-days="4"] {
105
+ padding-left: calc(calc(var(--ember-power-calendar-cell-size) + 2px) * 4);
106
+ }
107
+ .ember-power-calendar .ember-power-calendar-week:first-child[data-missing-days="5"] {
108
+ padding-left: calc(calc(var(--ember-power-calendar-cell-size) + 2px) * 5);
109
+ }
110
+ .ember-power-calendar .ember-power-calendar-week:first-child[data-missing-days="6"] {
111
+ padding-left: calc(calc(var(--ember-power-calendar-cell-size) + 2px) * 6);
112
+ }
113
+ .ember-power-calendar .ember-power-calendar-week:last-child[data-missing-days="1"] {
114
+ padding-right: calc(calc(var(--ember-power-calendar-cell-size) + 2px) * 1);
115
+ }
116
+ .ember-power-calendar .ember-power-calendar-week:last-child[data-missing-days="2"] {
117
+ padding-right: calc(calc(var(--ember-power-calendar-cell-size) + 2px) * 2);
118
+ }
119
+ .ember-power-calendar .ember-power-calendar-week:last-child[data-missing-days="3"] {
120
+ padding-right: calc(calc(var(--ember-power-calendar-cell-size) + 2px) * 3);
121
+ }
122
+ .ember-power-calendar .ember-power-calendar-week:last-child[data-missing-days="4"] {
123
+ padding-right: calc(calc(var(--ember-power-calendar-cell-size) + 2px) * 4);
124
+ }
125
+ .ember-power-calendar .ember-power-calendar-week:last-child[data-missing-days="5"] {
126
+ padding-right: calc(calc(var(--ember-power-calendar-cell-size) + 2px) * 5);
127
+ }
128
+ .ember-power-calendar .ember-power-calendar-week:last-child[data-missing-days="6"] {
129
+ padding-right: calc(calc(var(--ember-power-calendar-cell-size) + 2px) * 6);
130
+ }
131
+ .ember-power-calendar .ember-power-calendar-day,
132
+ .ember-power-calendar .ember-power-calendar-weekday {
133
+ max-width: "var(--ember-power-calendar-cell-size)";
134
+ max-height: "var(--ember-power-calendar-cell-size)";
135
+ width: "var(--ember-power-calendar-cell-size)";
136
+ height: "var(--ember-power-calendar-cell-size)";
137
+ }
138
+ .ember-power-calendar .ember-power-calendar-weekdays,
139
+ .ember-power-calendar .ember-power-calendar-week {
140
+ height: calc(var(--ember-power-calendar-cell-size) + 2px);
141
+ padding-left: 0;
142
+ padding-right: 0;
143
+ }
144
+ .ember-power-calendar .ember-power-calendar-day {
145
+ color: #bbb;
146
+ }
147
+ .ember-power-calendar .ember-power-calendar-weekdays {
148
+ color: #333333;
149
+ }
150
+ .ember-power-calendar .ember-power-calendar-nav-control {
151
+ color: #0078c9;
152
+ }
153
+ .ember-power-calendar .ember-power-calendar-nav-control:focus {
154
+ color: rgb(48, 171.5820895522, 255);
155
+ }
156
+ .ember-power-calendar .ember-power-calendar-day--current-month {
157
+ color: #656d78;
158
+ background-color: #f5f7fa;
159
+ }
160
+ .ember-power-calendar .ember-power-calendar-day--today {
161
+ background-color: #eee;
162
+ }
163
+ .ember-power-calendar .ember-power-calendar-day:not([disabled]):hover {
164
+ background-color: #eee;
165
+ }
166
+ .ember-power-calendar .ember-power-calendar-day--focused {
167
+ box-shadow: inset 0 -2px 0 0 #0078c9;
168
+ }
169
+ .ember-power-calendar .ember-power-calendar-day--selected.ember-power-calendar-day--range-start {
170
+ background-color: rgb(150, 212.6865671642, 255);
171
+ }
172
+ .ember-power-calendar .ember-power-calendar-day--selected.ember-power-calendar-day--range-start:hover {
173
+ background-color: rgb(150, 212.6865671642, 255);
174
+ }
175
+ .ember-power-calendar .ember-power-calendar-day--selected.ember-power-calendar-day--range-end {
176
+ background-color: rgb(150, 212.6865671642, 255);
177
+ }
178
+ .ember-power-calendar .ember-power-calendar-day--selected.ember-power-calendar-day--range-end:hover {
179
+ background-color: rgb(150, 212.6865671642, 255);
180
+ }
181
+ .ember-power-calendar .ember-power-calendar-day--selected {
182
+ background-color: rgb(201, 233.2388059701, 255);
183
+ color: #656d78;
184
+ }
185
+ .ember-power-calendar .ember-power-calendar-day--selected:not([disabled]):hover {
186
+ background-color: rgb(201, 233.2388059701, 255);
187
+ color: #656d78;
188
+ }
189
+ .ember-power-calendar .ember-power-calendar-day--other-month:not([disabled]):hover {
190
+ color: #656d78;
191
+ }
@@ -1,3 +1,3 @@
1
- var css = ":root {\n --ember-power-calendar-cell-size: 35px; }\n\n.ember-power-calendar {\n box-sizing: border-box;\n position: relative;\n font-size: 14px;\n line-height: 1.4286; }\n\n.ember-power-calendar-nav {\n box-sizing: border-box;\n display: flex;\n justify-content: space-between;\n line-height: 2; }\n\n.ember-power-calendar-nav * {\n box-sizing: border-box; }\n\n.ember-power-calendar-days,\n.ember-power-calendar-days * {\n box-sizing: border-box; }\n\n.ember-power-calendar-nav-title {\n flex: 1;\n text-align: center; }\n\n.ember-power-calendar-row {\n display: flex;\n justify-content: space-between; }\n\n.ember-power-calendar-weekday {\n appearance: none;\n flex: 1 1 100%;\n background-color: transparent;\n background-color: initial;\n border: none;\n border: initial;\n outline: none;\n outline: initial;\n justify-content: center;\n display: flex;\n align-items: center;\n padding: 0; }\n\n.ember-power-calendar-day {\n appearance: none;\n background-color: transparent;\n background-color: initial;\n border: none;\n border: initial;\n outline: none;\n outline: initial;\n flex: 1 1 100%;\n font-size: inherit;\n align-items: center;\n justify-content: center;\n padding: 0; }\n\n.ember-power-calendar-nav-control {\n appearance: none;\n background-color: transparent;\n background-color: initial;\n border: none;\n border: initial;\n outline: none;\n outline: initial;\n line-height: 1;\n font-size: 150%; }\n .ember-power-calendar-nav-control:focus {\n transform: scale(1.2); }\n\n.ember-power-calendar-day--selected,\n.ember-power-calendar-day--selected:not([disabled]):hover {\n font-weight: bold; }\n\n.ember-power-calendar-day--interactive[disabled] {\n opacity: 0.4; }\n\n.ember-power-calendar {\n width: calc( calc(var(--ember-power-calendar-cell-size) + 2px) * 7 - 2px + 0 + 0); }\n .ember-power-calendar .ember-power-calendar-week:first-child[data-missing-days=\"1\"] {\n padding-left: calc(calc(var(--ember-power-calendar-cell-size) + 2px) * 1); }\n .ember-power-calendar .ember-power-calendar-week:first-child[data-missing-days=\"2\"] {\n padding-left: calc(calc(var(--ember-power-calendar-cell-size) + 2px) * 2); }\n .ember-power-calendar .ember-power-calendar-week:first-child[data-missing-days=\"3\"] {\n padding-left: calc(calc(var(--ember-power-calendar-cell-size) + 2px) * 3); }\n .ember-power-calendar .ember-power-calendar-week:first-child[data-missing-days=\"4\"] {\n padding-left: calc(calc(var(--ember-power-calendar-cell-size) + 2px) * 4); }\n .ember-power-calendar .ember-power-calendar-week:first-child[data-missing-days=\"5\"] {\n padding-left: calc(calc(var(--ember-power-calendar-cell-size) + 2px) * 5); }\n .ember-power-calendar .ember-power-calendar-week:first-child[data-missing-days=\"6\"] {\n padding-left: calc(calc(var(--ember-power-calendar-cell-size) + 2px) * 6); }\n .ember-power-calendar .ember-power-calendar-week:last-child[data-missing-days=\"1\"] {\n padding-right: calc(calc(var(--ember-power-calendar-cell-size) + 2px) * 1); }\n .ember-power-calendar .ember-power-calendar-week:last-child[data-missing-days=\"2\"] {\n padding-right: calc(calc(var(--ember-power-calendar-cell-size) + 2px) * 2); }\n .ember-power-calendar .ember-power-calendar-week:last-child[data-missing-days=\"3\"] {\n padding-right: calc(calc(var(--ember-power-calendar-cell-size) + 2px) * 3); }\n .ember-power-calendar .ember-power-calendar-week:last-child[data-missing-days=\"4\"] {\n padding-right: calc(calc(var(--ember-power-calendar-cell-size) + 2px) * 4); }\n .ember-power-calendar .ember-power-calendar-week:last-child[data-missing-days=\"5\"] {\n padding-right: calc(calc(var(--ember-power-calendar-cell-size) + 2px) * 5); }\n .ember-power-calendar .ember-power-calendar-week:last-child[data-missing-days=\"6\"] {\n padding-right: calc(calc(var(--ember-power-calendar-cell-size) + 2px) * 6); }\n .ember-power-calendar .ember-power-calendar-day,\n .ember-power-calendar .ember-power-calendar-weekday {\n max-width: \"var(--ember-power-calendar-cell-size)\";\n max-height: \"var(--ember-power-calendar-cell-size)\";\n width: \"var(--ember-power-calendar-cell-size)\";\n height: \"var(--ember-power-calendar-cell-size)\"; }\n .ember-power-calendar .ember-power-calendar-weekdays,\n .ember-power-calendar .ember-power-calendar-week {\n height: calc(var(--ember-power-calendar-cell-size) + 2px);\n padding-left: 0;\n padding-right: 0; }\n .ember-power-calendar .ember-power-calendar-day {\n color: #bbb; }\n .ember-power-calendar .ember-power-calendar-weekdays {\n color: #333333; }\n .ember-power-calendar .ember-power-calendar-nav-control {\n color: #0078c9; }\n .ember-power-calendar .ember-power-calendar-nav-control:focus {\n color: #30acff; }\n .ember-power-calendar .ember-power-calendar-day--current-month {\n color: #656d78;\n background-color: #f5f7fa; }\n .ember-power-calendar .ember-power-calendar-day--today {\n background-color: #eee; }\n .ember-power-calendar .ember-power-calendar-day:not([disabled]):hover {\n background-color: #eee; }\n .ember-power-calendar .ember-power-calendar-day--focused {\n box-shadow: inset 0 -2px 0 0 #0078c9; }\n .ember-power-calendar .ember-power-calendar-day--selected.ember-power-calendar-day--range-start {\n background-color: #96d5ff; }\n .ember-power-calendar .ember-power-calendar-day--selected.ember-power-calendar-day--range-start:hover {\n background-color: #96d5ff; }\n .ember-power-calendar .ember-power-calendar-day--selected.ember-power-calendar-day--range-end {\n background-color: #96d5ff; }\n .ember-power-calendar .ember-power-calendar-day--selected.ember-power-calendar-day--range-end:hover {\n background-color: #96d5ff; }\n .ember-power-calendar .ember-power-calendar-day--selected {\n background-color: #c9e9ff;\n color: #656d78; }\n .ember-power-calendar .ember-power-calendar-day--selected:not([disabled]):hover {\n background-color: #c9e9ff;\n color: #656d78; }\n .ember-power-calendar .ember-power-calendar-day--other-month:not([disabled]):hover {\n color: #656d78; }\n";
1
+ var emberPowerCalendarForCssGenerate = ":root {\n --ember-power-calendar-cell-size: 35px;\n}\n\n.ember-power-calendar {\n box-sizing: border-box;\n position: relative;\n font-size: 14px;\n line-height: 1.4286;\n}\n\n.ember-power-calendar-nav {\n box-sizing: border-box;\n display: flex;\n justify-content: space-between;\n line-height: 2;\n}\n\n.ember-power-calendar-nav * {\n box-sizing: border-box;\n}\n\n.ember-power-calendar-days,\n.ember-power-calendar-days * {\n box-sizing: border-box;\n}\n\n.ember-power-calendar-nav-title {\n flex: 1;\n text-align: center;\n}\n\n.ember-power-calendar-row {\n display: flex;\n justify-content: space-between;\n}\n\n.ember-power-calendar-weekday {\n appearance: none;\n flex: 1 1 100%;\n background-color: transparent;\n background-color: initial;\n border: none;\n border: initial;\n outline: none;\n outline: initial;\n justify-content: center;\n display: flex;\n align-items: center;\n padding: 0;\n}\n\n.ember-power-calendar-day {\n appearance: none;\n background-color: transparent;\n background-color: initial;\n border: none;\n border: initial;\n outline: none;\n outline: initial;\n flex: 1 1 100%;\n font-size: inherit;\n align-items: center;\n justify-content: center;\n padding: 0;\n}\n\n.ember-power-calendar-nav-control {\n appearance: none;\n background-color: transparent;\n background-color: initial;\n border: none;\n border: initial;\n outline: none;\n outline: initial;\n line-height: 1;\n font-size: 150%;\n}\n.ember-power-calendar-nav-control:focus {\n transform: scale(1.2);\n}\n\n.ember-power-calendar-day--selected,\n.ember-power-calendar-day--selected:not([disabled]):hover {\n font-weight: bold;\n}\n\n.ember-power-calendar-day--interactive[disabled] {\n opacity: 0.4;\n}\n\n.ember-power-calendar {\n width: calc(calc(var(--ember-power-calendar-cell-size) + 2px) * 7 - 2px + 0 + 0);\n}\n.ember-power-calendar .ember-power-calendar-week:first-child[data-missing-days=\"1\"] {\n padding-left: calc(calc(var(--ember-power-calendar-cell-size) + 2px) * 1);\n}\n.ember-power-calendar .ember-power-calendar-week:first-child[data-missing-days=\"2\"] {\n padding-left: calc(calc(var(--ember-power-calendar-cell-size) + 2px) * 2);\n}\n.ember-power-calendar .ember-power-calendar-week:first-child[data-missing-days=\"3\"] {\n padding-left: calc(calc(var(--ember-power-calendar-cell-size) + 2px) * 3);\n}\n.ember-power-calendar .ember-power-calendar-week:first-child[data-missing-days=\"4\"] {\n padding-left: calc(calc(var(--ember-power-calendar-cell-size) + 2px) * 4);\n}\n.ember-power-calendar .ember-power-calendar-week:first-child[data-missing-days=\"5\"] {\n padding-left: calc(calc(var(--ember-power-calendar-cell-size) + 2px) * 5);\n}\n.ember-power-calendar .ember-power-calendar-week:first-child[data-missing-days=\"6\"] {\n padding-left: calc(calc(var(--ember-power-calendar-cell-size) + 2px) * 6);\n}\n.ember-power-calendar .ember-power-calendar-week:last-child[data-missing-days=\"1\"] {\n padding-right: calc(calc(var(--ember-power-calendar-cell-size) + 2px) * 1);\n}\n.ember-power-calendar .ember-power-calendar-week:last-child[data-missing-days=\"2\"] {\n padding-right: calc(calc(var(--ember-power-calendar-cell-size) + 2px) * 2);\n}\n.ember-power-calendar .ember-power-calendar-week:last-child[data-missing-days=\"3\"] {\n padding-right: calc(calc(var(--ember-power-calendar-cell-size) + 2px) * 3);\n}\n.ember-power-calendar .ember-power-calendar-week:last-child[data-missing-days=\"4\"] {\n padding-right: calc(calc(var(--ember-power-calendar-cell-size) + 2px) * 4);\n}\n.ember-power-calendar .ember-power-calendar-week:last-child[data-missing-days=\"5\"] {\n padding-right: calc(calc(var(--ember-power-calendar-cell-size) + 2px) * 5);\n}\n.ember-power-calendar .ember-power-calendar-week:last-child[data-missing-days=\"6\"] {\n padding-right: calc(calc(var(--ember-power-calendar-cell-size) + 2px) * 6);\n}\n.ember-power-calendar .ember-power-calendar-day,\n.ember-power-calendar .ember-power-calendar-weekday {\n max-width: \"var(--ember-power-calendar-cell-size)\";\n max-height: \"var(--ember-power-calendar-cell-size)\";\n width: \"var(--ember-power-calendar-cell-size)\";\n height: \"var(--ember-power-calendar-cell-size)\";\n}\n.ember-power-calendar .ember-power-calendar-weekdays,\n.ember-power-calendar .ember-power-calendar-week {\n height: calc(var(--ember-power-calendar-cell-size) + 2px);\n padding-left: 0;\n padding-right: 0;\n}\n.ember-power-calendar .ember-power-calendar-day {\n color: #bbb;\n}\n.ember-power-calendar .ember-power-calendar-weekdays {\n color: #333333;\n}\n.ember-power-calendar .ember-power-calendar-nav-control {\n color: #0078c9;\n}\n.ember-power-calendar .ember-power-calendar-nav-control:focus {\n color: rgb(48, 171.5820895522, 255);\n}\n.ember-power-calendar .ember-power-calendar-day--current-month {\n color: #656d78;\n background-color: #f5f7fa;\n}\n.ember-power-calendar .ember-power-calendar-day--today {\n background-color: #eee;\n}\n.ember-power-calendar .ember-power-calendar-day:not([disabled]):hover {\n background-color: #eee;\n}\n.ember-power-calendar .ember-power-calendar-day--focused {\n box-shadow: inset 0 -2px 0 0 #0078c9;\n}\n.ember-power-calendar .ember-power-calendar-day--selected.ember-power-calendar-day--range-start {\n background-color: rgb(150, 212.6865671642, 255);\n}\n.ember-power-calendar .ember-power-calendar-day--selected.ember-power-calendar-day--range-start:hover {\n background-color: rgb(150, 212.6865671642, 255);\n}\n.ember-power-calendar .ember-power-calendar-day--selected.ember-power-calendar-day--range-end {\n background-color: rgb(150, 212.6865671642, 255);\n}\n.ember-power-calendar .ember-power-calendar-day--selected.ember-power-calendar-day--range-end:hover {\n background-color: rgb(150, 212.6865671642, 255);\n}\n.ember-power-calendar .ember-power-calendar-day--selected {\n background-color: rgb(201, 233.2388059701, 255);\n color: #656d78;\n}\n.ember-power-calendar .ember-power-calendar-day--selected:not([disabled]):hover {\n background-color: rgb(201, 233.2388059701, 255);\n color: #656d78;\n}\n.ember-power-calendar .ember-power-calendar-day--other-month:not([disabled]):hover {\n color: #656d78;\n}";
2
2
 
3
- export { css, css as default };
3
+ export { emberPowerCalendarForCssGenerate as default };