@ionic/core 9.0.11-dev.11793889755.165fa328 → 9.0.11-dev.11793900758.1bf6a6e5
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.
- package/components/ion-accordion.js +1 -1
- package/components/ion-datetime-button.js +1 -1
- package/components/ion-datetime.js +1 -1
- package/components/{p-BCQSEpww.js → p-B7ExaLVL.js} +1 -1
- package/css/ionic/bundle.ionic.css +1 -1
- package/css/ionic/bundle.ionic.css.map +1 -1
- package/css/ionic/core.ionic.css +1 -1
- package/css/ionic/core.ionic.css.map +1 -1
- package/dist/cjs/ion-accordion_2.cjs.entry.js +1 -1
- package/dist/cjs/ion-datetime-button.cjs.entry.js +33 -6
- package/dist/cjs/ion-datetime.cjs.entry.js +339 -37
- package/dist/cjs/ionic.cjs.js +1 -1
- package/dist/cjs/loader.cjs.js +1 -1
- package/dist/collection/components/accordion/accordion.ionic.css +11 -6
- package/dist/collection/components/datetime/datetime.ionic.css +211 -5
- package/dist/collection/components/datetime/datetime.ios.css +164 -0
- package/dist/collection/components/datetime/datetime.js +394 -36
- package/dist/collection/components/datetime/datetime.md.css +152 -0
- package/dist/collection/components/datetime/utils/state.js +18 -1
- package/dist/collection/components/datetime-button/datetime-button.js +34 -6
- package/dist/docs.json +153 -3
- package/dist/esm/{format-NT7iHsbA.js → format-DUHrIiJq.js} +1 -1
- package/dist/esm/ion-accordion_2.entry.js +1 -1
- package/dist/esm/ion-datetime-button.entry.js +34 -7
- package/dist/esm/ion-datetime.entry.js +340 -38
- package/dist/esm/ionic.js +1 -1
- package/dist/esm/loader.js +1 -1
- package/dist/html.html-data.json +21 -1
- package/dist/ionic/ionic.esm.js +1 -1
- package/dist/ionic/{p-0f694e87.entry.js → p-8b107444.entry.js} +1 -1
- package/dist/ionic/{p-BtccSO5J.js → p-CaOPF8Xt.js} +1 -1
- package/dist/ionic/p-ceca04fb.entry.js +4 -0
- package/dist/ionic/p-ec99dc1f.entry.js +4 -0
- package/dist/types/components/datetime/datetime-interface.d.ts +4 -0
- package/dist/types/components/datetime/datetime.d.ts +73 -6
- package/dist/types/components/datetime/utils/state.d.ts +5 -2
- package/dist/types/components.d.ts +37 -4
- package/hydrate/index.js +381 -44
- package/hydrate/index.mjs +381 -44
- package/package.json +1 -1
- package/dist/ionic/p-0743a26a.entry.js +0 -4
- package/dist/ionic/p-ad46d2fd.entry.js +0 -4
|
@@ -5,7 +5,7 @@ import { r as registerInstance, c as printIonError, h, f as Host, g as getElemen
|
|
|
5
5
|
import { f as addEventListener, c as componentOnReady } from './helpers-B_F2b1gy.js';
|
|
6
6
|
import { c as createColorClasses } from './theme-BUF_V-Kg.js';
|
|
7
7
|
import { c as getIonTheme } from './ionic-global-DSbFWXp3.js';
|
|
8
|
-
import {
|
|
8
|
+
import { E as parseDate, d as getHourCycle, P as getLocalizedDateTime, O as getLocalizedTime, l as isAfter } from './format-DUHrIiJq.js';
|
|
9
9
|
import './index-ZjP4CjeZ.js';
|
|
10
10
|
import './focus-visible-BYk20Mf5.js';
|
|
11
11
|
import './dir-Dj4J3LkD.js';
|
|
@@ -52,7 +52,7 @@ const DatetimeButton = class {
|
|
|
52
52
|
if (!datetimeEl) {
|
|
53
53
|
return;
|
|
54
54
|
}
|
|
55
|
-
const { value, locale, formatOptions, hourCycle, preferWheel, multiple, titleSelectedDatesFormatter } = datetimeEl;
|
|
55
|
+
const { value, locale, formatOptions, hourCycle, preferWheel, multiple, selectionMode, titleSelectedDatesFormatter, } = datetimeEl;
|
|
56
56
|
const parsedValues = this.getParsedDateValues(value);
|
|
57
57
|
/**
|
|
58
58
|
* Both ion-datetime and ion-datetime-button default to today's date and
|
|
@@ -64,6 +64,8 @@ const DatetimeButton = class {
|
|
|
64
64
|
if (!parsedDatetimes) {
|
|
65
65
|
return;
|
|
66
66
|
}
|
|
67
|
+
const isRangeMode = selectionMode === 'range';
|
|
68
|
+
const isMultipleMode = selectionMode === 'multiple' || (selectionMode === undefined && multiple);
|
|
67
69
|
/**
|
|
68
70
|
* If developers incorrectly use multiple="true"
|
|
69
71
|
* with non "date" datetimes, then just select
|
|
@@ -73,11 +75,12 @@ const DatetimeButton = class {
|
|
|
73
75
|
*/
|
|
74
76
|
const firstParsedDatetime = parsedDatetimes[0];
|
|
75
77
|
const computedHourCycle = getHourCycle(locale, hourCycle);
|
|
78
|
+
const dateFormatOptions = formatOptions?.date ?? { month: 'short', day: 'numeric', year: 'numeric' };
|
|
76
79
|
this.dateText = this.timeText = undefined;
|
|
77
80
|
switch (datetimePresentation) {
|
|
78
81
|
case 'date-time':
|
|
79
82
|
case 'time-date':
|
|
80
|
-
const dateText = getLocalizedDateTime(locale, firstParsedDatetime,
|
|
83
|
+
const dateText = getLocalizedDateTime(locale, firstParsedDatetime, dateFormatOptions);
|
|
81
84
|
const timeText = getLocalizedTime(locale, firstParsedDatetime, computedHourCycle, formatOptions?.time);
|
|
82
85
|
if (preferWheel) {
|
|
83
86
|
this.dateText = `${dateText} ${timeText}`;
|
|
@@ -88,7 +91,31 @@ const DatetimeButton = class {
|
|
|
88
91
|
}
|
|
89
92
|
break;
|
|
90
93
|
case 'date':
|
|
91
|
-
if (
|
|
94
|
+
if (isRangeMode && parsedValues.length >= 2) {
|
|
95
|
+
/**
|
|
96
|
+
* Use the first and last entries in date order, matching
|
|
97
|
+
* how ion-datetime reads a range value.
|
|
98
|
+
*/
|
|
99
|
+
let startIndex = 0;
|
|
100
|
+
let endIndex = parsedValues.length - 1;
|
|
101
|
+
if (isAfter(parsedDatetimes[startIndex], parsedDatetimes[endIndex])) {
|
|
102
|
+
[startIndex, endIndex] = [endIndex, startIndex];
|
|
103
|
+
}
|
|
104
|
+
const rangeValues = [parsedValues[startIndex], parsedValues[endIndex]];
|
|
105
|
+
const startDate = getLocalizedDateTime(locale, parsedDatetimes[startIndex], dateFormatOptions);
|
|
106
|
+
const endDate = getLocalizedDateTime(locale, parsedDatetimes[endIndex], dateFormatOptions);
|
|
107
|
+
let rangeText = `${startDate} - ${endDate}`;
|
|
108
|
+
if (titleSelectedDatesFormatter !== undefined) {
|
|
109
|
+
try {
|
|
110
|
+
rangeText = titleSelectedDatesFormatter(rangeValues);
|
|
111
|
+
}
|
|
112
|
+
catch (e) {
|
|
113
|
+
printIonError('[ion-datetime-button] - Exception in provided `titleSelectedDatesFormatter`:', e);
|
|
114
|
+
}
|
|
115
|
+
}
|
|
116
|
+
this.dateText = rangeText;
|
|
117
|
+
}
|
|
118
|
+
else if (isMultipleMode && parsedValues.length !== 1) {
|
|
92
119
|
let headerText = `${parsedValues.length} days`; // default/fallback for multiple selection
|
|
93
120
|
if (titleSelectedDatesFormatter !== undefined) {
|
|
94
121
|
try {
|
|
@@ -101,7 +128,7 @@ const DatetimeButton = class {
|
|
|
101
128
|
this.dateText = headerText;
|
|
102
129
|
}
|
|
103
130
|
else {
|
|
104
|
-
this.dateText = getLocalizedDateTime(locale, firstParsedDatetime,
|
|
131
|
+
this.dateText = getLocalizedDateTime(locale, firstParsedDatetime, dateFormatOptions);
|
|
105
132
|
}
|
|
106
133
|
break;
|
|
107
134
|
case 'time':
|
|
@@ -338,11 +365,11 @@ const DatetimeButton = class {
|
|
|
338
365
|
render() {
|
|
339
366
|
const { color, dateText, timeText, selectedButton, datetimeActive, disabled } = this;
|
|
340
367
|
const theme = getIonTheme(this);
|
|
341
|
-
return (h(Host, { key: '
|
|
368
|
+
return (h(Host, { key: 'e022c5c280d4f889c1ba7ca3e96b38063c5add30', class: createColorClasses(color, {
|
|
342
369
|
[theme]: true,
|
|
343
370
|
[`${selectedButton}-active`]: datetimeActive,
|
|
344
371
|
['datetime-button-disabled']: disabled,
|
|
345
|
-
}) }, dateText && (h("button", { key: '
|
|
372
|
+
}) }, dateText && (h("button", { key: 'b1267d98cefbce7666b0cafa083c42f3116e2398', class: "ion-activatable", id: "date-button", "aria-expanded": datetimeActive ? 'true' : 'false', onClick: this.handleDateClick, disabled: disabled, part: "native", ref: (el) => (this.dateTargetEl = el) }, h("slot", { key: '3fdfa6adf73ee1e35cdb7f318f1d1ddcf4ab4d7b', name: "date-target" }, dateText), theme === 'md' && h("ion-ripple-effect", { key: 'a832d63c77fffe8d7e0d28827bbb469726373d1e' }))), timeText && (h("button", { key: 'c589bdf2b8221609713f0d3554494dd08a1f2e5b', class: "ion-activatable", id: "time-button", "aria-expanded": datetimeActive ? 'true' : 'false', onClick: this.handleTimeClick, disabled: disabled, part: "native", ref: (el) => (this.timeTargetEl = el) }, h("slot", { key: '10769ddadf7933d78744facaaa153bb413ff484a', name: "time-target" }, timeText), theme === 'md' && h("ion-ripple-effect", { key: '7832de031919ddfb312528b45a3dc8e1c20edea6' })))));
|
|
346
373
|
}
|
|
347
374
|
get el() { return getElement(this); }
|
|
348
375
|
};
|