import { e as e4 } from "./chunk-ZANXXOCD.js"; import "./chunk-ZFUHKE2B.js"; import { a, c as c3, o as o3 } from "./chunk-BBRZG4XY.js"; import { o as o4 } from "./chunk-6GY55RSK.js"; import { h, i as i2, s as s4 } from "./chunk-7D2IXJO2.js"; import { t as t5 } from "./chunk-FZZSIR43.js"; import { i as i4, r as r3, t as t4 } from "./chunk-X4NBNE3H.js"; import { a as a2, e as e3, f as f3, h as h2, i as i3, l as l3, n as n3, p as p2, t as t3 } from "./chunk-6N3PHHCR.js"; import { NG_VALUE_ACCESSOR, NgControl } from "./chunk-VD6QIYHN.js"; import { ActivatedRoute, AppstoreOutline, ArrowLeftOutline, ArrowRightOutline, AuthService, BookOutline, BulbFill, BulbOutline, CheckCircleFill, CheckCircleOutline, CheckOutline, ChildrenOutletContexts, CloseOutline, CommonModule, DeleteOutline, DomRendererFactory2, EditOutline, EyeOutline, FileOutline, FileTextOutline, FormStyle, LinkOutline, LoadingOutline, Location, LocationStrategy, LockOutline, LogoutOutline, MailOutline, MenuFoldOutline, MenuUnfoldOutline, NavigationCancel, NavigationError, NavigationStart, NgIf, NgTemplateOutlet, PRIMARY_OUTLET, PlusOutline, ReadOutline, Router, RouterLink, RouterOutlet, SearchOutline, StarOutline, TranslationWidth, UrlSerializer, UserOutline, VideoCameraOutline, _defineProperty, _typeof, bootstrapApplication, formatDate, getLocaleDayPeriods, isNotNil, provideHttpClient, provideNzIcons, provideRouter, registerLocaleData, toPropertyKey, warn } from "./chunk-2TRRHRR7.js"; import { ANIMATION_MODULE_TYPE, APP_INITIALIZER, ApplicationRef, Attribute, BehaviorSubject, ChangeDetectionScheduler, ChangeDetectionStrategy, ChangeDetectorRef, Component, ContentChild, ContentChildren, DOCUMENT, Directive, ElementRef, EnvironmentInjector, EventEmitter, HostListener, Inject, Injectable, InjectionToken, Injector, Input, NgModule, NgZone, Optional, Output, Pipe, RendererFactory2, RuntimeError, SkipSelf, Subject, TemplateRef, ViewChild, ViewContainerRef, __decorate, combineLatest, createComponent, distinctUntilChanged, filter, forwardRef, fromEvent, inject, makeEnvironmentProviders, of, performanceMarkFeature, provideBrowserGlobalErrorListeners, provideZoneChangeDetection, reflectComponentType, setClassMetadata, switchMap, ɵsetClassDebugInfo, ɵɵInheritDefinitionFeature, ɵɵNgOnChangesFeature, ɵɵProvidersFeature, ɵɵadvance, ɵɵcontentQuery, ɵɵdefineComponent, ɵɵdefineDirective, ɵɵdefineInjectable, ɵɵdefineInjector, ɵɵdefineNgModule, ɵɵdefinePipe, ɵɵdirectiveInject, ɵɵdomElementContainerEnd, ɵɵdomElementContainerStart, ɵɵelement, ɵɵelementContainer, ɵɵelementEnd, ɵɵelementStart, ɵɵgetCurrentView, ɵɵgetInheritedFactory, ɵɵinject, ɵɵinjectAttribute, ɵɵinvalidFactory, ɵɵlistener, ɵɵloadQuery, ɵɵnextContext, ɵɵprojection, ɵɵprojectionDef, ɵɵproperty, ɵɵqueryRefresh, ɵɵresetView, ɵɵrestoreView, ɵɵtemplate, ɵɵviewQuery } from "./chunk-WI7WFVZR.js"; import "./chunk-JU2IP4WP.js"; import { B, D, E, L, c as c2, l as l2, r, r2, s as s3, t as t2, v as v2 } from "./chunk-ZFK5GH7F.js"; import { d, o as o2 } from "./chunk-YAS4LRVC.js"; import { T, _, b, c, d as d2, e as e2, f as f2, i, l, m, n as n2, p, s as s2, t, u as u2, v, x, y } from "./chunk-LE25MNGD.js"; import { Ct, Dn, I, It, Jt, P, Pt, Rn, Vn, W, Zn, e, f, n, o, q, qt, s, u } from "./chunk-6F64OIHP.js"; import { __async, __objRest, __spreadProps, __spreadValues } from "./chunk-WDMUDEB6.js"; // src/app/guards/auth.guard.ts var authGuard = () => { const authService = inject(AuthService); const router = inject(Router); if (authService.isLoggedIn()) { return true; } return router.createUrlTree(["/auth"]); }; // src/app/app.routes.ts var routes = [ { path: "", pathMatch: "full", redirectTo: "/catalog" }, { path: "auth", loadChildren: () => import("./chunk-IOBMADH6.js").then((m28) => m28.AUTH_ROUTES) }, { path: "catalog", loadChildren: () => import("./chunk-IM6TR7DF.js").then((m28) => m28.CATALOG_ROUTES), canActivate: [authGuard] }, { path: "my-courses", loadChildren: () => import("./chunk-DVN263EA.js").then((m28) => m28.MY_COURSES_ROUTES), canActivate: [authGuard] }, { path: "create", loadChildren: () => import("./chunk-OVXDZVBT.js").then((m28) => m28.COURSE_EDITOR_ROUTES), canActivate: [authGuard] }, { path: "courses/:id", loadChildren: () => import("./chunk-UQBCWTZZ.js").then((m28) => m28.COURSE_VIEWER_ROUTES), canActivate: [authGuard] }, { path: "courses/:id/edit", loadChildren: () => import("./chunk-OVXDZVBT.js").then((m28) => m28.COURSE_EDITOR_ROUTES), canActivate: [authGuard] } ]; // src/app/icons-provider.ts var icons = [ BookOutline, UserOutline, SearchOutline, AppstoreOutline, PlusOutline, ReadOutline, LogoutOutline, BulbOutline, BulbFill, ArrowLeftOutline, ArrowRightOutline, EditOutline, DeleteOutline, CheckCircleOutline, CheckCircleFill, LockOutline, MailOutline, StarOutline, LinkOutline, VideoCameraOutline, FileOutline, FileTextOutline, MenuFoldOutline, MenuUnfoldOutline, CheckOutline, EyeOutline, CloseOutline, LoadingOutline ]; // node_modules/date-fns/esm/_lib/toInteger/index.js function toInteger(dirtyNumber) { if (dirtyNumber === null || dirtyNumber === true || dirtyNumber === false) { return NaN; } var number = Number(dirtyNumber); if (isNaN(number)) { return number; } return number < 0 ? Math.ceil(number) : Math.floor(number); } // node_modules/date-fns/esm/_lib/requiredArgs/index.js function requiredArgs(required, args) { if (args.length < required) { throw new TypeError(required + " argument" + (required > 1 ? "s" : "") + " required, but only " + args.length + " present"); } } // node_modules/date-fns/esm/toDate/index.js function toDate(argument) { requiredArgs(1, arguments); var argStr = Object.prototype.toString.call(argument); if (argument instanceof Date || _typeof(argument) === "object" && argStr === "[object Date]") { return new Date(argument.getTime()); } else if (typeof argument === "number" || argStr === "[object Number]") { return new Date(argument); } else { if ((typeof argument === "string" || argStr === "[object String]") && typeof console !== "undefined") { console.warn("Starting with v2.0.0-beta.1 date-fns doesn't accept strings as date arguments. Please use `parseISO` to parse strings. See: https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#string-arguments"); console.warn(new Error().stack); } return /* @__PURE__ */ new Date(NaN); } } // node_modules/date-fns/esm/addMilliseconds/index.js function addMilliseconds(dirtyDate, dirtyAmount) { requiredArgs(2, arguments); var timestamp = toDate(dirtyDate).getTime(); var amount = toInteger(dirtyAmount); return new Date(timestamp + amount); } // node_modules/date-fns/esm/_lib/defaultOptions/index.js var defaultOptions = {}; function getDefaultOptions() { return defaultOptions; } // node_modules/date-fns/esm/startOfWeek/index.js function startOfWeek(dirtyDate, options) { var _ref, _ref2, _ref3, _options$weekStartsOn, _options$locale, _options$locale$optio, _defaultOptions$local, _defaultOptions$local2; requiredArgs(1, arguments); var defaultOptions2 = getDefaultOptions(); var weekStartsOn = toInteger((_ref = (_ref2 = (_ref3 = (_options$weekStartsOn = options === null || options === void 0 ? void 0 : options.weekStartsOn) !== null && _options$weekStartsOn !== void 0 ? _options$weekStartsOn : options === null || options === void 0 ? void 0 : (_options$locale = options.locale) === null || _options$locale === void 0 ? void 0 : (_options$locale$optio = _options$locale.options) === null || _options$locale$optio === void 0 ? void 0 : _options$locale$optio.weekStartsOn) !== null && _ref3 !== void 0 ? _ref3 : defaultOptions2.weekStartsOn) !== null && _ref2 !== void 0 ? _ref2 : (_defaultOptions$local = defaultOptions2.locale) === null || _defaultOptions$local === void 0 ? void 0 : (_defaultOptions$local2 = _defaultOptions$local.options) === null || _defaultOptions$local2 === void 0 ? void 0 : _defaultOptions$local2.weekStartsOn) !== null && _ref !== void 0 ? _ref : 0); if (!(weekStartsOn >= 0 && weekStartsOn <= 6)) { throw new RangeError("weekStartsOn must be between 0 and 6 inclusively"); } var date = toDate(dirtyDate); var day = date.getDay(); var diff = (day < weekStartsOn ? 7 : 0) + day - weekStartsOn; date.setDate(date.getDate() - diff); date.setHours(0, 0, 0, 0); return date; } // node_modules/date-fns/esm/startOfISOWeek/index.js function startOfISOWeek(dirtyDate) { requiredArgs(1, arguments); return startOfWeek(dirtyDate, { weekStartsOn: 1 }); } // node_modules/date-fns/esm/getISOWeekYear/index.js function getISOWeekYear(dirtyDate) { requiredArgs(1, arguments); var date = toDate(dirtyDate); var year = date.getFullYear(); var fourthOfJanuaryOfNextYear = /* @__PURE__ */ new Date(0); fourthOfJanuaryOfNextYear.setFullYear(year + 1, 0, 4); fourthOfJanuaryOfNextYear.setHours(0, 0, 0, 0); var startOfNextYear = startOfISOWeek(fourthOfJanuaryOfNextYear); var fourthOfJanuaryOfThisYear = /* @__PURE__ */ new Date(0); fourthOfJanuaryOfThisYear.setFullYear(year, 0, 4); fourthOfJanuaryOfThisYear.setHours(0, 0, 0, 0); var startOfThisYear = startOfISOWeek(fourthOfJanuaryOfThisYear); if (date.getTime() >= startOfNextYear.getTime()) { return year + 1; } else if (date.getTime() >= startOfThisYear.getTime()) { return year; } else { return year - 1; } } // node_modules/date-fns/esm/startOfISOWeekYear/index.js function startOfISOWeekYear(dirtyDate) { requiredArgs(1, arguments); var year = getISOWeekYear(dirtyDate); var fourthOfJanuary = /* @__PURE__ */ new Date(0); fourthOfJanuary.setFullYear(year, 0, 4); fourthOfJanuary.setHours(0, 0, 0, 0); var date = startOfISOWeek(fourthOfJanuary); return date; } // node_modules/date-fns/esm/_lib/getTimezoneOffsetInMilliseconds/index.js function getTimezoneOffsetInMilliseconds(date) { var utcDate = new Date(Date.UTC(date.getFullYear(), date.getMonth(), date.getDate(), date.getHours(), date.getMinutes(), date.getSeconds(), date.getMilliseconds())); utcDate.setUTCFullYear(date.getFullYear()); return date.getTime() - utcDate.getTime(); } // node_modules/date-fns/esm/constants/index.js var daysInYear = 365.2425; var maxTime = Math.pow(10, 8) * 24 * 60 * 60 * 1e3; var millisecondsInMinute = 6e4; var millisecondsInHour = 36e5; var millisecondsInSecond = 1e3; var minTime = -maxTime; var secondsInHour = 3600; var secondsInDay = secondsInHour * 24; var secondsInWeek = secondsInDay * 7; var secondsInYear = secondsInDay * daysInYear; var secondsInMonth = secondsInYear / 12; var secondsInQuarter = secondsInMonth * 3; // node_modules/date-fns/esm/isDate/index.js function isDate(value) { requiredArgs(1, arguments); return value instanceof Date || _typeof(value) === "object" && Object.prototype.toString.call(value) === "[object Date]"; } // node_modules/date-fns/esm/isValid/index.js function isValid(dirtyDate) { requiredArgs(1, arguments); if (!isDate(dirtyDate) && typeof dirtyDate !== "number") { return false; } var date = toDate(dirtyDate); return !isNaN(Number(date)); } // node_modules/date-fns/esm/getQuarter/index.js function getQuarter(dirtyDate) { requiredArgs(1, arguments); var date = toDate(dirtyDate); var quarter = Math.floor(date.getMonth() / 3) + 1; return quarter; } // node_modules/date-fns/esm/subMilliseconds/index.js function subMilliseconds(dirtyDate, dirtyAmount) { requiredArgs(2, arguments); var amount = toInteger(dirtyAmount); return addMilliseconds(dirtyDate, -amount); } // node_modules/date-fns/esm/_lib/getUTCDayOfYear/index.js var MILLISECONDS_IN_DAY = 864e5; function getUTCDayOfYear(dirtyDate) { requiredArgs(1, arguments); var date = toDate(dirtyDate); var timestamp = date.getTime(); date.setUTCMonth(0, 1); date.setUTCHours(0, 0, 0, 0); var startOfYearTimestamp = date.getTime(); var difference = timestamp - startOfYearTimestamp; return Math.floor(difference / MILLISECONDS_IN_DAY) + 1; } // node_modules/date-fns/esm/_lib/startOfUTCISOWeek/index.js function startOfUTCISOWeek(dirtyDate) { requiredArgs(1, arguments); var weekStartsOn = 1; var date = toDate(dirtyDate); var day = date.getUTCDay(); var diff = (day < weekStartsOn ? 7 : 0) + day - weekStartsOn; date.setUTCDate(date.getUTCDate() - diff); date.setUTCHours(0, 0, 0, 0); return date; } // node_modules/date-fns/esm/_lib/getUTCISOWeekYear/index.js function getUTCISOWeekYear(dirtyDate) { requiredArgs(1, arguments); var date = toDate(dirtyDate); var year = date.getUTCFullYear(); var fourthOfJanuaryOfNextYear = /* @__PURE__ */ new Date(0); fourthOfJanuaryOfNextYear.setUTCFullYear(year + 1, 0, 4); fourthOfJanuaryOfNextYear.setUTCHours(0, 0, 0, 0); var startOfNextYear = startOfUTCISOWeek(fourthOfJanuaryOfNextYear); var fourthOfJanuaryOfThisYear = /* @__PURE__ */ new Date(0); fourthOfJanuaryOfThisYear.setUTCFullYear(year, 0, 4); fourthOfJanuaryOfThisYear.setUTCHours(0, 0, 0, 0); var startOfThisYear = startOfUTCISOWeek(fourthOfJanuaryOfThisYear); if (date.getTime() >= startOfNextYear.getTime()) { return year + 1; } else if (date.getTime() >= startOfThisYear.getTime()) { return year; } else { return year - 1; } } // node_modules/date-fns/esm/_lib/startOfUTCISOWeekYear/index.js function startOfUTCISOWeekYear(dirtyDate) { requiredArgs(1, arguments); var year = getUTCISOWeekYear(dirtyDate); var fourthOfJanuary = /* @__PURE__ */ new Date(0); fourthOfJanuary.setUTCFullYear(year, 0, 4); fourthOfJanuary.setUTCHours(0, 0, 0, 0); var date = startOfUTCISOWeek(fourthOfJanuary); return date; } // node_modules/date-fns/esm/_lib/getUTCISOWeek/index.js var MILLISECONDS_IN_WEEK = 6048e5; function getUTCISOWeek(dirtyDate) { requiredArgs(1, arguments); var date = toDate(dirtyDate); var diff = startOfUTCISOWeek(date).getTime() - startOfUTCISOWeekYear(date).getTime(); return Math.round(diff / MILLISECONDS_IN_WEEK) + 1; } // node_modules/date-fns/esm/_lib/startOfUTCWeek/index.js function startOfUTCWeek(dirtyDate, options) { var _ref, _ref2, _ref3, _options$weekStartsOn, _options$locale, _options$locale$optio, _defaultOptions$local, _defaultOptions$local2; requiredArgs(1, arguments); var defaultOptions2 = getDefaultOptions(); var weekStartsOn = toInteger((_ref = (_ref2 = (_ref3 = (_options$weekStartsOn = options === null || options === void 0 ? void 0 : options.weekStartsOn) !== null && _options$weekStartsOn !== void 0 ? _options$weekStartsOn : options === null || options === void 0 ? void 0 : (_options$locale = options.locale) === null || _options$locale === void 0 ? void 0 : (_options$locale$optio = _options$locale.options) === null || _options$locale$optio === void 0 ? void 0 : _options$locale$optio.weekStartsOn) !== null && _ref3 !== void 0 ? _ref3 : defaultOptions2.weekStartsOn) !== null && _ref2 !== void 0 ? _ref2 : (_defaultOptions$local = defaultOptions2.locale) === null || _defaultOptions$local === void 0 ? void 0 : (_defaultOptions$local2 = _defaultOptions$local.options) === null || _defaultOptions$local2 === void 0 ? void 0 : _defaultOptions$local2.weekStartsOn) !== null && _ref !== void 0 ? _ref : 0); if (!(weekStartsOn >= 0 && weekStartsOn <= 6)) { throw new RangeError("weekStartsOn must be between 0 and 6 inclusively"); } var date = toDate(dirtyDate); var day = date.getUTCDay(); var diff = (day < weekStartsOn ? 7 : 0) + day - weekStartsOn; date.setUTCDate(date.getUTCDate() - diff); date.setUTCHours(0, 0, 0, 0); return date; } // node_modules/date-fns/esm/_lib/getUTCWeekYear/index.js function getUTCWeekYear(dirtyDate, options) { var _ref, _ref2, _ref3, _options$firstWeekCon, _options$locale, _options$locale$optio, _defaultOptions$local, _defaultOptions$local2; requiredArgs(1, arguments); var date = toDate(dirtyDate); var year = date.getUTCFullYear(); var defaultOptions2 = getDefaultOptions(); var firstWeekContainsDate = toInteger((_ref = (_ref2 = (_ref3 = (_options$firstWeekCon = options === null || options === void 0 ? void 0 : options.firstWeekContainsDate) !== null && _options$firstWeekCon !== void 0 ? _options$firstWeekCon : options === null || options === void 0 ? void 0 : (_options$locale = options.locale) === null || _options$locale === void 0 ? void 0 : (_options$locale$optio = _options$locale.options) === null || _options$locale$optio === void 0 ? void 0 : _options$locale$optio.firstWeekContainsDate) !== null && _ref3 !== void 0 ? _ref3 : defaultOptions2.firstWeekContainsDate) !== null && _ref2 !== void 0 ? _ref2 : (_defaultOptions$local = defaultOptions2.locale) === null || _defaultOptions$local === void 0 ? void 0 : (_defaultOptions$local2 = _defaultOptions$local.options) === null || _defaultOptions$local2 === void 0 ? void 0 : _defaultOptions$local2.firstWeekContainsDate) !== null && _ref !== void 0 ? _ref : 1); if (!(firstWeekContainsDate >= 1 && firstWeekContainsDate <= 7)) { throw new RangeError("firstWeekContainsDate must be between 1 and 7 inclusively"); } var firstWeekOfNextYear = /* @__PURE__ */ new Date(0); firstWeekOfNextYear.setUTCFullYear(year + 1, 0, firstWeekContainsDate); firstWeekOfNextYear.setUTCHours(0, 0, 0, 0); var startOfNextYear = startOfUTCWeek(firstWeekOfNextYear, options); var firstWeekOfThisYear = /* @__PURE__ */ new Date(0); firstWeekOfThisYear.setUTCFullYear(year, 0, firstWeekContainsDate); firstWeekOfThisYear.setUTCHours(0, 0, 0, 0); var startOfThisYear = startOfUTCWeek(firstWeekOfThisYear, options); if (date.getTime() >= startOfNextYear.getTime()) { return year + 1; } else if (date.getTime() >= startOfThisYear.getTime()) { return year; } else { return year - 1; } } // node_modules/date-fns/esm/_lib/startOfUTCWeekYear/index.js function startOfUTCWeekYear(dirtyDate, options) { var _ref, _ref2, _ref3, _options$firstWeekCon, _options$locale, _options$locale$optio, _defaultOptions$local, _defaultOptions$local2; requiredArgs(1, arguments); var defaultOptions2 = getDefaultOptions(); var firstWeekContainsDate = toInteger((_ref = (_ref2 = (_ref3 = (_options$firstWeekCon = options === null || options === void 0 ? void 0 : options.firstWeekContainsDate) !== null && _options$firstWeekCon !== void 0 ? _options$firstWeekCon : options === null || options === void 0 ? void 0 : (_options$locale = options.locale) === null || _options$locale === void 0 ? void 0 : (_options$locale$optio = _options$locale.options) === null || _options$locale$optio === void 0 ? void 0 : _options$locale$optio.firstWeekContainsDate) !== null && _ref3 !== void 0 ? _ref3 : defaultOptions2.firstWeekContainsDate) !== null && _ref2 !== void 0 ? _ref2 : (_defaultOptions$local = defaultOptions2.locale) === null || _defaultOptions$local === void 0 ? void 0 : (_defaultOptions$local2 = _defaultOptions$local.options) === null || _defaultOptions$local2 === void 0 ? void 0 : _defaultOptions$local2.firstWeekContainsDate) !== null && _ref !== void 0 ? _ref : 1); var year = getUTCWeekYear(dirtyDate, options); var firstWeek = /* @__PURE__ */ new Date(0); firstWeek.setUTCFullYear(year, 0, firstWeekContainsDate); firstWeek.setUTCHours(0, 0, 0, 0); var date = startOfUTCWeek(firstWeek, options); return date; } // node_modules/date-fns/esm/_lib/getUTCWeek/index.js var MILLISECONDS_IN_WEEK2 = 6048e5; function getUTCWeek(dirtyDate, options) { requiredArgs(1, arguments); var date = toDate(dirtyDate); var diff = startOfUTCWeek(date, options).getTime() - startOfUTCWeekYear(date, options).getTime(); return Math.round(diff / MILLISECONDS_IN_WEEK2) + 1; } // node_modules/date-fns/esm/_lib/addLeadingZeros/index.js function addLeadingZeros(number, targetLength) { var sign = number < 0 ? "-" : ""; var output = Math.abs(number).toString(); while (output.length < targetLength) { output = "0" + output; } return sign + output; } // node_modules/date-fns/esm/_lib/format/lightFormatters/index.js var formatters = { // Year y: function y2(date, token) { var signedYear = date.getUTCFullYear(); var year = signedYear > 0 ? signedYear : 1 - signedYear; return addLeadingZeros(token === "yy" ? year % 100 : year, token.length); }, // Month M: function M(date, token) { var month = date.getUTCMonth(); return token === "M" ? String(month + 1) : addLeadingZeros(month + 1, 2); }, // Day of the month d: function d3(date, token) { return addLeadingZeros(date.getUTCDate(), token.length); }, // AM or PM a: function a3(date, token) { var dayPeriodEnumValue = date.getUTCHours() / 12 >= 1 ? "pm" : "am"; switch (token) { case "a": case "aa": return dayPeriodEnumValue.toUpperCase(); case "aaa": return dayPeriodEnumValue; case "aaaaa": return dayPeriodEnumValue[0]; case "aaaa": default: return dayPeriodEnumValue === "am" ? "a.m." : "p.m."; } }, // Hour [1-12] h: function h3(date, token) { return addLeadingZeros(date.getUTCHours() % 12 || 12, token.length); }, // Hour [0-23] H: function H(date, token) { return addLeadingZeros(date.getUTCHours(), token.length); }, // Minute m: function m2(date, token) { return addLeadingZeros(date.getUTCMinutes(), token.length); }, // Second s: function s5(date, token) { return addLeadingZeros(date.getUTCSeconds(), token.length); }, // Fraction of second S: function S(date, token) { var numberOfDigits = token.length; var milliseconds = date.getUTCMilliseconds(); var fractionalSeconds = Math.floor(milliseconds * Math.pow(10, numberOfDigits - 3)); return addLeadingZeros(fractionalSeconds, token.length); } }; var lightFormatters_default = formatters; // node_modules/date-fns/esm/_lib/format/formatters/index.js var dayPeriodEnum = { am: "am", pm: "pm", midnight: "midnight", noon: "noon", morning: "morning", afternoon: "afternoon", evening: "evening", night: "night" }; var formatters2 = { // Era G: function G(date, token, localize2) { var era = date.getUTCFullYear() > 0 ? 1 : 0; switch (token) { // AD, BC case "G": case "GG": case "GGG": return localize2.era(era, { width: "abbreviated" }); // A, B case "GGGGG": return localize2.era(era, { width: "narrow" }); // Anno Domini, Before Christ case "GGGG": default: return localize2.era(era, { width: "wide" }); } }, // Year y: function y3(date, token, localize2) { if (token === "yo") { var signedYear = date.getUTCFullYear(); var year = signedYear > 0 ? signedYear : 1 - signedYear; return localize2.ordinalNumber(year, { unit: "year" }); } return lightFormatters_default.y(date, token); }, // Local week-numbering year Y: function Y(date, token, localize2, options) { var signedWeekYear = getUTCWeekYear(date, options); var weekYear = signedWeekYear > 0 ? signedWeekYear : 1 - signedWeekYear; if (token === "YY") { var twoDigitYear = weekYear % 100; return addLeadingZeros(twoDigitYear, 2); } if (token === "Yo") { return localize2.ordinalNumber(weekYear, { unit: "year" }); } return addLeadingZeros(weekYear, token.length); }, // ISO week-numbering year R: function R(date, token) { var isoWeekYear = getUTCISOWeekYear(date); return addLeadingZeros(isoWeekYear, token.length); }, // Extended year. This is a single number designating the year of this calendar system. // The main difference between `y` and `u` localizers are B.C. years: // | Year | `y` | `u` | // |------|-----|-----| // | AC 1 | 1 | 1 | // | BC 1 | 1 | 0 | // | BC 2 | 2 | -1 | // Also `yy` always returns the last two digits of a year, // while `uu` pads single digit years to 2 characters and returns other years unchanged. u: function u3(date, token) { var year = date.getUTCFullYear(); return addLeadingZeros(year, token.length); }, // Quarter Q: function Q(date, token, localize2) { var quarter = Math.ceil((date.getUTCMonth() + 1) / 3); switch (token) { // 1, 2, 3, 4 case "Q": return String(quarter); // 01, 02, 03, 04 case "QQ": return addLeadingZeros(quarter, 2); // 1st, 2nd, 3rd, 4th case "Qo": return localize2.ordinalNumber(quarter, { unit: "quarter" }); // Q1, Q2, Q3, Q4 case "QQQ": return localize2.quarter(quarter, { width: "abbreviated", context: "formatting" }); // 1, 2, 3, 4 (narrow quarter; could be not numerical) case "QQQQQ": return localize2.quarter(quarter, { width: "narrow", context: "formatting" }); // 1st quarter, 2nd quarter, ... case "QQQQ": default: return localize2.quarter(quarter, { width: "wide", context: "formatting" }); } }, // Stand-alone quarter q: function q2(date, token, localize2) { var quarter = Math.ceil((date.getUTCMonth() + 1) / 3); switch (token) { // 1, 2, 3, 4 case "q": return String(quarter); // 01, 02, 03, 04 case "qq": return addLeadingZeros(quarter, 2); // 1st, 2nd, 3rd, 4th case "qo": return localize2.ordinalNumber(quarter, { unit: "quarter" }); // Q1, Q2, Q3, Q4 case "qqq": return localize2.quarter(quarter, { width: "abbreviated", context: "standalone" }); // 1, 2, 3, 4 (narrow quarter; could be not numerical) case "qqqqq": return localize2.quarter(quarter, { width: "narrow", context: "standalone" }); // 1st quarter, 2nd quarter, ... case "qqqq": default: return localize2.quarter(quarter, { width: "wide", context: "standalone" }); } }, // Month M: function M2(date, token, localize2) { var month = date.getUTCMonth(); switch (token) { case "M": case "MM": return lightFormatters_default.M(date, token); // 1st, 2nd, ..., 12th case "Mo": return localize2.ordinalNumber(month + 1, { unit: "month" }); // Jan, Feb, ..., Dec case "MMM": return localize2.month(month, { width: "abbreviated", context: "formatting" }); // J, F, ..., D case "MMMMM": return localize2.month(month, { width: "narrow", context: "formatting" }); // January, February, ..., December case "MMMM": default: return localize2.month(month, { width: "wide", context: "formatting" }); } }, // Stand-alone month L: function L2(date, token, localize2) { var month = date.getUTCMonth(); switch (token) { // 1, 2, ..., 12 case "L": return String(month + 1); // 01, 02, ..., 12 case "LL": return addLeadingZeros(month + 1, 2); // 1st, 2nd, ..., 12th case "Lo": return localize2.ordinalNumber(month + 1, { unit: "month" }); // Jan, Feb, ..., Dec case "LLL": return localize2.month(month, { width: "abbreviated", context: "standalone" }); // J, F, ..., D case "LLLLL": return localize2.month(month, { width: "narrow", context: "standalone" }); // January, February, ..., December case "LLLL": default: return localize2.month(month, { width: "wide", context: "standalone" }); } }, // Local week of year w: function w(date, token, localize2, options) { var week = getUTCWeek(date, options); if (token === "wo") { return localize2.ordinalNumber(week, { unit: "week" }); } return addLeadingZeros(week, token.length); }, // ISO week of year I: function I2(date, token, localize2) { var isoWeek = getUTCISOWeek(date); if (token === "Io") { return localize2.ordinalNumber(isoWeek, { unit: "week" }); } return addLeadingZeros(isoWeek, token.length); }, // Day of the month d: function d4(date, token, localize2) { if (token === "do") { return localize2.ordinalNumber(date.getUTCDate(), { unit: "date" }); } return lightFormatters_default.d(date, token); }, // Day of year D: function D2(date, token, localize2) { var dayOfYear = getUTCDayOfYear(date); if (token === "Do") { return localize2.ordinalNumber(dayOfYear, { unit: "dayOfYear" }); } return addLeadingZeros(dayOfYear, token.length); }, // Day of week E: function E2(date, token, localize2) { var dayOfWeek = date.getUTCDay(); switch (token) { // Tue case "E": case "EE": case "EEE": return localize2.day(dayOfWeek, { width: "abbreviated", context: "formatting" }); // T case "EEEEE": return localize2.day(dayOfWeek, { width: "narrow", context: "formatting" }); // Tu case "EEEEEE": return localize2.day(dayOfWeek, { width: "short", context: "formatting" }); // Tuesday case "EEEE": default: return localize2.day(dayOfWeek, { width: "wide", context: "formatting" }); } }, // Local day of week e: function e5(date, token, localize2, options) { var dayOfWeek = date.getUTCDay(); var localDayOfWeek = (dayOfWeek - options.weekStartsOn + 8) % 7 || 7; switch (token) { // Numerical value (Nth day of week with current locale or weekStartsOn) case "e": return String(localDayOfWeek); // Padded numerical value case "ee": return addLeadingZeros(localDayOfWeek, 2); // 1st, 2nd, ..., 7th case "eo": return localize2.ordinalNumber(localDayOfWeek, { unit: "day" }); case "eee": return localize2.day(dayOfWeek, { width: "abbreviated", context: "formatting" }); // T case "eeeee": return localize2.day(dayOfWeek, { width: "narrow", context: "formatting" }); // Tu case "eeeeee": return localize2.day(dayOfWeek, { width: "short", context: "formatting" }); // Tuesday case "eeee": default: return localize2.day(dayOfWeek, { width: "wide", context: "formatting" }); } }, // Stand-alone local day of week c: function c4(date, token, localize2, options) { var dayOfWeek = date.getUTCDay(); var localDayOfWeek = (dayOfWeek - options.weekStartsOn + 8) % 7 || 7; switch (token) { // Numerical value (same as in `e`) case "c": return String(localDayOfWeek); // Padded numerical value case "cc": return addLeadingZeros(localDayOfWeek, token.length); // 1st, 2nd, ..., 7th case "co": return localize2.ordinalNumber(localDayOfWeek, { unit: "day" }); case "ccc": return localize2.day(dayOfWeek, { width: "abbreviated", context: "standalone" }); // T case "ccccc": return localize2.day(dayOfWeek, { width: "narrow", context: "standalone" }); // Tu case "cccccc": return localize2.day(dayOfWeek, { width: "short", context: "standalone" }); // Tuesday case "cccc": default: return localize2.day(dayOfWeek, { width: "wide", context: "standalone" }); } }, // ISO day of week i: function i5(date, token, localize2) { var dayOfWeek = date.getUTCDay(); var isoDayOfWeek = dayOfWeek === 0 ? 7 : dayOfWeek; switch (token) { // 2 case "i": return String(isoDayOfWeek); // 02 case "ii": return addLeadingZeros(isoDayOfWeek, token.length); // 2nd case "io": return localize2.ordinalNumber(isoDayOfWeek, { unit: "day" }); // Tue case "iii": return localize2.day(dayOfWeek, { width: "abbreviated", context: "formatting" }); // T case "iiiii": return localize2.day(dayOfWeek, { width: "narrow", context: "formatting" }); // Tu case "iiiiii": return localize2.day(dayOfWeek, { width: "short", context: "formatting" }); // Tuesday case "iiii": default: return localize2.day(dayOfWeek, { width: "wide", context: "formatting" }); } }, // AM or PM a: function a4(date, token, localize2) { var hours = date.getUTCHours(); var dayPeriodEnumValue = hours / 12 >= 1 ? "pm" : "am"; switch (token) { case "a": case "aa": return localize2.dayPeriod(dayPeriodEnumValue, { width: "abbreviated", context: "formatting" }); case "aaa": return localize2.dayPeriod(dayPeriodEnumValue, { width: "abbreviated", context: "formatting" }).toLowerCase(); case "aaaaa": return localize2.dayPeriod(dayPeriodEnumValue, { width: "narrow", context: "formatting" }); case "aaaa": default: return localize2.dayPeriod(dayPeriodEnumValue, { width: "wide", context: "formatting" }); } }, // AM, PM, midnight, noon b: function b2(date, token, localize2) { var hours = date.getUTCHours(); var dayPeriodEnumValue; if (hours === 12) { dayPeriodEnumValue = dayPeriodEnum.noon; } else if (hours === 0) { dayPeriodEnumValue = dayPeriodEnum.midnight; } else { dayPeriodEnumValue = hours / 12 >= 1 ? "pm" : "am"; } switch (token) { case "b": case "bb": return localize2.dayPeriod(dayPeriodEnumValue, { width: "abbreviated", context: "formatting" }); case "bbb": return localize2.dayPeriod(dayPeriodEnumValue, { width: "abbreviated", context: "formatting" }).toLowerCase(); case "bbbbb": return localize2.dayPeriod(dayPeriodEnumValue, { width: "narrow", context: "formatting" }); case "bbbb": default: return localize2.dayPeriod(dayPeriodEnumValue, { width: "wide", context: "formatting" }); } }, // in the morning, in the afternoon, in the evening, at night B: function B2(date, token, localize2) { var hours = date.getUTCHours(); var dayPeriodEnumValue; if (hours >= 17) { dayPeriodEnumValue = dayPeriodEnum.evening; } else if (hours >= 12) { dayPeriodEnumValue = dayPeriodEnum.afternoon; } else if (hours >= 4) { dayPeriodEnumValue = dayPeriodEnum.morning; } else { dayPeriodEnumValue = dayPeriodEnum.night; } switch (token) { case "B": case "BB": case "BBB": return localize2.dayPeriod(dayPeriodEnumValue, { width: "abbreviated", context: "formatting" }); case "BBBBB": return localize2.dayPeriod(dayPeriodEnumValue, { width: "narrow", context: "formatting" }); case "BBBB": default: return localize2.dayPeriod(dayPeriodEnumValue, { width: "wide", context: "formatting" }); } }, // Hour [1-12] h: function h4(date, token, localize2) { if (token === "ho") { var hours = date.getUTCHours() % 12; if (hours === 0) hours = 12; return localize2.ordinalNumber(hours, { unit: "hour" }); } return lightFormatters_default.h(date, token); }, // Hour [0-23] H: function H2(date, token, localize2) { if (token === "Ho") { return localize2.ordinalNumber(date.getUTCHours(), { unit: "hour" }); } return lightFormatters_default.H(date, token); }, // Hour [0-11] K: function K(date, token, localize2) { var hours = date.getUTCHours() % 12; if (token === "Ko") { return localize2.ordinalNumber(hours, { unit: "hour" }); } return addLeadingZeros(hours, token.length); }, // Hour [1-24] k: function k(date, token, localize2) { var hours = date.getUTCHours(); if (hours === 0) hours = 24; if (token === "ko") { return localize2.ordinalNumber(hours, { unit: "hour" }); } return addLeadingZeros(hours, token.length); }, // Minute m: function m3(date, token, localize2) { if (token === "mo") { return localize2.ordinalNumber(date.getUTCMinutes(), { unit: "minute" }); } return lightFormatters_default.m(date, token); }, // Second s: function s6(date, token, localize2) { if (token === "so") { return localize2.ordinalNumber(date.getUTCSeconds(), { unit: "second" }); } return lightFormatters_default.s(date, token); }, // Fraction of second S: function S2(date, token) { return lightFormatters_default.S(date, token); }, // Timezone (ISO-8601. If offset is 0, output is always `'Z'`) X: function X(date, token, _localize, options) { var originalDate = options._originalDate || date; var timezoneOffset = originalDate.getTimezoneOffset(); if (timezoneOffset === 0) { return "Z"; } switch (token) { // Hours and optional minutes case "X": return formatTimezoneWithOptionalMinutes(timezoneOffset); // Hours, minutes and optional seconds without `:` delimiter // Note: neither ISO-8601 nor JavaScript supports seconds in timezone offsets // so this token always has the same output as `XX` case "XXXX": case "XX": return formatTimezone(timezoneOffset); // Hours, minutes and optional seconds with `:` delimiter // Note: neither ISO-8601 nor JavaScript supports seconds in timezone offsets // so this token always has the same output as `XXX` case "XXXXX": case "XXX": // Hours and minutes with `:` delimiter default: return formatTimezone(timezoneOffset, ":"); } }, // Timezone (ISO-8601. If offset is 0, output is `'+00:00'` or equivalent) x: function x2(date, token, _localize, options) { var originalDate = options._originalDate || date; var timezoneOffset = originalDate.getTimezoneOffset(); switch (token) { // Hours and optional minutes case "x": return formatTimezoneWithOptionalMinutes(timezoneOffset); // Hours, minutes and optional seconds without `:` delimiter // Note: neither ISO-8601 nor JavaScript supports seconds in timezone offsets // so this token always has the same output as `xx` case "xxxx": case "xx": return formatTimezone(timezoneOffset); // Hours, minutes and optional seconds with `:` delimiter // Note: neither ISO-8601 nor JavaScript supports seconds in timezone offsets // so this token always has the same output as `xxx` case "xxxxx": case "xxx": // Hours and minutes with `:` delimiter default: return formatTimezone(timezoneOffset, ":"); } }, // Timezone (GMT) O: function O(date, token, _localize, options) { var originalDate = options._originalDate || date; var timezoneOffset = originalDate.getTimezoneOffset(); switch (token) { // Short case "O": case "OO": case "OOO": return "GMT" + formatTimezoneShort(timezoneOffset, ":"); // Long case "OOOO": default: return "GMT" + formatTimezone(timezoneOffset, ":"); } }, // Timezone (specific non-location) z: function z(date, token, _localize, options) { var originalDate = options._originalDate || date; var timezoneOffset = originalDate.getTimezoneOffset(); switch (token) { // Short case "z": case "zz": case "zzz": return "GMT" + formatTimezoneShort(timezoneOffset, ":"); // Long case "zzzz": default: return "GMT" + formatTimezone(timezoneOffset, ":"); } }, // Seconds timestamp t: function t6(date, token, _localize, options) { var originalDate = options._originalDate || date; var timestamp = Math.floor(originalDate.getTime() / 1e3); return addLeadingZeros(timestamp, token.length); }, // Milliseconds timestamp T: function T2(date, token, _localize, options) { var originalDate = options._originalDate || date; var timestamp = originalDate.getTime(); return addLeadingZeros(timestamp, token.length); } }; function formatTimezoneShort(offset, dirtyDelimiter) { var sign = offset > 0 ? "-" : "+"; var absOffset = Math.abs(offset); var hours = Math.floor(absOffset / 60); var minutes = absOffset % 60; if (minutes === 0) { return sign + String(hours); } var delimiter = dirtyDelimiter || ""; return sign + String(hours) + delimiter + addLeadingZeros(minutes, 2); } function formatTimezoneWithOptionalMinutes(offset, dirtyDelimiter) { if (offset % 60 === 0) { var sign = offset > 0 ? "-" : "+"; return sign + addLeadingZeros(Math.abs(offset) / 60, 2); } return formatTimezone(offset, dirtyDelimiter); } function formatTimezone(offset, dirtyDelimiter) { var delimiter = dirtyDelimiter || ""; var sign = offset > 0 ? "-" : "+"; var absOffset = Math.abs(offset); var hours = addLeadingZeros(Math.floor(absOffset / 60), 2); var minutes = addLeadingZeros(absOffset % 60, 2); return sign + hours + delimiter + minutes; } var formatters_default = formatters2; // node_modules/date-fns/esm/_lib/format/longFormatters/index.js var dateLongFormatter = function dateLongFormatter2(pattern, formatLong2) { switch (pattern) { case "P": return formatLong2.date({ width: "short" }); case "PP": return formatLong2.date({ width: "medium" }); case "PPP": return formatLong2.date({ width: "long" }); case "PPPP": default: return formatLong2.date({ width: "full" }); } }; var timeLongFormatter = function timeLongFormatter2(pattern, formatLong2) { switch (pattern) { case "p": return formatLong2.time({ width: "short" }); case "pp": return formatLong2.time({ width: "medium" }); case "ppp": return formatLong2.time({ width: "long" }); case "pppp": default: return formatLong2.time({ width: "full" }); } }; var dateTimeLongFormatter = function dateTimeLongFormatter2(pattern, formatLong2) { var matchResult = pattern.match(/(P+)(p+)?/) || []; var datePattern = matchResult[1]; var timePattern = matchResult[2]; if (!timePattern) { return dateLongFormatter(pattern, formatLong2); } var dateTimeFormat; switch (datePattern) { case "P": dateTimeFormat = formatLong2.dateTime({ width: "short" }); break; case "PP": dateTimeFormat = formatLong2.dateTime({ width: "medium" }); break; case "PPP": dateTimeFormat = formatLong2.dateTime({ width: "long" }); break; case "PPPP": default: dateTimeFormat = formatLong2.dateTime({ width: "full" }); break; } return dateTimeFormat.replace("{{date}}", dateLongFormatter(datePattern, formatLong2)).replace("{{time}}", timeLongFormatter(timePattern, formatLong2)); }; var longFormatters = { p: timeLongFormatter, P: dateTimeLongFormatter }; var longFormatters_default = longFormatters; // node_modules/date-fns/esm/_lib/protectedTokens/index.js var protectedDayOfYearTokens = ["D", "DD"]; var protectedWeekYearTokens = ["YY", "YYYY"]; function isProtectedDayOfYearToken(token) { return protectedDayOfYearTokens.indexOf(token) !== -1; } function isProtectedWeekYearToken(token) { return protectedWeekYearTokens.indexOf(token) !== -1; } function throwProtectedError(token, format2, input) { if (token === "YYYY") { throw new RangeError("Use `yyyy` instead of `YYYY` (in `".concat(format2, "`) for formatting years to the input `").concat(input, "`; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md")); } else if (token === "YY") { throw new RangeError("Use `yy` instead of `YY` (in `".concat(format2, "`) for formatting years to the input `").concat(input, "`; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md")); } else if (token === "D") { throw new RangeError("Use `d` instead of `D` (in `".concat(format2, "`) for formatting days of the month to the input `").concat(input, "`; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md")); } else if (token === "DD") { throw new RangeError("Use `dd` instead of `DD` (in `".concat(format2, "`) for formatting days of the month to the input `").concat(input, "`; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md")); } } // node_modules/date-fns/esm/locale/en-US/_lib/formatDistance/index.js var formatDistanceLocale = { lessThanXSeconds: { one: "less than a second", other: "less than {{count}} seconds" }, xSeconds: { one: "1 second", other: "{{count}} seconds" }, halfAMinute: "half a minute", lessThanXMinutes: { one: "less than a minute", other: "less than {{count}} minutes" }, xMinutes: { one: "1 minute", other: "{{count}} minutes" }, aboutXHours: { one: "about 1 hour", other: "about {{count}} hours" }, xHours: { one: "1 hour", other: "{{count}} hours" }, xDays: { one: "1 day", other: "{{count}} days" }, aboutXWeeks: { one: "about 1 week", other: "about {{count}} weeks" }, xWeeks: { one: "1 week", other: "{{count}} weeks" }, aboutXMonths: { one: "about 1 month", other: "about {{count}} months" }, xMonths: { one: "1 month", other: "{{count}} months" }, aboutXYears: { one: "about 1 year", other: "about {{count}} years" }, xYears: { one: "1 year", other: "{{count}} years" }, overXYears: { one: "over 1 year", other: "over {{count}} years" }, almostXYears: { one: "almost 1 year", other: "almost {{count}} years" } }; var formatDistance = function formatDistance2(token, count, options) { var result; var tokenValue = formatDistanceLocale[token]; if (typeof tokenValue === "string") { result = tokenValue; } else if (count === 1) { result = tokenValue.one; } else { result = tokenValue.other.replace("{{count}}", count.toString()); } if (options !== null && options !== void 0 && options.addSuffix) { if (options.comparison && options.comparison > 0) { return "in " + result; } else { return result + " ago"; } } return result; }; var formatDistance_default = formatDistance; // node_modules/date-fns/esm/locale/_lib/buildFormatLongFn/index.js function buildFormatLongFn(args) { return function() { var options = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : {}; var width = options.width ? String(options.width) : args.defaultWidth; var format2 = args.formats[width] || args.formats[args.defaultWidth]; return format2; }; } // node_modules/date-fns/esm/locale/en-US/_lib/formatLong/index.js var dateFormats = { full: "EEEE, MMMM do, y", long: "MMMM do, y", medium: "MMM d, y", short: "MM/dd/yyyy" }; var timeFormats = { full: "h:mm:ss a zzzz", long: "h:mm:ss a z", medium: "h:mm:ss a", short: "h:mm a" }; var dateTimeFormats = { full: "{{date}} 'at' {{time}}", long: "{{date}} 'at' {{time}}", medium: "{{date}}, {{time}}", short: "{{date}}, {{time}}" }; var formatLong = { date: buildFormatLongFn({ formats: dateFormats, defaultWidth: "full" }), time: buildFormatLongFn({ formats: timeFormats, defaultWidth: "full" }), dateTime: buildFormatLongFn({ formats: dateTimeFormats, defaultWidth: "full" }) }; var formatLong_default = formatLong; // node_modules/date-fns/esm/locale/en-US/_lib/formatRelative/index.js var formatRelativeLocale = { lastWeek: "'last' eeee 'at' p", yesterday: "'yesterday at' p", today: "'today at' p", tomorrow: "'tomorrow at' p", nextWeek: "eeee 'at' p", other: "P" }; var formatRelative = function formatRelative2(token, _date, _baseDate, _options) { return formatRelativeLocale[token]; }; var formatRelative_default = formatRelative; // node_modules/date-fns/esm/locale/_lib/buildLocalizeFn/index.js function buildLocalizeFn(args) { return function(dirtyIndex, options) { var context = options !== null && options !== void 0 && options.context ? String(options.context) : "standalone"; var valuesArray; if (context === "formatting" && args.formattingValues) { var defaultWidth = args.defaultFormattingWidth || args.defaultWidth; var width = options !== null && options !== void 0 && options.width ? String(options.width) : defaultWidth; valuesArray = args.formattingValues[width] || args.formattingValues[defaultWidth]; } else { var _defaultWidth = args.defaultWidth; var _width = options !== null && options !== void 0 && options.width ? String(options.width) : args.defaultWidth; valuesArray = args.values[_width] || args.values[_defaultWidth]; } var index = args.argumentCallback ? args.argumentCallback(dirtyIndex) : dirtyIndex; return valuesArray[index]; }; } // node_modules/date-fns/esm/locale/en-US/_lib/localize/index.js var eraValues = { narrow: ["B", "A"], abbreviated: ["BC", "AD"], wide: ["Before Christ", "Anno Domini"] }; var quarterValues = { narrow: ["1", "2", "3", "4"], abbreviated: ["Q1", "Q2", "Q3", "Q4"], wide: ["1st quarter", "2nd quarter", "3rd quarter", "4th quarter"] }; var monthValues = { narrow: ["J", "F", "M", "A", "M", "J", "J", "A", "S", "O", "N", "D"], abbreviated: ["Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"], wide: ["January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"] }; var dayValues = { narrow: ["S", "M", "T", "W", "T", "F", "S"], short: ["Su", "Mo", "Tu", "We", "Th", "Fr", "Sa"], abbreviated: ["Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"], wide: ["Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"] }; var dayPeriodValues = { narrow: { am: "a", pm: "p", midnight: "mi", noon: "n", morning: "morning", afternoon: "afternoon", evening: "evening", night: "night" }, abbreviated: { am: "AM", pm: "PM", midnight: "midnight", noon: "noon", morning: "morning", afternoon: "afternoon", evening: "evening", night: "night" }, wide: { am: "a.m.", pm: "p.m.", midnight: "midnight", noon: "noon", morning: "morning", afternoon: "afternoon", evening: "evening", night: "night" } }; var formattingDayPeriodValues = { narrow: { am: "a", pm: "p", midnight: "mi", noon: "n", morning: "in the morning", afternoon: "in the afternoon", evening: "in the evening", night: "at night" }, abbreviated: { am: "AM", pm: "PM", midnight: "midnight", noon: "noon", morning: "in the morning", afternoon: "in the afternoon", evening: "in the evening", night: "at night" }, wide: { am: "a.m.", pm: "p.m.", midnight: "midnight", noon: "noon", morning: "in the morning", afternoon: "in the afternoon", evening: "in the evening", night: "at night" } }; var ordinalNumber = function ordinalNumber2(dirtyNumber, _options) { var number = Number(dirtyNumber); var rem100 = number % 100; if (rem100 > 20 || rem100 < 10) { switch (rem100 % 10) { case 1: return number + "st"; case 2: return number + "nd"; case 3: return number + "rd"; } } return number + "th"; }; var localize = { ordinalNumber, era: buildLocalizeFn({ values: eraValues, defaultWidth: "wide" }), quarter: buildLocalizeFn({ values: quarterValues, defaultWidth: "wide", argumentCallback: function argumentCallback(quarter) { return quarter - 1; } }), month: buildLocalizeFn({ values: monthValues, defaultWidth: "wide" }), day: buildLocalizeFn({ values: dayValues, defaultWidth: "wide" }), dayPeriod: buildLocalizeFn({ values: dayPeriodValues, defaultWidth: "wide", formattingValues: formattingDayPeriodValues, defaultFormattingWidth: "wide" }) }; var localize_default = localize; // node_modules/date-fns/esm/locale/_lib/buildMatchFn/index.js function buildMatchFn(args) { return function(string) { var options = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : {}; var width = options.width; var matchPattern = width && args.matchPatterns[width] || args.matchPatterns[args.defaultMatchWidth]; var matchResult = string.match(matchPattern); if (!matchResult) { return null; } var matchedString = matchResult[0]; var parsePatterns = width && args.parsePatterns[width] || args.parsePatterns[args.defaultParseWidth]; var key = Array.isArray(parsePatterns) ? findIndex(parsePatterns, function(pattern) { return pattern.test(matchedString); }) : findKey(parsePatterns, function(pattern) { return pattern.test(matchedString); }); var value; value = args.valueCallback ? args.valueCallback(key) : key; value = options.valueCallback ? options.valueCallback(value) : value; var rest = string.slice(matchedString.length); return { value, rest }; }; } function findKey(object, predicate) { for (var key in object) { if (object.hasOwnProperty(key) && predicate(object[key])) { return key; } } return void 0; } function findIndex(array, predicate) { for (var key = 0; key < array.length; key++) { if (predicate(array[key])) { return key; } } return void 0; } // node_modules/date-fns/esm/locale/_lib/buildMatchPatternFn/index.js function buildMatchPatternFn(args) { return function(string) { var options = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : {}; var matchResult = string.match(args.matchPattern); if (!matchResult) return null; var matchedString = matchResult[0]; var parseResult = string.match(args.parsePattern); if (!parseResult) return null; var value = args.valueCallback ? args.valueCallback(parseResult[0]) : parseResult[0]; value = options.valueCallback ? options.valueCallback(value) : value; var rest = string.slice(matchedString.length); return { value, rest }; }; } // node_modules/date-fns/esm/locale/en-US/_lib/match/index.js var matchOrdinalNumberPattern = /^(\d+)(th|st|nd|rd)?/i; var parseOrdinalNumberPattern = /\d+/i; var matchEraPatterns = { narrow: /^(b|a)/i, abbreviated: /^(b\.?\s?c\.?|b\.?\s?c\.?\s?e\.?|a\.?\s?d\.?|c\.?\s?e\.?)/i, wide: /^(before christ|before common era|anno domini|common era)/i }; var parseEraPatterns = { any: [/^b/i, /^(a|c)/i] }; var matchQuarterPatterns = { narrow: /^[1234]/i, abbreviated: /^q[1234]/i, wide: /^[1234](th|st|nd|rd)? quarter/i }; var parseQuarterPatterns = { any: [/1/i, /2/i, /3/i, /4/i] }; var matchMonthPatterns = { narrow: /^[jfmasond]/i, abbreviated: /^(jan|feb|mar|apr|may|jun|jul|aug|sep|oct|nov|dec)/i, wide: /^(january|february|march|april|may|june|july|august|september|october|november|december)/i }; var parseMonthPatterns = { narrow: [/^j/i, /^f/i, /^m/i, /^a/i, /^m/i, /^j/i, /^j/i, /^a/i, /^s/i, /^o/i, /^n/i, /^d/i], any: [/^ja/i, /^f/i, /^mar/i, /^ap/i, /^may/i, /^jun/i, /^jul/i, /^au/i, /^s/i, /^o/i, /^n/i, /^d/i] }; var matchDayPatterns = { narrow: /^[smtwf]/i, short: /^(su|mo|tu|we|th|fr|sa)/i, abbreviated: /^(sun|mon|tue|wed|thu|fri|sat)/i, wide: /^(sunday|monday|tuesday|wednesday|thursday|friday|saturday)/i }; var parseDayPatterns = { narrow: [/^s/i, /^m/i, /^t/i, /^w/i, /^t/i, /^f/i, /^s/i], any: [/^su/i, /^m/i, /^tu/i, /^w/i, /^th/i, /^f/i, /^sa/i] }; var matchDayPeriodPatterns = { narrow: /^(a|p|mi|n|(in the|at) (morning|afternoon|evening|night))/i, any: /^([ap]\.?\s?m\.?|midnight|noon|(in the|at) (morning|afternoon|evening|night))/i }; var parseDayPeriodPatterns = { any: { am: /^a/i, pm: /^p/i, midnight: /^mi/i, noon: /^no/i, morning: /morning/i, afternoon: /afternoon/i, evening: /evening/i, night: /night/i } }; var match = { ordinalNumber: buildMatchPatternFn({ matchPattern: matchOrdinalNumberPattern, parsePattern: parseOrdinalNumberPattern, valueCallback: function valueCallback(value) { return parseInt(value, 10); } }), era: buildMatchFn({ matchPatterns: matchEraPatterns, defaultMatchWidth: "wide", parsePatterns: parseEraPatterns, defaultParseWidth: "any" }), quarter: buildMatchFn({ matchPatterns: matchQuarterPatterns, defaultMatchWidth: "wide", parsePatterns: parseQuarterPatterns, defaultParseWidth: "any", valueCallback: function valueCallback2(index) { return index + 1; } }), month: buildMatchFn({ matchPatterns: matchMonthPatterns, defaultMatchWidth: "wide", parsePatterns: parseMonthPatterns, defaultParseWidth: "any" }), day: buildMatchFn({ matchPatterns: matchDayPatterns, defaultMatchWidth: "wide", parsePatterns: parseDayPatterns, defaultParseWidth: "any" }), dayPeriod: buildMatchFn({ matchPatterns: matchDayPeriodPatterns, defaultMatchWidth: "any", parsePatterns: parseDayPeriodPatterns, defaultParseWidth: "any" }) }; var match_default = match; // node_modules/date-fns/esm/locale/en-US/index.js var locale = { code: "en-US", formatDistance: formatDistance_default, formatLong: formatLong_default, formatRelative: formatRelative_default, localize: localize_default, match: match_default, options: { weekStartsOn: 0, firstWeekContainsDate: 1 } }; var en_US_default = locale; // node_modules/date-fns/esm/_lib/defaultLocale/index.js var defaultLocale_default = en_US_default; // node_modules/date-fns/esm/format/index.js var formattingTokensRegExp = /[yYQqMLwIdDecihHKkms]o|(\w)\1*|''|'(''|[^'])+('|$)|./g; var longFormattingTokensRegExp = /P+p+|P+|p+|''|'(''|[^'])+('|$)|./g; var escapedStringRegExp = /^'([^]*?)'?$/; var doubleQuoteRegExp = /''/g; var unescapedLatinCharacterRegExp = /[a-zA-Z]/; function format(dirtyDate, dirtyFormatStr, options) { var _ref, _options$locale, _ref2, _ref3, _ref4, _options$firstWeekCon, _options$locale2, _options$locale2$opti, _defaultOptions$local, _defaultOptions$local2, _ref5, _ref6, _ref7, _options$weekStartsOn, _options$locale3, _options$locale3$opti, _defaultOptions$local3, _defaultOptions$local4; requiredArgs(2, arguments); var formatStr = String(dirtyFormatStr); var defaultOptions2 = getDefaultOptions(); var locale2 = (_ref = (_options$locale = options === null || options === void 0 ? void 0 : options.locale) !== null && _options$locale !== void 0 ? _options$locale : defaultOptions2.locale) !== null && _ref !== void 0 ? _ref : defaultLocale_default; var firstWeekContainsDate = toInteger((_ref2 = (_ref3 = (_ref4 = (_options$firstWeekCon = options === null || options === void 0 ? void 0 : options.firstWeekContainsDate) !== null && _options$firstWeekCon !== void 0 ? _options$firstWeekCon : options === null || options === void 0 ? void 0 : (_options$locale2 = options.locale) === null || _options$locale2 === void 0 ? void 0 : (_options$locale2$opti = _options$locale2.options) === null || _options$locale2$opti === void 0 ? void 0 : _options$locale2$opti.firstWeekContainsDate) !== null && _ref4 !== void 0 ? _ref4 : defaultOptions2.firstWeekContainsDate) !== null && _ref3 !== void 0 ? _ref3 : (_defaultOptions$local = defaultOptions2.locale) === null || _defaultOptions$local === void 0 ? void 0 : (_defaultOptions$local2 = _defaultOptions$local.options) === null || _defaultOptions$local2 === void 0 ? void 0 : _defaultOptions$local2.firstWeekContainsDate) !== null && _ref2 !== void 0 ? _ref2 : 1); if (!(firstWeekContainsDate >= 1 && firstWeekContainsDate <= 7)) { throw new RangeError("firstWeekContainsDate must be between 1 and 7 inclusively"); } var weekStartsOn = toInteger((_ref5 = (_ref6 = (_ref7 = (_options$weekStartsOn = options === null || options === void 0 ? void 0 : options.weekStartsOn) !== null && _options$weekStartsOn !== void 0 ? _options$weekStartsOn : options === null || options === void 0 ? void 0 : (_options$locale3 = options.locale) === null || _options$locale3 === void 0 ? void 0 : (_options$locale3$opti = _options$locale3.options) === null || _options$locale3$opti === void 0 ? void 0 : _options$locale3$opti.weekStartsOn) !== null && _ref7 !== void 0 ? _ref7 : defaultOptions2.weekStartsOn) !== null && _ref6 !== void 0 ? _ref6 : (_defaultOptions$local3 = defaultOptions2.locale) === null || _defaultOptions$local3 === void 0 ? void 0 : (_defaultOptions$local4 = _defaultOptions$local3.options) === null || _defaultOptions$local4 === void 0 ? void 0 : _defaultOptions$local4.weekStartsOn) !== null && _ref5 !== void 0 ? _ref5 : 0); if (!(weekStartsOn >= 0 && weekStartsOn <= 6)) { throw new RangeError("weekStartsOn must be between 0 and 6 inclusively"); } if (!locale2.localize) { throw new RangeError("locale must contain localize property"); } if (!locale2.formatLong) { throw new RangeError("locale must contain formatLong property"); } var originalDate = toDate(dirtyDate); if (!isValid(originalDate)) { throw new RangeError("Invalid time value"); } var timezoneOffset = getTimezoneOffsetInMilliseconds(originalDate); var utcDate = subMilliseconds(originalDate, timezoneOffset); var formatterOptions = { firstWeekContainsDate, weekStartsOn, locale: locale2, _originalDate: originalDate }; var result = formatStr.match(longFormattingTokensRegExp).map(function(substring) { var firstCharacter = substring[0]; if (firstCharacter === "p" || firstCharacter === "P") { var longFormatter = longFormatters_default[firstCharacter]; return longFormatter(substring, locale2.formatLong); } return substring; }).join("").match(formattingTokensRegExp).map(function(substring) { if (substring === "''") { return "'"; } var firstCharacter = substring[0]; if (firstCharacter === "'") { return cleanEscapedString(substring); } var formatter = formatters_default[firstCharacter]; if (formatter) { if (!(options !== null && options !== void 0 && options.useAdditionalWeekYearTokens) && isProtectedWeekYearToken(substring)) { throwProtectedError(substring, dirtyFormatStr, String(dirtyDate)); } if (!(options !== null && options !== void 0 && options.useAdditionalDayOfYearTokens) && isProtectedDayOfYearToken(substring)) { throwProtectedError(substring, dirtyFormatStr, String(dirtyDate)); } return formatter(utcDate, substring, locale2.localize, formatterOptions); } if (firstCharacter.match(unescapedLatinCharacterRegExp)) { throw new RangeError("Format string contains an unescaped latin alphabet character `" + firstCharacter + "`"); } return substring; }).join(""); return result; } function cleanEscapedString(input) { var matched = input.match(escapedStringRegExp); if (!matched) { return input; } return matched[1].replace(doubleQuoteRegExp, "'"); } // node_modules/date-fns/esm/_lib/assign/index.js function assign(target, object) { if (target == null) { throw new TypeError("assign requires that input parameter not be null or undefined"); } for (var property in object) { if (Object.prototype.hasOwnProperty.call(object, property)) { ; target[property] = object[property]; } } return target; } // node_modules/date-fns/esm/getISOWeek/index.js var MILLISECONDS_IN_WEEK3 = 6048e5; function getISOWeek(dirtyDate) { requiredArgs(1, arguments); var date = toDate(dirtyDate); var diff = startOfISOWeek(date).getTime() - startOfISOWeekYear(date).getTime(); return Math.round(diff / MILLISECONDS_IN_WEEK3) + 1; } // node_modules/@babel/runtime/helpers/esm/arrayLikeToArray.js function _arrayLikeToArray(r32, a17) { (null == a17 || a17 > r32.length) && (a17 = r32.length); for (var e16 = 0, n15 = Array(a17); e16 < a17; e16++) n15[e16] = r32[e16]; return n15; } // node_modules/@babel/runtime/helpers/esm/unsupportedIterableToArray.js function _unsupportedIterableToArray(r32, a17) { if (r32) { if ("string" == typeof r32) return _arrayLikeToArray(r32, a17); var t17 = {}.toString.call(r32).slice(8, -1); return "Object" === t17 && r32.constructor && (t17 = r32.constructor.name), "Map" === t17 || "Set" === t17 ? Array.from(r32) : "Arguments" === t17 || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t17) ? _arrayLikeToArray(r32, a17) : void 0; } } // node_modules/@babel/runtime/helpers/esm/createForOfIteratorHelper.js function _createForOfIteratorHelper(r32, e16) { var t17 = "undefined" != typeof Symbol && r32[Symbol.iterator] || r32["@@iterator"]; if (!t17) { if (Array.isArray(r32) || (t17 = _unsupportedIterableToArray(r32)) || e16 && r32 && "number" == typeof r32.length) { t17 && (r32 = t17); var _n = 0, F4 = function F5() { }; return { s: F4, n: function n15() { return _n >= r32.length ? { done: true } : { done: false, value: r32[_n++] }; }, e: function e17(r33) { throw r33; }, f: F4 }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var o14, a17 = true, u21 = false; return { s: function s23() { t17 = t17.call(r32); }, n: function n15() { var r33 = t17.next(); return a17 = r33.done, r33; }, e: function e17(r33) { u21 = true, o14 = r33; }, f: function f27() { try { a17 || null == t17["return"] || t17["return"](); } finally { if (u21) throw o14; } } }; } // node_modules/@babel/runtime/helpers/esm/assertThisInitialized.js function _assertThisInitialized(e16) { if (void 0 === e16) throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); return e16; } // node_modules/@babel/runtime/helpers/esm/setPrototypeOf.js function _setPrototypeOf(t17, e16) { return _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function(t18, e17) { return t18.__proto__ = e17, t18; }, _setPrototypeOf(t17, e16); } // node_modules/@babel/runtime/helpers/esm/inherits.js function _inherits(t17, e16) { if ("function" != typeof e16 && null !== e16) throw new TypeError("Super expression must either be null or a function"); t17.prototype = Object.create(e16 && e16.prototype, { constructor: { value: t17, writable: true, configurable: true } }), Object.defineProperty(t17, "prototype", { writable: false }), e16 && _setPrototypeOf(t17, e16); } // node_modules/@babel/runtime/helpers/esm/getPrototypeOf.js function _getPrototypeOf(t17) { return _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function(t18) { return t18.__proto__ || Object.getPrototypeOf(t18); }, _getPrototypeOf(t17); } // node_modules/@babel/runtime/helpers/esm/isNativeReflectConstruct.js function _isNativeReflectConstruct() { try { var t17 = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function() { })); } catch (t18) { } return (_isNativeReflectConstruct = function _isNativeReflectConstruct2() { return !!t17; })(); } // node_modules/@babel/runtime/helpers/esm/possibleConstructorReturn.js function _possibleConstructorReturn(t17, e16) { if (e16 && ("object" == _typeof(e16) || "function" == typeof e16)) return e16; if (void 0 !== e16) throw new TypeError("Derived constructors may only return object or undefined"); return _assertThisInitialized(t17); } // node_modules/@babel/runtime/helpers/esm/createSuper.js function _createSuper(t17) { var r32 = _isNativeReflectConstruct(); return function() { var e16, o14 = _getPrototypeOf(t17); if (r32) { var s23 = _getPrototypeOf(this).constructor; e16 = Reflect.construct(o14, arguments, s23); } else e16 = o14.apply(this, arguments); return _possibleConstructorReturn(this, e16); }; } // node_modules/@babel/runtime/helpers/esm/classCallCheck.js function _classCallCheck(a17, n15) { if (!(a17 instanceof n15)) throw new TypeError("Cannot call a class as a function"); } // node_modules/@babel/runtime/helpers/esm/createClass.js function _defineProperties(e16, r32) { for (var t17 = 0; t17 < r32.length; t17++) { var o14 = r32[t17]; o14.enumerable = o14.enumerable || false, o14.configurable = true, "value" in o14 && (o14.writable = true), Object.defineProperty(e16, toPropertyKey(o14.key), o14); } } function _createClass(e16, r32, t17) { return r32 && _defineProperties(e16.prototype, r32), t17 && _defineProperties(e16, t17), Object.defineProperty(e16, "prototype", { writable: false }), e16; } // node_modules/date-fns/esm/parse/_lib/Setter.js var TIMEZONE_UNIT_PRIORITY = 10; var Setter = /* @__PURE__ */ (function() { function Setter2() { _classCallCheck(this, Setter2); _defineProperty(this, "priority", void 0); _defineProperty(this, "subPriority", 0); } _createClass(Setter2, [{ key: "validate", value: function validate(_utcDate, _options) { return true; } }]); return Setter2; })(); var ValueSetter = /* @__PURE__ */ (function(_Setter) { _inherits(ValueSetter2, _Setter); var _super = _createSuper(ValueSetter2); function ValueSetter2(value, validateValue, setValue2, priority, subPriority) { var _this; _classCallCheck(this, ValueSetter2); _this = _super.call(this); _this.value = value; _this.validateValue = validateValue; _this.setValue = setValue2; _this.priority = priority; if (subPriority) { _this.subPriority = subPriority; } return _this; } _createClass(ValueSetter2, [{ key: "validate", value: function validate(utcDate, options) { return this.validateValue(utcDate, this.value, options); } }, { key: "set", value: function set(utcDate, flags, options) { return this.setValue(utcDate, flags, this.value, options); } }]); return ValueSetter2; })(Setter); var DateToSystemTimezoneSetter = /* @__PURE__ */ (function(_Setter2) { _inherits(DateToSystemTimezoneSetter2, _Setter2); var _super2 = _createSuper(DateToSystemTimezoneSetter2); function DateToSystemTimezoneSetter2() { var _this2; _classCallCheck(this, DateToSystemTimezoneSetter2); for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) { args[_key] = arguments[_key]; } _this2 = _super2.call.apply(_super2, [this].concat(args)); _defineProperty(_assertThisInitialized(_this2), "priority", TIMEZONE_UNIT_PRIORITY); _defineProperty(_assertThisInitialized(_this2), "subPriority", -1); return _this2; } _createClass(DateToSystemTimezoneSetter2, [{ key: "set", value: function set(date, flags) { if (flags.timestampIsSet) { return date; } var convertedDate = /* @__PURE__ */ new Date(0); convertedDate.setFullYear(date.getUTCFullYear(), date.getUTCMonth(), date.getUTCDate()); convertedDate.setHours(date.getUTCHours(), date.getUTCMinutes(), date.getUTCSeconds(), date.getUTCMilliseconds()); return convertedDate; } }]); return DateToSystemTimezoneSetter2; })(Setter); // node_modules/date-fns/esm/parse/_lib/Parser.js var Parser = /* @__PURE__ */ (function() { function Parser2() { _classCallCheck(this, Parser2); _defineProperty(this, "incompatibleTokens", void 0); _defineProperty(this, "priority", void 0); _defineProperty(this, "subPriority", void 0); } _createClass(Parser2, [{ key: "run", value: function run(dateString, token, match2, options) { var result = this.parse(dateString, token, match2, options); if (!result) { return null; } return { setter: new ValueSetter(result.value, this.validate, this.set, this.priority, this.subPriority), rest: result.rest }; } }, { key: "validate", value: function validate(_utcDate, _value, _options) { return true; } }]); return Parser2; })(); // node_modules/date-fns/esm/parse/_lib/parsers/EraParser.js var EraParser = /* @__PURE__ */ (function(_Parser) { _inherits(EraParser2, _Parser); var _super = _createSuper(EraParser2); function EraParser2() { var _this; _classCallCheck(this, EraParser2); for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) { args[_key] = arguments[_key]; } _this = _super.call.apply(_super, [this].concat(args)); _defineProperty(_assertThisInitialized(_this), "priority", 140); _defineProperty(_assertThisInitialized(_this), "incompatibleTokens", ["R", "u", "t", "T"]); return _this; } _createClass(EraParser2, [{ key: "parse", value: function parse2(dateString, token, match2) { switch (token) { // AD, BC case "G": case "GG": case "GGG": return match2.era(dateString, { width: "abbreviated" }) || match2.era(dateString, { width: "narrow" }); // A, B case "GGGGG": return match2.era(dateString, { width: "narrow" }); // Anno Domini, Before Christ case "GGGG": default: return match2.era(dateString, { width: "wide" }) || match2.era(dateString, { width: "abbreviated" }) || match2.era(dateString, { width: "narrow" }); } } }, { key: "set", value: function set(date, flags, value) { flags.era = value; date.setUTCFullYear(value, 0, 1); date.setUTCHours(0, 0, 0, 0); return date; } }]); return EraParser2; })(Parser); // node_modules/date-fns/esm/parse/_lib/constants.js var numericPatterns = { month: /^(1[0-2]|0?\d)/, // 0 to 12 date: /^(3[0-1]|[0-2]?\d)/, // 0 to 31 dayOfYear: /^(36[0-6]|3[0-5]\d|[0-2]?\d?\d)/, // 0 to 366 week: /^(5[0-3]|[0-4]?\d)/, // 0 to 53 hour23h: /^(2[0-3]|[0-1]?\d)/, // 0 to 23 hour24h: /^(2[0-4]|[0-1]?\d)/, // 0 to 24 hour11h: /^(1[0-1]|0?\d)/, // 0 to 11 hour12h: /^(1[0-2]|0?\d)/, // 0 to 12 minute: /^[0-5]?\d/, // 0 to 59 second: /^[0-5]?\d/, // 0 to 59 singleDigit: /^\d/, // 0 to 9 twoDigits: /^\d{1,2}/, // 0 to 99 threeDigits: /^\d{1,3}/, // 0 to 999 fourDigits: /^\d{1,4}/, // 0 to 9999 anyDigitsSigned: /^-?\d+/, singleDigitSigned: /^-?\d/, // 0 to 9, -0 to -9 twoDigitsSigned: /^-?\d{1,2}/, // 0 to 99, -0 to -99 threeDigitsSigned: /^-?\d{1,3}/, // 0 to 999, -0 to -999 fourDigitsSigned: /^-?\d{1,4}/ // 0 to 9999, -0 to -9999 }; var timezonePatterns = { basicOptionalMinutes: /^([+-])(\d{2})(\d{2})?|Z/, basic: /^([+-])(\d{2})(\d{2})|Z/, basicOptionalSeconds: /^([+-])(\d{2})(\d{2})((\d{2}))?|Z/, extended: /^([+-])(\d{2}):(\d{2})|Z/, extendedOptionalSeconds: /^([+-])(\d{2}):(\d{2})(:(\d{2}))?|Z/ }; // node_modules/date-fns/esm/parse/_lib/utils.js function mapValue(parseFnResult, mapFn) { if (!parseFnResult) { return parseFnResult; } return { value: mapFn(parseFnResult.value), rest: parseFnResult.rest }; } function parseNumericPattern(pattern, dateString) { var matchResult = dateString.match(pattern); if (!matchResult) { return null; } return { value: parseInt(matchResult[0], 10), rest: dateString.slice(matchResult[0].length) }; } function parseTimezonePattern(pattern, dateString) { var matchResult = dateString.match(pattern); if (!matchResult) { return null; } if (matchResult[0] === "Z") { return { value: 0, rest: dateString.slice(1) }; } var sign = matchResult[1] === "+" ? 1 : -1; var hours = matchResult[2] ? parseInt(matchResult[2], 10) : 0; var minutes = matchResult[3] ? parseInt(matchResult[3], 10) : 0; var seconds = matchResult[5] ? parseInt(matchResult[5], 10) : 0; return { value: sign * (hours * millisecondsInHour + minutes * millisecondsInMinute + seconds * millisecondsInSecond), rest: dateString.slice(matchResult[0].length) }; } function parseAnyDigitsSigned(dateString) { return parseNumericPattern(numericPatterns.anyDigitsSigned, dateString); } function parseNDigits(n15, dateString) { switch (n15) { case 1: return parseNumericPattern(numericPatterns.singleDigit, dateString); case 2: return parseNumericPattern(numericPatterns.twoDigits, dateString); case 3: return parseNumericPattern(numericPatterns.threeDigits, dateString); case 4: return parseNumericPattern(numericPatterns.fourDigits, dateString); default: return parseNumericPattern(new RegExp("^\\d{1," + n15 + "}"), dateString); } } function parseNDigitsSigned(n15, dateString) { switch (n15) { case 1: return parseNumericPattern(numericPatterns.singleDigitSigned, dateString); case 2: return parseNumericPattern(numericPatterns.twoDigitsSigned, dateString); case 3: return parseNumericPattern(numericPatterns.threeDigitsSigned, dateString); case 4: return parseNumericPattern(numericPatterns.fourDigitsSigned, dateString); default: return parseNumericPattern(new RegExp("^-?\\d{1," + n15 + "}"), dateString); } } function dayPeriodEnumToHours(dayPeriod) { switch (dayPeriod) { case "morning": return 4; case "evening": return 17; case "pm": case "noon": case "afternoon": return 12; case "am": case "midnight": case "night": default: return 0; } } function normalizeTwoDigitYear(twoDigitYear, currentYear) { var isCommonEra = currentYear > 0; var absCurrentYear = isCommonEra ? currentYear : 1 - currentYear; var result; if (absCurrentYear <= 50) { result = twoDigitYear || 100; } else { var rangeEnd = absCurrentYear + 50; var rangeEndCentury = Math.floor(rangeEnd / 100) * 100; var isPreviousCentury = twoDigitYear >= rangeEnd % 100; result = twoDigitYear + rangeEndCentury - (isPreviousCentury ? 100 : 0); } return isCommonEra ? result : 1 - result; } function isLeapYearIndex(year) { return year % 400 === 0 || year % 4 === 0 && year % 100 !== 0; } // node_modules/date-fns/esm/parse/_lib/parsers/YearParser.js var YearParser = /* @__PURE__ */ (function(_Parser) { _inherits(YearParser2, _Parser); var _super = _createSuper(YearParser2); function YearParser2() { var _this; _classCallCheck(this, YearParser2); for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) { args[_key] = arguments[_key]; } _this = _super.call.apply(_super, [this].concat(args)); _defineProperty(_assertThisInitialized(_this), "priority", 130); _defineProperty(_assertThisInitialized(_this), "incompatibleTokens", ["Y", "R", "u", "w", "I", "i", "e", "c", "t", "T"]); return _this; } _createClass(YearParser2, [{ key: "parse", value: function parse2(dateString, token, match2) { var valueCallback3 = function valueCallback4(year) { return { year, isTwoDigitYear: token === "yy" }; }; switch (token) { case "y": return mapValue(parseNDigits(4, dateString), valueCallback3); case "yo": return mapValue(match2.ordinalNumber(dateString, { unit: "year" }), valueCallback3); default: return mapValue(parseNDigits(token.length, dateString), valueCallback3); } } }, { key: "validate", value: function validate(_date, value) { return value.isTwoDigitYear || value.year > 0; } }, { key: "set", value: function set(date, flags, value) { var currentYear = date.getUTCFullYear(); if (value.isTwoDigitYear) { var normalizedTwoDigitYear = normalizeTwoDigitYear(value.year, currentYear); date.setUTCFullYear(normalizedTwoDigitYear, 0, 1); date.setUTCHours(0, 0, 0, 0); return date; } var year = !("era" in flags) || flags.era === 1 ? value.year : 1 - value.year; date.setUTCFullYear(year, 0, 1); date.setUTCHours(0, 0, 0, 0); return date; } }]); return YearParser2; })(Parser); // node_modules/date-fns/esm/parse/_lib/parsers/LocalWeekYearParser.js var LocalWeekYearParser = /* @__PURE__ */ (function(_Parser) { _inherits(LocalWeekYearParser2, _Parser); var _super = _createSuper(LocalWeekYearParser2); function LocalWeekYearParser2() { var _this; _classCallCheck(this, LocalWeekYearParser2); for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) { args[_key] = arguments[_key]; } _this = _super.call.apply(_super, [this].concat(args)); _defineProperty(_assertThisInitialized(_this), "priority", 130); _defineProperty(_assertThisInitialized(_this), "incompatibleTokens", ["y", "R", "u", "Q", "q", "M", "L", "I", "d", "D", "i", "t", "T"]); return _this; } _createClass(LocalWeekYearParser2, [{ key: "parse", value: function parse2(dateString, token, match2) { var valueCallback3 = function valueCallback4(year) { return { year, isTwoDigitYear: token === "YY" }; }; switch (token) { case "Y": return mapValue(parseNDigits(4, dateString), valueCallback3); case "Yo": return mapValue(match2.ordinalNumber(dateString, { unit: "year" }), valueCallback3); default: return mapValue(parseNDigits(token.length, dateString), valueCallback3); } } }, { key: "validate", value: function validate(_date, value) { return value.isTwoDigitYear || value.year > 0; } }, { key: "set", value: function set(date, flags, value, options) { var currentYear = getUTCWeekYear(date, options); if (value.isTwoDigitYear) { var normalizedTwoDigitYear = normalizeTwoDigitYear(value.year, currentYear); date.setUTCFullYear(normalizedTwoDigitYear, 0, options.firstWeekContainsDate); date.setUTCHours(0, 0, 0, 0); return startOfUTCWeek(date, options); } var year = !("era" in flags) || flags.era === 1 ? value.year : 1 - value.year; date.setUTCFullYear(year, 0, options.firstWeekContainsDate); date.setUTCHours(0, 0, 0, 0); return startOfUTCWeek(date, options); } }]); return LocalWeekYearParser2; })(Parser); // node_modules/date-fns/esm/parse/_lib/parsers/ISOWeekYearParser.js var ISOWeekYearParser = /* @__PURE__ */ (function(_Parser) { _inherits(ISOWeekYearParser2, _Parser); var _super = _createSuper(ISOWeekYearParser2); function ISOWeekYearParser2() { var _this; _classCallCheck(this, ISOWeekYearParser2); for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) { args[_key] = arguments[_key]; } _this = _super.call.apply(_super, [this].concat(args)); _defineProperty(_assertThisInitialized(_this), "priority", 130); _defineProperty(_assertThisInitialized(_this), "incompatibleTokens", ["G", "y", "Y", "u", "Q", "q", "M", "L", "w", "d", "D", "e", "c", "t", "T"]); return _this; } _createClass(ISOWeekYearParser2, [{ key: "parse", value: function parse2(dateString, token) { if (token === "R") { return parseNDigitsSigned(4, dateString); } return parseNDigitsSigned(token.length, dateString); } }, { key: "set", value: function set(_date, _flags, value) { var firstWeekOfYear = /* @__PURE__ */ new Date(0); firstWeekOfYear.setUTCFullYear(value, 0, 4); firstWeekOfYear.setUTCHours(0, 0, 0, 0); return startOfUTCISOWeek(firstWeekOfYear); } }]); return ISOWeekYearParser2; })(Parser); // node_modules/date-fns/esm/parse/_lib/parsers/ExtendedYearParser.js var ExtendedYearParser = /* @__PURE__ */ (function(_Parser) { _inherits(ExtendedYearParser2, _Parser); var _super = _createSuper(ExtendedYearParser2); function ExtendedYearParser2() { var _this; _classCallCheck(this, ExtendedYearParser2); for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) { args[_key] = arguments[_key]; } _this = _super.call.apply(_super, [this].concat(args)); _defineProperty(_assertThisInitialized(_this), "priority", 130); _defineProperty(_assertThisInitialized(_this), "incompatibleTokens", ["G", "y", "Y", "R", "w", "I", "i", "e", "c", "t", "T"]); return _this; } _createClass(ExtendedYearParser2, [{ key: "parse", value: function parse2(dateString, token) { if (token === "u") { return parseNDigitsSigned(4, dateString); } return parseNDigitsSigned(token.length, dateString); } }, { key: "set", value: function set(date, _flags, value) { date.setUTCFullYear(value, 0, 1); date.setUTCHours(0, 0, 0, 0); return date; } }]); return ExtendedYearParser2; })(Parser); // node_modules/date-fns/esm/parse/_lib/parsers/QuarterParser.js var QuarterParser = /* @__PURE__ */ (function(_Parser) { _inherits(QuarterParser2, _Parser); var _super = _createSuper(QuarterParser2); function QuarterParser2() { var _this; _classCallCheck(this, QuarterParser2); for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) { args[_key] = arguments[_key]; } _this = _super.call.apply(_super, [this].concat(args)); _defineProperty(_assertThisInitialized(_this), "priority", 120); _defineProperty(_assertThisInitialized(_this), "incompatibleTokens", ["Y", "R", "q", "M", "L", "w", "I", "d", "D", "i", "e", "c", "t", "T"]); return _this; } _createClass(QuarterParser2, [{ key: "parse", value: function parse2(dateString, token, match2) { switch (token) { // 1, 2, 3, 4 case "Q": case "QQ": return parseNDigits(token.length, dateString); // 1st, 2nd, 3rd, 4th case "Qo": return match2.ordinalNumber(dateString, { unit: "quarter" }); // Q1, Q2, Q3, Q4 case "QQQ": return match2.quarter(dateString, { width: "abbreviated", context: "formatting" }) || match2.quarter(dateString, { width: "narrow", context: "formatting" }); // 1, 2, 3, 4 (narrow quarter; could be not numerical) case "QQQQQ": return match2.quarter(dateString, { width: "narrow", context: "formatting" }); // 1st quarter, 2nd quarter, ... case "QQQQ": default: return match2.quarter(dateString, { width: "wide", context: "formatting" }) || match2.quarter(dateString, { width: "abbreviated", context: "formatting" }) || match2.quarter(dateString, { width: "narrow", context: "formatting" }); } } }, { key: "validate", value: function validate(_date, value) { return value >= 1 && value <= 4; } }, { key: "set", value: function set(date, _flags, value) { date.setUTCMonth((value - 1) * 3, 1); date.setUTCHours(0, 0, 0, 0); return date; } }]); return QuarterParser2; })(Parser); // node_modules/date-fns/esm/parse/_lib/parsers/StandAloneQuarterParser.js var StandAloneQuarterParser = /* @__PURE__ */ (function(_Parser) { _inherits(StandAloneQuarterParser2, _Parser); var _super = _createSuper(StandAloneQuarterParser2); function StandAloneQuarterParser2() { var _this; _classCallCheck(this, StandAloneQuarterParser2); for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) { args[_key] = arguments[_key]; } _this = _super.call.apply(_super, [this].concat(args)); _defineProperty(_assertThisInitialized(_this), "priority", 120); _defineProperty(_assertThisInitialized(_this), "incompatibleTokens", ["Y", "R", "Q", "M", "L", "w", "I", "d", "D", "i", "e", "c", "t", "T"]); return _this; } _createClass(StandAloneQuarterParser2, [{ key: "parse", value: function parse2(dateString, token, match2) { switch (token) { // 1, 2, 3, 4 case "q": case "qq": return parseNDigits(token.length, dateString); // 1st, 2nd, 3rd, 4th case "qo": return match2.ordinalNumber(dateString, { unit: "quarter" }); // Q1, Q2, Q3, Q4 case "qqq": return match2.quarter(dateString, { width: "abbreviated", context: "standalone" }) || match2.quarter(dateString, { width: "narrow", context: "standalone" }); // 1, 2, 3, 4 (narrow quarter; could be not numerical) case "qqqqq": return match2.quarter(dateString, { width: "narrow", context: "standalone" }); // 1st quarter, 2nd quarter, ... case "qqqq": default: return match2.quarter(dateString, { width: "wide", context: "standalone" }) || match2.quarter(dateString, { width: "abbreviated", context: "standalone" }) || match2.quarter(dateString, { width: "narrow", context: "standalone" }); } } }, { key: "validate", value: function validate(_date, value) { return value >= 1 && value <= 4; } }, { key: "set", value: function set(date, _flags, value) { date.setUTCMonth((value - 1) * 3, 1); date.setUTCHours(0, 0, 0, 0); return date; } }]); return StandAloneQuarterParser2; })(Parser); // node_modules/date-fns/esm/parse/_lib/parsers/MonthParser.js var MonthParser = /* @__PURE__ */ (function(_Parser) { _inherits(MonthParser2, _Parser); var _super = _createSuper(MonthParser2); function MonthParser2() { var _this; _classCallCheck(this, MonthParser2); for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) { args[_key] = arguments[_key]; } _this = _super.call.apply(_super, [this].concat(args)); _defineProperty(_assertThisInitialized(_this), "incompatibleTokens", ["Y", "R", "q", "Q", "L", "w", "I", "D", "i", "e", "c", "t", "T"]); _defineProperty(_assertThisInitialized(_this), "priority", 110); return _this; } _createClass(MonthParser2, [{ key: "parse", value: function parse2(dateString, token, match2) { var valueCallback3 = function valueCallback4(value) { return value - 1; }; switch (token) { // 1, 2, ..., 12 case "M": return mapValue(parseNumericPattern(numericPatterns.month, dateString), valueCallback3); // 01, 02, ..., 12 case "MM": return mapValue(parseNDigits(2, dateString), valueCallback3); // 1st, 2nd, ..., 12th case "Mo": return mapValue(match2.ordinalNumber(dateString, { unit: "month" }), valueCallback3); // Jan, Feb, ..., Dec case "MMM": return match2.month(dateString, { width: "abbreviated", context: "formatting" }) || match2.month(dateString, { width: "narrow", context: "formatting" }); // J, F, ..., D case "MMMMM": return match2.month(dateString, { width: "narrow", context: "formatting" }); // January, February, ..., December case "MMMM": default: return match2.month(dateString, { width: "wide", context: "formatting" }) || match2.month(dateString, { width: "abbreviated", context: "formatting" }) || match2.month(dateString, { width: "narrow", context: "formatting" }); } } }, { key: "validate", value: function validate(_date, value) { return value >= 0 && value <= 11; } }, { key: "set", value: function set(date, _flags, value) { date.setUTCMonth(value, 1); date.setUTCHours(0, 0, 0, 0); return date; } }]); return MonthParser2; })(Parser); // node_modules/date-fns/esm/parse/_lib/parsers/StandAloneMonthParser.js var StandAloneMonthParser = /* @__PURE__ */ (function(_Parser) { _inherits(StandAloneMonthParser2, _Parser); var _super = _createSuper(StandAloneMonthParser2); function StandAloneMonthParser2() { var _this; _classCallCheck(this, StandAloneMonthParser2); for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) { args[_key] = arguments[_key]; } _this = _super.call.apply(_super, [this].concat(args)); _defineProperty(_assertThisInitialized(_this), "priority", 110); _defineProperty(_assertThisInitialized(_this), "incompatibleTokens", ["Y", "R", "q", "Q", "M", "w", "I", "D", "i", "e", "c", "t", "T"]); return _this; } _createClass(StandAloneMonthParser2, [{ key: "parse", value: function parse2(dateString, token, match2) { var valueCallback3 = function valueCallback4(value) { return value - 1; }; switch (token) { // 1, 2, ..., 12 case "L": return mapValue(parseNumericPattern(numericPatterns.month, dateString), valueCallback3); // 01, 02, ..., 12 case "LL": return mapValue(parseNDigits(2, dateString), valueCallback3); // 1st, 2nd, ..., 12th case "Lo": return mapValue(match2.ordinalNumber(dateString, { unit: "month" }), valueCallback3); // Jan, Feb, ..., Dec case "LLL": return match2.month(dateString, { width: "abbreviated", context: "standalone" }) || match2.month(dateString, { width: "narrow", context: "standalone" }); // J, F, ..., D case "LLLLL": return match2.month(dateString, { width: "narrow", context: "standalone" }); // January, February, ..., December case "LLLL": default: return match2.month(dateString, { width: "wide", context: "standalone" }) || match2.month(dateString, { width: "abbreviated", context: "standalone" }) || match2.month(dateString, { width: "narrow", context: "standalone" }); } } }, { key: "validate", value: function validate(_date, value) { return value >= 0 && value <= 11; } }, { key: "set", value: function set(date, _flags, value) { date.setUTCMonth(value, 1); date.setUTCHours(0, 0, 0, 0); return date; } }]); return StandAloneMonthParser2; })(Parser); // node_modules/date-fns/esm/_lib/setUTCWeek/index.js function setUTCWeek(dirtyDate, dirtyWeek, options) { requiredArgs(2, arguments); var date = toDate(dirtyDate); var week = toInteger(dirtyWeek); var diff = getUTCWeek(date, options) - week; date.setUTCDate(date.getUTCDate() - diff * 7); return date; } // node_modules/date-fns/esm/parse/_lib/parsers/LocalWeekParser.js var LocalWeekParser = /* @__PURE__ */ (function(_Parser) { _inherits(LocalWeekParser2, _Parser); var _super = _createSuper(LocalWeekParser2); function LocalWeekParser2() { var _this; _classCallCheck(this, LocalWeekParser2); for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) { args[_key] = arguments[_key]; } _this = _super.call.apply(_super, [this].concat(args)); _defineProperty(_assertThisInitialized(_this), "priority", 100); _defineProperty(_assertThisInitialized(_this), "incompatibleTokens", ["y", "R", "u", "q", "Q", "M", "L", "I", "d", "D", "i", "t", "T"]); return _this; } _createClass(LocalWeekParser2, [{ key: "parse", value: function parse2(dateString, token, match2) { switch (token) { case "w": return parseNumericPattern(numericPatterns.week, dateString); case "wo": return match2.ordinalNumber(dateString, { unit: "week" }); default: return parseNDigits(token.length, dateString); } } }, { key: "validate", value: function validate(_date, value) { return value >= 1 && value <= 53; } }, { key: "set", value: function set(date, _flags, value, options) { return startOfUTCWeek(setUTCWeek(date, value, options), options); } }]); return LocalWeekParser2; })(Parser); // node_modules/date-fns/esm/_lib/setUTCISOWeek/index.js function setUTCISOWeek(dirtyDate, dirtyISOWeek) { requiredArgs(2, arguments); var date = toDate(dirtyDate); var isoWeek = toInteger(dirtyISOWeek); var diff = getUTCISOWeek(date) - isoWeek; date.setUTCDate(date.getUTCDate() - diff * 7); return date; } // node_modules/date-fns/esm/parse/_lib/parsers/ISOWeekParser.js var ISOWeekParser = /* @__PURE__ */ (function(_Parser) { _inherits(ISOWeekParser2, _Parser); var _super = _createSuper(ISOWeekParser2); function ISOWeekParser2() { var _this; _classCallCheck(this, ISOWeekParser2); for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) { args[_key] = arguments[_key]; } _this = _super.call.apply(_super, [this].concat(args)); _defineProperty(_assertThisInitialized(_this), "priority", 100); _defineProperty(_assertThisInitialized(_this), "incompatibleTokens", ["y", "Y", "u", "q", "Q", "M", "L", "w", "d", "D", "e", "c", "t", "T"]); return _this; } _createClass(ISOWeekParser2, [{ key: "parse", value: function parse2(dateString, token, match2) { switch (token) { case "I": return parseNumericPattern(numericPatterns.week, dateString); case "Io": return match2.ordinalNumber(dateString, { unit: "week" }); default: return parseNDigits(token.length, dateString); } } }, { key: "validate", value: function validate(_date, value) { return value >= 1 && value <= 53; } }, { key: "set", value: function set(date, _flags, value) { return startOfUTCISOWeek(setUTCISOWeek(date, value)); } }]); return ISOWeekParser2; })(Parser); // node_modules/date-fns/esm/parse/_lib/parsers/DateParser.js var DAYS_IN_MONTH = [31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31]; var DAYS_IN_MONTH_LEAP_YEAR = [31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31]; var DateParser = /* @__PURE__ */ (function(_Parser) { _inherits(DateParser2, _Parser); var _super = _createSuper(DateParser2); function DateParser2() { var _this; _classCallCheck(this, DateParser2); for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) { args[_key] = arguments[_key]; } _this = _super.call.apply(_super, [this].concat(args)); _defineProperty(_assertThisInitialized(_this), "priority", 90); _defineProperty(_assertThisInitialized(_this), "subPriority", 1); _defineProperty(_assertThisInitialized(_this), "incompatibleTokens", ["Y", "R", "q", "Q", "w", "I", "D", "i", "e", "c", "t", "T"]); return _this; } _createClass(DateParser2, [{ key: "parse", value: function parse2(dateString, token, match2) { switch (token) { case "d": return parseNumericPattern(numericPatterns.date, dateString); case "do": return match2.ordinalNumber(dateString, { unit: "date" }); default: return parseNDigits(token.length, dateString); } } }, { key: "validate", value: function validate(date, value) { var year = date.getUTCFullYear(); var isLeapYear = isLeapYearIndex(year); var month = date.getUTCMonth(); if (isLeapYear) { return value >= 1 && value <= DAYS_IN_MONTH_LEAP_YEAR[month]; } else { return value >= 1 && value <= DAYS_IN_MONTH[month]; } } }, { key: "set", value: function set(date, _flags, value) { date.setUTCDate(value); date.setUTCHours(0, 0, 0, 0); return date; } }]); return DateParser2; })(Parser); // node_modules/date-fns/esm/parse/_lib/parsers/DayOfYearParser.js var DayOfYearParser = /* @__PURE__ */ (function(_Parser) { _inherits(DayOfYearParser2, _Parser); var _super = _createSuper(DayOfYearParser2); function DayOfYearParser2() { var _this; _classCallCheck(this, DayOfYearParser2); for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) { args[_key] = arguments[_key]; } _this = _super.call.apply(_super, [this].concat(args)); _defineProperty(_assertThisInitialized(_this), "priority", 90); _defineProperty(_assertThisInitialized(_this), "subpriority", 1); _defineProperty(_assertThisInitialized(_this), "incompatibleTokens", ["Y", "R", "q", "Q", "M", "L", "w", "I", "d", "E", "i", "e", "c", "t", "T"]); return _this; } _createClass(DayOfYearParser2, [{ key: "parse", value: function parse2(dateString, token, match2) { switch (token) { case "D": case "DD": return parseNumericPattern(numericPatterns.dayOfYear, dateString); case "Do": return match2.ordinalNumber(dateString, { unit: "date" }); default: return parseNDigits(token.length, dateString); } } }, { key: "validate", value: function validate(date, value) { var year = date.getUTCFullYear(); var isLeapYear = isLeapYearIndex(year); if (isLeapYear) { return value >= 1 && value <= 366; } else { return value >= 1 && value <= 365; } } }, { key: "set", value: function set(date, _flags, value) { date.setUTCMonth(0, value); date.setUTCHours(0, 0, 0, 0); return date; } }]); return DayOfYearParser2; })(Parser); // node_modules/date-fns/esm/_lib/setUTCDay/index.js function setUTCDay(dirtyDate, dirtyDay, options) { var _ref, _ref2, _ref3, _options$weekStartsOn, _options$locale, _options$locale$optio, _defaultOptions$local, _defaultOptions$local2; requiredArgs(2, arguments); var defaultOptions2 = getDefaultOptions(); var weekStartsOn = toInteger((_ref = (_ref2 = (_ref3 = (_options$weekStartsOn = options === null || options === void 0 ? void 0 : options.weekStartsOn) !== null && _options$weekStartsOn !== void 0 ? _options$weekStartsOn : options === null || options === void 0 ? void 0 : (_options$locale = options.locale) === null || _options$locale === void 0 ? void 0 : (_options$locale$optio = _options$locale.options) === null || _options$locale$optio === void 0 ? void 0 : _options$locale$optio.weekStartsOn) !== null && _ref3 !== void 0 ? _ref3 : defaultOptions2.weekStartsOn) !== null && _ref2 !== void 0 ? _ref2 : (_defaultOptions$local = defaultOptions2.locale) === null || _defaultOptions$local === void 0 ? void 0 : (_defaultOptions$local2 = _defaultOptions$local.options) === null || _defaultOptions$local2 === void 0 ? void 0 : _defaultOptions$local2.weekStartsOn) !== null && _ref !== void 0 ? _ref : 0); if (!(weekStartsOn >= 0 && weekStartsOn <= 6)) { throw new RangeError("weekStartsOn must be between 0 and 6 inclusively"); } var date = toDate(dirtyDate); var day = toInteger(dirtyDay); var currentDay = date.getUTCDay(); var remainder = day % 7; var dayIndex = (remainder + 7) % 7; var diff = (dayIndex < weekStartsOn ? 7 : 0) + day - currentDay; date.setUTCDate(date.getUTCDate() + diff); return date; } // node_modules/date-fns/esm/parse/_lib/parsers/DayParser.js var DayParser = /* @__PURE__ */ (function(_Parser) { _inherits(DayParser2, _Parser); var _super = _createSuper(DayParser2); function DayParser2() { var _this; _classCallCheck(this, DayParser2); for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) { args[_key] = arguments[_key]; } _this = _super.call.apply(_super, [this].concat(args)); _defineProperty(_assertThisInitialized(_this), "priority", 90); _defineProperty(_assertThisInitialized(_this), "incompatibleTokens", ["D", "i", "e", "c", "t", "T"]); return _this; } _createClass(DayParser2, [{ key: "parse", value: function parse2(dateString, token, match2) { switch (token) { // Tue case "E": case "EE": case "EEE": return match2.day(dateString, { width: "abbreviated", context: "formatting" }) || match2.day(dateString, { width: "short", context: "formatting" }) || match2.day(dateString, { width: "narrow", context: "formatting" }); // T case "EEEEE": return match2.day(dateString, { width: "narrow", context: "formatting" }); // Tu case "EEEEEE": return match2.day(dateString, { width: "short", context: "formatting" }) || match2.day(dateString, { width: "narrow", context: "formatting" }); // Tuesday case "EEEE": default: return match2.day(dateString, { width: "wide", context: "formatting" }) || match2.day(dateString, { width: "abbreviated", context: "formatting" }) || match2.day(dateString, { width: "short", context: "formatting" }) || match2.day(dateString, { width: "narrow", context: "formatting" }); } } }, { key: "validate", value: function validate(_date, value) { return value >= 0 && value <= 6; } }, { key: "set", value: function set(date, _flags, value, options) { date = setUTCDay(date, value, options); date.setUTCHours(0, 0, 0, 0); return date; } }]); return DayParser2; })(Parser); // node_modules/date-fns/esm/parse/_lib/parsers/LocalDayParser.js var LocalDayParser = /* @__PURE__ */ (function(_Parser) { _inherits(LocalDayParser2, _Parser); var _super = _createSuper(LocalDayParser2); function LocalDayParser2() { var _this; _classCallCheck(this, LocalDayParser2); for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) { args[_key] = arguments[_key]; } _this = _super.call.apply(_super, [this].concat(args)); _defineProperty(_assertThisInitialized(_this), "priority", 90); _defineProperty(_assertThisInitialized(_this), "incompatibleTokens", ["y", "R", "u", "q", "Q", "M", "L", "I", "d", "D", "E", "i", "c", "t", "T"]); return _this; } _createClass(LocalDayParser2, [{ key: "parse", value: function parse2(dateString, token, match2, options) { var valueCallback3 = function valueCallback4(value) { var wholeWeekDays = Math.floor((value - 1) / 7) * 7; return (value + options.weekStartsOn + 6) % 7 + wholeWeekDays; }; switch (token) { // 3 case "e": case "ee": return mapValue(parseNDigits(token.length, dateString), valueCallback3); // 3rd case "eo": return mapValue(match2.ordinalNumber(dateString, { unit: "day" }), valueCallback3); // Tue case "eee": return match2.day(dateString, { width: "abbreviated", context: "formatting" }) || match2.day(dateString, { width: "short", context: "formatting" }) || match2.day(dateString, { width: "narrow", context: "formatting" }); // T case "eeeee": return match2.day(dateString, { width: "narrow", context: "formatting" }); // Tu case "eeeeee": return match2.day(dateString, { width: "short", context: "formatting" }) || match2.day(dateString, { width: "narrow", context: "formatting" }); // Tuesday case "eeee": default: return match2.day(dateString, { width: "wide", context: "formatting" }) || match2.day(dateString, { width: "abbreviated", context: "formatting" }) || match2.day(dateString, { width: "short", context: "formatting" }) || match2.day(dateString, { width: "narrow", context: "formatting" }); } } }, { key: "validate", value: function validate(_date, value) { return value >= 0 && value <= 6; } }, { key: "set", value: function set(date, _flags, value, options) { date = setUTCDay(date, value, options); date.setUTCHours(0, 0, 0, 0); return date; } }]); return LocalDayParser2; })(Parser); // node_modules/date-fns/esm/parse/_lib/parsers/StandAloneLocalDayParser.js var StandAloneLocalDayParser = /* @__PURE__ */ (function(_Parser) { _inherits(StandAloneLocalDayParser2, _Parser); var _super = _createSuper(StandAloneLocalDayParser2); function StandAloneLocalDayParser2() { var _this; _classCallCheck(this, StandAloneLocalDayParser2); for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) { args[_key] = arguments[_key]; } _this = _super.call.apply(_super, [this].concat(args)); _defineProperty(_assertThisInitialized(_this), "priority", 90); _defineProperty(_assertThisInitialized(_this), "incompatibleTokens", ["y", "R", "u", "q", "Q", "M", "L", "I", "d", "D", "E", "i", "e", "t", "T"]); return _this; } _createClass(StandAloneLocalDayParser2, [{ key: "parse", value: function parse2(dateString, token, match2, options) { var valueCallback3 = function valueCallback4(value) { var wholeWeekDays = Math.floor((value - 1) / 7) * 7; return (value + options.weekStartsOn + 6) % 7 + wholeWeekDays; }; switch (token) { // 3 case "c": case "cc": return mapValue(parseNDigits(token.length, dateString), valueCallback3); // 3rd case "co": return mapValue(match2.ordinalNumber(dateString, { unit: "day" }), valueCallback3); // Tue case "ccc": return match2.day(dateString, { width: "abbreviated", context: "standalone" }) || match2.day(dateString, { width: "short", context: "standalone" }) || match2.day(dateString, { width: "narrow", context: "standalone" }); // T case "ccccc": return match2.day(dateString, { width: "narrow", context: "standalone" }); // Tu case "cccccc": return match2.day(dateString, { width: "short", context: "standalone" }) || match2.day(dateString, { width: "narrow", context: "standalone" }); // Tuesday case "cccc": default: return match2.day(dateString, { width: "wide", context: "standalone" }) || match2.day(dateString, { width: "abbreviated", context: "standalone" }) || match2.day(dateString, { width: "short", context: "standalone" }) || match2.day(dateString, { width: "narrow", context: "standalone" }); } } }, { key: "validate", value: function validate(_date, value) { return value >= 0 && value <= 6; } }, { key: "set", value: function set(date, _flags, value, options) { date = setUTCDay(date, value, options); date.setUTCHours(0, 0, 0, 0); return date; } }]); return StandAloneLocalDayParser2; })(Parser); // node_modules/date-fns/esm/_lib/setUTCISODay/index.js function setUTCISODay(dirtyDate, dirtyDay) { requiredArgs(2, arguments); var day = toInteger(dirtyDay); if (day % 7 === 0) { day = day - 7; } var weekStartsOn = 1; var date = toDate(dirtyDate); var currentDay = date.getUTCDay(); var remainder = day % 7; var dayIndex = (remainder + 7) % 7; var diff = (dayIndex < weekStartsOn ? 7 : 0) + day - currentDay; date.setUTCDate(date.getUTCDate() + diff); return date; } // node_modules/date-fns/esm/parse/_lib/parsers/ISODayParser.js var ISODayParser = /* @__PURE__ */ (function(_Parser) { _inherits(ISODayParser2, _Parser); var _super = _createSuper(ISODayParser2); function ISODayParser2() { var _this; _classCallCheck(this, ISODayParser2); for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) { args[_key] = arguments[_key]; } _this = _super.call.apply(_super, [this].concat(args)); _defineProperty(_assertThisInitialized(_this), "priority", 90); _defineProperty(_assertThisInitialized(_this), "incompatibleTokens", ["y", "Y", "u", "q", "Q", "M", "L", "w", "d", "D", "E", "e", "c", "t", "T"]); return _this; } _createClass(ISODayParser2, [{ key: "parse", value: function parse2(dateString, token, match2) { var valueCallback3 = function valueCallback4(value) { if (value === 0) { return 7; } return value; }; switch (token) { // 2 case "i": case "ii": return parseNDigits(token.length, dateString); // 2nd case "io": return match2.ordinalNumber(dateString, { unit: "day" }); // Tue case "iii": return mapValue(match2.day(dateString, { width: "abbreviated", context: "formatting" }) || match2.day(dateString, { width: "short", context: "formatting" }) || match2.day(dateString, { width: "narrow", context: "formatting" }), valueCallback3); // T case "iiiii": return mapValue(match2.day(dateString, { width: "narrow", context: "formatting" }), valueCallback3); // Tu case "iiiiii": return mapValue(match2.day(dateString, { width: "short", context: "formatting" }) || match2.day(dateString, { width: "narrow", context: "formatting" }), valueCallback3); // Tuesday case "iiii": default: return mapValue(match2.day(dateString, { width: "wide", context: "formatting" }) || match2.day(dateString, { width: "abbreviated", context: "formatting" }) || match2.day(dateString, { width: "short", context: "formatting" }) || match2.day(dateString, { width: "narrow", context: "formatting" }), valueCallback3); } } }, { key: "validate", value: function validate(_date, value) { return value >= 1 && value <= 7; } }, { key: "set", value: function set(date, _flags, value) { date = setUTCISODay(date, value); date.setUTCHours(0, 0, 0, 0); return date; } }]); return ISODayParser2; })(Parser); // node_modules/date-fns/esm/parse/_lib/parsers/AMPMParser.js var AMPMParser = /* @__PURE__ */ (function(_Parser) { _inherits(AMPMParser2, _Parser); var _super = _createSuper(AMPMParser2); function AMPMParser2() { var _this; _classCallCheck(this, AMPMParser2); for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) { args[_key] = arguments[_key]; } _this = _super.call.apply(_super, [this].concat(args)); _defineProperty(_assertThisInitialized(_this), "priority", 80); _defineProperty(_assertThisInitialized(_this), "incompatibleTokens", ["b", "B", "H", "k", "t", "T"]); return _this; } _createClass(AMPMParser2, [{ key: "parse", value: function parse2(dateString, token, match2) { switch (token) { case "a": case "aa": case "aaa": return match2.dayPeriod(dateString, { width: "abbreviated", context: "formatting" }) || match2.dayPeriod(dateString, { width: "narrow", context: "formatting" }); case "aaaaa": return match2.dayPeriod(dateString, { width: "narrow", context: "formatting" }); case "aaaa": default: return match2.dayPeriod(dateString, { width: "wide", context: "formatting" }) || match2.dayPeriod(dateString, { width: "abbreviated", context: "formatting" }) || match2.dayPeriod(dateString, { width: "narrow", context: "formatting" }); } } }, { key: "set", value: function set(date, _flags, value) { date.setUTCHours(dayPeriodEnumToHours(value), 0, 0, 0); return date; } }]); return AMPMParser2; })(Parser); // node_modules/date-fns/esm/parse/_lib/parsers/AMPMMidnightParser.js var AMPMMidnightParser = /* @__PURE__ */ (function(_Parser) { _inherits(AMPMMidnightParser2, _Parser); var _super = _createSuper(AMPMMidnightParser2); function AMPMMidnightParser2() { var _this; _classCallCheck(this, AMPMMidnightParser2); for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) { args[_key] = arguments[_key]; } _this = _super.call.apply(_super, [this].concat(args)); _defineProperty(_assertThisInitialized(_this), "priority", 80); _defineProperty(_assertThisInitialized(_this), "incompatibleTokens", ["a", "B", "H", "k", "t", "T"]); return _this; } _createClass(AMPMMidnightParser2, [{ key: "parse", value: function parse2(dateString, token, match2) { switch (token) { case "b": case "bb": case "bbb": return match2.dayPeriod(dateString, { width: "abbreviated", context: "formatting" }) || match2.dayPeriod(dateString, { width: "narrow", context: "formatting" }); case "bbbbb": return match2.dayPeriod(dateString, { width: "narrow", context: "formatting" }); case "bbbb": default: return match2.dayPeriod(dateString, { width: "wide", context: "formatting" }) || match2.dayPeriod(dateString, { width: "abbreviated", context: "formatting" }) || match2.dayPeriod(dateString, { width: "narrow", context: "formatting" }); } } }, { key: "set", value: function set(date, _flags, value) { date.setUTCHours(dayPeriodEnumToHours(value), 0, 0, 0); return date; } }]); return AMPMMidnightParser2; })(Parser); // node_modules/date-fns/esm/parse/_lib/parsers/DayPeriodParser.js var DayPeriodParser = /* @__PURE__ */ (function(_Parser) { _inherits(DayPeriodParser2, _Parser); var _super = _createSuper(DayPeriodParser2); function DayPeriodParser2() { var _this; _classCallCheck(this, DayPeriodParser2); for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) { args[_key] = arguments[_key]; } _this = _super.call.apply(_super, [this].concat(args)); _defineProperty(_assertThisInitialized(_this), "priority", 80); _defineProperty(_assertThisInitialized(_this), "incompatibleTokens", ["a", "b", "t", "T"]); return _this; } _createClass(DayPeriodParser2, [{ key: "parse", value: function parse2(dateString, token, match2) { switch (token) { case "B": case "BB": case "BBB": return match2.dayPeriod(dateString, { width: "abbreviated", context: "formatting" }) || match2.dayPeriod(dateString, { width: "narrow", context: "formatting" }); case "BBBBB": return match2.dayPeriod(dateString, { width: "narrow", context: "formatting" }); case "BBBB": default: return match2.dayPeriod(dateString, { width: "wide", context: "formatting" }) || match2.dayPeriod(dateString, { width: "abbreviated", context: "formatting" }) || match2.dayPeriod(dateString, { width: "narrow", context: "formatting" }); } } }, { key: "set", value: function set(date, _flags, value) { date.setUTCHours(dayPeriodEnumToHours(value), 0, 0, 0); return date; } }]); return DayPeriodParser2; })(Parser); // node_modules/date-fns/esm/parse/_lib/parsers/Hour1to12Parser.js var Hour1to12Parser = /* @__PURE__ */ (function(_Parser) { _inherits(Hour1to12Parser2, _Parser); var _super = _createSuper(Hour1to12Parser2); function Hour1to12Parser2() { var _this; _classCallCheck(this, Hour1to12Parser2); for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) { args[_key] = arguments[_key]; } _this = _super.call.apply(_super, [this].concat(args)); _defineProperty(_assertThisInitialized(_this), "priority", 70); _defineProperty(_assertThisInitialized(_this), "incompatibleTokens", ["H", "K", "k", "t", "T"]); return _this; } _createClass(Hour1to12Parser2, [{ key: "parse", value: function parse2(dateString, token, match2) { switch (token) { case "h": return parseNumericPattern(numericPatterns.hour12h, dateString); case "ho": return match2.ordinalNumber(dateString, { unit: "hour" }); default: return parseNDigits(token.length, dateString); } } }, { key: "validate", value: function validate(_date, value) { return value >= 1 && value <= 12; } }, { key: "set", value: function set(date, _flags, value) { var isPM = date.getUTCHours() >= 12; if (isPM && value < 12) { date.setUTCHours(value + 12, 0, 0, 0); } else if (!isPM && value === 12) { date.setUTCHours(0, 0, 0, 0); } else { date.setUTCHours(value, 0, 0, 0); } return date; } }]); return Hour1to12Parser2; })(Parser); // node_modules/date-fns/esm/parse/_lib/parsers/Hour0to23Parser.js var Hour0to23Parser = /* @__PURE__ */ (function(_Parser) { _inherits(Hour0to23Parser2, _Parser); var _super = _createSuper(Hour0to23Parser2); function Hour0to23Parser2() { var _this; _classCallCheck(this, Hour0to23Parser2); for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) { args[_key] = arguments[_key]; } _this = _super.call.apply(_super, [this].concat(args)); _defineProperty(_assertThisInitialized(_this), "priority", 70); _defineProperty(_assertThisInitialized(_this), "incompatibleTokens", ["a", "b", "h", "K", "k", "t", "T"]); return _this; } _createClass(Hour0to23Parser2, [{ key: "parse", value: function parse2(dateString, token, match2) { switch (token) { case "H": return parseNumericPattern(numericPatterns.hour23h, dateString); case "Ho": return match2.ordinalNumber(dateString, { unit: "hour" }); default: return parseNDigits(token.length, dateString); } } }, { key: "validate", value: function validate(_date, value) { return value >= 0 && value <= 23; } }, { key: "set", value: function set(date, _flags, value) { date.setUTCHours(value, 0, 0, 0); return date; } }]); return Hour0to23Parser2; })(Parser); // node_modules/date-fns/esm/parse/_lib/parsers/Hour0To11Parser.js var Hour0To11Parser = /* @__PURE__ */ (function(_Parser) { _inherits(Hour0To11Parser2, _Parser); var _super = _createSuper(Hour0To11Parser2); function Hour0To11Parser2() { var _this; _classCallCheck(this, Hour0To11Parser2); for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) { args[_key] = arguments[_key]; } _this = _super.call.apply(_super, [this].concat(args)); _defineProperty(_assertThisInitialized(_this), "priority", 70); _defineProperty(_assertThisInitialized(_this), "incompatibleTokens", ["h", "H", "k", "t", "T"]); return _this; } _createClass(Hour0To11Parser2, [{ key: "parse", value: function parse2(dateString, token, match2) { switch (token) { case "K": return parseNumericPattern(numericPatterns.hour11h, dateString); case "Ko": return match2.ordinalNumber(dateString, { unit: "hour" }); default: return parseNDigits(token.length, dateString); } } }, { key: "validate", value: function validate(_date, value) { return value >= 0 && value <= 11; } }, { key: "set", value: function set(date, _flags, value) { var isPM = date.getUTCHours() >= 12; if (isPM && value < 12) { date.setUTCHours(value + 12, 0, 0, 0); } else { date.setUTCHours(value, 0, 0, 0); } return date; } }]); return Hour0To11Parser2; })(Parser); // node_modules/date-fns/esm/parse/_lib/parsers/Hour1To24Parser.js var Hour1To24Parser = /* @__PURE__ */ (function(_Parser) { _inherits(Hour1To24Parser2, _Parser); var _super = _createSuper(Hour1To24Parser2); function Hour1To24Parser2() { var _this; _classCallCheck(this, Hour1To24Parser2); for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) { args[_key] = arguments[_key]; } _this = _super.call.apply(_super, [this].concat(args)); _defineProperty(_assertThisInitialized(_this), "priority", 70); _defineProperty(_assertThisInitialized(_this), "incompatibleTokens", ["a", "b", "h", "H", "K", "t", "T"]); return _this; } _createClass(Hour1To24Parser2, [{ key: "parse", value: function parse2(dateString, token, match2) { switch (token) { case "k": return parseNumericPattern(numericPatterns.hour24h, dateString); case "ko": return match2.ordinalNumber(dateString, { unit: "hour" }); default: return parseNDigits(token.length, dateString); } } }, { key: "validate", value: function validate(_date, value) { return value >= 1 && value <= 24; } }, { key: "set", value: function set(date, _flags, value) { var hours = value <= 24 ? value % 24 : value; date.setUTCHours(hours, 0, 0, 0); return date; } }]); return Hour1To24Parser2; })(Parser); // node_modules/date-fns/esm/parse/_lib/parsers/MinuteParser.js var MinuteParser = /* @__PURE__ */ (function(_Parser) { _inherits(MinuteParser2, _Parser); var _super = _createSuper(MinuteParser2); function MinuteParser2() { var _this; _classCallCheck(this, MinuteParser2); for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) { args[_key] = arguments[_key]; } _this = _super.call.apply(_super, [this].concat(args)); _defineProperty(_assertThisInitialized(_this), "priority", 60); _defineProperty(_assertThisInitialized(_this), "incompatibleTokens", ["t", "T"]); return _this; } _createClass(MinuteParser2, [{ key: "parse", value: function parse2(dateString, token, match2) { switch (token) { case "m": return parseNumericPattern(numericPatterns.minute, dateString); case "mo": return match2.ordinalNumber(dateString, { unit: "minute" }); default: return parseNDigits(token.length, dateString); } } }, { key: "validate", value: function validate(_date, value) { return value >= 0 && value <= 59; } }, { key: "set", value: function set(date, _flags, value) { date.setUTCMinutes(value, 0, 0); return date; } }]); return MinuteParser2; })(Parser); // node_modules/date-fns/esm/parse/_lib/parsers/SecondParser.js var SecondParser = /* @__PURE__ */ (function(_Parser) { _inherits(SecondParser2, _Parser); var _super = _createSuper(SecondParser2); function SecondParser2() { var _this; _classCallCheck(this, SecondParser2); for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) { args[_key] = arguments[_key]; } _this = _super.call.apply(_super, [this].concat(args)); _defineProperty(_assertThisInitialized(_this), "priority", 50); _defineProperty(_assertThisInitialized(_this), "incompatibleTokens", ["t", "T"]); return _this; } _createClass(SecondParser2, [{ key: "parse", value: function parse2(dateString, token, match2) { switch (token) { case "s": return parseNumericPattern(numericPatterns.second, dateString); case "so": return match2.ordinalNumber(dateString, { unit: "second" }); default: return parseNDigits(token.length, dateString); } } }, { key: "validate", value: function validate(_date, value) { return value >= 0 && value <= 59; } }, { key: "set", value: function set(date, _flags, value) { date.setUTCSeconds(value, 0); return date; } }]); return SecondParser2; })(Parser); // node_modules/date-fns/esm/parse/_lib/parsers/FractionOfSecondParser.js var FractionOfSecondParser = /* @__PURE__ */ (function(_Parser) { _inherits(FractionOfSecondParser2, _Parser); var _super = _createSuper(FractionOfSecondParser2); function FractionOfSecondParser2() { var _this; _classCallCheck(this, FractionOfSecondParser2); for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) { args[_key] = arguments[_key]; } _this = _super.call.apply(_super, [this].concat(args)); _defineProperty(_assertThisInitialized(_this), "priority", 30); _defineProperty(_assertThisInitialized(_this), "incompatibleTokens", ["t", "T"]); return _this; } _createClass(FractionOfSecondParser2, [{ key: "parse", value: function parse2(dateString, token) { var valueCallback3 = function valueCallback4(value) { return Math.floor(value * Math.pow(10, -token.length + 3)); }; return mapValue(parseNDigits(token.length, dateString), valueCallback3); } }, { key: "set", value: function set(date, _flags, value) { date.setUTCMilliseconds(value); return date; } }]); return FractionOfSecondParser2; })(Parser); // node_modules/date-fns/esm/parse/_lib/parsers/ISOTimezoneWithZParser.js var ISOTimezoneWithZParser = /* @__PURE__ */ (function(_Parser) { _inherits(ISOTimezoneWithZParser2, _Parser); var _super = _createSuper(ISOTimezoneWithZParser2); function ISOTimezoneWithZParser2() { var _this; _classCallCheck(this, ISOTimezoneWithZParser2); for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) { args[_key] = arguments[_key]; } _this = _super.call.apply(_super, [this].concat(args)); _defineProperty(_assertThisInitialized(_this), "priority", 10); _defineProperty(_assertThisInitialized(_this), "incompatibleTokens", ["t", "T", "x"]); return _this; } _createClass(ISOTimezoneWithZParser2, [{ key: "parse", value: function parse2(dateString, token) { switch (token) { case "X": return parseTimezonePattern(timezonePatterns.basicOptionalMinutes, dateString); case "XX": return parseTimezonePattern(timezonePatterns.basic, dateString); case "XXXX": return parseTimezonePattern(timezonePatterns.basicOptionalSeconds, dateString); case "XXXXX": return parseTimezonePattern(timezonePatterns.extendedOptionalSeconds, dateString); case "XXX": default: return parseTimezonePattern(timezonePatterns.extended, dateString); } } }, { key: "set", value: function set(date, flags, value) { if (flags.timestampIsSet) { return date; } return new Date(date.getTime() - value); } }]); return ISOTimezoneWithZParser2; })(Parser); // node_modules/date-fns/esm/parse/_lib/parsers/ISOTimezoneParser.js var ISOTimezoneParser = /* @__PURE__ */ (function(_Parser) { _inherits(ISOTimezoneParser2, _Parser); var _super = _createSuper(ISOTimezoneParser2); function ISOTimezoneParser2() { var _this; _classCallCheck(this, ISOTimezoneParser2); for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) { args[_key] = arguments[_key]; } _this = _super.call.apply(_super, [this].concat(args)); _defineProperty(_assertThisInitialized(_this), "priority", 10); _defineProperty(_assertThisInitialized(_this), "incompatibleTokens", ["t", "T", "X"]); return _this; } _createClass(ISOTimezoneParser2, [{ key: "parse", value: function parse2(dateString, token) { switch (token) { case "x": return parseTimezonePattern(timezonePatterns.basicOptionalMinutes, dateString); case "xx": return parseTimezonePattern(timezonePatterns.basic, dateString); case "xxxx": return parseTimezonePattern(timezonePatterns.basicOptionalSeconds, dateString); case "xxxxx": return parseTimezonePattern(timezonePatterns.extendedOptionalSeconds, dateString); case "xxx": default: return parseTimezonePattern(timezonePatterns.extended, dateString); } } }, { key: "set", value: function set(date, flags, value) { if (flags.timestampIsSet) { return date; } return new Date(date.getTime() - value); } }]); return ISOTimezoneParser2; })(Parser); // node_modules/date-fns/esm/parse/_lib/parsers/TimestampSecondsParser.js var TimestampSecondsParser = /* @__PURE__ */ (function(_Parser) { _inherits(TimestampSecondsParser2, _Parser); var _super = _createSuper(TimestampSecondsParser2); function TimestampSecondsParser2() { var _this; _classCallCheck(this, TimestampSecondsParser2); for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) { args[_key] = arguments[_key]; } _this = _super.call.apply(_super, [this].concat(args)); _defineProperty(_assertThisInitialized(_this), "priority", 40); _defineProperty(_assertThisInitialized(_this), "incompatibleTokens", "*"); return _this; } _createClass(TimestampSecondsParser2, [{ key: "parse", value: function parse2(dateString) { return parseAnyDigitsSigned(dateString); } }, { key: "set", value: function set(_date, _flags, value) { return [new Date(value * 1e3), { timestampIsSet: true }]; } }]); return TimestampSecondsParser2; })(Parser); // node_modules/date-fns/esm/parse/_lib/parsers/TimestampMillisecondsParser.js var TimestampMillisecondsParser = /* @__PURE__ */ (function(_Parser) { _inherits(TimestampMillisecondsParser2, _Parser); var _super = _createSuper(TimestampMillisecondsParser2); function TimestampMillisecondsParser2() { var _this; _classCallCheck(this, TimestampMillisecondsParser2); for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) { args[_key] = arguments[_key]; } _this = _super.call.apply(_super, [this].concat(args)); _defineProperty(_assertThisInitialized(_this), "priority", 20); _defineProperty(_assertThisInitialized(_this), "incompatibleTokens", "*"); return _this; } _createClass(TimestampMillisecondsParser2, [{ key: "parse", value: function parse2(dateString) { return parseAnyDigitsSigned(dateString); } }, { key: "set", value: function set(_date, _flags, value) { return [new Date(value), { timestampIsSet: true }]; } }]); return TimestampMillisecondsParser2; })(Parser); // node_modules/date-fns/esm/parse/_lib/parsers/index.js var parsers = { G: new EraParser(), y: new YearParser(), Y: new LocalWeekYearParser(), R: new ISOWeekYearParser(), u: new ExtendedYearParser(), Q: new QuarterParser(), q: new StandAloneQuarterParser(), M: new MonthParser(), L: new StandAloneMonthParser(), w: new LocalWeekParser(), I: new ISOWeekParser(), d: new DateParser(), D: new DayOfYearParser(), E: new DayParser(), e: new LocalDayParser(), c: new StandAloneLocalDayParser(), i: new ISODayParser(), a: new AMPMParser(), b: new AMPMMidnightParser(), B: new DayPeriodParser(), h: new Hour1to12Parser(), H: new Hour0to23Parser(), K: new Hour0To11Parser(), k: new Hour1To24Parser(), m: new MinuteParser(), s: new SecondParser(), S: new FractionOfSecondParser(), X: new ISOTimezoneWithZParser(), x: new ISOTimezoneParser(), t: new TimestampSecondsParser(), T: new TimestampMillisecondsParser() }; // node_modules/date-fns/esm/parse/index.js var formattingTokensRegExp2 = /[yYQqMLwIdDecihHKkms]o|(\w)\1*|''|'(''|[^'])+('|$)|./g; var longFormattingTokensRegExp2 = /P+p+|P+|p+|''|'(''|[^'])+('|$)|./g; var escapedStringRegExp2 = /^'([^]*?)'?$/; var doubleQuoteRegExp2 = /''/g; var notWhitespaceRegExp = /\S/; var unescapedLatinCharacterRegExp2 = /[a-zA-Z]/; function parse(dirtyDateString, dirtyFormatString, dirtyReferenceDate, options) { var _ref, _options$locale, _ref2, _ref3, _ref4, _options$firstWeekCon, _options$locale2, _options$locale2$opti, _defaultOptions$local, _defaultOptions$local2, _ref5, _ref6, _ref7, _options$weekStartsOn, _options$locale3, _options$locale3$opti, _defaultOptions$local3, _defaultOptions$local4; requiredArgs(3, arguments); var dateString = String(dirtyDateString); var formatString = String(dirtyFormatString); var defaultOptions2 = getDefaultOptions(); var locale2 = (_ref = (_options$locale = options === null || options === void 0 ? void 0 : options.locale) !== null && _options$locale !== void 0 ? _options$locale : defaultOptions2.locale) !== null && _ref !== void 0 ? _ref : defaultLocale_default; if (!locale2.match) { throw new RangeError("locale must contain match property"); } var firstWeekContainsDate = toInteger((_ref2 = (_ref3 = (_ref4 = (_options$firstWeekCon = options === null || options === void 0 ? void 0 : options.firstWeekContainsDate) !== null && _options$firstWeekCon !== void 0 ? _options$firstWeekCon : options === null || options === void 0 ? void 0 : (_options$locale2 = options.locale) === null || _options$locale2 === void 0 ? void 0 : (_options$locale2$opti = _options$locale2.options) === null || _options$locale2$opti === void 0 ? void 0 : _options$locale2$opti.firstWeekContainsDate) !== null && _ref4 !== void 0 ? _ref4 : defaultOptions2.firstWeekContainsDate) !== null && _ref3 !== void 0 ? _ref3 : (_defaultOptions$local = defaultOptions2.locale) === null || _defaultOptions$local === void 0 ? void 0 : (_defaultOptions$local2 = _defaultOptions$local.options) === null || _defaultOptions$local2 === void 0 ? void 0 : _defaultOptions$local2.firstWeekContainsDate) !== null && _ref2 !== void 0 ? _ref2 : 1); if (!(firstWeekContainsDate >= 1 && firstWeekContainsDate <= 7)) { throw new RangeError("firstWeekContainsDate must be between 1 and 7 inclusively"); } var weekStartsOn = toInteger((_ref5 = (_ref6 = (_ref7 = (_options$weekStartsOn = options === null || options === void 0 ? void 0 : options.weekStartsOn) !== null && _options$weekStartsOn !== void 0 ? _options$weekStartsOn : options === null || options === void 0 ? void 0 : (_options$locale3 = options.locale) === null || _options$locale3 === void 0 ? void 0 : (_options$locale3$opti = _options$locale3.options) === null || _options$locale3$opti === void 0 ? void 0 : _options$locale3$opti.weekStartsOn) !== null && _ref7 !== void 0 ? _ref7 : defaultOptions2.weekStartsOn) !== null && _ref6 !== void 0 ? _ref6 : (_defaultOptions$local3 = defaultOptions2.locale) === null || _defaultOptions$local3 === void 0 ? void 0 : (_defaultOptions$local4 = _defaultOptions$local3.options) === null || _defaultOptions$local4 === void 0 ? void 0 : _defaultOptions$local4.weekStartsOn) !== null && _ref5 !== void 0 ? _ref5 : 0); if (!(weekStartsOn >= 0 && weekStartsOn <= 6)) { throw new RangeError("weekStartsOn must be between 0 and 6 inclusively"); } if (formatString === "") { if (dateString === "") { return toDate(dirtyReferenceDate); } else { return /* @__PURE__ */ new Date(NaN); } } var subFnOptions = { firstWeekContainsDate, weekStartsOn, locale: locale2 }; var setters = [new DateToSystemTimezoneSetter()]; var tokens = formatString.match(longFormattingTokensRegExp2).map(function(substring) { var firstCharacter = substring[0]; if (firstCharacter in longFormatters_default) { var longFormatter = longFormatters_default[firstCharacter]; return longFormatter(substring, locale2.formatLong); } return substring; }).join("").match(formattingTokensRegExp2); var usedTokens = []; var _iterator = _createForOfIteratorHelper(tokens), _step; try { var _loop = function _loop2() { var token = _step.value; if (!(options !== null && options !== void 0 && options.useAdditionalWeekYearTokens) && isProtectedWeekYearToken(token)) { throwProtectedError(token, formatString, dirtyDateString); } if (!(options !== null && options !== void 0 && options.useAdditionalDayOfYearTokens) && isProtectedDayOfYearToken(token)) { throwProtectedError(token, formatString, dirtyDateString); } var firstCharacter = token[0]; var parser2 = parsers[firstCharacter]; if (parser2) { var incompatibleTokens = parser2.incompatibleTokens; if (Array.isArray(incompatibleTokens)) { var incompatibleToken = usedTokens.find(function(usedToken) { return incompatibleTokens.includes(usedToken.token) || usedToken.token === firstCharacter; }); if (incompatibleToken) { throw new RangeError("The format string mustn't contain `".concat(incompatibleToken.fullToken, "` and `").concat(token, "` at the same time")); } } else if (parser2.incompatibleTokens === "*" && usedTokens.length > 0) { throw new RangeError("The format string mustn't contain `".concat(token, "` and any other token at the same time")); } usedTokens.push({ token: firstCharacter, fullToken: token }); var parseResult = parser2.run(dateString, token, locale2.match, subFnOptions); if (!parseResult) { return { v: /* @__PURE__ */ new Date(NaN) }; } setters.push(parseResult.setter); dateString = parseResult.rest; } else { if (firstCharacter.match(unescapedLatinCharacterRegExp2)) { throw new RangeError("Format string contains an unescaped latin alphabet character `" + firstCharacter + "`"); } if (token === "''") { token = "'"; } else if (firstCharacter === "'") { token = cleanEscapedString2(token); } if (dateString.indexOf(token) === 0) { dateString = dateString.slice(token.length); } else { return { v: /* @__PURE__ */ new Date(NaN) }; } } }; for (_iterator.s(); !(_step = _iterator.n()).done; ) { var _ret = _loop(); if (_typeof(_ret) === "object") return _ret.v; } } catch (err2) { _iterator.e(err2); } finally { _iterator.f(); } if (dateString.length > 0 && notWhitespaceRegExp.test(dateString)) { return /* @__PURE__ */ new Date(NaN); } var uniquePrioritySetters = setters.map(function(setter2) { return setter2.priority; }).sort(function(a17, b21) { return b21 - a17; }).filter(function(priority, index, array) { return array.indexOf(priority) === index; }).map(function(priority) { return setters.filter(function(setter2) { return setter2.priority === priority; }).sort(function(a17, b21) { return b21.subPriority - a17.subPriority; }); }).map(function(setterArray) { return setterArray[0]; }); var date = toDate(dirtyReferenceDate); if (isNaN(date.getTime())) { return /* @__PURE__ */ new Date(NaN); } var utcDate = subMilliseconds(date, getTimezoneOffsetInMilliseconds(date)); var flags = {}; var _iterator2 = _createForOfIteratorHelper(uniquePrioritySetters), _step2; try { for (_iterator2.s(); !(_step2 = _iterator2.n()).done; ) { var setter = _step2.value; if (!setter.validate(utcDate, subFnOptions)) { return /* @__PURE__ */ new Date(NaN); } var result = setter.set(utcDate, flags, subFnOptions); if (Array.isArray(result)) { utcDate = result[0]; assign(flags, result[1]); } else { utcDate = result; } } } catch (err2) { _iterator2.e(err2); } finally { _iterator2.f(); } return utcDate; } function cleanEscapedString2(input) { return input.match(escapedStringRegExp2)[1].replace(doubleQuoteRegExp2, "'"); } // node_modules/ng-zorro-antd/fesm2022/ng-zorro-antd-core-time.mjs var timeUnits = [ ["Y", 1e3 * 60 * 60 * 24 * 365], // years ["M", 1e3 * 60 * 60 * 24 * 30], // months ["D", 1e3 * 60 * 60 * 24], // days ["H", 1e3 * 60 * 60], // hours ["m", 1e3 * 60], // minutes ["s", 1e3], // seconds ["S", 1] // million seconds ]; var NgTimeParser = class { format; localeId; regex = null; matchMap = { hour: null, minute: null, second: null, periodNarrow: null, periodWide: null, periodAbbreviated: null }; constructor(format2, localeId) { this.format = format2; this.localeId = localeId; this.genRegexp(); } toDate(str) { const result = this.getTimeResult(str); const time = /* @__PURE__ */ new Date(); if (isNotNil(result?.hour)) { time.setHours(result.hour); } if (isNotNil(result?.minute)) { time.setMinutes(result.minute); } if (isNotNil(result?.second)) { time.setSeconds(result.second); } if (result?.period === 1 && time.getHours() < 12) { time.setHours(time.getHours() + 12); } return time; } getTimeResult(str) { const match2 = this.regex.exec(str); let period = null; if (match2) { if (isNotNil(this.matchMap.periodNarrow)) { period = getLocaleDayPeriods(this.localeId, FormStyle.Format, TranslationWidth.Narrow).indexOf(match2[this.matchMap.periodNarrow + 1]); } if (isNotNil(this.matchMap.periodWide)) { period = getLocaleDayPeriods(this.localeId, FormStyle.Format, TranslationWidth.Wide).indexOf(match2[this.matchMap.periodWide + 1]); } if (isNotNil(this.matchMap.periodAbbreviated)) { period = getLocaleDayPeriods(this.localeId, FormStyle.Format, TranslationWidth.Abbreviated).indexOf(match2[this.matchMap.periodAbbreviated + 1]); } return { hour: isNotNil(this.matchMap.hour) ? Number.parseInt(match2[this.matchMap.hour + 1], 10) : null, minute: isNotNil(this.matchMap.minute) ? Number.parseInt(match2[this.matchMap.minute + 1], 10) : null, second: isNotNil(this.matchMap.second) ? Number.parseInt(match2[this.matchMap.second + 1], 10) : null, period }; } else { return null; } } genRegexp() { let regexStr = this.format.replace(/([.*+?^=!:${}()|[\]/\\])/g, "\\$&"); const hourRegex = /h{1,2}/i; const minuteRegex = /m{1,2}/; const secondRegex = /s{1,2}/; const periodNarrow = /aaaaa/; const periodWide = /aaaa/; const periodAbbreviated = /a{1,3}/; const hourMatch = hourRegex.exec(this.format); const minuteMatch = minuteRegex.exec(this.format); const secondMatch = secondRegex.exec(this.format); const periodNarrowMatch = periodNarrow.exec(this.format); let periodWideMatch = null; let periodAbbreviatedMatch = null; if (!periodNarrowMatch) { periodWideMatch = periodWide.exec(this.format); } if (!periodWideMatch && !periodNarrowMatch) { periodAbbreviatedMatch = periodAbbreviated.exec(this.format); } const matchs = [hourMatch, minuteMatch, secondMatch, periodNarrowMatch, periodWideMatch, periodAbbreviatedMatch].filter((m28) => !!m28).sort((a17, b21) => a17.index - b21.index); matchs.forEach((match2, index) => { switch (match2) { case hourMatch: this.matchMap.hour = index; regexStr = regexStr.replace(hourRegex, "(\\d{1,2})"); break; case minuteMatch: this.matchMap.minute = index; regexStr = regexStr.replace(minuteRegex, "(\\d{1,2})"); break; case secondMatch: this.matchMap.second = index; regexStr = regexStr.replace(secondRegex, "(\\d{1,2})"); break; case periodNarrowMatch: { this.matchMap.periodNarrow = index; const periodsNarrow = getLocaleDayPeriods(this.localeId, FormStyle.Format, TranslationWidth.Narrow).join("|"); regexStr = regexStr.replace(periodNarrow, `(${periodsNarrow})`); break; } case periodWideMatch: { this.matchMap.periodWide = index; const periodsWide = getLocaleDayPeriods(this.localeId, FormStyle.Format, TranslationWidth.Wide).join("|"); regexStr = regexStr.replace(periodWide, `(${periodsWide})`); break; } case periodAbbreviatedMatch: { this.matchMap.periodAbbreviated = index; const periodsAbbreviated = getLocaleDayPeriods(this.localeId, FormStyle.Format, TranslationWidth.Abbreviated).join("|"); regexStr = regexStr.replace(periodAbbreviated, `(${periodsAbbreviated})`); break; } } }); this.regex = new RegExp(regexStr); } }; // node_modules/ng-zorro-antd/fesm2022/ng-zorro-antd-i18n.mjs var en_US = { locale: "en", Pagination: { items_per_page: "/ page", jump_to: "Go to", jump_to_confirm: "confirm", page: "Page", prev_page: "Previous Page", next_page: "Next Page", prev_5: "Previous 5 Pages", next_5: "Next 5 Pages", prev_3: "Previous 3 Pages", next_3: "Next 3 Pages", page_size: "Page Size" }, DatePicker: { lang: { placeholder: "Select date", yearPlaceholder: "Select year", quarterPlaceholder: "Select quarter", monthPlaceholder: "Select month", weekPlaceholder: "Select week", rangePlaceholder: ["Start date", "End date"], rangeYearPlaceholder: ["Start year", "End year"], rangeQuarterPlaceholder: ["Start quarter", "End quarter"], rangeMonthPlaceholder: ["Start month", "End month"], rangeWeekPlaceholder: ["Start week", "End week"], locale: "en_US", today: "Today", now: "Now", backToToday: "Back to today", ok: "Ok", clear: "Clear", month: "Month", year: "Year", timeSelect: "select time", dateSelect: "select date", weekSelect: "Choose a week", monthSelect: "Choose a month", yearSelect: "Choose a year", decadeSelect: "Choose a decade", yearFormat: "YYYY", dateFormat: "M/D/YYYY", dayFormat: "D", dateTimeFormat: "M/D/YYYY HH:mm:ss", monthBeforeYear: true, previousMonth: "Previous month (PageUp)", nextMonth: "Next month (PageDown)", previousYear: "Last year (Control + left)", nextYear: "Next year (Control + right)", previousDecade: "Last decade", nextDecade: "Next decade", previousCentury: "Last century", nextCentury: "Next century" }, timePickerLocale: { placeholder: "Select time", rangePlaceholder: ["Start time", "End time"] } }, TimePicker: { placeholder: "Select time", rangePlaceholder: ["Start time", "End time"] }, Calendar: { lang: { placeholder: "Select date", yearPlaceholder: "Select year", quarterPlaceholder: "Select quarter", monthPlaceholder: "Select month", weekPlaceholder: "Select week", rangePlaceholder: ["Start date", "End date"], rangeYearPlaceholder: ["Start year", "End year"], rangeMonthPlaceholder: ["Start month", "End month"], rangeWeekPlaceholder: ["Start week", "End week"], locale: "en_US", today: "Today", now: "Now", backToToday: "Back to today", ok: "Ok", clear: "Clear", month: "Month", year: "Year", timeSelect: "select time", dateSelect: "select date", weekSelect: "Choose a week", monthSelect: "Choose a month", yearSelect: "Choose a year", decadeSelect: "Choose a decade", yearFormat: "YYYY", dateFormat: "M/D/YYYY", dayFormat: "D", dateTimeFormat: "M/D/YYYY HH:mm:ss", monthBeforeYear: true, previousMonth: "Previous month (PageUp)", nextMonth: "Next month (PageDown)", previousYear: "Last year (Control + left)", nextYear: "Next year (Control + right)", previousDecade: "Last decade", nextDecade: "Next decade", previousCentury: "Last century", nextCentury: "Next century" }, timePickerLocale: { placeholder: "Select time", rangePlaceholder: ["Start time", "End time"] } }, global: { placeholder: "Please select" }, Table: { filterTitle: "Filter menu", filterConfirm: "OK", filterReset: "Reset", filterEmptyText: "No filters", emptyText: "No data", selectAll: "Select current page", selectInvert: "Invert current page", selectionAll: "Select all data", sortTitle: "Sort", expand: "Expand row", collapse: "Collapse row", triggerDesc: "Click to sort descending", triggerAsc: "Click to sort ascending", cancelSort: "Click to cancel sorting", filterCheckall: "Select all items", filterSearchPlaceholder: "Search in filters", selectNone: "Clear all data" }, Modal: { okText: "OK", cancelText: "Cancel", justOkText: "OK" }, Popconfirm: { okText: "OK", cancelText: "Cancel" }, Transfer: { titles: ["", ""], searchPlaceholder: "Search here", itemUnit: "item", itemsUnit: "items", remove: "Remove", selectCurrent: "Select current page", removeCurrent: "Remove current page", selectAll: "Select all data", removeAll: "Remove all data", selectInvert: "Invert current page" }, Upload: { uploading: "Uploading...", removeFile: "Remove file", uploadError: "Upload error", previewFile: "Preview file", downloadFile: "Download file" }, Empty: { description: "No Data" }, Form: { optional: "(optional)" }, Icon: { icon: "icon" }, Text: { edit: "Edit", copy: "Copy", copied: "Copied", expand: "Expand" }, PageHeader: { back: "Back" }, Image: { preview: "Preview" }, CronExpression: { cronError: "Invalid cron expression", second: "second", minute: "minute", hour: "hour", day: "day", month: "month", week: "week" }, QRCode: { expired: "QR code expired", refresh: "Refresh", scanned: "Scanned" }, CheckList: { checkList: "Check List", checkListFinish: "You have successfully completed the list!", checkListClose: "Close", checkListFooter: "Check list is no longer required", checkListCheck: "Do you want to close the list?", ok: "OK", cancel: "Cancel", checkListCheckOther: "No longer required to show" } }; var zh_CN = { locale: "zh-cn", Pagination: { items_per_page: "\u6761/\u9875", jump_to: "\u8DF3\u81F3", jump_to_confirm: "\u786E\u5B9A", page: "\u9875", prev_page: "\u4E0A\u4E00\u9875", next_page: "\u4E0B\u4E00\u9875", prev_5: "\u5411\u524D 5 \u9875", next_5: "\u5411\u540E 5 \u9875", prev_3: "\u5411\u524D 3 \u9875", next_3: "\u5411\u540E 3 \u9875", page_size: "\u9875\u7801" }, DatePicker: { lang: { placeholder: "\u8BF7\u9009\u62E9\u65E5\u671F", yearPlaceholder: "\u8BF7\u9009\u62E9\u5E74\u4EFD", quarterPlaceholder: "\u8BF7\u9009\u62E9\u5B63\u5EA6", monthPlaceholder: "\u8BF7\u9009\u62E9\u6708\u4EFD", weekPlaceholder: "\u8BF7\u9009\u62E9\u5468", rangePlaceholder: ["\u5F00\u59CB\u65E5\u671F", "\u7ED3\u675F\u65E5\u671F"], rangeYearPlaceholder: ["\u5F00\u59CB\u5E74\u4EFD", "\u7ED3\u675F\u5E74\u4EFD"], rangeQuarterPlaceholder: ["\u5F00\u59CB\u5B63\u5EA6", "\u7ED3\u675F\u5B63\u5EA6"], rangeMonthPlaceholder: ["\u5F00\u59CB\u6708\u4EFD", "\u7ED3\u675F\u6708\u4EFD"], rangeWeekPlaceholder: ["\u5F00\u59CB\u5468", "\u7ED3\u675F\u5468"], locale: "zh_CN", today: "\u4ECA\u5929", now: "\u6B64\u523B", backToToday: "\u8FD4\u56DE\u4ECA\u5929", ok: "\u786E\u5B9A", timeSelect: "\u9009\u62E9\u65F6\u95F4", dateSelect: "\u9009\u62E9\u65E5\u671F", weekSelect: "\u9009\u62E9\u5468", clear: "\u6E05\u9664", month: "\u6708", year: "\u5E74", previousMonth: "\u4E0A\u4E2A\u6708 (\u7FFB\u9875\u4E0A\u952E)", nextMonth: "\u4E0B\u4E2A\u6708 (\u7FFB\u9875\u4E0B\u952E)", monthSelect: "\u9009\u62E9\u6708\u4EFD", yearSelect: "\u9009\u62E9\u5E74\u4EFD", decadeSelect: "\u9009\u62E9\u5E74\u4EE3", yearFormat: "YYYY\u5E74", dayFormat: "D\u65E5", dateFormat: "YYYY\u5E74M\u6708D\u65E5", dateTimeFormat: "YYYY\u5E74M\u6708D\u65E5 HH\u65F6mm\u5206ss\u79D2", previousYear: "\u4E0A\u4E00\u5E74 (Control\u952E\u52A0\u5DE6\u65B9\u5411\u952E)", nextYear: "\u4E0B\u4E00\u5E74 (Control\u952E\u52A0\u53F3\u65B9\u5411\u952E)", previousDecade: "\u4E0A\u4E00\u5E74\u4EE3", nextDecade: "\u4E0B\u4E00\u5E74\u4EE3", previousCentury: "\u4E0A\u4E00\u4E16\u7EAA", nextCentury: "\u4E0B\u4E00\u4E16\u7EAA" }, timePickerLocale: { placeholder: "\u8BF7\u9009\u62E9\u65F6\u95F4", rangePlaceholder: ["\u5F00\u59CB\u65F6\u95F4", "\u7ED3\u675F\u65F6\u95F4"] } }, TimePicker: { placeholder: "\u8BF7\u9009\u62E9\u65F6\u95F4", rangePlaceholder: ["\u5F00\u59CB\u65F6\u95F4", "\u7ED3\u675F\u65F6\u95F4"] }, Calendar: { lang: { placeholder: "\u8BF7\u9009\u62E9\u65E5\u671F", yearPlaceholder: "\u8BF7\u9009\u62E9\u5E74\u4EFD", quarterPlaceholder: "\u8BF7\u9009\u62E9\u5B63\u5EA6", monthPlaceholder: "\u8BF7\u9009\u62E9\u6708\u4EFD", weekPlaceholder: "\u8BF7\u9009\u62E9\u5468", rangePlaceholder: ["\u5F00\u59CB\u65E5\u671F", "\u7ED3\u675F\u65E5\u671F"], rangeYearPlaceholder: ["\u5F00\u59CB\u5E74\u4EFD", "\u7ED3\u675F\u5E74\u4EFD"], rangeMonthPlaceholder: ["\u5F00\u59CB\u6708\u4EFD", "\u7ED3\u675F\u6708\u4EFD"], rangeWeekPlaceholder: ["\u5F00\u59CB\u5468", "\u7ED3\u675F\u5468"], locale: "zh_CN", today: "\u4ECA\u5929", now: "\u6B64\u523B", backToToday: "\u8FD4\u56DE\u4ECA\u5929", ok: "\u786E\u5B9A", timeSelect: "\u9009\u62E9\u65F6\u95F4", dateSelect: "\u9009\u62E9\u65E5\u671F", weekSelect: "\u9009\u62E9\u5468", clear: "\u6E05\u9664", month: "\u6708", year: "\u5E74", previousMonth: "\u4E0A\u4E2A\u6708 (\u7FFB\u9875\u4E0A\u952E)", nextMonth: "\u4E0B\u4E2A\u6708 (\u7FFB\u9875\u4E0B\u952E)", monthSelect: "\u9009\u62E9\u6708\u4EFD", yearSelect: "\u9009\u62E9\u5E74\u4EFD", decadeSelect: "\u9009\u62E9\u5E74\u4EE3", yearFormat: "YYYY\u5E74", dayFormat: "D\u65E5", dateFormat: "YYYY\u5E74M\u6708D\u65E5", dateTimeFormat: "YYYY\u5E74M\u6708D\u65E5 HH\u65F6mm\u5206ss\u79D2", previousYear: "\u4E0A\u4E00\u5E74 (Control\u952E\u52A0\u5DE6\u65B9\u5411\u952E)", nextYear: "\u4E0B\u4E00\u5E74 (Control\u952E\u52A0\u53F3\u65B9\u5411\u952E)", previousDecade: "\u4E0A\u4E00\u5E74\u4EE3", nextDecade: "\u4E0B\u4E00\u5E74\u4EE3", previousCentury: "\u4E0A\u4E00\u4E16\u7EAA", nextCentury: "\u4E0B\u4E00\u4E16\u7EAA" }, timePickerLocale: { placeholder: "\u8BF7\u9009\u62E9\u65F6\u95F4", rangePlaceholder: ["\u5F00\u59CB\u65F6\u95F4", "\u7ED3\u675F\u65F6\u95F4"] } }, global: { placeholder: "\u8BF7\u9009\u62E9" }, Table: { filterTitle: "\u7B5B\u9009", filterConfirm: "\u786E\u5B9A", filterReset: "\u91CD\u7F6E", filterEmptyText: "\u65E0\u7B5B\u9009\u9879", selectAll: "\u5168\u9009\u5F53\u9875", selectInvert: "\u53CD\u9009\u5F53\u9875", selectionAll: "\u5168\u9009\u6240\u6709", sortTitle: "\u6392\u5E8F", expand: "\u5C55\u5F00\u884C", collapse: "\u5173\u95ED\u884C", triggerDesc: "\u70B9\u51FB\u964D\u5E8F", triggerAsc: "\u70B9\u51FB\u5347\u5E8F", cancelSort: "\u53D6\u6D88\u6392\u5E8F", filterCheckall: "\u5168\u9009", filterSearchPlaceholder: "\u5728\u7B5B\u9009\u9879\u4E2D\u641C\u7D22", selectNone: "\u6E05\u7A7A\u6240\u6709" }, Modal: { okText: "\u786E\u5B9A", cancelText: "\u53D6\u6D88", justOkText: "\u77E5\u9053\u4E86" }, Popconfirm: { cancelText: "\u53D6\u6D88", okText: "\u786E\u5B9A" }, Transfer: { searchPlaceholder: "\u8BF7\u8F93\u5165\u641C\u7D22\u5185\u5BB9", itemUnit: "\u9879", itemsUnit: "\u9879", remove: "\u5220\u9664", selectCurrent: "\u5168\u9009\u5F53\u9875", removeCurrent: "\u5220\u9664\u5F53\u9875", selectAll: "\u5168\u9009\u6240\u6709", removeAll: "\u5220\u9664\u5168\u90E8", selectInvert: "\u53CD\u9009\u5F53\u9875" }, Upload: { uploading: "\u6587\u4EF6\u4E0A\u4F20\u4E2D", removeFile: "\u5220\u9664\u6587\u4EF6", uploadError: "\u4E0A\u4F20\u9519\u8BEF", previewFile: "\u9884\u89C8\u6587\u4EF6", downloadFile: "\u4E0B\u8F7D\u6587\u4EF6" }, Empty: { description: "\u6682\u65E0\u6570\u636E" }, Form: { optional: "(\u53EF\u9009)" }, Icon: { icon: "\u56FE\u6807" }, Text: { edit: "\u7F16\u8F91", copy: "\u590D\u5236", copied: "\u590D\u5236\u6210\u529F", expand: "\u5C55\u5F00" }, PageHeader: { back: "\u8FD4\u56DE" }, Image: { preview: "\u9884\u89C8" }, CronExpression: { cronError: "cron \u8868\u8FBE\u5F0F\u4E0D\u5408\u6CD5", second: "\u79D2", minute: "\u5206\u949F", hour: "\u5C0F\u65F6", day: "\u65E5", month: "\u6708", week: "\u5468" }, QRCode: { expired: "\u4E8C\u7EF4\u7801\u8FC7\u671F", refresh: "\u70B9\u51FB\u5237\u65B0", scanned: "\u5DF2\u626B\u63CF" }, CheckList: { checkList: "\u4EFB\u52A1\u6E05\u5355", checkListFinish: "\u4F60\u5DF2\u6210\u529F\u5B8C\u6210\u4EFB\u52A1\u6E05\u5355\uFF01", checkListClose: "\u5173\u95ED", checkListFooter: "\u4E0D\u9700\u8981\u64CD\u4F5C\u6307\u5F15", checkListCheck: "\u4F60\u8981\u5173\u95ED\u64CD\u4F5C\u6E05\u5355\u5417", ok: "\u786E\u5B9A", cancel: "\u53D6\u6D88", checkListCheckOther: "\u4EE5\u540E\u4E0D\u518D\u9700\u8981\u64CD\u4F5C\u6E05\u5355" } }; var NZ_I18N = new InjectionToken(typeof ngDevMode !== "undefined" && ngDevMode ? "nz-i18n" : ""); function provideNzI18n(config) { return makeEnvironmentProviders([typeof config === "function" ? { provide: NZ_I18N, useFactory: config } : { provide: NZ_I18N, useValue: config }]); } var NZ_DATE_LOCALE = new InjectionToken(typeof ngDevMode !== "undefined" && ngDevMode ? "nz-date-locale" : ""); var NzI18nService = class _NzI18nService { _locale; _change = new BehaviorSubject(this._locale); dateLocale; get localeChange() { return this._change.asObservable(); } constructor() { this.setLocale(inject(NZ_I18N, { optional: true }) || zh_CN); this.setDateLocale(inject(NZ_DATE_LOCALE, { optional: true })); } // [NOTE] Performance issue: this method may called by every change detections // TODO: cache more deeply paths for performance translate(path, data) { let content = this._getObjectPath(this._locale, path); if (typeof content === "string") { if (data) { Object.keys(data).forEach((key) => content = content.replace(new RegExp(`%${key}%`, "g"), data[key])); } return content; } return path; } /** * Set/Change current locale globally throughout the WHOLE application * NOTE: If called at runtime, rendered interface may not change along with the locale change, * because this do not trigger another render schedule. * * @param locale The translating letters */ setLocale(locale2) { if (this._locale && this._locale.locale === locale2.locale) { return; } this._locale = locale2; this._change.next(locale2); } getLocale() { return this._locale; } getLocaleId() { return this._locale ? this._locale.locale : ""; } setDateLocale(dateLocale) { this.dateLocale = dateLocale; } getDateLocale() { return this.dateLocale; } /** * Get locale data * * @param path dot paths for finding exist value from locale data, eg. "a.b.c" * @param defaultValue default value if the result is not "truthy" */ getLocaleData(path, defaultValue) { const result = path ? this._getObjectPath(this._locale, path) : this._locale; if (!result && !defaultValue) { warn(`Missing translations for "${path}" in language "${this._locale.locale}". You can use "NzI18nService.setLocale" as a temporary fix. Welcome to submit a pull request to help us optimize the translations! https://github.com/NG-ZORRO/ng-zorro-antd/blob/master/CONTRIBUTING.md`); } return result || defaultValue || this._getObjectPath(en_US, path) || {}; } _getObjectPath(obj, path) { let res = obj; const paths = path.split("."); const depth = paths.length; let index = 0; while (res && index < depth) { res = res[paths[index++]]; } return index === depth ? res : null; } static \u0275fac = function NzI18nService_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || _NzI18nService)(); }; static \u0275prov = /* @__PURE__ */ \u0275\u0275defineInjectable({ token: _NzI18nService, factory: _NzI18nService.\u0275fac, providedIn: "root" }); }; (() => { (typeof ngDevMode === "undefined" || ngDevMode) && setClassMetadata(NzI18nService, [{ type: Injectable, args: [{ providedIn: "root" }] }], () => [], null); })(); var NzI18nPipe = class _NzI18nPipe { _locale = inject(NzI18nService); transform(path, keyValue) { return this._locale.translate(path, keyValue); } static \u0275fac = function NzI18nPipe_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || _NzI18nPipe)(); }; static \u0275pipe = /* @__PURE__ */ \u0275\u0275definePipe({ name: "nzI18n", type: _NzI18nPipe, pure: true }); }; (() => { (typeof ngDevMode === "undefined" || ngDevMode) && setClassMetadata(NzI18nPipe, [{ type: Pipe, args: [{ name: "nzI18n" }] }], null, null); })(); var NzI18nModule = class _NzI18nModule { static \u0275fac = function NzI18nModule_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || _NzI18nModule)(); }; static \u0275mod = /* @__PURE__ */ \u0275\u0275defineNgModule({ type: _NzI18nModule, imports: [NzI18nPipe], exports: [NzI18nPipe] }); static \u0275inj = /* @__PURE__ */ \u0275\u0275defineInjector({}); }; (() => { (typeof ngDevMode === "undefined" || ngDevMode) && setClassMetadata(NzI18nModule, [{ type: NgModule, args: [{ imports: [NzI18nPipe], exports: [NzI18nPipe] }] }], null, null); })(); var NZ_DATE_CONFIG = new InjectionToken(typeof ngDevMode !== "undefined" && ngDevMode ? "nz-date-config" : ""); var NZ_DATE_CONFIG_DEFAULT = { firstDayOfWeek: void 0 }; function mergeDateConfig(config) { return __spreadValues(__spreadValues({}, NZ_DATE_CONFIG_DEFAULT), config); } function DATE_HELPER_SERVICE_FACTORY() { const i18n = inject(NzI18nService); return i18n.getDateLocale() ? new DateHelperByDateFns(i18n) : new DateHelperByDatePipe(i18n); } var DateHelperService = class _DateHelperService { i18n; config = mergeDateConfig(inject(NZ_DATE_CONFIG, { optional: true })); constructor(i18n) { this.i18n = i18n; } static \u0275fac = function DateHelperService_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || _DateHelperService)(\u0275\u0275inject(NzI18nService)); }; static \u0275prov = /* @__PURE__ */ \u0275\u0275defineInjectable({ token: _DateHelperService, factory: () => DATE_HELPER_SERVICE_FACTORY(), providedIn: "root" }); }; (() => { (typeof ngDevMode === "undefined" || ngDevMode) && setClassMetadata(DateHelperService, [{ type: Injectable, args: [{ providedIn: "root", useFactory: DATE_HELPER_SERVICE_FACTORY }] }], () => [{ type: NzI18nService }], null); })(); var DateHelperByDateFns = class extends DateHelperService { getISOWeek(date) { return getISOWeek(date); } // Use date-fns's "weekStartsOn" to support different locale when "config.firstDayOfWeek" is null // https://github.com/date-fns/date-fns/blob/v2.0.0-alpha.27/src/locale/en-US/index.js#L23 getFirstDayOfWeek() { let defaultWeekStartsOn; try { defaultWeekStartsOn = this.i18n.getDateLocale().options.weekStartsOn; } catch { defaultWeekStartsOn = 1; } return this.config.firstDayOfWeek == null ? defaultWeekStartsOn : this.config.firstDayOfWeek; } /** * Format a date * * @see https://date-fns.org/docs/format#description * @param date Date * @param formatStr format string */ format(date, formatStr) { return date ? format(date, formatStr, { locale: this.i18n.getDateLocale() }) : ""; } parseDate(text, formatStr) { return parse(text, formatStr, /* @__PURE__ */ new Date(), { locale: this.i18n.getDateLocale(), weekStartsOn: this.getFirstDayOfWeek() }); } parseTime(text, formatStr) { return this.parseDate(text, formatStr); } }; var DateHelperByDatePipe = class extends DateHelperService { getISOWeek(date) { return +this.format(date, "w"); } getFirstDayOfWeek() { if (this.config.firstDayOfWeek === void 0) { const locale2 = this.i18n.getLocaleId(); return locale2 && ["zh-cn", "zh-tw"].indexOf(locale2.toLowerCase()) > -1 ? 1 : 0; } return this.config.firstDayOfWeek; } format(date, formatStr) { return date ? this.replaceQuarter(formatDate(date, formatStr, this.i18n.getLocaleId()), date) : ""; } parseDate(text) { return new Date(text); } parseTime(text, formatStr) { const parser2 = new NgTimeParser(formatStr, this.i18n.getLocaleId()); return parser2.toDate(text); } replaceQuarter(dateStr, date) { const quarter = getQuarter(date).toString(); const record = { Q: quarter, QQ: `0${quarter}`, QQQ: `Q${quarter}` }; return dateStr.replace(/Q+(?![^[]*])/g, (match2) => record[match2] ?? quarter).replace(/\[(Q+)]/g, "$1"); } }; var fr_FR = { locale: "fr", Pagination: { items_per_page: "/ page", jump_to: "Aller \xE0", jump_to_confirm: "confirmer", page: "Page", prev_page: "Page pr\xE9c\xE9dente", next_page: "Page suivante", prev_5: "5 Pages pr\xE9c\xE9dentes", next_5: "5 Pages suivantes", prev_3: "3 Pages pr\xE9c\xE9dentes", next_3: "3 Pages suivantes", page_size: "taille de la page" }, DatePicker: { lang: { placeholder: "S\xE9lectionner une date", yearPlaceholder: "S\xE9lectionner une ann\xE9e", quarterPlaceholder: "S\xE9lectionner un trimestre", monthPlaceholder: "S\xE9lectionner un mois", weekPlaceholder: "S\xE9lectionner une semaine", rangePlaceholder: ["Date de d\xE9but", "Date de fin"], rangeYearPlaceholder: ["Ann\xE9e de d\xE9but", "Ann\xE9e de fin"], rangeMonthPlaceholder: ["Mois de d\xE9but", "Mois de fin"], rangeWeekPlaceholder: ["Semaine de d\xE9but", "Semaine de fin"], locale: "fr_FR", today: "Aujourd'hui", now: "Maintenant", backToToday: "Aujourd'hui", ok: "Ok", clear: "R\xE9tablir", month: "Mois", year: "Ann\xE9e", timeSelect: "S\xE9lectionner l'heure", dateSelect: "S\xE9lectionner la date", weekSelect: "Choisissez une semaine", monthSelect: "Choisissez un mois", yearSelect: "Choisissez une ann\xE9e", decadeSelect: "Choisissez une d\xE9cennie", yearFormat: "YYYY", dateFormat: "DD/MM/YYYY", dayFormat: "DD", dateTimeFormat: "DD/MM/YYYY HH:mm:ss", monthBeforeYear: true, previousMonth: "Mois pr\xE9c\xE9dent (PageUp)", nextMonth: "Mois suivant (PageDown)", previousYear: "Ann\xE9e pr\xE9c\xE9dente (Ctrl + gauche)", nextYear: "Ann\xE9e prochaine (Ctrl + droite)", previousDecade: "D\xE9cennie pr\xE9c\xE9dente", nextDecade: "D\xE9cennie suivante", previousCentury: "Si\xE8cle pr\xE9c\xE9dent", nextCentury: "Si\xE8cle suivant" }, timePickerLocale: { placeholder: "S\xE9lectionner l'heure", rangePlaceholder: ["Heure de d\xE9but", "Heure de fin"] } }, TimePicker: { placeholder: "S\xE9lectionner l'heure", rangePlaceholder: ["Heure de d\xE9but", "Heure de fin"] }, Calendar: { lang: { placeholder: "S\xE9lectionner une date", yearPlaceholder: "S\xE9lectionner une ann\xE9e", quarterPlaceholder: "S\xE9lectionner un trimestre", monthPlaceholder: "S\xE9lectionner un mois", weekPlaceholder: "S\xE9lectionner une semaine", rangePlaceholder: ["Date de d\xE9but", "Date de fin"], rangeYearPlaceholder: ["Ann\xE9e de d\xE9but", "Ann\xE9e de fin"], rangeMonthPlaceholder: ["Mois de d\xE9but", "Mois de fin"], rangeWeekPlaceholder: ["Semaine de d\xE9but", "Semaine de fin"], locale: "fr_FR", today: "Aujourd'hui", now: "Maintenant", backToToday: "Aujourd'hui", ok: "Ok", clear: "R\xE9tablir", month: "Mois", year: "Ann\xE9e", timeSelect: "S\xE9lectionner l'heure", dateSelect: "S\xE9lectionner la date", monthSelect: "Choisissez un mois", yearSelect: "Choisissez une ann\xE9e", decadeSelect: "Choisissez une d\xE9cennie", yearFormat: "YYYY", dateFormat: "DD/MM/YYYY", dayFormat: "DD", dateTimeFormat: "DD/MM/YYYY HH:mm:ss", monthBeforeYear: true, previousMonth: "Mois pr\xE9c\xE9dent (PageUp)", nextMonth: "Mois suivant (PageDown)", previousYear: "Ann\xE9e pr\xE9c\xE9dente (Ctrl + gauche)", nextYear: "Ann\xE9e prochaine (Ctrl + droite)", previousDecade: "D\xE9cennie pr\xE9c\xE9dente", nextDecade: "D\xE9cennie suivante", previousCentury: "Si\xE8cle pr\xE9c\xE9dent", nextCentury: "Si\xE8cle suivant" }, timePickerLocale: { placeholder: "S\xE9lectionner l'heure", rangePlaceholder: ["Heure de d\xE9but", "Heure de fin"] } }, global: { placeholder: "S\xE9lectionner" }, Table: { filterTitle: "Filtrer", filterConfirm: "OK", filterReset: "R\xE9initialiser", selectAll: "S\xE9lectionner la page actuelle", selectInvert: "Inverser la s\xE9lection de la page actuelle", selectionAll: "S\xE9lectionner toutes les donn\xE9es", sortTitle: "Trier", expand: "D\xE9velopper la ligne", collapse: "R\xE9duire la ligne", triggerDesc: "Trier par ordre d\xE9croissant", triggerAsc: "Trier par ordre croissant", cancelSort: "Annuler le tri", filterEmptyText: "Aucun filtre", emptyText: "Aucune donn\xE9e", selectNone: "D\xE9s\xE9lectionner toutes les donn\xE9es" }, Modal: { okText: "OK", cancelText: "Annuler", justOkText: "OK" }, Popconfirm: { okText: "OK", cancelText: "Annuler" }, Transfer: { searchPlaceholder: "Rechercher", itemUnit: "\xE9l\xE9ment", itemsUnit: "\xE9l\xE9ments", titles: ["", ""], remove: "D\xE9s\xE9lectionner", selectCurrent: "S\xE9lectionner la page actuelle", removeCurrent: "D\xE9s\xE9lectionner la page actuelle", selectAll: "S\xE9lectionner toutes les donn\xE9es", removeAll: "D\xE9s\xE9lectionner toutes les donn\xE9es", selectInvert: "Inverser la s\xE9lection de la page actuelle" }, Empty: { description: "Aucune donn\xE9e" }, Upload: { uploading: "T\xE9l\xE9chargement...", removeFile: "Effacer le fichier", uploadError: "Erreur de t\xE9l\xE9chargement", previewFile: "Fichier de pr\xE9visualisation", downloadFile: "T\xE9l\xE9charger un fichier" }, Form: { optional: "(optionnel)" }, Text: { edit: "\xC9diter", copy: "Copier", copied: "Copie effectu\xE9e", expand: "D\xE9velopper" }, PageHeader: { back: "Retour" }, Icon: { icon: "ic\xF4ne" }, Image: { preview: "Aper\xE7u" }, CronExpression: { cronError: "Expression CRON invalide", second: "seconde", minute: "minute", hour: "heure", day: "jour", month: "mois", week: "semaine" }, QRCode: { expired: "QR code expir\xE9", refresh: "Rafra\xEEchir", scanned: "Scann\xE9" } }; // node_modules/@angular/common/locales/fr.js var u4 = void 0; function plural(val) { const n15 = val, i16 = Math.floor(Math.abs(val)), v18 = val.toString().replace(/^[^.]*\.?/, "").length, e16 = parseInt(val.toString().replace(/^[^e]*(e([-+]?\d+))?/, "$2")) || 0; if (i16 === 0 || i16 === 1) return 1; if (e16 === 0 && (!(i16 === 0) && (i16 % 1e6 === 0 && v18 === 0)) || !(e16 >= 0 && e16 <= 5)) return 4; return 5; } var fr_default = ["fr", [["AM", "PM"]], u4, [["D", "L", "M", "M", "J", "V", "S"], ["dim.", "lun.", "mar.", "mer.", "jeu.", "ven.", "sam."], ["dimanche", "lundi", "mardi", "mercredi", "jeudi", "vendredi", "samedi"], ["di", "lu", "ma", "me", "je", "ve", "sa"]], u4, [["J", "F", "M", "A", "M", "J", "J", "A", "S", "O", "N", "D"], ["janv.", "f\xE9vr.", "mars", "avr.", "mai", "juin", "juil.", "ao\xFBt", "sept.", "oct.", "nov.", "d\xE9c."], ["janvier", "f\xE9vrier", "mars", "avril", "mai", "juin", "juillet", "ao\xFBt", "septembre", "octobre", "novembre", "d\xE9cembre"]], u4, [["av. J.-C.", "ap. J.-C."], u4, ["avant J\xE9sus-Christ", "apr\xE8s J\xE9sus-Christ"]], 1, [6, 0], ["dd/MM/y", "d MMM y", "d MMMM y", "EEEE d MMMM y"], ["HH:mm", "HH:mm:ss", "HH:mm:ss z", "HH:mm:ss zzzz"], ["{1} {0}", "{1}, {0}", "{1} '\xE0' {0}", u4], [",", "\u202F", ";", "%", "+", "-", "E", "\xD7", "\u2030", "\u221E", "NaN", ":"], ["#,##0.###", "#,##0\xA0%", "#,##0.00\xA0\xA4", "#E0"], "EUR", "\u20AC", "euro", { "ARS": ["$AR", "$"], "AUD": ["$AU", "$"], "BEF": ["FB"], "BMD": ["$BM", "$"], "BND": ["$BN", "$"], "BYN": [u4, "\u0440."], "BZD": ["$BZ", "$"], "CAD": ["$CA", "$"], "CLP": ["$CL", "$"], "CNY": [u4, "\xA5"], "COP": ["$CO", "$"], "CYP": ["\xA3CY"], "EGP": [u4, "\xA3E"], "FJD": ["$FJ", "$"], "FKP": ["\xA3FK", "\xA3"], "FRF": ["F"], "GBP": ["\xA3GB", "\xA3"], "GIP": ["\xA3GI", "\xA3"], "HKD": [u4, "$"], "IEP": ["\xA3IE"], "ILP": ["\xA3IL"], "ITL": ["\u20A4IT"], "JPY": [u4, "\xA5"], "KMF": [u4, "FC"], "LBP": ["\xA3LB", "\xA3L"], "MTP": ["\xA3MT"], "MXN": ["$MX", "$"], "NAD": ["$NA", "$"], "NIO": [u4, "$C"], "NZD": ["$NZ", "$"], "PHP": [u4, "\u20B1"], "RHD": ["$RH"], "RON": [u4, "L"], "RWF": [u4, "FR"], "SBD": ["$SB", "$"], "SGD": ["$SG", "$"], "SRD": ["$SR", "$"], "TOP": [u4, "$T"], "TTD": ["$TT", "$"], "TWD": [u4, "NT$"], "USD": ["$US", "$"], "UYU": ["$UY", "$"], "WST": ["$WS"], "XCD": [u4, "$"], "XPF": ["FCFP"], "ZMW": [u4, "Kw"] }, "ltr", plural]; // node_modules/@angular/platform-browser/fesm2022/animations/async.mjs var ANIMATION_PREFIX = "@"; var AsyncAnimationRendererFactory = class _AsyncAnimationRendererFactory { doc; delegate; zone; animationType; moduleImpl; _rendererFactoryPromise = null; scheduler = null; injector = inject(Injector); loadingSchedulerFn = inject(\u0275ASYNC_ANIMATION_LOADING_SCHEDULER_FN, { optional: true }); _engine; /** * * @param moduleImpl allows to provide a mock implmentation (or will load the animation module) */ constructor(doc, delegate, zone, animationType, moduleImpl) { this.doc = doc; this.delegate = delegate; this.zone = zone; this.animationType = animationType; this.moduleImpl = moduleImpl; } /** @docs-private */ ngOnDestroy() { this._engine?.flush(); } /** * @internal */ loadImpl() { const loadFn = () => this.moduleImpl ?? import("./chunk-RXPIFPGW.js").then((m28) => m28); let moduleImplPromise; if (this.loadingSchedulerFn) { moduleImplPromise = this.loadingSchedulerFn(loadFn); } else { moduleImplPromise = loadFn(); } return moduleImplPromise.catch((e16) => { throw new RuntimeError(5300, (typeof ngDevMode === "undefined" || ngDevMode) && "Async loading for animations package was enabled, but loading failed. Angular falls back to using regular rendering. No animations will be displayed and their styles won't be applied."); }).then(({ \u0275createEngine, \u0275AnimationRendererFactory }) => { this._engine = \u0275createEngine(this.animationType, this.doc); const rendererFactory = new \u0275AnimationRendererFactory(this.delegate, this._engine, this.zone); this.delegate = rendererFactory; return rendererFactory; }); } /** * This method is delegating the renderer creation to the factories. * It uses default factory while the animation factory isn't loaded * and will rely on the animation factory once it is loaded. * * Calling this method will trigger as side effect the loading of the animation module * if the renderered component uses animations. */ createRenderer(hostElement, rendererType) { const renderer = this.delegate.createRenderer(hostElement, rendererType); if (renderer.\u0275type === 0) { return renderer; } if (typeof renderer.throwOnSyntheticProps === "boolean") { renderer.throwOnSyntheticProps = false; } const dynamicRenderer = new DynamicDelegationRenderer(renderer); if (rendererType?.data?.["animation"] && !this._rendererFactoryPromise) { this._rendererFactoryPromise = this.loadImpl(); } this._rendererFactoryPromise?.then((animationRendererFactory) => { const animationRenderer = animationRendererFactory.createRenderer(hostElement, rendererType); dynamicRenderer.use(animationRenderer); this.scheduler ??= this.injector.get(ChangeDetectionScheduler, null, { optional: true }); this.scheduler?.notify( 10 /* NotificationSource.AsyncAnimationsLoaded */ ); }).catch((e16) => { dynamicRenderer.use(renderer); }); return dynamicRenderer; } begin() { this.delegate.begin?.(); } end() { this.delegate.end?.(); } whenRenderingDone() { return this.delegate.whenRenderingDone?.() ?? Promise.resolve(); } /** * Used during HMR to clear any cached data about a component. * @param componentId ID of the component that is being replaced. */ componentReplaced(componentId) { this._engine?.flush(); this.delegate.componentReplaced?.(componentId); } static \u0275fac = function AsyncAnimationRendererFactory_Factory(__ngFactoryType__) { \u0275\u0275invalidFactory(); }; static \u0275prov = /* @__PURE__ */ \u0275\u0275defineInjectable({ token: _AsyncAnimationRendererFactory, factory: _AsyncAnimationRendererFactory.\u0275fac }); }; (() => { (typeof ngDevMode === "undefined" || ngDevMode) && setClassMetadata(AsyncAnimationRendererFactory, [{ type: Injectable }], () => [{ type: Document }, { type: RendererFactory2 }, { type: NgZone }, { type: void 0 }, { type: Promise }], null); })(); var DynamicDelegationRenderer = class { delegate; // List of callbacks that need to be replayed on the animation renderer once its loaded replay = []; \u0275type = 1; constructor(delegate) { this.delegate = delegate; } use(impl) { this.delegate = impl; if (this.replay !== null) { for (const fn of this.replay) { fn(impl); } this.replay = null; } } get data() { return this.delegate.data; } destroy() { this.replay = null; this.delegate.destroy(); } createElement(name, namespace) { return this.delegate.createElement(name, namespace); } createComment(value) { return this.delegate.createComment(value); } createText(value) { return this.delegate.createText(value); } get destroyNode() { return this.delegate.destroyNode; } appendChild(parent, newChild) { this.delegate.appendChild(parent, newChild); } insertBefore(parent, newChild, refChild, isMove) { this.delegate.insertBefore(parent, newChild, refChild, isMove); } removeChild(parent, oldChild, isHostElement, requireSynchronousElementRemoval) { this.delegate.removeChild(parent, oldChild, isHostElement, requireSynchronousElementRemoval); } selectRootElement(selectorOrNode, preserveContent) { return this.delegate.selectRootElement(selectorOrNode, preserveContent); } parentNode(node) { return this.delegate.parentNode(node); } nextSibling(node) { return this.delegate.nextSibling(node); } setAttribute(el, name, value, namespace) { this.delegate.setAttribute(el, name, value, namespace); } removeAttribute(el, name, namespace) { this.delegate.removeAttribute(el, name, namespace); } addClass(el, name) { this.delegate.addClass(el, name); } removeClass(el, name) { this.delegate.removeClass(el, name); } setStyle(el, style, value, flags) { this.delegate.setStyle(el, style, value, flags); } removeStyle(el, style, flags) { this.delegate.removeStyle(el, style, flags); } setProperty(el, name, value) { if (this.shouldReplay(name)) { this.replay.push((renderer) => renderer.setProperty(el, name, value)); } this.delegate.setProperty(el, name, value); } setValue(node, value) { this.delegate.setValue(node, value); } listen(target, eventName, callback, options) { if (this.shouldReplay(eventName)) { this.replay.push((renderer) => renderer.listen(target, eventName, callback, options)); } return this.delegate.listen(target, eventName, callback, options); } shouldReplay(propOrEventName) { return this.replay !== null && propOrEventName.startsWith(ANIMATION_PREFIX); } }; var \u0275ASYNC_ANIMATION_LOADING_SCHEDULER_FN = new InjectionToken(ngDevMode ? "async_animation_loading_scheduler_fn" : ""); function provideAnimationsAsync(type = "animations") { performanceMarkFeature("NgAsyncAnimations"); if (false) { type = "noop"; } return makeEnvironmentProviders([{ provide: RendererFactory2, useFactory: (doc, renderer, zone) => { return new AsyncAnimationRendererFactory(doc, renderer, zone, type); }, deps: [DOCUMENT, DomRendererFactory2, NgZone] }, { provide: ANIMATION_MODULE_TYPE, useValue: type === "noop" ? "NoopAnimations" : "BrowserAnimations" }]); } // node_modules/@ionic/core/components/p-hHmYLOfE.js var t7 = (t17, M8, r32, n15, e16) => h5(t17[1], M8[1], r32[1], n15[1], e16).map(((h21) => a5(t17[0], M8[0], r32[0], n15[0], h21))); var a5 = (t17, a17, h21, M8, r32) => r32 * (3 * a17 * Math.pow(r32 - 1, 2) + r32 * (-3 * h21 * r32 + 3 * h21 + M8 * r32)) - t17 * Math.pow(r32 - 1, 3); var h5 = (t17, a17, h21, r32, n15) => M3((r32 -= n15) - 3 * (h21 -= n15) + 3 * (a17 -= n15) - (t17 -= n15), 3 * h21 - 6 * a17 + 3 * t17, 3 * a17 - 3 * t17, t17).filter(((t18) => t18 >= 0 && t18 <= 1)); var M3 = (t17, a17, h21, M8) => { if (0 === t17) return ((t18, a18, h22) => { const M9 = a18 * a18 - 4 * t18 * h22; return M9 < 0 ? [] : [(-a18 + Math.sqrt(M9)) / (2 * t18), (-a18 - Math.sqrt(M9)) / (2 * t18)]; })(a17, h21, M8); const r32 = (3 * (h21 /= t17) - (a17 /= t17) * a17) / 3, n15 = (2 * a17 * a17 * a17 - 9 * a17 * h21 + 27 * (M8 /= t17)) / 27; if (0 === r32) return [Math.pow(-n15, 1 / 3)]; if (0 === n15) return [Math.sqrt(-r32), -Math.sqrt(-r32)]; const e16 = Math.pow(n15 / 2, 2) + Math.pow(r32 / 3, 3); if (0 === e16) return [Math.pow(n15 / 2, 0.5) - a17 / 3]; if (e16 > 0) return [Math.pow(-n15 / 2 + Math.sqrt(e16), 1 / 3) - Math.pow(n15 / 2 + Math.sqrt(e16), 1 / 3) - a17 / 3]; const u21 = Math.sqrt(Math.pow(-r32 / 3, 3)), o14 = Math.acos(-n15 / (2 * Math.sqrt(Math.pow(-r32 / 3, 3)))), s23 = 2 * Math.pow(u21, 1 / 3); return [s23 * Math.cos(o14 / 3) - a17 / 3, s23 * Math.cos((o14 + 2 * Math.PI) / 3) - a17 / 3, s23 * Math.cos((o14 + 4 * Math.PI) / 3) - a17 / 3]; }; // node_modules/@ionic/core/components/p-CDfQnFrd.js var a6 = (o14) => l4(o14); var s7 = (o14, i16) => ("string" == typeof o14 && (i16 = o14, o14 = void 0), a6(o14).includes(i16)); var l4 = (o14 = window) => { if (void 0 === o14) return []; o14.Ionic = o14.Ionic || {}; let i16 = o14.Ionic.platforms; return null == i16 && (i16 = o14.Ionic.platforms = c5(o14), i16.forEach(((i17) => o14.document.documentElement.classList.add(`plt-${i17}`)))), i16; }; var c5 = (i16) => { const t17 = n.get("platform"); return Object.keys(j).filter(((o14) => { const n15 = null == t17 ? void 0 : t17[o14]; return "function" == typeof n15 ? n15(i16) : j[o14](i16); })); }; var u5 = (o14) => !!h6(o14, /iPad/i) || !(!h6(o14, /Macintosh/i) || !m4(o14)); var p3 = (o14) => h6(o14, /android|sink/i); var m4 = (o14) => w2(o14, "(any-pointer:coarse)"); var f4 = (o14) => v3(o14) || b3(o14); var v3 = (o14) => !!(o14.cordova || o14.phonegap || o14.PhoneGap); var b3 = (o14) => { const i16 = o14.Capacitor; return !!((null == i16 ? void 0 : i16.isNative) || (null == i16 ? void 0 : i16.isNativePlatform) && i16.isNativePlatform()); }; var h6 = (o14, i16) => i16.test(o14.navigator.userAgent); var w2 = (o14, i16) => { var t17; return null === (t17 = o14.matchMedia) || void 0 === t17 ? void 0 : t17.call(o14, i16).matches; }; var j = { ipad: u5, iphone: (o14) => h6(o14, /iPhone/i), ios: (o14) => h6(o14, /iPhone|iPod/i) || u5(o14), android: p3, phablet: (o14) => { const i16 = o14.innerWidth, t17 = o14.innerHeight, n15 = Math.min(i16, t17), e16 = Math.max(i16, t17); return n15 > 390 && n15 < 520 && e16 > 620 && e16 < 800; }, tablet: (o14) => { const i16 = o14.innerWidth, t17 = o14.innerHeight, n15 = Math.min(i16, t17), e16 = Math.max(i16, t17); return u5(o14) || ((o15) => p3(o15) && !h6(o15, /mobile/i))(o14) || n15 > 460 && n15 < 820 && e16 > 780 && e16 < 1400; }, cordova: v3, capacitor: b3, electron: (o14) => h6(o14, /electron/i), pwa: (o14) => { var i16; return !(!(null === (i16 = o14.matchMedia) || void 0 === i16 ? void 0 : i16.call(o14, "(display-mode: standalone)").matches) && !o14.navigator.standalone); }, mobile: m4, mobileweb: (o14) => m4(o14) && !f4(o14), desktop: (o14) => !m4(o14), hybrid: f4 }; var O2; var g = (o14) => o14 && qt(o14) || O2; var y4 = (e16 = {}) => { if ("undefined" == typeof window) return; const a17 = window.document, c36 = window, u21 = c36.Ionic = c36.Ionic || {}, p33 = Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({}, e(c36)), { persistConfig: false }), u21.config), s(c36)), e16); n.reset(p33), n.getBoolean("persistConfig") && o(c36, p33), l4(c36), u21.config = n, u21.mode = O2 = n.get("mode", a17.documentElement.getAttribute("mode") || (s7(c36, "ios") ? "ios" : "md")), n.set("mode", O2), a17.documentElement.setAttribute("mode", O2), a17.documentElement.classList.add(O2), n.getBoolean("_testing") && n.set("animated", false); const m28 = (o14) => { var i16; return null === (i16 = o14.tagName) || void 0 === i16 ? void 0 : i16.startsWith("ION-"); }, f27 = (o14) => ["ios", "md"].includes(o14); Pt(((o14) => { for (; o14; ) { const i16 = o14.mode || o14.getAttribute("mode"); if (i16) { if (f27(i16)) return i16; m28(o14) && u('Invalid ionic mode: "' + i16 + '", expected: "ios" or "md"'); } o14 = o14.parentElement; } return O2; })); }; // node_modules/@ionic/core/components/p-BUbsoBOV.js var n4 = (n15) => { try { if (n15 instanceof c6) return n15.value; if (!r4() || "string" != typeof n15 || "" === n15) return n15; if (n15.includes("onload=")) return ""; const t17 = document.createDocumentFragment(), s23 = document.createElement("div"); t17.appendChild(s23), s23.innerHTML = n15, i6.forEach(((n16) => { const r32 = t17.querySelectorAll(n16); for (let n17 = r32.length - 1; n17 >= 0; n17--) { const s24 = r32[n17]; s24.parentNode ? s24.parentNode.removeChild(s24) : t17.removeChild(s24); const i16 = e6(s24); for (let t18 = 0; t18 < i16.length; t18++) o5(i16[t18]); } })); const a17 = e6(t17); for (let t18 = 0; t18 < a17.length; t18++) o5(a17[t18]); const d25 = document.createElement("div"); d25.appendChild(t17); const l27 = d25.querySelector("div"); return null !== l27 ? l27.innerHTML : d25.innerHTML; } catch (n16) { return f("sanitizeDOMString", n16), ""; } }; var o5 = (t17) => { if (t17.nodeType && 1 !== t17.nodeType) return; if ("undefined" != typeof NamedNodeMap && !(t17.attributes instanceof NamedNodeMap)) return void t17.remove(); for (let n16 = t17.attributes.length - 1; n16 >= 0; n16--) { const o14 = t17.attributes.item(n16), e16 = o14.name; if (!s8.includes(e16.toLowerCase())) { t17.removeAttribute(e16); continue; } const r32 = o14.value, i16 = t17[e16]; (null != r32 && r32.toLowerCase().includes("javascript:") || null != i16 && i16.toLowerCase().includes("javascript:")) && t17.removeAttribute(e16); } const n15 = e6(t17); for (let t18 = 0; t18 < n15.length; t18++) o5(n15[t18]); }; var e6 = (t17) => null != t17.children ? t17.children : t17.childNodes; var r4 = () => { var t17; const n15 = window, o14 = null === (t17 = null == n15 ? void 0 : n15.Ionic) || void 0 === t17 ? void 0 : t17.config; return !o14 || (o14.get ? o14.get("sanitizerEnabled", true) : true === o14.sanitizerEnabled || void 0 === o14.sanitizerEnabled); }; var s8 = ["class", "id", "href", "src", "name", "slot"]; var i6 = ["script", "style", "iframe", "meta", "link", "object", "embed"]; var c6 = class { constructor(t17) { this.value = t17; } }; var l5 = false; // node_modules/@ionic/core/components/p-DiVJyqlX.js var n5 = (n15, o14) => null !== o14.closest(n15); var o6 = (n15, o14) => "string" == typeof n15 && n15.length > 0 ? Object.assign({ "ion-color": true, [`ion-color-${n15}`]: true }, o14) : o14; var r5 = (n15) => { const o14 = {}; return ((n16) => void 0 !== n16 ? (Array.isArray(n16) ? n16 : n16.split(" ")).filter(((n17) => null != n17)).map(((n17) => n17.trim())).filter(((n17) => "" !== n17)) : [])(n15).forEach(((n16) => o14[n16] = true)), o14; }; var t8 = /^[a-z][a-z0-9+\-.]*:/; var l6 = (n15, o14, r32, l27) => __async(null, null, function* () { if (null != n15 && "#" !== n15[0] && !t8.test(n15)) { const t17 = document.querySelector("ion-router"); if (t17) return null != o14 && o14.preventDefault(), t17.push(n15, r32, l27); } return false; }); // node_modules/@ionic/core/components/p-D6NJwNJN.js var o7 = (t17) => r().duration(t17 ? 400 : 300); var i7 = (t17) => { let e16, n15; const r32 = t17.width + 8, i16 = r(), u21 = r(); t17.isEndSide ? (e16 = r32 + "px", n15 = "0px") : (e16 = -r32 + "px", n15 = "0px"), i16.addElement(t17.menuInnerEl).fromTo("transform", `translateX(${e16})`, `translateX(${n15})`); const c36 = "ios" === g(t17), p33 = c36 ? 0.2 : 0.25; return u21.addElement(t17.backdropEl).fromTo("opacity", 0.01, p33), o7(c36).addAnimation([i16, u21]); }; var u6 = (t17) => { let e16, n15; const r32 = g(t17), i16 = t17.width; t17.isEndSide ? (e16 = -i16 + "px", n15 = i16 + "px") : (e16 = i16 + "px", n15 = -i16 + "px"); const u21 = r().addElement(t17.menuInnerEl).fromTo("transform", `translateX(${n15})`, "translateX(0px)"), c36 = r().addElement(t17.contentEl).fromTo("transform", "translateX(0px)", `translateX(${e16})`), p33 = r().addElement(t17.backdropEl).fromTo("opacity", 0.01, 0.32); return o7("ios" === r32).addAnimation([u21, c36, p33]); }; var c7 = (t17) => { const e16 = g(t17), n15 = t17.width * (t17.isEndSide ? -1 : 1) + "px", r32 = r().addElement(t17.contentEl).fromTo("transform", "translateX(0px)", `translateX(${n15})`); return o7("ios" === e16).addAnimation(r32); }; var p4 = (() => { const s23 = /* @__PURE__ */ new Map(), a17 = [], o14 = (t17, e16 = false) => __async(null, null, function* () { if (yield d25(), "start" === t17 || "end" === t17) { const r32 = a17.filter(((e17) => e17.side === t17 && !e17.disabled)); if (r32.length >= 1) return r32.length > 1 && e16 && u(`menuController queried for a menu on the "${t17}" side, but ${r32.length} menus were found. The first menu reference will be used. If this is not the behavior you want then pass the ID of the menu instead of its side.`, r32.map(((t18) => t18.el))), r32[0].el; const s24 = a17.filter(((e17) => e17.side === t17)); if (s24.length >= 1) return s24.length > 1 && e16 && u(`menuController queried for a menu on the "${t17}" side, but ${s24.length} menus were found. The first menu reference will be used. If this is not the behavior you want then pass the ID of the menu instead of its side.`, s24.map(((t18) => t18.el))), s24[0].el; } else if (null != t17) return w12(((e17) => e17.menuId === t17)); return w12(((t18) => !t18.disabled)) || (a17.length > 0 ? a17[0].el : void 0); }), p33 = () => __async(null, null, function* () { return yield d25(), m28(); }), f27 = (t17, e16) => { s23.set(t17, e16); }, m28 = () => w12(((t17) => t17._isOpen)), l27 = () => a17.some(((t17) => t17.isAnimating)), w12 = (t17) => { const e16 = a17.find(t17); if (void 0 !== e16) return e16.el; }, d25 = () => Promise.all(Array.from(document.querySelectorAll("ion-menu")).map(((t17) => new Promise(((e16) => e2(t17, e16)))))); return f27("reveal", c7), f27("push", u6), f27("overlay", i7), null == o2 || o2.addEventListener("ionBackButton", ((t17) => { const n15 = m28(); n15 && t17.detail.register(c3, (() => n15.close())); })), { registerAnimation: f27, get: o14, getMenus: () => __async(null, null, function* () { return yield d25(), a17.map(((t17) => t17.el)); }), getOpen: p33, isEnabled: (t17) => __async(null, null, function* () { const e16 = yield o14(t17); return !!e16 && !e16.disabled; }), swipeGesture: (t17, e16) => __async(null, null, function* () { const n15 = yield o14(e16); return n15 && (n15.swipeGesture = t17), n15; }), isAnimating: () => __async(null, null, function* () { return yield d25(), l27(); }), isOpen: (t17) => __async(null, null, function* () { if (null != t17) { const e16 = yield o14(t17); return void 0 !== e16 && e16.isOpen(); } return void 0 !== (yield p33()); }), enable: (t17, e16) => __async(null, null, function* () { const n15 = yield o14(e16); return n15 && (n15.disabled = !t17), n15; }), toggle: (t17) => __async(null, null, function* () { const e16 = yield o14(t17, true); return !!e16 && e16.toggle(); }), close: (t17) => __async(null, null, function* () { const e16 = yield void 0 !== t17 ? o14(t17, true) : p33(); return void 0 !== e16 && e16.close(); }), open: (t17) => __async(null, null, function* () { const e16 = yield o14(t17, true); return !!e16 && e16.open(); }), _getOpenSync: m28, _createAnimation: (t17, e16) => { const n15 = s23.get(t17); if (!n15) throw new Error("animation not registered"); return n15(e16); }, _register: (t17) => { a17.indexOf(t17) < 0 && a17.push(t17); }, _unregister: (t17) => { const e16 = a17.indexOf(t17); e16 > -1 && a17.splice(e16, 1); }, _setOpen: (t17, e16, n15, r32) => __async(null, null, function* () { if (l27()) return false; if (e16) { const e17 = yield p33(); e17 && t17.el !== e17 && (yield e17.setOpen(false, false)); } return t17._setOpen(e16, n15, r32); }) }; })(); // node_modules/@ionic/core/components/p-BR3tZJmu.js var o8 = (o14, t17, i16, n15, r32, s23) => __async(null, null, function* () { var a17; if (o14) return o14.attachViewToDom(t17, i16, r32, n15); if (!(s23 || "string" == typeof i16 || i16 instanceof HTMLElement)) throw new Error("framework delegate is missing"); const c36 = "string" == typeof i16 ? null === (a17 = t17.ownerDocument) || void 0 === a17 ? void 0 : a17.createElement(i16) : i16; return n15 && n15.forEach(((e16) => c36.classList.add(e16))), r32 && Object.assign(c36, r32), t17.appendChild(c36), yield new Promise(((o15) => e2(c36, o15))), c36; }); var t9 = (e16, o14) => { if (o14) { if (e16) return e16.removeViewFromDom(o14.parentElement, o14); o14.remove(); } return Promise.resolve(); }; var i8 = () => { let o14, t17; return { attachViewToDom: (_0, _1, ..._22) => __async(null, [_0, _1, ..._22], function* (i16, n15, r32 = {}, s23 = []) { var a17, c36; let l27; if (o14 = i16, n15) { const t18 = "string" == typeof n15 ? null === (a17 = o14.ownerDocument) || void 0 === a17 ? void 0 : a17.createElement(n15) : n15; s23.forEach(((e16) => t18.classList.add(e16))), Object.assign(t18, r32), o14.appendChild(t18), l27 = t18, yield new Promise(((o15) => e2(t18, o15))); } else if (o14.children.length > 0 && ("ION-MODAL" === o14.tagName || "ION-POPOVER" === o14.tagName) && !(l27 = o14.children[0]).classList.contains("ion-delegate-host")) { const e16 = null === (c36 = o14.ownerDocument) || void 0 === c36 ? void 0 : c36.createElement("div"); e16.classList.add("ion-delegate-host"), s23.forEach(((o15) => e16.classList.add(o15))), e16.append(...o14.children), o14.appendChild(e16), l27 = e16; } const m28 = document.querySelector("ion-app") || document.body; return t17 = document.createComment("ionic teleport"), o14.parentNode.insertBefore(t17, o14), m28.appendChild(o14), null != l27 ? l27 : o14; }), removeViewFromDom: () => (o14 && t17 && (t17.parentNode.insertBefore(o14, t17), t17.remove()), Promise.resolve()) }; }; // node_modules/@ionic/core/components/p-Cq8cQ0NL.js var v4 = '[tabindex]:not([tabindex^="-"]):not([hidden]):not([disabled]), input:not([type=hidden]):not([tabindex^="-"]):not([hidden]):not([disabled]), textarea:not([tabindex^="-"]):not([hidden]):not([disabled]), button:not([tabindex^="-"]):not([hidden]):not([disabled]), select:not([tabindex^="-"]):not([hidden]):not([disabled]), ion-checkbox:not([tabindex^="-"]):not([hidden]):not([disabled]), ion-radio:not([tabindex^="-"]):not([hidden]):not([disabled]), .ion-focusable:not([tabindex^="-"]):not([hidden]):not([disabled]), .ion-focusable[disabled="false"]:not([tabindex^="-"]):not([hidden])'; var f5 = (n15, o14) => { const e16 = n15.querySelector(v4); b4(e16, null != o14 ? o14 : n15); }; var h7 = (n15, o14) => { const e16 = Array.from(n15.querySelectorAll(v4)); b4(e16.length > 0 ? e16[e16.length - 1] : null, null != o14 ? o14 : n15); }; var b4 = (n15, e16) => { let t17 = n15; const i16 = null == n15 ? void 0 : n15.shadowRoot; if (i16 && (t17 = i16.querySelector(v4) || n15), t17) { const n16 = t17.closest("ion-radio-group"); n16 ? n16.setFocus() : p(t17); } else e16.focus(); }; var w3 = 0; var y5 = 0; var g2 = /* @__PURE__ */ new WeakMap(); var O3 = (n15) => { var o14; return false !== n15.showBackdrop && !((null !== (o14 = n15.backdropBreakpoint) && void 0 !== o14 ? o14 : 0) > 0); }; var T3 = (n15) => ({ create: (o14) => S3(n15, o14), dismiss: (o14, e16, t17) => E3(document, o14, e16, n15, t17), getTop: () => __async(null, null, function* () { return V(document, n15); }) }); var x3 = T3("ion-alert"); var k2 = T3("ion-action-sheet"); var j2 = T3("ion-loading"); var A = T3("ion-modal"); var C = T3("ion-picker-legacy"); var B3 = T3("ion-popover"); var D3 = T3("ion-toast"); var I3 = (n15) => { "undefined" != typeof document && P2(document); const o14 = w3++; n15.overlayIndex = o14; }; var N = (n15) => (n15.hasAttribute("id") || (n15.id = "ion-overlay-" + ++y5), n15.id); var S3 = (n15, o14) => "undefined" != typeof window && void 0 !== window.customElements ? window.customElements.whenDefined(n15).then((() => { const t17 = document.createElement(n15); return t17.classList.add("overlay-hidden"), Object.assign(t17, Object.assign(Object.assign({}, o14), { hasController: true })), L3(document).appendChild(t17), new Promise(((n16) => e2(t17, n16))); })) : Promise.resolve(); var M4 = (n15, e16) => { let t17 = n15; const i16 = null == n15 ? void 0 : n15.shadowRoot; i16 && (t17 = i16.querySelector(v4) || n15), t17 ? p(t17) : e16.focus(); }; var P2 = (n15) => { 0 === w3 && (w3 = 1, n15.addEventListener("focus", ((o14) => { ((n16, o15) => { const e16 = V(o15, "ion-alert,ion-action-sheet,ion-loading,ion-modal,ion-picker-legacy,ion-popover"), t17 = n16.target; e16 && t17 && (e16.classList.contains(nn) || (e16.shadowRoot ? (() => { if (e16.contains(t17)) e16.lastFocus = t17; else if ("ION-TOAST" === t17.tagName) M4(e16.lastFocus, e16); else { const n17 = e16.lastFocus; f5(e16), n17 === o15.activeElement && h7(e16), e16.lastFocus = o15.activeElement; } })() : (() => { if (e16 === t17) e16.lastFocus = void 0; else if ("ION-TOAST" === t17.tagName) M4(e16.lastFocus, e16); else { const n17 = c(e16); if (!n17.contains(t17)) return; const i16 = n17.querySelector(".ion-overlay-wrapper"); if (!i16) return; if (i16.contains(t17) || t17 === n17.querySelector("ion-backdrop")) e16.lastFocus = t17; else { const n18 = e16.lastFocus; f5(i16, e16), n18 === o15.activeElement && h7(i16, e16), e16.lastFocus = o15.activeElement; } } })())); })(o14, n15); }), true), n15.addEventListener("ionBackButton", ((o14) => { const e16 = V(n15); (null == e16 ? void 0 : e16.backdropDismiss) && o14.detail.register(a, (() => { e16.dismiss(void 0, H3); })); })), o3() || n15.addEventListener("keydown", ((o14) => { if ("Escape" === o14.key) { const o15 = V(n15); (null == o15 ? void 0 : o15.backdropDismiss) && o15.dismiss(void 0, H3); } }))); }; var E3 = (n15, o14, e16, t17, i16) => { const a17 = V(n15, t17, i16); return a17 ? a17.dismiss(o14, e16) : Promise.reject("overlay does not exist"); }; var F = (n15, o14) => ((n16, o15) => (void 0 === o15 && (o15 = "ion-alert,ion-action-sheet,ion-loading,ion-modal,ion-picker-legacy,ion-popover,ion-toast"), Array.from(n16.querySelectorAll(o15)).filter(((n17) => n17.overlayIndex > 0))))(n15, o14).filter(((n16) => !n16.classList.contains("overlay-hidden"))); var V = (n15, o14, e16) => { const t17 = F(n15, o14); return (void 0 === e16 ? t17 : t17.filter(((n16) => n16.id === e16))).slice(-1)[0]; }; var Z = (n15 = false) => { const o14 = L3(document).querySelector("ion-router-outlet, #ion-view-container-root"); o14 && (n15 ? o14.setAttribute("aria-hidden", "true") : o14.removeAttribute("aria-hidden")); }; var $ = (n15, o14, e16, t17, i16) => __async(null, null, function* () { var a17, r32; if (n15.presented) return; "ION-TOAST" !== n15.el.tagName && G2(n15.el); const d25 = n15.el, l27 = "ION-TOAST" !== d25.tagName && false !== d25.focusTrap && O3(d25); if (n15.presented = true, n15.willPresent.emit(), l27) { const n16 = L3(document).querySelector("ion-router-outlet, #ion-view-container-root"); !!n16 && n16.contains(d25) || Z(true), document.body.classList.add(i2); } null === (a17 = n15.willPresentShorthand) || void 0 === a17 || a17.emit(); const c36 = g(n15), m28 = n15.enterAnimation ? n15.enterAnimation : n.get(o14, "ios" === c36 ? e16 : t17); (yield R2(n15, m28, n15.el, i16)) && (n15.didPresent.emit(), null === (r32 = n15.didPresentShorthand) || void 0 === r32 || r32.emit()), !n15.keyboardClose || null !== document.activeElement && n15.el.contains(document.activeElement) || n15.el.focus(), n15.el.removeAttribute("aria-hidden"), n15.el.removeAttribute("inert"); }); var G2 = (n15) => __async(null, null, function* () { let o14 = document.activeElement; if (!o14) return; o14.blur(); const e16 = null == o14 ? void 0 : o14.shadowRoot; e16 && (o14 = e16.querySelector(v4) || o14), yield n15.onDidDismiss(), null !== document.activeElement && document.activeElement !== document.body || o14.focus(); }); var J = (o14, e16, t17, i16, a17, r32, d25) => __async(null, null, function* () { var c36, m28; if (!o14.presented) return false; const v18 = (void 0 !== o2 ? F(o2) : []).filter(((n15) => "ION-TOAST" !== n15.tagName && false !== n15.focusTrap && O3(n15))), f27 = o14.el; "ION-TOAST" !== f27.tagName && false !== f27.focusTrap && O3(f27) && 1 === v18.length && v18[0].id === f27.id && (Z(false), document.body.classList.remove(i2)), o14.presented = false; try { o14.el.style.setProperty("pointer-events", "none"), o14.willDismiss.emit({ data: e16, role: t17 }), null === (c36 = o14.willDismissShorthand) || void 0 === c36 || c36.emit({ data: e16, role: t17 }); const n15 = g(o14), l27 = o14.leaveAnimation ? o14.leaveAnimation : n.get(i16, "ios" === n15 ? a17 : r32); t17 !== K2 && (yield R2(o14, l27, o14.el, d25)), o14.didDismiss.emit({ data: e16, role: t17 }), null === (m28 = o14.didDismissShorthand) || void 0 === m28 || m28.emit({ data: e16, role: t17 }), (g2.get(o14) || []).forEach(((n16) => n16.destroy())), g2.delete(o14), o14.el.classList.add("overlay-hidden"), o14.el.style.removeProperty("pointer-events"), void 0 !== o14.el.lastFocus && (o14.el.lastFocus = void 0); } catch (n15) { f(`[${o14.el.tagName.toLowerCase()}] - `, n15); } return o14.el.remove(), true; }); var L3 = (n15) => n15.querySelector("ion-app") || n15.body; var R2 = (n15, o14, e16, t17) => __async(null, null, function* () { e16.classList.remove("overlay-hidden"); const i16 = o14(n15.el, t17); n15.animated && n.getBoolean("animated", true) || i16.duration(0), n15.keyboardClose && i16.beforeAddWrite((() => { const n16 = e16.ownerDocument.activeElement; (null == n16 ? void 0 : n16.matches("input,ion-input, ion-textarea")) && n16.blur(); })); const a17 = g2.get(n15) || []; return g2.set(n15, [...a17, i16]), yield i16.play(), true; }); var q3 = (n15, o14) => { let e16; const t17 = new Promise(((n16) => e16 = n16)); return z2(n15, o14, ((n16) => { e16(n16.detail); })), t17; }; var z2 = (n15, o14, e16) => { const a17 = (t17) => { u2(n15, o14, a17), e16(t17); }; l(n15, o14, a17); }; var Q2 = (n15) => "cancel" === n15 || n15 === H3; var W2 = (n15) => n15(); var _2 = (n15, o14) => { if ("function" == typeof n15) return n.get("_zoneGate", W2)((() => { try { return n15(o14); } catch (n16) { throw n16; } })); }; var H3 = "backdrop"; var K2 = "gesture"; var U = 39; var X2 = (n15) => { let o14, e16 = false; const t17 = i8(), i16 = (i17 = false) => { if (o14 && !i17) return { delegate: o14, inline: e16 }; const { el: a17, hasController: r32, delegate: d25 } = n15; return e16 = null !== a17.parentNode && !r32, o14 = e16 ? d25 || t17 : d25, { inline: e16, delegate: o14 }; }; return { attachViewToDom: (o15) => __async(null, null, function* () { const { delegate: e17 } = i16(true); if (e17) return yield e17.attachViewToDom(n15.el, o15); const { hasController: t18 } = n15; if (t18 && void 0 !== o15) throw new Error("framework delegate is missing"); return null; }), removeViewFromDom: () => { const { delegate: o15 } = i16(); o15 && void 0 !== n15.el && o15.removeViewFromDom(n15.el.parentElement, n15.el); } }; }; var Y2 = () => { let n15; const o14 = () => { n15 && (n15(), n15 = void 0); }; return { addClickListener: (e16, t17) => { o14(); const i16 = void 0 !== t17 ? document.getElementById(t17) : null; i16 ? n15 = ((n16, o15) => { const e17 = () => { o15.present(); }; return n16.addEventListener("click", e17), () => { n16.removeEventListener("click", e17); }; })(i16, e16) : u(`[${e16.tagName.toLowerCase()}] - A trigger element with the ID "${t17}" was not found in the DOM. The trigger element must be in the DOM when the "trigger" property is set on an overlay component.`, e16); }, removeClickListener: o14 }; }; var nn = "ion-disable-focus-trap"; // node_modules/@ionic/angular/fesm2022/ionic-angular-common.mjs var _c0 = ["tabsInner"]; var DomController = class _DomController { /** * Schedules a task to run during the READ phase of the next frame. * This task should only read the DOM, but never modify it. */ read(cb) { getQueue().read(cb); } /** * Schedules a task to run during the WRITE phase of the next frame. * This task should write the DOM, but never READ it. */ write(cb) { getQueue().write(cb); } /** @nocollapse */ static \u0275fac = function DomController_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || _DomController)(); }; /** @nocollapse */ static \u0275prov = /* @__PURE__ */ \u0275\u0275defineInjectable({ token: _DomController, factory: _DomController.\u0275fac, providedIn: "root" }); }; (() => { (typeof ngDevMode === "undefined" || ngDevMode) && setClassMetadata(DomController, [{ type: Injectable, args: [{ providedIn: "root" }] }], null, null); })(); var getQueue = () => { const win2 = typeof window !== "undefined" ? window : null; if (win2 != null) { const Ionic = win2.Ionic; if (Ionic?.queue) { return Ionic.queue; } return { read: (cb) => win2.requestAnimationFrame(cb), write: (cb) => win2.requestAnimationFrame(cb) }; } return { read: (cb) => cb(), write: (cb) => cb() }; }; var MenuController = class { menuController; constructor(menuController) { this.menuController = menuController; } /** * Programmatically open the Menu. * @param [menuId] Optionally get the menu by its id, or side. * @return returns a promise when the menu is fully opened */ open(menuId) { return this.menuController.open(menuId); } /** * Programmatically close the Menu. If no `menuId` is given as the first * argument then it'll close any menu which is open. If a `menuId` * is given then it'll close that exact menu. * @param [menuId] Optionally get the menu by its id, or side. * @return returns a promise when the menu is fully closed */ close(menuId) { return this.menuController.close(menuId); } /** * Toggle the menu. If it's closed, it will open, and if opened, it * will close. * @param [menuId] Optionally get the menu by its id, or side. * @return returns a promise when the menu has been toggled */ toggle(menuId) { return this.menuController.toggle(menuId); } /** * Used to enable or disable a menu. For example, there could be multiple * left menus, but only one of them should be able to be opened at the same * time. If there are multiple menus on the same side, then enabling one menu * will also automatically disable all the others that are on the same side. * @param [menuId] Optionally get the menu by its id, or side. * @return Returns the instance of the menu, which is useful for chaining. */ enable(shouldEnable, menuId) { return this.menuController.enable(shouldEnable, menuId); } /** * Used to enable or disable the ability to swipe open the menu. * @param shouldEnable True if it should be swipe-able, false if not. * @param [menuId] Optionally get the menu by its id, or side. * @return Returns the instance of the menu, which is useful for chaining. */ swipeGesture(shouldEnable, menuId) { return this.menuController.swipeGesture(shouldEnable, menuId); } /** * @param [menuId] Optionally get the menu by its id, or side. * @return Returns true if the specified menu is currently open, otherwise false. * If the menuId is not specified, it returns true if ANY menu is currenly open. */ isOpen(menuId) { return this.menuController.isOpen(menuId); } /** * @param [menuId] Optionally get the menu by its id, or side. * @return Returns true if the menu is currently enabled, otherwise false. */ isEnabled(menuId) { return this.menuController.isEnabled(menuId); } /** * Used to get a menu instance. If a `menuId` is not provided then it'll * return the first menu found. If a `menuId` is `left` or `right`, then * it'll return the enabled menu on that side. Otherwise, if a `menuId` is * provided, then it'll try to find the menu using the menu's `id` * property. If a menu is not found then it'll return `null`. * @param [menuId] Optionally get the menu by its id, or side. * @return Returns the instance of the menu if found, otherwise `null`. */ get(menuId) { return this.menuController.get(menuId); } /** * @return Returns the instance of the menu already opened, otherwise `null`. */ getOpen() { return this.menuController.getOpen(); } /** * @return Returns an array of all menu instances. */ getMenus() { return this.menuController.getMenus(); } registerAnimation(name, animation) { return this.menuController.registerAnimation(name, animation); } isAnimating() { return this.menuController.isAnimating(); } _getOpenSync() { return this.menuController._getOpenSync(); } _createAnimation(type, menuCmp) { return this.menuController._createAnimation(type, menuCmp); } _register(menu) { return this.menuController._register(menu); } _unregister(menu) { return this.menuController._unregister(menu); } _setOpen(menu, shouldOpen, animated) { return this.menuController._setOpen(menu, shouldOpen, animated); } }; var Platform = class _Platform { doc; _readyPromise; win; /** * @hidden */ backButton = new Subject(); /** * The keyboardDidShow event emits when the * on-screen keyboard is presented. */ keyboardDidShow = new Subject(); /** * The keyboardDidHide event emits when the * on-screen keyboard is hidden. */ keyboardDidHide = new Subject(); /** * The pause event emits when the native platform puts the application * into the background, typically when the user switches to a different * application. This event would emit when a Cordova app is put into * the background, however, it would not fire on a standard web browser. */ pause = new Subject(); /** * The resume event emits when the native platform pulls the application * out from the background. This event would emit when a Cordova app comes * out from the background, however, it would not fire on a standard web browser. */ resume = new Subject(); /** * The resize event emits when the browser window has changed dimensions. This * could be from a browser window being physically resized, or from a device * changing orientation. */ resize = new Subject(); constructor(doc, zone) { this.doc = doc; zone.run(() => { this.win = doc.defaultView; this.backButton.subscribeWithPriority = function(priority, callback) { return this.subscribe((ev) => { return ev.register(priority, (processNextHandler) => zone.run(() => callback(processNextHandler))); }); }; proxyEvent(this.pause, doc, "pause", zone); proxyEvent(this.resume, doc, "resume", zone); proxyEvent(this.backButton, doc, "ionBackButton", zone); proxyEvent(this.resize, this.win, "resize", zone); proxyEvent(this.keyboardDidShow, this.win, "ionKeyboardDidShow", zone); proxyEvent(this.keyboardDidHide, this.win, "ionKeyboardDidHide", zone); let readyResolve; this._readyPromise = new Promise((res) => { readyResolve = res; }); if (this.win?.["cordova"]) { doc.addEventListener("deviceready", () => { readyResolve("cordova"); }, { once: true }); } else { readyResolve("dom"); } }); } /** * @returns returns true/false based on platform. * @description * Depending on the platform the user is on, `is(platformName)` will * return `true` or `false`. Note that the same app can return `true` * for more than one platform name. For example, an app running from * an iPad would return `true` for the platform names: `mobile`, * `ios`, `ipad`, and `tablet`. Additionally, if the app was running * from Cordova then `cordova` would be true, and if it was running * from a web browser on the iPad then `mobileweb` would be `true`. * * ``` * import { Platform } from 'ionic-angular'; * * @Component({...}) * export MyPage { * constructor(public platform: Platform) { * if (this.platform.is('ios')) { * // This will only print when on iOS * console.log('I am an iOS device!'); * } * } * } * ``` * * | Platform Name | Description | * |-----------------|------------------------------------| * | android | on a device running Android. | * | capacitor | on a device running Capacitor. | * | cordova | on a device running Cordova. | * | ios | on a device running iOS. | * | ipad | on an iPad device. | * | iphone | on an iPhone device. | * | phablet | on a phablet device. | * | tablet | on a tablet device. | * | electron | in Electron on a desktop device. | * | pwa | as a PWA app. | * | mobile | on a mobile device. | * | mobileweb | on a mobile device in a browser. | * | desktop | on a desktop device. | * | hybrid | is a cordova or capacitor app. | * */ is(platformName) { return s7(this.win, platformName); } /** * @returns the array of platforms * @description * Depending on what device you are on, `platforms` can return multiple values. * Each possible value is a hierarchy of platforms. For example, on an iPhone, * it would return `mobile`, `ios`, and `iphone`. * * ``` * import { Platform } from 'ionic-angular'; * * @Component({...}) * export MyPage { * constructor(public platform: Platform) { * // This will print an array of the current platforms * console.log(this.platform.platforms()); * } * } * ``` */ platforms() { return a6(this.win); } /** * Returns a promise when the platform is ready and native functionality * can be called. If the app is running from within a web browser, then * the promise will resolve when the DOM is ready. When the app is running * from an application engine such as Cordova, then the promise will * resolve when Cordova triggers the `deviceready` event. * * The resolved value is the `readySource`, which states which platform * ready was used. For example, when Cordova is ready, the resolved ready * source is `cordova`. The default ready source value will be `dom`. The * `readySource` is useful if different logic should run depending on the * platform the app is running from. For example, only Cordova can execute * the status bar plugin, so the web should not run status bar plugin logic. * * ``` * import { Component } from '@angular/core'; * import { Platform } from 'ionic-angular'; * * @Component({...}) * export MyApp { * constructor(public platform: Platform) { * this.platform.ready().then((readySource) => { * console.log('Platform ready from', readySource); * // Platform now ready, execute any required native code * }); * } * } * ``` */ ready() { return this._readyPromise; } /** * Returns if this app is using right-to-left language direction or not. * We recommend the app's `index.html` file already has the correct `dir` * attribute value set, such as `` or ``. * [W3C: Structural markup and right-to-left text in HTML](http://www.w3.org/International/questions/qa-html-dir) */ get isRTL() { return this.doc.dir === "rtl"; } /** * Get the query string parameter */ getQueryParam(key) { return readQueryParam(this.win.location.href, key); } /** * Returns `true` if the app is in landscape mode. */ isLandscape() { return !this.isPortrait(); } /** * Returns `true` if the app is in portrait mode. */ isPortrait() { return this.win.matchMedia?.("(orientation: portrait)").matches; } testUserAgent(expression) { const nav = this.win.navigator; return !!(nav?.userAgent && nav.userAgent.indexOf(expression) >= 0); } /** * Get the current url. */ url() { return this.win.location.href; } /** * Gets the width of the platform's viewport using `window.innerWidth`. */ width() { return this.win.innerWidth; } /** * Gets the height of the platform's viewport using `window.innerHeight`. */ height() { return this.win.innerHeight; } /** @nocollapse */ static \u0275fac = function Platform_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || _Platform)(\u0275\u0275inject(DOCUMENT), \u0275\u0275inject(NgZone)); }; /** @nocollapse */ static \u0275prov = /* @__PURE__ */ \u0275\u0275defineInjectable({ token: _Platform, factory: _Platform.\u0275fac, providedIn: "root" }); }; (() => { (typeof ngDevMode === "undefined" || ngDevMode) && setClassMetadata(Platform, [{ type: Injectable, args: [{ providedIn: "root" }] }], function() { return [{ type: void 0, decorators: [{ type: Inject, args: [DOCUMENT] }] }, { type: NgZone }]; }, null); })(); var readQueryParam = (url, key) => { key = key.replace(/[[\]\\]/g, "\\$&"); const regex = new RegExp("[\\?&]" + key + "=([^]*)"); const results = regex.exec(url); return results ? decodeURIComponent(results[1].replace(/\+/g, " ")) : null; }; var proxyEvent = (emitter, el, eventName, zone) => { if (el) { el.addEventListener(eventName, (ev) => { zone.run(() => { const value = ev != null ? ev.detail : void 0; emitter.next(value); }); }); } }; var NavController = class _NavController { location; serializer; router; topOutlet; direction = DEFAULT_DIRECTION; animated = DEFAULT_ANIMATED; animationBuilder; guessDirection = "forward"; guessAnimation; lastNavId = -1; constructor(platform, location, serializer, router) { this.location = location; this.serializer = serializer; this.router = router; if (router) { router.events.subscribe((ev) => { if (ev instanceof NavigationStart) { const id = ev.restoredState ? ev.restoredState.navigationId : ev.id; this.guessDirection = this.guessAnimation = id < this.lastNavId ? "back" : "forward"; this.lastNavId = this.guessDirection === "forward" ? ev.id : id; } if (ev instanceof NavigationCancel || ev instanceof NavigationError) { this.direction = DEFAULT_DIRECTION; this.animated = DEFAULT_ANIMATED; this.animationBuilder = void 0; } }); } platform.backButton.subscribeWithPriority(0, (processNextHandler) => { this.pop(); processNextHandler(); }); } /** * This method uses Angular's [Router](https://angular.io/api/router/Router) under the hood, * it's equivalent to calling `this.router.navigateByUrl()`, but it's explicit about the **direction** of the transition. * * Going **forward** means that a new page is going to be pushed to the stack of the outlet (ion-router-outlet), * and that it will show a "forward" animation by default. * * Navigating forward can also be triggered in a declarative manner by using the `[routerDirection]` directive: * * ```html * Link * ``` */ navigateForward(url, options = {}) { this.setDirection("forward", options.animated, options.animationDirection, options.animation); return this.navigate(url, options); } /** * This method uses Angular's [Router](https://angular.io/api/router/Router) under the hood, * it's equivalent to calling: * * ```ts * this.navController.setDirection('back'); * this.router.navigateByUrl(path); * ``` * * Going **back** means that all the pages in the stack until the navigated page is found will be popped, * and that it will show a "back" animation by default. * * Navigating back can also be triggered in a declarative manner by using the `[routerDirection]` directive: * * ```html * Link * ``` */ navigateBack(url, options = {}) { this.setDirection("back", options.animated, options.animationDirection, options.animation); return this.navigate(url, options); } /** * This method uses Angular's [Router](https://angular.io/api/router/Router) under the hood, * it's equivalent to calling: * * ```ts * this.navController.setDirection('root'); * this.router.navigateByUrl(path); * ``` * * Going **root** means that all existing pages in the stack will be removed, * and the navigated page will become the single page in the stack. * * Navigating root can also be triggered in a declarative manner by using the `[routerDirection]` directive: * * ```html * Link * ``` */ navigateRoot(url, options = {}) { this.setDirection("root", options.animated, options.animationDirection, options.animation); return this.navigate(url, options); } /** * Same as [Location](https://angular.io/api/common/Location)'s back() method. * It will use the standard `window.history.back()` under the hood, but featuring a `back` animation * by default. */ back(options = { animated: true, animationDirection: "back" }) { this.setDirection("back", options.animated, options.animationDirection, options.animation); return this.location.back(); } /** * This methods goes back in the context of Ionic's stack navigation. * * It recursively finds the top active `ion-router-outlet` and calls `pop()`. * This is the recommended way to go back when you are using `ion-router-outlet`. * * Resolves to `true` if it was able to pop. */ pop() { return __async(this, null, function* () { let outlet = this.topOutlet; while (outlet) { if (yield outlet.pop()) { return true; } else { outlet = outlet.parentOutlet; } } return false; }); } /** * This methods specifies the direction of the next navigation performed by the Angular router. * * `setDirection()` does not trigger any transition, it just sets some flags to be consumed by `ion-router-outlet`. * * It's recommended to use `navigateForward()`, `navigateBack()` and `navigateRoot()` instead of `setDirection()`. */ setDirection(direction, animated, animationDirection, animationBuilder) { this.direction = direction; this.animated = getAnimation(direction, animated, animationDirection); this.animationBuilder = animationBuilder; } /** * @internal */ setTopOutlet(outlet) { this.topOutlet = outlet; } /** * @internal */ consumeTransition() { let direction = "root"; let animation; const animationBuilder = this.animationBuilder; if (this.direction === "auto") { direction = this.guessDirection; animation = this.guessAnimation; } else { animation = this.animated; direction = this.direction; } this.direction = DEFAULT_DIRECTION; this.animated = DEFAULT_ANIMATED; this.animationBuilder = void 0; return { direction, animation, animationBuilder }; } navigate(url, options) { if (Array.isArray(url)) { return this.router.navigate(url, options); } else { const urlTree = this.serializer.parse(url.toString()); if (options.queryParams !== void 0) { urlTree.queryParams = __spreadValues({}, options.queryParams); } if (options.fragment !== void 0) { urlTree.fragment = options.fragment; } return this.router.navigateByUrl(urlTree, options); } } /** @nocollapse */ static \u0275fac = function NavController_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || _NavController)(\u0275\u0275inject(Platform), \u0275\u0275inject(Location), \u0275\u0275inject(UrlSerializer), \u0275\u0275inject(Router, 8)); }; /** @nocollapse */ static \u0275prov = /* @__PURE__ */ \u0275\u0275defineInjectable({ token: _NavController, factory: _NavController.\u0275fac, providedIn: "root" }); }; (() => { (typeof ngDevMode === "undefined" || ngDevMode) && setClassMetadata(NavController, [{ type: Injectable, args: [{ providedIn: "root" }] }], function() { return [{ type: Platform }, { type: Location }, { type: UrlSerializer }, { type: Router, decorators: [{ type: Optional }] }]; }, null); })(); var getAnimation = (direction, animated, animationDirection) => { if (animated === false) { return void 0; } if (animationDirection !== void 0) { return animationDirection; } if (direction === "forward" || direction === "back") { return direction; } else if (direction === "root" && animated === true) { return "forward"; } return void 0; }; var DEFAULT_DIRECTION = "auto"; var DEFAULT_ANIMATED = void 0; var Config = class _Config { get(key, fallback) { const c36 = getConfig(); if (c36) { return c36.get(key, fallback); } return null; } getBoolean(key, fallback) { const c36 = getConfig(); if (c36) { return c36.getBoolean(key, fallback); } return false; } getNumber(key, fallback) { const c36 = getConfig(); if (c36) { return c36.getNumber(key, fallback); } return 0; } /** @nocollapse */ static \u0275fac = function Config_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || _Config)(); }; /** @nocollapse */ static \u0275prov = /* @__PURE__ */ \u0275\u0275defineInjectable({ token: _Config, factory: _Config.\u0275fac, providedIn: "root" }); }; (() => { (typeof ngDevMode === "undefined" || ngDevMode) && setClassMetadata(Config, [{ type: Injectable, args: [{ providedIn: "root" }] }], null, null); })(); var ConfigToken = new InjectionToken("USERCONFIG"); var getConfig = () => { if (typeof window !== "undefined") { const Ionic = window.Ionic; if (Ionic?.config) { return Ionic.config; } } return null; }; var NavParams = class { data; constructor(data = {}) { this.data = data; console.warn(`[Ionic Warning]: NavParams has been deprecated in favor of using Angular's input API. Developers should migrate to either the @Input decorator or the Signals-based input API.`); } /** * Get the value of a nav-parameter for the current view * * ```ts * import { NavParams } from 'ionic-angular'; * * export class MyClass{ * constructor(public navParams: NavParams){ * // userParams is an object we have in our nav-parameters * this.navParams.get('userParams'); * } * } * ``` * * @param param Which param you want to look up */ get(param) { return this.data[param]; } }; var IonModalToken = new InjectionToken("IonModalToken"); var AngularDelegate = class _AngularDelegate { zone = inject(NgZone); applicationRef = inject(ApplicationRef); config = inject(ConfigToken); create(environmentInjector, injector, elementReferenceKey, customInjector) { return new AngularFrameworkDelegate(environmentInjector, injector, this.applicationRef, this.zone, elementReferenceKey, this.config.useSetInputAPI ?? false, customInjector); } /** @nocollapse */ static \u0275fac = function AngularDelegate_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || _AngularDelegate)(); }; /** @nocollapse */ static \u0275prov = /* @__PURE__ */ \u0275\u0275defineInjectable({ token: _AngularDelegate, factory: _AngularDelegate.\u0275fac }); }; (() => { (typeof ngDevMode === "undefined" || ngDevMode) && setClassMetadata(AngularDelegate, [{ type: Injectable }], null, null); })(); var AngularFrameworkDelegate = class { environmentInjector; injector; applicationRef; zone; elementReferenceKey; enableSignalsSupport; customInjector; elRefMap = /* @__PURE__ */ new WeakMap(); elEventsMap = /* @__PURE__ */ new WeakMap(); constructor(environmentInjector, injector, applicationRef, zone, elementReferenceKey, enableSignalsSupport, customInjector) { this.environmentInjector = environmentInjector; this.injector = injector; this.applicationRef = applicationRef; this.zone = zone; this.elementReferenceKey = elementReferenceKey; this.enableSignalsSupport = enableSignalsSupport; this.customInjector = customInjector; } attachViewToDom(container, component, params, cssClasses) { return this.zone.run(() => { return new Promise((resolve) => { const componentProps = __spreadValues({}, params); if (this.elementReferenceKey !== void 0) { componentProps[this.elementReferenceKey] = container; } const el = attachView(this.zone, this.environmentInjector, this.injector, this.applicationRef, this.elRefMap, this.elEventsMap, container, component, componentProps, cssClasses, this.elementReferenceKey, this.enableSignalsSupport, this.customInjector); resolve(el); }); }); } removeViewFromDom(_container, component) { return this.zone.run(() => { return new Promise((resolve) => { const componentRef = this.elRefMap.get(component); if (componentRef) { componentRef.destroy(); this.elRefMap.delete(component); const unbindEvents = this.elEventsMap.get(component); if (unbindEvents) { unbindEvents(); this.elEventsMap.delete(component); } } resolve(); }); }); } }; var attachView = (zone, environmentInjector, injector, applicationRef, elRefMap, elEventsMap, container, component, params, cssClasses, elementReferenceKey, enableSignalsSupport, customInjector) => { const providers = getProviders(params); if (container.tagName.toLowerCase() === "ion-modal") { providers.push({ provide: IonModalToken, useValue: container }); } const childInjector = Injector.create({ providers, parent: customInjector ?? injector }); const componentRef = createComponent(component, { environmentInjector, elementInjector: childInjector }); const instance = componentRef.instance; const hostElement = componentRef.location.nativeElement; if (params) { if (elementReferenceKey && instance[elementReferenceKey] !== void 0) { console.error(`[Ionic Error]: ${elementReferenceKey} is a reserved property when using ${container.tagName.toLowerCase()}. Rename or remove the "${elementReferenceKey}" property from ${component.name}.`); } if (enableSignalsSupport === true && componentRef.setInput !== void 0) { const _a = params, { modal, popover } = _a, otherParams = __objRest(_a, [ "modal", "popover" ]); for (const key in otherParams) { componentRef.setInput(key, otherParams[key]); } if (modal !== void 0) { Object.assign(instance, { modal }); } if (popover !== void 0) { Object.assign(instance, { popover }); } } else { Object.assign(instance, params); } } if (cssClasses) { for (const cssClass of cssClasses) { hostElement.classList.add(cssClass); } } const unbindEvents = bindLifecycleEvents(zone, instance, hostElement); container.appendChild(hostElement); applicationRef.attachView(componentRef.hostView); elRefMap.set(hostElement, componentRef); elEventsMap.set(hostElement, unbindEvents); return hostElement; }; var LIFECYCLES = [r2, t2, s3, c2, l2]; var bindLifecycleEvents = (zone, instance, element) => { return zone.run(() => { const unregisters = LIFECYCLES.filter((eventName) => typeof instance[eventName] === "function").map((eventName) => { const handler = (ev) => instance[eventName](ev.detail); element.addEventListener(eventName, handler); return () => element.removeEventListener(eventName, handler); }); return () => unregisters.forEach((fn) => fn()); }); }; var NavParamsToken = new InjectionToken("NavParamsToken"); var getProviders = (params) => { return [{ provide: NavParamsToken, useValue: params }, { provide: NavParams, useFactory: provideNavParamsInjectable, deps: [NavParamsToken] }]; }; var provideNavParamsInjectable = (params) => { return new NavParams(params); }; var proxyInputs = (Cmp, inputs) => { const Prototype = Cmp.prototype; inputs.forEach((item) => { Object.defineProperty(Prototype, item, { get() { return this.el[item]; }, set(val) { this.z.runOutsideAngular(() => this.el[item] = val); } }); }); }; var proxyMethods = (Cmp, methods) => { const Prototype = Cmp.prototype; methods.forEach((methodName) => { Prototype[methodName] = function() { const args = arguments; return this.z.runOutsideAngular(() => this.el[methodName].apply(this.el, args)); }; }); }; var proxyOutputs = (instance, el, events) => { events.forEach((eventName) => instance[eventName] = fromEvent(el, eventName)); }; function ProxyCmp(opts) { const decorator = function(cls) { const { defineCustomElementFn, inputs, methods } = opts; if (defineCustomElementFn !== void 0) { defineCustomElementFn(); } if (inputs) { proxyInputs(cls, inputs); } if (methods) { proxyMethods(cls, methods); } return cls; }; return decorator; } var MODAL_INPUTS = ["animated", "keepContentsMounted", "backdropBreakpoint", "backdropDismiss", "breakpoints", "canDismiss", "cssClass", "enterAnimation", "expandToScroll", "event", "focusTrap", "handle", "handleBehavior", "initialBreakpoint", "isOpen", "keyboardClose", "leaveAnimation", "mode", "presentingElement", "showBackdrop", "translucent", "trigger"]; var MODAL_METHODS = ["present", "dismiss", "onDidDismiss", "onWillDismiss", "setCurrentBreakpoint", "getCurrentBreakpoint"]; var IonModal = ( /** * @Component extends from @Directive * so by defining the inputs here we * do not need to re-define them for the * lazy loaded popover. */ class IonModal2 { z; // TODO(FW-2827): type template; isCmpOpen = false; el; constructor(c36, r32, z11) { this.z = z11; this.el = r32.nativeElement; this.el.addEventListener("ionMount", () => { this.isCmpOpen = true; c36.detectChanges(); }); this.el.addEventListener("didDismiss", () => { this.isCmpOpen = false; c36.detectChanges(); }); proxyOutputs(this, this.el, ["ionModalDidPresent", "ionModalWillPresent", "ionModalWillDismiss", "ionModalDidDismiss", "ionBreakpointDidChange", "didPresent", "willPresent", "willDismiss", "didDismiss", "ionDragStart", "ionDragMove", "ionDragEnd"]); } /** @nocollapse */ static \u0275fac = function IonModal_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || IonModal2)(\u0275\u0275directiveInject(ChangeDetectorRef), \u0275\u0275directiveInject(ElementRef), \u0275\u0275directiveInject(NgZone)); }; /** @nocollapse */ static \u0275dir = /* @__PURE__ */ \u0275\u0275defineDirective({ type: IonModal2, selectors: [["ion-modal"]], contentQueries: function IonModal_ContentQueries(rf, ctx, dirIndex) { if (rf & 1) { \u0275\u0275contentQuery(dirIndex, TemplateRef, 5); } if (rf & 2) { let _t; \u0275\u0275queryRefresh(_t = \u0275\u0275loadQuery()) && (ctx.template = _t.first); } }, inputs: { animated: "animated", keepContentsMounted: "keepContentsMounted", backdropBreakpoint: "backdropBreakpoint", backdropDismiss: "backdropDismiss", breakpoints: "breakpoints", canDismiss: "canDismiss", cssClass: "cssClass", enterAnimation: "enterAnimation", expandToScroll: "expandToScroll", event: "event", focusTrap: "focusTrap", handle: "handle", handleBehavior: "handleBehavior", initialBreakpoint: "initialBreakpoint", isOpen: "isOpen", keyboardClose: "keyboardClose", leaveAnimation: "leaveAnimation", mode: "mode", presentingElement: "presentingElement", showBackdrop: "showBackdrop", translucent: "translucent", trigger: "trigger" }, standalone: false }); } ); IonModal = __decorate([ ProxyCmp({ inputs: MODAL_INPUTS, methods: MODAL_METHODS }) /** * @Component extends from @Directive * so by defining the inputs here we * do not need to re-define them for the * lazy loaded popover. */ ], IonModal); (() => { (typeof ngDevMode === "undefined" || ngDevMode) && setClassMetadata(IonModal, [{ type: Directive, args: [{ selector: "ion-modal", // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property inputs: MODAL_INPUTS }] }], function() { return [{ type: ChangeDetectorRef }, { type: ElementRef }, { type: NgZone }]; }, { template: [{ type: ContentChild, args: [TemplateRef, { static: false }] }] }); })(); var POPOVER_INPUTS = ["alignment", "animated", "arrow", "keepContentsMounted", "backdropDismiss", "cssClass", "dismissOnSelect", "enterAnimation", "event", "focusTrap", "isOpen", "keyboardClose", "leaveAnimation", "mode", "showBackdrop", "translucent", "trigger", "triggerAction", "reference", "size", "side"]; var POPOVER_METHODS = ["present", "dismiss", "onDidDismiss", "onWillDismiss"]; var IonPopover = ( /** * @Component extends from @Directive * so by defining the inputs here we * do not need to re-define them for the * lazy loaded popover. */ class IonPopover2 { z; // TODO(FW-2827): type template; isCmpOpen = false; el; constructor(c36, r32, z11) { this.z = z11; this.el = r32.nativeElement; this.el.addEventListener("ionMount", () => { this.isCmpOpen = true; c36.detectChanges(); }); this.el.addEventListener("didDismiss", () => { this.isCmpOpen = false; c36.detectChanges(); }); proxyOutputs(this, this.el, ["ionPopoverDidPresent", "ionPopoverWillPresent", "ionPopoverWillDismiss", "ionPopoverDidDismiss", "didPresent", "willPresent", "willDismiss", "didDismiss"]); } /** @nocollapse */ static \u0275fac = function IonPopover_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || IonPopover2)(\u0275\u0275directiveInject(ChangeDetectorRef), \u0275\u0275directiveInject(ElementRef), \u0275\u0275directiveInject(NgZone)); }; /** @nocollapse */ static \u0275dir = /* @__PURE__ */ \u0275\u0275defineDirective({ type: IonPopover2, selectors: [["ion-popover"]], contentQueries: function IonPopover_ContentQueries(rf, ctx, dirIndex) { if (rf & 1) { \u0275\u0275contentQuery(dirIndex, TemplateRef, 5); } if (rf & 2) { let _t; \u0275\u0275queryRefresh(_t = \u0275\u0275loadQuery()) && (ctx.template = _t.first); } }, inputs: { alignment: "alignment", animated: "animated", arrow: "arrow", keepContentsMounted: "keepContentsMounted", backdropDismiss: "backdropDismiss", cssClass: "cssClass", dismissOnSelect: "dismissOnSelect", enterAnimation: "enterAnimation", event: "event", focusTrap: "focusTrap", isOpen: "isOpen", keyboardClose: "keyboardClose", leaveAnimation: "leaveAnimation", mode: "mode", showBackdrop: "showBackdrop", translucent: "translucent", trigger: "trigger", triggerAction: "triggerAction", reference: "reference", size: "size", side: "side" }, standalone: false }); } ); IonPopover = __decorate([ ProxyCmp({ inputs: POPOVER_INPUTS, methods: POPOVER_METHODS }) /** * @Component extends from @Directive * so by defining the inputs here we * do not need to re-define them for the * lazy loaded popover. */ ], IonPopover); (() => { (typeof ngDevMode === "undefined" || ngDevMode) && setClassMetadata(IonPopover, [{ type: Directive, args: [{ selector: "ion-popover", // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property inputs: POPOVER_INPUTS }] }], function() { return [{ type: ChangeDetectorRef }, { type: ElementRef }, { type: NgZone }]; }, { template: [{ type: ContentChild, args: [TemplateRef, { static: false }] }] }); })(); var insertView = (views, view, direction) => { if (direction === "root") { return setRoot(views, view); } else if (direction === "forward") { return setForward(views, view); } else { return setBack(views, view); } }; var setRoot = (views, view) => { views = views.filter((v18) => v18.stackId !== view.stackId); views.push(view); return views; }; var setForward = (views, view) => { const index = views.indexOf(view); if (index >= 0) { views = views.filter((v18) => v18.stackId !== view.stackId || v18.id <= view.id); } else { views.push(view); } return views; }; var setBack = (views, view) => { const index = views.indexOf(view); if (index >= 0) { return views.filter((v18) => v18.stackId !== view.stackId || v18.id <= view.id); } else { return setRoot(views, view); } }; var getUrl = (router, activatedRoute) => { const urlTree = router.createUrlTree(["."], { relativeTo: activatedRoute }); return router.serializeUrl(urlTree); }; var isTabSwitch = (enteringView, leavingView) => { if (!leavingView) { return true; } return enteringView.stackId !== leavingView.stackId; }; var computeStackId = (prefixUrl, url) => { if (!prefixUrl) { return void 0; } const segments = toSegments(url); for (let i16 = 0; i16 < segments.length; i16++) { if (i16 >= prefixUrl.length) { return segments[i16]; } if (segments[i16] !== prefixUrl[i16]) { return void 0; } } return void 0; }; var toSegments = (path) => { return path.split("/").map((s23) => s23.trim()).filter((s23) => s23 !== ""); }; var destroyView = (view) => { if (view) { view.ref.destroy(); view.unlistenEvents(); } }; var StackController = class { containerEl; router; navCtrl; zone; location; views = []; runningTask; skipTransition = false; tabsPrefix; activeView; nextId = 0; constructor(tabsPrefix, containerEl, router, navCtrl, zone, location) { this.containerEl = containerEl; this.router = router; this.navCtrl = navCtrl; this.zone = zone; this.location = location; this.tabsPrefix = tabsPrefix !== void 0 ? toSegments(tabsPrefix) : void 0; } createView(ref, activatedRoute) { const url = getUrl(this.router, activatedRoute); const element = ref?.location?.nativeElement; const unlistenEvents = bindLifecycleEvents(this.zone, ref.instance, element); return { id: this.nextId++, stackId: computeStackId(this.tabsPrefix, url), unlistenEvents, element, ref, url }; } getExistingView(activatedRoute) { const activatedUrlKey = getUrl(this.router, activatedRoute); const view = this.views.find((vw) => vw.url === activatedUrlKey); if (view) { view.ref.changeDetectorRef.reattach(); } return view; } setActive(enteringView) { const consumeResult = this.navCtrl.consumeTransition(); let { direction, animation, animationBuilder } = consumeResult; const leavingView = this.activeView; const tabSwitch = isTabSwitch(enteringView, leavingView); if (tabSwitch) { direction = "back"; animation = void 0; } const viewsSnapshot = this.views.slice(); let currentNavigation; const router = this.router; if (router.getCurrentNavigation) { currentNavigation = router.getCurrentNavigation(); } else if (router.navigations?.value) { currentNavigation = router.navigations.value; } if (currentNavigation?.extras?.replaceUrl) { if (this.views.length > 0) { this.views.splice(-1, 1); } } const reused = this.views.includes(enteringView); const views = this.insertView(enteringView, direction); if (!reused) { enteringView.ref.changeDetectorRef.detectChanges(); } const customAnimation = enteringView.animationBuilder; if (animationBuilder === void 0 && direction === "back" && !tabSwitch && customAnimation !== void 0) { animationBuilder = customAnimation; } if (leavingView) { leavingView.animationBuilder = animationBuilder; } return this.zone.runOutsideAngular(() => { return this.wait(() => { if (leavingView) { leavingView.ref.changeDetectorRef.detach(); } enteringView.ref.changeDetectorRef.reattach(); return this.transition(enteringView, leavingView, animation, this.canGoBack(1), false, animationBuilder).then(() => cleanupAsync(enteringView, views, viewsSnapshot, this.location, this.zone)).then(() => ({ enteringView, direction, animation, tabSwitch })); }); }); } canGoBack(deep, stackId = this.getActiveStackId()) { return this.getStack(stackId).length > deep; } pop(deep, stackId = this.getActiveStackId()) { return this.zone.run(() => { const views = this.getStack(stackId); if (views.length <= deep) { return Promise.resolve(false); } const view = views[views.length - deep - 1]; let url = view.url; const viewSavedData = view.savedData; if (viewSavedData) { const primaryOutlet = viewSavedData.get("primary"); if (primaryOutlet?.route?._routerState?.snapshot.url) { url = primaryOutlet.route._routerState.snapshot.url; } } const { animationBuilder } = this.navCtrl.consumeTransition(); return this.navCtrl.navigateBack(url, __spreadProps(__spreadValues({}, view.savedExtras), { animation: animationBuilder })).then(() => true); }); } startBackTransition() { const leavingView = this.activeView; if (leavingView) { const views = this.getStack(leavingView.stackId); const enteringView = views[views.length - 2]; const customAnimation = enteringView.animationBuilder; return this.wait(() => { return this.transition( enteringView, // entering view leavingView, // leaving view "back", this.canGoBack(2), true, customAnimation ); }); } return Promise.resolve(); } endBackTransition(shouldComplete) { if (shouldComplete) { this.skipTransition = true; this.pop(1); } else if (this.activeView) { cleanup(this.activeView, this.views, this.views, this.location, this.zone); } } getLastUrl(stackId) { const views = this.getStack(stackId); return views.length > 0 ? views[views.length - 1] : void 0; } /** * @internal */ getRootUrl(stackId) { const views = this.getStack(stackId); return views.length > 0 ? views[0] : void 0; } getActiveStackId() { return this.activeView ? this.activeView.stackId : void 0; } /** * @internal */ getActiveView() { return this.activeView; } hasRunningTask() { return this.runningTask !== void 0; } destroy() { this.containerEl = void 0; this.views.forEach(destroyView); this.activeView = void 0; this.views = []; } getStack(stackId) { return this.views.filter((v18) => v18.stackId === stackId); } insertView(enteringView, direction) { this.activeView = enteringView; this.views = insertView(this.views, enteringView, direction); return this.views.slice(); } transition(enteringView, leavingView, direction, showGoBack, progressAnimation, animationBuilder) { if (this.skipTransition) { this.skipTransition = false; return Promise.resolve(false); } if (leavingView === enteringView) { return Promise.resolve(false); } const enteringEl = enteringView ? enteringView.element : void 0; const leavingEl = leavingView ? leavingView.element : void 0; const containerEl = this.containerEl; if (enteringEl && enteringEl !== leavingEl) { enteringEl.classList.add("ion-page"); enteringEl.classList.add("ion-page-invisible"); if (containerEl.commit) { return containerEl.commit(enteringEl, leavingEl, { duration: direction === void 0 ? 0 : void 0, direction, showGoBack, progressAnimation, animationBuilder }); } } return Promise.resolve(false); } wait(task) { return __async(this, null, function* () { if (this.runningTask !== void 0) { yield this.runningTask; this.runningTask = void 0; } const promise = this.runningTask = task(); promise.finally(() => this.runningTask = void 0); return promise; }); } }; var cleanupAsync = (activeRoute, views, viewsSnapshot, location, zone) => { if (typeof requestAnimationFrame === "function") { return new Promise((resolve) => { requestAnimationFrame(() => { cleanup(activeRoute, views, viewsSnapshot, location, zone); resolve(); }); }); } return Promise.resolve(); }; var cleanup = (activeRoute, views, viewsSnapshot, location, zone) => { zone.run(() => viewsSnapshot.filter((view) => !views.includes(view)).forEach(destroyView)); views.forEach((view) => { const locationWithoutParams = location.path().split("?")[0]; const locationWithoutFragment = locationWithoutParams.split("#")[0]; if (view !== activeRoute && view.url !== locationWithoutFragment) { const element = view.element; element.setAttribute("aria-hidden", "true"); element.classList.add("ion-page-hidden"); view.ref.changeDetectorRef.detach(); } }); }; var IonRouterOutlet = class _IonRouterOutlet { parentOutlet; nativeEl; activatedView = null; tabsPrefix; _swipeGesture; stackCtrl; // Maintain map of activated route proxies for each component instance proxyMap = /* @__PURE__ */ new WeakMap(); // Keep the latest activated route in a subject for the proxy routes to switch map to currentActivatedRoute$ = new BehaviorSubject(null); activated = null; /** @internal */ get activatedComponentRef() { return this.activated; } _activatedRoute = null; /** * The name of the outlet */ name = PRIMARY_OUTLET; /** @internal */ stackWillChange = new EventEmitter(); /** @internal */ stackDidChange = new EventEmitter(); // eslint-disable-next-line @angular-eslint/no-output-rename activateEvents = new EventEmitter(); // eslint-disable-next-line @angular-eslint/no-output-rename deactivateEvents = new EventEmitter(); parentContexts = inject(ChildrenOutletContexts); location = inject(ViewContainerRef); environmentInjector = inject(EnvironmentInjector); inputBinder = inject(INPUT_BINDER, { optional: true }); /** @nodoc */ supportsBindingToComponentInputs = true; // Ionic providers config = inject(Config); navCtrl = inject(NavController); set animation(animation) { this.nativeEl.animation = animation; } set animated(animated) { this.nativeEl.animated = animated; } set swipeGesture(swipe) { this._swipeGesture = swipe; this.nativeEl.swipeHandler = swipe ? { canStart: () => this.stackCtrl.canGoBack(1) && !this.stackCtrl.hasRunningTask(), onStart: () => this.stackCtrl.startBackTransition(), onEnd: (shouldContinue) => this.stackCtrl.endBackTransition(shouldContinue) } : void 0; } constructor(name, tabs, commonLocation, elementRef, router, zone, activatedRoute, parentOutlet) { this.parentOutlet = parentOutlet; this.nativeEl = elementRef.nativeElement; this.name = name || PRIMARY_OUTLET; this.tabsPrefix = tabs === "true" ? getUrl(router, activatedRoute) : void 0; this.stackCtrl = new StackController(this.tabsPrefix, this.nativeEl, router, this.navCtrl, zone, commonLocation); this.parentContexts.onChildOutletCreated(this.name, this); } ngOnDestroy() { this.stackCtrl.destroy(); this.inputBinder?.unsubscribeFromRouteData(this); } getContext() { return this.parentContexts.getContext(this.name); } ngOnInit() { this.initializeOutletWithName(); } // Note: Ionic deviates from the Angular Router implementation here initializeOutletWithName() { if (!this.activated) { const context = this.getContext(); if (context?.route) { this.activateWith(context.route, context.injector); } } new Promise((resolve) => e2(this.nativeEl, resolve)).then(() => { if (this._swipeGesture === void 0) { this.swipeGesture = this.config.getBoolean("swipeBackEnabled", this.nativeEl.mode === "ios"); } }); } get isActivated() { return !!this.activated; } get component() { if (!this.activated) { throw new Error("Outlet is not activated"); } return this.activated.instance; } get activatedRoute() { if (!this.activated) { throw new Error("Outlet is not activated"); } return this._activatedRoute; } get activatedRouteData() { if (this._activatedRoute) { return this._activatedRoute.snapshot.data; } return {}; } /** * Called when the `RouteReuseStrategy` instructs to detach the subtree */ detach() { throw new Error("incompatible reuse strategy"); } /** * Called when the `RouteReuseStrategy` instructs to re-attach a previously detached subtree */ // eslint-disable-next-line @typescript-eslint/no-unused-vars attach(_ref, _activatedRoute) { throw new Error("incompatible reuse strategy"); } deactivate() { if (this.activated) { if (this.activatedView) { const context = this.getContext(); this.activatedView.savedData = new Map(context.children["contexts"]); const primaryOutlet = this.activatedView.savedData.get("primary"); if (primaryOutlet && context.route) { primaryOutlet.route = __spreadValues({}, context.route); } this.activatedView.savedExtras = {}; if (context.route) { const contextSnapshot = context.route.snapshot; this.activatedView.savedExtras.queryParams = contextSnapshot.queryParams; this.activatedView.savedExtras.fragment = contextSnapshot.fragment; } } const c36 = this.component; this.activatedView = null; this.activated = null; this._activatedRoute = null; this.deactivateEvents.emit(c36); } } activateWith(activatedRoute, environmentInjector) { if (this.isActivated) { throw new Error("Cannot activate an already activated outlet"); } this._activatedRoute = activatedRoute; let cmpRef; let enteringView = this.stackCtrl.getExistingView(activatedRoute); if (enteringView) { cmpRef = this.activated = enteringView.ref; const saved = enteringView.savedData; if (saved) { const context = this.getContext(); context.children["contexts"] = saved; } this.updateActivatedRouteProxy(cmpRef.instance, activatedRoute); } else { const snapshot = activatedRoute._futureSnapshot; const childContexts = this.parentContexts.getOrCreateContext(this.name).children; const component$ = new BehaviorSubject(null); const activatedRouteProxy = this.createActivatedRouteProxy(component$, activatedRoute); const injector = new OutletInjector(activatedRouteProxy, childContexts, this.location.injector); const component = snapshot.routeConfig.component ?? snapshot.component; cmpRef = this.activated = this.outletContent.createComponent(component, { index: this.outletContent.length, injector, environmentInjector: environmentInjector ?? this.environmentInjector }); component$.next(cmpRef.instance); enteringView = this.stackCtrl.createView(this.activated, activatedRoute); this.proxyMap.set(cmpRef.instance, activatedRouteProxy); this.currentActivatedRoute$.next({ component: cmpRef.instance, activatedRoute }); } this.inputBinder?.bindActivatedRouteToOutletComponent(this); this.activatedView = enteringView; this.navCtrl.setTopOutlet(this); const leavingView = this.stackCtrl.getActiveView(); this.stackWillChange.emit({ enteringView, tabSwitch: isTabSwitch(enteringView, leavingView) }); this.stackCtrl.setActive(enteringView).then((data) => { this.activateEvents.emit(cmpRef.instance); this.stackDidChange.emit(data); }); } /** * Returns `true` if there are pages in the stack to go back. */ canGoBack(deep = 1, stackId) { return this.stackCtrl.canGoBack(deep, stackId); } /** * Resolves to `true` if it the outlet was able to sucessfully pop the last N pages. */ pop(deep = 1, stackId) { return this.stackCtrl.pop(deep, stackId); } /** * Returns the URL of the active page of each stack. */ getLastUrl(stackId) { const active = this.stackCtrl.getLastUrl(stackId); return active ? active.url : void 0; } /** * Returns the RouteView of the active page of each stack. * @internal */ getLastRouteView(stackId) { return this.stackCtrl.getLastUrl(stackId); } /** * Returns the root view in the tab stack. * @internal */ getRootView(stackId) { return this.stackCtrl.getRootUrl(stackId); } /** * Returns the active stack ID. In the context of ion-tabs, it means the active tab. */ getActiveStackId() { return this.stackCtrl.getActiveStackId(); } /** * Since the activated route can change over the life time of a component in an ion router outlet, we create * a proxy so that we can update the values over time as a user navigates back to components already in the stack. */ createActivatedRouteProxy(component$, activatedRoute) { const proxy = new ActivatedRoute(); proxy._futureSnapshot = activatedRoute._futureSnapshot; proxy._routerState = activatedRoute._routerState; proxy.snapshot = activatedRoute.snapshot; proxy.outlet = activatedRoute.outlet; proxy.component = activatedRoute.component; proxy._paramMap = this.proxyObservable(component$, "paramMap"); proxy._queryParamMap = this.proxyObservable(component$, "queryParamMap"); proxy.url = this.proxyObservable(component$, "url"); proxy.params = this.proxyObservable(component$, "params"); proxy.queryParams = this.proxyObservable(component$, "queryParams"); proxy.fragment = this.proxyObservable(component$, "fragment"); proxy.data = this.proxyObservable(component$, "data"); return proxy; } /** * Create a wrapped observable that will switch to the latest activated route matched by the given component */ proxyObservable(component$, path) { return component$.pipe( // First wait until the component instance is pushed filter((component) => !!component), switchMap((component) => this.currentActivatedRoute$.pipe(filter((current) => current !== null && current.component === component), switchMap((current) => current && current.activatedRoute[path]), distinctUntilChanged())) ); } /** * Updates the activated route proxy for the given component to the new incoming router state */ updateActivatedRouteProxy(component, activatedRoute) { const proxy = this.proxyMap.get(component); if (!proxy) { throw new Error(`Could not find activated route proxy for view`); } proxy._futureSnapshot = activatedRoute._futureSnapshot; proxy._routerState = activatedRoute._routerState; proxy.snapshot = activatedRoute.snapshot; proxy.outlet = activatedRoute.outlet; proxy.component = activatedRoute.component; this.currentActivatedRoute$.next({ component, activatedRoute }); } /** @nocollapse */ static \u0275fac = function IonRouterOutlet_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || _IonRouterOutlet)(\u0275\u0275injectAttribute("name"), \u0275\u0275injectAttribute("tabs"), \u0275\u0275directiveInject(Location), \u0275\u0275directiveInject(ElementRef), \u0275\u0275directiveInject(Router), \u0275\u0275directiveInject(NgZone), \u0275\u0275directiveInject(ActivatedRoute), \u0275\u0275directiveInject(_IonRouterOutlet, 12)); }; /** @nocollapse */ static \u0275dir = /* @__PURE__ */ \u0275\u0275defineDirective({ type: _IonRouterOutlet, selectors: [["ion-router-outlet"]], inputs: { animated: "animated", animation: "animation", mode: "mode", swipeGesture: "swipeGesture", name: "name" }, outputs: { stackWillChange: "stackWillChange", stackDidChange: "stackDidChange", activateEvents: "activate", deactivateEvents: "deactivate" }, exportAs: ["outlet"], standalone: false }); }; (() => { (typeof ngDevMode === "undefined" || ngDevMode) && setClassMetadata(IonRouterOutlet, [{ type: Directive, args: [{ selector: "ion-router-outlet", exportAs: "outlet", // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property inputs: ["animated", "animation", "mode", "swipeGesture"] }] }], function() { return [{ type: void 0, decorators: [{ type: Attribute, args: ["name"] }] }, { type: void 0, decorators: [{ type: Optional }, { type: Attribute, args: ["tabs"] }] }, { type: Location }, { type: ElementRef }, { type: Router }, { type: NgZone }, { type: ActivatedRoute }, { type: IonRouterOutlet, decorators: [{ type: SkipSelf }, { type: Optional }] }]; }, { name: [{ type: Input }], stackWillChange: [{ type: Output }], stackDidChange: [{ type: Output }], activateEvents: [{ type: Output, args: ["activate"] }], deactivateEvents: [{ type: Output, args: ["deactivate"] }] }); })(); var OutletInjector = class { route; childContexts; parent; constructor(route, childContexts, parent) { this.route = route; this.childContexts = childContexts; this.parent = parent; } get(token, notFoundValue) { if (token === ActivatedRoute) { return this.route; } if (token === ChildrenOutletContexts) { return this.childContexts; } return this.parent.get(token, notFoundValue); } }; var INPUT_BINDER = new InjectionToken(""); var RoutedComponentInputBinder = class _RoutedComponentInputBinder { outletDataSubscriptions = /* @__PURE__ */ new Map(); bindActivatedRouteToOutletComponent(outlet) { this.unsubscribeFromRouteData(outlet); this.subscribeToRouteData(outlet); } unsubscribeFromRouteData(outlet) { this.outletDataSubscriptions.get(outlet)?.unsubscribe(); this.outletDataSubscriptions.delete(outlet); } subscribeToRouteData(outlet) { const { activatedRoute } = outlet; const dataSubscription = combineLatest([activatedRoute.queryParams, activatedRoute.params, activatedRoute.data]).pipe(switchMap(([queryParams, params, data], index) => { data = __spreadValues(__spreadValues(__spreadValues({}, queryParams), params), data); if (index === 0) { return of(data); } return Promise.resolve(data); })).subscribe((data) => { if (!outlet.isActivated || !outlet.activatedComponentRef || outlet.activatedRoute !== activatedRoute || activatedRoute.component === null) { this.unsubscribeFromRouteData(outlet); return; } const mirror = reflectComponentType(activatedRoute.component); if (!mirror) { this.unsubscribeFromRouteData(outlet); return; } for (const { templateName } of mirror.inputs) { outlet.activatedComponentRef.setInput(templateName, data[templateName]); } }); this.outletDataSubscriptions.set(outlet, dataSubscription); } /** @nocollapse */ static \u0275fac = function RoutedComponentInputBinder_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || _RoutedComponentInputBinder)(); }; /** @nocollapse */ static \u0275prov = /* @__PURE__ */ \u0275\u0275defineInjectable({ token: _RoutedComponentInputBinder, factory: _RoutedComponentInputBinder.\u0275fac }); }; (() => { (typeof ngDevMode === "undefined" || ngDevMode) && setClassMetadata(RoutedComponentInputBinder, [{ type: Injectable }], null, null); })(); var provideComponentInputBinding = () => { return { provide: INPUT_BINDER, useFactory: componentInputBindingFactory, deps: [Router] }; }; function componentInputBindingFactory(router) { if (router?.componentInputBindingEnabled) { return new RoutedComponentInputBinder(); } return null; } var raf = (h21) => { if (typeof __zone_symbol__requestAnimationFrame === "function") { return __zone_symbol__requestAnimationFrame(h21); } if (typeof requestAnimationFrame === "function") { return requestAnimationFrame(h21); } return setTimeout(h21); }; var ValueAccessor = class _ValueAccessor { injector; elementRef; onChange = () => { }; onTouched = () => { }; lastValue; statusChanges; constructor(injector, elementRef) { this.injector = injector; this.elementRef = elementRef; } writeValue(value) { this.elementRef.nativeElement.value = this.lastValue = value; setIonicClasses(this.elementRef); } /** * Notifies the ControlValueAccessor of a change in the value of the control. * * This is called by each of the ValueAccessor directives when we want to update * the status and validity of the form control. For example with text components this * is called when the ionInput event is fired. For select components this is called * when the ionChange event is fired. * * This also updates the Ionic form status classes on the element. * * @param el The component element. * @param value The new value of the control. */ handleValueChange(el, value) { if (el === this.elementRef.nativeElement) { if (value !== this.lastValue) { this.lastValue = value; this.onChange(value); } setIonicClasses(this.elementRef); } } _handleBlurEvent(el) { if (el === this.elementRef.nativeElement) { this.onTouched(); setIonicClasses(this.elementRef); } else if (el.closest("ion-radio-group") === this.elementRef.nativeElement) { this.onTouched(); } } registerOnChange(fn) { this.onChange = fn; } registerOnTouched(fn) { this.onTouched = fn; } setDisabledState(isDisabled) { this.elementRef.nativeElement.disabled = isDisabled; } ngOnDestroy() { if (this.statusChanges) { this.statusChanges.unsubscribe(); } } ngAfterViewInit() { let ngControl; try { ngControl = this.injector.get(NgControl); } catch { } if (!ngControl) { return; } if (ngControl.statusChanges) { this.statusChanges = ngControl.statusChanges.subscribe(() => setIonicClasses(this.elementRef)); } const formControl = ngControl.control; if (formControl) { const methodsToPatch = ["markAsTouched", "markAllAsTouched", "markAsUntouched", "markAsDirty", "markAsPristine"]; methodsToPatch.forEach((method) => { if (typeof formControl[method] !== "undefined") { const oldFn = formControl[method].bind(formControl); formControl[method] = (...params) => { oldFn(...params); setIonicClasses(this.elementRef); }; } }); } } /** @nocollapse */ static \u0275fac = function ValueAccessor_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || _ValueAccessor)(\u0275\u0275directiveInject(Injector), \u0275\u0275directiveInject(ElementRef)); }; /** @nocollapse */ static \u0275dir = /* @__PURE__ */ \u0275\u0275defineDirective({ type: _ValueAccessor, hostBindings: function ValueAccessor_HostBindings(rf, ctx) { if (rf & 1) { \u0275\u0275listener("ionBlur", function ValueAccessor_ionBlur_HostBindingHandler($event) { return ctx._handleBlurEvent($event.target); }); } }, standalone: false }); }; (() => { (typeof ngDevMode === "undefined" || ngDevMode) && setClassMetadata(ValueAccessor, [{ type: Directive }], function() { return [{ type: Injector }, { type: ElementRef }]; }, { _handleBlurEvent: [{ type: HostListener, args: ["ionBlur", ["$event.target"]] }] }); })(); var setIonicClasses = (element) => { raf(() => { const input = element.nativeElement; const hasValue = input.value != null && input.value.toString().length > 0; const classes = getClasses(input); setClasses(input, classes); const item = input.closest("ion-item"); if (item) { if (hasValue) { setClasses(item, [...classes, "item-has-value"]); } else { setClasses(item, classes); } } }); }; var getClasses = (element) => { const classList = element.classList; const classes = []; for (let i16 = 0; i16 < classList.length; i16++) { const item = classList.item(i16); if (item !== null && startsWith(item, "ng-")) { classes.push(`ion-${item.substring(3)}`); } } return classes; }; var setClasses = (element, classes) => { const classList = element.classList; classList.remove("ion-valid", "ion-invalid", "ion-touched", "ion-untouched", "ion-dirty", "ion-pristine"); classList.add(...classes); }; var startsWith = (input, search) => { return input.substring(0, search.length) === search; }; var BACK_BUTTON_INPUTS = ["color", "defaultHref", "disabled", "icon", "mode", "routerAnimation", "text", "type"]; var IonBackButton = class IonBackButton2 { routerOutlet; navCtrl; config; r; z; el; constructor(routerOutlet, navCtrl, config, r32, z11, c36) { this.routerOutlet = routerOutlet; this.navCtrl = navCtrl; this.config = config; this.r = r32; this.z = z11; c36.detach(); this.el = this.r.nativeElement; } /** * @internal */ onClick(ev) { const defaultHref = this.defaultHref || this.config.get("backButtonDefaultHref"); if (this.routerOutlet?.canGoBack()) { this.navCtrl.setDirection("back", void 0, void 0, this.routerAnimation); this.routerOutlet.pop(); ev.preventDefault(); } else if (defaultHref != null) { this.navCtrl.navigateBack(defaultHref, { animation: this.routerAnimation }); ev.preventDefault(); } } /** @nocollapse */ static \u0275fac = function IonBackButton_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || IonBackButton2)(\u0275\u0275directiveInject(IonRouterOutlet, 8), \u0275\u0275directiveInject(NavController), \u0275\u0275directiveInject(Config), \u0275\u0275directiveInject(ElementRef), \u0275\u0275directiveInject(NgZone), \u0275\u0275directiveInject(ChangeDetectorRef)); }; /** @nocollapse */ static \u0275dir = /* @__PURE__ */ \u0275\u0275defineDirective({ type: IonBackButton2, hostBindings: function IonBackButton_HostBindings(rf, ctx) { if (rf & 1) { \u0275\u0275listener("click", function IonBackButton_click_HostBindingHandler($event) { return ctx.onClick($event); }); } }, inputs: { color: "color", defaultHref: "defaultHref", disabled: "disabled", icon: "icon", mode: "mode", routerAnimation: "routerAnimation", text: "text", type: "type" }, standalone: false }); }; IonBackButton = __decorate([ProxyCmp({ inputs: BACK_BUTTON_INPUTS })], IonBackButton); (() => { (typeof ngDevMode === "undefined" || ngDevMode) && setClassMetadata(IonBackButton, [{ type: Directive, args: [{ // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property inputs: BACK_BUTTON_INPUTS }] }], function() { return [{ type: IonRouterOutlet, decorators: [{ type: Optional }] }, { type: NavController }, { type: Config }, { type: ElementRef }, { type: NgZone }, { type: ChangeDetectorRef }]; }, { onClick: [{ type: HostListener, args: ["click", ["$event"]] }] }); })(); var NAV_INPUTS = ["animated", "animation", "root", "rootParams", "swipeGesture"]; var NAV_METHODS = ["push", "insert", "insertPages", "pop", "popTo", "popToRoot", "removeIndex", "setRoot", "setPages", "getActive", "getByIndex", "canGoBack", "getPrevious"]; var IonNav = class IonNav2 { z; el; constructor(ref, environmentInjector, injector, angularDelegate, z11, c36) { this.z = z11; c36.detach(); this.el = ref.nativeElement; ref.nativeElement.delegate = angularDelegate.create(environmentInjector, injector); proxyOutputs(this, this.el, ["ionNavDidChange", "ionNavWillChange"]); } /** @nocollapse */ static \u0275fac = function IonNav_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || IonNav2)(\u0275\u0275directiveInject(ElementRef), \u0275\u0275directiveInject(EnvironmentInjector), \u0275\u0275directiveInject(Injector), \u0275\u0275directiveInject(AngularDelegate), \u0275\u0275directiveInject(NgZone), \u0275\u0275directiveInject(ChangeDetectorRef)); }; /** @nocollapse */ static \u0275dir = /* @__PURE__ */ \u0275\u0275defineDirective({ type: IonNav2, inputs: { animated: "animated", animation: "animation", root: "root", rootParams: "rootParams", swipeGesture: "swipeGesture" }, standalone: false }); }; IonNav = __decorate([ProxyCmp({ inputs: NAV_INPUTS, methods: NAV_METHODS })], IonNav); (() => { (typeof ngDevMode === "undefined" || ngDevMode) && setClassMetadata(IonNav, [{ type: Directive, args: [{ // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property inputs: NAV_INPUTS }] }], function() { return [{ type: ElementRef }, { type: EnvironmentInjector }, { type: Injector }, { type: AngularDelegate }, { type: NgZone }, { type: ChangeDetectorRef }]; }, null); })(); var RouterLinkDelegateDirective = class _RouterLinkDelegateDirective { locationStrategy; navCtrl; elementRef; router; routerLink; routerDirection = "forward"; routerAnimation; constructor(locationStrategy, navCtrl, elementRef, router, routerLink) { this.locationStrategy = locationStrategy; this.navCtrl = navCtrl; this.elementRef = elementRef; this.router = router; this.routerLink = routerLink; } ngOnInit() { this.updateTargetUrlAndHref(); this.updateTabindex(); } ngOnChanges() { this.updateTargetUrlAndHref(); } /** * The `tabindex` is set to `0` by default on the host element when * the `routerLink` directive is used. This causes issues with Ionic * components that wrap an `a` or `button` element, such as `ion-item`. * See issue https://github.com/angular/angular/issues/28345 * * This method removes the `tabindex` attribute from the host element * to allow the Ionic component to manage the focus state correctly. */ updateTabindex() { const ionicComponents = ["ION-BACK-BUTTON", "ION-BREADCRUMB", "ION-BUTTON", "ION-CARD", "ION-FAB-BUTTON", "ION-ITEM", "ION-ITEM-OPTION", "ION-MENU-BUTTON", "ION-SEGMENT-BUTTON", "ION-TAB-BUTTON"]; const hostElement = this.elementRef.nativeElement; if (ionicComponents.includes(hostElement.tagName)) { if (hostElement.getAttribute("tabindex") === "0") { hostElement.removeAttribute("tabindex"); } } } updateTargetUrlAndHref() { if (this.routerLink?.urlTree) { const href = this.locationStrategy.prepareExternalUrl(this.router.serializeUrl(this.routerLink.urlTree)); this.elementRef.nativeElement.href = href; } } /** * @internal */ onClick(ev) { this.navCtrl.setDirection(this.routerDirection, void 0, void 0, this.routerAnimation); ev.preventDefault(); } /** @nocollapse */ static \u0275fac = function RouterLinkDelegateDirective_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || _RouterLinkDelegateDirective)(\u0275\u0275directiveInject(LocationStrategy), \u0275\u0275directiveInject(NavController), \u0275\u0275directiveInject(ElementRef), \u0275\u0275directiveInject(Router), \u0275\u0275directiveInject(RouterLink, 8)); }; /** @nocollapse */ static \u0275dir = /* @__PURE__ */ \u0275\u0275defineDirective({ type: _RouterLinkDelegateDirective, selectors: [["", "routerLink", "", 5, "a", 5, "area"]], hostBindings: function RouterLinkDelegateDirective_HostBindings(rf, ctx) { if (rf & 1) { \u0275\u0275listener("click", function RouterLinkDelegateDirective_click_HostBindingHandler($event) { return ctx.onClick($event); }); } }, inputs: { routerDirection: "routerDirection", routerAnimation: "routerAnimation" }, standalone: false, features: [\u0275\u0275NgOnChangesFeature] }); }; (() => { (typeof ngDevMode === "undefined" || ngDevMode) && setClassMetadata(RouterLinkDelegateDirective, [{ type: Directive, args: [{ selector: ":not(a):not(area)[routerLink]" }] }], function() { return [{ type: LocationStrategy }, { type: NavController }, { type: ElementRef }, { type: Router }, { type: RouterLink, decorators: [{ type: Optional }] }]; }, { routerDirection: [{ type: Input }], routerAnimation: [{ type: Input }], onClick: [{ type: HostListener, args: ["click", ["$event"]] }] }); })(); var RouterLinkWithHrefDelegateDirective = class _RouterLinkWithHrefDelegateDirective { locationStrategy; navCtrl; elementRef; router; routerLink; routerDirection = "forward"; routerAnimation; constructor(locationStrategy, navCtrl, elementRef, router, routerLink) { this.locationStrategy = locationStrategy; this.navCtrl = navCtrl; this.elementRef = elementRef; this.router = router; this.routerLink = routerLink; } ngOnInit() { this.updateTargetUrlAndHref(); } ngOnChanges() { this.updateTargetUrlAndHref(); } updateTargetUrlAndHref() { if (this.routerLink?.urlTree) { const href = this.locationStrategy.prepareExternalUrl(this.router.serializeUrl(this.routerLink.urlTree)); this.elementRef.nativeElement.href = href; } } /** * @internal */ onClick() { this.navCtrl.setDirection(this.routerDirection, void 0, void 0, this.routerAnimation); } /** @nocollapse */ static \u0275fac = function RouterLinkWithHrefDelegateDirective_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || _RouterLinkWithHrefDelegateDirective)(\u0275\u0275directiveInject(LocationStrategy), \u0275\u0275directiveInject(NavController), \u0275\u0275directiveInject(ElementRef), \u0275\u0275directiveInject(Router), \u0275\u0275directiveInject(RouterLink, 8)); }; /** @nocollapse */ static \u0275dir = /* @__PURE__ */ \u0275\u0275defineDirective({ type: _RouterLinkWithHrefDelegateDirective, selectors: [["a", "routerLink", ""], ["area", "routerLink", ""]], hostBindings: function RouterLinkWithHrefDelegateDirective_HostBindings(rf, ctx) { if (rf & 1) { \u0275\u0275listener("click", function RouterLinkWithHrefDelegateDirective_click_HostBindingHandler() { return ctx.onClick(); }); } }, inputs: { routerDirection: "routerDirection", routerAnimation: "routerAnimation" }, standalone: false, features: [\u0275\u0275NgOnChangesFeature] }); }; (() => { (typeof ngDevMode === "undefined" || ngDevMode) && setClassMetadata(RouterLinkWithHrefDelegateDirective, [{ type: Directive, args: [{ selector: "a[routerLink],area[routerLink]" }] }], function() { return [{ type: LocationStrategy }, { type: NavController }, { type: ElementRef }, { type: Router }, { type: RouterLink, decorators: [{ type: Optional }] }]; }, { routerDirection: [{ type: Input }], routerAnimation: [{ type: Input }], onClick: [{ type: HostListener, args: ["click"] }] }); })(); var IonTabs = class _IonTabs { navCtrl; tabsInner; /** * Emitted before the tab view is changed. */ ionTabsWillChange = new EventEmitter(); /** * Emitted after the tab view is changed. */ ionTabsDidChange = new EventEmitter(); tabBarSlot = "bottom"; hasTab = false; selectedTab; leavingTab; constructor(navCtrl) { this.navCtrl = navCtrl; } ngAfterViewInit() { const firstTab = this.tabs.length > 0 ? this.tabs.first : void 0; if (firstTab) { this.hasTab = true; this.setActiveTab(firstTab.tab); this.tabSwitch(); } } ngAfterContentInit() { this.detectSlotChanges(); } ngAfterContentChecked() { this.detectSlotChanges(); } /** * @internal */ onStackWillChange({ enteringView, tabSwitch }) { const stackId = enteringView.stackId; if (tabSwitch && stackId !== void 0) { this.ionTabsWillChange.emit({ tab: stackId }); } } /** * @internal */ onStackDidChange({ enteringView, tabSwitch }) { const stackId = enteringView.stackId; if (tabSwitch && stackId !== void 0) { if (this.tabBar) { this.tabBar.selectedTab = stackId; } this.ionTabsDidChange.emit({ tab: stackId }); } } /** * When a tab button is clicked, there are several scenarios: * 1. If the selected tab is currently active (the tab button has been clicked * again), then it should go to the root view for that tab. * * a. Get the saved root view from the router outlet. If the saved root view * matches the tabRootUrl, set the route view to this view including the * navigation extras. * b. If the saved root view from the router outlet does * not match, navigate to the tabRootUrl. No navigation extras are * included. * * 2. If the current tab tab is not currently selected, get the last route * view from the router outlet. * * a. If the last route view exists, navigate to that view including any * navigation extras * b. If the last route view doesn't exist, then navigate * to the default tabRootUrl */ select(tabOrEvent) { const isTabString = typeof tabOrEvent === "string"; const tab = isTabString ? tabOrEvent : tabOrEvent.detail.tab; if (this.hasTab) { this.setActiveTab(tab); this.tabSwitch(); return; } const alreadySelected = this.outlet.getActiveStackId() === tab; const tabRootUrl = `${this.outlet.tabsPrefix}/${tab}`; if (!isTabString) { tabOrEvent.stopPropagation(); } if (alreadySelected) { const activeStackId = this.outlet.getActiveStackId(); const activeView = this.outlet.getLastRouteView(activeStackId); if (activeView?.url === tabRootUrl) { return; } const rootView = this.outlet.getRootView(tab); const navigationExtras = rootView && tabRootUrl === rootView.url && rootView.savedExtras; return this.navCtrl.navigateRoot(tabRootUrl, __spreadProps(__spreadValues({}, navigationExtras), { animated: true, animationDirection: "back" })); } else { const lastRoute = this.outlet.getLastRouteView(tab); const url = lastRoute?.url || tabRootUrl; const navigationExtras = lastRoute?.savedExtras; return this.navCtrl.navigateRoot(url, __spreadProps(__spreadValues({}, navigationExtras), { animated: true, animationDirection: "back" })); } } setActiveTab(tab) { const tabs = this.tabs; const selectedTab = tabs.find((t17) => t17.tab === tab); if (!selectedTab) { console.error(`[Ionic Error]: Tab with id: "${tab}" does not exist`); return; } this.leavingTab = this.selectedTab; this.selectedTab = selectedTab; this.ionTabsWillChange.emit({ tab }); selectedTab.el.active = true; } tabSwitch() { const { selectedTab, leavingTab } = this; if (this.tabBar && selectedTab) { this.tabBar.selectedTab = selectedTab.tab; } if (leavingTab?.tab !== selectedTab?.tab) { if (leavingTab?.el) { leavingTab.el.active = false; } } if (selectedTab) { this.ionTabsDidChange.emit({ tab: selectedTab.tab }); } } getSelected() { if (this.hasTab) { return this.selectedTab?.tab; } return this.outlet.getActiveStackId(); } /** * Detects changes to the slot attribute of the tab bar. * * If the slot attribute has changed, then the tab bar * should be relocated to the new slot position. */ detectSlotChanges() { this.tabBars.forEach((tabBar) => { const currentSlot = tabBar.el.getAttribute("slot"); if (currentSlot !== this.tabBarSlot) { this.tabBarSlot = currentSlot; this.relocateTabBar(); } }); } /** * Relocates the tab bar to the new slot position. */ relocateTabBar() { const tabBar = this.tabBar.el; if (this.tabBarSlot === "top") { this.tabsInner.nativeElement.before(tabBar); } else { this.tabsInner.nativeElement.after(tabBar); } } /** @nocollapse */ static \u0275fac = function IonTabs_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || _IonTabs)(\u0275\u0275directiveInject(NavController)); }; /** @nocollapse */ static \u0275dir = /* @__PURE__ */ \u0275\u0275defineDirective({ type: _IonTabs, selectors: [["ion-tabs"]], viewQuery: function IonTabs_Query(rf, ctx) { if (rf & 1) { \u0275\u0275viewQuery(_c0, 7, ElementRef); } if (rf & 2) { let _t; \u0275\u0275queryRefresh(_t = \u0275\u0275loadQuery()) && (ctx.tabsInner = _t.first); } }, hostBindings: function IonTabs_HostBindings(rf, ctx) { if (rf & 1) { \u0275\u0275listener("ionTabButtonClick", function IonTabs_ionTabButtonClick_HostBindingHandler($event) { return ctx.select($event); }); } }, outputs: { ionTabsWillChange: "ionTabsWillChange", ionTabsDidChange: "ionTabsDidChange" }, standalone: false }); }; (() => { (typeof ngDevMode === "undefined" || ngDevMode) && setClassMetadata(IonTabs, [{ type: Directive, args: [{ selector: "ion-tabs" }] }], function() { return [{ type: NavController }]; }, { tabsInner: [{ type: ViewChild, args: ["tabsInner", { read: ElementRef, static: true }] }], ionTabsWillChange: [{ type: Output }], ionTabsDidChange: [{ type: Output }], select: [{ type: HostListener, args: ["ionTabButtonClick", ["$event"]] }] }); })(); var OverlayBaseController = class { ctrl; constructor(ctrl) { this.ctrl = ctrl; } /** * Creates a new overlay */ create(opts) { return this.ctrl.create(opts || {}); } /** * When `id` is not provided, it dismisses the top overlay. */ dismiss(data, role, id) { return this.ctrl.dismiss(data, role, id); } /** * Returns the top overlay. */ getTop() { return this.ctrl.getTop(); } }; // node_modules/@ionic/core/components/p-CO7fmmxt.js var s9 = "data:image/svg+xml;utf8,"; var o9 = "data:image/svg+xml;utf8,"; var i9 = "data:image/svg+xml;utf8,"; var n6 = "data:image/svg+xml;utf8,"; var a7 = "data:image/svg+xml;utf8,"; var t10 = "data:image/svg+xml;utf8,"; var l7 = "data:image/svg+xml;utf8,"; var g3 = "data:image/svg+xml;utf8,"; var e7 = "data:image/svg+xml;utf8,"; var w4 = "data:image/svg+xml;utf8,"; var c8 = "data:image/svg+xml;utf8,"; var v5 = "data:image/svg+xml;utf8,"; var r6 = "data:image/svg+xml;utf8,"; var m5 = "data:image/svg+xml;utf8,"; var d5 = "data:image/svg+xml;utf8,"; var x5 = "data:image/svg+xml;utf8,"; var h8 = "data:image/svg+xml;utf8,"; var p5 = "data:image/svg+xml;utf8,"; var u7 = "data:image/svg+xml;utf8,"; var k3 = "data:image/svg+xml;utf8,"; var f6 = "data:image/svg+xml;utf8,"; var M5 = "data:image/svg+xml;utf8,"; var B4 = "data:image/svg+xml;utf8,"; var j3 = "data:image/svg+xml;utf8,"; var Z2 = "data:image/svg+xml;utf8,"; // node_modules/@ionic/core/components/p-YLXPWgVj.js var e8; var c9 = (o14, t17, n15, i16, r32) => (n15 = "ios" === (n15 && h9(n15)) ? "ios" : "md", i16 && "ios" === n15 ? o14 = h9(i16) : r32 && "md" === n15 ? o14 = h9(r32) : (o14 || !t17 || a8(t17) || (o14 = t17), d6(o14) && (o14 = h9(o14))), d6(o14) && "" !== o14.trim() ? "" !== o14.replace(/[a-z]|-|\d/gi, "") ? null : o14 : null); var l8 = (o14) => d6(o14) && (o14 = o14.trim(), a8(o14)) ? o14 : null; var a8 = (o14) => o14.length > 0 && /(\/|\.)/.test(o14); var d6 = (o14) => "string" == typeof o14; var h9 = (o14) => o14.toLowerCase(); var f7 = (o14) => { if (1 === o14.nodeType) { if ("script" === o14.nodeName.toLowerCase()) return false; for (let t17 = 0; t17 < o14.attributes.length; t17++) { const n15 = o14.attributes[t17].name; if (d6(n15) && 0 === n15.toLowerCase().indexOf("on")) return false; } for (let t17 = 0; t17 < o14.childNodes.length; t17++) if (!f7(o14.childNodes[t17])) return false; } return true; }; var u8 = /* @__PURE__ */ new Map(); var m6 = /* @__PURE__ */ new Map(); var p6; function g4(o14) { return u8.set(o14, ""), ""; } var w5 = Dn(class extends I { constructor(o14) { super(), false !== o14 && this.__registerHost(), this.__attachShadow(), this.iconName = null, this.inheritedAttributes = {}, this.didLoadIcon = false, this.isVisible = false, this.mode = b5(), this.lazy = false, this.sanitize = true; } componentWillLoad() { this.inheritedAttributes = ((o14, t17 = []) => { const n15 = {}; return t17.forEach(((t18) => { o14.hasAttribute(t18) && (null !== o14.getAttribute(t18) && (n15[t18] = o14.getAttribute(t18)), o14.removeAttribute(t18)); })), n15; })(this.el, ["aria-label"]); } connectedCallback() { this.waitUntilVisible(this.el, "50px", (() => { this.isVisible = true, this.loadIcon(); })); } componentDidLoad() { this.didLoadIcon || this.loadIcon(); } disconnectedCallback() { this.io && (this.io.disconnect(), this.io = void 0); } waitUntilVisible(o14, t17, n15) { if (!Boolean(this.lazy && "undefined" != typeof window && window.IntersectionObserver)) return n15(); const i16 = this.io = new window.IntersectionObserver(((o15) => { o15[0].isIntersecting && (i16.disconnect(), this.io = void 0, n15()); }), { rootMargin: t17 }); i16.observe(o14); } loadIcon() { if (this.isVisible) { const t17 = ((t18) => { let n15 = l8(t18.src); if (n15) return n15; if (n15 = c9(t18.name, t18.icon, t18.mode, t18.ios, t18.md), n15) return ((t19, n16) => { const i16 = (() => { if ("undefined" == typeof window) return /* @__PURE__ */ new Map(); if (!e8) { const o14 = window; o14.Ionicons = o14.Ionicons || {}, e8 = o14.Ionicons.map = o14.Ionicons.map || /* @__PURE__ */ new Map(); } return e8; })().get(t19); if (i16) return i16; try { return q(`svg/${t19}.svg`); } catch (o14) { console.log("e", o14), console.warn(`[Ionicons Warning]: Could not load icon with name "${t19}". Ensure that the icon is registered using addIcons or that the icon SVG data is passed directly to the icon component.`, n16); } })(n15, t18); if (t18.icon) { if (n15 = l8(t18.icon), n15) return n15; if (n15 = l8(t18.icon[t18.mode]), n15) return n15; } return null; })(this); t17 && (u8.has(t17) ? this.svgContent = u8.get(t17) : ((o14, t18) => m6.get(o14) || ("undefined" != typeof fetch && "undefined" != typeof document ? ((o15) => o15.startsWith("data:image/svg+xml"))(o14) && ((o15) => -1 !== o15.indexOf(";utf8,"))(o14) ? Promise.resolve((function(o15) { p6 || (p6 = new DOMParser()); const t19 = p6.parseFromString(o15, "text/html").querySelector("svg"); if (t19) return u8.set(o15, t19.outerHTML), t19.outerHTML; throw new Error(`Could not parse svg from ${o15}`); })(o14)) : (function(o15, t19) { const n15 = fetch(o15).then(((n16) => n16.text().then(((n17) => { n17 && false !== t19 && (n17 = ((o16) => { const t20 = document.createElement("div"); t20.innerHTML = o16; for (let o17 = t20.childNodes.length - 1; o17 >= 0; o17--) "svg" !== t20.childNodes[o17].nodeName.toLowerCase() && t20.removeChild(t20.childNodes[o17]); const n18 = t20.firstElementChild; if (n18 && "svg" === n18.nodeName.toLowerCase()) { const o17 = n18.getAttribute("class") || ""; if (n18.setAttribute("class", (o17 + " s-ion-icon").trim()), f7(n18)) return t20.innerHTML; } return ""; })(n17)); const i16 = n17 || ""; return u8.set(o15, i16), i16; })).catch((() => g4(o15))))).catch((() => g4(o15))); return m6.set(o15, n15), n15; })(o14, t18) : Promise.resolve(g4(o14))))(t17, this.sanitize).then((() => this.svgContent = u8.get(t17))), this.didLoadIcon = true); } this.iconName = c9(this.name, this.icon, this.mode, this.ios, this.md); } render() { const { flipRtl: o14, iconName: t17, inheritedAttributes: n15, el: s23 } = this, e16 = this.mode || "md", c36 = !!t17 && (t17.includes("arrow") || t17.includes("chevron")) && false !== o14, l27 = o14 || c36; return Ct(It, Object.assign({ key: "0578c899781ca145dd8205acd9670af39b57cf2e", role: "img", class: Object.assign(Object.assign({ [e16]: true }, v6(this.color)), { [`icon-${this.size}`]: !!this.size, "flip-rtl": l27, "icon-rtl": l27 && (a17 = s23, a17 && "" !== a17.dir ? "rtl" === a17.dir.toLowerCase() : "rtl" === (null === document || void 0 === document ? void 0 : document.dir.toLowerCase())) }) }, n15), Ct("div", this.svgContent ? { class: "icon-inner", innerHTML: this.svgContent } : { class: "icon-inner" })); var a17; } static get assetsDirs() { return ["svg"]; } get el() { return this; } static get watchers() { return { name: [{ loadIcon: 0 }], src: [{ loadIcon: 0 }], icon: [{ loadIcon: 0 }], ios: [{ loadIcon: 0 }], md: [{ loadIcon: 0 }] }; } static get style() { return ":host{display:inline-block;width:1em;height:1em;contain:strict;fill:currentColor;-webkit-box-sizing:content-box !important;box-sizing:content-box !important}:host .ionicon{stroke:currentColor}.ionicon-fill-none{fill:none}.ionicon-stroke-width{stroke-width:var(--ionicon-stroke-width, 32px)}.icon-inner,.ionicon,svg{display:block;height:100%;width:100%}@supports (background: -webkit-named-image(i)){:host(.icon-rtl) .icon-inner{-webkit-transform:scaleX(-1);transform:scaleX(-1)}}@supports not selector(:dir(rtl)) and selector(:host-context([dir='rtl'])){:host(.icon-rtl) .icon-inner{-webkit-transform:scaleX(-1);transform:scaleX(-1)}}:host(.flip-rtl):host-context([dir='rtl']) .icon-inner{-webkit-transform:scaleX(-1);transform:scaleX(-1)}@supports selector(:dir(rtl)){:host(.flip-rtl:dir(rtl)) .icon-inner{-webkit-transform:scaleX(-1);transform:scaleX(-1)}:host(.flip-rtl:dir(ltr)) .icon-inner{-webkit-transform:scaleX(1);transform:scaleX(1)}}:host(.icon-small){font-size:1.125rem !important}:host(.icon-large){font-size:2rem !important}:host(.ion-color){color:var(--ion-color-base) !important}:host(.ion-color-primary){--ion-color-base:var(--ion-color-primary, #3880ff)}:host(.ion-color-secondary){--ion-color-base:var(--ion-color-secondary, #0cd1e8)}:host(.ion-color-tertiary){--ion-color-base:var(--ion-color-tertiary, #f4a942)}:host(.ion-color-success){--ion-color-base:var(--ion-color-success, #10dc60)}:host(.ion-color-warning){--ion-color-base:var(--ion-color-warning, #ffce00)}:host(.ion-color-danger){--ion-color-base:var(--ion-color-danger, #f14141)}:host(.ion-color-light){--ion-color-base:var(--ion-color-light, #f4f5f8)}:host(.ion-color-medium){--ion-color-base:var(--ion-color-medium, #989aa2)}:host(.ion-color-dark){--ion-color-base:var(--ion-color-dark, #222428)}"; } }, [1, "ion-icon", { mode: [1025], color: [1], ios: [1], md: [1], flipRtl: [4, "flip-rtl"], name: [513], src: [1], icon: [8], size: [1], lazy: [4], sanitize: [4], svgContent: [32], isVisible: [32] }, void 0, { name: [{ loadIcon: 0 }], src: [{ loadIcon: 0 }], icon: [{ loadIcon: 0 }], ios: [{ loadIcon: 0 }], md: [{ loadIcon: 0 }] }]); var b5 = () => "undefined" != typeof document && document.documentElement.getAttribute("mode") || "md"; var v6 = (o14) => o14 ? { "ion-color": true, [`ion-color-${o14}`]: true } : null; function y6() { "undefined" != typeof customElements && ["ion-icon"].forEach(((o14) => { "ion-icon" === o14 && (customElements.get(Zn(o14)) || customElements.define(Zn(o14), w5)); })); } // node_modules/@ionic/core/components/p-fpbh6w3f.js var m7 = Dn(class extends I { constructor(t17) { super(), false !== t17 && this.__registerHost(), this.__attachShadow(), this.type = "bounded"; } addRipple(t17, n15) { return __async(this, null, function* () { return new Promise(((e16) => { W((() => { const i16 = this.el.getBoundingClientRect(), o14 = i16.width, r32 = i16.height, s23 = Math.sqrt(o14 * o14 + r32 * r32), m28 = Math.max(r32, o14), p33 = this.unbounded ? m28 : s23 + f8, u21 = Math.floor(m28 * l9), d25 = p33 / u21; let b21 = t17 - i16.left, k12 = n15 - i16.top; this.unbounded && (b21 = 0.5 * o14, k12 = 0.5 * r32); const w12 = b21 - 0.5 * u21, y14 = k12 - 0.5 * u21, h21 = 0.5 * o14 - b21, g20 = 0.5 * r32 - k12; P((() => { const t18 = document.createElement("div"); t18.classList.add("ripple-effect"); const n16 = t18.style; n16.top = y14 + "px", n16.left = w12 + "px", n16.width = n16.height = u21 + "px", n16.setProperty("--final-scale", `${d25}`), n16.setProperty("--translate-end", `${h21}px, ${g20}px`), (this.el.shadowRoot || this.el).appendChild(t18), setTimeout((() => { e16((() => { c10(t18); })); }), 325); })); })); })); }); } get unbounded() { return "unbounded" === this.type; } render() { const t17 = g(this); return Ct(It, { key: "3b59cbb44741569a7350f9638b4392add673b6f1", role: "presentation", class: { [t17]: true, unbounded: this.unbounded } }); } get el() { return this; } static get style() { return ":host{left:0;right:0;top:0;bottom:0;position:absolute;contain:strict;pointer-events:none}:host(.unbounded){contain:layout size style}.ripple-effect{border-radius:50%;position:absolute;background-color:currentColor;color:inherit;contain:strict;opacity:0;-webkit-animation:225ms rippleAnimation forwards, 75ms fadeInAnimation forwards;animation:225ms rippleAnimation forwards, 75ms fadeInAnimation forwards;will-change:transform, opacity;pointer-events:none}.fade-out{-webkit-transform:translate(var(--translate-end)) scale(var(--final-scale, 1));transform:translate(var(--translate-end)) scale(var(--final-scale, 1));-webkit-animation:150ms fadeOutAnimation forwards;animation:150ms fadeOutAnimation forwards}@-webkit-keyframes rippleAnimation{from{-webkit-animation-timing-function:cubic-bezier(0.4, 0, 0.2, 1);animation-timing-function:cubic-bezier(0.4, 0, 0.2, 1);-webkit-transform:scale(1);transform:scale(1)}to{-webkit-transform:translate(var(--translate-end)) scale(var(--final-scale, 1));transform:translate(var(--translate-end)) scale(var(--final-scale, 1))}}@keyframes rippleAnimation{from{-webkit-animation-timing-function:cubic-bezier(0.4, 0, 0.2, 1);animation-timing-function:cubic-bezier(0.4, 0, 0.2, 1);-webkit-transform:scale(1);transform:scale(1)}to{-webkit-transform:translate(var(--translate-end)) scale(var(--final-scale, 1));transform:translate(var(--translate-end)) scale(var(--final-scale, 1))}}@-webkit-keyframes fadeInAnimation{from{-webkit-animation-timing-function:linear;animation-timing-function:linear;opacity:0}to{opacity:0.16}}@keyframes fadeInAnimation{from{-webkit-animation-timing-function:linear;animation-timing-function:linear;opacity:0}to{opacity:0.16}}@-webkit-keyframes fadeOutAnimation{from{-webkit-animation-timing-function:linear;animation-timing-function:linear;opacity:0.16}to{opacity:0}}@keyframes fadeOutAnimation{from{-webkit-animation-timing-function:linear;animation-timing-function:linear;opacity:0.16}to{opacity:0}}"; } }, [1, "ion-ripple-effect", { type: [1], addRipple: [64] }]); var c10 = (t17) => { t17.classList.add("fade-out"), setTimeout((() => { t17.remove(); }), 200); }; var f8 = 10; var l9 = 0.5; function p7() { "undefined" != typeof customElements && ["ion-ripple-effect"].forEach(((t17) => { "ion-ripple-effect" === t17 && (customElements.get(Zn(t17)) || customElements.define(Zn(t17), m7)); })); } // node_modules/@ionic/core/components/ion-back-button.js var m8 = Dn(class extends I { constructor(t17) { super(), false !== t17 && this.__registerHost(), this.__attachShadow(), this.inheritedAttributes = {}, this.disabled = false, this.type = "button", this.onClick = (t18) => __async(this, null, function* () { const n15 = this.el.closest("ion-nav"); return t18.preventDefault(), n15 && (yield n15.canGoBack()) ? n15.pop({ animationBuilder: this.routerAnimation, skipIfBusy: true }) : l6(this.defaultHref, t18, "back", this.routerAnimation); }); } componentWillLoad() { this.inheritedAttributes = s2(this.el), void 0 === this.defaultHref && (this.defaultHref = n.get("backButtonDefaultHref")); } get backButtonIcon() { const t17 = this.icon; return null != t17 ? t17 : "ios" === g(this) ? n.get("backButtonIcon", l7) : n.get("backButtonIcon", s9); } get backButtonText() { const t17 = "ios" === g(this) ? "Back" : null; return null != this.text ? this.text : n.get("backButtonText", t17); } get hasIconOnly() { return this.backButtonIcon && !this.backButtonText; } get rippleType() { return this.hasIconOnly ? "unbounded" : "bounded"; } render() { const { color: t17, defaultHref: n15, disabled: o14, type: a17, hasIconOnly: r32, backButtonIcon: d25, backButtonText: l27, icon: p33, inheritedAttributes: b21 } = this, h21 = void 0 !== n15, m28 = g(this), u21 = b21["aria-label"] || l27 || "back"; return Ct(It, { key: "5466624a10f1ab56f5469e6dc07080303880f2fe", onClick: this.onClick, class: o6(t17, { [m28]: true, button: true, "back-button-disabled": o14, "back-button-has-icon-only": r32, "in-toolbar": n5("ion-toolbar", this.el), "in-toolbar-color": n5("ion-toolbar[color]", this.el), "ion-activatable": true, "ion-focusable": true, "show-back-button": h21 }) }, Ct("button", { key: "63bc75ef0ad7cc9fb79e58217a3314b20acd73e3", type: a17, disabled: o14, class: "button-native", part: "native", "aria-label": u21 }, Ct("span", { key: "5d3eacbd11af2245c6e1151cab446a0d96559ad8", class: "button-inner" }, d25 && Ct("ion-icon", { key: "6439af0ae463764174e7d3207f02267811df666d", part: "icon", icon: d25, "aria-hidden": "true", lazy: false, "flip-rtl": void 0 === p33 }), l27 && Ct("span", { key: "8ee89fb18dfdb5b75948a8b197ff4cdbc008742f", part: "text", "aria-hidden": "true", class: "button-text" }, l27)), "md" === m28 && Ct("ion-ripple-effect", { key: "63803a884998bc73bea5afe0b2a0a14e3fa4d6bf", type: this.rippleType }))); } get el() { return this; } static get style() { return { ios: ':host{--background:transparent;--color-focused:currentColor;--color-hover:currentColor;--icon-margin-top:0;--icon-margin-bottom:0;--icon-padding-top:0;--icon-padding-end:0;--icon-padding-bottom:0;--icon-padding-start:0;--margin-top:0;--margin-end:0;--margin-bottom:0;--margin-start:0;--min-width:auto;--min-height:auto;--padding-top:0;--padding-end:0;--padding-bottom:0;--padding-start:0;--opacity:1;--ripple-color:currentColor;--transition:background-color, opacity 100ms linear;display:none;min-width:var(--min-width);min-height:var(--min-height);color:var(--color);font-family:var(--ion-font-family, inherit);text-align:center;text-decoration:none;text-overflow:ellipsis;text-transform:none;white-space:nowrap;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;-webkit-font-kerning:none;font-kerning:none}ion-ripple-effect{color:var(--ripple-color)}:host(.ion-color) .button-native{color:var(--ion-color-base)}:host(.show-back-button){display:block}:host(.back-button-disabled){cursor:default;opacity:0.5;pointer-events:none}.button-native{border-radius:var(--border-radius);-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;-webkit-margin-start:var(--margin-start);margin-inline-start:var(--margin-start);-webkit-margin-end:var(--margin-end);margin-inline-end:var(--margin-end);margin-top:var(--margin-top);margin-bottom:var(--margin-bottom);-webkit-padding-start:var(--padding-start);padding-inline-start:var(--padding-start);-webkit-padding-end:var(--padding-end);padding-inline-end:var(--padding-end);padding-top:var(--padding-top);padding-bottom:var(--padding-bottom);font-family:inherit;font-size:inherit;font-style:inherit;font-weight:inherit;letter-spacing:inherit;text-decoration:inherit;text-indent:inherit;text-overflow:inherit;text-transform:inherit;text-align:inherit;white-space:inherit;color:inherit;display:block;position:relative;width:100%;height:100%;min-height:inherit;-webkit-transition:var(--transition);transition:var(--transition);border:0;outline:none;background:var(--background);line-height:1;cursor:pointer;opacity:var(--opacity);overflow:hidden;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;z-index:0;-webkit-appearance:none;-moz-appearance:none;appearance:none}.button-inner{display:-ms-flexbox;display:flex;position:relative;-ms-flex-flow:row nowrap;flex-flow:row nowrap;-ms-flex-negative:0;flex-shrink:0;-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center;width:100%;height:100%;z-index:1}ion-icon{-webkit-padding-start:var(--icon-padding-start);padding-inline-start:var(--icon-padding-start);-webkit-padding-end:var(--icon-padding-end);padding-inline-end:var(--icon-padding-end);padding-top:var(--icon-padding-top);padding-bottom:var(--icon-padding-bottom);-webkit-margin-start:var(--icon-margin-start);margin-inline-start:var(--icon-margin-start);-webkit-margin-end:var(--icon-margin-end);margin-inline-end:var(--icon-margin-end);margin-top:var(--icon-margin-top);margin-bottom:var(--icon-margin-bottom);display:inherit;font-size:var(--icon-font-size);font-weight:var(--icon-font-weight);pointer-events:none}:host(.ion-focused) .button-native{color:var(--color-focused)}:host(.ion-focused) .button-native::after{background:var(--background-focused);opacity:var(--background-focused-opacity)}.button-native::after{left:0;right:0;top:0;bottom:0;position:absolute;content:"";opacity:0}@media (any-hover: hover){:host(:hover) .button-native{color:var(--color-hover)}:host(:hover) .button-native::after{background:var(--background-hover);opacity:var(--background-hover-opacity)}}:host(.ion-color.ion-focused) .button-native{color:var(--ion-color-base)}@media (any-hover: hover){:host(.ion-color:hover) .button-native{color:var(--ion-color-base)}}:host(.in-toolbar:not(.in-toolbar-color)){color:var(--ion-toolbar-color, var(--color))}:host{--background-hover:transparent;--background-hover-opacity:1;--background-focused:currentColor;--background-focused-opacity:.1;--border-radius:4px;--color:var(--ion-color-primary, #0054e9);--icon-margin-end:1px;--icon-margin-start:-4px;--icon-font-size:1.6em;--min-height:32px;font-size:clamp(17px, 1.0625rem, 21.998px)}.button-native{-webkit-transform:translateZ(0);transform:translateZ(0);overflow:visible;z-index:99}:host(.ion-activated) .button-native{opacity:0.4}@media (any-hover: hover){:host(:hover){opacity:0.6}}', md: ':host{--background:transparent;--color-focused:currentColor;--color-hover:currentColor;--icon-margin-top:0;--icon-margin-bottom:0;--icon-padding-top:0;--icon-padding-end:0;--icon-padding-bottom:0;--icon-padding-start:0;--margin-top:0;--margin-end:0;--margin-bottom:0;--margin-start:0;--min-width:auto;--min-height:auto;--padding-top:0;--padding-end:0;--padding-bottom:0;--padding-start:0;--opacity:1;--ripple-color:currentColor;--transition:background-color, opacity 100ms linear;display:none;min-width:var(--min-width);min-height:var(--min-height);color:var(--color);font-family:var(--ion-font-family, inherit);text-align:center;text-decoration:none;text-overflow:ellipsis;text-transform:none;white-space:nowrap;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;-webkit-font-kerning:none;font-kerning:none}ion-ripple-effect{color:var(--ripple-color)}:host(.ion-color) .button-native{color:var(--ion-color-base)}:host(.show-back-button){display:block}:host(.back-button-disabled){cursor:default;opacity:0.5;pointer-events:none}.button-native{border-radius:var(--border-radius);-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;-webkit-margin-start:var(--margin-start);margin-inline-start:var(--margin-start);-webkit-margin-end:var(--margin-end);margin-inline-end:var(--margin-end);margin-top:var(--margin-top);margin-bottom:var(--margin-bottom);-webkit-padding-start:var(--padding-start);padding-inline-start:var(--padding-start);-webkit-padding-end:var(--padding-end);padding-inline-end:var(--padding-end);padding-top:var(--padding-top);padding-bottom:var(--padding-bottom);font-family:inherit;font-size:inherit;font-style:inherit;font-weight:inherit;letter-spacing:inherit;text-decoration:inherit;text-indent:inherit;text-overflow:inherit;text-transform:inherit;text-align:inherit;white-space:inherit;color:inherit;display:block;position:relative;width:100%;height:100%;min-height:inherit;-webkit-transition:var(--transition);transition:var(--transition);border:0;outline:none;background:var(--background);line-height:1;cursor:pointer;opacity:var(--opacity);overflow:hidden;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;z-index:0;-webkit-appearance:none;-moz-appearance:none;appearance:none}.button-inner{display:-ms-flexbox;display:flex;position:relative;-ms-flex-flow:row nowrap;flex-flow:row nowrap;-ms-flex-negative:0;flex-shrink:0;-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center;width:100%;height:100%;z-index:1}ion-icon{-webkit-padding-start:var(--icon-padding-start);padding-inline-start:var(--icon-padding-start);-webkit-padding-end:var(--icon-padding-end);padding-inline-end:var(--icon-padding-end);padding-top:var(--icon-padding-top);padding-bottom:var(--icon-padding-bottom);-webkit-margin-start:var(--icon-margin-start);margin-inline-start:var(--icon-margin-start);-webkit-margin-end:var(--icon-margin-end);margin-inline-end:var(--icon-margin-end);margin-top:var(--icon-margin-top);margin-bottom:var(--icon-margin-bottom);display:inherit;font-size:var(--icon-font-size);font-weight:var(--icon-font-weight);pointer-events:none}:host(.ion-focused) .button-native{color:var(--color-focused)}:host(.ion-focused) .button-native::after{background:var(--background-focused);opacity:var(--background-focused-opacity)}.button-native::after{left:0;right:0;top:0;bottom:0;position:absolute;content:"";opacity:0}@media (any-hover: hover){:host(:hover) .button-native{color:var(--color-hover)}:host(:hover) .button-native::after{background:var(--background-hover);opacity:var(--background-hover-opacity)}}:host(.ion-color.ion-focused) .button-native{color:var(--ion-color-base)}@media (any-hover: hover){:host(.ion-color:hover) .button-native{color:var(--ion-color-base)}}:host(.in-toolbar:not(.in-toolbar-color)){color:var(--ion-toolbar-color, var(--color))}:host{--border-radius:4px;--background-focused:currentColor;--background-focused-opacity:.12;--background-hover:currentColor;--background-hover-opacity:0.04;--color:currentColor;--icon-margin-end:0;--icon-margin-start:0;--icon-font-size:1.5rem;--icon-font-weight:normal;--min-height:32px;--min-width:44px;--padding-start:12px;--padding-end:12px;font-size:0.875rem;font-weight:500;text-transform:uppercase}:host(.back-button-has-icon-only){--border-radius:50%;min-width:48px;min-height:48px;aspect-ratio:1/1}.button-native{-webkit-box-shadow:none;box-shadow:none}.button-text{-webkit-padding-start:4px;padding-inline-start:4px;-webkit-padding-end:4px;padding-inline-end:4px;padding-top:0;padding-bottom:0}ion-icon{line-height:0.67;text-align:start}@media (any-hover: hover){:host(.ion-color:hover) .button-native::after{background:var(--ion-color-base)}}:host(.ion-color.ion-focused) .button-native::after{background:var(--ion-color-base)}' }; } }, [33, "ion-back-button", { color: [513], defaultHref: [1025, "default-href"], disabled: [516], icon: [1], text: [1], type: [1], routerAnimation: [16] }]); var v7 = function() { "undefined" != typeof customElements && ["ion-back-button", "ion-icon", "ion-ripple-effect"].forEach(((t17) => { switch (t17) { case "ion-back-button": customElements.get(Zn(t17)) || customElements.define(Zn(t17), m8); break; case "ion-icon": customElements.get(Zn(t17)) || y6(); break; case "ion-ripple-effect": customElements.get(Zn(t17)) || p7(); } })); }; // node_modules/@ionic/core/components/p-B-hirT0v.js var t11 = () => { let t17; return { lock: () => __async(null, null, function* () { const e16 = t17; let n15; return t17 = new Promise(((t18) => n15 = t18)), void 0 !== e16 && (yield e16), n15; }) }; }; // node_modules/@ionic/core/components/ion-router-outlet.js var b6 = Dn(class extends I { constructor(t17) { super(), false !== t17 && this.__registerHost(), this.__attachShadow(), this.ionNavWillLoad = Jt(this, "ionNavWillLoad", 7), this.ionNavWillChange = Jt(this, "ionNavWillChange", 3), this.ionNavDidChange = Jt(this, "ionNavDidChange", 3), this.lockController = t11(), this.gestureOrAnimationInProgress = false, this.mode = g(this), this.animated = true; } swipeHandlerChanged() { this.gesture && this.gesture.enable(void 0 !== this.swipeHandler); } connectedCallback() { return __async(this, null, function* () { const t17 = () => { this.gestureOrAnimationInProgress = true, this.swipeHandler && this.swipeHandler.onStart(); }; this.gesture = (yield import("./chunk-D67GYD3B.js")).createSwipeBackGesture(this.el, (() => !this.gestureOrAnimationInProgress && !!this.swipeHandler && this.swipeHandler.canStart()), (() => t17()), ((t18) => { var i16; return null === (i16 = this.ani) || void 0 === i16 ? void 0 : i16.progressStep(t18); }), ((t18, i16, s23) => { if (this.ani) { this.ani.onFinish((() => { this.gestureOrAnimationInProgress = false, this.swipeHandler && this.swipeHandler.onEnd(t18); }), { oneTimeCallback: true }); let e16 = t18 ? -1e-3 : 1e-3; t18 ? e16 += t7([0, 0], [0.32, 0.72], [0, 1], [1, 1], i16)[0] : (this.ani.easing("cubic-bezier(1, 0, 0.68, 0.28)"), e16 += t7([0, 0], [1, 0], [0.68, 0.28], [1, 1], i16)[0]), this.ani.progressEnd(t18 ? 1 : 0, e16, s23); } else this.gestureOrAnimationInProgress = false; })), this.swipeHandlerChanged(); }); } componentWillLoad() { this.ionNavWillLoad.emit(); } disconnectedCallback() { this.gesture && (this.gesture.destroy(), this.gesture = void 0); } commit(t17, i16, s23) { return __async(this, null, function* () { const a17 = yield this.lockController.lock(); let o14 = false; try { o14 = yield this.transition(t17, i16, s23); } catch (t18) { f("[ion-router-outlet] - Exception in commit:", t18); } return a17(), o14; }); } setRouteId(t17, i16, s23, e16) { return __async(this, null, function* () { return { changed: yield this.setRoot(t17, i16, { duration: "root" === s23 ? 0 : void 0, direction: "back" === s23 ? "back" : "forward", animationBuilder: e16 }), element: this.activeEl }; }); } getRouteId() { return __async(this, null, function* () { const t17 = this.activeEl; return t17 ? { id: t17.tagName, element: t17, params: this.activeParams } : void 0; }); } setRoot(t17, i16, s23) { return __async(this, null, function* () { if (this.activeComponent === t17 && _(i16, this.activeParams)) return false; const e16 = this.activeEl, a17 = yield o8(this.delegate, this.el, t17, ["ion-page", "ion-page-invisible"], i16); return this.activeComponent = t17, this.activeEl = a17, this.activeParams = i16, yield this.commit(a17, e16, s23), yield t9(this.delegate, e16), true; }); } transition(_0, _1) { return __async(this, arguments, function* (t17, i16, s23 = {}) { if (i16 === t17) return false; this.ionNavWillChange.emit(); const { el: e16, mode: o14 } = this, n15 = this.animated && n.getBoolean("animated", true), h21 = s23.animationBuilder || this.animation || n.get("navAnimation"); return yield v2(Object.assign(Object.assign({ mode: o14, animated: n15, enteringEl: t17, leavingEl: i16, baseEl: e16, deepWait: t(e16), progressCallback: s23.progressAnimation ? (t18) => { void 0 === t18 || this.gestureOrAnimationInProgress ? this.ani = t18 : (this.gestureOrAnimationInProgress = true, t18.onFinish((() => { this.gestureOrAnimationInProgress = false, this.swipeHandler && this.swipeHandler.onEnd(false); }), { oneTimeCallback: true }), t18.progressEnd(0, 0, 0)); } : void 0 }, s23), { animationBuilder: h21 })), this.ionNavDidChange.emit(), true; }); } render() { return Ct("slot", { key: "386c41745b61daba161cf75063da97fe29ba36cb" }); } get el() { return this; } static get watchers() { return { swipeHandler: [{ swipeHandlerChanged: 0 }] }; } static get style() { return ":host{left:0;right:0;top:0;bottom:0;position:absolute;contain:layout size style;z-index:0}"; } }, [257, "ion-router-outlet", { mode: [1025], delegate: [16], animated: [4], animation: [16], swipeHandler: [16], commit: [64], setRouteId: [64], getRouteId: [64] }, void 0, { swipeHandler: [{ swipeHandlerChanged: 0 }] }]); var f9 = function() { "undefined" != typeof customElements && ["ion-router-outlet"].forEach(((t17) => { "ion-router-outlet" === t17 && (customElements.get(Zn(t17)) || customElements.define(Zn(t17), b6)); })); }; // node_modules/@ionic/core/components/p-CoA-aqGF.js var e9 = Dn(class extends I { constructor(o14) { super(), false !== o14 && this.__registerHost(), this.__attachShadow(), this.ionBackdropTap = Jt(this, "ionBackdropTap", 7), this.visible = true, this.tappable = true, this.stopPropagation = true; } onMouseDown(o14) { this.emitTap(o14); } emitTap(o14) { this.stopPropagation && (o14.preventDefault(), o14.stopPropagation()), this.tappable && this.ionBackdropTap.emit(); } render() { const o14 = g(this); return Ct(It, { key: "7abaf2c310aa399607451b14063265e8a5846938", "aria-hidden": "true", class: { [o14]: true, "backdrop-hide": !this.visible, "backdrop-no-tappable": !this.tappable } }); } static get style() { return { ios: ":host{left:0;right:0;top:0;bottom:0;display:block;position:absolute;-webkit-transform:translateZ(0);transform:translateZ(0);contain:strict;cursor:pointer;opacity:0.01;-ms-touch-action:none;touch-action:none;z-index:2}:host(.backdrop-hide){background:transparent}:host(.backdrop-no-tappable){cursor:auto}:host{background-color:var(--ion-backdrop-color, #000)}", md: ":host{left:0;right:0;top:0;bottom:0;display:block;position:absolute;-webkit-transform:translateZ(0);transform:translateZ(0);contain:strict;cursor:pointer;opacity:0.01;-ms-touch-action:none;touch-action:none;z-index:2}:host(.backdrop-hide){background:transparent}:host(.backdrop-no-tappable){cursor:auto}:host{background-color:var(--ion-backdrop-color, #000)}" }; } }, [33, "ion-backdrop", { visible: [4], tappable: [4], stopPropagation: [4, "stop-propagation"] }, [[2, "click", "onMouseDown"]]]); function c11() { "undefined" != typeof customElements && ["ion-backdrop"].forEach(((o14) => { "ion-backdrop" === o14 && (customElements.get(Zn(o14)) || customElements.define(Zn(o14), e9)); })); } // node_modules/@ionic/core/components/p-BVnB3eEn.js var Z3; !(function(t17) { t17.Dark = "DARK", t17.Light = "LIGHT", t17.Default = "DEFAULT"; })(Z3 || (Z3 = {})); var G3 = { getEngine() { const t17 = r3(); if (null == t17 ? void 0 : t17.isPluginAvailable("StatusBar")) return t17.Plugins.StatusBar; }, setStyle(t17) { const i16 = this.getEngine(); i16 && i16.setStyle(t17); }, getStyle: function() { return __async(this, null, function* () { const t17 = this.getEngine(); if (!t17) return Z3.Default; const { style: i16 } = yield t17.getInfo(); return i16; }); } }; var K3 = (t17, i16) => { if (1 === i16) return 0; const o14 = 1 / (1 - i16); return t17 * o14 + -i16 * o14; }; var U2 = () => { !d || d.innerWidth >= 768 || G3.setStyle({ style: Z3.Dark }); }; var q4 = (t17 = Z3.Default) => { !d || d.innerWidth >= 768 || G3.setStyle({ style: t17 }); }; var J2 = (t17, i16) => __async(null, null, function* () { "function" == typeof t17.canDismiss && (yield t17.canDismiss(void 0, K2)) && (i16.isRunning() ? i16.onFinish((() => { t17.dismiss(void 0, "handler"); }), { oneTimeCallback: true }) : t17.dismiss(void 0, "handler")); }); var X3 = (t17) => 255275e-8 * 2.71828 ** (-14.9619 * t17) - 1.00255 * 2.71828 ** (-0.0380968 * t17) + 1; var _3 = 0.915; var Q3 = (t17, i16) => b(400, t17 / Math.abs(1.1 * i16), 500); var tt = (t17, i16) => { const o14 = window.innerHeight, e16 = t17.getBoundingClientRect().top, a17 = Math.round(1e3 * (1 - i16 / (o14 - e16))) / 1e3; return Math.max(0, Math.min(1, a17)); }; var it = (t17) => { const { currentBreakpoint: i16, backdropBreakpoint: o14, expandToScroll: e16 } = t17, a17 = void 0 === o14 || o14 < i16, r32 = a17 ? `calc(var(--backdrop-opacity) * ${i16})` : "0", s23 = r("backdropAnimation").fromTo("opacity", 0, r32); return a17 && s23.beforeStyles({ "pointer-events": "none" }).afterClearStyles(["pointer-events"]), { wrapperAnimation: r("wrapperAnimation").keyframes([{ offset: 0, opacity: 1, transform: "translateY(100%)" }, { offset: 1, opacity: 1, transform: `translateY(${100 - 100 * i16}%)` }]), backdropAnimation: s23, contentAnimation: e16 ? void 0 : r("contentAnimation").keyframes([{ offset: 0, opacity: 1, maxHeight: 100 * (1 - i16) + "%" }, { offset: 1, opacity: 1, maxHeight: 100 * i16 + "%" }]) }; }; var ot = (t17) => { const { currentBreakpoint: i16, backdropBreakpoint: o14 } = t17, e16 = `calc(var(--backdrop-opacity) * ${K3(i16, o14)})`, a17 = [{ offset: 0, opacity: e16 }, { offset: 1, opacity: 0 }], r32 = [{ offset: 0, opacity: e16 }, { offset: o14, opacity: 0 }, { offset: 1, opacity: 0 }], s23 = r("backdropAnimation").keyframes(0 !== o14 ? r32 : a17); return { wrapperAnimation: r("wrapperAnimation").keyframes([{ offset: 0, opacity: 1, transform: `translateY(${100 - 100 * i16}%)` }, { offset: 1, opacity: 1, transform: "translateY(100%)" }]), backdropAnimation: s23 }; }; var et = (t17, i16) => { const { presentingEl: o14, currentBreakpoint: e16, expandToScroll: a17 } = i16, r32 = c(t17), { wrapperAnimation: s23, backdropAnimation: n15, contentAnimation: d25 } = void 0 !== e16 ? it(i16) : { backdropAnimation: r().fromTo("opacity", 0.01, "var(--backdrop-opacity)").beforeStyles({ "pointer-events": "none" }).afterClearStyles(["pointer-events"]), wrapperAnimation: r().fromTo("transform", "translateY(100vh)", "translateY(0vh)"), contentAnimation: void 0 }; n15.addElement(r32.querySelector("ion-backdrop")), s23.addElement(r32.querySelectorAll(".modal-wrapper, .modal-shadow")).beforeStyles({ opacity: 1 }), !a17 && (null == d25 || d25.addElement(t17.querySelector(".ion-page"))); const h21 = r("entering-base").addElement(t17).easing("cubic-bezier(0.32,0.72,0,1)").duration(500).addAnimation([s23]); if (d25 && h21.addAnimation(d25), o14) { const t18 = window.innerWidth < 768, i17 = "ION-MODAL" === o14.tagName && void 0 !== o14.presentingElement, e17 = c(o14), a18 = r().beforeStyles({ transform: "translateY(0)", "transform-origin": "top center", overflow: "hidden" }), r33 = document.body; if (t18) { const t19 = CSS.supports("width", "max(0px, 1px)") ? "max(30px, var(--ion-safe-area-top))" : "30px", e18 = `translateY(${i17 ? "-10px" : t19}) scale(0.915)`; a18.afterStyles({ transform: e18 }).beforeAddWrite((() => r33.style.setProperty("background-color", "black"))).addElement(o14).keyframes([{ offset: 0, filter: "contrast(1)", transform: "translateY(0px) scale(1)", borderRadius: "0px" }, { offset: 1, filter: "contrast(0.85)", transform: e18, borderRadius: "10px 10px 0 0" }]), h21.addAnimation(a18); } else if (h21.addAnimation(n15), i17) { const t19 = `translateY(-10px) scale(${i17 ? _3 : 1})`; a18.afterStyles({ transform: t19 }).addElement(e17.querySelector(".modal-wrapper")).keyframes([{ offset: 0, filter: "contrast(1)", transform: "translateY(0) scale(1)" }, { offset: 1, filter: "contrast(0.85)", transform: t19 }]); const o15 = r().afterStyles({ transform: t19 }).addElement(e17.querySelector(".modal-shadow")).keyframes([{ offset: 0, opacity: "1", transform: "translateY(0) scale(1)" }, { offset: 1, opacity: "0", transform: t19 }]); h21.addAnimation([a18, o15]); } else s23.fromTo("opacity", "0", "1"); } else h21.addAnimation(n15); return h21; }; var at = (t17, i16, o14 = 500) => { const { presentingEl: e16, currentBreakpoint: a17 } = i16, r32 = c(t17), { wrapperAnimation: s23, backdropAnimation: n15 } = void 0 !== a17 ? ot(i16) : { backdropAnimation: r().fromTo("opacity", "var(--backdrop-opacity)", 0), wrapperAnimation: r().fromTo("transform", "translateY(0vh)", "translateY(100vh)") }; n15.addElement(r32.querySelector("ion-backdrop")), s23.addElement(r32.querySelectorAll(".modal-wrapper, .modal-shadow")).beforeStyles({ opacity: 1 }); const d25 = r("leaving-base").addElement(t17).easing("cubic-bezier(0.32,0.72,0,1)").duration(o14).addAnimation(s23); if (e16) { const t18 = window.innerWidth < 768, i17 = "ION-MODAL" === e16.tagName && void 0 !== e16.presentingElement, o15 = c(e16), a18 = r().beforeClearStyles(["transform"]).afterClearStyles(["transform"]).onFinish(((t19) => { 1 === t19 && (e16.style.setProperty("overflow", ""), Array.from(r33.querySelectorAll("ion-modal:not(.overlay-hidden)")).filter(((t20) => void 0 !== t20.presentingElement)).length <= 1 && r33.style.setProperty("background-color", "")); })), r33 = document.body; if (t18) { const t19 = CSS.supports("width", "max(0px, 1px)") ? "max(30px, var(--ion-safe-area-top))" : "30px", o16 = `translateY(${i17 ? "-10px" : t19}) scale(0.915)`; a18.addElement(e16).keyframes([{ offset: 0, filter: "contrast(0.85)", transform: o16, borderRadius: "10px 10px 0 0" }, { offset: 1, filter: "contrast(1)", transform: "translateY(0px) scale(1)", borderRadius: "0px" }]), d25.addAnimation(a18); } else if (d25.addAnimation(n15), i17) { const t19 = `translateY(-10px) scale(${i17 ? _3 : 1})`; a18.addElement(o15.querySelector(".modal-wrapper")).afterStyles({ transform: "translate3d(0, 0, 0)" }).keyframes([{ offset: 0, filter: "contrast(0.85)", transform: t19 }, { offset: 1, filter: "contrast(1)", transform: "translateY(0) scale(1)" }]); const e17 = r().addElement(o15.querySelector(".modal-shadow")).afterStyles({ transform: "translateY(0) scale(1)" }).keyframes([{ offset: 0, opacity: "0", transform: t19 }, { offset: 1, opacity: "1", transform: "translateY(0) scale(1)" }]); d25.addAnimation([a18, e17]); } else s23.fromTo("opacity", "1", "0"); } else d25.addAnimation(n15); return d25; }; var rt = (t17, i16) => { const { currentBreakpoint: o14, expandToScroll: e16 } = i16, a17 = c(t17), { wrapperAnimation: r32, backdropAnimation: s23, contentAnimation: n15 } = void 0 !== o14 ? it(i16) : { backdropAnimation: r().fromTo("opacity", 0.01, "var(--backdrop-opacity)").beforeStyles({ "pointer-events": "none" }).afterClearStyles(["pointer-events"]), wrapperAnimation: r().keyframes([{ offset: 0, opacity: 0.01, transform: "translateY(40px)" }, { offset: 1, opacity: 1, transform: "translateY(0px)" }]), contentAnimation: void 0 }; s23.addElement(a17.querySelector("ion-backdrop")), r32.addElement(a17.querySelector(".modal-wrapper")), !e16 && (null == n15 || n15.addElement(t17.querySelector(".ion-page"))); const d25 = r().addElement(t17).easing("cubic-bezier(0.36,0.66,0.04,1)").duration(280).addAnimation([s23, r32]); return n15 && d25.addAnimation(n15), d25; }; var st = (t17, i16) => { const { currentBreakpoint: o14 } = i16, e16 = c(t17), { wrapperAnimation: a17, backdropAnimation: r32 } = void 0 !== o14 ? ot(i16) : { backdropAnimation: r().fromTo("opacity", "var(--backdrop-opacity)", 0), wrapperAnimation: r().keyframes([{ offset: 0, opacity: 0.99, transform: "translateY(0px)" }, { offset: 1, opacity: 0, transform: "translateY(40px)" }]) }; return r32.addElement(e16.querySelector("ion-backdrop")), a17.addElement(e16.querySelector(".modal-wrapper")), r().easing("cubic-bezier(0.47,0,0.745,0.715)").duration(200).addAnimation([r32, a17]); }; var nt = null; var dt = false; var ht = (t17, i16) => { t17.style.setProperty("--ion-safe-area-top", i16.top), t17.style.setProperty("--ion-safe-area-bottom", i16.bottom), t17.style.setProperty("--ion-safe-area-left", i16.left), t17.style.setProperty("--ion-safe-area-right", i16.right); }; var lt = Dn(class extends I { constructor(t17) { super(), false !== t17 && this.__registerHost(), this.__attachShadow(), this.didPresent = Jt(this, "ionModalDidPresent", 7), this.willPresent = Jt(this, "ionModalWillPresent", 7), this.willDismiss = Jt(this, "ionModalWillDismiss", 7), this.didDismiss = Jt(this, "ionModalDidDismiss", 7), this.ionBreakpointDidChange = Jt(this, "ionBreakpointDidChange", 7), this.didPresentShorthand = Jt(this, "didPresent", 7), this.willPresentShorthand = Jt(this, "willPresent", 7), this.willDismissShorthand = Jt(this, "willDismiss", 7), this.didDismissShorthand = Jt(this, "didDismiss", 7), this.ionMount = Jt(this, "ionMount", 7), this.ionDragStart = Jt(this, "ionDragStart", 7), this.ionDragMove = Jt(this, "ionDragMove", 7), this.ionDragEnd = Jt(this, "ionDragEnd", 7), this.lockController = t11(), this.triggerController = Y2(), this.coreDelegate = i8(), this.isSheetModal = false, this.inheritedAttributes = {}, this.inline = false, this.gestureAnimationDismissing = false, this.presented = false, this.hasController = false, this.keyboardClose = true, this.expandToScroll = true, this.backdropBreakpoint = 0, this.handleBehavior = "none", this.backdropDismiss = true, this.showBackdrop = true, this.animated = true, this.isOpen = false, this.keepContentsMounted = false, this.focusTrap = true, this.canDismiss = true, this.onHandleClick = () => { const { sheetTransition: t18, handleBehavior: i16 } = this; "cycle" === i16 && void 0 === t18 && this.moveToNextBreakpoint(); }, this.onBackdropTap = () => { const { sheetTransition: t18 } = this; void 0 === t18 && this.dismiss(void 0, H3); }, this.onLifecycle = (t18) => { const i16 = this.usersElement, o14 = pt[t18.type]; if (i16 && o14) { const e16 = new CustomEvent(o14, { bubbles: false, cancelable: false, detail: t18.detail }); i16.dispatchEvent(e16); } }, this.onModalFocus = (t18) => { const { dragHandleEl: i16, el: o14 } = this; t18.target === o14 && i16 && -1 !== i16.tabIndex && i16.focus(); }, this.onSlotChange = ({ target: t18 }) => { t18.assignedElements().forEach(((t19) => { t19.querySelectorAll("ion-modal").forEach(((t20) => { null === t20.getAttribute("data-parent-ion-modal") && t20.setAttribute("data-parent-ion-modal", this.el.id); })); })); }; } onIsOpenChange(t17, i16) { true === t17 && false === i16 ? this.present() : false === t17 && true === i16 && this.dismiss(); } triggerChanged() { const { trigger: t17, el: i16, triggerController: o14 } = this; t17 && o14.addClickListener(i16, t17); } onWindowResize() { this.presented && (clearTimeout(this.resizeTimeout), this.resizeTimeout = setTimeout((() => { const t17 = this.getSafeAreaContext(); !t17.isCardModal || this.enterAnimation || this.leaveAnimation || this.handleViewTransition(), t17.isSheetModal && this.updateSheetOffsetTop(), t17.isSheetModal || t17.isCardModal || (this.updateSafeAreaOverrides(), this.wrapperEl && (this.wrapperEl.style.removeProperty("height"), this.wrapperEl.style.removeProperty("padding-bottom")), this.applyFullscreenSafeArea()); }), 50)); } breakpointsChanged(t17) { void 0 !== t17 && (this.sortedBreakpoints = t17.sort(((t18, i16) => t18 - i16))); } connectedCallback() { const { el: t17 } = this; I3(t17), this.triggerChanged(); } disconnectedCallback() { this.triggerController.removeClickListener(), this.cleanupViewTransitionListener(), this.cleanupParentRemovalObserver(), this.cleanupSafeAreaOverrides(); } componentWillLoad() { var t17; const { breakpoints: i16, initialBreakpoint: o14, el: a17, htmlAttributes: r32 } = this, s23 = this.isSheetModal = void 0 !== i16 && void 0 !== o14, n15 = ["aria-label", "role"]; this.inheritedAttributes = n2(a17, n15), a17.parentNode && (this.cachedOriginalParent = a17.parentNode), void 0 !== r32 && n15.forEach(((t18) => { r32[t18] && (this.inheritedAttributes = Object.assign(Object.assign({}, this.inheritedAttributes), { [t18]: r32[t18] }), delete r32[t18]); })), s23 && (this.currentBreakpoint = this.initialBreakpoint), void 0 === i16 || void 0 === o14 || i16.includes(o14) || u("[ion-modal] - Your breakpoints array must include the initialBreakpoint value."), (null === (t17 = this.htmlAttributes) || void 0 === t17 ? void 0 : t17.id) || N(this.el); } componentDidLoad() { true === this.isOpen && d2((() => this.present())), this.breakpointsChanged(this.breakpoints), this.triggerChanged(); } getDelegate(t17 = false) { if (this.workingDelegate && !t17) return { delegate: this.workingDelegate, inline: this.inline }; const i16 = this.inline = null !== this.el.parentNode && !this.hasController; return { inline: i16, delegate: this.workingDelegate = i16 ? this.delegate || this.coreDelegate : this.delegate }; } checkCanDismiss(t17, i16) { return __async(this, null, function* () { const { canDismiss: o14 } = this; return "function" == typeof o14 ? o14(t17, i16) : o14; }); } present() { return __async(this, null, function* () { const t17 = yield this.lockController.lock(); if (this.presented) return void t17(); const { presentingElement: i16, el: o14 } = this; this.currentBreakpoint = this.initialBreakpoint; const { inline: e16, delegate: r32 } = this.getDelegate(true); this.ionMount.emit(), this.usersElement = yield o8(r32, o14, this.component, ["ion-page"], this.componentProps, e16), t(o14) ? yield B(this.usersElement) : this.keepContentsMounted || (yield L()), P((() => this.el.classList.add("show-modal"))), this.isSheetModal = void 0 !== this.breakpoints && void 0 !== this.initialBreakpoint, this.setInitialSafeAreaOverrides(); const s23 = void 0 !== i16; s23 && "ios" === g(this) && (this.statusBarStyle = yield G3.getStyle(), U2()), yield $(this, "modalEnter", et, rt, { presentingEl: i16, currentBreakpoint: this.initialBreakpoint, backdropBreakpoint: this.backdropBreakpoint, expandToScroll: this.expandToScroll }), this.updateSafeAreaOverrides(), this.applyFullscreenSafeArea(), "undefined" != typeof window && (this.keyboardOpenCallback = () => { this.gesture && (this.gesture.enable(false), d2((() => { this.gesture && this.gesture.enable(true); }))); }, window.addEventListener(t5, this.keyboardOpenCallback)), this.isSheetModal ? this.initSheetGesture() : s23 && this.initSwipeToClose(), this.initViewTransitionListener(), this.initParentRemovalObserver(), t17(); }); } initSwipeToClose() { var t17; if ("ios" !== g(this)) return; const { el: i16 } = this, o14 = this.leaveAnimation || n.get("modalLeave", at), e16 = this.animation = o14(i16, { presentingEl: this.presentingElement, expandToScroll: this.expandToScroll }); if (!n3(i16)) return void p2(i16); const a17 = null !== (t17 = this.statusBarStyle) && void 0 !== t17 ? t17 : Z3.Default; this.gesture = ((t18, i17, o15, e17, a18, r32, s23) => { const n15 = 0.5, d25 = t18.offsetHeight; let m28 = false, f27 = false, u21 = null, b21 = null, v18 = true, g20 = 0; const k12 = s4({ el: t18, gestureName: "modalSwipeToClose", gesturePriority: U, direction: "y", threshold: 10, canStart: (t19) => { const i18 = t19.event.target; if (null === i18 || !i18.closest) return true; if (u21 = f3(i18), u21) { if (e3(u21)) { const t20 = c(u21); b21 = t20.querySelector(".inner-scroll"); } else b21 = u21; return !u21.querySelector("ion-refresher") && 0 === b21.scrollTop; } return null === i18.closest("ion-footer"); }, onStart: (o16) => { const { deltaY: e18 } = o16; v18 = !u21 || !e3(u21) || u21.scrollY, f27 = void 0 !== t18.canDismiss && true !== t18.canDismiss, e18 > 0 && u21 && h2(u21), i17.progressStart(true, m28 ? 1 : 0), a18(); }, onMove: (e18) => { const { deltaY: a19 } = e18; a19 > 0 && u21 && h2(u21); const s24 = e18.deltaY / d25, h21 = s24 >= 0 && f27, l27 = h21 ? 0.2 : 0.9999, c36 = h21 ? X3(s24 / l27) : s24, m29 = b(1e-4, c36, l27); i17.progressStep(m29), m29 >= n15 && g20 < n15 ? q4(o15) : m29 < n15 && g20 >= n15 && U2(), g20 = m29; const b22 = { currentY: e18.currentY, deltaY: e18.deltaY, velocityY: e18.velocityY, progress: tt(t18, e18.deltaY) }; r32(b22); }, onEnd: (o16) => { const a19 = o16.velocityY, r33 = o16.deltaY / d25, h21 = r33 >= 0 && f27, l27 = h21 ? 0.2 : 0.9999, p33 = h21 ? X3(r33 / l27) : r33, b22 = b(1e-4, p33, l27), w12 = !h21 && (o16.deltaY + 1e3 * a19) / d25 >= n15; let g21 = w12 ? -1e-3 : 1e-3; w12 ? (i17.easing("cubic-bezier(0.32, 0.72, 0, 1)"), g21 += t7([0, 0], [0.32, 0.72], [0, 1], [1, 1], b22)[0]) : (i17.easing("cubic-bezier(1, 0, 0.68, 0.28)"), g21 += t7([0, 0], [1, 0], [0.68, 0.28], [1, 1], b22)[0]); const y14 = Q3(w12 ? r33 * d25 : (1 - b22) * d25, a19); m28 = w12, k12.enable(false), u21 && l3(u21, v18), i17.onFinish((() => { w12 || k12.enable(true); })).progressEnd(w12 ? 1 : 0, g21, y14), h21 && b22 > l27 / 4 ? J2(t18, i17) : w12 && e17(); const A6 = { currentY: o16.currentY, deltaY: o16.deltaY, velocityY: o16.velocityY, progress: tt(t18, o16.deltaY) }; s23(A6); } }); return k12; })(i16, e16, a17, (() => this.cardOnDismiss()), (() => this.onDragStart()), ((t18) => this.onDragMove(t18)), ((t18) => this.onDragEnd(t18))), this.gesture.enable(true); } initSheetGesture() { const { wrapperEl: t17, initialBreakpoint: i16, backdropBreakpoint: o14 } = this; if (!t17 || void 0 === i16) return; const e16 = this.enterAnimation || n.get("modalEnter", et), a17 = this.animation = e16(this.el, { presentingEl: this.presentingElement, currentBreakpoint: i16, backdropBreakpoint: o14, expandToScroll: this.expandToScroll }); a17.progressStart(true, 1); const { gesture: s23, moveSheetToBreakpoint: n15 } = ((t18, i17, o15, e17, a18, r32, s24 = [], n16, d25, p33, c36, m28, f27, u21) => { const b21 = { WRAPPER_KEYFRAMES: [{ offset: 0, transform: "translateY(0%)" }, { offset: 1, transform: "translateY(100%)" }], BACKDROP_KEYFRAMES: 0 !== a18 ? [{ offset: 0, opacity: "var(--backdrop-opacity)" }, { offset: 1 - a18, opacity: 0 }, { offset: 1, opacity: 0 }] : [{ offset: 0, opacity: "var(--backdrop-opacity)" }, { offset: 1, opacity: 0.01 }], CONTENT_KEYFRAMES: [{ offset: 0, maxHeight: "100%" }, { offset: 1, maxHeight: "0%" }] }, v18 = t18.querySelector("ion-content"), k12 = o15.clientHeight; let y14 = e17, A6 = 0, Y6 = false, D7 = null, O10 = null, E11 = null, S8 = null; const M8 = s24[s24.length - 1], T8 = s24[0], B12 = r32.childAnimations.find(((t19) => "wrapperAnimation" === t19.id)), P6 = r32.childAnimations.find(((t19) => "backdropAnimation" === t19.id)), I8 = r32.childAnimations.find(((t19) => "contentAnimation" === t19.id)), N4 = () => { false !== t18.focusTrap && false !== t18.showBackdrop && (t18.style.setProperty("pointer-events", "auto"), i17.style.setProperty("pointer-events", "auto"), t18.classList.remove(nn)); }, R5 = () => { t18.style.setProperty("pointer-events", "none"), i17.style.setProperty("pointer-events", "none"), t18.classList.add(nn); }, j8 = (i18) => { if (!O10 && (O10 = Array.from(t18.querySelectorAll("ion-footer")), !O10.length)) return; const o16 = t18.querySelector(".ion-page"); if (S8 = i18, "stationary" === i18) O10.forEach(((t19) => { t19.classList.remove("modal-footer-moving"), t19.style.removeProperty("position"), t19.style.removeProperty("width"), t19.style.removeProperty("height"), t19.style.removeProperty("top"), t19.style.removeProperty("left"), null == o16 || o16.style.removeProperty("padding-bottom"), null == o16 || o16.appendChild(t19); })); else { let i19 = 0; O10.forEach(((o17, e18) => { const a19 = o17.getBoundingClientRect(), r33 = document.body.getBoundingClientRect(); i19 += o17.clientHeight; const s25 = a19.top - r33.top, n17 = a19.left - r33.left; if (o17.style.setProperty("--pinned-width", `${o17.clientWidth}px`), o17.style.setProperty("--pinned-height", `${o17.clientHeight}px`), o17.style.setProperty("--pinned-top", `${s25}px`), o17.style.setProperty("--pinned-left", `${n17}px`), 0 === e18) { E11 = s25; const i20 = t18.querySelector("ion-header"); i20 && (E11 -= i20.clientHeight); } })), O10.forEach(((t19) => { null == o16 || o16.style.setProperty("padding-bottom", `${i19}px`), t19.classList.add("modal-footer-moving"), t19.style.setProperty("position", "absolute"), t19.style.setProperty("width", "var(--pinned-width)"), t19.style.setProperty("height", "var(--pinned-height)"), t19.style.setProperty("top", "var(--pinned-top)"), t19.style.setProperty("left", "var(--pinned-left)"), document.body.appendChild(t19); })); } }; B12 && P6 && (B12.keyframes([...b21.WRAPPER_KEYFRAMES]), P6.keyframes([...b21.BACKDROP_KEYFRAMES]), null == I8 || I8.keyframes([...b21.CONTENT_KEYFRAMES]), r32.progressStart(true, 1 - y14), y14 > a18 && false !== t18.focusTrap && false !== t18.showBackdrop ? N4() : R5()), v18 && y14 !== M8 && n16 && (v18.scrollY = false); const $4 = (i18) => { const { breakpoint: o16, canDismiss: e18, breakpointOffset: d26, animated: h21 } = i18, l27 = e18 && 0 === o16, m29 = l27 ? y14 : o16, f28 = 0 !== m29; return y14 = 0, B12 && P6 && (B12.keyframes([{ offset: 0, transform: `translateY(${100 * d26}%)` }, { offset: 1, transform: `translateY(${100 * (1 - m29)}%)` }]), P6.keyframes([{ offset: 0, opacity: `calc(var(--backdrop-opacity) * ${K3(1 - d26, a18)})` }, { offset: 1, opacity: `calc(var(--backdrop-opacity) * ${K3(m29, a18)})` }]), I8 && I8.keyframes([{ offset: 0, maxHeight: 100 * (1 - d26) + "%" }, { offset: 1, maxHeight: 100 * m29 + "%" }]), r32.progressStep(0)), H9.enable(false), l27 ? J2(t18, r32) : f28 || p33(), !v18 || m29 !== s24[s24.length - 1] && n16 || (v18.scrollY = true), n16 || 0 !== m29 || j8("stationary"), new Promise(((i19) => { r32.onFinish((() => { f28 ? (n16 || j8("stationary"), B12 && P6 ? d2((() => { B12.keyframes([...b21.WRAPPER_KEYFRAMES]), P6.keyframes([...b21.BACKDROP_KEYFRAMES]), null == I8 || I8.keyframes([...b21.CONTENT_KEYFRAMES]), r32.progressStart(true, 1 - m29), y14 = m29, c36(y14), y14 > a18 && false !== t18.focusTrap && false !== t18.showBackdrop ? N4() : R5(), H9.enable(true), i19(); })) : (H9.enable(true), i19())) : i19(); }), { oneTimeCallback: true }).progressEnd(1, 0, h21 ? 500 : 0); })); }, L9 = (t19) => { const i18 = o15.getBoundingClientRect().top + t19, e18 = z11(i18); return s24.reduce(((t20, i19) => Math.abs(i19 - e18) < Math.abs(t20 - e18) ? i19 : t20)); }, z11 = (t19) => { const i18 = s24[s24.length - 1], o16 = W7(s24[0]), e18 = W7(i18), a19 = Math.round((o16 - t19) / (o16 - e18) * 1e3) / 1e3; return Math.max(0, Math.min(1, a19)); }, W7 = (i18) => { const o16 = t18.getBoundingClientRect(); return window.innerHeight - o16.height * i18; }, H9 = s4({ el: o15, gestureName: "modalSheet", gesturePriority: 40, direction: "y", threshold: 10, canStart: (t19) => { const i18 = f3(t19.event.target); if (y14 = d25(), !n16 && i18) return 0 === (e3(i18) ? c(i18).querySelector(".inner-scroll") : i18).scrollTop; if (1 === y14 && i18) { const t20 = e3(i18) ? c(i18).querySelector(".inner-scroll") : i18; return !i18.querySelector("ion-refresher") && 0 === t20.scrollTop; } return true; }, onStart: (i18) => { if (Y6 = void 0 !== t18.canDismiss && true !== t18.canDismiss && 0 === T8, !n16) { const t19 = f3(i18.event.target); D7 = t19 && e3(t19) ? c(t19).querySelector(".inner-scroll") : t19; } n16 || j8("moving"), i18.deltaY > 0 && v18 && (v18.scrollY = false), d2((() => { t18.focus(); })), r32.progressStart(true, 1 - y14), m28(); }, onMove: (t19) => { if (n16 || null === E11 || null === S8 || (t19.currentY >= E11 && "moving" === S8 ? j8("stationary") : t19.currentY < E11 && "stationary" === S8 && j8("moving")), !n16 && t19.deltaY <= 0 && D7) return; t19.deltaY > 0 && v18 && (v18.scrollY = false); const i18 = s24.length > 1 ? 1 - s24[1] : void 0, o16 = 1 - y14 + t19.deltaY / k12, e18 = void 0 !== i18 && o16 >= i18 && Y6, a19 = e18 ? 0.95 : 0.9999, d26 = e18 && void 0 !== i18 ? i18 + X3((o16 - i18) / (a19 - i18)) : o16; A6 = b(1e-4, d26, a19), r32.progressStep(A6); const h21 = L9(t19.deltaY), l27 = { currentY: t19.currentY, deltaY: t19.deltaY, velocityY: t19.velocityY, progress: z11(t19.currentY), snapBreakpoint: h21 }; f27(l27); }, onEnd: (t19) => { const i18 = L9(t19.deltaY), o16 = { currentY: t19.currentY, deltaY: t19.deltaY, velocityY: t19.velocityY, progress: z11(t19.currentY), snapBreakpoint: i18 }; if (!n16 && t19.deltaY <= 0 && D7 && D7.scrollTop > 0) return j8("stationary"), void u21(o16); $4({ breakpoint: i18, breakpointOffset: A6, canDismiss: Y6, animated: true }), u21(o16); } }); return { gesture: H9, moveSheetToBreakpoint: $4 }; })(this.el, this.backdropEl, t17, i16, o14, a17, this.sortedBreakpoints, this.expandToScroll, (() => { var t18; return null !== (t18 = this.currentBreakpoint) && void 0 !== t18 ? t18 : 0; }), (() => this.sheetOnDismiss()), ((t18) => { this.currentBreakpoint !== t18 && (this.currentBreakpoint = t18, this.ionBreakpointDidChange.emit({ breakpoint: t18 })); }), (() => this.onDragStart()), ((t18) => this.onDragMove(t18)), ((t18) => this.onDragEnd(t18))); this.gesture = s23, this.moveSheetToBreakpoint = n15, this.gesture.enable(true), (false === this.showBackdrop || false === this.focusTrap || o14 > 0) && this.setupChildRoutePassthrough(); } setupChildRoutePassthrough() { var t17; this.cachedPageParent = this.getOriginalPageParent(); const o14 = this.cachedPageParent; if (!o14 || "ION-APP" === o14.tagName) return; const e16 = Array.from(o14.children).some(((t18) => { var o15; return !(t18 === this.el || t18 instanceof I && "none" === window.getComputedStyle(t18).display || "TEMPLATE" === t18.tagName || "SLOT" === t18.tagName || t18.nodeType === Node.TEXT_NODE && !(null === (o15 = t18.textContent) || void 0 === o15 ? void 0 : o15.trim())); })); if (e16) return; o14.classList.add("ion-page-overlay-passthrough"); const a17 = o14.parentElement; "ION-ROUTER-OUTLET" === (null == a17 ? void 0 : a17.tagName) && "ION-APP" !== (null === (t17 = a17.parentElement) || void 0 === t17 ? void 0 : t17.tagName) && (a17.style.setProperty("pointer-events", "none"), a17.setAttribute("data-overlay-passthrough", "true")); } getOriginalPageParent() { if (!this.cachedOriginalParent) return null; let t17 = this.cachedOriginalParent; for (; t17 && !t17.classList.contains("ion-page"); ) t17 = t17.parentElement; return t17; } cleanupChildRoutePassthrough() { const t17 = this.cachedPageParent; if (!t17) return; t17.classList.remove("ion-page-overlay-passthrough"); const i16 = t17.parentElement; (null == i16 ? void 0 : i16.hasAttribute("data-overlay-passthrough")) && (i16.style.removeProperty("pointer-events"), i16.removeAttribute("data-overlay-passthrough")), this.cachedPageParent = void 0; } sheetOnDismiss() { this.gestureAnimationDismissing = true, this.animation.onFinish((() => __async(this, null, function* () { this.currentBreakpoint = 0, this.ionBreakpointDidChange.emit({ breakpoint: this.currentBreakpoint }), yield this.dismiss(void 0, K2), this.gestureAnimationDismissing = false; }))); } cardOnDismiss() { this.gestureAnimationDismissing = true, q4(this.statusBarStyle), this.animation.onFinish((() => __async(this, null, function* () { yield this.dismiss(void 0, K2), this.gestureAnimationDismissing = false; }))); } dismiss(t17, i16) { return __async(this, null, function* () { var o14; if (this.gestureAnimationDismissing && i16 !== K2) return false; clearTimeout(this.resizeTimeout), this.resizeTimeout = void 0; const e16 = yield this.lockController.lock(); if (yield this.dismissNestedModals(), "handler" !== i16 && !(yield this.checkCanDismiss(t17, i16))) return e16(), false; const { presentingElement: r32 } = this; void 0 !== r32 && "ios" === g(this) && q4(this.statusBarStyle), "undefined" != typeof window && this.keyboardOpenCallback && (window.removeEventListener(t5, this.keyboardOpenCallback), this.keyboardOpenCallback = void 0); const s23 = yield J(this, t17, i16, "modalLeave", at, st, { presentingEl: r32, currentBreakpoint: null !== (o14 = this.currentBreakpoint) && void 0 !== o14 ? o14 : this.initialBreakpoint, backdropBreakpoint: this.backdropBreakpoint, expandToScroll: this.expandToScroll }); if (s23) { const { delegate: t18 } = this.getDelegate(); yield t9(t18, this.usersElement), P((() => this.el.classList.remove("show-modal"))), this.animation && this.animation.destroy(), this.gesture && this.gesture.destroy(), this.cleanupViewTransitionListener(), this.cleanupParentRemovalObserver(), this.cleanupSafeAreaOverrides(), this.cleanupChildRoutePassthrough(); } return this.currentBreakpoint = void 0, this.animation = void 0, e16(), s23; }); } onDidDismiss() { return q3(this.el, "ionModalDidDismiss"); } onWillDismiss() { return q3(this.el, "ionModalWillDismiss"); } setCurrentBreakpoint(t17) { return __async(this, null, function* () { if (!this.isSheetModal) return void u("[ion-modal] - setCurrentBreakpoint is only supported on sheet modals."); if (!this.breakpoints.includes(t17)) return void u(`[ion-modal] - Attempted to set invalid breakpoint value ${t17}. Please double check that the breakpoint value is part of your defined breakpoints.`); const { currentBreakpoint: i16, moveSheetToBreakpoint: o14, canDismiss: a17, breakpoints: r32, animated: s23 } = this; i16 !== t17 && o14 && (this.sheetTransition = o14({ breakpoint: t17, breakpointOffset: 1 - i16, canDismiss: void 0 !== a17 && true !== a17 && 0 === r32[0], animated: s23 }), yield this.sheetTransition, this.sheetTransition = void 0); }); } getCurrentBreakpoint() { return __async(this, null, function* () { return this.currentBreakpoint; }); } moveToNextBreakpoint() { return __async(this, null, function* () { const { breakpoints: t17, currentBreakpoint: i16 } = this; if (!t17 || null == i16) return false; const o14 = t17.filter(((t18) => 0 !== t18)), e16 = o14.indexOf(i16), a17 = o14[(e16 + 1) % o14.length]; return yield this.setCurrentBreakpoint(a17), true; }); } initViewTransitionListener() { "ios" !== g(this) || !this.presentingElement || this.enterAnimation || this.leaveAnimation || (this.currentViewIsPortrait = window.innerWidth < 768); } handleViewTransition() { if (!this.presented) return; const t17 = window.innerWidth < 768; if (this.currentViewIsPortrait === t17) return; this.viewTransitionAnimation && (this.viewTransitionAnimation.destroy(), this.viewTransitionAnimation = void 0); const { presentingElement: i16 } = this; if (!i16) return; let o14; o14 = this.currentViewIsPortrait && !t17 ? ((t18, i17, o15 = 300) => { const { presentingEl: e16 } = i17; if (!e16) return r("portrait-to-landscape-transition"); const a17 = "ION-MODAL" === e16.tagName && void 0 !== e16.presentingElement, r32 = c(e16), s23 = document.body, n15 = r("portrait-to-landscape-transition").addElement(t18).easing("cubic-bezier(0.32,0.72,0,1)").duration(o15), d25 = r().beforeStyles({ transform: "translateY(0)", "transform-origin": "top center", overflow: "hidden" }); if (a17) { const t19 = "translateY(-10px) scale(0.915)", i18 = "translateY(0px) scale(1)"; d25.addElement(e16).afterStyles({ transform: i18 }).fromTo("transform", t19, i18).fromTo("filter", "contrast(0.85)", "contrast(1)"); const o16 = r().addElement(r32.querySelector(".modal-shadow")).afterStyles({ transform: i18, opacity: "0" }).fromTo("transform", t19, i18); n15.addAnimation([d25, o16]); } else { const i18 = c(t18), o16 = r().addElement(i18.querySelectorAll(".modal-wrapper, .modal-shadow")).fromTo("opacity", "1", "1"), a18 = r().addElement(i18.querySelector("ion-backdrop")).fromTo("opacity", "var(--backdrop-opacity)", "var(--backdrop-opacity)"), r33 = `translateY(${CSS.supports("width", "max(0px, 1px)") ? "max(30px, var(--ion-safe-area-top))" : "30px"}) scale(0.915)`; d25.addElement(e16).afterStyles({ transform: "translateY(0px) scale(1)", "border-radius": "0px" }).beforeAddWrite((() => s23.style.setProperty("background-color", ""))).fromTo("transform", r33, "translateY(0px) scale(1)").fromTo("filter", "contrast(0.85)", "contrast(1)").fromTo("border-radius", "10px 10px 0 0", "0px"), n15.addAnimation([d25, o16, a18]); } return n15; })(this.el, { presentingEl: i16 }) : ((t18, i17, o15 = 300) => { const { presentingEl: e16 } = i17; if (!e16) return r("landscape-to-portrait-transition"); const a17 = "ION-MODAL" === e16.tagName && void 0 !== e16.presentingElement, r32 = c(e16), s23 = document.body, n15 = r("landscape-to-portrait-transition").addElement(t18).easing("cubic-bezier(0.32,0.72,0,1)").duration(o15), d25 = r().beforeStyles({ transform: "translateY(0)", "transform-origin": "top center", overflow: "hidden" }); if (a17) { const t19 = "translateY(-10px) scale(0.915)", i18 = "translateY(0) scale(1)"; d25.addElement(e16).afterStyles({ transform: i18 }).fromTo("transform", t19, i18); const o16 = r().addElement(r32.querySelector(".modal-shadow")).afterStyles({ transform: i18, opacity: "0" }).fromTo("transform", t19, i18); n15.addAnimation([d25, o16]); } else { const i18 = c(t18), o16 = r().addElement(i18.querySelectorAll(".modal-wrapper, .modal-shadow")).fromTo("opacity", "1", "1"), a18 = r().addElement(i18.querySelector("ion-backdrop")).fromTo("opacity", "var(--backdrop-opacity)", "var(--backdrop-opacity)"), r33 = `translateY(${CSS.supports("width", "max(0px, 1px)") ? "max(30px, var(--ion-safe-area-top))" : "30px"}) scale(0.915)`; d25.addElement(e16).afterStyles({ transform: r33 }).beforeAddWrite((() => s23.style.setProperty("background-color", "black"))).keyframes([{ offset: 0, transform: "translateY(0px) scale(1)", filter: "contrast(1)", borderRadius: "0px" }, { offset: 0.2, transform: "translateY(0px) scale(1)", filter: "contrast(1)", borderRadius: "10px 10px 0 0" }, { offset: 1, transform: r33, filter: "contrast(0.85)", borderRadius: "10px 10px 0 0" }]), n15.addAnimation([d25, o16, a18]); } return n15; })(this.el, { presentingEl: i16 }), this.currentViewIsPortrait = t17, this.viewTransitionAnimation = o14, o14.play().then((() => { this.viewTransitionAnimation = void 0, d2((() => this.updateSafeAreaOverrides())), this.reinitSwipeToClose(); })); } cleanupViewTransitionListener() { this.resizeTimeout && (clearTimeout(this.resizeTimeout), this.resizeTimeout = void 0), this.viewTransitionAnimation && (this.viewTransitionAnimation.destroy(), this.viewTransitionAnimation = void 0); } reinitSwipeToClose() { "ios" === g(this) && this.presentingElement && (this.gesture && (this.gesture.destroy(), this.gesture = void 0), this.animation && (this.animation.progressEnd(0, 0, 0), this.animation.destroy(), this.animation = void 0), d2((() => { this.ensureCorrectModalPosition(), this.initSwipeToClose(); }))); } ensureCorrectModalPosition() { const { el: t17, presentingElement: i16 } = this, o14 = c(t17).querySelector(".modal-wrapper"); if (o14 && (o14.style.transform = "translateY(0vh)", o14.style.opacity = "1"), "ION-MODAL" === (null == i16 ? void 0 : i16.tagName)) if (window.innerWidth < 768) { const t18 = CSS.supports("width", "max(0px, 1px)") ? "max(30px, var(--ion-safe-area-top))" : "30px"; i16.style.transform = `translateY(${t18}) scale(0.915)`; } else i16.style.transform = "translateY(0px) scale(1)"; } dismissNestedModals() { return __async(this, null, function* () { const t17 = document.querySelectorAll(`ion-modal[data-parent-ion-modal="${this.el.id}"]`); null == t17 || t17.forEach(((t18) => __async(this, null, function* () { yield t18.dismiss(void 0, "parent-dismissed"); }))); }); } initParentRemovalObserver() { "undefined" != typeof MutationObserver && "undefined" != typeof window && this.cachedOriginalParent && this.cachedOriginalParent.nodeType !== Node.DOCUMENT_NODE && this.cachedOriginalParent.nodeType !== Node.DOCUMENT_FRAGMENT_NODE && (this.hasController || this.cachedOriginalParent === document.body || "ION-APP" === this.cachedOriginalParent.tagName || (this.parentRemovalObserver = new MutationObserver(((t17) => { t17.forEach(((t18) => { "childList" === t18.type && t18.removedNodes.length > 0 && (Array.from(t18.removedNodes).some(((t19) => { var i16, o14; const e16 = t19 === this.cachedOriginalParent, a17 = !!this.cachedOriginalParent && (null === (o14 = (i16 = t19).contains) || void 0 === o14 ? void 0 : o14.call(i16, this.cachedOriginalParent)); return e16 || a17; })) || this.cachedOriginalParent && !this.cachedOriginalParent.isConnected) && (this.dismiss(void 0, "parent-removed"), this.cachedOriginalParent = void 0); })); })), this.parentRemovalObserver.observe(document.body, { childList: true, subtree: true }))); } cleanupParentRemovalObserver() { var t17; null === (t17 = this.parentRemovalObserver) || void 0 === t17 || t17.disconnect(), this.parentRemovalObserver = void 0; } onDragStart() { this.ionDragStart.emit(); } onDragMove(t17) { this.ionDragMove.emit(t17); } onDragEnd(t17) { this.ionDragEnd.emit(t17); } getSafeAreaContext() { return { isSheetModal: this.isSheetModal, isCardModal: void 0 !== this.presentingElement && "ios" === g(this), presentingElement: this.presentingElement, breakpoints: this.breakpoints, currentBreakpoint: this.currentBreakpoint }; } setInitialSafeAreaOverrides() { const t17 = this.getSafeAreaContext(), i16 = ((t18) => { const { isSheetModal: i17, isCardModal: o14 } = t18; return i17 ? { top: "0px", bottom: "inherit", left: "0px", right: "0px" } : o14 ? { top: "inherit", bottom: "inherit", left: "0px", right: "0px" } : d && d.matchMedia("(min-width: 768px) and (min-height: 600px)").matches ? { top: "0px", bottom: "0px", left: "0px", right: "0px" } : { top: "inherit", bottom: "inherit", left: "inherit", right: "inherit" }; })(t17); ht(this.el, i16), t17.isSheetModal && this.updateSheetOffsetTop(); } updateSheetOffsetTop() { const t17 = (() => { if (null !== nt) return nt; const t18 = null == d ? void 0 : d.document; if (!(null == t18 ? void 0 : t18.body)) return 0; const i16 = t18.createElement("div"); i16.style.cssText = "position:fixed;visibility:hidden;pointer-events:none;top:0;left:0;padding-top:var(--ion-safe-area-top,0px);", t18.body.appendChild(i16); const o14 = parseFloat(getComputedStyle(i16).paddingTop) || 0; return i16.remove(), nt = o14, dt || (dt = true, d2((() => { nt = null, dt = false; }))), o14; })(); this.el.style.setProperty("--ion-modal-offset-top", `${t17}px`); } updateSafeAreaOverrides() { const { wrapperEl: t17, el: i16 } = this, o14 = this.getSafeAreaContext(); if (o14.isSheetModal) return; if (o14.isCardModal) return; if (!t17) return; const e16 = ((t18) => { var i17, o15; const e17 = t18.getBoundingClientRect(), a17 = null !== (i17 = null == d ? void 0 : d.innerHeight) && void 0 !== i17 ? i17 : 0, r32 = null !== (o15 = null == d ? void 0 : d.innerWidth) && void 0 !== o15 ? o15 : 0; return { top: e17.top <= 5 ? "inherit" : "0px", bottom: e17.bottom >= a17 - 5 ? "inherit" : "0px", left: e17.left <= 5 ? "inherit" : "0px", right: e17.right >= r32 - 5 ? "inherit" : "0px" }; })(t17); ht(i16, e16); } applyFullscreenSafeArea() { const { wrapperEl: t17, el: i16 } = this; if (!t17) return; const o14 = this.getSafeAreaContext(); if (o14.isSheetModal || o14.isCardModal) return; let e16 = false, a17 = false; for (const t18 of Array.from(i16.children)) { "ION-CONTENT" === t18.tagName && (e16 = true), "ION-FOOTER" === t18.tagName && (a17 = true); for (const i17 of Array.from(t18.children)) "ION-CONTENT" === i17.tagName && (e16 = true), "ION-FOOTER" === i17.tagName && (a17 = true); } e16 && !a17 && (t17.style.setProperty("height", "calc(var(--height) - var(--ion-safe-area-bottom, 0px))"), t17.style.setProperty("padding-bottom", "var(--ion-safe-area-bottom, 0px)")); } cleanupSafeAreaOverrides() { var t17; (t17 = this.el).style.removeProperty("--ion-safe-area-top"), t17.style.removeProperty("--ion-safe-area-bottom"), t17.style.removeProperty("--ion-safe-area-left"), t17.style.removeProperty("--ion-safe-area-right"), this.el.style.removeProperty("--ion-modal-offset-top"), this.wrapperEl && (this.wrapperEl.style.removeProperty("height"), this.wrapperEl.style.removeProperty("padding-bottom")); } render() { const { handle: t17, isSheetModal: i16, presentingElement: o14, htmlAttributes: e16, handleBehavior: a17, inheritedAttributes: r32, focusTrap: d25, expandToScroll: h21 } = this, l27 = false !== t17 && i16, p33 = g(this), c36 = void 0 !== o14 && "ios" === p33, m28 = "cycle" === a17; return Ct(It, Object.assign({ key: "1a53e8f87532abccc169ca4b24973a39c5f9ba16", "no-router": true, tabIndex: m28 && i16 && l27 ? 0 : -1 }, e16, { style: { zIndex: `${2e4 + this.overlayIndex}` }, class: Object.assign({ [p33]: true, "modal-default": !c36 && !i16, "modal-card": c36, "modal-sheet": i16, "modal-no-expand-scroll": i16 && !h21, "overlay-hidden": true, [nn]: false === d25 }, r5(this.cssClass)), onIonBackdropTap: this.onBackdropTap, onIonModalDidPresent: this.onLifecycle, onIonModalWillPresent: this.onLifecycle, onIonModalWillDismiss: this.onLifecycle, onIonModalDidDismiss: this.onLifecycle, onFocus: this.onModalFocus }), Ct("ion-backdrop", { key: "fa8e0a436c0d458331402e1850f87af3dc97b582", ref: (t18) => this.backdropEl = t18, visible: this.showBackdrop, tappable: this.backdropDismiss, part: "backdrop" }), "ios" === p33 && Ct("div", { key: "f00de6027d3c8b5bc93db3b0f7a50a87628d40bb", class: "modal-shadow" }), Ct("div", Object.assign({ key: "ae5e33bd6c58e541edb2edbca92420ea02dd5175", role: "dialog" }, r32, { "aria-modal": "true", class: "modal-wrapper ion-overlay-wrapper", part: "content", ref: (t18) => this.wrapperEl = t18 }), l27 && Ct("button", { key: "141cdd8f8522331f4b764e2a4d79ec6596b1eb3a", class: "modal-handle", tabIndex: m28 ? 0 : -1, "aria-label": "Activate to adjust the size of the dialog overlaying the screen", onClick: m28 ? this.onHandleClick : void 0, part: "handle", ref: (t18) => this.dragHandleEl = t18 }), Ct("slot", { key: "7de20298b61abee67a16d275c9ebd9a25ce7dd26", onSlotchange: this.onSlotChange }))); } get el() { return this; } static get watchers() { return { isOpen: [{ onIsOpenChange: 0 }], trigger: [{ triggerChanged: 0 }] }; } static get style() { return { ios: ':host{--width:100%;--min-width:auto;--max-width:auto;--height:100%;--min-height:auto;--max-height:auto;--overflow:hidden;--border-radius:0;--border-width:0;--border-style:none;--border-color:transparent;--background:var(--ion-background-color, #fff);--box-shadow:none;--backdrop-opacity:0;left:0;right:0;top:0;bottom:0;display:-ms-flexbox;display:flex;position:absolute;-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center;outline:none;color:var(--ion-text-color, #000);contain:strict}.modal-wrapper,ion-backdrop{pointer-events:auto}:host(.overlay-hidden){display:none}.modal-wrapper,.modal-shadow{border-radius:var(--border-radius);width:var(--width);min-width:var(--min-width);max-width:var(--max-width);height:var(--height);min-height:var(--min-height);max-height:var(--max-height);border-width:var(--border-width);border-style:var(--border-style);border-color:var(--border-color);background:var(--background);-webkit-box-shadow:var(--box-shadow);box-shadow:var(--box-shadow);overflow:var(--overflow);z-index:10}.modal-shadow{position:absolute;background:transparent}@media only screen and (min-width: 768px) and (min-height: 600px){:host{--width:600px;--height:500px}}@media only screen and (min-width: 768px) and (min-height: 768px){:host{--width:600px;--height:600px}}.modal-handle{left:0px;right:0px;top:5px;border-radius:8px;-webkit-margin-start:auto;margin-inline-start:auto;-webkit-margin-end:auto;margin-inline-end:auto;position:absolute;width:36px;height:5px;-webkit-transform:translateZ(0);transform:translateZ(0);border:0;background:var(--ion-color-step-350, var(--ion-background-color-step-350, #c0c0be));cursor:pointer;z-index:11}.modal-handle::before{-webkit-padding-start:4px;padding-inline-start:4px;-webkit-padding-end:4px;padding-inline-end:4px;padding-top:4px;padding-bottom:4px;position:absolute;width:36px;height:5px;-webkit-transform:translate(-50%, -50%);transform:translate(-50%, -50%);content:""}:host(.modal-sheet){--height:calc(100% - (var(--ion-modal-offset-top, 0px) + 10px))}:host(.modal-sheet) .modal-wrapper,:host(.modal-sheet) .modal-shadow{position:absolute;bottom:0}:host(.modal-sheet.modal-no-expand-scroll) ion-footer{position:absolute;bottom:0;width:var(--width)}:host{--backdrop-opacity:var(--ion-backdrop-opacity, 0.4)}:host(.modal-card),:host(.modal-sheet){--border-radius:10px}@media only screen and (min-width: 768px) and (min-height: 600px){:host{--border-radius:10px}}.modal-wrapper{-webkit-transform:translate3d(0, 100%, 0);transform:translate3d(0, 100%, 0)}@media screen and (max-width: 767px){@supports (width: max(0px, 1px)){:host(.modal-card){--height:calc(100% - max(30px, var(--ion-safe-area-top)) - 10px)}}@supports not (width: max(0px, 1px)){:host(.modal-card){--height:calc(100% - 40px)}}:host(.modal-card) .modal-wrapper{border-start-start-radius:var(--border-radius);border-start-end-radius:var(--border-radius);border-end-end-radius:0;border-end-start-radius:0}:host(.modal-card){--backdrop-opacity:0;--width:100%;-ms-flex-align:end;align-items:flex-end}:host(.modal-card) .modal-shadow{display:none}:host(.modal-card) ion-backdrop{pointer-events:none}}@media screen and (min-width: 768px){:host(.modal-card){--width:calc(100% - 120px);--height:calc(100% - (120px + var(--ion-safe-area-top) + var(--ion-safe-area-bottom)));--max-width:720px;--max-height:1000px;--backdrop-opacity:0;--box-shadow:0px 0px 30px 10px rgba(0, 0, 0, 0.1);-webkit-transition:all 0.5s ease-in-out;transition:all 0.5s ease-in-out}:host(.modal-card) .modal-wrapper{-webkit-box-shadow:none;box-shadow:none}:host(.modal-card) .modal-shadow{-webkit-box-shadow:var(--box-shadow);box-shadow:var(--box-shadow)}}:host(.modal-sheet) .modal-wrapper{border-start-start-radius:var(--border-radius);border-start-end-radius:var(--border-radius);border-end-end-radius:0;border-end-start-radius:0}', md: ':host{--width:100%;--min-width:auto;--max-width:auto;--height:100%;--min-height:auto;--max-height:auto;--overflow:hidden;--border-radius:0;--border-width:0;--border-style:none;--border-color:transparent;--background:var(--ion-background-color, #fff);--box-shadow:none;--backdrop-opacity:0;left:0;right:0;top:0;bottom:0;display:-ms-flexbox;display:flex;position:absolute;-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center;outline:none;color:var(--ion-text-color, #000);contain:strict}.modal-wrapper,ion-backdrop{pointer-events:auto}:host(.overlay-hidden){display:none}.modal-wrapper,.modal-shadow{border-radius:var(--border-radius);width:var(--width);min-width:var(--min-width);max-width:var(--max-width);height:var(--height);min-height:var(--min-height);max-height:var(--max-height);border-width:var(--border-width);border-style:var(--border-style);border-color:var(--border-color);background:var(--background);-webkit-box-shadow:var(--box-shadow);box-shadow:var(--box-shadow);overflow:var(--overflow);z-index:10}.modal-shadow{position:absolute;background:transparent}@media only screen and (min-width: 768px) and (min-height: 600px){:host{--width:600px;--height:500px}}@media only screen and (min-width: 768px) and (min-height: 768px){:host{--width:600px;--height:600px}}.modal-handle{left:0px;right:0px;top:5px;border-radius:8px;-webkit-margin-start:auto;margin-inline-start:auto;-webkit-margin-end:auto;margin-inline-end:auto;position:absolute;width:36px;height:5px;-webkit-transform:translateZ(0);transform:translateZ(0);border:0;background:var(--ion-color-step-350, var(--ion-background-color-step-350, #c0c0be));cursor:pointer;z-index:11}.modal-handle::before{-webkit-padding-start:4px;padding-inline-start:4px;-webkit-padding-end:4px;padding-inline-end:4px;padding-top:4px;padding-bottom:4px;position:absolute;width:36px;height:5px;-webkit-transform:translate(-50%, -50%);transform:translate(-50%, -50%);content:""}:host(.modal-sheet){--height:calc(100% - (var(--ion-modal-offset-top, 0px) + 10px))}:host(.modal-sheet) .modal-wrapper,:host(.modal-sheet) .modal-shadow{position:absolute;bottom:0}:host(.modal-sheet.modal-no-expand-scroll) ion-footer{position:absolute;bottom:0;width:var(--width)}:host{--backdrop-opacity:var(--ion-backdrop-opacity, 0.32)}@media only screen and (min-width: 768px) and (min-height: 600px){:host{--border-radius:2px;--box-shadow:0 28px 48px rgba(0, 0, 0, 0.4)}}.modal-wrapper{-webkit-transform:translate3d(0, 40px, 0);transform:translate3d(0, 40px, 0);opacity:0.01}' }; } }, [289, "ion-modal", { hasController: [4, "has-controller"], overlayIndex: [2, "overlay-index"], delegate: [16], keyboardClose: [4, "keyboard-close"], enterAnimation: [16], leaveAnimation: [16], breakpoints: [16], expandToScroll: [4, "expand-to-scroll"], initialBreakpoint: [2, "initial-breakpoint"], backdropBreakpoint: [2, "backdrop-breakpoint"], handle: [4], handleBehavior: [1, "handle-behavior"], component: [1], componentProps: [16], cssClass: [1, "css-class"], backdropDismiss: [4, "backdrop-dismiss"], showBackdrop: [4, "show-backdrop"], animated: [4], presentingElement: [16], htmlAttributes: [16], isOpen: [4, "is-open"], trigger: [1], keepContentsMounted: [4, "keep-contents-mounted"], focusTrap: [4, "focus-trap"], canDismiss: [4, "can-dismiss"], isSheetModal: [32], presented: [32], present: [64], dismiss: [64], onDidDismiss: [64], onWillDismiss: [64], setCurrentBreakpoint: [64], getCurrentBreakpoint: [64] }, [[9, "resize", "onWindowResize"]], { isOpen: [{ onIsOpenChange: 0 }], trigger: [{ triggerChanged: 0 }] }]); var pt = { ionModalDidPresent: "ionViewDidEnter", ionModalWillPresent: "ionViewWillEnter", ionModalWillDismiss: "ionViewWillLeave", ionModalDidDismiss: "ionViewDidLeave" }; function ct() { "undefined" != typeof customElements && ["ion-modal", "ion-backdrop"].forEach(((t17) => { switch (t17) { case "ion-modal": customElements.get(Zn(t17)) || customElements.define(Zn(t17), lt); break; case "ion-backdrop": customElements.get(Zn(t17)) || c11(); } })); } // node_modules/@ionic/core/components/ion-modal.js var p8 = ct; // node_modules/@ionic/core/components/p-DHsZWn1l.js var O4 = null; var L4 = false; var N2 = (t17) => { if (null !== O4) return O4; if (null === t17.body) return { top: 0, bottom: 0, left: 0, right: 0 }; const e16 = t17.createElement("div"); e16.style.cssText = "position:fixed;visibility:hidden;pointer-events:none;top:0;left:0;padding-top:var(--ion-safe-area-top,0px);padding-bottom:var(--ion-safe-area-bottom,0px);padding-left:var(--ion-safe-area-left,0px);padding-right:var(--ion-safe-area-right,0px);", t17.body.appendChild(e16); const o14 = getComputedStyle(e16), r32 = { top: parseFloat(o14.paddingTop) || 0, bottom: parseFloat(o14.paddingBottom) || 0, left: parseFloat(o14.paddingLeft) || 0, right: parseFloat(o14.paddingRight) || 0 }; return e16.remove(), O4 = r32, L4 || (L4 = true, d2((() => { O4 = null, L4 = false; }))), r32; }; var W3 = (t17, e16, o14) => { const r32 = e16.getBoundingClientRect(), i16 = r32.height; let s23 = r32.width; return "cover" === t17 && o14 && (s23 = o14.getBoundingClientRect().width), { contentWidth: s23, contentHeight: i16 }; }; var j4 = (t17, e16) => e16 && "ION-ITEM" === e16.tagName ? t17.findIndex(((t18) => t18 === e16)) : -1; var z3 = (t17) => { const e16 = c(t17).querySelector("button"); e16 && d2((() => e16.focus())); }; var E4 = (t17, e16, o14, r32, i16, s23, n15, a17, p33, c36, d25) => { var l27; let h21 = { top: 0, left: 0, width: 0, height: 0 }; if ("event" === s23) { if (!d25) return p33; h21 = { top: d25.clientY, left: d25.clientX, width: 1, height: 1 }; } else { const t18 = c36 || (null === (l27 = null == d25 ? void 0 : d25.detail) || void 0 === l27 ? void 0 : l27.ionShadowTarget) || (null == d25 ? void 0 : d25.target); if (!t18) return p33; const e17 = t18.getBoundingClientRect(); h21 = { top: e17.top, left: e17.left, width: e17.width, height: e17.height }; } const v18 = M6(n15, h21, e16, o14, r32, i16, t17), f27 = R3(a17, n15, h21, e16, o14), g20 = v18.top + f27.top, m28 = v18.left + f27.left, { arrowTop: x16, arrowLeft: b21 } = Y3(n15, r32, i16, g20, m28, e16, o14, t17), { originX: u21, originY: w12 } = S4(n15, a17, t17); return { top: g20, left: m28, referenceCoordinates: h21, arrowTop: x16, arrowLeft: b21, originX: u21, originY: w12 }; }; var S4 = (t17, e16, o14) => { switch (t17) { case "top": return { originX: X4(e16), originY: "bottom" }; case "bottom": return { originX: X4(e16), originY: "top" }; case "left": return { originX: "right", originY: B5(e16) }; case "right": return { originX: "left", originY: B5(e16) }; case "start": return { originX: o14 ? "left" : "right", originY: B5(e16) }; case "end": return { originX: o14 ? "right" : "left", originY: B5(e16) }; } }; var X4 = (t17) => { switch (t17) { case "start": return "left"; case "center": return "center"; case "end": return "right"; } }; var B5 = (t17) => { switch (t17) { case "start": return "top"; case "center": return "center"; case "end": return "bottom"; } }; var Y3 = (t17, e16, o14, r32, i16, s23, n15, a17) => { const p33 = { arrowTop: r32 + n15 / 2 - e16 / 2, arrowLeft: i16 + s23 - e16 / 2 }, c36 = { arrowTop: r32 + n15 / 2 - e16 / 2, arrowLeft: i16 - 1.5 * e16 }; switch (t17) { case "top": return { arrowTop: r32 + n15, arrowLeft: i16 + s23 / 2 - e16 / 2 }; case "bottom": return { arrowTop: r32 - o14, arrowLeft: i16 + s23 / 2 - e16 / 2 }; case "left": return p33; case "right": return c36; case "start": return a17 ? c36 : p33; case "end": return a17 ? p33 : c36; default: return { arrowTop: 0, arrowLeft: 0 }; } }; var M6 = (t17, e16, o14, r32, i16, s23, n15) => { const a17 = { top: e16.top, left: e16.left - o14 - i16 }, p33 = { top: e16.top, left: e16.left + e16.width + i16 }; switch (t17) { case "top": return { top: e16.top - r32 - s23, left: e16.left }; case "right": return p33; case "bottom": return { top: e16.top + e16.height + s23, left: e16.left }; case "left": return a17; case "start": return n15 ? p33 : a17; case "end": return n15 ? a17 : p33; } }; var R3 = (t17, e16, o14, r32, i16) => { switch (t17) { case "center": return H4(e16, o14, r32, i16); case "end": return F2(e16, o14, r32, i16); default: return { top: 0, left: 0 }; } }; var F2 = (t17, e16, o14, r32) => { switch (t17) { case "start": case "end": case "left": case "right": return { top: -(r32 - e16.height), left: 0 }; default: return { top: 0, left: -(o14 - e16.width) }; } }; var H4 = (t17, e16, o14, r32) => { switch (t17) { case "start": case "end": case "left": case "right": return { top: -(r32 / 2 - e16.height / 2), left: 0 }; default: return { top: 0, left: -(o14 / 2 - e16.width / 2) }; } }; var V2 = (t17, e16, o14, r32, i16, s23, n15, a17, p33, c36, d25, l27, h21 = 0, v18 = 0, f27 = 0) => { let g20, m28 = h21, x16 = o14, b21 = e16, u21 = c36, w12 = d25, k12 = false, y14 = false, P6 = false, D7 = false; const T8 = l27 ? l27.top + l27.height : s23 / 2 - a17 / 2, A6 = l27 ? l27.height : 0; let $4 = false; if (x16 < r32 + p33.left ? (x16 = r32, k12 = true, u21 = "left") : n15 + r32 + x16 + p33.right > i16 && (y14 = true, x16 = i16 - n15 - r32, u21 = "right"), T8 + A6 + a17 > s23 - p33.bottom && ("top" === t17 || "bottom" === t17)) { const t18 = T8 - a17 - A6 - (f27 - 1); t18 >= p33.top + r32 ? (b21 = t18, m28 = b21 + a17, w12 = "bottom", $4 = true) : (g20 = r32, D7 = true, b21 >= s23 - p33.bottom - r32 && (b21 = p33.top + r32, P6 = true)); } return { top: b21, left: x16, bottom: g20, originX: u21, originY: w12, checkSafeAreaLeft: k12, checkSafeAreaRight: y14, checkSafeAreaTop: P6, checkSafeAreaBottom: D7, arrowTop: m28, arrowLeft: v18, addPopoverBottomClass: $4, hideArrow: false }; }; var q5 = (t17, e16) => { var o14; const { event: r32, size: i16, trigger: s23, reference: n15, side: a17, align: p33 } = e16, c36 = t17.ownerDocument, d25 = "rtl" === c36.dir, l27 = c36.defaultView.innerWidth, h21 = c36.defaultView.innerHeight, v18 = c(t17), f27 = v18.querySelector(".popover-content"), g20 = v18.querySelector(".popover-arrow"), m28 = s23 || (null === (o14 = null == r32 ? void 0 : r32.detail) || void 0 === o14 ? void 0 : o14.ionShadowTarget) || (null == r32 ? void 0 : r32.target), { contentWidth: x16, contentHeight: u21 } = W3(i16, f27, m28), { arrowWidth: w12, arrowHeight: k12 } = ((t18) => { if (!t18) return { arrowWidth: 0, arrowHeight: 0 }; const { width: e17, height: o15 } = t18.getBoundingClientRect(); return { arrowWidth: e17, arrowHeight: o15 }; })(g20), y14 = E4(d25, x16, u21, w12, k12, n15, a17, p33, { top: h21 / 2 - u21 / 2, left: l27 / 2 - x16 / 2, originX: d25 ? "right" : "left", originY: "top" }, s23, r32), P6 = "cover" === i16 ? 0 : 5, D7 = N2(c36), T8 = "cover" === i16 ? { top: 0, bottom: 0, left: 0, right: 0 } : { top: Math.max(D7.top, 25), bottom: Math.max(D7.bottom, 25), left: Math.max(D7.left, 25), right: Math.max(D7.right, 25) }, { originX: A6, originY: $4, top: I8, left: O10, bottom: L9, checkSafeAreaLeft: j8, checkSafeAreaRight: z11, checkSafeAreaTop: S8, checkSafeAreaBottom: X7, arrowTop: B12, arrowLeft: Y6, addPopoverBottomClass: M8 } = V2(a17, y14.top, y14.left, P6, l27, h21, x16, u21, T8, y14.originX, y14.originY, y14.referenceCoordinates, y14.arrowTop, y14.arrowLeft, k12), R5 = r(), F4 = r(), H9 = r(); return F4.addElement(v18.querySelector("ion-backdrop")).fromTo("opacity", 0.01, "var(--backdrop-opacity)").beforeStyles({ "pointer-events": "none" }).afterClearStyles(["pointer-events"]), H9.addElement(v18.querySelector(".popover-arrow")).addElement(v18.querySelector(".popover-content")).fromTo("opacity", 0.01, 1), R5.easing("ease").duration(100).beforeAddWrite((() => { if ("cover" === i16 && t17.style.setProperty("--width", `${x16}px`), M8 && t17.classList.add("popover-bottom"), void 0 !== L9) { let t18 = `${L9}px`; X7 && (t18 = `${L9}px + var(--ion-safe-area-bottom, 0px)`), f27.style.setProperty("bottom", `calc(${t18})`); } let e17 = `${O10}px`; j8 && (e17 = `${O10}px + var(--ion-safe-area-left, 0px)`), z11 && (e17 = `${O10}px - var(--ion-safe-area-right, 0px)`); let o15 = `${I8}px`; if (S8 && (o15 = `${I8}px + var(--ion-safe-area-top, 0px)`), f27.style.setProperty("top", `calc(${o15} + var(--offset-y, 0))`), f27.style.setProperty("left", `calc(${e17} + var(--offset-x, 0))`), f27.style.setProperty("transform-origin", `${$4} ${A6}`), null !== g20) { const t18 = /* @__PURE__ */ ((t19, e18 = false, o16, r33) => !(!o16 && !r33 || "top" !== t19 && "bottom" !== t19 && e18))(a17, y14.top !== I8 || y14.left !== O10, r32, s23); t18 ? (g20.style.setProperty("top", `calc(${B12}px + var(--offset-y, 0))`), g20.style.setProperty("left", `calc(${Y6}px + var(--offset-x, 0))`)) : g20.style.setProperty("display", "none"); } })).addAnimation([F4, H9]); }; var J3 = (t17) => { const e16 = c(t17), o14 = e16.querySelector(".popover-content"), r32 = e16.querySelector(".popover-arrow"), i16 = r(), s23 = r(), n15 = r(); return s23.addElement(e16.querySelector("ion-backdrop")).fromTo("opacity", "var(--backdrop-opacity)", 0), n15.addElement(e16.querySelector(".popover-arrow")).addElement(e16.querySelector(".popover-content")).fromTo("opacity", 0.99, 0), i16.easing("ease").afterAddWrite((() => { t17.style.removeProperty("--width"), t17.classList.remove("popover-bottom"), o14.style.removeProperty("top"), o14.style.removeProperty("left"), o14.style.removeProperty("bottom"), o14.style.removeProperty("transform-origin"), r32 && (r32.style.removeProperty("top"), r32.style.removeProperty("left"), r32.style.removeProperty("display")); })).duration(300).addAnimation([s23, n15]); }; var K4 = (t17, e16) => { var o14; const { event: r32, size: i16, trigger: s23, reference: n15, side: a17, align: p33 } = e16, c36 = t17.ownerDocument, d25 = "rtl" === c36.dir, l27 = c36.defaultView.innerWidth, h21 = c36.defaultView.innerHeight, v18 = c(t17), f27 = v18.querySelector(".popover-content"), g20 = s23 || (null === (o14 = null == r32 ? void 0 : r32.detail) || void 0 === o14 ? void 0 : o14.ionShadowTarget) || (null == r32 ? void 0 : r32.target), { contentWidth: m28, contentHeight: x16 } = W3(i16, f27, g20), u21 = E4(d25, m28, x16, 0, 0, n15, a17, p33, { top: h21 / 2 - x16 / 2, left: l27 / 2 - m28 / 2, originX: d25 ? "right" : "left", originY: "top" }, s23, r32), w12 = "cover" === i16 ? 0 : 12, k12 = "cover" === i16 ? { top: 0, bottom: 0, left: 0, right: 0 } : N2(c36), { originX: y14, originY: P6, top: D7, left: T8, bottom: A6, checkSafeAreaLeft: $4, checkSafeAreaRight: I8, checkSafeAreaTop: O10, checkSafeAreaBottom: L9, addPopoverBottomClass: j8 } = V2(a17, u21.top, u21.left, w12, l27, h21, m28, x16, k12, u21.originX, u21.originY, u21.referenceCoordinates); let z11 = `${T8}px`; $4 && (z11 = `${T8}px + var(--ion-safe-area-left, 0px)`), I8 && (z11 = `${T8}px - var(--ion-safe-area-right, 0px)`); let S8 = `${D7}px`; O10 && (S8 = `${D7}px + var(--ion-safe-area-top, 0px)`); const X7 = r(), B12 = r(), Y6 = r(), M8 = r(), R5 = r(); return B12.addElement(v18.querySelector("ion-backdrop")).fromTo("opacity", 0.01, "var(--backdrop-opacity)").beforeStyles({ "pointer-events": "none" }).afterClearStyles(["pointer-events"]), Y6.addElement(v18.querySelector(".popover-wrapper")).duration(150).fromTo("opacity", 0.01, 1), M8.addElement(f27).beforeStyles({ top: `calc(${S8} + var(--offset-y, 0px))`, left: `calc(${z11} + var(--offset-x, 0px))`, "transform-origin": `${P6} ${y14}` }).beforeAddWrite((() => { if (void 0 !== A6) { let t18 = `${A6}px`; L9 && (t18 = `${A6}px + var(--ion-safe-area-bottom, 0px)`), f27.style.setProperty("bottom", `calc(${t18})`); } })).fromTo("transform", "scale(0.8)", "scale(1)"), R5.addElement(v18.querySelector(".popover-viewport")).fromTo("opacity", 0.01, 1), X7.easing("cubic-bezier(0.36,0.66,0.04,1)").duration(300).beforeAddWrite((() => { "cover" === i16 && t17.style.setProperty("--width", `${m28}px`), j8 && t17.classList.add("popover-bottom"); })).addAnimation([B12, Y6, M8, R5]); }; var Q4 = (t17) => { const e16 = c(t17), o14 = e16.querySelector(".popover-content"), r32 = r(), i16 = r(), s23 = r(); return i16.addElement(e16.querySelector("ion-backdrop")).fromTo("opacity", "var(--backdrop-opacity)", 0), s23.addElement(e16.querySelector(".popover-wrapper")).fromTo("opacity", 0.99, 0), r32.easing("ease").afterAddWrite((() => { t17.style.removeProperty("--width"), t17.classList.remove("popover-bottom"), o14.style.removeProperty("top"), o14.style.removeProperty("left"), o14.style.removeProperty("bottom"), o14.style.removeProperty("transform-origin"); })).duration(150).addAnimation([i16, s23]); }; var U3 = Dn(class extends I { constructor(t17) { super(), false !== t17 && this.__registerHost(), this.__attachShadow(), this.didPresent = Jt(this, "ionPopoverDidPresent", 7), this.willPresent = Jt(this, "ionPopoverWillPresent", 7), this.willDismiss = Jt(this, "ionPopoverWillDismiss", 7), this.didDismiss = Jt(this, "ionPopoverDidDismiss", 7), this.didPresentShorthand = Jt(this, "didPresent", 7), this.willPresentShorthand = Jt(this, "willPresent", 7), this.willDismissShorthand = Jt(this, "willDismiss", 7), this.didDismissShorthand = Jt(this, "didDismiss", 7), this.ionMount = Jt(this, "ionMount", 7), this.parentPopover = null, this.coreDelegate = i8(), this.lockController = t11(), this.inline = false, this.focusDescendantOnPresent = false, this.presented = false, this.hasController = false, this.keyboardClose = true, this.backdropDismiss = true, this.showBackdrop = true, this.translucent = false, this.animated = true, this.triggerAction = "click", this.size = "auto", this.dismissOnSelect = false, this.reference = "trigger", this.side = "bottom", this.arrow = true, this.isOpen = false, this.keyboardEvents = false, this.focusTrap = true, this.keepContentsMounted = false, this.onBackdropTap = () => { this.dismiss(void 0, H3); }, this.onLifecycle = (t18) => { const e16 = this.usersElement, o14 = G4[t18.type]; if (e16 && o14) { const r32 = new CustomEvent(o14, { bubbles: false, cancelable: false, detail: t18.detail }); e16.dispatchEvent(r32); } }, this.configureTriggerInteraction = () => { const { trigger: t18, triggerAction: e16, el: o14, destroyTriggerInteraction: i16 } = this; if (i16 && i16(), void 0 === t18) return; const s23 = this.triggerEl = void 0 !== t18 ? document.getElementById(t18) : null; s23 ? this.destroyTriggerInteraction = ((t19, e17, o15) => { let r32 = []; switch (e17) { case "hover": let t20; r32 = [{ eventName: "mouseenter", callback: (e18) => __async(this, null, function* () { e18.stopPropagation(), t20 && clearTimeout(t20), t20 = setTimeout((() => { d2((() => { o15.presentFromTrigger(e18), t20 = void 0; })); }), 100); }) }, { eventName: "mouseleave", callback: (e18) => { t20 && clearTimeout(t20); const r33 = e18.relatedTarget; r33 && r33.closest("ion-popover") !== o15 && o15.dismiss(void 0, void 0, false); } }, { eventName: "click", callback: (t21) => t21.stopPropagation() }, { eventName: "ionPopoverActivateTrigger", callback: (t21) => o15.presentFromTrigger(t21, true) }]; break; case "context-menu": r32 = [{ eventName: "contextmenu", callback: (t21) => { t21.preventDefault(), o15.presentFromTrigger(t21); } }, { eventName: "click", callback: (t21) => t21.stopPropagation() }, { eventName: "ionPopoverActivateTrigger", callback: (t21) => o15.presentFromTrigger(t21, true) }]; break; default: r32 = [{ eventName: "click", callback: (t21) => o15.presentFromTrigger(t21) }, { eventName: "ionPopoverActivateTrigger", callback: (t21) => o15.presentFromTrigger(t21, true) }]; } return r32.forEach((({ eventName: e18, callback: o16 }) => t19.addEventListener(e18, o16))), t19.setAttribute("data-ion-popover-trigger", "true"), () => { r32.forEach((({ eventName: e18, callback: o16 }) => t19.removeEventListener(e18, o16))), t19.removeAttribute("data-ion-popover-trigger"); }; })(s23, e16, o14) : u(`[ion-popover] - A trigger element with the ID "${t18}" was not found in the DOM. The trigger element must be in the DOM when the "trigger" property is set on ion-popover.`, this.el); }, this.configureKeyboardInteraction = () => { const { destroyKeyboardInteraction: t18, el: e16 } = this; t18 && t18(), this.destroyKeyboardInteraction = ((t19) => { const e17 = (e18) => __async(this, null, function* () { var o14; const r32 = document.activeElement; let i16 = []; const s23 = null === (o14 = e18.target) || void 0 === o14 ? void 0 : o14.tagName; if ("ION-POPOVER" === s23 || "ION-ITEM" === s23) { try { i16 = Array.from(t19.querySelectorAll("ion-item:not(ion-popover ion-popover *):not([disabled])")); } catch (t20) { } switch (e18.key) { case "ArrowLeft": (yield t19.getParentPopover()) && t19.dismiss(void 0, void 0, false); break; case "ArrowDown": e18.preventDefault(); const o15 = ((t20, e19) => t20[j4(t20, e19) + 1])(i16, r32); void 0 !== o15 && z3(o15); break; case "ArrowUp": e18.preventDefault(); const s24 = ((t20, e19) => t20[j4(t20, e19) - 1])(i16, r32); void 0 !== s24 && z3(s24); break; case "Home": e18.preventDefault(); const n15 = i16[0]; void 0 !== n15 && z3(n15); break; case "End": e18.preventDefault(); const a17 = i16[i16.length - 1]; void 0 !== a17 && z3(a17); break; case "ArrowRight": case " ": case "Enter": if (r32 && r32.hasAttribute("data-ion-popover-trigger")) { const t20 = new CustomEvent("ionPopoverActivateTrigger"); r32.dispatchEvent(t20); } } } }); return t19.addEventListener("keydown", e17), () => t19.removeEventListener("keydown", e17); })(e16); }, this.configureDismissInteraction = () => { const { destroyDismissInteraction: t18, parentPopover: e16, triggerAction: o14, triggerEl: r32, el: i16 } = this; e16 && r32 && (t18 && t18(), this.destroyDismissInteraction = ((t19, e17, o15, r33) => { let i17 = []; const s23 = c(r33).querySelector(".popover-content"); return i17 = "hover" === e17 ? [{ eventName: "mouseenter", callback: (e18) => { document.elementFromPoint(e18.clientX, e18.clientY) !== t19 && o15.dismiss(void 0, void 0, false); } }] : [{ eventName: "click", callback: (e18) => { e18.target.closest("[data-ion-popover-trigger]") !== t19 ? o15.dismiss(void 0, void 0, false) : e18.stopPropagation(); } }], i17.forEach((({ eventName: t20, callback: e18 }) => s23.addEventListener(t20, e18))), () => { i17.forEach((({ eventName: t20, callback: e18 }) => s23.removeEventListener(t20, e18))); }; })(r32, o14, i16, e16)); }; } onTriggerChange() { this.configureTriggerInteraction(); } onIsOpenChange(t17, e16) { true === t17 && false === e16 ? this.present() : false === t17 && true === e16 && this.dismiss(); } connectedCallback() { const { configureTriggerInteraction: t17, el: e16 } = this; I3(e16), t17(); } disconnectedCallback() { const { destroyTriggerInteraction: t17 } = this; t17 && t17(), this.headerResizeObserver && (this.headerResizeObserver.disconnect(), this.headerResizeObserver = void 0); } componentWillLoad() { var t17, e16; const { el: o14 } = this, r32 = null !== (e16 = null === (t17 = this.htmlAttributes) || void 0 === t17 ? void 0 : t17.id) && void 0 !== e16 ? e16 : N(o14); this.parentPopover = o14.closest(`ion-popover:not(#${r32})`), void 0 === this.alignment && (this.alignment = "ios" === g(this) ? "center" : "start"); } componentDidLoad() { const { parentPopover: t17, isOpen: e16 } = this; true === e16 && d2((() => this.present())), t17 && l(t17, "ionPopoverWillDismiss", (() => { this.dismiss(void 0, void 0, false); })), this.configureTriggerInteraction(); } presentFromTrigger(t17, e16 = false) { return __async(this, null, function* () { this.focusDescendantOnPresent = e16, yield this.present(t17), this.focusDescendantOnPresent = false; }); } getDelegate(t17 = false) { if (this.workingDelegate && !t17) return { delegate: this.workingDelegate, inline: this.inline }; const e16 = this.inline = null !== this.el.parentNode && !this.hasController; return { inline: e16, delegate: this.workingDelegate = e16 ? this.delegate || this.coreDelegate : this.delegate }; } present(t17) { return __async(this, null, function* () { const e16 = yield this.lockController.lock(); if (this.presented) return void e16(); const { el: o14 } = this, { inline: r32, delegate: i16 } = this.getDelegate(true); this.ionMount.emit(), this.usersElement = yield o8(i16, o14, this.component, ["popover-viewport"], this.componentProps, r32), this.recalculateContentOnHeaderReady(), this.keyboardEvents || this.configureKeyboardInteraction(), this.configureDismissInteraction(), t(o14) ? yield B(this.usersElement) : this.keepContentsMounted || (yield L()), yield $(this, "popoverEnter", q5, K4, { event: t17 || this.event, size: this.size, trigger: this.triggerEl, reference: this.reference, side: this.side, align: this.alignment }), this.focusDescendantOnPresent && f5(o14), e16(); }); } recalculateContentOnHeaderReady() { var t17; const e16 = null === (t17 = this.el.shadowRoot) || void 0 === t17 ? void 0 : t17.querySelector(".popover-content"); if (!e16) return; const o14 = this.usersElement || e16, r32 = o14.querySelector("ion-header"), i16 = o14.querySelectorAll("ion-content"); r32 && 0 !== i16.length && (this.headerResizeObserver = new ResizeObserver((() => __async(this, null, function* () { var t18; if (r32.offsetHeight > 0) { null === (t18 = this.headerResizeObserver) || void 0 === t18 || t18.disconnect(), this.headerResizeObserver = void 0; for (const t19 of i16) yield t19.recalculateDimensions(); } }))), this.headerResizeObserver.observe(r32)); } dismiss(t17, e16, o14 = true) { return __async(this, null, function* () { const r32 = yield this.lockController.lock(), { destroyKeyboardInteraction: i16, destroyDismissInteraction: s23 } = this; o14 && this.parentPopover && this.parentPopover.dismiss(t17, e16, o14); const n15 = yield J(this, t17, e16, "popoverLeave", J3, Q4, this.event); if (n15) { i16 && (i16(), this.destroyKeyboardInteraction = void 0), s23 && (s23(), this.destroyDismissInteraction = void 0); const { delegate: t18 } = this.getDelegate(); yield t9(t18, this.usersElement); } return r32(), n15; }); } getParentPopover() { return __async(this, null, function* () { return this.parentPopover; }); } onDidDismiss() { return q3(this.el, "ionPopoverDidDismiss"); } onWillDismiss() { return q3(this.el, "ionPopoverWillDismiss"); } render() { const t17 = g(this), { onLifecycle: e16, parentPopover: o14, dismissOnSelect: r32, side: n15, arrow: a17, htmlAttributes: p33, focusTrap: c36 } = this, d25 = s7("desktop"), l27 = a17 && !o14; return Ct(It, Object.assign({ key: "2edd8333c630efbce59071f8a383e4326e928dbc", "aria-modal": "true", "no-router": true, tabindex: "-1" }, p33, { style: { zIndex: `${2e4 + this.overlayIndex}` }, class: Object.assign(Object.assign({}, r5(this.cssClass)), { [t17]: true, "popover-translucent": this.translucent, "overlay-hidden": true, "popover-desktop": d25, [`popover-side-${n15}`]: true, [nn]: false === c36, "popover-nested": !!o14 }), onIonPopoverDidPresent: e16, onIonPopoverWillPresent: e16, onIonPopoverWillDismiss: e16, onIonPopoverDidDismiss: e16, onIonBackdropTap: this.onBackdropTap }), !o14 && Ct("ion-backdrop", { key: "aac4e68b08197534375e8ea3f8c9ea0c10ab2af4", tappable: this.backdropDismiss, visible: this.showBackdrop, part: "backdrop" }), Ct("div", { key: "b7f4ebf57d4148b32856b0075d286f454be8de5d", class: "popover-wrapper ion-overlay-wrapper", onClick: r32 ? () => this.dismiss() : void 0 }, l27 && Ct("div", { key: "607d94c28d73e8e957175a7c0f6e8a99ec4dcd53", class: "popover-arrow", part: "arrow" }), Ct("div", { key: "4366a5a5de550c09895e923f345583508e1ec30c", class: "popover-content", part: "content" }, Ct("slot", { key: "eb7886fbc99c15b667b7d825d24f1c12d9380f03" })))); } get el() { return this; } static get watchers() { return { trigger: [{ onTriggerChange: 0 }], triggerAction: [{ onTriggerChange: 0 }], isOpen: [{ onIsOpenChange: 0 }] }; } static get style() { return { ios: ':host{--background:var(--ion-background-color, #fff);--min-width:0;--min-height:0;--max-width:auto;--height:auto;--offset-x:0px;--offset-y:0px;left:0;right:0;top:0;bottom:0;display:-ms-flexbox;display:flex;position:fixed;-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center;outline:none;color:var(--ion-text-color, #000);z-index:1001}:host(.popover-nested){pointer-events:none}:host(.popover-nested) .popover-wrapper{pointer-events:auto}:host(.overlay-hidden){display:none}.popover-wrapper{z-index:10}.popover-content{display:-ms-flexbox;display:flex;position:absolute;-ms-flex-direction:column;flex-direction:column;width:var(--width);min-width:var(--min-width);max-width:var(--max-width);height:var(--height);min-height:var(--min-height);max-height:var(--max-height);background:var(--background);-webkit-box-shadow:var(--box-shadow);box-shadow:var(--box-shadow);overflow:auto;z-index:10}::slotted(.popover-viewport){--ion-safe-area-top:0px;--ion-safe-area-right:0px;--ion-safe-area-bottom:0px;--ion-safe-area-left:0px;display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column}:host(.popover-nested.popover-side-left){--offset-x:5px}:host(.popover-nested.popover-side-right){--offset-x:-5px}:host(.popover-nested.popover-side-start){--offset-x:5px}:host-context([dir=rtl]):host(.popover-nested.popover-side-start),:host-context([dir=rtl]).popover-nested.popover-side-start{--offset-x:-5px}@supports selector(:dir(rtl)){:host(.popover-nested.popover-side-start:dir(rtl)){--offset-x:-5px}}:host(.popover-nested.popover-side-end){--offset-x:-5px}:host-context([dir=rtl]):host(.popover-nested.popover-side-end),:host-context([dir=rtl]).popover-nested.popover-side-end{--offset-x:5px}@supports selector(:dir(rtl)){:host(.popover-nested.popover-side-end:dir(rtl)){--offset-x:5px}}:host{--width:200px;--max-height:90%;--box-shadow:none;--backdrop-opacity:var(--ion-backdrop-opacity, 0.08)}:host(.popover-desktop){--box-shadow:0px 4px 16px 0px rgba(0, 0, 0, 0.12)}.popover-content{border-radius:10px}:host(.popover-desktop) .popover-content{border:0.5px solid var(--ion-color-step-100, var(--ion-background-color-step-100, #e6e6e6))}.popover-arrow{display:block;position:absolute;width:20px;height:10px;overflow:hidden;z-index:11}.popover-arrow::after{top:3px;border-radius:3px;position:absolute;width:14px;height:14px;-webkit-transform:rotate(45deg);transform:rotate(45deg);background:var(--background);content:"";z-index:10}.popover-arrow::after{inset-inline-start:3px}:host(.popover-bottom) .popover-arrow{top:auto;bottom:-10px}:host(.popover-bottom) .popover-arrow::after{top:-6px}:host(.popover-side-left) .popover-arrow{-webkit-transform:rotate(90deg);transform:rotate(90deg)}:host(.popover-side-right) .popover-arrow{-webkit-transform:rotate(-90deg);transform:rotate(-90deg)}:host(.popover-side-top) .popover-arrow{-webkit-transform:rotate(180deg);transform:rotate(180deg)}:host(.popover-side-start) .popover-arrow{-webkit-transform:rotate(90deg);transform:rotate(90deg)}:host-context([dir=rtl]):host(.popover-side-start) .popover-arrow,:host-context([dir=rtl]).popover-side-start .popover-arrow{-webkit-transform:rotate(-90deg);transform:rotate(-90deg)}@supports selector(:dir(rtl)){:host(.popover-side-start:dir(rtl)) .popover-arrow{-webkit-transform:rotate(-90deg);transform:rotate(-90deg)}}:host(.popover-side-end) .popover-arrow{-webkit-transform:rotate(-90deg);transform:rotate(-90deg)}:host-context([dir=rtl]):host(.popover-side-end) .popover-arrow,:host-context([dir=rtl]).popover-side-end .popover-arrow{-webkit-transform:rotate(90deg);transform:rotate(90deg)}@supports selector(:dir(rtl)){:host(.popover-side-end:dir(rtl)) .popover-arrow{-webkit-transform:rotate(90deg);transform:rotate(90deg)}}.popover-arrow,.popover-content{opacity:0}@supports ((-webkit-backdrop-filter: blur(0)) or (backdrop-filter: blur(0))){:host(.popover-translucent) .popover-content,:host(.popover-translucent) .popover-arrow::after{background:rgba(var(--ion-background-color-rgb, 255, 255, 255), 0.8);-webkit-backdrop-filter:saturate(180%) blur(20px);backdrop-filter:saturate(180%) blur(20px)}}', md: ":host{--background:var(--ion-background-color, #fff);--min-width:0;--min-height:0;--max-width:auto;--height:auto;--offset-x:0px;--offset-y:0px;left:0;right:0;top:0;bottom:0;display:-ms-flexbox;display:flex;position:fixed;-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center;outline:none;color:var(--ion-text-color, #000);z-index:1001}:host(.popover-nested){pointer-events:none}:host(.popover-nested) .popover-wrapper{pointer-events:auto}:host(.overlay-hidden){display:none}.popover-wrapper{z-index:10}.popover-content{display:-ms-flexbox;display:flex;position:absolute;-ms-flex-direction:column;flex-direction:column;width:var(--width);min-width:var(--min-width);max-width:var(--max-width);height:var(--height);min-height:var(--min-height);max-height:var(--max-height);background:var(--background);-webkit-box-shadow:var(--box-shadow);box-shadow:var(--box-shadow);overflow:auto;z-index:10}::slotted(.popover-viewport){--ion-safe-area-top:0px;--ion-safe-area-right:0px;--ion-safe-area-bottom:0px;--ion-safe-area-left:0px;display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column}:host(.popover-nested.popover-side-left){--offset-x:5px}:host(.popover-nested.popover-side-right){--offset-x:-5px}:host(.popover-nested.popover-side-start){--offset-x:5px}:host-context([dir=rtl]):host(.popover-nested.popover-side-start),:host-context([dir=rtl]).popover-nested.popover-side-start{--offset-x:-5px}@supports selector(:dir(rtl)){:host(.popover-nested.popover-side-start:dir(rtl)){--offset-x:-5px}}:host(.popover-nested.popover-side-end){--offset-x:-5px}:host-context([dir=rtl]):host(.popover-nested.popover-side-end),:host-context([dir=rtl]).popover-nested.popover-side-end{--offset-x:5px}@supports selector(:dir(rtl)){:host(.popover-nested.popover-side-end:dir(rtl)){--offset-x:5px}}:host{--width:250px;--max-height:90%;--box-shadow:0 5px 5px -3px rgba(0, 0, 0, 0.2), 0 8px 10px 1px rgba(0, 0, 0, 0.14), 0 3px 14px 2px rgba(0, 0, 0, 0.12);--backdrop-opacity:var(--ion-backdrop-opacity, 0.32)}.popover-content{border-radius:4px;-webkit-transform-origin:left top;transform-origin:left top}:host-context([dir=rtl]) .popover-content{-webkit-transform-origin:right top;transform-origin:right top}[dir=rtl] .popover-content{-webkit-transform-origin:right top;transform-origin:right top}@supports selector(:dir(rtl)){.popover-content:dir(rtl){-webkit-transform-origin:right top;transform-origin:right top}}.popover-viewport{-webkit-transition-delay:100ms;transition-delay:100ms}.popover-wrapper{opacity:0}" }; } }, [289, "ion-popover", { hasController: [4, "has-controller"], delegate: [16], overlayIndex: [2, "overlay-index"], enterAnimation: [16], leaveAnimation: [16], component: [1], componentProps: [16], keyboardClose: [4, "keyboard-close"], cssClass: [1, "css-class"], backdropDismiss: [4, "backdrop-dismiss"], event: [8], showBackdrop: [4, "show-backdrop"], translucent: [4], animated: [4], htmlAttributes: [16], triggerAction: [1, "trigger-action"], trigger: [1], size: [1], dismissOnSelect: [4, "dismiss-on-select"], reference: [1], side: [1], alignment: [1025], arrow: [4], isOpen: [4, "is-open"], keyboardEvents: [4, "keyboard-events"], focusTrap: [4, "focus-trap"], keepContentsMounted: [4, "keep-contents-mounted"], presented: [32], presentFromTrigger: [64], present: [64], dismiss: [64], getParentPopover: [64], onDidDismiss: [64], onWillDismiss: [64] }, void 0, { trigger: [{ onTriggerChange: 0 }], triggerAction: [{ onTriggerChange: 0 }], isOpen: [{ onIsOpenChange: 0 }] }]); var G4 = { ionPopoverDidPresent: "ionViewDidEnter", ionPopoverWillPresent: "ionViewWillEnter", ionPopoverWillDismiss: "ionViewWillLeave", ionPopoverDidDismiss: "ionViewDidLeave" }; function Z4() { "undefined" != typeof customElements && ["ion-popover", "ion-backdrop"].forEach(((t17) => { switch (t17) { case "ion-popover": customElements.get(Zn(t17)) || customElements.define(Zn(t17), U3); break; case "ion-backdrop": customElements.get(Zn(t17)) || c11(); } })); } // node_modules/@ionic/core/components/ion-popover.js var r7 = Z4; // node_modules/@ionic/core/components/ion-accordion.js var u9 = Dn(class extends I { constructor(t17) { super(), false !== t17 && this.__registerHost(), this.__attachShadow(), this.accordionGroupUpdateHandler = () => { const t18 = this.accordionGroupEl; if (t18) { const i16 = t18.value, o14 = this.value, e16 = Array.isArray(i16) ? i16.includes(o14) : i16 === o14; this.hasReceivedFirstUpdate && e16 !== (4 === this.state || 8 === this.state) && (this.hasInteracted = true), void 0 !== i16 && (this.hasReceivedFirstUpdate = true); } this.updateState(); }, this.state = 1, this.isNext = false, this.isPrevious = false, this.hasInteracted = false, this.hasEverBeenExpanded = false, this.hasReceivedFirstUpdate = false, this.value = "ion-accordion-" + b7++, this.disabled = false, this.readonly = false, this.toggleIcon = g3, this.toggleIconSlot = "end", this.setItemDefaults = () => { const t18 = this.getSlottedHeaderIonItem(); t18 && (t18.button = true, t18.detail = false, void 0 === t18.lines && (t18.lines = "full")); }, this.getSlottedHeaderIonItem = () => { const { headerEl: t18 } = this; if (!t18) return; const i16 = t18.querySelector("slot"); return i16 && void 0 !== i16.assignedElements ? i16.assignedElements().find(((t19) => "ION-ITEM" === t19.tagName)) : void 0; }, this.setAria = (t18 = false) => { const i16 = this.getSlottedHeaderIonItem(); if (!i16) return; const o14 = c(i16).querySelector("button"); o14 && o14.setAttribute("aria-expanded", "" + t18); }, this.slotToggleIcon = () => { const t18 = this.getSlottedHeaderIonItem(); if (!t18) return; const { toggleIconSlot: i16, toggleIcon: o14 } = this; if (t18.querySelector(".ion-accordion-toggle-icon")) return; const e16 = document.createElement("ion-icon"); e16.slot = i16, e16.lazy = false, e16.classList.add("ion-accordion-toggle-icon"), e16.icon = o14, e16.setAttribute("aria-hidden", "true"), t18.appendChild(e16); }, this.expandAccordion = () => { const { contentEl: t18, contentElWrapper: i16 } = this; if (void 0 === t18 || void 0 === i16) return this.state = 4, void (this.hasEverBeenExpanded = true); 4 !== this.state && (void 0 !== this.currentRaf && cancelAnimationFrame(this.currentRaf), this.hasEverBeenExpanded = true, this.shouldAnimate() ? d2((() => { this.state = 8, this.currentRaf = d2((() => __async(this, null, function* () { const o14 = i16.offsetHeight, e16 = i(t18, 2e3); t18.style.setProperty("max-height", o14 + "px"), yield e16, this.state = 4, t18.style.removeProperty("max-height"); }))); })) : this.state = 4); }, this.collapseAccordion = () => { const { contentEl: t18 } = this; void 0 !== t18 ? 1 !== this.state && (void 0 !== this.currentRaf && cancelAnimationFrame(this.currentRaf), this.shouldAnimate() ? this.currentRaf = d2((() => __async(this, null, function* () { t18.style.setProperty("max-height", t18.offsetHeight + "px"), d2((() => __async(this, null, function* () { const i16 = i(t18, 2e3); this.state = 2, yield i16, this.state = 1, t18.style.removeProperty("max-height"); }))); }))) : this.state = 1) : this.state = 1; }, this.shouldAnimate = () => !(!this.hasInteracted || !this.hasEverBeenExpanded) && ("undefined" != typeof window && (!matchMedia("(prefers-reduced-motion: reduce)").matches && !(!n.get("animated", true) || this.accordionGroupEl && !this.accordionGroupEl.animated))), this.updateState = () => __async(this, null, function* () { const t18 = this.accordionGroupEl, i16 = this.value; if (!t18) return; const o14 = t18.value; if (Array.isArray(o14) ? o14.includes(i16) : o14 === i16) this.expandAccordion(), this.isNext = this.isPrevious = false; else { this.collapseAccordion(); const t19 = this.getNextSibling(), i17 = null == t19 ? void 0 : t19.value; void 0 !== i17 && (this.isPrevious = Array.isArray(o14) ? o14.includes(i17) : o14 === i17); const e16 = this.getPreviousSibling(), n15 = null == e16 ? void 0 : e16.value; void 0 !== n15 && (this.isNext = Array.isArray(o14) ? o14.includes(n15) : o14 === n15); } }), this.getNextSibling = () => { if (!this.el) return; const t18 = this.el.nextElementSibling; return "ION-ACCORDION" === (null == t18 ? void 0 : t18.tagName) ? t18 : void 0; }, this.getPreviousSibling = () => { if (!this.el) return; const t18 = this.el.previousElementSibling; return "ION-ACCORDION" === (null == t18 ? void 0 : t18.tagName) ? t18 : void 0; }; } valueChanged() { this.updateState(); } connectedCallback() { var t17; const i16 = this.accordionGroupEl = null === (t17 = this.el) || void 0 === t17 ? void 0 : t17.closest("ion-accordion-group"); i16 && (this.updateState(), l(i16, "ionValueChange", this.accordionGroupUpdateHandler)); } disconnectedCallback() { const t17 = this.accordionGroupEl; t17 && u2(t17, "ionValueChange", this.accordionGroupUpdateHandler); } componentDidLoad() { this.setItemDefaults(), this.slotToggleIcon(), d2((() => { this.setAria(4 === this.state || 8 === this.state); })); } toggleExpanded() { const { accordionGroupEl: t17, disabled: i16, readonly: o14, value: e16, state: n15 } = this; i16 || o14 || (this.hasInteracted = true, !t17) || t17.requestAccordionToggle(e16, 1 === n15 || 2 === n15); } render() { const { disabled: t17, readonly: i16 } = this, o14 = g(this), e16 = 4 === this.state || 8 === this.state, a17 = e16 ? "header expanded" : "header", c36 = e16 ? "content expanded" : "content"; return this.setAria(e16), Ct(It, { key: "5c58b3809a4636d69f0f9957ecf1f50c42cdfc03", class: { [o14]: true, "accordion-expanding": 8 === this.state, "accordion-expanded": 4 === this.state, "accordion-collapsing": 2 === this.state, "accordion-collapsed": 1 === this.state, "accordion-next": this.isNext, "accordion-previous": this.isPrevious, "accordion-disabled": t17, "accordion-readonly": i16, "accordion-animated": this.shouldAnimate() }, tabindex: t17 ? "-1" : void 0 }, Ct("div", { key: "f76bc02347639b41c9a5be8a9488a8be8559cba7", onClick: () => this.toggleExpanded(), id: "header", part: a17, "aria-controls": "content", ref: (t18) => this.headerEl = t18 }, Ct("slot", { key: "e01744bf0af3200239e82c60c632ed36295db2da", name: "header" })), Ct("div", { key: "c613345a7e244ee361f76ff4ebed139d2a1b9572", id: "content", part: c36, role: "region", "aria-labelledby": "header", ref: (t18) => this.contentEl = t18 }, Ct("div", { key: "943b65d9a129759b4c213974ae5ed777b5f6166e", id: "content-wrapper", ref: (t18) => this.contentElWrapper = t18 }, Ct("slot", { key: "b0df520dad9d5557df63a35f8206ada4a765d238", name: "content" })))); } static get delegatesFocus() { return true; } get el() { return this; } static get watchers() { return { value: [{ valueChanged: 0 }] }; } static get style() { return { ios: ":host{display:block;position:relative;width:100%;background-color:var(--ion-background-color, #ffffff);overflow:hidden;z-index:0}:host(.accordion-expanding) ::slotted(ion-item[slot=header]),:host(.accordion-expanded) ::slotted(ion-item[slot=header]){--border-width:0px}:host(.accordion-animated){-webkit-transition:all 300ms cubic-bezier(0.25, 0.8, 0.5, 1);transition:all 300ms cubic-bezier(0.25, 0.8, 0.5, 1)}:host(.accordion-animated) #content{-webkit-transition:max-height 300ms cubic-bezier(0.25, 0.8, 0.5, 1);transition:max-height 300ms cubic-bezier(0.25, 0.8, 0.5, 1)}#content{overflow:hidden;will-change:max-height}:host(.accordion-collapsing) #content{max-height:0 !important}:host(.accordion-collapsed) #content{display:none}:host(.accordion-expanding) #content{max-height:0}:host(.accordion-expanding) #content-wrapper{overflow:auto}:host(.accordion-disabled) #header,:host(.accordion-readonly) #header,:host(.accordion-disabled) #content,:host(.accordion-readonly) #content{pointer-events:none}:host(.accordion-disabled) #header,:host(.accordion-disabled) #content{opacity:0.4}@media (prefers-reduced-motion: reduce){:host,#content{-webkit-transition:none !important;transition:none !important}}:host(.accordion-next) ::slotted(ion-item[slot=header]){--border-width:0.55px 0px 0.55px 0px}", md: ":host{display:block;position:relative;width:100%;background-color:var(--ion-background-color, #ffffff);overflow:hidden;z-index:0}:host(.accordion-expanding) ::slotted(ion-item[slot=header]),:host(.accordion-expanded) ::slotted(ion-item[slot=header]){--border-width:0px}:host(.accordion-animated){-webkit-transition:all 300ms cubic-bezier(0.25, 0.8, 0.5, 1);transition:all 300ms cubic-bezier(0.25, 0.8, 0.5, 1)}:host(.accordion-animated) #content{-webkit-transition:max-height 300ms cubic-bezier(0.25, 0.8, 0.5, 1);transition:max-height 300ms cubic-bezier(0.25, 0.8, 0.5, 1)}#content{overflow:hidden;will-change:max-height}:host(.accordion-collapsing) #content{max-height:0 !important}:host(.accordion-collapsed) #content{display:none}:host(.accordion-expanding) #content{max-height:0}:host(.accordion-expanding) #content-wrapper{overflow:auto}:host(.accordion-disabled) #header,:host(.accordion-readonly) #header,:host(.accordion-disabled) #content,:host(.accordion-readonly) #content{pointer-events:none}:host(.accordion-disabled) #header,:host(.accordion-disabled) #content{opacity:0.4}@media (prefers-reduced-motion: reduce){:host,#content{-webkit-transition:none !important;transition:none !important}}" }; } }, [305, "ion-accordion", { value: [1], disabled: [4], readonly: [4], toggleIcon: [1, "toggle-icon"], toggleIconSlot: [1, "toggle-icon-slot"], state: [32], isNext: [32], isPrevious: [32], hasInteracted: [32] }, void 0, { value: [{ valueChanged: 0 }] }]); var b7 = 0; var f10 = function() { "undefined" != typeof customElements && ["ion-accordion", "ion-icon"].forEach(((t17) => { switch (t17) { case "ion-accordion": customElements.get(Zn(t17)) || customElements.define(Zn(t17), u9); break; case "ion-icon": customElements.get(Zn(t17)) || y6(); } })); }; // node_modules/@ionic/core/components/ion-accordion-group.js var d7 = Dn(class extends I { constructor(o14) { super(), false !== o14 && this.__registerHost(), this.__attachShadow(), this.ionChange = Jt(this, "ionChange", 7), this.ionValueChange = Jt(this, "ionValueChange", 7), this.animated = true, this.disabled = false, this.readonly = false, this.expand = "compact"; } valueChanged() { const { value: o14, multiple: n15 } = this; !n15 && Array.isArray(o14) && u(`[ion-accordion-group] - An array of values was passed, but multiple is "false". This is incorrect usage and may result in unexpected behaviors. To dismiss this warning, pass a string to the "value" property when multiple="false". Value Passed: [${o14.map(((o15) => `'${o15}'`)).join(", ")}] `, this.el), this.ionValueChange.emit({ value: this.value }); } disabledChanged() { return __async(this, null, function* () { const { disabled: o14 } = this, n15 = yield this.getAccordions(); for (const i16 of n15) i16.disabled = o14; }); } readonlyChanged() { return __async(this, null, function* () { const { readonly: o14 } = this, n15 = yield this.getAccordions(); for (const i16 of n15) i16.readonly = o14; }); } onKeydown(o14) { return __async(this, null, function* () { const n15 = document.activeElement; if (!n15) return; if (!n15.closest('ion-accordion [slot="header"]')) return; const i16 = "ION-ACCORDION" === n15.tagName ? n15 : n15.closest("ion-accordion"); if (!i16) return; if (i16.closest("ion-accordion-group") !== this.el) return; const t17 = yield this.getAccordions(), e16 = t17.findIndex(((o15) => o15 === i16)); if (-1 === e16) return; let a17; "ArrowDown" === o14.key ? a17 = this.findNextAccordion(t17, e16) : "ArrowUp" === o14.key ? a17 = this.findPreviousAccordion(t17, e16) : "Home" === o14.key ? a17 = t17[0] : "End" === o14.key && (a17 = t17[t17.length - 1]), void 0 !== a17 && a17 !== n15 && a17.focus(); }); } componentDidLoad() { return __async(this, null, function* () { this.disabled && this.disabledChanged(), this.readonly && this.readonlyChanged(), this.valueChanged(); }); } setValue(o14) { const n15 = this.value = o14; this.ionChange.emit({ value: n15 }); } requestAccordionToggle(o14, n15) { return __async(this, null, function* () { const { multiple: i16, value: t17, readonly: e16, disabled: a17 } = this; if (!e16 && !a17) if (n15) if (i16) { const n16 = null != t17 ? t17 : [], i17 = Array.isArray(n16) ? n16 : [n16]; void 0 === i17.find(((n17) => n17 === o14)) && void 0 !== o14 && this.setValue([...i17, o14]); } else this.setValue(o14); else if (i16) { const n16 = null != t17 ? t17 : []; this.setValue((Array.isArray(n16) ? n16 : [n16]).filter(((n17) => n17 !== o14))); } else this.setValue(void 0); }); } findNextAccordion(o14, n15) { const i16 = o14[n15 + 1]; return void 0 === i16 ? o14[0] : i16; } findPreviousAccordion(o14, n15) { const i16 = o14[n15 - 1]; return void 0 === i16 ? o14[o14.length - 1] : i16; } getAccordions() { return __async(this, null, function* () { return Array.from(this.el.querySelectorAll(":scope > ion-accordion")); }); } render() { const { disabled: o14, readonly: n15, expand: i16 } = this, t17 = g(this); return Ct(It, { key: "d1a79a93179474fbba66fcf11a92f4871dacc975", class: { [t17]: true, "accordion-group-disabled": o14, "accordion-group-readonly": n15, ["accordion-group-expand-" + i16]: true }, role: "presentation" }, Ct("slot", { key: "e6b8954b686d1fbb4fc92adb07fddc97a24b0a31" })); } get el() { return this; } static get watchers() { return { value: [{ valueChanged: 0 }], disabled: [{ disabledChanged: 0 }], readonly: [{ readonlyChanged: 0 }] }; } static get style() { return { ios: ":host{display:block}:host(.accordion-group-expand-inset){-webkit-margin-start:16px;margin-inline-start:16px;-webkit-margin-end:16px;margin-inline-end:16px;margin-top:16px;margin-bottom:16px}:host(.accordion-group-expand-inset) ::slotted(ion-accordion.accordion-expanding),:host(.accordion-group-expand-inset) ::slotted(ion-accordion.accordion-expanded){border-bottom:none}", md: ":host{display:block}:host(.accordion-group-expand-inset){-webkit-margin-start:16px;margin-inline-start:16px;-webkit-margin-end:16px;margin-inline-end:16px;margin-top:16px;margin-bottom:16px}:host(.accordion-group-expand-inset) ::slotted(ion-accordion){-webkit-box-shadow:0px 3px 1px -2px rgba(0, 0, 0, 0.2), 0px 2px 2px 0px rgba(0, 0, 0, 0.14), 0px 1px 5px 0px rgba(0, 0, 0, 0.12);box-shadow:0px 3px 1px -2px rgba(0, 0, 0, 0.2), 0px 2px 2px 0px rgba(0, 0, 0, 0.14), 0px 1px 5px 0px rgba(0, 0, 0, 0.12)}:host(.accordion-group-expand-inset) ::slotted(ion-accordion.accordion-expanding),:host(.accordion-group-expand-inset) ::slotted(ion-accordion.accordion-expanded){margin-left:0;margin-right:0;margin-top:16px;margin-bottom:16px;border-radius:6px}:host(.accordion-group-expand-inset) ::slotted(ion-accordion.accordion-previous){border-end-end-radius:6px;border-end-start-radius:6px}:host(.accordion-group-expand-inset) ::slotted(ion-accordion.accordion-next){border-start-start-radius:6px;border-start-end-radius:6px}:host(.accordion-group-expand-inset) ::slotted(ion-accordion):first-of-type{margin-left:0;margin-right:0;margin-top:0;margin-bottom:0}" }; } }, [289, "ion-accordion-group", { animated: [4], multiple: [4], value: [1025], disabled: [4], readonly: [4], expand: [1], requestAccordionToggle: [64], getAccordions: [64] }, [[0, "keydown", "onKeydown"]], { value: [{ valueChanged: 0 }], disabled: [{ disabledChanged: 0 }], readonly: [{ readonlyChanged: 0 }] }]); var p9 = function() { "undefined" != typeof customElements && ["ion-accordion-group"].forEach(((o14) => { "ion-accordion-group" === o14 && (customElements.get(Zn(o14)) || customElements.define(Zn(o14), d7)); })); }; // node_modules/@ionic/core/components/p-cyNmxje6.js var n7; var s10; !(function(t17) { t17.Heavy = "HEAVY", t17.Medium = "MEDIUM", t17.Light = "LIGHT"; })(n7 || (n7 = {})), (function(t17) { t17.Success = "SUCCESS", t17.Warning = "WARNING", t17.Error = "ERROR"; })(s10 || (s10 = {})); var i10 = { getEngine() { const n15 = r3(); if (null == n15 ? void 0 : n15.isPluginAvailable("Haptics")) return n15.Plugins.Haptics; }, available() { if (!this.getEngine()) return false; const n15 = r3(); return "web" !== (null == n15 ? void 0 : n15.getPlatform()) || "undefined" != typeof navigator && void 0 !== navigator.vibrate; }, impact(t17) { const n15 = this.getEngine(); n15 && n15.impact({ style: t17.style }); }, notification(t17) { const n15 = this.getEngine(); n15 && n15.notification({ type: t17.type }); }, selection() { this.impact({ style: n7.Light }); }, selectionStart() { const t17 = this.getEngine(); t17 && t17.selectionStart(); }, selectionChanged() { const t17 = this.getEngine(); t17 && t17.selectionChanged(); }, selectionEnd() { const t17 = this.getEngine(); t17 && t17.selectionEnd(); } }; var o10 = () => i10.available(); var e10 = () => { o10() && i10.selection(); }; var a9 = () => { o10() && i10.selectionStart(); }; var c12 = () => { o10() && i10.selectionChanged(); }; var r8 = () => { o10() && i10.selectionEnd(); }; var l10 = (t17) => { o10() && i10.impact(t17); }; // node_modules/@ionic/core/components/p-C4jPsTQa.js var s11 = (s23, a17) => { let i16, c36; const d25 = (t17, o14, e16) => { if ("undefined" == typeof document) return; const n15 = document.elementFromPoint(t17, o14); n15 && a17(n15) && !n15.disabled ? n15 !== i16 && (f27(), m28(n15, e16)) : f27(); }, m28 = (o14, e16) => { i16 = o14, c36 || (c36 = i16); const n15 = i16; P((() => n15.classList.add("ion-activated"))), e16(); }, f27 = (o14 = false) => { if (!i16) return; const e16 = i16; P((() => e16.classList.remove("ion-activated"))), o14 && c36 !== i16 && i16.click(), i16 = void 0; }; return s4({ el: s23, gestureName: "buttonActiveDrag", threshold: 0, onStart: (t17) => d25(t17.currentX, t17.currentY, a9), onMove: (t17) => d25(t17.currentX, t17.currentY, c12), onEnd: () => { f27(true), r8(), c36 = void 0; } }); }; // node_modules/@ionic/core/components/p-1KVKSLu5.js var D4 = (t17) => { const o14 = r(), e16 = r(), i16 = r(); return e16.addElement(t17.querySelector("ion-backdrop")).fromTo("opacity", 0.01, "var(--backdrop-opacity)").beforeStyles({ "pointer-events": "none" }).afterClearStyles(["pointer-events"]), i16.addElement(t17.querySelector(".action-sheet-wrapper")).fromTo("transform", "translateY(100%)", "translateY(0%)"), o14.addElement(t17).easing("cubic-bezier(.36,.66,.04,1)").duration(400).addAnimation([e16, i16]); }; var A2 = (t17) => { const o14 = r(), e16 = r(), i16 = r(); return e16.addElement(t17.querySelector("ion-backdrop")).fromTo("opacity", "var(--backdrop-opacity)", 0), i16.addElement(t17.querySelector(".action-sheet-wrapper")).fromTo("transform", "translateY(0%)", "translateY(100%)"), o14.addElement(t17).easing("cubic-bezier(.36,.66,.04,1)").duration(450).addAnimation([e16, i16]); }; var O5 = (t17) => { const o14 = r(), e16 = r(), i16 = r(); return e16.addElement(t17.querySelector("ion-backdrop")).fromTo("opacity", 0.01, "var(--backdrop-opacity)").beforeStyles({ "pointer-events": "none" }).afterClearStyles(["pointer-events"]), i16.addElement(t17.querySelector(".action-sheet-wrapper")).fromTo("transform", "translateY(100%)", "translateY(0%)"), o14.addElement(t17).easing("cubic-bezier(.36,.66,.04,1)").duration(400).addAnimation([e16, i16]); }; var I4 = (t17) => { const o14 = r(), e16 = r(), i16 = r(); return e16.addElement(t17.querySelector("ion-backdrop")).fromTo("opacity", "var(--backdrop-opacity)", 0), i16.addElement(t17.querySelector(".action-sheet-wrapper")).fromTo("transform", "translateY(0%)", "translateY(100%)"), o14.addElement(t17).easing("cubic-bezier(.36,.66,.04,1)").duration(450).addAnimation([e16, i16]); }; var B6 = Dn(class extends I { constructor(t17) { super(), false !== t17 && this.__registerHost(), this.didPresent = Jt(this, "ionActionSheetDidPresent", 7), this.willPresent = Jt(this, "ionActionSheetWillPresent", 7), this.willDismiss = Jt(this, "ionActionSheetWillDismiss", 7), this.didDismiss = Jt(this, "ionActionSheetDidDismiss", 7), this.didPresentShorthand = Jt(this, "didPresent", 7), this.willPresentShorthand = Jt(this, "willPresent", 7), this.willDismissShorthand = Jt(this, "willDismiss", 7), this.didDismissShorthand = Jt(this, "didDismiss", 7), this.delegateController = X2(this), this.lockController = t11(), this.triggerController = Y2(), this.hasRadioButtons = false, this.presented = false, this.hasController = false, this.keyboardClose = true, this.buttons = [], this.backdropDismiss = true, this.translucent = false, this.animated = true, this.isOpen = false, this.onBackdropTap = () => { this.dismiss(void 0, H3); }, this.dispatchCancelHandler = (t18) => { if (Q2(t18.detail.role)) { const t19 = this.getButtons().find(((t20) => "cancel" === t20.role)); this.callButtonHandler(t19); } }; } buttonsChanged() { const t17 = this.getRadioButtons(); if (this.hasRadioButtons = t17.length > 0, this.hasRadioButtons) { const o14 = t17.find(((t18) => { var o15; return "true" === (null === (o15 = t18.htmlAttributes) || void 0 === o15 ? void 0 : o15["aria-checked"]); })); if (o14) { const t18 = this.getButtons().indexOf(o14); this.activeRadioId = this.getButtonId(o14, t18); } } } onIsOpenChange(t17, o14) { true === t17 && false === o14 ? this.present() : false === t17 && true === o14 && this.dismiss(); } triggerChanged() { const { trigger: t17, el: o14, triggerController: e16 } = this; t17 && e16.addClickListener(o14, t17); } present() { return __async(this, null, function* () { const t17 = yield this.lockController.lock(); yield this.delegateController.attachViewToDom(), yield $(this, "actionSheetEnter", D4, O5), t17(); }); } dismiss(t17, o14) { return __async(this, null, function* () { const e16 = yield this.lockController.lock(), i16 = yield J(this, t17, o14, "actionSheetLeave", A2, I4); return i16 && this.delegateController.removeViewFromDom(), e16(), i16; }); } onDidDismiss() { return q3(this.el, "ionActionSheetDidDismiss"); } onWillDismiss() { return q3(this.el, "ionActionSheetWillDismiss"); } buttonClick(t17) { return __async(this, null, function* () { const o14 = t17.role; return Q2(o14) ? this.dismiss(t17.data, o14) : (yield this.callButtonHandler(t17)) ? this.dismiss(t17.data, t17.role) : Promise.resolve(); }); } callButtonHandler(t17) { return __async(this, null, function* () { return !t17 || false !== (yield _2(t17.handler)); }); } getButtons() { return this.buttons.map(((t17) => "string" == typeof t17 ? { text: t17 } : t17)); } getRadioButtons() { return this.getButtons().filter(((t17) => { var o14; const e16 = null === (o14 = t17.htmlAttributes) || void 0 === o14 ? void 0 : o14.role; return "radio" === e16 && !Q2(e16); })); } selectRadioButton(t17) { const o14 = this.getButtonId(t17); this.activeRadioId = o14; } getButtonId(t17, o14) { if (t17.id) return t17.id; const e16 = this.getButtons(), i16 = void 0 !== o14 ? o14 : e16.indexOf(t17); return `action-sheet-button-${this.overlayIndex}-${i16}`; } onKeydown(t17) { if (!this.hasRadioButtons || !this.presented) return; const o14 = t17.target; if (!this.el.contains(o14) || !o14.classList.contains("action-sheet-button") || "radio" !== o14.getAttribute("role")) return; const e16 = Array.from(this.el.querySelectorAll('.action-sheet-button[role="radio"]')).filter(((t18) => !t18.disabled)), i16 = e16.findIndex(((t18) => t18.id === o14.id)); if (-1 === i16) return; const n15 = this.getButtons(), a17 = this.getRadioButtons(), s23 = /* @__PURE__ */ new Map(); let r32; if (a17.forEach(((t18) => { const o15 = n15.indexOf(t18), e17 = this.getButtonId(t18, o15); s23.set(e17, t18); })), ["ArrowDown", "ArrowRight"].includes(t17.key)) t17.preventDefault(), t17.stopPropagation(), r32 = i16 === e16.length - 1 ? e16[0] : e16[i16 + 1]; else if (["ArrowUp", "ArrowLeft"].includes(t17.key)) t17.preventDefault(), t17.stopPropagation(), r32 = 0 === i16 ? e16[e16.length - 1] : e16[i16 - 1]; else if (" " === t17.key || "Enter" === t17.key) { t17.preventDefault(), t17.stopPropagation(); const e17 = s23.get(o14.id); return void (e17 && (this.selectRadioButton(e17), this.buttonClick(e17))); } if (r32) { const t18 = s23.get(r32.id); t18 && (this.selectRadioButton(t18), r32.focus()); } } connectedCallback() { I3(this.el), this.triggerChanged(); } disconnectedCallback() { this.gesture && (this.gesture.destroy(), this.gesture = void 0), this.triggerController.removeClickListener(); } componentWillLoad() { var t17; (null === (t17 = this.htmlAttributes) || void 0 === t17 ? void 0 : t17.id) || N(this.el), this.buttonsChanged(); } componentDidLoad() { const { groupEl: t17, wrapperEl: o14 } = this; !this.gesture && "ios" === g(this) && o14 && t17 && W((() => { t17.scrollHeight > t17.clientHeight || (this.gesture = s11(o14, ((t18) => t18.classList.contains("action-sheet-button"))), this.gesture.enable(true)); })), true === this.isOpen && d2((() => this.present())), this.triggerChanged(); } renderActionSheetButtons(t17) { const o14 = g(this), { activeRadioId: e16 } = this; return t17.map(((t18, i16) => { var a17; const s23 = "radio" === (null === (a17 = t18.htmlAttributes) || void 0 === a17 ? void 0 : a17.role), r32 = this.getButtonId(t18, i16), c36 = this.getRadioButtons(), d25 = s23 && r32 === e16; let l27; l27 = s23 ? d25 || !e16 && s23 && t18 === c36[0] ? 0 : -1 : void 0; const h21 = Object.assign({}, t18.htmlAttributes); return s23 && (h21["aria-checked"] = d25 ? "true" : "false"), Ct("button", Object.assign({}, h21, { role: s23 ? "radio" : void 0, type: "button", id: r32, class: Object.assign(Object.assign({}, E5(t18)), { "action-sheet-selected": d25 }), onClick: () => { s23 && this.selectRadioButton(t18), this.buttonClick(t18); }, disabled: t18.disabled, tabIndex: l27 }), Ct("span", { class: "action-sheet-button-inner" }, t18.icon && Ct("ion-icon", { icon: t18.icon, "aria-hidden": "true", lazy: false, class: "action-sheet-icon" }), t18.text), "md" === o14 && Ct("ion-ripple-effect", null)); })); } render() { const { header: t17, htmlAttributes: o14, overlayIndex: e16, hasRadioButtons: i16 } = this, s23 = g(this), r32 = this.getButtons(), c36 = r32.find(((t18) => "cancel" === t18.role)), d25 = r32.filter(((t18) => "cancel" !== t18.role)), l27 = `action-sheet-${e16}-header`; return Ct(It, Object.assign({ key: "173fcff5b1da7c33c267de4667591c946b8c8d03", role: "dialog", "aria-modal": "true", "aria-labelledby": void 0 !== t17 ? l27 : null, tabindex: "-1" }, o14, { style: { zIndex: `${2e4 + this.overlayIndex}` }, class: Object.assign(Object.assign({ [s23]: true }, r5(this.cssClass)), { "overlay-hidden": true, "action-sheet-translucent": this.translucent }), onIonActionSheetWillDismiss: this.dispatchCancelHandler, onIonBackdropTap: this.onBackdropTap }), Ct("ion-backdrop", { key: "521ede659f747864f6c974e09016436eceb7158c", tappable: this.backdropDismiss }), Ct("div", { key: "7a7946fc434bc444f16a70638f5e948c69d33fcd", tabindex: "0", "aria-hidden": "true" }), Ct("div", { key: "bcff39a580489dbafa255842e57aa8602c6d0f18", class: "action-sheet-wrapper ion-overlay-wrapper", ref: (t18) => this.wrapperEl = t18 }, Ct("div", { key: "84bba13ce14261f0f0daa3f9c77648c9e7f36e0e", class: "action-sheet-container" }, Ct("div", { key: "d9c8ac404fd6719a7adf8cb36549f67616f9a0c4", class: "action-sheet-group", ref: (t18) => this.groupEl = t18, role: i16 ? "radiogroup" : void 0 }, void 0 !== t17 && Ct("div", { key: "180433a8ad03ef5c54728a1a8f34715b6921d658", id: l27, class: { "action-sheet-title": true, "action-sheet-has-sub-title": void 0 !== this.subHeader } }, t17, this.subHeader && Ct("div", { key: "7138e79e61b1a8f42bc5a9175c57fa2f15d7ec5a", class: "action-sheet-sub-title" }, this.subHeader)), this.renderActionSheetButtons(d25)), c36 && Ct("div", { key: "b617c722f5b8028d73ed34b69310f312c65f34a7", class: "action-sheet-group action-sheet-group-cancel" }, Ct("button", Object.assign({ key: "d0dd876fc48815df3710413c201c0b445a8e16c0" }, c36.htmlAttributes, { type: "button", class: E5(c36), onClick: () => this.buttonClick(c36) }), Ct("span", { key: "e7b960157cc6fc5fe92a12090b2be55e8ae072e4", class: "action-sheet-button-inner" }, c36.icon && Ct("ion-icon", { key: "05498ffc60cab911dbff0ecbc6168dea59ada9a5", icon: c36.icon, "aria-hidden": "true", lazy: false, class: "action-sheet-icon" }), c36.text), "md" === s23 && Ct("ion-ripple-effect", { key: "3d401346cea301be4ca03671f7370f6f4b0b6bde" }))))), Ct("div", { key: "971f3c5fcc07f36c28eb469a47ec0290c692e139", tabindex: "0", "aria-hidden": "true" })); } get el() { return this; } static get watchers() { return { buttons: [{ buttonsChanged: 0 }], isOpen: [{ onIsOpenChange: 0 }], trigger: [{ triggerChanged: 0 }] }; } static get style() { return { ios: '.sc-ion-action-sheet-ios-h{--color:initial;--button-color-activated:var(--button-color);--button-color-focused:var(--button-color);--button-color-hover:var(--button-color);--button-color-selected:var(--button-color);--min-width:auto;--width:100%;--max-width:500px;--min-height:auto;--height:auto;--max-height:calc(100% - (var(--ion-safe-area-top) + var(--ion-safe-area-bottom)));-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;left:0;right:0;top:0;bottom:0;display:block;position:fixed;outline:none;font-family:var(--ion-font-family, inherit);-ms-touch-action:none;touch-action:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;z-index:1001}.overlay-hidden.sc-ion-action-sheet-ios-h{display:none}.action-sheet-wrapper.sc-ion-action-sheet-ios{left:0;right:0;bottom:0;-webkit-transform:translate3d(0, 100%, 0);transform:translate3d(0, 100%, 0);display:block;position:absolute;width:var(--width);min-width:var(--min-width);max-width:var(--max-width);height:var(--height);min-height:var(--min-height);max-height:var(--max-height);z-index:10;pointer-events:none}.action-sheet-button.sc-ion-action-sheet-ios{display:block;position:relative;width:100%;border:0;outline:none;background:var(--button-background);color:var(--button-color);font-family:inherit;overflow:hidden}.action-sheet-button.sc-ion-action-sheet-ios:disabled{color:var(--button-color-disabled);opacity:0.4}.action-sheet-button-inner.sc-ion-action-sheet-ios{display:-ms-flexbox;display:flex;position:relative;-ms-flex-flow:row nowrap;flex-flow:row nowrap;-ms-flex-negative:0;flex-shrink:0;-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center;pointer-events:none;width:100%;height:100%;z-index:1}.action-sheet-container.sc-ion-action-sheet-ios{display:-ms-flexbox;display:flex;-ms-flex-flow:column;flex-flow:column;-ms-flex-pack:end;justify-content:flex-end;height:100%;max-height:calc(100vh - (var(--ion-safe-area-top, 0) + var(--ion-safe-area-bottom, 0)));max-height:calc(100dvh - (var(--ion-safe-area-top, 0) + var(--ion-safe-area-bottom, 0)))}.action-sheet-group.sc-ion-action-sheet-ios{-ms-flex-negative:2;flex-shrink:2;overscroll-behavior-y:contain;overflow-y:auto;-webkit-overflow-scrolling:touch;pointer-events:all;background:var(--background)}@media (any-pointer: coarse){.action-sheet-group.sc-ion-action-sheet-ios::-webkit-scrollbar{display:none}}.action-sheet-group-cancel.sc-ion-action-sheet-ios{-ms-flex-negative:0;flex-shrink:0;overflow:hidden}.action-sheet-button.sc-ion-action-sheet-ios::after{left:0;right:0;top:0;bottom:0;position:absolute;content:"";opacity:0}.action-sheet-selected.sc-ion-action-sheet-ios{color:var(--button-color-selected)}.action-sheet-selected.sc-ion-action-sheet-ios::after{background:var(--button-background-selected);opacity:var(--button-background-selected-opacity)}.action-sheet-button.ion-activated.sc-ion-action-sheet-ios{color:var(--button-color-activated)}.action-sheet-button.ion-activated.sc-ion-action-sheet-ios::after{background:var(--button-background-activated);opacity:var(--button-background-activated-opacity)}.action-sheet-button.ion-focused.sc-ion-action-sheet-ios{color:var(--button-color-focused)}.action-sheet-button.ion-focused.sc-ion-action-sheet-ios::after{background:var(--button-background-focused);opacity:var(--button-background-focused-opacity)}@media (any-hover: hover){.action-sheet-button.sc-ion-action-sheet-ios:not(:disabled):hover{color:var(--button-color-hover)}.action-sheet-button.sc-ion-action-sheet-ios:not(:disabled):hover::after{background:var(--button-background-hover);opacity:var(--button-background-hover-opacity)}}.sc-ion-action-sheet-ios-h{--background:var(--ion-overlay-background-color, var(--ion-color-step-100, var(--ion-background-color-step-100, #f9f9f9)));--backdrop-opacity:var(--ion-backdrop-opacity, 0.4);--button-background:linear-gradient(0deg, rgba(var(--ion-text-color-rgb, 0, 0, 0), 0.08), rgba(var(--ion-text-color-rgb, 0, 0, 0), 0.08) 50%, transparent 50%) bottom/100% 1px no-repeat transparent;--button-background-activated:var(--ion-text-color, #000);--button-background-activated-opacity:.08;--button-background-hover:currentColor;--button-background-hover-opacity:.04;--button-background-focused:currentColor;--button-background-focused-opacity:.12;--button-background-selected:var(--ion-color-step-150, var(--ion-background-color-step-150, var(--ion-background-color, #fff)));--button-background-selected-opacity:1;--button-color:var(--ion-color-primary, #0054e9);--button-color-disabled:var(--ion-color-step-850, var(--ion-text-color-step-150, #262626));--color:var(--ion-color-step-400, var(--ion-text-color-step-600, #999999));text-align:center}.action-sheet-wrapper.sc-ion-action-sheet-ios{-webkit-margin-start:auto;margin-inline-start:auto;-webkit-margin-end:auto;margin-inline-end:auto;margin-top:var(--ion-safe-area-top, 0);padding-bottom:var(--ion-safe-area-bottom, 0);-webkit-box-sizing:content-box;box-sizing:content-box}.action-sheet-container.sc-ion-action-sheet-ios{-webkit-padding-start:8px;padding-inline-start:8px;-webkit-padding-end:8px;padding-inline-end:8px;padding-top:0;padding-bottom:0}.action-sheet-group.sc-ion-action-sheet-ios{border-radius:13px;margin-bottom:8px}.action-sheet-group.sc-ion-action-sheet-ios:first-child{margin-top:10px}.action-sheet-group.sc-ion-action-sheet-ios:last-child{margin-bottom:10px}@supports ((-webkit-backdrop-filter: blur(0)) or (backdrop-filter: blur(0))){.action-sheet-translucent.sc-ion-action-sheet-ios-h .action-sheet-group.sc-ion-action-sheet-ios{background-color:transparent;-webkit-backdrop-filter:saturate(280%) blur(20px);backdrop-filter:saturate(280%) blur(20px)}.action-sheet-translucent.sc-ion-action-sheet-ios-h .action-sheet-title.sc-ion-action-sheet-ios,.action-sheet-translucent.sc-ion-action-sheet-ios-h .action-sheet-button.sc-ion-action-sheet-ios{background-color:transparent;background-image:-webkit-gradient(linear, left bottom, left top, from(rgba(var(--ion-background-color-rgb, 255, 255, 255), 0.8)), to(rgba(var(--ion-background-color-rgb, 255, 255, 255), 0.8))), -webkit-gradient(linear, left bottom, left top, from(rgba(var(--ion-background-color-rgb, 255, 255, 255), 0.4)), color-stop(50%, rgba(var(--ion-background-color-rgb, 255, 255, 255), 0.4)), color-stop(50%, rgba(var(--ion-background-color-rgb, 255, 255, 255), 0.8)));background-image:linear-gradient(0deg, rgba(var(--ion-background-color-rgb, 255, 255, 255), 0.8), rgba(var(--ion-background-color-rgb, 255, 255, 255), 0.8) 100%), linear-gradient(0deg, rgba(var(--ion-background-color-rgb, 255, 255, 255), 0.4), rgba(var(--ion-background-color-rgb, 255, 255, 255), 0.4) 50%, rgba(var(--ion-background-color-rgb, 255, 255, 255), 0.8) 50%);background-repeat:no-repeat;background-position:top, bottom;background-size:100% calc(100% - 1px), 100% 1px;-webkit-backdrop-filter:saturate(120%);backdrop-filter:saturate(120%)}.action-sheet-translucent.sc-ion-action-sheet-ios-h .action-sheet-button.ion-activated.sc-ion-action-sheet-ios{background-color:rgba(var(--ion-background-color-rgb, 255, 255, 255), 0.7);background-image:none}.action-sheet-translucent.sc-ion-action-sheet-ios-h .action-sheet-cancel.sc-ion-action-sheet-ios{background:var(--button-background-selected)}}.action-sheet-title.sc-ion-action-sheet-ios{background:-webkit-gradient(linear, left bottom, left top, from(rgba(var(--ion-text-color-rgb, 0, 0, 0), 0.08)), color-stop(50%, rgba(var(--ion-text-color-rgb, 0, 0, 0), 0.08)), color-stop(50%, transparent)) bottom/100% 1px no-repeat transparent;background:linear-gradient(0deg, rgba(var(--ion-text-color-rgb, 0, 0, 0), 0.08), rgba(var(--ion-text-color-rgb, 0, 0, 0), 0.08) 50%, transparent 50%) bottom/100% 1px no-repeat transparent}.action-sheet-title.sc-ion-action-sheet-ios{-webkit-padding-start:10px;padding-inline-start:10px;-webkit-padding-end:10px;padding-inline-end:10px;padding-top:14px;padding-bottom:13px;color:var(--color, var(--ion-color-step-400, var(--ion-text-color-step-600, #999999)));font-size:max(13px, 0.8125rem);font-weight:400;text-align:center}.action-sheet-title.action-sheet-has-sub-title.sc-ion-action-sheet-ios{font-weight:600}.action-sheet-sub-title.sc-ion-action-sheet-ios{padding-left:0;padding-right:0;padding-top:6px;padding-bottom:0;font-size:max(13px, 0.8125rem);font-weight:400}.action-sheet-button.sc-ion-action-sheet-ios{-webkit-padding-start:14px;padding-inline-start:14px;-webkit-padding-end:14px;padding-inline-end:14px;padding-top:14px;padding-bottom:14px;min-height:56px;font-size:max(20px, 1.25rem);contain:content}.action-sheet-button.sc-ion-action-sheet-ios .action-sheet-icon.sc-ion-action-sheet-ios{-webkit-margin-end:0.3em;margin-inline-end:0.3em;font-size:max(28px, 1.75rem);pointer-events:none}.action-sheet-button.sc-ion-action-sheet-ios:last-child{background-image:none}.action-sheet-selected.sc-ion-action-sheet-ios{font-weight:bold}.action-sheet-cancel.sc-ion-action-sheet-ios{font-weight:600}.action-sheet-cancel.sc-ion-action-sheet-ios::after{background:var(--button-background-selected);opacity:var(--button-background-selected-opacity)}.action-sheet-destructive.sc-ion-action-sheet-ios,.action-sheet-destructive.ion-activated.sc-ion-action-sheet-ios,.action-sheet-destructive.ion-focused.sc-ion-action-sheet-ios{color:var(--ion-color-danger, #c5000f)}@media (any-hover: hover){.action-sheet-destructive.sc-ion-action-sheet-ios:hover{color:var(--ion-color-danger, #c5000f)}}', md: '.sc-ion-action-sheet-md-h{--color:initial;--button-color-activated:var(--button-color);--button-color-focused:var(--button-color);--button-color-hover:var(--button-color);--button-color-selected:var(--button-color);--min-width:auto;--width:100%;--max-width:500px;--min-height:auto;--height:auto;--max-height:calc(100% - (var(--ion-safe-area-top) + var(--ion-safe-area-bottom)));-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;left:0;right:0;top:0;bottom:0;display:block;position:fixed;outline:none;font-family:var(--ion-font-family, inherit);-ms-touch-action:none;touch-action:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;z-index:1001}.overlay-hidden.sc-ion-action-sheet-md-h{display:none}.action-sheet-wrapper.sc-ion-action-sheet-md{left:0;right:0;bottom:0;-webkit-transform:translate3d(0, 100%, 0);transform:translate3d(0, 100%, 0);display:block;position:absolute;width:var(--width);min-width:var(--min-width);max-width:var(--max-width);height:var(--height);min-height:var(--min-height);max-height:var(--max-height);z-index:10;pointer-events:none}.action-sheet-button.sc-ion-action-sheet-md{display:block;position:relative;width:100%;border:0;outline:none;background:var(--button-background);color:var(--button-color);font-family:inherit;overflow:hidden}.action-sheet-button.sc-ion-action-sheet-md:disabled{color:var(--button-color-disabled);opacity:0.4}.action-sheet-button-inner.sc-ion-action-sheet-md{display:-ms-flexbox;display:flex;position:relative;-ms-flex-flow:row nowrap;flex-flow:row nowrap;-ms-flex-negative:0;flex-shrink:0;-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center;pointer-events:none;width:100%;height:100%;z-index:1}.action-sheet-container.sc-ion-action-sheet-md{display:-ms-flexbox;display:flex;-ms-flex-flow:column;flex-flow:column;-ms-flex-pack:end;justify-content:flex-end;height:100%;max-height:calc(100vh - (var(--ion-safe-area-top, 0) + var(--ion-safe-area-bottom, 0)));max-height:calc(100dvh - (var(--ion-safe-area-top, 0) + var(--ion-safe-area-bottom, 0)))}.action-sheet-group.sc-ion-action-sheet-md{-ms-flex-negative:2;flex-shrink:2;overscroll-behavior-y:contain;overflow-y:auto;-webkit-overflow-scrolling:touch;pointer-events:all;background:var(--background)}@media (any-pointer: coarse){.action-sheet-group.sc-ion-action-sheet-md::-webkit-scrollbar{display:none}}.action-sheet-group-cancel.sc-ion-action-sheet-md{-ms-flex-negative:0;flex-shrink:0;overflow:hidden}.action-sheet-button.sc-ion-action-sheet-md::after{left:0;right:0;top:0;bottom:0;position:absolute;content:"";opacity:0}.action-sheet-selected.sc-ion-action-sheet-md{color:var(--button-color-selected)}.action-sheet-selected.sc-ion-action-sheet-md::after{background:var(--button-background-selected);opacity:var(--button-background-selected-opacity)}.action-sheet-button.ion-activated.sc-ion-action-sheet-md{color:var(--button-color-activated)}.action-sheet-button.ion-activated.sc-ion-action-sheet-md::after{background:var(--button-background-activated);opacity:var(--button-background-activated-opacity)}.action-sheet-button.ion-focused.sc-ion-action-sheet-md{color:var(--button-color-focused)}.action-sheet-button.ion-focused.sc-ion-action-sheet-md::after{background:var(--button-background-focused);opacity:var(--button-background-focused-opacity)}@media (any-hover: hover){.action-sheet-button.sc-ion-action-sheet-md:not(:disabled):hover{color:var(--button-color-hover)}.action-sheet-button.sc-ion-action-sheet-md:not(:disabled):hover::after{background:var(--button-background-hover);opacity:var(--button-background-hover-opacity)}}.sc-ion-action-sheet-md-h{--background:var(--ion-overlay-background-color, var(--ion-background-color, #fff));--backdrop-opacity:var(--ion-backdrop-opacity, 0.32);--button-background:transparent;--button-background-selected:currentColor;--button-background-selected-opacity:0;--button-background-activated:transparent;--button-background-activated-opacity:0;--button-background-hover:currentColor;--button-background-hover-opacity:.04;--button-background-focused:currentColor;--button-background-focused-opacity:.12;--button-color:var(--ion-color-step-850, var(--ion-text-color-step-150, #262626));--button-color-disabled:var(--button-color);--color:rgba(var(--ion-text-color-rgb, 0, 0, 0), 0.54)}.action-sheet-wrapper.sc-ion-action-sheet-md{-webkit-margin-start:auto;margin-inline-start:auto;-webkit-margin-end:auto;margin-inline-end:auto;margin-top:var(--ion-safe-area-top, 0);margin-bottom:0}.action-sheet-title.sc-ion-action-sheet-md{-webkit-padding-start:16px;padding-inline-start:16px;-webkit-padding-end:16px;padding-inline-end:16px;padding-top:20px;padding-bottom:17px;min-height:60px;color:var(--color, rgba(var(--ion-text-color-rgb, 0, 0, 0), 0.54));font-size:1rem;text-align:start}.action-sheet-sub-title.sc-ion-action-sheet-md{padding-left:0;padding-right:0;padding-top:16px;padding-bottom:0;font-size:0.875rem}.action-sheet-group.sc-ion-action-sheet-md:first-child{padding-top:0}.action-sheet-group.sc-ion-action-sheet-md:last-child{padding-bottom:var(--ion-safe-area-bottom)}.action-sheet-button.sc-ion-action-sheet-md{-webkit-padding-start:16px;padding-inline-start:16px;-webkit-padding-end:16px;padding-inline-end:16px;padding-top:12px;padding-bottom:12px;position:relative;min-height:52px;font-size:1rem;text-align:start;contain:content;overflow:hidden}.action-sheet-icon.sc-ion-action-sheet-md{-webkit-margin-start:0;margin-inline-start:0;-webkit-margin-end:32px;margin-inline-end:32px;margin-top:0;margin-bottom:0;color:var(--color);font-size:1.5rem}.action-sheet-button-inner.sc-ion-action-sheet-md{-ms-flex-pack:start;justify-content:flex-start}.action-sheet-selected.sc-ion-action-sheet-md{font-weight:bold}' }; } }, [34, "ion-action-sheet", { overlayIndex: [2, "overlay-index"], delegate: [16], hasController: [4, "has-controller"], keyboardClose: [4, "keyboard-close"], enterAnimation: [16], leaveAnimation: [16], buttons: [16], cssClass: [1, "css-class"], backdropDismiss: [4, "backdrop-dismiss"], header: [1], subHeader: [1, "sub-header"], translucent: [4], animated: [4], htmlAttributes: [16], isOpen: [4, "is-open"], trigger: [1], activeRadioId: [32], present: [64], dismiss: [64], onDidDismiss: [64], onWillDismiss: [64] }, [[0, "keydown", "onKeydown"]], { buttons: [{ buttonsChanged: 0 }], isOpen: [{ onIsOpenChange: 0 }], trigger: [{ triggerChanged: 0 }] }]); var E5 = (t17) => Object.assign({ "action-sheet-button": true, "ion-activatable": !t17.disabled, "ion-focusable": !t17.disabled, [`action-sheet-${t17.role}`]: void 0 !== t17.role }, r5(t17.cssClass)); function S5() { "undefined" != typeof customElements && ["ion-action-sheet", "ion-backdrop", "ion-icon", "ion-ripple-effect"].forEach(((t17) => { switch (t17) { case "ion-action-sheet": customElements.get(Zn(t17)) || customElements.define(Zn(t17), B6); break; case "ion-backdrop": customElements.get(Zn(t17)) || c11(); break; case "ion-icon": customElements.get(Zn(t17)) || y6(); break; case "ion-ripple-effect": customElements.get(Zn(t17)) || p7(); } })); } // node_modules/@ionic/core/components/ion-action-sheet.js var r9 = S5; // node_modules/@ionic/core/components/p-CH0NYjKq.js var I5 = (t17) => { const e16 = r(), i16 = r(), r32 = r(); return i16.addElement(t17.querySelector("ion-backdrop")).fromTo("opacity", 0.01, "var(--backdrop-opacity)").beforeStyles({ "pointer-events": "none" }).afterClearStyles(["pointer-events"]), r32.addElement(t17.querySelector(".alert-wrapper")).keyframes([{ offset: 0, opacity: "0.01", transform: "scale(1.1)" }, { offset: 1, opacity: "1", transform: "scale(1)" }]), e16.addElement(t17).easing("ease-in-out").duration(200).addAnimation([i16, r32]); }; var $2 = (t17) => { const e16 = r(), i16 = r(), r32 = r(); return i16.addElement(t17.querySelector("ion-backdrop")).fromTo("opacity", "var(--backdrop-opacity)", 0), r32.addElement(t17.querySelector(".alert-wrapper")).keyframes([{ offset: 0, opacity: 0.99, transform: "scale(1)" }, { offset: 1, opacity: 0, transform: "scale(0.9)" }]), e16.addElement(t17).easing("ease-in-out").duration(200).addAnimation([i16, r32]); }; var E6 = (t17) => { const e16 = r(), i16 = r(), r32 = r(); return i16.addElement(t17.querySelector("ion-backdrop")).fromTo("opacity", 0.01, "var(--backdrop-opacity)").beforeStyles({ "pointer-events": "none" }).afterClearStyles(["pointer-events"]), r32.addElement(t17.querySelector(".alert-wrapper")).keyframes([{ offset: 0, opacity: "0.01", transform: "scale(0.9)" }, { offset: 1, opacity: "1", transform: "scale(1)" }]), e16.addElement(t17).easing("ease-in-out").duration(150).addAnimation([i16, r32]); }; var T4 = (t17) => { const e16 = r(), i16 = r(), r32 = r(); return i16.addElement(t17.querySelector("ion-backdrop")).fromTo("opacity", "var(--backdrop-opacity)", 0), r32.addElement(t17.querySelector(".alert-wrapper")).fromTo("opacity", 0.99, 0), e16.addElement(t17).easing("ease-in-out").duration(150).addAnimation([i16, r32]); }; var B7 = Dn(class extends I { constructor(t17) { super(), false !== t17 && this.__registerHost(), this.didPresent = Jt(this, "ionAlertDidPresent", 7), this.willPresent = Jt(this, "ionAlertWillPresent", 7), this.willDismiss = Jt(this, "ionAlertWillDismiss", 7), this.didDismiss = Jt(this, "ionAlertDidDismiss", 7), this.didPresentShorthand = Jt(this, "didPresent", 7), this.willPresentShorthand = Jt(this, "willPresent", 7), this.willDismissShorthand = Jt(this, "willDismiss", 7), this.didDismissShorthand = Jt(this, "didDismiss", 7), this.delegateController = X2(this), this.lockController = t11(), this.triggerController = Y2(), this.customHTMLEnabled = n.get("innerHTMLTemplatesEnabled", l5), this.processedInputs = [], this.processedButtons = [], this.presented = false, this.hasController = false, this.keyboardClose = true, this.buttons = [], this.inputs = [], this.backdropDismiss = true, this.translucent = false, this.animated = true, this.isOpen = false, this.onBackdropTap = () => { this.dismiss(void 0, H3); }, this.dispatchCancelHandler = (t18) => { if (Q2(t18.detail.role)) { const t19 = this.processedButtons.find(((t20) => "cancel" === t20.role)); this.callButtonHandler(t19); } }; } onIsOpenChange(t17, e16) { true === t17 && false === e16 ? this.present() : false === t17 && true === e16 && this.dismiss(); } triggerChanged() { const { trigger: t17, el: e16, triggerController: i16 } = this; t17 && i16.addClickListener(e16, t17); } onKeydown(t17) { var e16; const i16 = new Set(this.processedInputs.map(((t18) => t18.type))); if (i16.has("checkbox") && "Enter" === t17.key) return void t17.preventDefault(); if (t17.target.classList.contains("alert-wrapper") && "Tab" === t17.key && t17.shiftKey) return t17.preventDefault(), void (null === (e16 = this.wrapperEl) || void 0 === e16 ? void 0 : e16.querySelector(".alert-button:last-child")).focus(); if (!i16.has("radio") || t17.target && !this.el.contains(t17.target) || t17.target.classList.contains("alert-button")) return; const r32 = this.el.querySelectorAll(".alert-radio"), o14 = Array.from(r32).filter(((t18) => !t18.disabled)), a17 = o14.findIndex(((e17) => e17.id === t17.target.id)); let n15; if (["ArrowDown", "ArrowRight"].includes(t17.key) && (n15 = a17 === o14.length - 1 ? o14[0] : o14[a17 + 1]), ["ArrowUp", "ArrowLeft"].includes(t17.key) && (n15 = 0 === a17 ? o14[o14.length - 1] : o14[a17 - 1]), n15 && o14.includes(n15)) { const t18 = this.processedInputs.find(((t19) => t19.id === (null == n15 ? void 0 : n15.id))); t18 && (this.rbClick(t18), n15.focus()); } } buttonsChanged() { this.processedButtons = this.buttons.map(((t17) => "string" == typeof t17 ? { text: t17, role: "cancel" === t17.toLowerCase() ? "cancel" : void 0 } : t17)); } inputsChanged() { const t17 = this.inputs, e16 = t17.find(((t18) => !t18.disabled)), i16 = t17.find(((t18) => t18.checked && !t18.disabled)) || e16, r32 = new Set(t17.map(((t18) => t18.type))); r32.has("checkbox") && r32.has("radio") && u(`[ion-alert] - Alert cannot mix input types: ${Array.from(r32.values()).join("/")}. Please see alert docs for more info.`), this.inputType = r32.values().next().value, this.processedInputs = t17.map(((t18, e17) => { var r33; return { type: t18.type || "text", name: t18.name || `${e17}`, placeholder: t18.placeholder || "", value: t18.value, label: t18.label, checked: !!t18.checked, disabled: !!t18.disabled, id: t18.id || `alert-input-${this.overlayIndex}-${e17}`, handler: t18.handler, min: t18.min, max: t18.max, cssClass: null !== (r33 = t18.cssClass) && void 0 !== r33 ? r33 : "", attributes: t18.attributes || {}, tabindex: "radio" === t18.type && t18 !== i16 ? -1 : 0 }; })); } connectedCallback() { I3(this.el), this.triggerChanged(); } componentWillLoad() { var t17; (null === (t17 = this.htmlAttributes) || void 0 === t17 ? void 0 : t17.id) || N(this.el), this.inputsChanged(), this.buttonsChanged(); } disconnectedCallback() { this.triggerController.removeClickListener(), this.gesture && (this.gesture.destroy(), this.gesture = void 0); } componentDidLoad() { !this.gesture && "ios" === g(this) && this.wrapperEl && (this.gesture = s11(this.wrapperEl, ((t17) => t17.classList.contains("alert-button"))), this.gesture.enable(true)), true === this.isOpen && d2((() => this.present())), this.triggerChanged(); } present() { return __async(this, null, function* () { const t17 = yield this.lockController.lock(); yield this.delegateController.attachViewToDom(), yield $(this, "alertEnter", I5, E6).then((() => { var t18, e16; 1 === this.buttons.length && 0 === this.inputs.length ? (null === (t18 = this.wrapperEl) || void 0 === t18 ? void 0 : t18.querySelector(".alert-button")).focus() : null === (e16 = this.wrapperEl) || void 0 === e16 || e16.focus(); })), t17(); }); } dismiss(t17, e16) { return __async(this, null, function* () { const i16 = yield this.lockController.lock(), r32 = yield J(this, t17, e16, "alertLeave", $2, T4); return r32 && this.delegateController.removeViewFromDom(), i16(), r32; }); } onDidDismiss() { return q3(this.el, "ionAlertDidDismiss"); } onWillDismiss() { return q3(this.el, "ionAlertWillDismiss"); } rbClick(t17) { for (const e16 of this.processedInputs) e16.checked = e16 === t17, e16.tabindex = e16 === t17 ? 0 : -1; this.activeId = t17.id, _2(t17.handler, t17), Rn(this); } cbClick(t17) { t17.checked = !t17.checked, _2(t17.handler, t17), Rn(this); } buttonClick(t17) { return __async(this, null, function* () { const e16 = t17.role, i16 = this.getValues(); if (Q2(e16)) return this.dismiss({ values: i16 }, e16); const r32 = yield this.callButtonHandler(t17, i16); return false !== r32 && this.dismiss(Object.assign({ values: i16 }, r32), t17.role); }); } callButtonHandler(t17, e16) { return __async(this, null, function* () { if (null == t17 ? void 0 : t17.handler) { const i16 = yield _2(t17.handler, e16); if (false === i16) return false; if ("object" == typeof i16) return i16; } return {}; }); } getValues() { if (0 === this.processedInputs.length) return; if ("radio" === this.inputType) { const t18 = this.processedInputs.find(((t19) => !!t19.checked)); return t18 ? t18.value : void 0; } if ("checkbox" === this.inputType) return this.processedInputs.filter(((t18) => t18.checked)).map(((t18) => t18.value)); const t17 = {}; return this.processedInputs.forEach(((e16) => { t17[e16.name] = e16.value || ""; })), t17; } renderAlertInputs() { switch (this.inputType) { case "checkbox": return this.renderCheckbox(); case "radio": return this.renderRadio(); default: return this.renderInput(); } } renderCheckbox() { const t17 = this.processedInputs, e16 = g(this); return 0 === t17.length ? null : Ct("div", { class: "alert-checkbox-group" }, t17.map(((t18) => Ct("button", { type: "button", onClick: () => this.cbClick(t18), "aria-checked": `${t18.checked}`, id: t18.id, disabled: t18.disabled, tabIndex: t18.tabindex, role: "checkbox", class: Object.assign(Object.assign({}, r5(t18.cssClass)), { "alert-tappable": true, "alert-checkbox": true, "alert-checkbox-button": true, "ion-focusable": true, "alert-checkbox-button-disabled": t18.disabled || false }) }, Ct("div", { class: "alert-button-inner" }, Ct("div", { class: "alert-checkbox-icon" }, Ct("div", { class: "alert-checkbox-inner" })), Ct("div", { class: "alert-checkbox-label" }, t18.label)), "md" === e16 && Ct("ion-ripple-effect", null))))); } renderRadio() { const t17 = this.processedInputs; return 0 === t17.length ? null : Ct("div", { class: "alert-radio-group", role: "radiogroup", "aria-activedescendant": this.activeId }, t17.map(((t18) => Ct("button", { type: "button", onClick: () => this.rbClick(t18), "aria-checked": `${t18.checked}`, disabled: t18.disabled, id: t18.id, tabIndex: t18.tabindex, class: Object.assign(Object.assign({}, r5(t18.cssClass)), { "alert-radio-button": true, "alert-tappable": true, "alert-radio": true, "ion-focusable": true, "alert-radio-button-disabled": t18.disabled || false }), role: "radio" }, Ct("div", { class: "alert-button-inner" }, Ct("div", { class: "alert-radio-icon" }, Ct("div", { class: "alert-radio-inner" })), Ct("div", { class: "alert-radio-label" }, t18.label)))))); } renderInput() { const t17 = this.processedInputs; return 0 === t17.length ? null : Ct("div", { class: "alert-input-group" }, t17.map(((t18) => { var e16, i16, r32, o14; return Ct("div", { class: "alert-input-wrapper" }, "textarea" === t18.type ? Ct("textarea", Object.assign({ placeholder: t18.placeholder, value: t18.value, id: t18.id, tabIndex: t18.tabindex }, t18.attributes, { disabled: null !== (i16 = null === (e16 = t18.attributes) || void 0 === e16 ? void 0 : e16.disabled) && void 0 !== i16 ? i16 : t18.disabled, class: L5(t18), onInput: (e17) => { var i17; t18.value = e17.target.value, (null === (i17 = t18.attributes) || void 0 === i17 ? void 0 : i17.onInput) && t18.attributes.onInput(e17); } })) : Ct("input", Object.assign({ placeholder: t18.placeholder, type: t18.type, min: t18.min, max: t18.max, value: t18.value, id: t18.id, tabIndex: t18.tabindex }, t18.attributes, { disabled: null !== (o14 = null === (r32 = t18.attributes) || void 0 === r32 ? void 0 : r32.disabled) && void 0 !== o14 ? o14 : t18.disabled, class: L5(t18), onInput: (e17) => { var i17; t18.value = e17.target.value, (null === (i17 = t18.attributes) || void 0 === i17 ? void 0 : i17.onInput) && t18.attributes.onInput(e17); } }))); }))); } renderAlertButtons() { const t17 = this.processedButtons, e16 = g(this); return Ct("div", { class: { "alert-button-group": true, "alert-button-group-vertical": t17.length > 2 } }, t17.map(((t18) => Ct("button", Object.assign({}, t18.htmlAttributes, { type: "button", id: t18.id, class: W4(t18), tabIndex: 0, onClick: () => this.buttonClick(t18) }), Ct("span", { class: "alert-button-inner" }, t18.text), "md" === e16 && Ct("ion-ripple-effect", null))))); } renderAlertMessage(t17) { const { customHTMLEnabled: e16, message: i16 } = this; return e16 ? Ct("div", { id: t17, class: "alert-message", innerHTML: n4(i16) }) : Ct("div", { id: t17, class: "alert-message" }, i16); } render() { const { overlayIndex: t17, header: e16, subHeader: i16, message: r32, htmlAttributes: o14 } = this, a17 = g(this), s23 = `alert-${t17}-hdr`, d25 = `alert-${t17}-msg`, c36 = `alert-${t17}-sub-hdr`, p33 = this.inputs.length > 0 || this.buttons.length > 0 ? "alertdialog" : "alert", b21 = e16 && i16 ? `${s23} ${c36}` : e16 ? s23 : i16 ? c36 : null; return Ct(It, { key: "6025440b9cd369d4fac89e7e4296c84a10a0b8e0", tabindex: "-1", style: { zIndex: `${2e4 + t17}` }, class: Object.assign(Object.assign({}, r5(this.cssClass)), { [a17]: true, "overlay-hidden": true, "alert-translucent": this.translucent }), onIonAlertWillDismiss: this.dispatchCancelHandler, onIonBackdropTap: this.onBackdropTap }, Ct("ion-backdrop", { key: "3cd5ca8b99cb95b11dd22ab41a820d841142896f", tappable: this.backdropDismiss }), Ct("div", { key: "4cc62ae6e21424057d22aeef1e8fc77011e77cd5", tabindex: "0", "aria-hidden": "true" }), Ct("div", Object.assign({ key: "364057a69f25aa88904df17bdcf7e5bf714e7830", class: "alert-wrapper ion-overlay-wrapper", role: p33, "aria-modal": "true", "aria-labelledby": b21, "aria-describedby": void 0 !== r32 ? d25 : null, tabindex: "0", ref: (t18) => this.wrapperEl = t18 }, o14), Ct("div", { key: "78694e3c0db2d408df3899fb1a90859bcc8d14cc", class: "alert-head" }, e16 && Ct("h2", { key: "ec88ff3e4e1ea871b5975133fdcf4cac38b05e0f", id: s23, class: "alert-title" }, e16), i16 && !e16 && Ct("h2", { key: "9b09bc8bb68af255ef8b7d22587acc946148e544", id: c36, class: "alert-sub-title" }, i16), i16 && e16 && Ct("h3", { key: "99abe815f75d2df7f1b77c0df9f3436724fea76f", id: c36, class: "alert-sub-title" }, i16)), this.renderAlertMessage(d25), this.renderAlertInputs(), this.renderAlertButtons()), Ct("div", { key: "a43d0c22c0e46b1ef911f92ffeb253d7911b85f7", tabindex: "0", "aria-hidden": "true" })); } get el() { return this; } static get watchers() { return { isOpen: [{ onIsOpenChange: 0 }], trigger: [{ triggerChanged: 0 }], buttons: [{ buttonsChanged: 0 }], inputs: [{ inputsChanged: 0 }] }; } static get style() { return { ios: ".sc-ion-alert-ios-h{--min-width:250px;--width:auto;--min-height:auto;--height:auto;--max-height:90%;-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;left:0;right:0;top:0;bottom:0;display:-ms-flexbox;display:flex;position:absolute;-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center;outline:none;font-family:var(--ion-font-family, inherit);contain:strict;-ms-touch-action:none;touch-action:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;z-index:1001}.overlay-hidden.sc-ion-alert-ios-h{display:none}.alert-top.sc-ion-alert-ios-h{padding-top:50px;-ms-flex-align:start;align-items:flex-start}.alert-wrapper.sc-ion-alert-ios{display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column;width:var(--width);min-width:var(--min-width);max-width:var(--max-width);height:var(--height);min-height:var(--min-height);max-height:var(--max-height);background:var(--background);contain:content;opacity:0;z-index:10}.alert-title.sc-ion-alert-ios{margin-left:0;margin-right:0;margin-top:0;margin-bottom:0;padding-left:0;padding-right:0;padding-top:0;padding-bottom:0}.alert-sub-title.sc-ion-alert-ios{margin-left:0;margin-right:0;margin-top:5px;margin-bottom:0;padding-left:0;padding-right:0;padding-top:0;padding-bottom:0;font-weight:normal}.alert-message.sc-ion-alert-ios,.alert-input-group.sc-ion-alert-ios{-webkit-box-sizing:border-box;box-sizing:border-box;-webkit-overflow-scrolling:touch;overflow-y:auto;overscroll-behavior-y:contain}.alert-checkbox-label.sc-ion-alert-ios,.alert-radio-label.sc-ion-alert-ios{overflow-wrap:anywhere}@media (any-pointer: coarse){.alert-checkbox-group.sc-ion-alert-ios::-webkit-scrollbar,.alert-radio-group.sc-ion-alert-ios::-webkit-scrollbar,.alert-message.sc-ion-alert-ios::-webkit-scrollbar{display:none}}.alert-input.sc-ion-alert-ios{padding-left:0;padding-right:0;padding-top:10px;padding-bottom:10px;width:100%;border:0;background:inherit;font:inherit;-webkit-box-sizing:border-box;box-sizing:border-box}.alert-button-group.sc-ion-alert-ios{display:-ms-flexbox;display:flex;-ms-flex-direction:row;flex-direction:row;width:100%}.alert-button-group-vertical.sc-ion-alert-ios{-ms-flex-direction:column;flex-direction:column;-ms-flex-wrap:nowrap;flex-wrap:nowrap}.alert-button.sc-ion-alert-ios{margin-left:0;margin-right:0;margin-top:0;margin-bottom:0;display:block;border:0;font-size:0.875rem;line-height:1.25rem;z-index:0}.alert-button.ion-focused.sc-ion-alert-ios,.alert-tappable.ion-focused.sc-ion-alert-ios{background:var(--ion-color-step-100, var(--ion-background-color-step-100, #e6e6e6))}.alert-button-inner.sc-ion-alert-ios{display:-ms-flexbox;display:flex;-ms-flex-flow:row nowrap;flex-flow:row nowrap;-ms-flex-negative:0;flex-shrink:0;-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center;width:100%;height:100%;min-height:inherit}.alert-input-disabled.sc-ion-alert-ios,.alert-checkbox-button-disabled.sc-ion-alert-ios .alert-button-inner.sc-ion-alert-ios,.alert-radio-button-disabled.sc-ion-alert-ios .alert-button-inner.sc-ion-alert-ios{cursor:default;opacity:0.5;pointer-events:none}.alert-tappable.sc-ion-alert-ios{margin-left:0;margin-right:0;margin-top:0;margin-bottom:0;padding-left:0;padding-right:0;padding-top:0;padding-bottom:0;display:-ms-flexbox;display:flex;width:100%;border:0;background:transparent;font-size:inherit;line-height:initial;text-align:start;-webkit-appearance:none;-moz-appearance:none;appearance:none;contain:content}.alert-button.sc-ion-alert-ios,.alert-checkbox.sc-ion-alert-ios,.alert-input.sc-ion-alert-ios,.alert-radio.sc-ion-alert-ios{outline:none}.alert-radio-icon.sc-ion-alert-ios,.alert-checkbox-icon.sc-ion-alert-ios,.alert-checkbox-inner.sc-ion-alert-ios{-webkit-box-sizing:border-box;box-sizing:border-box}textarea.alert-input.sc-ion-alert-ios{min-height:37px;resize:none}.sc-ion-alert-ios-h{--background:var(--ion-overlay-background-color, var(--ion-color-step-100, var(--ion-background-color-step-100, #f9f9f9)));--max-width:clamp(270px, 16.875rem, 324px);--backdrop-opacity:var(--ion-backdrop-opacity, 0.3);font-size:max(14px, 0.875rem)}.alert-wrapper.sc-ion-alert-ios{border-radius:13px;-webkit-box-shadow:none;box-shadow:none;overflow:hidden}.alert-button.sc-ion-alert-ios .alert-button-inner.sc-ion-alert-ios{pointer-events:none}@supports ((-webkit-backdrop-filter: blur(0)) or (backdrop-filter: blur(0))){.alert-translucent.sc-ion-alert-ios-h .alert-wrapper.sc-ion-alert-ios{background:rgba(var(--ion-background-color-rgb, 255, 255, 255), 0.9);-webkit-backdrop-filter:saturate(180%) blur(20px);backdrop-filter:saturate(180%) blur(20px)}}.alert-head.sc-ion-alert-ios{-webkit-padding-start:16px;padding-inline-start:16px;-webkit-padding-end:16px;padding-inline-end:16px;padding-top:12px;padding-bottom:7px;text-align:center}.alert-title.sc-ion-alert-ios{margin-top:8px;color:var(--ion-text-color, #000);font-size:max(17px, 1.0625rem);font-weight:600}.alert-sub-title.sc-ion-alert-ios{color:var(--ion-color-step-600, var(--ion-text-color-step-400, #666666));font-size:max(14px, 0.875rem)}.alert-message.sc-ion-alert-ios,.alert-input-group.sc-ion-alert-ios{-webkit-padding-start:16px;padding-inline-start:16px;-webkit-padding-end:16px;padding-inline-end:16px;padding-top:0;padding-bottom:21px;color:var(--ion-text-color, #000);font-size:max(13px, 0.8125rem);text-align:center}.alert-message.sc-ion-alert-ios{max-height:240px}.alert-message.sc-ion-alert-ios:empty{padding-left:0;padding-right:0;padding-top:0;padding-bottom:12px}.alert-input.sc-ion-alert-ios{border-radius:7px;margin-top:10px;-webkit-padding-start:7px;padding-inline-start:7px;-webkit-padding-end:7px;padding-inline-end:7px;padding-top:7px;padding-bottom:7px;border:0.55px solid var(--ion-color-step-250, var(--ion-background-color-step-250, #bfbfbf));background-color:var(--ion-background-color, #fff);-webkit-appearance:none;-moz-appearance:none;appearance:none;font-size:1rem}.alert-input.sc-ion-alert-ios::-webkit-input-placeholder{color:var(--ion-placeholder-color, var(--ion-color-step-400, var(--ion-text-color-step-600, #999999)));font-family:inherit;font-weight:inherit}.alert-input.sc-ion-alert-ios::-moz-placeholder{color:var(--ion-placeholder-color, var(--ion-color-step-400, var(--ion-text-color-step-600, #999999)));font-family:inherit;font-weight:inherit}.alert-input.sc-ion-alert-ios:-ms-input-placeholder{color:var(--ion-placeholder-color, var(--ion-color-step-400, var(--ion-text-color-step-600, #999999)));font-family:inherit;font-weight:inherit}.alert-input.sc-ion-alert-ios::-ms-input-placeholder{color:var(--ion-placeholder-color, var(--ion-color-step-400, var(--ion-text-color-step-600, #999999)));font-family:inherit;font-weight:inherit}.alert-input.sc-ion-alert-ios::placeholder{color:var(--ion-placeholder-color, var(--ion-color-step-400, var(--ion-text-color-step-600, #999999)));font-family:inherit;font-weight:inherit}.alert-input.sc-ion-alert-ios::-ms-clear{display:none}.alert-input.sc-ion-alert-ios::-webkit-date-and-time-value{height:18px}.alert-radio-group.sc-ion-alert-ios,.alert-checkbox-group.sc-ion-alert-ios{-ms-scroll-chaining:none;overscroll-behavior:contain;max-height:240px;border-top:0.55px solid rgba(var(--ion-text-color-rgb, 0, 0, 0), 0.2);overflow-y:auto;-webkit-overflow-scrolling:touch}.alert-tappable.sc-ion-alert-ios{min-height:44px}.alert-radio-label.sc-ion-alert-ios{-webkit-padding-start:13px;padding-inline-start:13px;-webkit-padding-end:13px;padding-inline-end:13px;padding-top:13px;padding-bottom:13px;-ms-flex:1;flex:1;-ms-flex-order:0;order:0;color:var(--ion-text-color, #000)}[aria-checked=true].sc-ion-alert-ios .alert-radio-label.sc-ion-alert-ios{color:var(--ion-color-primary, #0054e9)}.alert-radio-icon.sc-ion-alert-ios{position:relative;-ms-flex-order:1;order:1;min-width:30px}[aria-checked=true].sc-ion-alert-ios .alert-radio-inner.sc-ion-alert-ios{top:-7px;position:absolute;width:6px;height:12px;-webkit-transform:rotate(45deg);transform:rotate(45deg);border-width:2px;border-top-width:0;border-left-width:0;border-style:solid;border-color:var(--ion-color-primary, #0054e9)}[aria-checked=true].sc-ion-alert-ios .alert-radio-inner.sc-ion-alert-ios{inset-inline-start:7px}.alert-checkbox-label.sc-ion-alert-ios{-webkit-padding-start:13px;padding-inline-start:13px;-webkit-padding-end:13px;padding-inline-end:13px;padding-top:13px;padding-bottom:13px;-ms-flex:1;flex:1;color:var(--ion-text-color, #000)}.alert-checkbox-icon.sc-ion-alert-ios{border-radius:50%;-webkit-margin-start:16px;margin-inline-start:16px;-webkit-margin-end:6px;margin-inline-end:6px;margin-top:10px;margin-bottom:10px;position:relative;width:min(1.375rem, 55.836px);height:min(1.375rem, 55.836px);border-width:0.125rem;border-style:solid;border-color:var(--ion-item-border-color, var(--ion-border-color, var(--ion-color-step-250, var(--ion-background-color-step-250, #c8c7cc))));background-color:var(--ion-item-background, var(--ion-background-color, #fff));contain:strict}[aria-checked=true].sc-ion-alert-ios .alert-checkbox-icon.sc-ion-alert-ios{border-color:var(--ion-color-primary, #0054e9);background-color:var(--ion-color-primary, #0054e9)}[aria-checked=true].sc-ion-alert-ios .alert-checkbox-inner.sc-ion-alert-ios{top:calc(min(1.375rem, 55.836px) / 8);position:absolute;width:calc(min(1.375rem, 55.836px) / 6 + 1px);height:calc(min(1.375rem, 55.836px) * 0.5);-webkit-transform:rotate(45deg);transform:rotate(45deg);border-width:0.125rem;border-top-width:0;border-left-width:0;border-style:solid;border-color:var(--ion-background-color, #fff)}[aria-checked=true].sc-ion-alert-ios .alert-checkbox-inner.sc-ion-alert-ios{inset-inline-start:calc(min(1.375rem, 55.836px) / 3)}.alert-button-group.sc-ion-alert-ios{-webkit-margin-end:-0.55px;margin-inline-end:-0.55px;-ms-flex-wrap:wrap;flex-wrap:wrap}.alert-button-group-vertical.sc-ion-alert-ios .alert-button.sc-ion-alert-ios{border-right:none}[dir=rtl].sc-ion-alert-ios-h .alert-button-group-vertical.sc-ion-alert-ios .alert-button.sc-ion-alert-ios:last-child,[dir=rtl] .sc-ion-alert-ios-h .alert-button-group-vertical.sc-ion-alert-ios .alert-button.sc-ion-alert-ios:last-child{border-right:none}[dir=rtl].sc-ion-alert-ios .alert-button-group-vertical.sc-ion-alert-ios .alert-button.sc-ion-alert-ios:last-child{border-right:none}@supports selector(:dir(rtl)){.alert-button-group-vertical.sc-ion-alert-ios .alert-button.sc-ion-alert-ios:last-child:dir(rtl){border-right:none}}.alert-button.sc-ion-alert-ios{-webkit-padding-start:8px;padding-inline-start:8px;-webkit-padding-end:8px;padding-inline-end:8px;margin-left:0;margin-right:0;margin-top:0;margin-bottom:0;border-radius:0;-ms-flex:1 1 auto;flex:1 1 auto;min-width:50%;height:max(44px, 2.75rem);border-top:0.55px solid rgba(var(--ion-text-color-rgb, 0, 0, 0), 0.2);border-right:0.55px solid rgba(var(--ion-text-color-rgb, 0, 0, 0), 0.2);background-color:transparent;color:var(--ion-color-primary, #0054e9);font-size:max(17px, 1.0625rem);overflow:hidden}[dir=rtl].sc-ion-alert-ios-h .alert-button.sc-ion-alert-ios:first-child,[dir=rtl] .sc-ion-alert-ios-h .alert-button.sc-ion-alert-ios:first-child{border-right:0}[dir=rtl].sc-ion-alert-ios .alert-button.sc-ion-alert-ios:first-child{border-right:0}@supports selector(:dir(rtl)){.alert-button.sc-ion-alert-ios:first-child:dir(rtl){border-right:0}}.alert-button.sc-ion-alert-ios:last-child{border-right:0;font-weight:bold}[dir=rtl].sc-ion-alert-ios-h .alert-button.sc-ion-alert-ios:last-child,[dir=rtl] .sc-ion-alert-ios-h .alert-button.sc-ion-alert-ios:last-child{border-right:0.55px solid rgba(var(--ion-text-color-rgb, 0, 0, 0), 0.2)}[dir=rtl].sc-ion-alert-ios .alert-button.sc-ion-alert-ios:last-child{border-right:0.55px solid rgba(var(--ion-text-color-rgb, 0, 0, 0), 0.2)}@supports selector(:dir(rtl)){.alert-button.sc-ion-alert-ios:last-child:dir(rtl){border-right:0.55px solid rgba(var(--ion-text-color-rgb, 0, 0, 0), 0.2)}}.alert-button.ion-activated.sc-ion-alert-ios{background-color:rgba(var(--ion-text-color-rgb, 0, 0, 0), 0.1)}.alert-button-role-destructive.sc-ion-alert-ios,.alert-button-role-destructive.ion-activated.sc-ion-alert-ios,.alert-button-role-destructive.ion-focused.sc-ion-alert-ios{color:var(--ion-color-danger, #c5000f)}", md: ".sc-ion-alert-md-h{--min-width:250px;--width:auto;--min-height:auto;--height:auto;--max-height:90%;-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;left:0;right:0;top:0;bottom:0;display:-ms-flexbox;display:flex;position:absolute;-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center;outline:none;font-family:var(--ion-font-family, inherit);contain:strict;-ms-touch-action:none;touch-action:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;z-index:1001}.overlay-hidden.sc-ion-alert-md-h{display:none}.alert-top.sc-ion-alert-md-h{padding-top:50px;-ms-flex-align:start;align-items:flex-start}.alert-wrapper.sc-ion-alert-md{display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column;width:var(--width);min-width:var(--min-width);max-width:var(--max-width);height:var(--height);min-height:var(--min-height);max-height:var(--max-height);background:var(--background);contain:content;opacity:0;z-index:10}.alert-title.sc-ion-alert-md{margin-left:0;margin-right:0;margin-top:0;margin-bottom:0;padding-left:0;padding-right:0;padding-top:0;padding-bottom:0}.alert-sub-title.sc-ion-alert-md{margin-left:0;margin-right:0;margin-top:5px;margin-bottom:0;padding-left:0;padding-right:0;padding-top:0;padding-bottom:0;font-weight:normal}.alert-message.sc-ion-alert-md,.alert-input-group.sc-ion-alert-md{-webkit-box-sizing:border-box;box-sizing:border-box;-webkit-overflow-scrolling:touch;overflow-y:auto;overscroll-behavior-y:contain}.alert-checkbox-label.sc-ion-alert-md,.alert-radio-label.sc-ion-alert-md{overflow-wrap:anywhere}@media (any-pointer: coarse){.alert-checkbox-group.sc-ion-alert-md::-webkit-scrollbar,.alert-radio-group.sc-ion-alert-md::-webkit-scrollbar,.alert-message.sc-ion-alert-md::-webkit-scrollbar{display:none}}.alert-input.sc-ion-alert-md{padding-left:0;padding-right:0;padding-top:10px;padding-bottom:10px;width:100%;border:0;background:inherit;font:inherit;-webkit-box-sizing:border-box;box-sizing:border-box}.alert-button-group.sc-ion-alert-md{display:-ms-flexbox;display:flex;-ms-flex-direction:row;flex-direction:row;width:100%}.alert-button-group-vertical.sc-ion-alert-md{-ms-flex-direction:column;flex-direction:column;-ms-flex-wrap:nowrap;flex-wrap:nowrap}.alert-button.sc-ion-alert-md{margin-left:0;margin-right:0;margin-top:0;margin-bottom:0;display:block;border:0;font-size:0.875rem;line-height:1.25rem;z-index:0}.alert-button.ion-focused.sc-ion-alert-md,.alert-tappable.ion-focused.sc-ion-alert-md{background:var(--ion-color-step-100, var(--ion-background-color-step-100, #e6e6e6))}.alert-button-inner.sc-ion-alert-md{display:-ms-flexbox;display:flex;-ms-flex-flow:row nowrap;flex-flow:row nowrap;-ms-flex-negative:0;flex-shrink:0;-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center;width:100%;height:100%;min-height:inherit}.alert-input-disabled.sc-ion-alert-md,.alert-checkbox-button-disabled.sc-ion-alert-md .alert-button-inner.sc-ion-alert-md,.alert-radio-button-disabled.sc-ion-alert-md .alert-button-inner.sc-ion-alert-md{cursor:default;opacity:0.5;pointer-events:none}.alert-tappable.sc-ion-alert-md{margin-left:0;margin-right:0;margin-top:0;margin-bottom:0;padding-left:0;padding-right:0;padding-top:0;padding-bottom:0;display:-ms-flexbox;display:flex;width:100%;border:0;background:transparent;font-size:inherit;line-height:initial;text-align:start;-webkit-appearance:none;-moz-appearance:none;appearance:none;contain:content}.alert-button.sc-ion-alert-md,.alert-checkbox.sc-ion-alert-md,.alert-input.sc-ion-alert-md,.alert-radio.sc-ion-alert-md{outline:none}.alert-radio-icon.sc-ion-alert-md,.alert-checkbox-icon.sc-ion-alert-md,.alert-checkbox-inner.sc-ion-alert-md{-webkit-box-sizing:border-box;box-sizing:border-box}textarea.alert-input.sc-ion-alert-md{min-height:37px;resize:none}.sc-ion-alert-md-h{--background:var(--ion-overlay-background-color, var(--ion-background-color, #fff));--max-width:280px;--backdrop-opacity:var(--ion-backdrop-opacity, 0.32);font-size:0.875rem}.alert-wrapper.sc-ion-alert-md{border-radius:4px;-webkit-box-shadow:0 11px 15px -7px rgba(0, 0, 0, 0.2), 0 24px 38px 3px rgba(0, 0, 0, 0.14), 0 9px 46px 8px rgba(0, 0, 0, 0.12);box-shadow:0 11px 15px -7px rgba(0, 0, 0, 0.2), 0 24px 38px 3px rgba(0, 0, 0, 0.14), 0 9px 46px 8px rgba(0, 0, 0, 0.12)}.alert-head.sc-ion-alert-md{-webkit-padding-start:23px;padding-inline-start:23px;-webkit-padding-end:23px;padding-inline-end:23px;padding-top:20px;padding-bottom:15px;text-align:start}.alert-title.sc-ion-alert-md{color:var(--ion-text-color, #000);font-size:1.25rem;font-weight:500}.alert-sub-title.sc-ion-alert-md{color:var(--ion-text-color, #000);font-size:1rem}.alert-message.sc-ion-alert-md,.alert-input-group.sc-ion-alert-md{-webkit-padding-start:24px;padding-inline-start:24px;-webkit-padding-end:24px;padding-inline-end:24px;padding-top:20px;padding-bottom:20px;color:var(--ion-color-step-550, var(--ion-text-color-step-450, #737373))}.alert-message.sc-ion-alert-md{font-size:1rem}@media screen and (max-width: 767px){.alert-message.sc-ion-alert-md{max-height:266px}}.alert-message.sc-ion-alert-md:empty{padding-left:0;padding-right:0;padding-top:0;padding-bottom:0}.alert-head.sc-ion-alert-md+.alert-message.sc-ion-alert-md{padding-top:0}.alert-input.sc-ion-alert-md{margin-left:0;margin-right:0;margin-top:5px;margin-bottom:5px;border-bottom:1px solid var(--ion-color-step-150, var(--ion-background-color-step-150, #d9d9d9));color:var(--ion-text-color, #000)}.alert-input.sc-ion-alert-md::-webkit-input-placeholder{color:var(--ion-placeholder-color, var(--ion-color-step-400, var(--ion-text-color-step-600, #999999)));font-family:inherit;font-weight:inherit}.alert-input.sc-ion-alert-md::-moz-placeholder{color:var(--ion-placeholder-color, var(--ion-color-step-400, var(--ion-text-color-step-600, #999999)));font-family:inherit;font-weight:inherit}.alert-input.sc-ion-alert-md:-ms-input-placeholder{color:var(--ion-placeholder-color, var(--ion-color-step-400, var(--ion-text-color-step-600, #999999)));font-family:inherit;font-weight:inherit}.alert-input.sc-ion-alert-md::-ms-input-placeholder{color:var(--ion-placeholder-color, var(--ion-color-step-400, var(--ion-text-color-step-600, #999999)));font-family:inherit;font-weight:inherit}.alert-input.sc-ion-alert-md::placeholder{color:var(--ion-placeholder-color, var(--ion-color-step-400, var(--ion-text-color-step-600, #999999)));font-family:inherit;font-weight:inherit}.alert-input.sc-ion-alert-md::-ms-clear{display:none}.alert-input.sc-ion-alert-md:focus{margin-bottom:4px;border-bottom:2px solid var(--ion-color-primary, #0054e9)}.alert-radio-group.sc-ion-alert-md,.alert-checkbox-group.sc-ion-alert-md{position:relative;border-top:1px solid var(--ion-color-step-150, var(--ion-background-color-step-150, #d9d9d9));border-bottom:1px solid var(--ion-color-step-150, var(--ion-background-color-step-150, #d9d9d9));overflow:auto}@media screen and (max-width: 767px){.alert-radio-group.sc-ion-alert-md,.alert-checkbox-group.sc-ion-alert-md{max-height:266px}}.alert-tappable.sc-ion-alert-md{position:relative;min-height:48px}.alert-radio-label.sc-ion-alert-md{-webkit-padding-start:52px;padding-inline-start:52px;-webkit-padding-end:26px;padding-inline-end:26px;padding-top:13px;padding-bottom:13px;-ms-flex:1;flex:1;color:var(--ion-color-step-850, var(--ion-text-color-step-150, #262626));font-size:1rem}.alert-radio-icon.sc-ion-alert-md{top:0;border-radius:50%;display:block;position:relative;width:20px;height:20px;border-width:2px;border-style:solid;border-color:var(--ion-color-step-550, var(--ion-background-color-step-550, #737373))}.alert-radio-icon.sc-ion-alert-md{inset-inline-start:26px}.alert-radio-inner.sc-ion-alert-md{top:3px;border-radius:50%;position:absolute;width:10px;height:10px;-webkit-transform:scale3d(0, 0, 0);transform:scale3d(0, 0, 0);-webkit-transition:-webkit-transform 280ms cubic-bezier(0.4, 0, 0.2, 1);transition:-webkit-transform 280ms cubic-bezier(0.4, 0, 0.2, 1);transition:transform 280ms cubic-bezier(0.4, 0, 0.2, 1);transition:transform 280ms cubic-bezier(0.4, 0, 0.2, 1), -webkit-transform 280ms cubic-bezier(0.4, 0, 0.2, 1);background-color:var(--ion-color-primary, #0054e9)}.alert-radio-inner.sc-ion-alert-md{inset-inline-start:3px}[aria-checked=true].sc-ion-alert-md .alert-radio-label.sc-ion-alert-md{color:var(--ion-color-step-850, var(--ion-text-color-step-150, #262626))}[aria-checked=true].sc-ion-alert-md .alert-radio-icon.sc-ion-alert-md{border-color:var(--ion-color-primary, #0054e9)}[aria-checked=true].sc-ion-alert-md .alert-radio-inner.sc-ion-alert-md{-webkit-transform:scale3d(1, 1, 1);transform:scale3d(1, 1, 1)}.alert-checkbox-label.sc-ion-alert-md{-webkit-padding-start:53px;padding-inline-start:53px;-webkit-padding-end:26px;padding-inline-end:26px;padding-top:13px;padding-bottom:13px;-ms-flex:1;flex:1;width:calc(100% - 53px);color:var(--ion-color-step-850, var(--ion-text-color-step-150, #262626));font-size:1rem}.alert-checkbox-icon.sc-ion-alert-md{top:0;border-radius:2px;position:relative;width:16px;height:16px;border-width:2px;border-style:solid;border-color:var(--ion-color-step-550, var(--ion-background-color-step-550, #737373));contain:strict}.alert-checkbox-icon.sc-ion-alert-md{inset-inline-start:26px}[aria-checked=true].sc-ion-alert-md .alert-checkbox-icon.sc-ion-alert-md{border-color:var(--ion-color-primary, #0054e9);background-color:var(--ion-color-primary, #0054e9)}[aria-checked=true].sc-ion-alert-md .alert-checkbox-inner.sc-ion-alert-md{top:0;position:absolute;width:6px;height:10px;-webkit-transform:rotate(45deg);transform:rotate(45deg);border-width:2px;border-top-width:0;border-left-width:0;border-style:solid;border-color:var(--ion-color-primary-contrast, #fff)}[aria-checked=true].sc-ion-alert-md .alert-checkbox-inner.sc-ion-alert-md{inset-inline-start:3px}.alert-button-group.sc-ion-alert-md{-webkit-padding-start:8px;padding-inline-start:8px;-webkit-padding-end:8px;padding-inline-end:8px;padding-top:8px;padding-bottom:8px;-webkit-box-sizing:border-box;box-sizing:border-box;-ms-flex-wrap:wrap-reverse;flex-wrap:wrap-reverse;-ms-flex-pack:end;justify-content:flex-end}.alert-button.sc-ion-alert-md{border-radius:2px;-webkit-margin-start:0;margin-inline-start:0;-webkit-margin-end:8px;margin-inline-end:8px;margin-top:0;margin-bottom:0;-webkit-padding-start:10px;padding-inline-start:10px;-webkit-padding-end:10px;padding-inline-end:10px;padding-top:10px;padding-bottom:10px;position:relative;background-color:transparent;color:var(--ion-color-primary, #0054e9);font-weight:500;text-align:end;text-transform:uppercase;overflow:hidden}.alert-button-inner.sc-ion-alert-md{-ms-flex-pack:end;justify-content:flex-end}@media screen and (min-width: 768px){.sc-ion-alert-md-h{--max-width:min(100vw - 96px, 560px);--max-height:min(100vh - 96px, 560px)}}" }; } }, [34, "ion-alert", { overlayIndex: [2, "overlay-index"], delegate: [16], hasController: [4, "has-controller"], keyboardClose: [4, "keyboard-close"], enterAnimation: [16], leaveAnimation: [16], cssClass: [1, "css-class"], header: [1], subHeader: [1, "sub-header"], message: [1], buttons: [16], inputs: [1040], backdropDismiss: [4, "backdrop-dismiss"], translucent: [4], animated: [4], htmlAttributes: [16], isOpen: [4, "is-open"], trigger: [1], present: [64], dismiss: [64], onDidDismiss: [64], onWillDismiss: [64] }, [[4, "keydown", "onKeydown"]], { isOpen: [{ onIsOpenChange: 0 }], trigger: [{ triggerChanged: 0 }], buttons: [{ buttonsChanged: 0 }], inputs: [{ inputsChanged: 0 }] }]); var L5 = (t17) => { var e16, i16, r32; return Object.assign(Object.assign({ "alert-input": true, "alert-input-disabled": (null !== (i16 = null === (e16 = t17.attributes) || void 0 === e16 ? void 0 : e16.disabled) && void 0 !== i16 ? i16 : t17.disabled) || false }, r5(t17.cssClass)), r5(t17.attributes ? null === (r32 = t17.attributes.class) || void 0 === r32 ? void 0 : r32.toString() : "")); }; var W4 = (t17) => Object.assign({ "alert-button": true, "ion-focusable": true, "ion-activatable": true, [`alert-button-role-${t17.role}`]: void 0 !== t17.role }, r5(t17.cssClass)); function H5() { "undefined" != typeof customElements && ["ion-alert", "ion-backdrop", "ion-ripple-effect"].forEach(((t17) => { switch (t17) { case "ion-alert": customElements.get(Zn(t17)) || customElements.define(Zn(t17), B7); break; case "ion-backdrop": customElements.get(Zn(t17)) || c11(); break; case "ion-ripple-effect": customElements.get(Zn(t17)) || p7(); } })); } // node_modules/@ionic/core/components/ion-alert.js var r10 = H5; // node_modules/@ionic/core/components/ion-app.js var d8 = Dn(class extends I { constructor(t17) { super(), false !== t17 && this.__registerHost(); } componentDidLoad() { this.rIC((() => __async(this, null, function* () { const t17 = s7(window, "hybrid"); if (n.getBoolean("_testing") || import("./chunk-F5FETMCK.js").then(((t18) => t18.startTapClick(n))), n.getBoolean("statusTap", t17) && import("./chunk-XDEAE2LF.js").then(((t18) => t18.startStatusTap())), n.getBoolean("inputShims", m9())) { const t18 = s7(window, "ios") ? "ios" : "android"; import("./chunk-RSCOYE2V.js").then(((e17) => e17.startInputShims(n, t18))); } const e16 = yield import("./chunk-LI27Q6I5.js"), i16 = t17 || o3(); n.getBoolean("hardwareBackButton", i16) ? e16.startHardwareBackButton() : (o3() && u("[ion-app] - experimentalCloseWatcher was set to `true`, but hardwareBackButton was set to `false`. Both config options must be `true` for the Close Watcher API to be used."), e16.blockHardwareBackButton()), "undefined" != typeof window && import("./chunk-DCYUA4ZS.js").then(((t18) => t18.startKeyboardAssist(window))), import("./chunk-F3SO3H66.js").then(((t18) => this.focusVisible = t18.startFocusVisible())); }))); } disconnectedCallback() { this.loadTimeout && clearTimeout(this.loadTimeout); } setFocus(t17) { return __async(this, null, function* () { this.focusVisible && this.focusVisible.setFocus(t17); }); } rIC(t17) { "requestIdleCallback" in window ? window.requestIdleCallback(t17) : this.loadTimeout = setTimeout(t17, 32); } render() { const t17 = g(this); return Ct(It, { key: "77a7459d3e42b3715a5a7e1cf468e2ebc99e54bb", class: { [t17]: true, "ion-page": true, "force-statusbar-padding": n.getBoolean("_forceStatusbarPadding") } }); } get el() { return this; } static get style() { return "html.plt-mobile ion-app{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}html.plt-mobile ion-app [contenteditable]{-webkit-user-select:text;-moz-user-select:text;-ms-user-select:text;user-select:text}ion-app.force-statusbar-padding{--ion-safe-area-top:20px}"; } }, [0, "ion-app", { setFocus: [64] }]); var m9 = () => !(!s7(window, "ios") || !s7(window, "mobile")) || !(!s7(window, "android") || !s7(window, "mobileweb")); var l11 = function() { "undefined" != typeof customElements && ["ion-app"].forEach(((t17) => { "ion-app" === t17 && (customElements.get(Zn(t17)) || customElements.define(Zn(t17), d8)); })); }; // node_modules/@ionic/core/components/ion-avatar.js var i11 = Dn(class extends I { constructor(r32) { super(), false !== r32 && this.__registerHost(), this.__attachShadow(); } render() { return Ct(It, { key: "998217066084f966bf5d356fed85bcbd451f675a", class: g(this) }, Ct("slot", { key: "1a6f7c9d4dc6a875f86b5b3cda6d59cb39587f22" })); } static get style() { return { ios: ":host{border-radius:var(--border-radius);display:block}::slotted(ion-img),::slotted(img){border-radius:var(--border-radius);width:100%;height:100%;-o-object-fit:cover;object-fit:cover;overflow:hidden}:host{--border-radius:50%;width:48px;height:48px}", md: ":host{border-radius:var(--border-radius);display:block}::slotted(ion-img),::slotted(img){border-radius:var(--border-radius);width:100%;height:100%;-o-object-fit:cover;object-fit:cover;overflow:hidden}:host{--border-radius:50%;width:64px;height:64px}" }; } }, [289, "ion-avatar"]); var c13 = function() { "undefined" != typeof customElements && ["ion-avatar"].forEach(((r32) => { "ion-avatar" === r32 && (customElements.get(Zn(r32)) || customElements.define(Zn(r32), i11)); })); }; // node_modules/@ionic/core/components/ion-backdrop.js var p10 = c11; // node_modules/@ionic/core/components/ion-badge.js var e11 = Dn(class extends I { constructor(o14) { super(), false !== o14 && this.__registerHost(), this.__attachShadow(); } render() { const o14 = g(this); return Ct(It, { key: "1a2d39c5deec771a2f2196447627b62a7d4c8389", class: o6(this.color, { [o14]: true }) }, Ct("slot", { key: "fc1b6587f1ed24715748eb6785e7fb7a57cdd5cd" })); } static get style() { return { ios: ":host{--background:var(--ion-color-primary, #0054e9);--color:var(--ion-color-primary-contrast, #fff);--padding-top:3px;--padding-end:8px;--padding-bottom:3px;--padding-start:8px;-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;-webkit-padding-start:var(--padding-start);padding-inline-start:var(--padding-start);-webkit-padding-end:var(--padding-end);padding-inline-end:var(--padding-end);padding-top:var(--padding-top);padding-bottom:var(--padding-bottom);display:inline-block;min-width:10px;background:var(--background);color:var(--color);font-family:var(--ion-font-family, inherit);font-size:0.8125rem;font-weight:bold;line-height:1;text-align:center;white-space:nowrap;contain:content;vertical-align:baseline}:host(.ion-color){background:var(--ion-color-base);color:var(--ion-color-contrast)}:host(:empty){display:none}:host{border-radius:10px;font-size:max(13px, 0.8125rem)}", md: ":host{--background:var(--ion-color-primary, #0054e9);--color:var(--ion-color-primary-contrast, #fff);--padding-top:3px;--padding-end:8px;--padding-bottom:3px;--padding-start:8px;-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;-webkit-padding-start:var(--padding-start);padding-inline-start:var(--padding-start);-webkit-padding-end:var(--padding-end);padding-inline-end:var(--padding-end);padding-top:var(--padding-top);padding-bottom:var(--padding-bottom);display:inline-block;min-width:10px;background:var(--background);color:var(--color);font-family:var(--ion-font-family, inherit);font-size:0.8125rem;font-weight:bold;line-height:1;text-align:center;white-space:nowrap;contain:content;vertical-align:baseline}:host(.ion-color){background:var(--ion-color-base);color:var(--ion-color-contrast)}:host(:empty){display:none}:host{--padding-top:3px;--padding-end:4px;--padding-bottom:4px;--padding-start:4px;border-radius:4px}" }; } }, [289, "ion-badge", { color: [513] }]); var s12 = function() { "undefined" != typeof customElements && ["ion-badge"].forEach(((o14) => { "ion-badge" === o14 && (customElements.get(Zn(o14)) || customElements.define(Zn(o14), e11)); })); }; // node_modules/@ionic/core/components/ion-breadcrumb.js var h10 = Dn(class extends I { constructor(o14) { super(), false !== o14 && this.__registerHost(), this.__attachShadow(), this.ionFocus = Jt(this, "ionFocus", 7), this.ionBlur = Jt(this, "ionBlur", 7), this.collapsedClick = Jt(this, "collapsedClick", 7), this.inheritedAttributes = {}, this.collapsed = false, this.active = false, this.disabled = false, this.routerDirection = "forward", this.onFocus = () => { this.ionFocus.emit(); }, this.onBlur = () => { this.ionBlur.emit(); }, this.collapsedIndicatorClick = () => { this.collapsedClick.emit({ ionShadowTarget: this.collapsedRef }); }; } componentWillLoad() { this.inheritedAttributes = s2(this.el); } isClickable() { return void 0 !== this.href; } render() { const { color: o14, active: r32, collapsed: e16, disabled: a17, download: n15, el: m28, inheritedAttributes: h21, last: u21, routerAnimation: f27, routerDirection: g20, separator: x16, showCollapsedIndicator: v18, target: k12 } = this, y14 = this.isClickable(), w12 = void 0 === this.href ? "span" : "a", z11 = a17 ? void 0 : this.href, j8 = g(this), C7 = "span" === w12 ? {} : { download: n15, href: z11, target: k12 }, D7 = !u21 && (e16 ? !(!v18 || u21) : x16); return Ct(It, { key: "32ca61c83721dff52b5e97171ed449dce3584a55", onClick: (o15) => l6(z11, o15, g20, f27), "aria-disabled": a17 ? "true" : null, class: o6(o14, { [j8]: true, "breadcrumb-active": r32, "breadcrumb-collapsed": e16, "breadcrumb-disabled": a17, "in-breadcrumbs-color": n5("ion-breadcrumbs[color]", m28), "in-toolbar": n5("ion-toolbar", this.el), "in-toolbar-color": n5("ion-toolbar[color]", this.el), "ion-activatable": y14, "ion-focusable": y14 }) }, Ct(w12, Object.assign({ key: "479feb845f4a6d8009d5422b33eb423730b9722b" }, C7, { class: "breadcrumb-native", part: "native", disabled: a17, onFocus: this.onFocus, onBlur: this.onBlur }, h21), Ct("slot", { key: "3c5dcaeb0d258235d1b7707868026ff1d1404099", name: "start" }), Ct("slot", { key: "f1cfb934443cd97dc220882c5e3596ea879d66cf" }), Ct("slot", { key: "539710121b5b1f3ee8d4c24a9651b67c2ae08add", name: "end" })), v18 && Ct("button", { key: "ed53a95ccd89022c8b7bee0658a221ec62a5c73b", part: "collapsed-indicator", "aria-label": "Show more breadcrumbs", onClick: () => this.collapsedIndicatorClick(), ref: (o15) => this.collapsedRef = o15, class: { "breadcrumbs-collapsed-indicator": true } }, Ct("ion-icon", { key: "a849e1142a86f06f207cf11662fa2a560ab7fc6a", "aria-hidden": "true", icon: x5, lazy: false })), D7 && Ct("span", { key: "fc3c741cb01fafef8b26046c7ee5b190efc69a7c", class: "breadcrumb-separator", part: "separator", "aria-hidden": "true" }, Ct("slot", { key: "4871932ae1dae520767e0713e7cee2d11b0bba6d", name: "separator" }, "ios" === j8 ? Ct("ion-icon", { icon: c8, lazy: false, "flip-rtl": true }) : Ct("span", null, "/")))); } get el() { return this; } static get style() { return { ios: ":host{display:-ms-flexbox;display:flex;-ms-flex:0 0 auto;flex:0 0 auto;-ms-flex-align:center;align-items:center;color:var(--color);font-size:1rem;font-weight:400;line-height:1.5}.breadcrumb-native{font-family:inherit;font-size:inherit;font-style:inherit;font-weight:inherit;letter-spacing:inherit;text-decoration:inherit;text-indent:inherit;text-overflow:inherit;text-transform:inherit;text-align:inherit;white-space:inherit;color:inherit;padding-left:0;padding-right:0;padding-top:0;padding-bottom:0;margin-left:0;margin-right:0;margin-top:0;margin-bottom:0;display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;width:100%;outline:none;background:inherit}:host(.breadcrumb-disabled){cursor:default;opacity:0.5;pointer-events:none}:host(.breadcrumb-active){color:var(--color-active)}:host(.ion-focused){color:var(--color-focused)}:host(.ion-focused) .breadcrumb-native{background:var(--background-focused)}@media (any-hover: hover){:host(.ion-activatable:hover){color:var(--color-hover)}:host(.ion-activatable.in-breadcrumbs-color:hover),:host(.ion-activatable.ion-color:hover){color:var(--ion-color-shade)}}.breadcrumb-separator{display:-ms-inline-flexbox;display:inline-flex}:host(.breadcrumb-collapsed) .breadcrumb-native{display:none}:host(.in-breadcrumbs-color),:host(.in-breadcrumbs-color.breadcrumb-active){color:var(--ion-color-base)}:host(.in-breadcrumbs-color) .breadcrumb-separator{color:var(--ion-color-base)}:host(.ion-color){color:var(--ion-color-base)}:host(.in-toolbar-color),:host(.in-toolbar-color) .breadcrumb-separator{color:rgba(var(--ion-color-contrast-rgb), 0.8)}:host(.in-toolbar-color.breadcrumb-active){color:var(--ion-color-contrast)}.breadcrumbs-collapsed-indicator{padding-left:0;padding-right:0;padding-top:0;padding-bottom:0;-webkit-margin-start:14px;margin-inline-start:14px;-webkit-margin-end:14px;margin-inline-end:14px;margin-top:0;margin-bottom:0;display:-ms-flexbox;display:flex;-ms-flex:1 1 100%;flex:1 1 100%;-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center;width:32px;height:18px;border:0;outline:none;cursor:pointer;-webkit-appearance:none;-moz-appearance:none;appearance:none}.breadcrumbs-collapsed-indicator ion-icon{margin-top:1px;font-size:1.375rem}:host{--color:var(--ion-color-step-850, var(--ion-text-color-step-150, #2d4665));--color-active:var(--ion-text-color, #03060b);--color-hover:var(--ion-text-color, #03060b);--color-focused:var(--color-active);--background-focused:var(--ion-color-step-50, var(--ion-background-color-step-50, rgba(233, 237, 243, 0.7)));font-size:clamp(16px, 1rem, 22px)}:host(.breadcrumb-active){font-weight:600}.breadcrumb-native{border-radius:4px;-webkit-padding-start:12px;padding-inline-start:12px;-webkit-padding-end:12px;padding-inline-end:12px;padding-top:5px;padding-bottom:5px;border:1px solid transparent}:host(.ion-focused) .breadcrumb-native{border-radius:8px}:host(.in-breadcrumbs-color.ion-focused) .breadcrumb-native,:host(.ion-color.ion-focused) .breadcrumb-native{background:rgba(var(--ion-color-base-rgb), 0.1);color:var(--ion-color-base)}:host(.ion-focused) ::slotted(ion-icon),:host(.in-breadcrumbs-color.ion-focused) ::slotted(ion-icon),:host(.ion-color.ion-focused) ::slotted(ion-icon){color:var(--ion-color-step-750, var(--ion-text-color-step-250, #445b78))}.breadcrumb-separator{color:var(--ion-color-step-550, var(--ion-text-color-step-450, #73849a))}::slotted(ion-icon){color:var(--ion-color-step-400, var(--ion-text-color-step-600, #92a0b3));font-size:min(1.125rem, 21.6px)}::slotted(ion-icon[slot=start]){-webkit-margin-end:8px;margin-inline-end:8px}::slotted(ion-icon[slot=end]){-webkit-margin-start:8px;margin-inline-start:8px}:host(.breadcrumb-active) ::slotted(ion-icon){color:var(--ion-color-step-850, var(--ion-text-color-step-150, #242d39))}.breadcrumbs-collapsed-indicator{border-radius:4px;background:var(--ion-color-step-100, var(--ion-background-color-step-100, #e9edf3));color:var(--ion-color-step-550, var(--ion-text-color-step-450, #73849a))}.breadcrumbs-collapsed-indicator:hover{opacity:0.45}.breadcrumbs-collapsed-indicator:focus{background:var(--ion-color-step-150, var(--ion-background-color-step-150, #d9e0ea))}.breadcrumbs-collapsed-indicator ion-icon{font-size:min(1.375rem, 22px)}", md: ":host{display:-ms-flexbox;display:flex;-ms-flex:0 0 auto;flex:0 0 auto;-ms-flex-align:center;align-items:center;color:var(--color);font-size:1rem;font-weight:400;line-height:1.5}.breadcrumb-native{font-family:inherit;font-size:inherit;font-style:inherit;font-weight:inherit;letter-spacing:inherit;text-decoration:inherit;text-indent:inherit;text-overflow:inherit;text-transform:inherit;text-align:inherit;white-space:inherit;color:inherit;padding-left:0;padding-right:0;padding-top:0;padding-bottom:0;margin-left:0;margin-right:0;margin-top:0;margin-bottom:0;display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;width:100%;outline:none;background:inherit}:host(.breadcrumb-disabled){cursor:default;opacity:0.5;pointer-events:none}:host(.breadcrumb-active){color:var(--color-active)}:host(.ion-focused){color:var(--color-focused)}:host(.ion-focused) .breadcrumb-native{background:var(--background-focused)}@media (any-hover: hover){:host(.ion-activatable:hover){color:var(--color-hover)}:host(.ion-activatable.in-breadcrumbs-color:hover),:host(.ion-activatable.ion-color:hover){color:var(--ion-color-shade)}}.breadcrumb-separator{display:-ms-inline-flexbox;display:inline-flex}:host(.breadcrumb-collapsed) .breadcrumb-native{display:none}:host(.in-breadcrumbs-color),:host(.in-breadcrumbs-color.breadcrumb-active){color:var(--ion-color-base)}:host(.in-breadcrumbs-color) .breadcrumb-separator{color:var(--ion-color-base)}:host(.ion-color){color:var(--ion-color-base)}:host(.in-toolbar-color),:host(.in-toolbar-color) .breadcrumb-separator{color:rgba(var(--ion-color-contrast-rgb), 0.8)}:host(.in-toolbar-color.breadcrumb-active){color:var(--ion-color-contrast)}.breadcrumbs-collapsed-indicator{padding-left:0;padding-right:0;padding-top:0;padding-bottom:0;-webkit-margin-start:14px;margin-inline-start:14px;-webkit-margin-end:14px;margin-inline-end:14px;margin-top:0;margin-bottom:0;display:-ms-flexbox;display:flex;-ms-flex:1 1 100%;flex:1 1 100%;-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center;width:32px;height:18px;border:0;outline:none;cursor:pointer;-webkit-appearance:none;-moz-appearance:none;appearance:none}.breadcrumbs-collapsed-indicator ion-icon{margin-top:1px;font-size:1.375rem}:host{--color:var(--ion-color-step-600, var(--ion-text-color-step-400, #677483));--color-active:var(--ion-text-color, #03060b);--color-hover:var(--ion-text-color, #03060b);--color-focused:var(--ion-color-step-800, var(--ion-text-color-step-200, #35404e));--background-focused:var(--ion-color-step-50, var(--ion-background-color-step-50, #fff))}:host(.breadcrumb-active){font-weight:500}.breadcrumb-native{-webkit-padding-start:12px;padding-inline-start:12px;-webkit-padding-end:12px;padding-inline-end:12px;padding-top:6px;padding-bottom:6px}.breadcrumb-separator{-webkit-margin-start:10px;margin-inline-start:10px;-webkit-margin-end:10px;margin-inline-end:10px;margin-top:-1px}:host(.ion-focused) .breadcrumb-native{border-radius:4px;-webkit-box-shadow:0px 1px 2px rgba(0, 0, 0, 0.2), 0px 2px 8px rgba(0, 0, 0, 0.12);box-shadow:0px 1px 2px rgba(0, 0, 0, 0.2), 0px 2px 8px rgba(0, 0, 0, 0.12)}.breadcrumb-separator{color:var(--ion-color-step-550, var(--ion-text-color-step-450, #73849a))}::slotted(ion-icon){color:var(--ion-color-step-550, var(--ion-text-color-step-450, #7d8894));font-size:1.125rem}::slotted(ion-icon[slot=start]){-webkit-margin-end:8px;margin-inline-end:8px}::slotted(ion-icon[slot=end]){-webkit-margin-start:8px;margin-inline-start:8px}:host(.breadcrumb-active) ::slotted(ion-icon){color:var(--ion-color-step-850, var(--ion-text-color-step-150, #222d3a))}.breadcrumbs-collapsed-indicator{border-radius:2px;background:var(--ion-color-step-100, var(--ion-background-color-step-100, #eef1f3));color:var(--ion-color-step-550, var(--ion-text-color-step-450, #73849a))}.breadcrumbs-collapsed-indicator:hover{opacity:0.7}.breadcrumbs-collapsed-indicator:focus{background:var(--ion-color-step-150, var(--ion-background-color-step-150, #dfe5e8))}" }; } }, [289, "ion-breadcrumb", { collapsed: [4], last: [4], showCollapsedIndicator: [4, "show-collapsed-indicator"], color: [1], active: [4], disabled: [4], download: [1], href: [1], rel: [1], separator: [4], target: [1], routerDirection: [1, "router-direction"], routerAnimation: [16] }]); var f11 = function() { "undefined" != typeof customElements && ["ion-breadcrumb", "ion-icon"].forEach(((o14) => { switch (o14) { case "ion-breadcrumb": customElements.get(Zn(o14)) || customElements.define(Zn(o14), h10); break; case "ion-icon": customElements.get(Zn(o14)) || y6(); } })); }; // node_modules/@ionic/core/components/ion-breadcrumbs.js var c14 = Dn(class extends I { constructor(o14) { super(), false !== o14 && this.__registerHost(), this.__attachShadow(), this.ionCollapsedClick = Jt(this, "ionCollapsedClick", 7), this.itemsBeforeCollapse = 1, this.itemsAfterCollapse = 1, this.breadcrumbsInit = () => { this.setBreadcrumbSeparator(), this.setMaxItems(); }, this.resetActiveBreadcrumb = () => { const o15 = this.getBreadcrumbs().find(((o16) => o16.active)); o15 && this.activeChanged && (o15.active = false); }, this.setMaxItems = () => { const { itemsAfterCollapse: o15, itemsBeforeCollapse: t17, maxItems: s23 } = this, e16 = this.getBreadcrumbs(); for (const o16 of e16) o16.showCollapsedIndicator = false, o16.collapsed = false; void 0 !== s23 && e16.length > s23 && t17 + o15 <= s23 && e16.forEach(((s24, a17) => { a17 === t17 && (s24.showCollapsedIndicator = true), a17 >= t17 && a17 < e16.length - o15 && (s24.collapsed = true); })); }, this.setBreadcrumbSeparator = () => { const { itemsAfterCollapse: o15, itemsBeforeCollapse: t17, maxItems: s23 } = this, e16 = this.getBreadcrumbs(), a17 = e16.find(((o16) => o16.active)); for (const i16 of e16) { const r32 = void 0 !== s23 && 0 === o15 ? i16 === e16[t17] : i16 === e16[e16.length - 1]; i16.last = r32, i16.separator = void 0 !== i16.separator ? i16.separator : !r32 || void 0, !a17 && r32 && (i16.active = true, this.activeChanged = true); } }, this.getBreadcrumbs = () => Array.from(this.el.querySelectorAll("ion-breadcrumb")), this.slotChanged = () => { this.resetActiveBreadcrumb(), this.breadcrumbsInit(); }; } onCollapsedClick(o14) { const t17 = this.getBreadcrumbs().filter(((o15) => o15.collapsed)); this.ionCollapsedClick.emit(Object.assign(Object.assign({}, o14.detail), { collapsedBreadcrumbs: t17 })); } maxItemsChanged() { this.resetActiveBreadcrumb(), this.breadcrumbsInit(); } componentWillLoad() { this.breadcrumbsInit(); } render() { const { color: o14, collapsed: t17 } = this, s23 = g(this); return Ct(It, { key: "fe64e9cdf597ede2db140bf5fa05a0359d82db57", class: o6(o14, { [s23]: true, "in-toolbar": n5("ion-toolbar", this.el), "in-toolbar-color": n5("ion-toolbar[color]", this.el), "breadcrumbs-collapsed": t17 }) }, Ct("slot", { key: "a2c99b579e339055c50a613d5c6b61032f5ddffe", onSlotchange: this.slotChanged })); } get el() { return this; } static get watchers() { return { maxItems: [{ maxItemsChanged: 0 }], itemsBeforeCollapse: [{ maxItemsChanged: 0 }], itemsAfterCollapse: [{ maxItemsChanged: 0 }] }; } static get style() { return { ios: ":host{-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;-ms-flex-align:center;align-items:center}:host(.in-toolbar-color),:host(.in-toolbar-color) .breadcrumbs-collapsed-indicator ion-icon{color:var(--ion-color-contrast)}:host(.in-toolbar-color) .breadcrumbs-collapsed-indicator{background:rgba(var(--ion-color-contrast-rgb), 0.11)}:host(.in-toolbar){-webkit-padding-start:20px;padding-inline-start:20px;-webkit-padding-end:20px;padding-inline-end:20px;padding-top:0;padding-bottom:0;-ms-flex-pack:center;justify-content:center}", md: ":host{-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;-ms-flex-align:center;align-items:center}:host(.in-toolbar-color),:host(.in-toolbar-color) .breadcrumbs-collapsed-indicator ion-icon{color:var(--ion-color-contrast)}:host(.in-toolbar-color) .breadcrumbs-collapsed-indicator{background:rgba(var(--ion-color-contrast-rgb), 0.11)}:host(.in-toolbar){-webkit-padding-start:8px;padding-inline-start:8px;-webkit-padding-end:8px;padding-inline-end:8px;padding-top:0;padding-bottom:0}" }; } }, [289, "ion-breadcrumbs", { color: [513], maxItems: [2, "max-items"], itemsBeforeCollapse: [2, "items-before-collapse"], itemsAfterCollapse: [2, "items-after-collapse"], collapsed: [32], activeChanged: [32] }, [[0, "collapsedClick", "onCollapsedClick"]], { maxItems: [{ maxItemsChanged: 0 }], itemsBeforeCollapse: [{ maxItemsChanged: 0 }], itemsAfterCollapse: [{ maxItemsChanged: 0 }] }]); var m10 = function() { "undefined" != typeof customElements && ["ion-breadcrumbs"].forEach(((o14) => { "ion-breadcrumbs" === o14 && (customElements.get(Zn(o14)) || customElements.define(Zn(o14), c14)); })); }; // node_modules/@ionic/core/components/p-BTeL5HCK.js var g5 = Dn(class extends I { constructor(o14) { super(), false !== o14 && this.__registerHost(), this.__attachShadow(), this.ionFocus = Jt(this, "ionFocus", 7), this.ionBlur = Jt(this, "ionBlur", 7), this.inItem = false, this.inListHeader = false, this.inToolbar = false, this.formButtonEl = null, this.formEl = null, this.inheritedAttributes = {}, this.isCircle = false, this.buttonType = "button", this.disabled = false, this.routerDirection = "forward", this.strong = false, this.type = "button", this.handleClick = (o15) => { const { el: t17 } = this; "button" === this.type ? l6(this.href, o15, this.routerDirection, this.routerAnimation) : m(t17) && this.submitForm(o15); }, this.onFocus = () => { this.ionFocus.emit(); }, this.onBlur = () => { this.ionBlur.emit(); }, this.slotChanged = () => { this.isCircle = this.hasIconOnly; }; } disabledChanged() { const { disabled: o14 } = this; this.formButtonEl && (this.formButtonEl.disabled = o14); } onAriaChanged(o14, t17, n15) { this.inheritedAttributes = Object.assign(Object.assign({}, this.inheritedAttributes), { [n15]: o14 }), Rn(this); } renderHiddenButton() { const o14 = this.formEl = this.findForm(); if (o14) { const { formButtonEl: t17 } = this; if (null !== t17 && o14.contains(t17)) return; const n15 = this.formButtonEl = document.createElement("button"); n15.type = this.type, n15.style.display = "none", n15.disabled = this.disabled, o14.appendChild(n15); } } componentWillLoad() { this.inToolbar = !!this.el.closest("ion-buttons"), this.inListHeader = !!this.el.closest("ion-list-header"), this.inItem = !!this.el.closest("ion-item") || !!this.el.closest("ion-item-divider"), this.inheritedAttributes = s2(this.el); } get hasIconOnly() { return !!this.el.querySelector('[slot="icon-only"]'); } get rippleType() { return (void 0 === this.fill || "clear" === this.fill) && this.hasIconOnly && this.inToolbar ? "unbounded" : "bounded"; } findForm() { const { form: o14 } = this; if (o14 instanceof HTMLFormElement) return o14; if ("string" == typeof o14) { const t17 = document.getElementById(o14); return t17 ? t17 instanceof HTMLFormElement ? t17 : (u(`[ion-button] - Form with selector: "#${o14}" could not be found. Verify that the id is attached to a