@esri/calcite-components 1.0.0-next.318 → 1.0.0-next.321
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/dist/calcite/assets/calcite-icon/centerAlign16.json +1 -0
- package/dist/calcite/assets/calcite-icon/centerAlign24.json +1 -0
- package/dist/calcite/assets/calcite-icon/centerAlign32.json +1 -0
- package/dist/calcite/assets/calcite-icon/convert16.json +1 -0
- package/dist/calcite/assets/calcite-icon/convert24.json +1 -0
- package/dist/calcite/assets/calcite-icon/convert32.json +1 -0
- package/dist/calcite/assets/calcite-icon/formDropdown16.json +1 -0
- package/dist/calcite/assets/calcite-icon/formDropdown24.json +1 -0
- package/dist/calcite/assets/calcite-icon/formDropdown32.json +1 -0
- package/dist/calcite/assets/calcite-icon/language16.json +1 -0
- package/dist/calcite/assets/calcite-icon/language24.json +1 -0
- package/dist/calcite/assets/calcite-icon/language32.json +1 -0
- package/dist/calcite/assets/calcite-icon/languageTranslate16.json +1 -0
- package/dist/calcite/assets/calcite-icon/languageTranslate24.json +1 -0
- package/dist/calcite/assets/calcite-icon/languageTranslate32.json +1 -0
- package/dist/calcite/assets/calcite-icon/leftAlign16.json +1 -0
- package/dist/calcite/assets/calcite-icon/leftAlign24.json +1 -0
- package/dist/calcite/assets/calcite-icon/leftAlign32.json +1 -0
- package/dist/calcite/assets/calcite-icon/terminal16.json +1 -0
- package/dist/calcite/assets/calcite-icon/terminal24.json +1 -0
- package/dist/calcite/assets/calcite-icon/terminal32.json +1 -0
- package/dist/calcite/assets/calcite-icon/touch16.json +1 -0
- package/dist/calcite/assets/calcite-icon/touch24.json +1 -0
- package/dist/calcite/assets/calcite-icon/touch32.json +1 -0
- package/dist/calcite/calcite.esm.js +1 -1
- package/dist/calcite/p-04bce033.entry.js +5 -0
- package/dist/calcite/p-1480eb2d.entry.js +5 -0
- package/dist/calcite/p-2cd9d307.entry.js +5 -0
- package/dist/calcite/{p-8b2d4eac.system.entry.js → p-4e95e13d.system.entry.js} +1 -1
- package/dist/calcite/p-58208234.system.entry.js +5 -0
- package/dist/calcite/p-6e050609.entry.js +5 -0
- package/dist/calcite/p-8e252799.system.js +1 -1
- package/dist/calcite/{p-f97e1a2d.entry.js → p-a57aa5d0.entry.js} +1 -1
- package/dist/calcite/p-ad617a5a.entry.js +5 -0
- package/dist/calcite/p-cb55c32c.system.entry.js +5 -0
- package/dist/calcite/p-ed82600e.system.entry.js +5 -0
- package/dist/calcite/{p-44a07313.system.entry.js → p-f7b5dd98.system.entry.js} +1 -1
- package/dist/calcite/p-fa9a1d8f.system.entry.js +5 -0
- package/dist/cjs/calcite-button.cjs.entry.js +2 -2
- package/dist/cjs/calcite-color-picker_3.cjs.entry.js +3 -3
- package/dist/cjs/calcite-combobox_3.cjs.entry.js +4 -1
- package/dist/cjs/calcite-input-time-picker_2.cjs.entry.js +349 -223
- package/dist/cjs/calcite-option_3.cjs.entry.js +3 -1
- package/dist/cjs/calcite-panel.cjs.entry.js +3 -3
- package/dist/cjs/calcite.cjs.js +1 -1
- package/dist/cjs/loader.cjs.js +1 -1
- package/dist/collection/components/calcite-button/calcite-button.js +3 -2
- package/dist/collection/components/calcite-combobox/calcite-combobox.js +4 -1
- package/dist/collection/components/calcite-icon/assets/calcite-icon/centerAlign16.json +1 -0
- package/dist/collection/components/calcite-icon/assets/calcite-icon/centerAlign24.json +1 -0
- package/dist/collection/components/calcite-icon/assets/calcite-icon/centerAlign32.json +1 -0
- package/dist/collection/components/calcite-icon/assets/calcite-icon/convert16.json +1 -0
- package/dist/collection/components/calcite-icon/assets/calcite-icon/convert24.json +1 -0
- package/dist/collection/components/calcite-icon/assets/calcite-icon/convert32.json +1 -0
- package/dist/collection/components/calcite-icon/assets/calcite-icon/formDropdown16.json +1 -0
- package/dist/collection/components/calcite-icon/assets/calcite-icon/formDropdown24.json +1 -0
- package/dist/collection/components/calcite-icon/assets/calcite-icon/formDropdown32.json +1 -0
- package/dist/collection/components/calcite-icon/assets/calcite-icon/language16.json +1 -0
- package/dist/collection/components/calcite-icon/assets/calcite-icon/language24.json +1 -0
- package/dist/collection/components/calcite-icon/assets/calcite-icon/language32.json +1 -0
- package/dist/collection/components/calcite-icon/assets/calcite-icon/languageTranslate16.json +1 -0
- package/dist/collection/components/calcite-icon/assets/calcite-icon/languageTranslate24.json +1 -0
- package/dist/collection/components/calcite-icon/assets/calcite-icon/languageTranslate32.json +1 -0
- package/dist/collection/components/calcite-icon/assets/calcite-icon/leftAlign16.json +1 -0
- package/dist/collection/components/calcite-icon/assets/calcite-icon/leftAlign24.json +1 -0
- package/dist/collection/components/calcite-icon/assets/calcite-icon/leftAlign32.json +1 -0
- package/dist/collection/components/calcite-icon/assets/calcite-icon/terminal16.json +1 -0
- package/dist/collection/components/calcite-icon/assets/calcite-icon/terminal24.json +1 -0
- package/dist/collection/components/calcite-icon/assets/calcite-icon/terminal32.json +1 -0
- package/dist/collection/components/calcite-icon/assets/calcite-icon/touch16.json +1 -0
- package/dist/collection/components/calcite-icon/assets/calcite-icon/touch24.json +1 -0
- package/dist/collection/components/calcite-icon/assets/calcite-icon/touch32.json +1 -0
- package/dist/collection/components/calcite-input-time-picker/calcite-input-time-picker.js +81 -76
- package/dist/collection/components/calcite-option/calcite-option.js +3 -1
- package/dist/collection/components/calcite-panel/calcite-panel.js +3 -3
- package/dist/collection/components/calcite-time-picker/calcite-time-picker.css +56 -91
- package/dist/collection/components/calcite-time-picker/calcite-time-picker.js +254 -289
- package/dist/collection/components/calcite-time-picker/resources.js +15 -9
- package/dist/collection/utils/time.js +144 -36
- package/dist/components/calcite-button2.js +2 -2
- package/dist/components/calcite-color-picker-swatch2.js +3 -3
- package/dist/components/calcite-combobox.js +4 -1
- package/dist/components/calcite-input-time-picker.js +51 -48
- package/dist/components/calcite-option.js +3 -1
- package/dist/components/calcite-panel.js +3 -3
- package/dist/components/calcite-time-picker2.js +320 -187
- package/dist/custom-elements/index.js +366 -235
- package/dist/esm/calcite-button.entry.js +2 -2
- package/dist/esm/calcite-color-picker_3.entry.js +3 -3
- package/dist/esm/calcite-combobox_3.entry.js +4 -1
- package/dist/esm/calcite-input-time-picker_2.entry.js +349 -223
- package/dist/esm/calcite-option_3.entry.js +3 -1
- package/dist/esm/calcite-panel.entry.js +3 -3
- package/dist/esm/calcite.js +1 -1
- package/dist/esm/loader.js +1 -1
- package/dist/esm-es5/calcite-button.entry.js +1 -1
- package/dist/esm-es5/calcite-color-picker_3.entry.js +1 -1
- package/dist/esm-es5/calcite-combobox_3.entry.js +1 -1
- package/dist/esm-es5/calcite-input-time-picker_2.entry.js +2 -2
- package/dist/esm-es5/calcite-option_3.entry.js +1 -1
- package/dist/esm-es5/calcite-panel.entry.js +1 -1
- package/dist/esm-es5/calcite.js +1 -1
- package/dist/esm-es5/loader.js +1 -1
- package/dist/extras/docs-json.json +22 -100
- package/dist/types/components/calcite-input-time-picker/calcite-input-time-picker.d.ts +12 -4
- package/dist/types/components/calcite-panel/calcite-panel.d.ts +1 -1
- package/dist/types/components/calcite-time-picker/calcite-time-picker.d.ts +35 -23
- package/dist/types/components/calcite-time-picker/resources.d.ts +14 -8
- package/dist/types/components.d.ts +16 -40
- package/dist/types/utils/time.d.ts +18 -5
- package/hydrate/index.js +384 -243
- package/package.json +10 -10
- package/readme.md +2 -2
- package/dist/calcite/p-12a9599d.system.entry.js +0 -5
- package/dist/calcite/p-2b137143.system.entry.js +0 -5
- package/dist/calcite/p-35c5e6bd.entry.js +0 -5
- package/dist/calcite/p-88784777.system.entry.js +0 -5
- package/dist/calcite/p-9634f89d.entry.js +0 -5
- package/dist/calcite/p-a98e5444.system.entry.js +0 -5
- package/dist/calcite/p-e1da1646.entry.js +0 -5
- package/dist/calcite/p-e78e743b.entry.js +0 -5
- package/dist/calcite/p-fccc1605.entry.js +0 -5
package/hydrate/index.js
CHANGED
|
@@ -9224,11 +9224,11 @@ class CalciteButton {
|
|
|
9224
9224
|
render() {
|
|
9225
9225
|
const dir = getElementDir(this.el);
|
|
9226
9226
|
const Tag = this.childElType;
|
|
9227
|
-
const
|
|
9227
|
+
const loaderNode = this.hasLoader ? (hAsync("div", { class: CSS$I.buttonLoader }, hAsync("calcite-loader", { active: true, class: this.loading ? CSS$I.loadingIn : CSS$I.loadingOut, inline: true, label: this.intlLoading, scale: "m" }))) : null;
|
|
9228
9228
|
const iconStartEl = (hAsync("calcite-icon", { class: { [CSS$I.icon]: true, [CSS$I.iconStart]: true }, flipRtl: this.iconFlipRtl === "start" || this.iconFlipRtl === "both", icon: this.iconStart, scale: "s" }));
|
|
9229
9229
|
const iconEndEl = (hAsync("calcite-icon", { class: { [CSS$I.icon]: true, [CSS$I.iconEnd]: true }, flipRtl: this.iconFlipRtl === "end" || this.iconFlipRtl === "both", icon: this.iconEnd, scale: "s" }));
|
|
9230
9230
|
const contentEl = (hAsync("span", { class: CSS$I.content }, hAsync("slot", null)));
|
|
9231
|
-
return (hAsync(Tag, { "aria-label": getLabelText(this), class: { [CSS_UTILITY.rtl]: dir === "rtl", [CSS$I.contentSlotted]: this.hasContent }, disabled: this.disabled || this.loading, href: this.childElType === "a" && this.href, name: this.childElType === "button" && this.name, onClick: this.handleClick, ref: (el) => (this.childEl = el), rel: this.childElType === "a" && this.rel, tabIndex: this.disabled || this.loading ? -1 : null, target: this.childElType === "a" && this.target, type: this.childElType === "button" && this.type },
|
|
9231
|
+
return (hAsync(Tag, { "aria-label": getLabelText(this), class: { [CSS_UTILITY.rtl]: dir === "rtl", [CSS$I.contentSlotted]: this.hasContent }, disabled: this.disabled || this.loading, href: this.childElType === "a" && this.href, name: this.childElType === "button" && this.name, onClick: this.handleClick, ref: (el) => (this.childEl = el), rel: this.childElType === "a" && this.rel, tabIndex: this.disabled || this.loading ? -1 : null, target: this.childElType === "a" && this.target, type: this.childElType === "button" && this.type }, loaderNode, this.iconStart ? iconStartEl : null, this.hasContent ? contentEl : null, this.iconEnd ? iconEndEl : null));
|
|
9232
9232
|
}
|
|
9233
9233
|
//--------------------------------------------------------------------------
|
|
9234
9234
|
//
|
|
@@ -10104,7 +10104,7 @@ cs.get.rgb = function (string) {
|
|
|
10104
10104
|
|
|
10105
10105
|
var abbr = /^#([a-f0-9]{3,4})$/i;
|
|
10106
10106
|
var hex = /^#([a-f0-9]{6})([a-f0-9]{2})?$/i;
|
|
10107
|
-
var rgba = /^rgba?\(\s*([+-]?\d+)\s
|
|
10107
|
+
var rgba = /^rgba?\(\s*([+-]?\d+)(?=[\s,])\s*(?:,\s*)?([+-]?\d+)(?=[\s,])\s*(?:,\s*)?([+-]?\d+)\s*(?:[,|\/]\s*([+-]?[\d\.]+)(%?)\s*)?\)$/;
|
|
10108
10108
|
var per = /^rgba?\(\s*([+-]?[\d\.]+)\%\s*,?\s*([+-]?[\d\.]+)\%\s*,?\s*([+-]?[\d\.]+)\%\s*(?:[,|\/]\s*([+-]?[\d\.]+)(%?)\s*)?\)$/;
|
|
10109
10109
|
var keyword = /^(\w+)$/;
|
|
10110
10110
|
|
|
@@ -10191,7 +10191,7 @@ cs.get.hsl = function (string) {
|
|
|
10191
10191
|
return null;
|
|
10192
10192
|
}
|
|
10193
10193
|
|
|
10194
|
-
var hsl = /^hsla?\(\s*([+-]?(?:\d{0,3}\.)?\d+)(?:deg)?\s*,?\s*([+-]?[\d\.]+)%\s*,?\s*([+-]?[\d\.]+)%\s*(?:[,|\/]\s*([+-]?[\d
|
|
10194
|
+
var hsl = /^hsla?\(\s*([+-]?(?:\d{0,3}\.)?\d+)(?:deg)?\s*,?\s*([+-]?[\d\.]+)%\s*,?\s*([+-]?[\d\.]+)%\s*(?:[,|\/]\s*([+-]?(?=\.\d|\d)(?:0|[1-9]\d*)?(?:\.\d*)?(?:[eE][+-]?\d+)?)\s*)?\)$/;
|
|
10195
10195
|
var match = string.match(hsl);
|
|
10196
10196
|
|
|
10197
10197
|
if (match) {
|
|
@@ -10212,7 +10212,7 @@ cs.get.hwb = function (string) {
|
|
|
10212
10212
|
return null;
|
|
10213
10213
|
}
|
|
10214
10214
|
|
|
10215
|
-
var hwb = /^hwb\(\s*([+-]?\d{0,3}(?:\.\d+)?)(?:deg)?\s*,\s*([+-]?[\d\.]+)%\s*,\s*([+-]?[\d\.]+)%\s*(?:,\s*([+-]?[\d
|
|
10215
|
+
var hwb = /^hwb\(\s*([+-]?\d{0,3}(?:\.\d+)?)(?:deg)?\s*,\s*([+-]?[\d\.]+)%\s*,\s*([+-]?[\d\.]+)%\s*(?:,\s*([+-]?(?=\.\d|\d)(?:0|[1-9]\d*)?(?:\.\d*)?(?:[eE][+-]?\d+)?)\s*)?\)$/;
|
|
10216
10216
|
var match = string.match(hwb);
|
|
10217
10217
|
|
|
10218
10218
|
if (match) {
|
|
@@ -15200,7 +15200,9 @@ class CalciteCombobox {
|
|
|
15200
15200
|
};
|
|
15201
15201
|
this.setInactiveIfNotContained = (event) => {
|
|
15202
15202
|
const composedPath = event.composedPath();
|
|
15203
|
-
if (!this.active
|
|
15203
|
+
if ((!this.active && !this.open) ||
|
|
15204
|
+
composedPath.includes(this.el) ||
|
|
15205
|
+
composedPath.includes(this.referenceEl)) {
|
|
15204
15206
|
return;
|
|
15205
15207
|
}
|
|
15206
15208
|
if (this.allowCustomValues && this.text) {
|
|
@@ -15215,6 +15217,7 @@ class CalciteCombobox {
|
|
|
15215
15217
|
this.updateActiveItemIndex(-1);
|
|
15216
15218
|
}
|
|
15217
15219
|
this.active = false;
|
|
15220
|
+
this.open = false;
|
|
15218
15221
|
};
|
|
15219
15222
|
this.setMenuEl = (el) => {
|
|
15220
15223
|
this.menuEl = el;
|
|
@@ -19816,6 +19819,72 @@ class CalciteInputMessage {
|
|
|
19816
19819
|
}
|
|
19817
19820
|
|
|
19818
19821
|
const maxTenthForMinuteAndSecond = 5;
|
|
19822
|
+
function createLocaleDateTimeFormatter(locale, includeSeconds = true) {
|
|
19823
|
+
try {
|
|
19824
|
+
const options = {
|
|
19825
|
+
hour: "2-digit",
|
|
19826
|
+
minute: "2-digit",
|
|
19827
|
+
timeZone: "UTC"
|
|
19828
|
+
};
|
|
19829
|
+
if (includeSeconds) {
|
|
19830
|
+
options.second = "2-digit";
|
|
19831
|
+
}
|
|
19832
|
+
return new Intl.DateTimeFormat(locale, options);
|
|
19833
|
+
}
|
|
19834
|
+
catch (e) {
|
|
19835
|
+
throw new Error(`Invalid locale supplied while attempting to create a DateTime formatter: ${locale}`);
|
|
19836
|
+
}
|
|
19837
|
+
}
|
|
19838
|
+
function formatTimePart(number) {
|
|
19839
|
+
const numberAsString = number.toString();
|
|
19840
|
+
return number >= 0 && number <= 9 ? numberAsString.padStart(2, "0") : numberAsString;
|
|
19841
|
+
}
|
|
19842
|
+
function formatTimeString(value) {
|
|
19843
|
+
if (!isValidTime(value)) {
|
|
19844
|
+
return null;
|
|
19845
|
+
}
|
|
19846
|
+
const [hourString, minuteString, secondString] = value.split(":");
|
|
19847
|
+
const hour = formatTimePart(parseInt(hourString));
|
|
19848
|
+
const minute = formatTimePart(parseInt(minuteString));
|
|
19849
|
+
if (secondString) {
|
|
19850
|
+
const second = formatTimePart(parseInt(secondString));
|
|
19851
|
+
return `${hour}:${minute}:${second}`;
|
|
19852
|
+
}
|
|
19853
|
+
return `${hour}:${minute}`;
|
|
19854
|
+
}
|
|
19855
|
+
function getLocaleHourCycle(locale) {
|
|
19856
|
+
const formatter = createLocaleDateTimeFormatter(locale);
|
|
19857
|
+
const parts = formatter.formatToParts(new Date(Date.UTC(0, 0, 0, 0, 0, 0)));
|
|
19858
|
+
return getLocalizedTimePart("meridiem", parts) ? "12" : "24";
|
|
19859
|
+
}
|
|
19860
|
+
function getLocalizedTimePart(part, parts) {
|
|
19861
|
+
var _a, _b, _c, _d;
|
|
19862
|
+
if (!part || !parts) {
|
|
19863
|
+
return null;
|
|
19864
|
+
}
|
|
19865
|
+
if (part === "hourSuffix") {
|
|
19866
|
+
const hourIndex = parts.indexOf(parts.find(({ type }) => type === "hour"));
|
|
19867
|
+
const minuteIndex = parts.indexOf(parts.find(({ type }) => type === "minute"));
|
|
19868
|
+
const hourSuffix = parts[hourIndex + 1];
|
|
19869
|
+
return hourSuffix && hourSuffix.type === "literal" && minuteIndex - hourIndex === 2
|
|
19870
|
+
? ((_a = hourSuffix.value) === null || _a === void 0 ? void 0 : _a.trim()) || null
|
|
19871
|
+
: null;
|
|
19872
|
+
}
|
|
19873
|
+
if (part === "minuteSuffix") {
|
|
19874
|
+
const minuteIndex = parts.indexOf(parts.find(({ type }) => type === "minute"));
|
|
19875
|
+
const secondIndex = parts.indexOf(parts.find(({ type }) => type === "second"));
|
|
19876
|
+
const minuteSuffix = parts[minuteIndex + 1];
|
|
19877
|
+
return minuteSuffix && minuteSuffix.type === "literal" && secondIndex - minuteIndex === 2
|
|
19878
|
+
? ((_b = minuteSuffix.value) === null || _b === void 0 ? void 0 : _b.trim()) || null
|
|
19879
|
+
: null;
|
|
19880
|
+
}
|
|
19881
|
+
if (part === "secondSuffix") {
|
|
19882
|
+
const secondIndex = parts.indexOf(parts.find(({ type }) => type === "second"));
|
|
19883
|
+
const secondSuffix = parts[secondIndex + 1];
|
|
19884
|
+
return secondSuffix && secondSuffix.type === "literal" ? ((_c = secondSuffix.value) === null || _c === void 0 ? void 0 : _c.trim()) || null : null;
|
|
19885
|
+
}
|
|
19886
|
+
return ((_d = parts.find(({ type }) => (part == "meridiem" ? type === "dayPeriod" : type === part))) === null || _d === void 0 ? void 0 : _d.value) || null;
|
|
19887
|
+
}
|
|
19819
19888
|
function getMeridiem(hour) {
|
|
19820
19889
|
if (!isValidNumber(hour)) {
|
|
19821
19890
|
return null;
|
|
@@ -19823,51 +19892,93 @@ function getMeridiem(hour) {
|
|
|
19823
19892
|
const hourAsNumber = parseInt(hour);
|
|
19824
19893
|
return hourAsNumber >= 0 && hourAsNumber <= 11 ? "AM" : "PM";
|
|
19825
19894
|
}
|
|
19826
|
-
function
|
|
19827
|
-
if (!
|
|
19828
|
-
return
|
|
19895
|
+
function isValidTime(value) {
|
|
19896
|
+
if (!value || value.startsWith(":") || value.endsWith(":")) {
|
|
19897
|
+
return false;
|
|
19829
19898
|
}
|
|
19830
|
-
const
|
|
19831
|
-
|
|
19832
|
-
|
|
19899
|
+
const splitValue = value.split(":");
|
|
19900
|
+
const validLength = splitValue.length > 1 && splitValue.length < 4;
|
|
19901
|
+
if (!validLength) {
|
|
19902
|
+
return false;
|
|
19903
|
+
}
|
|
19904
|
+
const [hour, minute, second] = splitValue;
|
|
19905
|
+
const hourAsNumber = parseInt(splitValue[0]);
|
|
19906
|
+
const minuteAsNumber = parseInt(splitValue[1]);
|
|
19907
|
+
const secondAsNumber = parseInt(splitValue[2]);
|
|
19908
|
+
const hourValid = isValidNumber(hour) && hourAsNumber >= 0 && hourAsNumber < 24;
|
|
19909
|
+
const minuteValid = isValidNumber(minute) && minuteAsNumber >= 0 && minuteAsNumber < 60;
|
|
19910
|
+
const secondValid = isValidNumber(second) && secondAsNumber >= 0 && secondAsNumber < 60;
|
|
19911
|
+
if ((hourValid && minuteValid && !second) || (hourValid && minuteValid && secondValid)) {
|
|
19912
|
+
return true;
|
|
19833
19913
|
}
|
|
19834
|
-
return hourAsNumber > 12 ? formatTimePart(hourAsNumber - 12) : hour;
|
|
19835
19914
|
}
|
|
19836
|
-
function
|
|
19837
|
-
|
|
19838
|
-
|
|
19839
|
-
|
|
19840
|
-
|
|
19841
|
-
|
|
19842
|
-
|
|
19843
|
-
|
|
19915
|
+
function isValidTimePart(value, part) {
|
|
19916
|
+
if (part === "meridiem") {
|
|
19917
|
+
return value === "AM" || value === "PM";
|
|
19918
|
+
}
|
|
19919
|
+
if (!isValidNumber(value)) {
|
|
19920
|
+
return false;
|
|
19921
|
+
}
|
|
19922
|
+
const valueAsNumber = Number(value);
|
|
19923
|
+
return part === "hour" ? valueAsNumber >= 0 && valueAsNumber < 24 : valueAsNumber >= 0 && valueAsNumber < 60;
|
|
19844
19924
|
}
|
|
19845
|
-
function
|
|
19846
|
-
if (!value
|
|
19925
|
+
function localizeTimePart(value, part, locale) {
|
|
19926
|
+
if (!isValidTimePart(value, part)) {
|
|
19927
|
+
return;
|
|
19928
|
+
}
|
|
19929
|
+
const valueAsNumber = parseInt(value);
|
|
19930
|
+
const date = new Date(Date.UTC(0, 0, 0, part === "hour" ? valueAsNumber : part === "meridiem" ? (value === "AM" ? 0 : 12) : 0, part === "minute" ? valueAsNumber : 0, part === "second" ? valueAsNumber : 0));
|
|
19931
|
+
if (!date) {
|
|
19932
|
+
return;
|
|
19933
|
+
}
|
|
19934
|
+
const formatter = createLocaleDateTimeFormatter(locale);
|
|
19935
|
+
const parts = formatter.formatToParts(date);
|
|
19936
|
+
return getLocalizedTimePart(part, parts);
|
|
19937
|
+
}
|
|
19938
|
+
function localizeTimeString(value, locale = "en", includeSeconds = true) {
|
|
19939
|
+
if (!isValidTime(value)) {
|
|
19847
19940
|
return null;
|
|
19848
19941
|
}
|
|
19849
|
-
const
|
|
19850
|
-
|
|
19851
|
-
|
|
19852
|
-
|
|
19853
|
-
|
|
19854
|
-
|
|
19855
|
-
|
|
19856
|
-
|
|
19857
|
-
|
|
19858
|
-
|
|
19859
|
-
|
|
19860
|
-
|
|
19861
|
-
|
|
19862
|
-
|
|
19863
|
-
|
|
19864
|
-
|
|
19942
|
+
const { hour, minute, second = "0" } = parseTimeString(value);
|
|
19943
|
+
const dateFromTimeString = new Date(Date.UTC(0, 0, 0, parseInt(hour), parseInt(minute), parseInt(second)));
|
|
19944
|
+
const formatter = createLocaleDateTimeFormatter(locale, includeSeconds);
|
|
19945
|
+
return (formatter === null || formatter === void 0 ? void 0 : formatter.format(dateFromTimeString)) || null;
|
|
19946
|
+
}
|
|
19947
|
+
function localizeTimeStringToParts(value, locale = "en") {
|
|
19948
|
+
if (!isValidTime(value)) {
|
|
19949
|
+
return null;
|
|
19950
|
+
}
|
|
19951
|
+
const { hour, minute, second = "0" } = parseTimeString(value);
|
|
19952
|
+
const dateFromTimeString = new Date(Date.UTC(0, 0, 0, parseInt(hour), parseInt(minute), parseInt(second)));
|
|
19953
|
+
if (dateFromTimeString) {
|
|
19954
|
+
const formatter = createLocaleDateTimeFormatter(locale);
|
|
19955
|
+
const parts = formatter.formatToParts(dateFromTimeString);
|
|
19956
|
+
return {
|
|
19957
|
+
localizedHour: getLocalizedTimePart("hour", parts),
|
|
19958
|
+
localizedHourSuffix: getLocalizedTimePart("hourSuffix", parts),
|
|
19959
|
+
localizedMinute: getLocalizedTimePart("minute", parts),
|
|
19960
|
+
localizedMinuteSuffix: getLocalizedTimePart("minuteSuffix", parts),
|
|
19961
|
+
localizedSecond: getLocalizedTimePart("second", parts),
|
|
19962
|
+
localizedSecondSuffix: getLocalizedTimePart("secondSuffix", parts),
|
|
19963
|
+
localizedMeridiem: getLocalizedTimePart("meridiem", parts)
|
|
19964
|
+
};
|
|
19865
19965
|
}
|
|
19866
19966
|
return null;
|
|
19867
19967
|
}
|
|
19868
|
-
function
|
|
19869
|
-
|
|
19870
|
-
|
|
19968
|
+
function parseTimeString(value) {
|
|
19969
|
+
if (isValidTime(value)) {
|
|
19970
|
+
const [hour, minute, second] = value.split(":");
|
|
19971
|
+
return {
|
|
19972
|
+
hour,
|
|
19973
|
+
minute,
|
|
19974
|
+
second
|
|
19975
|
+
};
|
|
19976
|
+
}
|
|
19977
|
+
return {
|
|
19978
|
+
hour: null,
|
|
19979
|
+
minute: null,
|
|
19980
|
+
second: null
|
|
19981
|
+
};
|
|
19871
19982
|
}
|
|
19872
19983
|
|
|
19873
19984
|
const calciteInputTimePickerCss = "@-webkit-keyframes in{0%{opacity:0}100%{opacity:1}}@keyframes in{0%{opacity:0}100%{opacity:1}}@-webkit-keyframes in-down{0%{opacity:0;-webkit-transform:translate3D(0, -5px, 0);transform:translate3D(0, -5px, 0)}100%{opacity:1;-webkit-transform:translate3D(0, 0, 0);transform:translate3D(0, 0, 0)}}@keyframes in-down{0%{opacity:0;-webkit-transform:translate3D(0, -5px, 0);transform:translate3D(0, -5px, 0)}100%{opacity:1;-webkit-transform:translate3D(0, 0, 0);transform:translate3D(0, 0, 0)}}@-webkit-keyframes in-up{0%{opacity:0;-webkit-transform:translate3D(0, 5px, 0);transform:translate3D(0, 5px, 0)}100%{opacity:1;-webkit-transform:translate3D(0, 0, 0);transform:translate3D(0, 0, 0)}}@keyframes in-up{0%{opacity:0;-webkit-transform:translate3D(0, 5px, 0);transform:translate3D(0, 5px, 0)}100%{opacity:1;-webkit-transform:translate3D(0, 0, 0);transform:translate3D(0, 0, 0)}}@-webkit-keyframes in-scale{0%{opacity:0;-webkit-transform:scale3D(0.95, 0.95, 1);transform:scale3D(0.95, 0.95, 1)}100%{opacity:1;-webkit-transform:scale3D(1, 1, 1);transform:scale3D(1, 1, 1)}}@keyframes in-scale{0%{opacity:0;-webkit-transform:scale3D(0.95, 0.95, 1);transform:scale3D(0.95, 0.95, 1)}100%{opacity:1;-webkit-transform:scale3D(1, 1, 1);transform:scale3D(1, 1, 1)}}/*!@:root*/.sc-calcite-input-time-picker:root{--calcite-animation-timing:300ms}/*!@.calcite-animate*/.calcite-animate.sc-calcite-input-time-picker{opacity:0;-webkit-animation-fill-mode:both;animation-fill-mode:both;-webkit-animation-duration:var(--calcite-animation-timing);animation-duration:var(--calcite-animation-timing)}/*!@.calcite-animate__in*/.calcite-animate__in.sc-calcite-input-time-picker{-webkit-animation-name:in;animation-name:in}/*!@.calcite-animate__in-down*/.calcite-animate__in-down.sc-calcite-input-time-picker{-webkit-animation-name:in-down;animation-name:in-down}/*!@.calcite-animate__in-up*/.calcite-animate__in-up.sc-calcite-input-time-picker{-webkit-animation-name:in-up;animation-name:in-up}/*!@.calcite-animate__in-scale*/.calcite-animate__in-scale.sc-calcite-input-time-picker{-webkit-animation-name:in-scale;animation-name:in-scale}/*!@:root*/.sc-calcite-input-time-picker:root{--calcite-popper-transition:150ms ease-in-out}/*!@:host([hidden])*/[hidden].sc-calcite-input-time-picker-h{display:none}/*!@:host*/.sc-calcite-input-time-picker-h{display:inline-block;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}/*!@::slotted(input[slot=hidden-form-input])*/.sc-calcite-input-time-picker-s>input[slot=hidden-form-input]{bottom:0 !important;left:0 !important;margin:0 !important;opacity:0 !important;outline:none !important;padding:0 !important;position:absolute !important;right:0 !important;top:0 !important;-webkit-transform:none !important;transform:none !important;-webkit-appearance:none !important;z-index:-1 !important}";
|
|
@@ -19885,8 +19996,11 @@ class CalciteInputTimePicker {
|
|
|
19885
19996
|
this.active = false;
|
|
19886
19997
|
/** The disabled state of the time input */
|
|
19887
19998
|
this.disabled = false;
|
|
19888
|
-
/**
|
|
19889
|
-
|
|
19999
|
+
/**
|
|
20000
|
+
* BCP 47 language tag for desired language and country format
|
|
20001
|
+
* @internal
|
|
20002
|
+
*/
|
|
20003
|
+
this.locale = document.documentElement.lang || navigator.language || "en";
|
|
19890
20004
|
/**
|
|
19891
20005
|
* When true, makes the component required for form-submission.
|
|
19892
20006
|
*
|
|
@@ -19910,56 +20024,60 @@ class CalciteInputTimePicker {
|
|
|
19910
20024
|
//--------------------------------------------------------------------------
|
|
19911
20025
|
this.calciteInputBlurHandler = () => {
|
|
19912
20026
|
this.active = false;
|
|
19913
|
-
const
|
|
19914
|
-
|
|
19915
|
-
|
|
19916
|
-
}
|
|
20027
|
+
const shouldIncludeSeconds = this.shouldIncludeSeconds();
|
|
20028
|
+
const localizedInputValue = localizeTimeString(this.calciteInputEl.value, this.locale, shouldIncludeSeconds);
|
|
20029
|
+
this.setInputValue(localizedInputValue || localizeTimeString(this.value, this.locale, shouldIncludeSeconds));
|
|
19917
20030
|
};
|
|
19918
20031
|
this.calciteInputFocusHandler = () => {
|
|
19919
20032
|
this.active = true;
|
|
19920
20033
|
};
|
|
19921
20034
|
this.calciteInputInputHandler = (event) => {
|
|
19922
|
-
|
|
20035
|
+
const target = event.target;
|
|
20036
|
+
this.setValue({ value: target.value });
|
|
20037
|
+
};
|
|
20038
|
+
this.timePickerChangeHandler = (event) => {
|
|
20039
|
+
event.stopPropagation();
|
|
20040
|
+
const target = event.target;
|
|
20041
|
+
const value = target.value;
|
|
20042
|
+
this.setValue({ value, origin: "time-picker" });
|
|
19923
20043
|
};
|
|
19924
20044
|
this.setCalciteInputEl = (el) => {
|
|
19925
20045
|
this.calciteInputEl = el;
|
|
19926
20046
|
};
|
|
20047
|
+
this.setCalciteTimePickerEl = (el) => {
|
|
20048
|
+
this.calciteTimePickerEl = el;
|
|
20049
|
+
};
|
|
19927
20050
|
this.setInputValue = (newInputValue) => {
|
|
19928
20051
|
if (!this.calciteInputEl) {
|
|
19929
20052
|
return;
|
|
19930
20053
|
}
|
|
19931
|
-
|
|
19932
|
-
const { hour, minute, second } = parseTimeString(newInputValue);
|
|
19933
|
-
this.calciteInputEl.value = newInputValue
|
|
19934
|
-
? `${getMeridiemHour(hour)}:${minute}${this.step !== 60 ? ":" + second : ""} ${getMeridiem(hour)}`
|
|
19935
|
-
: null;
|
|
19936
|
-
}
|
|
19937
|
-
else {
|
|
19938
|
-
this.calciteInputEl.value = newInputValue;
|
|
19939
|
-
}
|
|
20054
|
+
this.calciteInputEl.value = newInputValue;
|
|
19940
20055
|
};
|
|
19941
20056
|
this.setValue = ({ value, origin = "input" }) => {
|
|
19942
20057
|
const previousValue = this.value;
|
|
19943
|
-
const
|
|
20058
|
+
const newValue = formatTimeString(value);
|
|
20059
|
+
const newLocalizedValue = localizeTimeString(newValue, this.locale, this.shouldIncludeSeconds());
|
|
19944
20060
|
this.internalValueChange = origin !== "external" && origin !== "loading";
|
|
19945
20061
|
const shouldEmit = origin !== "loading" &&
|
|
19946
20062
|
origin !== "external" &&
|
|
19947
20063
|
((value !== this.previousValidValue && !value) ||
|
|
19948
|
-
!!(!this.previousValidValue &&
|
|
19949
|
-
(
|
|
20064
|
+
!!(!this.previousValidValue && newValue) ||
|
|
20065
|
+
(newValue !== this.previousValidValue && newValue));
|
|
19950
20066
|
if (value) {
|
|
19951
20067
|
if (shouldEmit) {
|
|
19952
|
-
this.previousValidValue =
|
|
20068
|
+
this.previousValidValue = newValue;
|
|
19953
20069
|
}
|
|
19954
|
-
if (
|
|
19955
|
-
this.value =
|
|
20070
|
+
if (newValue && newValue !== this.value) {
|
|
20071
|
+
this.value = newValue;
|
|
19956
20072
|
}
|
|
20073
|
+
this.localizedValue = newLocalizedValue;
|
|
19957
20074
|
}
|
|
19958
20075
|
else {
|
|
19959
20076
|
this.value = value;
|
|
20077
|
+
this.localizedValue = null;
|
|
19960
20078
|
}
|
|
19961
20079
|
if (origin === "time-picker" || origin === "external") {
|
|
19962
|
-
this.setInputValue(
|
|
20080
|
+
this.setInputValue(newLocalizedValue);
|
|
19963
20081
|
}
|
|
19964
20082
|
if (shouldEmit) {
|
|
19965
20083
|
const changeEvent = this.calciteInputTimePickerChange.emit();
|
|
@@ -19970,17 +20088,26 @@ class CalciteInputTimePicker {
|
|
|
19970
20088
|
this.previousValidValue = previousValue;
|
|
19971
20089
|
}
|
|
19972
20090
|
else {
|
|
19973
|
-
this.previousValidValue =
|
|
20091
|
+
this.previousValidValue = newValue;
|
|
19974
20092
|
}
|
|
19975
20093
|
}
|
|
19976
20094
|
};
|
|
19977
20095
|
}
|
|
20096
|
+
localeWatcher(newLocale) {
|
|
20097
|
+
this.setInputValue(localizeTimeString(this.value, newLocale, this.shouldIncludeSeconds()));
|
|
20098
|
+
}
|
|
19978
20099
|
valueWatcher(newValue) {
|
|
19979
20100
|
if (!this.internalValueChange) {
|
|
19980
20101
|
this.setValue({ value: newValue, origin: "external" });
|
|
19981
20102
|
}
|
|
19982
20103
|
this.internalValueChange = false;
|
|
19983
20104
|
}
|
|
20105
|
+
clickHandler(event) {
|
|
20106
|
+
if (event.composedPath().includes(this.calciteTimePickerEl)) {
|
|
20107
|
+
return;
|
|
20108
|
+
}
|
|
20109
|
+
this.setFocus();
|
|
20110
|
+
}
|
|
19984
20111
|
keyUpHandler(event) {
|
|
19985
20112
|
if (event.key === "Escape" && this.active) {
|
|
19986
20113
|
this.active = false;
|
|
@@ -19991,21 +20118,6 @@ class CalciteInputTimePicker {
|
|
|
19991
20118
|
event.stopPropagation();
|
|
19992
20119
|
this.active = false;
|
|
19993
20120
|
}
|
|
19994
|
-
timePickerChangeHandler(event) {
|
|
19995
|
-
event.preventDefault();
|
|
19996
|
-
event.stopPropagation();
|
|
19997
|
-
if (event.detail) {
|
|
19998
|
-
const { hour, minute, second } = event.detail;
|
|
19999
|
-
let value;
|
|
20000
|
-
if (hour && minute) {
|
|
20001
|
-
value = second && this.step !== 60 ? `${hour}:${minute}:${second}` : `${hour}:${minute}`;
|
|
20002
|
-
}
|
|
20003
|
-
else {
|
|
20004
|
-
value = "";
|
|
20005
|
-
}
|
|
20006
|
-
this.setValue({ value, origin: "time-picker" });
|
|
20007
|
-
}
|
|
20008
|
-
}
|
|
20009
20121
|
timePickerFocusHandler(event) {
|
|
20010
20122
|
event.preventDefault();
|
|
20011
20123
|
event.stopPropagation();
|
|
@@ -20028,6 +20140,9 @@ class CalciteInputTimePicker {
|
|
|
20028
20140
|
onLabelClick() {
|
|
20029
20141
|
this.setFocus();
|
|
20030
20142
|
}
|
|
20143
|
+
shouldIncludeSeconds() {
|
|
20144
|
+
return this.step < 60;
|
|
20145
|
+
}
|
|
20031
20146
|
//--------------------------------------------------------------------------
|
|
20032
20147
|
//
|
|
20033
20148
|
// Lifecycle
|
|
@@ -20035,15 +20150,13 @@ class CalciteInputTimePicker {
|
|
|
20035
20150
|
//--------------------------------------------------------------------------
|
|
20036
20151
|
connectedCallback() {
|
|
20037
20152
|
if (this.value) {
|
|
20038
|
-
this.setValue({ value: this.value, origin: "loading" });
|
|
20153
|
+
this.setValue({ value: isValidTime(this.value) ? this.value : undefined, origin: "loading" });
|
|
20039
20154
|
}
|
|
20040
20155
|
connectLabel(this);
|
|
20041
20156
|
connectForm(this);
|
|
20042
20157
|
}
|
|
20043
20158
|
componentDidLoad() {
|
|
20044
|
-
|
|
20045
|
-
this.setInputValue(this.value);
|
|
20046
|
-
}
|
|
20159
|
+
this.setInputValue(this.localizedValue);
|
|
20047
20160
|
}
|
|
20048
20161
|
disconnectedCallback() {
|
|
20049
20162
|
disconnectLabel(this);
|
|
@@ -20055,12 +20168,12 @@ class CalciteInputTimePicker {
|
|
|
20055
20168
|
//
|
|
20056
20169
|
// --------------------------------------------------------------------------
|
|
20057
20170
|
render() {
|
|
20058
|
-
const { hour, minute, second } = parseTimeString(this.value);
|
|
20059
20171
|
const popoverId = `${this.referenceElementId}-popover`;
|
|
20060
|
-
return (hAsync(Host, null, hAsync("div", { "aria-controls": popoverId, "aria-haspopup": "dialog", "aria-label": this.name, "aria-owns": popoverId, id: this.referenceElementId, role: "combobox" }, hAsync("calcite-input", { disabled: this.disabled, icon: "clock", label: getLabelText(this), onCalciteInputBlur: this.calciteInputBlurHandler, onCalciteInputFocus: this.calciteInputFocusHandler, onCalciteInputInput: this.calciteInputInputHandler, ref: this.setCalciteInputEl, scale: this.scale, step: this.step })), hAsync("calcite-popover", { id: popoverId, label: "Time Picker", open: this.active || false, referenceElement: this.referenceElementId }, hAsync("calcite-time-picker", {
|
|
20172
|
+
return (hAsync(Host, null, hAsync("div", { "aria-controls": popoverId, "aria-haspopup": "dialog", "aria-label": this.name, "aria-owns": popoverId, id: this.referenceElementId, role: "combobox" }, hAsync("calcite-input", { disabled: this.disabled, icon: "clock", label: getLabelText(this), onCalciteInputBlur: this.calciteInputBlurHandler, onCalciteInputFocus: this.calciteInputFocusHandler, onCalciteInputInput: this.calciteInputInputHandler, ref: this.setCalciteInputEl, scale: this.scale, step: this.step })), hAsync("calcite-popover", { id: popoverId, label: "Time Picker", open: this.active || false, referenceElement: this.referenceElementId }, hAsync("calcite-time-picker", { intlHour: this.intlHour, intlHourDown: this.intlHourDown, intlHourUp: this.intlHourUp, intlMeridiem: this.intlMeridiem, intlMeridiemDown: this.intlMeridiemDown, intlMeridiemUp: this.intlMeridiemUp, intlMinute: this.intlMinute, intlMinuteDown: this.intlMinuteDown, intlMinuteUp: this.intlMinuteUp, intlSecond: this.intlSecond, intlSecondDown: this.intlSecondDown, intlSecondUp: this.intlSecondUp, lang: this.locale, onCalciteTimePickerChange: this.timePickerChangeHandler, ref: this.setCalciteTimePickerEl, scale: this.scale, step: this.step, value: this.value })), hAsync(HiddenFormInputSlot, { component: this })));
|
|
20061
20173
|
}
|
|
20062
20174
|
get el() { return getElement(this); }
|
|
20063
20175
|
static get watchers() { return {
|
|
20176
|
+
"locale": ["localeWatcher"],
|
|
20064
20177
|
"value": ["valueWatcher"]
|
|
20065
20178
|
}; }
|
|
20066
20179
|
static get style() { return calciteInputTimePickerCss; }
|
|
@@ -20070,7 +20183,6 @@ class CalciteInputTimePicker {
|
|
|
20070
20183
|
"$members$": {
|
|
20071
20184
|
"active": [1540],
|
|
20072
20185
|
"disabled": [516],
|
|
20073
|
-
"hourDisplayFormat": [1, "hour-display-format"],
|
|
20074
20186
|
"intlHour": [1, "intl-hour"],
|
|
20075
20187
|
"intlHourDown": [1, "intl-hour-down"],
|
|
20076
20188
|
"intlHourUp": [1, "intl-hour-up"],
|
|
@@ -20083,14 +20195,16 @@ class CalciteInputTimePicker {
|
|
|
20083
20195
|
"intlSecond": [1, "intl-second"],
|
|
20084
20196
|
"intlSecondDown": [1, "intl-second-down"],
|
|
20085
20197
|
"intlSecondUp": [1, "intl-second-up"],
|
|
20198
|
+
"locale": [1025, "lang"],
|
|
20086
20199
|
"name": [1],
|
|
20087
20200
|
"required": [516],
|
|
20088
20201
|
"scale": [513],
|
|
20089
20202
|
"step": [2],
|
|
20090
20203
|
"value": [1025],
|
|
20204
|
+
"localizedValue": [32],
|
|
20091
20205
|
"setFocus": [64]
|
|
20092
20206
|
},
|
|
20093
|
-
"$listeners$": [[0, "
|
|
20207
|
+
"$listeners$": [[0, "click", "clickHandler"], [0, "keyup", "keyUpHandler"], [0, "calciteTimePickerBlur", "timePickerBlurHandler"], [0, "calciteTimePickerFocus", "timePickerFocusHandler"]],
|
|
20094
20208
|
"$lazyBundleId$": "-",
|
|
20095
20209
|
"$attrsToReflect$": [["active", "active"], ["disabled", "disabled"], ["required", "required"], ["scale", "scale"]]
|
|
20096
20210
|
}; }
|
|
@@ -21099,8 +21213,10 @@ class CalciteOption {
|
|
|
21099
21213
|
var _a;
|
|
21100
21214
|
this.ensureTextContentDependentProps();
|
|
21101
21215
|
(_a = this.mutationObserver) === null || _a === void 0 ? void 0 : _a.observe(this.el, {
|
|
21216
|
+
attributeFilter: ["label", "value"],
|
|
21217
|
+
characterData: true,
|
|
21102
21218
|
childList: true,
|
|
21103
|
-
|
|
21219
|
+
subtree: true
|
|
21104
21220
|
});
|
|
21105
21221
|
}
|
|
21106
21222
|
disconnectedCallback() {
|
|
@@ -21474,7 +21590,7 @@ class CalcitePanel {
|
|
|
21474
21590
|
this.setBackRef = (node) => {
|
|
21475
21591
|
this.backButtonEl = node;
|
|
21476
21592
|
};
|
|
21477
|
-
this.
|
|
21593
|
+
this.panelKeyDownHandler = (event) => {
|
|
21478
21594
|
if (event.key === "Escape") {
|
|
21479
21595
|
this.dismiss();
|
|
21480
21596
|
}
|
|
@@ -21591,12 +21707,12 @@ class CalcitePanel {
|
|
|
21591
21707
|
return (hAsync("div", { class: CSS$j.fabContainer }, hAsync("slot", { name: SLOTS$c.fab })));
|
|
21592
21708
|
}
|
|
21593
21709
|
render() {
|
|
21594
|
-
const { dismissed, disabled, dismissible, el, loading,
|
|
21710
|
+
const { dismissed, disabled, dismissible, el, loading, panelKeyDownHandler } = this;
|
|
21595
21711
|
const rtl = getElementDir(el) === "rtl";
|
|
21596
21712
|
const panelNode = (hAsync("article", { "aria-busy": loading.toString(), class: {
|
|
21597
21713
|
[CSS$j.container]: true,
|
|
21598
21714
|
[CSS_UTILITY.rtl]: rtl
|
|
21599
|
-
}, hidden: dismissible && dismissed,
|
|
21715
|
+
}, hidden: dismissible && dismissed, onKeyDown: panelKeyDownHandler, ref: this.setContainerRef, tabIndex: dismissible ? 0 : -1 }, this.renderHeaderNode(), this.renderContent(), this.renderFooterSlottedContent() || this.renderFooterActions()));
|
|
21600
21716
|
return (hAsync(Fragment, null, loading || disabled ? hAsync("calcite-scrim", { loading: loading }) : null, panelNode));
|
|
21601
21717
|
}
|
|
21602
21718
|
get el() { return getElement(this); }
|
|
@@ -29853,26 +29969,32 @@ class CalciteTileSelectGroup {
|
|
|
29853
29969
|
}
|
|
29854
29970
|
|
|
29855
29971
|
const CSS$5 = {
|
|
29972
|
+
button: "button",
|
|
29856
29973
|
buttonBottomLeft: "button--bottom-left",
|
|
29857
29974
|
buttonBottomRight: "button--bottom-right",
|
|
29858
|
-
button: "button",
|
|
29859
|
-
delimiter: "delimiter",
|
|
29860
|
-
hour: "hour",
|
|
29861
29975
|
buttonHourDown: "button--hour-down",
|
|
29862
29976
|
buttonHourUp: "button--hour-up",
|
|
29863
|
-
input: "input",
|
|
29864
|
-
meridiem: "meridiem",
|
|
29865
29977
|
buttonMeridiemDown: "button--meridiem-down",
|
|
29866
29978
|
buttonMeridiemUp: "button--meridiem-up",
|
|
29867
|
-
minute: "minute",
|
|
29868
29979
|
buttonMinuteDown: "button--minute-down",
|
|
29869
29980
|
buttonMinuteUp: "button--minute-up",
|
|
29870
|
-
second: "second",
|
|
29871
29981
|
buttonSecondDown: "button--second-down",
|
|
29872
29982
|
buttonSecondUp: "button--second-up",
|
|
29873
|
-
timePicker: "time-picker",
|
|
29874
29983
|
buttonTopLeft: "button--top-left",
|
|
29875
|
-
buttonTopRight: "button--top-right"
|
|
29984
|
+
buttonTopRight: "button--top-right",
|
|
29985
|
+
column: "column",
|
|
29986
|
+
delimiter: "delimiter",
|
|
29987
|
+
hour: "hour",
|
|
29988
|
+
input: "input",
|
|
29989
|
+
meridiem: "meridiem",
|
|
29990
|
+
minute: "minute",
|
|
29991
|
+
second: "second",
|
|
29992
|
+
showMeridiem: "show-meridiem",
|
|
29993
|
+
showSecond: "show-second",
|
|
29994
|
+
"scale-s": "scale-s",
|
|
29995
|
+
"scale-m": "scale-m",
|
|
29996
|
+
"scale-l": "scale-l",
|
|
29997
|
+
timePicker: "time-picker"
|
|
29876
29998
|
};
|
|
29877
29999
|
const TEXT$2 = {
|
|
29878
30000
|
hour: "Hour",
|
|
@@ -29889,8 +30011,11 @@ const TEXT$2 = {
|
|
|
29889
30011
|
secondUp: "Increase second"
|
|
29890
30012
|
};
|
|
29891
30013
|
|
|
29892
|
-
const calciteTimePickerCss = "@-webkit-keyframes in{0%{opacity:0}100%{opacity:1}}@keyframes in{0%{opacity:0}100%{opacity:1}}@-webkit-keyframes in-down{0%{opacity:0;-webkit-transform:translate3D(0, -5px, 0);transform:translate3D(0, -5px, 0)}100%{opacity:1;-webkit-transform:translate3D(0, 0, 0);transform:translate3D(0, 0, 0)}}@keyframes in-down{0%{opacity:0;-webkit-transform:translate3D(0, -5px, 0);transform:translate3D(0, -5px, 0)}100%{opacity:1;-webkit-transform:translate3D(0, 0, 0);transform:translate3D(0, 0, 0)}}@-webkit-keyframes in-up{0%{opacity:0;-webkit-transform:translate3D(0, 5px, 0);transform:translate3D(0, 5px, 0)}100%{opacity:1;-webkit-transform:translate3D(0, 0, 0);transform:translate3D(0, 0, 0)}}@keyframes in-up{0%{opacity:0;-webkit-transform:translate3D(0, 5px, 0);transform:translate3D(0, 5px, 0)}100%{opacity:1;-webkit-transform:translate3D(0, 0, 0);transform:translate3D(0, 0, 0)}}@-webkit-keyframes in-scale{0%{opacity:0;-webkit-transform:scale3D(0.95, 0.95, 1);transform:scale3D(0.95, 0.95, 1)}100%{opacity:1;-webkit-transform:scale3D(1, 1, 1);transform:scale3D(1, 1, 1)}}@keyframes in-scale{0%{opacity:0;-webkit-transform:scale3D(0.95, 0.95, 1);transform:scale3D(0.95, 0.95, 1)}100%{opacity:1;-webkit-transform:scale3D(1, 1, 1);transform:scale3D(1, 1, 1)}}/*!@:root*/.sc-calcite-time-picker:root{--calcite-animation-timing:300ms}/*!@.calcite-animate*/.calcite-animate.sc-calcite-time-picker{opacity:0;-webkit-animation-fill-mode:both;animation-fill-mode:both;-webkit-animation-duration:var(--calcite-animation-timing);animation-duration:var(--calcite-animation-timing)}/*!@.calcite-animate__in*/.calcite-animate__in.sc-calcite-time-picker{-webkit-animation-name:in;animation-name:in}/*!@.calcite-animate__in-down*/.calcite-animate__in-down.sc-calcite-time-picker{-webkit-animation-name:in-down;animation-name:in-down}/*!@.calcite-animate__in-up*/.calcite-animate__in-up.sc-calcite-time-picker{-webkit-animation-name:in-up;animation-name:in-up}/*!@.calcite-animate__in-scale*/.calcite-animate__in-scale.sc-calcite-time-picker{-webkit-animation-name:in-scale;animation-name:in-scale}/*!@:root*/.sc-calcite-time-picker:root{--calcite-popper-transition:150ms ease-in-out}/*!@:host([hidden])*/[hidden].sc-calcite-time-picker-h{display:none}/*!@:host*/.sc-calcite-time-picker-h{color:var(--calcite-ui-
|
|
30014
|
+
const calciteTimePickerCss = "@-webkit-keyframes in{0%{opacity:0}100%{opacity:1}}@keyframes in{0%{opacity:0}100%{opacity:1}}@-webkit-keyframes in-down{0%{opacity:0;-webkit-transform:translate3D(0, -5px, 0);transform:translate3D(0, -5px, 0)}100%{opacity:1;-webkit-transform:translate3D(0, 0, 0);transform:translate3D(0, 0, 0)}}@keyframes in-down{0%{opacity:0;-webkit-transform:translate3D(0, -5px, 0);transform:translate3D(0, -5px, 0)}100%{opacity:1;-webkit-transform:translate3D(0, 0, 0);transform:translate3D(0, 0, 0)}}@-webkit-keyframes in-up{0%{opacity:0;-webkit-transform:translate3D(0, 5px, 0);transform:translate3D(0, 5px, 0)}100%{opacity:1;-webkit-transform:translate3D(0, 0, 0);transform:translate3D(0, 0, 0)}}@keyframes in-up{0%{opacity:0;-webkit-transform:translate3D(0, 5px, 0);transform:translate3D(0, 5px, 0)}100%{opacity:1;-webkit-transform:translate3D(0, 0, 0);transform:translate3D(0, 0, 0)}}@-webkit-keyframes in-scale{0%{opacity:0;-webkit-transform:scale3D(0.95, 0.95, 1);transform:scale3D(0.95, 0.95, 1)}100%{opacity:1;-webkit-transform:scale3D(1, 1, 1);transform:scale3D(1, 1, 1)}}@keyframes in-scale{0%{opacity:0;-webkit-transform:scale3D(0.95, 0.95, 1);transform:scale3D(0.95, 0.95, 1)}100%{opacity:1;-webkit-transform:scale3D(1, 1, 1);transform:scale3D(1, 1, 1)}}/*!@:root*/.sc-calcite-time-picker:root{--calcite-animation-timing:300ms}/*!@.calcite-animate*/.calcite-animate.sc-calcite-time-picker{opacity:0;-webkit-animation-fill-mode:both;animation-fill-mode:both;-webkit-animation-duration:var(--calcite-animation-timing);animation-duration:var(--calcite-animation-timing)}/*!@.calcite-animate__in*/.calcite-animate__in.sc-calcite-time-picker{-webkit-animation-name:in;animation-name:in}/*!@.calcite-animate__in-down*/.calcite-animate__in-down.sc-calcite-time-picker{-webkit-animation-name:in-down;animation-name:in-down}/*!@.calcite-animate__in-up*/.calcite-animate__in-up.sc-calcite-time-picker{-webkit-animation-name:in-up;animation-name:in-up}/*!@.calcite-animate__in-scale*/.calcite-animate__in-scale.sc-calcite-time-picker{-webkit-animation-name:in-scale;animation-name:in-scale}/*!@:root*/.sc-calcite-time-picker:root{--calcite-popper-transition:150ms ease-in-out}/*!@:host([hidden])*/[hidden].sc-calcite-time-picker-h{display:none}/*!@:host*/.sc-calcite-time-picker-h{display:inline-block}/*!@.time-picker*/.time-picker.sc-calcite-time-picker{background-color:var(--calcite-ui-foreground-1);display:-ms-flexbox;display:flex;font-weight:var(--calcite-font-weight-medium);-ms-flex-align:center;align-items:center;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;-webkit-box-shadow:0 6px 20px -4px rgba(0, 0, 0, 0.1), 0 4px 12px -2px rgba(0, 0, 0, 0.08);box-shadow:0 6px 20px -4px rgba(0, 0, 0, 0.1), 0 4px 12px -2px rgba(0, 0, 0, 0.08);color:var(--calcite-ui-text-1);border-radius:var(--calcite-border-radius)}/*!@.time-picker .column*/.time-picker.sc-calcite-time-picker .column.sc-calcite-time-picker{display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column}/*!@.time-picker .button*/.time-picker.sc-calcite-time-picker .button.sc-calcite-time-picker{background-color:var(--calcite-ui-foreground-1);cursor:pointer;display:-ms-inline-flexbox;display:inline-flex;-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center}/*!@.time-picker .button:hover, .time-picker .button:focus*/.time-picker.sc-calcite-time-picker .button.sc-calcite-time-picker:hover,.time-picker.sc-calcite-time-picker .button.sc-calcite-time-picker:focus{background-color:var(--calcite-ui-foreground-2);outline:2px solid transparent;outline-offset:2px}/*!@.time-picker .button:active*/.time-picker.sc-calcite-time-picker .button.sc-calcite-time-picker:active{background-color:var(--calcite-ui-foreground-3)}/*!@.time-picker .button.top-left*/.time-picker.sc-calcite-time-picker .button.top-left.sc-calcite-time-picker{border-top-left-radius:var(--calcite-border-radius)}/*!@.time-picker .button.bottom-left*/.time-picker.sc-calcite-time-picker .button.bottom-left.sc-calcite-time-picker{border-bottom-left-radius:var(--calcite-border-radius)}/*!@.time-picker .button.top-right*/.time-picker.sc-calcite-time-picker .button.top-right.sc-calcite-time-picker{border-top-right-radius:var(--calcite-border-radius)}/*!@.time-picker .button.bottom-right*/.time-picker.sc-calcite-time-picker .button.bottom-right.sc-calcite-time-picker{border-bottom-right-radius:var(--calcite-border-radius)}/*!@.time-picker .button calcite-icon*/.time-picker.sc-calcite-time-picker .button.sc-calcite-time-picker calcite-icon.sc-calcite-time-picker{color:var(--calcite-ui-text-3)}/*!@.time-picker .input*/.time-picker.sc-calcite-time-picker .input.sc-calcite-time-picker{background-color:var(--calcite-ui-foreground-1);cursor:pointer;font-weight:var(--calcite-font-weight-medium);display:-ms-inline-flexbox;display:inline-flex;-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center}/*!@.time-picker .input:hover*/.time-picker.sc-calcite-time-picker .input.sc-calcite-time-picker:hover{-webkit-box-shadow:inset 0 0 0 2px var(--calcite-ui-foreground-2);box-shadow:inset 0 0 0 2px var(--calcite-ui-foreground-2)}/*!@.time-picker .input:focus, .time-picker .input:hover:focus*/.time-picker.sc-calcite-time-picker .input.sc-calcite-time-picker:focus,.time-picker.sc-calcite-time-picker .input.sc-calcite-time-picker:hover:focus{outline:2px solid transparent;outline-offset:2px;-webkit-box-shadow:inset 0 0 0 2px var(--calcite-ui-brand);box-shadow:inset 0 0 0 2px var(--calcite-ui-brand)}/*!@.time-picker.scale-s*/.time-picker.scale-s.sc-calcite-time-picker{font-size:var(--calcite-font-size--1)}/*!@.time-picker.scale-s .button,\n.time-picker.scale-s .input*/.time-picker.scale-s.sc-calcite-time-picker .button.sc-calcite-time-picker,.time-picker.scale-s.sc-calcite-time-picker .input.sc-calcite-time-picker{padding-left:0.75rem;padding-right:0.75rem;padding-top:0.25rem;padding-bottom:0.25rem}/*!@.time-picker.scale-s:not(.show-meridiem) .delimiter:last-child*/.time-picker.scale-s.sc-calcite-time-picker:not(.show-meridiem) .delimiter.sc-calcite-time-picker:last-child{-webkit-padding-end:0.75rem;padding-inline-end:0.75rem}/*!@.time-picker.scale-m*/.time-picker.scale-m.sc-calcite-time-picker{font-size:var(--calcite-font-size-0)}/*!@.time-picker.scale-m .button,\n.time-picker.scale-m .input*/.time-picker.scale-m.sc-calcite-time-picker .button.sc-calcite-time-picker,.time-picker.scale-m.sc-calcite-time-picker .input.sc-calcite-time-picker{padding-left:1rem;padding-right:1rem;padding-top:0.5rem;padding-bottom:0.5rem}/*!@.time-picker.scale-m:not(.show-meridiem) .delimiter:last-child*/.time-picker.scale-m.sc-calcite-time-picker:not(.show-meridiem) .delimiter.sc-calcite-time-picker:last-child{-webkit-padding-end:1rem;padding-inline-end:1rem}/*!@.time-picker.scale-l*/.time-picker.scale-l.sc-calcite-time-picker{font-size:var(--calcite-font-size-1)}/*!@.time-picker.scale-l .button,\n.time-picker.scale-l .input*/.time-picker.scale-l.sc-calcite-time-picker .button.sc-calcite-time-picker,.time-picker.scale-l.sc-calcite-time-picker .input.sc-calcite-time-picker{padding-left:1.25rem;padding-right:1.25rem;padding-top:0.75rem;padding-bottom:0.75rem}/*!@.time-picker.scale-l:not(.show-meridiem) .delimiter:last-child*/.time-picker.scale-l.sc-calcite-time-picker:not(.show-meridiem) .delimiter.sc-calcite-time-picker:last-child{-webkit-padding-end:1.25rem;padding-inline-end:1.25rem}";
|
|
29893
30015
|
|
|
30016
|
+
function capitalize(str) {
|
|
30017
|
+
return str.charAt(0).toUpperCase() + str.slice(1);
|
|
30018
|
+
}
|
|
29894
30019
|
class CalciteTimePicker {
|
|
29895
30020
|
constructor(hostRef) {
|
|
29896
30021
|
registerInstance(this, hostRef);
|
|
@@ -29902,10 +30027,6 @@ class CalciteTimePicker {
|
|
|
29902
30027
|
// Properties
|
|
29903
30028
|
//
|
|
29904
30029
|
//--------------------------------------------------------------------------
|
|
29905
|
-
/** The hour value (24-hour format) */
|
|
29906
|
-
this.hour = null;
|
|
29907
|
-
/** Format of the hour value (12-hour or 24-hour) (this will be replaced by locale eventually) */
|
|
29908
|
-
this.hourDisplayFormat = "12";
|
|
29909
30030
|
/** aria-label for the hour input
|
|
29910
30031
|
* @default "Hour"
|
|
29911
30032
|
*/
|
|
@@ -29954,35 +30075,25 @@ class CalciteTimePicker {
|
|
|
29954
30075
|
* @default "Increase second"
|
|
29955
30076
|
*/
|
|
29956
30077
|
this.intlSecondUp = TEXT$2.secondUp;
|
|
29957
|
-
/**
|
|
29958
|
-
|
|
29959
|
-
|
|
29960
|
-
|
|
30078
|
+
/**
|
|
30079
|
+
* BCP 47 language tag for desired language and country format
|
|
30080
|
+
* @internal
|
|
30081
|
+
*/
|
|
30082
|
+
this.locale = document.documentElement.lang || navigator.language || "en";
|
|
29961
30083
|
/** The scale (size) of the time picker */
|
|
29962
30084
|
this.scale = "m";
|
|
29963
30085
|
/** number that specifies the granularity that the value must adhere to */
|
|
29964
30086
|
this.step = 60;
|
|
29965
|
-
|
|
29966
|
-
|
|
29967
|
-
|
|
29968
|
-
// State
|
|
29969
|
-
//
|
|
29970
|
-
// --------------------------------------------------------------------------
|
|
29971
|
-
/** The am/pm value */
|
|
29972
|
-
this.meridiem = null;
|
|
29973
|
-
this.displayHour = this.getDisplayHour();
|
|
29974
|
-
// --------------------------------------------------------------------------
|
|
29975
|
-
//
|
|
29976
|
-
// Private Methods
|
|
29977
|
-
//
|
|
29978
|
-
// --------------------------------------------------------------------------
|
|
30087
|
+
/** The selected time in UTC */
|
|
30088
|
+
this.value = null;
|
|
30089
|
+
this.showSecond = this.step < 60;
|
|
29979
30090
|
this.decrementHour = () => {
|
|
29980
30091
|
const newHour = !this.hour ? 0 : this.hour === "00" ? 23 : parseInt(this.hour) - 1;
|
|
29981
|
-
this.
|
|
30092
|
+
this.setValuePart("hour", newHour);
|
|
29982
30093
|
};
|
|
29983
30094
|
this.decrementMeridiem = () => {
|
|
29984
30095
|
const newMeridiem = this.meridiem === "PM" ? "AM" : "PM";
|
|
29985
|
-
this.
|
|
30096
|
+
this.setValuePart("meridiem", newMeridiem);
|
|
29986
30097
|
};
|
|
29987
30098
|
this.decrementMinuteOrSecond = (key) => {
|
|
29988
30099
|
let newValue;
|
|
@@ -29993,7 +30104,7 @@ class CalciteTimePicker {
|
|
|
29993
30104
|
else {
|
|
29994
30105
|
newValue = 59;
|
|
29995
30106
|
}
|
|
29996
|
-
this.
|
|
30107
|
+
this.setValuePart(key, newValue);
|
|
29997
30108
|
};
|
|
29998
30109
|
this.decrementMinute = () => {
|
|
29999
30110
|
this.decrementMinuteOrSecond("minute");
|
|
@@ -30015,7 +30126,7 @@ class CalciteTimePicker {
|
|
|
30015
30126
|
const keyAsNumber = parseInt(key);
|
|
30016
30127
|
let newHour;
|
|
30017
30128
|
if (isValidNumber(this.hour)) {
|
|
30018
|
-
switch (this.
|
|
30129
|
+
switch (this.hourCycle) {
|
|
30019
30130
|
case "12":
|
|
30020
30131
|
newHour =
|
|
30021
30132
|
this.hour === "01" && keyAsNumber >= 0 && keyAsNumber <= 2
|
|
@@ -30038,13 +30149,13 @@ class CalciteTimePicker {
|
|
|
30038
30149
|
else {
|
|
30039
30150
|
newHour = keyAsNumber;
|
|
30040
30151
|
}
|
|
30041
|
-
this.
|
|
30152
|
+
this.setValuePart("hour", newHour);
|
|
30042
30153
|
}
|
|
30043
30154
|
else {
|
|
30044
30155
|
switch (key) {
|
|
30045
30156
|
case "Backspace":
|
|
30046
30157
|
case "Delete":
|
|
30047
|
-
this.
|
|
30158
|
+
this.setValuePart("hour", null);
|
|
30048
30159
|
break;
|
|
30049
30160
|
case "ArrowDown":
|
|
30050
30161
|
event.preventDefault();
|
|
@@ -30068,7 +30179,7 @@ class CalciteTimePicker {
|
|
|
30068
30179
|
};
|
|
30069
30180
|
this.incrementMeridiem = () => {
|
|
30070
30181
|
const newMeridiem = this.meridiem === "AM" ? "PM" : "AM";
|
|
30071
|
-
this.
|
|
30182
|
+
this.setValuePart("meridiem", newMeridiem);
|
|
30072
30183
|
};
|
|
30073
30184
|
this.incrementHour = () => {
|
|
30074
30185
|
const newHour = isValidNumber(this.hour)
|
|
@@ -30076,7 +30187,7 @@ class CalciteTimePicker {
|
|
|
30076
30187
|
? 0
|
|
30077
30188
|
: parseInt(this.hour) + 1
|
|
30078
30189
|
: 1;
|
|
30079
|
-
this.
|
|
30190
|
+
this.setValuePart("hour", newHour);
|
|
30080
30191
|
};
|
|
30081
30192
|
this.incrementMinuteOrSecond = (key) => {
|
|
30082
30193
|
const newValue = isValidNumber(this[key])
|
|
@@ -30084,7 +30195,7 @@ class CalciteTimePicker {
|
|
|
30084
30195
|
? 0
|
|
30085
30196
|
: parseInt(this[key]) + 1
|
|
30086
30197
|
: 0;
|
|
30087
|
-
this.
|
|
30198
|
+
this.setValuePart(key, newValue);
|
|
30088
30199
|
};
|
|
30089
30200
|
this.incrementMinute = () => {
|
|
30090
30201
|
this.incrementMinuteOrSecond("minute");
|
|
@@ -30100,14 +30211,14 @@ class CalciteTimePicker {
|
|
|
30100
30211
|
this.meridiemKeyDownHandler = (event) => {
|
|
30101
30212
|
switch (event.key) {
|
|
30102
30213
|
case "a":
|
|
30103
|
-
this.
|
|
30214
|
+
this.setValuePart("meridiem", "AM");
|
|
30104
30215
|
break;
|
|
30105
30216
|
case "p":
|
|
30106
|
-
this.
|
|
30217
|
+
this.setValuePart("meridiem", "PM");
|
|
30107
30218
|
break;
|
|
30108
30219
|
case "Backspace":
|
|
30109
30220
|
case "Delete":
|
|
30110
|
-
this.
|
|
30221
|
+
this.setValuePart("meridiem", null);
|
|
30111
30222
|
break;
|
|
30112
30223
|
case "ArrowUp":
|
|
30113
30224
|
event.preventDefault();
|
|
@@ -30148,13 +30259,13 @@ class CalciteTimePicker {
|
|
|
30148
30259
|
else {
|
|
30149
30260
|
newMinute = keyAsNumber;
|
|
30150
30261
|
}
|
|
30151
|
-
this.
|
|
30262
|
+
this.setValuePart("minute", newMinute);
|
|
30152
30263
|
}
|
|
30153
30264
|
else {
|
|
30154
30265
|
switch (key) {
|
|
30155
30266
|
case "Backspace":
|
|
30156
30267
|
case "Delete":
|
|
30157
|
-
this.
|
|
30268
|
+
this.setValuePart("minute", null);
|
|
30158
30269
|
break;
|
|
30159
30270
|
case "ArrowDown":
|
|
30160
30271
|
event.preventDefault();
|
|
@@ -30196,13 +30307,13 @@ class CalciteTimePicker {
|
|
|
30196
30307
|
else {
|
|
30197
30308
|
newSecond = keyAsNumber;
|
|
30198
30309
|
}
|
|
30199
|
-
this.
|
|
30310
|
+
this.setValuePart("second", newSecond);
|
|
30200
30311
|
}
|
|
30201
30312
|
else {
|
|
30202
30313
|
switch (key) {
|
|
30203
30314
|
case "Backspace":
|
|
30204
30315
|
case "Delete":
|
|
30205
|
-
this.
|
|
30316
|
+
this.setValuePart("second", null);
|
|
30206
30317
|
break;
|
|
30207
30318
|
case "ArrowDown":
|
|
30208
30319
|
event.preventDefault();
|
|
@@ -30224,59 +30335,96 @@ class CalciteTimePicker {
|
|
|
30224
30335
|
this.incrementSecond();
|
|
30225
30336
|
}
|
|
30226
30337
|
};
|
|
30227
|
-
this.
|
|
30228
|
-
|
|
30229
|
-
|
|
30230
|
-
|
|
30231
|
-
|
|
30232
|
-
|
|
30233
|
-
|
|
30234
|
-
|
|
30235
|
-
|
|
30236
|
-
|
|
30237
|
-
|
|
30238
|
-
|
|
30239
|
-
|
|
30240
|
-
|
|
30241
|
-
|
|
30242
|
-
|
|
30243
|
-
|
|
30244
|
-
|
|
30245
|
-
|
|
30246
|
-
|
|
30247
|
-
|
|
30248
|
-
|
|
30249
|
-
|
|
30250
|
-
|
|
30251
|
-
|
|
30252
|
-
|
|
30253
|
-
|
|
30254
|
-
|
|
30255
|
-
|
|
30256
|
-
|
|
30257
|
-
|
|
30258
|
-
|
|
30338
|
+
this.setHourEl = (el) => (this.hourEl = el);
|
|
30339
|
+
this.setMeridiemEl = (el) => (this.meridiemEl = el);
|
|
30340
|
+
this.setMinuteEl = (el) => (this.minuteEl = el);
|
|
30341
|
+
this.setSecondEl = (el) => (this.secondEl = el);
|
|
30342
|
+
this.setValue = (value, emit = true) => {
|
|
30343
|
+
if (isValidTime(value)) {
|
|
30344
|
+
const { hour, minute, second } = parseTimeString(value);
|
|
30345
|
+
const { localizedHour, localizedHourSuffix, localizedMinute, localizedMinuteSuffix, localizedSecond, localizedSecondSuffix, localizedMeridiem } = localizeTimeStringToParts(value, this.locale);
|
|
30346
|
+
this.localizedHour = localizedHour;
|
|
30347
|
+
this.localizedHourSuffix = localizedHourSuffix;
|
|
30348
|
+
this.localizedMinute = localizedMinute;
|
|
30349
|
+
this.localizedMinuteSuffix = localizedMinuteSuffix;
|
|
30350
|
+
this.localizedSecond = localizedSecond;
|
|
30351
|
+
this.localizedSecondSuffix = localizedSecondSuffix;
|
|
30352
|
+
this.hour = hour;
|
|
30353
|
+
this.minute = minute;
|
|
30354
|
+
this.second = second;
|
|
30355
|
+
if (localizedMeridiem) {
|
|
30356
|
+
this.localizedMeridiem = localizedMeridiem;
|
|
30357
|
+
this.meridiem = getMeridiem(this.hour);
|
|
30358
|
+
}
|
|
30359
|
+
}
|
|
30360
|
+
else {
|
|
30361
|
+
this.hour = null;
|
|
30362
|
+
this.localizedHour = null;
|
|
30363
|
+
this.localizedHourSuffix = null;
|
|
30364
|
+
this.localizedMeridiem = null;
|
|
30365
|
+
this.localizedMinute = null;
|
|
30366
|
+
this.localizedMinuteSuffix = null;
|
|
30367
|
+
this.localizedSecond = null;
|
|
30368
|
+
this.localizedSecondSuffix = null;
|
|
30369
|
+
this.meridiem = null;
|
|
30370
|
+
this.minute = null;
|
|
30371
|
+
this.second = null;
|
|
30372
|
+
this.value = null;
|
|
30373
|
+
}
|
|
30374
|
+
if (emit) {
|
|
30375
|
+
this.calciteTimePickerChange.emit();
|
|
30376
|
+
}
|
|
30377
|
+
};
|
|
30378
|
+
this.setValuePart = (key, value, emit = true) => {
|
|
30379
|
+
var _a;
|
|
30380
|
+
if (key === "meridiem") {
|
|
30381
|
+
this.meridiem = value;
|
|
30382
|
+
if (isValidNumber(this.hour)) {
|
|
30383
|
+
const hourAsNumber = parseInt(this.hour);
|
|
30384
|
+
switch (value) {
|
|
30385
|
+
case "AM":
|
|
30386
|
+
if (hourAsNumber >= 12) {
|
|
30387
|
+
this.hour = formatTimePart(hourAsNumber - 12);
|
|
30388
|
+
}
|
|
30389
|
+
break;
|
|
30390
|
+
case "PM":
|
|
30391
|
+
if (hourAsNumber < 12) {
|
|
30392
|
+
this.hour = formatTimePart(hourAsNumber + 12);
|
|
30393
|
+
}
|
|
30394
|
+
break;
|
|
30259
30395
|
}
|
|
30260
|
-
|
|
30396
|
+
this.localizedHour = localizeTimePart(this.hour, "hour", this.locale);
|
|
30397
|
+
}
|
|
30261
30398
|
}
|
|
30262
|
-
|
|
30399
|
+
else {
|
|
30400
|
+
this[key] = typeof value === "number" ? formatTimePart(value) : value;
|
|
30401
|
+
this[`localized${capitalize(key)}`] = localizeTimePart(this[key], key, this.locale);
|
|
30402
|
+
}
|
|
30403
|
+
if (this.hour && this.minute) {
|
|
30404
|
+
const showSeconds = this.second && this.showSecond;
|
|
30405
|
+
this.value = `${this.hour}:${this.minute}:${showSeconds ? this.second : "00"}`;
|
|
30406
|
+
}
|
|
30407
|
+
else {
|
|
30408
|
+
this.value = null;
|
|
30409
|
+
}
|
|
30410
|
+
this.localizedMeridiem = this.value
|
|
30411
|
+
? ((_a = localizeTimeStringToParts(this.value, this.locale)) === null || _a === void 0 ? void 0 : _a.localizedMeridiem) || null
|
|
30412
|
+
: localizeTimePart(this.meridiem, "meridiem", this.locale);
|
|
30263
30413
|
if (emit) {
|
|
30264
|
-
this.calciteTimePickerChange.emit(
|
|
30414
|
+
this.calciteTimePickerChange.emit();
|
|
30265
30415
|
}
|
|
30266
30416
|
};
|
|
30267
30417
|
}
|
|
30268
|
-
|
|
30269
|
-
|
|
30270
|
-
|
|
30271
|
-
}
|
|
30418
|
+
localeWatcher(newLocale) {
|
|
30419
|
+
this.hourCycle = getLocaleHourCycle(newLocale);
|
|
30420
|
+
this.setValue(this.value, false);
|
|
30272
30421
|
}
|
|
30273
|
-
|
|
30274
|
-
|
|
30275
|
-
|
|
30276
|
-
|
|
30277
|
-
|
|
30278
|
-
|
|
30279
|
-
this.timeChanged = false;
|
|
30422
|
+
valueWatcher(newValue) {
|
|
30423
|
+
this.setValue(newValue, false);
|
|
30424
|
+
}
|
|
30425
|
+
hourChanged(newHour) {
|
|
30426
|
+
if (this.meridiem && isValidNumber(newHour)) {
|
|
30427
|
+
this.setValuePart("meridiem", getMeridiem(newHour));
|
|
30280
30428
|
}
|
|
30281
30429
|
}
|
|
30282
30430
|
//--------------------------------------------------------------------------
|
|
@@ -30307,7 +30455,7 @@ class CalciteTimePicker {
|
|
|
30307
30455
|
if (this.step !== 60) {
|
|
30308
30456
|
this.setFocus("second");
|
|
30309
30457
|
}
|
|
30310
|
-
else if (this.
|
|
30458
|
+
else if (this.hourCycle === "12") {
|
|
30311
30459
|
this.setFocus("meridiem");
|
|
30312
30460
|
}
|
|
30313
30461
|
break;
|
|
@@ -30319,7 +30467,7 @@ class CalciteTimePicker {
|
|
|
30319
30467
|
this.setFocus("minute");
|
|
30320
30468
|
break;
|
|
30321
30469
|
case "ArrowRight":
|
|
30322
|
-
if (this.
|
|
30470
|
+
if (this.hourCycle === "12") {
|
|
30323
30471
|
this.setFocus("meridiem");
|
|
30324
30472
|
}
|
|
30325
30473
|
break;
|
|
@@ -30349,6 +30497,11 @@ class CalciteTimePicker {
|
|
|
30349
30497
|
var _a;
|
|
30350
30498
|
(_a = this[`${target || "hour"}El`]) === null || _a === void 0 ? void 0 : _a.focus();
|
|
30351
30499
|
}
|
|
30500
|
+
// --------------------------------------------------------------------------
|
|
30501
|
+
//
|
|
30502
|
+
// Private Methods
|
|
30503
|
+
//
|
|
30504
|
+
// --------------------------------------------------------------------------
|
|
30352
30505
|
buttonActivated(event) {
|
|
30353
30506
|
const key = event.key;
|
|
30354
30507
|
if (key === " ") {
|
|
@@ -30356,40 +30509,14 @@ class CalciteTimePicker {
|
|
|
30356
30509
|
}
|
|
30357
30510
|
return isActivationKey(key);
|
|
30358
30511
|
}
|
|
30359
|
-
getDisplayHour() {
|
|
30360
|
-
if (!this.hour) {
|
|
30361
|
-
return "--";
|
|
30362
|
-
}
|
|
30363
|
-
if (this.hourDisplayFormat === "12") {
|
|
30364
|
-
return getMeridiemHour(this.hour);
|
|
30365
|
-
}
|
|
30366
|
-
return this.hour;
|
|
30367
|
-
}
|
|
30368
|
-
getTime() {
|
|
30369
|
-
return {
|
|
30370
|
-
hour: this.hour,
|
|
30371
|
-
minute: this.minute,
|
|
30372
|
-
second: this.second
|
|
30373
|
-
};
|
|
30374
|
-
}
|
|
30375
30512
|
// --------------------------------------------------------------------------
|
|
30376
30513
|
//
|
|
30377
30514
|
// Lifecycle
|
|
30378
30515
|
//
|
|
30379
30516
|
// --------------------------------------------------------------------------
|
|
30380
30517
|
connectedCallback() {
|
|
30381
|
-
|
|
30382
|
-
|
|
30383
|
-
}
|
|
30384
|
-
if (isValidNumber(this.hour)) {
|
|
30385
|
-
this.hour = formatTimePart(parseInt(this.hour));
|
|
30386
|
-
}
|
|
30387
|
-
if (isValidNumber(this.minute)) {
|
|
30388
|
-
this.minute = formatTimePart(parseInt(this.minute));
|
|
30389
|
-
}
|
|
30390
|
-
if (isValidNumber(this.second)) {
|
|
30391
|
-
this.second = formatTimePart(parseInt(this.second));
|
|
30392
|
-
}
|
|
30518
|
+
this.setValue(this.value, false);
|
|
30519
|
+
this.hourCycle = getLocaleHourCycle(this.locale);
|
|
30393
30520
|
}
|
|
30394
30521
|
// --------------------------------------------------------------------------
|
|
30395
30522
|
//
|
|
@@ -30397,66 +30524,69 @@ class CalciteTimePicker {
|
|
|
30397
30524
|
//
|
|
30398
30525
|
// --------------------------------------------------------------------------
|
|
30399
30526
|
render() {
|
|
30400
|
-
const iconScale = this.scale === "s" || this.scale === "m" ? "s" : "m";
|
|
30401
|
-
const includeSeconds = this.step !== 60;
|
|
30402
30527
|
const hourIsNumber = isValidNumber(this.hour);
|
|
30528
|
+
const iconScale = this.scale === "s" || this.scale === "m" ? "s" : "m";
|
|
30403
30529
|
const minuteIsNumber = isValidNumber(this.minute);
|
|
30404
30530
|
const secondIsNumber = isValidNumber(this.second);
|
|
30405
|
-
|
|
30531
|
+
const showMeridiem = this.hourCycle === "12";
|
|
30532
|
+
return (hAsync("div", { class: {
|
|
30533
|
+
[CSS$5.timePicker]: true,
|
|
30534
|
+
[CSS$5.showMeridiem]: showMeridiem,
|
|
30535
|
+
[CSS$5.showSecond]: this.showSecond,
|
|
30536
|
+
[CSS$5[`scale-${this.scale}`]]: true
|
|
30537
|
+
} }, hAsync("div", { class: CSS$5.column, role: "group" }, hAsync("span", { "aria-label": this.intlHourUp, class: {
|
|
30406
30538
|
[CSS$5.button]: true,
|
|
30407
30539
|
[CSS$5.buttonHourUp]: true,
|
|
30408
30540
|
[CSS$5.buttonTopLeft]: true
|
|
30409
|
-
}, onClick: this.incrementHour, onKeyDown: this.hourUpButtonKeyDownHandler, role: "button", tabIndex: -1 }, hAsync("calcite-icon", { icon: "chevron-up", scale: iconScale })), hAsync("span", { "aria-label": this.intlHour, "aria-valuemax": "23", "aria-valuemin": "1", "aria-valuenow": hourIsNumber && parseInt(this.hour), "aria-valuetext": this.hour, class: {
|
|
30541
|
+
}, onClick: this.incrementHour, onKeyDown: this.hourUpButtonKeyDownHandler, role: "button", tabIndex: -1 }, hAsync("calcite-icon", { icon: "chevron-up", scale: iconScale })), hAsync("span", { "aria-label": this.intlHour, "aria-valuemax": "23", "aria-valuemin": "1", "aria-valuenow": (hourIsNumber && parseInt(this.hour)) || "0", "aria-valuetext": this.hour, class: {
|
|
30410
30542
|
[CSS$5.input]: true,
|
|
30411
30543
|
[CSS$5.hour]: true
|
|
30412
|
-
}, onFocus: this.focusHandler, onKeyDown: this.hourKeyDownHandler, ref:
|
|
30544
|
+
}, onFocus: this.focusHandler, onKeyDown: this.hourKeyDownHandler, ref: this.setHourEl, role: "spinbutton", tabIndex: 0 }, this.localizedHour || "--"), hAsync("span", { "aria-label": this.intlHourDown, class: {
|
|
30413
30545
|
[CSS$5.button]: true,
|
|
30414
30546
|
[CSS$5.buttonHourDown]: true,
|
|
30415
30547
|
[CSS$5.buttonBottomLeft]: true
|
|
30416
|
-
}, onClick: this.decrementHour, onKeyDown: this.hourDownButtonKeyDownHandler, role: "button", tabIndex: -1 }, hAsync("calcite-icon", { icon: "chevron-down", scale: iconScale }))), hAsync("span", { class: CSS$5.delimiter },
|
|
30548
|
+
}, onClick: this.decrementHour, onKeyDown: this.hourDownButtonKeyDownHandler, role: "button", tabIndex: -1 }, hAsync("calcite-icon", { icon: "chevron-down", scale: iconScale }))), hAsync("span", { class: CSS$5.delimiter }, this.localizedHourSuffix), hAsync("div", { class: CSS$5.column, role: "group" }, hAsync("span", { "aria-label": this.intlMinuteUp, class: {
|
|
30417
30549
|
[CSS$5.button]: true,
|
|
30418
30550
|
[CSS$5.buttonMinuteUp]: true
|
|
30419
|
-
}, onClick: this.incrementMinute, onKeyDown: this.minuteUpButtonKeyDownHandler, role: "button", tabIndex: -1 }, hAsync("calcite-icon", { icon: "chevron-up", scale: iconScale })), hAsync("span", { "aria-label": this.intlMinute, "aria-valuemax": "12", "aria-valuemin": "1", "aria-valuenow": minuteIsNumber && parseInt(this.minute), "aria-valuetext": this.minute, class: {
|
|
30551
|
+
}, onClick: this.incrementMinute, onKeyDown: this.minuteUpButtonKeyDownHandler, role: "button", tabIndex: -1 }, hAsync("calcite-icon", { icon: "chevron-up", scale: iconScale })), hAsync("span", { "aria-label": this.intlMinute, "aria-valuemax": "12", "aria-valuemin": "1", "aria-valuenow": (minuteIsNumber && parseInt(this.minute)) || "0", "aria-valuetext": this.minute, class: {
|
|
30420
30552
|
[CSS$5.input]: true,
|
|
30421
30553
|
[CSS$5.minute]: true
|
|
30422
|
-
}, onFocus: this.focusHandler, onKeyDown: this.minuteKeyDownHandler, ref:
|
|
30554
|
+
}, onFocus: this.focusHandler, onKeyDown: this.minuteKeyDownHandler, ref: this.setMinuteEl, role: "spinbutton", tabIndex: 0 }, this.localizedMinute || "--"), hAsync("span", { "aria-label": this.intlMinuteDown, class: {
|
|
30423
30555
|
[CSS$5.button]: true,
|
|
30424
30556
|
[CSS$5.buttonMinuteDown]: true
|
|
30425
|
-
}, onClick: this.decrementMinute, onKeyDown: this.minuteDownButtonKeyDownHandler, role: "button", tabIndex: -1 }, hAsync("calcite-icon", { icon: "chevron-down", scale: iconScale }))),
|
|
30557
|
+
}, onClick: this.decrementMinute, onKeyDown: this.minuteDownButtonKeyDownHandler, role: "button", tabIndex: -1 }, hAsync("calcite-icon", { icon: "chevron-down", scale: iconScale }))), this.showSecond && hAsync("span", { class: CSS$5.delimiter }, this.localizedMinuteSuffix), this.showSecond && (hAsync("div", { class: CSS$5.column, role: "group" }, hAsync("span", { "aria-label": this.intlSecondUp, class: {
|
|
30426
30558
|
[CSS$5.button]: true,
|
|
30427
30559
|
[CSS$5.buttonSecondUp]: true
|
|
30428
|
-
}, onClick: this.incrementSecond, onKeyDown: this.secondUpButtonKeyDownHandler, role: "button", tabIndex: -1 }, hAsync("calcite-icon", { icon: "chevron-up", scale: iconScale })), hAsync("span", { "aria-label": this.intlSecond, "aria-valuemax": "59", "aria-valuemin": "0", "aria-valuenow": secondIsNumber && parseInt(this.second), "aria-valuetext": this.second, class: {
|
|
30560
|
+
}, onClick: this.incrementSecond, onKeyDown: this.secondUpButtonKeyDownHandler, role: "button", tabIndex: -1 }, hAsync("calcite-icon", { icon: "chevron-up", scale: iconScale })), hAsync("span", { "aria-label": this.intlSecond, "aria-valuemax": "59", "aria-valuemin": "0", "aria-valuenow": (secondIsNumber && parseInt(this.second)) || "0", "aria-valuetext": this.second, class: {
|
|
30429
30561
|
[CSS$5.input]: true,
|
|
30430
30562
|
[CSS$5.second]: true
|
|
30431
|
-
}, onFocus: this.focusHandler, onKeyDown: this.secondKeyDownHandler, ref:
|
|
30563
|
+
}, onFocus: this.focusHandler, onKeyDown: this.secondKeyDownHandler, ref: this.setSecondEl, role: "spinbutton", tabIndex: 0 }, this.localizedSecond || "--"), hAsync("span", { "aria-label": this.intlSecondDown, class: {
|
|
30432
30564
|
[CSS$5.button]: true,
|
|
30433
30565
|
[CSS$5.buttonSecondDown]: true
|
|
30434
|
-
}, onClick: this.decrementSecond, onKeyDown: this.secondDownButtonKeyDownHandler, role: "button", tabIndex: -1 }, hAsync("calcite-icon", { icon: "chevron-down", scale: iconScale })))), this.
|
|
30566
|
+
}, onClick: this.decrementSecond, onKeyDown: this.secondDownButtonKeyDownHandler, role: "button", tabIndex: -1 }, hAsync("calcite-icon", { icon: "chevron-down", scale: iconScale })))), this.localizedSecondSuffix && (hAsync("span", { class: CSS$5.delimiter }, this.localizedSecondSuffix)), showMeridiem && (hAsync("div", { class: CSS$5.column, role: "group" }, hAsync("span", { "aria-label": this.intlMeridiemUp, class: {
|
|
30435
30567
|
[CSS$5.button]: true,
|
|
30436
30568
|
[CSS$5.buttonMeridiemUp]: true,
|
|
30437
30569
|
[CSS$5.buttonTopRight]: true
|
|
30438
|
-
}, onClick: this.incrementMeridiem, onKeyDown: this.meridiemUpButtonKeyDownHandler, role: "button", tabIndex: -1 }, hAsync("calcite-icon", { icon: "chevron-up", scale: iconScale })), hAsync("span", { "aria-label": this.intlMeridiem, "aria-valuemax": "2", "aria-valuemin": "1", "aria-valuenow": this.meridiem === "
|
|
30570
|
+
}, onClick: this.incrementMeridiem, onKeyDown: this.meridiemUpButtonKeyDownHandler, role: "button", tabIndex: -1 }, hAsync("calcite-icon", { icon: "chevron-up", scale: iconScale })), hAsync("span", { "aria-label": this.intlMeridiem, "aria-valuemax": "2", "aria-valuemin": "1", "aria-valuenow": (this.meridiem === "PM" && "2") || "1", "aria-valuetext": this.meridiem, class: {
|
|
30439
30571
|
[CSS$5.input]: true,
|
|
30440
30572
|
[CSS$5.meridiem]: true
|
|
30441
|
-
}, onFocus: this.focusHandler, onKeyDown: this.meridiemKeyDownHandler, ref:
|
|
30573
|
+
}, onFocus: this.focusHandler, onKeyDown: this.meridiemKeyDownHandler, ref: this.setMeridiemEl, role: "spinbutton", tabIndex: 0 }, this.localizedMeridiem || "--"), hAsync("span", { "aria-label": this.intlMeridiemDown, class: {
|
|
30442
30574
|
[CSS$5.button]: true,
|
|
30443
30575
|
[CSS$5.buttonMeridiemDown]: true,
|
|
30444
30576
|
[CSS$5.buttonBottomRight]: true
|
|
30445
|
-
}, onClick: this.decrementMeridiem, onKeyDown: this.meridiemDownButtonKeyDownHandler, role: "button", tabIndex: -1 }, hAsync("calcite-icon", { icon: "chevron-down", scale: iconScale }))))))
|
|
30577
|
+
}, onClick: this.decrementMeridiem, onKeyDown: this.meridiemDownButtonKeyDownHandler, role: "button", tabIndex: -1 }, hAsync("calcite-icon", { icon: "chevron-down", scale: iconScale }))))));
|
|
30446
30578
|
}
|
|
30447
30579
|
get el() { return getElement(this); }
|
|
30448
30580
|
static get watchers() { return {
|
|
30449
|
-
"
|
|
30450
|
-
"
|
|
30451
|
-
"
|
|
30581
|
+
"locale": ["localeWatcher"],
|
|
30582
|
+
"value": ["valueWatcher"],
|
|
30583
|
+
"hour": ["hourChanged"]
|
|
30452
30584
|
}; }
|
|
30453
30585
|
static get style() { return calciteTimePickerCss; }
|
|
30454
30586
|
static get cmpMeta() { return {
|
|
30455
30587
|
"$flags$": 9,
|
|
30456
30588
|
"$tagName$": "calcite-time-picker",
|
|
30457
30589
|
"$members$": {
|
|
30458
|
-
"hour": [1025],
|
|
30459
|
-
"hourDisplayFormat": [513, "hour-display-format"],
|
|
30460
30590
|
"intlHour": [1, "intl-hour"],
|
|
30461
30591
|
"intlHourDown": [1, "intl-hour-down"],
|
|
30462
30592
|
"intlHourUp": [1, "intl-hour-up"],
|
|
@@ -30469,17 +30599,28 @@ class CalciteTimePicker {
|
|
|
30469
30599
|
"intlSecond": [1, "intl-second"],
|
|
30470
30600
|
"intlSecondDown": [1, "intl-second-down"],
|
|
30471
30601
|
"intlSecondUp": [1, "intl-second-up"],
|
|
30472
|
-
"
|
|
30473
|
-
"
|
|
30474
|
-
"
|
|
30475
|
-
"
|
|
30602
|
+
"locale": [1025, "lang"],
|
|
30603
|
+
"scale": [1],
|
|
30604
|
+
"step": [2],
|
|
30605
|
+
"value": [1025],
|
|
30606
|
+
"hour": [32],
|
|
30607
|
+
"hourCycle": [32],
|
|
30608
|
+
"localizedHour": [32],
|
|
30609
|
+
"localizedHourSuffix": [32],
|
|
30610
|
+
"localizedMeridiem": [32],
|
|
30611
|
+
"localizedMinute": [32],
|
|
30612
|
+
"localizedMinuteSuffix": [32],
|
|
30613
|
+
"localizedSecond": [32],
|
|
30614
|
+
"localizedSecondSuffix": [32],
|
|
30476
30615
|
"meridiem": [32],
|
|
30477
|
-
"
|
|
30616
|
+
"minute": [32],
|
|
30617
|
+
"second": [32],
|
|
30618
|
+
"showSecond": [32],
|
|
30478
30619
|
"setFocus": [64]
|
|
30479
30620
|
},
|
|
30480
30621
|
"$listeners$": [[0, "blur", "hostBlurHandler"], [0, "focus", "hostFocusHandler"], [0, "keydown", "keyDownHandler"]],
|
|
30481
30622
|
"$lazyBundleId$": "-",
|
|
30482
|
-
"$attrsToReflect$": [
|
|
30623
|
+
"$attrsToReflect$": []
|
|
30483
30624
|
}; }
|
|
30484
30625
|
}
|
|
30485
30626
|
|