ember-power-calendar 1.5.3 → 1.5.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/components/power-calendar/days.js +4 -4
- package/dist/components/power-calendar/days.js.map +1 -1
- package/dist/components/power-calendar-multiple/days.js +3 -3
- package/dist/components/power-calendar-multiple/days.js.map +1 -1
- package/dist/components/power-calendar-multiple.js +5 -5
- package/dist/components/power-calendar-multiple.js.map +1 -1
- package/dist/components/power-calendar-range/days.js +4 -4
- package/dist/components/power-calendar-range/days.js.map +1 -1
- package/dist/components/power-calendar-range.js +5 -5
- package/dist/components/power-calendar-range.js.map +1 -1
- package/dist/components/power-calendar.js +5 -5
- package/dist/components/power-calendar.js.map +1 -1
- package/dist/days-utils-DTP-IwuT.js +166 -0
- package/dist/days-utils-DTP-IwuT.js.map +1 -0
- package/dist/services/power-calendar.js +1 -1
- package/dist/services/power-calendar.js.map +1 -1
- package/package.json +29 -31
|
@@ -2,8 +2,8 @@ import Component from '@glimmer/component';
|
|
|
2
2
|
import { tracked } from '@glimmer/tracking';
|
|
3
3
|
import { action } from '@ember/object';
|
|
4
4
|
import { scheduleOnce } from '@ember/runloop';
|
|
5
|
-
import { s as service, l as localeStartOfWeekOrFallback, w as weekdaysNames, a as lastDay, f as firstDay, b as buildDay, c as weeks, h as handleDayKeyDown, d as focusDate, e as handleClick } from '../../days-utils-
|
|
6
|
-
import { withLocale,
|
|
5
|
+
import { s as service, l as localeStartOfWeekOrFallback, w as weekdaysNames, a as lastDay, f as firstDay, b as buildDay, c as weeks, h as handleDayKeyDown, d as focusDate, e as handleClick } from '../../days-utils-DTP-IwuT.js';
|
|
6
|
+
import { withLocale, getWeekdaysMin, getWeekdaysShort, getWeekdays, isBefore, add, normalizeDate, isSame } from '../../utils.js';
|
|
7
7
|
import { precompileTemplate } from '@ember/template-compilation';
|
|
8
8
|
import { g, i, n } from 'decorator-transforms/runtime';
|
|
9
9
|
import { setComponentTemplate } from '@ember/component';
|
|
@@ -14,13 +14,13 @@ class PowerCalendarDaysComponent extends Component {
|
|
|
14
14
|
static {
|
|
15
15
|
g(this.prototype, "powerCalendar", [service]);
|
|
16
16
|
}
|
|
17
|
-
#powerCalendar = (i(this, "powerCalendar"),
|
|
17
|
+
#powerCalendar = (i(this, "powerCalendar"), void 0);
|
|
18
18
|
static {
|
|
19
19
|
g(this.prototype, "focusedId", [tracked], function () {
|
|
20
20
|
return null;
|
|
21
21
|
});
|
|
22
22
|
}
|
|
23
|
-
#focusedId = (i(this, "focusedId"),
|
|
23
|
+
#focusedId = (i(this, "focusedId"), void 0);
|
|
24
24
|
get weekdayFormat() {
|
|
25
25
|
return this.args.weekdayFormat || 'short'; // "min" | "short" | "long"
|
|
26
26
|
}
|
|
@@ -1 +1 @@
|
|
|
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 service from '../../-private/service.ts';\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.bind(this),\n (e.target as HTMLElement).dataset['date'],\n );\n }\n\n @action\n handleDayBlur(): void {\n scheduleOnce('actions', this, this._updateFocused.bind(this), 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":";;;;;;;;;;;;AAqDe,MAAMA,0BAA0B,SAASC,SAAS,CAA6B;AAAA,EAAA;IAAAC,CAAA,CAAA,IAAA,CAAAC,SAAA,EAAA,eAAA,EAAA,CAC3FC,OAAO,CAAA,CAAA;AAAA;AAAA,EAAA,cAAA,IAAAC,CAAA,CAAA,IAAA,EAAA,eAAA,CAAA,EAAAC,
|
|
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 service from '../../-private/service.ts';\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.bind(this),\n (e.target as HTMLElement).dataset['date'],\n );\n }\n\n @action\n handleDayBlur(): void {\n scheduleOnce('actions', this, this._updateFocused.bind(this), 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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"}
|
|
@@ -2,7 +2,7 @@ import Component from '@glimmer/component';
|
|
|
2
2
|
import { tracked } from '@glimmer/tracking';
|
|
3
3
|
import { action } from '@ember/object';
|
|
4
4
|
import { scheduleOnce } from '@ember/runloop';
|
|
5
|
-
import { s as service, l as localeStartOfWeekOrFallback, w as weekdaysNames, a as lastDay, f as firstDay, b as buildDay, c as weeks, h as handleDayKeyDown, d as focusDate, e as handleClick, g as dayIsDisabled } from '../../days-utils-
|
|
5
|
+
import { s as service, l as localeStartOfWeekOrFallback, w as weekdaysNames, a as lastDay, f as firstDay, b as buildDay, c as weeks, h as handleDayKeyDown, d as focusDate, e as handleClick, g as dayIsDisabled } from '../../days-utils-DTP-IwuT.js';
|
|
6
6
|
import { withLocale, isBefore, add, normalizeDate, isSame, getWeekdaysMin, getWeekdaysShort, getWeekdays } from '../../utils.js';
|
|
7
7
|
import { precompileTemplate } from '@ember/template-compilation';
|
|
8
8
|
import { g, i, n } from 'decorator-transforms/runtime';
|
|
@@ -14,13 +14,13 @@ class PowerCalendarMultipleDaysComponent extends Component {
|
|
|
14
14
|
static {
|
|
15
15
|
g(this.prototype, "powerCalendar", [service]);
|
|
16
16
|
}
|
|
17
|
-
#powerCalendar = (i(this, "powerCalendar"),
|
|
17
|
+
#powerCalendar = (i(this, "powerCalendar"), void 0);
|
|
18
18
|
static {
|
|
19
19
|
g(this.prototype, "focusedId", [tracked], function () {
|
|
20
20
|
return null;
|
|
21
21
|
});
|
|
22
22
|
}
|
|
23
|
-
#focusedId = (i(this, "focusedId"),
|
|
23
|
+
#focusedId = (i(this, "focusedId"), void 0);
|
|
24
24
|
get weekdayFormat() {
|
|
25
25
|
return this.args.weekdayFormat || 'short'; // "min" | "short" | "long"
|
|
26
26
|
}
|
|
@@ -1 +1 @@
|
|
|
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 service from '../../-private/service.ts';\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\nexport interface 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.bind(this),\n (e.target as HTMLElement).dataset['date'],\n );\n }\n\n @action\n handleDayBlur(): void {\n scheduleOnce('actions', this, this._updateFocused.bind(this), 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 service from '../../-private/service.ts';\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\nexport interface 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.bind(this),\n (e.target as HTMLElement).dataset['date'],\n );\n }\n\n @action\n handleDayBlur(): void {\n scheduleOnce('actions', this, this._updateFocused.bind(this), 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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"}
|
|
@@ -2,7 +2,7 @@ import { buildTask } from 'ember-concurrency/async-arrow-runtime';
|
|
|
2
2
|
import Component from '@glimmer/component';
|
|
3
3
|
import { tracked } from '@glimmer/tracking';
|
|
4
4
|
import { guidFor } from '@ember/object/internals';
|
|
5
|
-
import { s as service } from '../days-utils-
|
|
5
|
+
import { s as service } from '../days-utils-DTP-IwuT.js';
|
|
6
6
|
import { assert } from '@ember/debug';
|
|
7
7
|
import { isArray } from '@ember/array';
|
|
8
8
|
import { action } from '@ember/object';
|
|
@@ -21,23 +21,23 @@ class PowerCalendarMultipleComponent extends Component {
|
|
|
21
21
|
static {
|
|
22
22
|
g(this.prototype, "powerCalendar", [service]);
|
|
23
23
|
}
|
|
24
|
-
#powerCalendar = (i(this, "powerCalendar"),
|
|
24
|
+
#powerCalendar = (i(this, "powerCalendar"), void 0);
|
|
25
25
|
static {
|
|
26
26
|
g(this.prototype, "center", [tracked], function () {
|
|
27
27
|
return null;
|
|
28
28
|
});
|
|
29
29
|
}
|
|
30
|
-
#center = (i(this, "center"),
|
|
30
|
+
#center = (i(this, "center"), void 0);
|
|
31
31
|
static {
|
|
32
32
|
g(this.prototype, "_calendarType", [tracked], function () {
|
|
33
33
|
return 'multiple';
|
|
34
34
|
});
|
|
35
35
|
}
|
|
36
|
-
#_calendarType = (i(this, "_calendarType"),
|
|
36
|
+
#_calendarType = (i(this, "_calendarType"), void 0);
|
|
37
37
|
static {
|
|
38
38
|
g(this.prototype, "_selected", [tracked]);
|
|
39
39
|
}
|
|
40
|
-
#_selected = (i(this, "_selected"),
|
|
40
|
+
#_selected = (i(this, "_selected"), void 0);
|
|
41
41
|
navComponent = PowerCalendarNavComponent;
|
|
42
42
|
daysComponent = PowerCalendarMultipleDaysComponent;
|
|
43
43
|
|
|
@@ -1 +1 @@
|
|
|
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 service from '../-private/service.ts';\nimport { assert } from '@ember/debug';\nimport { isArray } from '@ember/array';\nimport { action } from '@ember/object';\nimport { task } from 'ember-concurrency';\nimport PowerCalendarMultipleDaysComponent, {\n type PowerCalendarMultipleDaysSignature,\n} from './power-calendar-multiple/days.ts';\nimport PowerCalendarNavComponent, {\n type PowerCalendarNavSignature,\n} 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 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' | 'DaysComponent'> {\n selected?: Date[];\n DaysComponent: ComponentLike<PowerCalendarMultipleDaysSignature>;\n}\n\nexport type TPowerCalendarMultipleOnSelect = (\n day: NormalizeMultipleActionValue,\n calendar: PowerCalendarMultipleAPI,\n event: MouseEvent,\n) => void;\n\ninterface PowerCalendarMultipleArgs\n extends Omit<PowerCalendarArgs, 'selected' | 'daysComponent' | 'onSelect'> {\n selected?: Date[];\n daysComponent?: string | ComponentLike<PowerCalendarMultipleDaysSignature>;\n onSelect?: TPowerCalendarMultipleOnSelect;\n}\n\ninterface PowerCalendarMultipleDefaultBlock extends PowerCalendarMultipleAPI {\n Nav: ComponentLike<{\n Args: Omit<PowerCalendarNavSignature['Args'], 'calendar'>;\n Blocks: PowerCalendarNavSignature['Blocks'];\n }>;\n Days: ComponentLike<{\n Element: PowerCalendarMultipleDaysSignature['Element'];\n Args: Omit<PowerCalendarMultipleDaysSignature['Args'], 'calendar'>;\n Blocks: PowerCalendarMultipleDaysSignature['Blocks'];\n }>;\n}\n\ninterface PowerCalendarMultipleSignature {\n Element: HTMLElement;\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 = PowerCalendarNavComponent;\n daysComponent = 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.bind(this),\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 // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment\n window.__powerCalendars = window.__powerCalendars || {}; // TODO: weakmap??\n // @ts-expect-error Property '__powerCalendars'\n // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access\n window.__powerCalendars[this.publicAPI.uniqueId] = this;\n }\n }\n\n unregisterCalendar() {\n // @ts-expect-error Property '__powerCalendars'\n // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access\n if (window && window.__powerCalendars?.[guidFor(this)]) {\n // @ts-expect-error Property '__powerCalendars'\n // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access\n delete window.__powerCalendars[guidFor(this)];\n\n // @ts-expect-error Property '__powerCalendars'\n // eslint-disable-next-line @typescript-eslint/no-unsafe-argument\n if (Object.keys(window.__powerCalendars).length === 0) {\n // @ts-expect-error Property '__powerCalendars'\n delete window.__powerCalendars;\n }\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","bind","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","keys","length","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 service from '../-private/service.ts';\nimport { assert } from '@ember/debug';\nimport { isArray } from '@ember/array';\nimport { action } from '@ember/object';\nimport { task } from 'ember-concurrency';\nimport PowerCalendarMultipleDaysComponent, {\n type PowerCalendarMultipleDaysSignature,\n} from './power-calendar-multiple/days.ts';\nimport PowerCalendarNavComponent, {\n type PowerCalendarNavSignature,\n} 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 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' | 'DaysComponent'> {\n selected?: Date[];\n DaysComponent: ComponentLike<PowerCalendarMultipleDaysSignature>;\n}\n\nexport type TPowerCalendarMultipleOnSelect = (\n day: NormalizeMultipleActionValue,\n calendar: PowerCalendarMultipleAPI,\n event: MouseEvent,\n) => void;\n\ninterface PowerCalendarMultipleArgs\n extends Omit<PowerCalendarArgs, 'selected' | 'daysComponent' | 'onSelect'> {\n selected?: Date[];\n daysComponent?: string | ComponentLike<PowerCalendarMultipleDaysSignature>;\n onSelect?: TPowerCalendarMultipleOnSelect;\n}\n\ninterface PowerCalendarMultipleDefaultBlock extends PowerCalendarMultipleAPI {\n Nav: ComponentLike<{\n Args: Omit<PowerCalendarNavSignature['Args'], 'calendar'>;\n Blocks: PowerCalendarNavSignature['Blocks'];\n }>;\n Days: ComponentLike<{\n Element: PowerCalendarMultipleDaysSignature['Element'];\n Args: Omit<PowerCalendarMultipleDaysSignature['Args'], 'calendar'>;\n Blocks: PowerCalendarMultipleDaysSignature['Blocks'];\n }>;\n}\n\ninterface PowerCalendarMultipleSignature {\n Element: HTMLElement;\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 = PowerCalendarNavComponent;\n daysComponent = 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.bind(this),\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 // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment\n window.__powerCalendars = window.__powerCalendars || {}; // TODO: weakmap??\n // @ts-expect-error Property '__powerCalendars'\n // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access\n window.__powerCalendars[this.publicAPI.uniqueId] = this;\n }\n }\n\n unregisterCalendar() {\n // @ts-expect-error Property '__powerCalendars'\n // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access\n if (window && window.__powerCalendars?.[guidFor(this)]) {\n // @ts-expect-error Property '__powerCalendars'\n // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access\n delete window.__powerCalendars[guidFor(this)];\n\n // @ts-expect-error Property '__powerCalendars'\n // eslint-disable-next-line @typescript-eslint/no-unsafe-argument\n if (Object.keys(window.__powerCalendars).length === 0) {\n // @ts-expect-error Property '__powerCalendars'\n delete window.__powerCalendars;\n }\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","bind","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","keys","length","setComponentTemplate","TEMPLATE"],"mappings":"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"}
|
|
@@ -2,8 +2,8 @@ import Component from '@glimmer/component';
|
|
|
2
2
|
import { tracked } from '@glimmer/tracking';
|
|
3
3
|
import { action } from '@ember/object';
|
|
4
4
|
import { scheduleOnce } from '@ember/runloop';
|
|
5
|
-
import { s as service, l as localeStartOfWeekOrFallback, w as weekdaysNames, a as lastDay, f as firstDay, c as weeks, h as handleDayKeyDown, d as focusDate, e as handleClick, b as buildDay } from '../../days-utils-
|
|
6
|
-
import { withLocale, isBefore, add, normalizeDate, isBetween, isSame, diff
|
|
5
|
+
import { s as service, l as localeStartOfWeekOrFallback, w as weekdaysNames, a as lastDay, f as firstDay, c as weeks, h as handleDayKeyDown, d as focusDate, e as handleClick, b as buildDay } from '../../days-utils-DTP-IwuT.js';
|
|
6
|
+
import { withLocale, getWeekdaysMin, getWeekdaysShort, getWeekdays, isBefore, add, normalizeDate, isBetween, isSame, diff } from '../../utils.js';
|
|
7
7
|
import { precompileTemplate } from '@ember/template-compilation';
|
|
8
8
|
import { g, i, n } from 'decorator-transforms/runtime';
|
|
9
9
|
import { setComponentTemplate } from '@ember/component';
|
|
@@ -14,13 +14,13 @@ class PowerCalendarRangeDaysComponent extends Component {
|
|
|
14
14
|
static {
|
|
15
15
|
g(this.prototype, "powerCalendar", [service]);
|
|
16
16
|
}
|
|
17
|
-
#powerCalendar = (i(this, "powerCalendar"),
|
|
17
|
+
#powerCalendar = (i(this, "powerCalendar"), void 0);
|
|
18
18
|
static {
|
|
19
19
|
g(this.prototype, "focusedId", [tracked], function () {
|
|
20
20
|
return null;
|
|
21
21
|
});
|
|
22
22
|
}
|
|
23
|
-
#focusedId = (i(this, "focusedId"),
|
|
23
|
+
#focusedId = (i(this, "focusedId"), void 0);
|
|
24
24
|
get weekdayFormat() {
|
|
25
25
|
return this.args.weekdayFormat || 'short'; // "min" | "short" | "long"
|
|
26
26
|
}
|
|
@@ -1 +1 @@
|
|
|
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 service from '../../-private/service.ts';\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\nexport interface PowerCalendarRangeDaysSignature\n extends Omit<PowerCalendarDaysSignature, 'Args'> {\n Args: PowerCalendarMultipleDaysArgs;\n}\n\nexport default class PowerCalendarRangeDaysComponent extends Component<PowerCalendarRangeDaysSignature> {\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.bind(this),\n (e.target as HTMLElement).dataset['date'],\n );\n }\n\n @action\n handleDayBlur(): void {\n scheduleOnce('actions', this, this._updateFocused.bind(this), 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","bind","target","dataset","n","action","handleDayBlur","handleKeyDown","handleDayKeyDown","focusedId","id","focusDate","uniqueId","handleClick","date","dayIsSelected","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 service from '../../-private/service.ts';\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\nexport interface PowerCalendarRangeDaysSignature\n extends Omit<PowerCalendarDaysSignature, 'Args'> {\n Args: PowerCalendarMultipleDaysArgs;\n}\n\nexport default class PowerCalendarRangeDaysComponent extends Component<PowerCalendarRangeDaysSignature> {\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.bind(this),\n (e.target as HTMLElement).dataset['date'],\n );\n }\n\n @action\n handleDayBlur(): void {\n scheduleOnce('actions', this, this._updateFocused.bind(this), 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","bind","target","dataset","n","action","handleDayBlur","handleKeyDown","handleDayKeyDown","focusedId","id","focusDate","uniqueId","handleClick","date","dayIsSelected","minDate","maxDate","disabledDates","end","isSelected","isBetween","isRangeStart","isSame","isRangeEnd","isDisabled","diffInMs","Math","abs","diff","minRange","maxRange","setComponentTemplate","TEMPLATE"],"mappings":"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"}
|
|
@@ -2,7 +2,7 @@ import { buildTask } from 'ember-concurrency/async-arrow-runtime';
|
|
|
2
2
|
import Component from '@glimmer/component';
|
|
3
3
|
import { tracked } from '@glimmer/tracking';
|
|
4
4
|
import { action } from '@ember/object';
|
|
5
|
-
import { s as service } from '../days-utils-
|
|
5
|
+
import { s as service } from '../days-utils-DTP-IwuT.js';
|
|
6
6
|
import { guidFor } from '@ember/object/internals';
|
|
7
7
|
import { assert } from '@ember/debug';
|
|
8
8
|
import 'ember-concurrency';
|
|
@@ -21,23 +21,23 @@ class PowerCalendarRangeComponent extends Component {
|
|
|
21
21
|
static {
|
|
22
22
|
g(this.prototype, "powerCalendar", [service]);
|
|
23
23
|
}
|
|
24
|
-
#powerCalendar = (i(this, "powerCalendar"),
|
|
24
|
+
#powerCalendar = (i(this, "powerCalendar"), void 0);
|
|
25
25
|
static {
|
|
26
26
|
g(this.prototype, "center", [tracked], function () {
|
|
27
27
|
return null;
|
|
28
28
|
});
|
|
29
29
|
}
|
|
30
|
-
#center = (i(this, "center"),
|
|
30
|
+
#center = (i(this, "center"), void 0);
|
|
31
31
|
static {
|
|
32
32
|
g(this.prototype, "_calendarType", [tracked], function () {
|
|
33
33
|
return 'range';
|
|
34
34
|
});
|
|
35
35
|
}
|
|
36
|
-
#_calendarType = (i(this, "_calendarType"),
|
|
36
|
+
#_calendarType = (i(this, "_calendarType"), void 0);
|
|
37
37
|
static {
|
|
38
38
|
g(this.prototype, "_selected", [tracked]);
|
|
39
39
|
}
|
|
40
|
-
#_selected = (i(this, "_selected"),
|
|
40
|
+
#_selected = (i(this, "_selected"), void 0);
|
|
41
41
|
navComponent = PowerCalendarNavComponent;
|
|
42
42
|
daysComponent = PowerCalendarRangeDaysComponent;
|
|
43
43
|
|
|
@@ -1 +1 @@
|
|
|
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 service from '../-private/service.ts';\nimport { guidFor } from '@ember/object/internals';\nimport { assert } from '@ember/debug';\nimport { task } from 'ember-concurrency';\nimport PowerCalendarRangeDaysComponent, {\n type PowerCalendarRangeDaysSignature,\n} from './power-calendar-range/days.ts';\nimport PowerCalendarNavComponent, {\n type PowerCalendarNavSignature,\n} 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 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 Nav: ComponentLike<{\n Args: Omit<PowerCalendarNavSignature['Args'], 'calendar'>;\n Blocks: PowerCalendarNavSignature['Blocks'];\n }>;\n Days: ComponentLike<{\n Element: PowerCalendarRangeDaysSignature['Element'];\n Args: Omit<PowerCalendarRangeDaysSignature['Args'], 'calendar'>;\n Blocks: PowerCalendarRangeDaysSignature['Blocks'];\n }>;\n}\n\ninterface PowerCalendarRangeSignature {\n Element: HTMLElement;\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 = PowerCalendarNavComponent;\n daysComponent = 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.bind(this),\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 // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment\n window.__powerCalendars = window.__powerCalendars || {}; // TODO: weakmap??\n // @ts-expect-error Property '__powerCalendars'\n // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access\n window.__powerCalendars[this.publicAPI.uniqueId] = this;\n }\n }\n\n unregisterCalendar() {\n // @ts-expect-error Property '__powerCalendars'\n // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access\n if (window && window.__powerCalendars?.[guidFor(this)]) {\n // @ts-expect-error Property '__powerCalendars'\n // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access\n delete window.__powerCalendars[guidFor(this)];\n\n // @ts-expect-error Property '__powerCalendars'\n // eslint-disable-next-line @typescript-eslint/no-unsafe-argument\n if (Object.keys(window.__powerCalendars).length === 0) {\n // @ts-expect-error Property '__powerCalendars'\n delete window.__powerCalendars;\n }\n }\n }\n}\n\nfunction ownProp<T = { [key: string | number]: never }>(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","bind","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","Object","keys","length","obj","prop","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 service from '../-private/service.ts';\nimport { guidFor } from '@ember/object/internals';\nimport { assert } from '@ember/debug';\nimport { task } from 'ember-concurrency';\nimport PowerCalendarRangeDaysComponent, {\n type PowerCalendarRangeDaysSignature,\n} from './power-calendar-range/days.ts';\nimport PowerCalendarNavComponent, {\n type PowerCalendarNavSignature,\n} 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 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 Nav: ComponentLike<{\n Args: Omit<PowerCalendarNavSignature['Args'], 'calendar'>;\n Blocks: PowerCalendarNavSignature['Blocks'];\n }>;\n Days: ComponentLike<{\n Element: PowerCalendarRangeDaysSignature['Element'];\n Args: Omit<PowerCalendarRangeDaysSignature['Args'], 'calendar'>;\n Blocks: PowerCalendarRangeDaysSignature['Blocks'];\n }>;\n}\n\ninterface PowerCalendarRangeSignature {\n Element: HTMLElement;\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 = PowerCalendarNavComponent;\n daysComponent = 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.bind(this),\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 // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment\n window.__powerCalendars = window.__powerCalendars || {}; // TODO: weakmap??\n // @ts-expect-error Property '__powerCalendars'\n // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access\n window.__powerCalendars[this.publicAPI.uniqueId] = this;\n }\n }\n\n unregisterCalendar() {\n // @ts-expect-error Property '__powerCalendars'\n // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access\n if (window && window.__powerCalendars?.[guidFor(this)]) {\n // @ts-expect-error Property '__powerCalendars'\n // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access\n delete window.__powerCalendars[guidFor(this)];\n\n // @ts-expect-error Property '__powerCalendars'\n // eslint-disable-next-line @typescript-eslint/no-unsafe-argument\n if (Object.keys(window.__powerCalendars).length === 0) {\n // @ts-expect-error Property '__powerCalendars'\n delete window.__powerCalendars;\n }\n }\n }\n}\n\nfunction ownProp<T = { [key: string | number]: never }>(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","bind","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","Object","keys","length","obj","prop","hasOwnProperty","call","setComponentTemplate","TEMPLATE"],"mappings":"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"}
|
|
@@ -3,7 +3,7 @@ import Component from '@glimmer/component';
|
|
|
3
3
|
import { tracked } from '@glimmer/tracking';
|
|
4
4
|
import { action } from '@ember/object';
|
|
5
5
|
import { guidFor } from '@ember/object/internals';
|
|
6
|
-
import { s as service } from '../days-utils-
|
|
6
|
+
import { s as service } from '../days-utils-DTP-IwuT.js';
|
|
7
7
|
import 'ember-concurrency';
|
|
8
8
|
import { assert } from '@ember/debug';
|
|
9
9
|
import { normalizeDate, normalizeCalendarValue } from '../utils.js';
|
|
@@ -20,23 +20,23 @@ class PowerCalendarComponent extends Component {
|
|
|
20
20
|
static {
|
|
21
21
|
g(this.prototype, "powerCalendar", [service]);
|
|
22
22
|
}
|
|
23
|
-
#powerCalendar = (i(this, "powerCalendar"),
|
|
23
|
+
#powerCalendar = (i(this, "powerCalendar"), void 0);
|
|
24
24
|
static {
|
|
25
25
|
g(this.prototype, "center", [tracked], function () {
|
|
26
26
|
return null;
|
|
27
27
|
});
|
|
28
28
|
}
|
|
29
|
-
#center = (i(this, "center"),
|
|
29
|
+
#center = (i(this, "center"), void 0);
|
|
30
30
|
static {
|
|
31
31
|
g(this.prototype, "_calendarType", [tracked], function () {
|
|
32
32
|
return 'single';
|
|
33
33
|
});
|
|
34
34
|
}
|
|
35
|
-
#_calendarType = (i(this, "_calendarType"),
|
|
35
|
+
#_calendarType = (i(this, "_calendarType"), void 0);
|
|
36
36
|
static {
|
|
37
37
|
g(this.prototype, "_selected", [tracked]);
|
|
38
38
|
}
|
|
39
|
-
#_selected = (i(this, "_selected"),
|
|
39
|
+
#_selected = (i(this, "_selected"), void 0);
|
|
40
40
|
navComponent = PowerCalendarNavComponent;
|
|
41
41
|
daysComponent = PowerCalendarDaysComponent;
|
|
42
42
|
|
|
@@ -1 +1 @@
|
|
|
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 service from '../-private/service.ts';\nimport { task, type TaskInstance } 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, {\n type PowerCalendarNavSignature,\n} from './power-calendar/nav.ts';\nimport PowerCalendarDaysComponent, {\n type PowerCalendarDaysSignature,\n} 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 ) => TaskInstance<void>;\n moveCenter?: (\n step: number,\n unit: TPowerCalendarMoveCenterUnit,\n calendar: PowerCalendarAPI,\n event: MouseEvent,\n ) => Promise<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<PowerCalendarDaysSignature>;\n locale?: string;\n navComponent?: string | ComponentLike<PowerCalendarNavSignature>;\n onCenterChange?: (\n newCenter: NormalizeCalendarValue,\n calendar: PowerCalendarAPI,\n event: MouseEvent,\n ) => Promise<void> | 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 Nav: ComponentLike<{\n Args: Omit<PowerCalendarNavSignature['Args'], 'calendar'>;\n Blocks: PowerCalendarNavSignature['Blocks'];\n }>;\n Days: ComponentLike<{\n Element: PowerCalendarDaysSignature['Element'];\n Args: Omit<PowerCalendarDaysSignature['Args'], 'calendar'>;\n Blocks: PowerCalendarDaysSignature['Blocks'];\n }>;\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 = PowerCalendarNavComponent;\n daysComponent = 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.bind(this),\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 // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment\n window.__powerCalendars = window.__powerCalendars || {}; // TODO: weakmap??\n // @ts-expect-error Property '__powerCalendars'\n // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access\n window.__powerCalendars[this.publicAPI.uniqueId] = this;\n }\n }\n\n unregisterCalendar() {\n // @ts-expect-error Property '__powerCalendars'\n // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access\n if (window && window.__powerCalendars?.[guidFor(this)]) {\n // @ts-expect-error Property '__powerCalendars'\n // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access\n delete window.__powerCalendars[guidFor(this)];\n\n // @ts-expect-error Property '__powerCalendars'\n // eslint-disable-next-line @typescript-eslint/no-unsafe-argument\n if (Object.keys(window.__powerCalendars).length === 0) {\n // @ts-expect-error Property '__powerCalendars'\n delete window.__powerCalendars;\n }\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","bind","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","Object","keys","length","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 service from '../-private/service.ts';\nimport { task, type TaskInstance } 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, {\n type PowerCalendarNavSignature,\n} from './power-calendar/nav.ts';\nimport PowerCalendarDaysComponent, {\n type PowerCalendarDaysSignature,\n} 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 ) => TaskInstance<void>;\n moveCenter?: (\n step: number,\n unit: TPowerCalendarMoveCenterUnit,\n calendar: PowerCalendarAPI,\n event: MouseEvent,\n ) => Promise<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<PowerCalendarDaysSignature>;\n locale?: string;\n navComponent?: string | ComponentLike<PowerCalendarNavSignature>;\n onCenterChange?: (\n newCenter: NormalizeCalendarValue,\n calendar: PowerCalendarAPI,\n event: MouseEvent,\n ) => Promise<void> | 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 Nav: ComponentLike<{\n Args: Omit<PowerCalendarNavSignature['Args'], 'calendar'>;\n Blocks: PowerCalendarNavSignature['Blocks'];\n }>;\n Days: ComponentLike<{\n Element: PowerCalendarDaysSignature['Element'];\n Args: Omit<PowerCalendarDaysSignature['Args'], 'calendar'>;\n Blocks: PowerCalendarDaysSignature['Blocks'];\n }>;\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 = PowerCalendarNavComponent;\n daysComponent = 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.bind(this),\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 // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment\n window.__powerCalendars = window.__powerCalendars || {}; // TODO: weakmap??\n // @ts-expect-error Property '__powerCalendars'\n // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access\n window.__powerCalendars[this.publicAPI.uniqueId] = this;\n }\n }\n\n unregisterCalendar() {\n // @ts-expect-error Property '__powerCalendars'\n // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access\n if (window && window.__powerCalendars?.[guidFor(this)]) {\n // @ts-expect-error Property '__powerCalendars'\n // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access\n delete window.__powerCalendars[guidFor(this)];\n\n // @ts-expect-error Property '__powerCalendars'\n // eslint-disable-next-line @typescript-eslint/no-unsafe-argument\n if (Object.keys(window.__powerCalendars).length === 0) {\n // @ts-expect-error Property '__powerCalendars'\n delete window.__powerCalendars;\n }\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","bind","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","Object","keys","length","setComponentTemplate","TEMPLATE"],"mappings":"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"}
|
|
@@ -0,0 +1,166 @@
|
|
|
1
|
+
import * as s from '@ember/service';
|
|
2
|
+
import { assert } from '@ember/debug';
|
|
3
|
+
import { localeStartOfWeek, endOf, endOfWeek, startOf, startOfWeek, formatDate, normalizeCalendarDay, isSame, isBefore, isAfter } from './utils.js';
|
|
4
|
+
|
|
5
|
+
var service = s.service ?? s.inject;
|
|
6
|
+
|
|
7
|
+
const WEEK_DAYS = ['Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat', 'Sun'];
|
|
8
|
+
function localeStartOfWeekOrFallback(startOfWeek, locale) {
|
|
9
|
+
if (startOfWeek) {
|
|
10
|
+
return parseInt(startOfWeek, 10);
|
|
11
|
+
}
|
|
12
|
+
return localeStartOfWeek(locale);
|
|
13
|
+
}
|
|
14
|
+
function weekdaysNames(localeStartOfWeek, weekdayFormat, weekdays, weekdaysMin, weekdaysShort) {
|
|
15
|
+
let weekdaysNames;
|
|
16
|
+
if (weekdayFormat === 'long') {
|
|
17
|
+
weekdaysNames = weekdays;
|
|
18
|
+
} else if (weekdayFormat === 'min') {
|
|
19
|
+
weekdaysNames = weekdaysMin;
|
|
20
|
+
} else {
|
|
21
|
+
weekdaysNames = weekdaysShort;
|
|
22
|
+
}
|
|
23
|
+
return weekdaysNames.slice(localeStartOfWeek).concat(weekdaysNames.slice(0, localeStartOfWeek));
|
|
24
|
+
}
|
|
25
|
+
function firstDay(currentCenter, localeStartOfWeek) {
|
|
26
|
+
const firstDay = startOf(currentCenter, 'month');
|
|
27
|
+
return startOfWeek(firstDay, localeStartOfWeek);
|
|
28
|
+
}
|
|
29
|
+
function weeks(days, showDaysAround) {
|
|
30
|
+
const weeks = [];
|
|
31
|
+
let i = 0;
|
|
32
|
+
while (days[i]) {
|
|
33
|
+
let daysOfWeek = days.slice(i, i + 7);
|
|
34
|
+
if (!showDaysAround) {
|
|
35
|
+
daysOfWeek = daysOfWeek.filter(d => d.isCurrentMonth);
|
|
36
|
+
}
|
|
37
|
+
weeks.push({
|
|
38
|
+
id: `week-of-${daysOfWeek[0]?.id}`,
|
|
39
|
+
days: daysOfWeek,
|
|
40
|
+
missingDays: 7 - daysOfWeek.length
|
|
41
|
+
});
|
|
42
|
+
i += 7;
|
|
43
|
+
}
|
|
44
|
+
return weeks;
|
|
45
|
+
}
|
|
46
|
+
function handleDayKeyDown(e, focusedId, days) {
|
|
47
|
+
if (!focusedId) {
|
|
48
|
+
return;
|
|
49
|
+
}
|
|
50
|
+
let day, index;
|
|
51
|
+
for (let i = 0; i < days.length; i++) {
|
|
52
|
+
if (days[i]?.id === focusedId) {
|
|
53
|
+
index = i;
|
|
54
|
+
break;
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
if (!index) {
|
|
58
|
+
return;
|
|
59
|
+
}
|
|
60
|
+
if (e.key === 'ArrowUp') {
|
|
61
|
+
e.preventDefault();
|
|
62
|
+
const newIndex = Math.max(index - 7, 0);
|
|
63
|
+
day = days[newIndex];
|
|
64
|
+
if (day?.isDisabled) {
|
|
65
|
+
for (let i = newIndex + 1; i <= index; i++) {
|
|
66
|
+
day = days[i];
|
|
67
|
+
if (!day?.isDisabled) {
|
|
68
|
+
break;
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
} else if (e.key === 'ArrowDown') {
|
|
73
|
+
e.preventDefault();
|
|
74
|
+
const newIndex = Math.min(index + 7, days.length - 1);
|
|
75
|
+
day = days[newIndex];
|
|
76
|
+
if (day?.isDisabled) {
|
|
77
|
+
for (let i = newIndex - 1; i >= index; i--) {
|
|
78
|
+
day = days[i];
|
|
79
|
+
if (!day?.isDisabled) {
|
|
80
|
+
break;
|
|
81
|
+
}
|
|
82
|
+
}
|
|
83
|
+
}
|
|
84
|
+
} else if (e.key === 'ArrowLeft') {
|
|
85
|
+
day = days[Math.max(index - 1, 0)];
|
|
86
|
+
if (day?.isDisabled) {
|
|
87
|
+
return;
|
|
88
|
+
}
|
|
89
|
+
} else if (e.key === 'ArrowRight') {
|
|
90
|
+
day = days[Math.min(index + 1, days.length - 1)];
|
|
91
|
+
if (day?.isDisabled) {
|
|
92
|
+
return;
|
|
93
|
+
}
|
|
94
|
+
} else {
|
|
95
|
+
return;
|
|
96
|
+
}
|
|
97
|
+
return day;
|
|
98
|
+
}
|
|
99
|
+
function focusDate(uniqueId, id) {
|
|
100
|
+
const dayElement = document.querySelector(`[data-power-calendar-id="${uniqueId}"] [data-date="${id}"]`);
|
|
101
|
+
if (dayElement) {
|
|
102
|
+
dayElement.focus();
|
|
103
|
+
}
|
|
104
|
+
}
|
|
105
|
+
function buildDay(date, today, calendar, focusedId, currentCenter, dayIsSelected, minDate, maxDate, disabledDates, dayIsDisabledExtended) {
|
|
106
|
+
const id = formatDate(date, 'YYYY-MM-DD');
|
|
107
|
+
let isDisabled = false;
|
|
108
|
+
if (typeof dayIsDisabledExtended === 'function') {
|
|
109
|
+
isDisabled = dayIsDisabledExtended(date, calendar, minDate, maxDate, disabledDates);
|
|
110
|
+
} else {
|
|
111
|
+
isDisabled = dayIsDisabled(date, calendar, minDate, maxDate, disabledDates);
|
|
112
|
+
}
|
|
113
|
+
return normalizeCalendarDay({
|
|
114
|
+
id,
|
|
115
|
+
number: date.getDate(),
|
|
116
|
+
date: new Date(date),
|
|
117
|
+
isDisabled: isDisabled,
|
|
118
|
+
isFocused: focusedId === id,
|
|
119
|
+
isCurrentMonth: isSame(date, currentCenter, 'month'),
|
|
120
|
+
isToday: isSame(date, today, 'day'),
|
|
121
|
+
isSelected: dayIsSelected(date, calendar)
|
|
122
|
+
});
|
|
123
|
+
}
|
|
124
|
+
function dayIsDisabled(date, calendar, minDate, maxDate, disabledDates) {
|
|
125
|
+
const isDisabled = !calendar.actions.select;
|
|
126
|
+
if (isDisabled) {
|
|
127
|
+
return true;
|
|
128
|
+
}
|
|
129
|
+
if (minDate && isBefore(date, startOf(minDate, 'day'))) {
|
|
130
|
+
return true;
|
|
131
|
+
}
|
|
132
|
+
if (maxDate && isAfter(date, endOf(maxDate, 'day'))) {
|
|
133
|
+
return true;
|
|
134
|
+
}
|
|
135
|
+
if (disabledDates) {
|
|
136
|
+
const disabledInRange = disabledDates.some(d => {
|
|
137
|
+
const isSameDay = isSame(date, d, 'day');
|
|
138
|
+
const isWeekDayIncludes = WEEK_DAYS.indexOf(d) !== -1 && formatDate(date, 'ddd') === d;
|
|
139
|
+
return isSameDay || isWeekDayIncludes;
|
|
140
|
+
});
|
|
141
|
+
if (disabledInRange) {
|
|
142
|
+
return true;
|
|
143
|
+
}
|
|
144
|
+
}
|
|
145
|
+
return false;
|
|
146
|
+
}
|
|
147
|
+
function lastDay(localeStartOfWeek, currentCenter) {
|
|
148
|
+
assert('The center of the calendar is an invalid date.', !isNaN(currentCenter.getTime()));
|
|
149
|
+
const lastDay = endOf(currentCenter, 'month');
|
|
150
|
+
return endOfWeek(lastDay, localeStartOfWeek);
|
|
151
|
+
}
|
|
152
|
+
function handleClick(e, days, calendar) {
|
|
153
|
+
const dayEl = e.target?.closest('[data-date]');
|
|
154
|
+
if (dayEl) {
|
|
155
|
+
const dateStr = dayEl.dataset['date'];
|
|
156
|
+
const day = days.find(d => d.id === dateStr);
|
|
157
|
+
if (day) {
|
|
158
|
+
if (calendar.actions.select) {
|
|
159
|
+
calendar.actions.select(day, calendar, e);
|
|
160
|
+
}
|
|
161
|
+
}
|
|
162
|
+
}
|
|
163
|
+
}
|
|
164
|
+
|
|
165
|
+
export { lastDay as a, buildDay as b, weeks as c, focusDate as d, handleClick as e, firstDay as f, dayIsDisabled as g, handleDayKeyDown as h, localeStartOfWeekOrFallback as l, service as s, weekdaysNames as w };
|
|
166
|
+
//# sourceMappingURL=days-utils-DTP-IwuT.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"days-utils-DTP-IwuT.js","sources":["../src/-private/service.ts","../src/-private/days-utils.ts"],"sourcesContent":["import * as s from '@ember/service';\n\nexport default s.service ?? s.inject;\n","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":["s","service","inject","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":"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,UAAO,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,
|
|
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,UAAO,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,MAAA;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;;;;"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "ember-power-calendar",
|
|
3
|
-
"version": "1.5.
|
|
3
|
+
"version": "1.5.4",
|
|
4
4
|
"description": "Powerful and customizable calendar component for Ember",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"ember-addon"
|
|
@@ -62,22 +62,23 @@
|
|
|
62
62
|
"test": "echo 'A v2 addon does not have tests, run tests in test-app'"
|
|
63
63
|
},
|
|
64
64
|
"dependencies": {
|
|
65
|
-
"@embroider/addon-shim": "^1.
|
|
65
|
+
"@embroider/addon-shim": "^1.10.0",
|
|
66
66
|
"decorator-transforms": "^2.3.0",
|
|
67
67
|
"@embroider/util": "^1.13.2",
|
|
68
|
-
"@embroider/macros": "^1.
|
|
69
|
-
"ember-assign-helper": "^0.5.
|
|
70
|
-
"ember-element-helper": "^0.8.
|
|
68
|
+
"@embroider/macros": "^1.17.3",
|
|
69
|
+
"ember-assign-helper": "^0.5.1",
|
|
70
|
+
"ember-element-helper": "^0.8.7",
|
|
71
71
|
"ember-truth-helpers": "^4.0.3"
|
|
72
72
|
},
|
|
73
73
|
"devDependencies": {
|
|
74
|
-
"@babel/core": "^7.
|
|
75
|
-
"@babel/eslint-parser": "^7.
|
|
76
|
-
"@babel/plugin-transform-typescript": "^7.
|
|
77
|
-
"@babel/runtime": "^7.
|
|
74
|
+
"@babel/core": "^7.27.1",
|
|
75
|
+
"@babel/eslint-parser": "^7.27.1",
|
|
76
|
+
"@babel/plugin-transform-typescript": "^7.27.1",
|
|
77
|
+
"@babel/runtime": "^7.27.1",
|
|
78
78
|
"@embroider/addon-dev": "^7.1.1",
|
|
79
|
-
"@ember/
|
|
80
|
-
"@
|
|
79
|
+
"@ember/library-tsconfig": "^1.1.3",
|
|
80
|
+
"@ember/test-helpers": "^5.2.2",
|
|
81
|
+
"@eslint/js": "^9.26.0",
|
|
81
82
|
"@glint/core": "^1.5.2",
|
|
82
83
|
"@glint/environment-ember-loose": "^1.5.2",
|
|
83
84
|
"@glint/environment-ember-template-imports": "^1.5.2",
|
|
@@ -85,35 +86,32 @@
|
|
|
85
86
|
"@glimmer/component": "^2.0.0",
|
|
86
87
|
"@glimmer/tracking": "^1.1.2",
|
|
87
88
|
"@rollup/plugin-babel": "^6.0.4",
|
|
88
|
-
"@tsconfig/ember": "^3.0.9",
|
|
89
89
|
"babel-plugin-ember-template-compilation": "^2.3.0",
|
|
90
90
|
"concurrently": "^9.1.2",
|
|
91
|
-
"ember-concurrency": "^4.0.
|
|
92
|
-
"ember-source": "~6.
|
|
93
|
-
"ember-template-lint": "^6.
|
|
94
|
-
"eslint": "^9.
|
|
95
|
-
"eslint-config-prettier": "^10.
|
|
96
|
-
"eslint-plugin-ember": "^12.
|
|
91
|
+
"ember-concurrency": "^4.0.4",
|
|
92
|
+
"ember-source": "~6.4.0",
|
|
93
|
+
"ember-template-lint": "^7.6.0",
|
|
94
|
+
"eslint": "^9.26.0",
|
|
95
|
+
"eslint-config-prettier": "^10.1.5",
|
|
96
|
+
"eslint-plugin-ember": "^12.5.0",
|
|
97
97
|
"eslint-plugin-import": "^2.31.0",
|
|
98
|
-
"eslint-plugin-n": "^17.
|
|
99
|
-
"globals": "^
|
|
100
|
-
"postcss": "^8.5.
|
|
101
|
-
"prettier": "^3.
|
|
102
|
-
"prettier-plugin-ember-template-tag": "^2.0.
|
|
103
|
-
"rollup": "^4.
|
|
98
|
+
"eslint-plugin-n": "^17.18.0",
|
|
99
|
+
"globals": "^16.1.0",
|
|
100
|
+
"postcss": "^8.5.3",
|
|
101
|
+
"prettier": "^3.5.3",
|
|
102
|
+
"prettier-plugin-ember-template-tag": "^2.0.5",
|
|
103
|
+
"rollup": "^4.40.2",
|
|
104
104
|
"rollup-plugin-copy": "^3.5.0",
|
|
105
105
|
"rollup-plugin-sass": "^1.15.2",
|
|
106
|
-
"sass": "^1.
|
|
107
|
-
"typescript": "~5.
|
|
108
|
-
"typescript-eslint": "^8.
|
|
109
|
-
"webpack": "^5.
|
|
106
|
+
"sass": "^1.88.0",
|
|
107
|
+
"typescript": "~5.8.3",
|
|
108
|
+
"typescript-eslint": "^8.32.0",
|
|
109
|
+
"webpack": "^5.99.8"
|
|
110
110
|
},
|
|
111
111
|
"peerDependencies": {
|
|
112
112
|
"@ember/test-helpers": "^2.9.4 || ^3.2.1 || ^4.0.4 || ^5.0.0",
|
|
113
113
|
"@glimmer/component": "^1.1.2 || ^2.0.0",
|
|
114
|
-
"
|
|
115
|
-
"ember-concurrency": "^4.0.2",
|
|
116
|
-
"ember-source": "^3.28.0 || ^4.0.0 || >=5.0.0"
|
|
114
|
+
"ember-concurrency": "^4.0.4"
|
|
117
115
|
},
|
|
118
116
|
"ember": {
|
|
119
117
|
"edition": "octane"
|