@ionic/core 8.5.9-nightly.20250530 → 8.5.9-nightly.20250602

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.
@@ -685,19 +685,18 @@ const Datetime = /*@__PURE__*/ proxyCustomElement(class Datetime extends HTMLEle
685
685
  warnIfValueOutOfBounds(valueToProcess, minParts, maxParts);
686
686
  }
687
687
  /**
688
- * If there are multiple values, pick an arbitrary one to clamp to. This way,
689
- * if the values are across months, we always show at least one of them. Note
690
- * that the values don't necessarily have to be in order.
688
+ * If there are multiple values, clamp to the last one.
689
+ * This is because the last value is the one that the user
690
+ * has most recently interacted with.
691
691
  */
692
- const singleValue = Array.isArray(valueToProcess) ? valueToProcess[0] : valueToProcess;
692
+ const singleValue = Array.isArray(valueToProcess) ? valueToProcess[valueToProcess.length - 1] : valueToProcess;
693
693
  const targetValue = clampDate(singleValue, minParts, maxParts);
694
694
  const { month, day, year, hour, minute } = targetValue;
695
695
  const ampm = parseAmPm(hour);
696
696
  /**
697
- * Since `activeParts` indicates a value that
698
- * been explicitly selected either by the
699
- * user or the app, only update `activeParts`
700
- * if the `value` property is set.
697
+ * Since `activeParts` indicates a value that been explicitly selected
698
+ * either by the user or the app, only update `activeParts` if the
699
+ * `value` property is set.
701
700
  */
702
701
  if (hasValue) {
703
702
  if (Array.isArray(valueToProcess)) {
@@ -722,51 +721,28 @@ const Datetime = /*@__PURE__*/ proxyCustomElement(class Datetime extends HTMLEle
722
721
  */
723
722
  this.activeParts = [];
724
723
  }
725
- /**
726
- * Only animate if:
727
- * 1. We're using grid style (wheel style pickers should just jump to new value)
728
- * 2. The month and/or year actually changed, and both are defined (otherwise there's nothing to animate to)
729
- * 3. The calendar body is visible (prevents animation when in collapsed datetime-button, for example)
730
- * 4. The month/year picker is not open (since you wouldn't see the animation anyway)
731
- */
732
724
  const didChangeMonth = (month !== undefined && month !== workingParts.month) || (year !== undefined && year !== workingParts.year);
733
725
  const bodyIsVisible = el.classList.contains('datetime-ready');
734
726
  const { isGridStyle, showMonthAndYear } = this;
735
- let areAllSelectedDatesInSameMonth = true;
736
- if (Array.isArray(valueToProcess)) {
737
- const firstMonth = valueToProcess[0].month;
738
- for (const date of valueToProcess) {
739
- if (date.month !== firstMonth) {
740
- areAllSelectedDatesInSameMonth = false;
741
- break;
742
- }
743
- }
727
+ if (isGridStyle && didChangeMonth && bodyIsVisible && !showMonthAndYear) {
728
+ /**
729
+ * Only animate if:
730
+ * 1. We're using grid style (wheel style pickers should just jump to new value)
731
+ * 2. The month and/or year actually changed, and both are defined (otherwise there's nothing to animate to)
732
+ * 3. The calendar body is visible (prevents animation when in collapsed datetime-button, for example)
733
+ * 4. The month/year picker is not open (since you wouldn't see the animation anyway)
734
+ */
735
+ this.animateToDate(targetValue);
744
736
  }
745
- /**
746
- * If there is more than one date selected
747
- * and the dates aren't all in the same month,
748
- * then we should neither animate to the date
749
- * nor update the working parts because we do
750
- * not know which date the user wants to view.
751
- */
752
- if (areAllSelectedDatesInSameMonth) {
753
- if (isGridStyle && didChangeMonth && bodyIsVisible && !showMonthAndYear) {
754
- this.animateToDate(targetValue);
755
- }
756
- else {
757
- /**
758
- * We only need to do this if we didn't just animate to a new month,
759
- * since that calls prevMonth/nextMonth which calls setWorkingParts for us.
760
- */
761
- this.setWorkingParts({
762
- month,
763
- day,
764
- year,
765
- hour,
766
- minute,
767
- ampm,
768
- });
769
- }
737
+ else {
738
+ this.setWorkingParts({
739
+ month,
740
+ day,
741
+ year,
742
+ hour,
743
+ minute,
744
+ ampm,
745
+ });
770
746
  }
771
747
  };
772
748
  this.animateToDate = async (targetValue) => {
@@ -1761,7 +1737,7 @@ const Datetime = /*@__PURE__*/ proxyCustomElement(class Datetime extends HTMLEle
1761
1737
  const hasDatePresentation = presentation === 'date' || presentation === 'date-time' || presentation === 'time-date';
1762
1738
  const hasWheelVariant = hasDatePresentation && preferWheel;
1763
1739
  renderHiddenInput(true, el, name, formatValue(value), disabled);
1764
- return (h(Host, { key: 'c3dfea8f46fcbcef38eb9e8a69b1b46a4e4b82fd', "aria-disabled": disabled ? 'true' : null, onFocus: this.onFocus, onBlur: this.onBlur, class: Object.assign({}, createColorClasses(color, {
1740
+ return (h(Host, { key: '20e64fb4cfe3fbd74b24038c89e00651d78b500c', "aria-disabled": disabled ? 'true' : null, onFocus: this.onFocus, onBlur: this.onBlur, class: Object.assign({}, createColorClasses(color, {
1765
1741
  [mode]: true,
1766
1742
  ['datetime-readonly']: readonly,
1767
1743
  ['datetime-disabled']: disabled,
@@ -1771,7 +1747,7 @@ const Datetime = /*@__PURE__*/ proxyCustomElement(class Datetime extends HTMLEle
1771
1747
  [`datetime-size-${size}`]: true,
1772
1748
  [`datetime-prefer-wheel`]: hasWheelVariant,
1773
1749
  [`datetime-grid`]: isGridStyle,
1774
- })) }, h("div", { key: '75c91243cf6a51f44b83d7cf7d8c0c96bfd3c83f', class: "intersection-tracker", ref: (el) => (this.intersectionTrackerRef = el) }), this.renderDatetime(mode)));
1750
+ })) }, h("div", { key: '488fe7bf6b9052e208d65206a580d5d65b945a62', class: "intersection-tracker", ref: (el) => (this.intersectionTrackerRef = el) }), this.renderDatetime(mode)));
1775
1751
  }
1776
1752
  get el() { return this; }
1777
1753
  static get watchers() { return {
@@ -687,19 +687,18 @@ const Datetime = class {
687
687
  data.warnIfValueOutOfBounds(valueToProcess, minParts, maxParts);
688
688
  }
689
689
  /**
690
- * If there are multiple values, pick an arbitrary one to clamp to. This way,
691
- * if the values are across months, we always show at least one of them. Note
692
- * that the values don't necessarily have to be in order.
690
+ * If there are multiple values, clamp to the last one.
691
+ * This is because the last value is the one that the user
692
+ * has most recently interacted with.
693
693
  */
694
- const singleValue = Array.isArray(valueToProcess) ? valueToProcess[0] : valueToProcess;
694
+ const singleValue = Array.isArray(valueToProcess) ? valueToProcess[valueToProcess.length - 1] : valueToProcess;
695
695
  const targetValue = data.clampDate(singleValue, minParts, maxParts);
696
696
  const { month, day, year, hour, minute } = targetValue;
697
697
  const ampm = data.parseAmPm(hour);
698
698
  /**
699
- * Since `activeParts` indicates a value that
700
- * been explicitly selected either by the
701
- * user or the app, only update `activeParts`
702
- * if the `value` property is set.
699
+ * Since `activeParts` indicates a value that been explicitly selected
700
+ * either by the user or the app, only update `activeParts` if the
701
+ * `value` property is set.
703
702
  */
704
703
  if (hasValue) {
705
704
  if (Array.isArray(valueToProcess)) {
@@ -724,51 +723,28 @@ const Datetime = class {
724
723
  */
725
724
  this.activeParts = [];
726
725
  }
727
- /**
728
- * Only animate if:
729
- * 1. We're using grid style (wheel style pickers should just jump to new value)
730
- * 2. The month and/or year actually changed, and both are defined (otherwise there's nothing to animate to)
731
- * 3. The calendar body is visible (prevents animation when in collapsed datetime-button, for example)
732
- * 4. The month/year picker is not open (since you wouldn't see the animation anyway)
733
- */
734
726
  const didChangeMonth = (month !== undefined && month !== workingParts.month) || (year !== undefined && year !== workingParts.year);
735
727
  const bodyIsVisible = el.classList.contains('datetime-ready');
736
728
  const { isGridStyle, showMonthAndYear } = this;
737
- let areAllSelectedDatesInSameMonth = true;
738
- if (Array.isArray(valueToProcess)) {
739
- const firstMonth = valueToProcess[0].month;
740
- for (const date of valueToProcess) {
741
- if (date.month !== firstMonth) {
742
- areAllSelectedDatesInSameMonth = false;
743
- break;
744
- }
745
- }
729
+ if (isGridStyle && didChangeMonth && bodyIsVisible && !showMonthAndYear) {
730
+ /**
731
+ * Only animate if:
732
+ * 1. We're using grid style (wheel style pickers should just jump to new value)
733
+ * 2. The month and/or year actually changed, and both are defined (otherwise there's nothing to animate to)
734
+ * 3. The calendar body is visible (prevents animation when in collapsed datetime-button, for example)
735
+ * 4. The month/year picker is not open (since you wouldn't see the animation anyway)
736
+ */
737
+ this.animateToDate(targetValue);
746
738
  }
747
- /**
748
- * If there is more than one date selected
749
- * and the dates aren't all in the same month,
750
- * then we should neither animate to the date
751
- * nor update the working parts because we do
752
- * not know which date the user wants to view.
753
- */
754
- if (areAllSelectedDatesInSameMonth) {
755
- if (isGridStyle && didChangeMonth && bodyIsVisible && !showMonthAndYear) {
756
- this.animateToDate(targetValue);
757
- }
758
- else {
759
- /**
760
- * We only need to do this if we didn't just animate to a new month,
761
- * since that calls prevMonth/nextMonth which calls setWorkingParts for us.
762
- */
763
- this.setWorkingParts({
764
- month,
765
- day,
766
- year,
767
- hour,
768
- minute,
769
- ampm,
770
- });
771
- }
739
+ else {
740
+ this.setWorkingParts({
741
+ month,
742
+ day,
743
+ year,
744
+ hour,
745
+ minute,
746
+ ampm,
747
+ });
772
748
  }
773
749
  };
774
750
  this.animateToDate = async (targetValue) => {
@@ -1763,7 +1739,7 @@ const Datetime = class {
1763
1739
  const hasDatePresentation = presentation === 'date' || presentation === 'date-time' || presentation === 'time-date';
1764
1740
  const hasWheelVariant = hasDatePresentation && preferWheel;
1765
1741
  helpers.renderHiddenInput(true, el, name, data.formatValue(value), disabled);
1766
- return (index$1.h(index$1.Host, { key: 'c3dfea8f46fcbcef38eb9e8a69b1b46a4e4b82fd', "aria-disabled": disabled ? 'true' : null, onFocus: this.onFocus, onBlur: this.onBlur, class: Object.assign({}, theme.createColorClasses(color, {
1742
+ return (index$1.h(index$1.Host, { key: '20e64fb4cfe3fbd74b24038c89e00651d78b500c', "aria-disabled": disabled ? 'true' : null, onFocus: this.onFocus, onBlur: this.onBlur, class: Object.assign({}, theme.createColorClasses(color, {
1767
1743
  [mode]: true,
1768
1744
  ['datetime-readonly']: readonly,
1769
1745
  ['datetime-disabled']: disabled,
@@ -1773,7 +1749,7 @@ const Datetime = class {
1773
1749
  [`datetime-size-${size}`]: true,
1774
1750
  [`datetime-prefer-wheel`]: hasWheelVariant,
1775
1751
  [`datetime-grid`]: isGridStyle,
1776
- })) }, index$1.h("div", { key: '75c91243cf6a51f44b83d7cf7d8c0c96bfd3c83f', class: "intersection-tracker", ref: (el) => (this.intersectionTrackerRef = el) }), this.renderDatetime(mode)));
1752
+ })) }, index$1.h("div", { key: '488fe7bf6b9052e208d65206a580d5d65b945a62', class: "intersection-tracker", ref: (el) => (this.intersectionTrackerRef = el) }), this.renderDatetime(mode)));
1777
1753
  }
1778
1754
  get el() { return index$1.getElement(this); }
1779
1755
  static get watchers() { return {
@@ -481,19 +481,18 @@ export class Datetime {
481
481
  warnIfValueOutOfBounds(valueToProcess, minParts, maxParts);
482
482
  }
483
483
  /**
484
- * If there are multiple values, pick an arbitrary one to clamp to. This way,
485
- * if the values are across months, we always show at least one of them. Note
486
- * that the values don't necessarily have to be in order.
484
+ * If there are multiple values, clamp to the last one.
485
+ * This is because the last value is the one that the user
486
+ * has most recently interacted with.
487
487
  */
488
- const singleValue = Array.isArray(valueToProcess) ? valueToProcess[0] : valueToProcess;
488
+ const singleValue = Array.isArray(valueToProcess) ? valueToProcess[valueToProcess.length - 1] : valueToProcess;
489
489
  const targetValue = clampDate(singleValue, minParts, maxParts);
490
490
  const { month, day, year, hour, minute } = targetValue;
491
491
  const ampm = parseAmPm(hour);
492
492
  /**
493
- * Since `activeParts` indicates a value that
494
- * been explicitly selected either by the
495
- * user or the app, only update `activeParts`
496
- * if the `value` property is set.
493
+ * Since `activeParts` indicates a value that been explicitly selected
494
+ * either by the user or the app, only update `activeParts` if the
495
+ * `value` property is set.
497
496
  */
498
497
  if (hasValue) {
499
498
  if (Array.isArray(valueToProcess)) {
@@ -518,51 +517,28 @@ export class Datetime {
518
517
  */
519
518
  this.activeParts = [];
520
519
  }
521
- /**
522
- * Only animate if:
523
- * 1. We're using grid style (wheel style pickers should just jump to new value)
524
- * 2. The month and/or year actually changed, and both are defined (otherwise there's nothing to animate to)
525
- * 3. The calendar body is visible (prevents animation when in collapsed datetime-button, for example)
526
- * 4. The month/year picker is not open (since you wouldn't see the animation anyway)
527
- */
528
520
  const didChangeMonth = (month !== undefined && month !== workingParts.month) || (year !== undefined && year !== workingParts.year);
529
521
  const bodyIsVisible = el.classList.contains('datetime-ready');
530
522
  const { isGridStyle, showMonthAndYear } = this;
531
- let areAllSelectedDatesInSameMonth = true;
532
- if (Array.isArray(valueToProcess)) {
533
- const firstMonth = valueToProcess[0].month;
534
- for (const date of valueToProcess) {
535
- if (date.month !== firstMonth) {
536
- areAllSelectedDatesInSameMonth = false;
537
- break;
538
- }
539
- }
523
+ if (isGridStyle && didChangeMonth && bodyIsVisible && !showMonthAndYear) {
524
+ /**
525
+ * Only animate if:
526
+ * 1. We're using grid style (wheel style pickers should just jump to new value)
527
+ * 2. The month and/or year actually changed, and both are defined (otherwise there's nothing to animate to)
528
+ * 3. The calendar body is visible (prevents animation when in collapsed datetime-button, for example)
529
+ * 4. The month/year picker is not open (since you wouldn't see the animation anyway)
530
+ */
531
+ this.animateToDate(targetValue);
540
532
  }
541
- /**
542
- * If there is more than one date selected
543
- * and the dates aren't all in the same month,
544
- * then we should neither animate to the date
545
- * nor update the working parts because we do
546
- * not know which date the user wants to view.
547
- */
548
- if (areAllSelectedDatesInSameMonth) {
549
- if (isGridStyle && didChangeMonth && bodyIsVisible && !showMonthAndYear) {
550
- this.animateToDate(targetValue);
551
- }
552
- else {
553
- /**
554
- * We only need to do this if we didn't just animate to a new month,
555
- * since that calls prevMonth/nextMonth which calls setWorkingParts for us.
556
- */
557
- this.setWorkingParts({
558
- month,
559
- day,
560
- year,
561
- hour,
562
- minute,
563
- ampm,
564
- });
565
- }
533
+ else {
534
+ this.setWorkingParts({
535
+ month,
536
+ day,
537
+ year,
538
+ hour,
539
+ minute,
540
+ ampm,
541
+ });
566
542
  }
567
543
  };
568
544
  this.animateToDate = async (targetValue) => {
@@ -1557,7 +1533,7 @@ export class Datetime {
1557
1533
  const hasDatePresentation = presentation === 'date' || presentation === 'date-time' || presentation === 'time-date';
1558
1534
  const hasWheelVariant = hasDatePresentation && preferWheel;
1559
1535
  renderHiddenInput(true, el, name, formatValue(value), disabled);
1560
- return (h(Host, { key: 'c3dfea8f46fcbcef38eb9e8a69b1b46a4e4b82fd', "aria-disabled": disabled ? 'true' : null, onFocus: this.onFocus, onBlur: this.onBlur, class: Object.assign({}, createColorClasses(color, {
1536
+ return (h(Host, { key: '20e64fb4cfe3fbd74b24038c89e00651d78b500c', "aria-disabled": disabled ? 'true' : null, onFocus: this.onFocus, onBlur: this.onBlur, class: Object.assign({}, createColorClasses(color, {
1561
1537
  [mode]: true,
1562
1538
  ['datetime-readonly']: readonly,
1563
1539
  ['datetime-disabled']: disabled,
@@ -1567,7 +1543,7 @@ export class Datetime {
1567
1543
  [`datetime-size-${size}`]: true,
1568
1544
  [`datetime-prefer-wheel`]: hasWheelVariant,
1569
1545
  [`datetime-grid`]: isGridStyle,
1570
- })) }, h("div", { key: '75c91243cf6a51f44b83d7cf7d8c0c96bfd3c83f', class: "intersection-tracker", ref: (el) => (this.intersectionTrackerRef = el) }), this.renderDatetime(mode)));
1546
+ })) }, h("div", { key: '488fe7bf6b9052e208d65206a580d5d65b945a62', class: "intersection-tracker", ref: (el) => (this.intersectionTrackerRef = el) }), this.renderDatetime(mode)));
1571
1547
  }
1572
1548
  static get is() { return "ion-datetime"; }
1573
1549
  static get encapsulation() { return "shadow"; }
package/dist/docs.json CHANGED
@@ -1,5 +1,5 @@
1
1
  {
2
- "timestamp": "2025-05-30T06:09:44",
2
+ "timestamp": "2025-06-02T06:10:56",
3
3
  "compiler": {
4
4
  "name": "@stencil/core",
5
5
  "version": "4.20.0",
@@ -683,19 +683,18 @@ const Datetime = class {
683
683
  warnIfValueOutOfBounds(valueToProcess, minParts, maxParts);
684
684
  }
685
685
  /**
686
- * If there are multiple values, pick an arbitrary one to clamp to. This way,
687
- * if the values are across months, we always show at least one of them. Note
688
- * that the values don't necessarily have to be in order.
686
+ * If there are multiple values, clamp to the last one.
687
+ * This is because the last value is the one that the user
688
+ * has most recently interacted with.
689
689
  */
690
- const singleValue = Array.isArray(valueToProcess) ? valueToProcess[0] : valueToProcess;
690
+ const singleValue = Array.isArray(valueToProcess) ? valueToProcess[valueToProcess.length - 1] : valueToProcess;
691
691
  const targetValue = clampDate(singleValue, minParts, maxParts);
692
692
  const { month, day, year, hour, minute } = targetValue;
693
693
  const ampm = parseAmPm(hour);
694
694
  /**
695
- * Since `activeParts` indicates a value that
696
- * been explicitly selected either by the
697
- * user or the app, only update `activeParts`
698
- * if the `value` property is set.
695
+ * Since `activeParts` indicates a value that been explicitly selected
696
+ * either by the user or the app, only update `activeParts` if the
697
+ * `value` property is set.
699
698
  */
700
699
  if (hasValue) {
701
700
  if (Array.isArray(valueToProcess)) {
@@ -720,51 +719,28 @@ const Datetime = class {
720
719
  */
721
720
  this.activeParts = [];
722
721
  }
723
- /**
724
- * Only animate if:
725
- * 1. We're using grid style (wheel style pickers should just jump to new value)
726
- * 2. The month and/or year actually changed, and both are defined (otherwise there's nothing to animate to)
727
- * 3. The calendar body is visible (prevents animation when in collapsed datetime-button, for example)
728
- * 4. The month/year picker is not open (since you wouldn't see the animation anyway)
729
- */
730
722
  const didChangeMonth = (month !== undefined && month !== workingParts.month) || (year !== undefined && year !== workingParts.year);
731
723
  const bodyIsVisible = el.classList.contains('datetime-ready');
732
724
  const { isGridStyle, showMonthAndYear } = this;
733
- let areAllSelectedDatesInSameMonth = true;
734
- if (Array.isArray(valueToProcess)) {
735
- const firstMonth = valueToProcess[0].month;
736
- for (const date of valueToProcess) {
737
- if (date.month !== firstMonth) {
738
- areAllSelectedDatesInSameMonth = false;
739
- break;
740
- }
741
- }
725
+ if (isGridStyle && didChangeMonth && bodyIsVisible && !showMonthAndYear) {
726
+ /**
727
+ * Only animate if:
728
+ * 1. We're using grid style (wheel style pickers should just jump to new value)
729
+ * 2. The month and/or year actually changed, and both are defined (otherwise there's nothing to animate to)
730
+ * 3. The calendar body is visible (prevents animation when in collapsed datetime-button, for example)
731
+ * 4. The month/year picker is not open (since you wouldn't see the animation anyway)
732
+ */
733
+ this.animateToDate(targetValue);
742
734
  }
743
- /**
744
- * If there is more than one date selected
745
- * and the dates aren't all in the same month,
746
- * then we should neither animate to the date
747
- * nor update the working parts because we do
748
- * not know which date the user wants to view.
749
- */
750
- if (areAllSelectedDatesInSameMonth) {
751
- if (isGridStyle && didChangeMonth && bodyIsVisible && !showMonthAndYear) {
752
- this.animateToDate(targetValue);
753
- }
754
- else {
755
- /**
756
- * We only need to do this if we didn't just animate to a new month,
757
- * since that calls prevMonth/nextMonth which calls setWorkingParts for us.
758
- */
759
- this.setWorkingParts({
760
- month,
761
- day,
762
- year,
763
- hour,
764
- minute,
765
- ampm,
766
- });
767
- }
735
+ else {
736
+ this.setWorkingParts({
737
+ month,
738
+ day,
739
+ year,
740
+ hour,
741
+ minute,
742
+ ampm,
743
+ });
768
744
  }
769
745
  };
770
746
  this.animateToDate = async (targetValue) => {
@@ -1759,7 +1735,7 @@ const Datetime = class {
1759
1735
  const hasDatePresentation = presentation === 'date' || presentation === 'date-time' || presentation === 'time-date';
1760
1736
  const hasWheelVariant = hasDatePresentation && preferWheel;
1761
1737
  renderHiddenInput(true, el, name, formatValue(value), disabled);
1762
- return (h(Host, { key: 'c3dfea8f46fcbcef38eb9e8a69b1b46a4e4b82fd', "aria-disabled": disabled ? 'true' : null, onFocus: this.onFocus, onBlur: this.onBlur, class: Object.assign({}, createColorClasses(color, {
1738
+ return (h(Host, { key: '20e64fb4cfe3fbd74b24038c89e00651d78b500c', "aria-disabled": disabled ? 'true' : null, onFocus: this.onFocus, onBlur: this.onBlur, class: Object.assign({}, createColorClasses(color, {
1763
1739
  [mode]: true,
1764
1740
  ['datetime-readonly']: readonly,
1765
1741
  ['datetime-disabled']: disabled,
@@ -1769,7 +1745,7 @@ const Datetime = class {
1769
1745
  [`datetime-size-${size}`]: true,
1770
1746
  [`datetime-prefer-wheel`]: hasWheelVariant,
1771
1747
  [`datetime-grid`]: isGridStyle,
1772
- })) }, h("div", { key: '75c91243cf6a51f44b83d7cf7d8c0c96bfd3c83f', class: "intersection-tracker", ref: (el) => (this.intersectionTrackerRef = el) }), this.renderDatetime(mode)));
1748
+ })) }, h("div", { key: '488fe7bf6b9052e208d65206a580d5d65b945a62', class: "intersection-tracker", ref: (el) => (this.intersectionTrackerRef = el) }), this.renderDatetime(mode)));
1773
1749
  }
1774
1750
  get el() { return getElement(this); }
1775
1751
  static get watchers() { return {