ember-power-calendar 1.3.1 → 1.4.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (33) hide show
  1. package/_index.scss +1 -1
  2. package/declarations/components/power-calendar-multiple.d.ts.map +1 -1
  3. package/declarations/components/power-calendar-range.d.ts.map +1 -1
  4. package/declarations/components/power-calendar.d.ts.map +1 -1
  5. package/declarations/helpers/ember-power-calendar-day-classes.d.ts +1 -1
  6. package/declarations/template-registry.d.ts +1 -1
  7. package/declarations/template-registry.d.ts.map +1 -1
  8. package/declarations/test-support/helpers.d.ts.map +1 -1
  9. package/dist/components/power-calendar/days.js +3 -3
  10. package/dist/components/power-calendar/days.js.map +1 -1
  11. package/dist/components/power-calendar/nav.js +1 -1
  12. package/dist/components/power-calendar-multiple/days.js +3 -3
  13. package/dist/components/power-calendar-multiple/days.js.map +1 -1
  14. package/dist/components/power-calendar-multiple.js +6 -5
  15. package/dist/components/power-calendar-multiple.js.map +1 -1
  16. package/dist/components/power-calendar-range/days.js +3 -3
  17. package/dist/components/power-calendar-range/days.js.map +1 -1
  18. package/dist/components/power-calendar-range.js +6 -5
  19. package/dist/components/power-calendar-range.js.map +1 -1
  20. package/dist/components/power-calendar.js +6 -5
  21. package/dist/components/power-calendar.js.map +1 -1
  22. package/dist/days-utils-D13uOiMt.js.map +1 -1
  23. package/dist/services/power-calendar.js +1 -1
  24. package/dist/services/power-calendar.js.map +1 -1
  25. package/dist/test-support/helpers.js +1 -0
  26. package/dist/test-support/helpers.js.map +1 -1
  27. package/ember-power-calendar.less +1 -1
  28. package/ember-power-calendar.scss +1 -1
  29. package/less/base.less +8 -5
  30. package/package.json +51 -77
  31. package/scss/base.scss +3 -3
  32. package/vendor/ember-power-calendar.css +4 -4
  33. package/vendor/ember-power-calendar.js +1 -1
package/_index.scss CHANGED
@@ -1 +1 @@
1
- @import './ember-power-calendar.scss';
1
+ @import "./ember-power-calendar.scss";
@@ -1 +1 @@
1
- {"version":3,"file":"power-calendar-multiple.d.ts","sourceRoot":"","sources":["../../src/components/power-calendar-multiple.ts"],"names":[],"mappings":"AAAA,OAAO,SAAS,MAAM,oBAAoB,CAAC;AAW3C,OAAO,EAKL,KAAK,4BAA4B,EACjC,KAAK,gBAAgB,EACtB,MAAM,aAAa,CAAC;AACrB,OAAO,KAAK,EACV,WAAW,EACX,WAAW,EACX,gBAAgB,EAChB,oBAAoB,EACpB,iBAAiB,EACjB,sBAAsB,EACtB,YAAY,EACZ,aAAa,EACd,MAAM,qBAAqB,CAAC;AAC7B,OAAO,KAAK,KAAK,MAAM,cAAc,CAAC;AACtC,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AACrD,OAAO,KAAK,oBAAoB,MAAM,+BAA+B,CAAC;AAEtE,MAAM,WAAW,wBACf,SAAQ,IAAI,CAAC,gBAAgB,EAAE,UAAU,CAAC;IAC1C,QAAQ,CAAC,EAAE,IAAI,EAAE,CAAC;CACnB;AAED,MAAM,MAAM,8BAA8B,GAAG,CAC3C,GAAG,EAAE,4BAA4B,EACjC,QAAQ,EAAE,wBAAwB,EAClC,KAAK,EAAE,UAAU,KACd,IAAI,CAAC;AAEV,UAAU,yBACR,SAAQ,IAAI,CAAC,iBAAiB,EAAE,UAAU,GAAG,UAAU,CAAC;IACxD,QAAQ,CAAC,EAAE,IAAI,EAAE,CAAC;IAClB,QAAQ,CAAC,EAAE,8BAA8B,CAAC;CAC3C;AAED,UAAU,iCAAkC,SAAQ,wBAAwB;IAC1E,YAAY,EAAE,aAAa,CAAC,GAAG,CAAC,CAAC;IACjC,aAAa,EAAE,aAAa,CAAC,GAAG,CAAC,CAAC;CACnC;AAED,UAAU,8BACR,SAAQ,IAAI,CAAC,sBAAsB,EAAE,MAAM,CAAC;IAC5C,IAAI,EAAE,yBAAyB,CAAC;IAChC,MAAM,EAAE;QACN,OAAO,EAAE,CAAC,iCAAiC,CAAC,CAAC;KAC9C,CAAC;CACH;AAED,MAAM,CAAC,OAAO,OAAO,8BAA+B,SAAQ,SAAS,CAAC,8BAA8B,CAAC;IAClF,aAAa,EAAE,oBAAoB,CAAC;IAE5C,MAAM,OAAQ;IACd,aAAa,EAAE,aAAa,CAAc;IAC1C,SAAS,CAAC,EAAE,YAAY,CAAC;IAElC,YAAY,EAAE,aAAa,CAAC,GAAG,CAAC,CAA6B;IAC7D,aAAa,EAAE,aAAa,CAAC,GAAG,CAAC,CAAsC;gBAG3D,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,yBAAyB;IAQzD,WAAW,IAAI,IAAI;IAKnB,IAAI,aAAa,IAAI,oBAAoB,CAQxC;IAED,IAAI,QAAQ,IAAI,IAAI,EAAE,GAAG,SAAS,CAsBjC;IAED,IAAI,QAAQ,CAAC,CAAC,EAAE,YAAY,EAE3B;IAED,IAAI,aAAa,IAAI,IAAI,CAMxB;IAED,IAAI,SAAS,IAAI,gBAAgB,CAUhC;IAED,IAAI,cAAc,IAAI,MAAM,CAK3B;IAGD,gBAAgB,4EACI,IAAI,YAAY,gBAAgB,KAAK,UAAU,oBAQjE;IAIF,MAAM,CAAC,SAAS,EAAE,WAAW,EAAE,QAAQ,EAAE,WAAW,EAAE,CAAC,EAAE,UAAU;IAyBnE,gBAAgB,CAAC,IAAI,EAAE,gBAAgB,EAAE,GAAG,4BAA4B;IAkBxE,gBAAgB;IAShB,kBAAkB;CAoDnB"}
1
+ {"version":3,"file":"power-calendar-multiple.d.ts","sourceRoot":"","sources":["../../src/components/power-calendar-multiple.ts"],"names":[],"mappings":"AAAA,OAAO,SAAS,MAAM,oBAAoB,CAAC;AAW3C,OAAO,EAKL,KAAK,4BAA4B,EACjC,KAAK,gBAAgB,EACtB,MAAM,aAAa,CAAC;AACrB,OAAO,KAAK,EACV,WAAW,EACX,WAAW,EACX,gBAAgB,EAChB,oBAAoB,EACpB,iBAAiB,EACjB,sBAAsB,EACtB,YAAY,EACZ,aAAa,EACd,MAAM,qBAAqB,CAAC;AAC7B,OAAO,KAAK,KAAK,MAAM,cAAc,CAAC;AACtC,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AACrD,OAAO,KAAK,oBAAoB,MAAM,+BAA+B,CAAC;AAEtE,MAAM,WAAW,wBACf,SAAQ,IAAI,CAAC,gBAAgB,EAAE,UAAU,CAAC;IAC1C,QAAQ,CAAC,EAAE,IAAI,EAAE,CAAC;CACnB;AAED,MAAM,MAAM,8BAA8B,GAAG,CAC3C,GAAG,EAAE,4BAA4B,EACjC,QAAQ,EAAE,wBAAwB,EAClC,KAAK,EAAE,UAAU,KACd,IAAI,CAAC;AAEV,UAAU,yBACR,SAAQ,IAAI,CAAC,iBAAiB,EAAE,UAAU,GAAG,UAAU,CAAC;IACxD,QAAQ,CAAC,EAAE,IAAI,EAAE,CAAC;IAClB,QAAQ,CAAC,EAAE,8BAA8B,CAAC;CAC3C;AAED,UAAU,iCAAkC,SAAQ,wBAAwB;IAC1E,YAAY,EAAE,aAAa,CAAC,GAAG,CAAC,CAAC;IACjC,aAAa,EAAE,aAAa,CAAC,GAAG,CAAC,CAAC;CACnC;AAED,UAAU,8BACR,SAAQ,IAAI,CAAC,sBAAsB,EAAE,MAAM,CAAC;IAC5C,IAAI,EAAE,yBAAyB,CAAC;IAChC,MAAM,EAAE;QACN,OAAO,EAAE,CAAC,iCAAiC,CAAC,CAAC;KAC9C,CAAC;CACH;AAED,MAAM,CAAC,OAAO,OAAO,8BAA+B,SAAQ,SAAS,CAAC,8BAA8B,CAAC;IAClF,aAAa,EAAE,oBAAoB,CAAC;IAE5C,MAAM,OAAQ;IACd,aAAa,EAAE,aAAa,CAAc;IAC1C,SAAS,CAAC,EAAE,YAAY,CAAC;IAElC,YAAY,EAAE,aAAa,CAAC,GAAG,CAAC,CAA6B;IAC7D,aAAa,EAAE,aAAa,CAAC,GAAG,CAAC,CAAsC;gBAG3D,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,yBAAyB;IAQzD,WAAW,IAAI,IAAI;IAKnB,IAAI,aAAa,IAAI,oBAAoB,CAQxC;IAED,IAAI,QAAQ,IAAI,IAAI,EAAE,GAAG,SAAS,CAsBjC;IAED,IAAI,QAAQ,CAAC,CAAC,EAAE,YAAY,EAE3B;IAED,IAAI,aAAa,IAAI,IAAI,CAMxB;IAED,IAAI,SAAS,IAAI,gBAAgB,CAUhC;IAED,IAAI,cAAc,IAAI,MAAM,CAK3B;IAGD,gBAAgB,4EACI,IAAI,YAAY,gBAAgB,KAAK,UAAU,oBAQjE;IAIF,MAAM,CAAC,SAAS,EAAE,WAAW,EAAE,QAAQ,EAAE,WAAW,EAAE,CAAC,EAAE,UAAU;IAyBnE,gBAAgB,CAAC,IAAI,EAAE,gBAAgB,EAAE,GAAG,4BAA4B;IAkBxE,gBAAgB;IAUhB,kBAAkB;CAoDnB"}
@@ -1 +1 @@
1
- {"version":3,"file":"power-calendar-range.d.ts","sourceRoot":"","sources":["../../src/components/power-calendar-range.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"power-calendar-range.d.ts","sourceRoot":"","sources":["../../src/components/power-calendar-range.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"power-calendar.d.ts","sourceRoot":"","sources":["../../src/components/power-calendar.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"power-calendar.d.ts","sourceRoot":"","sources":["../../src/components/power-calendar.ts"],"names":[],"mappings":"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"}
@@ -10,7 +10,7 @@ export declare function emberPowerCalendarDayClasses([day, calendar, weeks, dayC
10
10
  declare const _default: import("@ember/component/helper").FunctionBasedHelper<{
11
11
  Args: {
12
12
  Positional: [PowerCalendarDay, PowerCalendarAPI, Week[], string | ((day: PowerCalendarDay, calendar: PowerCalendarAPI, weeks: Week[]) => string)];
13
- Named: import("@ember/component/helper").EmptyObject;
13
+ Named: object;
14
14
  };
15
15
  Return: string;
16
16
  }>;
@@ -1,7 +1,7 @@
1
1
  import type PowerCalendarComponent from './components/power-calendar.ts';
2
2
  import type PowerCalendarRangeComponent from './components/power-calendar-range.ts';
3
3
  import type PowerCalendarMultipleComponent from './components/power-calendar-multiple.ts';
4
- export default interface EmberStyleModifierRegistry {
4
+ export default interface Registry {
5
5
  PowerCalendar: typeof PowerCalendarComponent;
6
6
  PowerCalendarRange: typeof PowerCalendarRangeComponent;
7
7
  PowerCalendarMultiple: typeof PowerCalendarMultipleComponent;
@@ -1 +1 @@
1
- {"version":3,"file":"template-registry.d.ts","sourceRoot":"","sources":["../src/template-registry.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,sBAAsB,MAAM,gCAAgC,CAAC;AACzE,OAAO,KAAK,2BAA2B,MAAM,sCAAsC,CAAC;AACpF,OAAO,KAAK,8BAA8B,MAAM,yCAAyC,CAAC;AAE1F,MAAM,CAAC,OAAO,WAAW,0BAA0B;IACjD,aAAa,EAAE,OAAO,sBAAsB,CAAC;IAC7C,kBAAkB,EAAE,OAAO,2BAA2B,CAAC;IACvD,qBAAqB,EAAE,OAAO,8BAA8B,CAAC;CAC9D"}
1
+ {"version":3,"file":"template-registry.d.ts","sourceRoot":"","sources":["../src/template-registry.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,sBAAsB,MAAM,gCAAgC,CAAC;AACzE,OAAO,KAAK,2BAA2B,MAAM,sCAAsC,CAAC;AACpF,OAAO,KAAK,8BAA8B,MAAM,yCAAyC,CAAC;AAE1F,MAAM,CAAC,OAAO,WAAW,QAAQ;IAC/B,aAAa,EAAE,OAAO,sBAAsB,CAAC;IAC7C,kBAAkB,EAAE,OAAO,2BAA2B,CAAC;IACvD,qBAAqB,EAAE,OAAO,8BAA8B,CAAC;CAC9D"}
@@ -1 +1 @@
1
- {"version":3,"file":"helpers.d.ts","sourceRoot":"","sources":["../../src/test-support/helpers.ts"],"names":[],"mappings":";AAQA,wBAAkB;AAElB,cAAc,aAAa,CAAC;AA4C5B,wBAAsB,cAAc,CAClC,QAAQ,EAAE,MAAM,EAChB,SAAS,EAAE,IAAI,GACd,OAAO,CAAC,IAAI,CAAC,CAgBf;AAED,wBAAsB,cAAc,CAClC,QAAQ,EAAE,MAAM,EAChB,QAAQ,EAAE,IAAI,GACb,OAAO,CAAC,IAAI,CAAC,CAYf"}
1
+ {"version":3,"file":"helpers.d.ts","sourceRoot":"","sources":["../../src/test-support/helpers.ts"],"names":[],"mappings":";AAQA,wBAAkB;AAElB,cAAc,aAAa,CAAC;AA6C5B,wBAAsB,cAAc,CAClC,QAAQ,EAAE,MAAM,EAChB,SAAS,EAAE,IAAI,GACd,OAAO,CAAC,IAAI,CAAC,CAgBf;AAED,wBAAsB,cAAc,CAClC,QAAQ,EAAE,MAAM,EAChB,QAAQ,EAAE,IAAI,GACb,OAAO,CAAC,IAAI,CAAC,CAYf"}
@@ -9,19 +9,19 @@ import { precompileTemplate } from '@ember/template-compilation';
9
9
  import { g, i, n } from 'decorator-transforms/runtime';
10
10
  import { setComponentTemplate } from '@ember/component';
11
11
 
12
- var TEMPLATE = precompileTemplate("{{! template-lint-disable no-invalid-interactive }}\n<div\n class=\"ember-power-calendar-days\"\n data-power-calendar-id={{or @calendar.calendarUniqueId @calendar.uniqueId}}\n {{on \"click\" this.handleClick}}\n ...attributes\n>\n <div class=\"ember-power-calendar-row ember-power-calendar-weekdays\">\n {{#each this.weekdaysNames as |wdn|}}\n <div class=\"ember-power-calendar-weekday\">{{wdn}}</div>\n {{/each}}\n </div>\n <div class=\"ember-power-calendar-day-grid\" {{on \"keydown\" this.handleKeyDown}}>\n {{#each this.weeks key=\'id\' as |week|}}\n <div class=\"ember-power-calendar-row ember-power-calendar-week\" data-missing-days={{week.missingDays}}>\n {{#each week.days key=\'id\' as |day|}}\n <button type=\"button\"\n data-date=\"{{day.id}}\"\n class={{ember-power-calendar-day-classes day @calendar this.weeks @dayClass}}\n {{on \"focus\" this.handleDayFocus}}\n {{on \"blur\" this.handleDayBlur}}\n disabled={{day.isDisabled}}>\n {{#if (has-block)}}\n {{yield day @calendar this.weeks}}\n {{else}}\n {{day.number}}\n {{/if}}\n </button>\n {{/each}}\n </div>\n {{/each}}\n </div>\n</div>\n");
12
+ var TEMPLATE = precompileTemplate("{{! template-lint-disable no-invalid-interactive }}\n<div\n class=\"ember-power-calendar-days\"\n data-power-calendar-id={{or @calendar.calendarUniqueId @calendar.uniqueId}}\n {{on \"click\" this.handleClick}}\n ...attributes\n>\n <div class=\"ember-power-calendar-row ember-power-calendar-weekdays\">\n {{#each this.weekdaysNames as |wdn|}}\n <div class=\"ember-power-calendar-weekday\">{{wdn}}</div>\n {{/each}}\n </div>\n <div\n class=\"ember-power-calendar-day-grid\"\n {{on \"keydown\" this.handleKeyDown}}\n >\n {{#each this.weeks key=\"id\" as |week|}}\n <div\n class=\"ember-power-calendar-row ember-power-calendar-week\"\n data-missing-days={{week.missingDays}}\n >\n {{#each week.days key=\"id\" as |day|}}\n <button\n type=\"button\"\n data-date=\"{{day.id}}\"\n class={{ember-power-calendar-day-classes\n day\n @calendar\n this.weeks\n @dayClass\n }}\n {{on \"focus\" this.handleDayFocus}}\n {{on \"blur\" this.handleDayBlur}}\n disabled={{day.isDisabled}}\n >\n {{#if (has-block)}}\n {{yield day @calendar this.weeks}}\n {{else}}\n {{day.number}}\n {{/if}}\n </button>\n {{/each}}\n </div>\n {{/each}}\n </div>\n</div>");
13
13
 
14
14
  class PowerCalendarDaysComponent extends Component {
15
15
  static {
16
16
  g(this.prototype, "powerCalendar", [inject]);
17
17
  }
18
- #powerCalendar = (i(this, "powerCalendar"), void 0);
18
+ #powerCalendar = (i(this, "powerCalendar"), undefined);
19
19
  static {
20
20
  g(this.prototype, "focusedId", [tracked], function () {
21
21
  return null;
22
22
  });
23
23
  }
24
- #focusedId = (i(this, "focusedId"), void 0);
24
+ #focusedId = (i(this, "focusedId"), undefined);
25
25
  get weekdayFormat() {
26
26
  return this.args.weekdayFormat || 'short'; // "min" | "short" | "long"
27
27
  }
@@ -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 { inject as service } from '@ember/service';\nimport {\n add,\n getWeekdays,\n getWeekdaysMin,\n getWeekdaysShort,\n isBefore,\n isSame,\n normalizeDate,\n withLocale,\n type PowerCalendarDay,\n} from '../../utils.ts';\nimport type { CalendarAPI } from '../power-calendar.ts';\nimport type PowerCalendarService from '../../services/power-calendar.ts';\nimport {\n firstDay,\n localeStartOfWeekOrFallback,\n weekdaysNames,\n weeks,\n handleDayKeyDown,\n focusDate,\n buildDay,\n lastDay,\n handleClick,\n type TWeekdayFormat,\n type Week,\n} from '../../-private/days-utils.ts';\n\nexport interface PowerCalendarDaysArgs {\n calendar: CalendarAPI;\n dayClass?: string;\n disabledDates?: Array<Date | string>;\n maxDate?: Date;\n minDate?: Date;\n selected?: Date;\n showDaysAround?: boolean;\n startOfWeek?: string;\n center?: Date;\n weekdayFormat?: TWeekdayFormat;\n}\n\nexport interface PowerCalendarDaysSignature {\n Element: HTMLElement;\n Args: PowerCalendarDaysArgs;\n Blocks: {\n default: [day: PowerCalendarDay, calendar: CalendarAPI, weeks: Week[]];\n };\n}\n\nexport default class PowerCalendarDaysComponent extends Component<PowerCalendarDaysSignature> {\n @service declare powerCalendar: PowerCalendarService;\n\n @tracked focusedId: string | null = null;\n\n get weekdayFormat(): TWeekdayFormat {\n return this.args.weekdayFormat || 'short'; // \"min\" | \"short\" | \"long\"\n }\n\n get showDaysAround(): boolean {\n return this.args.showDaysAround !== undefined\n ? this.args.showDaysAround\n : true;\n }\n\n get weekdaysMin(): string[] {\n return withLocale(this.args.calendar.locale, getWeekdaysMin) as string[];\n }\n\n get weekdaysShort(): string[] {\n return withLocale(this.args.calendar.locale, getWeekdaysShort) as string[];\n }\n\n get weekdays(): string[] {\n return withLocale(this.args.calendar.locale, getWeekdays) as string[];\n }\n\n get localeStartOfWeek(): number {\n return localeStartOfWeekOrFallback(\n this.args.startOfWeek,\n this.args.calendar.locale,\n );\n }\n\n get weekdaysNames(): string[] {\n return weekdaysNames(\n this.localeStartOfWeek,\n this.weekdayFormat,\n this.weekdays,\n this.weekdaysMin,\n this.weekdaysShort,\n );\n }\n\n get days(): PowerCalendarDay[] {\n const today = this.powerCalendar.getDate();\n const theLastDay = lastDay(this.localeStartOfWeek, this.currentCenter);\n let day = firstDay(this.currentCenter, this.localeStartOfWeek);\n const days: PowerCalendarDay[] = [];\n while (isBefore(day, theLastDay)) {\n days.push(\n buildDay(\n day,\n today,\n this.args.calendar,\n this.focusedId,\n this.currentCenter,\n this.dayIsSelected.bind(this),\n this.args.minDate,\n this.args.maxDate,\n this.args.disabledDates,\n ),\n );\n day = add(day, 1, 'day');\n }\n return days;\n }\n\n get weeks(): Week[] {\n return weeks(this.days, this.showDaysAround);\n }\n\n get currentCenter(): Date {\n let center = this.args.center;\n if (!center) {\n center = this.args.selected || this.args.calendar.center;\n }\n return normalizeDate(center) || this.args.calendar.center;\n }\n\n // Actions\n @action\n handleDayFocus(e: FocusEvent): void {\n scheduleOnce(\n 'actions',\n this,\n this._updateFocused,\n (e.target as HTMLElement).dataset['date'],\n );\n }\n\n @action\n handleDayBlur(): void {\n scheduleOnce('actions', this, this._updateFocused, null);\n }\n\n @action\n handleKeyDown(e: KeyboardEvent): void {\n const day = handleDayKeyDown(e, this.focusedId, this.days);\n if (!day) {\n return;\n }\n this.focusedId = day.id;\n scheduleOnce(\n 'afterRender',\n this,\n focusDate,\n this.args.calendar.uniqueId,\n this.focusedId ?? '',\n );\n }\n\n @action\n handleClick(e: MouseEvent) {\n handleClick(e, this.days, this.args.calendar);\n }\n\n // Methods\n dayIsSelected(date: Date, calendar: CalendarAPI = this.args.calendar) {\n return calendar.selected\n ? isSame(date, calendar.selected as Date, 'day')\n : false;\n }\n\n _updateFocused(id?: string | null) {\n this.focusedId = id ?? null;\n }\n}\n"],"names":["PowerCalendarDaysComponent","Component","g","prototype","service","i","void 0","tracked","weekdayFormat","args","showDaysAround","undefined","weekdaysMin","withLocale","calendar","locale","getWeekdaysMin","weekdaysShort","getWeekdaysShort","weekdays","getWeekdays","localeStartOfWeek","localeStartOfWeekOrFallback","startOfWeek","weekdaysNames","days","today","powerCalendar","getDate","theLastDay","lastDay","currentCenter","day","firstDay","isBefore","push","buildDay","focusedId","dayIsSelected","bind","minDate","maxDate","disabledDates","add","weeks","center","selected","normalizeDate","handleDayFocus","e","scheduleOnce","_updateFocused","target","dataset","n","action","handleDayBlur","handleKeyDown","handleDayKeyDown","id","focusDate","uniqueId","handleClick","date","isSame","setComponentTemplate","TEMPLATE"],"mappings":";;;;;;;;;;;;;AAqDe,MAAMA,0BAA0B,SAASC,SAAS,CAA6B;AAAA,EAAA;IAAAC,CAAA,CAAA,IAAA,CAAAC,SAAA,EAAA,eAAA,EAAA,CAC3FC,MAAO,CAAA,CAAA;AAAA;AAAA,EAAA,cAAA,IAAAC,CAAA,CAAA,IAAA,EAAA,eAAA,CAAA,EAAAC,KAAA,CAAA;AAAA,EAAA;IAAAJ,CAAA,CAAA,IAAA,CAAAC,SAAA,EAAA,WAAA,EAAA,CAEPI,OAAO,CAAA,EAAA,YAAA;AAAA,MAAA,OAA4B,IAAI;AAAA,KAAA,CAAA;AAAA;AAAA,EAAA,UAAA,IAAAF,CAAA,CAAA,IAAA,EAAA,WAAA,CAAA,EAAAC,KAAA,CAAA;EAExC,IAAIE,aAAaA,GAAmB;IAClC,OAAO,IAAI,CAACC,IAAI,CAACD,aAAa,IAAI,OAAO,CAAC;AAC5C;EAEA,IAAIE,cAAcA,GAAY;AAC5B,IAAA,OAAO,IAAI,CAACD,IAAI,CAACC,cAAc,KAAKC,SAAS,GACzC,IAAI,CAACF,IAAI,CAACC,cAAc,GACxB,IAAI;AACV;EAEA,IAAIE,WAAWA,GAAa;IAC1B,OAAOC,UAAU,CAAC,IAAI,CAACJ,IAAI,CAACK,QAAQ,CAACC,MAAM,EAAEC,cAAc,CAAC;AAC9D;EAEA,IAAIC,aAAaA,GAAa;IAC5B,OAAOJ,UAAU,CAAC,IAAI,CAACJ,IAAI,CAACK,QAAQ,CAACC,MAAM,EAAEG,gBAAgB,CAAC;AAChE;EAEA,IAAIC,QAAQA,GAAa;IACvB,OAAON,UAAU,CAAC,IAAI,CAACJ,IAAI,CAACK,QAAQ,CAACC,MAAM,EAAEK,WAAW,CAAC;AAC3D;EAEA,IAAIC,iBAAiBA,GAAW;AAC9B,IAAA,OAAOC,2BAA2B,CAChC,IAAI,CAACb,IAAI,CAACc,WAAW,EACrB,IAAI,CAACd,IAAI,CAACK,QAAQ,CAACC,MACrB,CAAC;AACH;EAEA,IAAIS,aAAaA,GAAa;IAC5B,OAAOA,aAAa,CAClB,IAAI,CAACH,iBAAiB,EACtB,IAAI,CAACb,aAAa,EAClB,IAAI,CAACW,QAAQ,EACb,IAAI,CAACP,WAAW,EAChB,IAAI,CAACK,aACP,CAAC;AACH;EAEA,IAAIQ,IAAIA,GAAuB;IAC7B,MAAMC,KAAK,GAAG,IAAI,CAACC,aAAa,CAACC,OAAO,EAAE;IAC1C,MAAMC,UAAU,GAAGC,OAAO,CAAC,IAAI,CAACT,iBAAiB,EAAE,IAAI,CAACU,aAAa,CAAC;IACtE,IAAIC,GAAG,GAAGC,QAAQ,CAAC,IAAI,CAACF,aAAa,EAAE,IAAI,CAACV,iBAAiB,CAAC;IAC9D,MAAMI,IAAwB,GAAG,EAAE;AACnC,IAAA,OAAOS,QAAQ,CAACF,GAAG,EAAEH,UAAU,CAAC,EAAE;MAChCJ,IAAI,CAACU,IAAI,CACPC,QAAQ,CACNJ,GAAG,EACHN,KAAK,EACL,IAAI,CAACjB,IAAI,CAACK,QAAQ,EAClB,IAAI,CAACuB,SAAS,EACd,IAAI,CAACN,aAAa,EAClB,IAAI,CAACO,aAAa,CAACC,IAAI,CAAC,IAAI,CAAC,EAC7B,IAAI,CAAC9B,IAAI,CAAC+B,OAAO,EACjB,IAAI,CAAC/B,IAAI,CAACgC,OAAO,EACjB,IAAI,CAAChC,IAAI,CAACiC,aACZ,CACF,CAAC;MACDV,GAAG,GAAGW,GAAG,CAACX,GAAG,EAAE,CAAC,EAAE,KAAK,CAAC;AAC1B;AACA,IAAA,OAAOP,IAAI;AACb;EAEA,IAAImB,KAAKA,GAAW;IAClB,OAAOA,KAAK,CAAC,IAAI,CAACnB,IAAI,EAAE,IAAI,CAACf,cAAc,CAAC;AAC9C;EAEA,IAAIqB,aAAaA,GAAS;AACxB,IAAA,IAAIc,MAAM,GAAG,IAAI,CAACpC,IAAI,CAACoC,MAAM;IAC7B,IAAI,CAACA,MAAM,EAAE;AACXA,MAAAA,MAAM,GAAG,IAAI,CAACpC,IAAI,CAACqC,QAAQ,IAAI,IAAI,CAACrC,IAAI,CAACK,QAAQ,CAAC+B,MAAM;AAC1D;IACA,OAAOE,aAAa,CAACF,MAAM,CAAC,IAAI,IAAI,CAACpC,IAAI,CAACK,QAAQ,CAAC+B,MAAM;AAC3D;;AAEA;EAEAG,cAAcA,CAACC,CAAa,EAAQ;AAClCC,IAAAA,YAAY,CACV,SAAS,EACT,IAAI,EACJ,IAAI,CAACC,cAAc,EAClBF,CAAC,CAACG,MAAM,CAAiBC,OAAO,CAAC,MAAM,CAC1C,CAAC;AACH;AAAC,EAAA;IAAAC,CAAA,CAAA,IAAA,CAAAnD,SAAA,EAAA,gBAAA,EAAA,CARAoD,MAAM,CAAA,CAAA;AAAA;AAWPC,EAAAA,aAAaA,GAAS;IACpBN,YAAY,CAAC,SAAS,EAAE,IAAI,EAAE,IAAI,CAACC,cAAc,EAAE,IAAI,CAAC;AAC1D;AAAC,EAAA;IAAAG,CAAA,CAAA,IAAA,CAAAnD,SAAA,EAAA,eAAA,EAAA,CAHAoD,MAAM,CAAA,CAAA;AAAA;EAMPE,aAAaA,CAACR,CAAgB,EAAQ;AACpC,IAAA,MAAMjB,GAAG,GAAG0B,gBAAgB,CAACT,CAAC,EAAE,IAAI,CAACZ,SAAS,EAAE,IAAI,CAACZ,IAAI,CAAC;IAC1D,IAAI,CAACO,GAAG,EAAE;AACR,MAAA;AACF;AACA,IAAA,IAAI,CAACK,SAAS,GAAGL,GAAG,CAAC2B,EAAE;IACvBT,YAAY,CACV,aAAa,EACb,IAAI,EACJU,SAAS,EACT,IAAI,CAACnD,IAAI,CAACK,QAAQ,CAAC+C,QAAQ,EAC3B,IAAI,CAACxB,SAAS,IAAI,EACpB,CAAC;AACH;AAAC,EAAA;IAAAiB,CAAA,CAAA,IAAA,CAAAnD,SAAA,EAAA,eAAA,EAAA,CAdAoD,MAAM,CAAA,CAAA;AAAA;EAiBPO,WAAWA,CAACb,CAAa,EAAE;AACzBa,IAAAA,WAAW,CAACb,CAAC,EAAE,IAAI,CAACxB,IAAI,EAAE,IAAI,CAAChB,IAAI,CAACK,QAAQ,CAAC;AAC/C;;AAEA;AAAA,EAAA;IAAAwC,CAAA,CAAA,IAAA,CAAAnD,SAAA,EAAA,aAAA,EAAA,CALCoD,MAAM,CAAA,CAAA;AAAA;EAMPjB,aAAaA,CAACyB,IAAU,EAAEjD,QAAqB,GAAG,IAAI,CAACL,IAAI,CAACK,QAAQ,EAAE;AACpE,IAAA,OAAOA,QAAQ,CAACgC,QAAQ,GACpBkB,MAAM,CAACD,IAAI,EAAEjD,QAAQ,CAACgC,QAAQ,EAAU,KAAK,CAAC,GAC9C,KAAK;AACX;EAEAK,cAAcA,CAACQ,EAAkB,EAAE;AACjC,IAAA,IAAI,CAACtB,SAAS,GAAGsB,EAAE,IAAI,IAAI;AAC7B;AACF;AAACM,oBAAA,CAAAC,QAAA,EA/HoBlE,0BAA0B,CAAA;;;;"}
1
+ {"version":3,"file":"days.js","sources":["../../../src/components/power-calendar/days.ts"],"sourcesContent":["import Component from '@glimmer/component';\nimport { tracked } from '@glimmer/tracking';\nimport { action } from '@ember/object';\nimport { scheduleOnce } from '@ember/runloop';\nimport { inject as service } from '@ember/service';\nimport {\n add,\n getWeekdays,\n getWeekdaysMin,\n getWeekdaysShort,\n isBefore,\n isSame,\n normalizeDate,\n withLocale,\n type PowerCalendarDay,\n} from '../../utils.ts';\nimport type { CalendarAPI } from '../power-calendar.ts';\nimport type PowerCalendarService from '../../services/power-calendar.ts';\nimport {\n firstDay,\n localeStartOfWeekOrFallback,\n weekdaysNames,\n weeks,\n handleDayKeyDown,\n focusDate,\n buildDay,\n lastDay,\n handleClick,\n type TWeekdayFormat,\n type Week,\n} from '../../-private/days-utils.ts';\n\nexport interface PowerCalendarDaysArgs {\n calendar: CalendarAPI;\n dayClass?: string;\n disabledDates?: Array<Date | string>;\n maxDate?: Date;\n minDate?: Date;\n selected?: Date;\n showDaysAround?: boolean;\n startOfWeek?: string;\n center?: Date;\n weekdayFormat?: TWeekdayFormat;\n}\n\nexport interface PowerCalendarDaysSignature {\n Element: HTMLElement;\n Args: PowerCalendarDaysArgs;\n Blocks: {\n default: [day: PowerCalendarDay, calendar: CalendarAPI, weeks: Week[]];\n };\n}\n\nexport default class PowerCalendarDaysComponent extends Component<PowerCalendarDaysSignature> {\n @service declare powerCalendar: PowerCalendarService;\n\n @tracked focusedId: string | null = null;\n\n get weekdayFormat(): TWeekdayFormat {\n return this.args.weekdayFormat || 'short'; // \"min\" | \"short\" | \"long\"\n }\n\n get showDaysAround(): boolean {\n return this.args.showDaysAround !== undefined\n ? this.args.showDaysAround\n : true;\n }\n\n get weekdaysMin(): string[] {\n return withLocale(this.args.calendar.locale, getWeekdaysMin) as string[];\n }\n\n get weekdaysShort(): string[] {\n return withLocale(this.args.calendar.locale, getWeekdaysShort) as string[];\n }\n\n get weekdays(): string[] {\n return withLocale(this.args.calendar.locale, getWeekdays) as string[];\n }\n\n get localeStartOfWeek(): number {\n return localeStartOfWeekOrFallback(\n this.args.startOfWeek,\n this.args.calendar.locale,\n );\n }\n\n get weekdaysNames(): string[] {\n return weekdaysNames(\n this.localeStartOfWeek,\n this.weekdayFormat,\n this.weekdays,\n this.weekdaysMin,\n this.weekdaysShort,\n );\n }\n\n get days(): PowerCalendarDay[] {\n const today = this.powerCalendar.getDate();\n const theLastDay = lastDay(this.localeStartOfWeek, this.currentCenter);\n let day = firstDay(this.currentCenter, this.localeStartOfWeek);\n const days: PowerCalendarDay[] = [];\n while (isBefore(day, theLastDay)) {\n days.push(\n buildDay(\n day,\n today,\n this.args.calendar,\n this.focusedId,\n this.currentCenter,\n this.dayIsSelected.bind(this),\n this.args.minDate,\n this.args.maxDate,\n this.args.disabledDates,\n ),\n );\n day = add(day, 1, 'day');\n }\n return days;\n }\n\n get weeks(): Week[] {\n return weeks(this.days, this.showDaysAround);\n }\n\n get currentCenter(): Date {\n let center = this.args.center;\n if (!center) {\n center = this.args.selected || this.args.calendar.center;\n }\n return normalizeDate(center) || this.args.calendar.center;\n }\n\n // Actions\n @action\n handleDayFocus(e: FocusEvent): void {\n scheduleOnce(\n 'actions',\n this,\n this._updateFocused,\n (e.target as HTMLElement).dataset['date'],\n );\n }\n\n @action\n handleDayBlur(): void {\n scheduleOnce('actions', this, this._updateFocused, null);\n }\n\n @action\n handleKeyDown(e: KeyboardEvent): void {\n const day = handleDayKeyDown(e, this.focusedId, this.days);\n if (!day) {\n return;\n }\n this.focusedId = day.id;\n scheduleOnce(\n 'afterRender',\n this,\n focusDate,\n this.args.calendar.uniqueId,\n this.focusedId ?? '',\n );\n }\n\n @action\n handleClick(e: MouseEvent) {\n handleClick(e, this.days, this.args.calendar);\n }\n\n // Methods\n dayIsSelected(date: Date, calendar: CalendarAPI = this.args.calendar) {\n return calendar.selected\n ? isSame(date, calendar.selected as Date, 'day')\n : false;\n }\n\n _updateFocused(id?: string | null) {\n this.focusedId = id ?? null;\n }\n}\n"],"names":["PowerCalendarDaysComponent","Component","g","prototype","service","i","void 0","tracked","weekdayFormat","args","showDaysAround","undefined","weekdaysMin","withLocale","calendar","locale","getWeekdaysMin","weekdaysShort","getWeekdaysShort","weekdays","getWeekdays","localeStartOfWeek","localeStartOfWeekOrFallback","startOfWeek","weekdaysNames","days","today","powerCalendar","getDate","theLastDay","lastDay","currentCenter","day","firstDay","isBefore","push","buildDay","focusedId","dayIsSelected","bind","minDate","maxDate","disabledDates","add","weeks","center","selected","normalizeDate","handleDayFocus","e","scheduleOnce","_updateFocused","target","dataset","n","action","handleDayBlur","handleKeyDown","handleDayKeyDown","id","focusDate","uniqueId","handleClick","date","isSame","setComponentTemplate","TEMPLATE"],"mappings":"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"}
@@ -2,7 +2,7 @@ import Component from '@glimmer/component';
2
2
  import { precompileTemplate } from '@ember/template-compilation';
3
3
  import { setComponentTemplate } from '@ember/component';
4
4
 
5
- var TEMPLATE = precompileTemplate("<nav class=\"ember-power-calendar-nav\">\n {{#if @calendar.actions.moveCenter}}\n <button type=\"button\" class=\"ember-power-calendar-nav-control ember-power-calendar-nav-control--previous\" {{on \"click\" (fn @calendar.actions.moveCenter -1 this.unit @calendar)}}>«</button>\n {{/if}}\n <div class=\"ember-power-calendar-nav-title\">\n {{#if (has-block)}}\n {{yield @calendar}}\n {{else}}\n {{power-calendar-format-date @calendar.center this.format locale=@calendar.locale}}\n {{/if}}\n </div>\n {{#if @calendar.actions.moveCenter}}\n <button type=\"button\" class=\"ember-power-calendar-nav-control ember-power-calendar-nav-control--next\" {{on \"click\" (fn @calendar.actions.moveCenter 1 this.unit @calendar)}}>»</button>\n {{/if}}\n</nav>\n");
5
+ var TEMPLATE = precompileTemplate("<nav class=\"ember-power-calendar-nav\">\n {{#if @calendar.actions.moveCenter}}\n <button\n type=\"button\"\n class=\"ember-power-calendar-nav-control ember-power-calendar-nav-control--previous\"\n {{on \"click\" (fn @calendar.actions.moveCenter -1 this.unit @calendar)}}\n >«</button>\n {{/if}}\n <div class=\"ember-power-calendar-nav-title\">\n {{#if (has-block)}}\n {{yield @calendar}}\n {{else}}\n {{power-calendar-format-date\n @calendar.center\n this.format\n locale=@calendar.locale\n }}\n {{/if}}\n </div>\n {{#if @calendar.actions.moveCenter}}\n <button\n type=\"button\"\n class=\"ember-power-calendar-nav-control ember-power-calendar-nav-control--next\"\n {{on \"click\" (fn @calendar.actions.moveCenter 1 this.unit @calendar)}}\n >»</button>\n {{/if}}\n</nav>");
6
6
 
7
7
  class PowerCalendarNavComponent extends Component {
8
8
  get unit() {
@@ -9,19 +9,19 @@ import { precompileTemplate } from '@ember/template-compilation';
9
9
  import { g, i, n } from 'decorator-transforms/runtime';
10
10
  import { setComponentTemplate } from '@ember/component';
11
11
 
12
- var TEMPLATE = precompileTemplate("{{! template-lint-disable no-invalid-interactive }}\n<div\n class=\"ember-power-calendar-days\"\n data-power-calendar-id={{or @calendar.calendarUniqueId @calendar.uniqueId}}\n {{on \"click\" this.handleClick}}\n ...attributes\n>\n <div class=\"ember-power-calendar-row ember-power-calendar-weekdays\">\n {{#each this.weekdaysNames as |wdn|}}\n <div class=\"ember-power-calendar-weekday\">{{wdn}}</div>\n {{/each}}\n </div>\n <div class=\"ember-power-calendar-day-grid\" {{on \"keydown\" this.handleKeyDown}}>\n {{#each this.weeks key=\'id\' as |week|}}\n <div class=\"ember-power-calendar-row ember-power-calendar-week\" data-missing-days={{week.missingDays}}>\n {{#each week.days key=\'id\' as |day|}}\n <button type=\"button\"\n data-date=\"{{day.id}}\"\n class={{ember-power-calendar-day-classes day @calendar this.weeks @dayClass}}\n {{on \"focus\" this.handleDayFocus}}\n {{on \"blur\" this.handleDayBlur}}\n disabled={{day.isDisabled}}>\n {{#if (has-block)}}\n {{yield day @calendar this.weeks}}\n {{else}}\n {{day.number}}\n {{/if}}\n </button>\n {{/each}}\n </div>\n {{/each}}\n </div>\n</div>\n");
12
+ var TEMPLATE = precompileTemplate("{{! template-lint-disable no-invalid-interactive }}\n<div\n class=\"ember-power-calendar-days\"\n data-power-calendar-id={{or @calendar.calendarUniqueId @calendar.uniqueId}}\n {{on \"click\" this.handleClick}}\n ...attributes\n>\n <div class=\"ember-power-calendar-row ember-power-calendar-weekdays\">\n {{#each this.weekdaysNames as |wdn|}}\n <div class=\"ember-power-calendar-weekday\">{{wdn}}</div>\n {{/each}}\n </div>\n <div\n class=\"ember-power-calendar-day-grid\"\n {{on \"keydown\" this.handleKeyDown}}\n >\n {{#each this.weeks key=\"id\" as |week|}}\n <div\n class=\"ember-power-calendar-row ember-power-calendar-week\"\n data-missing-days={{week.missingDays}}\n >\n {{#each week.days key=\"id\" as |day|}}\n <button\n type=\"button\"\n data-date=\"{{day.id}}\"\n class={{ember-power-calendar-day-classes\n day\n @calendar\n this.weeks\n @dayClass\n }}\n {{on \"focus\" this.handleDayFocus}}\n {{on \"blur\" this.handleDayBlur}}\n disabled={{day.isDisabled}}\n >\n {{#if (has-block)}}\n {{yield day @calendar this.weeks}}\n {{else}}\n {{day.number}}\n {{/if}}\n </button>\n {{/each}}\n </div>\n {{/each}}\n </div>\n</div>");
13
13
 
14
14
  class PowerCalendarMultipleDaysComponent extends Component {
15
15
  static {
16
16
  g(this.prototype, "powerCalendar", [inject]);
17
17
  }
18
- #powerCalendar = (i(this, "powerCalendar"), void 0);
18
+ #powerCalendar = (i(this, "powerCalendar"), undefined);
19
19
  static {
20
20
  g(this.prototype, "focusedId", [tracked], function () {
21
21
  return null;
22
22
  });
23
23
  }
24
- #focusedId = (i(this, "focusedId"), void 0);
24
+ #focusedId = (i(this, "focusedId"), undefined);
25
25
  get weekdayFormat() {
26
26
  return this.args.weekdayFormat || 'short'; // "min" | "short" | "long"
27
27
  }
@@ -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 { inject as service } from '@ember/service';\nimport {\n add,\n getWeekdays,\n getWeekdaysMin,\n getWeekdaysShort,\n isBefore,\n isSame,\n normalizeDate,\n withLocale,\n type PowerCalendarDay,\n} from '../../utils.ts';\nimport type { PowerCalendarMultipleAPI } from '../power-calendar-multiple.ts';\nimport {\n buildDay,\n dayIsDisabled,\n firstDay,\n lastDay,\n localeStartOfWeekOrFallback,\n weekdaysNames,\n weeks,\n handleDayKeyDown,\n focusDate,\n handleClick,\n type TWeekdayFormat,\n type Week,\n} from '../../-private/days-utils.ts';\nimport type { CalendarAPI } from '../power-calendar.ts';\nimport type PowerCalendarService from '../../services/power-calendar.ts';\nimport type {\n PowerCalendarDaysArgs,\n PowerCalendarDaysSignature,\n} from '../power-calendar/days.ts';\n\ninterface PowerCalendarMultipleDaysArgs\n extends Omit<PowerCalendarDaysArgs, 'selected'> {\n selected?: Date[];\n maxLength?: number;\n}\n\ninterface PowerCalendarMultipleDaysSignature\n extends Omit<PowerCalendarDaysSignature, 'Args'> {\n Args: PowerCalendarMultipleDaysArgs;\n}\n\nexport default class PowerCalendarMultipleDaysComponent extends Component<PowerCalendarMultipleDaysSignature> {\n @service declare powerCalendar: PowerCalendarService;\n\n @tracked focusedId: string | null = null;\n\n get weekdayFormat(): TWeekdayFormat {\n return this.args.weekdayFormat || 'short'; // \"min\" | \"short\" | \"long\"\n }\n\n get showDaysAround(): boolean {\n return this.args.showDaysAround !== undefined\n ? this.args.showDaysAround\n : true;\n }\n\n get weekdaysMin(): string[] {\n return withLocale(this.args.calendar.locale, getWeekdaysMin) as string[];\n }\n\n get weekdaysShort(): string[] {\n return withLocale(this.args.calendar.locale, getWeekdaysShort) as string[];\n }\n\n get weekdays(): string[] {\n return withLocale(this.args.calendar.locale, getWeekdays) as string[];\n }\n\n get localeStartOfWeek(): number {\n return localeStartOfWeekOrFallback(\n this.args.startOfWeek,\n this.args.calendar.locale,\n );\n }\n\n get weekdaysNames(): string[] {\n return weekdaysNames(\n this.localeStartOfWeek,\n this.weekdayFormat,\n this.weekdays,\n this.weekdaysMin,\n this.weekdaysShort,\n );\n }\n\n get days(): PowerCalendarDay[] {\n const today = this.powerCalendar.getDate();\n const theLastDay = lastDay(this.localeStartOfWeek, this.currentCenter);\n let day = firstDay(this.currentCenter, this.localeStartOfWeek);\n const days: PowerCalendarDay[] = [];\n while (isBefore(day, theLastDay)) {\n days.push(\n buildDay(\n day,\n today,\n this.args.calendar,\n this.focusedId,\n this.currentCenter,\n this.dayIsSelected.bind(this),\n this.args.minDate,\n this.args.maxDate,\n this.args.disabledDates,\n this.dayIsDisabled.bind(this),\n ),\n );\n day = add(day, 1, 'day');\n }\n return days;\n }\n\n get weeks(): Week[] {\n return weeks(this.days, this.showDaysAround);\n }\n\n get currentCenter(): Date {\n let center = this.args.center;\n if (!center) {\n center = this.args.selected\n ? this.args.selected[0]\n : this.args.calendar.center;\n }\n return normalizeDate(center) || this.args.calendar.center;\n }\n\n get maxLength(): number {\n return this.args.maxLength || Infinity;\n }\n\n // Actions\n @action\n handleDayFocus(e: FocusEvent): void {\n scheduleOnce(\n 'actions',\n this,\n this._updateFocused,\n (e.target as HTMLElement).dataset['date'],\n );\n }\n\n @action\n handleDayBlur(): void {\n scheduleOnce('actions', this, this._updateFocused, null);\n }\n\n @action\n handleKeyDown(e: KeyboardEvent): void {\n const day = handleDayKeyDown(e, this.focusedId, this.days);\n if (!day) {\n return;\n }\n this.focusedId = day.id;\n scheduleOnce(\n 'afterRender',\n this,\n focusDate,\n this.args.calendar.uniqueId,\n this.focusedId ?? '',\n );\n }\n\n @action\n handleClick(e: MouseEvent) {\n handleClick(e, this.days, this.args.calendar);\n }\n\n // Methods\n dayIsSelected(date: Date, calendar: CalendarAPI = this.args.calendar) {\n const selected = (calendar as PowerCalendarMultipleAPI).selected || [];\n return selected.some((d) => isSame(date, d, 'day'));\n }\n\n _updateFocused(id?: string | null) {\n this.focusedId = id ?? null;\n }\n\n dayIsDisabled(\n date: Date,\n calendarApi: CalendarAPI,\n minDate?: Date,\n maxDate?: Date,\n disabledDates?: Array<Date | string>,\n ) {\n const calendar = calendarApi as PowerCalendarMultipleAPI;\n const numSelected = (calendar.selected && calendar.selected.length) || 0;\n const maxLength = this.maxLength || Infinity;\n return (\n dayIsDisabled(date, calendar, minDate, maxDate, disabledDates) ||\n (numSelected >= maxLength && !this.dayIsSelected(date))\n );\n }\n}\n"],"names":["PowerCalendarMultipleDaysComponent","Component","g","prototype","service","i","void 0","tracked","weekdayFormat","args","showDaysAround","undefined","weekdaysMin","withLocale","calendar","locale","getWeekdaysMin","weekdaysShort","getWeekdaysShort","weekdays","getWeekdays","localeStartOfWeek","localeStartOfWeekOrFallback","startOfWeek","weekdaysNames","days","today","powerCalendar","getDate","theLastDay","lastDay","currentCenter","day","firstDay","isBefore","push","buildDay","focusedId","dayIsSelected","bind","minDate","maxDate","disabledDates","dayIsDisabled","add","weeks","center","selected","normalizeDate","maxLength","Infinity","handleDayFocus","e","scheduleOnce","_updateFocused","target","dataset","n","action","handleDayBlur","handleKeyDown","handleDayKeyDown","id","focusDate","uniqueId","handleClick","date","some","d","isSame","calendarApi","numSelected","length","setComponentTemplate","TEMPLATE"],"mappings":"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"}
1
+ {"version":3,"file":"days.js","sources":["../../../src/components/power-calendar-multiple/days.ts"],"sourcesContent":["import Component from '@glimmer/component';\nimport { tracked } from '@glimmer/tracking';\nimport { action } from '@ember/object';\nimport { scheduleOnce } from '@ember/runloop';\nimport { inject as service } from '@ember/service';\nimport {\n add,\n getWeekdays,\n getWeekdaysMin,\n getWeekdaysShort,\n isBefore,\n isSame,\n normalizeDate,\n withLocale,\n type PowerCalendarDay,\n} from '../../utils.ts';\nimport type { PowerCalendarMultipleAPI } from '../power-calendar-multiple.ts';\nimport {\n buildDay,\n dayIsDisabled,\n firstDay,\n lastDay,\n localeStartOfWeekOrFallback,\n weekdaysNames,\n weeks,\n handleDayKeyDown,\n focusDate,\n handleClick,\n type TWeekdayFormat,\n type Week,\n} from '../../-private/days-utils.ts';\nimport type { CalendarAPI } from '../power-calendar.ts';\nimport type PowerCalendarService from '../../services/power-calendar.ts';\nimport type {\n PowerCalendarDaysArgs,\n PowerCalendarDaysSignature,\n} from '../power-calendar/days.ts';\n\ninterface PowerCalendarMultipleDaysArgs\n extends Omit<PowerCalendarDaysArgs, 'selected'> {\n selected?: Date[];\n maxLength?: number;\n}\n\ninterface PowerCalendarMultipleDaysSignature\n extends Omit<PowerCalendarDaysSignature, 'Args'> {\n Args: PowerCalendarMultipleDaysArgs;\n}\n\nexport default class PowerCalendarMultipleDaysComponent extends Component<PowerCalendarMultipleDaysSignature> {\n @service declare powerCalendar: PowerCalendarService;\n\n @tracked focusedId: string | null = null;\n\n get weekdayFormat(): TWeekdayFormat {\n return this.args.weekdayFormat || 'short'; // \"min\" | \"short\" | \"long\"\n }\n\n get showDaysAround(): boolean {\n return this.args.showDaysAround !== undefined\n ? this.args.showDaysAround\n : true;\n }\n\n get weekdaysMin(): string[] {\n return withLocale(this.args.calendar.locale, getWeekdaysMin) as string[];\n }\n\n get weekdaysShort(): string[] {\n return withLocale(this.args.calendar.locale, getWeekdaysShort) as string[];\n }\n\n get weekdays(): string[] {\n return withLocale(this.args.calendar.locale, getWeekdays) as string[];\n }\n\n get localeStartOfWeek(): number {\n return localeStartOfWeekOrFallback(\n this.args.startOfWeek,\n this.args.calendar.locale,\n );\n }\n\n get weekdaysNames(): string[] {\n return weekdaysNames(\n this.localeStartOfWeek,\n this.weekdayFormat,\n this.weekdays,\n this.weekdaysMin,\n this.weekdaysShort,\n );\n }\n\n get days(): PowerCalendarDay[] {\n const today = this.powerCalendar.getDate();\n const theLastDay = lastDay(this.localeStartOfWeek, this.currentCenter);\n let day = firstDay(this.currentCenter, this.localeStartOfWeek);\n const days: PowerCalendarDay[] = [];\n while (isBefore(day, theLastDay)) {\n days.push(\n buildDay(\n day,\n today,\n this.args.calendar,\n this.focusedId,\n this.currentCenter,\n this.dayIsSelected.bind(this),\n this.args.minDate,\n this.args.maxDate,\n this.args.disabledDates,\n this.dayIsDisabled.bind(this),\n ),\n );\n day = add(day, 1, 'day');\n }\n return days;\n }\n\n get weeks(): Week[] {\n return weeks(this.days, this.showDaysAround);\n }\n\n get currentCenter(): Date {\n let center = this.args.center;\n if (!center) {\n center = this.args.selected\n ? this.args.selected[0]\n : this.args.calendar.center;\n }\n return normalizeDate(center) || this.args.calendar.center;\n }\n\n get maxLength(): number {\n return this.args.maxLength || Infinity;\n }\n\n // Actions\n @action\n handleDayFocus(e: FocusEvent): void {\n scheduleOnce(\n 'actions',\n this,\n this._updateFocused,\n (e.target as HTMLElement).dataset['date'],\n );\n }\n\n @action\n handleDayBlur(): void {\n scheduleOnce('actions', this, this._updateFocused, null);\n }\n\n @action\n handleKeyDown(e: KeyboardEvent): void {\n const day = handleDayKeyDown(e, this.focusedId, this.days);\n if (!day) {\n return;\n }\n this.focusedId = day.id;\n scheduleOnce(\n 'afterRender',\n this,\n focusDate,\n this.args.calendar.uniqueId,\n this.focusedId ?? '',\n );\n }\n\n @action\n handleClick(e: MouseEvent) {\n handleClick(e, this.days, this.args.calendar);\n }\n\n // Methods\n dayIsSelected(date: Date, calendar: CalendarAPI = this.args.calendar) {\n const selected = (calendar as PowerCalendarMultipleAPI).selected || [];\n return selected.some((d) => isSame(date, d, 'day'));\n }\n\n _updateFocused(id?: string | null) {\n this.focusedId = id ?? null;\n }\n\n dayIsDisabled(\n date: Date,\n calendarApi: CalendarAPI,\n minDate?: Date,\n maxDate?: Date,\n disabledDates?: Array<Date | string>,\n ) {\n const calendar = calendarApi as PowerCalendarMultipleAPI;\n const numSelected = (calendar.selected && calendar.selected.length) || 0;\n const maxLength = this.maxLength || Infinity;\n return (\n dayIsDisabled(date, calendar, minDate, maxDate, disabledDates) ||\n (numSelected >= maxLength && !this.dayIsSelected(date))\n );\n }\n}\n"],"names":["PowerCalendarMultipleDaysComponent","Component","g","prototype","service","i","void 0","tracked","weekdayFormat","args","showDaysAround","undefined","weekdaysMin","withLocale","calendar","locale","getWeekdaysMin","weekdaysShort","getWeekdaysShort","weekdays","getWeekdays","localeStartOfWeek","localeStartOfWeekOrFallback","startOfWeek","weekdaysNames","days","today","powerCalendar","getDate","theLastDay","lastDay","currentCenter","day","firstDay","isBefore","push","buildDay","focusedId","dayIsSelected","bind","minDate","maxDate","disabledDates","dayIsDisabled","add","weeks","center","selected","normalizeDate","maxLength","Infinity","handleDayFocus","e","scheduleOnce","_updateFocused","target","dataset","n","action","handleDayBlur","handleKeyDown","handleDayKeyDown","id","focusDate","uniqueId","handleClick","date","some","d","isSame","calendarApi","numSelected","length","setComponentTemplate","TEMPLATE"],"mappings":"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"}
@@ -15,29 +15,29 @@ import { precompileTemplate } from '@ember/template-compilation';
15
15
  import { g, i, n } from 'decorator-transforms/runtime';
16
16
  import { setComponentTemplate } from '@ember/component';
17
17
 
18
- var TEMPLATE = precompileTemplate("{{#let (assign this.publicAPI (hash\n Nav=(component (ensure-safe-component (or @navComponent this.navComponent)) calendar=(readonly this.publicAPI))\n Days=(component (ensure-safe-component (or @daysComponent this.daysComponent)) calendar=(readonly this.publicAPI))\n)) as |calendar|}}\n {{#let (element this.tagWithDefault) as |Tag|}}\n <Tag class=\"ember-power-calendar\" ...attributes id={{calendar.uniqueId}}>\n {{#if (has-block)}}\n {{yield calendar}}\n {{else}}\n <calendar.Nav/>\n <calendar.Days/>\n {{/if}}\n </Tag>\n {{/let}}\n{{/let}}\n");
18
+ var TEMPLATE = precompileTemplate("{{#let\n (assign\n this.publicAPI\n (hash\n Nav=(component\n (ensure-safe-component (or @navComponent this.navComponent))\n calendar=(readonly this.publicAPI)\n )\n Days=(component\n (ensure-safe-component (or @daysComponent this.daysComponent))\n calendar=(readonly this.publicAPI)\n )\n )\n )\n as |calendar|\n}}\n {{#let (element this.tagWithDefault) as |Tag|}}\n <Tag class=\"ember-power-calendar\" ...attributes id={{calendar.uniqueId}}>\n {{#if (has-block)}}\n {{yield calendar}}\n {{else}}\n <calendar.Nav />\n <calendar.Days />\n {{/if}}\n </Tag>\n {{/let}}\n{{/let}}");
19
19
 
20
20
  class PowerCalendarMultipleComponent extends Component {
21
21
  static {
22
22
  g(this.prototype, "powerCalendar", [inject]);
23
23
  }
24
- #powerCalendar = (i(this, "powerCalendar"), void 0);
24
+ #powerCalendar = (i(this, "powerCalendar"), undefined);
25
25
  static {
26
26
  g(this.prototype, "center", [tracked], function () {
27
27
  return null;
28
28
  });
29
29
  }
30
- #center = (i(this, "center"), void 0);
30
+ #center = (i(this, "center"), undefined);
31
31
  static {
32
32
  g(this.prototype, "_calendarType", [tracked], function () {
33
33
  return 'multiple';
34
34
  });
35
35
  }
36
- #_calendarType = (i(this, "_calendarType"), void 0);
36
+ #_calendarType = (i(this, "_calendarType"), undefined);
37
37
  static {
38
38
  g(this.prototype, "_selected", [tracked]);
39
39
  }
40
- #_selected = (i(this, "_selected"), void 0);
40
+ #_selected = (i(this, "_selected"), undefined);
41
41
  navComponent = PowerCalendarNavComponent;
42
42
  daysComponent = PowerCalendarMultipleDaysComponent;
43
43
 
@@ -151,6 +151,7 @@ class PowerCalendarMultipleComponent extends Component {
151
151
  registerCalendar() {
152
152
  if (window) {
153
153
  // @ts-expect-error Property '__powerCalendars'
154
+ // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment
154
155
  window.__powerCalendars = window.__powerCalendars || {}; // TODO: weakmap??
155
156
  // @ts-expect-error Property '__powerCalendars'
156
157
  window.__powerCalendars[this.publicAPI.uniqueId] = this;
@@ -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 { inject as service } from '@ember/service';\nimport { assert } from '@ember/debug';\nimport { isArray } from '@ember/array';\nimport { action } from '@ember/object';\nimport { task } from 'ember-concurrency';\nimport PowerCalendarMultipleDaysComponent from './power-calendar-multiple/days.ts';\nimport PowerCalendarNavComponent from './power-calendar/nav.ts';\nimport { publicActionsObject } from '../-private/utils.ts';\nimport {\n normalizeDate,\n isSame,\n normalizeMultipleActionValue,\n normalizeCalendarValue,\n type NormalizeMultipleActionValue,\n type PowerCalendarDay,\n} from '../utils.ts';\nimport type {\n CalendarAPI,\n CalendarDay,\n PowerCalendarAPI,\n PowerCalendarActions,\n PowerCalendarArgs,\n PowerCalendarSignature,\n SelectedDays,\n TCalendarType,\n} from './power-calendar.ts';\nimport type Owner from '@ember/owner';\nimport type { ComponentLike } from '@glint/template';\nimport type PowerCalendarService from '../services/power-calendar.ts';\n\nexport interface PowerCalendarMultipleAPI\n extends Omit<PowerCalendarAPI, 'selected'> {\n selected?: Date[];\n}\n\nexport type TPowerCalendarMultipleOnSelect = (\n day: NormalizeMultipleActionValue,\n calendar: PowerCalendarMultipleAPI,\n event: MouseEvent,\n) => void;\n\ninterface PowerCalendarMultipleArgs\n extends Omit<PowerCalendarArgs, 'selected' | 'onSelect'> {\n selected?: Date[];\n onSelect?: TPowerCalendarMultipleOnSelect;\n}\n\ninterface PowerCalendarMultipleDefaultBlock extends PowerCalendarMultipleAPI {\n NavComponent: ComponentLike<any>;\n DaysComponent: ComponentLike<any>;\n}\n\ninterface PowerCalendarMultipleSignature\n extends Omit<PowerCalendarSignature, 'Args'> {\n Args: PowerCalendarMultipleArgs;\n Blocks: {\n default: [PowerCalendarMultipleDefaultBlock];\n };\n}\n\nexport default class PowerCalendarMultipleComponent extends Component<PowerCalendarMultipleSignature> {\n @service declare powerCalendar: PowerCalendarService;\n\n @tracked center = null;\n @tracked _calendarType: TCalendarType = 'multiple';\n @tracked _selected?: SelectedDays;\n\n navComponent: ComponentLike<any> = PowerCalendarNavComponent;\n daysComponent: ComponentLike<any> = PowerCalendarMultipleDaysComponent;\n\n // Lifecycle hooks\n constructor(owner: Owner, args: PowerCalendarMultipleArgs) {\n super(owner, args);\n this.registerCalendar();\n if (this.args.onInit) {\n this.args.onInit(this.publicAPI);\n }\n }\n\n willDestroy(): void {\n super.willDestroy();\n this.unregisterCalendar();\n }\n\n get publicActions(): PowerCalendarActions {\n return publicActionsObject(\n this.args.onSelect,\n this.select,\n this.args.onCenterChange,\n this.changeCenterTask,\n this.currentCenter,\n );\n }\n\n get selected(): Date[] | undefined {\n if (this._selected) {\n return (this._selected as Date[]) || undefined;\n }\n\n const value = this.args.selected;\n\n if (!isArray(value)) {\n return value;\n }\n\n const selected: Date[] = [];\n\n for (const date of value) {\n const normalizedDate = normalizeDate(date);\n if (!(normalizedDate instanceof Date)) {\n continue;\n }\n selected.push(normalizedDate);\n }\n\n return selected;\n }\n\n set selected(v: SelectedDays) {\n this._selected = normalizeDate(v as Date | undefined);\n }\n\n get currentCenter(): Date {\n let center = this.args.center;\n if (!center) {\n center = (this.selected || [])[0] || this.powerCalendar.getDate();\n }\n return normalizeDate(center) || this.powerCalendar.getDate();\n }\n\n get publicAPI(): PowerCalendarAPI {\n return {\n uniqueId: guidFor(this),\n type: this._calendarType,\n selected: this.selected,\n loading: this.changeCenterTask.isRunning,\n center: this.currentCenter,\n locale: this.args.locale || this.powerCalendar.locale,\n actions: this.publicActions,\n };\n }\n\n get tagWithDefault(): string {\n if (this.args.tag === undefined || this.args.tag === null) {\n return 'div';\n }\n return this.args.tag;\n }\n\n // Tasks\n changeCenterTask = task(\n async (newCenter: Date, calendar: PowerCalendarAPI, e: MouseEvent) => {\n assert(\n \"You attempted to move the center of a calendar that doesn't receive an `@onCenterChange` action.\",\n typeof this.args.onCenterChange === 'function',\n );\n const value = normalizeCalendarValue({ date: newCenter });\n await this.args.onCenterChange(value, calendar, e);\n },\n );\n\n // Actions\n @action\n select(dayOrDays: CalendarDay, calendar: CalendarAPI, e: MouseEvent) {\n assert(\n `The select action expects an array of date objects, or a date object. ${typeof dayOrDays} was recieved instead.`,\n isArray(dayOrDays) ||\n (dayOrDays instanceof Object && dayOrDays.date instanceof Date),\n );\n\n let days;\n\n if (isArray(dayOrDays)) {\n days = dayOrDays;\n } else if (dayOrDays instanceof Object && dayOrDays.date instanceof Date) {\n days = [dayOrDays];\n }\n\n if (this.args.onSelect) {\n this.args.onSelect(\n this._buildCollection((days as PowerCalendarDay[]) ?? []),\n calendar as PowerCalendarMultipleAPI,\n e,\n );\n }\n }\n\n // Methods\n _buildCollection(days: PowerCalendarDay[]): NormalizeMultipleActionValue {\n let selected = this.selected || [];\n\n for (const day of days) {\n const index = selected.findIndex((selectedDate) =>\n isSame(day.date, selectedDate, 'day'),\n );\n if (index === -1) {\n selected = [...selected, day.date];\n } else {\n selected = selected.slice(0, index).concat(selected.slice(index + 1));\n }\n }\n\n return normalizeMultipleActionValue({ date: selected });\n }\n\n // Methods\n registerCalendar() {\n if (window) {\n // @ts-expect-error Property '__powerCalendars'\n window.__powerCalendars = window.__powerCalendars || {}; // TODO: weakmap??\n // @ts-expect-error Property '__powerCalendars'\n window.__powerCalendars[this.publicAPI.uniqueId] = this;\n }\n }\n\n unregisterCalendar() {\n // @ts-expect-error Property '__powerCalendars'\n if (window && window.__powerCalendars?.[guidFor(this)]) {\n // @ts-expect-error Property '__powerCalendars'\n delete window.__powerCalendars[guidFor(this)];\n }\n }\n}\n"],"names":["PowerCalendarMultipleComponent","Component","g","prototype","service","i","void 0","tracked","navComponent","PowerCalendarNavComponent","daysComponent","PowerCalendarMultipleDaysComponent","constructor","owner","args","registerCalendar","onInit","publicAPI","willDestroy","unregisterCalendar","publicActions","publicActionsObject","onSelect","select","onCenterChange","changeCenterTask","currentCenter","selected","_selected","undefined","value","isArray","date","normalizedDate","normalizeDate","Date","push","v","center","powerCalendar","getDate","uniqueId","guidFor","type","_calendarType","loading","isRunning","locale","actions","tagWithDefault","tag","_buildTask","context","generator","newCenter","calendar","e","assert","normalizeCalendarValue","dayOrDays","Object","days","_buildCollection","n","action","day","index","findIndex","selectedDate","isSame","slice","concat","normalizeMultipleActionValue","window","__powerCalendars","setComponentTemplate","TEMPLATE"],"mappings":"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"}
1
+ {"version":3,"file":"power-calendar-multiple.js","sources":["../../src/components/power-calendar-multiple.ts"],"sourcesContent":["import Component from '@glimmer/component';\nimport { tracked } from '@glimmer/tracking';\nimport { guidFor } from '@ember/object/internals';\nimport { inject as service } from '@ember/service';\nimport { assert } from '@ember/debug';\nimport { isArray } from '@ember/array';\nimport { action } from '@ember/object';\nimport { task } from 'ember-concurrency';\nimport PowerCalendarMultipleDaysComponent from './power-calendar-multiple/days.ts';\nimport PowerCalendarNavComponent from './power-calendar/nav.ts';\nimport { publicActionsObject } from '../-private/utils.ts';\nimport {\n normalizeDate,\n isSame,\n normalizeMultipleActionValue,\n normalizeCalendarValue,\n type NormalizeMultipleActionValue,\n type PowerCalendarDay,\n} from '../utils.ts';\nimport type {\n CalendarAPI,\n CalendarDay,\n PowerCalendarAPI,\n PowerCalendarActions,\n PowerCalendarArgs,\n PowerCalendarSignature,\n SelectedDays,\n TCalendarType,\n} from './power-calendar.ts';\nimport type Owner from '@ember/owner';\nimport type { ComponentLike } from '@glint/template';\nimport type PowerCalendarService from '../services/power-calendar.ts';\n\nexport interface PowerCalendarMultipleAPI\n extends Omit<PowerCalendarAPI, 'selected'> {\n selected?: Date[];\n}\n\nexport type TPowerCalendarMultipleOnSelect = (\n day: NormalizeMultipleActionValue,\n calendar: PowerCalendarMultipleAPI,\n event: MouseEvent,\n) => void;\n\ninterface PowerCalendarMultipleArgs\n extends Omit<PowerCalendarArgs, 'selected' | 'onSelect'> {\n selected?: Date[];\n onSelect?: TPowerCalendarMultipleOnSelect;\n}\n\ninterface PowerCalendarMultipleDefaultBlock extends PowerCalendarMultipleAPI {\n NavComponent: ComponentLike<any>;\n DaysComponent: ComponentLike<any>;\n}\n\ninterface PowerCalendarMultipleSignature\n extends Omit<PowerCalendarSignature, 'Args'> {\n Args: PowerCalendarMultipleArgs;\n Blocks: {\n default: [PowerCalendarMultipleDefaultBlock];\n };\n}\n\nexport default class PowerCalendarMultipleComponent extends Component<PowerCalendarMultipleSignature> {\n @service declare powerCalendar: PowerCalendarService;\n\n @tracked center = null;\n @tracked _calendarType: TCalendarType = 'multiple';\n @tracked _selected?: SelectedDays;\n\n navComponent: ComponentLike<any> = PowerCalendarNavComponent;\n daysComponent: ComponentLike<any> = PowerCalendarMultipleDaysComponent;\n\n // Lifecycle hooks\n constructor(owner: Owner, args: PowerCalendarMultipleArgs) {\n super(owner, args);\n this.registerCalendar();\n if (this.args.onInit) {\n this.args.onInit(this.publicAPI);\n }\n }\n\n willDestroy(): void {\n super.willDestroy();\n this.unregisterCalendar();\n }\n\n get publicActions(): PowerCalendarActions {\n return publicActionsObject(\n this.args.onSelect,\n this.select,\n this.args.onCenterChange,\n this.changeCenterTask,\n this.currentCenter,\n );\n }\n\n get selected(): Date[] | undefined {\n if (this._selected) {\n return (this._selected as Date[]) || undefined;\n }\n\n const value = this.args.selected;\n\n if (!isArray(value)) {\n return value;\n }\n\n const selected: Date[] = [];\n\n for (const date of value) {\n const normalizedDate = normalizeDate(date);\n if (!(normalizedDate instanceof Date)) {\n continue;\n }\n selected.push(normalizedDate);\n }\n\n return selected;\n }\n\n set selected(v: SelectedDays) {\n this._selected = normalizeDate(v as Date | undefined);\n }\n\n get currentCenter(): Date {\n let center = this.args.center;\n if (!center) {\n center = (this.selected || [])[0] || this.powerCalendar.getDate();\n }\n return normalizeDate(center) || this.powerCalendar.getDate();\n }\n\n get publicAPI(): PowerCalendarAPI {\n return {\n uniqueId: guidFor(this),\n type: this._calendarType,\n selected: this.selected,\n loading: this.changeCenterTask.isRunning,\n center: this.currentCenter,\n locale: this.args.locale || this.powerCalendar.locale,\n actions: this.publicActions,\n };\n }\n\n get tagWithDefault(): string {\n if (this.args.tag === undefined || this.args.tag === null) {\n return 'div';\n }\n return this.args.tag;\n }\n\n // Tasks\n changeCenterTask = task(\n async (newCenter: Date, calendar: PowerCalendarAPI, e: MouseEvent) => {\n assert(\n \"You attempted to move the center of a calendar that doesn't receive an `@onCenterChange` action.\",\n typeof this.args.onCenterChange === 'function',\n );\n const value = normalizeCalendarValue({ date: newCenter });\n await this.args.onCenterChange(value, calendar, e);\n },\n );\n\n // Actions\n @action\n select(dayOrDays: CalendarDay, calendar: CalendarAPI, e: MouseEvent) {\n assert(\n `The select action expects an array of date objects, or a date object. ${typeof dayOrDays} was recieved instead.`,\n isArray(dayOrDays) ||\n (dayOrDays instanceof Object && dayOrDays.date instanceof Date),\n );\n\n let days;\n\n if (isArray(dayOrDays)) {\n days = dayOrDays;\n } else if (dayOrDays instanceof Object && dayOrDays.date instanceof Date) {\n days = [dayOrDays];\n }\n\n if (this.args.onSelect) {\n this.args.onSelect(\n this._buildCollection((days as PowerCalendarDay[]) ?? []),\n calendar as PowerCalendarMultipleAPI,\n e,\n );\n }\n }\n\n // Methods\n _buildCollection(days: PowerCalendarDay[]): NormalizeMultipleActionValue {\n let selected = this.selected || [];\n\n for (const day of days) {\n const index = selected.findIndex((selectedDate) =>\n isSame(day.date, selectedDate, 'day'),\n );\n if (index === -1) {\n selected = [...selected, day.date];\n } else {\n selected = selected.slice(0, index).concat(selected.slice(index + 1));\n }\n }\n\n return normalizeMultipleActionValue({ date: selected });\n }\n\n // Methods\n registerCalendar() {\n if (window) {\n // @ts-expect-error Property '__powerCalendars'\n // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment\n window.__powerCalendars = window.__powerCalendars || {}; // TODO: weakmap??\n // @ts-expect-error Property '__powerCalendars'\n window.__powerCalendars[this.publicAPI.uniqueId] = this;\n }\n }\n\n unregisterCalendar() {\n // @ts-expect-error Property '__powerCalendars'\n if (window && window.__powerCalendars?.[guidFor(this)]) {\n // @ts-expect-error Property '__powerCalendars'\n delete window.__powerCalendars[guidFor(this)];\n }\n }\n}\n"],"names":["PowerCalendarMultipleComponent","Component","g","prototype","service","i","void 0","tracked","navComponent","PowerCalendarNavComponent","daysComponent","PowerCalendarMultipleDaysComponent","constructor","owner","args","registerCalendar","onInit","publicAPI","willDestroy","unregisterCalendar","publicActions","publicActionsObject","onSelect","select","onCenterChange","changeCenterTask","currentCenter","selected","_selected","undefined","value","isArray","date","normalizedDate","normalizeDate","Date","push","v","center","powerCalendar","getDate","uniqueId","guidFor","type","_calendarType","loading","isRunning","locale","actions","tagWithDefault","tag","_buildTask","context","generator","newCenter","calendar","e","assert","normalizeCalendarValue","dayOrDays","Object","days","_buildCollection","n","action","day","index","findIndex","selectedDate","isSame","slice","concat","normalizeMultipleActionValue","window","__powerCalendars","setComponentTemplate","TEMPLATE"],"mappings":";;;;;;;;;;;;;;;;;;;AA+De,MAAMA,8BAA8B,SAASC,SAAS,CAAiC;AAAA,EAAA;IAAAC,CAAA,CAAA,IAAA,CAAAC,SAAA,EAAA,eAAA,EAAA,CACnGC,MAAO,CAAA,CAAA;AAAA;AAAA,EAAA,cAAA,IAAAC,CAAA,CAAA,IAAA,EAAA,eAAA,CAAA,EAAAC,SAAA;AAAA,EAAA;IAAAJ,CAAA,CAAA,IAAA,CAAAC,SAAA,EAAA,QAAA,EAAA,CAEPI,OAAO,CAAA,EAAA,YAAA;AAAA,MAAA,OAAU,IAAI;AAAA,KAAA,CAAA;AAAA;AAAA,EAAA,OAAA,IAAAF,CAAA,CAAA,IAAA,EAAA,QAAA,CAAA,EAAAC,SAAA;AAAA,EAAA;IAAAJ,CAAA,CAAA,IAAA,CAAAC,SAAA,EAAA,eAAA,EAAA,CACrBI,OAAO,CAAA,EAAA,YAAA;AAAA,MAAA,OAAgC,UAAU;AAAA,KAAA,CAAA;AAAA;AAAA,EAAA,cAAA,IAAAF,CAAA,CAAA,IAAA,EAAA,eAAA,CAAA,EAAAC,SAAA;AAAA,EAAA;IAAAJ,CAAA,CAAA,IAAA,CAAAC,SAAA,EAAA,WAAA,EAAA,CACjDI,OAAO,CAAA,CAAA;AAAA;AAAA,EAAA,UAAA,IAAAF,CAAA,CAAA,IAAA,EAAA,WAAA,CAAA,EAAAC,SAAA;AAERE,EAAAA,YAAY,GAAuBC,yBAAyB;AAC5DC,EAAAA,aAAa,GAAuBC,kCAAkC;;AAEtE;AACAC,EAAAA,WAAWA,CAACC,KAAY,EAAEC,IAA+B,EAAE;AACzD,IAAA,KAAK,CAACD,KAAK,EAAEC,IAAI,CAAC;IAClB,IAAI,CAACC,gBAAgB,EAAE;AACvB,IAAA,IAAI,IAAI,CAACD,IAAI,CAACE,MAAM,EAAE;MACpB,IAAI,CAACF,IAAI,CAACE,MAAM,CAAC,IAAI,CAACC,SAAS,CAAC;AAClC;AACF;AAEAC,EAAAA,WAAWA,GAAS;IAClB,KAAK,CAACA,WAAW,EAAE;IACnB,IAAI,CAACC,kBAAkB,EAAE;AAC3B;EAEA,IAAIC,aAAaA,GAAyB;IACxC,OAAOC,mBAAmB,CACxB,IAAI,CAACP,IAAI,CAACQ,QAAQ,EAClB,IAAI,CAACC,MAAM,EACX,IAAI,CAACT,IAAI,CAACU,cAAc,EACxB,IAAI,CAACC,gBAAgB,EACrB,IAAI,CAACC,aACP,CAAC;AACH;EAEA,IAAIC,QAAQA,GAAuB;IACjC,IAAI,IAAI,CAACC,SAAS,EAAE;AAClB,MAAA,OAAQ,IAAI,CAACA,SAAS,IAAeC,SAAS;AAChD;AAEA,IAAA,MAAMC,KAAK,GAAG,IAAI,CAAChB,IAAI,CAACa,QAAQ;AAEhC,IAAA,IAAI,CAACI,OAAO,CAACD,KAAK,CAAC,EAAE;AACnB,MAAA,OAAOA,KAAK;AACd;IAEA,MAAMH,QAAgB,GAAG,EAAE;AAE3B,IAAA,KAAK,MAAMK,IAAI,IAAIF,KAAK,EAAE;AACxB,MAAA,MAAMG,cAAc,GAAGC,aAAa,CAACF,IAAI,CAAC;AAC1C,MAAA,IAAI,EAAEC,cAAc,YAAYE,IAAI,CAAC,EAAE;AACrC,QAAA;AACF;AACAR,MAAAA,QAAQ,CAACS,IAAI,CAACH,cAAc,CAAC;AAC/B;AAEA,IAAA,OAAON,QAAQ;AACjB;EAEA,IAAIA,QAAQA,CAACU,CAAe,EAAE;AAC5B,IAAA,IAAI,CAACT,SAAS,GAAGM,aAAa,CAACG,CAAqB,CAAC;AACvD;EAEA,IAAIX,aAAaA,GAAS;AACxB,IAAA,IAAIY,MAAM,GAAG,IAAI,CAACxB,IAAI,CAACwB,MAAM;IAC7B,IAAI,CAACA,MAAM,EAAE;AACXA,MAAAA,MAAM,GAAG,CAAC,IAAI,CAACX,QAAQ,IAAI,EAAE,EAAE,CAAC,CAAC,IAAI,IAAI,CAACY,aAAa,CAACC,OAAO,EAAE;AACnE;IACA,OAAON,aAAa,CAACI,MAAM,CAAC,IAAI,IAAI,CAACC,aAAa,CAACC,OAAO,EAAE;AAC9D;EAEA,IAAIvB,SAASA,GAAqB;IAChC,OAAO;AACLwB,MAAAA,QAAQ,EAAEC,OAAO,CAAC,IAAI,CAAC;MACvBC,IAAI,EAAE,IAAI,CAACC,aAAa;MACxBjB,QAAQ,EAAE,IAAI,CAACA,QAAQ;AACvBkB,MAAAA,OAAO,EAAE,IAAI,CAACpB,gBAAgB,CAACqB,SAAS;MACxCR,MAAM,EAAE,IAAI,CAACZ,aAAa;MAC1BqB,MAAM,EAAE,IAAI,CAACjC,IAAI,CAACiC,MAAM,IAAI,IAAI,CAACR,aAAa,CAACQ,MAAM;MACrDC,OAAO,EAAE,IAAI,CAAC5B;KACf;AACH;EAEA,IAAI6B,cAAcA,GAAW;AAC3B,IAAA,IAAI,IAAI,CAACnC,IAAI,CAACoC,GAAG,KAAKrB,SAAS,IAAI,IAAI,CAACf,IAAI,CAACoC,GAAG,KAAK,IAAI,EAAE;AACzD,MAAA,OAAO,KAAK;AACd;AACA,IAAA,OAAO,IAAI,CAACpC,IAAI,CAACoC,GAAG;AACtB;;AAEA;AACAzB,EAAAA,gBAAgB,GAAA0B,SAAA,CAAA,OAAA;IAAAC,OAAA,EAAA,IAAA;AAAAC,IAAAA,SAAA,aACPC,SAAe,EAAEC,QAA0B,EAAEC,CAAa,EAAK;MACpEC,MAAM,CACJ,kGAAkG,EAClG,OAAO,IAAI,CAAC3C,IAAI,CAACU,cAAc,KAAK,UACtC,CAAC;MACD,MAAMM,KAAK,GAAG4B,sBAAsB,CAAC;AAAE1B,QAAAA,IAAI,EAAEsB;AAAU,OAAC,CAAC;MACzD,MAAM,IAAI,CAACxC,IAAI,CAACU,cAAc,CAACM,KAAK,EAAEyB,QAAQ,EAAEC,CAAC,CAAC;AACpD;AAAC,GAAA,CAAA,EAAA,IAAA,EAAA,kBAAA,EAAA,IAAA,CAAA;;AAGH;AAEAjC,EAAAA,MAAMA,CAACoC,SAAsB,EAAEJ,QAAqB,EAAEC,CAAa,EAAE;IACnEC,MAAM,CACJ,yEAAyE,OAAOE,SAAS,wBAAwB,EACjH5B,OAAO,CAAC4B,SAAS,CAAC,IACfA,SAAS,YAAYC,MAAM,IAAID,SAAS,CAAC3B,IAAI,YAAYG,IAC9D,CAAC;AAED,IAAA,IAAI0B,IAAI;AAER,IAAA,IAAI9B,OAAO,CAAC4B,SAAS,CAAC,EAAE;AACtBE,MAAAA,IAAI,GAAGF,SAAS;KACjB,MAAM,IAAIA,SAAS,YAAYC,MAAM,IAAID,SAAS,CAAC3B,IAAI,YAAYG,IAAI,EAAE;MACxE0B,IAAI,GAAG,CAACF,SAAS,CAAC;AACpB;AAEA,IAAA,IAAI,IAAI,CAAC7C,IAAI,CAACQ,QAAQ,EAAE;AACtB,MAAA,IAAI,CAACR,IAAI,CAACQ,QAAQ,CAChB,IAAI,CAACwC,gBAAgB,CAAED,IAAI,IAA2B,EAAE,CAAC,EACzDN,QAAQ,EACRC,CACF,CAAC;AACH;AACF;;AAEA;AAAA,EAAA;IAAAO,CAAA,CAAA,IAAA,CAAA5D,SAAA,EAAA,QAAA,EAAA,CAzBC6D,MAAM,CAAA,CAAA;AAAA;EA0BPF,gBAAgBA,CAACD,IAAwB,EAAgC;AACvE,IAAA,IAAIlC,QAAQ,GAAG,IAAI,CAACA,QAAQ,IAAI,EAAE;AAElC,IAAA,KAAK,MAAMsC,GAAG,IAAIJ,IAAI,EAAE;AACtB,MAAA,MAAMK,KAAK,GAAGvC,QAAQ,CAACwC,SAAS,CAAEC,YAAY,IAC5CC,MAAM,CAACJ,GAAG,CAACjC,IAAI,EAAEoC,YAAY,EAAE,KAAK,CACtC,CAAC;AACD,MAAA,IAAIF,KAAK,KAAK,EAAE,EAAE;QAChBvC,QAAQ,GAAG,CAAC,GAAGA,QAAQ,EAAEsC,GAAG,CAACjC,IAAI,CAAC;AACpC,OAAC,MAAM;QACLL,QAAQ,GAAGA,QAAQ,CAAC2C,KAAK,CAAC,CAAC,EAAEJ,KAAK,CAAC,CAACK,MAAM,CAAC5C,QAAQ,CAAC2C,KAAK,CAACJ,KAAK,GAAG,CAAC,CAAC,CAAC;AACvE;AACF;AAEA,IAAA,OAAOM,4BAA4B,CAAC;AAAExC,MAAAA,IAAI,EAAEL;AAAS,KAAC,CAAC;AACzD;;AAEA;AACAZ,EAAAA,gBAAgBA,GAAG;AACjB,IAAA,IAAI0D,MAAM,EAAE;AACV;AACA;MACAA,MAAM,CAACC,gBAAgB,GAAGD,MAAM,CAACC,gBAAgB,IAAI,EAAE,CAAC;AACxD;MACAD,MAAM,CAACC,gBAAgB,CAAC,IAAI,CAACzD,SAAS,CAACwB,QAAQ,CAAC,GAAG,IAAI;AACzD;AACF;AAEAtB,EAAAA,kBAAkBA,GAAG;AACnB;IACA,IAAIsD,MAAM,IAAIA,MAAM,CAACC,gBAAgB,GAAGhC,OAAO,CAAC,IAAI,CAAC,CAAC,EAAE;AACtD;MACA,OAAO+B,MAAM,CAACC,gBAAgB,CAAChC,OAAO,CAAC,IAAI,CAAC,CAAC;AAC/C;AACF;AACF;AAACiC,oBAAA,CAAAC,QAAA,EAnKoB5E,8BAA8B,CAAA;;;;"}
@@ -9,19 +9,19 @@ import { precompileTemplate } from '@ember/template-compilation';
9
9
  import { g, i, n } from 'decorator-transforms/runtime';
10
10
  import { setComponentTemplate } from '@ember/component';
11
11
 
12
- var TEMPLATE = precompileTemplate("{{! template-lint-disable no-invalid-interactive }}\n<div\n class=\"ember-power-calendar-days\"\n data-power-calendar-id={{or @calendar.calendarUniqueId @calendar.uniqueId}}\n {{on \"click\" this.handleClick}}\n ...attributes\n>\n <div class=\"ember-power-calendar-row ember-power-calendar-weekdays\">\n {{#each this.weekdaysNames as |wdn|}}\n <div class=\"ember-power-calendar-weekday\">{{wdn}}</div>\n {{/each}}\n </div>\n <div class=\"ember-power-calendar-day-grid\" {{on \"keydown\" this.handleKeyDown}}>\n {{#each this.weeks key=\'id\' as |week|}}\n <div class=\"ember-power-calendar-row ember-power-calendar-week\" data-missing-days={{week.missingDays}}>\n {{#each week.days key=\'id\' as |day|}}\n <button type=\"button\"\n data-date=\"{{day.id}}\"\n class={{ember-power-calendar-day-classes day @calendar this.weeks @dayClass}}\n {{on \"focus\" this.handleDayFocus}}\n {{on \"blur\" this.handleDayBlur}}\n disabled={{day.isDisabled}}>\n {{#if (has-block)}}\n {{yield day @calendar this.weeks}}\n {{else}}\n {{day.number}}\n {{/if}}\n </button>\n {{/each}}\n </div>\n {{/each}}\n </div>\n</div>\n");
12
+ var TEMPLATE = precompileTemplate("{{! template-lint-disable no-invalid-interactive }}\n<div\n class=\"ember-power-calendar-days\"\n data-power-calendar-id={{or @calendar.calendarUniqueId @calendar.uniqueId}}\n {{on \"click\" this.handleClick}}\n ...attributes\n>\n <div class=\"ember-power-calendar-row ember-power-calendar-weekdays\">\n {{#each this.weekdaysNames as |wdn|}}\n <div class=\"ember-power-calendar-weekday\">{{wdn}}</div>\n {{/each}}\n </div>\n <div\n class=\"ember-power-calendar-day-grid\"\n {{on \"keydown\" this.handleKeyDown}}\n >\n {{#each this.weeks key=\"id\" as |week|}}\n <div\n class=\"ember-power-calendar-row ember-power-calendar-week\"\n data-missing-days={{week.missingDays}}\n >\n {{#each week.days key=\"id\" as |day|}}\n <button\n type=\"button\"\n data-date=\"{{day.id}}\"\n class={{ember-power-calendar-day-classes\n day\n @calendar\n this.weeks\n @dayClass\n }}\n {{on \"focus\" this.handleDayFocus}}\n {{on \"blur\" this.handleDayBlur}}\n disabled={{day.isDisabled}}\n >\n {{#if (has-block)}}\n {{yield day @calendar this.weeks}}\n {{else}}\n {{day.number}}\n {{/if}}\n </button>\n {{/each}}\n </div>\n {{/each}}\n </div>\n</div>");
13
13
 
14
14
  class PowerCalendarRangeDaysComponent extends Component {
15
15
  static {
16
16
  g(this.prototype, "powerCalendar", [inject]);
17
17
  }
18
- #powerCalendar = (i(this, "powerCalendar"), void 0);
18
+ #powerCalendar = (i(this, "powerCalendar"), undefined);
19
19
  static {
20
20
  g(this.prototype, "focusedId", [tracked], function () {
21
21
  return null;
22
22
  });
23
23
  }
24
- #focusedId = (i(this, "focusedId"), void 0);
24
+ #focusedId = (i(this, "focusedId"), undefined);
25
25
  get weekdayFormat() {
26
26
  return this.args.weekdayFormat || 'short'; // "min" | "short" | "long"
27
27
  }
@@ -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 { inject as service } from '@ember/service';\nimport type {\n PowerCalendarDaysArgs,\n PowerCalendarDaysSignature,\n} from '../power-calendar/days.ts';\nimport {\n isBetween,\n isSame,\n diff,\n isBefore,\n add,\n withLocale,\n getWeekdaysMin,\n getWeekdaysShort,\n getWeekdays,\n normalizeDate,\n type PowerCalendarDay,\n} from '../../utils.ts';\nimport type { PowerCalendarRangeAPI } from '../power-calendar-range.ts';\nimport {\n buildDay,\n firstDay,\n lastDay,\n localeStartOfWeekOrFallback,\n weekdaysNames,\n weeks,\n handleDayKeyDown,\n focusDate,\n handleClick,\n type TWeekdayFormat,\n type Week,\n} from '../../-private/days-utils.ts';\nimport type PowerCalendarService from '../../services/power-calendar.ts';\n\ninterface PowerCalendarMultipleDaysArgs\n extends Omit<PowerCalendarDaysArgs, 'selected'> {\n selected?: {\n start: Date | null;\n end: Date | null;\n };\n}\n\ninterface PowerCalendarRangeSignature\n extends Omit<PowerCalendarDaysSignature, 'Args'> {\n Args: PowerCalendarMultipleDaysArgs;\n}\n\nexport default class PowerCalendarRangeDaysComponent extends Component<PowerCalendarRangeSignature> {\n @service declare powerCalendar: PowerCalendarService;\n\n @tracked focusedId: string | null = null;\n\n get weekdayFormat(): TWeekdayFormat {\n return this.args.weekdayFormat || 'short'; // \"min\" | \"short\" | \"long\"\n }\n\n get showDaysAround(): boolean {\n return this.args.showDaysAround !== undefined\n ? this.args.showDaysAround\n : true;\n }\n\n get weekdaysMin(): string[] {\n return withLocale(this.args.calendar.locale, getWeekdaysMin) as string[];\n }\n\n get weekdaysShort(): string[] {\n return withLocale(this.args.calendar.locale, getWeekdaysShort) as string[];\n }\n\n get weekdays(): string[] {\n return withLocale(this.args.calendar.locale, getWeekdays) as string[];\n }\n\n get localeStartOfWeek(): number {\n return localeStartOfWeekOrFallback(\n this.args.startOfWeek,\n this.args.calendar.locale,\n );\n }\n\n get weekdaysNames(): string[] {\n return weekdaysNames(\n this.localeStartOfWeek,\n this.weekdayFormat,\n this.weekdays,\n this.weekdaysMin,\n this.weekdaysShort,\n );\n }\n\n get days(): PowerCalendarDay[] {\n const today = this.powerCalendar.getDate();\n const theLastDay = lastDay(this.localeStartOfWeek, this.currentCenter);\n let day = firstDay(this.currentCenter, this.localeStartOfWeek);\n const days: PowerCalendarDay[] = [];\n while (isBefore(day, theLastDay)) {\n days.push(\n this.buildDay(day, today, this.args.calendar as PowerCalendarRangeAPI),\n );\n day = add(day, 1, 'day');\n }\n return days;\n }\n\n get weeks(): Week[] {\n return weeks(this.days, this.showDaysAround);\n }\n\n get currentCenter(): Date {\n let center = this.args.center;\n\n if (!center) {\n center = this.args.selected?.start || this.args.calendar.center;\n }\n return normalizeDate(center) || this.args.calendar.center;\n }\n\n // Actions\n @action\n handleDayFocus(e: FocusEvent): void {\n scheduleOnce(\n 'actions',\n this,\n this._updateFocused,\n (e.target as HTMLElement).dataset['date'],\n );\n }\n\n @action\n handleDayBlur(): void {\n scheduleOnce('actions', this, this._updateFocused, null);\n }\n\n @action\n handleKeyDown(e: KeyboardEvent): void {\n const day = handleDayKeyDown(e, this.focusedId, this.days);\n if (!day) {\n return;\n }\n this.focusedId = day.id;\n scheduleOnce(\n 'afterRender',\n this,\n focusDate,\n this.args.calendar.uniqueId,\n this.focusedId ?? '',\n );\n }\n\n @action\n handleClick(e: MouseEvent) {\n handleClick(e, this.days, this.args.calendar);\n }\n\n // Methods\n buildDay(date: Date, today: Date, calendar: PowerCalendarRangeAPI) {\n const day = buildDay(\n date,\n today,\n calendar,\n this.focusedId,\n this.currentCenter,\n this.dayIsSelected.bind(this),\n this.args.minDate,\n this.args.maxDate,\n this.args.disabledDates,\n );\n\n const { start, end } = calendar.selected || { start: null, end: null };\n if (start && end) {\n day.isSelected = isBetween(date, start, end, 'day', '[]');\n day.isRangeStart = day.isSelected && isSame(date, start, 'day');\n day.isRangeEnd = day.isSelected && isSame(date, end, 'day');\n } else {\n day.isRangeEnd = false;\n if (!start) {\n day.isRangeStart = false;\n } else {\n day.isRangeStart = day.isSelected = isSame(date, start, 'day');\n if (!day.isDisabled) {\n const diffInMs = Math.abs(diff(day.date, start));\n const minRange = calendar.minRange;\n const maxRange = calendar.maxRange;\n day.isDisabled =\n (minRange && diffInMs < minRange) ||\n (maxRange !== null &&\n maxRange !== undefined &&\n diffInMs > maxRange);\n }\n }\n }\n return day;\n }\n\n dayIsSelected() {\n return false;\n }\n\n _updateFocused(id?: string | null) {\n this.focusedId = id ?? null;\n }\n}\n"],"names":["PowerCalendarRangeDaysComponent","Component","g","prototype","service","i","void 0","tracked","weekdayFormat","args","showDaysAround","undefined","weekdaysMin","withLocale","calendar","locale","getWeekdaysMin","weekdaysShort","getWeekdaysShort","weekdays","getWeekdays","localeStartOfWeek","localeStartOfWeekOrFallback","startOfWeek","weekdaysNames","days","today","powerCalendar","getDate","theLastDay","lastDay","currentCenter","day","firstDay","isBefore","push","buildDay","add","weeks","center","selected","start","normalizeDate","handleDayFocus","e","scheduleOnce","_updateFocused","target","dataset","n","action","handleDayBlur","handleKeyDown","handleDayKeyDown","focusedId","id","focusDate","uniqueId","handleClick","date","dayIsSelected","bind","minDate","maxDate","disabledDates","end","isSelected","isBetween","isRangeStart","isSame","isRangeEnd","isDisabled","diffInMs","Math","abs","diff","minRange","maxRange","setComponentTemplate","TEMPLATE"],"mappings":"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"}
1
+ {"version":3,"file":"days.js","sources":["../../../src/components/power-calendar-range/days.ts"],"sourcesContent":["import Component from '@glimmer/component';\nimport { tracked } from '@glimmer/tracking';\nimport { action } from '@ember/object';\nimport { scheduleOnce } from '@ember/runloop';\nimport { inject as service } from '@ember/service';\nimport type {\n PowerCalendarDaysArgs,\n PowerCalendarDaysSignature,\n} from '../power-calendar/days.ts';\nimport {\n isBetween,\n isSame,\n diff,\n isBefore,\n add,\n withLocale,\n getWeekdaysMin,\n getWeekdaysShort,\n getWeekdays,\n normalizeDate,\n type PowerCalendarDay,\n} from '../../utils.ts';\nimport type { PowerCalendarRangeAPI } from '../power-calendar-range.ts';\nimport {\n buildDay,\n firstDay,\n lastDay,\n localeStartOfWeekOrFallback,\n weekdaysNames,\n weeks,\n handleDayKeyDown,\n focusDate,\n handleClick,\n type TWeekdayFormat,\n type Week,\n} from '../../-private/days-utils.ts';\nimport type PowerCalendarService from '../../services/power-calendar.ts';\n\ninterface PowerCalendarMultipleDaysArgs\n extends Omit<PowerCalendarDaysArgs, 'selected'> {\n selected?: {\n start: Date | null;\n end: Date | null;\n };\n}\n\ninterface PowerCalendarRangeSignature\n extends Omit<PowerCalendarDaysSignature, 'Args'> {\n Args: PowerCalendarMultipleDaysArgs;\n}\n\nexport default class PowerCalendarRangeDaysComponent extends Component<PowerCalendarRangeSignature> {\n @service declare powerCalendar: PowerCalendarService;\n\n @tracked focusedId: string | null = null;\n\n get weekdayFormat(): TWeekdayFormat {\n return this.args.weekdayFormat || 'short'; // \"min\" | \"short\" | \"long\"\n }\n\n get showDaysAround(): boolean {\n return this.args.showDaysAround !== undefined\n ? this.args.showDaysAround\n : true;\n }\n\n get weekdaysMin(): string[] {\n return withLocale(this.args.calendar.locale, getWeekdaysMin) as string[];\n }\n\n get weekdaysShort(): string[] {\n return withLocale(this.args.calendar.locale, getWeekdaysShort) as string[];\n }\n\n get weekdays(): string[] {\n return withLocale(this.args.calendar.locale, getWeekdays) as string[];\n }\n\n get localeStartOfWeek(): number {\n return localeStartOfWeekOrFallback(\n this.args.startOfWeek,\n this.args.calendar.locale,\n );\n }\n\n get weekdaysNames(): string[] {\n return weekdaysNames(\n this.localeStartOfWeek,\n this.weekdayFormat,\n this.weekdays,\n this.weekdaysMin,\n this.weekdaysShort,\n );\n }\n\n get days(): PowerCalendarDay[] {\n const today = this.powerCalendar.getDate();\n const theLastDay = lastDay(this.localeStartOfWeek, this.currentCenter);\n let day = firstDay(this.currentCenter, this.localeStartOfWeek);\n const days: PowerCalendarDay[] = [];\n while (isBefore(day, theLastDay)) {\n days.push(\n this.buildDay(day, today, this.args.calendar as PowerCalendarRangeAPI),\n );\n day = add(day, 1, 'day');\n }\n return days;\n }\n\n get weeks(): Week[] {\n return weeks(this.days, this.showDaysAround);\n }\n\n get currentCenter(): Date {\n let center = this.args.center;\n\n if (!center) {\n center = this.args.selected?.start || this.args.calendar.center;\n }\n return normalizeDate(center) || this.args.calendar.center;\n }\n\n // Actions\n @action\n handleDayFocus(e: FocusEvent): void {\n scheduleOnce(\n 'actions',\n this,\n this._updateFocused,\n (e.target as HTMLElement).dataset['date'],\n );\n }\n\n @action\n handleDayBlur(): void {\n scheduleOnce('actions', this, this._updateFocused, null);\n }\n\n @action\n handleKeyDown(e: KeyboardEvent): void {\n const day = handleDayKeyDown(e, this.focusedId, this.days);\n if (!day) {\n return;\n }\n this.focusedId = day.id;\n scheduleOnce(\n 'afterRender',\n this,\n focusDate,\n this.args.calendar.uniqueId,\n this.focusedId ?? '',\n );\n }\n\n @action\n handleClick(e: MouseEvent) {\n handleClick(e, this.days, this.args.calendar);\n }\n\n // Methods\n buildDay(date: Date, today: Date, calendar: PowerCalendarRangeAPI) {\n const day = buildDay(\n date,\n today,\n calendar,\n this.focusedId,\n this.currentCenter,\n this.dayIsSelected.bind(this),\n this.args.minDate,\n this.args.maxDate,\n this.args.disabledDates,\n );\n\n const { start, end } = calendar.selected || { start: null, end: null };\n if (start && end) {\n day.isSelected = isBetween(date, start, end, 'day', '[]');\n day.isRangeStart = day.isSelected && isSame(date, start, 'day');\n day.isRangeEnd = day.isSelected && isSame(date, end, 'day');\n } else {\n day.isRangeEnd = false;\n if (!start) {\n day.isRangeStart = false;\n } else {\n day.isRangeStart = day.isSelected = isSame(date, start, 'day');\n if (!day.isDisabled) {\n const diffInMs = Math.abs(diff(day.date, start));\n const minRange = calendar.minRange;\n const maxRange = calendar.maxRange;\n day.isDisabled =\n (minRange && diffInMs < minRange) ||\n (maxRange !== null &&\n maxRange !== undefined &&\n diffInMs > maxRange);\n }\n }\n }\n return day;\n }\n\n dayIsSelected() {\n return false;\n }\n\n _updateFocused(id?: string | null) {\n this.focusedId = id ?? null;\n }\n}\n"],"names":["PowerCalendarRangeDaysComponent","Component","g","prototype","service","i","void 0","tracked","weekdayFormat","args","showDaysAround","undefined","weekdaysMin","withLocale","calendar","locale","getWeekdaysMin","weekdaysShort","getWeekdaysShort","weekdays","getWeekdays","localeStartOfWeek","localeStartOfWeekOrFallback","startOfWeek","weekdaysNames","days","today","powerCalendar","getDate","theLastDay","lastDay","currentCenter","day","firstDay","isBefore","push","buildDay","add","weeks","center","selected","start","normalizeDate","handleDayFocus","e","scheduleOnce","_updateFocused","target","dataset","n","action","handleDayBlur","handleKeyDown","handleDayKeyDown","focusedId","id","focusDate","uniqueId","handleClick","date","dayIsSelected","bind","minDate","maxDate","disabledDates","end","isSelected","isBetween","isRangeStart","isSame","isRangeEnd","isDisabled","diffInMs","Math","abs","diff","minRange","maxRange","setComponentTemplate","TEMPLATE"],"mappings":"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"}
@@ -14,30 +14,30 @@ import { precompileTemplate } from '@ember/template-compilation';
14
14
  import { g, i, n } from 'decorator-transforms/runtime';
15
15
  import { setComponentTemplate } from '@ember/component';
16
16
 
17
- var TEMPLATE = precompileTemplate("{{#let (assign this.publicAPI (hash\n Nav=(component (ensure-safe-component (or @navComponent this.navComponent)) calendar=(readonly this.publicAPI))\n Days=(component (ensure-safe-component (or @daysComponent this.daysComponent)) calendar=(readonly this.publicAPI))\n)) as |calendar|}}\n {{#let (element this.tagWithDefault) as |Tag|}}\n <Tag class=\"ember-power-calendar\" ...attributes id={{calendar.uniqueId}}>\n {{#if (has-block)}}\n {{yield calendar}}\n {{else}}\n <calendar.Nav/>\n <calendar.Days/>\n {{/if}}\n </Tag>\n {{/let}}\n{{/let}}\n");
17
+ var TEMPLATE = precompileTemplate("{{#let\n (assign\n this.publicAPI\n (hash\n Nav=(component\n (ensure-safe-component (or @navComponent this.navComponent))\n calendar=(readonly this.publicAPI)\n )\n Days=(component\n (ensure-safe-component (or @daysComponent this.daysComponent))\n calendar=(readonly this.publicAPI)\n )\n )\n )\n as |calendar|\n}}\n {{#let (element this.tagWithDefault) as |Tag|}}\n <Tag class=\"ember-power-calendar\" ...attributes id={{calendar.uniqueId}}>\n {{#if (has-block)}}\n {{yield calendar}}\n {{else}}\n <calendar.Nav />\n <calendar.Days />\n {{/if}}\n </Tag>\n {{/let}}\n{{/let}}");
18
18
 
19
19
  const DAY_IN_MS = 86400000;
20
20
  class PowerCalendarRangeComponent extends Component {
21
21
  static {
22
22
  g(this.prototype, "powerCalendar", [inject]);
23
23
  }
24
- #powerCalendar = (i(this, "powerCalendar"), void 0);
24
+ #powerCalendar = (i(this, "powerCalendar"), undefined);
25
25
  static {
26
26
  g(this.prototype, "center", [tracked], function () {
27
27
  return null;
28
28
  });
29
29
  }
30
- #center = (i(this, "center"), void 0);
30
+ #center = (i(this, "center"), undefined);
31
31
  static {
32
32
  g(this.prototype, "_calendarType", [tracked], function () {
33
33
  return 'range';
34
34
  });
35
35
  }
36
- #_calendarType = (i(this, "_calendarType"), void 0);
36
+ #_calendarType = (i(this, "_calendarType"), undefined);
37
37
  static {
38
38
  g(this.prototype, "_selected", [tracked]);
39
39
  }
40
- #_selected = (i(this, "_selected"), void 0);
40
+ #_selected = (i(this, "_selected"), undefined);
41
41
  navComponent = PowerCalendarNavComponent;
42
42
  daysComponent = PowerCalendarRangeDaysComponent;
43
43
 
@@ -242,6 +242,7 @@ class PowerCalendarRangeComponent extends Component {
242
242
  registerCalendar() {
243
243
  if (window) {
244
244
  // @ts-expect-error Property '__powerCalendars'
245
+ // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment
245
246
  window.__powerCalendars = window.__powerCalendars || {}; // TODO: weakmap??
246
247
  // @ts-expect-error Property '__powerCalendars'
247
248
  window.__powerCalendars[this.publicAPI.uniqueId] = this;
@@ -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 { inject as service } from '@ember/service';\nimport { guidFor } from '@ember/object/internals';\nimport { assert } from '@ember/debug';\nimport { task } from 'ember-concurrency';\nimport PowerCalendarRangeDaysComponent from './power-calendar-range/days.ts';\nimport PowerCalendarNavComponent from './power-calendar/nav.ts';\nimport { publicActionsObject } from '../-private/utils.ts';\nimport {\n normalizeDate,\n normalizeRangeActionValue,\n diff,\n isAfter,\n isBefore,\n normalizeDuration,\n normalizeCalendarValue,\n type NormalizeRangeActionValue,\n type PowerCalendarDay,\n type SelectedPowerCalendarRange,\n} from '../utils.ts';\nimport type {\n PowerCalendarAPI,\n PowerCalendarSignature,\n PowerCalendarArgs,\n TCalendarType,\n SelectedDays,\n PowerCalendarActions,\n CalendarDay,\n CalendarAPI,\n} from './power-calendar.ts';\nimport type Owner from '@ember/owner';\nimport type { ComponentLike } from '@glint/template';\nimport type PowerCalendarService from '../services/power-calendar.ts';\n\nexport interface PowerCalendarRangeDay extends Omit<PowerCalendarDay, 'date'> {\n date: SelectedPowerCalendarRange;\n}\n\nexport const DAY_IN_MS = 86400000;\n\nexport type TPowerCalendarRangeOnSelect = (\n day: NormalizeRangeActionValue,\n calendar: PowerCalendarRangeAPI,\n event: MouseEvent,\n) => void;\n\ninterface PowerCalendarRangeArgs\n extends Omit<PowerCalendarArgs, 'selected' | 'onSelect'> {\n selected?: SelectedPowerCalendarRange;\n minRange?: number;\n maxRange?: number;\n proximitySelection?: boolean;\n onSelect?: TPowerCalendarRangeOnSelect;\n}\n\nexport interface PowerCalendarRangeDefaultBlock extends PowerCalendarRangeAPI {\n NavComponent: ComponentLike<any>;\n DaysComponent: ComponentLike<any>;\n}\n\ninterface PowerCalendarRangeSignature\n extends Omit<PowerCalendarSignature, 'Args' | 'Blocks'> {\n Args: PowerCalendarRangeArgs;\n Blocks: {\n default: [PowerCalendarRangeDefaultBlock];\n };\n}\n\nexport interface PowerCalendarRangeAPI\n extends Omit<PowerCalendarAPI, 'selected'> {\n selected?: SelectedPowerCalendarRange;\n minRange?: number | null;\n maxRange?: number | null;\n}\n\nexport default class PowerCalendarRangeComponent extends Component<PowerCalendarRangeSignature> {\n @service declare powerCalendar: PowerCalendarService;\n\n @tracked center = null;\n @tracked _calendarType: TCalendarType = 'range';\n @tracked _selected?: SelectedDays;\n\n navComponent: ComponentLike<any> = PowerCalendarNavComponent;\n daysComponent: ComponentLike<any> = PowerCalendarRangeDaysComponent;\n\n // Lifecycle hooks\n constructor(owner: Owner, args: PowerCalendarRangeArgs) {\n super(owner, args);\n this.registerCalendar();\n if (this.args.onInit) {\n this.args.onInit(this.publicAPI);\n }\n }\n\n willDestroy(): void {\n super.willDestroy();\n this.unregisterCalendar();\n }\n\n get publicActions(): PowerCalendarActions {\n return publicActionsObject(\n this.args.onSelect,\n this.select,\n this.args.onCenterChange,\n this.changeCenterTask,\n this.currentCenter,\n );\n }\n\n get selected(): SelectedPowerCalendarRange {\n if (this._selected) {\n return this._selected as SelectedPowerCalendarRange;\n }\n\n if (this.args.selected) {\n return {\n start: normalizeDate(this.args.selected.start),\n end: normalizeDate(this.args.selected.end),\n };\n }\n\n return { start: undefined, end: undefined };\n }\n\n set selected(v) {\n if (v === undefined || v === null) {\n v = {};\n }\n this._selected = {\n start: normalizeDate(v.start),\n end: normalizeDate(v.end),\n };\n }\n\n get currentCenter(): Date {\n let center = this.args.center;\n if (!center) {\n center = this.selected.start || this.powerCalendar.getDate();\n }\n return normalizeDate(center) || this.powerCalendar.getDate();\n }\n\n get publicAPI(): PowerCalendarRangeAPI {\n return {\n uniqueId: guidFor(this),\n type: this._calendarType,\n selected: this.selected,\n loading: this.changeCenterTask.isRunning,\n center: this.currentCenter,\n locale: this.args.locale || this.powerCalendar.locale,\n actions: this.publicActions,\n minRange: this.minRange,\n maxRange: this.maxRange,\n };\n }\n\n get tagWithDefault(): string {\n if (this.args.tag === undefined || this.args.tag === null) {\n return 'div';\n }\n return this.args.tag;\n }\n\n get proximitySelection(): boolean {\n return this.args.proximitySelection !== undefined\n ? this.args.proximitySelection\n : false;\n }\n\n get minRange(): number | null {\n if (this.args.minRange !== undefined) {\n return this._formatRange(this.args.minRange) as number;\n }\n\n return DAY_IN_MS;\n }\n\n get maxRange(): number | null {\n if (this.args.maxRange !== undefined) {\n return this._formatRange(this.args.maxRange) as number;\n }\n\n return null;\n }\n\n // Tasks\n changeCenterTask = task(\n async (newCenter: Date, calendar: PowerCalendarRangeAPI, e: MouseEvent) => {\n assert(\n \"You attempted to move the center of a calendar that doesn't receive an `@onCenterChange` action.\",\n typeof this.args.onCenterChange === 'function',\n );\n const value = normalizeCalendarValue({ date: newCenter });\n await this.args.onCenterChange(value, calendar, e);\n },\n );\n\n // Actions\n @action\n select(day: CalendarDay, calendar: CalendarAPI, e: MouseEvent) {\n const { date } = day as NormalizeRangeActionValue;\n assert(\n 'date must be either a Date, or a Range',\n date &&\n (ownProp(date, 'start') ||\n ownProp(date, 'end') ||\n date instanceof Date),\n );\n\n let range: NormalizeRangeActionValue;\n\n if (ownProp(date, 'start') && ownProp(date, 'end')) {\n range = { date };\n } else {\n range = this._buildRange({ date } as { date: Date });\n }\n\n const { start, end } = range.date;\n if (start && end) {\n const { minRange, maxRange } = this.publicAPI;\n const diffInMs = Math.abs(diff(end, start));\n if (\n diffInMs < (minRange ?? DAY_IN_MS) ||\n (maxRange && diffInMs > maxRange)\n ) {\n return;\n }\n }\n\n if (this.args.onSelect) {\n this.args.onSelect(range, calendar as PowerCalendarRangeAPI, e);\n }\n }\n\n _formatRange(v: number | undefined) {\n if (typeof v === 'number') {\n return v * DAY_IN_MS;\n }\n\n return normalizeDuration(v === undefined ? DAY_IN_MS : v);\n }\n\n // Methods\n _buildRange(day: { date: Date }): NormalizeRangeActionValue {\n const selected = this.selected || { start: null, end: null };\n const { start, end } = selected;\n\n if (this.proximitySelection) {\n return this._buildRangeByProximity(day, start, end);\n }\n\n return this._buildDefaultRange(day, start, end);\n }\n\n _buildRangeByProximity(\n day: { date: Date },\n start?: Date | null,\n end?: Date | null,\n ): NormalizeRangeActionValue {\n if (start && end) {\n const changeStart =\n Math.abs(diff(day.date, end)) > Math.abs(diff(day.date, start));\n\n return normalizeRangeActionValue({\n date: {\n start: changeStart ? day.date : start,\n end: changeStart ? end : day.date,\n },\n });\n }\n\n if (start && isBefore(day.date, start)) {\n return normalizeRangeActionValue({\n date: { start: day.date, end: null },\n });\n }\n\n return this._buildDefaultRange(day, start, end);\n }\n\n _buildDefaultRange(\n day: { date: Date },\n start?: Date | null,\n end?: Date | null,\n ): NormalizeRangeActionValue {\n if (start && !end) {\n if (isAfter(start, day.date)) {\n return normalizeRangeActionValue({\n date: { start: day.date, end: start },\n });\n }\n return normalizeRangeActionValue({\n date: { start: start, end: day.date },\n });\n }\n\n return normalizeRangeActionValue({ date: { start: day.date, end: null } });\n }\n\n // Methods\n registerCalendar() {\n if (window) {\n // @ts-expect-error Property '__powerCalendars'\n window.__powerCalendars = window.__powerCalendars || {}; // TODO: weakmap??\n // @ts-expect-error Property '__powerCalendars'\n window.__powerCalendars[this.publicAPI.uniqueId] = this;\n }\n }\n\n unregisterCalendar() {\n // @ts-expect-error Property '__powerCalendars'\n if (window && window.__powerCalendars?.[guidFor(this)]) {\n // @ts-expect-error Property '__powerCalendars'\n delete window.__powerCalendars[guidFor(this)];\n }\n }\n}\n\nfunction ownProp<T = { [key: string | number]: any }>(obj: T, prop: keyof T) {\n return Object.prototype.hasOwnProperty.call(obj, prop);\n}\n"],"names":["DAY_IN_MS","PowerCalendarRangeComponent","Component","g","prototype","service","i","void 0","tracked","navComponent","PowerCalendarNavComponent","daysComponent","PowerCalendarRangeDaysComponent","constructor","owner","args","registerCalendar","onInit","publicAPI","willDestroy","unregisterCalendar","publicActions","publicActionsObject","onSelect","select","onCenterChange","changeCenterTask","currentCenter","selected","_selected","start","normalizeDate","end","undefined","v","center","powerCalendar","getDate","uniqueId","guidFor","type","_calendarType","loading","isRunning","locale","actions","minRange","maxRange","tagWithDefault","tag","proximitySelection","_formatRange","_buildTask","context","generator","newCenter","calendar","e","assert","value","normalizeCalendarValue","date","day","ownProp","Date","range","_buildRange","diffInMs","Math","abs","diff","n","action","normalizeDuration","_buildRangeByProximity","_buildDefaultRange","changeStart","normalizeRangeActionValue","isBefore","isAfter","window","__powerCalendars","obj","prop","Object","hasOwnProperty","call","setComponentTemplate","TEMPLATE"],"mappings":"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"}
1
+ {"version":3,"file":"power-calendar-range.js","sources":["../../src/components/power-calendar-range.ts"],"sourcesContent":["import Component from '@glimmer/component';\nimport { tracked } from '@glimmer/tracking';\nimport { action } from '@ember/object';\nimport { inject as service } from '@ember/service';\nimport { guidFor } from '@ember/object/internals';\nimport { assert } from '@ember/debug';\nimport { task } from 'ember-concurrency';\nimport PowerCalendarRangeDaysComponent from './power-calendar-range/days.ts';\nimport PowerCalendarNavComponent from './power-calendar/nav.ts';\nimport { publicActionsObject } from '../-private/utils.ts';\nimport {\n normalizeDate,\n normalizeRangeActionValue,\n diff,\n isAfter,\n isBefore,\n normalizeDuration,\n normalizeCalendarValue,\n type NormalizeRangeActionValue,\n type PowerCalendarDay,\n type SelectedPowerCalendarRange,\n} from '../utils.ts';\nimport type {\n PowerCalendarAPI,\n PowerCalendarSignature,\n PowerCalendarArgs,\n TCalendarType,\n SelectedDays,\n PowerCalendarActions,\n CalendarDay,\n CalendarAPI,\n} from './power-calendar.ts';\nimport type Owner from '@ember/owner';\nimport type { ComponentLike } from '@glint/template';\nimport type PowerCalendarService from '../services/power-calendar.ts';\n\nexport interface PowerCalendarRangeDay extends Omit<PowerCalendarDay, 'date'> {\n date: SelectedPowerCalendarRange;\n}\n\nexport const DAY_IN_MS = 86400000;\n\nexport type TPowerCalendarRangeOnSelect = (\n day: NormalizeRangeActionValue,\n calendar: PowerCalendarRangeAPI,\n event: MouseEvent,\n) => void;\n\ninterface PowerCalendarRangeArgs\n extends Omit<PowerCalendarArgs, 'selected' | 'onSelect'> {\n selected?: SelectedPowerCalendarRange;\n minRange?: number;\n maxRange?: number;\n proximitySelection?: boolean;\n onSelect?: TPowerCalendarRangeOnSelect;\n}\n\nexport interface PowerCalendarRangeDefaultBlock extends PowerCalendarRangeAPI {\n NavComponent: ComponentLike<any>;\n DaysComponent: ComponentLike<any>;\n}\n\ninterface PowerCalendarRangeSignature\n extends Omit<PowerCalendarSignature, 'Args' | 'Blocks'> {\n Args: PowerCalendarRangeArgs;\n Blocks: {\n default: [PowerCalendarRangeDefaultBlock];\n };\n}\n\nexport interface PowerCalendarRangeAPI\n extends Omit<PowerCalendarAPI, 'selected'> {\n selected?: SelectedPowerCalendarRange;\n minRange?: number | null;\n maxRange?: number | null;\n}\n\nexport default class PowerCalendarRangeComponent extends Component<PowerCalendarRangeSignature> {\n @service declare powerCalendar: PowerCalendarService;\n\n @tracked center = null;\n @tracked _calendarType: TCalendarType = 'range';\n @tracked _selected?: SelectedDays;\n\n navComponent: ComponentLike<any> = PowerCalendarNavComponent;\n daysComponent: ComponentLike<any> = PowerCalendarRangeDaysComponent;\n\n // Lifecycle hooks\n constructor(owner: Owner, args: PowerCalendarRangeArgs) {\n super(owner, args);\n this.registerCalendar();\n if (this.args.onInit) {\n this.args.onInit(this.publicAPI);\n }\n }\n\n willDestroy(): void {\n super.willDestroy();\n this.unregisterCalendar();\n }\n\n get publicActions(): PowerCalendarActions {\n return publicActionsObject(\n this.args.onSelect,\n this.select,\n this.args.onCenterChange,\n this.changeCenterTask,\n this.currentCenter,\n );\n }\n\n get selected(): SelectedPowerCalendarRange {\n if (this._selected) {\n return this._selected as SelectedPowerCalendarRange;\n }\n\n if (this.args.selected) {\n return {\n start: normalizeDate(this.args.selected.start),\n end: normalizeDate(this.args.selected.end),\n };\n }\n\n return { start: undefined, end: undefined };\n }\n\n set selected(v) {\n if (v === undefined || v === null) {\n v = {};\n }\n this._selected = {\n start: normalizeDate(v.start),\n end: normalizeDate(v.end),\n };\n }\n\n get currentCenter(): Date {\n let center = this.args.center;\n if (!center) {\n center = this.selected.start || this.powerCalendar.getDate();\n }\n return normalizeDate(center) || this.powerCalendar.getDate();\n }\n\n get publicAPI(): PowerCalendarRangeAPI {\n return {\n uniqueId: guidFor(this),\n type: this._calendarType,\n selected: this.selected,\n loading: this.changeCenterTask.isRunning,\n center: this.currentCenter,\n locale: this.args.locale || this.powerCalendar.locale,\n actions: this.publicActions,\n minRange: this.minRange,\n maxRange: this.maxRange,\n };\n }\n\n get tagWithDefault(): string {\n if (this.args.tag === undefined || this.args.tag === null) {\n return 'div';\n }\n return this.args.tag;\n }\n\n get proximitySelection(): boolean {\n return this.args.proximitySelection !== undefined\n ? this.args.proximitySelection\n : false;\n }\n\n get minRange(): number | null {\n if (this.args.minRange !== undefined) {\n return this._formatRange(this.args.minRange) as number;\n }\n\n return DAY_IN_MS;\n }\n\n get maxRange(): number | null {\n if (this.args.maxRange !== undefined) {\n return this._formatRange(this.args.maxRange) as number;\n }\n\n return null;\n }\n\n // Tasks\n changeCenterTask = task(\n async (newCenter: Date, calendar: PowerCalendarRangeAPI, e: MouseEvent) => {\n assert(\n \"You attempted to move the center of a calendar that doesn't receive an `@onCenterChange` action.\",\n typeof this.args.onCenterChange === 'function',\n );\n const value = normalizeCalendarValue({ date: newCenter });\n await this.args.onCenterChange(value, calendar, e);\n },\n );\n\n // Actions\n @action\n select(day: CalendarDay, calendar: CalendarAPI, e: MouseEvent) {\n const { date } = day as NormalizeRangeActionValue;\n assert(\n 'date must be either a Date, or a Range',\n date &&\n (ownProp(date, 'start') ||\n ownProp(date, 'end') ||\n date instanceof Date),\n );\n\n let range: NormalizeRangeActionValue;\n\n if (ownProp(date, 'start') && ownProp(date, 'end')) {\n range = { date };\n } else {\n range = this._buildRange({ date } as { date: Date });\n }\n\n const { start, end } = range.date;\n if (start && end) {\n const { minRange, maxRange } = this.publicAPI;\n const diffInMs = Math.abs(diff(end, start));\n if (\n diffInMs < (minRange ?? DAY_IN_MS) ||\n (maxRange && diffInMs > maxRange)\n ) {\n return;\n }\n }\n\n if (this.args.onSelect) {\n this.args.onSelect(range, calendar as PowerCalendarRangeAPI, e);\n }\n }\n\n _formatRange(v: number | undefined) {\n if (typeof v === 'number') {\n return v * DAY_IN_MS;\n }\n\n return normalizeDuration(v === undefined ? DAY_IN_MS : v);\n }\n\n // Methods\n _buildRange(day: { date: Date }): NormalizeRangeActionValue {\n const selected = this.selected || { start: null, end: null };\n const { start, end } = selected;\n\n if (this.proximitySelection) {\n return this._buildRangeByProximity(day, start, end);\n }\n\n return this._buildDefaultRange(day, start, end);\n }\n\n _buildRangeByProximity(\n day: { date: Date },\n start?: Date | null,\n end?: Date | null,\n ): NormalizeRangeActionValue {\n if (start && end) {\n const changeStart =\n Math.abs(diff(day.date, end)) > Math.abs(diff(day.date, start));\n\n return normalizeRangeActionValue({\n date: {\n start: changeStart ? day.date : start,\n end: changeStart ? end : day.date,\n },\n });\n }\n\n if (start && isBefore(day.date, start)) {\n return normalizeRangeActionValue({\n date: { start: day.date, end: null },\n });\n }\n\n return this._buildDefaultRange(day, start, end);\n }\n\n _buildDefaultRange(\n day: { date: Date },\n start?: Date | null,\n end?: Date | null,\n ): NormalizeRangeActionValue {\n if (start && !end) {\n if (isAfter(start, day.date)) {\n return normalizeRangeActionValue({\n date: { start: day.date, end: start },\n });\n }\n return normalizeRangeActionValue({\n date: { start: start, end: day.date },\n });\n }\n\n return normalizeRangeActionValue({ date: { start: day.date, end: null } });\n }\n\n // Methods\n registerCalendar() {\n if (window) {\n // @ts-expect-error Property '__powerCalendars'\n // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment\n window.__powerCalendars = window.__powerCalendars || {}; // TODO: weakmap??\n // @ts-expect-error Property '__powerCalendars'\n window.__powerCalendars[this.publicAPI.uniqueId] = this;\n }\n }\n\n unregisterCalendar() {\n // @ts-expect-error Property '__powerCalendars'\n if (window && window.__powerCalendars?.[guidFor(this)]) {\n // @ts-expect-error Property '__powerCalendars'\n delete window.__powerCalendars[guidFor(this)];\n }\n }\n}\n\nfunction ownProp<T = { [key: string | number]: any }>(obj: T, prop: keyof T) {\n return Object.prototype.hasOwnProperty.call(obj, prop);\n}\n"],"names":["DAY_IN_MS","PowerCalendarRangeComponent","Component","g","prototype","service","i","void 0","tracked","navComponent","PowerCalendarNavComponent","daysComponent","PowerCalendarRangeDaysComponent","constructor","owner","args","registerCalendar","onInit","publicAPI","willDestroy","unregisterCalendar","publicActions","publicActionsObject","onSelect","select","onCenterChange","changeCenterTask","currentCenter","selected","_selected","start","normalizeDate","end","undefined","v","center","powerCalendar","getDate","uniqueId","guidFor","type","_calendarType","loading","isRunning","locale","actions","minRange","maxRange","tagWithDefault","tag","proximitySelection","_formatRange","_buildTask","context","generator","newCenter","calendar","e","assert","value","normalizeCalendarValue","date","day","ownProp","Date","range","_buildRange","diffInMs","Math","abs","diff","n","action","normalizeDuration","_buildRangeByProximity","_buildDefaultRange","changeStart","normalizeRangeActionValue","isBefore","isAfter","window","__powerCalendars","obj","prop","Object","hasOwnProperty","call","setComponentTemplate","TEMPLATE"],"mappings":"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"}
@@ -14,29 +14,29 @@ import { precompileTemplate } from '@ember/template-compilation';
14
14
  import { g, i, n } from 'decorator-transforms/runtime';
15
15
  import { setComponentTemplate } from '@ember/component';
16
16
 
17
- var TEMPLATE = precompileTemplate("{{#let (assign this.publicAPI (hash\n Nav=(component (ensure-safe-component (or @navComponent this.navComponent)) calendar=(readonly this.publicAPI))\n Days=(component (ensure-safe-component (or @daysComponent this.daysComponent)) calendar=(readonly this.publicAPI))\n)) as |calendar|}}\n {{#let (element this.tagWithDefault) as |Tag|}}\n <Tag class=\"ember-power-calendar\" ...attributes id={{calendar.uniqueId}}>\n {{#if (has-block)}}\n {{yield calendar}}\n {{else}}\n <calendar.Nav/>\n <calendar.Days/>\n {{/if}}\n </Tag>\n {{/let}}\n{{/let}}\n");
17
+ var TEMPLATE = precompileTemplate("{{#let\n (assign\n this.publicAPI\n (hash\n Nav=(component\n (ensure-safe-component (or @navComponent this.navComponent))\n calendar=(readonly this.publicAPI)\n )\n Days=(component\n (ensure-safe-component (or @daysComponent this.daysComponent))\n calendar=(readonly this.publicAPI)\n )\n )\n )\n as |calendar|\n}}\n {{#let (element this.tagWithDefault) as |Tag|}}\n <Tag class=\"ember-power-calendar\" ...attributes id={{calendar.uniqueId}}>\n {{#if (has-block)}}\n {{yield calendar}}\n {{else}}\n <calendar.Nav />\n <calendar.Days />\n {{/if}}\n </Tag>\n {{/let}}\n{{/let}}");
18
18
 
19
19
  class PowerCalendarComponent extends Component {
20
20
  static {
21
21
  g(this.prototype, "powerCalendar", [inject]);
22
22
  }
23
- #powerCalendar = (i(this, "powerCalendar"), void 0);
23
+ #powerCalendar = (i(this, "powerCalendar"), undefined);
24
24
  static {
25
25
  g(this.prototype, "center", [tracked], function () {
26
26
  return null;
27
27
  });
28
28
  }
29
- #center = (i(this, "center"), void 0);
29
+ #center = (i(this, "center"), undefined);
30
30
  static {
31
31
  g(this.prototype, "_calendarType", [tracked], function () {
32
32
  return 'single';
33
33
  });
34
34
  }
35
- #_calendarType = (i(this, "_calendarType"), void 0);
35
+ #_calendarType = (i(this, "_calendarType"), undefined);
36
36
  static {
37
37
  g(this.prototype, "_selected", [tracked]);
38
38
  }
39
- #_selected = (i(this, "_selected"), void 0);
39
+ #_selected = (i(this, "_selected"), undefined);
40
40
  navComponent = PowerCalendarNavComponent;
41
41
  daysComponent = PowerCalendarDaysComponent;
42
42
 
@@ -118,6 +118,7 @@ class PowerCalendarComponent extends Component {
118
118
  registerCalendar() {
119
119
  if (window) {
120
120
  // @ts-expect-error Property '__powerCalendars'
121
+ // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment
121
122
  window.__powerCalendars = window.__powerCalendars || {}; // TODO: weakmap??
122
123
  // @ts-expect-error Property '__powerCalendars'
123
124
  window.__powerCalendars[this.publicAPI.uniqueId] = this;
@@ -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 { inject as service } from '@ember/service';\nimport { task } from 'ember-concurrency';\nimport { assert } from '@ember/debug';\nimport type { ComponentLike } from '@glint/template';\nimport {\n normalizeDate,\n normalizeCalendarValue,\n type NormalizeCalendarValue,\n type PowerCalendarDay,\n type SelectedPowerCalendarRange,\n} from '../utils.ts';\nimport PowerCalendarNavComponent from './power-calendar/nav.ts';\nimport PowerCalendarDaysComponent from './power-calendar/days.ts';\nimport type Owner from '@ember/owner';\nimport type PowerCalendarService from '../services/power-calendar.ts';\nimport type {\n PowerCalendarRangeAPI,\n PowerCalendarRangeDay,\n} from './power-calendar-range.ts';\nimport type { PowerCalendarMultipleAPI } from './power-calendar-multiple.ts';\nimport { publicActionsObject } from '../-private/utils.ts';\n\nexport type TCalendarType = 'multiple' | 'range' | 'single';\nexport type TPowerCalendarMoveCenterUnit = 'year' | 'month';\nexport type SelectedDays =\n | SelectedPowerCalendarRange\n | Date\n | Date[]\n | undefined;\nexport type CalendarAPI =\n | PowerCalendarAPI\n | PowerCalendarMultipleAPI\n | PowerCalendarRangeAPI;\n\nexport interface PowerCalendarAPI {\n uniqueId: string;\n calendarUniqueId?: string;\n selected?: SelectedDays;\n loading: boolean;\n center: Date;\n locale: string;\n type: TCalendarType;\n actions: PowerCalendarActions;\n}\n\nexport interface PowerCalendarActions {\n changeCenter?: (\n newCenter: Date,\n calendar: CalendarAPI,\n event: MouseEvent,\n ) => void;\n moveCenter?: (\n step: number,\n unit: TPowerCalendarMoveCenterUnit,\n calendar: PowerCalendarAPI,\n event: MouseEvent,\n ) => void;\n select?: (day: CalendarDay, calendar: CalendarAPI, event: MouseEvent) => void;\n}\n\nexport type TPowerCalendarOnSelect = (\n day: CalendarDay,\n calendar: CalendarAPI,\n event: MouseEvent,\n) => void;\n\nexport interface PowerCalendarArgs {\n daysComponent?: string | ComponentLike<any>;\n locale: string;\n navComponent?: string | ComponentLike<any>;\n onCenterChange?: (\n newCenter: NormalizeCalendarValue,\n calendar: PowerCalendarAPI,\n event: MouseEvent,\n ) => void;\n onInit?: (calendar: PowerCalendarAPI) => void;\n onSelect?: TPowerCalendarOnSelect;\n selected?: SelectedDays;\n center?: Date;\n tag?: string;\n}\n\nexport interface PowerCalendarDefaultBlock extends PowerCalendarAPI {\n NavComponent: ComponentLike<any>;\n DaysComponent: ComponentLike<any>;\n}\n\nexport type CalendarDay =\n | PowerCalendarDay\n | PowerCalendarRangeDay\n | PowerCalendarDay[];\n\nexport interface PowerCalendarSignature {\n Element: HTMLElement;\n Args: PowerCalendarArgs;\n Blocks: {\n default: [PowerCalendarDefaultBlock];\n };\n}\n\nexport default class PowerCalendarComponent extends Component<PowerCalendarSignature> {\n @service declare powerCalendar: PowerCalendarService;\n\n @tracked center = null;\n @tracked _calendarType: TCalendarType = 'single';\n @tracked _selected?: SelectedDays;\n\n navComponent: ComponentLike<any> = PowerCalendarNavComponent;\n daysComponent: ComponentLike<any> = PowerCalendarDaysComponent;\n\n // Lifecycle hooks\n constructor(owner: Owner, args: PowerCalendarArgs) {\n super(owner, args);\n this.registerCalendar();\n if (this.args.onInit) {\n this.args.onInit(this.publicAPI);\n }\n }\n\n willDestroy(): void {\n super.willDestroy();\n this.unregisterCalendar();\n }\n\n get publicActions(): PowerCalendarActions {\n return publicActionsObject(\n this.args.onSelect,\n this.select,\n this.args.onCenterChange,\n this.changeCenterTask,\n this.currentCenter,\n );\n }\n\n get selected(): SelectedDays {\n if (this._selected) {\n return this._selected;\n }\n\n return normalizeDate(this.args.selected as Date);\n }\n\n set selected(v: SelectedDays) {\n this._selected = normalizeDate(v as Date | undefined);\n }\n\n get currentCenter(): Date {\n let center = this.args.center;\n if (!center) {\n center = (this.selected as Date) || this.powerCalendar.getDate();\n }\n return normalizeDate(center) || this.powerCalendar.getDate();\n }\n\n get publicAPI(): PowerCalendarAPI {\n return this._publicAPI;\n }\n\n get _publicAPI(): PowerCalendarAPI {\n return {\n uniqueId: guidFor(this),\n type: this._calendarType,\n selected: this.selected,\n loading: this.changeCenterTask.isRunning,\n center: this.currentCenter,\n locale: this.args.locale || this.powerCalendar.locale,\n actions: this.publicActions,\n };\n }\n\n get tagWithDefault(): string {\n if (this.args.tag === undefined || this.args.tag === null) {\n return 'div';\n }\n return this.args.tag;\n }\n\n // Tasks\n changeCenterTask = task(\n async (newCenter: Date, calendar: PowerCalendarAPI, e: MouseEvent) => {\n assert(\n \"You attempted to move the center of a calendar that doesn't receive an `@onCenterChange` action.\",\n typeof this.args.onCenterChange === 'function',\n );\n const value = normalizeCalendarValue({ date: newCenter });\n await this.args.onCenterChange(value, calendar, e);\n },\n );\n\n // Actions\n @action\n select(day: CalendarDay, calendar: PowerCalendarAPI, e: MouseEvent) {\n if (this.args.onSelect) {\n this.args.onSelect(day, calendar, e);\n }\n }\n\n // Methods\n registerCalendar() {\n if (window) {\n // @ts-expect-error Property '__powerCalendars'\n window.__powerCalendars = window.__powerCalendars || {}; // TODO: weakmap??\n // @ts-expect-error Property '__powerCalendars'\n window.__powerCalendars[this.publicAPI.uniqueId] = this;\n }\n }\n\n unregisterCalendar() {\n // @ts-expect-error Property '__powerCalendars'\n if (window && window.__powerCalendars?.[guidFor(this)]) {\n // @ts-expect-error Property '__powerCalendars'\n delete window.__powerCalendars[guidFor(this)];\n }\n }\n}\n"],"names":["PowerCalendarComponent","Component","g","prototype","service","i","void 0","tracked","navComponent","PowerCalendarNavComponent","daysComponent","PowerCalendarDaysComponent","constructor","owner","args","registerCalendar","onInit","publicAPI","willDestroy","unregisterCalendar","publicActions","publicActionsObject","onSelect","select","onCenterChange","changeCenterTask","currentCenter","selected","_selected","normalizeDate","v","center","powerCalendar","getDate","_publicAPI","uniqueId","guidFor","type","_calendarType","loading","isRunning","locale","actions","tagWithDefault","tag","undefined","_buildTask","context","generator","newCenter","calendar","e","assert","value","normalizeCalendarValue","date","day","n","action","window","__powerCalendars","setComponentTemplate","TEMPLATE"],"mappings":"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"}
1
+ {"version":3,"file":"power-calendar.js","sources":["../../src/components/power-calendar.ts"],"sourcesContent":["import Component from '@glimmer/component';\nimport { tracked } from '@glimmer/tracking';\nimport { action } from '@ember/object';\nimport { guidFor } from '@ember/object/internals';\nimport { inject as service } from '@ember/service';\nimport { task } from 'ember-concurrency';\nimport { assert } from '@ember/debug';\nimport type { ComponentLike } from '@glint/template';\nimport {\n normalizeDate,\n normalizeCalendarValue,\n type NormalizeCalendarValue,\n type PowerCalendarDay,\n type SelectedPowerCalendarRange,\n} from '../utils.ts';\nimport PowerCalendarNavComponent from './power-calendar/nav.ts';\nimport PowerCalendarDaysComponent from './power-calendar/days.ts';\nimport type Owner from '@ember/owner';\nimport type PowerCalendarService from '../services/power-calendar.ts';\nimport type {\n PowerCalendarRangeAPI,\n PowerCalendarRangeDay,\n} from './power-calendar-range.ts';\nimport type { PowerCalendarMultipleAPI } from './power-calendar-multiple.ts';\nimport { publicActionsObject } from '../-private/utils.ts';\n\nexport type TCalendarType = 'multiple' | 'range' | 'single';\nexport type TPowerCalendarMoveCenterUnit = 'year' | 'month';\nexport type SelectedDays =\n | SelectedPowerCalendarRange\n | Date\n | Date[]\n | undefined;\nexport type CalendarAPI =\n | PowerCalendarAPI\n | PowerCalendarMultipleAPI\n | PowerCalendarRangeAPI;\n\nexport interface PowerCalendarAPI {\n uniqueId: string;\n calendarUniqueId?: string;\n selected?: SelectedDays;\n loading: boolean;\n center: Date;\n locale: string;\n type: TCalendarType;\n actions: PowerCalendarActions;\n}\n\nexport interface PowerCalendarActions {\n changeCenter?: (\n newCenter: Date,\n calendar: CalendarAPI,\n event: MouseEvent,\n ) => void;\n moveCenter?: (\n step: number,\n unit: TPowerCalendarMoveCenterUnit,\n calendar: PowerCalendarAPI,\n event: MouseEvent,\n ) => void;\n select?: (day: CalendarDay, calendar: CalendarAPI, event: MouseEvent) => void;\n}\n\nexport type TPowerCalendarOnSelect = (\n day: CalendarDay,\n calendar: CalendarAPI,\n event: MouseEvent,\n) => void;\n\nexport interface PowerCalendarArgs {\n daysComponent?: string | ComponentLike<any>;\n locale: string;\n navComponent?: string | ComponentLike<any>;\n onCenterChange?: (\n newCenter: NormalizeCalendarValue,\n calendar: PowerCalendarAPI,\n event: MouseEvent,\n ) => void;\n onInit?: (calendar: PowerCalendarAPI) => void;\n onSelect?: TPowerCalendarOnSelect;\n selected?: SelectedDays;\n center?: Date;\n tag?: string;\n}\n\nexport interface PowerCalendarDefaultBlock extends PowerCalendarAPI {\n NavComponent: ComponentLike<any>;\n DaysComponent: ComponentLike<any>;\n}\n\nexport type CalendarDay =\n | PowerCalendarDay\n | PowerCalendarRangeDay\n | PowerCalendarDay[];\n\nexport interface PowerCalendarSignature {\n Element: HTMLElement;\n Args: PowerCalendarArgs;\n Blocks: {\n default: [PowerCalendarDefaultBlock];\n };\n}\n\nexport default class PowerCalendarComponent extends Component<PowerCalendarSignature> {\n @service declare powerCalendar: PowerCalendarService;\n\n @tracked center = null;\n @tracked _calendarType: TCalendarType = 'single';\n @tracked _selected?: SelectedDays;\n\n navComponent: ComponentLike<any> = PowerCalendarNavComponent;\n daysComponent: ComponentLike<any> = PowerCalendarDaysComponent;\n\n // Lifecycle hooks\n constructor(owner: Owner, args: PowerCalendarArgs) {\n super(owner, args);\n this.registerCalendar();\n if (this.args.onInit) {\n this.args.onInit(this.publicAPI);\n }\n }\n\n willDestroy(): void {\n super.willDestroy();\n this.unregisterCalendar();\n }\n\n get publicActions(): PowerCalendarActions {\n return publicActionsObject(\n this.args.onSelect,\n this.select,\n this.args.onCenterChange,\n this.changeCenterTask,\n this.currentCenter,\n );\n }\n\n get selected(): SelectedDays {\n if (this._selected) {\n return this._selected;\n }\n\n return normalizeDate(this.args.selected as Date);\n }\n\n set selected(v: SelectedDays) {\n this._selected = normalizeDate(v as Date | undefined);\n }\n\n get currentCenter(): Date {\n let center = this.args.center;\n if (!center) {\n center = (this.selected as Date) || this.powerCalendar.getDate();\n }\n return normalizeDate(center) || this.powerCalendar.getDate();\n }\n\n get publicAPI(): PowerCalendarAPI {\n return this._publicAPI;\n }\n\n get _publicAPI(): PowerCalendarAPI {\n return {\n uniqueId: guidFor(this),\n type: this._calendarType,\n selected: this.selected,\n loading: this.changeCenterTask.isRunning,\n center: this.currentCenter,\n locale: this.args.locale || this.powerCalendar.locale,\n actions: this.publicActions,\n };\n }\n\n get tagWithDefault(): string {\n if (this.args.tag === undefined || this.args.tag === null) {\n return 'div';\n }\n return this.args.tag;\n }\n\n // Tasks\n changeCenterTask = task(\n async (newCenter: Date, calendar: PowerCalendarAPI, e: MouseEvent) => {\n assert(\n \"You attempted to move the center of a calendar that doesn't receive an `@onCenterChange` action.\",\n typeof this.args.onCenterChange === 'function',\n );\n const value = normalizeCalendarValue({ date: newCenter });\n await this.args.onCenterChange(value, calendar, e);\n },\n );\n\n // Actions\n @action\n select(day: CalendarDay, calendar: PowerCalendarAPI, e: MouseEvent) {\n if (this.args.onSelect) {\n this.args.onSelect(day, calendar, e);\n }\n }\n\n // Methods\n registerCalendar() {\n if (window) {\n // @ts-expect-error Property '__powerCalendars'\n // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment\n window.__powerCalendars = window.__powerCalendars || {}; // TODO: weakmap??\n // @ts-expect-error Property '__powerCalendars'\n window.__powerCalendars[this.publicAPI.uniqueId] = this;\n }\n }\n\n unregisterCalendar() {\n // @ts-expect-error Property '__powerCalendars'\n if (window && window.__powerCalendars?.[guidFor(this)]) {\n // @ts-expect-error Property '__powerCalendars'\n delete window.__powerCalendars[guidFor(this)];\n }\n }\n}\n"],"names":["PowerCalendarComponent","Component","g","prototype","service","i","void 0","tracked","navComponent","PowerCalendarNavComponent","daysComponent","PowerCalendarDaysComponent","constructor","owner","args","registerCalendar","onInit","publicAPI","willDestroy","unregisterCalendar","publicActions","publicActionsObject","onSelect","select","onCenterChange","changeCenterTask","currentCenter","selected","_selected","normalizeDate","v","center","powerCalendar","getDate","_publicAPI","uniqueId","guidFor","type","_calendarType","loading","isRunning","locale","actions","tagWithDefault","tag","undefined","_buildTask","context","generator","newCenter","calendar","e","assert","value","normalizeCalendarValue","date","day","n","action","window","__powerCalendars","setComponentTemplate","TEMPLATE"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"days-utils-D13uOiMt.js","sources":["../src/-private/days-utils.ts"],"sourcesContent":["import { assert } from '@ember/debug';\nimport type { CalendarAPI } from '../components/power-calendar.ts';\nimport {\n endOf,\n endOfWeek,\n formatDate,\n isAfter,\n isBefore,\n isSame,\n localeStartOfWeek,\n normalizeCalendarDay,\n startOf,\n startOfWeek,\n type PowerCalendarDay,\n} from '../utils.ts';\n\nexport const WEEK_DAYS = ['Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat', 'Sun'];\nexport type TWeekdayFormat = 'min' | 'short' | 'long';\n\nexport interface Week {\n id: string;\n days: PowerCalendarDay[];\n missingDays: number;\n}\n\nexport function localeStartOfWeekOrFallback(\n startOfWeek: string | undefined,\n locale: string,\n): number {\n if (startOfWeek) {\n return parseInt(startOfWeek, 10);\n }\n return localeStartOfWeek(locale);\n}\n\nexport function weekdaysNames(\n localeStartOfWeek: number,\n weekdayFormat: TWeekdayFormat,\n weekdays: string[],\n weekdaysMin: string[],\n weekdaysShort: string[],\n): string[] {\n let weekdaysNames;\n if (weekdayFormat === 'long') {\n weekdaysNames = weekdays;\n } else if (weekdayFormat === 'min') {\n weekdaysNames = weekdaysMin;\n } else {\n weekdaysNames = weekdaysShort;\n }\n return weekdaysNames\n .slice(localeStartOfWeek)\n .concat(weekdaysNames.slice(0, localeStartOfWeek));\n}\n\nexport function firstDay(currentCenter: Date, localeStartOfWeek: number): Date {\n const firstDay = startOf(currentCenter, 'month');\n return startOfWeek(firstDay, localeStartOfWeek);\n}\n\nexport function weeks(\n days: PowerCalendarDay[],\n showDaysAround: boolean,\n): Week[] {\n const weeks: Week[] = [];\n let i = 0;\n while (days[i]) {\n let daysOfWeek = days.slice(i, i + 7);\n if (!showDaysAround) {\n daysOfWeek = daysOfWeek.filter((d) => d.isCurrentMonth);\n }\n weeks.push({\n id: `week-of-${daysOfWeek[0]?.id}`,\n days: daysOfWeek,\n missingDays: 7 - daysOfWeek.length,\n });\n i += 7;\n }\n return weeks;\n}\n\nexport function handleDayKeyDown(\n e: KeyboardEvent,\n focusedId: string | null,\n days: PowerCalendarDay[],\n): PowerCalendarDay | undefined {\n if (!focusedId) {\n return;\n }\n let day, index: number | undefined;\n for (let i = 0; i < days.length; i++) {\n if (days[i]?.id === focusedId) {\n index = i;\n break;\n }\n }\n\n if (!index) {\n return;\n }\n\n if (e.key === 'ArrowUp') {\n e.preventDefault();\n const newIndex = Math.max(index - 7, 0);\n day = days[newIndex];\n if (day?.isDisabled) {\n for (let i = newIndex + 1; i <= index; i++) {\n day = days[i];\n if (!day?.isDisabled) {\n break;\n }\n }\n }\n } else if (e.key === 'ArrowDown') {\n e.preventDefault();\n const newIndex = Math.min(index + 7, days.length - 1);\n day = days[newIndex];\n if (day?.isDisabled) {\n for (let i = newIndex - 1; i >= index; i--) {\n day = days[i];\n if (!day?.isDisabled) {\n break;\n }\n }\n }\n } else if (e.key === 'ArrowLeft') {\n day = days[Math.max(index - 1, 0)];\n if (day?.isDisabled) {\n return;\n }\n } else if (e.key === 'ArrowRight') {\n day = days[Math.min(index + 1, days.length - 1)];\n if (day?.isDisabled) {\n return;\n }\n } else {\n return;\n }\n\n return day;\n}\n\nexport function focusDate(uniqueId: string, id: string): void {\n const dayElement: HTMLElement | null = document.querySelector(\n `[data-power-calendar-id=\"${uniqueId}\"] [data-date=\"${id}\"]`,\n );\n if (dayElement) {\n dayElement.focus();\n }\n}\n\nexport function buildDay(\n date: Date,\n today: Date,\n calendar: CalendarAPI,\n focusedId: string | null,\n currentCenter: Date,\n dayIsSelected: (date: Date, calendar: CalendarAPI) => boolean,\n minDate?: Date,\n maxDate?: Date,\n disabledDates?: Array<Date | string>,\n dayIsDisabledExtended?: (\n date: Date,\n calendar: CalendarAPI,\n minDate?: Date,\n maxDate?: Date,\n disabledDates?: Array<Date | string>,\n ) => boolean,\n): PowerCalendarDay {\n const id = formatDate(date, 'YYYY-MM-DD');\n\n let isDisabled = false;\n if (typeof dayIsDisabledExtended === 'function') {\n isDisabled = dayIsDisabledExtended(\n date,\n calendar,\n minDate,\n maxDate,\n disabledDates,\n );\n } else {\n isDisabled = dayIsDisabled(date, calendar, minDate, maxDate, disabledDates);\n }\n\n return normalizeCalendarDay({\n id,\n number: date.getDate(),\n date: new Date(date),\n isDisabled: isDisabled,\n isFocused: focusedId === id,\n isCurrentMonth: isSame(date, currentCenter, 'month'),\n isToday: isSame(date, today, 'day'),\n isSelected: dayIsSelected(date, calendar),\n } as PowerCalendarDay);\n}\n\nexport function dayIsDisabled(\n date: Date,\n calendar: CalendarAPI,\n minDate?: Date,\n maxDate?: Date,\n disabledDates?: Array<Date | string>,\n): boolean {\n const isDisabled = !calendar.actions.select;\n if (isDisabled) {\n return true;\n }\n\n if (minDate && isBefore(date, startOf(minDate, 'day'))) {\n return true;\n }\n\n if (maxDate && isAfter(date, endOf(maxDate, 'day'))) {\n return true;\n }\n\n if (disabledDates) {\n const disabledInRange = disabledDates.some((d) => {\n const isSameDay = isSame(date, d as Date, 'day');\n const isWeekDayIncludes =\n WEEK_DAYS.indexOf(d as string) !== -1 && formatDate(date, 'ddd') === d;\n return isSameDay || isWeekDayIncludes;\n });\n\n if (disabledInRange) {\n return true;\n }\n }\n\n return false;\n}\n\nexport function lastDay(localeStartOfWeek: number, currentCenter: Date): Date {\n assert(\n 'The center of the calendar is an invalid date.',\n !isNaN(currentCenter.getTime()),\n );\n const lastDay = endOf(currentCenter, 'month');\n return endOfWeek(lastDay, localeStartOfWeek);\n}\n\nexport function handleClick(\n e: MouseEvent,\n days: PowerCalendarDay[],\n calendar: CalendarAPI,\n): void {\n const dayEl: HTMLElement | null | undefined = (\n e.target as HTMLElement | null\n )?.closest('[data-date]');\n if (dayEl) {\n const dateStr = dayEl.dataset['date'];\n const day = days.find((d) => d.id === dateStr);\n if (day) {\n if (calendar.actions.select) {\n calendar.actions.select(day, calendar, e);\n }\n }\n }\n}\n"],"names":["WEEK_DAYS","localeStartOfWeekOrFallback","startOfWeek","locale","parseInt","localeStartOfWeek","weekdaysNames","weekdayFormat","weekdays","weekdaysMin","weekdaysShort","slice","concat","firstDay","currentCenter","startOf","weeks","days","showDaysAround","i","daysOfWeek","filter","d","isCurrentMonth","push","id","missingDays","length","handleDayKeyDown","e","focusedId","day","index","key","preventDefault","newIndex","Math","max","isDisabled","min","focusDate","uniqueId","dayElement","document","querySelector","focus","buildDay","date","today","calendar","dayIsSelected","minDate","maxDate","disabledDates","dayIsDisabledExtended","formatDate","dayIsDisabled","normalizeCalendarDay","number","getDate","Date","isFocused","isSame","isToday","isSelected","actions","select","isBefore","isAfter","endOf","disabledInRange","some","isSameDay","isWeekDayIncludes","indexOf","lastDay","assert","isNaN","getTime","endOfWeek","handleClick","dayEl","target","closest","dateStr","dataset","find"],"mappings":"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"}
1
+ {"version":3,"file":"days-utils-D13uOiMt.js","sources":["../src/-private/days-utils.ts"],"sourcesContent":["import { assert } from '@ember/debug';\nimport type { CalendarAPI } from '../components/power-calendar.ts';\nimport {\n endOf,\n endOfWeek,\n formatDate,\n isAfter,\n isBefore,\n isSame,\n localeStartOfWeek,\n normalizeCalendarDay,\n startOf,\n startOfWeek,\n type PowerCalendarDay,\n} from '../utils.ts';\n\nexport const WEEK_DAYS = ['Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat', 'Sun'];\nexport type TWeekdayFormat = 'min' | 'short' | 'long';\n\nexport interface Week {\n id: string;\n days: PowerCalendarDay[];\n missingDays: number;\n}\n\nexport function localeStartOfWeekOrFallback(\n startOfWeek: string | undefined,\n locale: string,\n): number {\n if (startOfWeek) {\n return parseInt(startOfWeek, 10);\n }\n return localeStartOfWeek(locale);\n}\n\nexport function weekdaysNames(\n localeStartOfWeek: number,\n weekdayFormat: TWeekdayFormat,\n weekdays: string[],\n weekdaysMin: string[],\n weekdaysShort: string[],\n): string[] {\n let weekdaysNames;\n if (weekdayFormat === 'long') {\n weekdaysNames = weekdays;\n } else if (weekdayFormat === 'min') {\n weekdaysNames = weekdaysMin;\n } else {\n weekdaysNames = weekdaysShort;\n }\n return weekdaysNames\n .slice(localeStartOfWeek)\n .concat(weekdaysNames.slice(0, localeStartOfWeek));\n}\n\nexport function firstDay(currentCenter: Date, localeStartOfWeek: number): Date {\n const firstDay = startOf(currentCenter, 'month');\n return startOfWeek(firstDay, localeStartOfWeek);\n}\n\nexport function weeks(\n days: PowerCalendarDay[],\n showDaysAround: boolean,\n): Week[] {\n const weeks: Week[] = [];\n let i = 0;\n while (days[i]) {\n let daysOfWeek = days.slice(i, i + 7);\n if (!showDaysAround) {\n daysOfWeek = daysOfWeek.filter((d) => d.isCurrentMonth);\n }\n weeks.push({\n id: `week-of-${daysOfWeek[0]?.id}`,\n days: daysOfWeek,\n missingDays: 7 - daysOfWeek.length,\n });\n i += 7;\n }\n return weeks;\n}\n\nexport function handleDayKeyDown(\n e: KeyboardEvent,\n focusedId: string | null,\n days: PowerCalendarDay[],\n): PowerCalendarDay | undefined {\n if (!focusedId) {\n return;\n }\n let day, index: number | undefined;\n for (let i = 0; i < days.length; i++) {\n if (days[i]?.id === focusedId) {\n index = i;\n break;\n }\n }\n\n if (!index) {\n return;\n }\n\n if (e.key === 'ArrowUp') {\n e.preventDefault();\n const newIndex = Math.max(index - 7, 0);\n day = days[newIndex];\n if (day?.isDisabled) {\n for (let i = newIndex + 1; i <= index; i++) {\n day = days[i];\n if (!day?.isDisabled) {\n break;\n }\n }\n }\n } else if (e.key === 'ArrowDown') {\n e.preventDefault();\n const newIndex = Math.min(index + 7, days.length - 1);\n day = days[newIndex];\n if (day?.isDisabled) {\n for (let i = newIndex - 1; i >= index; i--) {\n day = days[i];\n if (!day?.isDisabled) {\n break;\n }\n }\n }\n } else if (e.key === 'ArrowLeft') {\n day = days[Math.max(index - 1, 0)];\n if (day?.isDisabled) {\n return;\n }\n } else if (e.key === 'ArrowRight') {\n day = days[Math.min(index + 1, days.length - 1)];\n if (day?.isDisabled) {\n return;\n }\n } else {\n return;\n }\n\n return day;\n}\n\nexport function focusDate(uniqueId: string, id: string): void {\n const dayElement: HTMLElement | null = document.querySelector(\n `[data-power-calendar-id=\"${uniqueId}\"] [data-date=\"${id}\"]`,\n );\n if (dayElement) {\n dayElement.focus();\n }\n}\n\nexport function buildDay(\n date: Date,\n today: Date,\n calendar: CalendarAPI,\n focusedId: string | null,\n currentCenter: Date,\n dayIsSelected: (date: Date, calendar: CalendarAPI) => boolean,\n minDate?: Date,\n maxDate?: Date,\n disabledDates?: Array<Date | string>,\n dayIsDisabledExtended?: (\n date: Date,\n calendar: CalendarAPI,\n minDate?: Date,\n maxDate?: Date,\n disabledDates?: Array<Date | string>,\n ) => boolean,\n): PowerCalendarDay {\n const id = formatDate(date, 'YYYY-MM-DD');\n\n let isDisabled = false;\n if (typeof dayIsDisabledExtended === 'function') {\n isDisabled = dayIsDisabledExtended(\n date,\n calendar,\n minDate,\n maxDate,\n disabledDates,\n );\n } else {\n isDisabled = dayIsDisabled(date, calendar, minDate, maxDate, disabledDates);\n }\n\n return normalizeCalendarDay({\n id,\n number: date.getDate(),\n date: new Date(date),\n isDisabled: isDisabled,\n isFocused: focusedId === id,\n isCurrentMonth: isSame(date, currentCenter, 'month'),\n isToday: isSame(date, today, 'day'),\n isSelected: dayIsSelected(date, calendar),\n } as PowerCalendarDay);\n}\n\nexport function dayIsDisabled(\n date: Date,\n calendar: CalendarAPI,\n minDate?: Date,\n maxDate?: Date,\n disabledDates?: Array<Date | string>,\n): boolean {\n const isDisabled = !calendar.actions.select;\n if (isDisabled) {\n return true;\n }\n\n if (minDate && isBefore(date, startOf(minDate, 'day'))) {\n return true;\n }\n\n if (maxDate && isAfter(date, endOf(maxDate, 'day'))) {\n return true;\n }\n\n if (disabledDates) {\n const disabledInRange = disabledDates.some((d) => {\n const isSameDay = isSame(date, d as Date, 'day');\n const isWeekDayIncludes =\n WEEK_DAYS.indexOf(d as string) !== -1 && formatDate(date, 'ddd') === d;\n return isSameDay || isWeekDayIncludes;\n });\n\n if (disabledInRange) {\n return true;\n }\n }\n\n return false;\n}\n\nexport function lastDay(localeStartOfWeek: number, currentCenter: Date): Date {\n assert(\n 'The center of the calendar is an invalid date.',\n !isNaN(currentCenter.getTime()),\n );\n const lastDay = endOf(currentCenter, 'month');\n return endOfWeek(lastDay, localeStartOfWeek);\n}\n\nexport function handleClick(\n e: MouseEvent,\n days: PowerCalendarDay[],\n calendar: CalendarAPI,\n): void {\n const dayEl: HTMLElement | null | undefined = (\n e.target as HTMLElement | null\n )?.closest('[data-date]');\n if (dayEl) {\n const dateStr = dayEl.dataset['date'];\n const day = days.find((d) => d.id === dateStr);\n if (day) {\n if (calendar.actions.select) {\n calendar.actions.select(day, calendar, e);\n }\n }\n }\n}\n"],"names":["WEEK_DAYS","localeStartOfWeekOrFallback","startOfWeek","locale","parseInt","localeStartOfWeek","weekdaysNames","weekdayFormat","weekdays","weekdaysMin","weekdaysShort","slice","concat","firstDay","currentCenter","startOf","weeks","days","showDaysAround","i","daysOfWeek","filter","d","isCurrentMonth","push","id","missingDays","length","handleDayKeyDown","e","focusedId","day","index","key","preventDefault","newIndex","Math","max","isDisabled","min","focusDate","uniqueId","dayElement","document","querySelector","focus","buildDay","date","today","calendar","dayIsSelected","minDate","maxDate","disabledDates","dayIsDisabledExtended","formatDate","dayIsDisabled","normalizeCalendarDay","number","getDate","Date","isFocused","isSame","isToday","isSelected","actions","select","isBefore","isAfter","endOf","disabledInRange","some","isSameDay","isWeekDayIncludes","indexOf","lastDay","assert","isNaN","getTime","endOfWeek","handleClick","dayEl","target","closest","dateStr","dataset","find"],"mappings":"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"}
@@ -8,7 +8,7 @@ class powerCalendar extends Service {
8
8
  static {
9
9
  g(this.prototype, "_local", [tracked]);
10
10
  }
11
- #_local = (i(this, "_local"), void 0);
11
+ #_local = (i(this, "_local"), undefined);
12
12
  get locale() {
13
13
  if (this._local) {
14
14
  return this._local;
@@ -1 +1 @@
1
- {"version":3,"file":"power-calendar.js","sources":["../../src/services/power-calendar.ts"],"sourcesContent":["import Service from '@ember/service';\nimport { tracked } from '@glimmer/tracking';\nimport { getDefaultLocale } from '../utils.ts';\n\nexport default class extends Service {\n date: Date | null = null;\n\n @tracked _local?: string;\n\n get locale(): string {\n if (this._local) {\n return this._local;\n }\n\n return getDefaultLocale();\n }\n\n set locale(value) {\n this._local = value;\n }\n\n // Methods\n getDate(): Date {\n return this.date || new Date();\n }\n}\n"],"names":["Service","date","g","prototype","tracked","i","void 0","locale","_local","getDefaultLocale","value","getDate","Date"],"mappings":";;;;;AAIe,mBAAA,SAAcA,OAAO,CAAC;AACnCC,EAAAA,IAAI,GAAgB,IAAI;AAAC,EAAA;IAAAC,CAAA,CAAA,IAAA,CAAAC,SAAA,EAAA,QAAA,EAAA,CAExBC,OAAO,CAAA,CAAA;AAAA;AAAA,EAAA,OAAA,IAAAC,CAAA,CAAA,IAAA,EAAA,QAAA,CAAA,EAAAC,KAAA,CAAA;EAER,IAAIC,MAAMA,GAAW;IACnB,IAAI,IAAI,CAACC,MAAM,EAAE;MACf,OAAO,IAAI,CAACA,MAAM;AACpB;IAEA,OAAOC,gBAAgB,EAAE;AAC3B;EAEA,IAAIF,MAAMA,CAACG,KAAK,EAAE;IAChB,IAAI,CAACF,MAAM,GAAGE,KAAK;AACrB;;AAEA;AACAC,EAAAA,OAAOA,GAAS;AACd,IAAA,OAAO,IAAI,CAACV,IAAI,IAAI,IAAIW,IAAI,EAAE;AAChC;AACF;;;;"}
1
+ {"version":3,"file":"power-calendar.js","sources":["../../src/services/power-calendar.ts"],"sourcesContent":["import Service from '@ember/service';\nimport { tracked } from '@glimmer/tracking';\nimport { getDefaultLocale } from '../utils.ts';\n\nexport default class extends Service {\n date: Date | null = null;\n\n @tracked _local?: string;\n\n get locale(): string {\n if (this._local) {\n return this._local;\n }\n\n return getDefaultLocale();\n }\n\n set locale(value) {\n this._local = value;\n }\n\n // Methods\n getDate(): Date {\n return this.date || new Date();\n }\n}\n"],"names":["Service","date","g","prototype","tracked","i","void 0","locale","_local","getDefaultLocale","value","getDate","Date"],"mappings":";;;;;AAIe,mBAAA,SAAcA,OAAO,CAAC;AACnCC,EAAAA,IAAI,GAAgB,IAAI;AAAC,EAAA;IAAAC,CAAA,CAAA,IAAA,CAAAC,SAAA,EAAA,QAAA,EAAA,CAExBC,OAAO,CAAA,CAAA;AAAA;AAAA,EAAA,OAAA,IAAAC,CAAA,CAAA,IAAA,EAAA,QAAA,CAAA,EAAAC,SAAA;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;;;;"}
@@ -30,6 +30,7 @@ function findComponentInstance(selector) {
30
30
  const calendarGuid = findCalendarGuid(selector);
31
31
  assert(`Could not find a calendar using selector: "${selector}"`, calendarGuid);
32
32
  // @ts-expect-error Property '__powerCalendars'
33
+ // eslint-disable-next-line @typescript-eslint/no-unsafe-return
33
34
  return window.__powerCalendars[calendarGuid];
34
35
  }
35
36
  async function calendarCenter(selector, newCenter) {
@@ -1 +1 @@
1
- {"version":3,"file":"helpers.js","sources":["../../src/test-support/helpers.ts"],"sourcesContent":["import { run } from '@ember/runloop';\nimport { assert } from '@ember/debug';\nimport { click, settled, find } from '@ember/test-helpers';\nimport { formatDate } from '../utils.ts';\nimport type PowerCalendarMultipleComponent from '../components/power-calendar-multiple.ts';\nimport type PowerCalendarComponent from '../components/power-calendar.ts';\nimport type PowerCalendarRangeComponent from '../components/power-calendar-range.ts';\n\nexport default {};\n\nexport * from '../utils.ts';\n\nfunction findCalendarElement(selector: string): Element | null | undefined {\n const target = find(selector);\n\n if (target) {\n if (target.classList.contains('ember-power-calendar')) {\n return target;\n } else {\n return (\n target.querySelector('.ember-power-calendar') ||\n target.querySelector('[data-power-calendar-id]')\n );\n }\n }\n}\n\nfunction findCalendarGuid(selector: string): string | undefined {\n const maybeCalendar = findCalendarElement(selector);\n if (!maybeCalendar) {\n return;\n }\n if (maybeCalendar.classList.contains('ember-power-calendar')) {\n return maybeCalendar.id;\n } else {\n return (maybeCalendar as HTMLElement).dataset['powerCalendarId'];\n }\n}\n\nfunction findComponentInstance(\n selector: string,\n):\n | PowerCalendarComponent\n | PowerCalendarMultipleComponent\n | PowerCalendarRangeComponent {\n const calendarGuid = findCalendarGuid(selector);\n assert(\n `Could not find a calendar using selector: \"${selector}\"`,\n calendarGuid,\n );\n // @ts-expect-error Property '__powerCalendars'\n return window.__powerCalendars[calendarGuid];\n}\n\nexport async function calendarCenter(\n selector: string,\n newCenter: Date,\n): Promise<void> {\n assert(\n '`calendarCenter` expect a Date object as second argument',\n newCenter instanceof Date,\n );\n const calendarComponent = findComponentInstance(selector);\n const onCenterChange = calendarComponent.args.onCenterChange;\n assert(\n \"You cannot call `calendarCenter` on a component that doesn't has an `@onCenterChange` action\",\n !!onCenterChange,\n );\n const publicAPI = calendarComponent.publicAPI;\n run(() =>\n publicAPI.actions.changeCenter!(newCenter, publicAPI, {} as MouseEvent),\n );\n return settled();\n}\n\nexport async function calendarSelect(\n selector: string,\n selected: Date,\n): Promise<void> {\n assert('`calendarSelect` expect a Date object as second argument', selected);\n const calendarElement = findCalendarElement(selector);\n const daySelector = `${selector} [data-date=\"${formatDate(\n selected,\n 'YYYY-MM-DD',\n )}\"]`;\n const dayElement = calendarElement?.querySelector(daySelector);\n if (!dayElement) {\n await calendarCenter(selector, selected);\n }\n return click(daySelector);\n}\n"],"names":["findCalendarElement","selector","target","find","classList","contains","querySelector","findCalendarGuid","maybeCalendar","id","dataset","findComponentInstance","calendarGuid","assert","window","__powerCalendars","calendarCenter","newCenter","Date","calendarComponent","onCenterChange","args","publicAPI","run","actions","changeCenter","settled","calendarSelect","selected","calendarElement","daySelector","formatDate","dayElement","click"],"mappings":";;;;;;AAQA,cAAe,EAAE;AAIjB,SAASA,mBAAmBA,CAACC,QAAgB,EAA8B;AACzE,EAAA,MAAMC,MAAM,GAAGC,IAAI,CAACF,QAAQ,CAAC;AAE7B,EAAA,IAAIC,MAAM,EAAE;IACV,IAAIA,MAAM,CAACE,SAAS,CAACC,QAAQ,CAAC,sBAAsB,CAAC,EAAE;AACrD,MAAA,OAAOH,MAAM;AACf,KAAC,MAAM;AACL,MAAA,OACEA,MAAM,CAACI,aAAa,CAAC,uBAAuB,CAAC,IAC7CJ,MAAM,CAACI,aAAa,CAAC,0BAA0B,CAAC;AAEpD;AACF;AACF;AAEA,SAASC,gBAAgBA,CAACN,QAAgB,EAAsB;AAC9D,EAAA,MAAMO,aAAa,GAAGR,mBAAmB,CAACC,QAAQ,CAAC;EACnD,IAAI,CAACO,aAAa,EAAE;AAClB,IAAA;AACF;EACA,IAAIA,aAAa,CAACJ,SAAS,CAACC,QAAQ,CAAC,sBAAsB,CAAC,EAAE;IAC5D,OAAOG,aAAa,CAACC,EAAE;AACzB,GAAC,MAAM;AACL,IAAA,OAAQD,aAAa,CAAiBE,OAAO,CAAC,iBAAiB,CAAC;AAClE;AACF;AAEA,SAASC,qBAAqBA,CAC5BV,QAAgB,EAIc;AAC9B,EAAA,MAAMW,YAAY,GAAGL,gBAAgB,CAACN,QAAQ,CAAC;AAC/CY,EAAAA,MAAM,CACJ,CAA8CZ,2CAAAA,EAAAA,QAAQ,CAAG,CAAA,CAAA,EACzDW,YACF,CAAC;AACD;AACA,EAAA,OAAOE,MAAM,CAACC,gBAAgB,CAACH,YAAY,CAAC;AAC9C;AAEO,eAAeI,cAAcA,CAClCf,QAAgB,EAChBgB,SAAe,EACA;AACfJ,EAAAA,MAAM,CACJ,0DAA0D,EAC1DI,SAAS,YAAYC,IACvB,CAAC;AACD,EAAA,MAAMC,iBAAiB,GAAGR,qBAAqB,CAACV,QAAQ,CAAC;AACzD,EAAA,MAAMmB,cAAc,GAAGD,iBAAiB,CAACE,IAAI,CAACD,cAAc;AAC5DP,EAAAA,MAAM,CACJ,8FAA8F,EAC9F,CAAC,CAACO,cACJ,CAAC;AACD,EAAA,MAAME,SAAS,GAAGH,iBAAiB,CAACG,SAAS;AAC7CC,EAAAA,GAAG,CAAC,MACFD,SAAS,CAACE,OAAO,CAACC,YAAY,CAAER,SAAS,EAAEK,SAAS,EAAE,EAAgB,CACxE,CAAC;EACD,OAAOI,OAAO,EAAE;AAClB;AAEO,eAAeC,cAAcA,CAClC1B,QAAgB,EAChB2B,QAAc,EACC;AACff,EAAAA,MAAM,CAAC,0DAA0D,EAAEe,QAAQ,CAAC;AAC5E,EAAA,MAAMC,eAAe,GAAG7B,mBAAmB,CAACC,QAAQ,CAAC;EACrD,MAAM6B,WAAW,GAAG,CAAA,EAAG7B,QAAQ,CAAA,aAAA,EAAgB8B,UAAU,CACvDH,QAAQ,EACR,YACF,CAAC,CAAI,EAAA,CAAA;AACL,EAAA,MAAMI,UAAU,GAAGH,eAAe,EAAEvB,aAAa,CAACwB,WAAW,CAAC;EAC9D,IAAI,CAACE,UAAU,EAAE;AACf,IAAA,MAAMhB,cAAc,CAACf,QAAQ,EAAE2B,QAAQ,CAAC;AAC1C;EACA,OAAOK,KAAK,CAACH,WAAW,CAAC;AAC3B;;;;"}
1
+ {"version":3,"file":"helpers.js","sources":["../../src/test-support/helpers.ts"],"sourcesContent":["import { run } from '@ember/runloop';\nimport { assert } from '@ember/debug';\nimport { click, settled, find } from '@ember/test-helpers';\nimport { formatDate } from '../utils.ts';\nimport type PowerCalendarMultipleComponent from '../components/power-calendar-multiple.ts';\nimport type PowerCalendarComponent from '../components/power-calendar.ts';\nimport type PowerCalendarRangeComponent from '../components/power-calendar-range.ts';\n\nexport default {};\n\nexport * from '../utils.ts';\n\nfunction findCalendarElement(selector: string): Element | null | undefined {\n const target = find(selector);\n\n if (target) {\n if (target.classList.contains('ember-power-calendar')) {\n return target;\n } else {\n return (\n target.querySelector('.ember-power-calendar') ||\n target.querySelector('[data-power-calendar-id]')\n );\n }\n }\n}\n\nfunction findCalendarGuid(selector: string): string | undefined {\n const maybeCalendar = findCalendarElement(selector);\n if (!maybeCalendar) {\n return;\n }\n if (maybeCalendar.classList.contains('ember-power-calendar')) {\n return maybeCalendar.id;\n } else {\n return (maybeCalendar as HTMLElement).dataset['powerCalendarId'];\n }\n}\n\nfunction findComponentInstance(\n selector: string,\n):\n | PowerCalendarComponent\n | PowerCalendarMultipleComponent\n | PowerCalendarRangeComponent {\n const calendarGuid = findCalendarGuid(selector);\n assert(\n `Could not find a calendar using selector: \"${selector}\"`,\n calendarGuid,\n );\n // @ts-expect-error Property '__powerCalendars'\n // eslint-disable-next-line @typescript-eslint/no-unsafe-return\n return window.__powerCalendars[calendarGuid];\n}\n\nexport async function calendarCenter(\n selector: string,\n newCenter: Date,\n): Promise<void> {\n assert(\n '`calendarCenter` expect a Date object as second argument',\n newCenter instanceof Date,\n );\n const calendarComponent = findComponentInstance(selector);\n const onCenterChange = calendarComponent.args.onCenterChange;\n assert(\n \"You cannot call `calendarCenter` on a component that doesn't has an `@onCenterChange` action\",\n !!onCenterChange,\n );\n const publicAPI = calendarComponent.publicAPI;\n run(() =>\n publicAPI.actions.changeCenter!(newCenter, publicAPI, {} as MouseEvent),\n );\n return settled();\n}\n\nexport async function calendarSelect(\n selector: string,\n selected: Date,\n): Promise<void> {\n assert('`calendarSelect` expect a Date object as second argument', selected);\n const calendarElement = findCalendarElement(selector);\n const daySelector = `${selector} [data-date=\"${formatDate(\n selected,\n 'YYYY-MM-DD',\n )}\"]`;\n const dayElement = calendarElement?.querySelector(daySelector);\n if (!dayElement) {\n await calendarCenter(selector, selected);\n }\n return click(daySelector);\n}\n"],"names":["findCalendarElement","selector","target","find","classList","contains","querySelector","findCalendarGuid","maybeCalendar","id","dataset","findComponentInstance","calendarGuid","assert","window","__powerCalendars","calendarCenter","newCenter","Date","calendarComponent","onCenterChange","args","publicAPI","run","actions","changeCenter","settled","calendarSelect","selected","calendarElement","daySelector","formatDate","dayElement","click"],"mappings":";;;;;;AAQA,cAAe,EAAE;AAIjB,SAASA,mBAAmBA,CAACC,QAAgB,EAA8B;AACzE,EAAA,MAAMC,MAAM,GAAGC,IAAI,CAACF,QAAQ,CAAC;AAE7B,EAAA,IAAIC,MAAM,EAAE;IACV,IAAIA,MAAM,CAACE,SAAS,CAACC,QAAQ,CAAC,sBAAsB,CAAC,EAAE;AACrD,MAAA,OAAOH,MAAM;AACf,KAAC,MAAM;AACL,MAAA,OACEA,MAAM,CAACI,aAAa,CAAC,uBAAuB,CAAC,IAC7CJ,MAAM,CAACI,aAAa,CAAC,0BAA0B,CAAC;AAEpD;AACF;AACF;AAEA,SAASC,gBAAgBA,CAACN,QAAgB,EAAsB;AAC9D,EAAA,MAAMO,aAAa,GAAGR,mBAAmB,CAACC,QAAQ,CAAC;EACnD,IAAI,CAACO,aAAa,EAAE;AAClB,IAAA;AACF;EACA,IAAIA,aAAa,CAACJ,SAAS,CAACC,QAAQ,CAAC,sBAAsB,CAAC,EAAE;IAC5D,OAAOG,aAAa,CAACC,EAAE;AACzB,GAAC,MAAM;AACL,IAAA,OAAQD,aAAa,CAAiBE,OAAO,CAAC,iBAAiB,CAAC;AAClE;AACF;AAEA,SAASC,qBAAqBA,CAC5BV,QAAgB,EAIc;AAC9B,EAAA,MAAMW,YAAY,GAAGL,gBAAgB,CAACN,QAAQ,CAAC;AAC/CY,EAAAA,MAAM,CACJ,CAA8CZ,2CAAAA,EAAAA,QAAQ,CAAG,CAAA,CAAA,EACzDW,YACF,CAAC;AACD;AACA;AACA,EAAA,OAAOE,MAAM,CAACC,gBAAgB,CAACH,YAAY,CAAC;AAC9C;AAEO,eAAeI,cAAcA,CAClCf,QAAgB,EAChBgB,SAAe,EACA;AACfJ,EAAAA,MAAM,CACJ,0DAA0D,EAC1DI,SAAS,YAAYC,IACvB,CAAC;AACD,EAAA,MAAMC,iBAAiB,GAAGR,qBAAqB,CAACV,QAAQ,CAAC;AACzD,EAAA,MAAMmB,cAAc,GAAGD,iBAAiB,CAACE,IAAI,CAACD,cAAc;AAC5DP,EAAAA,MAAM,CACJ,8FAA8F,EAC9F,CAAC,CAACO,cACJ,CAAC;AACD,EAAA,MAAME,SAAS,GAAGH,iBAAiB,CAACG,SAAS;AAC7CC,EAAAA,GAAG,CAAC,MACFD,SAAS,CAACE,OAAO,CAACC,YAAY,CAAER,SAAS,EAAEK,SAAS,EAAE,EAAgB,CACxE,CAAC;EACD,OAAOI,OAAO,EAAE;AAClB;AAEO,eAAeC,cAAcA,CAClC1B,QAAgB,EAChB2B,QAAc,EACC;AACff,EAAAA,MAAM,CAAC,0DAA0D,EAAEe,QAAQ,CAAC;AAC5E,EAAA,MAAMC,eAAe,GAAG7B,mBAAmB,CAACC,QAAQ,CAAC;EACrD,MAAM6B,WAAW,GAAG,CAAA,EAAG7B,QAAQ,CAAA,aAAA,EAAgB8B,UAAU,CACvDH,QAAQ,EACR,YACF,CAAC,CAAI,EAAA,CAAA;AACL,EAAA,MAAMI,UAAU,GAAGH,eAAe,EAAEvB,aAAa,CAACwB,WAAW,CAAC;EAC9D,IAAI,CAACE,UAAU,EAAE;AACf,IAAA,MAAMhB,cAAc,CAACf,QAAQ,EAAE2B,QAAQ,CAAC;AAC1C;EACA,OAAOK,KAAK,CAACH,WAAW,CAAC;AAC3B;;;;"}
@@ -1 +1 @@
1
- @import './less/base.less';
1
+ @import "./less/base.less";
@@ -1 +1 @@
1
- @import './scss/base.scss';
1
+ @import "./scss/base.scss";
package/less/base.less CHANGED
@@ -12,7 +12,8 @@
12
12
  box-sizing: border-box;
13
13
  }
14
14
 
15
- .ember-power-calendar-days, .ember-power-calendar-days * {
15
+ .ember-power-calendar-days,
16
+ .ember-power-calendar-days * {
16
17
  box-sizing: border-box;
17
18
  }
18
19
 
@@ -106,7 +107,7 @@
106
107
  @day-default-text-color: #bbb,
107
108
  @day-current-month-color: #F5F7FA,
108
109
  @day-weekday-text-color: #333333,
109
- @day-current-month-text-color: #656D78,
110
+ @day-current-month-text-color: #656d78,
110
111
  @day-other-month-text-color--hover: @day-current-month-text-color,
111
112
  @day-focus-shadow-color: @primary-color,
112
113
  @day-today-color: #eee,
@@ -118,7 +119,7 @@
118
119
  @day-range-end-background-color--hover: @day-range-end-background-color,
119
120
  @day-selected-color: lighten(@primary-color, 50%),
120
121
  @day-selected-color--hover: @day-selected-color,
121
- @day-selected-text-color: #656D78,
122
+ @day-selected-text-color: #656d78,
122
123
  @day-selected-text-color--hover: @day-selected-text-color
123
124
  ) {
124
125
  width: @row-width;
@@ -162,13 +163,15 @@
162
163
  padding-right: calc(~"@{cell-with-spacing-width} * 6");
163
164
  }
164
165
  }
165
- .ember-power-calendar-day, .ember-power-calendar-weekday {
166
+ .ember-power-calendar-day,
167
+ .ember-power-calendar-weekday {
166
168
  max-width: @cell-width;
167
169
  max-height: @cell-height;
168
170
  width: @cell-width;
169
171
  height: @cell-height;
170
172
  }
171
- .ember-power-calendar-weekdays, .ember-power-calendar-week {
173
+ .ember-power-calendar-weekdays,
174
+ .ember-power-calendar-week {
172
175
  height: @row-height;
173
176
  padding-left: @row-padding-left;
174
177
  padding-right: @row-padding-right;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "ember-power-calendar",
3
- "version": "1.3.1",
3
+ "version": "1.4.0",
4
4
  "description": "Powerful and customizable calendar component for Ember",
5
5
  "keywords": [
6
6
  "ember-addon"
@@ -46,92 +46,59 @@
46
46
  "scss",
47
47
  "vendor"
48
48
  ],
49
- "scripts": {
50
- "build": "concurrently 'pnpm:build:*'",
51
- "build:js": "rollup --config",
52
- "build:types": "glint --declaration",
53
- "lint": "concurrently 'pnpm:lint:*(!fix)' --names 'lint:'",
54
- "lint:fix": "concurrently 'pnpm:lint:*:fix' --names 'fix:'",
55
- "lint:hbs": "ember-template-lint . --no-error-on-unmatched-pattern",
56
- "lint:hbs:fix": "ember-template-lint . --fix --no-error-on-unmatched-pattern",
57
- "lint:js": "eslint . --cache",
58
- "lint:js:fix": "eslint . --fix",
59
- "lint:types": "glint",
60
- "prepack": "concurrently 'pnpm:build:*'",
61
- "start": "concurrently 'pnpm:start:*'",
62
- "start:js": "rollup --config --watch --no-watch.clearScreen",
63
- "start:types": "glint --declaration --watch",
64
- "test": "echo 'A v2 addon does not have tests, run tests in test-app'"
65
- },
66
49
  "dependencies": {
67
50
  "@embroider/addon-shim": "^1.9.0",
68
51
  "decorator-transforms": "^2.3.0",
69
52
  "@embroider/util": "^1.13.2",
70
- "@embroider/macros": "^1.16.9",
53
+ "@embroider/macros": "^1.16.10",
71
54
  "ember-assign-helper": "^0.5.0",
72
55
  "ember-element-helper": "^0.8.6",
73
56
  "ember-truth-helpers": "^4.0.3"
74
57
  },
75
58
  "devDependencies": {
76
- "@babel/core": "^7.26.0",
77
- "@babel/runtime": "^7.26.0",
78
- "@babel/plugin-transform-typescript": "^7.25.9",
79
- "@babel/preset-typescript": "^7.26.0",
80
- "@ember/test-helpers": "^4.0.4",
81
- "@embroider/addon-dev": "^7.0.0",
82
- "@glint/core": "^1.5.0",
83
- "@glint/environment-ember-loose": "^1.5.0",
84
- "@glint/environment-ember-template-imports": "^1.5.0",
85
- "@glint/template": "^1.5.0",
59
+ "@babel/core": "^7.26.7",
60
+ "@babel/eslint-parser": "^7.26.5",
61
+ "@babel/plugin-transform-typescript": "^7.26.7",
62
+ "@babel/runtime": "^7.26.7",
63
+ "@embroider/addon-dev": "^7.1.1",
64
+ "@ember/test-helpers": "^5.0.0",
65
+ "@eslint/js": "^9.19.0",
66
+ "@glint/core": "^1.5.2",
67
+ "@glint/environment-ember-loose": "^1.5.2",
68
+ "@glint/environment-ember-template-imports": "^1.5.2",
69
+ "@glint/template": "^1.5.2",
86
70
  "@glimmer/component": "^2.0.0",
87
71
  "@glimmer/tracking": "^1.1.2",
88
72
  "@rollup/plugin-babel": "^6.0.4",
89
- "@tsconfig/ember": "^3.0.8",
90
- "@types/ember": "^4.0.11",
91
- "@types/ember__application": "^4.0.11",
92
- "@types/ember__array": "^4.0.10",
93
- "@types/ember__component": "^4.0.22",
94
- "@types/ember__controller": "^4.0.12",
95
- "@types/ember__debug": "^4.0.8",
96
- "@types/ember__engine": "^4.0.11",
97
- "@types/ember__error": "^4.0.6",
98
- "@types/ember__helper": "^4.0.8",
99
- "@types/ember__modifier": "^4.0.9",
100
- "@types/ember__object": "^4.0.12",
101
- "@types/ember__owner": "^4.0.9",
102
- "@types/ember__polyfills": "^4.0.6",
103
- "@types/ember__routing": "^4.0.22",
104
- "@types/ember__runloop": "^4.0.10",
105
- "@types/ember__service": "^4.0.9",
106
- "@types/ember__string": "^3.16.3",
107
- "@types/ember__template": "^4.0.7",
108
- "@types/ember__test": "^4.0.6",
109
- "@types/ember__utils": "^4.0.7",
110
- "@typescript-eslint/eslint-plugin": "^8.14.0",
111
- "@typescript-eslint/parser": "^8.14.0",
73
+ "@tsconfig/ember": "^3.0.9",
112
74
  "babel-plugin-ember-template-compilation": "^2.3.0",
113
- "concurrently": "^9.1.0",
75
+ "concurrently": "^9.1.2",
114
76
  "ember-concurrency": "^4.0.2",
115
- "ember-source": "~5.12.0",
116
- "ember-template-lint": "^6.0.0",
117
- "eslint": "^8.57.0",
118
- "eslint-config-prettier": "^9.1.0",
119
- "eslint-plugin-ember": "^12.3.1",
77
+ "ember-source": "~6.1.0",
78
+ "ember-template-lint": "^6.1.0",
79
+ "eslint": "^9.19.0",
80
+ "eslint-config-prettier": "^10.0.1",
81
+ "eslint-plugin-ember": "^12.3.3",
120
82
  "eslint-plugin-import": "^2.31.0",
121
- "eslint-plugin-n": "^17.13.1",
122
- "eslint-plugin-prettier": "^5.2.1",
123
- "postcss": "^8.4.49",
124
- "prettier": "^3.3.3",
83
+ "eslint-plugin-n": "^17.15.1",
84
+ "globals": "^15.14.0",
85
+ "postcss": "^8.5.1",
86
+ "prettier": "^3.4.2",
125
87
  "prettier-plugin-ember-template-tag": "^2.0.4",
126
- "rollup": "^4.25.0",
127
- "rollup-plugin-sass": "^1.14.0",
128
- "rsvp": "^4.8.5",
129
- "sass": "^1.80.6",
130
- "typescript": "^5.6.3",
131
- "webpack": "^5.96.1"
88
+ "rollup": "^4.32.0",
89
+ "rollup-plugin-copy": "^3.5.0",
90
+ "rollup-plugin-sass": "^1.15.2",
91
+ "sass": "^1.83.4",
92
+ "typescript": "~5.7.3",
93
+ "typescript-eslint": "^8.21.0",
94
+ "webpack": "^5.97.1"
132
95
  },
133
- "publishConfig": {
134
- "registry": "https://registry.npmjs.org"
96
+ "peerDependencies": {
97
+ "@ember/test-helpers": "^2.9.4 || ^3.2.1 || ^4.0.4 || ^5.0.0",
98
+ "@glimmer/component": "^1.1.2 || ^2.0.0",
99
+ "@glimmer/tracking": "^1.1.2",
100
+ "ember-concurrency": "^4.0.2",
101
+ "ember-source": "^3.28.0 || ^4.0.0 || >=5.0.0"
135
102
  },
136
103
  "ember": {
137
104
  "edition": "octane"
@@ -154,11 +121,18 @@
154
121
  "./test-support/helpers.js": "./dist/_app_/test-support/helpers.js"
155
122
  }
156
123
  },
157
- "peerDependencies": {
158
- "@ember/test-helpers": "^2.9.4 || ^3.2.1 || ^4.0.4",
159
- "@glimmer/component": "^1.1.2 || ^2.0.0",
160
- "@glimmer/tracking": "^1.1.2",
161
- "ember-concurrency": "^4.0.2",
162
- "ember-source": "^3.28.0 || ^4.0.0 || >=5.0.0"
124
+ "scripts": {
125
+ "build": "rollup --config",
126
+ "format": "prettier . --cache --write",
127
+ "lint": "concurrently \"pnpm:lint:*(!fix)\" --names \"lint:\" --prefixColors auto",
128
+ "lint:fix": "concurrently \"pnpm:lint:*:fix\" --names \"fix:\" --prefixColors auto && pnpm run format",
129
+ "lint:format": "prettier . --cache --check",
130
+ "lint:hbs": "ember-template-lint . --no-error-on-unmatched-pattern",
131
+ "lint:hbs:fix": "ember-template-lint . --fix --no-error-on-unmatched-pattern",
132
+ "lint:js": "eslint . --cache",
133
+ "lint:js:fix": "eslint . --fix",
134
+ "lint:types": "glint",
135
+ "start": "rollup --config --watch",
136
+ "test": "echo 'A v2 addon does not have tests, run tests in test-app'"
163
137
  }
164
- }
138
+ }
package/scss/base.scss CHANGED
@@ -95,9 +95,9 @@
95
95
  $row-padding-bottom: 0px,
96
96
  $row-padding-left: 0px,
97
97
  $row-padding-right: 0px,
98
- $row-width:
99
- calc(
100
- #{$cell-with-spacing-width} * 7 - 2px + #{$row-padding-left} + #{$row-padding-right}
98
+ $row-width: calc(
99
+ #{$cell-with-spacing-width} * 7 - 2px + #{$row-padding-left} +
100
+ #{$row-padding-right}
101
101
  ),
102
102
  $row-height: calc(#{$cell-height} + 2px),
103
103
  $primary-color: #0078c9,
@@ -130,10 +130,10 @@
130
130
  }
131
131
  .ember-power-calendar .ember-power-calendar-day,
132
132
  .ember-power-calendar .ember-power-calendar-weekday {
133
- max-width: "var(--ember-power-calendar-cell-size)";
134
- max-height: "var(--ember-power-calendar-cell-size)";
135
- width: "var(--ember-power-calendar-cell-size)";
136
- height: "var(--ember-power-calendar-cell-size)";
133
+ max-width: var(--ember-power-calendar-cell-size);
134
+ max-height: var(--ember-power-calendar-cell-size);
135
+ width: var(--ember-power-calendar-cell-size);
136
+ height: var(--ember-power-calendar-cell-size);
137
137
  }
138
138
  .ember-power-calendar .ember-power-calendar-weekdays,
139
139
  .ember-power-calendar .ember-power-calendar-week {
@@ -1,3 +1,3 @@
1
- var emberPowerCalendarForCssGenerate = ":root {\n --ember-power-calendar-cell-size: 35px;\n}\n\n.ember-power-calendar {\n box-sizing: border-box;\n position: relative;\n font-size: 14px;\n line-height: 1.4286;\n}\n\n.ember-power-calendar-nav {\n box-sizing: border-box;\n display: flex;\n justify-content: space-between;\n line-height: 2;\n}\n\n.ember-power-calendar-nav * {\n box-sizing: border-box;\n}\n\n.ember-power-calendar-days,\n.ember-power-calendar-days * {\n box-sizing: border-box;\n}\n\n.ember-power-calendar-nav-title {\n flex: 1;\n text-align: center;\n}\n\n.ember-power-calendar-row {\n display: flex;\n justify-content: space-between;\n}\n\n.ember-power-calendar-weekday {\n appearance: none;\n flex: 1 1 100%;\n background-color: transparent;\n background-color: initial;\n border: none;\n border: initial;\n outline: none;\n outline: initial;\n justify-content: center;\n display: flex;\n align-items: center;\n padding: 0;\n}\n\n.ember-power-calendar-day {\n appearance: none;\n background-color: transparent;\n background-color: initial;\n border: none;\n border: initial;\n outline: none;\n outline: initial;\n flex: 1 1 100%;\n font-size: inherit;\n align-items: center;\n justify-content: center;\n padding: 0;\n}\n\n.ember-power-calendar-nav-control {\n appearance: none;\n background-color: transparent;\n background-color: initial;\n border: none;\n border: initial;\n outline: none;\n outline: initial;\n line-height: 1;\n font-size: 150%;\n}\n.ember-power-calendar-nav-control:focus {\n transform: scale(1.2);\n}\n\n.ember-power-calendar-day--selected,\n.ember-power-calendar-day--selected:not([disabled]):hover {\n font-weight: bold;\n}\n\n.ember-power-calendar-day--interactive[disabled] {\n opacity: 0.4;\n}\n\n.ember-power-calendar {\n width: calc(calc(var(--ember-power-calendar-cell-size) + 2px) * 7 - 2px + 0px + 0px);\n}\n.ember-power-calendar .ember-power-calendar-week:first-child[data-missing-days=\"1\"] {\n padding-left: calc(calc(var(--ember-power-calendar-cell-size) + 2px) * 1);\n}\n.ember-power-calendar .ember-power-calendar-week:first-child[data-missing-days=\"2\"] {\n padding-left: calc(calc(var(--ember-power-calendar-cell-size) + 2px) * 2);\n}\n.ember-power-calendar .ember-power-calendar-week:first-child[data-missing-days=\"3\"] {\n padding-left: calc(calc(var(--ember-power-calendar-cell-size) + 2px) * 3);\n}\n.ember-power-calendar .ember-power-calendar-week:first-child[data-missing-days=\"4\"] {\n padding-left: calc(calc(var(--ember-power-calendar-cell-size) + 2px) * 4);\n}\n.ember-power-calendar .ember-power-calendar-week:first-child[data-missing-days=\"5\"] {\n padding-left: calc(calc(var(--ember-power-calendar-cell-size) + 2px) * 5);\n}\n.ember-power-calendar .ember-power-calendar-week:first-child[data-missing-days=\"6\"] {\n padding-left: calc(calc(var(--ember-power-calendar-cell-size) + 2px) * 6);\n}\n.ember-power-calendar .ember-power-calendar-week:last-child[data-missing-days=\"1\"] {\n padding-right: calc(calc(var(--ember-power-calendar-cell-size) + 2px) * 1);\n}\n.ember-power-calendar .ember-power-calendar-week:last-child[data-missing-days=\"2\"] {\n padding-right: calc(calc(var(--ember-power-calendar-cell-size) + 2px) * 2);\n}\n.ember-power-calendar .ember-power-calendar-week:last-child[data-missing-days=\"3\"] {\n padding-right: calc(calc(var(--ember-power-calendar-cell-size) + 2px) * 3);\n}\n.ember-power-calendar .ember-power-calendar-week:last-child[data-missing-days=\"4\"] {\n padding-right: calc(calc(var(--ember-power-calendar-cell-size) + 2px) * 4);\n}\n.ember-power-calendar .ember-power-calendar-week:last-child[data-missing-days=\"5\"] {\n padding-right: calc(calc(var(--ember-power-calendar-cell-size) + 2px) * 5);\n}\n.ember-power-calendar .ember-power-calendar-week:last-child[data-missing-days=\"6\"] {\n padding-right: calc(calc(var(--ember-power-calendar-cell-size) + 2px) * 6);\n}\n.ember-power-calendar .ember-power-calendar-day,\n.ember-power-calendar .ember-power-calendar-weekday {\n max-width: \"var(--ember-power-calendar-cell-size)\";\n max-height: \"var(--ember-power-calendar-cell-size)\";\n width: \"var(--ember-power-calendar-cell-size)\";\n height: \"var(--ember-power-calendar-cell-size)\";\n}\n.ember-power-calendar .ember-power-calendar-weekdays,\n.ember-power-calendar .ember-power-calendar-week {\n height: calc(var(--ember-power-calendar-cell-size) + 2px);\n padding-left: 0px;\n padding-right: 0px;\n}\n.ember-power-calendar .ember-power-calendar-day {\n color: #bbb;\n}\n.ember-power-calendar .ember-power-calendar-weekdays {\n color: #333333;\n}\n.ember-power-calendar .ember-power-calendar-nav-control {\n color: #0078c9;\n}\n.ember-power-calendar .ember-power-calendar-nav-control:focus {\n color: rgb(48, 171.5820895522, 255);\n}\n.ember-power-calendar .ember-power-calendar-day--current-month {\n color: #656d78;\n background-color: #f5f7fa;\n}\n.ember-power-calendar .ember-power-calendar-day--today {\n background-color: #eee;\n}\n.ember-power-calendar .ember-power-calendar-day:not([disabled]):hover {\n background-color: #eee;\n}\n.ember-power-calendar .ember-power-calendar-day--focused {\n box-shadow: inset 0 -2px 0 0 #0078c9;\n}\n.ember-power-calendar .ember-power-calendar-day--selected.ember-power-calendar-day--range-start {\n background-color: rgb(150, 212.6865671642, 255);\n}\n.ember-power-calendar .ember-power-calendar-day--selected.ember-power-calendar-day--range-start:hover {\n background-color: rgb(150, 212.6865671642, 255);\n}\n.ember-power-calendar .ember-power-calendar-day--selected.ember-power-calendar-day--range-end {\n background-color: rgb(150, 212.6865671642, 255);\n}\n.ember-power-calendar .ember-power-calendar-day--selected.ember-power-calendar-day--range-end:hover {\n background-color: rgb(150, 212.6865671642, 255);\n}\n.ember-power-calendar .ember-power-calendar-day--selected {\n background-color: rgb(201, 233.2388059701, 255);\n color: #656d78;\n}\n.ember-power-calendar .ember-power-calendar-day--selected:not([disabled]):hover {\n background-color: rgb(201, 233.2388059701, 255);\n color: #656d78;\n}\n.ember-power-calendar .ember-power-calendar-day--other-month:not([disabled]):hover {\n color: #656d78;\n}";
1
+ const emberPowerCalendarForCssGenerate = ":root {\n --ember-power-calendar-cell-size: 35px;\n}\n\n.ember-power-calendar {\n box-sizing: border-box;\n position: relative;\n font-size: 14px;\n line-height: 1.4286;\n}\n\n.ember-power-calendar-nav {\n box-sizing: border-box;\n display: flex;\n justify-content: space-between;\n line-height: 2;\n}\n\n.ember-power-calendar-nav * {\n box-sizing: border-box;\n}\n\n.ember-power-calendar-days,\n.ember-power-calendar-days * {\n box-sizing: border-box;\n}\n\n.ember-power-calendar-nav-title {\n flex: 1;\n text-align: center;\n}\n\n.ember-power-calendar-row {\n display: flex;\n justify-content: space-between;\n}\n\n.ember-power-calendar-weekday {\n appearance: none;\n flex: 1 1 100%;\n background-color: transparent;\n background-color: initial;\n border: none;\n border: initial;\n outline: none;\n outline: initial;\n justify-content: center;\n display: flex;\n align-items: center;\n padding: 0;\n}\n\n.ember-power-calendar-day {\n appearance: none;\n background-color: transparent;\n background-color: initial;\n border: none;\n border: initial;\n outline: none;\n outline: initial;\n flex: 1 1 100%;\n font-size: inherit;\n align-items: center;\n justify-content: center;\n padding: 0;\n}\n\n.ember-power-calendar-nav-control {\n appearance: none;\n background-color: transparent;\n background-color: initial;\n border: none;\n border: initial;\n outline: none;\n outline: initial;\n line-height: 1;\n font-size: 150%;\n}\n.ember-power-calendar-nav-control:focus {\n transform: scale(1.2);\n}\n\n.ember-power-calendar-day--selected,\n.ember-power-calendar-day--selected:not([disabled]):hover {\n font-weight: bold;\n}\n\n.ember-power-calendar-day--interactive[disabled] {\n opacity: 0.4;\n}\n\n.ember-power-calendar {\n width: calc(calc(var(--ember-power-calendar-cell-size) + 2px) * 7 - 2px + 0px + 0px);\n}\n.ember-power-calendar .ember-power-calendar-week:first-child[data-missing-days=\"1\"] {\n padding-left: calc(calc(var(--ember-power-calendar-cell-size) + 2px) * 1);\n}\n.ember-power-calendar .ember-power-calendar-week:first-child[data-missing-days=\"2\"] {\n padding-left: calc(calc(var(--ember-power-calendar-cell-size) + 2px) * 2);\n}\n.ember-power-calendar .ember-power-calendar-week:first-child[data-missing-days=\"3\"] {\n padding-left: calc(calc(var(--ember-power-calendar-cell-size) + 2px) * 3);\n}\n.ember-power-calendar .ember-power-calendar-week:first-child[data-missing-days=\"4\"] {\n padding-left: calc(calc(var(--ember-power-calendar-cell-size) + 2px) * 4);\n}\n.ember-power-calendar .ember-power-calendar-week:first-child[data-missing-days=\"5\"] {\n padding-left: calc(calc(var(--ember-power-calendar-cell-size) + 2px) * 5);\n}\n.ember-power-calendar .ember-power-calendar-week:first-child[data-missing-days=\"6\"] {\n padding-left: calc(calc(var(--ember-power-calendar-cell-size) + 2px) * 6);\n}\n.ember-power-calendar .ember-power-calendar-week:last-child[data-missing-days=\"1\"] {\n padding-right: calc(calc(var(--ember-power-calendar-cell-size) + 2px) * 1);\n}\n.ember-power-calendar .ember-power-calendar-week:last-child[data-missing-days=\"2\"] {\n padding-right: calc(calc(var(--ember-power-calendar-cell-size) + 2px) * 2);\n}\n.ember-power-calendar .ember-power-calendar-week:last-child[data-missing-days=\"3\"] {\n padding-right: calc(calc(var(--ember-power-calendar-cell-size) + 2px) * 3);\n}\n.ember-power-calendar .ember-power-calendar-week:last-child[data-missing-days=\"4\"] {\n padding-right: calc(calc(var(--ember-power-calendar-cell-size) + 2px) * 4);\n}\n.ember-power-calendar .ember-power-calendar-week:last-child[data-missing-days=\"5\"] {\n padding-right: calc(calc(var(--ember-power-calendar-cell-size) + 2px) * 5);\n}\n.ember-power-calendar .ember-power-calendar-week:last-child[data-missing-days=\"6\"] {\n padding-right: calc(calc(var(--ember-power-calendar-cell-size) + 2px) * 6);\n}\n.ember-power-calendar .ember-power-calendar-day,\n.ember-power-calendar .ember-power-calendar-weekday {\n max-width: var(--ember-power-calendar-cell-size);\n max-height: var(--ember-power-calendar-cell-size);\n width: var(--ember-power-calendar-cell-size);\n height: var(--ember-power-calendar-cell-size);\n}\n.ember-power-calendar .ember-power-calendar-weekdays,\n.ember-power-calendar .ember-power-calendar-week {\n height: calc(var(--ember-power-calendar-cell-size) + 2px);\n padding-left: 0px;\n padding-right: 0px;\n}\n.ember-power-calendar .ember-power-calendar-day {\n color: #bbb;\n}\n.ember-power-calendar .ember-power-calendar-weekdays {\n color: #333333;\n}\n.ember-power-calendar .ember-power-calendar-nav-control {\n color: #0078c9;\n}\n.ember-power-calendar .ember-power-calendar-nav-control:focus {\n color: rgb(48, 171.5820895522, 255);\n}\n.ember-power-calendar .ember-power-calendar-day--current-month {\n color: #656d78;\n background-color: #f5f7fa;\n}\n.ember-power-calendar .ember-power-calendar-day--today {\n background-color: #eee;\n}\n.ember-power-calendar .ember-power-calendar-day:not([disabled]):hover {\n background-color: #eee;\n}\n.ember-power-calendar .ember-power-calendar-day--focused {\n box-shadow: inset 0 -2px 0 0 #0078c9;\n}\n.ember-power-calendar .ember-power-calendar-day--selected.ember-power-calendar-day--range-start {\n background-color: rgb(150, 212.6865671642, 255);\n}\n.ember-power-calendar .ember-power-calendar-day--selected.ember-power-calendar-day--range-start:hover {\n background-color: rgb(150, 212.6865671642, 255);\n}\n.ember-power-calendar .ember-power-calendar-day--selected.ember-power-calendar-day--range-end {\n background-color: rgb(150, 212.6865671642, 255);\n}\n.ember-power-calendar .ember-power-calendar-day--selected.ember-power-calendar-day--range-end:hover {\n background-color: rgb(150, 212.6865671642, 255);\n}\n.ember-power-calendar .ember-power-calendar-day--selected {\n background-color: rgb(201, 233.2388059701, 255);\n color: #656d78;\n}\n.ember-power-calendar .ember-power-calendar-day--selected:not([disabled]):hover {\n background-color: rgb(201, 233.2388059701, 255);\n color: #656d78;\n}\n.ember-power-calendar .ember-power-calendar-day--other-month:not([disabled]):hover {\n color: #656d78;\n}";
2
2
 
3
3
  export { emberPowerCalendarForCssGenerate as default };