@leavittsoftware/web 1.12.0 → 1.13.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,11 +1,13 @@
1
- import '@material/web/textfield/outlined-text-field';
2
1
  import '@material/web/icon/icon';
3
- import '@material/web/select/outlined-select.js';
4
- import '@material/web/select/select-option.js';
2
+ import '@material/web/field/outlined-field';
3
+ import '@material/web/menu/menu';
4
+ import '@material/web/button/text-button';
5
+ import '@material/web/list/list';
6
+ import '@material/web/list/list-item';
7
+ import '../date-input/date-input';
5
8
  import { LitElement, PropertyValues } from 'lit';
6
- import { MdOutlinedTextField } from '@material/web/textfield/outlined-text-field';
7
- import { MdOutlinedSelect } from '@material/web/select/outlined-select.js';
8
9
  import { DateRangeOption } from './types/date-range-option';
10
+ import { TitaniumDateInput } from '../date-input/date-input';
9
11
  /**
10
12
  * Date range selector that allows selection from a list of pre-defined ranges or a custom range
11
13
  *
@@ -16,6 +18,15 @@ import { DateRangeOption } from './types/date-range-option';
16
18
  */
17
19
  export declare class TitaniumDateRangeSelector extends LitElement {
18
20
  #private;
21
+ /**
22
+ * The selected selected range.
23
+ */
24
+ accessor range: string;
25
+ /**
26
+ // * The selected start date.
27
+ // */
28
+ accessor startDate: string;
29
+ accessor endDate: string;
19
30
  /**
20
31
  * Sets floating label value.
21
32
  */
@@ -25,30 +36,31 @@ export declare class TitaniumDateRangeSelector extends LitElement {
25
36
  */
26
37
  accessor enableTime: boolean;
27
38
  /**
28
- * The selected selected range.
39
+ * Whether or not the input should be disabled
29
40
  */
30
- accessor range: string;
41
+ accessor disabled: boolean;
31
42
  /**
32
43
  * Override default ranges with custom options. Needs to contain, at least, 'allTime'.
33
44
  */
34
45
  accessor customDateRanges: Map<string, DateRangeOption> | null;
35
46
  /**
36
- * The selected start date.
37
- */
38
- accessor startDate: string;
39
- /**
40
- * The selected end date.
47
+ * Conveys additional information below the text field, such as how it should
48
+ * be used.
41
49
  */
42
- accessor endDate: string;
43
- protected accessor startDateField: MdOutlinedTextField;
44
- protected accessor endDateField: MdOutlinedTextField;
45
- protected accessor select: MdOutlinedSelect;
50
+ accessor supportingText: string;
51
+ protected accessor startDateField: TitaniumDateInput;
52
+ private accessor menu;
53
+ private accessor list;
54
+ private accessor proposedRange;
55
+ private accessor proposedStartDate;
56
+ private accessor proposedEndDate;
57
+ private accessor open;
58
+ private accessor focused;
46
59
  updated(changedProps: PropertyValues<this>): Promise<void>;
47
60
  /**
48
61
  * resets the validity of the start and end date inputs
49
62
  */
50
63
  reset(): Promise<void>;
51
- reportValidity(): boolean;
52
64
  static styles: import("lit").CSSResult;
53
65
  render(): import("lit-html").TemplateResult<1>;
54
66
  }
@@ -1,16 +1,18 @@
1
1
  import { __decorate } from "tslib";
2
- import '@material/web/textfield/outlined-text-field';
3
2
  import '@material/web/icon/icon';
4
- import '@material/web/select/outlined-select.js';
5
- import '@material/web/select/select-option.js';
6
- import { redispatchEvent } from '@material/web/internal/controller/events';
3
+ import '@material/web/field/outlined-field';
4
+ import '@material/web/menu/menu';
5
+ import '@material/web/button/text-button';
6
+ import '@material/web/list/list';
7
+ import '@material/web/list/list-item';
8
+ import '../date-input/date-input';
7
9
  import { css, html, LitElement } from 'lit';
8
- import { property, customElement, query } from 'lit/decorators.js';
10
+ import { property, customElement, query, state } from 'lit/decorators.js';
9
11
  import dayjs from 'dayjs/esm';
10
- import { Debouncer } from '../helpers/helpers';
11
- import { DateRangeChangedEvent } from './date-range-change-event';
12
12
  import { DateTimeRanges } from './types/date-time-ranges';
13
13
  import { DateRanges } from './types/date-ranges';
14
+ import { humanizeRange } from './types/range-label';
15
+ import { redispatchEvent } from '@material/web/internal/controller/events';
14
16
  /**
15
17
  * Date range selector that allows selection from a list of pre-defined ranges or a custom range
16
18
  *
@@ -20,6 +22,24 @@ import { DateRanges } from './types/date-ranges';
20
22
  *
21
23
  */
22
24
  let TitaniumDateRangeSelector = class TitaniumDateRangeSelector extends LitElement {
25
+ #range_accessor_storage = 'custom';
26
+ /**
27
+ * The selected selected range.
28
+ */
29
+ get range() { return this.#range_accessor_storage; }
30
+ set range(value) { this.#range_accessor_storage = value; }
31
+ #startDate_accessor_storage = '';
32
+ /**
33
+ // * The selected start date.
34
+ // */
35
+ get startDate() { return this.#startDate_accessor_storage; }
36
+ set startDate(value) { this.#startDate_accessor_storage = value; }
37
+ #endDate_accessor_storage = '';
38
+ // /**
39
+ // * The selected end date.
40
+ // */
41
+ get endDate() { return this.#endDate_accessor_storage; }
42
+ set endDate(value) { this.#endDate_accessor_storage = value; }
23
43
  #label_accessor_storage = '';
24
44
  /**
25
45
  * Sets floating label value.
@@ -32,42 +52,60 @@ let TitaniumDateRangeSelector = class TitaniumDateRangeSelector extends LitEleme
32
52
  */
33
53
  get enableTime() { return this.#enableTime_accessor_storage; }
34
54
  set enableTime(value) { this.#enableTime_accessor_storage = value; }
35
- #range_accessor_storage = 'custom';
55
+ #disabled_accessor_storage = false;
36
56
  /**
37
- * The selected selected range.
57
+ * Whether or not the input should be disabled
38
58
  */
39
- get range() { return this.#range_accessor_storage; }
40
- set range(value) { this.#range_accessor_storage = value; }
59
+ get disabled() { return this.#disabled_accessor_storage; }
60
+ set disabled(value) { this.#disabled_accessor_storage = value; }
41
61
  #customDateRanges_accessor_storage = null;
42
62
  /**
43
63
  * Override default ranges with custom options. Needs to contain, at least, 'allTime'.
44
64
  */
45
65
  get customDateRanges() { return this.#customDateRanges_accessor_storage; }
46
66
  set customDateRanges(value) { this.#customDateRanges_accessor_storage = value; }
47
- #startDate_accessor_storage = '';
48
- /**
49
- * The selected start date.
50
- */
51
- get startDate() { return this.#startDate_accessor_storage; }
52
- set startDate(value) { this.#startDate_accessor_storage = value; }
53
- #endDate_accessor_storage = '';
67
+ #supportingText_accessor_storage = '';
54
68
  /**
55
- * The selected end date.
69
+ * Conveys additional information below the text field, such as how it should
70
+ * be used.
56
71
  */
57
- get endDate() { return this.#endDate_accessor_storage; }
58
- set endDate(value) { this.#endDate_accessor_storage = value; }
72
+ get supportingText() { return this.#supportingText_accessor_storage; }
73
+ set supportingText(value) { this.#supportingText_accessor_storage = value; }
59
74
  #startDateField_accessor_storage;
60
75
  get startDateField() { return this.#startDateField_accessor_storage; }
61
76
  set startDateField(value) { this.#startDateField_accessor_storage = value; }
62
- #endDateField_accessor_storage;
63
- get endDateField() { return this.#endDateField_accessor_storage; }
64
- set endDateField(value) { this.#endDateField_accessor_storage = value; }
65
- #select_accessor_storage;
66
- get select() { return this.#select_accessor_storage; }
67
- set select(value) { this.#select_accessor_storage = value; }
77
+ #menu_accessor_storage;
78
+ get menu() { return this.#menu_accessor_storage; }
79
+ set menu(value) { this.#menu_accessor_storage = value; }
80
+ #list_accessor_storage;
81
+ get list() { return this.#list_accessor_storage; }
82
+ set list(value) { this.#list_accessor_storage = value; }
83
+ #proposedRange_accessor_storage = 'custom';
84
+ get proposedRange() { return this.#proposedRange_accessor_storage; }
85
+ set proposedRange(value) { this.#proposedRange_accessor_storage = value; }
86
+ #proposedStartDate_accessor_storage = '';
87
+ get proposedStartDate() { return this.#proposedStartDate_accessor_storage; }
88
+ set proposedStartDate(value) { this.#proposedStartDate_accessor_storage = value; }
89
+ #proposedEndDate_accessor_storage = '';
90
+ get proposedEndDate() { return this.#proposedEndDate_accessor_storage; }
91
+ set proposedEndDate(value) { this.#proposedEndDate_accessor_storage = value; }
92
+ #open_accessor_storage;
93
+ get open() { return this.#open_accessor_storage; }
94
+ set open(value) { this.#open_accessor_storage = value; }
95
+ #focused_accessor_storage = false;
96
+ get focused() { return this.#focused_accessor_storage; }
97
+ set focused(value) { this.#focused_accessor_storage = value; }
68
98
  async updated(changedProps) {
99
+ if (changedProps.has('range')) {
100
+ const range = this.#getRange(this.range);
101
+ if (range) {
102
+ this.startDate = range.startDate;
103
+ this.endDate = range.endDate;
104
+ }
105
+ }
69
106
  if (changedProps.has('endDate') || changedProps.has('startDate')) {
70
- this.#dateChangedDebouncer.debounce();
107
+ this.range =
108
+ Array.from(this.customDateRanges ? this.customDateRanges : this.enableTime ? DateTimeRanges : DateRanges).find((o) => o[1].startDate === this.startDate && o[1].endDate === this.endDate)?.[0] || 'custom';
71
109
  }
72
110
  }
73
111
  /**
@@ -76,52 +114,99 @@ let TitaniumDateRangeSelector = class TitaniumDateRangeSelector extends LitEleme
76
114
  async reset() {
77
115
  this.range = 'allTime';
78
116
  }
79
- reportValidity() {
80
- if (!!this.startDate && !!this.endDate && dayjs(this.startDate).isAfter(dayjs(this.endDate))) {
81
- this.startDateField.setCustomValidity('From date must be before to date');
82
- this.startDateField.reportValidity();
83
- return false;
84
- }
85
- this.startDateField.setCustomValidity('');
86
- this.startDateField.reportValidity();
87
- return true;
88
- }
89
- #dateChangedDebouncer = new Debouncer(async () => {
90
- //Keep range selector up to date with new date selection
91
- this.range =
92
- Array.from(this.customDateRanges ? this.customDateRanges : this.enableTime ? DateTimeRanges : DateRanges).find((o) => o[1].startDate === this.startDate && o[1].endDate === this.endDate)?.[0] || 'custom';
93
- this.#notifyChangeIfValid();
94
- }, 300);
95
- #notifyChangeIfValid() {
96
- if (this.reportValidity()) {
97
- /**
98
- * @ignore
99
- */
100
- this.dispatchEvent(new DateRangeChangedEvent(this.range, this.startDate, this.endDate));
101
- }
117
+ #validateDates(startDate, endDate) {
118
+ return !(!!startDate && !!endDate && dayjs(startDate).isAfter(dayjs(endDate)));
102
119
  }
103
120
  static { this.styles = css `
104
121
  :host {
105
122
  display: flex;
106
- flex-wrap: wrap;
107
- gap: 16px;
123
+ position: relative;
124
+ }
125
+
126
+ main {
127
+ display: grid;
128
+ grid:
129
+ 'list inputs'
130
+ 'buttons buttons' / 220px minmax(300px, 1fr);
131
+ gap: 0 24px;
132
+ margin: 0;
133
+ }
134
+
135
+ menu-actions {
136
+ grid-area: buttons;
137
+ display: flex;
138
+ flex-direction: row;
139
+
140
+ justify-content: flex-end;
141
+
142
+ gap: 12px;
143
+ padding-top: 12px;
144
+ border-top: 1px solid var(--md-sys-color-outline-variant);
145
+ }
146
+
147
+ md-outlined-field {
148
+ width: 100%;
149
+ }
150
+
151
+ md-outlined-field md-icon {
152
+ margin: 0 12px;
108
153
  }
109
154
 
110
- md-outlined-select {
111
- flex-basis: 480px;
112
- flex-grow: 9999;
155
+ md-list {
156
+ grid-area: list;
157
+ --md-list-container-color: --md-sys-color-surface-container;
158
+
159
+ max-height: 260px;
160
+ overflow-y: auto;
161
+ border-right: 1px solid var(--md-sys-color-outline-variant);
113
162
  }
114
163
 
115
- md-outlined-text-field {
116
- align-self: flex-start;
117
- flex-basis: calc(25% - 64px);
118
- flex-grow: 1;
164
+ md-list-item[selected] {
165
+ background-color: rgb(from var(--md-sys-color-primary) r g b / 0.18);
119
166
  }
120
167
 
121
168
  @-moz-document url-prefix() {
122
- md-outlined-text-field {
123
- --md-outlined-field-top-space: 3px;
124
- --md-outlined-field-bottom-space: 3px;
169
+ md-list-item[selected] {
170
+ background-color: var(--md-sys-color-outline-variant);
171
+ }
172
+ }
173
+
174
+ input-container {
175
+ grid-area: inputs;
176
+ display: flex;
177
+ flex-direction: column;
178
+ justify-content: center;
179
+ gap: 24px;
180
+
181
+ margin-right: 16px;
182
+ }
183
+
184
+ span[error] {
185
+ font-size: 12px;
186
+ margin-top: -18px;
187
+ color: var(--md-sys-color-error, #b3261e);
188
+ }
189
+
190
+ [invisible] {
191
+ visibility: hidden;
192
+ }
193
+
194
+ @media (max-width: 450px) {
195
+ main {
196
+ grid:
197
+ 'inputs'
198
+ 'list'
199
+ 'buttons' / 1fr;
200
+ min-width: 280px;
201
+ }
202
+
203
+ input-container {
204
+ margin: 24px 24px 0 24px;
205
+ }
206
+
207
+ md-list {
208
+ max-height: 190px;
209
+ border-top: 1px solid var(--md-sys-color-outline-variant);
125
210
  }
126
211
  }
127
212
  `; }
@@ -134,56 +219,164 @@ let TitaniumDateRangeSelector = class TitaniumDateRangeSelector extends LitEleme
134
219
  }
135
220
  return DateRanges.get(key);
136
221
  }
222
+ #scrollSelectedListItemIntoView(focusItemToo = false) {
223
+ if (!this.list) {
224
+ return;
225
+ }
226
+ const items = this.list.items;
227
+ const selectedItem = items.find((o) => o.hasAttribute('selected')) || items[0];
228
+ if (selectedItem) {
229
+ this.list.scrollTop = selectedItem.offsetTop - 10;
230
+ selectedItem.tabIndex = 0;
231
+ if (focusItemToo) {
232
+ selectedItem.focus();
233
+ }
234
+ }
235
+ }
137
236
  render() {
138
237
  return html `
139
- <md-outlined-select
140
- @opening=${(e) => redispatchEvent(this, e)}
141
- @opened=${(e) => redispatchEvent(this, e)}
142
- @closing=${(e) => redispatchEvent(this, e)}
143
- @closed=${(e) => redispatchEvent(this, e)}
144
- part="select"
145
- .label=${this.label}
146
- .value=${this.range}
147
- @request-selection=${async (e) => {
148
- this.range = e.target.value;
149
- const date = this.#getRange(this.range);
150
- if (date && e.target.value !== 'custom') {
151
- this.startDate = date.startDate ?? '';
152
- this.endDate = date.endDate ?? '';
238
+ <md-outlined-field
239
+ aria-haspopup="listbox"
240
+ role="combobox"
241
+ part="field"
242
+ id="field"
243
+ tabindex=${this.disabled ? '-1' : '0'}
244
+ aria-describedby="description"
245
+ aria-controls="listbox"
246
+ label=${this.label}
247
+ .focused=${this.focused || this.open}
248
+ populated
249
+ .disabled=${this.disabled}
250
+ has-end
251
+ supporting-text=${this.supportingText}
252
+ @keydown=${(event) => {
253
+ if (this.open || this.disabled || !this.menu) {
254
+ return;
255
+ }
256
+ const isOpenKey = event.code === 'Space' || event.code === 'ArrowDown' || event.code === 'Enter';
257
+ if (isOpenKey) {
258
+ event.preventDefault();
259
+ this.open = true;
260
+ return;
153
261
  }
154
262
  }}
263
+ @click=${() => (this.open = true)}
264
+ @focus=${() => (this.focused = true)}
265
+ @blur=${() => (this.focused = false)}
266
+ >
267
+ <!-- need to render &nbsp; so that line-height can apply and give it a
268
+ non-zero height -->
269
+ <!-- prettier-ignore -->
270
+ <div>${humanizeRange(this.range, this.startDate, this.endDate, this.customDateRanges ? this.customDateRanges : this.enableTime ? DateTimeRanges : DateRanges) || html `&nbsp;`}</div>
271
+
272
+ <md-icon slot="start">${this.#getRange(this.range)?.icon || 'date_range'}</md-icon>
273
+ <md-icon slot="end">${this.open ? 'arrow_drop_up' : 'arrow_drop_down'}</md-icon>
274
+ </md-outlined-field>
275
+
276
+ <!-- stay-open-on-focusout -->
277
+ <md-menu
278
+ default-focus="none"
279
+ id="menu"
280
+ anchor="field"
281
+ .open=${this.open}
282
+ @closing=${(e) => {
283
+ this.open = false;
284
+ redispatchEvent(this, e);
285
+ }}
286
+ @opening=${async (e) => {
287
+ this.proposedEndDate = this.endDate;
288
+ this.proposedStartDate = this.startDate;
289
+ this.proposedRange = this.range;
290
+ redispatchEvent(this, e);
291
+ await this.updateComplete;
292
+ this.#scrollSelectedListItemIntoView();
293
+ }}
155
294
  >
156
- <md-icon slot="leading-icon">${this.#getRange(this.range)?.icon || 'date_range'}</md-icon>
157
- <md-select-option value="custom">
158
- <md-icon slot="start">date_range</md-icon>
159
- <div slot="headline">Custom range</div>
160
- </md-select-option>
161
- ${Array.from(this.customDateRanges ? this.customDateRanges : this.enableTime ? DateTimeRanges : DateRanges).map((o) => html `<md-select-option value=${o[0]}>
162
- <md-icon slot="start">${o[1].icon}</md-icon>
163
- <div slot="headline">${o[1].name}</div>
164
- </md-select-option>`)}
165
- </md-outlined-select>
166
-
167
- <md-outlined-text-field
168
- part="startDate"
169
- start-date
170
- label="From"
171
- type=${this.enableTime ? 'datetime-local' : 'date'}
172
- .value=${this.startDate ?? ''}
173
- @change=${(e) => (this.startDate = e.target.value ?? '')}
174
- ></md-outlined-text-field>
175
-
176
- <md-outlined-text-field
177
- part="endDate"
178
- end-date
179
- label="To"
180
- type=${this.enableTime ? 'datetime-local' : 'date'}
181
- .value=${this.endDate ?? ''}
182
- @change=${(e) => (this.endDate = e.target.value ?? '')}
183
- ></md-outlined-text-field>
295
+ <main>
296
+ <md-list>
297
+ ${Array.from(this.customDateRanges ? this.customDateRanges : this.enableTime ? DateTimeRanges : DateRanges).map((o) => html `<md-list-item
298
+ type="button"
299
+ ?selected=${this.proposedRange === o[0]}
300
+ @click=${() => {
301
+ this.proposedRange = o[0];
302
+ const range = this.#getRange(o[0]);
303
+ if (range) {
304
+ this.proposedStartDate = range.startDate ?? '';
305
+ this.proposedEndDate = range.endDate ?? '';
306
+ }
307
+ }}
308
+ value=${o[0]}
309
+ >
310
+ <md-icon slot="start">${o[1].icon}</md-icon>
311
+ <div slot="headline">${o[1].name}</div>
312
+ </md-list-item>`)}
313
+ <md-list-item type="button" ?selected=${this.proposedRange === 'custom'} @click=${() => (this.proposedRange = 'custom')} value="custom">
314
+ <md-icon slot="start">date_range</md-icon>
315
+ <div slot="headline">Custom range</div>
316
+ </md-list-item>
317
+ </md-list>
318
+ <input-container>
319
+ <titanium-date-input
320
+ start-date
321
+ label="From"
322
+ type=${this.enableTime ? 'datetime-local' : 'date'}
323
+ .value=${this.proposedStartDate ?? ''}
324
+ @change=${async (e) => {
325
+ this.proposedStartDate = e.target.value ?? '';
326
+ this.proposedRange =
327
+ Array.from(this.customDateRanges ? this.customDateRanges : this.enableTime ? DateTimeRanges : DateRanges).find((o) => o[1].startDate === this.proposedStartDate && o[1].endDate === this.proposedEndDate)?.[0] || 'custom';
328
+ await this.updateComplete;
329
+ this.#scrollSelectedListItemIntoView();
330
+ }}
331
+ ></titanium-date-input>
332
+
333
+ <titanium-date-input
334
+ end-date
335
+ label="To"
336
+ type=${this.enableTime ? 'datetime-local' : 'date'}
337
+ .value=${this.proposedEndDate ?? ''}
338
+ @change=${async (e) => {
339
+ this.proposedEndDate = e.target.value ?? '';
340
+ this.proposedRange =
341
+ Array.from(this.customDateRanges ? this.customDateRanges : this.enableTime ? DateTimeRanges : DateRanges).find((o) => o[1].startDate === this.proposedStartDate && o[1].endDate === this.proposedEndDate)?.[0] || 'custom';
342
+ await this.updateComplete;
343
+ this.#scrollSelectedListItemIntoView();
344
+ }}
345
+ >
346
+ </titanium-date-input>
347
+ <span error ?invisible=${this.#validateDates(this.proposedStartDate, this.proposedEndDate)}>From date cannot start after To date</span>
348
+ </input-container>
349
+ <menu-actions
350
+ ><md-text-button @click=${() => (this.open = false)}>Cancel</md-text-button>
351
+ <md-text-button
352
+ ?disabled=${this.startDate === this.proposedStartDate && this.endDate === this.proposedEndDate && this.proposedRange === this.range}
353
+ @click=${() => {
354
+ if (!this.#validateDates(this.proposedStartDate, this.proposedEndDate)) {
355
+ return;
356
+ }
357
+ this.startDate = this.proposedStartDate;
358
+ this.endDate = this.proposedEndDate;
359
+ this.range = this.proposedRange;
360
+ this.dispatchEvent(new Event('change'));
361
+ this.open = false;
362
+ }}
363
+ >Apply</md-text-button
364
+ >
365
+ </menu-actions>
366
+ </main>
367
+ </md-menu>
184
368
  `;
185
369
  }
186
370
  };
371
+ __decorate([
372
+ property({ type: String })
373
+ ], TitaniumDateRangeSelector.prototype, "range", null);
374
+ __decorate([
375
+ property({ type: String })
376
+ ], TitaniumDateRangeSelector.prototype, "startDate", null);
377
+ __decorate([
378
+ property({ type: String })
379
+ ], TitaniumDateRangeSelector.prototype, "endDate", null);
187
380
  __decorate([
188
381
  property({ type: String })
189
382
  ], TitaniumDateRangeSelector.prototype, "label", null);
@@ -191,26 +384,38 @@ __decorate([
191
384
  property({ type: Boolean })
192
385
  ], TitaniumDateRangeSelector.prototype, "enableTime", null);
193
386
  __decorate([
194
- property({ type: String })
195
- ], TitaniumDateRangeSelector.prototype, "range", null);
387
+ property({ type: Boolean, reflect: true })
388
+ ], TitaniumDateRangeSelector.prototype, "disabled", null);
196
389
  __decorate([
197
390
  property({ type: Object })
198
391
  ], TitaniumDateRangeSelector.prototype, "customDateRanges", null);
199
392
  __decorate([
200
- property({ type: String })
201
- ], TitaniumDateRangeSelector.prototype, "startDate", null);
202
- __decorate([
203
- property({ type: String })
204
- ], TitaniumDateRangeSelector.prototype, "endDate", null);
393
+ property({ attribute: 'supporting-text' })
394
+ ], TitaniumDateRangeSelector.prototype, "supportingText", null);
205
395
  __decorate([
206
- query('md-outlined-text-field[start-date]')
396
+ query('titanium-date-input[start-date]')
207
397
  ], TitaniumDateRangeSelector.prototype, "startDateField", null);
208
398
  __decorate([
209
- query('md-outlined-text-field[end-date]')
210
- ], TitaniumDateRangeSelector.prototype, "endDateField", null);
399
+ query('md-menu')
400
+ ], TitaniumDateRangeSelector.prototype, "menu", null);
401
+ __decorate([
402
+ query('md-list')
403
+ ], TitaniumDateRangeSelector.prototype, "list", null);
404
+ __decorate([
405
+ state()
406
+ ], TitaniumDateRangeSelector.prototype, "proposedRange", null);
407
+ __decorate([
408
+ state()
409
+ ], TitaniumDateRangeSelector.prototype, "proposedStartDate", null);
410
+ __decorate([
411
+ state()
412
+ ], TitaniumDateRangeSelector.prototype, "proposedEndDate", null);
413
+ __decorate([
414
+ state()
415
+ ], TitaniumDateRangeSelector.prototype, "open", null);
211
416
  __decorate([
212
- query('md-outlined-select')
213
- ], TitaniumDateRangeSelector.prototype, "select", null);
417
+ state()
418
+ ], TitaniumDateRangeSelector.prototype, "focused", null);
214
419
  TitaniumDateRangeSelector = __decorate([
215
420
  customElement('titanium-date-range-selector')
216
421
  ], TitaniumDateRangeSelector);
@@ -1 +1 @@
1
- {"version":3,"file":"date-range-selector.js","sourceRoot":"","sources":["date-range-selector.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"date-range-selector.js","sourceRoot":"","sources":["date-range-selector.ts"],"names":[],"mappings":"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"}