@3mo/date-time-fields 0.10.2 → 0.11.0-preview.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 (39) hide show
  1. package/dist/FieldDateTime.d.ts +1 -1
  2. package/dist/FieldDateTime.d.ts.map +1 -1
  3. package/dist/FieldDateTime.js +6 -5
  4. package/dist/FieldDateTimeBase.d.ts +5 -3
  5. package/dist/FieldDateTimeBase.d.ts.map +1 -1
  6. package/dist/FieldDateTimeBase.js +24 -35
  7. package/dist/FieldDateTimeRange.d.ts +1 -1
  8. package/dist/FieldDateTimeRange.d.ts.map +1 -1
  9. package/dist/FieldDateTimeRange.js +6 -6
  10. package/dist/custom-elements.json +49 -256
  11. package/dist/selection/Calendar.d.ts +40 -0
  12. package/dist/selection/Calendar.d.ts.map +1 -0
  13. package/dist/selection/Calendar.js +344 -0
  14. package/dist/selection/CalendarDatesController.d.ts +20 -0
  15. package/dist/selection/CalendarDatesController.d.ts.map +1 -0
  16. package/dist/selection/CalendarDatesController.js +74 -0
  17. package/dist/selection/DateList.d.ts +1 -1
  18. package/dist/selection/DateList.d.ts.map +1 -1
  19. package/dist/selection/DateList.js +8 -4
  20. package/dist/selection/index.d.ts +1 -3
  21. package/dist/selection/index.d.ts.map +1 -1
  22. package/dist/selection/index.js +1 -3
  23. package/dist/tsconfig.tsbuildinfo +1 -1
  24. package/package.json +2 -2
  25. package/dist/selection/MonthList.d.ts +0 -12
  26. package/dist/selection/MonthList.d.ts.map +0 -1
  27. package/dist/selection/MonthList.js +0 -36
  28. package/dist/selection/YearList.d.ts +0 -12
  29. package/dist/selection/YearList.d.ts.map +0 -1
  30. package/dist/selection/YearList.js +0 -28
  31. package/dist/selection/calendar/Calendar.d.ts +0 -24
  32. package/dist/selection/calendar/Calendar.d.ts.map +0 -1
  33. package/dist/selection/calendar/Calendar.js +0 -160
  34. package/dist/selection/calendar/SelectableCalendar.d.ts +0 -20
  35. package/dist/selection/calendar/SelectableCalendar.d.ts.map +0 -1
  36. package/dist/selection/calendar/SelectableCalendar.js +0 -76
  37. package/dist/selection/calendar/index.d.ts +0 -3
  38. package/dist/selection/calendar/index.d.ts.map +0 -1
  39. package/dist/selection/calendar/index.js +0 -2
@@ -1,5 +1,5 @@
1
1
  import { FieldDateTimeBase } from './FieldDateTimeBase.js';
2
- import { FieldDateTimePrecision } from './FieldDateTimePrecision.js';
2
+ import { type FieldDateTimePrecision } from './FieldDateTimePrecision.js';
3
3
  /**
4
4
  * @element mo-field-date-time
5
5
  *
@@ -1 +1 @@
1
- {"version":3,"file":"FieldDateTime.d.ts","sourceRoot":"","sources":["../FieldDateTime.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAA;AAC1D,OAAO,EAAE,sBAAsB,EAAE,MAAM,6BAA6B,CAAA;AAOpE;;;;GAIG;AACH,qBACa,aAAc,SAAQ,iBAAiB,CAAC,IAAI,GAAG,SAAS,CAAC;IACrE,SAAS,KAAK,YAAY,8DAQzB;IAEoB,KAAK,SAAmB;IACjB,KAAK,CAAC,EAAE,IAAI,CAAA;IAExC,cACuB,WAAW,WAEjC;IAED,SAAS,CAAC,mBAAmB;IAI7B,SAAS,KAAK,gBAAgB,0CAQ7B;cAEkB,wBAAwB,CAAC,IAAI,EAAE,QAAQ,EAAE,SAAS,EAAE,sBAAsB;IAK7F,SAAS,CAAC,iBAAiB,CAAC,KAAK,EAAE,IAAI,GAAG,SAAS;IAInD,SAAS,CAAC,iBAAiB,CAAC,KAAK,EAAE,MAAM;CAGzC;AAED,OAAO,CAAC,MAAM,CAAC;IACd,UAAU,qBAAqB;QAC9B,oBAAoB,EAAE,aAAa,CAAA;KACnC;CACD"}
1
+ {"version":3,"file":"FieldDateTime.d.ts","sourceRoot":"","sources":["../FieldDateTime.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAA;AAC1D,OAAO,EAAE,KAAK,sBAAsB,EAAE,MAAM,6BAA6B,CAAA;AAOzE;;;;GAIG;AACH,qBACa,aAAc,SAAQ,iBAAiB,CAAC,IAAI,GAAG,SAAS,CAAC;IACrE,SAAS,KAAK,YAAY,8DAQzB;IAEoB,KAAK,SAAmB;IACjB,KAAK,CAAC,EAAE,IAAI,CAAA;IAExC,cACuB,WAAW,WAEjC;IAED,SAAS,CAAC,mBAAmB;IAI7B,SAAS,KAAK,gBAAgB,0CAQ7B;cAEkB,wBAAwB,CAAC,IAAI,EAAE,QAAQ,EAAE,SAAS,EAAE,sBAAsB;IAO7F,SAAS,CAAC,iBAAiB,CAAC,KAAK,EAAE,IAAI,GAAG,SAAS;IAInD,SAAS,CAAC,iBAAiB,CAAC,KAAK,EAAE,MAAM;CAGzC;AAED,OAAO,CAAC,MAAM,CAAC;IACd,UAAU,qBAAqB;QAC9B,oBAAoB,EAAE,aAAa,CAAA;KACnC;CACD"}
@@ -2,7 +2,6 @@ import { __decorate } from "tslib";
2
2
  import { component, html, property } from '@a11d/lit';
3
3
  import { Localizer } from '@3mo/localization';
4
4
  import { FieldDateTimeBase } from './FieldDateTimeBase.js';
5
- import { FieldDateTimePrecision } from './FieldDateTimePrecision.js';
6
5
  import { Memoize as memoize } from 'typescript-memoize';
7
6
  Localizer.dictionaries.add('de', {
8
7
  'Date & Time': 'Datum & Uhrzeit',
@@ -34,14 +33,16 @@ let FieldDateTime = class FieldDateTime extends FieldDateTimeBase {
34
33
  }
35
34
  get calendarTemplate() {
36
35
  return html `
37
- <mo-selectable-calendar
38
- .navigatingValue=${this.navigatingDate}
36
+ <mo-calendar
37
+ precision=${this.precision.key}
39
38
  .value=${new DateTimeRange(this.selectedDate, this.selectedDate)}
40
- @dayClick=${(e) => this.handleSelectedDateChange(e.detail, FieldDateTimePrecision.Day)}
41
- ></mo-selectable-calendar>
39
+ @dateClick=${(e) => this.handleSelectedDateChange(e.detail, this.precision)}
40
+ ></mo-calendar>
42
41
  `;
43
42
  }
44
43
  handleSelectedDateChange(date, precision) {
44
+ const { hour, minute, second } = this.navigatingDate;
45
+ date = date.with({ hour, minute, second });
45
46
  this.value = !date ? undefined : this.precision.getRange(date).start;
46
47
  super.handleSelectedDateChange(date, precision);
47
48
  }
@@ -2,6 +2,7 @@ import { type HTMLTemplateResult } from '@a11d/lit';
2
2
  import { InputFieldComponent } from '@3mo/field';
3
3
  import { type MaterialIcon } from '@3mo/icon';
4
4
  import { FieldDateTimePrecision } from './FieldDateTimePrecision.js';
5
+ import type { Calendar } from './selection/index.js';
5
6
  /**
6
7
  * @attr open - Whether the date picker is open
7
8
  * @attr pickerHidden - Hide the date picker
@@ -14,6 +15,10 @@ export declare abstract class FieldDateTimeBase<T> extends InputFieldComponent<T
14
15
  shortcutReferenceDate: import("@3mo/date-time/DateTime.js").DateTime;
15
16
  precision: FieldDateTimePrecision;
16
17
  navigatingDate: import("@3mo/date-time/DateTime.js").DateTime;
18
+ protected readonly calendar?: Calendar;
19
+ protected connected(): void;
20
+ protected disconnected(): void;
21
+ private handleLanguageChange;
17
22
  protected readonly calendarIconButtonIcon: MaterialIcon;
18
23
  protected abstract get selectedDate(): DateTime | undefined;
19
24
  protected get formatOptions(): Intl.DateTimeFormatOptions;
@@ -33,9 +38,6 @@ export declare abstract class FieldDateTimeBase<T> extends InputFieldComponent<T
33
38
  protected get popoverTemplate(): HTMLTemplateResult;
34
39
  protected get popoverContentTemplate(): HTMLTemplateResult;
35
40
  protected get dateTemplate(): HTMLTemplateResult;
36
- private get yearListTemplate();
37
- private get monthListTemplate();
38
- private get dayTemplate();
39
41
  protected abstract get calendarTemplate(): HTMLTemplateResult;
40
42
  private get timeTemplate();
41
43
  private get hourListTemplate();
@@ -1 +1 @@
1
- {"version":3,"file":"FieldDateTimeBase.d.ts","sourceRoot":"","sources":["../FieldDateTimeBase.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,kBAAkB,EAAwD,MAAM,WAAW,CAAA;AACzG,OAAO,EAAE,mBAAmB,EAAE,MAAM,YAAY,CAAA;AAChD,OAAO,EAAE,KAAK,YAAY,EAAE,MAAM,WAAW,CAAA;AAC7C,OAAO,EAAE,sBAAsB,EAAE,MAAM,6BAA6B,CAAA;AAEpE;;;;;GAKG;AACH,8BAAsB,iBAAiB,CAAC,CAAC,CAAE,SAAQ,mBAAmB,CAAC,CAAC,CAAC;IAC5B,IAAI,UAAQ;IAC3B,YAAY,UAAQ;IACrB,qBAAqB,gDAAe;IACkC,SAAS,yBAAgC;IAElI,cAAc,gDAAiB;IAExC,SAAS,CAAC,QAAQ,CAAC,sBAAsB,EAAE,YAAY,CAAU;IAEjE,SAAS,CAAC,QAAQ,KAAK,YAAY,IAAI,QAAQ,GAAG,SAAS,CAAA;IAE3D,SAAS,KAAK,aAAa,IAAI,IAAI,CAAC,qBAAqB,CAMxD;cAEkB,YAAY;IAK/B,SAAS,CAAC,QAAQ,CAAC,mBAAmB,IAAI,IAAI;cAE3B,YAAY,CAAC,KAAK,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,KAAK;IAKpD,cAAuB,QAAQ,YAE9B;IAED,SAAS,KAAK,WAAW,WAExB;IAED,WAAoB,MAAM,kCA8CzB;IAED,cAAuB,QAAQ,uBAK9B;IAED,cAAuB,eAAe,uBAMrC;IAED,cAAuB,aAAa,uBAanC;IAED,SAAS,CAAC,QAAQ,CAAC,iBAAiB,CAAC,KAAK,EAAE,MAAM,GAAG,CAAC,GAAG,SAAS;uBACtC,iBAAiB,CAAC,KAAK,EAAE,CAAC,GAAG,SAAS,GAAG,MAAM;IAE3E,OAAO,KAAK,uBAAuB,GAYlC;IAED,SAAS,KAAK,0BAA0B,uBAOvC;IAED,SAAS,KAAK,eAAe,uBAM5B;IAED,SAAS,KAAK,sBAAsB,uBAOnC;IAED,SAAS,KAAK,YAAY,uBAMzB;IAED,OAAO,KAAK,gBAAgB,GAQ3B;IAED,OAAO,KAAK,iBAAiB,GAQ5B;IAED,OAAO,KAAK,WAAW,GAEtB;IAED,SAAS,CAAC,QAAQ,KAAK,gBAAgB,IAAI,kBAAkB,CAAA;IAE7D,OAAO,KAAK,YAAY,GAcvB;IAED,OAAO,KAAK,gBAAgB,GAQ3B;IAED,OAAO,KAAK,kBAAkB,GAQ7B;IAED,OAAO,KAAK,kBAAkB,GAQ7B;IAED,SAAS,CAAC,wBAAwB,CAAC,IAAI,EAAE,QAAQ,EAAE,SAAS,EAAE,sBAAsB;CAMpF"}
1
+ {"version":3,"file":"FieldDateTimeBase.d.ts","sourceRoot":"","sources":["../FieldDateTimeBase.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,kBAAkB,EAA0E,MAAM,WAAW,CAAA;AAC3H,OAAO,EAAE,mBAAmB,EAAE,MAAM,YAAY,CAAA;AAChD,OAAO,EAAE,KAAK,YAAY,EAAE,MAAM,WAAW,CAAA;AAC7C,OAAO,EAAE,sBAAsB,EAAE,MAAM,6BAA6B,CAAA;AACpE,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAA;AAEpD;;;;;GAKG;AACH,8BAAsB,iBAAiB,CAAC,CAAC,CAAE,SAAQ,mBAAmB,CAAC,CAAC,CAAC;IAC5B,IAAI,UAAQ;IAC3B,YAAY,UAAQ;IACrB,qBAAqB,gDAAe;IACkC,SAAS,yBAAgC;IAElI,cAAc,gDAAiB;IAElB,SAAS,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,QAAQ,CAAA;cAEzC,SAAS;cAIT,YAAY;IAI/B,OAAO,CAAC,oBAAoB,CAE3B;IAED,SAAS,CAAC,QAAQ,CAAC,sBAAsB,EAAE,YAAY,CAAU;IAEjE,SAAS,CAAC,QAAQ,KAAK,YAAY,IAAI,QAAQ,GAAG,SAAS,CAAA;IAE3D,SAAS,KAAK,aAAa,IAAI,IAAI,CAAC,qBAAqB,CAMxD;cAEkB,YAAY;IAK/B,SAAS,CAAC,QAAQ,CAAC,mBAAmB,IAAI,IAAI;cAE3B,YAAY,CAAC,KAAK,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,KAAK;IAKpD,cAAuB,QAAQ,YAE9B;IAED,SAAS,KAAK,WAAW,WAExB;IAED,WAAoB,MAAM,kCA8CzB;IAED,cAAuB,QAAQ,uBAK9B;IAED,cAAuB,eAAe,uBAMrC;IAED,cAAuB,aAAa,uBAanC;IAED,SAAS,CAAC,QAAQ,CAAC,iBAAiB,CAAC,KAAK,EAAE,MAAM,GAAG,CAAC,GAAG,SAAS;uBACtC,iBAAiB,CAAC,KAAK,EAAE,CAAC,GAAG,SAAS,GAAG,MAAM;IAE3E,OAAO,KAAK,uBAAuB,GAYlC;IAED,SAAS,KAAK,0BAA0B,uBAOvC;IAED,SAAS,KAAK,eAAe,uBAS5B;IAED,SAAS,KAAK,sBAAsB,uBAOnC;IAED,SAAS,KAAK,YAAY,uBAEzB;IAED,SAAS,CAAC,QAAQ,KAAK,gBAAgB,IAAI,kBAAkB,CAAA;IAE7D,OAAO,KAAK,YAAY,GAavB;IAED,OAAO,KAAK,gBAAgB,GAQ3B;IAED,OAAO,KAAK,kBAAkB,GAQ7B;IAED,OAAO,KAAK,kBAAkB,GAQ7B;IAED,SAAS,CAAC,wBAAwB,CAAC,IAAI,EAAE,QAAQ,EAAE,SAAS,EAAE,sBAAsB;CAMpF"}
@@ -1,5 +1,5 @@
1
1
  import { __decorate } from "tslib";
2
- import { cache, css, html, live, property, style, bind, state } from '@a11d/lit';
2
+ import { cache, css, html, live, property, style, bind, state, query, ifDefined } from '@a11d/lit';
3
3
  import { InputFieldComponent } from '@3mo/field';
4
4
  import { FieldDateTimePrecision } from './FieldDateTimePrecision.js';
5
5
  /**
@@ -16,8 +16,17 @@ export class FieldDateTimeBase extends InputFieldComponent {
16
16
  this.shortcutReferenceDate = new DateTime;
17
17
  this.precision = FieldDateTimePrecision.Minute;
18
18
  this.navigatingDate = new DateTime();
19
+ this.handleLanguageChange = () => {
20
+ this.navigatingDate = new DateTime(this.navigatingDate);
21
+ };
19
22
  this.calendarIconButtonIcon = 'today';
20
23
  }
24
+ connected() {
25
+ Localizer.languages.change.subscribe(this.handleLanguageChange);
26
+ }
27
+ disconnected() {
28
+ Localizer.languages.change.unsubscribe(this.handleLanguageChange);
29
+ }
21
30
  get formatOptions() {
22
31
  return {
23
32
  calendar: this.selectedDate?.calendarId,
@@ -70,9 +79,9 @@ export class FieldDateTimeBase extends InputFieldComponent {
70
79
  }
71
80
 
72
81
  .timezone {
73
- padding: 3px;
82
+ padding: 0.4rem;
74
83
  font-size: small;
75
- text-align: end;
84
+ text-align: center;
76
85
  font-weight: 500;
77
86
  color: var(--mo-color-gray);
78
87
  }
@@ -136,7 +145,10 @@ export class FieldDateTimeBase extends InputFieldComponent {
136
145
  }
137
146
  get popoverTemplate() {
138
147
  return this.pickerHidden ? html.nothing : html `
139
- <mo-popover tabindex='-1' .anchor=${this} target='field' ?open=${bind(this, 'open')}>
148
+ <mo-popover tabindex='-1'
149
+ .anchor=${this} target='field'
150
+ ?open=${bind(this, 'open', { sourceUpdated: () => setTimeout(() => this.calendar?.scrollToNavigatingItem()) })}
151
+ >
140
152
  ${cache(!this.open ? html.nothing : this.popoverContentTemplate)}
141
153
  </mo-popover>
142
154
  `;
@@ -150,45 +162,19 @@ export class FieldDateTimeBase extends InputFieldComponent {
150
162
  `;
151
163
  }
152
164
  get dateTemplate() {
153
- return html `
154
- ${this.yearListTemplate}
155
- ${this.monthListTemplate}
156
- ${this.dayTemplate}
157
- `;
158
- }
159
- get yearListTemplate() {
160
- return html `
161
- <mo-year-list
162
- .navigatingValue=${bind(this, 'navigatingDate')}
163
- .value=${this.selectedDate}
164
- @change=${(e) => this.handleSelectedDateChange(e.detail, FieldDateTimePrecision.Year)}
165
- ></mo-year-list>
166
- `;
167
- }
168
- get monthListTemplate() {
169
- return this.precision < FieldDateTimePrecision.Month ? html.nothing : html `
170
- <mo-month-list
171
- .navigatingValue=${bind(this, 'navigatingDate')}
172
- .value=${this.selectedDate}
173
- @change=${(e) => this.handleSelectedDateChange(e.detail, FieldDateTimePrecision.Month)}
174
- ></mo-month-list>
175
- `;
176
- }
177
- get dayTemplate() {
178
- return this.precision < FieldDateTimePrecision.Day ? html.nothing : this.calendarTemplate;
165
+ return this.calendarTemplate;
179
166
  }
180
167
  get timeTemplate() {
181
168
  return this.precision <= FieldDateTimePrecision.Day ? html.nothing : html `
182
- <mo-flex gap='6px'>
183
- <div class='timezone'>
184
- ${this.navigatingDate?.formatToParts({ timeZoneName: 'long' }).find(x => x.type === 'timeZoneName')?.value}
185
- (${this.navigatingDate?.formatToParts({ timeZoneName: 'shortOffset' }).find(x => x.type === 'timeZoneName')?.value})
186
- </div>
169
+ <mo-flex gap='0.5rem'>
187
170
  <mo-flex direction='horizontal' style='flex: 1'>
188
171
  ${this.hourListTemplate}
189
172
  ${this.minuteListTemplate}
190
173
  ${this.secondListTemplate}
191
174
  </mo-flex>
175
+ <div class='timezone' title=${ifDefined(this.navigatingDate?.formatToParts({ timeZoneName: 'long' }).find(x => x.type === 'timeZoneName')?.value)}>
176
+ ${this.navigatingDate?.formatToParts({ timeZoneName: 'shortOffset' }).find(x => x.type === 'timeZoneName')?.value}
177
+ </div>
192
178
  </mo-flex>
193
179
  `;
194
180
  }
@@ -241,3 +227,6 @@ __decorate([
241
227
  __decorate([
242
228
  state()
243
229
  ], FieldDateTimeBase.prototype, "navigatingDate", void 0);
230
+ __decorate([
231
+ query('mo-calendar')
232
+ ], FieldDateTimeBase.prototype, "calendar", void 0);
@@ -1,6 +1,6 @@
1
1
  import { type MaterialIcon } from '@3mo/icon';
2
2
  import { FieldDateTimeBase as FieldDateTimeBase } from './FieldDateTimeBase.js';
3
- import { FieldDateTimePrecision } from './FieldDateTimePrecision.js';
3
+ import { type FieldDateTimePrecision } from './FieldDateTimePrecision.js';
4
4
  declare enum FieldDateRangeSelection {
5
5
  Start = "start",
6
6
  End = "end"
@@ -1 +1 @@
1
- {"version":3,"file":"FieldDateTimeRange.d.ts","sourceRoot":"","sources":["../FieldDateTimeRange.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,YAAY,EAAE,MAAM,WAAW,CAAA;AAG7C,OAAO,EAAE,iBAAiB,IAAI,iBAAiB,EAAE,MAAM,wBAAwB,CAAA;AAC/E,OAAO,EAAE,sBAAsB,EAAE,MAAM,6BAA6B,CAAA;AASpE,aAAK,uBAAuB;IAC3B,KAAK,UAAU;IACf,GAAG,QAAQ;CACX;AAED;;;;;;;;;GASG;AACH,qBACa,kBAAmB,SAAQ,iBAAiB,CAAC,aAAa,GAAG,SAAS,CAAC;IACnF,SAAS,KAAK,YAAY,8DAAoG;IAEzG,KAAK,SAAc;IAC5B,SAAS,0BAAgC;IACzB,KAAK,CAAC,EAAE,aAAa,CAAA;IAEjD,SAAS,CAAC,mBAAmB;IAM7B,WAAoB,MAAM,kCAezB;IAED,UAAmB,sBAAsB,EAAE,YAAY,CAAe;IAEtE,cACuB,WAAW,WAEjC;IAED,SAAS,KAAK,gBAAgB,0CAS7B;IAED,cAAuB,sBAAsB,0CAK5C;IAED,SAAS,KAAK,sBAAsB,0CAInC;IAED,OAAO,KAAK,sBAAsB,GASjC;IAEQ,wBAAwB,CAAC,IAAI,EAAE,QAAQ,EAAE,SAAS,EAAE,sBAAsB;IAenF,SAAS,CAAC,iBAAiB,CAAC,KAAK,EAAE,aAAa,GAAG,SAAS;cAIzC,iBAAiB,CAAC,KAAK,EAAE,MAAM;CAGlD;AAED,OAAO,CAAC,MAAM,CAAC;IACd,UAAU,qBAAqB;QAC9B,0BAA0B,EAAE,kBAAkB,CAAA;KAC9C;CACD"}
1
+ {"version":3,"file":"FieldDateTimeRange.d.ts","sourceRoot":"","sources":["../FieldDateTimeRange.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,YAAY,EAAE,MAAM,WAAW,CAAA;AAG7C,OAAO,EAAE,iBAAiB,IAAI,iBAAiB,EAAE,MAAM,wBAAwB,CAAA;AAC/E,OAAO,EAAE,KAAK,sBAAsB,EAAE,MAAM,6BAA6B,CAAA;AASzE,aAAK,uBAAuB;IAC3B,KAAK,UAAU;IACf,GAAG,QAAQ;CACX;AAED;;;;;;;;;GASG;AACH,qBACa,kBAAmB,SAAQ,iBAAiB,CAAC,aAAa,GAAG,SAAS,CAAC;IACnF,SAAS,KAAK,YAAY,8DAAoG;IAEzG,KAAK,SAAc;IAC5B,SAAS,0BAAgC;IACzB,KAAK,CAAC,EAAE,aAAa,CAAA;IAEjD,SAAS,CAAC,mBAAmB;IAM7B,WAAoB,MAAM,kCAezB;IAED,UAAmB,sBAAsB,EAAE,YAAY,CAAe;IAEtE,cACuB,WAAW,WAEjC;IAED,SAAS,KAAK,gBAAgB,0CAQ7B;IAED,cAAuB,sBAAsB,0CAK5C;IAED,SAAS,KAAK,sBAAsB,0CAInC;IAED,OAAO,KAAK,sBAAsB,GASjC;IAEQ,wBAAwB,CAAC,IAAI,EAAE,QAAQ,EAAE,SAAS,EAAE,sBAAsB;IAiBnF,SAAS,CAAC,iBAAiB,CAAC,KAAK,EAAE,aAAa,GAAG,SAAS;cAIzC,iBAAiB,CAAC,KAAK,EAAE,MAAM;CAGlD;AAED,OAAO,CAAC,MAAM,CAAC;IACd,UAAU,qBAAqB;QAC9B,0BAA0B,EAAE,kBAAkB,CAAA;KAC9C;CACD"}
@@ -3,7 +3,6 @@ import { bind, component, css, html, property } from '@a11d/lit';
3
3
  import { Localizer } from '@3mo/localization';
4
4
  import { Memoize as memoize } from 'typescript-memoize';
5
5
  import { FieldDateTimeBase as FieldDateTimeBase } from './FieldDateTimeBase.js';
6
- import { FieldDateTimePrecision } from './FieldDateTimePrecision.js';
7
6
  import { DateRangeParser } from './DateRangeParser.js';
8
7
  Localizer.dictionaries.add('de', {
9
8
  'Period': 'Zeitraum',
@@ -59,12 +58,11 @@ let FieldDateTimeRange = class FieldDateTimeRange extends FieldDateTimeBase {
59
58
  }
60
59
  get calendarTemplate() {
61
60
  return html `
62
- <mo-selectable-calendar
63
- data-selection=${this.selection}
64
- .navigatingValue=${this.navigatingDate}
61
+ <mo-calendar
62
+ precision=${this.precision.key}
65
63
  .value=${this.value}
66
- @dayClick=${(e) => this.handleSelectedDateChange(e.detail, FieldDateTimePrecision.Day)}
67
- ></mo-selectable-calendar>
64
+ @dateClick=${(e) => this.handleSelectedDateChange(e.detail, this.precision)}
65
+ ></mo-calendar>
68
66
  `;
69
67
  }
70
68
  get popoverContentTemplate() {
@@ -89,6 +87,8 @@ let FieldDateTimeRange = class FieldDateTimeRange extends FieldDateTimeBase {
89
87
  `;
90
88
  }
91
89
  handleSelectedDateChange(date, precision) {
90
+ const { hour, minute, second } = this.navigatingDate;
91
+ date = date.with({ hour, minute, second });
92
92
  const { start, end } = this.precision.getRange(date);
93
93
  this.value = this.selection === FieldDateRangeSelection.Start
94
94
  ? new DateTimeRange(start, this.value?.end)
@@ -3425,68 +3425,45 @@
3425
3425
  ]
3426
3426
  },
3427
3427
  {
3428
- "name": "mo-hour-list",
3429
- "path": ".\\packages\\DateTimeFields\\dist\\selection\\HourList.d.ts",
3428
+ "name": "mo-calendar",
3429
+ "path": ".\\packages\\DateTimeFields\\dist\\selection\\Calendar.d.ts",
3430
3430
  "properties": [
3431
3431
  {
3432
- "name": "change",
3432
+ "name": "dateClick",
3433
3433
  "type": "EventDispatcher<DateTime>"
3434
3434
  },
3435
- {
3436
- "name": "navigate",
3437
- "type": "EventDispatcher<DateTime>"
3438
- },
3439
- {
3440
- "name": "navigatingValue",
3441
- "type": "DateTime"
3442
- },
3443
3435
  {
3444
3436
  "name": "value",
3445
- "type": "DateTime | undefined"
3437
+ "type": "DateTimeRange | undefined"
3446
3438
  },
3447
3439
  {
3448
- "name": "zero",
3449
- "type": "number"
3440
+ "name": "precision",
3441
+ "type": "DatePrecision"
3450
3442
  },
3451
3443
  {
3452
- "name": "navigateOnScroll",
3444
+ "name": "includeWeek",
3453
3445
  "type": "boolean"
3454
- }
3455
- ]
3456
- },
3457
- {
3458
- "name": "mo-minute-list",
3459
- "path": ".\\packages\\DateTimeFields\\dist\\selection\\MinuteList.d.ts",
3460
- "properties": [
3461
- {
3462
- "name": "change",
3463
- "type": "EventDispatcher<DateTime>"
3464
3446
  },
3465
3447
  {
3466
- "name": "navigate",
3467
- "type": "EventDispatcher<DateTime>"
3448
+ "name": "view",
3449
+ "type": "DatePrecision"
3468
3450
  },
3469
3451
  {
3470
- "name": "navigatingValue",
3452
+ "name": "navigationDate",
3471
3453
  "type": "DateTime"
3472
- },
3473
- {
3474
- "name": "value",
3475
- "type": "DateTime | undefined"
3476
- },
3477
- {
3478
- "name": "zero",
3479
- "type": "number"
3480
- },
3454
+ }
3455
+ ],
3456
+ "events": [
3481
3457
  {
3482
- "name": "navigateOnScroll",
3483
- "type": "boolean"
3458
+ "name": "dateClick",
3459
+ "description": "Dispatched when a date is clicked, with the clicked date as detail.",
3460
+ "type": "CustomEvent<DateTime>"
3484
3461
  }
3485
3462
  ]
3486
3463
  },
3487
3464
  {
3488
- "name": "mo-month-list",
3489
- "path": ".\\packages\\DateTimeFields\\dist\\selection\\MonthList.d.ts",
3465
+ "name": "mo-hour-list",
3466
+ "path": ".\\packages\\DateTimeFields\\dist\\selection\\HourList.d.ts",
3490
3467
  "properties": [
3491
3468
  {
3492
3469
  "name": "change",
@@ -3515,8 +3492,8 @@
3515
3492
  ]
3516
3493
  },
3517
3494
  {
3518
- "name": "mo-second-list",
3519
- "path": ".\\packages\\DateTimeFields\\dist\\selection\\SecondList.d.ts",
3495
+ "name": "mo-minute-list",
3496
+ "path": ".\\packages\\DateTimeFields\\dist\\selection\\MinuteList.d.ts",
3520
3497
  "properties": [
3521
3498
  {
3522
3499
  "name": "change",
@@ -3545,8 +3522,8 @@
3545
3522
  ]
3546
3523
  },
3547
3524
  {
3548
- "name": "mo-year-list",
3549
- "path": ".\\packages\\DateTimeFields\\dist\\selection\\YearList.d.ts",
3525
+ "name": "mo-second-list",
3526
+ "path": ".\\packages\\DateTimeFields\\dist\\selection\\SecondList.d.ts",
3550
3527
  "properties": [
3551
3528
  {
3552
3529
  "name": "change",
@@ -3576,157 +3553,64 @@
3576
3553
  },
3577
3554
  {
3578
3555
  "name": "mo-calendar",
3579
- "path": ".\\packages\\DateTimeFields\\dist\\selection\\calendar\\Calendar.d.ts",
3580
- "properties": [
3581
- {
3582
- "name": "dayClick",
3583
- "type": "EventDispatcher<DateTime>"
3584
- },
3585
- {
3586
- "name": "includeWeek",
3587
- "type": "boolean"
3588
- },
3589
- {
3590
- "name": "navigatingValue",
3591
- "type": "DateTime"
3592
- }
3593
- ],
3594
- "events": [
3595
- {
3596
- "name": "dayClick",
3597
- "description": "Dispatched when a day is clicked, with the clicked date as detail.",
3598
- "type": "CustomEvent<DateTime>"
3599
- }
3600
- ]
3601
- },
3602
- {
3603
- "name": "mo-selectable-calendar",
3604
- "path": ".\\packages\\DateTimeFields\\dist\\selection\\calendar\\SelectableCalendar.d.ts",
3605
- "properties": [
3556
+ "path": ".\\packages\\DateTimeFields\\selection\\Calendar.ts",
3557
+ "attributes": [
3606
3558
  {
3607
3559
  "name": "value",
3608
3560
  "type": "DateTimeRange | undefined"
3609
3561
  },
3610
3562
  {
3611
- "name": "dayClick",
3612
- "type": "EventDispatcher<DateTime>"
3563
+ "name": "precision",
3564
+ "type": "DatePrecision"
3613
3565
  },
3614
3566
  {
3615
3567
  "name": "includeWeek",
3616
- "type": "boolean"
3617
- },
3618
- {
3619
- "name": "navigatingValue",
3620
- "type": "DateTime"
3621
- }
3622
- ],
3623
- "events": [
3624
- {
3625
- "name": "dayClick",
3626
- "description": "Dispatched when a day is clicked, with the clicked date as detail.",
3627
- "type": "CustomEvent<DateTime>"
3628
- }
3629
- ]
3630
- },
3631
- {
3632
- "name": "mo-hour-list",
3633
- "path": ".\\packages\\DateTimeFields\\selection\\HourList.ts",
3634
- "attributes": [
3635
- {
3636
- "name": "navigatingValue",
3637
- "type": "DateTime"
3638
- },
3639
- {
3640
- "name": "value",
3641
- "type": "DateTime | undefined"
3568
+ "type": "boolean",
3569
+ "default": "false"
3642
3570
  }
3643
3571
  ],
3644
3572
  "properties": [
3645
3573
  {
3646
- "name": "change",
3647
- "type": "EventDispatcher<DateTime>"
3648
- },
3649
- {
3650
- "name": "navigate",
3574
+ "name": "dateClick",
3651
3575
  "type": "EventDispatcher<DateTime>"
3652
3576
  },
3653
- {
3654
- "name": "navigatingValue",
3655
- "attribute": "navigatingValue",
3656
- "type": "DateTime"
3657
- },
3658
3577
  {
3659
3578
  "name": "value",
3660
3579
  "attribute": "value",
3661
- "type": "DateTime | undefined"
3662
- },
3663
- {
3664
- "name": "zero",
3665
- "type": "number"
3580
+ "type": "DateTimeRange | undefined"
3666
3581
  },
3667
3582
  {
3668
- "name": "navigateOnScroll",
3669
- "type": "boolean"
3670
- }
3671
- ],
3672
- "events": [
3673
- {
3674
- "name": "navigate",
3675
- "type": "CustomEvent<DateTime>"
3676
- }
3677
- ]
3678
- },
3679
- {
3680
- "name": "mo-minute-list",
3681
- "path": ".\\packages\\DateTimeFields\\selection\\MinuteList.ts",
3682
- "attributes": [
3683
- {
3684
- "name": "navigatingValue",
3685
- "type": "DateTime"
3583
+ "name": "precision",
3584
+ "attribute": "precision",
3585
+ "type": "DatePrecision"
3686
3586
  },
3687
3587
  {
3688
- "name": "value",
3689
- "type": "DateTime | undefined"
3690
- }
3691
- ],
3692
- "properties": [
3693
- {
3694
- "name": "change",
3695
- "type": "EventDispatcher<DateTime>"
3588
+ "name": "includeWeek",
3589
+ "attribute": "includeWeek",
3590
+ "type": "boolean",
3591
+ "default": "false"
3696
3592
  },
3697
3593
  {
3698
- "name": "navigate",
3699
- "type": "EventDispatcher<DateTime>"
3594
+ "name": "view",
3595
+ "type": "DatePrecision",
3596
+ "default": "\"day\""
3700
3597
  },
3701
3598
  {
3702
- "name": "navigatingValue",
3703
- "attribute": "navigatingValue",
3599
+ "name": "navigationDate",
3704
3600
  "type": "DateTime"
3705
- },
3706
- {
3707
- "name": "value",
3708
- "attribute": "value",
3709
- "type": "DateTime | undefined"
3710
- },
3711
- {
3712
- "name": "zero",
3713
- "type": "number"
3714
- },
3715
- {
3716
- "name": "navigateOnScroll",
3717
- "type": "boolean"
3718
3601
  }
3719
3602
  ],
3720
3603
  "events": [
3721
3604
  {
3722
- "name": "navigate",
3605
+ "name": "dateClick",
3606
+ "description": "Dispatched when a date is clicked, with the clicked date as detail.",
3723
3607
  "type": "CustomEvent<DateTime>"
3724
3608
  }
3725
3609
  ]
3726
3610
  },
3727
3611
  {
3728
- "name": "mo-month-list",
3729
- "path": ".\\packages\\DateTimeFields\\selection\\MonthList.ts",
3612
+ "name": "mo-hour-list",
3613
+ "path": ".\\packages\\DateTimeFields\\selection\\HourList.ts",
3730
3614
  "attributes": [
3731
3615
  {
3732
3616
  "name": "navigatingValue",
@@ -3773,8 +3657,8 @@
3773
3657
  ]
3774
3658
  },
3775
3659
  {
3776
- "name": "mo-second-list",
3777
- "path": ".\\packages\\DateTimeFields\\selection\\SecondList.ts",
3660
+ "name": "mo-minute-list",
3661
+ "path": ".\\packages\\DateTimeFields\\selection\\MinuteList.ts",
3778
3662
  "attributes": [
3779
3663
  {
3780
3664
  "name": "navigatingValue",
@@ -3821,8 +3705,8 @@
3821
3705
  ]
3822
3706
  },
3823
3707
  {
3824
- "name": "mo-year-list",
3825
- "path": ".\\packages\\DateTimeFields\\selection\\YearList.ts",
3708
+ "name": "mo-second-list",
3709
+ "path": ".\\packages\\DateTimeFields\\selection\\SecondList.ts",
3826
3710
  "attributes": [
3827
3711
  {
3828
3712
  "name": "navigatingValue",
@@ -3867,97 +3751,6 @@
3867
3751
  "type": "CustomEvent<DateTime>"
3868
3752
  }
3869
3753
  ]
3870
- },
3871
- {
3872
- "name": "mo-calendar",
3873
- "path": ".\\packages\\DateTimeFields\\selection\\calendar\\Calendar.ts",
3874
- "attributes": [
3875
- {
3876
- "name": "includeWeek",
3877
- "type": "boolean",
3878
- "default": "false"
3879
- },
3880
- {
3881
- "name": "navigatingValue",
3882
- "type": "DateTime",
3883
- "default": "\"new DateTime\""
3884
- }
3885
- ],
3886
- "properties": [
3887
- {
3888
- "name": "dayClick",
3889
- "type": "EventDispatcher<DateTime>"
3890
- },
3891
- {
3892
- "name": "includeWeek",
3893
- "attribute": "includeWeek",
3894
- "type": "boolean",
3895
- "default": "false"
3896
- },
3897
- {
3898
- "name": "navigatingValue",
3899
- "attribute": "navigatingValue",
3900
- "type": "DateTime",
3901
- "default": "\"new DateTime\""
3902
- }
3903
- ],
3904
- "events": [
3905
- {
3906
- "name": "dayClick",
3907
- "description": "Dispatched when a day is clicked, with the clicked date as detail.",
3908
- "type": "CustomEvent<DateTime>"
3909
- }
3910
- ]
3911
- },
3912
- {
3913
- "name": "mo-selectable-calendar",
3914
- "path": ".\\packages\\DateTimeFields\\selection\\calendar\\SelectableCalendar.ts",
3915
- "attributes": [
3916
- {
3917
- "name": "value",
3918
- "type": "DateTimeRange | undefined"
3919
- },
3920
- {
3921
- "name": "includeWeek",
3922
- "type": "boolean",
3923
- "default": "false"
3924
- },
3925
- {
3926
- "name": "navigatingValue",
3927
- "type": "DateTime",
3928
- "default": "\"new DateTime\""
3929
- }
3930
- ],
3931
- "properties": [
3932
- {
3933
- "name": "value",
3934
- "attribute": "value",
3935
- "type": "DateTimeRange | undefined"
3936
- },
3937
- {
3938
- "name": "dayClick",
3939
- "type": "EventDispatcher<DateTime>"
3940
- },
3941
- {
3942
- "name": "includeWeek",
3943
- "attribute": "includeWeek",
3944
- "type": "boolean",
3945
- "default": "false"
3946
- },
3947
- {
3948
- "name": "navigatingValue",
3949
- "attribute": "navigatingValue",
3950
- "type": "DateTime",
3951
- "default": "\"new DateTime\""
3952
- }
3953
- ],
3954
- "events": [
3955
- {
3956
- "name": "dayClick",
3957
- "description": "Dispatched when a day is clicked, with the clicked date as detail.",
3958
- "type": "CustomEvent<DateTime>"
3959
- }
3960
- ]
3961
3754
  }
3962
3755
  ]
3963
3756
  }