@3mo/date-time-fields 0.5.10 → 0.5.12-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.
@@ -1 +1 @@
1
- {"version":3,"file":"FieldDate.d.ts","sourceRoot":"","sources":["../FieldDate.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAA;AAClD,OAAO,EAAE,sBAAsB,EAAE,MAAM,wBAAwB,CAAA;AAO/D;;;;GAIG;AACH,qBACa,SAAU,SAAQ,aAAa;IACtB,SAAS,yBAA6B;IACtC,KAAK,SAAY;CACtC;AAED,OAAO,CAAC,MAAM,CAAC;IACd,UAAU,qBAAqB;QAC9B,eAAe,EAAE,aAAa,CAAA;KAC9B;CACD"}
1
+ {"version":3,"file":"FieldDate.d.ts","sourceRoot":"","sources":["../FieldDate.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAA;AAClD,OAAO,EAAE,sBAAsB,EAAE,MAAM,wBAAwB,CAAA;AAM/D;;;;GAIG;AACH,qBACa,SAAU,SAAQ,aAAa;IACtB,SAAS,yBAA6B;IACtC,KAAK,SAAY;CACtC;AAED,OAAO,CAAC,MAAM,CAAC;IACd,UAAU,qBAAqB;QAC9B,eAAe,EAAE,aAAa,CAAA;KAC9B;CACD"}
package/dist/FieldDate.js CHANGED
@@ -1,8 +1,8 @@
1
1
  import { __decorate } from "tslib";
2
2
  import { component, property } from '@a11d/lit';
3
+ import { Localizer } from '@3mo/localization';
3
4
  import { FieldDateTime } from './FieldDateTime.js';
4
5
  import { FieldDateTimePrecision } from './FieldDateTimeBase.js';
5
- import { Localizer } from '@3mo/localization/Localizer.js';
6
6
  Localizer.dictionaries.add('de', {
7
7
  'Date': 'Datum',
8
8
  });
@@ -20,6 +20,7 @@ export declare abstract class FieldDateTimeBase<T> extends InputFieldComponent<T
20
20
  pickerHidden: boolean;
21
21
  shortcutReferenceDate: import("@3mo/date-time/DateTime.js").DateTime;
22
22
  precision: FieldDateTimePrecision;
23
+ private readonly smQuery;
23
24
  private lastValue?;
24
25
  protected readonly calendarIconButtonIcon: MaterialIcon;
25
26
  protected abstract get navigatingDate(): DateTime;
@@ -39,6 +40,7 @@ export declare abstract class FieldDateTimeBase<T> extends InputFieldComponent<T
39
40
  protected get calendarIconButtonTemplate(): HTMLTemplateResult;
40
41
  protected get popoverTemplate(): HTMLTemplateResult;
41
42
  protected get popoverContentTemplate(): HTMLTemplateResult;
43
+ protected get compactPopoverContentTemplate(): HTMLTemplateResult;
42
44
  protected get dateTemplate(): HTMLTemplateResult;
43
45
  private get yearListTemplate();
44
46
  private get monthListTemplate();
@@ -1 +1 @@
1
- {"version":3,"file":"FieldDateTimeBase.d.ts","sourceRoot":"","sources":["../FieldDateTimeBase.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,kBAAkB,EAAiD,MAAM,WAAW,CAAA;AAClG,OAAO,EAAE,mBAAmB,EAAE,MAAM,YAAY,CAAA;AAChD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,WAAW,CAAA;AAE7C,oBAAY,sBAAsB;IACjC,IAAI,SAAS;IACb,KAAK,UAAU;IACf,GAAG,QAAQ;IACX,IAAI,SAAS;IACb,MAAM,WAAW;IACjB,MAAM,WAAW;CACjB;AAcD;;;;;GAKG;AACH,8BAAsB,iBAAiB,CAAC,CAAC,CAAE,SAAQ,mBAAmB,CAAC,CAAC,CAAC;IAWrE,IAAI,UAAQ;IACc,YAAY,UAAQ;IACrB,qBAAqB,gDAAe;IACpD,SAAS,yBAAgC;IAErD,OAAO,CAAC,SAAS,CAAC,CAAG;IAErB,SAAS,CAAC,QAAQ,CAAC,sBAAsB,EAAE,YAAY,CAAU;IAEjE,SAAS,CAAC,QAAQ,KAAK,cAAc,IAAI,QAAQ,CAAA;IAEjD,SAAS,CAAC,QAAQ,KAAK,YAAY,IAAI,QAAQ,GAAG,SAAS,CAAA;IAE3D,SAAS,KAAK,aAAa,IAAI,IAAI,CAAC,qBAAqB,CAYxD;IAED,SAAS,CAAC,gBAAgB,CAAC,IAAI,EAAE,QAAQ;IAWzC,SAAS,CAAC,eAAe,CAAC,IAAI,EAAE,QAAQ;cAWrB,YAAY,CAAC,KAAK,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,KAAK;IAKpD,cAAuB,QAAQ,YAE9B;IAED,SAAS,KAAK,WAAW,WAExB;IAED,WAAoB,MAAM,kCAwCzB;IAED,cAAuB,QAAQ,uBAK9B;IAED,cAAuB,eAAe,uBAKrC;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,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;CAKpF"}
1
+ {"version":3,"file":"FieldDateTimeBase.d.ts","sourceRoot":"","sources":["../FieldDateTimeBase.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,kBAAkB,EAAiD,MAAM,WAAW,CAAA;AAElG,OAAO,EAAE,mBAAmB,EAAE,MAAM,YAAY,CAAA;AAChD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,WAAW,CAAA;AAE7C,oBAAY,sBAAsB;IACjC,IAAI,SAAS;IACb,KAAK,UAAU;IACf,GAAG,QAAQ;IACX,IAAI,SAAS;IACb,MAAM,WAAW;IACjB,MAAM,WAAW;CACjB;AAcD;;;;;GAKG;AACH,8BAAsB,iBAAiB,CAAC,CAAC,CAAE,SAAQ,mBAAmB,CAAC,CAAC,CAAC;IAWrE,IAAI,UAAQ;IACc,YAAY,UAAQ;IACrB,qBAAqB,gDAAe;IACpD,SAAS,yBAAgC;IAErD,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAuD;IAE/E,OAAO,CAAC,SAAS,CAAC,CAAG;IAErB,SAAS,CAAC,QAAQ,CAAC,sBAAsB,EAAE,YAAY,CAAU;IAEjE,SAAS,CAAC,QAAQ,KAAK,cAAc,IAAI,QAAQ,CAAA;IAEjD,SAAS,CAAC,QAAQ,KAAK,YAAY,IAAI,QAAQ,GAAG,SAAS,CAAA;IAE3D,SAAS,KAAK,aAAa,IAAI,IAAI,CAAC,qBAAqB,CAYxD;IAED,SAAS,CAAC,gBAAgB,CAAC,IAAI,EAAE,QAAQ;IAWzC,SAAS,CAAC,eAAe,CAAC,IAAI,EAAE,QAAQ;cAWrB,YAAY,CAAC,KAAK,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,KAAK;IAKpD,cAAuB,QAAQ,YAE9B;IAED,SAAS,KAAK,WAAW,WAExB;IAED,WAAoB,MAAM,kCAwCzB;IAED,cAAuB,QAAQ,uBAK9B;IAED,cAAuB,eAAe,uBAKrC;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,SAAS,KAAK,0BAA0B,uBAOvC;IAED,SAAS,KAAK,eAAe,uBAM5B;IAED,SAAS,KAAK,sBAAsB,uBAOnC;IAED,SAAS,KAAK,6BAA6B,uBAU1C;IAED,SAAS,KAAK,YAAY,uBAMzB;IAED,OAAO,KAAK,gBAAgB,GAqB3B;IAED,OAAO,KAAK,iBAAiB,GA0B5B;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;CAKpF"}
@@ -1,5 +1,6 @@
1
1
  import { __decorate } from "tslib";
2
2
  import { cache, css, html, live, property, style, bind } from '@a11d/lit';
3
+ import { MediaQueryController } from '@3mo/media-query-observer';
3
4
  import { InputFieldComponent } from '@3mo/field';
4
5
  export var FieldDateTimePrecision;
5
6
  (function (FieldDateTimePrecision) {
@@ -34,6 +35,7 @@ export class FieldDateTimeBase extends InputFieldComponent {
34
35
  this.pickerHidden = false;
35
36
  this.shortcutReferenceDate = new DateTime;
36
37
  this.precision = FieldDateTimePrecision.Minute;
38
+ this.smQuery = new MediaQueryController(this, '(max-width: 576px)');
37
39
  this.calendarIconButtonIcon = 'today';
38
40
  }
39
41
  get formatOptions() {
@@ -162,13 +164,24 @@ export class FieldDateTimeBase extends InputFieldComponent {
162
164
  `;
163
165
  }
164
166
  get popoverContentTemplate() {
165
- return html `
167
+ return this.smQuery.matches ? this.compactPopoverContentTemplate : html `
166
168
  <mo-flex id='selector' direction='horizontal' style='height: 100%'>
167
169
  ${this.dateTemplate}
168
170
  ${this.timeTemplate}
169
171
  </mo-flex>
170
172
  `;
171
173
  }
174
+ get compactPopoverContentTemplate() {
175
+ return html `
176
+ <mo-flex alignItems='center' ${style({ paddingBlock: '10px' })}>
177
+ <mo-flex direction='horizontal' gap='8px' ${style({ width: 'calc(100% - 20px)' })}>
178
+ ${this.monthListTemplate}
179
+ ${this.yearListTemplate}
180
+ </mo-flex>
181
+ ${this.dayTemplate}
182
+ </mo-flex>
183
+ `;
184
+ }
172
185
  get dateTemplate() {
173
186
  return html `
174
187
  ${this.yearListTemplate}
@@ -177,6 +190,18 @@ export class FieldDateTimeBase extends InputFieldComponent {
177
190
  `;
178
191
  }
179
192
  get yearListTemplate() {
193
+ if (this.smQuery.matches) {
194
+ return html `
195
+ <mo-field-year ${style({ width: '80px' })}
196
+ .value=${this.selectedDate?.getFullYear()}
197
+ @change=${(e) => {
198
+ const currentDate = this.selectedDate ?? new DateTime();
199
+ currentDate.setFullYear(e.detail);
200
+ this.handleSelectedDateChange(currentDate, FieldDateTimePrecision.Year);
201
+ }}
202
+ ></mo-field-year>
203
+ `;
204
+ }
180
205
  return html `
181
206
  <mo-year-list
182
207
  .navigatingValue=${this.navigatingDate}
@@ -186,7 +211,23 @@ export class FieldDateTimeBase extends InputFieldComponent {
186
211
  `;
187
212
  }
188
213
  get monthListTemplate() {
189
- return [FieldDateTimePrecision.Year].includes(this.precision) ? html.nothing : html `
214
+ if ([FieldDateTimePrecision.Year].includes(this.precision)) {
215
+ return html.nothing;
216
+ }
217
+ if (this.smQuery.matches) {
218
+ return html `
219
+ <mo-field-month ${style({ flexGrow: '1' })}
220
+ .navigatingDate=${this.navigatingDate}
221
+ .value=${this.selectedDate?.getMonth()}
222
+ @change=${(e) => {
223
+ const currentDate = this.selectedDate ?? new DateTime();
224
+ currentDate.setMonth(e.detail);
225
+ this.handleSelectedDateChange(currentDate, FieldDateTimePrecision.Month);
226
+ }}
227
+ ></mo-field-month>
228
+ `;
229
+ }
230
+ return html `
190
231
  <mo-month-list
191
232
  .navigatingValue=${this.navigatingDate}
192
233
  .value=${this.selectedDate}