PageSourceSearch

https://agakhanmuseum.org/themes/childtheme/assets/js/admissions.js?ver=1786455359

js agakhanmuseum.org collected 2026-09-24 09:03:28 UTC 2,390,782 bytes, 62,588 lines download raw bytes

vendor: 3,653 bytes, lines 1-88
1/******/ (function(modules) { // webpackBootstrap
2/******/ 	// The module cache
3/******/ 	var installedModules = {};
4/******/
5/******/ 	// The require function
6/******/ 	function __webpack_require__(moduleId) {
7/******/
8/******/ 		// Check if module is in cache
9/******/ 		if(installedModules[moduleId]) {
10/******/ 			return installedModules[moduleId].exports;
11/******/ 		}
12/******/ 		// Create a new module (and put it into the cache)
13/******/ 		var module = installedModules[moduleId] = {
14/******/ 			i: moduleId,
15/******/ 			l: false,
16/******/ 			exports: {}
17/******/ 		};
18/******/
19/******/ 		// Execute the module function
20/******/ 		modules[moduleId].call(module.exports, module, module.exports, __webpack_require__);
21/******/
22/******/ 		// Flag the module as loaded
23/******/ 		module.l = true;
24/******/
25/******/ 		// Return the exports of the module
26/******/ 		return module.exports;
27/******/ 	}
28/******/
29/******/
30/******/ 	// expose the modules object (__webpack_modules__)
31/******/ 	__webpack_require__.m = modules;
32/******/
33/******/ 	// expose the module cache
34/******/ 	__webpack_require__.c = installedModules;
35/******/
36/******/ 	// define getter function for harmony exports
37/******/ 	__webpack_require__.d = function(exports, name, getter) {
38/******/ 		if(!__webpack_require__.o(exports, name)) {
39/******/ 			Object.defineProperty(exports, name, { enumerable: true, get: getter });
40/******/ 		}
41/******/ 	};
42/******/
43/******/ 	// define __esModule on exports
44/******/ 	__webpack_require__.r = function(exports) {
45/******/ 		if(typeof Symbol !== 'undefined' && Symbol.toStringTag) {
46/******/ 			Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
47/******/ 		}
48/******/ 		Object.defineProperty(exports, '__esModule', { value: true });
49/******/ 	};
50/******/
51/******/ 	// create a fake namespace object
52/******/ 	// mode & 1: value is a module id, require it
53/******/ 	// mode & 2: merge all properties of value into the ns
54/******/ 	// mode & 4: return value when already ns object
55/******/ 	// mode & 8|1: behave like require
56/******/ 	__webpack_require__.t = function(value, mode) {
57/******/ 		if(mode & 1) value = __webpack_require__(value);
58/******/ 		if(mode & 8) return value;
59/******/ 		if((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;
60/******/ 		var ns = Object.create(null);
61/******/ 		__webpack_require__.r(ns);
62/******/ 		Object.defineProperty(ns, 'default', { enumerable: true, value: value });
63/******/ 		if(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));
64/******/ 		return ns;
65/******/ 	};
66/******/
67/******/ 	// getDefaultExport function for compatibility with non-harmony modules
68/******/ 	__webpack_require__.n = function(module) {
69/******/ 		var getter = module && module.__esModule ?
70/******/ 			function getDefault() { return module['default']; } :
71/******/ 			function getModuleExports() { return module; };
72/******/ 		__webpack_require__.d(getter, 'a', getter);
73/******/ 		return getter;
74/******/ 	};
75/******/
76/******/ 	// Object.prototype.hasOwnProperty.call
77/******/ 	__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };
78/******/
79/******/ 	// __webpack_public_path__
80/******/ 	__webpack_require__.p = "/themes/childtheme/assets/js/";
81/******/
82/******/
83/******/ 	// Load entry module and return exports
84/******/ 	return __webpack_require__(__webpack_require__.s = "./src/vue/admissions/index.js");
85/******/ })
86/************************************************************************/
87/******/ ({
88
vendor: 99,029 bytes, lines 89-2255
89/***/ "./node_modules/@fullcalendar/core/index.js":
90/*!**************************************************!*\
91  !*** ./node_modules/@fullcalendar/core/index.js ***!
92  \**************************************************/
93/*! exports provided: JsonRequestError, Calendar, createPlugin, formatDate, formatRange, globalLocales, globalPlugins, sliceEvents, version */
94/***/ (function(module, __webpack_exports__, __webpack_require__) {
95
96"use strict";
97__webpack_require__.r(__webpack_exports__);
98/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "Calendar", function() { return Calendar; });
99/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "createPlugin", function() { return createPlugin; });
100/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "formatDate", function() { return formatDate; });
101/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "formatRange", function() { return formatRange; });
102/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "globalLocales", function() { return globalLocales; });
103/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "globalPlugins", function() { return globalPlugins; });
104/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "sliceEvents", function() { return sliceEvents; });
105/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "version", function() { return version; });
106/* harmony import */ var _internal_common_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal-common.js */ "./node_modules/@fullcalendar/core/internal-common.js");
107/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "JsonRequestError", function() { return _internal_common_js__WEBPACK_IMPORTED_MODULE_0__["ag"]; });
108
109/* harmony import */ var preact__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! preact */ "./node_modules/preact/dist/preact.module.js");
110/* harmony import */ var preact_compat__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! preact/compat */ "./node_modules/preact/compat/dist/compat.module.js");
111
112
113
114
115
116const globalLocales = [];
117
118const MINIMAL_RAW_EN_LOCALE = {
119    code: 'en',
120    week: {
121        dow: 0,
122        doy: 4, // 4 days need to be within the year to be considered the first week
123    },
124    direction: 'ltr',
125    buttonText: {
126        prev: 'prev',
127        next: 'next',
128        prevYear: 'prev year',
129        nextYear: 'next year',
130        year: 'year',
131        today: 'today',
132        month: 'month',
133        week: 'week',
134        day: 'day',
135        list: 'list',
136    },
137    weekText: 'W',
138    weekTextLong: 'Week',
139    closeHint: 'Close',
140    timeHint: 'Time',
141    eventHint: 'Event',
142    allDayText: 'all-day',
143    moreLinkText: 'more',
144    noEventsText: 'No events to display',
145};
146const RAW_EN_LOCALE = Object.assign(Object.assign({}, MINIMAL_RAW_EN_LOCALE), { 
147    // Includes things we don't want other locales to inherit,
148    // things that derive from other translatable strings.
149    buttonHints: {
150        prev: 'Previous $0',
151        next: 'Next $0',
152        today(buttonText, unit) {
153            return (unit === 'day')
154                ? 'Today'
155                : `This ${buttonText}`;
156        },
157    }, viewHint: '$0 view', navLinkHint: 'Go to $0', moreLinkHint(eventCnt) {
158        return `Show ${eventCnt} more event${eventCnt === 1 ? '' : 's'}`;
159    } });
160function organizeRawLocales(explicitRawLocales) {
161    let defaultCode = explicitRawLocales.length > 0 ? explicitRawLocales[0].code : 'en';
162    let allRawLocales = globalLocales.concat(explicitRawLocales);
163    let rawLocaleMap = {
164        en: RAW_EN_LOCALE,
165    };
166    for (let rawLocale of allRawLocales) {
167        rawLocaleMap[rawLocale.code] = rawLocale;
168    }
169    return {
170        map: rawLocaleMap,
171        defaultCode,
172    };
173}
174function buildLocale(inputSingular, available) {
175    if (typeof inputSingular === 'object' && !Array.isArray(inputSingular)) {
176        return parseLocale(inputSingular.code, [inputSingular.code], inputSingular);
177    }
178    return queryLocale(inputSingular, available);
179}
180function queryLocale(codeArg, available) {
181    let codes = [].concat(codeArg || []); // will convert to array
182    let raw = queryRawLocale(codes, available) || RAW_EN_LOCALE;
183    return parseLocale(codeArg, codes, raw);
184}
185function queryRawLocale(codes, available) {
186    for (let i = 0; i < codes.length; i += 1) {
187        let parts = codes[i].toLocaleLowerCase().split('-');
188        for (let j = parts.length; j > 0; j -= 1) {
189            let simpleId = parts.slice(0, j).join('-');
190            if (available[simpleId]) {
191                return available[simpleId];
192            }
193        }
194    }
195    return null;
196}
197function parseLocale(codeArg, codes, raw) {
198    let merged = Object(_internal_common_js__WEBPACK_IMPORTED_MODULE_0__["m"])([MINIMAL_RAW_EN_LOCALE, raw], ['buttonText']);
199    delete merged.code; // don't want this part of the options
200    let { week } = merged;
201    delete merged.week;
202    return {
203        codeArg,
204        codes,
205        week,
206        simpleNumberFormat: new Intl.NumberFormat(codeArg),
207        options: merged,
208    };
209}
210
211// TODO: easier way to add new hooks? need to update a million things
212function createPlugin(input) {
213    return {
214        id: Object(_internal_common_js__WEBPACK_IMPORTED_MODULE_0__["g"])(),
215        name: input.name,
216        premiumReleaseDate: input.premiumReleaseDate ? new Date(input.premiumReleaseDate) : undefined,
217        deps: input.deps || [],
218        reducers: input.reducers || [],
219        isLoadingFuncs: input.isLoadingFuncs || [],
220        contextInit: [].concat(input.contextInit || []),
221        eventRefiners: input.eventRefiners || {},
222        eventDefMemberAdders: input.eventDefMemberAdders || [],
223        eventSourceRefiners: input.eventSourceRefiners || {},
224        isDraggableTransformers: input.isDraggableTransformers || [],
225        eventDragMutationMassagers: input.eventDragMutationMassagers || [],
226        eventDefMutationAppliers: input.eventDefMutationAppliers || [],
227        dateSelectionTransformers: input.dateSelectionTransformers || [],
228        datePointTransforms: input.datePointTransforms || [],
229        dateSpanTransforms: input.dateSpanTransforms || [],
230        views: input.views || {},
231        viewPropsTransformers: input.viewPropsTransformers || [],
232        isPropsValid: input.isPropsValid || null,
233        externalDefTransforms: input.externalDefTransforms || [],
234        viewContainerAppends: input.viewContainerAppends || [],
235        eventDropTransformers: input.eventDropTransformers || [],
236        componentInteractions: input.componentInteractions || [],
237        calendarInteractions: input.calendarInteractions || [],
238        themeClasses: input.themeClasses || {},
239        eventSourceDefs: input.eventSourceDefs || [],
240        cmdFormatter: input.cmdFormatter,
241        recurringTypes: input.recurringTypes || [],
242        namedTimeZonedImpl: input.namedTimeZonedImpl,
243        initialView: input.initialView || '',
244        elementDraggingImpl: input.elementDraggingImpl,
245        optionChangeHandlers: input.optionChangeHandlers || {},
246        scrollGridImpl: input.scrollGridImpl || null,
247        listenerRefiners: input.listenerRefiners || {},
248        optionRefiners: input.optionRefiners || {},
249        propSetHandlers: input.propSetHandlers || {},
250    };
251}
252function buildPluginHooks(pluginDefs, globalDefs) {
253    let currentPluginIds = {};
254    let hooks = {
255        premiumReleaseDate: undefined,
256        reducers: [],
257        isLoadingFuncs: [],
258        contextInit: [],
259        eventRefiners: {},
260        eventDefMemberAdders: [],
261        eventSourceRefiners: {},
262        isDraggableTransformers: [],
263        eventDragMutationMassagers: [],
264        eventDefMutationAppliers: [],
265        dateSelectionTransformers: [],
266        datePointTransforms: [],
267        dateSpanTransforms: [],
268        views: {},
269        viewPropsTransformers: [],
270        isPropsValid: null,
271        externalDefTransforms: [],
272        viewContainerAppends: [],
273        eventDropTransformers: [],
274        componentInteractions: [],
275        calendarInteractions: [],
276        themeClasses: {},
277        eventSourceDefs: [],
278        cmdFormatter: null,
279        recurringTypes: [],
280        namedTimeZonedImpl: null,
281        initialView: '',
282        elementDraggingImpl: null,
283        optionChangeHandlers: {},
284        scrollGridImpl: null,
285        listenerRefiners: {},
286        optionRefiners: {},
287        propSetHandlers: {},
288    };
289    function addDefs(defs) {
290        for (let def of defs) {
291            const pluginName = def.name;
292            const currentId = currentPluginIds[pluginName];
293            if (currentId === undefined) {
294                currentPluginIds[pluginName] = def.id;
295                addDefs(def.deps);
296                hooks = combineHooks(hooks, def);
297            }
298            else if (currentId !== def.id) {
299                // different ID than the one already added
300                console.warn(`Duplicate plugin '${pluginName}'`);
301            }
302        }
303    }
304    if (pluginDefs) {
305        addDefs(pluginDefs);
306    }
307    addDefs(globalDefs);
308    return hooks;
309}
310function buildBuildPluginHooks() {
311    let currentOverrideDefs = [];
312    let currentGlobalDefs = [];
313    let currentHooks;
314    return (overrideDefs, globalDefs) => {
315        if (!currentHooks || !Object(_internal_common_js__WEBPACK_IMPORTED_MODULE_0__["i"])(overrideDefs, currentOverrideDefs) || !Object(_internal_common_js__WEBPACK_IMPORTED_MODULE_0__["i"])(globalDefs, currentGlobalDefs)) {
316            currentHooks = buildPluginHooks(overrideDefs, globalDefs);
317        }
318        currentOverrideDefs = overrideDefs;
319        currentGlobalDefs = globalDefs;
320        return currentHooks;
321    };
322}
323function combineHooks(hooks0, hooks1) {
324    return {
325        premiumReleaseDate: compareOptionalDates(hooks0.premiumReleaseDate, hooks1.premiumReleaseDate),
326        reducers: hooks0.reducers.concat(hooks1.reducers),
327        isLoadingFuncs: hooks0.isLoadingFuncs.concat(hooks1.isLoadingFuncs),
328        contextInit: hooks0.contextInit.concat(hooks1.contextInit),
329        eventRefiners: Object.assign(Object.assign({}, hooks0.eventRefiners), hooks1.eventRefiners),
330        eventDefMemberAdders: hooks0.eventDefMemberAdders.concat(hooks1.eventDefMemberAdders),
331        eventSourceRefiners: Object.assign(Object.assign({}, hooks0.eventSourceRefiners), hooks1.eventSourceRefiners),
332        isDraggableTransformers: hooks0.isDraggableTransformers.concat(hooks1.isDraggableTransformers),
333        eventDragMutationMassagers: hooks0.eventDragMutationMassagers.concat(hooks1.eventDragMutationMassagers),
334        eventDefMutationAppliers: hooks0.eventDefMutationAppliers.concat(hooks1.eventDefMutationAppliers),
335        dateSelectionTransformers: hooks0.dateSelectionTransformers.concat(hooks1.dateSelectionTransformers),
336        datePointTransforms: hooks0.datePointTransforms.concat(hooks1.datePointTransforms),
337        dateSpanTransforms: hooks0.dateSpanTransforms.concat(hooks1.dateSpanTransforms),
338        views: Object.assign(Object.assign({}, hooks0.views), hooks1.views),
339        viewPropsTransformers: hooks0.viewPropsTransformers.concat(hooks1.viewPropsTransformers),
340        isPropsValid: hooks1.isPropsValid || hooks0.isPropsValid,
341        externalDefTransforms: hooks0.externalDefTransforms.concat(hooks1.externalDefTransforms),
342        viewContainerAppends: hooks0.viewContainerAppends.concat(hooks1.viewContainerAppends),
343        eventDropTransformers: hooks0.eventDropTransformers.concat(hooks1.eventDropTransformers),
344        calendarInteractions: hooks0.calendarInteractions.concat(hooks1.calendarInteractions),
345        componentInteractions: hooks0.componentInteractions.concat(hooks1.componentInteractions),
346        themeClasses: Object.assign(Object.assign({}, hooks0.themeClasses), hooks1.themeClasses),
347        eventSourceDefs: hooks0.eventSourceDefs.concat(hooks1.eventSourceDefs),
348        cmdFormatter: hooks1.cmdFormatter || hooks0.cmdFormatter,
349        recurringTypes: hooks0.recurringTypes.concat(hooks1.recurringTypes),
350        namedTimeZonedImpl: hooks1.namedTimeZonedImpl || hooks0.namedTimeZonedImpl,
351        initialView: hooks0.initialView || hooks1.initialView,
352        elementDraggingImpl: hooks0.elementDraggingImpl || hooks1.elementDraggingImpl,
353        optionChangeHandlers: Object.assign(Object.assign({}, hooks0.optionChangeHandlers), hooks1.optionChangeHandlers),
354        scrollGridImpl: hooks1.scrollGridImpl || hooks0.scrollGridImpl,
355        listenerRefiners: Object.assign(Object.assign({}, hooks0.listenerRefiners), hooks1.listenerRefiners),
356        optionRefiners: Object.assign(Object.assign({}, hooks0.optionRefiners), hooks1.optionRefiners),
357        propSetHandlers: Object.assign(Object.assign({}, hooks0.propSetHandlers), hooks1.propSetHandlers),
358    };
359}
360function compareOptionalDates(date0, date1) {
361    if (date0 === undefined) {
362        return date1;
363    }
364    if (date1 === undefined) {
365        return date0;
366    }
367    return new Date(Math.max(date0.valueOf(), date1.valueOf()));
368}
369
370class StandardTheme extends _internal_common_js__WEBPACK_IMPORTED_MODULE_0__["T"] {
371}
372StandardTheme.prototype.classes = {
373    root: 'fc-theme-standard',
374    tableCellShaded: 'fc-cell-shaded',
375    buttonGroup: 'fc-button-group',
376    button: 'fc-button fc-button-primary',
377    buttonActive: 'fc-button-active',
378};
379StandardTheme.prototype.baseIconClass = 'fc-icon';
380StandardTheme.prototype.iconClasses = {
381    close: 'fc-icon-x',
382    prev: 'fc-icon-chevron-left',
383    next: 'fc-icon-chevron-right',
384    prevYear: 'fc-icon-chevrons-left',
385    nextYear: 'fc-icon-chevrons-right',
386};
387StandardTheme.prototype.rtlIconClasses = {
388    prev: 'fc-icon-chevron-right',
389    next: 'fc-icon-chevron-left',
390    prevYear: 'fc-icon-chevrons-right',
391    nextYear: 'fc-icon-chevrons-left',
392};
393StandardTheme.prototype.iconOverrideOption = 'buttonIcons'; // TODO: make TS-friendly
394StandardTheme.prototype.iconOverrideCustomButtonOption = 'icon';
395StandardTheme.prototype.iconOverridePrefix = 'fc-icon-';
396
397function compileViewDefs(defaultConfigs, overrideConfigs) {
398    let hash = {};
399    let viewType;
400    for (viewType in defaultConfigs) {
401        ensureViewDef(viewType, hash, defaultConfigs, overrideConfigs);
402    }
403    for (viewType in overrideConfigs) {
404        ensureViewDef(viewType, hash, defaultConfigs, overrideConfigs);
405    }
406    return hash;
407}
408function ensureViewDef(viewType, hash, defaultConfigs, overrideConfigs) {
409    if (hash[viewType]) {
410        return hash[viewType];
411    }
412    let viewDef = buildViewDef(viewType, hash, defaultConfigs, overrideConfigs);
413    if (viewDef) {
414        hash[viewType] = viewDef;
415    }
416    return viewDef;
417}
418function buildViewDef(viewType, hash, defaultConfigs, overrideConfigs) {
419    let defaultConfig = defaultConfigs[viewType];
420    let overrideConfig = overrideConfigs[viewType];
421    let queryProp = (name) => ((defaultConfig && defaultConfig[name] !== null) ? defaultConfig[name] :
422        ((overrideConfig && overrideConfig[name] !== null) ? overrideConfig[name] : null));
423    let theComponent = queryProp('component');
424    let superType = queryProp('superType');
425    let superDef = null;
426    if (superType) {
427        if (superType === viewType) {
428            throw new Error('Can\'t have a custom view type that references itself');
429        }
430        superDef = ensureViewDef(superType, hash, defaultConfigs, overrideConfigs);
431    }
432    if (!theComponent && superDef) {
433        theComponent = superDef.component;
434    }
435    if (!theComponent) {
436        return null; // don't throw a warning, might be settings for a single-unit view
437    }
438    return {
439        type: viewType,
440        component: theComponent,
441        defaults: Object.assign(Object.assign({}, (superDef ? superDef.defaults : {})), (defaultConfig ? defaultConfig.rawOptions : {})),
442        overrides: Object.assign(Object.assign({}, (superDef ? superDef.overrides : {})), (overrideConfig ? overrideConfig.rawOptions : {})),
443    };
444}
445
446function parseViewConfigs(inputs) {
447    return Object(_internal_common_js__WEBPACK_IMPORTED_MODULE_0__["a"])(inputs, parseViewConfig);
448}
449function parseViewConfig(input) {
450    let rawOptions = typeof input === 'function' ?
451        { component: input } :
452        input;
453    let { component } = rawOptions;
454    if (rawOptions.content) {
455        // TODO: remove content/classNames/didMount/etc from options?
456        component = createViewHookComponent(rawOptions);
457    }
458    else if (component && !(component.prototype instanceof _internal_common_js__WEBPACK_IMPORTED_MODULE_0__["B"])) {
459        // WHY?: people were using `component` property for `content`
460        // TODO: converge on one setting name
461        component = createViewHookComponent(Object.assign(Object.assign({}, rawOptions), { content: component }));
462    }
463    return {
464        superType: rawOptions.type,
465        component: component,
466        rawOptions, // includes type and component too :(
467    };
468}
469function createViewHookComponent(options) {
470    return (viewProps) => (Object(preact__WEBPACK_IMPORTED_MODULE_1__["createElement"])(_internal_common_js__WEBPACK_IMPORTED_MODULE_0__["V"].Consumer, null, (context) => (Object(preact__WEBPACK_IMPORTED_MODULE_1__["createElement"])(_internal_common_js__WEBPACK_IMPORTED_MODULE_0__["C"], { elTag: "div", elClasses: Object(_internal_common_js__WEBPACK_IMPORTED_MODULE_0__["b"])(context.viewSpec), renderProps: Object.assign(Object.assign({}, viewProps), { nextDayThreshold: context.options.nextDayThreshold }), generatorName: undefined, customGenerator: options.content, classNameGenerator: options.classNames, didMount: options.didMount, willUnmount: options.willUnmount }))));
471}
472
473function buildViewSpecs(defaultInputs, optionOverrides, dynamicOptionOverrides, localeDefaults) {
474    let defaultConfigs = parseViewConfigs(defaultInputs);
475    let overrideConfigs = parseViewConfigs(optionOverrides.views);
476    let viewDefs = compileViewDefs(defaultConfigs, overrideConfigs);
477    return Object(_internal_common_js__WEBPACK_IMPORTED_MODULE_0__["a"])(viewDefs, (viewDef) => buildViewSpec(viewDef, overrideConfigs, optionOverrides, dynamicOptionOverrides, localeDefaults));
478}
479function buildViewSpec(viewDef, overrideConfigs, optionOverrides, dynamicOptionOverrides, localeDefaults) {
480    let durationInput = viewDef.overrides.duration ||
481        viewDef.defaults.duration ||
482        dynamicOptionOverrides.duration ||
483        optionOverrides.duration;
484    let duration = null;
485    let durationUnit = '';
486    let singleUnit = '';
487    let singleUnitOverrides = {};
488    if (durationInput) {
489        duration = createDurationCached(durationInput);
490        if (duration) { // valid?
491            let denom = Object(_internal_common_js__WEBPACK_IMPORTED_MODULE_0__["c"])(duration);
492            durationUnit = denom.unit;
493            if (denom.value === 1) {
494                singleUnit = durationUnit;
495                singleUnitOverrides = overrideConfigs[durationUnit] ? overrideConfigs[durationUnit].rawOptions : {};
496            }
497        }
498    }
499    let queryButtonText = (optionsSubset) => {
500        let buttonTextMap = optionsSubset.buttonText || {};
501        let buttonTextKey = viewDef.defaults.buttonTextKey;
502        if (buttonTextKey != null && buttonTextMap[buttonTextKey] != null) {
503            return buttonTextMap[buttonTextKey];
504        }
505        if (buttonTextMap[viewDef.type] != null) {
506            return buttonTextMap[viewDef.type];
507        }
508        if (buttonTextMap[singleUnit] != null) {
509            return buttonTextMap[singleUnit];
510        }
511        return null;
512    };
513    let queryButtonTitle = (optionsSubset) => {
514        let buttonHints = optionsSubset.buttonHints || {};
515        let buttonKey = viewDef.defaults.buttonTextKey; // use same key as text
516        if (buttonKey != null && buttonHints[buttonKey] != null) {
517            return buttonHints[buttonKey];
518        }
519        if (buttonHints[viewDef.type] != null) {
520            return buttonHints[viewDef.type];
521        }
522        if (buttonHints[singleUnit] != null) {
523            return buttonHints[singleUnit];
524        }
525        return null;
526    };
527    return {
528        type: viewDef.type,
529        component: viewDef.component,
530        duration,
531        durationUnit,
532        singleUnit,
533        optionDefaults: viewDef.defaults,
534        optionOverrides: Object.assign(Object.assign({}, singleUnitOverrides), viewDef.overrides),
535        buttonTextOverride: queryButtonText(dynamicOptionOverrides) ||
536            queryButtonText(optionOverrides) || // constructor-specified buttonText lookup hash takes precedence
537            viewDef.overrides.buttonText,
538        buttonTextDefault: queryButtonText(localeDefaults) ||
539            viewDef.defaults.buttonText ||
540            queryButtonText(_internal_common_js__WEBPACK_IMPORTED_MODULE_0__["e"]) ||
541            viewDef.type,
542        // not DRY
543        buttonTitleOverride: queryButtonTitle(dynamicOptionOverrides) ||
544            queryButtonTitle(optionOverrides) ||
545            viewDef.overrides.buttonHint,
546        buttonTitleDefault: queryButtonTitle(localeDefaults) ||
547            viewDef.defaults.buttonHint ||
548            queryButtonTitle(_internal_common_js__WEBPACK_IMPORTED_MODULE_0__["e"]),
549        // will eventually fall back to buttonText
550    };
551}
552// hack to get memoization working
553let durationInputMap = {};
554function createDurationCached(durationInput) {
555    let json = JSON.stringify(durationInput);
556    let res = durationInputMap[json];
557    if (res === undefined) {
558        res = Object(_internal_common_js__WEBPACK_IMPORTED_MODULE_0__["d"])(durationInput);
559        durationInputMap[json] = res;
560    }
561    return res;
562}
563
564function reduceViewType(viewType, action) {
565    switch (action.type) {
566        case 'CHANGE_VIEW_TYPE':
567            viewType = action.viewType;
568    }
569    return viewType;
570}
571
572function reduceDynamicOptionOverrides(dynamicOptionOverrides, action) {
573    switch (action.type) {
574        case 'SET_OPTION':
575            return Object.assign(Object.assign({}, dynamicOptionOverrides), { [action.optionName]: action.rawOptionValue });
576        default:
577            return dynamicOptionOverrides;
578    }
579}
580
581function reduceDateProfile(currentDateProfile, action, currentDate, dateProfileGenerator) {
582    let dp;
583    switch (action.type) {
584        case 'CHANGE_VIEW_TYPE':
585            return dateProfileGenerator.build(action.dateMarker || currentDate);
586        case 'CHANGE_DATE':
587            return dateProfileGenerator.build(action.dateMarker);
588        case 'PREV':
589            dp = dateProfileGenerator.buildPrev(currentDateProfile, currentDate);
590            if (dp.isValid) {
591                return dp;
592            }
593            break;
594        case 'NEXT':
595            dp = dateProfileGenerator.buildNext(currentDateProfile, currentDate);
596            if (dp.isValid) {
597                return dp;
598            }
599            break;
600    }
601    return currentDateProfile;
602}
603
604function initEventSources(calendarOptions, dateProfile, context) {
605    let activeRange = dateProfile ? dateProfile.activeRange : null;
606    return addSources({}, parseInitialSources(calendarOptions, context), activeRange, context);
607}
608function reduceEventSources(eventSources, action, dateProfile, context) {
609    let activeRange = dateProfile ? dateProfile.activeRange : null; // need this check?
610    switch (action.type) {
611        case 'ADD_EVENT_SOURCES': // already parsed
612            return addSources(eventSources, action.sources, activeRange, context);
613        case 'REMOVE_EVENT_SOURCE':
614            return removeSource(eventSources, action.sourceId);
615        case 'PREV': // TODO: how do we track all actions that affect dateProfile :(
616        case 'NEXT':
617        case 'CHANGE_DATE':
618        case 'CHANGE_VIEW_TYPE':
619            if (dateProfile) {
620                return fetchDirtySources(eventSources, activeRange, context);
621            }
622            return eventSources;
623        case 'FETCH_EVENT_SOURCES':
624            return fetchSourcesByIds(eventSources, action.sourceIds ? // why no type?
625                Object(_internal_common_js__WEBPACK_IMPORTED_MODULE_0__["f"])(action.sourceIds) :
626                excludeStaticSources(eventSources, context), activeRange, action.isRefetch || false, context);
627        case 'RECEIVE_EVENTS':
628        case 'RECEIVE_EVENT_ERROR':
629            return receiveResponse(eventSources, action.sourceId, action.fetchId, action.fetchRange);
630        case 'REMOVE_ALL_EVENT_SOURCES':
631            return {};
632        default:
633            return eventSources;
634    }
635}
636function reduceEventSourcesNewTimeZone(eventSources, dateProfile, context) {
637    let activeRange = dateProfile ? dateProfile.activeRange : null; // need this check?
638    return fetchSourcesByIds(eventSources, excludeStaticSources(eventSources, context), activeRange, true, context);
639}
640function computeEventSourcesLoading(eventSources) {
641    for (let sourceId in eventSources) {
642        if (eventSources[sourceId].isFetching) {
643            return true;
644        }
645    }
646    return false;
647}
648function addSources(eventSourceHash, sources, fetchRange, context) {
649    let hash = {};
650    for (let source of sources) {
651        hash[source.sourceId] = source;
652    }
653    if (fetchRange) {
654        hash = fetchDirtySources(hash, fetchRange, context);
655    }
656    return Object.assign(Object.assign({}, eventSourceHash), hash);
657}
658function removeSource(eventSourceHash, sourceId) {
659    return Object(_internal_common_js__WEBPACK_IMPORTED_MODULE_0__["h"])(eventSourceHash, (eventSource) => eventSource.sourceId !== sourceId);
660}
661function fetchDirtySources(sourceHash, fetchRange, context) {
662    return fetchSourcesByIds(sourceHash, Object(_internal_common_js__WEBPACK_IMPORTED_MODULE_0__["h"])(sourceHash, (eventSource) => isSourceDirty(eventSource, fetchRange, context)), fetchRange, false, context);
663}
664function isSourceDirty(eventSource, fetchRange, context) {
665    if (!doesSourceNeedRange(eventSource, context)) {
666        return !eventSource.latestFetchId;
667    }
668    return !context.options.lazyFetching ||
669        !eventSource.fetchRange ||
670        eventSource.isFetching || // always cancel outdated in-progress fetches
671        fetchRange.start < eventSource.fetchRange.start ||
672        fetchRange.end > eventSource.fetchRange.end;
673}
674function fetchSourcesByIds(prevSources, sourceIdHash, fetchRange, isRefetch, context) {
675    let nextSources = {};
676    for (let sourceId in prevSources) {
677        let source = prevSources[sourceId];
678        if (sourceIdHash[sourceId]) {
679            nextSources[sourceId] = fetchSource(source, fetchRange, isRefetch, context);
680        }
681        else {
682            nextSources[sourceId] = source;
683        }
684    }
685    return nextSources;
686}
687function fetchSource(eventSource, fetchRange, isRefetch, context) {
688    let { options, calendarApi } = context;
689    let sourceDef = context.pluginHooks.eventSourceDefs[eventSource.sourceDefId];
690    let fetchId = Object(_internal_common_js__WEBPACK_IMPORTED_MODULE_0__["g"])();
691    sourceDef.fetch({
692        eventSource,
693        range: fetchRange,
694        isRefetch,
695        context,
696    }, (res) => {
697        let { rawEvents } = res;
698        if (options.eventSourceSuccess) {
699            rawEvents = options.eventSourceSuccess.call(calendarApi, rawEvents, res.response) || rawEvents;
700        }
701        if (eventSource.success) {
702            rawEvents = eventSource.success.call(calendarApi, rawEvents, res.response) || rawEvents;
703        }
704        context.dispatch({
705            type: 'RECEIVE_EVENTS',
706            sourceId: eventSource.sourceId,
707            fetchId,
708            fetchRange,
709            rawEvents,
710        });
711    }, (error) => {
712        let errorHandled = false;
713        if (options.eventSourceFailure) {
714            options.eventSourceFailure.call(calendarApi, error);
715            errorHandled = true;
716        }
717        if (eventSource.failure) {
718            eventSource.failure(error);
719            errorHandled = true;
720        }
721        if (!errorHandled) {
722            console.warn(error.message, error);
723        }
724        context.dispatch({
725            type: 'RECEIVE_EVENT_ERROR',
726            sourceId: eventSource.sourceId,
727            fetchId,
728            fetchRange,
729            error,
730        });
731    });
732    return Object.assign(Object.assign({}, eventSource), { isFetching: true, latestFetchId: fetchId });
733}
734function receiveResponse(sourceHash, sourceId, fetchId, fetchRange) {
735    let eventSource = sourceHash[sourceId];
736    if (eventSource && // not already removed
737        fetchId === eventSource.latestFetchId) {
738        return Object.assign(Object.assign({}, sourceHash), { [sourceId]: Object.assign(Object.assign({}, eventSource), { isFetching: false, fetchRange }) });
739    }
740    return sourceHash;
741}
742function excludeStaticSources(eventSources, context) {
743    return Object(_internal_common_js__WEBPACK_IMPORTED_MODULE_0__["h"])(eventSources, (eventSource) => doesSourceNeedRange(eventSource, context));
744}
745function parseInitialSources(rawOptions, context) {
746    let refiners = Object(_internal_common_js__WEBPACK_IMPORTED_MODULE_0__["j"])(context);
747    let rawSources = [].concat(rawOptions.eventSources || []);
748    let sources = []; // parsed
749    if (rawOptions.initialEvents) {
750        rawSources.unshift(rawOptions.initialEvents);
751    }
752    if (rawOptions.events) {
753        rawSources.unshift(rawOptions.events);
754    }
755    for (let rawSource of rawSources) {
756        let source = Object(_internal_common_js__WEBPACK_IMPORTED_MODULE_0__["p"])(rawSource, context, refiners);
757        if (source) {
758            sources.push(source);
759        }
760    }
761    return sources;
762}
763function doesSourceNeedRange(eventSource, context) {
764    let defs = context.pluginHooks.eventSourceDefs;
765    return !defs[eventSource.sourceDefId].ignoreRange;
766}
767
768function reduceDateSelection(currentSelection, action) {
769    switch (action.type) {
770        case 'UNSELECT_DATES':
771            return null;
772        case 'SELECT_DATES':
773            return action.selection;
774        default:
775            return currentSelection;
776    }
777}
778
779function reduceSelectedEvent(currentInstanceId, action) {
780    switch (action.type) {
781        case 'UNSELECT_EVENT':
782            return '';
783        case 'SELECT_EVENT':
784            return action.eventInstanceId;
785        default:
786            return currentInstanceId;
787    }
788}
789
790function reduceEventDrag(currentDrag, action) {
791    let newDrag;
792    switch (action.type) {
793        case 'UNSET_EVENT_DRAG':
794            return null;
795        case 'SET_EVENT_DRAG':
796            newDrag = action.state;
797            return {
798                affectedEvents: newDrag.affectedEvents,
799                mutatedEvents: newDrag.mutatedEvents,
800                isEvent: newDrag.isEvent,
801            };
802        default:
803            return currentDrag;
804    }
805}
806
807function reduceEventResize(currentResize, action) {
808    let newResize;
809    switch (action.type) {
810        case 'UNSET_EVENT_RESIZE':
811            return null;
812        case 'SET_EVENT_RESIZE':
813            newResize = action.state;
814            return {
815                affectedEvents: newResize.affectedEvents,
816                mutatedEvents: newResize.mutatedEvents,
817                isEvent: newResize.isEvent,
818            };
819        default:
820            return currentResize;
821    }
822}
823
824function parseToolbars(calendarOptions, calendarOptionOverrides, theme, viewSpecs, calendarApi) {
825    let header = calendarOptions.headerToolbar ? parseToolbar(calendarOptions.headerToolbar, calendarOptions, calendarOptionOverrides, theme, viewSpecs, calendarApi) : null;
826    let footer = calendarOptions.footerToolbar ? parseToolbar(calendarOptions.footerToolbar, calendarOptions, calendarOptionOverrides, theme, viewSpecs, calendarApi) : null;
827    return { header, footer };
828}
829function parseToolbar(sectionStrHash, calendarOptions, calendarOptionOverrides, theme, viewSpecs, calendarApi) {
830    let sectionWidgets = {};
831    let viewsWithButtons = [];
832    let hasTitle = false;
833    for (let sectionName in sectionStrHash) {
834        let sectionStr = sectionStrHash[sectionName];
835        let sectionRes = parseSection(sectionStr, calendarOptions, calendarOptionOverrides, theme, viewSpecs, calendarApi);
836        sectionWidgets[sectionName] = sectionRes.widgets;
837        viewsWithButtons.push(...sectionRes.viewsWithButtons);
838        hasTitle = hasTitle || sectionRes.hasTitle;
839    }
840    return { sectionWidgets, viewsWithButtons, hasTitle };
841}
842/*
843BAD: querying icons and text here. should be done at render time
844*/
845function parseSection(sectionStr, calendarOptions, // defaults+overrides, then refined
846calendarOptionOverrides, // overrides only!, unrefined :(
847theme, viewSpecs, calendarApi) {
848    let isRtl = calendarOptions.direction === 'rtl';
849    let calendarCustomButtons = calendarOptions.customButtons || {};
850    let calendarButtonTextOverrides = calendarOptionOverrides.buttonText || {};
851    let calendarButtonText = calendarOptions.buttonText || {};
852    let calendarButtonHintOverrides = calendarOptionOverrides.buttonHints || {};
853    let calendarButtonHints = calendarOptions.buttonHints || {};
854    let sectionSubstrs = sectionStr ? sectionStr.split(' ') : [];
855    let viewsWithButtons = [];
856    let hasTitle = false;
857    let widgets = sectionSubstrs.map((buttonGroupStr) => (buttonGroupStr.split(',').map((buttonName) => {
858        if (buttonName === 'title') {
859            hasTitle = true;
860            return { buttonName };
861        }
862        let customButtonProps;
863        let viewSpec;
864        let buttonClick;
865        let buttonIcon; // only one of these will be set
866        let buttonText; // "
867        let buttonHint;
868        // ^ for the title="" attribute, for accessibility
869        if ((customButtonProps = calendarCustomButtons[buttonName])) {
870            buttonClick = (ev) => {
871                if (customButtonProps.click) {
872                    customButtonProps.click.call(ev.target, ev, ev.target); // TODO: use Calendar this context?
873                }
874            };
875            (buttonIcon = theme.getCustomButtonIconClass(customButtonProps)) ||
876                (buttonIcon = theme.getIconClass(buttonName, isRtl)) ||
877                (buttonText = customButtonProps.text);
878            buttonHint = customButtonProps.hint || customButtonProps.text;
879        }
880        else if ((viewSpec = viewSpecs[buttonName])) {
881            viewsWithButtons.push(buttonName);
882            buttonClick = () => {
883                calendarApi.changeView(buttonName);
884            };
885            (buttonText = viewSpec.buttonTextOverride) ||
886                (buttonIcon = theme.getIconClass(buttonName, isRtl)) ||
887                (buttonText = viewSpec.buttonTextDefault);
888            let textFallback = viewSpec.buttonTextOverride ||
889                viewSpec.buttonTextDefault;
890            buttonHint = Object(_internal_common_js__WEBPACK_IMPORTED_MODULE_0__["k"])(viewSpec.buttonTitleOverride ||
891                viewSpec.buttonTitleDefault ||
892                calendarOptions.viewHint, [textFallback, buttonName], // view-name = buttonName
893            textFallback);
894        }
895        else if (calendarApi[buttonName]) { // a calendarApi method
896            buttonClick = () => {
897                calendarApi[buttonName]();
898            };
899            (buttonText = calendarButtonTextOverrides[buttonName]) ||
900                (buttonIcon = theme.getIconClass(buttonName, isRtl)) ||
901                (buttonText = calendarButtonText[buttonName]); // everything else is considered default
902            if (buttonName === 'prevYear' || buttonName === 'nextYear') {
903                let prevOrNext = buttonName === 'prevYear' ? 'prev' : 'next';
904                buttonHint = Object(_internal_common_js__WEBPACK_IMPORTED_MODULE_0__["k"])(calendarButtonHintOverrides[prevOrNext] ||
905                    calendarButtonHints[prevOrNext], [
906                    calendarButtonText.year || 'year',
907                    'year',
908                ], calendarButtonText[buttonName]);
909            }
910            else {
911                buttonHint = (navUnit) => Object(_internal_common_js__WEBPACK_IMPORTED_MODULE_0__["k"])(calendarButtonHintOverrides[buttonName] ||
912                    calendarButtonHints[buttonName], [
913                    calendarButtonText[navUnit] || navUnit,
914                    navUnit,
915                ], calendarButtonText[buttonName]);
916            }
917        }
918        return { buttonName, buttonClick, buttonIcon, buttonText, buttonHint };
919    })));
920    return { widgets, viewsWithButtons, hasTitle };
921}
922
923// always represents the current view. otherwise, it'd need to change value every time date changes
924class ViewImpl {
925    constructor(type, getCurrentData, dateEnv) {
926        this.type = type;
927        this.getCurrentData = getCurrentData;
928        this.dateEnv = dateEnv;
929    }
930    get calendar() {
931        return this.getCurrentData().calendarApi;
932    }
933    get title() {
934        return this.getCurrentData().viewTitle;
935    }
936    get activeStart() {
937        return this.dateEnv.toDate(this.getCurrentData().dateProfile.activeRange.start);
938    }
939    get activeEnd() {
940        return this.dateEnv.toDate(this.getCurrentData().dateProfile.activeRange.end);
941    }
942    get currentStart() {
943        return this.dateEnv.toDate(this.getCurrentData().dateProfile.currentRange.start);
944    }
945    get currentEnd() {
946        return this.dateEnv.toDate(this.getCurrentData().dateProfile.currentRange.end);
947    }
948    getOption(name) {
949        return this.getCurrentData().options[name]; // are the view-specific options
950    }
951}
952
953let eventSourceDef$2 = {
954    ignoreRange: true,
955    parseMeta(refined) {
956        if (Array.isArray(refined.events)) {
957            return refined.events;
958        }
959        return null;
960    },
961    fetch(arg, successCallback) {
962        successCallback({
963            rawEvents: arg.eventSource.meta,
964        });
965    },
966};
967const arrayEventSourcePlugin = createPlugin({
968    name: 'array-event-source',
969    eventSourceDefs: [eventSourceDef$2],
970});
971
972let eventSourceDef$1 = {
973    parseMeta(refined) {
974        if (typeof refined.events === 'function') {
975            return refined.events;
976        }
977        return null;
978    },
979    fetch(arg, successCallback, errorCallback) {
980        const { dateEnv } = arg.context;
981        const func = arg.eventSource.meta;
982        Object(_internal_common_js__WEBPACK_IMPORTED_MODULE_0__["u"])(func.bind(null, Object(_internal_common_js__WEBPACK_IMPORTED_MODULE_0__["l"])(arg.range, dateEnv)), (rawEvents) => successCallback({ rawEvents }), errorCallback);
983    },
984};
985const funcEventSourcePlugin = createPlugin({
986    name: 'func-event-source',
987    eventSourceDefs: [eventSourceDef$1],
988});
989
990const JSON_FEED_EVENT_SOURCE_REFINERS = {
991    method: String,
992    extraParams: _internal_common_js__WEBPACK_IMPORTED_MODULE_0__["n"],
993    startParam: String,
994    endParam: String,
995    timeZoneParam: String,
996};
997
998let eventSourceDef = {
999    parseMeta(refined) {
1000        if (refined.url && (refined.format === 'json' || !refined.format)) {
1001            return {
1002                url: refined.url,
1003                format: 'json',
1004                method: (refined.method || 'GET').toUpperCase(),
1005                extraParams: refined.extraParams,
1006                startParam: refined.startParam,
1007                endParam: refined.endParam,
1008                timeZoneParam: refined.timeZoneParam,
1009            };
1010        }
1011        return null;
1012    },
1013    fetch(arg, successCallback, errorCallback) {
1014        const { meta } = arg.eventSource;
1015        const requestParams = buildRequestParams(meta, arg.range, arg.context);
1016        Object(_internal_common_js__WEBPACK_IMPORTED_MODULE_0__["r"])(meta.method, meta.url, requestParams).then(([rawEvents, response]) => {
1017            successCallback({ rawEvents, response });
1018        }, errorCallback);
1019    },
1020};
1021const jsonFeedEventSourcePlugin = createPlugin({
1022    name: 'json-event-source',
1023    eventSourceRefiners: JSON_FEED_EVENT_SOURCE_REFINERS,
1024    eventSourceDefs: [eventSourceDef],
1025});
1026function buildRequestParams(meta, range, context) {
1027    let { dateEnv, options } = context;
1028    let startParam;
1029    let endParam;
1030    let timeZoneParam;
1031    let customRequestParams;
1032    let params = {};
1033    startParam = meta.startParam;
1034    if (startParam == null) {
1035        startParam = options.startParam;
1036    }
1037    endParam = meta.endParam;
1038    if (endParam == null) {
1039        endParam = options.endParam;
1040    }
1041    timeZoneParam = meta.timeZoneParam;
1042    if (timeZoneParam == null) {
1043        timeZoneParam = options.timeZoneParam;
1044    }
1045    // retrieve any outbound GET/POST data from the options
1046    if (typeof meta.extraParams === 'function') {
1047        // supplied as a function that returns a key/value object
1048        customRequestParams = meta.extraParams();
1049    }
1050    else {
1051        // probably supplied as a straight key/value object
1052        customRequestParams = meta.extraParams || {};
1053    }
1054    Object.assign(params, customRequestParams);
1055    params[startParam] = dateEnv.formatIso(range.start);
1056    params[endParam] = dateEnv.formatIso(range.end);
1057    if (dateEnv.timeZone !== 'local') {
1058        params[timeZoneParam] = dateEnv.timeZone;
1059    }
1060    return params;
1061}
1062
1063const SIMPLE_RECURRING_REFINERS = {
1064    daysOfWeek: _internal_common_js__WEBPACK_IMPORTED_MODULE_0__["n"],
1065    startTime: _internal_common_js__WEBPACK_IMPORTED_MODULE_0__["d"],
1066    endTime: _internal_common_js__WEBPACK_IMPORTED_MODULE_0__["d"],
1067    duration: _internal_common_js__WEBPACK_IMPORTED_MODULE_0__["d"],
1068    startRecur: _internal_common_js__WEBPACK_IMPORTED_MODULE_0__["n"],
1069    endRecur: _internal_common_js__WEBPACK_IMPORTED_MODULE_0__["n"],
1070};
1071
1072let recurring = {
1073    parse(refined, dateEnv) {
1074        if (refined.daysOfWeek || refined.startTime || refined.endTime || refined.startRecur || refined.endRecur) {
1075            let recurringData = {
1076                daysOfWeek: refined.daysOfWeek || null,
1077                startTime: refined.startTime || null,
1078                endTime: refined.endTime || null,
1079                startRecur: refined.startRecur ? dateEnv.createMarker(refined.startRecur) : null,
1080                endRecur: refined.endRecur ? dateEnv.createMarker(refined.endRecur) : null,
1081            };
1082            let duration;
1083            if (refined.duration) {
1084                duration = refined.duration;
1085            }
1086            if (!duration && refined.startTime && refined.endTime) {
1087                duration = Object(_internal_common_js__WEBPACK_IMPORTED_MODULE_0__["s"])(refined.endTime, refined.startTime);
1088            }
1089            return {
1090                allDayGuess: Boolean(!refined.startTime && !refined.endTime),
1091                duration,
1092                typeData: recurringData, // doesn't need endTime anymore but oh well
1093            };
1094        }
1095        return null;
1096    },
1097    expand(typeData, framingRange, dateEnv) {
1098        let clippedFramingRange = Object(_internal_common_js__WEBPACK_IMPORTED_MODULE_0__["o"])(framingRange, { start: typeData.startRecur, end: typeData.endRecur });
1099        if (clippedFramingRange) {
1100            return expandRanges(typeData.daysOfWeek, typeData.startTime, clippedFramingRange, dateEnv);
1101        }
1102        return [];
1103    },
1104};
1105const simpleRecurringEventsPlugin = createPlugin({
1106    name: 'simple-recurring-event',
1107    recurringTypes: [recurring],
1108    eventRefiners: SIMPLE_RECURRING_REFINERS,
1109});
1110function expandRanges(daysOfWeek, startTime, framingRange, dateEnv) {
1111    let dowHash = daysOfWeek ? Object(_internal_common_js__WEBPACK_IMPORTED_MODULE_0__["f"])(daysOfWeek) : null;
1112    let dayMarker = Object(_internal_common_js__WEBPACK_IMPORTED_MODULE_0__["q"])(framingRange.start);
1113    let endMarker = framingRange.end;
1114    let instanceStarts = [];
1115    while (dayMarker < endMarker) {
1116        let instanceStart;
1117        // if everyday, or this particular day-of-week
1118        if (!dowHash || dowHash[dayMarker.getUTCDay()]) {
1119            if (startTime) {
1120                instanceStart = dateEnv.add(dayMarker, startTime);
1121            }
1122            else {
1123                instanceStart = dayMarker;
1124            }
1125            instanceStarts.push(instanceStart);
1126        }
1127        dayMarker = Object(_internal_common_js__WEBPACK_IMPORTED_MODULE_0__["t"])(dayMarker, 1);
1128    }
1129    return instanceStarts;
1130}
1131
1132const changeHandlerPlugin = createPlugin({
1133    name: 'change-handler',
1134    optionChangeHandlers: {
1135        events(events, context) {
1136            handleEventSources([events], context);
1137        },
1138        eventSources: handleEventSources,
1139    },
1140});
1141/*
1142BUG: if `event` was supplied, all previously-given `eventSources` will be wiped out
1143*/
1144function handleEventSources(inputs, context) {
1145    let unfoundSources = Object(_internal_common_js__WEBPACK_IMPORTED_MODULE_0__["v"])(context.getCurrentData().eventSources);
1146    if (unfoundSources.length === 1 &&
1147        inputs.length === 1 &&
1148        Array.isArray(unfoundSources[0]._raw) &&
1149        Array.isArray(inputs[0])) {
1150        context.dispatch({
1151            type: 'RESET_RAW_EVENTS',
1152            sourceId: unfoundSources[0].sourceId,
1153            rawEvents: inputs[0],
1154        });
1155        return;
1156    }
1157    let newInputs = [];
1158    for (let input of inputs) {
1159        let inputFound = false;
1160        for (let i = 0; i < unfoundSources.length; i += 1) {
1161            if (unfoundSources[i]._raw === input) {
1162                unfoundSources.splice(i, 1); // delete
1163                inputFound = true;
1164                break;
1165            }
1166        }
1167        if (!inputFound) {
1168            newInputs.push(input);
1169        }
1170    }
1171    for (let unfoundSource of unfoundSources) {
1172        context.dispatch({
1173            type: 'REMOVE_EVENT_SOURCE',
1174            sourceId: unfoundSource.sourceId,
1175        });
1176    }
1177    for (let newInput of newInputs) {
1178        context.calendarApi.addEventSource(newInput);
1179    }
1180}
1181
1182function handleDateProfile(dateProfile, context) {
1183    context.emitter.trigger('datesSet', Object.assign(Object.assign({}, Object(_internal_common_js__WEBPACK_IMPORTED_MODULE_0__["l"])(dateProfile.activeRange, context.dateEnv)), { view: context.viewApi }));
1184}
1185
1186function handleEventStore(eventStore, context) {
1187    let { emitter } = context;
1188    if (emitter.hasHandlers('eventsSet')) {
1189        emitter.trigger('eventsSet', Object(_internal_common_js__WEBPACK_IMPORTED_MODULE_0__["w"])(eventStore, context));
1190    }
1191}
1192
1193/*
1194this array is exposed on the root namespace so that UMD plugins can add to it.
1195see the rollup-bundles script.
1196*/
1197const globalPlugins = [
1198    arrayEventSourcePlugin,
1199    funcEventSourcePlugin,
1200    jsonFeedEventSourcePlugin,
1201    simpleRecurringEventsPlugin,
1202    changeHandlerPlugin,
1203    createPlugin({
1204        name: 'misc',
1205        isLoadingFuncs: [
1206            (state) => computeEventSourcesLoading(state.eventSources),
1207        ],
1208        propSetHandlers: {
1209            dateProfile: handleDateProfile,
1210            eventStore: handleEventStore,
1211        },
1212    }),
1213];
1214
1215class TaskRunner {
1216    constructor(runTaskOption, drainedOption) {
1217        this.runTaskOption = runTaskOption;
1218        this.drainedOption = drainedOption;
1219        this.queue = [];
1220        this.delayedRunner = new _internal_common_js__WEBPACK_IMPORTED_MODULE_0__["D"](this.drain.bind(this));
1221    }
1222    request(task, delay) {
1223        this.queue.push(task);
1224        this.delayedRunner.request(delay);
1225    }
1226    pause(scope) {
1227        this.delayedRunner.pause(scope);
1228    }
1229    resume(scope, force) {
1230        this.delayedRunner.resume(scope, force);
1231    }
1232    drain() {
1233        let { queue } = this;
1234        while (queue.length) {
1235            let completedTasks = [];
1236            let task;
1237            while ((task = queue.shift())) {
1238                this.runTask(task);
1239                completedTasks.push(task);
1240            }
1241            this.drained(completedTasks);
1242        } // keep going, in case new tasks were added in the drained handler
1243    }
1244    runTask(task) {
1245        if (this.runTaskOption) {
1246            this.runTaskOption(task);
1247        }
1248    }
1249    drained(completedTasks) {
1250        if (this.drainedOption) {
1251            this.drainedOption(completedTasks);
1252        }
1253    }
1254}
1255
1256// Computes what the title at the top of the calendarApi should be for this view
1257function buildTitle(dateProfile, viewOptions, dateEnv) {
1258    let range;
1259    // for views that span a large unit of time, show the proper interval, ignoring stray days before and after
1260    if (/^(year|month)$/.test(dateProfile.currentRangeUnit)) {
1261        range = dateProfile.currentRange;
1262    }
1263    else { // for day units or smaller, use the actual day range
1264        range = dateProfile.activeRange;
1265    }
1266    return dateEnv.formatRange(range.start, range.end, Object(_internal_common_js__WEBPACK_IMPORTED_MODULE_0__["x"])(viewOptions.titleFormat || buildTitleFormat(dateProfile)), {
1267        isEndExclusive: dateProfile.isRangeAllDay,
1268        defaultSeparator: viewOptions.titleRangeSeparator,
1269    });
1270}
1271// Generates the format string that should be used to generate the title for the current date range.
1272// Attempts to compute the most appropriate format if not explicitly specified with `titleFormat`.
1273function buildTitleFormat(dateProfile) {
1274    let { currentRangeUnit } = dateProfile;
1275    if (currentRangeUnit === 'year') {
1276        return { year: 'numeric' };
1277    }
1278    if (currentRangeUnit === 'month') {
1279        return { year: 'numeric', month: 'long' }; // like "September 2014"
1280    }
1281    let days = Object(_internal_common_js__WEBPACK_IMPORTED_MODULE_0__["y"])(dateProfile.currentRange.start, dateProfile.currentRange.end);
1282    if (days !== null && days > 1) {
1283        // multi-day range. shorter, like "Sep 9 - 10 2014"
1284        return { year: 'numeric', month: 'short', day: 'numeric' };
1285    }
1286    // one day. longer, like "September 9 2014"
1287    return { year: 'numeric', month: 'long', day: 'numeric' };
1288}
1289
1290// in future refactor, do the redux-style function(state=initial) for initial-state
1291// also, whatever is happening in constructor, have it happen in action queue too
1292class CalendarDataManager {
1293    constructor(props) {
1294        this.computeCurrentViewData = Object(_internal_common_js__WEBPACK_IMPORTED_MODULE_0__["z"])(this._computeCurrentViewData);
1295        this.organizeRawLocales = Object(_internal_common_js__WEBPACK_IMPORTED_MODULE_0__["z"])(organizeRawLocales);
1296        this.buildLocale = Object(_internal_common_js__WEBPACK_IMPORTED_MODULE_0__["z"])(buildLocale);
1297        this.buildPluginHooks = buildBuildPluginHooks();
1298        this.buildDateEnv = Object(_internal_common_js__WEBPACK_IMPORTED_MODULE_0__["z"])(buildDateEnv$1);
1299        this.buildTheme = Object(_internal_common_js__WEBPACK_IMPORTED_MODULE_0__["z"])(buildTheme);
1300        this.parseToolbars = Object(_internal_common_js__WEBPACK_IMPORTED_MODULE_0__["z"])(parseToolbars);
1301        this.buildViewSpecs = Object(_internal_common_js__WEBPACK_IMPORTED_MODULE_0__["z"])(buildViewSpecs);
1302        this.buildDateProfileGenerator = Object(_internal_common_js__WEBPACK_IMPORTED_MODULE_0__["A"])(buildDateProfileGenerator);
1303        this.buildViewApi = Object(_internal_common_js__WEBPACK_IMPORTED_MODULE_0__["z"])(buildViewApi);
1304        this.buildViewUiProps = Object(_internal_common_js__WEBPACK_IMPORTED_MODULE_0__["A"])(buildViewUiProps);
1305        this.buildEventUiBySource = Object(_internal_common_js__WEBPACK_IMPORTED_MODULE_0__["z"])(buildEventUiBySource, _internal_common_js__WEBPACK_IMPORTED_MODULE_0__["E"]);
1306        this.buildEventUiBases = Object(_internal_common_js__WEBPACK_IMPORTED_MODULE_0__["z"])(buildEventUiBases);
1307        this.parseContextBusinessHours = Object(_internal_common_js__WEBPACK_IMPORTED_MODULE_0__["A"])(parseContextBusinessHours);
1308        this.buildTitle = Object(_internal_common_js__WEBPACK_IMPORTED_MODULE_0__["z"])(buildTitle);
1309        this.emitter = new _internal_common_js__WEBPACK_IMPORTED_MODULE_0__["F"]();
1310        this.actionRunner = new TaskRunner(this._handleAction.bind(this), this.updateData.bind(this));
1311        this.currentCalendarOptionsInput = {};
1312        this.currentCalendarOptionsRefined = {};
1313        this.currentViewOptionsInput = {};
1314        this.currentViewOptionsRefined = {};
1315        this.currentCalendarOptionsRefiners = {};
1316        this.optionsForRefining = [];
1317        this.optionsForHandling = [];
1318        this.getCurrentData = () => this.data;
1319        this.dispatch = (action) => {
1320            this.actionRunner.request(action); // protects against recursive calls to _handleAction
1321        };
1322        this.props = props;
1323        this.actionRunner.pause();
1324        let dynamicOptionOverrides = {};
1325        let optionsData = this.computeOptionsData(props.optionOverrides, dynamicOptionOverrides, props.calendarApi);
1326        let currentViewType = optionsData.calendarOptions.initialView || optionsData.pluginHooks.initialView;
1327        let currentViewData = this.computeCurrentViewData(currentViewType, optionsData, props.optionOverrides, dynamicOptionOverrides);
1328        // wire things up
1329        // TODO: not DRY
1330        props.calendarApi.currentDataManager = this;
1331        this.emitter.setThisContext(props.calendarApi);
1332        this.emitter.setOptions(currentViewData.options);
1333        let currentDate = Object(_internal_common_js__WEBPACK_IMPORTED_MODULE_0__["G"])(optionsData.calendarOptions, optionsData.dateEnv);
1334        let dateProfile = currentViewData.dateProfileGenerator.build(currentDate);
1335        if (!Object(_internal_common_js__WEBPACK_IMPORTED_MODULE_0__["H"])(dateProfile.activeRange, currentDate)) {
1336            currentDate = dateProfile.currentRange.start;
1337        }
1338        let calendarContext = {
1339            dateEnv: optionsData.dateEnv,
1340            options: optionsData.calendarOptions,
1341            pluginHooks: optionsData.pluginHooks,
1342            calendarApi: props.calendarApi,
1343            dispatch: this.dispatch,
1344            emitter: this.emitter,
1345            getCurrentData: this.getCurrentData,
1346        };
1347        // needs to be after setThisContext
1348        for (let callback of optionsData.pluginHooks.contextInit) {
1349            callback(calendarContext);
1350        }
1351        // NOT DRY
1352        let eventSources = initEventSources(optionsData.calendarOptions, dateProfile, calendarContext);
1353        let initialState = {
1354            dynamicOptionOverrides,
1355            currentViewType,
1356            currentDate,
1357            dateProfile,
1358            businessHours: this.parseContextBusinessHours(calendarContext),
1359            eventSources,
1360            eventUiBases: {},
1361            eventStore: Object(_internal_common_js__WEBPACK_IMPORTED_MODULE_0__["I"])(),
1362            renderableEventStore: Object(_internal_common_js__WEBPACK_IMPORTED_MODULE_0__["I"])(),
1363            dateSelection: null,
1364            eventSelection: '',
1365            eventDrag: null,
1366            eventResize: null,
1367            selectionConfig: this.buildViewUiProps(calendarContext).selectionConfig,
1368        };
1369        let contextAndState = Object.assign(Object.assign({}, calendarContext), initialState);
1370        for (let reducer of optionsData.pluginHooks.reducers) {
1371            Object.assign(initialState, reducer(null, null, contextAndState));
1372        }
1373        if (computeIsLoading(initialState, calendarContext)) {
1374            this.emitter.trigger('loading', true); // NOT DRY
1375        }
1376        this.state = initialState;
1377        this.updateData();
1378        this.actionRunner.resume();
1379    }
1380    resetOptions(optionOverrides, changedOptionNames) {
1381        let { props } = this;
1382        if (changedOptionNames === undefined) {
1383            props.optionOverrides = optionOverrides;
1384        }
1385        else {
1386            props.optionOverrides = Object.assign(Object.assign({}, (props.optionOverrides || {})), optionOverrides);
1387            this.optionsForRefining.push(...changedOptionNames);
1388        }
1389        if (changedOptionNames === undefined || changedOptionNames.length) {
1390            this.actionRunner.request({
1391                type: 'NOTHING',
1392            });
1393        }
1394    }
1395    _handleAction(action) {
1396        let { props, state, emitter } = this;
1397        let dynamicOptionOverrides = reduceDynamicOptionOverrides(state.dynamicOptionOverrides, action);
1398        let optionsData = this.computeOptionsData(props.optionOverrides, dynamicOptionOverrides, props.calendarApi);
1399        let currentViewType = reduceViewType(state.currentViewType, action);
1400        let currentViewData = this.computeCurrentViewData(currentViewType, optionsData, props.optionOverrides, dynamicOptionOverrides);
1401        // wire things up
1402        // TODO: not DRY
1403        props.calendarApi.currentDataManager = this;
1404        emitter.setThisContext(props.calendarApi);
1405        emitter.setOptions(currentViewData.options);
1406        let calendarContext = {
1407            dateEnv: optionsData.dateEnv,
1408            options: optionsData.calendarOptions,
1409            pluginHooks: optionsData.pluginHooks,
1410            calendarApi: props.calendarApi,
1411            dispatch: this.dispatch,
1412            emitter,
1413            getCurrentData: this.getCurrentData,
1414        };
1415        let { currentDate, dateProfile } = state;
1416        if (this.data && this.data.dateProfileGenerator !== currentViewData.dateProfileGenerator) { // hack
1417            dateProfile = currentViewData.dateProfileGenerator.build(currentDate);
1418        }
1419        currentDate = Object(_internal_common_js__WEBPACK_IMPORTED_MODULE_0__["J"])(currentDate, action);
1420        dateProfile = reduceDateProfile(dateProfile, action, currentDate, currentViewData.dateProfileGenerator);
1421        if (action.type === 'PREV' || // TODO: move this logic into DateProfileGenerator
1422            action.type === 'NEXT' || // "
1423            !Object(_internal_common_js__WEBPACK_IMPORTED_MODULE_0__["H"])(dateProfile.currentRange, currentDate)) {
1424            currentDate = dateProfile.currentRange.start;
1425        }
1426        let eventSources = reduceEventSources(state.eventSources, action, dateProfile, calendarContext);
1427        let eventStore = Object(_internal_common_js__WEBPACK_IMPORTED_MODULE_0__["K"])(state.eventStore, action, eventSources, dateProfile, calendarContext);
1428        let isEventsLoading = computeEventSourcesLoading(eventSources); // BAD. also called in this func in computeIsLoading
1429        let renderableEventStore = (isEventsLoading && !currentViewData.options.progressiveEventRendering) ?
1430            (state.renderableEventStore || eventStore) : // try from previous state
1431            eventStore;
1432        let { eventUiSingleBase, selectionConfig } = this.buildViewUiProps(calendarContext); // will memoize obj
1433        let eventUiBySource = this.buildEventUiBySource(eventSources);
1434        let eventUiBases = this.buildEventUiBases(renderableEventStore.defs, eventUiSingleBase, eventUiBySource);
1435        let newState = {
1436            dynamicOptionOverrides,
1437            currentViewType,
1438            currentDate,
1439            dateProfile,
1440            eventSources,
1441            eventStore,
1442            renderableEventStore,
1443            selectionConfig,
1444            eventUiBases,
1445            businessHours: this.parseContextBusinessHours(calendarContext),
1446            dateSelection: reduceDateSelection(state.dateSelection, action),
1447            eventSelection: reduceSelectedEvent(state.eventSelection, action),
1448            eventDrag: reduceEventDrag(state.eventDrag, action),
1449            eventResize: reduceEventResize(state.eventResize, action),
1450        };
1451        let contextAndState = Object.assign(Object.assign({}, calendarContext), newState);
1452        for (let reducer of optionsData.pluginHooks.reducers) {
1453            Object.assign(newState, reducer(state, action, contextAndState)); // give the OLD state, for old value
1454        }
1455        let wasLoading = computeIsLoading(state, calendarContext);
1456        let isLoading = computeIsLoading(newState, calendarContext);
1457        // TODO: use propSetHandlers in plugin system
1458        if (!wasLoading && isLoading) {
1459            emitter.trigger('loading', true);
1460        }
1461        else if (wasLoading && !isLoading) {
1462            emitter.trigger('loading', false);
1463        }
1464        this.state = newState;
1465        if (props.onAction) {
1466            props.onAction(action);
1467        }
1468    }
1469    updateData() {
1470        let { props, state } = this;
1471        let oldData = this.data;
1472        let optionsData = this.computeOptionsData(props.optionOverrides, state.dynamicOptionOverrides, props.calendarApi);
1473        let currentViewData = this.computeCurrentViewData(state.currentViewType, optionsData, props.optionOverrides, state.dynamicOptionOverrides);
1474        let data = this.data = Object.assign(Object.assign(Object.assign({ viewTitle: this.buildTitle(state.dateProfile, currentViewData.options, optionsData.dateEnv), calendarApi: props.calendarApi, dispatch: this.dispatch, emitter: this.emitter, getCurrentData: this.getCurrentData }, optionsData), currentViewData), state);
1475        let changeHandlers = optionsData.pluginHooks.optionChangeHandlers;
1476        let oldCalendarOptions = oldData && oldData.calendarOptions;
1477        let newCalendarOptions = optionsData.calendarOptions;
1478        if (oldCalendarOptions && oldCalendarOptions !== newCalendarOptions) {
1479            if (oldCalendarOptions.timeZone !== newCalendarOptions.timeZone) {
1480                // hack
1481                state.eventSources = data.eventSources = reduceEventSourcesNewTimeZone(data.eventSources, state.dateProfile, data);
1482                state.eventStore = data.eventStore = Object(_internal_common_js__WEBPACK_IMPORTED_MODULE_0__["L"])(data.eventStore, oldData.dateEnv, data.dateEnv);
1483                state.renderableEventStore = data.renderableEventStore = Object(_internal_common_js__WEBPACK_IMPORTED_MODULE_0__["L"])(data.renderableEventStore, oldData.dateEnv, data.dateEnv);
1484            }
1485            for (let optionName in changeHandlers) {
1486                if (this.optionsForHandling.indexOf(optionName) !== -1 ||
1487                    oldCalendarOptions[optionName] !== newCalendarOptions[optionName]) {
1488                    changeHandlers[optionName](newCalendarOptions[optionName], data);
1489                }
1490            }
1491        }
1492        this.optionsForHandling = [];
1493        if (props.onData) {
1494            props.onData(data);
1495        }
1496    }
1497    computeOptionsData(optionOverrides, dynamicOptionOverrides, calendarApi) {
1498        // TODO: blacklist options that are handled by optionChangeHandlers
1499        if (!this.optionsForRefining.length &&
1500            optionOverrides === this.stableOptionOverrides &&
1501            dynamicOptionOverrides === this.stableDynamicOptionOverrides) {
1502            return this.stableCalendarOptionsData;
1503        }
1504        let { refinedOptions, pluginHooks, localeDefaults, availableLocaleData, extra, } = this.processRawCalendarOptions(optionOverrides, dynamicOptionOverrides);
1505        warnUnknownOptions(extra);
1506        let dateEnv = this.buildDateEnv(refinedOptions.timeZone, refinedOptions.locale, refinedOptions.weekNumberCalculation, refinedOptions.firstDay, refinedOptions.weekText, pluginHooks, availableLocaleData, refinedOptions.defaultRangeSeparator);
1507        let viewSpecs = this.buildViewSpecs(pluginHooks.views, this.stableOptionOverrides, this.stableDynamicOptionOverrides, localeDefaults);
1508        let theme = this.buildTheme(refinedOptions, pluginHooks);
1509        let toolbarConfig = this.parseToolbars(refinedOptions, this.stableOptionOverrides, theme, viewSpecs, calendarApi);
1510        return this.stableCalendarOptionsData = {
1511            calendarOptions: refinedOptions,
1512            pluginHooks,
1513            dateEnv,
1514            viewSpecs,
1515            theme,
1516            toolbarConfig,
1517            localeDefaults,
1518            availableRawLocales: availableLocaleData.map,
1519        };
1520    }
1521    // always called from behind a memoizer
1522    processRawCalendarOptions(optionOverrides, dynamicOptionOverrides) {
1523        let { locales, locale } = Object(_internal_common_js__WEBPACK_IMPORTED_MODULE_0__["M"])([
1524            _internal_common_js__WEBPACK_IMPORTED_MODULE_0__["e"],
1525            optionOverrides,
1526            dynamicOptionOverrides,
1527        ]);
1528        let availableLocaleData = this.organizeRawLocales(locales);
1529        let availableRawLocales = availableLocaleData.map;
1530        let localeDefaults = this.buildLocale(locale || availableLocaleData.defaultCode, availableRawLocales).options;
1531        let pluginHooks = this.buildPluginHooks(optionOverrides.plugins || [], globalPlugins);
1532        let refiners = this.currentCalendarOptionsRefiners = Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({}, _internal_common_js__WEBPACK_IMPORTED_MODULE_0__["N"]), _internal_common_js__WEBPACK_IMPORTED_MODULE_0__["O"]), _internal_common_js__WEBPACK_IMPORTED_MODULE_0__["P"]), pluginHooks.listenerRefiners), pluginHooks.optionRefiners);
1533        let extra = {};
1534        let raw = Object(_internal_common_js__WEBPACK_IMPORTED_MODULE_0__["M"])([
1535            _internal_common_js__WEBPACK_IMPORTED_MODULE_0__["e"],
1536            localeDefaults,
1537            optionOverrides,
1538            dynamicOptionOverrides,
1539        ]);
1540        let refined = {};
1541        let currentRaw = this.currentCalendarOptionsInput;
1542        let currentRefined = this.currentCalendarOptionsRefined;
1543        let anyChanges = false;
1544        for (let optionName in raw) {
1545            if (this.optionsForRefining.indexOf(optionName) === -1 && (raw[optionName] === currentRaw[optionName] || (_internal_common_js__WEBPACK_IMPORTED_MODULE_0__["Q"][optionName] &&
1546                (optionName in currentRaw) &&
1547                _internal_common_js__WEBPACK_IMPORTED_MODULE_0__["Q"][optionName](currentRaw[optionName], raw[optionName])))) {
1548                refined[optionName] = currentRefined[optionName];
1549            }
1550            else if (refiners[optionName]) {
1551                refined[optionName] = refiners[optionName](raw[optionName]);
1552                anyChanges = true;
1553            }
1554            else {
1555                extra[optionName] = currentRaw[optionName];
1556            }
1557        }
1558        if (anyChanges) {
1559            this.currentCalendarOptionsInput = raw;
1560            this.currentCalendarOptionsRefined = refined;
1561            this.stableOptionOverrides = optionOverrides;
1562            this.stableDynamicOptionOverrides = dynamicOptionOverrides;
1563        }
1564        this.optionsForHandling.push(...this.optionsForRefining);
1565        this.optionsForRefining = [];
1566        return {
1567            rawOptions: this.currentCalendarOptionsInput,
1568            refinedOptions: this.currentCalendarOptionsRefined,
1569            pluginHooks,
1570            availableLocaleData,
1571            localeDefaults,
1572            extra,
1573        };
1574    }
1575    _computeCurrentViewData(viewType, optionsData, optionOverrides, dynamicOptionOverrides) {
1576        let viewSpec = optionsData.viewSpecs[viewType];
1577        if (!viewSpec) {
1578            throw new Error(`viewType "${viewType}" is not available. Please make sure you've loaded all neccessary plugins`);
1579        }
1580        let { refinedOptions, extra } = this.processRawViewOptions(viewSpec, optionsData.pluginHooks, optionsData.localeDefaults, optionOverrides, dynamicOptionOverrides);
1581        warnUnknownOptions(extra);
1582        let dateProfileGenerator = this.buildDateProfileGenerator({
1583            dateProfileGeneratorClass: viewSpec.optionDefaults.dateProfileGeneratorClass,
1584            duration: viewSpec.duration,
1585            durationUnit: viewSpec.durationUnit,
1586            usesMinMaxTime: viewSpec.optionDefaults.usesMinMaxTime,
1587            dateEnv: optionsData.dateEnv,
1588            calendarApi: this.props.calendarApi,
1589            slotMinTime: refinedOptions.slotMinTime,
1590            slotMaxTime: refinedOptions.slotMaxTime,
1591            showNonCurrentDates: refinedOptions.showNonCurrentDates,
1592            dayCount: refinedOptions.dayCount,
1593            dateAlignment: refinedOptions.dateAlignment,
1594            dateIncrement: refinedOptions.dateIncrement,
1595            hiddenDays: refinedOptions.hiddenDays,
1596            weekends: refinedOptions.weekends,
1597            nowInput: refinedOptions.now,
1598            validRangeInput: refinedOptions.validRange,
1599            visibleRangeInput: refinedOptions.visibleRange,
1600            fixedWeekCount: refinedOptions.fixedWeekCount,
1601        });
1602        let viewApi = this.buildViewApi(viewType, this.getCurrentData, optionsData.dateEnv);
1603        return { viewSpec, options: refinedOptions, dateProfileGenerator, viewApi };
1604    }
1605    processRawViewOptions(viewSpec, pluginHooks, localeDefaults, optionOverrides, dynamicOptionOverrides) {
1606        let raw = Object(_internal_common_js__WEBPACK_IMPORTED_MODULE_0__["M"])([
1607            _internal_common_js__WEBPACK_IMPORTED_MODULE_0__["e"],
1608            viewSpec.optionDefaults,
1609            localeDefaults,
1610            optionOverrides,
1611            viewSpec.optionOverrides,
1612            dynamicOptionOverrides,
1613        ]);
1614        let refiners = Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({}, _internal_common_js__WEBPACK_IMPORTED_MODULE_0__["N"]), _internal_common_js__WEBPACK_IMPORTED_MODULE_0__["O"]), _internal_common_js__WEBPACK_IMPORTED_MODULE_0__["P"]), _internal_common_js__WEBPACK_IMPORTED_MODULE_0__["R"]), pluginHooks.listenerRefiners), pluginHooks.optionRefiners);
1615        let refined = {};
1616        let currentRaw = this.currentViewOptionsInput;
1617        let currentRefined = this.currentViewOptionsRefined;
1618        let anyChanges = false;
1619        let extra = {};
1620        for (let optionName in raw) {
1621            if (raw[optionName] === currentRaw[optionName] ||
1622                (_internal_common_js__WEBPACK_IMPORTED_MODULE_0__["Q"][optionName] &&
1623                    _internal_common_js__WEBPACK_IMPORTED_MODULE_0__["Q"][optionName](raw[optionName], currentRaw[optionName]))) {
1624                refined[optionName] = currentRefined[optionName];
1625            }
1626            else {
1627                if (raw[optionName] === this.currentCalendarOptionsInput[optionName] ||
1628                    (_internal_common_js__WEBPACK_IMPORTED_MODULE_0__["Q"][optionName] &&
1629                        _internal_common_js__WEBPACK_IMPORTED_MODULE_0__["Q"][optionName](raw[optionName], this.currentCalendarOptionsInput[optionName]))) {
1630                    if (optionName in this.currentCalendarOptionsRefined) { // might be an "extra" prop
1631                        refined[optionName] = this.currentCalendarOptionsRefined[optionName];
1632                    }
1633                }
1634                else if (refiners[optionName]) {
1635                    refined[optionName] = refiners[optionName](raw[optionName]);
1636                }
1637                else {
1638                    extra[optionName] = raw[optionName];
1639                }
1640                anyChanges = true;
1641            }
1642        }
1643        if (anyChanges) {
1644            this.currentViewOptionsInput = raw;
1645            this.currentViewOptionsRefined = refined;
1646        }
1647        return {
1648            rawOptions: this.currentViewOptionsInput,
1649            refinedOptions: this.currentViewOptionsRefined,
1650            extra,
1651        };
1652    }
1653}
1654function buildDateEnv$1(timeZone, explicitLocale, weekNumberCalculation, firstDay, weekText, pluginHooks, availableLocaleData, defaultSeparator) {
1655    let locale = buildLocale(explicitLocale || availableLocaleData.defaultCode, availableLocaleData.map);
1656    return new _internal_common_js__WEBPACK_IMPORTED_MODULE_0__["S"]({
1657        calendarSystem: 'gregory',
1658        timeZone,
1659        namedTimeZoneImpl: pluginHooks.namedTimeZonedImpl,
1660        locale,
1661        weekNumberCalculation,
1662        firstDay,
1663        weekText,
1664        cmdFormatter: pluginHooks.cmdFormatter,
1665        defaultSeparator,
1666    });
1667}
1668function buildTheme(options, pluginHooks) {
1669    let ThemeClass = pluginHooks.themeClasses[options.themeSystem] || StandardTheme;
1670    return new ThemeClass(options);
1671}
1672function buildDateProfileGenerator(props) {
1673    let DateProfileGeneratorClass = props.dateProfileGeneratorClass || _internal_common_js__WEBPACK_IMPORTED_MODULE_0__["U"];
1674    return new DateProfileGeneratorClass(props);
1675}
1676function buildViewApi(type, getCurrentData, dateEnv) {
1677    return new ViewImpl(type, getCurrentData, dateEnv);
1678}
1679function buildEventUiBySource(eventSources) {
1680    return Object(_internal_common_js__WEBPACK_IMPORTED_MODULE_0__["a"])(eventSources, (eventSource) => eventSource.ui);
1681}
1682function buildEventUiBases(eventDefs, eventUiSingleBase, eventUiBySource) {
1683    let eventUiBases = { '': eventUiSingleBase };
1684    for (let defId in eventDefs) {
1685        let def = eventDefs[defId];
1686        if (def.sourceId && eventUiBySource[def.sourceId]) {
1687            eventUiBases[defId] = eventUiBySource[def.sourceId];
1688        }
1689    }
1690    return eventUiBases;
1691}
1692function buildViewUiProps(calendarContext) {
1693    let { options } = calendarContext;
1694    return {
1695        eventUiSingleBase: Object(_internal_common_js__WEBPACK_IMPORTED_MODULE_0__["W"])({
1696            display: options.eventDisplay,
1697            editable: options.editable,
1698            startEditable: options.eventStartEditable,
1699            durationEditable: options.eventDurationEditable,
1700            constraint: options.eventConstraint,
1701            overlap: typeof options.eventOverlap === 'boolean' ? options.eventOverlap : undefined,
1702            allow: options.eventAllow,
1703            backgroundColor: options.eventBackgroundColor,
1704            borderColor: options.eventBorderColor,
1705            textColor: options.eventTextColor,
1706            color: options.eventColor,
1707            // classNames: options.eventClassNames // render hook will handle this
1708        }, calendarContext),
1709        selectionConfig: Object(_internal_common_js__WEBPACK_IMPORTED_MODULE_0__["W"])({
1710            constraint: options.selectConstraint,
1711            overlap: typeof options.selectOverlap === 'boolean' ? options.selectOverlap : undefined,
1712            allow: options.selectAllow,
1713        }, calendarContext),
1714    };
1715}
1716function computeIsLoading(state, context) {
1717    for (let isLoadingFunc of context.pluginHooks.isLoadingFuncs) {
1718        if (isLoadingFunc(state)) {
1719            return true;
1720        }
1721    }
1722    return false;
1723}
1724function parseContextBusinessHours(calendarContext) {
1725    return Object(_internal_common_js__WEBPACK_IMPORTED_MODULE_0__["X"])(calendarContext.options.businessHours, calendarContext);
1726}
1727function warnUnknownOptions(options, viewName) {
1728    for (let optionName in options) {
1729        console.warn(`Unknown option '${optionName}'` +
1730            (viewName ? ` for view '${viewName}'` : ''));
1731    }
1732}
1733
1734class ToolbarSection extends _internal_common_js__WEBPACK_IMPORTED_MODULE_0__["B"] {
1735    render() {
1736        let children = this.props.widgetGroups.map((widgetGroup) => this.renderWidgetGroup(widgetGroup));
1737        return Object(preact__WEBPACK_IMPORTED_MODULE_1__["createElement"])('div', { className: 'fc-toolbar-chunk' }, ...children);
1738    }
1739    renderWidgetGroup(widgetGroup) {
1740        let { props } = this;
1741        let { theme } = this.context;
1742        let children = [];
1743        let isOnlyButtons = true;
1744        for (let widget of widgetGroup) {
1745            let { buttonName, buttonClick, buttonText, buttonIcon, buttonHint } = widget;
1746            if (buttonName === 'title') {
1747                isOnlyButtons = false;
1748                children.push(Object(preact__WEBPACK_IMPORTED_MODULE_1__["createElement"])("h2", { className: "fc-toolbar-title", id: props.titleId }, props.title));
1749            }
1750            else {
1751                let isPressed = buttonName === props.activeButton;
1752                let isDisabled = (!props.isTodayEnabled && buttonName === 'today') ||
1753                    (!props.isPrevEnabled && buttonName === 'prev') ||
1754                    (!props.isNextEnabled && buttonName === 'next');
1755                let buttonClasses = [`fc-${buttonName}-button`, theme.getClass('button')];
1756                if (isPressed) {
1757                    buttonClasses.push(theme.getClass('buttonActive'));
1758                }
1759                children.push(Object(preact__WEBPACK_IMPORTED_MODULE_1__["createElement"])("button", { type: "button", title: typeof buttonHint === 'function' ? buttonHint(props.navUnit) : buttonHint, disabled: isDisabled, "aria-pressed": isPressed, className: buttonClasses.join(' '), onClick: buttonClick }, buttonText || (buttonIcon ? Object(preact__WEBPACK_IMPORTED_MODULE_1__["createElement"])("span", { className: buttonIcon, role: "img" }) : '')));
1760            }
1761        }
1762        if (children.length > 1) {
1763            let groupClassName = (isOnlyButtons && theme.getClass('buttonGroup')) || '';
1764            return Object(preact__WEBPACK_IMPORTED_MODULE_1__["createElement"])('div', { className: groupClassName }, ...children);
1765        }
1766        return children[0];
1767    }
1768}
1769
1770class Toolbar extends _internal_common_js__WEBPACK_IMPORTED_MODULE_0__["B"] {
1771    render() {
1772        let { model, extraClassName } = this.props;
1773        let forceLtr = false;
1774        let startContent;
1775        let endContent;
1776        let sectionWidgets = model.sectionWidgets;
1777        let centerContent = sectionWidgets.center;
1778        if (sectionWidgets.left) {
1779            forceLtr = true;
1780            startContent = sectionWidgets.left;
1781        }
1782        else {
1783            startContent = sectionWidgets.start;
1784        }
1785        if (sectionWidgets.right) {
1786            forceLtr = true;
1787            endContent = sectionWidgets.right;
1788        }
1789        else {
1790            endContent = sectionWidgets.end;
1791        }
1792        let classNames = [
1793            extraClassName || '',
1794            'fc-toolbar',
1795            forceLtr ? 'fc-toolbar-ltr' : '',
1796        ];
1797        return (Object(preact__WEBPACK_IMPORTED_MODULE_1__["createElement"])("div", { className: classNames.join(' ') },
1798            this.renderSection('start', startContent || []),
1799            this.renderSection('center', centerContent || []),
1800            this.renderSection('end', endContent || [])));
1801    }
1802    renderSection(key, widgetGroups) {
1803        let { props } = this;
1804        return (Object(preact__WEBPACK_IMPORTED_MODULE_1__["createElement"])(ToolbarSection, { key: key, widgetGroups: widgetGroups, title: props.title, navUnit: props.navUnit, activeButton: props.activeButton, isTodayEnabled: props.isTodayEnabled, isPrevEnabled: props.isPrevEnabled, isNextEnabled: props.isNextEnabled, titleId: props.titleId }));
1805    }
1806}
1807
1808class ViewHarness extends _internal_common_js__WEBPACK_IMPORTED_MODULE_0__["B"] {
1809    constructor() {
1810        super(...arguments);
1811        this.state = {
1812            availableWidth: null,
1813        };
1814        this.handleEl = (el) => {
1815            this.el = el;
1816            Object(_internal_common_js__WEBPACK_IMPORTED_MODULE_0__["Y"])(this.props.elRef, el);
1817            this.updateAvailableWidth();
1818        };
1819        this.handleResize = () => {
1820            this.updateAvailableWidth();
1821        };
1822    }
1823    render() {
1824        let { props, state } = this;
1825        let { aspectRatio } = props;
1826        let classNames = [
1827            'fc-view-harness',
1828            (aspectRatio || props.liquid || props.height)
1829                ? 'fc-view-harness-active' // harness controls the height
1830                : 'fc-view-harness-passive', // let the view do the height
1831        ];
1832        let height = '';
1833        let paddingBottom = '';
1834        if (aspectRatio) {
1835            if (state.availableWidth !== null) {
1836                height = state.availableWidth / aspectRatio;
1837            }
1838            else {
1839                // while waiting to know availableWidth, we can't set height to *zero*
1840                // because will cause lots of unnecessary scrollbars within scrollgrid.
1841                // BETTER: don't start rendering ANYTHING yet until we know container width
1842                // NOTE: why not always use paddingBottom? Causes height oscillation (issue 5606)
1843                paddingBottom = `${(1 / aspectRatio) * 100}%`;
1844            }
1845        }
1846        else {
1847            height = props.height || '';
1848        }
1849        return (Object(preact__WEBPACK_IMPORTED_MODULE_1__["createElement"])("div", { "aria-labelledby": props.labeledById, ref: this.handleEl, className: classNames.join(' '), style: { height, paddingBottom } }, props.children));
1850    }
1851    componentDidMount() {
1852        this.context.addResizeHandler(this.handleResize);
1853    }
1854    componentWillUnmount() {
1855        this.context.removeResizeHandler(this.handleResize);
1856    }
1857    updateAvailableWidth() {
1858        if (this.el && // needed. but why?
1859            this.props.aspectRatio // aspectRatio is the only height setting that needs availableWidth
1860        ) {
1861            this.setState({ availableWidth: this.el.offsetWidth });
1862        }
1863    }
1864}
1865
1866/*
1867Detects when the user clicks on an event within a DateComponent
1868*/
1869class EventClicking extends _internal_common_js__WEBPACK_IMPORTED_MODULE_0__["Z"] {
1870    constructor(settings) {
1871        super(settings);
1872        this.handleSegClick = (ev, segEl) => {
1873            let { component } = this;
1874            let { context } = component;
1875            let seg = Object(_internal_common_js__WEBPACK_IMPORTED_MODULE_0__["_"])(segEl);
1876            if (seg && // might be the <div> surrounding the more link
1877                component.isValidSegDownEl(ev.target)) {
1878                // our way to simulate a link click for elements that can't be <a> tags
1879                // grab before trigger fired in case trigger trashes DOM thru rerendering
1880                let hasUrlContainer = Object(_internal_common_js__WEBPACK_IMPORTED_MODULE_0__["$"])(ev.target, '.fc-event-forced-url');
1881                let url = hasUrlContainer ? hasUrlContainer.querySelector('a[href]').href : '';
1882                context.emitter.trigger('eventClick', {
1883                    el: segEl,
1884                    event: new _internal_common_js__WEBPACK_IMPORTED_MODULE_0__["a0"](component.context, seg.eventRange.def, seg.eventRange.instance),
1885                    jsEvent: ev,
1886                    view: context.viewApi,
1887                });
1888                if (url && !ev.defaultPrevented) {
1889                    window.location.href = url;
1890                }
1891            }
1892        };
1893        this.destroy = Object(_internal_common_js__WEBPACK_IMPORTED_MODULE_0__["a1"])(settings.el, 'click', '.fc-event', // on both fg and bg events
1894        this.handleSegClick);
1895    }
1896}
1897
1898/*
1899Triggers events and adds/removes core classNames when the user's pointer
1900enters/leaves event-elements of a component.
1901*/
1902class EventHovering extends _internal_common_js__WEBPACK_IMPORTED_MODULE_0__["Z"] {
1903    constructor(settings) {
1904        super(settings);
1905        // for simulating an eventMouseLeave when the event el is destroyed while mouse is over it
1906        this.handleEventElRemove = (el) => {
1907            if (el === this.currentSegEl) {
1908                this.handleSegLeave(null, this.currentSegEl);
1909            }
1910        };
1911        this.handleSegEnter = (ev, segEl) => {
1912            if (Object(_internal_common_js__WEBPACK_IMPORTED_MODULE_0__["_"])(segEl)) { // TODO: better way to make sure not hovering over more+ link or its wrapper
1913                this.currentSegEl = segEl;
1914                this.triggerEvent('eventMouseEnter', ev, segEl);
1915            }
1916        };
1917        this.handleSegLeave = (ev, segEl) => {
1918            if (this.currentSegEl) {
1919                this.currentSegEl = null;
1920                this.triggerEvent('eventMouseLeave', ev, segEl);
1921            }
1922        };
1923        this.removeHoverListeners = Object(_internal_common_js__WEBPACK_IMPORTED_MODULE_0__["a2"])(settings.el, '.fc-event', // on both fg and bg events
1924        this.handleSegEnter, this.handleSegLeave);
1925    }
1926    destroy() {
1927        this.removeHoverListeners();
1928    }
1929    triggerEvent(publicEvName, ev, segEl) {
1930        let { component } = this;
1931        let { context } = component;
1932        let seg = Object(_internal_common_js__WEBPACK_IMPORTED_MODULE_0__["_"])(segEl);
1933        if (!ev || component.isValidSegDownEl(ev.target)) {
1934            context.emitter.trigger(publicEvName, {
1935                el: segEl,
1936                event: new _internal_common_js__WEBPACK_IMPORTED_MODULE_0__["a0"](context, seg.eventRange.def, seg.eventRange.instance),
1937                jsEvent: ev,
1938                view: context.viewApi,
1939            });
1940        }
1941    }
1942}
1943
1944class CalendarContent extends _internal_common_js__WEBPACK_IMPORTED_MODULE_0__["a3"] {
1945    constructor() {
1946        super(...arguments);
1947        this.buildViewContext = Object(_internal_common_js__WEBPACK_IMPORTED_MODULE_0__["z"])(_internal_common_js__WEBPACK_IMPORTED_MODULE_0__["a4"]);
1948        this.buildViewPropTransformers = Object(_internal_common_js__WEBPACK_IMPORTED_MODULE_0__["z"])(buildViewPropTransformers);
1949        this.buildToolbarProps = Object(_internal_common_js__WEBPACK_IMPORTED_MODULE_0__["z"])(buildToolbarProps);
1950        this.headerRef = Object(preact__WEBPACK_IMPORTED_MODULE_1__["createRef"])();
1951        this.footerRef = Object(preact__WEBPACK_IMPORTED_MODULE_1__["createRef"])();
1952        this.interactionsStore = {};
1953        // eslint-disable-next-line
1954        this.state = {
1955            viewLabelId: Object(_internal_common_js__WEBPACK_IMPORTED_MODULE_0__["a5"])(),
1956        };
1957        // Component Registration
1958        // -----------------------------------------------------------------------------------------------------------------
1959        this.registerInteractiveComponent = (component, settingsInput) => {
1960            let settings = Object(_internal_common_js__WEBPACK_IMPORTED_MODULE_0__["a6"])(component, settingsInput);
1961            let DEFAULT_INTERACTIONS = [
1962                EventClicking,
1963                EventHovering,
1964            ];
1965            let interactionClasses = DEFAULT_INTERACTIONS.concat(this.props.pluginHooks.componentInteractions);
1966            let interactions = interactionClasses.map((TheInteractionClass) => new TheInteractionClass(settings));
1967            this.interactionsStore[component.uid] = interactions;
1968            _internal_common_js__WEBPACK_IMPORTED_MODULE_0__["a7"][component.uid] = settings;
1969        };
1970        this.unregisterInteractiveComponent = (component) => {
1971            let listeners = this.interactionsStore[component.uid];
1972            if (listeners) {
1973                for (let listener of listeners) {
1974                    listener.destroy();
1975                }
1976                delete this.interactionsStore[component.uid];
1977            }
1978            delete _internal_common_js__WEBPACK_IMPORTED_MODULE_0__["a7"][component.uid];
1979        };
1980        // Resizing
1981        // -----------------------------------------------------------------------------------------------------------------
1982        this.resizeRunner = new _internal_common_js__WEBPACK_IMPORTED_MODULE_0__["D"](() => {
1983            this.props.emitter.trigger('_resize', true); // should window resizes be considered "forced" ?
1984            this.props.emitter.trigger('windowResize', { view: this.props.viewApi });
1985        });
1986        this.handleWindowResize = (ev) => {
1987            let { options } = this.props;
1988            if (options.handleWindowResize &&
1989                ev.target === window // avoid jqui events
1990            ) {
1991                this.resizeRunner.request(options.windowResizeDelay);
1992            }
1993        };
1994    }
1995    /*
1996    renders INSIDE of an outer div
1997    */
1998    render() {
1999        let { props } = this;
2000        let { toolbarConfig, options } = props;
2001        let toolbarProps = this.buildToolbarProps(props.viewSpec, props.dateProfile, props.dateProfileGenerator, props.currentDate, Object(_internal_common_js__WEBPACK_IMPORTED_MODULE_0__["a8"])(props.options.now, props.dateEnv), // TODO: use NowTimer????
2002        props.viewTitle);
2003        let viewVGrow = false;
2004        let viewHeight = '';
2005        let viewAspectRatio;
2006        if (props.isHeightAuto || props.forPrint) {
2007            viewHeight = '';
2008        }
2009        else if (options.height != null) {
2010            viewVGrow = true;
2011        }
2012        else if (options.contentHeight != null) {
2013            viewHeight = options.contentHeight;
2014        }
2015        else {
2016            viewAspectRatio = Math.max(options.aspectRatio, 0.5); // prevent from getting too tall
2017        }
2018        let viewContext = this.buildViewContext(props.viewSpec, props.viewApi, props.options, props.dateProfileGenerator, props.dateEnv, props.theme, props.pluginHooks, props.dispatch, props.getCurrentData, props.emitter, props.calendarApi, this.registerInteractiveComponent, this.unregisterInteractiveComponent);
2019        let viewLabelId = (toolbarConfig.header && toolbarConfig.header.hasTitle)
2020            ? this.state.viewLabelId
2021            : undefined;
2022        return (Object(preact__WEBPACK_IMPORTED_MODULE_1__["createElement"])(_internal_common_js__WEBPACK_IMPORTED_MODULE_0__["V"].Provider, { value: viewContext },
2023            toolbarConfig.header && (Object(preact__WEBPACK_IMPORTED_MODULE_1__["createElement"])(Toolbar, Object.assign({ ref: this.headerRef, extraClassName: "fc-header-toolbar", model: toolbarConfig.header, titleId: viewLabelId }, toolbarProps))),
2024            Object(preact__WEBPACK_IMPORTED_MODULE_1__["createElement"])(ViewHarness, { liquid: viewVGrow, height: viewHeight, aspectRatio: viewAspectRatio, labeledById: viewLabelId },
2025                this.renderView(props),
2026                this.buildAppendContent()),
2027            toolbarConfig.footer && (Object(preact__WEBPACK_IMPORTED_MODULE_1__["createElement"])(Toolbar, Object.assign({ ref: this.footerRef, extraClassName: "fc-footer-toolbar", model: toolbarConfig.footer, titleId: "" }, toolbarProps)))));
2028    }
2029    componentDidMount() {
2030        let { props } = this;
2031        this.calendarInteractions = props.pluginHooks.calendarInteractions
2032            .map((CalendarInteractionClass) => new CalendarInteractionClass(props));
2033        window.addEventListener('resize', this.handleWindowResize);
2034        let { propSetHandlers } = props.pluginHooks;
2035        for (let propName in propSetHandlers) {
2036            propSetHandlers[propName](props[propName], props);
2037        }
2038    }
2039    componentDidUpdate(prevProps) {
2040        let { props } = this;
2041        let { propSetHandlers } = props.pluginHooks;
2042        for (let propName in propSetHandlers) {
2043            if (props[propName] !== prevProps[propName]) {
2044                propSetHandlers[propName](props[propName], props);
2045            }
2046        }
2047    }
2048    componentWillUnmount() {
2049        window.removeEventListener('resize', this.handleWindowResize);
2050        this.resizeRunner.clear();
2051        for (let interaction of this.calendarInteractions) {
2052            interaction.destroy();
2053        }
2054        this.props.emitter.trigger('_unmount');
2055    }
2056    buildAppendContent() {
2057        let { props } = this;
2058        let children = props.pluginHooks.viewContainerAppends.map((buildAppendContent) => buildAppendContent(props));
2059        return Object(preact__WEBPACK_IMPORTED_MODULE_1__["createElement"])(preact__WEBPACK_IMPORTED_MODULE_1__["Fragment"], {}, ...children);
2060    }
2061    renderView(props) {
2062        let { pluginHooks } = props;
2063        let { viewSpec } = props;
2064        let viewProps = {
2065            dateProfile: props.dateProfile,
2066            businessHours: props.businessHours,
2067            eventStore: props.renderableEventStore,
2068            eventUiBases: props.eventUiBases,
2069            dateSelection: props.dateSelection,
2070            eventSelection: props.eventSelection,
2071            eventDrag: props.eventDrag,
2072            eventResize: props.eventResize,
2073            isHeightAuto: props.isHeightAuto,
2074            forPrint: props.forPrint,
2075        };
2076        let transformers = this.buildViewPropTransformers(pluginHooks.viewPropsTransformers);
2077        for (let transformer of transformers) {
2078            Object.assign(viewProps, transformer.transform(viewProps, props));
2079        }
2080        let ViewComponent = viewSpec.component;
2081        return (Object(preact__WEBPACK_IMPORTED_MODULE_1__["createElement"])(ViewComponent, Object.assign({}, viewProps)));
2082    }
2083}
2084function buildToolbarProps(viewSpec, dateProfile, dateProfileGenerator, currentDate, now, title) {
2085    // don't force any date-profiles to valid date profiles (the `false`) so that we can tell if it's invalid
2086    let todayInfo = dateProfileGenerator.build(now, undefined, false); // TODO: need `undefined` or else INFINITE LOOP for some reason
2087    let prevInfo = dateProfileGenerator.buildPrev(dateProfile, currentDate, false);
2088    let nextInfo = dateProfileGenerator.buildNext(dateProfile, currentDate, false);
2089    return {
2090        title,
2091        activeButton: viewSpec.type,
2092        navUnit: viewSpec.singleUnit,
2093        isTodayEnabled: todayInfo.isValid && !Object(_internal_common_js__WEBPACK_IMPORTED_MODULE_0__["H"])(dateProfile.currentRange, now),
2094        isPrevEnabled: prevInfo.isValid,
2095        isNextEnabled: nextInfo.isValid,
2096    };
2097}
2098// Plugin
2099// -----------------------------------------------------------------------------------------------------------------
2100function buildViewPropTransformers(theClasses) {
2101    return theClasses.map((TheClass) => new TheClass());
2102}
2103
2104class Calendar extends _internal_common_js__WEBPACK_IMPORTED_MODULE_0__["a9"] {
2105    constructor(el, optionOverrides = {}) {
2106        super();
2107        this.isRendering = false;
2108        this.isRendered = false;
2109        this.currentClassNames = [];
2110        this.customContentRenderId = 0;
2111        this.handleAction = (action) => {
2112            // actions we know we want to render immediately
2113            switch (action.type) {
2114                case 'SET_EVENT_DRAG':
2115                case 'SET_EVENT_RESIZE':
2116                    this.renderRunner.tryDrain();
2117            }
2118        };
2119        this.handleData = (data) => {
2120            this.currentData = data;
2121            this.renderRunner.request(data.calendarOptions.rerenderDelay);
2122        };
2123        this.handleRenderRequest = () => {
2124            if (this.isRendering) {
2125                this.isRendered = true;
2126                let { currentData } = this;
2127                Object(_internal_common_js__WEBPACK_IMPORTED_MODULE_0__["aa"])(() => {
2128                    Object(preact__WEBPACK_IMPORTED_MODULE_1__["render"])(Object(preact__WEBPACK_IMPORTED_MODULE_1__["createElement"])(_internal_common_js__WEBPACK_IMPORTED_MODULE_0__["ab"], { options: currentData.calendarOptions, theme: currentData.theme, emitter: currentData.emitter }, (classNames, height, isHeightAuto, forPrint) => {
2129                        this.setClassNames(classNames);
2130                        this.setHeight(height);
2131                        return (Object(preact__WEBPACK_IMPORTED_MODULE_1__["createElement"])(_internal_common_js__WEBPACK_IMPORTED_MODULE_0__["ac"].Provider, { value: this.customContentRenderId },
2132                            Object(preact__WEBPACK_IMPORTED_MODULE_1__["createElement"])(CalendarContent, Object.assign({ isHeightAuto: isHeightAuto, forPrint: forPrint }, currentData))));
2133                    }), this.el);
2134                });
2135            }
2136            else if (this.isRendered) {
2137                this.isRendered = false;
2138                Object(preact__WEBPACK_IMPORTED_MODULE_1__["render"])(null, this.el);
2139                this.setClassNames([]);
2140                this.setHeight('');
2141            }
2142        };
2143        Object(_internal_common_js__WEBPACK_IMPORTED_MODULE_0__["ad"])(el);
2144        this.el = el;
2145        this.renderRunner = new _internal_common_js__WEBPACK_IMPORTED_MODULE_0__["D"](this.handleRenderRequest);
2146        new CalendarDataManager({
2147            optionOverrides,
2148            calendarApi: this,
2149            onAction: this.handleAction,
2150            onData: this.handleData,
2151        });
2152    }
2153    render() {
2154        let wasRendering = this.isRendering;
2155        if (!wasRendering) {
2156            this.isRendering = true;
2157        }
2158        else {
2159            this.customContentRenderId += 1;
2160        }
2161        this.renderRunner.request();
2162        if (wasRendering) {
2163            this.updateSize();
2164        }
2165    }
2166    destroy() {
2167        if (this.isRendering) {
2168            this.isRendering = false;
2169            this.renderRunner.request();
2170        }
2171    }
2172    updateSize() {
2173        Object(_internal_common_js__WEBPACK_IMPORTED_MODULE_0__["aa"])(() => {
2174            super.updateSize();
2175        });
2176    }
2177    batchRendering(func) {
2178        this.renderRunner.pause('batchRendering');
2179        func();
2180        this.renderRunner.resume('batchRendering');
2181    }
2182    pauseRendering() {
2183        this.renderRunner.pause('pauseRendering');
2184    }
2185    resumeRendering() {
2186        this.renderRunner.resume('pauseRendering', true);
2187    }
2188    resetOptions(optionOverrides, changedOptionNames) {
2189        this.currentDataManager.resetOptions(optionOverrides, changedOptionNames);
2190    }
2191    setClassNames(classNames) {
2192        if (!Object(_internal_common_js__WEBPACK_IMPORTED_MODULE_0__["i"])(classNames, this.currentClassNames)) {
2193            let { classList } = this.el;
2194            for (let className of this.currentClassNames) {
2195                classList.remove(className);
2196            }
2197            for (let className of classNames) {
2198                classList.add(className);
2199            }
2200            this.currentClassNames = classNames;
2201        }
2202    }
2203    setHeight(height) {
2204        Object(_internal_common_js__WEBPACK_IMPORTED_MODULE_0__["ae"])(this.el, 'height', height);
2205    }
2206}
2207
2208function formatDate(dateInput, options = {}) {
2209    let dateEnv = buildDateEnv(options);
2210    let formatter = Object(_internal_common_js__WEBPACK_IMPORTED_MODULE_0__["x"])(options);
2211    let dateMeta = dateEnv.createMarkerMeta(dateInput);
2212    if (!dateMeta) { // TODO: warning?
2213        return '';
2214    }
2215    return dateEnv.format(dateMeta.marker, formatter, {
2216        forcedTzo: dateMeta.forcedTzo,
2217    });
2218}
2219function formatRange(startInput, endInput, options) {
2220    let dateEnv = buildDateEnv(typeof options === 'object' && options ? options : {}); // pass in if non-null object
2221    let formatter = Object(_internal_common_js__WEBPACK_IMPORTED_MODULE_0__["x"])(options);
2222    let startMeta = dateEnv.createMarkerMeta(startInput);
2223    let endMeta = dateEnv.createMarkerMeta(endInput);
2224    if (!startMeta || !endMeta) { // TODO: warning?
2225        return '';
2226    }
2227    return dateEnv.formatRange(startMeta.marker, endMeta.marker, formatter, {
2228        forcedStartTzo: startMeta.forcedTzo,
2229        forcedEndTzo: endMeta.forcedTzo,
2230        isEndExclusive: options.isEndExclusive,
2231        defaultSeparator: _internal_common_js__WEBPACK_IMPORTED_MODULE_0__["e"].defaultRangeSeparator,
2232    });
2233}
2234// TODO: more DRY and optimized
2235function buildDateEnv(settings) {
2236    let locale = buildLocale(settings.locale || 'en', organizeRawLocales([]).map); // TODO: don't hardcode 'en' everywhere
2237    return new _internal_common_js__WEBPACK_IMPORTED_MODULE_0__["S"](Object.assign(Object.assign({ timeZone: _internal_common_js__WEBPACK_IMPORTED_MODULE_0__["e"].timeZone, calendarSystem: 'gregory' }, settings), { locale }));
2238}
2239
2240// HELPERS
2241/*
2242if nextDayThreshold is specified, slicing is done in an all-day fashion.
2243you can get nextDayThreshold from context.nextDayThreshold
2244*/
2245function sliceEvents(props, allDay) {
2246    return Object(_internal_common_js__WEBPACK_IMPORTED_MODULE_0__["af"])(props.eventStore, props.eventUiBases, props.dateProfile.activeRange, allDay ? props.nextDayThreshold : null).fg;
2247}
2248
2249const version = '6.1.11';
2250
2251
2252
2253
2254/***/ }),
2255
vendor: 323,086 bytes, lines 2256-9974
2256/***/ "./node_modules/@fullcalendar/core/internal-common.js":
2257/*!************************************************************!*\
2258  !*** ./node_modules/@fullcalendar/core/internal-common.js ***!
2259  \************************************************************/
2260/*! exports provided: $, A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z, _, a, a$, a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, aA, aB, aC, aD, aE, aF, aG, aH, aI, aJ, aK, aL, aM, aN, aO, aP, aQ, aR, aS, aT, aU, aV, aW, aX, aY, aZ, a_, aa, ab, ac, ad, ae, af, ag, ah, ai, aj, ak, al, am, an, ao, ap, aq, ar, as, at, au, av, aw, ax, ay, az, b, b$, b0, b1, b2, b3, b4, b5, b6, b7, b8, b9, bA, bB, bC, bD, bE, bF, bG, bH, bI, bJ, bK, bL, bM, bN, bO, bP, bQ, bR, bS, bT, bU, bV, bW, bX, bY, bZ, b_, ba, bb, bc, bd, be, bf, bg, bh, bi, bj, bk, bl, bm, bn, bo, bp, bq, br, bs, bt, bu, bv, bw, bx, by, bz, c, c0, c1, c2, c3, c4, c5, c6, c7, c8, c9, ca, cb, cc, cd, ce, cf, cg, ch, ci, cj, ck, cl, cm, cn, co, cp, cq, cr, cs, ct, cu, cv, cw, cx, cy, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z */
2261/***/ (function(module, __webpack_exports__, __webpack_require__) {
2262
2263"use strict";
2264__webpack_require__.r(__webpack_exports__);
2265/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "$", function() { return elementClosest; });
2266/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "A", function() { return memoizeObjArg; });
2267/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "B", function() { return BaseComponent; });
2268/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "C", function() { return ContentContainer; });
2269/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "D", function() { return DelayedRunner; });
2270/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "E", function() { return isPropsEqual; });
2271/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "F", function() { return Emitter; });
2272/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "G", function() { return getInitialDate; });
2273/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "H", function() { return rangeContainsMarker; });
2274/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "I", function() { return createEmptyEventStore; });
2275/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "J", function() { return reduceCurrentDate; });
2276/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "K", function() { return reduceEventStore; });
2277/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "L", function() { return rezoneEventStoreDates; });
2278/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "M", function() { return mergeRawOptions; });
2279/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "N", function() { return BASE_OPTION_REFINERS; });
2280/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "O", function() { return CALENDAR_LISTENER_REFINERS; });
2281/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "P", function() { return CALENDAR_OPTION_REFINERS; });
2282/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "Q", function() { return COMPLEX_OPTION_COMPARATORS; });
2283/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "R", function() { return VIEW_OPTION_REFINERS; });
2284/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "S", function() { return DateEnv; });
2285/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "T", function() { return Theme; });
2286/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "U", function() { return DateProfileGenerator; });
2287/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "V", function() { return ViewContextType; });
2288/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "W", function() { return createEventUi; });
2289/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "X", function() { return parseBusinessHours; });
2290/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "Y", function() { return setRef; });
2291/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "Z", function() { return Interaction; });
2292/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "_", function() { return getElSeg; });
2293/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return mapHash; });
2294/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a$", function() { return getSlotClassNames; });
2295/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a0", function() { return EventImpl; });
2296/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a1", function() { return listenBySelector; });
2297/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a2", function() { return listenToHoverBySelector; });
2298/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a3", function() { return PureComponent; });
2299/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a4", function() { return buildViewContext; });
2300/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a5", function() { return getUniqueDomId; });
2301/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a6", function() { return parseInteractionSettings; });
2302/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a7", function() { return interactionSettingsStore; });
2303/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a8", function() { return getNow; });
2304/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a9", function() { return CalendarImpl; });
2305/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "aA", function() { return diffDates; });
2306/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "aB", function() { return removeExact; });
2307/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "aC", function() { return memoizeArraylike; });
2308/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "aD", function() { return memoizeHashlike; });
2309/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "aE", function() { return intersectRects; });
2310/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "aF", function() { return pointInsideRect; });
2311/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "aG", function() { return constrainPoint; });
2312/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "aH", function() { return getRectCenter; });
2313/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "aI", function() { return diffPoints; });
2314/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "aJ", function() { return translateRect; });
2315/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "aK", function() { return compareObjs; });
2316/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "aL", function() { return collectFromHash; });
2317/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "aM", function() { return findElements; });
2318/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "aN", function() { return findDirectChildren; });
2319/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "aO", function() { return removeElement; });
2320/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "aP", function() { return applyStyle; });
2321/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "aQ", function() { return elementMatches; });
2322/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "aR", function() { return getEventTargetViaRoot; });
2323/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "aS", function() { return parseClassNames; });
2324/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "aT", function() { return getCanVGrowWithinCell; });
2325/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "aU", function() { return mergeEventStores; });
2326/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "aV", function() { return getRelevantEvents; });
2327/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "aW", function() { return eventTupleToStore; });
2328/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "aX", function() { return combineEventUis; });
2329/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "aY", function() { return Splitter; });
2330/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "aZ", function() { return getDayClassNames; });
2331/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a_", function() { return getDateMeta; });
2332/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "aa", function() { return flushSync; });
2333/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "ab", function() { return CalendarRoot; });
2334/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "ac", function() { return RenderId; });
2335/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "ad", function() { return ensureElHasStyles; });
2336/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "ae", function() { return applyStyleProp; });
2337/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "af", function() { return sliceEventStore; });
2338/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "ag", function() { return JsonRequestError; });
2339/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "ah", function() { return createContext; });
2340/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "ai", function() { return refineProps; });
2341/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "aj", function() { return createEventInstance; });
2342/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "ak", function() { return parseEventDef; });
2343/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "al", function() { return refineEventDef; });
2344/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "am", function() { return padStart; });
2345/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "an", function() { return isInt; });
2346/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "ao", function() { return parseFieldSpecs; });
2347/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "ap", function() { return compareByFieldSpecs; });
2348/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "aq", function() { return flexibleCompare; });
2349/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "ar", function() { return preventSelection; });
2350/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "as", function() { return allowSelection; });
2351/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "at", function() { return preventContextMenu; });
2352/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "au", function() { return allowContextMenu; });
2353/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "av", function() { return compareNumbers; });
2354/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "aw", function() { return enableCursor; });
2355/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "ax", function() { return disableCursor; });
2356/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "ay", function() { return computeVisibleDayRange; });
2357/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "az", function() { return isMultiDayRange; });
2358/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "b", function() { return buildViewClassNames; });
2359/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "b$", function() { return SimpleScrollGrid; });
2360/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "b0", function() { return buildNavLinkAttrs; });
2361/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "b1", function() { return preventDefault; });
2362/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "b2", function() { return whenTransitionDone; });
2363/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "b3", function() { return computeInnerRect; });
2364/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "b4", function() { return computeEdges; });
2365/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "b5", function() { return getClippingParents; });
2366/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "b6", function() { return computeRect; });
2367/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "b7", function() { return rangesEqual; });
2368/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "b8", function() { return rangesIntersect; });
2369/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "b9", function() { return rangeContainsRange; });
2370/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "bA", function() { return SegHierarchy; });
2371/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "bB", function() { return buildEntryKey; });
2372/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "bC", function() { return getEntrySpanEnd; });
2373/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "bD", function() { return binarySearch; });
2374/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "bE", function() { return groupIntersectingEntries; });
2375/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "bF", function() { return intersectSpans; });
2376/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "bG", function() { return interactionSettingsToStore; });
2377/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "bH", function() { return ElementDragging; });
2378/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "bI", function() { return config; });
2379/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "bJ", function() { return parseDragMeta; });
2380/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "bK", function() { return DayHeader; });
2381/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "bL", function() { return computeFallbackHeaderFormat; });
2382/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "bM", function() { return TableDateCell; });
2383/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "bN", function() { return TableDowCell; });
2384/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "bO", function() { return DaySeriesModel; });
2385/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "bP", function() { return hasBgRendering; });
2386/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "bQ", function() { return buildSegTimeText; });
2387/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "bR", function() { return sortEventSegs; });
2388/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "bS", function() { return getSegMeta; });
2389/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "bT", function() { return buildEventRangeKey; });
2390/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "bU", function() { return getSegAnchorAttrs; });
2391/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "bV", function() { return DayTableModel; });
2392/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "bW", function() { return Slicer; });
2393/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "bX", function() { return applyMutationToEventStore; });
2394/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "bY", function() { return isPropsValid; });
2395/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "bZ", function() { return isInteractionValid; });
2396/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "b_", function() { return isDateSelectionValid; });
2397/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "ba", function() { return PositionCache; });
2398/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "bb", function() { return ScrollController; });
2399/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "bc", function() { return ElementScrollController; });
2400/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "bd", function() { return WindowScrollController; });
2401/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "be", function() { return DateComponent; });
2402/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "bf", function() { return isDateSpansEqual; });
2403/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "bg", function() { return addMs; });
2404/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "bh", function() { return addWeeks; });
2405/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "bi", function() { return diffWeeks; });
2406/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "bj", function() { return diffWholeWeeks; });
2407/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "bk", function() { return diffDayAndTime; });
2408/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "bl", function() { return diffDays; });
2409/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "bm", function() { return isValidDate; });
2410/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "bn", function() { return asCleanDays; });
2411/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "bo", function() { return multiplyDuration; });
2412/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "bp", function() { return addDurations; });
2413/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "bq", function() { return asRoughMinutes; });
2414/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "br", function() { return asRoughSeconds; });
2415/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "bs", function() { return asRoughMs; });
2416/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "bt", function() { return wholeDivideDurations; });
2417/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "bu", function() { return formatIsoTimeString; });
2418/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "bv", function() { return formatDayString; });
2419/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "bw", function() { return buildIsoString; });
2420/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "bx", function() { return formatIsoMonthStr; });
2421/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "by", function() { return NamedTimeZoneImpl; });
2422/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "bz", function() { return parse; });
2423/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "c", function() { return greatestDurationDenominator; });
2424/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "c0", function() { return hasShrinkWidth; });
2425/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "c1", function() { return renderMicroColGroup; });
2426/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "c2", function() { return getScrollGridClassNames; });
2427/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "c3", function() { return getSectionClassNames; });
2428/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "c4", function() { return getSectionHasLiquidHeight; });
2429/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "c5", function() { return getAllowYScrolling; });
2430/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "c6", function() { return renderChunkContent; });
2431/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "c7", function() { return computeShrinkWidth; });
2432/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "c8", function() { return sanitizeShrinkWidth; });
2433/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "c9", function() { return isColPropsEqual; });
2434/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "ca", function() { return renderScrollShim; });
2435/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "cb", function() { return getStickyFooterScrollbar; });
2436/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "cc", function() { return getStickyHeaderDates; });
2437/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "cd", function() { return Scroller; });
2438/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "ce", function() { return getScrollbarWidths; });
2439/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "cf", function() { return RefMap; });
2440/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "cg", function() { return getIsRtlScrollbarOnLeft; });
2441/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "ch", function() { return NowTimer; });
2442/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "ci", function() { return ScrollResponder; });
2443/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "cj", function() { return StandardEvent; });
2444/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "ck", function() { return NowIndicatorContainer; });
2445/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "cl", function() { return DayCellContainer; });
2446/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "cm", function() { return hasCustomDayCellContent; });
2447/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "cn", function() { return EventContainer; });
2448/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "co", function() { return renderFill; });
2449/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "cp", function() { return BgEvent; });
2450/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "cq", function() { return WeekNumberContainer; });
2451/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "cr", function() { return MoreLinkContainer; });
2452/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "cs", function() { return computeEarliestSegStart; });
2453/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "ct", function() { return ViewContainer; });
2454/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "cu", function() { return triggerDateSelect; });
2455/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "cv", function() { return getDefaultEventEnd; });
2456/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "cw", function() { return injectStyles; });
2457/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "cx", function() { return buildElAttrs; });
2458/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "cy", function() { return CustomRenderingStore; });
2459/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "d", function() { return createDuration; });
2460/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "e", function() { return BASE_OPTION_DEFAULTS; });
2461/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "f", function() { return arrayToHash; });
2462/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "g", function() { return guid; });
2463/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "h", function() { return filterHash; });
2464/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "i", function() { return isArraysEqual; });
2465/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "j", function() { return buildEventSourceRefiners; });
2466/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "k", function() { return formatWithOrdinals; });
2467/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "l", function() { return buildRangeApiWithTimeZone; });
2468/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "m", function() { return mergeProps; });
2469/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "n", function() { return identity; });
2470/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "o", function() { return intersectRanges; });
2471/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "p", function() { return parseEventSource; });
2472/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "q", function() { return startOfDay; });
2473/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "r", function() { return requestJson; });
2474/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "s", function() { return subtractDurations; });
2475/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "t", function() { return addDays; });
2476/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "u", function() { return unpromisify; });
2477/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "v", function() { return hashValuesToArray; });
2478/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "w", function() { return buildEventApis; });
2479/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "x", function() { return createFormatter; });
2480/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "y", function() { return diffWholeDays; });
2481/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "z", function() { return memoize; });
2482/* harmony import */ var preact__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! preact */ "./node_modules/preact/dist/preact.module.js");
2483/* harmony import */ var preact_compat__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! preact/compat */ "./node_modules/preact/compat/dist/compat.module.js");
2484
2485
2486
2487
2488const styleTexts = [];
2489const styleEls = new Map();
2490function injectStyles(styleText) {
2491    styleTexts.push(styleText);
2492    styleEls.forEach((styleEl) => {
2493        appendStylesTo(styleEl, styleText);
2494    });
2495}
2496function ensureElHasStyles(el) {
2497    if (el.isConnected && // sometimes true if SSR system simulates DOM
2498        el.getRootNode // sometimes undefined if SSR system simulates DOM
2499    ) {
2500        registerStylesRoot(el.getRootNode());
2501    }
2502}
2503function registerStylesRoot(rootNode) {
2504    let styleEl = styleEls.get(rootNode);
2505    if (!styleEl || !styleEl.isConnected) {
2506        styleEl = rootNode.querySelector('style[data-fullcalendar]');
2507        if (!styleEl) {
2508            styleEl = document.createElement('style');
2509            styleEl.setAttribute('data-fullcalendar', '');
2510            const nonce = getNonceValue();
2511            if (nonce) {
2512                styleEl.nonce = nonce;
2513            }
2514            const parentEl = rootNode === document ? document.head : rootNode;
2515            const insertBefore = rootNode === document
2516                ? parentEl.querySelector('script,link[rel=stylesheet],link[as=style],style')
2517                : parentEl.firstChild;
2518            parentEl.insertBefore(styleEl, insertBefore);
2519        }
2520        styleEls.set(rootNode, styleEl);
2521        hydrateStylesRoot(styleEl);
2522    }
2523}
2524function hydrateStylesRoot(styleEl) {
2525    for (const styleText of styleTexts) {
2526        appendStylesTo(styleEl, styleText);
2527    }
2528}
2529function appendStylesTo(styleEl, styleText) {
2530    const { sheet } = styleEl;
2531    const ruleCnt = sheet.cssRules.length;
2532    styleText.split('}').forEach((styleStr, i) => {
2533        styleStr = styleStr.trim();
2534        if (styleStr) {
2535            sheet.insertRule(styleStr + '}', ruleCnt + i);
2536        }
2537    });
2538}
2539// nonce
2540// -------------------------------------------------------------------------------------------------
2541let queriedNonceValue;
2542function getNonceValue() {
2543    if (queriedNonceValue === undefined) {
2544        queriedNonceValue = queryNonceValue();
2545    }
2546    return queriedNonceValue;
2547}
2548/*
2549TODO: discourage meta tag and instead put nonce attribute on placeholder <style> tag
2550*/
2551function queryNonceValue() {
2552    const metaWithNonce = document.querySelector('meta[name="csp-nonce"]');
2553    if (metaWithNonce && metaWithNonce.hasAttribute('content')) {
2554        return metaWithNonce.getAttribute('content');
2555    }
2556    const elWithNonce = document.querySelector('script[nonce]');
2557    if (elWithNonce) {
2558        return elWithNonce.nonce || '';
2559    }
2560    return '';
2561}
2562// main
2563// -------------------------------------------------------------------------------------------------
2564if (typeof document !== 'undefined') {
2565    registerStylesRoot(document);
2566}
2567
2568var css_248z = ":root{--fc-small-font-size:.85em;--fc-page-bg-color:#fff;--fc-neutral-bg-color:hsla(0,0%,82%,.3);--fc-neutral-text-color:grey;--fc-border-color:#ddd;--fc-button-text-color:#fff;--fc-button-bg-color:#2c3e50;--fc-button-border-color:#2c3e50;--fc-button-hover-bg-color:#1e2b37;--fc-button-hover-border-color:#1a252f;--fc-button-active-bg-color:#1a252f;--fc-button-active-border-color:#151e27;--fc-event-bg-color:#3788d8;--fc-event-border-color:#3788d8;--fc-event-text-color:#fff;--fc-event-selected-overlay-color:rgba(0,0,0,.25);--fc-more-link-bg-color:#d0d0d0;--fc-more-link-text-color:inherit;--fc-event-resizer-thickness:8px;--fc-event-resizer-dot-total-width:8px;--fc-event-resizer-dot-border-width:1px;--fc-non-business-color:hsla(0,0%,84%,.3);--fc-bg-event-color:#8fdf82;--fc-bg-event-opacity:0.3;--fc-highlight-color:rgba(188,232,241,.3);--fc-today-bg-color:rgba(255,220,40,.15);--fc-now-indicator-color:red}.fc-not-allowed,.fc-not-allowed .fc-event{cursor:not-allowed}.fc{display:flex;flex-direction:column;font-size:1em}.fc,.fc *,.fc :after,.fc :before{box-sizing:border-box}.fc table{border-collapse:collapse;border-spacing:0;font-size:1em}.fc th{text-align:center}.fc td,.fc th{padding:0;vertical-align:top}.fc a[data-navlink]{cursor:pointer}.fc a[data-navlink]:hover{text-decoration:underline}.fc-direction-ltr{direction:ltr;text-align:left}.fc-direction-rtl{direction:rtl;text-align:right}.fc-theme-standard td,.fc-theme-standard th{border:1px solid var(--fc-border-color)}.fc-liquid-hack td,.fc-liquid-hack th{position:relative}@font-face{font-family:fcicons;font-style:normal;font-weight:400;src:url(\"data:application/x-font-ttf;charset=utf-8;base64,AAEAAAALAIAAAwAwT1MvMg8SBfAAAAC8AAAAYGNtYXAXVtKNAAABHAAAAFRnYXNwAAAAEAAAAXAAAAAIZ2x5ZgYydxIAAAF4AAAFNGhlYWQUJ7cIAAAGrAAAADZoaGVhB20DzAAABuQAAAAkaG10eCIABhQAAAcIAAAALGxvY2ED4AU6AAAHNAAAABhtYXhwAA8AjAAAB0wAAAAgbmFtZXsr690AAAdsAAABhnBvc3QAAwAAAAAI9AAAACAAAwPAAZAABQAAApkCzAAAAI8CmQLMAAAB6wAzAQkAAAAAAAAAAAAAAAAAAAABEAAAAAAAAAAAAAAAAAAAAABAAADpBgPA/8AAQAPAAEAAAAABAAAAAAAAAAAAAAAgAAAAAAADAAAAAwAAABwAAQADAAAAHAADAAEAAAAcAAQAOAAAAAoACAACAAIAAQAg6Qb//f//AAAAAAAg6QD//f//AAH/4xcEAAMAAQAAAAAAAAAAAAAAAQAB//8ADwABAAAAAAAAAAAAAgAANzkBAAAAAAEAAAAAAAAAAAACAAA3OQEAAAAAAQAAAAAAAAAAAAIAADc5AQAAAAABAWIAjQKeAskAEwAAJSc3NjQnJiIHAQYUFwEWMjc2NCcCnuLiDQ0MJAz/AA0NAQAMJAwNDcni4gwjDQwM/wANIwz/AA0NDCMNAAAAAQFiAI0CngLJABMAACUBNjQnASYiBwYUHwEHBhQXFjI3AZ4BAA0N/wAMJAwNDeLiDQ0MJAyNAQAMIw0BAAwMDSMM4uINIwwNDQAAAAIA4gC3Ax4CngATACcAACUnNzY0JyYiDwEGFB8BFjI3NjQnISc3NjQnJiIPAQYUHwEWMjc2NCcB87e3DQ0MIw3VDQ3VDSMMDQ0BK7e3DQ0MJAzVDQ3VDCQMDQ3zuLcMJAwNDdUNIwzWDAwNIwy4twwkDA0N1Q0jDNYMDA0jDAAAAgDiALcDHgKeABMAJwAAJTc2NC8BJiIHBhQfAQcGFBcWMjchNzY0LwEmIgcGFB8BBwYUFxYyNwJJ1Q0N1Q0jDA0Nt7cNDQwjDf7V1Q0N1QwkDA0Nt7cNDQwkDLfWDCMN1Q0NDCQMt7gMIw0MDNYMIw3VDQ0MJAy3uAwjDQwMAAADAFUAAAOrA1UAMwBoAHcAABMiBgcOAQcOAQcOARURFBYXHgEXHgEXHgEzITI2Nz4BNz4BNz4BNRE0JicuAScuAScuASMFITIWFx4BFx4BFx4BFREUBgcOAQcOAQcOASMhIiYnLgEnLgEnLgE1ETQ2Nz4BNz4BNz4BMxMhMjY1NCYjISIGFRQWM9UNGAwLFQkJDgUFBQUFBQ4JCRULDBgNAlYNGAwLFQkJDgUFBQUFBQ4JCRULDBgN/aoCVgQIBAQHAwMFAQIBAQIBBQMDBwQECAT9qgQIBAQHAwMFAQIBAQIBBQMDBwQECASAAVYRGRkR/qoRGRkRA1UFBAUOCQkVDAsZDf2rDRkLDBUJCA4FBQUFBQUOCQgVDAsZDQJVDRkLDBUJCQ4FBAVVAgECBQMCBwQECAX9qwQJAwQHAwMFAQICAgIBBQMDBwQDCQQCVQUIBAQHAgMFAgEC/oAZEhEZGRESGQAAAAADAFUAAAOrA1UAMwBoAIkAABMiBgcOAQcOAQcOARURFBYXHgEXHgEXHgEzITI2Nz4BNz4BNz4BNRE0JicuAScuAScuASMFITIWFx4BFx4BFx4BFREUBgcOAQcOAQcOASMhIiYnLgEnLgEnLgE1ETQ2Nz4BNz4BNz4BMxMzFRQWMzI2PQEzMjY1NCYrATU0JiMiBh0BIyIGFRQWM9UNGAwLFQkJDgUFBQUFBQ4JCRULDBgNAlYNGAwLFQkJDgUFBQUFBQ4JCRULDBgN/aoCVgQIBAQHAwMFAQIBAQIBBQMDBwQECAT9qgQIBAQHAwMFAQIBAQIBBQMDBwQECASAgBkSEhmAERkZEYAZEhIZgBEZGREDVQUEBQ4JCRUMCxkN/asNGQsMFQkIDgUFBQUFBQ4JCBUMCxkNAlUNGQsMFQkJDgUEBVUCAQIFAwIHBAQIBf2rBAkDBAcDAwUBAgICAgEFAwMHBAMJBAJVBQgEBAcCAwUCAQL+gIASGRkSgBkSERmAEhkZEoAZERIZAAABAOIAjQMeAskAIAAAExcHBhQXFjI/ARcWMjc2NC8BNzY0JyYiDwEnJiIHBhQX4uLiDQ0MJAzi4gwkDA0N4uINDQwkDOLiDCQMDQ0CjeLiDSMMDQ3h4Q0NDCMN4uIMIw0MDOLiDAwNIwwAAAABAAAAAQAAa5n0y18PPPUACwQAAAAAANivOVsAAAAA2K85WwAAAAADqwNVAAAACAACAAAAAAAAAAEAAAPA/8AAAAQAAAAAAAOrAAEAAAAAAAAAAAAAAAAAAAALBAAAAAAAAAAAAAAAAgAAAAQAAWIEAAFiBAAA4gQAAOIEAABVBAAAVQQAAOIAAAAAAAoAFAAeAEQAagCqAOoBngJkApoAAQAAAAsAigADAAAAAAACAAAAAAAAAAAAAAAAAAAAAAAAAA4ArgABAAAAAAABAAcAAAABAAAAAAACAAcAYAABAAAAAAADAAcANgABAAAAAAAEAAcAdQABAAAAAAAFAAsAFQABAAAAAAAGAAcASwABAAAAAAAKABoAigADAAEECQABAA4ABwADAAEECQACAA4AZwADAAEECQADAA4APQADAAEECQAEAA4AfAADAAEECQAFABYAIAADAAEECQAGAA4AUgADAAEECQAKADQApGZjaWNvbnMAZgBjAGkAYwBvAG4Ac1ZlcnNpb24gMS4wAFYAZQByAHMAaQBvAG4AIAAxAC4AMGZjaWNvbnMAZgBjAGkAYwBvAG4Ac2ZjaWNvbnMAZgBjAGkAYwBvAG4Ac1JlZ3VsYXIAUgBlAGcAdQBsAGEAcmZjaWNvbnMAZgBjAGkAYwBvAG4Ac0ZvbnQgZ2VuZXJhdGVkIGJ5IEljb01vb24uAEYAbwBuAHQAIABnAGUAbgBlAHIAYQB0AGUAZAAgAGIAeQAgAEkAYwBvAE0AbwBvAG4ALgAAAAMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=\") format(\"truetype\")}.fc-icon{speak:none;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;display:inline-block;font-family:fcicons!important;font-style:normal;font-variant:normal;font-weight:400;height:1em;line-height:1;text-align:center;text-transform:none;-webkit-user-select:none;-moz-user-select:none;user-select:none;width:1em}.fc-icon-chevron-left:before{content:\"\\e900\"}.fc-icon-chevron-right:before{content:\"\\e901\"}.fc-icon-chevrons-left:before{content:\"\\e902\"}.fc-icon-chevrons-right:before{content:\"\\e903\"}.fc-icon-minus-square:before{content:\"\\e904\"}.fc-icon-plus-square:before{content:\"\\e905\"}.fc-icon-x:before{content:\"\\e906\"}.fc .fc-button{border-radius:0;font-family:inherit;font-size:inherit;line-height:inherit;margin:0;overflow:visible;text-transform:none}.fc .fc-button:focus{outline:1px dotted;outline:5px auto -webkit-focus-ring-color}.fc .fc-button{-webkit-appearance:button}.fc .fc-button:not(:disabled){cursor:pointer}.fc .fc-button{background-color:transparent;border:1px solid transparent;border-radius:.25em;display:inline-block;font-size:1em;font-weight:400;line-height:1.5;padding:.4em .65em;text-align:center;-webkit-user-select:none;-moz-user-select:none;user-select:none;vertical-align:middle}.fc .fc-button:hover{text-decoration:none}.fc .fc-button:focus{box-shadow:0 0 0 .2rem rgba(44,62,80,.25);outline:0}.fc .fc-button:disabled{opacity:.65}.fc .fc-button-primary{background-color:var(--fc-button-bg-color);border-color:var(--fc-button-border-color);color:var(--fc-button-text-color)}.fc .fc-button-primary:hover{background-color:var(--fc-button-hover-bg-color);border-color:var(--fc-button-hover-border-color);color:var(--fc-button-text-color)}.fc .fc-button-primary:disabled{background-color:var(--fc-button-bg-color);border-color:var(--fc-button-border-color);color:var(--fc-button-text-color)}.fc .fc-button-primary:focus{box-shadow:0 0 0 .2rem rgba(76,91,106,.5)}.fc .fc-button-primary:not(:disabled).fc-button-active,.fc .fc-button-primary:not(:disabled):active{background-color:var(--fc-button-active-bg-color);border-color:var(--fc-button-active-border-color);color:var(--fc-button-text-color)}.fc .fc-button-primary:not(:disabled).fc-button-active:focus,.fc .fc-button-primary:not(:disabled):active:focus{box-shadow:0 0 0 .2rem rgba(76,91,106,.5)}.fc .fc-button .fc-icon{font-size:1.5em;vertical-align:middle}.fc .fc-button-group{display:inline-flex;position:relative;vertical-align:middle}.fc .fc-button-group>.fc-button{flex:1 1 auto;position:relative}.fc .fc-button-group>.fc-button.fc-button-active,.fc .fc-button-group>.fc-button:active,.fc .fc-button-group>.fc-button:focus,.fc .fc-button-group>.fc-button:hover{z-index:1}.fc-direction-ltr .fc-button-group>.fc-button:not(:first-child){border-bottom-left-radius:0;border-top-left-radius:0;margin-left:-1px}.fc-direction-ltr .fc-button-group>.fc-button:not(:last-child){border-bottom-right-radius:0;border-top-right-radius:0}.fc-direction-rtl .fc-button-group>.fc-button:not(:first-child){border-bottom-right-radius:0;border-top-right-radius:0;margin-right:-1px}.fc-direction-rtl .fc-button-group>.fc-button:not(:last-child){border-bottom-left-radius:0;border-top-left-radius:0}.fc .fc-toolbar{align-items:center;display:flex;justify-content:space-between}.fc .fc-toolbar.fc-header-toolbar{margin-bottom:1.5em}.fc .fc-toolbar.fc-footer-toolbar{margin-top:1.5em}.fc .fc-toolbar-title{font-size:1.75em;margin:0}.fc-direction-ltr .fc-toolbar>*>:not(:first-child){margin-left:.75em}.fc-direction-rtl .fc-toolbar>*>:not(:first-child){margin-right:.75em}.fc-direction-rtl .fc-toolbar-ltr{flex-direction:row-reverse}.fc .fc-scroller{-webkit-overflow-scrolling:touch;position:relative}.fc .fc-scroller-liquid{height:100%}.fc .fc-scroller-liquid-absolute{bottom:0;left:0;position:absolute;right:0;top:0}.fc .fc-scroller-harness{direction:ltr;overflow:hidden;position:relative}.fc .fc-scroller-harness-liquid{height:100%}.fc-direction-rtl .fc-scroller-harness>.fc-scroller{direction:rtl}.fc-theme-standard .fc-scrollgrid{border:1px solid var(--fc-border-color)}.fc .fc-scrollgrid,.fc .fc-scrollgrid table{table-layout:fixed;width:100%}.fc .fc-scrollgrid table{border-left-style:hidden;border-right-style:hidden;border-top-style:hidden}.fc .fc-scrollgrid{border-bottom-width:0;border-collapse:separate;border-right-width:0}.fc .fc-scrollgrid-liquid{height:100%}.fc .fc-scrollgrid-section,.fc .fc-scrollgrid-section table,.fc .fc-scrollgrid-section>td{height:1px}.fc .fc-scrollgrid-section-liquid>td{height:100%}.fc .fc-scrollgrid-section>*{border-left-width:0;border-top-width:0}.fc .fc-scrollgrid-section-footer>*,.fc .fc-scrollgrid-section-header>*{border-bottom-width:0}.fc .fc-scrollgrid-section-body table,.fc .fc-scrollgrid-section-footer table{border-bottom-style:hidden}.fc .fc-scrollgrid-section-sticky>*{background:var(--fc-page-bg-color);position:sticky;z-index:3}.fc .fc-scrollgrid-section-header.fc-scrollgrid-section-sticky>*{top:0}.fc .fc-scrollgrid-section-footer.fc-scrollgrid-section-sticky>*{bottom:0}.fc .fc-scrollgrid-sticky-shim{height:1px;margin-bottom:-1px}.fc-sticky{position:sticky}.fc .fc-view-harness{flex-grow:1;position:relative}.fc .fc-view-harness-active>.fc-view{bottom:0;left:0;position:absolute;right:0;top:0}.fc .fc-col-header-cell-cushion{display:inline-block;padding:2px 4px}.fc .fc-bg-event,.fc .fc-highlight,.fc .fc-non-business{bottom:0;left:0;position:absolute;right:0;top:0}.fc .fc-non-business{background:var(--fc-non-business-color)}.fc .fc-bg-event{background:var(--fc-bg-event-color);opacity:var(--fc-bg-event-opacity)}.fc .fc-bg-event .fc-event-title{font-size:var(--fc-small-font-size);font-style:italic;margin:.5em}.fc .fc-highlight{background:var(--fc-highlight-color)}.fc .fc-cell-shaded,.fc .fc-day-disabled{background:var(--fc-neutral-bg-color)}a.fc-event,a.fc-event:hover{text-decoration:none}.fc-event.fc-event-draggable,.fc-event[href]{cursor:pointer}.fc-event .fc-event-main{position:relative;z-index:2}.fc-event-dragging:not(.fc-event-selected){opacity:.75}.fc-event-dragging.fc-event-selected{box-shadow:0 2px 7px rgba(0,0,0,.3)}.fc-event .fc-event-resizer{display:none;position:absolute;z-index:4}.fc-event-selected .fc-event-resizer,.fc-event:hover .fc-event-resizer{display:block}.fc-event-selected .fc-event-resizer{background:var(--fc-page-bg-color);border-color:inherit;border-radius:calc(var(--fc-event-resizer-dot-total-width)/2);border-style:solid;border-width:var(--fc-event-resizer-dot-border-width);height:var(--fc-event-resizer-dot-total-width);width:var(--fc-event-resizer-dot-total-width)}.fc-event-selected .fc-event-resizer:before{bottom:-20px;content:\"\";left:-20px;position:absolute;right:-20px;top:-20px}.fc-event-selected,.fc-event:focus{box-shadow:0 2px 5px rgba(0,0,0,.2)}.fc-event-selected:before,.fc-event:focus:before{bottom:0;content:\"\";left:0;position:absolute;right:0;top:0;z-index:3}.fc-event-selected:after,.fc-event:focus:after{background:var(--fc-event-selected-overlay-color);bottom:-1px;content:\"\";left:-1px;position:absolute;right:-1px;top:-1px;z-index:1}.fc-h-event{background-color:var(--fc-event-bg-color);border:1px solid var(--fc-event-border-color);display:block}.fc-h-event .fc-event-main{color:var(--fc-event-text-color)}.fc-h-event .fc-event-main-frame{display:flex}.fc-h-event .fc-event-time{max-width:100%;overflow:hidden}.fc-h-event .fc-event-title-container{flex-grow:1;flex-shrink:1;min-width:0}.fc-h-event .fc-event-title{display:inline-block;left:0;max-width:100%;overflow:hidden;right:0;vertical-align:top}.fc-h-event.fc-event-selected:before{bottom:-10px;top:-10px}.fc-direction-ltr .fc-daygrid-block-event:not(.fc-event-start),.fc-direction-rtl .fc-daygrid-block-event:not(.fc-event-end){border-bottom-left-radius:0;border-left-width:0;border-top-left-radius:0}.fc-direction-ltr .fc-daygrid-block-event:not(.fc-event-end),.fc-direction-rtl .fc-daygrid-block-event:not(.fc-event-start){border-bottom-right-radius:0;border-right-width:0;border-top-right-radius:0}.fc-h-event:not(.fc-event-selected) .fc-event-resizer{bottom:0;top:0;width:var(--fc-event-resizer-thickness)}.fc-direction-ltr .fc-h-event:not(.fc-event-selected) .fc-event-resizer-start,.fc-direction-rtl .fc-h-event:not(.fc-event-selected) .fc-event-resizer-end{cursor:w-resize;left:calc(var(--fc-event-resizer-thickness)*-.5)}.fc-direction-ltr .fc-h-event:not(.fc-event-selected) .fc-event-resizer-end,.fc-direction-rtl .fc-h-event:not(.fc-event-selected) .fc-event-resizer-start{cursor:e-resize;right:calc(var(--fc-event-resizer-thickness)*-.5)}.fc-h-event.fc-event-selected .fc-event-resizer{margin-top:calc(var(--fc-event-resizer-dot-total-width)*-.5);top:50%}.fc-direction-ltr .fc-h-event.fc-event-selected .fc-event-resizer-start,.fc-direction-rtl .fc-h-event.fc-event-selected .fc-event-resizer-end{left:calc(var(--fc-event-resizer-dot-total-width)*-.5)}.fc-direction-ltr .fc-h-event.fc-event-selected .fc-event-resizer-end,.fc-direction-rtl .fc-h-event.fc-event-selected .fc-event-resizer-start{right:calc(var(--fc-event-resizer-dot-total-width)*-.5)}.fc .fc-popover{box-shadow:0 2px 6px rgba(0,0,0,.15);position:absolute;z-index:9999}.fc .fc-popover-header{align-items:center;display:flex;flex-direction:row;justify-content:space-between;padding:3px 4px}.fc .fc-popover-title{margin:0 2px}.fc .fc-popover-close{cursor:pointer;font-size:1.1em;opacity:.65}.fc-theme-standard .fc-popover{background:var(--fc-page-bg-color);border:1px solid var(--fc-border-color)}.fc-theme-standard .fc-popover-header{background:var(--fc-neutral-bg-color)}";
2569injectStyles(css_248z);
2570
2571class DelayedRunner {
2572    constructor(drainedOption) {
2573        this.drainedOption = drainedOption;
2574        this.isRunning = false;
2575        this.isDirty = false;
2576        this.pauseDepths = {};
2577        this.timeoutId = 0;
2578    }
2579    request(delay) {
2580        this.isDirty = true;
2581        if (!this.isPaused()) {
2582            this.clearTimeout();
2583            if (delay == null) {
2584                this.tryDrain();
2585            }
2586            else {
2587                this.timeoutId = setTimeout(// NOT OPTIMAL! TODO: look at debounce
2588                this.tryDrain.bind(this), delay);
2589            }
2590        }
2591    }
2592    pause(scope = '') {
2593        let { pauseDepths } = this;
2594        pauseDepths[scope] = (pauseDepths[scope] || 0) + 1;
2595        this.clearTimeout();
2596    }
2597    resume(scope = '', force) {
2598        let { pauseDepths } = this;
2599        if (scope in pauseDepths) {
2600            if (force) {
2601                delete pauseDepths[scope];
2602            }
2603            else {
2604                pauseDepths[scope] -= 1;
2605                let depth = pauseDepths[scope];
2606                if (depth <= 0) {
2607                    delete pauseDepths[scope];
2608                }
2609            }
2610            this.tryDrain();
2611        }
2612    }
2613    isPaused() {
2614        return Object.keys(this.pauseDepths).length;
2615    }
2616    tryDrain() {
2617        if (!this.isRunning && !this.isPaused()) {
2618            this.isRunning = true;
2619            while (this.isDirty) {
2620                this.isDirty = false;
2621                this.drained(); // might set isDirty to true again
2622            }
2623            this.isRunning = false;
2624        }
2625    }
2626    clear() {
2627        this.clearTimeout();
2628        this.isDirty = false;
2629        this.pauseDepths = {};
2630    }
2631    clearTimeout() {
2632        if (this.timeoutId) {
2633            clearTimeout(this.timeoutId);
2634            this.timeoutId = 0;
2635        }
2636    }
2637    drained() {
2638        if (this.drainedOption) {
2639            this.drainedOption();
2640        }
2641    }
2642}
2643
2644function removeElement(el) {
2645    if (el.parentNode) {
2646        el.parentNode.removeChild(el);
2647    }
2648}
2649// Querying
2650// ----------------------------------------------------------------------------------------------------------------
2651function elementClosest(el, selector) {
2652    if (el.closest) {
2653        return el.closest(selector);
2654        // really bad fallback for IE
2655        // from https://developer.mozilla.org/en-US/docs/Web/API/Element/closest
2656    }
2657    if (!document.documentElement.contains(el)) {
2658        return null;
2659    }
2660    do {
2661        if (elementMatches(el, selector)) {
2662            return el;
2663        }
2664        el = (el.parentElement || el.parentNode);
2665    } while (el !== null && el.nodeType === 1);
2666    return null;
2667}
2668function elementMatches(el, selector) {
2669    let method = el.matches || el.matchesSelector || el.msMatchesSelector;
2670    return method.call(el, selector);
2671}
2672// accepts multiple subject els
2673// returns a real array. good for methods like forEach
2674// TODO: accept the document
2675function findElements(container, selector) {
2676    let containers = container instanceof HTMLElement ? [container] : container;
2677    let allMatches = [];
2678    for (let i = 0; i < containers.length; i += 1) {
2679        let matches = containers[i].querySelectorAll(selector);
2680        for (let j = 0; j < matches.length; j += 1) {
2681            allMatches.push(matches[j]);
2682        }
2683    }
2684    return allMatches;
2685}
2686// accepts multiple subject els
2687// only queries direct child elements // TODO: rename to findDirectChildren!
2688function findDirectChildren(parent, selector) {
2689    let parents = parent instanceof HTMLElement ? [parent] : parent;
2690    let allMatches = [];
2691    for (let i = 0; i < parents.length; i += 1) {
2692        let childNodes = parents[i].children; // only ever elements
2693        for (let j = 0; j < childNodes.length; j += 1) {
2694            let childNode = childNodes[j];
2695            if (!selector || elementMatches(childNode, selector)) {
2696                allMatches.push(childNode);
2697            }
2698        }
2699    }
2700    return allMatches;
2701}
2702// Style
2703// ----------------------------------------------------------------------------------------------------------------
2704const PIXEL_PROP_RE = /(top|left|right|bottom|width|height)$/i;
2705function applyStyle(el, props) {
2706    for (let propName in props) {
2707        applyStyleProp(el, propName, props[propName]);
2708    }
2709}
2710function applyStyleProp(el, name, val) {
2711    if (val == null) {
2712        el.style[name] = '';
2713    }
2714    else if (typeof val === 'number' && PIXEL_PROP_RE.test(name)) {
2715        el.style[name] = `${val}px`;
2716    }
2717    else {
2718        el.style[name] = val;
2719    }
2720}
2721// Event Handling
2722// ----------------------------------------------------------------------------------------------------------------
2723// if intercepting bubbled events at the document/window/body level,
2724// and want to see originating element (the 'target'), use this util instead
2725// of `ev.target` because it goes within web-component boundaries.
2726function getEventTargetViaRoot(ev) {
2727    var _a, _b;
2728    return (_b = (_a = ev.composedPath) === null || _a === void 0 ? void 0 : _a.call(ev)[0]) !== null && _b !== void 0 ? _b : ev.target;
2729}
2730// Unique ID for DOM attribute
2731let guid$1 = 0;
2732function getUniqueDomId() {
2733    guid$1 += 1;
2734    return 'fc-dom-' + guid$1;
2735}
2736
2737// Stops a mouse/touch event from doing it's native browser action
2738function preventDefault(ev) {
2739    ev.preventDefault();
2740}
2741// Event Delegation
2742// ----------------------------------------------------------------------------------------------------------------
2743function buildDelegationHandler(selector, handler) {
2744    return (ev) => {
2745        let matchedChild = elementClosest(ev.target, selector);
2746        if (matchedChild) {
2747            handler.call(matchedChild, ev, matchedChild);
2748        }
2749    };
2750}
2751function listenBySelector(container, eventType, selector, handler) {
2752    let attachedHandler = buildDelegationHandler(selector, handler);
2753    container.addEventListener(eventType, attachedHandler);
2754    return () => {
2755        container.removeEventListener(eventType, attachedHandler);
2756    };
2757}
2758function listenToHoverBySelector(container, selector, onMouseEnter, onMouseLeave) {
2759    let currentMatchedChild;
2760    return listenBySelector(container, 'mouseover', selector, (mouseOverEv, matchedChild) => {
2761        if (matchedChild !== currentMatchedChild) {
2762            currentMatchedChild = matchedChild;
2763            onMouseEnter(mouseOverEv, matchedChild);
2764            let realOnMouseLeave = (mouseLeaveEv) => {
2765                currentMatchedChild = null;
2766                onMouseLeave(mouseLeaveEv, matchedChild);
2767                matchedChild.removeEventListener('mouseleave', realOnMouseLeave);
2768            };
2769            // listen to the next mouseleave, and then unattach
2770            matchedChild.addEventListener('mouseleave', realOnMouseLeave);
2771        }
2772    });
2773}
2774// Animation
2775// ----------------------------------------------------------------------------------------------------------------
2776const transitionEventNames = [
2777    'webkitTransitionEnd',
2778    'otransitionend',
2779    'oTransitionEnd',
2780    'msTransitionEnd',
2781    'transitionend',
2782];
2783// triggered only when the next single subsequent transition finishes
2784function whenTransitionDone(el, callback) {
2785    let realCallback = (ev) => {
2786        callback(ev);
2787        transitionEventNames.forEach((eventName) => {
2788            el.removeEventListener(eventName, realCallback);
2789        });
2790    };
2791    transitionEventNames.forEach((eventName) => {
2792        el.addEventListener(eventName, realCallback); // cross-browser way to determine when the transition finishes
2793    });
2794}
2795// ARIA workarounds
2796// ----------------------------------------------------------------------------------------------------------------
2797function createAriaClickAttrs(handler) {
2798    return Object.assign({ onClick: handler }, createAriaKeyboardAttrs(handler));
2799}
2800function createAriaKeyboardAttrs(handler) {
2801    return {
2802        tabIndex: 0,
2803        onKeyDown(ev) {
2804            if (ev.key === 'Enter' || ev.key === ' ') {
2805                handler(ev);
2806                ev.preventDefault(); // if space, don't scroll down page
2807            }
2808        },
2809    };
2810}
2811
2812let guidNumber = 0;
2813function guid() {
2814    guidNumber += 1;
2815    return String(guidNumber);
2816}
2817/* FullCalendar-specific DOM Utilities
2818----------------------------------------------------------------------------------------------------------------------*/
2819// Make the mouse cursor express that an event is not allowed in the current area
2820function disableCursor() {
2821    document.body.classList.add('fc-not-allowed');
2822}
2823// Returns the mouse cursor to its original look
2824function enableCursor() {
2825    document.body.classList.remove('fc-not-allowed');
2826}
2827/* Selection
2828----------------------------------------------------------------------------------------------------------------------*/
2829function preventSelection(el) {
2830    el.style.userSelect = 'none';
2831    el.style.webkitUserSelect = 'none';
2832    el.addEventListener('selectstart', preventDefault);
2833}
2834function allowSelection(el) {
2835    el.style.userSelect = '';
2836    el.style.webkitUserSelect = '';
2837    el.removeEventListener('selectstart', preventDefault);
2838}
2839/* Context Menu
2840----------------------------------------------------------------------------------------------------------------------*/
2841function preventContextMenu(el) {
2842    el.addEventListener('contextmenu', preventDefault);
2843}
2844function allowContextMenu(el) {
2845    el.removeEventListener('contextmenu', preventDefault);
2846}
2847function parseFieldSpecs(input) {
2848    let specs = [];
2849    let tokens = [];
2850    let i;
2851    let token;
2852    if (typeof input === 'string') {
2853        tokens = input.split(/\s*,\s*/);
2854    }
2855    else if (typeof input === 'function') {
2856        tokens = [input];
2857    }
2858    else if (Array.isArray(input)) {
2859        tokens = input;
2860    }
2861    for (i = 0; i < tokens.length; i += 1) {
2862        token = tokens[i];
2863        if (typeof token === 'string') {
2864            specs.push(token.charAt(0) === '-' ?
2865                { field: token.substring(1), order: -1 } :
2866                { field: token, order: 1 });
2867        }
2868        else if (typeof token === 'function') {
2869            specs.push({ func: token });
2870        }
2871    }
2872    return specs;
2873}
2874function compareByFieldSpecs(obj0, obj1, fieldSpecs) {
2875    let i;
2876    let cmp;
2877    for (i = 0; i < fieldSpecs.length; i += 1) {
2878        cmp = compareByFieldSpec(obj0, obj1, fieldSpecs[i]);
2879        if (cmp) {
2880            return cmp;
2881        }
2882    }
2883    return 0;
2884}
2885function compareByFieldSpec(obj0, obj1, fieldSpec) {
2886    if (fieldSpec.func) {
2887        return fieldSpec.func(obj0, obj1);
2888    }
2889    return flexibleCompare(obj0[fieldSpec.field], obj1[fieldSpec.field])
2890        * (fieldSpec.order || 1);
2891}
2892function flexibleCompare(a, b) {
2893    if (!a && !b) {
2894        return 0;
2895    }
2896    if (b == null) {
2897        return -1;
2898    }
2899    if (a == null) {
2900        return 1;
2901    }
2902    if (typeof a === 'string' || typeof b === 'string') {
2903        return String(a).localeCompare(String(b));
2904    }
2905    return a - b;
2906}
2907/* String Utilities
2908----------------------------------------------------------------------------------------------------------------------*/
2909function padStart(val, len) {
2910    let s = String(val);
2911    return '000'.substr(0, len - s.length) + s;
2912}
2913function formatWithOrdinals(formatter, args, fallbackText) {
2914    if (typeof formatter === 'function') {
2915        return formatter(...args);
2916    }
2917    if (typeof formatter === 'string') { // non-blank string
2918        return args.reduce((str, arg, index) => (str.replace('$' + index, arg || '')), formatter);
2919    }
2920    return fallbackText;
2921}
2922/* Number Utilities
2923----------------------------------------------------------------------------------------------------------------------*/
2924function compareNumbers(a, b) {
2925    return a - b;
2926}
2927function isInt(n) {
2928    return n % 1 === 0;
2929}
2930/* FC-specific DOM dimension stuff
2931----------------------------------------------------------------------------------------------------------------------*/
2932function computeSmallestCellWidth(cellEl) {
2933    let allWidthEl = cellEl.querySelector('.fc-scrollgrid-shrink-frame');
2934    let contentWidthEl = cellEl.querySelector('.fc-scrollgrid-shrink-cushion');
2935    if (!allWidthEl) {
2936        throw new Error('needs fc-scrollgrid-shrink-frame className'); // TODO: use const
2937    }
2938    if (!contentWidthEl) {
2939        throw new Error('needs fc-scrollgrid-shrink-cushion className');
2940    }
2941    return cellEl.getBoundingClientRect().width - allWidthEl.getBoundingClientRect().width + // the cell padding+border
2942        contentWidthEl.getBoundingClientRect().width;
2943}
2944
2945const INTERNAL_UNITS = ['years', 'months', 'days', 'milliseconds'];
2946const PARSE_RE = /^(-?)(?:(\d+)\.)?(\d+):(\d\d)(?::(\d\d)(?:\.(\d\d\d))?)?/;
2947// Parsing and Creation
2948function createDuration(input, unit) {
2949    if (typeof input === 'string') {
2950        return parseString(input);
2951    }
2952    if (typeof input === 'object' && input) { // non-null object
2953        return parseObject(input);
2954    }
2955    if (typeof input === 'number') {
2956        return parseObject({ [unit || 'milliseconds']: input });
2957    }
2958    return null;
2959}
2960function parseString(s) {
2961    let m = PARSE_RE.exec(s);
2962    if (m) {
2963        let sign = m[1] ? -1 : 1;
2964        return {
2965            years: 0,
2966            months: 0,
2967            days: sign * (m[2] ? parseInt(m[2], 10) : 0),
2968            milliseconds: sign * ((m[3] ? parseInt(m[3], 10) : 0) * 60 * 60 * 1000 + // hours
2969                (m[4] ? parseInt(m[4], 10) : 0) * 60 * 1000 + // minutes
2970                (m[5] ? parseInt(m[5], 10) : 0) * 1000 + // seconds
2971                (m[6] ? parseInt(m[6], 10) : 0) // ms
2972            ),
2973        };
2974    }
2975    return null;
2976}
2977function parseObject(obj) {
2978    let duration = {
2979        years: obj.years || obj.year || 0,
2980        months: obj.months || obj.month || 0,
2981        days: obj.days || obj.day || 0,
2982        milliseconds: (obj.hours || obj.hour || 0) * 60 * 60 * 1000 + // hours
2983            (obj.minutes || obj.minute || 0) * 60 * 1000 + // minutes
2984            (obj.seconds || obj.second || 0) * 1000 + // seconds
2985            (obj.milliseconds || obj.millisecond || obj.ms || 0), // ms
2986    };
2987    let weeks = obj.weeks || obj.week;
2988    if (weeks) {
2989        duration.days += weeks * 7;
2990        duration.specifiedWeeks = true;
2991    }
2992    return duration;
2993}
2994// Equality
2995function durationsEqual(d0, d1) {
2996    return d0.years === d1.years &&
2997        d0.months === d1.months &&
2998        d0.days === d1.days &&
2999        d0.milliseconds === d1.milliseconds;
3000}
3001function asCleanDays(dur) {
3002    if (!dur.years && !dur.months && !dur.milliseconds) {
3003        return dur.days;
3004    }
3005    return 0;
3006}
3007// Simple Math
3008function addDurations(d0, d1) {
3009    return {
3010        years: d0.years + d1.years,
3011        months: d0.months + d1.months,
3012        days: d0.days + d1.days,
3013        milliseconds: d0.milliseconds + d1.milliseconds,
3014    };
3015}
3016function subtractDurations(d1, d0) {
3017    return {
3018        years: d1.years - d0.years,
3019        months: d1.months - d0.months,
3020        days: d1.days - d0.days,
3021        milliseconds: d1.milliseconds - d0.milliseconds,
3022    };
3023}
3024function multiplyDuration(d, n) {
3025    return {
3026        years: d.years * n,
3027        months: d.months * n,
3028        days: d.days * n,
3029        milliseconds: d.milliseconds * n,
3030    };
3031}
3032// Conversions
3033// "Rough" because they are based on average-case Gregorian months/years
3034function asRoughYears(dur) {
3035    return asRoughDays(dur) / 365;
3036}
3037function asRoughMonths(dur) {
3038    return asRoughDays(dur) / 30;
3039}
3040function asRoughDays(dur) {
3041    return asRoughMs(dur) / 864e5;
3042}
3043function asRoughMinutes(dur) {
3044    return asRoughMs(dur) / (1000 * 60);
3045}
3046function asRoughSeconds(dur) {
3047    return asRoughMs(dur) / 1000;
3048}
3049function asRoughMs(dur) {
3050    return dur.years * (365 * 864e5) +
3051        dur.months * (30 * 864e5) +
3052        dur.days * 864e5 +
3053        dur.milliseconds;
3054}
3055// Advanced Math
3056function wholeDivideDurations(numerator, denominator) {
3057    let res = null;
3058    for (let i = 0; i < INTERNAL_UNITS.length; i += 1) {
3059        let unit = INTERNAL_UNITS[i];
3060        if (denominator[unit]) {
3061            let localRes = numerator[unit] / denominator[unit];
3062            if (!isInt(localRes) || (res !== null && res !== localRes)) {
3063                return null;
3064            }
3065            res = localRes;
3066        }
3067        else if (numerator[unit]) {
3068            // needs to divide by something but can't!
3069            return null;
3070        }
3071    }
3072    return res;
3073}
3074function greatestDurationDenominator(dur) {
3075    let ms = dur.milliseconds;
3076    if (ms) {
3077        if (ms % 1000 !== 0) {
3078            return { unit: 'millisecond', value: ms };
3079        }
3080        if (ms % (1000 * 60) !== 0) {
3081            return { unit: 'second', value: ms / 1000 };
3082        }
3083        if (ms % (1000 * 60 * 60) !== 0) {
3084            return { unit: 'minute', value: ms / (1000 * 60) };
3085        }
3086        if (ms) {
3087            return { unit: 'hour', value: ms / (1000 * 60 * 60) };
3088        }
3089    }
3090    if (dur.days) {
3091        if (dur.specifiedWeeks && dur.days % 7 === 0) {
3092            return { unit: 'week', value: dur.days / 7 };
3093        }
3094        return { unit: 'day', value: dur.days };
3095    }
3096    if (dur.months) {
3097        return { unit: 'month', value: dur.months };
3098    }
3099    if (dur.years) {
3100        return { unit: 'year', value: dur.years };
3101    }
3102    return { unit: 'millisecond', value: 0 };
3103}
3104
3105// TODO: new util arrayify?
3106function removeExact(array, exactVal) {
3107    let removeCnt = 0;
3108    let i = 0;
3109    while (i < array.length) {
3110        if (array[i] === exactVal) {
3111            array.splice(i, 1);
3112            removeCnt += 1;
3113        }
3114        else {
3115            i += 1;
3116        }
3117    }
3118    return removeCnt;
3119}
3120function isArraysEqual(a0, a1, equalityFunc) {
3121    if (a0 === a1) {
3122        return true;
3123    }
3124    let len = a0.length;
3125    let i;
3126    if (len !== a1.length) { // not array? or not same length?
3127        return false;
3128    }
3129    for (i = 0; i < len; i += 1) {
3130        if (!(equalityFunc ? equalityFunc(a0[i], a1[i]) : a0[i] === a1[i])) {
3131            return false;
3132        }
3133    }
3134    return true;
3135}
3136
3137const DAY_IDS = ['sun', 'mon', 'tue', 'wed', 'thu', 'fri', 'sat'];
3138// Adding
3139function addWeeks(m, n) {
3140    let a = dateToUtcArray(m);
3141    a[2] += n * 7;
3142    return arrayToUtcDate(a);
3143}
3144function addDays(m, n) {
3145    let a = dateToUtcArray(m);
3146    a[2] += n;
3147    return arrayToUtcDate(a);
3148}
3149function addMs(m, n) {
3150    let a = dateToUtcArray(m);
3151    a[6] += n;
3152    return arrayToUtcDate(a);
3153}
3154// Diffing (all return floats)
3155// TODO: why not use ranges?
3156function diffWeeks(m0, m1) {
3157    return diffDays(m0, m1) / 7;
3158}
3159function diffDays(m0, m1) {
3160    return (m1.valueOf() - m0.valueOf()) / (1000 * 60 * 60 * 24);
3161}
3162function diffHours(m0, m1) {
3163    return (m1.valueOf() - m0.valueOf()) / (1000 * 60 * 60);
3164}
3165function diffMinutes(m0, m1) {
3166    return (m1.valueOf() - m0.valueOf()) / (1000 * 60);
3167}
3168function diffSeconds(m0, m1) {
3169    return (m1.valueOf() - m0.valueOf()) / 1000;
3170}
3171function diffDayAndTime(m0, m1) {
3172    let m0day = startOfDay(m0);
3173    let m1day = startOfDay(m1);
3174    return {
3175        years: 0,
3176        months: 0,
3177        days: Math.round(diffDays(m0day, m1day)),
3178        milliseconds: (m1.valueOf() - m1day.valueOf()) - (m0.valueOf() - m0day.valueOf()),
3179    };
3180}
3181// Diffing Whole Units
3182function diffWholeWeeks(m0, m1) {
3183    let d = diffWholeDays(m0, m1);
3184    if (d !== null && d % 7 === 0) {
3185        return d / 7;
3186    }
3187    return null;
3188}
3189function diffWholeDays(m0, m1) {
3190    if (timeAsMs(m0) === timeAsMs(m1)) {
3191        return Math.round(diffDays(m0, m1));
3192    }
3193    return null;
3194}
3195// Start-Of
3196function startOfDay(m) {
3197    return arrayToUtcDate([
3198        m.getUTCFullYear(),
3199        m.getUTCMonth(),
3200        m.getUTCDate(),
3201    ]);
3202}
3203function startOfHour(m) {
3204    return arrayToUtcDate([
3205        m.getUTCFullYear(),
3206        m.getUTCMonth(),
3207        m.getUTCDate(),
3208        m.getUTCHours(),
3209    ]);
3210}
3211function startOfMinute(m) {
3212    return arrayToUtcDate([
3213        m.getUTCFullYear(),
3214        m.getUTCMonth(),
3215        m.getUTCDate(),
3216        m.getUTCHours(),
3217        m.getUTCMinutes(),
3218    ]);
3219}
3220function startOfSecond(m) {
3221    return arrayToUtcDate([
3222        m.getUTCFullYear(),
3223        m.getUTCMonth(),
3224        m.getUTCDate(),
3225        m.getUTCHours(),
3226        m.getUTCMinutes(),
3227        m.getUTCSeconds(),
3228    ]);
3229}
3230// Week Computation
3231function weekOfYear(marker, dow, doy) {
3232    let y = marker.getUTCFullYear();
3233    let w = weekOfGivenYear(marker, y, dow, doy);
3234    if (w < 1) {
3235        return weekOfGivenYear(marker, y - 1, dow, doy);
3236    }
3237    let nextW = weekOfGivenYear(marker, y + 1, dow, doy);
3238    if (nextW >= 1) {
3239        return Math.min(w, nextW);
3240    }
3241    return w;
3242}
3243function weekOfGivenYear(marker, year, dow, doy) {
3244    let firstWeekStart = arrayToUtcDate([year, 0, 1 + firstWeekOffset(year, dow, doy)]);
3245    let dayStart = startOfDay(marker);
3246    let days = Math.round(diffDays(firstWeekStart, dayStart));
3247    return Math.floor(days / 7) + 1; // zero-indexed
3248}
3249// start-of-first-week - start-of-year
3250function firstWeekOffset(year, dow, doy) {
3251    // first-week day -- which january is always in the first week (4 for iso, 1 for other)
3252    let fwd = 7 + dow - doy;
3253    // first-week day local weekday -- which local weekday is fwd
3254    let fwdlw = (7 + arrayToUtcDate([year, 0, fwd]).getUTCDay() - dow) % 7;
3255    return -fwdlw + fwd - 1;
3256}
3257// Array Conversion
3258function dateToLocalArray(date) {
3259    return [
3260        date.getFullYear(),
3261        date.getMonth(),
3262        date.getDate(),
3263        date.getHours(),
3264        date.getMinutes(),
3265        date.getSeconds(),
3266        date.getMilliseconds(),
3267    ];
3268}
3269function arrayToLocalDate(a) {
3270    return new Date(a[0], a[1] || 0, a[2] == null ? 1 : a[2], // day of month
3271    a[3] || 0, a[4] || 0, a[5] || 0);
3272}
3273function dateToUtcArray(date) {
3274    return [
3275        date.getUTCFullYear(),
3276        date.getUTCMonth(),
3277        date.getUTCDate(),
3278        date.getUTCHours(),
3279        date.getUTCMinutes(),
3280        date.getUTCSeconds(),
3281        date.getUTCMilliseconds(),
3282    ];
3283}
3284function arrayToUtcDate(a) {
3285    // according to web standards (and Safari), a month index is required.
3286    // massage if only given a year.
3287    if (a.length === 1) {
3288        a = a.concat([0]);
3289    }
3290    return new Date(Date.UTC(...a));
3291}
3292// Other Utils
3293function isValidDate(m) {
3294    return !isNaN(m.valueOf());
3295}
3296function timeAsMs(m) {
3297    return m.getUTCHours() * 1000 * 60 * 60 +
3298        m.getUTCMinutes() * 1000 * 60 +
3299        m.getUTCSeconds() * 1000 +
3300        m.getUTCMilliseconds();
3301}
3302
3303// timeZoneOffset is in minutes
3304function buildIsoString(marker, timeZoneOffset, stripZeroTime = false) {
3305    let s = marker.toISOString();
3306    s = s.replace('.000', '');
3307    if (stripZeroTime) {
3308        s = s.replace('T00:00:00Z', '');
3309    }
3310    if (s.length > 10) { // time part wasn't stripped, can add timezone info
3311        if (timeZoneOffset == null) {
3312            s = s.replace('Z', '');
3313        }
3314        else if (timeZoneOffset !== 0) {
3315            s = s.replace('Z', formatTimeZoneOffset(timeZoneOffset, true));
3316        }
3317        // otherwise, its UTC-0 and we want to keep the Z
3318    }
3319    return s;
3320}
3321// formats the date, but with no time part
3322// TODO: somehow merge with buildIsoString and stripZeroTime
3323// TODO: rename. omit "string"
3324function formatDayString(marker) {
3325    return marker.toISOString().replace(/T.*$/, '');
3326}
3327function formatIsoMonthStr(marker) {
3328    return marker.toISOString().match(/^\d{4}-\d{2}/)[0];
3329}
3330// TODO: use Date::toISOString and use everything after the T?
3331function formatIsoTimeString(marker) {
3332    return padStart(marker.getUTCHours(), 2) + ':' +
3333        padStart(marker.getUTCMinutes(), 2) + ':' +
3334        padStart(marker.getUTCSeconds(), 2);
3335}
3336function formatTimeZoneOffset(minutes, doIso = false) {
3337    let sign = minutes < 0 ? '-' : '+';
3338    let abs = Math.abs(minutes);
3339    let hours = Math.floor(abs / 60);
3340    let mins = Math.round(abs % 60);
3341    if (doIso) {
3342        return `${sign + padStart(hours, 2)}:${padStart(mins, 2)}`;
3343    }
3344    return `GMT${sign}${hours}${mins ? `:${padStart(mins, 2)}` : ''}`;
3345}
3346
3347function memoize(workerFunc, resEquality, teardownFunc) {
3348    let currentArgs;
3349    let currentRes;
3350    return function (...newArgs) {
3351        if (!currentArgs) {
3352            currentRes = workerFunc.apply(this, newArgs);
3353        }
3354        else if (!isArraysEqual(currentArgs, newArgs)) {
3355            if (teardownFunc) {
3356                teardownFunc(currentRes);
3357            }
3358            let res = workerFunc.apply(this, newArgs);
3359            if (!resEquality || !resEquality(res, currentRes)) {
3360                currentRes = res;
3361            }
3362        }
3363        currentArgs = newArgs;
3364        return currentRes;
3365    };
3366}
3367function memoizeObjArg(workerFunc, resEquality, teardownFunc) {
3368    let currentArg;
3369    let currentRes;
3370    return (newArg) => {
3371        if (!currentArg) {
3372            currentRes = workerFunc.call(this, newArg);
3373        }
3374        else if (!isPropsEqual(currentArg, newArg)) {
3375            if (teardownFunc) {
3376                teardownFunc(currentRes);
3377            }
3378            let res = workerFunc.call(this, newArg);
3379            if (!resEquality || !resEquality(res, currentRes)) {
3380                currentRes = res;
3381            }
3382        }
3383        currentArg = newArg;
3384        return currentRes;
3385    };
3386}
3387function memoizeArraylike(// used at all?
3388workerFunc, resEquality, teardownFunc) {
3389    let currentArgSets = [];
3390    let currentResults = [];
3391    return (newArgSets) => {
3392        let currentLen = currentArgSets.length;
3393        let newLen = newArgSets.length;
3394        let i = 0;
3395        for (; i < currentLen; i += 1) {
3396            if (!newArgSets[i]) { // one of the old sets no longer exists
3397                if (teardownFunc) {
3398                    teardownFunc(currentResults[i]);
3399                }
3400            }
3401            else if (!isArraysEqual(currentArgSets[i], newArgSets[i])) {
3402                if (teardownFunc) {
3403                    teardownFunc(currentResults[i]);
3404                }
3405                let res = workerFunc.apply(this, newArgSets[i]);
3406                if (!resEquality || !resEquality(res, currentResults[i])) {
3407                    currentResults[i] = res;
3408                }
3409            }
3410        }
3411        for (; i < newLen; i += 1) {
3412            currentResults[i] = workerFunc.apply(this, newArgSets[i]);
3413        }
3414        currentArgSets = newArgSets;
3415        currentResults.splice(newLen); // remove excess
3416        return currentResults;
3417    };
3418}
3419function memoizeHashlike(workerFunc, resEquality, teardownFunc) {
3420    let currentArgHash = {};
3421    let currentResHash = {};
3422    return (newArgHash) => {
3423        let newResHash = {};
3424        for (let key in newArgHash) {
3425            if (!currentResHash[key]) {
3426                newResHash[key] = workerFunc.apply(this, newArgHash[key]);
3427            }
3428            else if (!isArraysEqual(currentArgHash[key], newArgHash[key])) {
3429                if (teardownFunc) {
3430                    teardownFunc(currentResHash[key]);
3431                }
3432                let res = workerFunc.apply(this, newArgHash[key]);
3433                newResHash[key] = (resEquality && resEquality(res, currentResHash[key]))
3434                    ? currentResHash[key]
3435                    : res;
3436            }
3437            else {
3438                newResHash[key] = currentResHash[key];
3439            }
3440        }
3441        currentArgHash = newArgHash;
3442        currentResHash = newResHash;
3443        return newResHash;
3444    };
3445}
3446
3447const EXTENDED_SETTINGS_AND_SEVERITIES = {
3448    week: 3,
3449    separator: 0,
3450    omitZeroMinute: 0,
3451    meridiem: 0,
3452    omitCommas: 0,
3453};
3454const STANDARD_DATE_PROP_SEVERITIES = {
3455    timeZoneName: 7,
3456    era: 6,
3457    year: 5,
3458    month: 4,
3459    day: 2,
3460    weekday: 2,
3461    hour: 1,
3462    minute: 1,
3463    second: 1,
3464};
3465const MERIDIEM_RE = /\s*([ap])\.?m\.?/i; // eats up leading spaces too
3466const COMMA_RE = /,/g; // we need re for globalness
3467const MULTI_SPACE_RE = /\s+/g;
3468const LTR_RE = /\u200e/g; // control character
3469const UTC_RE = /UTC|GMT/;
3470class NativeFormatter {
3471    constructor(formatSettings) {
3472        let standardDateProps = {};
3473        let extendedSettings = {};
3474        let severity = 0;
3475        for (let name in formatSettings) {
3476            if (name in EXTENDED_SETTINGS_AND_SEVERITIES) {
3477                extendedSettings[name] = formatSettings[name];
3478                severity = Math.max(EXTENDED_SETTINGS_AND_SEVERITIES[name], severity);
3479            }
3480            else {
3481                standardDateProps[name] = formatSettings[name];
3482                if (name in STANDARD_DATE_PROP_SEVERITIES) { // TODO: what about hour12? no severity
3483                    severity = Math.max(STANDARD_DATE_PROP_SEVERITIES[name], severity);
3484                }
3485            }
3486        }
3487        this.standardDateProps = standardDateProps;
3488        this.extendedSettings = extendedSettings;
3489        this.severity = severity;
3490        this.buildFormattingFunc = memoize(buildFormattingFunc);
3491    }
3492    format(date, context) {
3493        return this.buildFormattingFunc(this.standardDateProps, this.extendedSettings, context)(date);
3494    }
3495    formatRange(start, end, context, betterDefaultSeparator) {
3496        let { standardDateProps, extendedSettings } = this;
3497        let diffSeverity = computeMarkerDiffSeverity(start.marker, end.marker, context.calendarSystem);
3498        if (!diffSeverity) {
3499            return this.format(start, context);
3500        }
3501        let biggestUnitForPartial = diffSeverity;
3502        if (biggestUnitForPartial > 1 && // the two dates are different in a way that's larger scale than time
3503            (standardDateProps.year === 'numeric' || standardDateProps.year === '2-digit') &&
3504            (standardDateProps.month === 'numeric' || standardDateProps.month === '2-digit') &&
3505            (standardDateProps.day === 'numeric' || standardDateProps.day === '2-digit')) {
3506            biggestUnitForPartial = 1; // make it look like the dates are only different in terms of time
3507        }
3508        let full0 = this.format(start, context);
3509        let full1 = this.format(end, context);
3510        if (full0 === full1) {
3511            return full0;
3512        }
3513        let partialDateProps = computePartialFormattingOptions(standardDateProps, biggestUnitForPartial);
3514        let partialFormattingFunc = buildFormattingFunc(partialDateProps, extendedSettings, context);
3515        let partial0 = partialFormattingFunc(start);
3516        let partial1 = partialFormattingFunc(end);
3517        let insertion = findCommonInsertion(full0, partial0, full1, partial1);
3518        let separator = extendedSettings.separator || betterDefaultSeparator || context.defaultSeparator || '';
3519        if (insertion) {
3520            return insertion.before + partial0 + separator + partial1 + insertion.after;
3521        }
3522        return full0 + separator + full1;
3523    }
3524    getLargestUnit() {
3525        switch (this.severity) {
3526            case 7:
3527            case 6:
3528            case 5:
3529                return 'year';
3530            case 4:
3531                return 'month';
3532            case 3:
3533                return 'week';
3534            case 2:
3535                return 'day';
3536            default:
3537                return 'time'; // really?
3538        }
3539    }
3540}
3541function buildFormattingFunc(standardDateProps, extendedSettings, context) {
3542    let standardDatePropCnt = Object.keys(standardDateProps).length;
3543    if (standardDatePropCnt === 1 && standardDateProps.timeZoneName === 'short') {
3544        return (date) => (formatTimeZoneOffset(date.timeZoneOffset));
3545    }
3546    if (standardDatePropCnt === 0 && extendedSettings.week) {
3547        return (date) => (formatWeekNumber(context.computeWeekNumber(date.marker), context.weekText, context.weekTextLong, context.locale, extendedSettings.week));
3548    }
3549    return buildNativeFormattingFunc(standardDateProps, extendedSettings, context);
3550}
3551function buildNativeFormattingFunc(standardDateProps, extendedSettings, context) {
3552    standardDateProps = Object.assign({}, standardDateProps); // copy
3553    extendedSettings = Object.assign({}, extendedSettings); // copy
3554    sanitizeSettings(standardDateProps, extendedSettings);
3555    standardDateProps.timeZone = 'UTC'; // we leverage the only guaranteed timeZone for our UTC markers
3556    let normalFormat = new Intl.DateTimeFormat(context.locale.codes, standardDateProps);
3557    let zeroFormat; // needed?
3558    if (extendedSettings.omitZeroMinute) {
3559        let zeroProps = Object.assign({}, standardDateProps);
3560        delete zeroProps.minute; // seconds and ms were already considered in sanitizeSettings
3561        zeroFormat = new Intl.DateTimeFormat(context.locale.codes, zeroProps);
3562    }
3563    return (date) => {
3564        let { marker } = date;
3565        let format;
3566        if (zeroFormat && !marker.getUTCMinutes()) {
3567            format = zeroFormat;
3568        }
3569        else {
3570            format = normalFormat;
3571        }
3572        let s = format.format(marker);
3573        return postProcess(s, date, standardDateProps, extendedSettings, context);
3574    };
3575}
3576function sanitizeSettings(standardDateProps, extendedSettings) {
3577    // deal with a browser inconsistency where formatting the timezone
3578    // requires that the hour/minute be present.
3579    if (standardDateProps.timeZoneName) {
3580        if (!standardDateProps.hour) {
3581            standardDateProps.hour = '2-digit';
3582        }
3583        if (!standardDateProps.minute) {
3584            standardDateProps.minute = '2-digit';
3585        }
3586    }
3587    // only support short timezone names
3588    if (standardDateProps.timeZoneName === 'long') {
3589        standardDateProps.timeZoneName = 'short';
3590    }
3591    // if requesting to display seconds, MUST display minutes
3592    if (extendedSettings.omitZeroMinute && (standardDateProps.second || standardDateProps.millisecond)) {
3593        delete extendedSettings.omitZeroMinute;
3594    }
3595}
3596function postProcess(s, date, standardDateProps, extendedSettings, context) {
3597    s = s.replace(LTR_RE, ''); // remove left-to-right control chars. do first. good for other regexes
3598    if (standardDateProps.timeZoneName === 'short') {
3599        s = injectTzoStr(s, (context.timeZone === 'UTC' || date.timeZoneOffset == null) ?
3600            'UTC' : // important to normalize for IE, which does "GMT"
3601            formatTimeZoneOffset(date.timeZoneOffset));
3602    }
3603    if (extendedSettings.omitCommas) {
3604        s = s.replace(COMMA_RE, '').trim();
3605    }
3606    if (extendedSettings.omitZeroMinute) {
3607        s = s.replace(':00', ''); // zeroFormat doesn't always achieve this
3608    }
3609    // ^ do anything that might create adjacent spaces before this point,
3610    // because MERIDIEM_RE likes to eat up loading spaces
3611    if (extendedSettings.meridiem === false) {
3612        s = s.replace(MERIDIEM_RE, '').trim();
3613    }
3614    else if (extendedSettings.meridiem === 'narrow') { // a/p
3615        s = s.replace(MERIDIEM_RE, (m0, m1) => m1.toLocaleLowerCase());
3616    }
3617    else if (extendedSettings.meridiem === 'short') { // am/pm
3618        s = s.replace(MERIDIEM_RE, (m0, m1) => `${m1.toLocaleLowerCase()}m`);
3619    }
3620    else if (extendedSettings.meridiem === 'lowercase') { // other meridiem transformers already converted to lowercase
3621        s = s.replace(MERIDIEM_RE, (m0) => m0.toLocaleLowerCase());
3622    }
3623    s = s.replace(MULTI_SPACE_RE, ' ');
3624    s = s.trim();
3625    return s;
3626}
3627function injectTzoStr(s, tzoStr) {
3628    let replaced = false;
3629    s = s.replace(UTC_RE, () => {
3630        replaced = true;
3631        return tzoStr;
3632    });
3633    // IE11 doesn't include UTC/GMT in the original string, so append to end
3634    if (!replaced) {
3635        s += ` ${tzoStr}`;
3636    }
3637    return s;
3638}
3639function formatWeekNumber(num, weekText, weekTextLong, locale, display) {
3640    let parts = [];
3641    if (display === 'long') {
3642        parts.push(weekTextLong);
3643    }
3644    else if (display === 'short' || display === 'narrow') {
3645        parts.push(weekText);
3646    }
3647    if (display === 'long' || display === 'short') {
3648        parts.push(' ');
3649    }
3650    parts.push(locale.simpleNumberFormat.format(num));
3651    if (locale.options.direction === 'rtl') { // TODO: use control characters instead?
3652        parts.reverse();
3653    }
3654    return parts.join('');
3655}
3656// Range Formatting Utils
3657// 0 = exactly the same
3658// 1 = different by time
3659// and bigger
3660function computeMarkerDiffSeverity(d0, d1, ca) {
3661    if (ca.getMarkerYear(d0) !== ca.getMarkerYear(d1)) {
3662        return 5;
3663    }
3664    if (ca.getMarkerMonth(d0) !== ca.getMarkerMonth(d1)) {
3665        return 4;
3666    }
3667    if (ca.getMarkerDay(d0) !== ca.getMarkerDay(d1)) {
3668        return 2;
3669    }
3670    if (timeAsMs(d0) !== timeAsMs(d1)) {
3671        return 1;
3672    }
3673    return 0;
3674}
3675function computePartialFormattingOptions(options, biggestUnit) {
3676    let partialOptions = {};
3677    for (let name in options) {
3678        if (!(name in STANDARD_DATE_PROP_SEVERITIES) || // not a date part prop (like timeZone)
3679            STANDARD_DATE_PROP_SEVERITIES[name] <= biggestUnit) {
3680            partialOptions[name] = options[name];
3681        }
3682    }
3683    return partialOptions;
3684}
3685function findCommonInsertion(full0, partial0, full1, partial1) {
3686    let i0 = 0;
3687    while (i0 < full0.length) {
3688        let found0 = full0.indexOf(partial0, i0);
3689        if (found0 === -1) {
3690            break;
3691        }
3692        let before0 = full0.substr(0, found0);
3693        i0 = found0 + partial0.length;
3694        let after0 = full0.substr(i0);
3695        let i1 = 0;
3696        while (i1 < full1.length) {
3697            let found1 = full1.indexOf(partial1, i1);
3698            if (found1 === -1) {
3699                break;
3700            }
3701            let before1 = full1.substr(0, found1);
3702            i1 = found1 + partial1.length;
3703            let after1 = full1.substr(i1);
3704            if (before0 === before1 && after0 === after1) {
3705                return {
3706                    before: before0,
3707                    after: after0,
3708                };
3709            }
3710        }
3711    }
3712    return null;
3713}
3714
3715function expandZonedMarker(dateInfo, calendarSystem) {
3716    let a = calendarSystem.markerToArray(dateInfo.marker);
3717    return {
3718        marker: dateInfo.marker,
3719        timeZoneOffset: dateInfo.timeZoneOffset,
3720        array: a,
3721        year: a[0],
3722        month: a[1],
3723        day: a[2],
3724        hour: a[3],
3725        minute: a[4],
3726        second: a[5],
3727        millisecond: a[6],
3728    };
3729}
3730
3731function createVerboseFormattingArg(start, end, context, betterDefaultSeparator) {
3732    let startInfo = expandZonedMarker(start, context.calendarSystem);
3733    let endInfo = end ? expandZonedMarker(end, context.calendarSystem) : null;
3734    return {
3735        date: startInfo,
3736        start: startInfo,
3737        end: endInfo,
3738        timeZone: context.timeZone,
3739        localeCodes: context.locale.codes,
3740        defaultSeparator: betterDefaultSeparator || context.defaultSeparator,
3741    };
3742}
3743
3744/*
3745TODO: fix the terminology of "formatter" vs "formatting func"
3746*/
3747/*
3748At the time of instantiation, this object does not know which cmd-formatting system it will use.
3749It receives this at the time of formatting, as a setting.
3750*/
3751class CmdFormatter {
3752    constructor(cmdStr) {
3753        this.cmdStr = cmdStr;
3754    }
3755    format(date, context, betterDefaultSeparator) {
3756        return context.cmdFormatter(this.cmdStr, createVerboseFormattingArg(date, null, context, betterDefaultSeparator));
3757    }
3758    formatRange(start, end, context, betterDefaultSeparator) {
3759        return context.cmdFormatter(this.cmdStr, createVerboseFormattingArg(start, end, context, betterDefaultSeparator));
3760    }
3761}
3762
3763class FuncFormatter {
3764    constructor(func) {
3765        this.func = func;
3766    }
3767    format(date, context, betterDefaultSeparator) {
3768        return this.func(createVerboseFormattingArg(date, null, context, betterDefaultSeparator));
3769    }
3770    formatRange(start, end, context, betterDefaultSeparator) {
3771        return this.func(createVerboseFormattingArg(start, end, context, betterDefaultSeparator));
3772    }
3773}
3774
3775function createFormatter(input) {
3776    if (typeof input === 'object' && input) { // non-null object
3777        return new NativeFormatter(input);
3778    }
3779    if (typeof input === 'string') {
3780        return new CmdFormatter(input);
3781    }
3782    if (typeof input === 'function') {
3783        return new FuncFormatter(input);
3784    }
3785    return null;
3786}
3787
3788// base options
3789// ------------
3790const BASE_OPTION_REFINERS = {
3791    navLinkDayClick: identity,
3792    navLinkWeekClick: identity,
3793    duration: createDuration,
3794    bootstrapFontAwesome: identity,
3795    buttonIcons: identity,
3796    customButtons: identity,
3797    defaultAllDayEventDuration: createDuration,
3798    defaultTimedEventDuration: createDuration,
3799    nextDayThreshold: createDuration,
3800    scrollTime: createDuration,
3801    scrollTimeReset: Boolean,
3802    slotMinTime: createDuration,
3803    slotMaxTime: createDuration,
3804    dayPopoverFormat: createFormatter,
3805    slotDuration: createDuration,
3806    snapDuration: createDuration,
3807    headerToolbar: identity,
3808    footerToolbar: identity,
3809    defaultRangeSeparator: String,
3810    titleRangeSeparator: String,
3811    forceEventDuration: Boolean,
3812    dayHeaders: Boolean,
3813    dayHeaderFormat: createFormatter,
3814    dayHeaderClassNames: identity,
3815    dayHeaderContent: identity,
3816    dayHeaderDidMount: identity,
3817    dayHeaderWillUnmount: identity,
3818    dayCellClassNames: identity,
3819    dayCellContent: identity,
3820    dayCellDidMount: identity,
3821    dayCellWillUnmount: identity,
3822    initialView: String,
3823    aspectRatio: Number,
3824    weekends: Boolean,
3825    weekNumberCalculation: identity,
3826    weekNumbers: Boolean,
3827    weekNumberClassNames: identity,
3828    weekNumberContent: identity,
3829    weekNumberDidMount: identity,
3830    weekNumberWillUnmount: identity,
3831    editable: Boolean,
3832    viewClassNames: identity,
3833    viewDidMount: identity,
3834    viewWillUnmount: identity,
3835    nowIndicator: Boolean,
3836    nowIndicatorClassNames: identity,
3837    nowIndicatorContent: identity,
3838    nowIndicatorDidMount: identity,
3839    nowIndicatorWillUnmount: identity,
3840    showNonCurrentDates: Boolean,
3841    lazyFetching: Boolean,
3842    startParam: String,
3843    endParam: String,
3844    timeZoneParam: String,
3845    timeZone: String,
3846    locales: identity,
3847    locale: identity,
3848    themeSystem: String,
3849    dragRevertDuration: Number,
3850    dragScroll: Boolean,
3851    allDayMaintainDuration: Boolean,
3852    unselectAuto: Boolean,
3853    dropAccept: identity,
3854    eventOrder: parseFieldSpecs,
3855    eventOrderStrict: Boolean,
3856    handleWindowResize: Boolean,
3857    windowResizeDelay: Number,
3858    longPressDelay: Number,
3859    eventDragMinDistance: Number,
3860    expandRows: Boolean,
3861    height: identity,
3862    contentHeight: identity,
3863    direction: String,
3864    weekNumberFormat: createFormatter,
3865    eventResizableFromStart: Boolean,
3866    displayEventTime: Boolean,
3867    displayEventEnd: Boolean,
3868    weekText: String,
3869    weekTextLong: String,
3870    progressiveEventRendering: Boolean,
3871    businessHours: identity,
3872    initialDate: identity,
3873    now: identity,
3874    eventDataTransform: identity,
3875    stickyHeaderDates: identity,
3876    stickyFooterScrollbar: identity,
3877    viewHeight: identity,
3878    defaultAllDay: Boolean,
3879    eventSourceFailure: identity,
3880    eventSourceSuccess: identity,
3881    eventDisplay: String,
3882    eventStartEditable: Boolean,
3883    eventDurationEditable: Boolean,
3884    eventOverlap: identity,
3885    eventConstraint: identity,
3886    eventAllow: identity,
3887    eventBackgroundColor: String,
3888    eventBorderColor: String,
3889    eventTextColor: String,
3890    eventColor: String,
3891    eventClassNames: identity,
3892    eventContent: identity,
3893    eventDidMount: identity,
3894    eventWillUnmount: identity,
3895    selectConstraint: identity,
3896    selectOverlap: identity,
3897    selectAllow: identity,
3898    droppable: Boolean,
3899    unselectCancel: String,
3900    slotLabelFormat: identity,
3901    slotLaneClassNames: identity,
3902    slotLaneContent: identity,
3903    slotLaneDidMount: identity,
3904    slotLaneWillUnmount: identity,
3905    slotLabelClassNames: identity,
3906    slotLabelContent: identity,
3907    slotLabelDidMount: identity,
3908    slotLabelWillUnmount: identity,
3909    dayMaxEvents: identity,
3910    dayMaxEventRows: identity,
3911    dayMinWidth: Number,
3912    slotLabelInterval: createDuration,
3913    allDayText: String,
3914    allDayClassNames: identity,
3915    allDayContent: identity,
3916    allDayDidMount: identity,
3917    allDayWillUnmount: identity,
3918    slotMinWidth: Number,
3919    navLinks: Boolean,
3920    eventTimeFormat: createFormatter,
3921    rerenderDelay: Number,
3922    moreLinkText: identity,
3923    moreLinkHint: identity,
3924    selectMinDistance: Number,
3925    selectable: Boolean,
3926    selectLongPressDelay: Number,
3927    eventLongPressDelay: Number,
3928    selectMirror: Boolean,
3929    eventMaxStack: Number,
3930    eventMinHeight: Number,
3931    eventMinWidth: Number,
3932    eventShortHeight: Number,
3933    slotEventOverlap: Boolean,
3934    plugins: identity,
3935    firstDay: Number,
3936    dayCount: Number,
3937    dateAlignment: String,
3938    dateIncrement: createDuration,
3939    hiddenDays: identity,
3940    fixedWeekCount: Boolean,
3941    validRange: identity,
3942    visibleRange: identity,
3943    titleFormat: identity,
3944    eventInteractive: Boolean,
3945    // only used by list-view, but languages define the value, so we need it in base options
3946    noEventsText: String,
3947    viewHint: identity,
3948    navLinkHint: identity,
3949    closeHint: String,
3950    timeHint: String,
3951    eventHint: String,
3952    moreLinkClick: identity,
3953    moreLinkClassNames: identity,
3954    moreLinkContent: identity,
3955    moreLinkDidMount: identity,
3956    moreLinkWillUnmount: identity,
3957    monthStartFormat: createFormatter,
3958    // for connectors
3959    // (can't be part of plugin system b/c must be provided at runtime)
3960    handleCustomRendering: identity,
3961    customRenderingMetaMap: identity,
3962    customRenderingReplaces: Boolean,
3963};
3964// do NOT give a type here. need `typeof BASE_OPTION_DEFAULTS` to give real results.
3965// raw values.
3966const BASE_OPTION_DEFAULTS = {
3967    eventDisplay: 'auto',
3968    defaultRangeSeparator: ' - ',
3969    titleRangeSeparator: ' \u2013 ',
3970    defaultTimedEventDuration: '01:00:00',
3971    defaultAllDayEventDuration: { day: 1 },
3972    forceEventDuration: false,
3973    nextDayThreshold: '00:00:00',
3974    dayHeaders: true,
3975    initialView: '',
3976    aspectRatio: 1.35,
3977    headerToolbar: {
3978        start: 'title',
3979        center: '',
3980        end: 'today prev,next',
3981    },
3982    weekends: true,
3983    weekNumbers: false,
3984    weekNumberCalculation: 'local',
3985    editable: false,
3986    nowIndicator: false,
3987    scrollTime: '06:00:00',
3988    scrollTimeReset: true,
3989    slotMinTime: '00:00:00',
3990    slotMaxTime: '24:00:00',
3991    showNonCurrentDates: true,
3992    lazyFetching: true,
3993    startParam: 'start',
3994    endParam: 'end',
3995    timeZoneParam: 'timeZone',
3996    timeZone: 'local',
3997    locales: [],
3998    locale: '',
3999    themeSystem: 'standard',
4000    dragRevertDuration: 500,
4001    dragScroll: true,
4002    allDayMaintainDuration: false,
4003    unselectAuto: true,
4004    dropAccept: '*',
4005    eventOrder: 'start,-duration,allDay,title',
4006    dayPopoverFormat: { month: 'long', day: 'numeric', year: 'numeric' },
4007    handleWindowResize: true,
4008    windowResizeDelay: 100,
4009    longPressDelay: 1000,
4010    eventDragMinDistance: 5,
4011    expandRows: false,
4012    navLinks: false,
4013    selectable: false,
4014    eventMinHeight: 15,
4015    eventMinWidth: 30,
4016    eventShortHeight: 30,
4017    monthStartFormat: { month: 'long', day: 'numeric' },
4018};
4019// calendar listeners
4020// ------------------
4021const CALENDAR_LISTENER_REFINERS = {
4022    datesSet: identity,
4023    eventsSet: identity,
4024    eventAdd: identity,
4025    eventChange: identity,
4026    eventRemove: identity,
4027    windowResize: identity,
4028    eventClick: identity,
4029    eventMouseEnter: identity,
4030    eventMouseLeave: identity,
4031    select: identity,
4032    unselect: identity,
4033    loading: identity,
4034    // internal
4035    _unmount: identity,
4036    _beforeprint: identity,
4037    _afterprint: identity,
4038    _noEventDrop: identity,
4039    _noEventResize: identity,
4040    _resize: identity,
4041    _scrollRequest: identity,
4042};
4043// calendar-specific options
4044// -------------------------
4045const CALENDAR_OPTION_REFINERS = {
4046    buttonText: identity,
4047    buttonHints: identity,
4048    views: identity,
4049    plugins: identity,
4050    initialEvents: identity,
4051    events: identity,
4052    eventSources: identity,
4053};
4054const COMPLEX_OPTION_COMPARATORS = {
4055    headerToolbar: isMaybeObjectsEqual,
4056    footerToolbar: isMaybeObjectsEqual,
4057    buttonText: isMaybeObjectsEqual,
4058    buttonHints: isMaybeObjectsEqual,
4059    buttonIcons: isMaybeObjectsEqual,
4060    dateIncrement: isMaybeObjectsEqual,
4061    plugins: isMaybeArraysEqual,
4062    events: isMaybeArraysEqual,
4063    eventSources: isMaybeArraysEqual,
4064    ['resources']: isMaybeArraysEqual,
4065};
4066function isMaybeObjectsEqual(a, b) {
4067    if (typeof a === 'object' && typeof b === 'object' && a && b) { // both non-null objects
4068        return isPropsEqual(a, b);
4069    }
4070    return a === b;
4071}
4072function isMaybeArraysEqual(a, b) {
4073    if (Array.isArray(a) && Array.isArray(b)) {
4074        return isArraysEqual(a, b);
4075    }
4076    return a === b;
4077}
4078// view-specific options
4079// ---------------------
4080const VIEW_OPTION_REFINERS = {
4081    type: String,
4082    component: identity,
4083    buttonText: String,
4084    buttonTextKey: String,
4085    dateProfileGeneratorClass: identity,
4086    usesMinMaxTime: Boolean,
4087    classNames: identity,
4088    content: identity,
4089    didMount: identity,
4090    willUnmount: identity,
4091};
4092// util funcs
4093// ----------------------------------------------------------------------------------------------------
4094function mergeRawOptions(optionSets) {
4095    return mergeProps(optionSets, COMPLEX_OPTION_COMPARATORS);
4096}
4097function refineProps(input, refiners) {
4098    let refined = {};
4099    let extra = {};
4100    for (let propName in refiners) {
4101        if (propName in input) {
4102            refined[propName] = refiners[propName](input[propName]);
4103        }
4104    }
4105    for (let propName in input) {
4106        if (!(propName in refiners)) {
4107            extra[propName] = input[propName];
4108        }
4109    }
4110    return { refined, extra };
4111}
4112function identity(raw) {
4113    return raw;
4114}
4115
4116const { hasOwnProperty } = Object.prototype;
4117// Merges an array of objects into a single object.
4118// The second argument allows for an array of property names who's object values will be merged together.
4119function mergeProps(propObjs, complexPropsMap) {
4120    let dest = {};
4121    if (complexPropsMap) {
4122        for (let name in complexPropsMap) {
4123            if (complexPropsMap[name] === isMaybeObjectsEqual) { // implies that it's object-mergeable
4124                let complexObjs = [];
4125                // collect the trailing object values, stopping when a non-object is discovered
4126                for (let i = propObjs.length - 1; i >= 0; i -= 1) {
4127                    let val = propObjs[i][name];
4128                    if (typeof val === 'object' && val) { // non-null object
4129                        complexObjs.unshift(val);
4130                    }
4131                    else if (val !== undefined) {
4132                        dest[name] = val; // if there were no objects, this value will be used
4133                        break;
4134                    }
4135                }
4136                // if the trailing values were objects, use the merged value
4137                if (complexObjs.length) {
4138                    dest[name] = mergeProps(complexObjs);
4139                }
4140            }
4141        }
4142    }
4143    // copy values into the destination, going from last to first
4144    for (let i = propObjs.length - 1; i >= 0; i -= 1) {
4145        let props = propObjs[i];
4146        for (let name in props) {
4147            if (!(name in dest)) { // if already assigned by previous props or complex props, don't reassign
4148                dest[name] = props[name];
4149            }
4150        }
4151    }
4152    return dest;
4153}
4154function filterHash(hash, func) {
4155    let filtered = {};
4156    for (let key in hash) {
4157        if (func(hash[key], key)) {
4158            filtered[key] = hash[key];
4159        }
4160    }
4161    return filtered;
4162}
4163function mapHash(hash, func) {
4164    let newHash = {};
4165    for (let key in hash) {
4166        newHash[key] = func(hash[key], key);
4167    }
4168    return newHash;
4169}
4170function arrayToHash(a) {
4171    let hash = {};
4172    for (let item of a) {
4173        hash[item] = true;
4174    }
4175    return hash;
4176}
4177// TODO: reassess browser support
4178// https://caniuse.com/?search=object.values
4179function hashValuesToArray(obj) {
4180    let a = [];
4181    for (let key in obj) {
4182        a.push(obj[key]);
4183    }
4184    return a;
4185}
4186function isPropsEqual(obj0, obj1) {
4187    if (obj0 === obj1) {
4188        return true;
4189    }
4190    for (let key in obj0) {
4191        if (hasOwnProperty.call(obj0, key)) {
4192            if (!(key in obj1)) {
4193                return false;
4194            }
4195        }
4196    }
4197    for (let key in obj1) {
4198        if (hasOwnProperty.call(obj1, key)) {
4199            if (obj0[key] !== obj1[key]) {
4200                return false;
4201            }
4202        }
4203    }
4204    return true;
4205}
4206const HANDLER_RE = /^on[A-Z]/;
4207function isNonHandlerPropsEqual(obj0, obj1) {
4208    const keys = getUnequalProps(obj0, obj1);
4209    for (let key of keys) {
4210        if (!HANDLER_RE.test(key)) {
4211            return false;
4212        }
4213    }
4214    return true;
4215}
4216function getUnequalProps(obj0, obj1) {
4217    let keys = [];
4218    for (let key in obj0) {
4219        if (hasOwnProperty.call(obj0, key)) {
4220            if (!(key in obj1)) {
4221                keys.push(key);
4222            }
4223        }
4224    }
4225    for (let key in obj1) {
4226        if (hasOwnProperty.call(obj1, key)) {
4227            if (obj0[key] !== obj1[key]) {
4228                keys.push(key);
4229            }
4230        }
4231    }
4232    return keys;
4233}
4234function compareObjs(oldProps, newProps, equalityFuncs = {}) {
4235    if (oldProps === newProps) {
4236        return true;
4237    }
4238    for (let key in newProps) {
4239        if (key in oldProps && isObjValsEqual(oldProps[key], newProps[key], equalityFuncs[key])) ;
4240        else {
4241            return false;
4242        }
4243    }
4244    // check for props that were omitted in the new
4245    for (let key in oldProps) {
4246        if (!(key in newProps)) {
4247            return false;
4248        }
4249    }
4250    return true;
4251}
4252/*
4253assumed "true" equality for handler names like "onReceiveSomething"
4254*/
4255function isObjValsEqual(val0, val1, comparator) {
4256    if (val0 === val1 || comparator === true) {
4257        return true;
4258    }
4259    if (comparator) {
4260        return comparator(val0, val1);
4261    }
4262    return false;
4263}
4264function collectFromHash(hash, startIndex = 0, endIndex, step = 1) {
4265    let res = [];
4266    if (endIndex == null) {
4267        endIndex = Object.keys(hash).length;
4268    }
4269    for (let i = startIndex; i < endIndex; i += step) {
4270        let val = hash[i];
4271        if (val !== undefined) { // will disregard undefined for sparse arrays
4272            res.push(val);
4273        }
4274    }
4275    return res;
4276}
4277
4278let calendarSystemClassMap = {};
4279function registerCalendarSystem(name, theClass) {
4280    calendarSystemClassMap[name] = theClass;
4281}
4282function createCalendarSystem(name) {
4283    return new calendarSystemClassMap[name]();
4284}
4285class GregorianCalendarSystem {
4286    getMarkerYear(d) {
4287        return d.getUTCFullYear();
4288    }
4289    getMarkerMonth(d) {
4290        return d.getUTCMonth();
4291    }
4292    getMarkerDay(d) {
4293        return d.getUTCDate();
4294    }
4295    arrayToMarker(arr) {
4296        return arrayToUtcDate(arr);
4297    }
4298    markerToArray(marker) {
4299        return dateToUtcArray(marker);
4300    }
4301}
4302registerCalendarSystem('gregory', GregorianCalendarSystem);
4303
4304const ISO_RE = /^\s*(\d{4})(-?(\d{2})(-?(\d{2})([T ](\d{2}):?(\d{2})(:?(\d{2})(\.(\d+))?)?(Z|(([-+])(\d{2})(:?(\d{2}))?))?)?)?)?$/;
4305function parse(str) {
4306    let m = ISO_RE.exec(str);
4307    if (m) {
4308        let marker = new Date(Date.UTC(Number(m[1]), m[3] ? Number(m[3]) - 1 : 0, Number(m[5] || 1), Number(m[7] || 0), Number(m[8] || 0), Number(m[10] || 0), m[12] ? Number(`0.${m[12]}`) * 1000 : 0));
4309        if (isValidDate(marker)) {
4310            let timeZoneOffset = null;
4311            if (m[13]) {
4312                timeZoneOffset = (m[15] === '-' ? -1 : 1) * (Number(m[16] || 0) * 60 +
4313                    Number(m[18] || 0));
4314            }
4315            return {
4316                marker,
4317                isTimeUnspecified: !m[6],
4318                timeZoneOffset,
4319            };
4320        }
4321    }
4322    return null;
4323}
4324
4325class DateEnv {
4326    constructor(settings) {
4327        let timeZone = this.timeZone = settings.timeZone;
4328        let isNamedTimeZone = timeZone !== 'local' && timeZone !== 'UTC';
4329        if (settings.namedTimeZoneImpl && isNamedTimeZone) {
4330            this.namedTimeZoneImpl = new settings.namedTimeZoneImpl(timeZone);
4331        }
4332        this.canComputeOffset = Boolean(!isNamedTimeZone || this.namedTimeZoneImpl);
4333        this.calendarSystem = createCalendarSystem(settings.calendarSystem);
4334        this.locale = settings.locale;
4335        this.weekDow = settings.locale.week.dow;
4336        this.weekDoy = settings.locale.week.doy;
4337        if (settings.weekNumberCalculation === 'ISO') {
4338            this.weekDow = 1;
4339            this.weekDoy = 4;
4340        }
4341        if (typeof settings.firstDay === 'number') {
4342            this.weekDow = settings.firstDay;
4343        }
4344        if (typeof settings.weekNumberCalculation === 'function') {
4345            this.weekNumberFunc = settings.weekNumberCalculation;
4346        }
4347        this.weekText = settings.weekText != null ? settings.weekText : settings.locale.options.weekText;
4348        this.weekTextLong = (settings.weekTextLong != null ? settings.weekTextLong : settings.locale.options.weekTextLong) || this.weekText;
4349        this.cmdFormatter = settings.cmdFormatter;
4350        this.defaultSeparator = settings.defaultSeparator;
4351    }
4352    // Creating / Parsing
4353    createMarker(input) {
4354        let meta = this.createMarkerMeta(input);
4355        if (meta === null) {
4356            return null;
4357        }
4358        return meta.marker;
4359    }
4360    createNowMarker() {
4361        if (this.canComputeOffset) {
4362            return this.timestampToMarker(new Date().valueOf());
4363        }
4364        // if we can't compute the current date val for a timezone,
4365        // better to give the current local date vals than UTC
4366        return arrayToUtcDate(dateToLocalArray(new Date()));
4367    }
4368    createMarkerMeta(input) {
4369        if (typeof input === 'string') {
4370            return this.parse(input);
4371        }
4372        let marker = null;
4373        if (typeof input === 'number') {
4374            marker = this.timestampToMarker(input);
4375        }
4376        else if (input instanceof Date) {
4377            input = input.valueOf();
4378            if (!isNaN(input)) {
4379                marker = this.timestampToMarker(input);
4380            }
4381        }
4382        else if (Array.isArray(input)) {
4383            marker = arrayToUtcDate(input);
4384        }
4385        if (marker === null || !isValidDate(marker)) {
4386            return null;
4387        }
4388        return { marker, isTimeUnspecified: false, forcedTzo: null };
4389    }
4390    parse(s) {
4391        let parts = parse(s);
4392        if (parts === null) {
4393            return null;
4394        }
4395        let { marker } = parts;
4396        let forcedTzo = null;
4397        if (parts.timeZoneOffset !== null) {
4398            if (this.canComputeOffset) {
4399                marker = this.timestampToMarker(marker.valueOf() - parts.timeZoneOffset * 60 * 1000);
4400            }
4401            else {
4402                forcedTzo = parts.timeZoneOffset;
4403            }
4404        }
4405        return { marker, isTimeUnspecified: parts.isTimeUnspecified, forcedTzo };
4406    }
4407    // Accessors
4408    getYear(marker) {
4409        return this.calendarSystem.getMarkerYear(marker);
4410    }
4411    getMonth(marker) {
4412        return this.calendarSystem.getMarkerMonth(marker);
4413    }
4414    getDay(marker) {
4415        return this.calendarSystem.getMarkerDay(marker);
4416    }
4417    // Adding / Subtracting
4418    add(marker, dur) {
4419        let a = this.calendarSystem.markerToArray(marker);
4420        a[0] += dur.years;
4421        a[1] += dur.months;
4422        a[2] += dur.days;
4423        a[6] += dur.milliseconds;
4424        return this.calendarSystem.arrayToMarker(a);
4425    }
4426    subtract(marker, dur) {
4427        let a = this.calendarSystem.markerToArray(marker);
4428        a[0] -= dur.years;
4429        a[1] -= dur.months;
4430        a[2] -= dur.days;
4431        a[6] -= dur.milliseconds;
4432        return this.calendarSystem.arrayToMarker(a);
4433    }
4434    addYears(marker, n) {
4435        let a = this.calendarSystem.markerToArray(marker);
4436        a[0] += n;
4437        return this.calendarSystem.arrayToMarker(a);
4438    }
4439    addMonths(marker, n) {
4440        let a = this.calendarSystem.markerToArray(marker);
4441        a[1] += n;
4442        return this.calendarSystem.arrayToMarker(a);
4443    }
4444    // Diffing Whole Units
4445    diffWholeYears(m0, m1) {
4446        let { calendarSystem } = this;
4447        if (timeAsMs(m0) === timeAsMs(m1) &&
4448            calendarSystem.getMarkerDay(m0) === calendarSystem.getMarkerDay(m1) &&
4449            calendarSystem.getMarkerMonth(m0) === calendarSystem.getMarkerMonth(m1)) {
4450            return calendarSystem.getMarkerYear(m1) - calendarSystem.getMarkerYear(m0);
4451        }
4452        return null;
4453    }
4454    diffWholeMonths(m0, m1) {
4455        let { calendarSystem } = this;
4456        if (timeAsMs(m0) === timeAsMs(m1) &&
4457            calendarSystem.getMarkerDay(m0) === calendarSystem.getMarkerDay(m1)) {
4458            return (calendarSystem.getMarkerMonth(m1) - calendarSystem.getMarkerMonth(m0)) +
4459                (calendarSystem.getMarkerYear(m1) - calendarSystem.getMarkerYear(m0)) * 12;
4460        }
4461        return null;
4462    }
4463    // Range / Duration
4464    greatestWholeUnit(m0, m1) {
4465        let n = this.diffWholeYears(m0, m1);
4466        if (n !== null) {
4467            return { unit: 'year', value: n };
4468        }
4469        n = this.diffWholeMonths(m0, m1);
4470        if (n !== null) {
4471            return { unit: 'month', value: n };
4472        }
4473        n = diffWholeWeeks(m0, m1);
4474        if (n !== null) {
4475            return { unit: 'week', value: n };
4476        }
4477        n = diffWholeDays(m0, m1);
4478        if (n !== null) {
4479            return { unit: 'day', value: n };
4480        }
4481        n = diffHours(m0, m1);
4482        if (isInt(n)) {
4483            return { unit: 'hour', value: n };
4484        }
4485        n = diffMinutes(m0, m1);
4486        if (isInt(n)) {
4487            return { unit: 'minute', value: n };
4488        }
4489        n = diffSeconds(m0, m1);
4490        if (isInt(n)) {
4491            return { unit: 'second', value: n };
4492        }
4493        return { unit: 'millisecond', value: m1.valueOf() - m0.valueOf() };
4494    }
4495    countDurationsBetween(m0, m1, d) {
4496        // TODO: can use greatestWholeUnit
4497        let diff;
4498        if (d.years) {
4499            diff = this.diffWholeYears(m0, m1);
4500            if (diff !== null) {
4501                return diff / asRoughYears(d);
4502            }
4503        }
4504        if (d.months) {
4505            diff = this.diffWholeMonths(m0, m1);
4506            if (diff !== null) {
4507                return diff / asRoughMonths(d);
4508            }
4509        }
4510        if (d.days) {
4511            diff = diffWholeDays(m0, m1);
4512            if (diff !== null) {
4513                return diff / asRoughDays(d);
4514            }
4515        }
4516        return (m1.valueOf() - m0.valueOf()) / asRoughMs(d);
4517    }
4518    // Start-Of
4519    // these DON'T return zoned-dates. only UTC start-of dates
4520    startOf(m, unit) {
4521        if (unit === 'year') {
4522            return this.startOfYear(m);
4523        }
4524        if (unit === 'month') {
4525            return this.startOfMonth(m);
4526        }
4527        if (unit === 'week') {
4528            return this.startOfWeek(m);
4529        }
4530        if (unit === 'day') {
4531            return startOfDay(m);
4532        }
4533        if (unit === 'hour') {
4534            return startOfHour(m);
4535        }
4536        if (unit === 'minute') {
4537            return startOfMinute(m);
4538        }
4539        if (unit === 'second') {
4540            return startOfSecond(m);
4541        }
4542        return null;
4543    }
4544    startOfYear(m) {
4545        return this.calendarSystem.arrayToMarker([
4546            this.calendarSystem.getMarkerYear(m),
4547        ]);
4548    }
4549    startOfMonth(m) {
4550        return this.calendarSystem.arrayToMarker([
4551            this.calendarSystem.getMarkerYear(m),
4552            this.calendarSystem.getMarkerMonth(m),
4553        ]);
4554    }
4555    startOfWeek(m) {
4556        return this.calendarSystem.arrayToMarker([
4557            this.calendarSystem.getMarkerYear(m),
4558            this.calendarSystem.getMarkerMonth(m),
4559            m.getUTCDate() - ((m.getUTCDay() - this.weekDow + 7) % 7),
4560        ]);
4561    }
4562    // Week Number
4563    computeWeekNumber(marker) {
4564        if (this.weekNumberFunc) {
4565            return this.weekNumberFunc(this.toDate(marker));
4566        }
4567        return weekOfYear(marker, this.weekDow, this.weekDoy);
4568    }
4569    // TODO: choke on timeZoneName: long
4570    format(marker, formatter, dateOptions = {}) {
4571        return formatter.format({
4572            marker,
4573            timeZoneOffset: dateOptions.forcedTzo != null ?
4574                dateOptions.forcedTzo :
4575                this.offsetForMarker(marker),
4576        }, this);
4577    }
4578    formatRange(start, end, formatter, dateOptions = {}) {
4579        if (dateOptions.isEndExclusive) {
4580            end = addMs(end, -1);
4581        }
4582        return formatter.formatRange({
4583            marker: start,
4584            timeZoneOffset: dateOptions.forcedStartTzo != null ?
4585                dateOptions.forcedStartTzo :
4586                this.offsetForMarker(start),
4587        }, {
4588            marker: end,
4589            timeZoneOffset: dateOptions.forcedEndTzo != null ?
4590                dateOptions.forcedEndTzo :
4591                this.offsetForMarker(end),
4592        }, this, dateOptions.defaultSeparator);
4593    }
4594    /*
4595    DUMB: the omitTime arg is dumb. if we omit the time, we want to omit the timezone offset. and if we do that,
4596    might as well use buildIsoString or some other util directly
4597    */
4598    formatIso(marker, extraOptions = {}) {
4599        let timeZoneOffset = null;
4600        if (!extraOptions.omitTimeZoneOffset) {
4601            if (extraOptions.forcedTzo != null) {
4602                timeZoneOffset = extraOptions.forcedTzo;
4603            }
4604            else {
4605                timeZoneOffset = this.offsetForMarker(marker);
4606            }
4607        }
4608        return buildIsoString(marker, timeZoneOffset, extraOptions.omitTime);
4609    }
4610    // TimeZone
4611    timestampToMarker(ms) {
4612        if (this.timeZone === 'local') {
4613            return arrayToUtcDate(dateToLocalArray(new Date(ms)));
4614        }
4615        if (this.timeZone === 'UTC' || !this.namedTimeZoneImpl) {
4616            return new Date(ms);
4617        }
4618        return arrayToUtcDate(this.namedTimeZoneImpl.timestampToArray(ms));
4619    }
4620    offsetForMarker(m) {
4621        if (this.timeZone === 'local') {
4622            return -arrayToLocalDate(dateToUtcArray(m)).getTimezoneOffset(); // convert "inverse" offset to "normal" offset
4623        }
4624        if (this.timeZone === 'UTC') {
4625            return 0;
4626        }
4627        if (this.namedTimeZoneImpl) {
4628            return this.namedTimeZoneImpl.offsetForArray(dateToUtcArray(m));
4629        }
4630        return null;
4631    }
4632    // Conversion
4633    toDate(m, forcedTzo) {
4634        if (this.timeZone === 'local') {
4635            return arrayToLocalDate(dateToUtcArray(m));
4636        }
4637        if (this.timeZone === 'UTC') {
4638            return new Date(m.valueOf()); // make sure it's a copy
4639        }
4640        if (!this.namedTimeZoneImpl) {
4641            return new Date(m.valueOf() - (forcedTzo || 0));
4642        }
4643        return new Date(m.valueOf() -
4644            this.namedTimeZoneImpl.offsetForArray(dateToUtcArray(m)) * 1000 * 60);
4645    }
4646}
4647
4648class Theme {
4649    constructor(calendarOptions) {
4650        if (this.iconOverrideOption) {
4651            this.setIconOverride(calendarOptions[this.iconOverrideOption]);
4652        }
4653    }
4654    setIconOverride(iconOverrideHash) {
4655        let iconClassesCopy;
4656        let buttonName;
4657        if (typeof iconOverrideHash === 'object' && iconOverrideHash) { // non-null object
4658            iconClassesCopy = Object.assign({}, this.iconClasses);
4659            for (buttonName in iconOverrideHash) {
4660                iconClassesCopy[buttonName] = this.applyIconOverridePrefix(iconOverrideHash[buttonName]);
4661            }
4662            this.iconClasses = iconClassesCopy;
4663        }
4664        else if (iconOverrideHash === false) {
4665            this.iconClasses = {};
4666        }
4667    }
4668    applyIconOverridePrefix(className) {
4669        let prefix = this.iconOverridePrefix;
4670        if (prefix && className.indexOf(prefix) !== 0) { // if not already present
4671            className = prefix + className;
4672        }
4673        return className;
4674    }
4675    getClass(key) {
4676        return this.classes[key] || '';
4677    }
4678    getIconClass(buttonName, isRtl) {
4679        let className;
4680        if (isRtl && this.rtlIconClasses) {
4681            className = this.rtlIconClasses[buttonName] || this.iconClasses[buttonName];
4682        }
4683        else {
4684            className = this.iconClasses[buttonName];
4685        }
4686        if (className) {
4687            return `${this.baseIconClass} ${className}`;
4688        }
4689        return '';
4690    }
4691    getCustomButtonIconClass(customButtonProps) {
4692        let className;
4693        if (this.iconOverrideCustomButtonOption) {
4694            className = customButtonProps[this.iconOverrideCustomButtonOption];
4695            if (className) {
4696                return `${this.baseIconClass} ${this.applyIconOverridePrefix(className)}`;
4697            }
4698        }
4699        return '';
4700    }
4701}
4702Theme.prototype.classes = {};
4703Theme.prototype.iconClasses = {};
4704Theme.prototype.baseIconClass = '';
4705Theme.prototype.iconOverridePrefix = '';
4706
4707/*
4708NOTE: this can be a public API, especially createElement for hooks.
4709See examples/typescript-scheduler/src/index.ts
4710*/
4711function flushSync(runBeforeFlush) {
4712    runBeforeFlush();
4713    let oldDebounceRendering = preact__WEBPACK_IMPORTED_MODULE_0__["options"].debounceRendering; // orig
4714    let callbackQ = [];
4715    function execCallbackSync(callback) {
4716        callbackQ.push(callback);
4717    }
4718    preact__WEBPACK_IMPORTED_MODULE_0__["options"].debounceRendering = execCallbackSync;
4719    preact__WEBPACK_IMPORTED_MODULE_0__["render"](preact__WEBPACK_IMPORTED_MODULE_0__["createElement"](FakeComponent, {}), document.createElement('div'));
4720    while (callbackQ.length) {
4721        callbackQ.shift()();
4722    }
4723    preact__WEBPACK_IMPORTED_MODULE_0__["options"].debounceRendering = oldDebounceRendering;
4724}
4725class FakeComponent extends preact__WEBPACK_IMPORTED_MODULE_0__["Component"] {
4726    render() { return preact__WEBPACK_IMPORTED_MODULE_0__["createElement"]('div', {}); }
4727    componentDidMount() { this.setState({}); }
4728}
4729// TODO: use preact/compat instead?
4730function createContext(defaultValue) {
4731    let ContextType = preact__WEBPACK_IMPORTED_MODULE_0__["createContext"](defaultValue);
4732    let origProvider = ContextType.Provider;
4733    ContextType.Provider = function () {
4734        let isNew = !this.getChildContext;
4735        let children = origProvider.apply(this, arguments); // eslint-disable-line prefer-rest-params
4736        if (isNew) {
4737            let subs = [];
4738            this.shouldComponentUpdate = (_props) => {
4739                if (this.props.value !== _props.value) {
4740                    subs.forEach((c) => {
4741                        c.context = _props.value;
4742                        c.forceUpdate();
4743                    });
4744                }
4745            };
4746            this.sub = (c) => {
4747                subs.push(c);
4748                let old = c.componentWillUnmount;
4749                c.componentWillUnmount = () => {
4750                    subs.splice(subs.indexOf(c), 1);
4751                    old && old.call(c);
4752                };
4753            };
4754        }
4755        return children;
4756    };
4757    return ContextType;
4758}
4759
4760class ScrollResponder {
4761    constructor(execFunc, emitter, scrollTime, scrollTimeReset) {
4762        this.execFunc = execFunc;
4763        this.emitter = emitter;
4764        this.scrollTime = scrollTime;
4765        this.scrollTimeReset = scrollTimeReset;
4766        this.handleScrollRequest = (request) => {
4767            this.queuedRequest = Object.assign({}, this.queuedRequest || {}, request);
4768            this.drain();
4769        };
4770        emitter.on('_scrollRequest', this.handleScrollRequest);
4771        this.fireInitialScroll();
4772    }
4773    detach() {
4774        this.emitter.off('_scrollRequest', this.handleScrollRequest);
4775    }
4776    update(isDatesNew) {
4777        if (isDatesNew && this.scrollTimeReset) {
4778            this.fireInitialScroll(); // will drain
4779        }
4780        else {
4781            this.drain();
4782        }
4783    }
4784    fireInitialScroll() {
4785        this.handleScrollRequest({
4786            time: this.scrollTime,
4787        });
4788    }
4789    drain() {
4790        if (this.queuedRequest && this.execFunc(this.queuedRequest)) {
4791            this.queuedRequest = null;
4792        }
4793    }
4794}
4795
4796const ViewContextType = createContext({}); // for Components
4797function buildViewContext(viewSpec, viewApi, viewOptions, dateProfileGenerator, dateEnv, theme, pluginHooks, dispatch, getCurrentData, emitter, calendarApi, registerInteractiveComponent, unregisterInteractiveComponent) {
4798    return {
4799        dateEnv,
4800        options: viewOptions,
4801        pluginHooks,
4802        emitter,
4803        dispatch,
4804        getCurrentData,
4805        calendarApi,
4806        viewSpec,
4807        viewApi,
4808        dateProfileGenerator,
4809        theme,
4810        isRtl: viewOptions.direction === 'rtl',
4811        addResizeHandler(handler) {
4812            emitter.on('_resize', handler);
4813        },
4814        removeResizeHandler(handler) {
4815            emitter.off('_resize', handler);
4816        },
4817        createScrollResponder(execFunc) {
4818            return new ScrollResponder(execFunc, emitter, createDuration(viewOptions.scrollTime), viewOptions.scrollTimeReset);
4819        },
4820        registerInteractiveComponent,
4821        unregisterInteractiveComponent,
4822    };
4823}
4824
4825/* eslint max-classes-per-file: off */
4826class PureComponent extends preact__WEBPACK_IMPORTED_MODULE_0__["Component"] {
4827    shouldComponentUpdate(nextProps, nextState) {
4828        if (this.debug) {
4829            // eslint-disable-next-line no-console
4830            console.log(getUnequalProps(nextProps, this.props), getUnequalProps(nextState, this.state));
4831        }
4832        return !compareObjs(this.props, nextProps, this.propEquality) ||
4833            !compareObjs(this.state, nextState, this.stateEquality);
4834    }
4835    // HACK for freakin' React StrictMode
4836    safeSetState(newState) {
4837        if (!compareObjs(this.state, Object.assign(Object.assign({}, this.state), newState), this.stateEquality)) {
4838            this.setState(newState);
4839        }
4840    }
4841}
4842PureComponent.addPropsEquality = addPropsEquality;
4843PureComponent.addStateEquality = addStateEquality;
4844PureComponent.contextType = ViewContextType;
4845PureComponent.prototype.propEquality = {};
4846PureComponent.prototype.stateEquality = {};
4847class BaseComponent extends PureComponent {
4848}
4849BaseComponent.contextType = ViewContextType;
4850function addPropsEquality(propEquality) {
4851    let hash = Object.create(this.prototype.propEquality);
4852    Object.assign(hash, propEquality);
4853    this.prototype.propEquality = hash;
4854}
4855function addStateEquality(stateEquality) {
4856    let hash = Object.create(this.prototype.stateEquality);
4857    Object.assign(hash, stateEquality);
4858    this.prototype.stateEquality = hash;
4859}
4860// use other one
4861function setRef(ref, current) {
4862    if (typeof ref === 'function') {
4863        ref(current);
4864    }
4865    else if (ref) {
4866        // see https://github.com/facebook/react/issues/13029
4867        ref.current = current;
4868    }
4869}
4870
4871class ContentInjector extends BaseComponent {
4872    constructor() {
4873        super(...arguments);
4874        this.id = guid();
4875        this.queuedDomNodes = [];
4876        this.currentDomNodes = [];
4877        this.handleEl = (el) => {
4878            const { options } = this.context;
4879            const { generatorName } = this.props;
4880            if (!options.customRenderingReplaces || !hasCustomRenderingHandler(generatorName, options)) {
4881                this.updateElRef(el);
4882            }
4883        };
4884        this.updateElRef = (el) => {
4885            if (this.props.elRef) {
4886                setRef(this.props.elRef, el);
4887            }
4888        };
4889    }
4890    render() {
4891        const { props, context } = this;
4892        const { options } = context;
4893        const { customGenerator, defaultGenerator, renderProps } = props;
4894        const attrs = buildElAttrs(props, [], this.handleEl);
4895        let useDefault = false;
4896        let innerContent;
4897        let queuedDomNodes = [];
4898        let currentGeneratorMeta;
4899        if (customGenerator != null) {
4900            const customGeneratorRes = typeof customGenerator === 'function' ?
4901                customGenerator(renderProps, preact__WEBPACK_IMPORTED_MODULE_0__["createElement"]) :
4902                customGenerator;
4903            if (customGeneratorRes === true) {
4904                useDefault = true;
4905            }
4906            else {
4907                const isObject = customGeneratorRes && typeof customGeneratorRes === 'object'; // non-null
4908                if (isObject && ('html' in customGeneratorRes)) {
4909                    attrs.dangerouslySetInnerHTML = { __html: customGeneratorRes.html };
4910                }
4911                else if (isObject && ('domNodes' in customGeneratorRes)) {
4912                    queuedDomNodes = Array.prototype.slice.call(customGeneratorRes.domNodes);
4913                }
4914                else if (isObject
4915                    ? Object(preact__WEBPACK_IMPORTED_MODULE_0__["isValidElement"])(customGeneratorRes) // vdom node
4916                    : typeof customGeneratorRes !== 'function' // primitive value (like string or number)
4917                ) {
4918                    // use in vdom
4919                    innerContent = customGeneratorRes;
4920                }
4921                else {
4922                    // an exotic object for handleCustomRendering
4923                    currentGeneratorMeta = customGeneratorRes;
4924                }
4925            }
4926        }
4927        else {
4928            useDefault = !hasCustomRenderingHandler(props.generatorName, options);
4929        }
4930        if (useDefault && defaultGenerator) {
4931            innerContent = defaultGenerator(renderProps);
4932        }
4933        this.queuedDomNodes = queuedDomNodes;
4934        this.currentGeneratorMeta = currentGeneratorMeta;
4935        return Object(preact__WEBPACK_IMPORTED_MODULE_0__["createElement"])(props.elTag, attrs, innerContent);
4936    }
4937    componentDidMount() {
4938        this.applyQueueudDomNodes();
4939        this.triggerCustomRendering(true);
4940    }
4941    componentDidUpdate() {
4942        this.applyQueueudDomNodes();
4943        this.triggerCustomRendering(true);
4944    }
4945    componentWillUnmount() {
4946        this.triggerCustomRendering(false); // TODO: different API for removal?
4947    }
4948    triggerCustomRendering(isActive) {
4949        var _a;
4950        const { props, context } = this;
4951        const { handleCustomRendering, customRenderingMetaMap } = context.options;
4952        if (handleCustomRendering) {
4953            const generatorMeta = (_a = this.currentGeneratorMeta) !== null && _a !== void 0 ? _a : customRenderingMetaMap === null || customRenderingMetaMap === void 0 ? void 0 : customRenderingMetaMap[props.generatorName];
4954            if (generatorMeta) {
4955                handleCustomRendering(Object.assign(Object.assign({ id: this.id, isActive, containerEl: this.base, reportNewContainerEl: this.updateElRef, // front-end framework tells us about new container els
4956                    generatorMeta }, props), { elClasses: (props.elClasses || []).filter(isTruthy) }));
4957            }
4958        }
4959    }
4960    applyQueueudDomNodes() {
4961        const { queuedDomNodes, currentDomNodes } = this;
4962        const el = this.base;
4963        if (!isArraysEqual(queuedDomNodes, currentDomNodes)) {
4964            currentDomNodes.forEach(removeElement);
4965            for (let newNode of queuedDomNodes) {
4966                el.appendChild(newNode);
4967            }
4968            this.currentDomNodes = queuedDomNodes;
4969        }
4970    }
4971}
4972ContentInjector.addPropsEquality({
4973    elClasses: isArraysEqual,
4974    elStyle: isPropsEqual,
4975    elAttrs: isNonHandlerPropsEqual,
4976    renderProps: isPropsEqual,
4977});
4978// Util
4979/*
4980Does UI-framework provide custom way of rendering that does not use Preact VDOM
4981AND does the calendar's options define custom rendering?
4982AKA. Should we NOT render the default content?
4983*/
4984function hasCustomRenderingHandler(generatorName, options) {
4985    var _a;
4986    return Boolean(options.handleCustomRendering &&
4987        generatorName &&
4988        ((_a = options.customRenderingMetaMap) === null || _a === void 0 ? void 0 : _a[generatorName]));
4989}
4990function buildElAttrs(props, extraClassNames, elRef) {
4991    const attrs = Object.assign(Object.assign({}, props.elAttrs), { ref: elRef });
4992    if (props.elClasses || extraClassNames) {
4993        attrs.className = (props.elClasses || [])
4994            .concat(extraClassNames || [])
4995            .concat(attrs.className || [])
4996            .filter(Boolean)
4997            .join(' ');
4998    }
4999    if (props.elStyle) {
5000        attrs.style = props.elStyle;
5001    }
5002    return attrs;
5003}
5004function isTruthy(val) {
5005    return Boolean(val);
5006}
5007
5008const RenderId = createContext(0);
5009
5010class ContentContainer extends preact__WEBPACK_IMPORTED_MODULE_0__["Component"] {
5011    constructor() {
5012        super(...arguments);
5013        this.InnerContent = InnerContentInjector.bind(undefined, this);
5014        this.handleEl = (el) => {
5015            this.el = el;
5016            if (this.props.elRef) {
5017                setRef(this.props.elRef, el);
5018                if (el && this.didMountMisfire) {
5019                    this.componentDidMount();
5020                }
5021            }
5022        };
5023    }
5024    render() {
5025        const { props } = this;
5026        const generatedClassNames = generateClassNames(props.classNameGenerator, props.renderProps);
5027        if (props.children) {
5028            const elAttrs = buildElAttrs(props, generatedClassNames, this.handleEl);
5029            const children = props.children(this.InnerContent, props.renderProps, elAttrs);
5030            if (props.elTag) {
5031                return Object(preact__WEBPACK_IMPORTED_MODULE_0__["createElement"])(props.elTag, elAttrs, children);
5032            }
5033            else {
5034                return children;
5035            }
5036        }
5037        else {
5038            return Object(preact__WEBPACK_IMPORTED_MODULE_0__["createElement"])((ContentInjector), Object.assign(Object.assign({}, props), { elRef: this.handleEl, elTag: props.elTag || 'div', elClasses: (props.elClasses || []).concat(generatedClassNames), renderId: this.context }));
5039        }
5040    }
5041    componentDidMount() {
5042        var _a, _b;
5043        if (this.el) {
5044            (_b = (_a = this.props).didMount) === null || _b === void 0 ? void 0 : _b.call(_a, Object.assign(Object.assign({}, this.props.renderProps), { el: this.el }));
5045        }
5046        else {
5047            this.didMountMisfire = true;
5048        }
5049    }
5050    componentWillUnmount() {
5051        var _a, _b;
5052        (_b = (_a = this.props).willUnmount) === null || _b === void 0 ? void 0 : _b.call(_a, Object.assign(Object.assign({}, this.props.renderProps), { el: this.el }));
5053    }
5054}
5055ContentContainer.contextType = RenderId;
5056function InnerContentInjector(containerComponent, props) {
5057    const parentProps = containerComponent.props;
5058    return Object(preact__WEBPACK_IMPORTED_MODULE_0__["createElement"])((ContentInjector), Object.assign({ renderProps: parentProps.renderProps, generatorName: parentProps.generatorName, customGenerator: parentProps.customGenerator, defaultGenerator: parentProps.defaultGenerator, renderId: containerComponent.context }, props));
5059}
5060// Utils
5061function generateClassNames(classNameGenerator, renderProps) {
5062    const classNames = typeof classNameGenerator === 'function' ?
5063        classNameGenerator(renderProps) :
5064        classNameGenerator || [];
5065    return typeof classNames === 'string' ? [classNames] : classNames;
5066}
5067
5068class ViewContainer extends BaseComponent {
5069    render() {
5070        let { props, context } = this;
5071        let { options } = context;
5072        let renderProps = { view: context.viewApi };
5073        return (Object(preact__WEBPACK_IMPORTED_MODULE_0__["createElement"])(ContentContainer, Object.assign({}, props, { elTag: props.elTag || 'div', elClasses: [
5074                ...buildViewClassNames(props.viewSpec),
5075                ...(props.elClasses || []),
5076            ], renderProps: renderProps, classNameGenerator: options.viewClassNames, generatorName: undefined, didMount: options.viewDidMount, willUnmount: options.viewWillUnmount }), () => props.children));
5077    }
5078}
5079function buildViewClassNames(viewSpec) {
5080    return [
5081        `fc-${viewSpec.type}-view`,
5082        'fc-view',
5083    ];
5084}
5085
5086function parseRange(input, dateEnv) {
5087    let start = null;
5088    let end = null;
5089    if (input.start) {
5090        start = dateEnv.createMarker(input.start);
5091    }
5092    if (input.end) {
5093        end = dateEnv.createMarker(input.end);
5094    }
5095    if (!start && !end) {
5096        return null;
5097    }
5098    if (start && end && end < start) {
5099        return null;
5100    }
5101    return { start, end };
5102}
5103// SIDE-EFFECT: will mutate ranges.
5104// Will return a new array result.
5105function invertRanges(ranges, constraintRange) {
5106    let invertedRanges = [];
5107    let { start } = constraintRange; // the end of the previous range. the start of the new range
5108    let i;
5109    let dateRange;
5110    // ranges need to be in order. required for our date-walking algorithm
5111    ranges.sort(compareRanges);
5112    for (i = 0; i < ranges.length; i += 1) {
5113        dateRange = ranges[i];
5114        // add the span of time before the event (if there is any)
5115        if (dateRange.start > start) { // compare millisecond time (skip any ambig logic)
5116            invertedRanges.push({ start, end: dateRange.start });
5117        }
5118        if (dateRange.end > start) {
5119            start = dateRange.end;
5120        }
5121    }
5122    // add the span of time after the last event (if there is any)
5123    if (start < constraintRange.end) { // compare millisecond time (skip any ambig logic)
5124        invertedRanges.push({ start, end: constraintRange.end });
5125    }
5126    return invertedRanges;
5127}
5128function compareRanges(range0, range1) {
5129    return range0.start.valueOf() - range1.start.valueOf(); // earlier ranges go first
5130}
5131function intersectRanges(range0, range1) {
5132    let { start, end } = range0;
5133    let newRange = null;
5134    if (range1.start !== null) {
5135        if (start === null) {
5136            start = range1.start;
5137        }
5138        else {
5139            start = new Date(Math.max(start.valueOf(), range1.start.valueOf()));
5140        }
5141    }
5142    if (range1.end != null) {
5143        if (end === null) {
5144            end = range1.end;
5145        }
5146        else {
5147            end = new Date(Math.min(end.valueOf(), range1.end.valueOf()));
5148        }
5149    }
5150    if (start === null || end === null || start < end) {
5151        newRange = { start, end };
5152    }
5153    return newRange;
5154}
5155function rangesEqual(range0, range1) {
5156    return (range0.start === null ? null : range0.start.valueOf()) === (range1.start === null ? null : range1.start.valueOf()) &&
5157        (range0.end === null ? null : range0.end.valueOf()) === (range1.end === null ? null : range1.end.valueOf());
5158}
5159function rangesIntersect(range0, range1) {
5160    return (range0.end === null || range1.start === null || range0.end > range1.start) &&
5161        (range0.start === null || range1.end === null || range0.start < range1.end);
5162}
5163function rangeContainsRange(outerRange, innerRange) {
5164    return (outerRange.start === null || (innerRange.start !== null && innerRange.start >= outerRange.start)) &&
5165        (outerRange.end === null || (innerRange.end !== null && innerRange.end <= outerRange.end));
5166}
5167function rangeContainsMarker(range, date) {
5168    return (range.start === null || date >= range.start) &&
5169        (range.end === null || date < range.end);
5170}
5171// If the given date is not within the given range, move it inside.
5172// (If it's past the end, make it one millisecond before the end).
5173function constrainMarkerToRange(date, range) {
5174    if (range.start != null && date < range.start) {
5175        return range.start;
5176    }
5177    if (range.end != null && date >= range.end) {
5178        return new Date(range.end.valueOf() - 1);
5179    }
5180    return date;
5181}
5182
5183/* Date stuff that doesn't belong in datelib core
5184----------------------------------------------------------------------------------------------------------------------*/
5185// given a timed range, computes an all-day range that has the same exact duration,
5186// but whose start time is aligned with the start of the day.
5187function computeAlignedDayRange(timedRange) {
5188    let dayCnt = Math.floor(diffDays(timedRange.start, timedRange.end)) || 1;
5189    let start = startOfDay(timedRange.start);
5190    let end = addDays(start, dayCnt);
5191    return { start, end };
5192}
5193// given a timed range, computes an all-day range based on how for the end date bleeds into the next day
5194// TODO: give nextDayThreshold a default arg
5195function computeVisibleDayRange(timedRange, nextDayThreshold = createDuration(0)) {
5196    let startDay = null;
5197    let endDay = null;
5198    if (timedRange.end) {
5199        endDay = startOfDay(timedRange.end);
5200        let endTimeMS = timedRange.end.valueOf() - endDay.valueOf(); // # of milliseconds into `endDay`
5201        // If the end time is actually inclusively part of the next day and is equal to or
5202        // beyond the next day threshold, adjust the end to be the exclusive end of `endDay`.
5203        // Otherwise, leaving it as inclusive will cause it to exclude `endDay`.
5204        if (endTimeMS && endTimeMS >= asRoughMs(nextDayThreshold)) {
5205            endDay = addDays(endDay, 1);
5206        }
5207    }
5208    if (timedRange.start) {
5209        startDay = startOfDay(timedRange.start); // the beginning of the day the range starts
5210        // If end is within `startDay` but not past nextDayThreshold, assign the default duration of one day.
5211        if (endDay && endDay <= startDay) {
5212            endDay = addDays(startDay, 1);
5213        }
5214    }
5215    return { start: startDay, end: endDay };
5216}
5217// spans from one day into another?
5218function isMultiDayRange(range) {
5219    let visibleRange = computeVisibleDayRange(range);
5220    return diffDays(visibleRange.start, visibleRange.end) > 1;
5221}
5222function diffDates(date0, date1, dateEnv, largeUnit) {
5223    if (largeUnit === 'year') {
5224        return createDuration(dateEnv.diffWholeYears(date0, date1), 'year');
5225    }
5226    if (largeUnit === 'month') {
5227        return createDuration(dateEnv.diffWholeMonths(date0, date1), 'month');
5228    }
5229    return diffDayAndTime(date0, date1); // returns a duration
5230}
5231
5232function reduceCurrentDate(currentDate, action) {
5233    switch (action.type) {
5234        case 'CHANGE_DATE':
5235            return action.dateMarker;
5236        default:
5237            return currentDate;
5238    }
5239}
5240function getInitialDate(options, dateEnv) {
5241    let initialDateInput = options.initialDate;
5242    // compute the initial ambig-timezone date
5243    if (initialDateInput != null) {
5244        return dateEnv.createMarker(initialDateInput);
5245    }
5246    return getNow(options.now, dateEnv); // getNow already returns unzoned
5247}
5248function getNow(nowInput, dateEnv) {
5249    if (typeof nowInput === 'function') {
5250        nowInput = nowInput();
5251    }
5252    if (nowInput == null) {
5253        return dateEnv.createNowMarker();
5254    }
5255    return dateEnv.createMarker(nowInput);
5256}
5257
5258class DateProfileGenerator {
5259    constructor(props) {
5260        this.props = props;
5261        this.nowDate = getNow(props.nowInput, props.dateEnv);
5262        this.initHiddenDays();
5263    }
5264    /* Date Range Computation
5265    ------------------------------------------------------------------------------------------------------------------*/
5266    // Builds a structure with info about what the dates/ranges will be for the "prev" view.
5267    buildPrev(currentDateProfile, currentDate, forceToValid) {
5268        let { dateEnv } = this.props;
5269        let prevDate = dateEnv.subtract(dateEnv.startOf(currentDate, currentDateProfile.currentRangeUnit), // important for start-of-month
5270        currentDateProfile.dateIncrement);
5271        return this.build(prevDate, -1, forceToValid);
5272    }
5273    // Builds a structure with info about what the dates/ranges will be for the "next" view.
5274    buildNext(currentDateProfile, currentDate, forceToValid) {
5275        let { dateEnv } = this.props;
5276        let nextDate = dateEnv.add(dateEnv.startOf(currentDate, currentDateProfile.currentRangeUnit), // important for start-of-month
5277        currentDateProfile.dateIncrement);
5278        return this.build(nextDate, 1, forceToValid);
5279    }
5280    // Builds a structure holding dates/ranges for rendering around the given date.
5281    // Optional direction param indicates whether the date is being incremented/decremented
5282    // from its previous value. decremented = -1, incremented = 1 (default).
5283    build(currentDate, direction, forceToValid = true) {
5284        let { props } = this;
5285        let validRange;
5286        let currentInfo;
5287        let isRangeAllDay;
5288        let renderRange;
5289        let activeRange;
5290        let isValid;
5291        validRange = this.buildValidRange();
5292        validRange = this.trimHiddenDays(validRange);
5293        if (forceToValid) {
5294            currentDate = constrainMarkerToRange(currentDate, validRange);
5295        }
5296        currentInfo = this.buildCurrentRangeInfo(currentDate, direction);
5297        isRangeAllDay = /^(year|month|week|day)$/.test(currentInfo.unit);
5298        renderRange = this.buildRenderRange(this.trimHiddenDays(currentInfo.range), currentInfo.unit, isRangeAllDay);
5299        renderRange = this.trimHiddenDays(renderRange);
5300        activeRange = renderRange;
5301        if (!props.showNonCurrentDates) {
5302            activeRange = intersectRanges(activeRange, currentInfo.range);
5303        }
5304        activeRange = this.adjustActiveRange(activeRange);
5305        activeRange = intersectRanges(activeRange, validRange); // might return null
5306        // it's invalid if the originally requested date is not contained,
5307        // or if the range is completely outside of the valid range.
5308        isValid = rangesIntersect(currentInfo.range, validRange);
5309        // HACK: constrain to render-range so `currentDate` is more useful to view rendering
5310        if (!rangeContainsMarker(renderRange, currentDate)) {
5311            currentDate = renderRange.start;
5312        }
5313        return {
5314            currentDate,
5315            // constraint for where prev/next operations can go and where events can be dragged/resized to.
5316            // an object with optional start and end properties.
5317            validRange,
5318            // range the view is formally responsible for.
5319            // for example, a month view might have 1st-31st, excluding padded dates
5320            currentRange: currentInfo.range,
5321            // name of largest unit being displayed, like "month" or "week"
5322            currentRangeUnit: currentInfo.unit,
5323            isRangeAllDay,
5324            // dates that display events and accept drag-n-drop
5325            // will be `null` if no dates accept events
5326            activeRange,
5327            // date range with a rendered skeleton
5328            // includes not-active days that need some sort of DOM
5329            renderRange,
5330            // Duration object that denotes the first visible time of any given day
5331            slotMinTime: props.slotMinTime,
5332            // Duration object that denotes the exclusive visible end time of any given day
5333            slotMaxTime: props.slotMaxTime,
5334            isValid,
5335            // how far the current date will move for a prev/next operation
5336            dateIncrement: this.buildDateIncrement(currentInfo.duration),
5337            // pass a fallback (might be null) ^
5338        };
5339    }
5340    // Builds an object with optional start/end properties.
5341    // Indicates the minimum/maximum dates to display.
5342    // not responsible for trimming hidden days.
5343    buildValidRange() {
5344        let input = this.props.validRangeInput;
5345        let simpleInput = typeof input === 'function'
5346            ? input.call(this.props.calendarApi, this.nowDate)
5347            : input;
5348        return this.refineRange(simpleInput) ||
5349            { start: null, end: null }; // completely open-ended
5350    }
5351    // Builds a structure with info about the "current" range, the range that is
5352    // highlighted as being the current month for example.
5353    // See build() for a description of `direction`.
5354    // Guaranteed to have `range` and `unit` properties. `duration` is optional.
5355    buildCurrentRangeInfo(date, direction) {
5356        let { props } = this;
5357        let duration = null;
5358        let unit = null;
5359        let range = null;
5360        let dayCount;
5361        if (props.duration) {
5362            duration = props.duration;
5363            unit = props.durationUnit;
5364            range = this.buildRangeFromDuration(date, direction, duration, unit);
5365        }
5366        else if ((dayCount = this.props.dayCount)) {
5367            unit = 'day';
5368            range = this.buildRangeFromDayCount(date, direction, dayCount);
5369        }
5370        else if ((range = this.buildCustomVisibleRange(date))) {
5371            unit = props.dateEnv.greatestWholeUnit(range.start, range.end).unit;
5372        }
5373        else {
5374            duration = this.getFallbackDuration();
5375            unit = greatestDurationDenominator(duration).unit;
5376            range = this.buildRangeFromDuration(date, direction, duration, unit);
5377        }
5378        return { duration, unit, range };
5379    }
5380    getFallbackDuration() {
5381        return createDuration({ day: 1 });
5382    }
5383    // Returns a new activeRange to have time values (un-ambiguate)
5384    // slotMinTime or slotMaxTime causes the range to expand.
5385    adjustActiveRange(range) {
5386        let { dateEnv, usesMinMaxTime, slotMinTime, slotMaxTime } = this.props;
5387        let { start, end } = range;
5388        if (usesMinMaxTime) {
5389            // expand active range if slotMinTime is negative (why not when positive?)
5390            if (asRoughDays(slotMinTime) < 0) {
5391                start = startOfDay(start); // necessary?
5392                start = dateEnv.add(start, slotMinTime);
5393            }
5394            // expand active range if slotMaxTime is beyond one day (why not when negative?)
5395            if (asRoughDays(slotMaxTime) > 1) {
5396                end = startOfDay(end); // necessary?
5397                end = addDays(end, -1);
5398                end = dateEnv.add(end, slotMaxTime);
5399            }
5400        }
5401        return { start, end };
5402    }
5403    // Builds the "current" range when it is specified as an explicit duration.
5404    // `unit` is the already-computed greatestDurationDenominator unit of duration.
5405    buildRangeFromDuration(date, direction, duration, unit) {
5406        let { dateEnv, dateAlignment } = this.props;
5407        let start;
5408        let end;
5409        let res;
5410        // compute what the alignment should be
5411        if (!dateAlignment) {
5412            let { dateIncrement } = this.props;
5413            if (dateIncrement) {
5414                // use the smaller of the two units
5415                if (asRoughMs(dateIncrement) < asRoughMs(duration)) {
5416                    dateAlignment = greatestDurationDenominator(dateIncrement).unit;
5417                }
5418                else {
5419                    dateAlignment = unit;
5420                }
5421            }
5422            else {
5423                dateAlignment = unit;
5424            }
5425        }
5426        // if the view displays a single day or smaller
5427        if (asRoughDays(duration) <= 1) {
5428            if (this.isHiddenDay(start)) {
5429                start = this.skipHiddenDays(start, direction);
5430                start = startOfDay(start);
5431            }
5432        }
5433        function computeRes() {
5434            start = dateEnv.startOf(date, dateAlignment);
5435            end = dateEnv.add(start, duration);
5436            res = { start, end };
5437        }
5438        computeRes();
5439        // if range is completely enveloped by hidden days, go past the hidden days
5440        if (!this.trimHiddenDays(res)) {
5441            date = this.skipHiddenDays(date, direction);
5442            computeRes();
5443        }
5444        return res;
5445    }
5446    // Builds the "current" range when a dayCount is specified.
5447    buildRangeFromDayCount(date, direction, dayCount) {
5448        let { dateEnv, dateAlignment } = this.props;
5449        let runningCount = 0;
5450        let start = date;
5451        let end;
5452        if (dateAlignment) {
5453            start = dateEnv.startOf(start, dateAlignment);
5454        }
5455        start = startOfDay(start);
5456        start = this.skipHiddenDays(start, direction);
5457        end = start;
5458        do {
5459            end = addDays(end, 1);
5460            if (!this.isHiddenDay(end)) {
5461                runningCount += 1;
5462            }
5463        } while (runningCount < dayCount);
5464        return { start, end };
5465    }
5466    // Builds a normalized range object for the "visible" range,
5467    // which is a way to define the currentRange and activeRange at the same time.
5468    buildCustomVisibleRange(date) {
5469        let { props } = this;
5470        let input = props.visibleRangeInput;
5471        let simpleInput = typeof input === 'function'
5472            ? input.call(props.calendarApi, props.dateEnv.toDate(date))
5473            : input;
5474        let range = this.refineRange(simpleInput);
5475        if (range && (range.start == null || range.end == null)) {
5476            return null;
5477        }
5478        return range;
5479    }
5480    // Computes the range that will represent the element/cells for *rendering*,
5481    // but which may have voided days/times.
5482    // not responsible for trimming hidden days.
5483    buildRenderRange(currentRange, currentRangeUnit, isRangeAllDay) {
5484        return currentRange;
5485    }
5486    // Compute the duration value that should be added/substracted to the current date
5487    // when a prev/next operation happens.
5488    buildDateIncrement(fallback) {
5489        let { dateIncrement } = this.props;
5490        let customAlignment;
5491        if (dateIncrement) {
5492            return dateIncrement;
5493        }
5494        if ((customAlignment = this.props.dateAlignment)) {
5495            return createDuration(1, customAlignment);
5496        }
5497        if (fallback) {
5498            return fallback;
5499        }
5500        return createDuration({ days: 1 });
5501    }
5502    refineRange(rangeInput) {
5503        if (rangeInput) {
5504            let range = parseRange(rangeInput, this.props.dateEnv);
5505            if (range) {
5506                range = computeVisibleDayRange(range);
5507            }
5508            return range;
5509        }
5510        return null;
5511    }
5512    /* Hidden Days
5513    ------------------------------------------------------------------------------------------------------------------*/
5514    // Initializes internal variables related to calculating hidden days-of-week
5515    initHiddenDays() {
5516        let hiddenDays = this.props.hiddenDays || []; // array of day-of-week indices that are hidden
5517        let isHiddenDayHash = []; // is the day-of-week hidden? (hash with day-of-week-index -> bool)
5518        let dayCnt = 0;
5519        let i;
5520        if (this.props.weekends === false) {
5521            hiddenDays.push(0, 6); // 0=sunday, 6=saturday
5522        }
5523        for (i = 0; i < 7; i += 1) {
5524            if (!(isHiddenDayHash[i] = hiddenDays.indexOf(i) !== -1)) {
5525                dayCnt += 1;
5526            }
5527        }
5528        if (!dayCnt) {
5529            throw new Error('invalid hiddenDays'); // all days were hidden? bad.
5530        }
5531        this.isHiddenDayHash = isHiddenDayHash;
5532    }
5533    // Remove days from the beginning and end of the range that are computed as hidden.
5534    // If the whole range is trimmed off, returns null
5535    trimHiddenDays(range) {
5536        let { start, end } = range;
5537        if (start) {
5538            start = this.skipHiddenDays(start);
5539        }
5540        if (end) {
5541            end = this.skipHiddenDays(end, -1, true);
5542        }
5543        if (start == null || end == null || start < end) {
5544            return { start, end };
5545        }
5546        return null;
5547    }
5548    // Is the current day hidden?
5549    // `day` is a day-of-week index (0-6), or a Date (used for UTC)
5550    isHiddenDay(day) {
5551        if (day instanceof Date) {
5552            day = day.getUTCDay();
5553        }
5554        return this.isHiddenDayHash[day];
5555    }
5556    // Incrementing the current day until it is no longer a hidden day, returning a copy.
5557    // DOES NOT CONSIDER validRange!
5558    // If the initial value of `date` is not a hidden day, don't do anything.
5559    // Pass `isExclusive` as `true` if you are dealing with an end date.
5560    // `inc` defaults to `1` (increment one day forward each time)
5561    skipHiddenDays(date, inc = 1, isExclusive = false) {
5562        while (this.isHiddenDayHash[(date.getUTCDay() + (isExclusive ? inc : 0) + 7) % 7]) {
5563            date = addDays(date, inc);
5564        }
5565        return date;
5566    }
5567}
5568
5569function createEventInstance(defId, range, forcedStartTzo, forcedEndTzo) {
5570    return {
5571        instanceId: guid(),
5572        defId,
5573        range,
5574        forcedStartTzo: forcedStartTzo == null ? null : forcedStartTzo,
5575        forcedEndTzo: forcedEndTzo == null ? null : forcedEndTzo,
5576    };
5577}
5578
5579function parseRecurring(refined, defaultAllDay, dateEnv, recurringTypes) {
5580    for (let i = 0; i < recurringTypes.length; i += 1) {
5581        let parsed = recurringTypes[i].parse(refined, dateEnv);
5582        if (parsed) {
5583            let { allDay } = refined;
5584            if (allDay == null) {
5585                allDay = defaultAllDay;
5586                if (allDay == null) {
5587                    allDay = parsed.allDayGuess;
5588                    if (allDay == null) {
5589                        allDay = false;
5590                    }
5591                }
5592            }
5593            return {
5594                allDay,
5595                duration: parsed.duration,
5596                typeData: parsed.typeData,
5597                typeId: i,
5598            };
5599        }
5600    }
5601    return null;
5602}
5603function expandRecurring(eventStore, framingRange, context) {
5604    let { dateEnv, pluginHooks, options } = context;
5605    let { defs, instances } = eventStore;
5606    // remove existing recurring instances
5607    // TODO: bad. always expand events as a second step
5608    instances = filterHash(instances, (instance) => !defs[instance.defId].recurringDef);
5609    for (let defId in defs) {
5610        let def = defs[defId];
5611        if (def.recurringDef) {
5612            let { duration } = def.recurringDef;
5613            if (!duration) {
5614                duration = def.allDay ?
5615                    options.defaultAllDayEventDuration :
5616                    options.defaultTimedEventDuration;
5617            }
5618            let starts = expandRecurringRanges(def, duration, framingRange, dateEnv, pluginHooks.recurringTypes);
5619            for (let start of starts) {
5620                let instance = createEventInstance(defId, {
5621                    start,
5622                    end: dateEnv.add(start, duration),
5623                });
5624                instances[instance.instanceId] = instance;
5625            }
5626        }
5627    }
5628    return { defs, instances };
5629}
5630/*
5631Event MUST have a recurringDef
5632*/
5633function expandRecurringRanges(eventDef, duration, framingRange, dateEnv, recurringTypes) {
5634    let typeDef = recurringTypes[eventDef.recurringDef.typeId];
5635    let markers = typeDef.expand(eventDef.recurringDef.typeData, {
5636        start: dateEnv.subtract(framingRange.start, duration),
5637        end: framingRange.end,
5638    }, dateEnv);
5639    // the recurrence plugins don't guarantee that all-day events are start-of-day, so we have to
5640    if (eventDef.allDay) {
5641        markers = markers.map(startOfDay);
5642    }
5643    return markers;
5644}
5645
5646const EVENT_NON_DATE_REFINERS = {
5647    id: String,
5648    groupId: String,
5649    title: String,
5650    url: String,
5651    interactive: Boolean,
5652};
5653const EVENT_DATE_REFINERS = {
5654    start: identity,
5655    end: identity,
5656    date: identity,
5657    allDay: Boolean,
5658};
5659const EVENT_REFINERS = Object.assign(Object.assign(Object.assign({}, EVENT_NON_DATE_REFINERS), EVENT_DATE_REFINERS), { extendedProps: identity });
5660function parseEvent(raw, eventSource, context, allowOpenRange, refiners = buildEventRefiners(context), defIdMap, instanceIdMap) {
5661    let { refined, extra } = refineEventDef(raw, context, refiners);
5662    let defaultAllDay = computeIsDefaultAllDay(eventSource, context);
5663    let recurringRes = parseRecurring(refined, defaultAllDay, context.dateEnv, context.pluginHooks.recurringTypes);
5664    if (recurringRes) {
5665        let def = parseEventDef(refined, extra, eventSource ? eventSource.sourceId : '', recurringRes.allDay, Boolean(recurringRes.duration), context, defIdMap);
5666        def.recurringDef = {
5667            typeId: recurringRes.typeId,
5668            typeData: recurringRes.typeData,
5669            duration: recurringRes.duration,
5670        };
5671        return { def, instance: null };
5672    }
5673    let singleRes = parseSingle(refined, defaultAllDay, context, allowOpenRange);
5674    if (singleRes) {
5675        let def = parseEventDef(refined, extra, eventSource ? eventSource.sourceId : '', singleRes.allDay, singleRes.hasEnd, context, defIdMap);
5676        let instance = createEventInstance(def.defId, singleRes.range, singleRes.forcedStartTzo, singleRes.forcedEndTzo);
5677        if (instanceIdMap && def.publicId && instanceIdMap[def.publicId]) {
5678            instance.instanceId = instanceIdMap[def.publicId];
5679        }
5680        return { def, instance };
5681    }
5682    return null;
5683}
5684function refineEventDef(raw, context, refiners = buildEventRefiners(context)) {
5685    return refineProps(raw, refiners);
5686}
5687function buildEventRefiners(context) {
5688    return Object.assign(Object.assign(Object.assign({}, EVENT_UI_REFINERS), EVENT_REFINERS), context.pluginHooks.eventRefiners);
5689}
5690/*
5691Will NOT populate extendedProps with the leftover properties.
5692Will NOT populate date-related props.
5693*/
5694function parseEventDef(refined, extra, sourceId, allDay, hasEnd, context, defIdMap) {
5695    let def = {
5696        title: refined.title || '',
5697        groupId: refined.groupId || '',
5698        publicId: refined.id || '',
5699        url: refined.url || '',
5700        recurringDef: null,
5701        defId: ((defIdMap && refined.id) ? defIdMap[refined.id] : '') || guid(),
5702        sourceId,
5703        allDay,
5704        hasEnd,
5705        interactive: refined.interactive,
5706        ui: createEventUi(refined, context),
5707        extendedProps: Object.assign(Object.assign({}, (refined.extendedProps || {})), extra),
5708    };
5709    for (let memberAdder of context.pluginHooks.eventDefMemberAdders) {
5710        Object.assign(def, memberAdder(refined));
5711    }
5712    // help out EventImpl from having user modify props
5713    Object.freeze(def.ui.classNames);
5714    Object.freeze(def.extendedProps);
5715    return def;
5716}
5717function parseSingle(refined, defaultAllDay, context, allowOpenRange) {
5718    let { allDay } = refined;
5719    let startMeta;
5720    let startMarker = null;
5721    let hasEnd = false;
5722    let endMeta;
5723    let endMarker = null;
5724    let startInput = refined.start != null ? refined.start : refined.date;
5725    startMeta = context.dateEnv.createMarkerMeta(startInput);
5726    if (startMeta) {
5727        startMarker = startMeta.marker;
5728    }
5729    else if (!allowOpenRange) {
5730        return null;
5731    }
5732    if (refined.end != null) {
5733        endMeta = context.dateEnv.createMarkerMeta(refined.end);
5734    }
5735    if (allDay == null) {
5736        if (defaultAllDay != null) {
5737            allDay = defaultAllDay;
5738        }
5739        else {
5740            // fall back to the date props LAST
5741            allDay = (!startMeta || startMeta.isTimeUnspecified) &&
5742                (!endMeta || endMeta.isTimeUnspecified);
5743        }
5744    }
5745    if (allDay && startMarker) {
5746        startMarker = startOfDay(startMarker);
5747    }
5748    if (endMeta) {
5749        endMarker = endMeta.marker;
5750        if (allDay) {
5751            endMarker = startOfDay(endMarker);
5752        }
5753        if (startMarker && endMarker <= startMarker) {
5754            endMarker = null;
5755        }
5756    }
5757    if (endMarker) {
5758        hasEnd = true;
5759    }
5760    else if (!allowOpenRange) {
5761        hasEnd = context.options.forceEventDuration || false;
5762        endMarker = context.dateEnv.add(startMarker, allDay ?
5763            context.options.defaultAllDayEventDuration :
5764            context.options.defaultTimedEventDuration);
5765    }
5766    return {
5767        allDay,
5768        hasEnd,
5769        range: { start: startMarker, end: endMarker },
5770        forcedStartTzo: startMeta ? startMeta.forcedTzo : null,
5771        forcedEndTzo: endMeta ? endMeta.forcedTzo : null,
5772    };
5773}
5774function computeIsDefaultAllDay(eventSource, context) {
5775    let res = null;
5776    if (eventSource) {
5777        res = eventSource.defaultAllDay;
5778    }
5779    if (res == null) {
5780        res = context.options.defaultAllDay;
5781    }
5782    return res;
5783}
5784
5785function parseEvents(rawEvents, eventSource, context, allowOpenRange, defIdMap, instanceIdMap) {
5786    let eventStore = createEmptyEventStore();
5787    let eventRefiners = buildEventRefiners(context);
5788    for (let rawEvent of rawEvents) {
5789        let tuple = parseEvent(rawEvent, eventSource, context, allowOpenRange, eventRefiners, defIdMap, instanceIdMap);
5790        if (tuple) {
5791            eventTupleToStore(tuple, eventStore);
5792        }
5793    }
5794    return eventStore;
5795}
5796function eventTupleToStore(tuple, eventStore = createEmptyEventStore()) {
5797    eventStore.defs[tuple.def.defId] = tuple.def;
5798    if (tuple.instance) {
5799        eventStore.instances[tuple.instance.instanceId] = tuple.instance;
5800    }
5801    return eventStore;
5802}
5803// retrieves events that have the same groupId as the instance specified by `instanceId`
5804// or they are the same as the instance.
5805// why might instanceId not be in the store? an event from another calendar?
5806function getRelevantEvents(eventStore, instanceId) {
5807    let instance = eventStore.instances[instanceId];
5808    if (instance) {
5809        let def = eventStore.defs[instance.defId];
5810        // get events/instances with same group
5811        let newStore = filterEventStoreDefs(eventStore, (lookDef) => isEventDefsGrouped(def, lookDef));
5812        // add the original
5813        // TODO: wish we could use eventTupleToStore or something like it
5814        newStore.defs[def.defId] = def;
5815        newStore.instances[instance.instanceId] = instance;
5816        return newStore;
5817    }
5818    return createEmptyEventStore();
5819}
5820function isEventDefsGrouped(def0, def1) {
5821    return Boolean(def0.groupId && def0.groupId === def1.groupId);
5822}
5823function createEmptyEventStore() {
5824    return { defs: {}, instances: {} };
5825}
5826function mergeEventStores(store0, store1) {
5827    return {
5828        defs: Object.assign(Object.assign({}, store0.defs), store1.defs),
5829        instances: Object.assign(Object.assign({}, store0.instances), store1.instances),
5830    };
5831}
5832function filterEventStoreDefs(eventStore, filterFunc) {
5833    let defs = filterHash(eventStore.defs, filterFunc);
5834    let instances = filterHash(eventStore.instances, (instance) => (defs[instance.defId] // still exists?
5835    ));
5836    return { defs, instances };
5837}
5838function excludeSubEventStore(master, sub) {
5839    let { defs, instances } = master;
5840    let filteredDefs = {};
5841    let filteredInstances = {};
5842    for (let defId in defs) {
5843        if (!sub.defs[defId]) { // not explicitly excluded
5844            filteredDefs[defId] = defs[defId];
5845        }
5846    }
5847    for (let instanceId in instances) {
5848        if (!sub.instances[instanceId] && // not explicitly excluded
5849            filteredDefs[instances[instanceId].defId] // def wasn't filtered away
5850        ) {
5851            filteredInstances[instanceId] = instances[instanceId];
5852        }
5853    }
5854    return {
5855        defs: filteredDefs,
5856        instances: filteredInstances,
5857    };
5858}
5859
5860function normalizeConstraint(input, context) {
5861    if (Array.isArray(input)) {
5862        return parseEvents(input, null, context, true); // allowOpenRange=true
5863    }
5864    if (typeof input === 'object' && input) { // non-null object
5865        return parseEvents([input], null, context, true); // allowOpenRange=true
5866    }
5867    if (input != null) {
5868        return String(input);
5869    }
5870    return null;
5871}
5872
5873function parseClassNames(raw) {
5874    if (Array.isArray(raw)) {
5875        return raw;
5876    }
5877    if (typeof raw === 'string') {
5878        return raw.split(/\s+/);
5879    }
5880    return [];
5881}
5882
5883// TODO: better called "EventSettings" or "EventConfig"
5884// TODO: move this file into structs
5885// TODO: separate constraint/overlap/allow, because selection uses only that, not other props
5886const EVENT_UI_REFINERS = {
5887    display: String,
5888    editable: Boolean,
5889    startEditable: Boolean,
5890    durationEditable: Boolean,
5891    constraint: identity,
5892    overlap: identity,
5893    allow: identity,
5894    className: parseClassNames,
5895    classNames: parseClassNames,
5896    color: String,
5897    backgroundColor: String,
5898    borderColor: String,
5899    textColor: String,
5900};
5901const EMPTY_EVENT_UI = {
5902    display: null,
5903    startEditable: null,
5904    durationEditable: null,
5905    constraints: [],
5906    overlap: null,
5907    allows: [],
5908    backgroundColor: '',
5909    borderColor: '',
5910    textColor: '',
5911    classNames: [],
5912};
5913function createEventUi(refined, context) {
5914    let constraint = normalizeConstraint(refined.constraint, context);
5915    return {
5916        display: refined.display || null,
5917        startEditable: refined.startEditable != null ? refined.startEditable : refined.editable,
5918        durationEditable: refined.durationEditable != null ? refined.durationEditable : refined.editable,
5919        constraints: constraint != null ? [constraint] : [],
5920        overlap: refined.overlap != null ? refined.overlap : null,
5921        allows: refined.allow != null ? [refined.allow] : [],
5922        backgroundColor: refined.backgroundColor || refined.color || '',
5923        borderColor: refined.borderColor || refined.color || '',
5924        textColor: refined.textColor || '',
5925        classNames: (refined.className || []).concat(refined.classNames || []), // join singular and plural
5926    };
5927}
5928// TODO: prevent against problems with <2 args!
5929function combineEventUis(uis) {
5930    return uis.reduce(combineTwoEventUis, EMPTY_EVENT_UI);
5931}
5932function combineTwoEventUis(item0, item1) {
5933    return {
5934        display: item1.display != null ? item1.display : item0.display,
5935        startEditable: item1.startEditable != null ? item1.startEditable : item0.startEditable,
5936        durationEditable: item1.durationEditable != null ? item1.durationEditable : item0.durationEditable,
5937        constraints: item0.constraints.concat(item1.constraints),
5938        overlap: typeof item1.overlap === 'boolean' ? item1.overlap : item0.overlap,
5939        allows: item0.allows.concat(item1.allows),
5940        backgroundColor: item1.backgroundColor || item0.backgroundColor,
5941        borderColor: item1.borderColor || item0.borderColor,
5942        textColor: item1.textColor || item0.textColor,
5943        classNames: item0.classNames.concat(item1.classNames),
5944    };
5945}
5946
5947const EVENT_SOURCE_REFINERS = {
5948    id: String,
5949    defaultAllDay: Boolean,
5950    url: String,
5951    format: String,
5952    events: identity,
5953    eventDataTransform: identity,
5954    // for any network-related sources
5955    success: identity,
5956    failure: identity,
5957};
5958function parseEventSource(raw, context, refiners = buildEventSourceRefiners(context)) {
5959    let rawObj;
5960    if (typeof raw === 'string') {
5961        rawObj = { url: raw };
5962    }
5963    else if (typeof raw === 'function' || Array.isArray(raw)) {
5964        rawObj = { events: raw };
5965    }
5966    else if (typeof raw === 'object' && raw) { // not null
5967        rawObj = raw;
5968    }
5969    if (rawObj) {
5970        let { refined, extra } = refineProps(rawObj, refiners);
5971        let metaRes = buildEventSourceMeta(refined, context);
5972        if (metaRes) {
5973            return {
5974                _raw: raw,
5975                isFetching: false,
5976                latestFetchId: '',
5977                fetchRange: null,
5978                defaultAllDay: refined.defaultAllDay,
5979                eventDataTransform: refined.eventDataTransform,
5980                success: refined.success,
5981                failure: refined.failure,
5982                publicId: refined.id || '',
5983                sourceId: guid(),
5984                sourceDefId: metaRes.sourceDefId,
5985                meta: metaRes.meta,
5986                ui: createEventUi(refined, context),
5987                extendedProps: extra,
5988            };
5989        }
5990    }
5991    return null;
5992}
5993function buildEventSourceRefiners(context) {
5994    return Object.assign(Object.assign(Object.assign({}, EVENT_UI_REFINERS), EVENT_SOURCE_REFINERS), context.pluginHooks.eventSourceRefiners);
5995}
5996function buildEventSourceMeta(raw, context) {
5997    let defs = context.pluginHooks.eventSourceDefs;
5998    for (let i = defs.length - 1; i >= 0; i -= 1) { // later-added plugins take precedence
5999        let def = defs[i];
6000        let meta = def.parseMeta(raw);
6001        if (meta) {
6002            return { sourceDefId: i, meta };
6003        }
6004    }
6005    return null;
6006}
6007
6008function reduceEventStore(eventStore, action, eventSources, dateProfile, context) {
6009    switch (action.type) {
6010        case 'RECEIVE_EVENTS': // raw
6011            return receiveRawEvents(eventStore, eventSources[action.sourceId], action.fetchId, action.fetchRange, action.rawEvents, context);
6012        case 'RESET_RAW_EVENTS':
6013            return resetRawEvents(eventStore, eventSources[action.sourceId], action.rawEvents, dateProfile.activeRange, context);
6014        case 'ADD_EVENTS': // already parsed, but not expanded
6015            return addEvent(eventStore, action.eventStore, // new ones
6016            dateProfile ? dateProfile.activeRange : null, context);
6017        case 'RESET_EVENTS':
6018            return action.eventStore;
6019        case 'MERGE_EVENTS': // already parsed and expanded
6020            return mergeEventStores(eventStore, action.eventStore);
6021        case 'PREV': // TODO: how do we track all actions that affect dateProfile :(
6022        case 'NEXT':
6023        case 'CHANGE_DATE':
6024        case 'CHANGE_VIEW_TYPE':
6025            if (dateProfile) {
6026                return expandRecurring(eventStore, dateProfile.activeRange, context);
6027            }
6028            return eventStore;
6029        case 'REMOVE_EVENTS':
6030            return excludeSubEventStore(eventStore, action.eventStore);
6031        case 'REMOVE_EVENT_SOURCE':
6032            return excludeEventsBySourceId(eventStore, action.sourceId);
6033        case 'REMOVE_ALL_EVENT_SOURCES':
6034            return filterEventStoreDefs(eventStore, (eventDef) => (!eventDef.sourceId // only keep events with no source id
6035            ));
6036        case 'REMOVE_ALL_EVENTS':
6037            return createEmptyEventStore();
6038        default:
6039            return eventStore;
6040    }
6041}
6042function receiveRawEvents(eventStore, eventSource, fetchId, fetchRange, rawEvents, context) {
6043    if (eventSource && // not already removed
6044        fetchId === eventSource.latestFetchId // TODO: wish this logic was always in event-sources
6045    ) {
6046        let subset = parseEvents(transformRawEvents(rawEvents, eventSource, context), eventSource, context);
6047        if (fetchRange) {
6048            subset = expandRecurring(subset, fetchRange, context);
6049        }
6050        return mergeEventStores(excludeEventsBySourceId(eventStore, eventSource.sourceId), subset);
6051    }
6052    return eventStore;
6053}
6054function resetRawEvents(existingEventStore, eventSource, rawEvents, activeRange, context) {
6055    const { defIdMap, instanceIdMap } = buildPublicIdMaps(existingEventStore);
6056    let newEventStore = parseEvents(transformRawEvents(rawEvents, eventSource, context), eventSource, context, false, defIdMap, instanceIdMap);
6057    return expandRecurring(newEventStore, activeRange, context);
6058}
6059function transformRawEvents(rawEvents, eventSource, context) {
6060    let calEachTransform = context.options.eventDataTransform;
6061    let sourceEachTransform = eventSource ? eventSource.eventDataTransform : null;
6062    if (sourceEachTransform) {
6063        rawEvents = transformEachRawEvent(rawEvents, sourceEachTransform);
6064    }
6065    if (calEachTransform) {
6066        rawEvents = transformEachRawEvent(rawEvents, calEachTransform);
6067    }
6068    return rawEvents;
6069}
6070function transformEachRawEvent(rawEvents, func) {
6071    let refinedEvents;
6072    if (!func) {
6073        refinedEvents = rawEvents;
6074    }
6075    else {
6076        refinedEvents = [];
6077        for (let rawEvent of rawEvents) {
6078            let refinedEvent = func(rawEvent);
6079            if (refinedEvent) {
6080                refinedEvents.push(refinedEvent);
6081            }
6082            else if (refinedEvent == null) {
6083                refinedEvents.push(rawEvent);
6084            } // if a different falsy value, do nothing
6085        }
6086    }
6087    return refinedEvents;
6088}
6089function addEvent(eventStore, subset, expandRange, context) {
6090    if (expandRange) {
6091        subset = expandRecurring(subset, expandRange, context);
6092    }
6093    return mergeEventStores(eventStore, subset);
6094}
6095function rezoneEventStoreDates(eventStore, oldDateEnv, newDateEnv) {
6096    let { defs } = eventStore;
6097    let instances = mapHash(eventStore.instances, (instance) => {
6098        let def = defs[instance.defId];
6099        if (def.allDay) {
6100            return instance; // isn't dependent on timezone
6101        }
6102        return Object.assign(Object.assign({}, instance), { range: {
6103                start: newDateEnv.createMarker(oldDateEnv.toDate(instance.range.start, instance.forcedStartTzo)),
6104                end: newDateEnv.createMarker(oldDateEnv.toDate(instance.range.end, instance.forcedEndTzo)),
6105            }, forcedStartTzo: newDateEnv.canComputeOffset ? null : instance.forcedStartTzo, forcedEndTzo: newDateEnv.canComputeOffset ? null : instance.forcedEndTzo });
6106    });
6107    return { defs, instances };
6108}
6109function excludeEventsBySourceId(eventStore, sourceId) {
6110    return filterEventStoreDefs(eventStore, (eventDef) => eventDef.sourceId !== sourceId);
6111}
6112// QUESTION: why not just return instances? do a general object-property-exclusion util
6113function excludeInstances(eventStore, removals) {
6114    return {
6115        defs: eventStore.defs,
6116        instances: filterHash(eventStore.instances, (instance) => !removals[instance.instanceId]),
6117    };
6118}
6119function buildPublicIdMaps(eventStore) {
6120    const { defs, instances } = eventStore;
6121    const defIdMap = {};
6122    const instanceIdMap = {};
6123    for (let defId in defs) {
6124        const def = defs[defId];
6125        const { publicId } = def;
6126        if (publicId) {
6127            defIdMap[publicId] = defId;
6128        }
6129    }
6130    for (let instanceId in instances) {
6131        const instance = instances[instanceId];
6132        const def = defs[instance.defId];
6133        const { publicId } = def;
6134        if (publicId) {
6135            instanceIdMap[publicId] = instanceId;
6136        }
6137    }
6138    return { defIdMap, instanceIdMap };
6139}
6140
6141class Emitter {
6142    constructor() {
6143        this.handlers = {};
6144        this.thisContext = null;
6145    }
6146    setThisContext(thisContext) {
6147        this.thisContext = thisContext;
6148    }
6149    setOptions(options) {
6150        this.options = options;
6151    }
6152    on(type, handler) {
6153        addToHash(this.handlers, type, handler);
6154    }
6155    off(type, handler) {
6156        removeFromHash(this.handlers, type, handler);
6157    }
6158    trigger(type, ...args) {
6159        let attachedHandlers = this.handlers[type] || [];
6160        let optionHandler = this.options && this.options[type];
6161        let handlers = [].concat(optionHandler || [], attachedHandlers);
6162        for (let handler of handlers) {
6163            handler.apply(this.thisContext, args);
6164        }
6165    }
6166    hasHandlers(type) {
6167        return Boolean((this.handlers[type] && this.handlers[type].length) ||
6168            (this.options && this.options[type]));
6169    }
6170}
6171function addToHash(hash, type, handler) {
6172    (hash[type] || (hash[type] = []))
6173        .push(handler);
6174}
6175function removeFromHash(hash, type, handler) {
6176    if (handler) {
6177        if (hash[type]) {
6178            hash[type] = hash[type].filter((func) => func !== handler);
6179        }
6180    }
6181    else {
6182        delete hash[type]; // remove all handler funcs for this type
6183    }
6184}
6185
6186const DEF_DEFAULTS = {
6187    startTime: '09:00',
6188    endTime: '17:00',
6189    daysOfWeek: [1, 2, 3, 4, 5],
6190    display: 'inverse-background',
6191    classNames: 'fc-non-business',
6192    groupId: '_businessHours', // so multiple defs get grouped
6193};
6194/*
6195TODO: pass around as EventDefHash!!!
6196*/
6197function parseBusinessHours(input, context) {
6198    return parseEvents(refineInputs(input), null, context);
6199}
6200function refineInputs(input) {
6201    let rawDefs;
6202    if (input === true) {
6203        rawDefs = [{}]; // will get DEF_DEFAULTS verbatim
6204    }
6205    else if (Array.isArray(input)) {
6206        // if specifying an array, every sub-definition NEEDS a day-of-week
6207        rawDefs = input.filter((rawDef) => rawDef.daysOfWeek);
6208    }
6209    else if (typeof input === 'object' && input) { // non-null object
6210        rawDefs = [input];
6211    }
6212    else { // is probably false
6213        rawDefs = [];
6214    }
6215    rawDefs = rawDefs.map((rawDef) => (Object.assign(Object.assign({}, DEF_DEFAULTS), rawDef)));
6216    return rawDefs;
6217}
6218
6219function triggerDateSelect(selection, pev, context) {
6220    context.emitter.trigger('select', Object.assign(Object.assign({}, buildDateSpanApiWithContext(selection, context)), { jsEvent: pev ? pev.origEvent : null, view: context.viewApi || context.calendarApi.view }));
6221}
6222function triggerDateUnselect(pev, context) {
6223    context.emitter.trigger('unselect', {
6224        jsEvent: pev ? pev.origEvent : null,
6225        view: context.viewApi || context.calendarApi.view,
6226    });
6227}
6228function buildDateSpanApiWithContext(dateSpan, context) {
6229    let props = {};
6230    for (let transform of context.pluginHooks.dateSpanTransforms) {
6231        Object.assign(props, transform(dateSpan, context));
6232    }
6233    Object.assign(props, buildDateSpanApi(dateSpan, context.dateEnv));
6234    return props;
6235}
6236// Given an event's allDay status and start date, return what its fallback end date should be.
6237// TODO: rename to computeDefaultEventEnd
6238function getDefaultEventEnd(allDay, marker, context) {
6239    let { dateEnv, options } = context;
6240    let end = marker;
6241    if (allDay) {
6242        end = startOfDay(end);
6243        end = dateEnv.add(end, options.defaultAllDayEventDuration);
6244    }
6245    else {
6246        end = dateEnv.add(end, options.defaultTimedEventDuration);
6247    }
6248    return end;
6249}
6250
6251// applies the mutation to ALL defs/instances within the event store
6252function applyMutationToEventStore(eventStore, eventConfigBase, mutation, context) {
6253    let eventConfigs = compileEventUis(eventStore.defs, eventConfigBase);
6254    let dest = createEmptyEventStore();
6255    for (let defId in eventStore.defs) {
6256        let def = eventStore.defs[defId];
6257        dest.defs[defId] = applyMutationToEventDef(def, eventConfigs[defId], mutation, context);
6258    }
6259    for (let instanceId in eventStore.instances) {
6260        let instance = eventStore.instances[instanceId];
6261        let def = dest.defs[instance.defId]; // important to grab the newly modified def
6262        dest.instances[instanceId] = applyMutationToEventInstance(instance, def, eventConfigs[instance.defId], mutation, context);
6263    }
6264    return dest;
6265}
6266function applyMutationToEventDef(eventDef, eventConfig, mutation, context) {
6267    let standardProps = mutation.standardProps || {};
6268    // if hasEnd has not been specified, guess a good value based on deltas.
6269    // if duration will change, there's no way the default duration will persist,
6270    // and thus, we need to mark the event as having a real end
6271    if (standardProps.hasEnd == null &&
6272        eventConfig.durationEditable &&
6273        (mutation.startDelta || mutation.endDelta)) {
6274        standardProps.hasEnd = true; // TODO: is this mutation okay?
6275    }
6276    let copy = Object.assign(Object.assign(Object.assign({}, eventDef), standardProps), { ui: Object.assign(Object.assign({}, eventDef.ui), standardProps.ui) });
6277    if (mutation.extendedProps) {
6278        copy.extendedProps = Object.assign(Object.assign({}, copy.extendedProps), mutation.extendedProps);
6279    }
6280    for (let applier of context.pluginHooks.eventDefMutationAppliers) {
6281        applier(copy, mutation, context);
6282    }
6283    if (!copy.hasEnd && context.options.forceEventDuration) {
6284        copy.hasEnd = true;
6285    }
6286    return copy;
6287}
6288function applyMutationToEventInstance(eventInstance, eventDef, // must first be modified by applyMutationToEventDef
6289eventConfig, mutation, context) {
6290    let { dateEnv } = context;
6291    let forceAllDay = mutation.standardProps && mutation.standardProps.allDay === true;
6292    let clearEnd = mutation.standardProps && mutation.standardProps.hasEnd === false;
6293    let copy = Object.assign({}, eventInstance);
6294    if (forceAllDay) {
6295        copy.range = computeAlignedDayRange(copy.range);
6296    }
6297    if (mutation.datesDelta && eventConfig.startEditable) {
6298        copy.range = {
6299            start: dateEnv.add(copy.range.start, mutation.datesDelta),
6300            end: dateEnv.add(copy.range.end, mutation.datesDelta),
6301        };
6302    }
6303    if (mutation.startDelta && eventConfig.durationEditable) {
6304        copy.range = {
6305            start: dateEnv.add(copy.range.start, mutation.startDelta),
6306            end: copy.range.end,
6307        };
6308    }
6309    if (mutation.endDelta && eventConfig.durationEditable) {
6310        copy.range = {
6311            start: copy.range.start,
6312            end: dateEnv.add(copy.range.end, mutation.endDelta),
6313        };
6314    }
6315    if (clearEnd) {
6316        copy.range = {
6317            start: copy.range.start,
6318            end: getDefaultEventEnd(eventDef.allDay, copy.range.start, context),
6319        };
6320    }
6321    // in case event was all-day but the supplied deltas were not
6322    // better util for this?
6323    if (eventDef.allDay) {
6324        copy.range = {
6325            start: startOfDay(copy.range.start),
6326            end: startOfDay(copy.range.end),
6327        };
6328    }
6329    // handle invalid durations
6330    if (copy.range.end < copy.range.start) {
6331        copy.range.end = getDefaultEventEnd(eventDef.allDay, copy.range.start, context);
6332    }
6333    return copy;
6334}
6335
6336class EventSourceImpl {
6337    constructor(context, internalEventSource) {
6338        this.context = context;
6339        this.internalEventSource = internalEventSource;
6340    }
6341    remove() {
6342        this.context.dispatch({
6343            type: 'REMOVE_EVENT_SOURCE',
6344            sourceId: this.internalEventSource.sourceId,
6345        });
6346    }
6347    refetch() {
6348        this.context.dispatch({
6349            type: 'FETCH_EVENT_SOURCES',
6350            sourceIds: [this.internalEventSource.sourceId],
6351            isRefetch: true,
6352        });
6353    }
6354    get id() {
6355        return this.internalEventSource.publicId;
6356    }
6357    get url() {
6358        return this.internalEventSource.meta.url;
6359    }
6360    get format() {
6361        return this.internalEventSource.meta.format; // TODO: bad. not guaranteed
6362    }
6363}
6364
6365class EventImpl {
6366    // instance will be null if expressing a recurring event that has no current instances,
6367    // OR if trying to validate an incoming external event that has no dates assigned
6368    constructor(context, def, instance) {
6369        this._context = context;
6370        this._def = def;
6371        this._instance = instance || null;
6372    }
6373    /*
6374    TODO: make event struct more responsible for this
6375    */
6376    setProp(name, val) {
6377        if (name in EVENT_DATE_REFINERS) {
6378            console.warn('Could not set date-related prop \'name\'. Use one of the date-related methods instead.');
6379            // TODO: make proper aliasing system?
6380        }
6381        else if (name === 'id') {
6382            val = EVENT_NON_DATE_REFINERS[name](val);
6383            this.mutate({
6384                standardProps: { publicId: val }, // hardcoded internal name
6385            });
6386        }
6387        else if (name in EVENT_NON_DATE_REFINERS) {
6388            val = EVENT_NON_DATE_REFINERS[name](val);
6389            this.mutate({
6390                standardProps: { [name]: val },
6391            });
6392        }
6393        else if (name in EVENT_UI_REFINERS) {
6394            let ui = EVENT_UI_REFINERS[name](val);
6395            if (name === 'color') {
6396                ui = { backgroundColor: val, borderColor: val };
6397            }
6398            else if (name === 'editable') {
6399                ui = { startEditable: val, durationEditable: val };
6400            }
6401            else {
6402                ui = { [name]: val };
6403            }
6404            this.mutate({
6405                standardProps: { ui },
6406            });
6407        }
6408        else {
6409            console.warn(`Could not set prop '${name}'. Use setExtendedProp instead.`);
6410        }
6411    }
6412    setExtendedProp(name, val) {
6413        this.mutate({
6414            extendedProps: { [name]: val },
6415        });
6416    }
6417    setStart(startInput, options = {}) {
6418        let { dateEnv } = this._context;
6419        let start = dateEnv.createMarker(startInput);
6420        if (start && this._instance) { // TODO: warning if parsed bad
6421            let instanceRange = this._instance.range;
6422            let startDelta = diffDates(instanceRange.start, start, dateEnv, options.granularity); // what if parsed bad!?
6423            if (options.maintainDuration) {
6424                this.mutate({ datesDelta: startDelta });
6425            }
6426            else {
6427                this.mutate({ startDelta });
6428            }
6429        }
6430    }
6431    setEnd(endInput, options = {}) {
6432        let { dateEnv } = this._context;
6433        let end;
6434        if (endInput != null) {
6435            end = dateEnv.createMarker(endInput);
6436            if (!end) {
6437                return; // TODO: warning if parsed bad
6438            }
6439        }
6440        if (this._instance) {
6441            if (end) {
6442                let endDelta = diffDates(this._instance.range.end, end, dateEnv, options.granularity);
6443                this.mutate({ endDelta });
6444            }
6445            else {
6446                this.mutate({ standardProps: { hasEnd: false } });
6447            }
6448        }
6449    }
6450    setDates(startInput, endInput, options = {}) {
6451        let { dateEnv } = this._context;
6452        let standardProps = { allDay: options.allDay };
6453        let start = dateEnv.createMarker(startInput);
6454        let end;
6455        if (!start) {
6456            return; // TODO: warning if parsed bad
6457        }
6458        if (endInput != null) {
6459            end = dateEnv.createMarker(endInput);
6460            if (!end) { // TODO: warning if parsed bad
6461                return;
6462            }
6463        }
6464        if (this._instance) {
6465            let instanceRange = this._instance.range;
6466            // when computing the diff for an event being converted to all-day,
6467            // compute diff off of the all-day values the way event-mutation does.
6468            if (options.allDay === true) {
6469                instanceRange = computeAlignedDayRange(instanceRange);
6470            }
6471            let startDelta = diffDates(instanceRange.start, start, dateEnv, options.granularity);
6472            if (end) {
6473                let endDelta = diffDates(instanceRange.end, end, dateEnv, options.granularity);
6474                if (durationsEqual(startDelta, endDelta)) {
6475                    this.mutate({ datesDelta: startDelta, standardProps });
6476                }
6477                else {
6478                    this.mutate({ startDelta, endDelta, standardProps });
6479                }
6480            }
6481            else { // means "clear the end"
6482                standardProps.hasEnd = false;
6483                this.mutate({ datesDelta: startDelta, standardProps });
6484            }
6485        }
6486    }
6487    moveStart(deltaInput) {
6488        let delta = createDuration(deltaInput);
6489        if (delta) { // TODO: warning if parsed bad
6490            this.mutate({ startDelta: delta });
6491        }
6492    }
6493    moveEnd(deltaInput) {
6494        let delta = createDuration(deltaInput);
6495        if (delta) { // TODO: warning if parsed bad
6496            this.mutate({ endDelta: delta });
6497        }
6498    }
6499    moveDates(deltaInput) {
6500        let delta = createDuration(deltaInput);
6501        if (delta) { // TODO: warning if parsed bad
6502            this.mutate({ datesDelta: delta });
6503        }
6504    }
6505    setAllDay(allDay, options = {}) {
6506        let standardProps = { allDay };
6507        let { maintainDuration } = options;
6508        if (maintainDuration == null) {
6509            maintainDuration = this._context.options.allDayMaintainDuration;
6510        }
6511        if (this._def.allDay !== allDay) {
6512            standardProps.hasEnd = maintainDuration;
6513        }
6514        this.mutate({ standardProps });
6515    }
6516    formatRange(formatInput) {
6517        let { dateEnv } = this._context;
6518        let instance = this._instance;
6519        let formatter = createFormatter(formatInput);
6520        if (this._def.hasEnd) {
6521            return dateEnv.formatRange(instance.range.start, instance.range.end, formatter, {
6522                forcedStartTzo: instance.forcedStartTzo,
6523                forcedEndTzo: instance.forcedEndTzo,
6524            });
6525        }
6526        return dateEnv.format(instance.range.start, formatter, {
6527            forcedTzo: instance.forcedStartTzo,
6528        });
6529    }
6530    mutate(mutation) {
6531        let instance = this._instance;
6532        if (instance) {
6533            let def = this._def;
6534            let context = this._context;
6535            let { eventStore } = context.getCurrentData();
6536            let relevantEvents = getRelevantEvents(eventStore, instance.instanceId);
6537            let eventConfigBase = {
6538                '': {
6539                    display: '',
6540                    startEditable: true,
6541                    durationEditable: true,
6542                    constraints: [],
6543                    overlap: null,
6544                    allows: [],
6545                    backgroundColor: '',
6546                    borderColor: '',
6547                    textColor: '',
6548                    classNames: [],
6549                },
6550            };
6551            relevantEvents = applyMutationToEventStore(relevantEvents, eventConfigBase, mutation, context);
6552            let oldEvent = new EventImpl(context, def, instance); // snapshot
6553            this._def = relevantEvents.defs[def.defId];
6554            this._instance = relevantEvents.instances[instance.instanceId];
6555            context.dispatch({
6556                type: 'MERGE_EVENTS',
6557                eventStore: relevantEvents,
6558            });
6559            context.emitter.trigger('eventChange', {
6560                oldEvent,
6561                event: this,
6562                relatedEvents: buildEventApis(relevantEvents, context, instance),
6563                revert() {
6564                    context.dispatch({
6565                        type: 'RESET_EVENTS',
6566                        eventStore, // the ORIGINAL store
6567                    });
6568                },
6569            });
6570        }
6571    }
6572    remove() {
6573        let context = this._context;
6574        let asStore = eventApiToStore(this);
6575        context.dispatch({
6576            type: 'REMOVE_EVENTS',
6577            eventStore: asStore,
6578        });
6579        context.emitter.trigger('eventRemove', {
6580            event: this,
6581            relatedEvents: [],
6582            revert() {
6583                context.dispatch({
6584                    type: 'MERGE_EVENTS',
6585                    eventStore: asStore,
6586                });
6587            },
6588        });
6589    }
6590    get source() {
6591        let { sourceId } = this._def;
6592        if (sourceId) {
6593            return new EventSourceImpl(this._context, this._context.getCurrentData().eventSources[sourceId]);
6594        }
6595        return null;
6596    }
6597    get start() {
6598        return this._instance ?
6599            this._context.dateEnv.toDate(this._instance.range.start) :
6600            null;
6601    }
6602    get end() {
6603        return (this._instance && this._def.hasEnd) ?
6604            this._context.dateEnv.toDate(this._instance.range.end) :
6605            null;
6606    }
6607    get startStr() {
6608        let instance = this._instance;
6609        if (instance) {
6610            return this._context.dateEnv.formatIso(instance.range.start, {
6611                omitTime: this._def.allDay,
6612                forcedTzo: instance.forcedStartTzo,
6613            });
6614        }
6615        return '';
6616    }
6617    get endStr() {
6618        let instance = this._instance;
6619        if (instance && this._def.hasEnd) {
6620            return this._context.dateEnv.formatIso(instance.range.end, {
6621                omitTime: this._def.allDay,
6622                forcedTzo: instance.forcedEndTzo,
6623            });
6624        }
6625        return '';
6626    }
6627    // computable props that all access the def
6628    // TODO: find a TypeScript-compatible way to do this at scale
6629    get id() { return this._def.publicId; }
6630    get groupId() { return this._def.groupId; }
6631    get allDay() { return this._def.allDay; }
6632    get title() { return this._def.title; }
6633    get url() { return this._def.url; }
6634    get display() { return this._def.ui.display || 'auto'; } // bad. just normalize the type earlier
6635    get startEditable() { return this._def.ui.startEditable; }
6636    get durationEditable() { return this._def.ui.durationEditable; }
6637    get constraint() { return this._def.ui.constraints[0] || null; }
6638    get overlap() { return this._def.ui.overlap; }
6639    get allow() { return this._def.ui.allows[0] || null; }
6640    get backgroundColor() { return this._def.ui.backgroundColor; }
6641    get borderColor() { return this._def.ui.borderColor; }
6642    get textColor() { return this._def.ui.textColor; }
6643    // NOTE: user can't modify these because Object.freeze was called in event-def parsing
6644    get classNames() { return this._def.ui.classNames; }
6645    get extendedProps() { return this._def.extendedProps; }
6646    toPlainObject(settings = {}) {
6647        let def = this._def;
6648        let { ui } = def;
6649        let { startStr, endStr } = this;
6650        let res = {
6651            allDay: def.allDay,
6652        };
6653        if (def.title) {
6654            res.title = def.title;
6655        }
6656        if (startStr) {
6657            res.start = startStr;
6658        }
6659        if (endStr) {
6660            res.end = endStr;
6661        }
6662        if (def.publicId) {
6663            res.id = def.publicId;
6664        }
6665        if (def.groupId) {
6666            res.groupId = def.groupId;
6667        }
6668        if (def.url) {
6669            res.url = def.url;
6670        }
6671        if (ui.display && ui.display !== 'auto') {
6672            res.display = ui.display;
6673        }
6674        // TODO: what about recurring-event properties???
6675        // TODO: include startEditable/durationEditable/constraint/overlap/allow
6676        if (settings.collapseColor && ui.backgroundColor && ui.backgroundColor === ui.borderColor) {
6677            res.color = ui.backgroundColor;
6678        }
6679        else {
6680            if (ui.backgroundColor) {
6681                res.backgroundColor = ui.backgroundColor;
6682            }
6683            if (ui.borderColor) {
6684                res.borderColor = ui.borderColor;
6685            }
6686        }
6687        if (ui.textColor) {
6688            res.textColor = ui.textColor;
6689        }
6690        if (ui.classNames.length) {
6691            res.classNames = ui.classNames;
6692        }
6693        if (Object.keys(def.extendedProps).length) {
6694            if (settings.collapseExtendedProps) {
6695                Object.assign(res, def.extendedProps);
6696            }
6697            else {
6698                res.extendedProps = def.extendedProps;
6699            }
6700        }
6701        return res;
6702    }
6703    toJSON() {
6704        return this.toPlainObject();
6705    }
6706}
6707function eventApiToStore(eventApi) {
6708    let def = eventApi._def;
6709    let instance = eventApi._instance;
6710    return {
6711        defs: { [def.defId]: def },
6712        instances: instance
6713            ? { [instance.instanceId]: instance }
6714            : {},
6715    };
6716}
6717function buildEventApis(eventStore, context, excludeInstance) {
6718    let { defs, instances } = eventStore;
6719    let eventApis = [];
6720    let excludeInstanceId = excludeInstance ? excludeInstance.instanceId : '';
6721    for (let id in instances) {
6722        let instance = instances[id];
6723        let def = defs[instance.defId];
6724        if (instance.instanceId !== excludeInstanceId) {
6725            eventApis.push(new EventImpl(context, def, instance));
6726        }
6727    }
6728    return eventApis;
6729}
6730
6731/*
6732Specifying nextDayThreshold signals that all-day ranges should be sliced.
6733*/
6734function sliceEventStore(eventStore, eventUiBases, framingRange, nextDayThreshold) {
6735    let inverseBgByGroupId = {};
6736    let inverseBgByDefId = {};
6737    let defByGroupId = {};
6738    let bgRanges = [];
6739    let fgRanges = [];
6740    let eventUis = compileEventUis(eventStore.defs, eventUiBases);
6741    for (let defId in eventStore.defs) {
6742        let def = eventStore.defs[defId];
6743        let ui = eventUis[def.defId];
6744        if (ui.display === 'inverse-background') {
6745            if (def.groupId) {
6746                inverseBgByGroupId[def.groupId] = [];
6747                if (!defByGroupId[def.groupId]) {
6748                    defByGroupId[def.groupId] = def;
6749                }
6750            }
6751            else {
6752                inverseBgByDefId[defId] = [];
6753            }
6754        }
6755    }
6756    for (let instanceId in eventStore.instances) {
6757        let instance = eventStore.instances[instanceId];
6758        let def = eventStore.defs[instance.defId];
6759        let ui = eventUis[def.defId];
6760        let origRange = instance.range;
6761        let normalRange = (!def.allDay && nextDayThreshold) ?
6762            computeVisibleDayRange(origRange, nextDayThreshold) :
6763            origRange;
6764        let slicedRange = intersectRanges(normalRange, framingRange);
6765        if (slicedRange) {
6766            if (ui.display === 'inverse-background') {
6767                if (def.groupId) {
6768                    inverseBgByGroupId[def.groupId].push(slicedRange);
6769                }
6770                else {
6771                    inverseBgByDefId[instance.defId].push(slicedRange);
6772                }
6773            }
6774            else if (ui.display !== 'none') {
6775                (ui.display === 'background' ? bgRanges : fgRanges).push({
6776                    def,
6777                    ui,
6778                    instance,
6779                    range: slicedRange,
6780                    isStart: normalRange.start && normalRange.start.valueOf() === slicedRange.start.valueOf(),
6781                    isEnd: normalRange.end && normalRange.end.valueOf() === slicedRange.end.valueOf(),
6782                });
6783            }
6784        }
6785    }
6786    for (let groupId in inverseBgByGroupId) { // BY GROUP
6787        let ranges = inverseBgByGroupId[groupId];
6788        let invertedRanges = invertRanges(ranges, framingRange);
6789        for (let invertedRange of invertedRanges) {
6790            let def = defByGroupId[groupId];
6791            let ui = eventUis[def.defId];
6792            bgRanges.push({
6793                def,
6794                ui,
6795                instance: null,
6796                range: invertedRange,
6797                isStart: false,
6798                isEnd: false,
6799            });
6800        }
6801    }
6802    for (let defId in inverseBgByDefId) {
6803        let ranges = inverseBgByDefId[defId];
6804        let invertedRanges = invertRanges(ranges, framingRange);
6805        for (let invertedRange of invertedRanges) {
6806            bgRanges.push({
6807                def: eventStore.defs[defId],
6808                ui: eventUis[defId],
6809                instance: null,
6810                range: invertedRange,
6811                isStart: false,
6812                isEnd: false,
6813            });
6814        }
6815    }
6816    return { bg: bgRanges, fg: fgRanges };
6817}
6818function hasBgRendering(def) {
6819    return def.ui.display === 'background' || def.ui.display === 'inverse-background';
6820}
6821function setElSeg(el, seg) {
6822    el.fcSeg = seg;
6823}
6824function getElSeg(el) {
6825    return el.fcSeg ||
6826        el.parentNode.fcSeg || // for the harness
6827        null;
6828}
6829// event ui computation
6830function compileEventUis(eventDefs, eventUiBases) {
6831    return mapHash(eventDefs, (eventDef) => compileEventUi(eventDef, eventUiBases));
6832}
6833function compileEventUi(eventDef, eventUiBases) {
6834    let uis = [];
6835    if (eventUiBases['']) {
6836        uis.push(eventUiBases['']);
6837    }
6838    if (eventUiBases[eventDef.defId]) {
6839        uis.push(eventUiBases[eventDef.defId]);
6840    }
6841    uis.push(eventDef.ui);
6842    return combineEventUis(uis);
6843}
6844function sortEventSegs(segs, eventOrderSpecs) {
6845    let objs = segs.map(buildSegCompareObj);
6846    objs.sort((obj0, obj1) => compareByFieldSpecs(obj0, obj1, eventOrderSpecs));
6847    return objs.map((c) => c._seg);
6848}
6849// returns a object with all primitive props that can be compared
6850function buildSegCompareObj(seg) {
6851    let { eventRange } = seg;
6852    let eventDef = eventRange.def;
6853    let range = eventRange.instance ? eventRange.instance.range : eventRange.range;
6854    let start = range.start ? range.start.valueOf() : 0; // TODO: better support for open-range events
6855    let end = range.end ? range.end.valueOf() : 0; // "
6856    return Object.assign(Object.assign(Object.assign({}, eventDef.extendedProps), eventDef), { id: eventDef.publicId, start,
6857        end, duration: end - start, allDay: Number(eventDef.allDay), _seg: seg });
6858}
6859function computeSegDraggable(seg, context) {
6860    let { pluginHooks } = context;
6861    let transformers = pluginHooks.isDraggableTransformers;
6862    let { def, ui } = seg.eventRange;
6863    let val = ui.startEditable;
6864    for (let transformer of transformers) {
6865        val = transformer(val, def, ui, context);
6866    }
6867    return val;
6868}
6869function computeSegStartResizable(seg, context) {
6870    return seg.isStart && seg.eventRange.ui.durationEditable && context.options.eventResizableFromStart;
6871}
6872function computeSegEndResizable(seg, context) {
6873    return seg.isEnd && seg.eventRange.ui.durationEditable;
6874}
6875function buildSegTimeText(seg, timeFormat, context, defaultDisplayEventTime, // defaults to true
6876defaultDisplayEventEnd, // defaults to true
6877startOverride, endOverride) {
6878    let { dateEnv, options } = context;
6879    let { displayEventTime, displayEventEnd } = options;
6880    let eventDef = seg.eventRange.def;
6881    let eventInstance = seg.eventRange.instance;
6882    if (displayEventTime == null) {
6883        displayEventTime = defaultDisplayEventTime !== false;
6884    }
6885    if (displayEventEnd == null) {
6886        displayEventEnd = defaultDisplayEventEnd !== false;
6887    }
6888    let wholeEventStart = eventInstance.range.start;
6889    let wholeEventEnd = eventInstance.range.end;
6890    let segStart = startOverride || seg.start || seg.eventRange.range.start;
6891    let segEnd = endOverride || seg.end || seg.eventRange.range.end;
6892    let isStartDay = startOfDay(wholeEventStart).valueOf() === startOfDay(segStart).valueOf();
6893    let isEndDay = startOfDay(addMs(wholeEventEnd, -1)).valueOf() === startOfDay(addMs(segEnd, -1)).valueOf();
6894    if (displayEventTime && !eventDef.allDay && (isStartDay || isEndDay)) {
6895        segStart = isStartDay ? wholeEventStart : segStart;
6896        segEnd = isEndDay ? wholeEventEnd : segEnd;
6897        if (displayEventEnd && eventDef.hasEnd) {
6898            return dateEnv.formatRange(segStart, segEnd, timeFormat, {
6899                forcedStartTzo: startOverride ? null : eventInstance.forcedStartTzo,
6900                forcedEndTzo: endOverride ? null : eventInstance.forcedEndTzo,
6901            });
6902        }
6903        return dateEnv.format(segStart, timeFormat, {
6904            forcedTzo: startOverride ? null : eventInstance.forcedStartTzo, // nooooo, same
6905        });
6906    }
6907    return '';
6908}
6909function getSegMeta(seg, todayRange, nowDate) {
6910    let segRange = seg.eventRange.range;
6911    return {
6912        isPast: segRange.end <= (nowDate || todayRange.start),
6913        isFuture: segRange.start >= (nowDate || todayRange.end),
6914        isToday: todayRange && rangeContainsMarker(todayRange, segRange.start),
6915    };
6916}
6917function getEventClassNames(props) {
6918    let classNames = ['fc-event'];
6919    if (props.isMirror) {
6920        classNames.push('fc-event-mirror');
6921    }
6922    if (props.isDraggable) {
6923        classNames.push('fc-event-draggable');
6924    }
6925    if (props.isStartResizable || props.isEndResizable) {
6926        classNames.push('fc-event-resizable');
6927    }
6928    if (props.isDragging) {
6929        classNames.push('fc-event-dragging');
6930    }
6931    if (props.isResizing) {
6932        classNames.push('fc-event-resizing');
6933    }
6934    if (props.isSelected) {
6935        classNames.push('fc-event-selected');
6936    }
6937    if (props.isStart) {
6938        classNames.push('fc-event-start');
6939    }
6940    if (props.isEnd) {
6941        classNames.push('fc-event-end');
6942    }
6943    if (props.isPast) {
6944        classNames.push('fc-event-past');
6945    }
6946    if (props.isToday) {
6947        classNames.push('fc-event-today');
6948    }
6949    if (props.isFuture) {
6950        classNames.push('fc-event-future');
6951    }
6952    return classNames;
6953}
6954function buildEventRangeKey(eventRange) {
6955    return eventRange.instance
6956        ? eventRange.instance.instanceId
6957        : `${eventRange.def.defId}:${eventRange.range.start.toISOString()}`;
6958    // inverse-background events don't have specific instances. TODO: better solution
6959}
6960function getSegAnchorAttrs(seg, context) {
6961    let { def, instance } = seg.eventRange;
6962    let { url } = def;
6963    if (url) {
6964        return { href: url };
6965    }
6966    let { emitter, options } = context;
6967    let { eventInteractive } = options;
6968    if (eventInteractive == null) {
6969        eventInteractive = def.interactive;
6970        if (eventInteractive == null) {
6971            eventInteractive = Boolean(emitter.hasHandlers('eventClick'));
6972        }
6973    }
6974    // mock what happens in EventClicking
6975    if (eventInteractive) {
6976        // only attach keyboard-related handlers because click handler is already done in EventClicking
6977        return createAriaKeyboardAttrs((ev) => {
6978            emitter.trigger('eventClick', {
6979                el: ev.target,
6980                event: new EventImpl(context, def, instance),
6981                jsEvent: ev,
6982                view: context.viewApi,
6983            });
6984        });
6985    }
6986    return {};
6987}
6988
6989const STANDARD_PROPS = {
6990    start: identity,
6991    end: identity,
6992    allDay: Boolean,
6993};
6994function parseDateSpan(raw, dateEnv, defaultDuration) {
6995    let span = parseOpenDateSpan(raw, dateEnv);
6996    let { range } = span;
6997    if (!range.start) {
6998        return null;
6999    }
7000    if (!range.end) {
7001        if (defaultDuration == null) {
7002            return null;
7003        }
7004        range.end = dateEnv.add(range.start, defaultDuration);
7005    }
7006    return span;
7007}
7008/*
7009TODO: somehow combine with parseRange?
7010Will return null if the start/end props were present but parsed invalidly.
7011*/
7012function parseOpenDateSpan(raw, dateEnv) {
7013    let { refined: standardProps, extra } = refineProps(raw, STANDARD_PROPS);
7014    let startMeta = standardProps.start ? dateEnv.createMarkerMeta(standardProps.start) : null;
7015    let endMeta = standardProps.end ? dateEnv.createMarkerMeta(standardProps.end) : null;
7016    let { allDay } = standardProps;
7017    if (allDay == null) {
7018        allDay = (startMeta && startMeta.isTimeUnspecified) &&
7019            (!endMeta || endMeta.isTimeUnspecified);
7020    }
7021    return Object.assign({ range: {
7022            start: startMeta ? startMeta.marker : null,
7023            end: endMeta ? endMeta.marker : null,
7024        }, allDay }, extra);
7025}
7026function isDateSpansEqual(span0, span1) {
7027    return rangesEqual(span0.range, span1.range) &&
7028        span0.allDay === span1.allDay &&
7029        isSpanPropsEqual(span0, span1);
7030}
7031// the NON-DATE-RELATED props
7032function isSpanPropsEqual(span0, span1) {
7033    for (let propName in span1) {
7034        if (propName !== 'range' && propName !== 'allDay') {
7035            if (span0[propName] !== span1[propName]) {
7036                return false;
7037            }
7038        }
7039    }
7040    // are there any props that span0 has that span1 DOESN'T have?
7041    // both have range/allDay, so no need to special-case.
7042    for (let propName in span0) {
7043        if (!(propName in span1)) {
7044            return false;
7045        }
7046    }
7047    return true;
7048}
7049function buildDateSpanApi(span, dateEnv) {
7050    return Object.assign(Object.assign({}, buildRangeApi(span.range, dateEnv, span.allDay)), { allDay: span.allDay });
7051}
7052function buildRangeApiWithTimeZone(range, dateEnv, omitTime) {
7053    return Object.assign(Object.assign({}, buildRangeApi(range, dateEnv, omitTime)), { timeZone: dateEnv.timeZone });
7054}
7055function buildRangeApi(range, dateEnv, omitTime) {
7056    return {
7057        start: dateEnv.toDate(range.start),
7058        end: dateEnv.toDate(range.end),
7059        startStr: dateEnv.formatIso(range.start, { omitTime }),
7060        endStr: dateEnv.formatIso(range.end, { omitTime }),
7061    };
7062}
7063function fabricateEventRange(dateSpan, eventUiBases, context) {
7064    let res = refineEventDef({ editable: false }, context);
7065    let def = parseEventDef(res.refined, res.extra, '', // sourceId
7066    dateSpan.allDay, true, // hasEnd
7067    context);
7068    return {
7069        def,
7070        ui: compileEventUi(def, eventUiBases),
7071        instance: createEventInstance(def.defId, dateSpan.range),
7072        range: dateSpan.range,
7073        isStart: true,
7074        isEnd: true,
7075    };
7076}
7077
7078/*
7079given a function that resolves a result asynchronously.
7080the function can either call passed-in success and failure callbacks,
7081or it can return a promise.
7082if you need to pass additional params to func, bind them first.
7083*/
7084function unpromisify(func, normalizedSuccessCallback, normalizedFailureCallback) {
7085    // guard against success/failure callbacks being called more than once
7086    // and guard against a promise AND callback being used together.
7087    let isResolved = false;
7088    let wrappedSuccess = function (res) {
7089        if (!isResolved) {
7090            isResolved = true;
7091            normalizedSuccessCallback(res);
7092        }
7093    };
7094    let wrappedFailure = function (error) {
7095        if (!isResolved) {
7096            isResolved = true;
7097            normalizedFailureCallback(error);
7098        }
7099    };
7100    let res = func(wrappedSuccess, wrappedFailure);
7101    if (res && typeof res.then === 'function') {
7102        res.then(wrappedSuccess, wrappedFailure);
7103    }
7104}
7105
7106class JsonRequestError extends Error {
7107    constructor(message, response) {
7108        super(message);
7109        this.response = response;
7110    }
7111}
7112function requestJson(method, url, params) {
7113    method = method.toUpperCase();
7114    const fetchOptions = {
7115        method,
7116    };
7117    if (method === 'GET') {
7118        url += (url.indexOf('?') === -1 ? '?' : '&') +
7119            new URLSearchParams(params);
7120    }
7121    else {
7122        fetchOptions.body = new URLSearchParams(params);
7123        fetchOptions.headers = {
7124            'Content-Type': 'application/x-www-form-urlencoded',
7125        };
7126    }
7127    return fetch(url, fetchOptions).then((fetchRes) => {
7128        if (fetchRes.ok) {
7129            return fetchRes.json().then((parsedResponse) => {
7130                return [parsedResponse, fetchRes];
7131            }, () => {
7132                throw new JsonRequestError('Failure parsing JSON', fetchRes);
7133            });
7134        }
7135        else {
7136            throw new JsonRequestError('Request failed', fetchRes);
7137        }
7138    });
7139}
7140
7141let canVGrowWithinCell;
7142function getCanVGrowWithinCell() {
7143    if (canVGrowWithinCell == null) {
7144        canVGrowWithinCell = computeCanVGrowWithinCell();
7145    }
7146    return canVGrowWithinCell;
7147}
7148function computeCanVGrowWithinCell() {
7149    // for SSR, because this function is call immediately at top-level
7150    // TODO: just make this logic execute top-level, immediately, instead of doing lazily
7151    if (typeof document === 'undefined') {
7152        return true;
7153    }
7154    let el = document.createElement('div');
7155    el.style.position = 'absolute';
7156    el.style.top = '0px';
7157    el.style.left = '0px';
7158    el.innerHTML = '<table><tr><td><div></div></td></tr></table>';
7159    el.querySelector('table').style.height = '100px';
7160    el.querySelector('div').style.height = '100%';
7161    document.body.appendChild(el);
7162    let div = el.querySelector('div');
7163    let possible = div.offsetHeight > 0;
7164    document.body.removeChild(el);
7165    return possible;
7166}
7167
7168class CalendarRoot extends BaseComponent {
7169    constructor() {
7170        super(...arguments);
7171        this.state = {
7172            forPrint: false,
7173        };
7174        this.handleBeforePrint = () => {
7175            flushSync(() => {
7176                this.setState({ forPrint: true });
7177            });
7178        };
7179        this.handleAfterPrint = () => {
7180            flushSync(() => {
7181                this.setState({ forPrint: false });
7182            });
7183        };
7184    }
7185    render() {
7186        let { props } = this;
7187        let { options } = props;
7188        let { forPrint } = this.state;
7189        let isHeightAuto = forPrint || options.height === 'auto' || options.contentHeight === 'auto';
7190        let height = (!isHeightAuto && options.height != null) ? options.height : '';
7191        let classNames = [
7192            'fc',
7193            forPrint ? 'fc-media-print' : 'fc-media-screen',
7194            `fc-direction-${options.direction}`,
7195            props.theme.getClass('root'),
7196        ];
7197        if (!getCanVGrowWithinCell()) {
7198            classNames.push('fc-liquid-hack');
7199        }
7200        return props.children(classNames, height, isHeightAuto, forPrint);
7201    }
7202    componentDidMount() {
7203        let { emitter } = this.props;
7204        emitter.on('_beforeprint', this.handleBeforePrint);
7205        emitter.on('_afterprint', this.handleAfterPrint);
7206    }
7207    componentWillUnmount() {
7208        let { emitter } = this.props;
7209        emitter.off('_beforeprint', this.handleBeforePrint);
7210        emitter.off('_afterprint', this.handleAfterPrint);
7211    }
7212}
7213
7214class Interaction {
7215    constructor(settings) {
7216        this.component = settings.component;
7217        this.isHitComboAllowed = settings.isHitComboAllowed || null;
7218    }
7219    destroy() {
7220    }
7221}
7222function parseInteractionSettings(component, input) {
7223    return {
7224        component,
7225        el: input.el,
7226        useEventCenter: input.useEventCenter != null ? input.useEventCenter : true,
7227        isHitComboAllowed: input.isHitComboAllowed || null,
7228    };
7229}
7230function interactionSettingsToStore(settings) {
7231    return {
7232        [settings.component.uid]: settings,
7233    };
7234}
7235// global state
7236const interactionSettingsStore = {};
7237
7238class CalendarImpl {
7239    getCurrentData() {
7240        return this.currentDataManager.getCurrentData();
7241    }
7242    dispatch(action) {
7243        this.currentDataManager.dispatch(action);
7244    }
7245    get view() { return this.getCurrentData().viewApi; }
7246    batchRendering(callback) {
7247        callback();
7248    }
7249    updateSize() {
7250        this.trigger('_resize', true);
7251    }
7252    // Options
7253    // -----------------------------------------------------------------------------------------------------------------
7254    setOption(name, val) {
7255        this.dispatch({
7256            type: 'SET_OPTION',
7257            optionName: name,
7258            rawOptionValue: val,
7259        });
7260    }
7261    getOption(name) {
7262        return this.currentDataManager.currentCalendarOptionsInput[name];
7263    }
7264    getAvailableLocaleCodes() {
7265        return Object.keys(this.getCurrentData().availableRawLocales);
7266    }
7267    // Trigger
7268    // -----------------------------------------------------------------------------------------------------------------
7269    on(handlerName, handler) {
7270        let { currentDataManager } = this;
7271        if (currentDataManager.currentCalendarOptionsRefiners[handlerName]) {
7272            currentDataManager.emitter.on(handlerName, handler);
7273        }
7274        else {
7275            console.warn(`Unknown listener name '${handlerName}'`);
7276        }
7277    }
7278    off(handlerName, handler) {
7279        this.currentDataManager.emitter.off(handlerName, handler);
7280    }
7281    // not meant for public use
7282    trigger(handlerName, ...args) {
7283        this.currentDataManager.emitter.trigger(handlerName, ...args);
7284    }
7285    // View
7286    // -----------------------------------------------------------------------------------------------------------------
7287    changeView(viewType, dateOrRange) {
7288        this.batchRendering(() => {
7289            this.unselect();
7290            if (dateOrRange) {
7291                if (dateOrRange.start && dateOrRange.end) { // a range
7292                    this.dispatch({
7293                        type: 'CHANGE_VIEW_TYPE',
7294                        viewType,
7295                    });
7296                    this.dispatch({
7297                        type: 'SET_OPTION',
7298                        optionName: 'visibleRange',
7299                        rawOptionValue: dateOrRange,
7300                    });
7301                }
7302                else {
7303                    let { dateEnv } = this.getCurrentData();
7304                    this.dispatch({
7305                        type: 'CHANGE_VIEW_TYPE',
7306                        viewType,
7307                        dateMarker: dateEnv.createMarker(dateOrRange),
7308                    });
7309                }
7310            }
7311            else {
7312                this.dispatch({
7313                    type: 'CHANGE_VIEW_TYPE',
7314                    viewType,
7315                });
7316            }
7317        });
7318    }
7319    // Forces navigation to a view for the given date.
7320    // `viewType` can be a specific view name or a generic one like "week" or "day".
7321    // needs to change
7322    zoomTo(dateMarker, viewType) {
7323        let state = this.getCurrentData();
7324        let spec;
7325        viewType = viewType || 'day'; // day is default zoom
7326        spec = state.viewSpecs[viewType] || this.getUnitViewSpec(viewType);
7327        this.unselect();
7328        if (spec) {
7329            this.dispatch({
7330                type: 'CHANGE_VIEW_TYPE',
7331                viewType: spec.type,
7332                dateMarker,
7333            });
7334        }
7335        else {
7336            this.dispatch({
7337                type: 'CHANGE_DATE',
7338                dateMarker,
7339            });
7340        }
7341    }
7342    // Given a duration singular unit, like "week" or "day", finds a matching view spec.
7343    // Preference is given to views that have corresponding buttons.
7344    getUnitViewSpec(unit) {
7345        let { viewSpecs, toolbarConfig } = this.getCurrentData();
7346        let viewTypes = [].concat(toolbarConfig.header ? toolbarConfig.header.viewsWithButtons : [], toolbarConfig.footer ? toolbarConfig.footer.viewsWithButtons : []);
7347        let i;
7348        let spec;
7349        for (let viewType in viewSpecs) {
7350            viewTypes.push(viewType);
7351        }
7352        for (i = 0; i < viewTypes.length; i += 1) {
7353            spec = viewSpecs[viewTypes[i]];
7354            if (spec) {
7355                if (spec.singleUnit === unit) {
7356                    return spec;
7357                }
7358            }
7359        }
7360        return null;
7361    }
7362    // Current Date
7363    // -----------------------------------------------------------------------------------------------------------------
7364    prev() {
7365        this.unselect();
7366        this.dispatch({ type: 'PREV' });
7367    }
7368    next() {
7369        this.unselect();
7370        this.dispatch({ type: 'NEXT' });
7371    }
7372    prevYear() {
7373        let state = this.getCurrentData();
7374        this.unselect();
7375        this.dispatch({
7376            type: 'CHANGE_DATE',
7377            dateMarker: state.dateEnv.addYears(state.currentDate, -1),
7378        });
7379    }
7380    nextYear() {
7381        let state = this.getCurrentData();
7382        this.unselect();
7383        this.dispatch({
7384            type: 'CHANGE_DATE',
7385            dateMarker: state.dateEnv.addYears(state.currentDate, 1),
7386        });
7387    }
7388    today() {
7389        let state = this.getCurrentData();
7390        this.unselect();
7391        this.dispatch({
7392            type: 'CHANGE_DATE',
7393            dateMarker: getNow(state.calendarOptions.now, state.dateEnv),
7394        });
7395    }
7396    gotoDate(zonedDateInput) {
7397        let state = this.getCurrentData();
7398        this.unselect();
7399        this.dispatch({
7400            type: 'CHANGE_DATE',
7401            dateMarker: state.dateEnv.createMarker(zonedDateInput),
7402        });
7403    }
7404    incrementDate(deltaInput) {
7405        let state = this.getCurrentData();
7406        let delta = createDuration(deltaInput);
7407        if (delta) { // else, warn about invalid input?
7408            this.unselect();
7409            this.dispatch({
7410                type: 'CHANGE_DATE',
7411                dateMarker: state.dateEnv.add(state.currentDate, delta),
7412            });
7413        }
7414    }
7415    getDate() {
7416        let state = this.getCurrentData();
7417        return state.dateEnv.toDate(state.currentDate);
7418    }
7419    // Date Formatting Utils
7420    // -----------------------------------------------------------------------------------------------------------------
7421    formatDate(d, formatter) {
7422        let { dateEnv } = this.getCurrentData();
7423        return dateEnv.format(dateEnv.createMarker(d), createFormatter(formatter));
7424    }
7425    // `settings` is for formatter AND isEndExclusive
7426    formatRange(d0, d1, settings) {
7427        let { dateEnv } = this.getCurrentData();
7428        return dateEnv.formatRange(dateEnv.createMarker(d0), dateEnv.createMarker(d1), createFormatter(settings), settings);
7429    }
7430    formatIso(d, omitTime) {
7431        let { dateEnv } = this.getCurrentData();
7432        return dateEnv.formatIso(dateEnv.createMarker(d), { omitTime });
7433    }
7434    // Date Selection / Event Selection / DayClick
7435    // -----------------------------------------------------------------------------------------------------------------
7436    select(dateOrObj, endDate) {
7437        let selectionInput;
7438        if (endDate == null) {
7439            if (dateOrObj.start != null) {
7440                selectionInput = dateOrObj;
7441            }
7442            else {
7443                selectionInput = {
7444                    start: dateOrObj,
7445                    end: null,
7446                };
7447            }
7448        }
7449        else {
7450            selectionInput = {
7451                start: dateOrObj,
7452                end: endDate,
7453            };
7454        }
7455        let state = this.getCurrentData();
7456        let selection = parseDateSpan(selectionInput, state.dateEnv, createDuration({ days: 1 }));
7457        if (selection) { // throw parse error otherwise?
7458            this.dispatch({ type: 'SELECT_DATES', selection });
7459            triggerDateSelect(selection, null, state);
7460        }
7461    }
7462    unselect(pev) {
7463        let state = this.getCurrentData();
7464        if (state.dateSelection) {
7465            this.dispatch({ type: 'UNSELECT_DATES' });
7466            triggerDateUnselect(pev, state);
7467        }
7468    }
7469    // Public Events API
7470    // -----------------------------------------------------------------------------------------------------------------
7471    addEvent(eventInput, sourceInput) {
7472        if (eventInput instanceof EventImpl) {
7473            let def = eventInput._def;
7474            let instance = eventInput._instance;
7475            let currentData = this.getCurrentData();
7476            // not already present? don't want to add an old snapshot
7477            if (!currentData.eventStore.defs[def.defId]) {
7478                this.dispatch({
7479                    type: 'ADD_EVENTS',
7480                    eventStore: eventTupleToStore({ def, instance }), // TODO: better util for two args?
7481                });
7482                this.triggerEventAdd(eventInput);
7483            }
7484            return eventInput;
7485        }
7486        let state = this.getCurrentData();
7487        let eventSource;
7488        if (sourceInput instanceof EventSourceImpl) {
7489            eventSource = sourceInput.internalEventSource;
7490        }
7491        else if (typeof sourceInput === 'boolean') {
7492            if (sourceInput) { // true. part of the first event source
7493                [eventSource] = hashValuesToArray(state.eventSources);
7494            }
7495        }
7496        else if (sourceInput != null) { // an ID. accepts a number too
7497            let sourceApi = this.getEventSourceById(sourceInput); // TODO: use an internal function
7498            if (!sourceApi) {
7499                console.warn(`Could not find an event source with ID "${sourceInput}"`); // TODO: test
7500                return null;
7501            }
7502            eventSource = sourceApi.internalEventSource;
7503        }
7504        let tuple = parseEvent(eventInput, eventSource, state, false);
7505        if (tuple) {
7506            let newEventApi = new EventImpl(state, tuple.def, tuple.def.recurringDef ? null : tuple.instance);
7507            this.dispatch({
7508                type: 'ADD_EVENTS',
7509                eventStore: eventTupleToStore(tuple),
7510            });
7511            this.triggerEventAdd(newEventApi);
7512            return newEventApi;
7513        }
7514        return null;
7515    }
7516    triggerEventAdd(eventApi) {
7517        let { emitter } = this.getCurrentData();
7518        emitter.trigger('eventAdd', {
7519            event: eventApi,
7520            relatedEvents: [],
7521            revert: () => {
7522                this.dispatch({
7523                    type: 'REMOVE_EVENTS',
7524                    eventStore: eventApiToStore(eventApi),
7525                });
7526            },
7527        });
7528    }
7529    // TODO: optimize
7530    getEventById(id) {
7531        let state = this.getCurrentData();
7532        let { defs, instances } = state.eventStore;
7533        id = String(id);
7534        for (let defId in defs) {
7535            let def = defs[defId];
7536            if (def.publicId === id) {
7537                if (def.recurringDef) {
7538                    return new EventImpl(state, def, null);
7539                }
7540                for (let instanceId in instances) {
7541                    let instance = instances[instanceId];
7542                    if (instance.defId === def.defId) {
7543                        return new EventImpl(state, def, instance);
7544                    }
7545                }
7546            }
7547        }
7548        return null;
7549    }
7550    getEvents() {
7551        let currentData = this.getCurrentData();
7552        return buildEventApis(currentData.eventStore, currentData);
7553    }
7554    removeAllEvents() {
7555        this.dispatch({ type: 'REMOVE_ALL_EVENTS' });
7556    }
7557    // Public Event Sources API
7558    // -----------------------------------------------------------------------------------------------------------------
7559    getEventSources() {
7560        let state = this.getCurrentData();
7561        let sourceHash = state.eventSources;
7562        let sourceApis = [];
7563        for (let internalId in sourceHash) {
7564            sourceApis.push(new EventSourceImpl(state, sourceHash[internalId]));
7565        }
7566        return sourceApis;
7567    }
7568    getEventSourceById(id) {
7569        let state = this.getCurrentData();
7570        let sourceHash = state.eventSources;
7571        id = String(id);
7572        for (let sourceId in sourceHash) {
7573            if (sourceHash[sourceId].publicId === id) {
7574                return new EventSourceImpl(state, sourceHash[sourceId]);
7575            }
7576        }
7577        return null;
7578    }
7579    addEventSource(sourceInput) {
7580        let state = this.getCurrentData();
7581        if (sourceInput instanceof EventSourceImpl) {
7582            // not already present? don't want to add an old snapshot
7583            if (!state.eventSources[sourceInput.internalEventSource.sourceId]) {
7584                this.dispatch({
7585                    type: 'ADD_EVENT_SOURCES',
7586                    sources: [sourceInput.internalEventSource],
7587                });
7588            }
7589            return sourceInput;
7590        }
7591        let eventSource = parseEventSource(sourceInput, state);
7592        if (eventSource) { // TODO: error otherwise?
7593            this.dispatch({ type: 'ADD_EVENT_SOURCES', sources: [eventSource] });
7594            return new EventSourceImpl(state, eventSource);
7595        }
7596        return null;
7597    }
7598    removeAllEventSources() {
7599        this.dispatch({ type: 'REMOVE_ALL_EVENT_SOURCES' });
7600    }
7601    refetchEvents() {
7602        this.dispatch({ type: 'FETCH_EVENT_SOURCES', isRefetch: true });
7603    }
7604    // Scroll
7605    // -----------------------------------------------------------------------------------------------------------------
7606    scrollToTime(timeInput) {
7607        let time = createDuration(timeInput);
7608        if (time) {
7609            this.trigger('_scrollRequest', { time });
7610        }
7611    }
7612}
7613
7614function pointInsideRect(point, rect) {
7615    return point.left >= rect.left &&
7616        point.left < rect.right &&
7617        point.top >= rect.top &&
7618        point.top < rect.bottom;
7619}
7620// Returns a new rectangle that is the intersection of the two rectangles. If they don't intersect, returns false
7621function intersectRects(rect1, rect2) {
7622    let res = {
7623        left: Math.max(rect1.left, rect2.left),
7624        right: Math.min(rect1.right, rect2.right),
7625        top: Math.max(rect1.top, rect2.top),
7626        bottom: Math.min(rect1.bottom, rect2.bottom),
7627    };
7628    if (res.left < res.right && res.top < res.bottom) {
7629        return res;
7630    }
7631    return false;
7632}
7633function translateRect(rect, deltaX, deltaY) {
7634    return {
7635        left: rect.left + deltaX,
7636        right: rect.right + deltaX,
7637        top: rect.top + deltaY,
7638        bottom: rect.bottom + deltaY,
7639    };
7640}
7641// Returns a new point that will have been moved to reside within the given rectangle
7642function constrainPoint(point, rect) {
7643    return {
7644        left: Math.min(Math.max(point.left, rect.left), rect.right),
7645        top: Math.min(Math.max(point.top, rect.top), rect.bottom),
7646    };
7647}
7648// Returns a point that is the center of the given rectangle
7649function getRectCenter(rect) {
7650    return {
7651        left: (rect.left + rect.right) / 2,
7652        top: (rect.top + rect.bottom) / 2,
7653    };
7654}
7655// Subtracts point2's coordinates from point1's coordinates, returning a delta
7656function diffPoints(point1, point2) {
7657    return {
7658        left: point1.left - point2.left,
7659        top: point1.top - point2.top,
7660    };
7661}
7662
7663const EMPTY_EVENT_STORE = createEmptyEventStore(); // for purecomponents. TODO: keep elsewhere
7664class Splitter {
7665    constructor() {
7666        this.getKeysForEventDefs = memoize(this._getKeysForEventDefs);
7667        this.splitDateSelection = memoize(this._splitDateSpan);
7668        this.splitEventStore = memoize(this._splitEventStore);
7669        this.splitIndividualUi = memoize(this._splitIndividualUi);
7670        this.splitEventDrag = memoize(this._splitInteraction);
7671        this.splitEventResize = memoize(this._splitInteraction);
7672        this.eventUiBuilders = {}; // TODO: typescript protection
7673    }
7674    splitProps(props) {
7675        let keyInfos = this.getKeyInfo(props);
7676        let defKeys = this.getKeysForEventDefs(props.eventStore);
7677        let dateSelections = this.splitDateSelection(props.dateSelection);
7678        let individualUi = this.splitIndividualUi(props.eventUiBases, defKeys); // the individual *bases*
7679        let eventStores = this.splitEventStore(props.eventStore, defKeys);
7680        let eventDrags = this.splitEventDrag(props.eventDrag);
7681        let eventResizes = this.splitEventResize(props.eventResize);
7682        let splitProps = {};
7683        this.eventUiBuilders = mapHash(keyInfos, (info, key) => this.eventUiBuilders[key] || memoize(buildEventUiForKey));
7684        for (let key in keyInfos) {
7685            let keyInfo = keyInfos[key];
7686            let eventStore = eventStores[key] || EMPTY_EVENT_STORE;
7687            let buildEventUi = this.eventUiBuilders[key];
7688            splitProps[key] = {
7689                businessHours: keyInfo.businessHours || props.businessHours,
7690                dateSelection: dateSelections[key] || null,
7691                eventStore,
7692                eventUiBases: buildEventUi(props.eventUiBases[''], keyInfo.ui, individualUi[key]),
7693                eventSelection: eventStore.instances[props.eventSelection] ? props.eventSelection : '',
7694                eventDrag: eventDrags[key] || null,
7695                eventResize: eventResizes[key] || null,
7696            };
7697        }
7698        return splitProps;
7699    }
7700    _splitDateSpan(dateSpan) {
7701        let dateSpans = {};
7702        if (dateSpan) {
7703            let keys = this.getKeysForDateSpan(dateSpan);
7704            for (let key of keys) {
7705                dateSpans[key] = dateSpan;
7706            }
7707        }
7708        return dateSpans;
7709    }
7710    _getKeysForEventDefs(eventStore) {
7711        return mapHash(eventStore.defs, (eventDef) => this.getKeysForEventDef(eventDef));
7712    }
7713    _splitEventStore(eventStore, defKeys) {
7714        let { defs, instances } = eventStore;
7715        let splitStores = {};
7716        for (let defId in defs) {
7717            for (let key of defKeys[defId]) {
7718                if (!splitStores[key]) {
7719                    splitStores[key] = createEmptyEventStore();
7720                }
7721                splitStores[key].defs[defId] = defs[defId];
7722            }
7723        }
7724        for (let instanceId in instances) {
7725            let instance = instances[instanceId];
7726            for (let key of defKeys[instance.defId]) {
7727                if (splitStores[key]) { // must have already been created
7728                    splitStores[key].instances[instanceId] = instance;
7729                }
7730            }
7731        }
7732        return splitStores;
7733    }
7734    _splitIndividualUi(eventUiBases, defKeys) {
7735        let splitHashes = {};
7736        for (let defId in eventUiBases) {
7737            if (defId) { // not the '' key
7738                for (let key of defKeys[defId]) {
7739                    if (!splitHashes[key]) {
7740                        splitHashes[key] = {};
7741                    }
7742                    splitHashes[key][defId] = eventUiBases[defId];
7743                }
7744            }
7745        }
7746        return splitHashes;
7747    }
7748    _splitInteraction(interaction) {
7749        let splitStates = {};
7750        if (interaction) {
7751            let affectedStores = this._splitEventStore(interaction.affectedEvents, this._getKeysForEventDefs(interaction.affectedEvents));
7752            // can't rely on defKeys because event data is mutated
7753            let mutatedKeysByDefId = this._getKeysForEventDefs(interaction.mutatedEvents);
7754            let mutatedStores = this._splitEventStore(interaction.mutatedEvents, mutatedKeysByDefId);
7755            let populate = (key) => {
7756                if (!splitStates[key]) {
7757                    splitStates[key] = {
7758                        affectedEvents: affectedStores[key] || EMPTY_EVENT_STORE,
7759                        mutatedEvents: mutatedStores[key] || EMPTY_EVENT_STORE,
7760                        isEvent: interaction.isEvent,
7761                    };
7762                }
7763            };
7764            for (let key in affectedStores) {
7765                populate(key);
7766            }
7767            for (let key in mutatedStores) {
7768                populate(key);
7769            }
7770        }
7771        return splitStates;
7772    }
7773}
7774function buildEventUiForKey(allUi, eventUiForKey, individualUi) {
7775    let baseParts = [];
7776    if (allUi) {
7777        baseParts.push(allUi);
7778    }
7779    if (eventUiForKey) {
7780        baseParts.push(eventUiForKey);
7781    }
7782    let stuff = {
7783        '': combineEventUis(baseParts),
7784    };
7785    if (individualUi) {
7786        Object.assign(stuff, individualUi);
7787    }
7788    return stuff;
7789}
7790
7791function getDateMeta(date, todayRange, nowDate, dateProfile) {
7792    return {
7793        dow: date.getUTCDay(),
7794        isDisabled: Boolean(dateProfile && !rangeContainsMarker(dateProfile.activeRange, date)),
7795        isOther: Boolean(dateProfile && !rangeContainsMarker(dateProfile.currentRange, date)),
7796        isToday: Boolean(todayRange && rangeContainsMarker(todayRange, date)),
7797        isPast: Boolean(nowDate ? (date < nowDate) : todayRange ? (date < todayRange.start) : false),
7798        isFuture: Boolean(nowDate ? (date > nowDate) : todayRange ? (date >= todayRange.end) : false),
7799    };
7800}
7801function getDayClassNames(meta, theme) {
7802    let classNames = [
7803        'fc-day',
7804        `fc-day-${DAY_IDS[meta.dow]}`,
7805    ];
7806    if (meta.isDisabled) {
7807        classNames.push('fc-day-disabled');
7808    }
7809    else {
7810        if (meta.isToday) {
7811            classNames.push('fc-day-today');
7812            classNames.push(theme.getClass('today'));
7813        }
7814        if (meta.isPast) {
7815            classNames.push('fc-day-past');
7816        }
7817        if (meta.isFuture) {
7818            classNames.push('fc-day-future');
7819        }
7820        if (meta.isOther) {
7821            classNames.push('fc-day-other');
7822        }
7823    }
7824    return classNames;
7825}
7826function getSlotClassNames(meta, theme) {
7827    let classNames = [
7828        'fc-slot',
7829        `fc-slot-${DAY_IDS[meta.dow]}`,
7830    ];
7831    if (meta.isDisabled) {
7832        classNames.push('fc-slot-disabled');
7833    }
7834    else {
7835        if (meta.isToday) {
7836            classNames.push('fc-slot-today');
7837            classNames.push(theme.getClass('today'));
7838        }
7839        if (meta.isPast) {
7840            classNames.push('fc-slot-past');
7841        }
7842        if (meta.isFuture) {
7843            classNames.push('fc-slot-future');
7844        }
7845    }
7846    return classNames;
7847}
7848
7849const DAY_FORMAT = createFormatter({ year: 'numeric', month: 'long', day: 'numeric' });
7850const WEEK_FORMAT = createFormatter({ week: 'long' });
7851function buildNavLinkAttrs(context, dateMarker, viewType = 'day', isTabbable = true) {
7852    const { dateEnv, options, calendarApi } = context;
7853    let dateStr = dateEnv.format(dateMarker, viewType === 'week' ? WEEK_FORMAT : DAY_FORMAT);
7854    if (options.navLinks) {
7855        let zonedDate = dateEnv.toDate(dateMarker);
7856        const handleInteraction = (ev) => {
7857            let customAction = viewType === 'day' ? options.navLinkDayClick :
7858                viewType === 'week' ? options.navLinkWeekClick : null;
7859            if (typeof customAction === 'function') {
7860                customAction.call(calendarApi, dateEnv.toDate(dateMarker), ev);
7861            }
7862            else {
7863                if (typeof customAction === 'string') {
7864                    viewType = customAction;
7865                }
7866                calendarApi.zoomTo(dateMarker, viewType);
7867            }
7868        };
7869        return Object.assign({ title: formatWithOrdinals(options.navLinkHint, [dateStr, zonedDate], dateStr), 'data-navlink': '' }, (isTabbable
7870            ? createAriaClickAttrs(handleInteraction)
7871            : { onClick: handleInteraction }));
7872    }
7873    return { 'aria-label': dateStr };
7874}
7875
7876let _isRtlScrollbarOnLeft = null;
7877function getIsRtlScrollbarOnLeft() {
7878    if (_isRtlScrollbarOnLeft === null) {
7879        _isRtlScrollbarOnLeft = computeIsRtlScrollbarOnLeft();
7880    }
7881    return _isRtlScrollbarOnLeft;
7882}
7883function computeIsRtlScrollbarOnLeft() {
7884    let outerEl = document.createElement('div');
7885    applyStyle(outerEl, {
7886        position: 'absolute',
7887        top: -1000,
7888        left: 0,
7889        border: 0,
7890        padding: 0,
7891        overflow: 'scroll',
7892        direction: 'rtl',
7893    });
7894    outerEl.innerHTML = '<div></div>';
7895    document.body.appendChild(outerEl);
7896    let innerEl = outerEl.firstChild;
7897    let res = innerEl.getBoundingClientRect().left > outerEl.getBoundingClientRect().left;
7898    removeElement(outerEl);
7899    return res;
7900}
7901
7902let _scrollbarWidths;
7903function getScrollbarWidths() {
7904    if (!_scrollbarWidths) {
7905        _scrollbarWidths = computeScrollbarWidths();
7906    }
7907    return _scrollbarWidths;
7908}
7909function computeScrollbarWidths() {
7910    let el = document.createElement('div');
7911    el.style.overflow = 'scroll';
7912    el.style.position = 'absolute';
7913    el.style.top = '-9999px';
7914    el.style.left = '-9999px';
7915    document.body.appendChild(el);
7916    let res = computeScrollbarWidthsForEl(el);
7917    document.body.removeChild(el);
7918    return res;
7919}
7920// WARNING: will include border
7921function computeScrollbarWidthsForEl(el) {
7922    return {
7923        x: el.offsetHeight - el.clientHeight,
7924        y: el.offsetWidth - el.clientWidth,
7925    };
7926}
7927
7928function computeEdges(el, getPadding = false) {
7929    let computedStyle = window.getComputedStyle(el);
7930    let borderLeft = parseInt(computedStyle.borderLeftWidth, 10) || 0;
7931    let borderRight = parseInt(computedStyle.borderRightWidth, 10) || 0;
7932    let borderTop = parseInt(computedStyle.borderTopWidth, 10) || 0;
7933    let borderBottom = parseInt(computedStyle.borderBottomWidth, 10) || 0;
7934    let badScrollbarWidths = computeScrollbarWidthsForEl(el); // includes border!
7935    let scrollbarLeftRight = badScrollbarWidths.y - borderLeft - borderRight;
7936    let scrollbarBottom = badScrollbarWidths.x - borderTop - borderBottom;
7937    let res = {
7938        borderLeft,
7939        borderRight,
7940        borderTop,
7941        borderBottom,
7942        scrollbarBottom,
7943        scrollbarLeft: 0,
7944        scrollbarRight: 0,
7945    };
7946    if (getIsRtlScrollbarOnLeft() && computedStyle.direction === 'rtl') { // is the scrollbar on the left side?
7947        res.scrollbarLeft = scrollbarLeftRight;
7948    }
7949    else {
7950        res.scrollbarRight = scrollbarLeftRight;
7951    }
7952    if (getPadding) {
7953        res.paddingLeft = parseInt(computedStyle.paddingLeft, 10) || 0;
7954        res.paddingRight = parseInt(computedStyle.paddingRight, 10) || 0;
7955        res.paddingTop = parseInt(computedStyle.paddingTop, 10) || 0;
7956        res.paddingBottom = parseInt(computedStyle.paddingBottom, 10) || 0;
7957    }
7958    return res;
7959}
7960function computeInnerRect(el, goWithinPadding = false, doFromWindowViewport) {
7961    let outerRect = doFromWindowViewport ? el.getBoundingClientRect() : computeRect(el);
7962    let edges = computeEdges(el, goWithinPadding);
7963    let res = {
7964        left: outerRect.left + edges.borderLeft + edges.scrollbarLeft,
7965        right: outerRect.right - edges.borderRight - edges.scrollbarRight,
7966        top: outerRect.top + edges.borderTop,
7967        bottom: outerRect.bottom - edges.borderBottom - edges.scrollbarBottom,
7968    };
7969    if (goWithinPadding) {
7970        res.left += edges.paddingLeft;
7971        res.right -= edges.paddingRight;
7972        res.top += edges.paddingTop;
7973        res.bottom -= edges.paddingBottom;
7974    }
7975    return res;
7976}
7977function computeRect(el) {
7978    let rect = el.getBoundingClientRect();
7979    return {
7980        left: rect.left + window.pageXOffset,
7981        top: rect.top + window.pageYOffset,
7982        right: rect.right + window.pageXOffset,
7983        bottom: rect.bottom + window.pageYOffset,
7984    };
7985}
7986function computeClippedClientRect(el) {
7987    let clippingParents = getClippingParents(el);
7988    let rect = el.getBoundingClientRect();
7989    for (let clippingParent of clippingParents) {
7990        let intersection = intersectRects(rect, clippingParent.getBoundingClientRect());
7991        if (intersection) {
7992            rect = intersection;
7993        }
7994        else {
7995            return null;
7996        }
7997    }
7998    return rect;
7999}
8000// does not return window
8001function getClippingParents(el) {
8002    let parents = [];
8003    while (el instanceof HTMLElement) { // will stop when gets to document or null
8004        let computedStyle = window.getComputedStyle(el);
8005        if (computedStyle.position === 'fixed') {
8006            break;
8007        }
8008        if ((/(auto|scroll)/).test(computedStyle.overflow + computedStyle.overflowY + computedStyle.overflowX)) {
8009            parents.push(el);
8010        }
8011        el = el.parentNode;
8012    }
8013    return parents;
8014}
8015
8016/*
8017Records offset information for a set of elements, relative to an origin element.
8018Can record the left/right OR the top/bottom OR both.
8019Provides methods for querying the cache by position.
8020*/
8021class PositionCache {
8022    constructor(originEl, els, isHorizontal, isVertical) {
8023        this.els = els;
8024        let originClientRect = this.originClientRect = originEl.getBoundingClientRect(); // relative to viewport top-left
8025        if (isHorizontal) {
8026            this.buildElHorizontals(originClientRect.left);
8027        }
8028        if (isVertical) {
8029            this.buildElVerticals(originClientRect.top);
8030        }
8031    }
8032    // Populates the left/right internal coordinate arrays
8033    buildElHorizontals(originClientLeft) {
8034        let lefts = [];
8035        let rights = [];
8036        for (let el of this.els) {
8037            let rect = el.getBoundingClientRect();
8038            lefts.push(rect.left - originClientLeft);
8039            rights.push(rect.right - originClientLeft);
8040        }
8041        this.lefts = lefts;
8042        this.rights = rights;
8043    }
8044    // Populates the top/bottom internal coordinate arrays
8045    buildElVerticals(originClientTop) {
8046        let tops = [];
8047        let bottoms = [];
8048        for (let el of this.els) {
8049            let rect = el.getBoundingClientRect();
8050            tops.push(rect.top - originClientTop);
8051            bottoms.push(rect.bottom - originClientTop);
8052        }
8053        this.tops = tops;
8054        this.bottoms = bottoms;
8055    }
8056    // Given a left offset (from document left), returns the index of the el that it horizontally intersects.
8057    // If no intersection is made, returns undefined.
8058    leftToIndex(leftPosition) {
8059        let { lefts, rights } = this;
8060        let len = lefts.length;
8061        let i;
8062        for (i = 0; i < len; i += 1) {
8063            if (leftPosition >= lefts[i] && leftPosition < rights[i]) {
8064                return i;
8065            }
8066        }
8067        return undefined; // TODO: better
8068    }
8069    // Given a top offset (from document top), returns the index of the el that it vertically intersects.
8070    // If no intersection is made, returns undefined.
8071    topToIndex(topPosition) {
8072        let { tops, bottoms } = this;
8073        let len = tops.length;
8074        let i;
8075        for (i = 0; i < len; i += 1) {
8076            if (topPosition >= tops[i] && topPosition < bottoms[i]) {
8077                return i;
8078            }
8079        }
8080        return undefined; // TODO: better
8081    }
8082    // Gets the width of the element at the given index
8083    getWidth(leftIndex) {
8084        return this.rights[leftIndex] - this.lefts[leftIndex];
8085    }
8086    // Gets the height of the element at the given index
8087    getHeight(topIndex) {
8088        return this.bottoms[topIndex] - this.tops[topIndex];
8089    }
8090    similarTo(otherCache) {
8091        return similarNumArrays(this.tops || [], otherCache.tops || []) &&
8092            similarNumArrays(this.bottoms || [], otherCache.bottoms || []) &&
8093            similarNumArrays(this.lefts || [], otherCache.lefts || []) &&
8094            similarNumArrays(this.rights || [], otherCache.rights || []);
8095    }
8096}
8097function similarNumArrays(a, b) {
8098    const len = a.length;
8099    if (len !== b.length) {
8100        return false;
8101    }
8102    for (let i = 0; i < len; i++) {
8103        if (Math.round(a[i]) !== Math.round(b[i])) {
8104            return false;
8105        }
8106    }
8107    return true;
8108}
8109
8110/* eslint max-classes-per-file: "off" */
8111/*
8112An object for getting/setting scroll-related information for an element.
8113Internally, this is done very differently for window versus DOM element,
8114so this object serves as a common interface.
8115*/
8116class ScrollController {
8117    getMaxScrollTop() {
8118        return this.getScrollHeight() - this.getClientHeight();
8119    }
8120    getMaxScrollLeft() {
8121        return this.getScrollWidth() - this.getClientWidth();
8122    }
8123    canScrollVertically() {
8124        return this.getMaxScrollTop() > 0;
8125    }
8126    canScrollHorizontally() {
8127        return this.getMaxScrollLeft() > 0;
8128    }
8129    canScrollUp() {
8130        return this.getScrollTop() > 0;
8131    }
8132    canScrollDown() {
8133        return this.getScrollTop() < this.getMaxScrollTop();
8134    }
8135    canScrollLeft() {
8136        return this.getScrollLeft() > 0;
8137    }
8138    canScrollRight() {
8139        return this.getScrollLeft() < this.getMaxScrollLeft();
8140    }
8141}
8142class ElementScrollController extends ScrollController {
8143    constructor(el) {
8144        super();
8145        this.el = el;
8146    }
8147    getScrollTop() {
8148        return this.el.scrollTop;
8149    }
8150    getScrollLeft() {
8151        return this.el.scrollLeft;
8152    }
8153    setScrollTop(top) {
8154        this.el.scrollTop = top;
8155    }
8156    setScrollLeft(left) {
8157        this.el.scrollLeft = left;
8158    }
8159    getScrollWidth() {
8160        return this.el.scrollWidth;
8161    }
8162    getScrollHeight() {
8163        return this.el.scrollHeight;
8164    }
8165    getClientHeight() {
8166        return this.el.clientHeight;
8167    }
8168    getClientWidth() {
8169        return this.el.clientWidth;
8170    }
8171}
8172class WindowScrollController extends ScrollController {
8173    getScrollTop() {
8174        return window.pageYOffset;
8175    }
8176    getScrollLeft() {
8177        return window.pageXOffset;
8178    }
8179    setScrollTop(n) {
8180        window.scroll(window.pageXOffset, n);
8181    }
8182    setScrollLeft(n) {
8183        window.scroll(n, window.pageYOffset);
8184    }
8185    getScrollWidth() {
8186        return document.documentElement.scrollWidth;
8187    }
8188    getScrollHeight() {
8189        return document.documentElement.scrollHeight;
8190    }
8191    getClientHeight() {
8192        return document.documentElement.clientHeight;
8193    }
8194    getClientWidth() {
8195        return document.documentElement.clientWidth;
8196    }
8197}
8198
8199/*
8200an INTERACTABLE date component
8201
8202PURPOSES:
8203- hook up to fg, fill, and mirror renderers
8204- interface for dragging and hits
8205*/
8206class DateComponent extends BaseComponent {
8207    constructor() {
8208        super(...arguments);
8209        this.uid = guid();
8210    }
8211    // Hit System
8212    // -----------------------------------------------------------------------------------------------------------------
8213    prepareHits() {
8214    }
8215    queryHit(positionLeft, positionTop, elWidth, elHeight) {
8216        return null; // this should be abstract
8217    }
8218    // Pointer Interaction Utils
8219    // -----------------------------------------------------------------------------------------------------------------
8220    isValidSegDownEl(el) {
8221        return !this.props.eventDrag && // HACK
8222            !this.props.eventResize && // HACK
8223            !elementClosest(el, '.fc-event-mirror');
8224    }
8225    isValidDateDownEl(el) {
8226        return !elementClosest(el, '.fc-event:not(.fc-bg-event)') &&
8227            !elementClosest(el, '.fc-more-link') && // a "more.." link
8228            !elementClosest(el, 'a[data-navlink]') && // a clickable nav link
8229            !elementClosest(el, '.fc-popover'); // hack
8230    }
8231}
8232
8233class NamedTimeZoneImpl {
8234    constructor(timeZoneName) {
8235        this.timeZoneName = timeZoneName;
8236    }
8237}
8238
8239class SegHierarchy {
8240    constructor(getEntryThickness = (entry) => {
8241        // if no thickness known, assume 1 (if 0, so small it always fits)
8242        return entry.thickness || 1;
8243    }) {
8244        this.getEntryThickness = getEntryThickness;
8245        // settings
8246        this.strictOrder = false;
8247        this.allowReslicing = false;
8248        this.maxCoord = -1; // -1 means no max
8249        this.maxStackCnt = -1; // -1 means no max
8250        this.levelCoords = []; // ordered
8251        this.entriesByLevel = []; // parallel with levelCoords
8252        this.stackCnts = {}; // TODO: use better technique!?
8253    }
8254    addSegs(inputs) {
8255        let hiddenEntries = [];
8256        for (let input of inputs) {
8257            this.insertEntry(input, hiddenEntries);
8258        }
8259        return hiddenEntries;
8260    }
8261    insertEntry(entry, hiddenEntries) {
8262        let insertion = this.findInsertion(entry);
8263        if (this.isInsertionValid(insertion, entry)) {
8264            this.insertEntryAt(entry, insertion);
8265        }
8266        else {
8267            this.handleInvalidInsertion(insertion, entry, hiddenEntries);
8268        }
8269    }
8270    isInsertionValid(insertion, entry) {
8271        return (this.maxCoord === -1 || insertion.levelCoord + this.getEntryThickness(entry) <= this.maxCoord) &&
8272            (this.maxStackCnt === -1 || insertion.stackCnt < this.maxStackCnt);
8273    }
8274    handleInvalidInsertion(insertion, entry, hiddenEntries) {
8275        if (this.allowReslicing && insertion.touchingEntry) {
8276            const hiddenEntry = Object.assign(Object.assign({}, entry), { span: intersectSpans(entry.span, insertion.touchingEntry.span) });
8277            hiddenEntries.push(hiddenEntry);
8278            this.splitEntry(entry, insertion.touchingEntry, hiddenEntries);
8279        }
8280        else {
8281            hiddenEntries.push(entry);
8282        }
8283    }
8284    /*
8285    Does NOT add what hit the `barrier` into hiddenEntries. Should already be done.
8286    */
8287    splitEntry(entry, barrier, hiddenEntries) {
8288        let entrySpan = entry.span;
8289        let barrierSpan = barrier.span;
8290        if (entrySpan.start < barrierSpan.start) {
8291            this.insertEntry({
8292                index: entry.index,
8293                thickness: entry.thickness,
8294                span: { start: entrySpan.start, end: barrierSpan.start },
8295            }, hiddenEntries);
8296        }
8297        if (entrySpan.end > barrierSpan.end) {
8298            this.insertEntry({
8299                index: entry.index,
8300                thickness: entry.thickness,
8301                span: { start: barrierSpan.end, end: entrySpan.end },
8302            }, hiddenEntries);
8303        }
8304    }
8305    insertEntryAt(entry, insertion) {
8306        let { entriesByLevel, levelCoords } = this;
8307        if (insertion.lateral === -1) {
8308            // create a new level
8309            insertAt(levelCoords, insertion.level, insertion.levelCoord);
8310            insertAt(entriesByLevel, insertion.level, [entry]);
8311        }
8312        else {
8313            // insert into existing level
8314            insertAt(entriesByLevel[insertion.level], insertion.lateral, entry);
8315        }
8316        this.stackCnts[buildEntryKey(entry)] = insertion.stackCnt;
8317    }
8318    /*
8319    does not care about limits
8320    */
8321    findInsertion(newEntry) {
8322        let { levelCoords, entriesByLevel, strictOrder, stackCnts } = this;
8323        let levelCnt = levelCoords.length;
8324        let candidateCoord = 0;
8325        let touchingLevel = -1;
8326        let touchingLateral = -1;
8327        let touchingEntry = null;
8328        let stackCnt = 0;
8329        for (let trackingLevel = 0; trackingLevel < levelCnt; trackingLevel += 1) {
8330            const trackingCoord = levelCoords[trackingLevel];
8331            // if the current level is past the placed entry, we have found a good empty space and can stop.
8332            // if strictOrder, keep finding more lateral intersections.
8333            if (!strictOrder && trackingCoord >= candidateCoord + this.getEntryThickness(newEntry)) {
8334                break;
8335            }
8336            let trackingEntries = entriesByLevel[trackingLevel];
8337            let trackingEntry;
8338            let searchRes = binarySearch(trackingEntries, newEntry.span.start, getEntrySpanEnd); // find first entry after newEntry's end
8339            let lateralIndex = searchRes[0] + searchRes[1]; // if exact match (which doesn't collide), go to next one
8340            while ( // loop through entries that horizontally intersect
8341            (trackingEntry = trackingEntries[lateralIndex]) && // but not past the whole entry list
8342                trackingEntry.span.start < newEntry.span.end // and not entirely past newEntry
8343            ) {
8344                let trackingEntryBottom = trackingCoord + this.getEntryThickness(trackingEntry);
8345                // intersects into the top of the candidate?
8346                if (trackingEntryBottom > candidateCoord) {
8347                    candidateCoord = trackingEntryBottom;
8348                    touchingEntry = trackingEntry;
8349                    touchingLevel = trackingLevel;
8350                    touchingLateral = lateralIndex;
8351                }
8352                // butts up against top of candidate? (will happen if just intersected as well)
8353                if (trackingEntryBottom === candidateCoord) {
8354                    // accumulate the highest possible stackCnt of the trackingEntries that butt up
8355                    stackCnt = Math.max(stackCnt, stackCnts[buildEntryKey(trackingEntry)] + 1);
8356                }
8357                lateralIndex += 1;
8358            }
8359        }
8360        // the destination level will be after touchingEntry's level. find it
8361        let destLevel = 0;
8362        if (touchingEntry) {
8363            destLevel = touchingLevel + 1;
8364            while (destLevel < levelCnt && levelCoords[destLevel] < candidateCoord) {
8365                destLevel += 1;
8366            }
8367        }
8368        // if adding to an existing level, find where to insert
8369        let destLateral = -1;
8370        if (destLevel < levelCnt && levelCoords[destLevel] === candidateCoord) {
8371            destLateral = binarySearch(entriesByLevel[destLevel], newEntry.span.end, getEntrySpanEnd)[0];
8372        }
8373        return {
8374            touchingLevel,
8375            touchingLateral,
8376            touchingEntry,
8377            stackCnt,
8378            levelCoord: candidateCoord,
8379            level: destLevel,
8380            lateral: destLateral,
8381        };
8382    }
8383    // sorted by levelCoord (lowest to highest)
8384    toRects() {
8385        let { entriesByLevel, levelCoords } = this;
8386        let levelCnt = entriesByLevel.length;
8387        let rects = [];
8388        for (let level = 0; level < levelCnt; level += 1) {
8389            let entries = entriesByLevel[level];
8390            let levelCoord = levelCoords[level];
8391            for (let entry of entries) {
8392                rects.push(Object.assign(Object.assign({}, entry), { thickness: this.getEntryThickness(entry), levelCoord }));
8393            }
8394        }
8395        return rects;
8396    }
8397}
8398function getEntrySpanEnd(entry) {
8399    return entry.span.end;
8400}
8401function buildEntryKey(entry) {
8402    return entry.index + ':' + entry.span.start;
8403}
8404// returns groups with entries sorted by input order
8405function groupIntersectingEntries(entries) {
8406    let merges = [];
8407    for (let entry of entries) {
8408        let filteredMerges = [];
8409        let hungryMerge = {
8410            span: entry.span,
8411            entries: [entry],
8412        };
8413        for (let merge of merges) {
8414            if (intersectSpans(merge.span, hungryMerge.span)) {
8415                hungryMerge = {
8416                    entries: merge.entries.concat(hungryMerge.entries),
8417                    span: joinSpans(merge.span, hungryMerge.span),
8418                };
8419            }
8420            else {
8421                filteredMerges.push(merge);
8422            }
8423        }
8424        filteredMerges.push(hungryMerge);
8425        merges = filteredMerges;
8426    }
8427    return merges;
8428}
8429function joinSpans(span0, span1) {
8430    return {
8431        start: Math.min(span0.start, span1.start),
8432        end: Math.max(span0.end, span1.end),
8433    };
8434}
8435function intersectSpans(span0, span1) {
8436    let start = Math.max(span0.start, span1.start);
8437    let end = Math.min(span0.end, span1.end);
8438    if (start < end) {
8439        return { start, end };
8440    }
8441    return null;
8442}
8443// general util
8444// ---------------------------------------------------------------------------------------------------------------------
8445function insertAt(arr, index, item) {
8446    arr.splice(index, 0, item);
8447}
8448function binarySearch(a, searchVal, getItemVal) {
8449    let startIndex = 0;
8450    let endIndex = a.length; // exclusive
8451    if (!endIndex || searchVal < getItemVal(a[startIndex])) { // no items OR before first item
8452        return [0, 0];
8453    }
8454    if (searchVal > getItemVal(a[endIndex - 1])) { // after last item
8455        return [endIndex, 0];
8456    }
8457    while (startIndex < endIndex) {
8458        let middleIndex = Math.floor(startIndex + (endIndex - startIndex) / 2);
8459        let middleVal = getItemVal(a[middleIndex]);
8460        if (searchVal < middleVal) {
8461            endIndex = middleIndex;
8462        }
8463        else if (searchVal > middleVal) {
8464            startIndex = middleIndex + 1;
8465        }
8466        else { // equal!
8467            return [middleIndex, 1];
8468        }
8469    }
8470    return [startIndex, 0];
8471}
8472
8473/*
8474An abstraction for a dragging interaction originating on an event.
8475Does higher-level things than PointerDragger, such as possibly:
8476- a "mirror" that moves with the pointer
8477- a minimum number of pixels or other criteria for a true drag to begin
8478
8479subclasses must emit:
8480- pointerdown
8481- dragstart
8482- dragmove
8483- pointerup
8484- dragend
8485*/
8486class ElementDragging {
8487    constructor(el, selector) {
8488        this.emitter = new Emitter();
8489    }
8490    destroy() {
8491    }
8492    setMirrorIsVisible(bool) {
8493        // optional if subclass doesn't want to support a mirror
8494    }
8495    setMirrorNeedsRevert(bool) {
8496        // optional if subclass doesn't want to support a mirror
8497    }
8498    setAutoScrollEnabled(bool) {
8499        // optional
8500    }
8501}
8502
8503// TODO: get rid of this in favor of options system,
8504// tho it's really easy to access this globally rather than pass thru options.
8505const config = {};
8506
8507/*
8508Information about what will happen when an external element is dragged-and-dropped
8509onto a calendar. Contains information for creating an event.
8510*/
8511const DRAG_META_REFINERS = {
8512    startTime: createDuration,
8513    duration: createDuration,
8514    create: Boolean,
8515    sourceId: String,
8516};
8517function parseDragMeta(raw) {
8518    let { refined, extra } = refineProps(raw, DRAG_META_REFINERS);
8519    return {
8520        startTime: refined.startTime || null,
8521        duration: refined.duration || null,
8522        create: refined.create != null ? refined.create : true,
8523        sourceId: refined.sourceId,
8524        leftoverProps: extra,
8525    };
8526}
8527
8528// Computes a default column header formatting string if `colFormat` is not explicitly defined
8529function computeFallbackHeaderFormat(datesRepDistinctDays, dayCnt) {
8530    // if more than one week row, or if there are a lot of columns with not much space,
8531    // put just the day numbers will be in each cell
8532    if (!datesRepDistinctDays || dayCnt > 10) {
8533        return createFormatter({ weekday: 'short' }); // "Sat"
8534    }
8535    if (dayCnt > 1) {
8536        return createFormatter({ weekday: 'short', month: 'numeric', day: 'numeric', omitCommas: true }); // "Sat 11/12"
8537    }
8538    return createFormatter({ weekday: 'long' }); // "Saturday"
8539}
8540
8541const CLASS_NAME = 'fc-col-header-cell'; // do the cushion too? no
8542function renderInner$1(renderProps) {
8543    return renderProps.text;
8544}
8545
8546// BAD name for this class now. used in the Header
8547class TableDateCell extends BaseComponent {
8548    render() {
8549        let { dateEnv, options, theme, viewApi } = this.context;
8550        let { props } = this;
8551        let { date, dateProfile } = props;
8552        let dayMeta = getDateMeta(date, props.todayRange, null, dateProfile);
8553        let classNames = [CLASS_NAME].concat(getDayClassNames(dayMeta, theme));
8554        let text = dateEnv.format(date, props.dayHeaderFormat);
8555        // if colCnt is 1, we are already in a day-view and don't need a navlink
8556        let navLinkAttrs = (!dayMeta.isDisabled && props.colCnt > 1)
8557            ? buildNavLinkAttrs(this.context, date)
8558            : {};
8559        let renderProps = Object.assign(Object.assign(Object.assign({ date: dateEnv.toDate(date), view: viewApi }, props.extraRenderProps), { text }), dayMeta);
8560        return (Object(preact__WEBPACK_IMPORTED_MODULE_0__["createElement"])(ContentContainer, { elTag: "th", elClasses: classNames, elAttrs: Object.assign({ role: 'columnheader', colSpan: props.colSpan, 'data-date': !dayMeta.isDisabled ? formatDayString(date) : undefined }, props.extraDataAttrs), renderProps: renderProps, generatorName: "dayHeaderContent", customGenerator: options.dayHeaderContent, defaultGenerator: renderInner$1, classNameGenerator: options.dayHeaderClassNames, didMount: options.dayHeaderDidMount, willUnmount: options.dayHeaderWillUnmount }, (InnerContainer) => (Object(preact__WEBPACK_IMPORTED_MODULE_0__["createElement"])("div", { className: "fc-scrollgrid-sync-inner" }, !dayMeta.isDisabled && (Object(preact__WEBPACK_IMPORTED_MODULE_0__["createElement"])(InnerContainer, { elTag: "a", elAttrs: navLinkAttrs, elClasses: [
8561                'fc-col-header-cell-cushion',
8562                props.isSticky && 'fc-sticky',
8563            ] }))))));
8564    }
8565}
8566
8567const WEEKDAY_FORMAT = createFormatter({ weekday: 'long' });
8568class TableDowCell extends BaseComponent {
8569    render() {
8570        let { props } = this;
8571        let { dateEnv, theme, viewApi, options } = this.context;
8572        let date = addDays(new Date(259200000), props.dow); // start with Sun, 04 Jan 1970 00:00:00 GMT
8573        let dateMeta = {
8574            dow: props.dow,
8575            isDisabled: false,
8576            isFuture: false,
8577            isPast: false,
8578            isToday: false,
8579            isOther: false,
8580        };
8581        let text = dateEnv.format(date, props.dayHeaderFormat);
8582        let renderProps = Object.assign(Object.assign(Object.assign(Object.assign({ // TODO: make this public?
8583            date }, dateMeta), { view: viewApi }), props.extraRenderProps), { text });
8584        return (Object(preact__WEBPACK_IMPORTED_MODULE_0__["createElement"])(ContentContainer, { elTag: "th", elClasses: [
8585                CLASS_NAME,
8586                ...getDayClassNames(dateMeta, theme),
8587                ...(props.extraClassNames || []),
8588            ], elAttrs: Object.assign({ role: 'columnheader', colSpan: props.colSpan }, props.extraDataAttrs), renderProps: renderProps, generatorName: "dayHeaderContent", customGenerator: options.dayHeaderContent, defaultGenerator: renderInner$1, classNameGenerator: options.dayHeaderClassNames, didMount: options.dayHeaderDidMount, willUnmount: options.dayHeaderWillUnmount }, (InnerContent) => (Object(preact__WEBPACK_IMPORTED_MODULE_0__["createElement"])("div", { className: "fc-scrollgrid-sync-inner" },
8589            Object(preact__WEBPACK_IMPORTED_MODULE_0__["createElement"])(InnerContent, { elTag: "a", elClasses: [
8590                    'fc-col-header-cell-cushion',
8591                    props.isSticky && 'fc-sticky',
8592                ], elAttrs: {
8593                    'aria-label': dateEnv.format(date, WEEKDAY_FORMAT),
8594                } })))));
8595    }
8596}
8597
8598class NowTimer extends preact__WEBPACK_IMPORTED_MODULE_0__["Component"] {
8599    constructor(props, context) {
8600        super(props, context);
8601        this.initialNowDate = getNow(context.options.now, context.dateEnv);
8602        this.initialNowQueriedMs = new Date().valueOf();
8603        this.state = this.computeTiming().currentState;
8604    }
8605    render() {
8606        let { props, state } = this;
8607        return props.children(state.nowDate, state.todayRange);
8608    }
8609    componentDidMount() {
8610        this.setTimeout();
8611    }
8612    componentDidUpdate(prevProps) {
8613        if (prevProps.unit !== this.props.unit) {
8614            this.clearTimeout();
8615            this.setTimeout();
8616        }
8617    }
8618    componentWillUnmount() {
8619        this.clearTimeout();
8620    }
8621    computeTiming() {
8622        let { props, context } = this;
8623        let unroundedNow = addMs(this.initialNowDate, new Date().valueOf() - this.initialNowQueriedMs);
8624        let currentUnitStart = context.dateEnv.startOf(unroundedNow, props.unit);
8625        let nextUnitStart = context.dateEnv.add(currentUnitStart, createDuration(1, props.unit));
8626        let waitMs = nextUnitStart.valueOf() - unroundedNow.valueOf();
8627        // there is a max setTimeout ms value (https://stackoverflow.com/a/3468650/96342)
8628        // ensure no longer than a day
8629        waitMs = Math.min(1000 * 60 * 60 * 24, waitMs);
8630        return {
8631            currentState: { nowDate: currentUnitStart, todayRange: buildDayRange(currentUnitStart) },
8632            nextState: { nowDate: nextUnitStart, todayRange: buildDayRange(nextUnitStart) },
8633            waitMs,
8634        };
8635    }
8636    setTimeout() {
8637        let { nextState, waitMs } = this.computeTiming();
8638        this.timeoutId = setTimeout(() => {
8639            this.setState(nextState, () => {
8640                this.setTimeout();
8641            });
8642        }, waitMs);
8643    }
8644    clearTimeout() {
8645        if (this.timeoutId) {
8646            clearTimeout(this.timeoutId);
8647        }
8648    }
8649}
8650NowTimer.contextType = ViewContextType;
8651function buildDayRange(date) {
8652    let start = startOfDay(date);
8653    let end = addDays(start, 1);
8654    return { start, end };
8655}
8656
8657class DayHeader extends BaseComponent {
8658    constructor() {
8659        super(...arguments);
8660        this.createDayHeaderFormatter = memoize(createDayHeaderFormatter);
8661    }
8662    render() {
8663        let { context } = this;
8664        let { dates, dateProfile, datesRepDistinctDays, renderIntro } = this.props;
8665        let dayHeaderFormat = this.createDayHeaderFormatter(context.options.dayHeaderFormat, datesRepDistinctDays, dates.length);
8666        return (Object(preact__WEBPACK_IMPORTED_MODULE_0__["createElement"])(NowTimer, { unit: "day" }, (nowDate, todayRange) => (Object(preact__WEBPACK_IMPORTED_MODULE_0__["createElement"])("tr", { role: "row" },
8667            renderIntro && renderIntro('day'),
8668            dates.map((date) => (datesRepDistinctDays ? (Object(preact__WEBPACK_IMPORTED_MODULE_0__["createElement"])(TableDateCell, { key: date.toISOString(), date: date, dateProfile: dateProfile, todayRange: todayRange, colCnt: dates.length, dayHeaderFormat: dayHeaderFormat })) : (Object(preact__WEBPACK_IMPORTED_MODULE_0__["createElement"])(TableDowCell, { key: date.getUTCDay(), dow: date.getUTCDay(), dayHeaderFormat: dayHeaderFormat }))))))));
8669    }
8670}
8671function createDayHeaderFormatter(explicitFormat, datesRepDistinctDays, dateCnt) {
8672    return explicitFormat || computeFallbackHeaderFormat(datesRepDistinctDays, dateCnt);
8673}
8674
8675class DaySeriesModel {
8676    constructor(range, dateProfileGenerator) {
8677        let date = range.start;
8678        let { end } = range;
8679        let indices = [];
8680        let dates = [];
8681        let dayIndex = -1;
8682        while (date < end) { // loop each day from start to end
8683            if (dateProfileGenerator.isHiddenDay(date)) {
8684                indices.push(dayIndex + 0.5); // mark that it's between indices
8685            }
8686            else {
8687                dayIndex += 1;
8688                indices.push(dayIndex);
8689                dates.push(date);
8690            }
8691            date = addDays(date, 1);
8692        }
8693        this.dates = dates;
8694        this.indices = indices;
8695        this.cnt = dates.length;
8696    }
8697    sliceRange(range) {
8698        let firstIndex = this.getDateDayIndex(range.start); // inclusive first index
8699        let lastIndex = this.getDateDayIndex(addDays(range.end, -1)); // inclusive last index
8700        let clippedFirstIndex = Math.max(0, firstIndex);
8701        let clippedLastIndex = Math.min(this.cnt - 1, lastIndex);
8702        // deal with in-between indices
8703        clippedFirstIndex = Math.ceil(clippedFirstIndex); // in-between starts round to next cell
8704        clippedLastIndex = Math.floor(clippedLastIndex); // in-between ends round to prev cell
8705        if (clippedFirstIndex <= clippedLastIndex) {
8706            return {
8707                firstIndex: clippedFirstIndex,
8708                lastIndex: clippedLastIndex,
8709                isStart: firstIndex === clippedFirstIndex,
8710                isEnd: lastIndex === clippedLastIndex,
8711            };
8712        }
8713        return null;
8714    }
8715    // Given a date, returns its chronolocial cell-index from the first cell of the grid.
8716    // If the date lies between cells (because of hiddenDays), returns a floating-point value between offsets.
8717    // If before the first offset, returns a negative number.
8718    // If after the last offset, returns an offset past the last cell offset.
8719    // Only works for *start* dates of cells. Will not work for exclusive end dates for cells.
8720    getDateDayIndex(date) {
8721        let { indices } = this;
8722        let dayOffset = Math.floor(diffDays(this.dates[0], date));
8723        if (dayOffset < 0) {
8724            return indices[0] - 1;
8725        }
8726        if (dayOffset >= indices.length) {
8727            return indices[indices.length - 1] + 1;
8728        }
8729        return indices[dayOffset];
8730    }
8731}
8732
8733class DayTableModel {
8734    constructor(daySeries, breakOnWeeks) {
8735        let { dates } = daySeries;
8736        let daysPerRow;
8737        let firstDay;
8738        let rowCnt;
8739        if (breakOnWeeks) {
8740            // count columns until the day-of-week repeats
8741            firstDay = dates[0].getUTCDay();
8742            for (daysPerRow = 1; daysPerRow < dates.length; daysPerRow += 1) {
8743                if (dates[daysPerRow].getUTCDay() === firstDay) {
8744                    break;
8745                }
8746            }
8747            rowCnt = Math.ceil(dates.length / daysPerRow);
8748        }
8749        else {
8750            rowCnt = 1;
8751            daysPerRow = dates.length;
8752        }
8753        this.rowCnt = rowCnt;
8754        this.colCnt = daysPerRow;
8755        this.daySeries = daySeries;
8756        this.cells = this.buildCells();
8757        this.headerDates = this.buildHeaderDates();
8758    }
8759    buildCells() {
8760        let rows = [];
8761        for (let row = 0; row < this.rowCnt; row += 1) {
8762            let cells = [];
8763            for (let col = 0; col < this.colCnt; col += 1) {
8764                cells.push(this.buildCell(row, col));
8765            }
8766            rows.push(cells);
8767        }
8768        return rows;
8769    }
8770    buildCell(row, col) {
8771        let date = this.daySeries.dates[row * this.colCnt + col];
8772        return {
8773            key: date.toISOString(),
8774            date,
8775        };
8776    }
8777    buildHeaderDates() {
8778        let dates = [];
8779        for (let col = 0; col < this.colCnt; col += 1) {
8780            dates.push(this.cells[0][col].date);
8781        }
8782        return dates;
8783    }
8784    sliceRange(range) {
8785        let { colCnt } = this;
8786        let seriesSeg = this.daySeries.sliceRange(range);
8787        let segs = [];
8788        if (seriesSeg) {
8789            let { firstIndex, lastIndex } = seriesSeg;
8790            let index = firstIndex;
8791            while (index <= lastIndex) {
8792                let row = Math.floor(index / colCnt);
8793                let nextIndex = Math.min((row + 1) * colCnt, lastIndex + 1);
8794                segs.push({
8795                    row,
8796                    firstCol: index % colCnt,
8797                    lastCol: (nextIndex - 1) % colCnt,
8798                    isStart: seriesSeg.isStart && index === firstIndex,
8799                    isEnd: seriesSeg.isEnd && (nextIndex - 1) === lastIndex,
8800                });
8801                index = nextIndex;
8802            }
8803        }
8804        return segs;
8805    }
8806}
8807
8808class Slicer {
8809    constructor() {
8810        this.sliceBusinessHours = memoize(this._sliceBusinessHours);
8811        this.sliceDateSelection = memoize(this._sliceDateSpan);
8812        this.sliceEventStore = memoize(this._sliceEventStore);
8813        this.sliceEventDrag = memoize(this._sliceInteraction);
8814        this.sliceEventResize = memoize(this._sliceInteraction);
8815        this.forceDayIfListItem = false; // hack
8816    }
8817    sliceProps(props, dateProfile, nextDayThreshold, context, ...extraArgs) {
8818        let { eventUiBases } = props;
8819        let eventSegs = this.sliceEventStore(props.eventStore, eventUiBases, dateProfile, nextDayThreshold, ...extraArgs);
8820        return {
8821            dateSelectionSegs: this.sliceDateSelection(props.dateSelection, dateProfile, nextDayThreshold, eventUiBases, context, ...extraArgs),
8822            businessHourSegs: this.sliceBusinessHours(props.businessHours, dateProfile, nextDayThreshold, context, ...extraArgs),
8823            fgEventSegs: eventSegs.fg,
8824            bgEventSegs: eventSegs.bg,
8825            eventDrag: this.sliceEventDrag(props.eventDrag, eventUiBases, dateProfile, nextDayThreshold, ...extraArgs),
8826            eventResize: this.sliceEventResize(props.eventResize, eventUiBases, dateProfile, nextDayThreshold, ...extraArgs),
8827            eventSelection: props.eventSelection,
8828        }; // TODO: give interactionSegs?
8829    }
8830    sliceNowDate(// does not memoize
8831    date, dateProfile, nextDayThreshold, context, ...extraArgs) {
8832        return this._sliceDateSpan({ range: { start: date, end: addMs(date, 1) }, allDay: false }, // add 1 ms, protect against null range
8833        dateProfile, nextDayThreshold, {}, context, ...extraArgs);
8834    }
8835    _sliceBusinessHours(businessHours, dateProfile, nextDayThreshold, context, ...extraArgs) {
8836        if (!businessHours) {
8837            return [];
8838        }
8839        return this._sliceEventStore(expandRecurring(businessHours, computeActiveRange(dateProfile, Boolean(nextDayThreshold)), context), {}, dateProfile, nextDayThreshold, ...extraArgs).bg;
8840    }
8841    _sliceEventStore(eventStore, eventUiBases, dateProfile, nextDayThreshold, ...extraArgs) {
8842        if (eventStore) {
8843            let rangeRes = sliceEventStore(eventStore, eventUiBases, computeActiveRange(dateProfile, Boolean(nextDayThreshold)), nextDayThreshold);
8844            return {
8845                bg: this.sliceEventRanges(rangeRes.bg, extraArgs),
8846                fg: this.sliceEventRanges(rangeRes.fg, extraArgs),
8847            };
8848        }
8849        return { bg: [], fg: [] };
8850    }
8851    _sliceInteraction(interaction, eventUiBases, dateProfile, nextDayThreshold, ...extraArgs) {
8852        if (!interaction) {
8853            return null;
8854        }
8855        let rangeRes = sliceEventStore(interaction.mutatedEvents, eventUiBases, computeActiveRange(dateProfile, Boolean(nextDayThreshold)), nextDayThreshold);
8856        return {
8857            segs: this.sliceEventRanges(rangeRes.fg, extraArgs),
8858            affectedInstances: interaction.affectedEvents.instances,
8859            isEvent: interaction.isEvent,
8860        };
8861    }
8862    _sliceDateSpan(dateSpan, dateProfile, nextDayThreshold, eventUiBases, context, ...extraArgs) {
8863        if (!dateSpan) {
8864            return [];
8865        }
8866        let activeRange = computeActiveRange(dateProfile, Boolean(nextDayThreshold));
8867        let activeDateSpanRange = intersectRanges(dateSpan.range, activeRange);
8868        if (activeDateSpanRange) {
8869            dateSpan = Object.assign(Object.assign({}, dateSpan), { range: activeDateSpanRange });
8870            let eventRange = fabricateEventRange(dateSpan, eventUiBases, context);
8871            let segs = this.sliceRange(dateSpan.range, ...extraArgs);
8872            for (let seg of segs) {
8873                seg.eventRange = eventRange;
8874            }
8875            return segs;
8876        }
8877        return [];
8878    }
8879    /*
8880    "complete" seg means it has component and eventRange
8881    */
8882    sliceEventRanges(eventRanges, extraArgs) {
8883        let segs = [];
8884        for (let eventRange of eventRanges) {
8885            segs.push(...this.sliceEventRange(eventRange, extraArgs));
8886        }
8887        return segs;
8888    }
8889    /*
8890    "complete" seg means it has component and eventRange
8891    */
8892    sliceEventRange(eventRange, extraArgs) {
8893        let dateRange = eventRange.range;
8894        // hack to make multi-day events that are being force-displayed as list-items to take up only one day
8895        if (this.forceDayIfListItem && eventRange.ui.display === 'list-item') {
8896            dateRange = {
8897                start: dateRange.start,
8898                end: addDays(dateRange.start, 1),
8899            };
8900        }
8901        let segs = this.sliceRange(dateRange, ...extraArgs);
8902        for (let seg of segs) {
8903            seg.eventRange = eventRange;
8904            seg.isStart = eventRange.isStart && seg.isStart;
8905            seg.isEnd = eventRange.isEnd && seg.isEnd;
8906        }
8907        return segs;
8908    }
8909}
8910/*
8911for incorporating slotMinTime/slotMaxTime if appropriate
8912TODO: should be part of DateProfile!
8913TimelineDateProfile already does this btw
8914*/
8915function computeActiveRange(dateProfile, isComponentAllDay) {
8916    let range = dateProfile.activeRange;
8917    if (isComponentAllDay) {
8918        return range;
8919    }
8920    return {
8921        start: addMs(range.start, dateProfile.slotMinTime.milliseconds),
8922        end: addMs(range.end, dateProfile.slotMaxTime.milliseconds - 864e5), // 864e5 = ms in a day
8923    };
8924}
8925
8926// high-level segmenting-aware tester functions
8927// ------------------------------------------------------------------------------------------------------------------------
8928function isInteractionValid(interaction, dateProfile, context) {
8929    let { instances } = interaction.mutatedEvents;
8930    for (let instanceId in instances) {
8931        if (!rangeContainsRange(dateProfile.validRange, instances[instanceId].range)) {
8932            return false;
8933        }
8934    }
8935    return isNewPropsValid({ eventDrag: interaction }, context); // HACK: the eventDrag props is used for ALL interactions
8936}
8937function isDateSelectionValid(dateSelection, dateProfile, context) {
8938    if (!rangeContainsRange(dateProfile.validRange, dateSelection.range)) {
8939        return false;
8940    }
8941    return isNewPropsValid({ dateSelection }, context);
8942}
8943function isNewPropsValid(newProps, context) {
8944    let calendarState = context.getCurrentData();
8945    let props = Object.assign({ businessHours: calendarState.businessHours, dateSelection: '', eventStore: calendarState.eventStore, eventUiBases: calendarState.eventUiBases, eventSelection: '', eventDrag: null, eventResize: null }, newProps);
8946    return (context.pluginHooks.isPropsValid || isPropsValid)(props, context);
8947}
8948function isPropsValid(state, context, dateSpanMeta = {}, filterConfig) {
8949    if (state.eventDrag && !isInteractionPropsValid(state, context, dateSpanMeta, filterConfig)) {
8950        return false;
8951    }
8952    if (state.dateSelection && !isDateSelectionPropsValid(state, context, dateSpanMeta, filterConfig)) {
8953        return false;
8954    }
8955    return true;
8956}
8957// Moving Event Validation
8958// ------------------------------------------------------------------------------------------------------------------------
8959function isInteractionPropsValid(state, context, dateSpanMeta, filterConfig) {
8960    let currentState = context.getCurrentData();
8961    let interaction = state.eventDrag; // HACK: the eventDrag props is used for ALL interactions
8962    let subjectEventStore = interaction.mutatedEvents;
8963    let subjectDefs = subjectEventStore.defs;
8964    let subjectInstances = subjectEventStore.instances;
8965    let subjectConfigs = compileEventUis(subjectDefs, interaction.isEvent ?
8966        state.eventUiBases :
8967        { '': currentState.selectionConfig });
8968    if (filterConfig) {
8969        subjectConfigs = mapHash(subjectConfigs, filterConfig);
8970    }
8971    // exclude the subject events. TODO: exclude defs too?
8972    let otherEventStore = excludeInstances(state.eventStore, interaction.affectedEvents.instances);
8973    let otherDefs = otherEventStore.defs;
8974    let otherInstances = otherEventStore.instances;
8975    let otherConfigs = compileEventUis(otherDefs, state.eventUiBases);
8976    for (let subjectInstanceId in subjectInstances) {
8977        let subjectInstance = subjectInstances[subjectInstanceId];
8978        let subjectRange = subjectInstance.range;
8979        let subjectConfig = subjectConfigs[subjectInstance.defId];
8980        let subjectDef = subjectDefs[subjectInstance.defId];
8981        // constraint
8982        if (!allConstraintsPass(subjectConfig.constraints, subjectRange, otherEventStore, state.businessHours, context)) {
8983            return false;
8984        }
8985        // overlap
8986        let { eventOverlap } = context.options;
8987        let eventOverlapFunc = typeof eventOverlap === 'function' ? eventOverlap : null;
8988        for (let otherInstanceId in otherInstances) {
8989            let otherInstance = otherInstances[otherInstanceId];
8990            // intersect! evaluate
8991            if (rangesIntersect(subjectRange, otherInstance.range)) {
8992                let otherOverlap = otherConfigs[otherInstance.defId].overlap;
8993                // consider the other event's overlap. only do this if the subject event is a "real" event
8994                if (otherOverlap === false && interaction.isEvent) {
8995                    return false;
8996                }
8997                if (subjectConfig.overlap === false) {
8998                    return false;
8999                }
9000                if (eventOverlapFunc && !eventOverlapFunc(new EventImpl(context, otherDefs[otherInstance.defId], otherInstance), // still event
9001                new EventImpl(context, subjectDef, subjectInstance))) {
9002                    return false;
9003                }
9004            }
9005        }
9006        // allow (a function)
9007        let calendarEventStore = currentState.eventStore; // need global-to-calendar, not local to component (splittable)state
9008        for (let subjectAllow of subjectConfig.allows) {
9009            let subjectDateSpan = Object.assign(Object.assign({}, dateSpanMeta), { range: subjectInstance.range, allDay: subjectDef.allDay });
9010            let origDef = calendarEventStore.defs[subjectDef.defId];
9011            let origInstance = calendarEventStore.instances[subjectInstanceId];
9012            let eventApi;
9013            if (origDef) { // was previously in the calendar
9014                eventApi = new EventImpl(context, origDef, origInstance);
9015            }
9016            else { // was an external event
9017                eventApi = new EventImpl(context, subjectDef); // no instance, because had no dates
9018            }
9019            if (!subjectAllow(buildDateSpanApiWithContext(subjectDateSpan, context), eventApi)) {
9020                return false;
9021            }
9022        }
9023    }
9024    return true;
9025}
9026// Date Selection Validation
9027// ------------------------------------------------------------------------------------------------------------------------
9028function isDateSelectionPropsValid(state, context, dateSpanMeta, filterConfig) {
9029    let relevantEventStore = state.eventStore;
9030    let relevantDefs = relevantEventStore.defs;
9031    let relevantInstances = relevantEventStore.instances;
9032    let selection = state.dateSelection;
9033    let selectionRange = selection.range;
9034    let { selectionConfig } = context.getCurrentData();
9035    if (filterConfig) {
9036        selectionConfig = filterConfig(selectionConfig);
9037    }
9038    // constraint
9039    if (!allConstraintsPass(selectionConfig.constraints, selectionRange, relevantEventStore, state.businessHours, context)) {
9040        return false;
9041    }
9042    // overlap
9043    let { selectOverlap } = context.options;
9044    let selectOverlapFunc = typeof selectOverlap === 'function' ? selectOverlap : null;
9045    for (let relevantInstanceId in relevantInstances) {
9046        let relevantInstance = relevantInstances[relevantInstanceId];
9047        // intersect! evaluate
9048        if (rangesIntersect(selectionRange, relevantInstance.range)) {
9049            if (selectionConfig.overlap === false) {
9050                return false;
9051            }
9052            if (selectOverlapFunc && !selectOverlapFunc(new EventImpl(context, relevantDefs[relevantInstance.defId], relevantInstance), null)) {
9053                return false;
9054            }
9055        }
9056    }
9057    // allow (a function)
9058    for (let selectionAllow of selectionConfig.allows) {
9059        let fullDateSpan = Object.assign(Object.assign({}, dateSpanMeta), selection);
9060        if (!selectionAllow(buildDateSpanApiWithContext(fullDateSpan, context), null)) {
9061            return false;
9062        }
9063    }
9064    return true;
9065}
9066// Constraint Utils
9067// ------------------------------------------------------------------------------------------------------------------------
9068function allConstraintsPass(constraints, subjectRange, otherEventStore, businessHoursUnexpanded, context) {
9069    for (let constraint of constraints) {
9070        if (!anyRangesContainRange(constraintToRanges(constraint, subjectRange, otherEventStore, businessHoursUnexpanded, context), subjectRange)) {
9071            return false;
9072        }
9073    }
9074    return true;
9075}
9076function constraintToRanges(constraint, subjectRange, // for expanding a recurring constraint, or expanding business hours
9077otherEventStore, // for if constraint is an even group ID
9078businessHoursUnexpanded, // for if constraint is 'businessHours'
9079context) {
9080    if (constraint === 'businessHours') {
9081        return eventStoreToRanges(expandRecurring(businessHoursUnexpanded, subjectRange, context));
9082    }
9083    if (typeof constraint === 'string') { // an group ID
9084        return eventStoreToRanges(filterEventStoreDefs(otherEventStore, (eventDef) => eventDef.groupId === constraint));
9085    }
9086    if (typeof constraint === 'object' && constraint) { // non-null object
9087        return eventStoreToRanges(expandRecurring(constraint, subjectRange, context));
9088    }
9089    return []; // if it's false
9090}
9091// TODO: move to event-store file?
9092function eventStoreToRanges(eventStore) {
9093    let { instances } = eventStore;
9094    let ranges = [];
9095    for (let instanceId in instances) {
9096        ranges.push(instances[instanceId].range);
9097    }
9098    return ranges;
9099}
9100// TODO: move to geom file?
9101function anyRangesContainRange(outerRanges, innerRange) {
9102    for (let outerRange of outerRanges) {
9103        if (rangeContainsRange(outerRange, innerRange)) {
9104            return true;
9105        }
9106    }
9107    return false;
9108}
9109
9110const VISIBLE_HIDDEN_RE = /^(visible|hidden)$/;
9111class Scroller extends BaseComponent {
9112    constructor() {
9113        super(...arguments);
9114        this.handleEl = (el) => {
9115            this.el = el;
9116            setRef(this.props.elRef, el);
9117        };
9118    }
9119    render() {
9120        let { props } = this;
9121        let { liquid, liquidIsAbsolute } = props;
9122        let isAbsolute = liquid && liquidIsAbsolute;
9123        let className = ['fc-scroller'];
9124        if (liquid) {
9125            if (liquidIsAbsolute) {
9126                className.push('fc-scroller-liquid-absolute');
9127            }
9128            else {
9129                className.push('fc-scroller-liquid');
9130            }
9131        }
9132        return (Object(preact__WEBPACK_IMPORTED_MODULE_0__["createElement"])("div", { ref: this.handleEl, className: className.join(' '), style: {
9133                overflowX: props.overflowX,
9134                overflowY: props.overflowY,
9135                left: (isAbsolute && -(props.overcomeLeft || 0)) || '',
9136                right: (isAbsolute && -(props.overcomeRight || 0)) || '',
9137                bottom: (isAbsolute && -(props.overcomeBottom || 0)) || '',
9138                marginLeft: (!isAbsolute && -(props.overcomeLeft || 0)) || '',
9139                marginRight: (!isAbsolute && -(props.overcomeRight || 0)) || '',
9140                marginBottom: (!isAbsolute && -(props.overcomeBottom || 0)) || '',
9141                maxHeight: props.maxHeight || '',
9142            } }, props.children));
9143    }
9144    needsXScrolling() {
9145        if (VISIBLE_HIDDEN_RE.test(this.props.overflowX)) {
9146            return false;
9147        }
9148        // testing scrollWidth>clientWidth is unreliable cross-browser when pixel heights aren't integers.
9149        // much more reliable to see if children are taller than the scroller, even tho doesn't account for
9150        // inner-child margins and absolute positioning
9151        let { el } = this;
9152        let realClientWidth = this.el.getBoundingClientRect().width - this.getYScrollbarWidth();
9153        let { children } = el;
9154        for (let i = 0; i < children.length; i += 1) {
9155            let childEl = children[i];
9156            if (childEl.getBoundingClientRect().width > realClientWidth) {
9157                return true;
9158            }
9159        }
9160        return false;
9161    }
9162    needsYScrolling() {
9163        if (VISIBLE_HIDDEN_RE.test(this.props.overflowY)) {
9164            return false;
9165        }
9166        // testing scrollHeight>clientHeight is unreliable cross-browser when pixel heights aren't integers.
9167        // much more reliable to see if children are taller than the scroller, even tho doesn't account for
9168        // inner-child margins and absolute positioning
9169        let { el } = this;
9170        let realClientHeight = this.el.getBoundingClientRect().height - this.getXScrollbarWidth();
9171        let { children } = el;
9172        for (let i = 0; i < children.length; i += 1) {
9173            let childEl = children[i];
9174            if (childEl.getBoundingClientRect().height > realClientHeight) {
9175                return true;
9176            }
9177        }
9178        return false;
9179    }
9180    getXScrollbarWidth() {
9181        if (VISIBLE_HIDDEN_RE.test(this.props.overflowX)) {
9182            return 0;
9183        }
9184        return this.el.offsetHeight - this.el.clientHeight; // only works because we guarantee no borders. TODO: add to CSS with important?
9185    }
9186    getYScrollbarWidth() {
9187        if (VISIBLE_HIDDEN_RE.test(this.props.overflowY)) {
9188            return 0;
9189        }
9190        return this.el.offsetWidth - this.el.clientWidth; // only works because we guarantee no borders. TODO: add to CSS with important?
9191    }
9192}
9193
9194/*
9195TODO: somehow infer OtherArgs from masterCallback?
9196TODO: infer RefType from masterCallback if provided
9197*/
9198class RefMap {
9199    constructor(masterCallback) {
9200        this.masterCallback = masterCallback;
9201        this.currentMap = {};
9202        this.depths = {};
9203        this.callbackMap = {};
9204        this.handleValue = (val, key) => {
9205            let { depths, currentMap } = this;
9206            let removed = false;
9207            let added = false;
9208            if (val !== null) {
9209                // for bug... ACTUALLY: can probably do away with this now that callers don't share numeric indices anymore
9210                removed = (key in currentMap);
9211                currentMap[key] = val;
9212                depths[key] = (depths[key] || 0) + 1;
9213                added = true;
9214            }
9215            else {
9216                depths[key] -= 1;
9217                if (!depths[key]) {
9218                    delete currentMap[key];
9219                    delete this.callbackMap[key];
9220                    removed = true;
9221                }
9222            }
9223            if (this.masterCallback) {
9224                if (removed) {
9225                    this.masterCallback(null, String(key));
9226                }
9227                if (added) {
9228                    this.masterCallback(val, String(key));
9229                }
9230            }
9231        };
9232    }
9233    createRef(key) {
9234        let refCallback = this.callbackMap[key];
9235        if (!refCallback) {
9236            refCallback = this.callbackMap[key] = (val) => {
9237                this.handleValue(val, String(key));
9238            };
9239        }
9240        return refCallback;
9241    }
9242    // TODO: check callers that don't care about order. should use getAll instead
9243    // NOTE: this method has become less valuable now that we are encouraged to map order by some other index
9244    // TODO: provide ONE array-export function, buildArray, which fails on non-numeric indexes. caller can manipulate and "collect"
9245    collect(startIndex, endIndex, step) {
9246        return collectFromHash(this.currentMap, startIndex, endIndex, step);
9247    }
9248    getAll() {
9249        return hashValuesToArray(this.currentMap);
9250    }
9251}
9252
9253function computeShrinkWidth(chunkEls) {
9254    let shrinkCells = findElements(chunkEls, '.fc-scrollgrid-shrink');
9255    let largestWidth = 0;
9256    for (let shrinkCell of shrinkCells) {
9257        largestWidth = Math.max(largestWidth, computeSmallestCellWidth(shrinkCell));
9258    }
9259    return Math.ceil(largestWidth); // <table> elements work best with integers. round up to ensure contents fits
9260}
9261function getSectionHasLiquidHeight(props, sectionConfig) {
9262    return props.liquid && sectionConfig.liquid; // does the section do liquid-height? (need to have whole scrollgrid liquid-height as well)
9263}
9264function getAllowYScrolling(props, sectionConfig) {
9265    return sectionConfig.maxHeight != null || // if its possible for the height to max out, we might need scrollbars
9266        getSectionHasLiquidHeight(props, sectionConfig); // if the section is liquid height, it might condense enough to require scrollbars
9267}
9268// TODO: ONLY use `arg`. force out internal function to use same API
9269function renderChunkContent(sectionConfig, chunkConfig, arg, isHeader) {
9270    let { expandRows } = arg;
9271    let content = typeof chunkConfig.content === 'function' ?
9272        chunkConfig.content(arg) :
9273        Object(preact__WEBPACK_IMPORTED_MODULE_0__["createElement"])('table', {
9274            role: 'presentation',
9275            className: [
9276                chunkConfig.tableClassName,
9277                sectionConfig.syncRowHeights ? 'fc-scrollgrid-sync-table' : '',
9278            ].join(' '),
9279            style: {
9280                minWidth: arg.tableMinWidth,
9281                width: arg.clientWidth,
9282                height: expandRows ? arg.clientHeight : '', // css `height` on a <table> serves as a min-height
9283            },
9284        }, arg.tableColGroupNode, Object(preact__WEBPACK_IMPORTED_MODULE_0__["createElement"])(isHeader ? 'thead' : 'tbody', {
9285            role: 'presentation',
9286        }, typeof chunkConfig.rowContent === 'function'
9287            ? chunkConfig.rowContent(arg)
9288            : chunkConfig.rowContent));
9289    return content;
9290}
9291function isColPropsEqual(cols0, cols1) {
9292    return isArraysEqual(cols0, cols1, isPropsEqual);
9293}
9294function renderMicroColGroup(cols, shrinkWidth) {
9295    let colNodes = [];
9296    /*
9297    for ColProps with spans, it would have been great to make a single <col span="">
9298    HOWEVER, Chrome was getting messing up distributing the width to <td>/<th> elements with colspans.
9299    SOLUTION: making individual <col> elements makes Chrome behave.
9300    */
9301    for (let colProps of cols) {
9302        let span = colProps.span || 1;
9303        for (let i = 0; i < span; i += 1) {
9304            colNodes.push(Object(preact__WEBPACK_IMPORTED_MODULE_0__["createElement"])("col", { style: {
9305                    width: colProps.width === 'shrink' ? sanitizeShrinkWidth(shrinkWidth) : (colProps.width || ''),
9306                    minWidth: colProps.minWidth || '',
9307                } }));
9308        }
9309    }
9310    return Object(preact__WEBPACK_IMPORTED_MODULE_0__["createElement"])('colgroup', {}, ...colNodes);
9311}
9312function sanitizeShrinkWidth(shrinkWidth) {
9313    /* why 4? if we do 0, it will kill any border, which are needed for computeSmallestCellWidth
9314    4 accounts for 2 2-pixel borders. TODO: better solution? */
9315    return shrinkWidth == null ? 4 : shrinkWidth;
9316}
9317function hasShrinkWidth(cols) {
9318    for (let col of cols) {
9319        if (col.width === 'shrink') {
9320            return true;
9321        }
9322    }
9323    return false;
9324}
9325function getScrollGridClassNames(liquid, context) {
9326    let classNames = [
9327        'fc-scrollgrid',
9328        context.theme.getClass('table'),
9329    ];
9330    if (liquid) {
9331        classNames.push('fc-scrollgrid-liquid');
9332    }
9333    return classNames;
9334}
9335function getSectionClassNames(sectionConfig, wholeTableVGrow) {
9336    let classNames = [
9337        'fc-scrollgrid-section',
9338        `fc-scrollgrid-section-${sectionConfig.type}`,
9339        sectionConfig.className, // used?
9340    ];
9341    if (wholeTableVGrow && sectionConfig.liquid && sectionConfig.maxHeight == null) {
9342        classNames.push('fc-scrollgrid-section-liquid');
9343    }
9344    if (sectionConfig.isSticky) {
9345        classNames.push('fc-scrollgrid-section-sticky');
9346    }
9347    return classNames;
9348}
9349function renderScrollShim(arg) {
9350    return (Object(preact__WEBPACK_IMPORTED_MODULE_0__["createElement"])("div", { className: "fc-scrollgrid-sticky-shim", style: {
9351            width: arg.clientWidth,
9352            minWidth: arg.tableMinWidth,
9353        } }));
9354}
9355function getStickyHeaderDates(options) {
9356    let { stickyHeaderDates } = options;
9357    if (stickyHeaderDates == null || stickyHeaderDates === 'auto') {
9358        stickyHeaderDates = options.height === 'auto' || options.viewHeight === 'auto';
9359    }
9360    return stickyHeaderDates;
9361}
9362function getStickyFooterScrollbar(options) {
9363    let { stickyFooterScrollbar } = options;
9364    if (stickyFooterScrollbar == null || stickyFooterScrollbar === 'auto') {
9365        stickyFooterScrollbar = options.height === 'auto' || options.viewHeight === 'auto';
9366    }
9367    return stickyFooterScrollbar;
9368}
9369
9370class SimpleScrollGrid extends BaseComponent {
9371    constructor() {
9372        super(...arguments);
9373        this.processCols = memoize((a) => a, isColPropsEqual); // so we get same `cols` props every time
9374        // yucky to memoize VNodes, but much more efficient for consumers
9375        this.renderMicroColGroup = memoize(renderMicroColGroup);
9376        this.scrollerRefs = new RefMap();
9377        this.scrollerElRefs = new RefMap(this._handleScrollerEl.bind(this));
9378        this.state = {
9379            shrinkWidth: null,
9380            forceYScrollbars: false,
9381            scrollerClientWidths: {},
9382            scrollerClientHeights: {},
9383        };
9384        // TODO: can do a really simple print-view. dont need to join rows
9385        this.handleSizing = () => {
9386            this.safeSetState(Object.assign({ shrinkWidth: this.computeShrinkWidth() }, this.computeScrollerDims()));
9387        };
9388    }
9389    render() {
9390        let { props, state, context } = this;
9391        let sectionConfigs = props.sections || [];
9392        let cols = this.processCols(props.cols);
9393        let microColGroupNode = this.renderMicroColGroup(cols, state.shrinkWidth);
9394        let classNames = getScrollGridClassNames(props.liquid, context);
9395        if (props.collapsibleWidth) {
9396            classNames.push('fc-scrollgrid-collapsible');
9397        }
9398        // TODO: make DRY
9399        let configCnt = sectionConfigs.length;
9400        let configI = 0;
9401        let currentConfig;
9402        let headSectionNodes = [];
9403        let bodySectionNodes = [];
9404        let footSectionNodes = [];
9405        while (configI < configCnt && (currentConfig = sectionConfigs[configI]).type === 'header') {
9406            headSectionNodes.push(this.renderSection(currentConfig, microColGroupNode, true));
9407            configI += 1;
9408        }
9409        while (configI < configCnt && (currentConfig = sectionConfigs[configI]).type === 'body') {
9410            bodySectionNodes.push(this.renderSection(currentConfig, microColGroupNode, false));
9411            configI += 1;
9412        }
9413        while (configI < configCnt && (currentConfig = sectionConfigs[configI]).type === 'footer') {
9414            footSectionNodes.push(this.renderSection(currentConfig, microColGroupNode, true));
9415            configI += 1;
9416        }
9417        // firefox bug: when setting height on table and there is a thead or tfoot,
9418        // the necessary height:100% on the liquid-height body section forces the *whole* table to be taller. (bug #5524)
9419        // use getCanVGrowWithinCell as a way to detect table-stupid firefox.
9420        // if so, use a simpler dom structure, jam everything into a lone tbody.
9421        let isBuggy = !getCanVGrowWithinCell();
9422        const roleAttrs = { role: 'rowgroup' };
9423        return Object(preact__WEBPACK_IMPORTED_MODULE_0__["createElement"])('table', {
9424            role: 'grid',
9425            className: classNames.join(' '),
9426            style: { height: props.height },
9427        }, Boolean(!isBuggy && headSectionNodes.length) && Object(preact__WEBPACK_IMPORTED_MODULE_0__["createElement"])('thead', roleAttrs, ...headSectionNodes), Boolean(!isBuggy && bodySectionNodes.length) && Object(preact__WEBPACK_IMPORTED_MODULE_0__["createElement"])('tbody', roleAttrs, ...bodySectionNodes), Boolean(!isBuggy && footSectionNodes.length) && Object(preact__WEBPACK_IMPORTED_MODULE_0__["createElement"])('tfoot', roleAttrs, ...footSectionNodes), isBuggy && Object(preact__WEBPACK_IMPORTED_MODULE_0__["createElement"])('tbody', roleAttrs, ...headSectionNodes, ...bodySectionNodes, ...footSectionNodes));
9428    }
9429    renderSection(sectionConfig, microColGroupNode, isHeader) {
9430        if ('outerContent' in sectionConfig) {
9431            return (Object(preact__WEBPACK_IMPORTED_MODULE_0__["createElement"])(preact__WEBPACK_IMPORTED_MODULE_0__["Fragment"], { key: sectionConfig.key }, sectionConfig.outerContent));
9432        }
9433        return (Object(preact__WEBPACK_IMPORTED_MODULE_0__["createElement"])("tr", { key: sectionConfig.key, role: "presentation", className: getSectionClassNames(sectionConfig, this.props.liquid).join(' ') }, this.renderChunkTd(sectionConfig, microColGroupNode, sectionConfig.chunk, isHeader)));
9434    }
9435    renderChunkTd(sectionConfig, microColGroupNode, chunkConfig, isHeader) {
9436        if ('outerContent' in chunkConfig) {
9437            return chunkConfig.outerContent;
9438        }
9439        let { props } = this;
9440        let { forceYScrollbars, scrollerClientWidths, scrollerClientHeights } = this.state;
9441        let needsYScrolling = getAllowYScrolling(props, sectionConfig); // TODO: do lazily. do in section config?
9442        let isLiquid = getSectionHasLiquidHeight(props, sectionConfig);
9443        // for `!props.liquid` - is WHOLE scrollgrid natural height?
9444        // TODO: do same thing in advanced scrollgrid? prolly not b/c always has horizontal scrollbars
9445        let overflowY = !props.liquid ? 'visible' :
9446            forceYScrollbars ? 'scroll' :
9447                !needsYScrolling ? 'hidden' :
9448                    'auto';
9449        let sectionKey = sectionConfig.key;
9450        let content = renderChunkContent(sectionConfig, chunkConfig, {
9451            tableColGroupNode: microColGroupNode,
9452            tableMinWidth: '',
9453            clientWidth: (!props.collapsibleWidth && scrollerClientWidths[sectionKey] !== undefined) ? scrollerClientWidths[sectionKey] : null,
9454            clientHeight: scrollerClientHeights[sectionKey] !== undefined ? scrollerClientHeights[sectionKey] : null,
9455            expandRows: sectionConfig.expandRows,
9456            syncRowHeights: false,
9457            rowSyncHeights: [],
9458            reportRowHeightChange: () => { },
9459        }, isHeader);
9460        return Object(preact__WEBPACK_IMPORTED_MODULE_0__["createElement"])(isHeader ? 'th' : 'td', {
9461            ref: chunkConfig.elRef,
9462            role: 'presentation',
9463        }, Object(preact__WEBPACK_IMPORTED_MODULE_0__["createElement"])("div", { className: `fc-scroller-harness${isLiquid ? ' fc-scroller-harness-liquid' : ''}` },
9464            Object(preact__WEBPACK_IMPORTED_MODULE_0__["createElement"])(Scroller, { ref: this.scrollerRefs.createRef(sectionKey), elRef: this.scrollerElRefs.createRef(sectionKey), overflowY: overflowY, overflowX: !props.liquid ? 'visible' : 'hidden' /* natural height? */, maxHeight: sectionConfig.maxHeight, liquid: isLiquid, liquidIsAbsolute // because its within a harness
9465                : true }, content)));
9466    }
9467    _handleScrollerEl(scrollerEl, key) {
9468        let section = getSectionByKey(this.props.sections, key);
9469        if (section) {
9470            setRef(section.chunk.scrollerElRef, scrollerEl);
9471        }
9472    }
9473    componentDidMount() {
9474        this.handleSizing();
9475        this.context.addResizeHandler(this.handleSizing);
9476    }
9477    componentDidUpdate() {
9478        // TODO: need better solution when state contains non-sizing things
9479        this.handleSizing();
9480    }
9481    componentWillUnmount() {
9482        this.context.removeResizeHandler(this.handleSizing);
9483    }
9484    computeShrinkWidth() {
9485        return hasShrinkWidth(this.props.cols)
9486            ? computeShrinkWidth(this.scrollerElRefs.getAll())
9487            : 0;
9488    }
9489    computeScrollerDims() {
9490        let scrollbarWidth = getScrollbarWidths();
9491        let { scrollerRefs, scrollerElRefs } = this;
9492        let forceYScrollbars = false;
9493        let scrollerClientWidths = {};
9494        let scrollerClientHeights = {};
9495        for (let sectionKey in scrollerRefs.currentMap) {
9496            let scroller = scrollerRefs.currentMap[sectionKey];
9497            if (scroller && scroller.needsYScrolling()) {
9498                forceYScrollbars = true;
9499                break;
9500            }
9501        }
9502        for (let section of this.props.sections) {
9503            let sectionKey = section.key;
9504            let scrollerEl = scrollerElRefs.currentMap[sectionKey];
9505            if (scrollerEl) {
9506                let harnessEl = scrollerEl.parentNode; // TODO: weird way to get this. need harness b/c doesn't include table borders
9507                scrollerClientWidths[sectionKey] = Math.floor(harnessEl.getBoundingClientRect().width - (forceYScrollbars
9508                    ? scrollbarWidth.y // use global because scroller might not have scrollbars yet but will need them in future
9509                    : 0));
9510                scrollerClientHeights[sectionKey] = Math.floor(harnessEl.getBoundingClientRect().height);
9511            }
9512        }
9513        return { forceYScrollbars, scrollerClientWidths, scrollerClientHeights };
9514    }
9515}
9516SimpleScrollGrid.addStateEquality({
9517    scrollerClientWidths: isPropsEqual,
9518    scrollerClientHeights: isPropsEqual,
9519});
9520function getSectionByKey(sections, key) {
9521    for (let section of sections) {
9522        if (section.key === key) {
9523            return section;
9524        }
9525    }
9526    return null;
9527}
9528
9529class EventContainer extends BaseComponent {
9530    constructor() {
9531        super(...arguments);
9532        this.handleEl = (el) => {
9533            this.el = el;
9534            if (el) {
9535                setElSeg(el, this.props.seg);
9536            }
9537        };
9538    }
9539    render() {
9540        const { props, context } = this;
9541        const { options } = context;
9542        const { seg } = props;
9543        const { eventRange } = seg;
9544        const { ui } = eventRange;
9545        const renderProps = {
9546            event: new EventImpl(context, eventRange.def, eventRange.instance),
9547            view: context.viewApi,
9548            timeText: props.timeText,
9549            textColor: ui.textColor,
9550            backgroundColor: ui.backgroundColor,
9551            borderColor: ui.borderColor,
9552            isDraggable: !props.disableDragging && computeSegDraggable(seg, context),
9553            isStartResizable: !props.disableResizing && computeSegStartResizable(seg, context),
9554            isEndResizable: !props.disableResizing && computeSegEndResizable(seg),
9555            isMirror: Boolean(props.isDragging || props.isResizing || props.isDateSelecting),
9556            isStart: Boolean(seg.isStart),
9557            isEnd: Boolean(seg.isEnd),
9558            isPast: Boolean(props.isPast),
9559            isFuture: Boolean(props.isFuture),
9560            isToday: Boolean(props.isToday),
9561            isSelected: Boolean(props.isSelected),
9562            isDragging: Boolean(props.isDragging),
9563            isResizing: Boolean(props.isResizing),
9564        };
9565        return (Object(preact__WEBPACK_IMPORTED_MODULE_0__["createElement"])(ContentContainer, Object.assign({}, props /* contains children */, { elRef: this.handleEl, elClasses: [
9566                ...getEventClassNames(renderProps),
9567                ...seg.eventRange.ui.classNames,
9568                ...(props.elClasses || []),
9569            ], renderProps: renderProps, generatorName: "eventContent", customGenerator: options.eventContent, defaultGenerator: props.defaultGenerator, classNameGenerator: options.eventClassNames, didMount: options.eventDidMount, willUnmount: options.eventWillUnmount })));
9570    }
9571    componentDidUpdate(prevProps) {
9572        if (this.el && this.props.seg !== prevProps.seg) {
9573            setElSeg(this.el, this.props.seg);
9574        }
9575    }
9576}
9577
9578// should not be a purecomponent
9579class StandardEvent extends BaseComponent {
9580    render() {
9581        let { props, context } = this;
9582        let { options } = context;
9583        let { seg } = props;
9584        let { ui } = seg.eventRange;
9585        let timeFormat = options.eventTimeFormat || props.defaultTimeFormat;
9586        let timeText = buildSegTimeText(seg, timeFormat, context, props.defaultDisplayEventTime, props.defaultDisplayEventEnd);
9587        return (Object(preact__WEBPACK_IMPORTED_MODULE_0__["createElement"])(EventContainer, Object.assign({}, props /* includes elRef */, { elTag: "a", elStyle: {
9588                borderColor: ui.borderColor,
9589                backgroundColor: ui.backgroundColor,
9590            }, elAttrs: getSegAnchorAttrs(seg, context), defaultGenerator: renderInnerContent$1, timeText: timeText }), (InnerContent, eventContentArg) => (Object(preact__WEBPACK_IMPORTED_MODULE_0__["createElement"])(preact__WEBPACK_IMPORTED_MODULE_0__["Fragment"], null,
9591            Object(preact__WEBPACK_IMPORTED_MODULE_0__["createElement"])(InnerContent, { elTag: "div", elClasses: ['fc-event-main'], elStyle: { color: eventContentArg.textColor } }),
9592            Boolean(eventContentArg.isStartResizable) && (Object(preact__WEBPACK_IMPORTED_MODULE_0__["createElement"])("div", { className: "fc-event-resizer fc-event-resizer-start" })),
9593            Boolean(eventContentArg.isEndResizable) && (Object(preact__WEBPACK_IMPORTED_MODULE_0__["createElement"])("div", { className: "fc-event-resizer fc-event-resizer-end" }))))));
9594    }
9595}
9596function renderInnerContent$1(innerProps) {
9597    return (Object(preact__WEBPACK_IMPORTED_MODULE_0__["createElement"])("div", { className: "fc-event-main-frame" },
9598        innerProps.timeText && (Object(preact__WEBPACK_IMPORTED_MODULE_0__["createElement"])("div", { className: "fc-event-time" }, innerProps.timeText)),
9599        Object(preact__WEBPACK_IMPORTED_MODULE_0__["createElement"])("div", { className: "fc-event-title-container" },
9600            Object(preact__WEBPACK_IMPORTED_MODULE_0__["createElement"])("div", { className: "fc-event-title fc-sticky" }, innerProps.event.title || Object(preact__WEBPACK_IMPORTED_MODULE_0__["createElement"])(preact__WEBPACK_IMPORTED_MODULE_0__["Fragment"], null, "\u00A0")))));
9601}
9602
9603const NowIndicatorContainer = (props) => (Object(preact__WEBPACK_IMPORTED_MODULE_0__["createElement"])(ViewContextType.Consumer, null, (context) => {
9604    let { options } = context;
9605    let renderProps = {
9606        isAxis: props.isAxis,
9607        date: context.dateEnv.toDate(props.date),
9608        view: context.viewApi,
9609    };
9610    return (Object(preact__WEBPACK_IMPORTED_MODULE_0__["createElement"])(ContentContainer, Object.assign({}, props /* includes children */, { elTag: props.elTag || 'div', renderProps: renderProps, generatorName: "nowIndicatorContent", customGenerator: options.nowIndicatorContent, classNameGenerator: options.nowIndicatorClassNames, didMount: options.nowIndicatorDidMount, willUnmount: options.nowIndicatorWillUnmount })));
9611}));
9612
9613const DAY_NUM_FORMAT = createFormatter({ day: 'numeric' });
9614class DayCellContainer extends BaseComponent {
9615    constructor() {
9616        super(...arguments);
9617        this.refineRenderProps = memoizeObjArg(refineRenderProps);
9618    }
9619    render() {
9620        let { props, context } = this;
9621        let { options } = context;
9622        let renderProps = this.refineRenderProps({
9623            date: props.date,
9624            dateProfile: props.dateProfile,
9625            todayRange: props.todayRange,
9626            isMonthStart: props.isMonthStart || false,
9627            showDayNumber: props.showDayNumber,
9628            extraRenderProps: props.extraRenderProps,
9629            viewApi: context.viewApi,
9630            dateEnv: context.dateEnv,
9631            monthStartFormat: options.monthStartFormat,
9632        });
9633        return (Object(preact__WEBPACK_IMPORTED_MODULE_0__["createElement"])(ContentContainer, Object.assign({}, props /* includes children */, { elClasses: [
9634                ...getDayClassNames(renderProps, context.theme),
9635                ...(props.elClasses || []),
9636            ], elAttrs: Object.assign(Object.assign({}, props.elAttrs), (renderProps.isDisabled ? {} : { 'data-date': formatDayString(props.date) })), renderProps: renderProps, generatorName: "dayCellContent", customGenerator: options.dayCellContent, defaultGenerator: props.defaultGenerator, classNameGenerator: 
9637            // don't use custom classNames if disabled
9638            renderProps.isDisabled ? undefined : options.dayCellClassNames, didMount: options.dayCellDidMount, willUnmount: options.dayCellWillUnmount })));
9639    }
9640}
9641function hasCustomDayCellContent(options) {
9642    return Boolean(options.dayCellContent || hasCustomRenderingHandler('dayCellContent', options));
9643}
9644function refineRenderProps(raw) {
9645    let { date, dateEnv, dateProfile, isMonthStart } = raw;
9646    let dayMeta = getDateMeta(date, raw.todayRange, null, dateProfile);
9647    let dayNumberText = raw.showDayNumber ? (dateEnv.format(date, isMonthStart ? raw.monthStartFormat : DAY_NUM_FORMAT)) : '';
9648    return Object.assign(Object.assign(Object.assign({ date: dateEnv.toDate(date), view: raw.viewApi }, dayMeta), { isMonthStart,
9649        dayNumberText }), raw.extraRenderProps);
9650}
9651
9652class BgEvent extends BaseComponent {
9653    render() {
9654        let { props } = this;
9655        let { seg } = props;
9656        return (Object(preact__WEBPACK_IMPORTED_MODULE_0__["createElement"])(EventContainer, { elTag: "div", elClasses: ['fc-bg-event'], elStyle: { backgroundColor: seg.eventRange.ui.backgroundColor }, defaultGenerator: renderInnerContent, seg: seg, timeText: "", isDragging: false, isResizing: false, isDateSelecting: false, isSelected: false, isPast: props.isPast, isFuture: props.isFuture, isToday: props.isToday, disableDragging: true, disableResizing: true }));
9657    }
9658}
9659function renderInnerContent(props) {
9660    let { title } = props.event;
9661    return title && (Object(preact__WEBPACK_IMPORTED_MODULE_0__["createElement"])("div", { className: "fc-event-title" }, props.event.title));
9662}
9663function renderFill(fillType) {
9664    return (Object(preact__WEBPACK_IMPORTED_MODULE_0__["createElement"])("div", { className: `fc-${fillType}` }));
9665}
9666
9667const WeekNumberContainer = (props) => (Object(preact__WEBPACK_IMPORTED_MODULE_0__["createElement"])(ViewContextType.Consumer, null, (context) => {
9668    let { dateEnv, options } = context;
9669    let { date } = props;
9670    let format = options.weekNumberFormat || props.defaultFormat;
9671    let num = dateEnv.computeWeekNumber(date); // TODO: somehow use for formatting as well?
9672    let text = dateEnv.format(date, format);
9673    let renderProps = { num, text, date };
9674    return (Object(preact__WEBPACK_IMPORTED_MODULE_0__["createElement"])(ContentContainer // why isn't WeekNumberContentArg being auto-detected?
9675    , Object.assign({}, props /* includes children */, { renderProps: renderProps, generatorName: "weekNumberContent", customGenerator: options.weekNumberContent, defaultGenerator: renderInner, classNameGenerator: options.weekNumberClassNames, didMount: options.weekNumberDidMount, willUnmount: options.weekNumberWillUnmount })));
9676}));
9677function renderInner(innerProps) {
9678    return innerProps.text;
9679}
9680
9681const PADDING_FROM_VIEWPORT = 10;
9682class Popover extends BaseComponent {
9683    constructor() {
9684        super(...arguments);
9685        this.state = {
9686            titleId: getUniqueDomId(),
9687        };
9688        this.handleRootEl = (el) => {
9689            this.rootEl = el;
9690            if (this.props.elRef) {
9691                setRef(this.props.elRef, el);
9692            }
9693        };
9694        // Triggered when the user clicks *anywhere* in the document, for the autoHide feature
9695        this.handleDocumentMouseDown = (ev) => {
9696            // only hide the popover if the click happened outside the popover
9697            const target = getEventTargetViaRoot(ev);
9698            if (!this.rootEl.contains(target)) {
9699                this.handleCloseClick();
9700            }
9701        };
9702        this.handleDocumentKeyDown = (ev) => {
9703            if (ev.key === 'Escape') {
9704                this.handleCloseClick();
9705            }
9706        };
9707        this.handleCloseClick = () => {
9708            let { onClose } = this.props;
9709            if (onClose) {
9710                onClose();
9711            }
9712        };
9713    }
9714    render() {
9715        let { theme, options } = this.context;
9716        let { props, state } = this;
9717        let classNames = [
9718            'fc-popover',
9719            theme.getClass('popover'),
9720        ].concat(props.extraClassNames || []);
9721        return Object(preact_compat__WEBPACK_IMPORTED_MODULE_1__["createPortal"])(Object(preact__WEBPACK_IMPORTED_MODULE_0__["createElement"])("div", Object.assign({}, props.extraAttrs, { id: props.id, className: classNames.join(' '), "aria-labelledby": state.titleId, ref: this.handleRootEl }),
9722            Object(preact__WEBPACK_IMPORTED_MODULE_0__["createElement"])("div", { className: 'fc-popover-header ' + theme.getClass('popoverHeader') },
9723                Object(preact__WEBPACK_IMPORTED_MODULE_0__["createElement"])("span", { className: "fc-popover-title", id: state.titleId }, props.title),
9724                Object(preact__WEBPACK_IMPORTED_MODULE_0__["createElement"])("span", { className: 'fc-popover-close ' + theme.getIconClass('close'), title: options.closeHint, onClick: this.handleCloseClick })),
9725            Object(preact__WEBPACK_IMPORTED_MODULE_0__["createElement"])("div", { className: 'fc-popover-body ' + theme.getClass('popoverContent') }, props.children)), props.parentEl);
9726    }
9727    componentDidMount() {
9728        document.addEventListener('mousedown', this.handleDocumentMouseDown);
9729        document.addEventListener('keydown', this.handleDocumentKeyDown);
9730        this.updateSize();
9731    }
9732    componentWillUnmount() {
9733        document.removeEventListener('mousedown', this.handleDocumentMouseDown);
9734        document.removeEventListener('keydown', this.handleDocumentKeyDown);
9735    }
9736    updateSize() {
9737        let { isRtl } = this.context;
9738        let { alignmentEl, alignGridTop } = this.props;
9739        let { rootEl } = this;
9740        let alignmentRect = computeClippedClientRect(alignmentEl);
9741        if (alignmentRect) {
9742            let popoverDims = rootEl.getBoundingClientRect();
9743            // position relative to viewport
9744            let popoverTop = alignGridTop
9745                ? elementClosest(alignmentEl, '.fc-scrollgrid').getBoundingClientRect().top
9746                : alignmentRect.top;
9747            let popoverLeft = isRtl ? alignmentRect.right - popoverDims.width : alignmentRect.left;
9748            // constrain
9749            popoverTop = Math.max(popoverTop, PADDING_FROM_VIEWPORT);
9750            popoverLeft = Math.min(popoverLeft, document.documentElement.clientWidth - PADDING_FROM_VIEWPORT - popoverDims.width);
9751            popoverLeft = Math.max(popoverLeft, PADDING_FROM_VIEWPORT);
9752            let origin = rootEl.offsetParent.getBoundingClientRect();
9753            applyStyle(rootEl, {
9754                top: popoverTop - origin.top,
9755                left: popoverLeft - origin.left,
9756            });
9757        }
9758    }
9759}
9760
9761class MorePopover extends DateComponent {
9762    constructor() {
9763        super(...arguments);
9764        this.handleRootEl = (rootEl) => {
9765            this.rootEl = rootEl;
9766            if (rootEl) {
9767                this.context.registerInteractiveComponent(this, {
9768                    el: rootEl,
9769                    useEventCenter: false,
9770                });
9771            }
9772            else {
9773                this.context.unregisterInteractiveComponent(this);
9774            }
9775        };
9776    }
9777    render() {
9778        let { options, dateEnv } = this.context;
9779        let { props } = this;
9780        let { startDate, todayRange, dateProfile } = props;
9781        let title = dateEnv.format(startDate, options.dayPopoverFormat);
9782        return (Object(preact__WEBPACK_IMPORTED_MODULE_0__["createElement"])(DayCellContainer, { elRef: this.handleRootEl, date: startDate, dateProfile: dateProfile, todayRange: todayRange }, (InnerContent, renderProps, elAttrs) => (Object(preact__WEBPACK_IMPORTED_MODULE_0__["createElement"])(Popover, { elRef: elAttrs.ref, id: props.id, title: title, extraClassNames: ['fc-more-popover'].concat(elAttrs.className || []), extraAttrs: elAttrs /* TODO: make these time-based when not whole-day? */, parentEl: props.parentEl, alignmentEl: props.alignmentEl, alignGridTop: props.alignGridTop, onClose: props.onClose },
9783            hasCustomDayCellContent(options) && (Object(preact__WEBPACK_IMPORTED_MODULE_0__["createElement"])(InnerContent, { elTag: "div", elClasses: ['fc-more-popover-misc'] })),
9784            props.children))));
9785    }
9786    queryHit(positionLeft, positionTop, elWidth, elHeight) {
9787        let { rootEl, props } = this;
9788        if (positionLeft >= 0 && positionLeft < elWidth &&
9789            positionTop >= 0 && positionTop < elHeight) {
9790            return {
9791                dateProfile: props.dateProfile,
9792                dateSpan: Object.assign({ allDay: !props.forceTimed, range: {
9793                        start: props.startDate,
9794                        end: props.endDate,
9795                    } }, props.extraDateSpan),
9796                dayEl: rootEl,
9797                rect: {
9798                    left: 0,
9799                    top: 0,
9800                    right: elWidth,
9801                    bottom: elHeight,
9802                },
9803                layer: 1, // important when comparing with hits from other components
9804            };
9805        }
9806        return null;
9807    }
9808}
9809
9810class MoreLinkContainer extends BaseComponent {
9811    constructor() {
9812        super(...arguments);
9813        this.state = {
9814            isPopoverOpen: false,
9815            popoverId: getUniqueDomId(),
9816        };
9817        this.handleLinkEl = (linkEl) => {
9818            this.linkEl = linkEl;
9819            if (this.props.elRef) {
9820                setRef(this.props.elRef, linkEl);
9821            }
9822        };
9823        this.handleClick = (ev) => {
9824            let { props, context } = this;
9825            let { moreLinkClick } = context.options;
9826            let date = computeRange(props).start;
9827            function buildPublicSeg(seg) {
9828                let { def, instance, range } = seg.eventRange;
9829                return {
9830                    event: new EventImpl(context, def, instance),
9831                    start: context.dateEnv.toDate(range.start),
9832                    end: context.dateEnv.toDate(range.end),
9833                    isStart: seg.isStart,
9834                    isEnd: seg.isEnd,
9835                };
9836            }
9837            if (typeof moreLinkClick === 'function') {
9838                moreLinkClick = moreLinkClick({
9839                    date,
9840                    allDay: Boolean(props.allDayDate),
9841                    allSegs: props.allSegs.map(buildPublicSeg),
9842                    hiddenSegs: props.hiddenSegs.map(buildPublicSeg),
9843                    jsEvent: ev,
9844                    view: context.viewApi,
9845                });
9846            }
9847            if (!moreLinkClick || moreLinkClick === 'popover') {
9848                this.setState({ isPopoverOpen: true });
9849            }
9850            else if (typeof moreLinkClick === 'string') { // a view name
9851                context.calendarApi.zoomTo(date, moreLinkClick);
9852            }
9853        };
9854        this.handlePopoverClose = () => {
9855            this.setState({ isPopoverOpen: false });
9856        };
9857    }
9858    render() {
9859        let { props, state } = this;
9860        return (Object(preact__WEBPACK_IMPORTED_MODULE_0__["createElement"])(ViewContextType.Consumer, null, (context) => {
9861            let { viewApi, options, calendarApi } = context;
9862            let { moreLinkText } = options;
9863            let { moreCnt } = props;
9864            let range = computeRange(props);
9865            let text = typeof moreLinkText === 'function' // TODO: eventually use formatWithOrdinals
9866                ? moreLinkText.call(calendarApi, moreCnt)
9867                : `+${moreCnt} ${moreLinkText}`;
9868            let hint = formatWithOrdinals(options.moreLinkHint, [moreCnt], text);
9869            let renderProps = {
9870                num: moreCnt,
9871                shortText: `+${moreCnt}`,
9872                text,
9873                view: viewApi,
9874            };
9875            return (Object(preact__WEBPACK_IMPORTED_MODULE_0__["createElement"])(preact__WEBPACK_IMPORTED_MODULE_0__["Fragment"], null,
9876                Boolean(props.moreCnt) && (Object(preact__WEBPACK_IMPORTED_MODULE_0__["createElement"])(ContentContainer, { elTag: props.elTag || 'a', elRef: this.handleLinkEl, elClasses: [
9877                        ...(props.elClasses || []),
9878                        'fc-more-link',
9879                    ], elStyle: props.elStyle, elAttrs: Object.assign(Object.assign(Object.assign({}, props.elAttrs), createAriaClickAttrs(this.handleClick)), { title: hint, 'aria-expanded': state.isPopoverOpen, 'aria-controls': state.isPopoverOpen ? state.popoverId : '' }), renderProps: renderProps, generatorName: "moreLinkContent", customGenerator: options.moreLinkContent, defaultGenerator: props.defaultGenerator || renderMoreLinkInner, classNameGenerator: options.moreLinkClassNames, didMount: options.moreLinkDidMount, willUnmount: options.moreLinkWillUnmount }, props.children)),
9880                state.isPopoverOpen && (Object(preact__WEBPACK_IMPORTED_MODULE_0__["createElement"])(MorePopover, { id: state.popoverId, startDate: range.start, endDate: range.end, dateProfile: props.dateProfile, todayRange: props.todayRange, extraDateSpan: props.extraDateSpan, parentEl: this.parentEl, alignmentEl: props.alignmentElRef ?
9881                        props.alignmentElRef.current :
9882                        this.linkEl, alignGridTop: props.alignGridTop, forceTimed: props.forceTimed, onClose: this.handlePopoverClose }, props.popoverContent()))));
9883        }));
9884    }
9885    componentDidMount() {
9886        this.updateParentEl();
9887    }
9888    componentDidUpdate() {
9889        this.updateParentEl();
9890    }
9891    updateParentEl() {
9892        if (this.linkEl) {
9893            this.parentEl = elementClosest(this.linkEl, '.fc-view-harness');
9894        }
9895    }
9896}
9897function renderMoreLinkInner(props) {
9898    return props.text;
9899}
9900function computeRange(props) {
9901    if (props.allDayDate) {
9902        return {
9903            start: props.allDayDate,
9904            end: addDays(props.allDayDate, 1),
9905        };
9906    }
9907    let { hiddenSegs } = props;
9908    return {
9909        start: computeEarliestSegStart(hiddenSegs),
9910        end: computeLatestSegEnd(hiddenSegs),
9911    };
9912}
9913function computeEarliestSegStart(segs) {
9914    return segs.reduce(pickEarliestStart).eventRange.range.start;
9915}
9916function pickEarliestStart(seg0, seg1) {
9917    return seg0.eventRange.range.start < seg1.eventRange.range.start ? seg0 : seg1;
9918}
9919function computeLatestSegEnd(segs) {
9920    return segs.reduce(pickLatestEnd).eventRange.range.end;
9921}
9922function pickLatestEnd(seg0, seg1) {
9923    return seg0.eventRange.range.end > seg1.eventRange.range.end ? seg0 : seg1;
9924}
9925
9926class Store {
9927    constructor() {
9928        this.handlers = [];
9929    }
9930    set(value) {
9931        this.currentValue = value;
9932        for (let handler of this.handlers) {
9933            handler(value);
9934        }
9935    }
9936    subscribe(handler) {
9937        this.handlers.push(handler);
9938        if (this.currentValue !== undefined) {
9939            handler(this.currentValue);
9940        }
9941    }
9942}
9943
9944/*
9945Subscribers will get a LIST of CustomRenderings
9946*/
9947class CustomRenderingStore extends Store {
9948    constructor() {
9949        super(...arguments);
9950        this.map = new Map();
9951    }
9952    // for consistent order
9953    handle(customRendering) {
9954        const { map } = this;
9955        let updated = false;
9956        if (customRendering.isActive) {
9957            map.set(customRendering.id, customRendering);
9958            updated = true;
9959        }
9960        else if (map.has(customRendering.id)) {
9961            map.delete(customRendering.id);
9962            updated = true;
9963        }
9964        if (updated) {
9965            this.set(map);
9966        }
9967    }
9968}
9969
9970
9971
9972
9973/***/ }),
9974
vendor: 36,005 bytes, lines 9975-10365
9975/***/ "./node_modules/@fullcalendar/core/internal.js":
9976/*!*****************************************************!*\
9977  !*** ./node_modules/@fullcalendar/core/internal.js ***!
9978  \*****************************************************/
9979/*! exports provided: BASE_OPTION_DEFAULTS, BaseComponent, BgEvent, CalendarImpl, CalendarRoot, ContentContainer, CustomRenderingStore, DateComponent, DateEnv, DateProfileGenerator, DayCellContainer, DayHeader, DaySeriesModel, DayTableModel, DelayedRunner, ElementDragging, ElementScrollController, Emitter, EventContainer, EventImpl, Interaction, MoreLinkContainer, NamedTimeZoneImpl, NowIndicatorContainer, NowTimer, PositionCache, RefMap, ScrollController, ScrollResponder, Scroller, SegHierarchy, SimpleScrollGrid, Slicer, Splitter, StandardEvent, TableDateCell, TableDowCell, Theme, ViewContainer, ViewContextType, WeekNumberContainer, WindowScrollController, addDays, addDurations, addMs, addWeeks, allowContextMenu, allowSelection, applyMutationToEventStore, applyStyle, asCleanDays, asRoughMinutes, asRoughMs, asRoughSeconds, binarySearch, buildElAttrs, buildEntryKey, buildEventApis, buildEventRangeKey, buildIsoString, buildNavLinkAttrs, buildSegTimeText, collectFromHash, combineEventUis, compareByFieldSpecs, compareNumbers, compareObjs, computeEarliestSegStart, computeEdges, computeFallbackHeaderFormat, computeInnerRect, computeRect, computeShrinkWidth, computeVisibleDayRange, config, constrainPoint, createDuration, createEmptyEventStore, createEventInstance, createEventUi, createFormatter, diffDates, diffDayAndTime, diffDays, diffPoints, diffWeeks, diffWholeDays, diffWholeWeeks, disableCursor, elementClosest, elementMatches, enableCursor, eventTupleToStore, filterHash, findDirectChildren, findElements, flexibleCompare, formatDayString, formatIsoMonthStr, formatIsoTimeString, getAllowYScrolling, getCanVGrowWithinCell, getClippingParents, getDateMeta, getDayClassNames, getDefaultEventEnd, getElSeg, getEntrySpanEnd, getEventTargetViaRoot, getIsRtlScrollbarOnLeft, getRectCenter, getRelevantEvents, getScrollGridClassNames, getScrollbarWidths, getSectionClassNames, getSectionHasLiquidHeight, getSegAnchorAttrs, getSegMeta, getSlotClassNames, getStickyFooterScrollbar, getStickyHeaderDates, getUniqueDomId, greatestDurationDenominator, groupIntersectingEntries, guid, hasBgRendering, hasCustomDayCellContent, hasShrinkWidth, identity, injectStyles, interactionSettingsStore, interactionSettingsToStore, intersectRanges, intersectRects, intersectSpans, isArraysEqual, isColPropsEqual, isDateSelectionValid, isDateSpansEqual, isInt, isInteractionValid, isMultiDayRange, isPropsEqual, isPropsValid, isValidDate, mapHash, memoize, memoizeArraylike, memoizeHashlike, memoizeObjArg, mergeEventStores, multiplyDuration, padStart, parseBusinessHours, parseClassNames, parseDragMeta, parseEventDef, parseFieldSpecs, parseMarker, pointInsideRect, preventContextMenu, preventDefault, preventSelection, rangeContainsMarker, rangeContainsRange, rangesEqual, rangesIntersect, refineEventDef, refineProps, removeElement, removeExact, renderChunkContent, renderFill, renderMicroColGroup, renderScrollShim, requestJson, sanitizeShrinkWidth, setRef, sliceEventStore, sortEventSegs, startOfDay, translateRect, triggerDateSelect, unpromisify, whenTransitionDone, wholeDivideDurations */
9980/***/ (function(module, __webpack_exports__, __webpack_require__) {
9981
9982"use strict";
9983__webpack_require__.r(__webpack_exports__);
9984/* harmony import */ var _internal_common_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal-common.js */ "./node_modules/@fullcalendar/core/internal-common.js");
9985/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "BASE_OPTION_DEFAULTS", function() { return _internal_common_js__WEBPACK_IMPORTED_MODULE_0__["e"]; });
9986
9987/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "BaseComponent", function() { return _internal_common_js__WEBPACK_IMPORTED_MODULE_0__["B"]; });
9988
9989/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "BgEvent", function() { return _internal_common_js__WEBPACK_IMPORTED_MODULE_0__["cp"]; });
9990
9991/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "CalendarImpl", function() { return _internal_common_js__WEBPACK_IMPORTED_MODULE_0__["a9"]; });
9992
9993/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "CalendarRoot", function() { return _internal_common_js__WEBPACK_IMPORTED_MODULE_0__["ab"]; });
9994
9995/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "ContentContainer", function() { return _internal_common_js__WEBPACK_IMPORTED_MODULE_0__["C"]; });
9996
9997/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "CustomRenderingStore", function() { return _internal_common_js__WEBPACK_IMPORTED_MODULE_0__["cy"]; });
9998
9999/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "DateComponent", function() { return _internal_common_js__WEBPACK_IMPORTED_MODULE_0__["be"]; });
10000
10001/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "DateEnv", function() { return _internal_common_js__WEBPACK_IMPORTED_MODULE_0__["S"]; });
10002
10003/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "DateProfileGenerator", function() { return _internal_common_js__WEBPACK_IMPORTED_MODULE_0__["U"]; });
10004
10005/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "DayCellContainer", function() { return _internal_common_js__WEBPACK_IMPORTED_MODULE_0__["cl"]; });
10006
10007/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "DayHeader", function() { return _internal_common_js__WEBPACK_IMPORTED_MODULE_0__["bK"]; });
10008
10009/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "DaySeriesModel", function() { return _internal_common_js__WEBPACK_IMPORTED_MODULE_0__["bO"]; });
10010
10011/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "DayTableModel", function() { return _internal_common_js__WEBPACK_IMPORTED_MODULE_0__["bV"]; });
10012
10013/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "DelayedRunner", function() { return _internal_common_js__WEBPACK_IMPORTED_MODULE_0__["D"]; });
10014
10015/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "ElementDragging", function() { return _internal_common_js__WEBPACK_IMPORTED_MODULE_0__["bH"]; });
10016
10017/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "ElementScrollController", function() { return _internal_common_js__WEBPACK_IMPORTED_MODULE_0__["bc"]; });
10018
10019/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "Emitter", function() { return _internal_common_js__WEBPACK_IMPORTED_MODULE_0__["F"]; });
10020
10021/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "EventContainer", function() { return _internal_common_js__WEBPACK_IMPORTED_MODULE_0__["cn"]; });
10022
10023/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "EventImpl", function() { return _internal_common_js__WEBPACK_IMPORTED_MODULE_0__["a0"]; });
10024
10025/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "Interaction", function() { return _internal_common_js__WEBPACK_IMPORTED_MODULE_0__["Z"]; });
10026
10027/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "MoreLinkContainer", function() { return _internal_common_js__WEBPACK_IMPORTED_MODULE_0__["cr"]; });
10028
10029/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "NamedTimeZoneImpl", function() { return _internal_common_js__WEBPACK_IMPORTED_MODULE_0__["by"]; });
10030
10031/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "NowIndicatorContainer", function() { return _internal_common_js__WEBPACK_IMPORTED_MODULE_0__["ck"]; });
10032
10033/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "NowTimer", function() { return _internal_common_js__WEBPACK_IMPORTED_MODULE_0__["ch"]; });
10034
10035/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "PositionCache", function() { return _internal_common_js__WEBPACK_IMPORTED_MODULE_0__["ba"]; });
10036
10037/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "RefMap", function() { return _internal_common_js__WEBPACK_IMPORTED_MODULE_0__["cf"]; });
10038
10039/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "ScrollController", function() { return _internal_common_js__WEBPACK_IMPORTED_MODULE_0__["bb"]; });
10040
10041/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "ScrollResponder", function() { return _internal_common_js__WEBPACK_IMPORTED_MODULE_0__["ci"]; });
10042
10043/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "Scroller", function() { return _internal_common_js__WEBPACK_IMPORTED_MODULE_0__["cd"]; });
10044
10045/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "SegHierarchy", function() { return _internal_common_js__WEBPACK_IMPORTED_MODULE_0__["bA"]; });
10046
10047/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "SimpleScrollGrid", function() { return _internal_common_js__WEBPACK_IMPORTED_MODULE_0__["b$"]; });
10048
10049/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "Slicer", function() { return _internal_common_js__WEBPACK_IMPORTED_MODULE_0__["bW"]; });
10050
10051/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "Splitter", function() { return _internal_common_js__WEBPACK_IMPORTED_MODULE_0__["aY"]; });
10052
10053/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "StandardEvent", function() { return _internal_common_js__WEBPACK_IMPORTED_MODULE_0__["cj"]; });
10054
10055/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "TableDateCell", function() { return _internal_common_js__WEBPACK_IMPORTED_MODULE_0__["bM"]; });
10056
10057/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "TableDowCell", function() { return _internal_common_js__WEBPACK_IMPORTED_MODULE_0__["bN"]; });
10058
10059/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "Theme", function() { return _internal_common_js__WEBPACK_IMPORTED_MODULE_0__["T"]; });
10060
10061/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "ViewContainer", function() { return _internal_common_js__WEBPACK_IMPORTED_MODULE_0__["ct"]; });
10062
10063/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "ViewContextType", function() { return _internal_common_js__WEBPACK_IMPORTED_MODULE_0__["V"]; });
10064
10065/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "WeekNumberContainer", function() { return _internal_common_js__WEBPACK_IMPORTED_MODULE_0__["cq"]; });
10066
10067/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "WindowScrollController", function() { return _internal_common_js__WEBPACK_IMPORTED_MODULE_0__["bd"]; });
10068
10069/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "addDays", function() { return _internal_common_js__WEBPACK_IMPORTED_MODULE_0__["t"]; });
10070
10071/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "addDurations", function() { return _internal_common_js__WEBPACK_IMPORTED_MODULE_0__["bp"]; });
10072
10073/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "addMs", function() { return _internal_common_js__WEBPACK_IMPORTED_MODULE_0__["bg"]; });
10074
10075/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "addWeeks", function() { return _internal_common_js__WEBPACK_IMPORTED_MODULE_0__["bh"]; });
10076
10077/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "allowContextMenu", function() { return _internal_common_js__WEBPACK_IMPORTED_MODULE_0__["au"]; });
10078
10079/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "allowSelection", function() { return _internal_common_js__WEBPACK_IMPORTED_MODULE_0__["as"]; });
10080
10081/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "applyMutationToEventStore", function() { return _internal_common_js__WEBPACK_IMPORTED_MODULE_0__["bX"]; });
10082
10083/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "applyStyle", function() { return _internal_common_js__WEBPACK_IMPORTED_MODULE_0__["aP"]; });
10084
10085/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "asCleanDays", function() { return _internal_common_js__WEBPACK_IMPORTED_MODULE_0__["bn"]; });
10086
10087/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "asRoughMinutes", function() { return _internal_common_js__WEBPACK_IMPORTED_MODULE_0__["bq"]; });
10088
10089/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "asRoughMs", function() { return _internal_common_js__WEBPACK_IMPORTED_MODULE_0__["bs"]; });
10090
10091/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "asRoughSeconds", function() { return _internal_common_js__WEBPACK_IMPORTED_MODULE_0__["br"]; });
10092
10093/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "binarySearch", function() { return _internal_common_js__WEBPACK_IMPORTED_MODULE_0__["bD"]; });
10094
10095/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "buildElAttrs", function() { return _internal_common_js__WEBPACK_IMPORTED_MODULE_0__["cx"]; });
10096
10097/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "buildEntryKey", function() { return _internal_common_js__WEBPACK_IMPORTED_MODULE_0__["bB"]; });
10098
10099/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "buildEventApis", function() { return _internal_common_js__WEBPACK_IMPORTED_MODULE_0__["w"]; });
10100
10101/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "buildEventRangeKey", function() { return _internal_common_js__WEBPACK_IMPORTED_MODULE_0__["bT"]; });
10102
10103/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "buildIsoString", function() { return _internal_common_js__WEBPACK_IMPORTED_MODULE_0__["bw"]; });
10104
10105/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "buildNavLinkAttrs", function() { return _internal_common_js__WEBPACK_IMPORTED_MODULE_0__["b0"]; });
10106
10107/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "buildSegTimeText", function() { return _internal_common_js__WEBPACK_IMPORTED_MODULE_0__["bQ"]; });
10108
10109/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "collectFromHash", function() { return _internal_common_js__WEBPACK_IMPORTED_MODULE_0__["aL"]; });
10110
10111/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "combineEventUis", function() { return _internal_common_js__WEBPACK_IMPORTED_MODULE_0__["aX"]; });
10112
10113/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "compareByFieldSpecs", function() { return _internal_common_js__WEBPACK_IMPORTED_MODULE_0__["ap"]; });
10114
10115/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "compareNumbers", function() { return _internal_common_js__WEBPACK_IMPORTED_MODULE_0__["av"]; });
10116
10117/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "compareObjs", function() { return _internal_common_js__WEBPACK_IMPORTED_MODULE_0__["aK"]; });
10118
10119/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "computeEarliestSegStart", function() { return _internal_common_js__WEBPACK_IMPORTED_MODULE_0__["cs"]; });
10120
10121/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "computeEdges", function() { return _internal_common_js__WEBPACK_IMPORTED_MODULE_0__["b4"]; });
10122
10123/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "computeFallbackHeaderFormat", function() { return _internal_common_js__WEBPACK_IMPORTED_MODULE_0__["bL"]; });
10124
10125/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "computeInnerRect", function() { return _internal_common_js__WEBPACK_IMPORTED_MODULE_0__["b3"]; });
10126
10127/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "computeRect", function() { return _internal_common_js__WEBPACK_IMPORTED_MODULE_0__["b6"]; });
10128
10129/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "computeShrinkWidth", function() { return _internal_common_js__WEBPACK_IMPORTED_MODULE_0__["c7"]; });
10130
10131/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "computeVisibleDayRange", function() { return _internal_common_js__WEBPACK_IMPORTED_MODULE_0__["ay"]; });
10132
10133/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "config", function() { return _internal_common_js__WEBPACK_IMPORTED_MODULE_0__["bI"]; });
10134
10135/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "constrainPoint", function() { return _internal_common_js__WEBPACK_IMPORTED_MODULE_0__["aG"]; });
10136
10137/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "createDuration", function() { return _internal_common_js__WEBPACK_IMPORTED_MODULE_0__["d"]; });
10138
10139/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "createEmptyEventStore", function() { return _internal_common_js__WEBPACK_IMPORTED_MODULE_0__["I"]; });
10140
10141/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "createEventInstance", function() { return _internal_common_js__WEBPACK_IMPORTED_MODULE_0__["aj"]; });
10142
10143/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "createEventUi", function() { return _internal_common_js__WEBPACK_IMPORTED_MODULE_0__["W"]; });
10144
10145/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "createFormatter", function() { return _internal_common_js__WEBPACK_IMPORTED_MODULE_0__["x"]; });
10146
10147/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "diffDates", function() { return _internal_common_js__WEBPACK_IMPORTED_MODULE_0__["aA"]; });
10148
10149/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "diffDayAndTime", function() { return _internal_common_js__WEBPACK_IMPORTED_MODULE_0__["bk"]; });
10150
10151/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "diffDays", function() { return _internal_common_js__WEBPACK_IMPORTED_MODULE_0__["bl"]; });
10152
10153/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "diffPoints", function() { return _internal_common_js__WEBPACK_IMPORTED_MODULE_0__["aI"]; });
10154
10155/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "diffWeeks", function() { return _internal_common_js__WEBPACK_IMPORTED_MODULE_0__["bi"]; });
10156
10157/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "diffWholeDays", function() { return _internal_common_js__WEBPACK_IMPORTED_MODULE_0__["y"]; });
10158
10159/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "diffWholeWeeks", function() { return _internal_common_js__WEBPACK_IMPORTED_MODULE_0__["bj"]; });
10160
10161/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "disableCursor", function() { return _internal_common_js__WEBPACK_IMPORTED_MODULE_0__["ax"]; });
10162
10163/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "elementClosest", function() { return _internal_common_js__WEBPACK_IMPORTED_MODULE_0__["$"]; });
10164
10165/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "elementMatches", function() { return _internal_common_js__WEBPACK_IMPORTED_MODULE_0__["aQ"]; });
10166
10167/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "enableCursor", function() { return _internal_common_js__WEBPACK_IMPORTED_MODULE_0__["aw"]; });
10168
10169/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "eventTupleToStore", function() { return _internal_common_js__WEBPACK_IMPORTED_MODULE_0__["aW"]; });
10170
10171/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "filterHash", function() { return _internal_common_js__WEBPACK_IMPORTED_MODULE_0__["h"]; });
10172
10173/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "findDirectChildren", function() { return _internal_common_js__WEBPACK_IMPORTED_MODULE_0__["aN"]; });
10174
10175/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "findElements", function() { return _internal_common_js__WEBPACK_IMPORTED_MODULE_0__["aM"]; });
10176
10177/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "flexibleCompare", function() { return _internal_common_js__WEBPACK_IMPORTED_MODULE_0__["aq"]; });
10178
10179/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "formatDayString", function() { return _internal_common_js__WEBPACK_IMPORTED_MODULE_0__["bv"]; });
10180
10181/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "formatIsoMonthStr", function() { return _internal_common_js__WEBPACK_IMPORTED_MODULE_0__["bx"]; });
10182
10183/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "formatIsoTimeString", function() { return _internal_common_js__WEBPACK_IMPORTED_MODULE_0__["bu"]; });
10184
10185/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "getAllowYScrolling", function() { return _internal_common_js__WEBPACK_IMPORTED_MODULE_0__["c5"]; });
10186
10187/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "getCanVGrowWithinCell", function() { return _internal_common_js__WEBPACK_IMPORTED_MODULE_0__["aT"]; });
10188
10189/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "getClippingParents", function() { return _internal_common_js__WEBPACK_IMPORTED_MODULE_0__["b5"]; });
10190
10191/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "getDateMeta", function() { return _internal_common_js__WEBPACK_IMPORTED_MODULE_0__["a_"]; });
10192
10193/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "getDayClassNames", function() { return _internal_common_js__WEBPACK_IMPORTED_MODULE_0__["aZ"]; });
10194
10195/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "getDefaultEventEnd", function() { return _internal_common_js__WEBPACK_IMPORTED_MODULE_0__["cv"]; });
10196
10197/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "getElSeg", function() { return _internal_common_js__WEBPACK_IMPORTED_MODULE_0__["_"]; });
10198
10199/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "getEntrySpanEnd", function() { return _internal_common_js__WEBPACK_IMPORTED_MODULE_0__["bC"]; });
10200
10201/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "getEventTargetViaRoot", function() { return _internal_common_js__WEBPACK_IMPORTED_MODULE_0__["aR"]; });
10202
10203/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "getIsRtlScrollbarOnLeft", function() { return _internal_common_js__WEBPACK_IMPORTED_MODULE_0__["cg"]; });
10204
10205/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "getRectCenter", function() { return _internal_common_js__WEBPACK_IMPORTED_MODULE_0__["aH"]; });
10206
10207/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "getRelevantEvents", function() { return _internal_common_js__WEBPACK_IMPORTED_MODULE_0__["aV"]; });
10208
10209/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "getScrollGridClassNames", function() { return _internal_common_js__WEBPACK_IMPORTED_MODULE_0__["c2"]; });
10210
10211/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "getScrollbarWidths", function() { return _internal_common_js__WEBPACK_IMPORTED_MODULE_0__["ce"]; });
10212
10213/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "getSectionClassNames", function() { return _internal_common_js__WEBPACK_IMPORTED_MODULE_0__["c3"]; });
10214
10215/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "getSectionHasLiquidHeight", function() { return _internal_common_js__WEBPACK_IMPORTED_MODULE_0__["c4"]; });
10216
10217/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "getSegAnchorAttrs", function() { return _internal_common_js__WEBPACK_IMPORTED_MODULE_0__["bU"]; });
10218
10219/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "getSegMeta", function() { return _internal_common_js__WEBPACK_IMPORTED_MODULE_0__["bS"]; });
10220
10221/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "getSlotClassNames", function() { return _internal_common_js__WEBPACK_IMPORTED_MODULE_0__["a$"]; });
10222
10223/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "getStickyFooterScrollbar", function() { return _internal_common_js__WEBPACK_IMPORTED_MODULE_0__["cb"]; });
10224
10225/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "getStickyHeaderDates", function() { return _internal_common_js__WEBPACK_IMPORTED_MODULE_0__["cc"]; });
10226
10227/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "getUniqueDomId", function() { return _internal_common_js__WEBPACK_IMPORTED_MODULE_0__["a5"]; });
10228
10229/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "greatestDurationDenominator", function() { return _internal_common_js__WEBPACK_IMPORTED_MODULE_0__["c"]; });
10230
10231/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "groupIntersectingEntries", function() { return _internal_common_js__WEBPACK_IMPORTED_MODULE_0__["bE"]; });
10232
10233/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "guid", function() { return _internal_common_js__WEBPACK_IMPORTED_MODULE_0__["g"]; });
10234
10235/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "hasBgRendering", function() { return _internal_common_js__WEBPACK_IMPORTED_MODULE_0__["bP"]; });
10236
10237/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "hasCustomDayCellContent", function() { return _internal_common_js__WEBPACK_IMPORTED_MODULE_0__["cm"]; });
10238
10239/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "hasShrinkWidth", function() { return _internal_common_js__WEBPACK_IMPORTED_MODULE_0__["c0"]; });
10240
10241/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "identity", function() { return _internal_common_js__WEBPACK_IMPORTED_MODULE_0__["n"]; });
10242
10243/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "injectStyles", function() { return _internal_common_js__WEBPACK_IMPORTED_MODULE_0__["cw"]; });
10244
10245/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "interactionSettingsStore", function() { return _internal_common_js__WEBPACK_IMPORTED_MODULE_0__["a7"]; });
10246
10247/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "interactionSettingsToStore", function() { return _internal_common_js__WEBPACK_IMPORTED_MODULE_0__["bG"]; });
10248
10249/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "intersectRanges", function() { return _internal_common_js__WEBPACK_IMPORTED_MODULE_0__["o"]; });
10250
10251/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "intersectRects", function() { return _internal_common_js__WEBPACK_IMPORTED_MODULE_0__["aE"]; });
10252
10253/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "intersectSpans", function() { return _internal_common_js__WEBPACK_IMPORTED_MODULE_0__["bF"]; });
10254
10255/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "isArraysEqual", function() { return _internal_common_js__WEBPACK_IMPORTED_MODULE_0__["i"]; });
10256
10257/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "isColPropsEqual", function() { return _internal_common_js__WEBPACK_IMPORTED_MODULE_0__["c9"]; });
10258
10259/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "isDateSelectionValid", function() { return _internal_common_js__WEBPACK_IMPORTED_MODULE_0__["b_"]; });
10260
10261/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "isDateSpansEqual", function() { return _internal_common_js__WEBPACK_IMPORTED_MODULE_0__["bf"]; });
10262
10263/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "isInt", function() { return _internal_common_js__WEBPACK_IMPORTED_MODULE_0__["an"]; });
10264
10265/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "isInteractionValid", function() { return _internal_common_js__WEBPACK_IMPORTED_MODULE_0__["bZ"]; });
10266
10267/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "isMultiDayRange", function() { return _internal_common_js__WEBPACK_IMPORTED_MODULE_0__["az"]; });
10268
10269/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "isPropsEqual", function() { return _internal_common_js__WEBPACK_IMPORTED_MODULE_0__["E"]; });
10270
10271/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "isPropsValid", function() { return _internal_common_js__WEBPACK_IMPORTED_MODULE_0__["bY"]; });
10272
10273/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "isValidDate", function() { return _internal_common_js__WEBPACK_IMPORTED_MODULE_0__["bm"]; });
10274
10275/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "mapHash", function() { return _internal_common_js__WEBPACK_IMPORTED_MODULE_0__["a"]; });
10276
10277/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "memoize", function() { return _internal_common_js__WEBPACK_IMPORTED_MODULE_0__["z"]; });
10278
10279/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "memoizeArraylike", function() { return _internal_common_js__WEBPACK_IMPORTED_MODULE_0__["aC"]; });
10280
10281/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "memoizeHashlike", function() { return _internal_common_js__WEBPACK_IMPORTED_MODULE_0__["aD"]; });
10282
10283/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "memoizeObjArg", function() { return _internal_common_js__WEBPACK_IMPORTED_MODULE_0__["A"]; });
10284
10285/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "mergeEventStores", function() { return _internal_common_js__WEBPACK_IMPORTED_MODULE_0__["aU"]; });
10286
10287/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "multiplyDuration", function() { return _internal_common_js__WEBPACK_IMPORTED_MODULE_0__["bo"]; });
10288
10289/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "padStart", function() { return _internal_common_js__WEBPACK_IMPORTED_MODULE_0__["am"]; });
10290
10291/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "parseBusinessHours", function() { return _internal_common_js__WEBPACK_IMPORTED_MODULE_0__["X"]; });
10292
10293/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "parseClassNames", function() { return _internal_common_js__WEBPACK_IMPORTED_MODULE_0__["aS"]; });
10294
10295/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "parseDragMeta", function() { return _internal_common_js__WEBPACK_IMPORTED_MODULE_0__["bJ"]; });
10296
10297/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "parseEventDef", function() { return _internal_common_js__WEBPACK_IMPORTED_MODULE_0__["ak"]; });
10298
10299/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "parseFieldSpecs", function() { return _internal_common_js__WEBPACK_IMPORTED_MODULE_0__["ao"]; });
10300
10301/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "parseMarker", function() { return _internal_common_js__WEBPACK_IMPORTED_MODULE_0__["bz"]; });
10302
10303/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "pointInsideRect", function() { return _internal_common_js__WEBPACK_IMPORTED_MODULE_0__["aF"]; });
10304
10305/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "preventContextMenu", function() { return _internal_common_js__WEBPACK_IMPORTED_MODULE_0__["at"]; });
10306
10307/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "preventDefault", function() { return _internal_common_js__WEBPACK_IMPORTED_MODULE_0__["b1"]; });
10308
10309/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "preventSelection", function() { return _internal_common_js__WEBPACK_IMPORTED_MODULE_0__["ar"]; });
10310
10311/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "rangeContainsMarker", function() { return _internal_common_js__WEBPACK_IMPORTED_MODULE_0__["H"]; });
10312
10313/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "rangeContainsRange", function() { return _internal_common_js__WEBPACK_IMPORTED_MODULE_0__["b9"]; });
10314
10315/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "rangesEqual", function() { return _internal_common_js__WEBPACK_IMPORTED_MODULE_0__["b7"]; });
10316
10317/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "rangesIntersect", function() { return _internal_common_js__WEBPACK_IMPORTED_MODULE_0__["b8"]; });
10318
10319/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "refineEventDef", function() { return _internal_common_js__WEBPACK_IMPORTED_MODULE_0__["al"]; });
10320
10321/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "refineProps", function() { return _internal_common_js__WEBPACK_IMPORTED_MODULE_0__["ai"]; });
10322
10323/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "removeElement", function() { return _internal_common_js__WEBPACK_IMPORTED_MODULE_0__["aO"]; });
10324
10325/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "removeExact", function() { return _internal_common_js__WEBPACK_IMPORTED_MODULE_0__["aB"]; });
10326
10327/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "renderChunkContent", function() { return _internal_common_js__WEBPACK_IMPORTED_MODULE_0__["c6"]; });
10328
10329/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "renderFill", function() { return _internal_common_js__WEBPACK_IMPORTED_MODULE_0__["co"]; });
10330
10331/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "renderMicroColGroup", function() { return _internal_common_js__WEBPACK_IMPORTED_MODULE_0__["c1"]; });
10332
10333/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "renderScrollShim", function() { return _internal_common_js__WEBPACK_IMPORTED_MODULE_0__["ca"]; });
10334
10335/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "requestJson", function() { return _internal_common_js__WEBPACK_IMPORTED_MODULE_0__["r"]; });
10336
10337/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "sanitizeShrinkWidth", function() { return _internal_common_js__WEBPACK_IMPORTED_MODULE_0__["c8"]; });
10338
10339/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "setRef", function() { return _internal_common_js__WEBPACK_IMPORTED_MODULE_0__["Y"]; });
10340
10341/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "sliceEventStore", function() { return _internal_common_js__WEBPACK_IMPORTED_MODULE_0__["af"]; });
10342
10343/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "sortEventSegs", function() { return _internal_common_js__WEBPACK_IMPORTED_MODULE_0__["bR"]; });
10344
10345/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "startOfDay", function() { return _internal_common_js__WEBPACK_IMPORTED_MODULE_0__["q"]; });
10346
10347/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "translateRect", function() { return _internal_common_js__WEBPACK_IMPORTED_MODULE_0__["aJ"]; });
10348
10349/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "triggerDateSelect", function() { return _internal_common_js__WEBPACK_IMPORTED_MODULE_0__["cu"]; });
10350
10351/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "unpromisify", function() { return _internal_common_js__WEBPACK_IMPORTED_MODULE_0__["u"]; });
10352
10353/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "whenTransitionDone", function() { return _internal_common_js__WEBPACK_IMPORTED_MODULE_0__["b2"]; });
10354
10355/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "wholeDivideDurations", function() { return _internal_common_js__WEBPACK_IMPORTED_MODULE_0__["bt"]; });
10356
10357/* harmony import */ var preact__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! preact */ "./node_modules/preact/dist/preact.module.js");
10358/* harmony import */ var preact_compat__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! preact/compat */ "./node_modules/preact/compat/dist/compat.module.js");
10359
10360
10361
10362
10363
10364/***/ }),
10365
vendor: 3,323 bytes, lines 10366-10412
10366/***/ "./node_modules/@fullcalendar/core/preact.js":
10367/*!***************************************************!*\
10368  !*** ./node_modules/@fullcalendar/core/preact.js ***!
10369  \***************************************************/
10370/*! exports provided: Component, Fragment, cloneElement, createElement, createRef, h, hydrate, isValidElement, options, render, toChildArray, createPortal, createContext, flushSync */
10371/***/ (function(module, __webpack_exports__, __webpack_require__) {
10372
10373"use strict";
10374__webpack_require__.r(__webpack_exports__);
10375/* harmony import */ var preact__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! preact */ "./node_modules/preact/dist/preact.module.js");
10376/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "Component", function() { return preact__WEBPACK_IMPORTED_MODULE_0__["Component"]; });
10377
10378/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "Fragment", function() { return preact__WEBPACK_IMPORTED_MODULE_0__["Fragment"]; });
10379
10380/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "cloneElement", function() { return preact__WEBPACK_IMPORTED_MODULE_0__["cloneElement"]; });
10381
10382/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "createElement", function() { return preact__WEBPACK_IMPORTED_MODULE_0__["createElement"]; });
10383
10384/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "createRef", function() { return preact__WEBPACK_IMPORTED_MODULE_0__["createRef"]; });
10385
10386/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "h", function() { return preact__WEBPACK_IMPORTED_MODULE_0__["h"]; });
10387
10388/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "hydrate", function() { return preact__WEBPACK_IMPORTED_MODULE_0__["hydrate"]; });
10389
10390/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "isValidElement", function() { return preact__WEBPACK_IMPORTED_MODULE_0__["isValidElement"]; });
10391
10392/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "options", function() { return preact__WEBPACK_IMPORTED_MODULE_0__["options"]; });
10393
10394/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "render", function() { return preact__WEBPACK_IMPORTED_MODULE_0__["render"]; });
10395
10396/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "toChildArray", function() { return preact__WEBPACK_IMPORTED_MODULE_0__["toChildArray"]; });
10397
10398/* harmony import */ var preact_compat__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! preact/compat */ "./node_modules/preact/compat/dist/compat.module.js");
10399/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "createPortal", function() { return preact_compat__WEBPACK_IMPORTED_MODULE_1__["createPortal"]; });
10400
10401/* harmony import */ var _internal_common_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./internal-common.js */ "./node_modules/@fullcalendar/core/internal-common.js");
10402/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "createContext", function() { return _internal_common_js__WEBPACK_IMPORTED_MODULE_2__["ah"]; });
10403
10404/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "flushSync", function() { return _internal_common_js__WEBPACK_IMPORTED_MODULE_2__["aa"]; });
10405
10406
10407
10408
10409
10410
10411/***/ }),
10412
vendor: 2,099 bytes, lines 10413-10464
10413/***/ "./node_modules/@fullcalendar/daygrid/index.js":
10414/*!*****************************************************!*\
10415  !*** ./node_modules/@fullcalendar/daygrid/index.js ***!
10416  \*****************************************************/
10417/*! exports provided: default */
10418/***/ (function(module, __webpack_exports__, __webpack_require__) {
10419
10420"use strict";
10421__webpack_require__.r(__webpack_exports__);
10422/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "default", function() { return index; });
10423/* harmony import */ var _fullcalendar_core_index_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @fullcalendar/core/index.js */ "./node_modules/@fullcalendar/core/index.js");
10424/* harmony import */ var _internal_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./internal.js */ "./node_modules/@fullcalendar/daygrid/internal.js");
10425/* harmony import */ var _fullcalendar_core_internal_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @fullcalendar/core/internal.js */ "./node_modules/@fullcalendar/core/internal.js");
10426/* harmony import */ var _fullcalendar_core_preact_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @fullcalendar/core/preact.js */ "./node_modules/@fullcalendar/core/preact.js");
10427
10428
10429
10430
10431
10432var index = Object(_fullcalendar_core_index_js__WEBPACK_IMPORTED_MODULE_0__["createPlugin"])({
10433    name: '@fullcalendar/daygrid',
10434    initialView: 'dayGridMonth',
10435    views: {
10436        dayGrid: {
10437            component: _internal_js__WEBPACK_IMPORTED_MODULE_1__["DayGridView"],
10438            dateProfileGeneratorClass: _internal_js__WEBPACK_IMPORTED_MODULE_1__["TableDateProfileGenerator"],
10439        },
10440        dayGridDay: {
10441            type: 'dayGrid',
10442            duration: { days: 1 },
10443        },
10444        dayGridWeek: {
10445            type: 'dayGrid',
10446            duration: { weeks: 1 },
10447        },
10448        dayGridMonth: {
10449            type: 'dayGrid',
10450            duration: { months: 1 },
10451            fixedWeekCount: true,
10452        },
10453        dayGridYear: {
10454            type: 'dayGrid',
10455            duration: { years: 1 },
10456        },
10457    },
10458});
10459
10460
10461
10462
10463/***/ }),
10464
vendor: 63,692 bytes, lines 10465-11473
10465/***/ "./node_modules/@fullcalendar/daygrid/internal.js":
10466/*!********************************************************!*\
10467  !*** ./node_modules/@fullcalendar/daygrid/internal.js ***!
10468  \********************************************************/
10469/*! exports provided: DayGridView, DayTable, DayTableSlicer, Table, TableDateProfileGenerator, TableRows, TableView, buildDayTableModel, buildDayTableRenderRange */
10470/***/ (function(module, __webpack_exports__, __webpack_require__) {
10471
10472"use strict";
10473__webpack_require__.r(__webpack_exports__);
10474/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "DayGridView", function() { return DayTableView; });
10475/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "DayTable", function() { return DayTable; });
10476/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "DayTableSlicer", function() { return DayTableSlicer; });
10477/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "Table", function() { return Table; });
10478/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "TableDateProfileGenerator", function() { return TableDateProfileGenerator; });
10479/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "TableRows", function() { return TableRows; });
10480/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "TableView", function() { return TableView; });
10481/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "buildDayTableModel", function() { return buildDayTableModel; });
10482/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "buildDayTableRenderRange", function() { return buildDayTableRenderRange; });
10483/* harmony import */ var _fullcalendar_core_internal_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @fullcalendar/core/internal.js */ "./node_modules/@fullcalendar/core/internal.js");
10484/* harmony import */ var _fullcalendar_core_preact_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @fullcalendar/core/preact.js */ "./node_modules/@fullcalendar/core/preact.js");
10485
10486
10487
10488/* An abstract class for the daygrid views, as well as month view. Renders one or more rows of day cells.
10489----------------------------------------------------------------------------------------------------------------------*/
10490// It is a manager for a Table subcomponent, which does most of the heavy lifting.
10491// It is responsible for managing width/height.
10492class TableView extends _fullcalendar_core_internal_js__WEBPACK_IMPORTED_MODULE_0__["DateComponent"] {
10493    constructor() {
10494        super(...arguments);
10495        this.headerElRef = Object(_fullcalendar_core_preact_js__WEBPACK_IMPORTED_MODULE_1__["createRef"])();
10496    }
10497    renderSimpleLayout(headerRowContent, bodyContent) {
10498        let { props, context } = this;
10499        let sections = [];
10500        let stickyHeaderDates = Object(_fullcalendar_core_internal_js__WEBPACK_IMPORTED_MODULE_0__["getStickyHeaderDates"])(context.options);
10501        if (headerRowContent) {
10502            sections.push({
10503                type: 'header',
10504                key: 'header',
10505                isSticky: stickyHeaderDates,
10506                chunk: {
10507                    elRef: this.headerElRef,
10508                    tableClassName: 'fc-col-header',
10509                    rowContent: headerRowContent,
10510                },
10511            });
10512        }
10513        sections.push({
10514            type: 'body',
10515            key: 'body',
10516            liquid: true,
10517            chunk: { content: bodyContent },
10518        });
10519        return (Object(_fullcalendar_core_preact_js__WEBPACK_IMPORTED_MODULE_1__["createElement"])(_fullcalendar_core_internal_js__WEBPACK_IMPORTED_MODULE_0__["ViewContainer"], { elClasses: ['fc-daygrid'], viewSpec: context.viewSpec },
10520            Object(_fullcalendar_core_preact_js__WEBPACK_IMPORTED_MODULE_1__["createElement"])(_fullcalendar_core_internal_js__WEBPACK_IMPORTED_MODULE_0__["SimpleScrollGrid"], { liquid: !props.isHeightAuto && !props.forPrint, collapsibleWidth: props.forPrint, cols: [] /* TODO: make optional? */, sections: sections })));
10521    }
10522    renderHScrollLayout(headerRowContent, bodyContent, colCnt, dayMinWidth) {
10523        let ScrollGrid = this.context.pluginHooks.scrollGridImpl;
10524        if (!ScrollGrid) {
10525            throw new Error('No ScrollGrid implementation');
10526        }
10527        let { props, context } = this;
10528        let stickyHeaderDates = !props.forPrint && Object(_fullcalendar_core_internal_js__WEBPACK_IMPORTED_MODULE_0__["getStickyHeaderDates"])(context.options);
10529        let stickyFooterScrollbar = !props.forPrint && Object(_fullcalendar_core_internal_js__WEBPACK_IMPORTED_MODULE_0__["getStickyFooterScrollbar"])(context.options);
10530        let sections = [];
10531        if (headerRowContent) {
10532            sections.push({
10533                type: 'header',
10534                key: 'header',
10535                isSticky: stickyHeaderDates,
10536                chunks: [{
10537                        key: 'main',
10538                        elRef: this.headerElRef,
10539                        tableClassName: 'fc-col-header',
10540                        rowContent: headerRowContent,
10541                    }],
10542            });
10543        }
10544        sections.push({
10545            type: 'body',
10546            key: 'body',
10547            liquid: true,
10548            chunks: [{
10549                    key: 'main',
10550                    content: bodyContent,
10551                }],
10552        });
10553        if (stickyFooterScrollbar) {
10554            sections.push({
10555                type: 'footer',
10556                key: 'footer',
10557                isSticky: true,
10558                chunks: [{
10559                        key: 'main',
10560                        content: _fullcalendar_core_internal_js__WEBPACK_IMPORTED_MODULE_0__["renderScrollShim"],
10561                    }],
10562            });
10563        }
10564        return (Object(_fullcalendar_core_preact_js__WEBPACK_IMPORTED_MODULE_1__["createElement"])(_fullcalendar_core_internal_js__WEBPACK_IMPORTED_MODULE_0__["ViewContainer"], { elClasses: ['fc-daygrid'], viewSpec: context.viewSpec },
10565            Object(_fullcalendar_core_preact_js__WEBPACK_IMPORTED_MODULE_1__["createElement"])(ScrollGrid, { liquid: !props.isHeightAuto && !props.forPrint, forPrint: props.forPrint, collapsibleWidth: props.forPrint, colGroups: [{ cols: [{ span: colCnt, minWidth: dayMinWidth }] }], sections: sections })));
10566    }
10567}
10568
10569function splitSegsByRow(segs, rowCnt) {
10570    let byRow = [];
10571    for (let i = 0; i < rowCnt; i += 1) {
10572        byRow[i] = [];
10573    }
10574    for (let seg of segs) {
10575        byRow[seg.row].push(seg);
10576    }
10577    return byRow;
10578}
10579function splitSegsByFirstCol(segs, colCnt) {
10580    let byCol = [];
10581    for (let i = 0; i < colCnt; i += 1) {
10582        byCol[i] = [];
10583    }
10584    for (let seg of segs) {
10585        byCol[seg.firstCol].push(seg);
10586    }
10587    return byCol;
10588}
10589function splitInteractionByRow(ui, rowCnt) {
10590    let byRow = [];
10591    if (!ui) {
10592        for (let i = 0; i < rowCnt; i += 1) {
10593            byRow[i] = null;
10594        }
10595    }
10596    else {
10597        for (let i = 0; i < rowCnt; i += 1) {
10598            byRow[i] = {
10599                affectedInstances: ui.affectedInstances,
10600                isEvent: ui.isEvent,
10601                segs: [],
10602            };
10603        }
10604        for (let seg of ui.segs) {
10605            byRow[seg.row].segs.push(seg);
10606        }
10607    }
10608    return byRow;
10609}
10610
10611const DEFAULT_TABLE_EVENT_TIME_FORMAT = Object(_fullcalendar_core_internal_js__WEBPACK_IMPORTED_MODULE_0__["createFormatter"])({
10612    hour: 'numeric',
10613    minute: '2-digit',
10614    omitZeroMinute: true,
10615    meridiem: 'narrow',
10616});
10617function hasListItemDisplay(seg) {
10618    let { display } = seg.eventRange.ui;
10619    return display === 'list-item' || (display === 'auto' &&
10620        !seg.eventRange.def.allDay &&
10621        seg.firstCol === seg.lastCol && // can't be multi-day
10622        seg.isStart && // "
10623        seg.isEnd // "
10624    );
10625}
10626
10627class TableBlockEvent extends _fullcalendar_core_internal_js__WEBPACK_IMPORTED_MODULE_0__["BaseComponent"] {
10628    render() {
10629        let { props } = this;
10630        return (Object(_fullcalendar_core_preact_js__WEBPACK_IMPORTED_MODULE_1__["createElement"])(_fullcalendar_core_internal_js__WEBPACK_IMPORTED_MODULE_0__["StandardEvent"], Object.assign({}, props, { elClasses: ['fc-daygrid-event', 'fc-daygrid-block-event', 'fc-h-event'], defaultTimeFormat: DEFAULT_TABLE_EVENT_TIME_FORMAT, defaultDisplayEventEnd: props.defaultDisplayEventEnd, disableResizing: !props.seg.eventRange.def.allDay })));
10631    }
10632}
10633
10634class TableListItemEvent extends _fullcalendar_core_internal_js__WEBPACK_IMPORTED_MODULE_0__["BaseComponent"] {
10635    render() {
10636        let { props, context } = this;
10637        let { options } = context;
10638        let { seg } = props;
10639        let timeFormat = options.eventTimeFormat || DEFAULT_TABLE_EVENT_TIME_FORMAT;
10640        let timeText = Object(_fullcalendar_core_internal_js__WEBPACK_IMPORTED_MODULE_0__["buildSegTimeText"])(seg, timeFormat, context, true, props.defaultDisplayEventEnd);
10641        return (Object(_fullcalendar_core_preact_js__WEBPACK_IMPORTED_MODULE_1__["createElement"])(_fullcalendar_core_internal_js__WEBPACK_IMPORTED_MODULE_0__["EventContainer"], Object.assign({}, props, { elTag: "a", elClasses: ['fc-daygrid-event', 'fc-daygrid-dot-event'], elAttrs: Object(_fullcalendar_core_internal_js__WEBPACK_IMPORTED_MODULE_0__["getSegAnchorAttrs"])(props.seg, context), defaultGenerator: renderInnerContent, timeText: timeText, isResizing: false, isDateSelecting: false })));
10642    }
10643}
10644function renderInnerContent(renderProps) {
10645    return (Object(_fullcalendar_core_preact_js__WEBPACK_IMPORTED_MODULE_1__["createElement"])(_fullcalendar_core_preact_js__WEBPACK_IMPORTED_MODULE_1__["Fragment"], null,
10646        Object(_fullcalendar_core_preact_js__WEBPACK_IMPORTED_MODULE_1__["createElement"])("div", { className: "fc-daygrid-event-dot", style: { borderColor: renderProps.borderColor || renderProps.backgroundColor } }),
10647        renderProps.timeText && (Object(_fullcalendar_core_preact_js__WEBPACK_IMPORTED_MODULE_1__["createElement"])("div", { className: "fc-event-time" }, renderProps.timeText)),
10648        Object(_fullcalendar_core_preact_js__WEBPACK_IMPORTED_MODULE_1__["createElement"])("div", { className: "fc-event-title" }, renderProps.event.title || Object(_fullcalendar_core_preact_js__WEBPACK_IMPORTED_MODULE_1__["createElement"])(_fullcalendar_core_preact_js__WEBPACK_IMPORTED_MODULE_1__["Fragment"], null, "\u00A0"))));
10649}
10650
10651class TableCellMoreLink extends _fullcalendar_core_internal_js__WEBPACK_IMPORTED_MODULE_0__["BaseComponent"] {
10652    constructor() {
10653        super(...arguments);
10654        this.compileSegs = Object(_fullcalendar_core_internal_js__WEBPACK_IMPORTED_MODULE_0__["memoize"])(compileSegs);
10655    }
10656    render() {
10657        let { props } = this;
10658        let { allSegs, invisibleSegs } = this.compileSegs(props.singlePlacements);
10659        return (Object(_fullcalendar_core_preact_js__WEBPACK_IMPORTED_MODULE_1__["createElement"])(_fullcalendar_core_internal_js__WEBPACK_IMPORTED_MODULE_0__["MoreLinkContainer"], { elClasses: ['fc-daygrid-more-link'], dateProfile: props.dateProfile, todayRange: props.todayRange, allDayDate: props.allDayDate, moreCnt: props.moreCnt, allSegs: allSegs, hiddenSegs: invisibleSegs, alignmentElRef: props.alignmentElRef, alignGridTop: props.alignGridTop, extraDateSpan: props.extraDateSpan, popoverContent: () => {
10660                let isForcedInvisible = (props.eventDrag ? props.eventDrag.affectedInstances : null) ||
10661                    (props.eventResize ? props.eventResize.affectedInstances : null) ||
10662                    {};
10663                return (Object(_fullcalendar_core_preact_js__WEBPACK_IMPORTED_MODULE_1__["createElement"])(_fullcalendar_core_preact_js__WEBPACK_IMPORTED_MODULE_1__["Fragment"], null, allSegs.map((seg) => {
10664                    let instanceId = seg.eventRange.instance.instanceId;
10665                    return (Object(_fullcalendar_core_preact_js__WEBPACK_IMPORTED_MODULE_1__["createElement"])("div", { className: "fc-daygrid-event-harness", key: instanceId, style: {
10666                            visibility: isForcedInvisible[instanceId] ? 'hidden' : '',
10667                        } }, hasListItemDisplay(seg) ? (Object(_fullcalendar_core_preact_js__WEBPACK_IMPORTED_MODULE_1__["createElement"])(TableListItemEvent, Object.assign({ seg: seg, isDragging: false, isSelected: instanceId === props.eventSelection, defaultDisplayEventEnd: false }, Object(_fullcalendar_core_internal_js__WEBPACK_IMPORTED_MODULE_0__["getSegMeta"])(seg, props.todayRange)))) : (Object(_fullcalendar_core_preact_js__WEBPACK_IMPORTED_MODULE_1__["createElement"])(TableBlockEvent, Object.assign({ seg: seg, isDragging: false, isResizing: false, isDateSelecting: false, isSelected: instanceId === props.eventSelection, defaultDisplayEventEnd: false }, Object(_fullcalendar_core_internal_js__WEBPACK_IMPORTED_MODULE_0__["getSegMeta"])(seg, props.todayRange))))));
10668                })));
10669            } }));
10670    }
10671}
10672function compileSegs(singlePlacements) {
10673    let allSegs = [];
10674    let invisibleSegs = [];
10675    for (let placement of singlePlacements) {
10676        allSegs.push(placement.seg);
10677        if (!placement.isVisible) {
10678            invisibleSegs.push(placement.seg);
10679        }
10680    }
10681    return { allSegs, invisibleSegs };
10682}
10683
10684const DEFAULT_WEEK_NUM_FORMAT = Object(_fullcalendar_core_internal_js__WEBPACK_IMPORTED_MODULE_0__["createFormatter"])({ week: 'narrow' });
10685class TableCell extends _fullcalendar_core_internal_js__WEBPACK_IMPORTED_MODULE_0__["DateComponent"] {
10686    constructor() {
10687        super(...arguments);
10688        this.rootElRef = Object(_fullcalendar_core_preact_js__WEBPACK_IMPORTED_MODULE_1__["createRef"])();
10689        this.state = {
10690            dayNumberId: Object(_fullcalendar_core_internal_js__WEBPACK_IMPORTED_MODULE_0__["getUniqueDomId"])(),
10691        };
10692        this.handleRootEl = (el) => {
10693            Object(_fullcalendar_core_internal_js__WEBPACK_IMPORTED_MODULE_0__["setRef"])(this.rootElRef, el);
10694            Object(_fullcalendar_core_internal_js__WEBPACK_IMPORTED_MODULE_0__["setRef"])(this.props.elRef, el);
10695        };
10696    }
10697    render() {
10698        let { context, props, state, rootElRef } = this;
10699        let { options, dateEnv } = context;
10700        let { date, dateProfile } = props;
10701        // TODO: memoize this?
10702        const isMonthStart = props.showDayNumber &&
10703            shouldDisplayMonthStart(date, dateProfile.currentRange, dateEnv);
10704        return (Object(_fullcalendar_core_preact_js__WEBPACK_IMPORTED_MODULE_1__["createElement"])(_fullcalendar_core_internal_js__WEBPACK_IMPORTED_MODULE_0__["DayCellContainer"], { elTag: "td", elRef: this.handleRootEl, elClasses: [
10705                'fc-daygrid-day',
10706                ...(props.extraClassNames || []),
10707            ], elAttrs: Object.assign(Object.assign(Object.assign({}, props.extraDataAttrs), (props.showDayNumber ? { 'aria-labelledby': state.dayNumberId } : {})), { role: 'gridcell' }), defaultGenerator: renderTopInner, date: date, dateProfile: dateProfile, todayRange: props.todayRange, showDayNumber: props.showDayNumber, isMonthStart: isMonthStart, extraRenderProps: props.extraRenderProps }, (InnerContent, renderProps) => (Object(_fullcalendar_core_preact_js__WEBPACK_IMPORTED_MODULE_1__["createElement"])("div", { ref: props.innerElRef, className: "fc-daygrid-day-frame fc-scrollgrid-sync-inner", style: { minHeight: props.minHeight } },
10708            props.showWeekNumber && (Object(_fullcalendar_core_preact_js__WEBPACK_IMPORTED_MODULE_1__["createElement"])(_fullcalendar_core_internal_js__WEBPACK_IMPORTED_MODULE_0__["WeekNumberContainer"], { elTag: "a", elClasses: ['fc-daygrid-week-number'], elAttrs: Object(_fullcalendar_core_internal_js__WEBPACK_IMPORTED_MODULE_0__["buildNavLinkAttrs"])(context, date, 'week'), date: date, defaultFormat: DEFAULT_WEEK_NUM_FORMAT })),
10709            !renderProps.isDisabled &&
10710                (props.showDayNumber || Object(_fullcalendar_core_internal_js__WEBPACK_IMPORTED_MODULE_0__["hasCustomDayCellContent"])(options) || props.forceDayTop) ? (Object(_fullcalendar_core_preact_js__WEBPACK_IMPORTED_MODULE_1__["createElement"])("div", { className: "fc-daygrid-day-top" },
10711                Object(_fullcalendar_core_preact_js__WEBPACK_IMPORTED_MODULE_1__["createElement"])(InnerContent, { elTag: "a", elClasses: [
10712                        'fc-daygrid-day-number',
10713                        isMonthStart && 'fc-daygrid-month-start',
10714                    ], elAttrs: Object.assign(Object.assign({}, Object(_fullcalendar_core_internal_js__WEBPACK_IMPORTED_MODULE_0__["buildNavLinkAttrs"])(context, date)), { id: state.dayNumberId }) }))) : props.showDayNumber ? (
10715            // for creating correct amount of space (see issue #7162)
10716            Object(_fullcalendar_core_preact_js__WEBPACK_IMPORTED_MODULE_1__["createElement"])("div", { className: "fc-daygrid-day-top", style: { visibility: 'hidden' } },
10717                Object(_fullcalendar_core_preact_js__WEBPACK_IMPORTED_MODULE_1__["createElement"])("a", { className: "fc-daygrid-day-number" }, "\u00A0"))) : undefined,
10718            Object(_fullcalendar_core_preact_js__WEBPACK_IMPORTED_MODULE_1__["createElement"])("div", { className: "fc-daygrid-day-events", ref: props.fgContentElRef },
10719                props.fgContent,
10720                Object(_fullcalendar_core_preact_js__WEBPACK_IMPORTED_MODULE_1__["createElement"])("div", { className: "fc-daygrid-day-bottom", style: { marginTop: props.moreMarginTop } },
10721                    Object(_fullcalendar_core_preact_js__WEBPACK_IMPORTED_MODULE_1__["createElement"])(TableCellMoreLink, { allDayDate: date, singlePlacements: props.singlePlacements, moreCnt: props.moreCnt, alignmentElRef: rootElRef, alignGridTop: !props.showDayNumber, extraDateSpan: props.extraDateSpan, dateProfile: props.dateProfile, eventSelection: props.eventSelection, eventDrag: props.eventDrag, eventResize: props.eventResize, todayRange: props.todayRange }))),
10722            Object(_fullcalendar_core_preact_js__WEBPACK_IMPORTED_MODULE_1__["createElement"])("div", { className: "fc-daygrid-day-bg" }, props.bgContent)))));
10723    }
10724}
10725function renderTopInner(props) {
10726    return props.dayNumberText || Object(_fullcalendar_core_preact_js__WEBPACK_IMPORTED_MODULE_1__["createElement"])(_fullcalendar_core_preact_js__WEBPACK_IMPORTED_MODULE_1__["Fragment"], null, "\u00A0");
10727}
10728function shouldDisplayMonthStart(date, currentRange, dateEnv) {
10729    const { start: currentStart, end: currentEnd } = currentRange;
10730    const currentEndIncl = Object(_fullcalendar_core_internal_js__WEBPACK_IMPORTED_MODULE_0__["addMs"])(currentEnd, -1);
10731    const currentFirstYear = dateEnv.getYear(currentStart);
10732    const currentFirstMonth = dateEnv.getMonth(currentStart);
10733    const currentLastYear = dateEnv.getYear(currentEndIncl);
10734    const currentLastMonth = dateEnv.getMonth(currentEndIncl);
10735    // spans more than one month?
10736    return !(currentFirstYear === currentLastYear && currentFirstMonth === currentLastMonth) &&
10737        Boolean(
10738        // first date in current view?
10739        date.valueOf() === currentStart.valueOf() ||
10740            // a month-start that's within the current range?
10741            (dateEnv.getDay(date) === 1 && date.valueOf() < currentEnd.valueOf()));
10742}
10743
10744function generateSegKey(seg) {
10745    return seg.eventRange.instance.instanceId + ':' + seg.firstCol;
10746}
10747function generateSegUid(seg) {
10748    return generateSegKey(seg) + ':' + seg.lastCol;
10749}
10750function computeFgSegPlacement(segs, // assumed already sorted
10751dayMaxEvents, dayMaxEventRows, strictOrder, segHeights, maxContentHeight, cells) {
10752    let hierarchy = new DayGridSegHierarchy((segEntry) => {
10753        // TODO: more DRY with generateSegUid
10754        let segUid = segs[segEntry.index].eventRange.instance.instanceId +
10755            ':' + segEntry.span.start +
10756            ':' + (segEntry.span.end - 1);
10757        // if no thickness known, assume 1 (if 0, so small it always fits)
10758        return segHeights[segUid] || 1;
10759    });
10760    hierarchy.allowReslicing = true;
10761    hierarchy.strictOrder = strictOrder;
10762    if (dayMaxEvents === true || dayMaxEventRows === true) {
10763        hierarchy.maxCoord = maxContentHeight;
10764        hierarchy.hiddenConsumes = true;
10765    }
10766    else if (typeof dayMaxEvents === 'number') {
10767        hierarchy.maxStackCnt = dayMaxEvents;
10768    }
10769    else if (typeof dayMaxEventRows === 'number') {
10770        hierarchy.maxStackCnt = dayMaxEventRows;
10771        hierarchy.hiddenConsumes = true;
10772    }
10773    // create segInputs only for segs with known heights
10774    let segInputs = [];
10775    let unknownHeightSegs = [];
10776    for (let i = 0; i < segs.length; i += 1) {
10777        let seg = segs[i];
10778        let segUid = generateSegUid(seg);
10779        let eventHeight = segHeights[segUid];
10780        if (eventHeight != null) {
10781            segInputs.push({
10782                index: i,
10783                span: {
10784                    start: seg.firstCol,
10785                    end: seg.lastCol + 1,
10786                },
10787            });
10788        }
10789        else {
10790            unknownHeightSegs.push(seg);
10791        }
10792    }
10793    let hiddenEntries = hierarchy.addSegs(segInputs);
10794    let segRects = hierarchy.toRects();
10795    let { singleColPlacements, multiColPlacements, leftoverMargins } = placeRects(segRects, segs, cells);
10796    let moreCnts = [];
10797    let moreMarginTops = [];
10798    // add segs with unknown heights
10799    for (let seg of unknownHeightSegs) {
10800        multiColPlacements[seg.firstCol].push({
10801            seg,
10802            isVisible: false,
10803            isAbsolute: true,
10804            absoluteTop: 0,
10805            marginTop: 0,
10806        });
10807        for (let col = seg.firstCol; col <= seg.lastCol; col += 1) {
10808            singleColPlacements[col].push({
10809                seg: resliceSeg(seg, col, col + 1, cells),
10810                isVisible: false,
10811                isAbsolute: false,
10812                absoluteTop: 0,
10813                marginTop: 0,
10814            });
10815        }
10816    }
10817    // add the hidden entries
10818    for (let col = 0; col < cells.length; col += 1) {
10819        moreCnts.push(0);
10820    }
10821    for (let hiddenEntry of hiddenEntries) {
10822        let seg = segs[hiddenEntry.index];
10823        let hiddenSpan = hiddenEntry.span;
10824        multiColPlacements[hiddenSpan.start].push({
10825            seg: resliceSeg(seg, hiddenSpan.start, hiddenSpan.end, cells),
10826            isVisible: false,
10827            isAbsolute: true,
10828            absoluteTop: 0,
10829            marginTop: 0,
10830        });
10831        for (let col = hiddenSpan.start; col < hiddenSpan.end; col += 1) {
10832            moreCnts[col] += 1;
10833            singleColPlacements[col].push({
10834                seg: resliceSeg(seg, col, col + 1, cells),
10835                isVisible: false,
10836                isAbsolute: false,
10837                absoluteTop: 0,
10838                marginTop: 0,
10839            });
10840        }
10841    }
10842    // deal with leftover margins
10843    for (let col = 0; col < cells.length; col += 1) {
10844        moreMarginTops.push(leftoverMargins[col]);
10845    }
10846    return { singleColPlacements, multiColPlacements, moreCnts, moreMarginTops };
10847}
10848// rects ordered by top coord, then left
10849function placeRects(allRects, segs, cells) {
10850    let rectsByEachCol = groupRectsByEachCol(allRects, cells.length);
10851    let singleColPlacements = [];
10852    let multiColPlacements = [];
10853    let leftoverMargins = [];
10854    for (let col = 0; col < cells.length; col += 1) {
10855        let rects = rectsByEachCol[col];
10856        // compute all static segs in singlePlacements
10857        let singlePlacements = [];
10858        let currentHeight = 0;
10859        let currentMarginTop = 0;
10860        for (let rect of rects) {
10861            let seg = segs[rect.index];
10862            singlePlacements.push({
10863                seg: resliceSeg(seg, col, col + 1, cells),
10864                isVisible: true,
10865                isAbsolute: false,
10866                absoluteTop: rect.levelCoord,
10867                marginTop: rect.levelCoord - currentHeight,
10868            });
10869            currentHeight = rect.levelCoord + rect.thickness;
10870        }
10871        // compute mixed static/absolute segs in multiPlacements
10872        let multiPlacements = [];
10873        currentHeight = 0;
10874        currentMarginTop = 0;
10875        for (let rect of rects) {
10876            let seg = segs[rect.index];
10877            let isAbsolute = rect.span.end - rect.span.start > 1; // multi-column?
10878            let isFirstCol = rect.span.start === col;
10879            currentMarginTop += rect.levelCoord - currentHeight; // amount of space since bottom of previous seg
10880            currentHeight = rect.levelCoord + rect.thickness; // height will now be bottom of current seg
10881            if (isAbsolute) {
10882                currentMarginTop += rect.thickness;
10883                if (isFirstCol) {
10884                    multiPlacements.push({
10885                        seg: resliceSeg(seg, rect.span.start, rect.span.end, cells),
10886                        isVisible: true,
10887                        isAbsolute: true,
10888                        absoluteTop: rect.levelCoord,
10889                        marginTop: 0,
10890                    });
10891                }
10892            }
10893            else if (isFirstCol) {
10894                multiPlacements.push({
10895                    seg: resliceSeg(seg, rect.span.start, rect.span.end, cells),
10896                    isVisible: true,
10897                    isAbsolute: false,
10898                    absoluteTop: rect.levelCoord,
10899                    marginTop: currentMarginTop, // claim the margin
10900                });
10901                currentMarginTop = 0;
10902            }
10903        }
10904        singleColPlacements.push(singlePlacements);
10905        multiColPlacements.push(multiPlacements);
10906        leftoverMargins.push(currentMarginTop);
10907    }
10908    return { singleColPlacements, multiColPlacements, leftoverMargins };
10909}
10910function groupRectsByEachCol(rects, colCnt) {
10911    let rectsByEachCol = [];
10912    for (let col = 0; col < colCnt; col += 1) {
10913        rectsByEachCol.push([]);
10914    }
10915    for (let rect of rects) {
10916        for (let col = rect.span.start; col < rect.span.end; col += 1) {
10917            rectsByEachCol[col].push(rect);
10918        }
10919    }
10920    return rectsByEachCol;
10921}
10922function resliceSeg(seg, spanStart, spanEnd, cells) {
10923    if (seg.firstCol === spanStart && seg.lastCol === spanEnd - 1) {
10924        return seg;
10925    }
10926    let eventRange = seg.eventRange;
10927    let origRange = eventRange.range;
10928    let slicedRange = Object(_fullcalendar_core_internal_js__WEBPACK_IMPORTED_MODULE_0__["intersectRanges"])(origRange, {
10929        start: cells[spanStart].date,
10930        end: Object(_fullcalendar_core_internal_js__WEBPACK_IMPORTED_MODULE_0__["addDays"])(cells[spanEnd - 1].date, 1),
10931    });
10932    return Object.assign(Object.assign({}, seg), { firstCol: spanStart, lastCol: spanEnd - 1, eventRange: {
10933            def: eventRange.def,
10934            ui: Object.assign(Object.assign({}, eventRange.ui), { durationEditable: false }),
10935            instance: eventRange.instance,
10936            range: slicedRange,
10937        }, isStart: seg.isStart && slicedRange.start.valueOf() === origRange.start.valueOf(), isEnd: seg.isEnd && slicedRange.end.valueOf() === origRange.end.valueOf() });
10938}
10939class DayGridSegHierarchy extends _fullcalendar_core_internal_js__WEBPACK_IMPORTED_MODULE_0__["SegHierarchy"] {
10940    constructor() {
10941        super(...arguments);
10942        // config
10943        this.hiddenConsumes = false;
10944        // allows us to keep hidden entries in the hierarchy so they take up space
10945        this.forceHidden = {};
10946    }
10947    addSegs(segInputs) {
10948        const hiddenSegs = super.addSegs(segInputs);
10949        const { entriesByLevel } = this;
10950        const excludeHidden = (entry) => !this.forceHidden[Object(_fullcalendar_core_internal_js__WEBPACK_IMPORTED_MODULE_0__["buildEntryKey"])(entry)];
10951        // remove the forced-hidden segs
10952        for (let level = 0; level < entriesByLevel.length; level += 1) {
10953            entriesByLevel[level] = entriesByLevel[level].filter(excludeHidden);
10954        }
10955        return hiddenSegs;
10956    }
10957    handleInvalidInsertion(insertion, entry, hiddenEntries) {
10958        const { entriesByLevel, forceHidden } = this;
10959        const { touchingEntry, touchingLevel, touchingLateral } = insertion;
10960        // the entry that the new insertion is touching must be hidden
10961        if (this.hiddenConsumes && touchingEntry) {
10962            const touchingEntryId = Object(_fullcalendar_core_internal_js__WEBPACK_IMPORTED_MODULE_0__["buildEntryKey"])(touchingEntry);
10963            if (!forceHidden[touchingEntryId]) {
10964                if (this.allowReslicing) {
10965                    // split up the touchingEntry, reinsert it
10966                    const hiddenEntry = Object.assign(Object.assign({}, touchingEntry), { span: Object(_fullcalendar_core_internal_js__WEBPACK_IMPORTED_MODULE_0__["intersectSpans"])(touchingEntry.span, entry.span) });
10967                    // reinsert the area that turned into a "more" link (so no other entries try to
10968                    // occupy the space) but mark it forced-hidden
10969                    const hiddenEntryId = Object(_fullcalendar_core_internal_js__WEBPACK_IMPORTED_MODULE_0__["buildEntryKey"])(hiddenEntry);
10970                    forceHidden[hiddenEntryId] = true;
10971                    entriesByLevel[touchingLevel][touchingLateral] = hiddenEntry;
10972                    hiddenEntries.push(hiddenEntry);
10973                    this.splitEntry(touchingEntry, entry, hiddenEntries);
10974                }
10975                else {
10976                    forceHidden[touchingEntryId] = true;
10977                    hiddenEntries.push(touchingEntry);
10978                }
10979            }
10980        }
10981        // will try to reslice...
10982        super.handleInvalidInsertion(insertion, entry, hiddenEntries);
10983    }
10984}
10985
10986class TableRow extends _fullcalendar_core_internal_js__WEBPACK_IMPORTED_MODULE_0__["DateComponent"] {
10987    constructor() {
10988        super(...arguments);
10989        this.cellElRefs = new _fullcalendar_core_internal_js__WEBPACK_IMPORTED_MODULE_0__["RefMap"](); // the <td>
10990        this.frameElRefs = new _fullcalendar_core_internal_js__WEBPACK_IMPORTED_MODULE_0__["RefMap"](); // the fc-daygrid-day-frame
10991        this.fgElRefs = new _fullcalendar_core_internal_js__WEBPACK_IMPORTED_MODULE_0__["RefMap"](); // the fc-daygrid-day-events
10992        this.segHarnessRefs = new _fullcalendar_core_internal_js__WEBPACK_IMPORTED_MODULE_0__["RefMap"](); // indexed by "instanceId:firstCol"
10993        this.rootElRef = Object(_fullcalendar_core_preact_js__WEBPACK_IMPORTED_MODULE_1__["createRef"])();
10994        this.state = {
10995            framePositions: null,
10996            maxContentHeight: null,
10997            segHeights: {},
10998        };
10999        this.handleResize = (isForced) => {
11000            if (isForced) {
11001                this.updateSizing(true); // isExternal=true
11002            }
11003        };
11004    }
11005    render() {
11006        let { props, state, context } = this;
11007        let { options } = context;
11008        let colCnt = props.cells.length;
11009        let businessHoursByCol = splitSegsByFirstCol(props.businessHourSegs, colCnt);
11010        let bgEventSegsByCol = splitSegsByFirstCol(props.bgEventSegs, colCnt);
11011        let highlightSegsByCol = splitSegsByFirstCol(this.getHighlightSegs(), colCnt);
11012        let mirrorSegsByCol = splitSegsByFirstCol(this.getMirrorSegs(), colCnt);
11013        let { singleColPlacements, multiColPlacements, moreCnts, moreMarginTops } = computeFgSegPlacement(Object(_fullcalendar_core_internal_js__WEBPACK_IMPORTED_MODULE_0__["sortEventSegs"])(props.fgEventSegs, options.eventOrder), props.dayMaxEvents, props.dayMaxEventRows, options.eventOrderStrict, state.segHeights, state.maxContentHeight, props.cells);
11014        let isForcedInvisible = // TODO: messy way to compute this
11015         (props.eventDrag && props.eventDrag.affectedInstances) ||
11016            (props.eventResize && props.eventResize.affectedInstances) ||
11017            {};
11018        return (Object(_fullcalendar_core_preact_js__WEBPACK_IMPORTED_MODULE_1__["createElement"])("tr", { ref: this.rootElRef, role: "row" },
11019            props.renderIntro && props.renderIntro(),
11020            props.cells.map((cell, col) => {
11021                let normalFgNodes = this.renderFgSegs(col, props.forPrint ? singleColPlacements[col] : multiColPlacements[col], props.todayRange, isForcedInvisible);
11022                let mirrorFgNodes = this.renderFgSegs(col, buildMirrorPlacements(mirrorSegsByCol[col], multiColPlacements), props.todayRange, {}, Boolean(props.eventDrag), Boolean(props.eventResize), false);
11023                return (Object(_fullcalendar_core_preact_js__WEBPACK_IMPORTED_MODULE_1__["createElement"])(TableCell, { key: cell.key, elRef: this.cellElRefs.createRef(cell.key), innerElRef: this.frameElRefs.createRef(cell.key) /* FF <td> problem, but okay to use for left/right. TODO: rename prop */, dateProfile: props.dateProfile, date: cell.date, showDayNumber: props.showDayNumbers, showWeekNumber: props.showWeekNumbers && col === 0, forceDayTop: props.showWeekNumbers /* even displaying weeknum for row, not necessarily day */, todayRange: props.todayRange, eventSelection: props.eventSelection, eventDrag: props.eventDrag, eventResize: props.eventResize, extraRenderProps: cell.extraRenderProps, extraDataAttrs: cell.extraDataAttrs, extraClassNames: cell.extraClassNames, extraDateSpan: cell.extraDateSpan, moreCnt: moreCnts[col], moreMarginTop: moreMarginTops[col], singlePlacements: singleColPlacements[col], fgContentElRef: this.fgElRefs.createRef(cell.key), fgContent: ( // Fragment scopes the keys
11024                    Object(_fullcalendar_core_preact_js__WEBPACK_IMPORTED_MODULE_1__["createElement"])(_fullcalendar_core_preact_js__WEBPACK_IMPORTED_MODULE_1__["Fragment"], null,
11025                        Object(_fullcalendar_core_preact_js__WEBPACK_IMPORTED_MODULE_1__["createElement"])(_fullcalendar_core_preact_js__WEBPACK_IMPORTED_MODULE_1__["Fragment"], null, normalFgNodes),
11026                        Object(_fullcalendar_core_preact_js__WEBPACK_IMPORTED_MODULE_1__["createElement"])(_fullcalendar_core_preact_js__WEBPACK_IMPORTED_MODULE_1__["Fragment"], null, mirrorFgNodes))), bgContent: ( // Fragment scopes the keys
11027                    Object(_fullcalendar_core_preact_js__WEBPACK_IMPORTED_MODULE_1__["createElement"])(_fullcalendar_core_preact_js__WEBPACK_IMPORTED_MODULE_1__["Fragment"], null,
11028                        this.renderFillSegs(highlightSegsByCol[col], 'highlight'),
11029                        this.renderFillSegs(businessHoursByCol[col], 'non-business'),
11030                        this.renderFillSegs(bgEventSegsByCol[col], 'bg-event'))), minHeight: props.cellMinHeight }));
11031            })));
11032    }
11033    componentDidMount() {
11034        this.updateSizing(true);
11035        this.context.addResizeHandler(this.handleResize);
11036    }
11037    componentDidUpdate(prevProps, prevState) {
11038        let currentProps = this.props;
11039        this.updateSizing(!Object(_fullcalendar_core_internal_js__WEBPACK_IMPORTED_MODULE_0__["isPropsEqual"])(prevProps, currentProps));
11040    }
11041    componentWillUnmount() {
11042        this.context.removeResizeHandler(this.handleResize);
11043    }
11044    getHighlightSegs() {
11045        let { props } = this;
11046        if (props.eventDrag && props.eventDrag.segs.length) { // messy check
11047            return props.eventDrag.segs;
11048        }
11049        if (props.eventResize && props.eventResize.segs.length) { // messy check
11050            return props.eventResize.segs;
11051        }
11052        return props.dateSelectionSegs;
11053    }
11054    getMirrorSegs() {
11055        let { props } = this;
11056        if (props.eventResize && props.eventResize.segs.length) { // messy check
11057            return props.eventResize.segs;
11058        }
11059        return [];
11060    }
11061    renderFgSegs(col, segPlacements, todayRange, isForcedInvisible, isDragging, isResizing, isDateSelecting) {
11062        let { context } = this;
11063        let { eventSelection } = this.props;
11064        let { framePositions } = this.state;
11065        let defaultDisplayEventEnd = this.props.cells.length === 1; // colCnt === 1
11066        let isMirror = isDragging || isResizing || isDateSelecting;
11067        let nodes = [];
11068        if (framePositions) {
11069            for (let placement of segPlacements) {
11070                let { seg } = placement;
11071                let { instanceId } = seg.eventRange.instance;
11072                let isVisible = placement.isVisible && !isForcedInvisible[instanceId];
11073                let isAbsolute = placement.isAbsolute;
11074                let left = '';
11075                let right = '';
11076                if (isAbsolute) {
11077                    if (context.isRtl) {
11078                        right = 0;
11079                        left = framePositions.lefts[seg.lastCol] - framePositions.lefts[seg.firstCol];
11080                    }
11081                    else {
11082                        left = 0;
11083                        right = framePositions.rights[seg.firstCol] - framePositions.rights[seg.lastCol];
11084                    }
11085                }
11086                /*
11087                known bug: events that are force to be list-item but span multiple days still take up space in later columns
11088                todo: in print view, for multi-day events, don't display title within non-start/end segs
11089                */
11090                nodes.push(Object(_fullcalendar_core_preact_js__WEBPACK_IMPORTED_MODULE_1__["createElement"])("div", { className: 'fc-daygrid-event-harness' + (isAbsolute ? ' fc-daygrid-event-harness-abs' : ''), key: generateSegKey(seg), ref: isMirror ? null : this.segHarnessRefs.createRef(generateSegUid(seg)), style: {
11091                        visibility: isVisible ? '' : 'hidden',
11092                        marginTop: isAbsolute ? '' : placement.marginTop,
11093                        top: isAbsolute ? placement.absoluteTop : '',
11094                        left,
11095                        right,
11096                    } }, hasListItemDisplay(seg) ? (Object(_fullcalendar_core_preact_js__WEBPACK_IMPORTED_MODULE_1__["createElement"])(TableListItemEvent, Object.assign({ seg: seg, isDragging: isDragging, isSelected: instanceId === eventSelection, defaultDisplayEventEnd: defaultDisplayEventEnd }, Object(_fullcalendar_core_internal_js__WEBPACK_IMPORTED_MODULE_0__["getSegMeta"])(seg, todayRange)))) : (Object(_fullcalendar_core_preact_js__WEBPACK_IMPORTED_MODULE_1__["createElement"])(TableBlockEvent, Object.assign({ seg: seg, isDragging: isDragging, isResizing: isResizing, isDateSelecting: isDateSelecting, isSelected: instanceId === eventSelection, defaultDisplayEventEnd: defaultDisplayEventEnd }, Object(_fullcalendar_core_internal_js__WEBPACK_IMPORTED_MODULE_0__["getSegMeta"])(seg, todayRange))))));
11097            }
11098        }
11099        return nodes;
11100    }
11101    renderFillSegs(segs, fillType) {
11102        let { isRtl } = this.context;
11103        let { todayRange } = this.props;
11104        let { framePositions } = this.state;
11105        let nodes = [];
11106        if (framePositions) {
11107            for (let seg of segs) {
11108                let leftRightCss = isRtl ? {
11109                    right: 0,
11110                    left: framePositions.lefts[seg.lastCol] - framePositions.lefts[seg.firstCol],
11111                } : {
11112                    left: 0,
11113                    right: framePositions.rights[seg.firstCol] - framePositions.rights[seg.lastCol],
11114                };
11115                nodes.push(Object(_fullcalendar_core_preact_js__WEBPACK_IMPORTED_MODULE_1__["createElement"])("div", { key: Object(_fullcalendar_core_internal_js__WEBPACK_IMPORTED_MODULE_0__["buildEventRangeKey"])(seg.eventRange), className: "fc-daygrid-bg-harness", style: leftRightCss }, fillType === 'bg-event' ?
11116                    Object(_fullcalendar_core_preact_js__WEBPACK_IMPORTED_MODULE_1__["createElement"])(_fullcalendar_core_internal_js__WEBPACK_IMPORTED_MODULE_0__["BgEvent"], Object.assign({ seg: seg }, Object(_fullcalendar_core_internal_js__WEBPACK_IMPORTED_MODULE_0__["getSegMeta"])(seg, todayRange))) :
11117                    Object(_fullcalendar_core_internal_js__WEBPACK_IMPORTED_MODULE_0__["renderFill"])(fillType)));
11118            }
11119        }
11120        return Object(_fullcalendar_core_preact_js__WEBPACK_IMPORTED_MODULE_1__["createElement"])(_fullcalendar_core_preact_js__WEBPACK_IMPORTED_MODULE_1__["Fragment"], {}, ...nodes);
11121    }
11122    updateSizing(isExternalSizingChange) {
11123        let { props, state, frameElRefs } = this;
11124        if (!props.forPrint &&
11125            props.clientWidth !== null // positioning ready?
11126        ) {
11127            if (isExternalSizingChange) {
11128                let frameEls = props.cells.map((cell) => frameElRefs.currentMap[cell.key]);
11129                if (frameEls.length) {
11130                    let originEl = this.rootElRef.current;
11131                    let newPositionCache = new _fullcalendar_core_internal_js__WEBPACK_IMPORTED_MODULE_0__["PositionCache"](originEl, frameEls, true, // isHorizontal
11132                    false);
11133                    if (!state.framePositions || !state.framePositions.similarTo(newPositionCache)) {
11134                        this.setState({
11135                            framePositions: new _fullcalendar_core_internal_js__WEBPACK_IMPORTED_MODULE_0__["PositionCache"](originEl, frameEls, true, // isHorizontal
11136                            false),
11137                        });
11138                    }
11139                }
11140            }
11141            const oldSegHeights = this.state.segHeights;
11142            const newSegHeights = this.querySegHeights();
11143            const limitByContentHeight = props.dayMaxEvents === true || props.dayMaxEventRows === true;
11144            this.safeSetState({
11145                // HACK to prevent oscillations of events being shown/hidden from max-event-rows
11146                // Essentially, once you compute an element's height, never null-out.
11147                // TODO: always display all events, as visibility:hidden?
11148                segHeights: Object.assign(Object.assign({}, oldSegHeights), newSegHeights),
11149                maxContentHeight: limitByContentHeight ? this.computeMaxContentHeight() : null,
11150            });
11151        }
11152    }
11153    querySegHeights() {
11154        let segElMap = this.segHarnessRefs.currentMap;
11155        let segHeights = {};
11156        // get the max height amongst instance segs
11157        for (let segUid in segElMap) {
11158            let height = Math.round(segElMap[segUid].getBoundingClientRect().height);
11159            segHeights[segUid] = Math.max(segHeights[segUid] || 0, height);
11160        }
11161        return segHeights;
11162    }
11163    computeMaxContentHeight() {
11164        let firstKey = this.props.cells[0].key;
11165        let cellEl = this.cellElRefs.currentMap[firstKey];
11166        let fcContainerEl = this.fgElRefs.currentMap[firstKey];
11167        return cellEl.getBoundingClientRect().bottom - fcContainerEl.getBoundingClientRect().top;
11168    }
11169    getCellEls() {
11170        let elMap = this.cellElRefs.currentMap;
11171        return this.props.cells.map((cell) => elMap[cell.key]);
11172    }
11173}
11174TableRow.addStateEquality({
11175    segHeights: _fullcalendar_core_internal_js__WEBPACK_IMPORTED_MODULE_0__["isPropsEqual"],
11176});
11177function buildMirrorPlacements(mirrorSegs, colPlacements) {
11178    if (!mirrorSegs.length) {
11179        return [];
11180    }
11181    let topsByInstanceId = buildAbsoluteTopHash(colPlacements); // TODO: cache this at first render?
11182    return mirrorSegs.map((seg) => ({
11183        seg,
11184        isVisible: true,
11185        isAbsolute: true,
11186        absoluteTop: topsByInstanceId[seg.eventRange.instance.instanceId],
11187        marginTop: 0,
11188    }));
11189}
11190function buildAbsoluteTopHash(colPlacements) {
11191    let topsByInstanceId = {};
11192    for (let placements of colPlacements) {
11193        for (let placement of placements) {
11194            topsByInstanceId[placement.seg.eventRange.instance.instanceId] = placement.absoluteTop;
11195        }
11196    }
11197    return topsByInstanceId;
11198}
11199
11200class TableRows extends _fullcalendar_core_internal_js__WEBPACK_IMPORTED_MODULE_0__["DateComponent"] {
11201    constructor() {
11202        super(...arguments);
11203        this.splitBusinessHourSegs = Object(_fullcalendar_core_internal_js__WEBPACK_IMPORTED_MODULE_0__["memoize"])(splitSegsByRow);
11204        this.splitBgEventSegs = Object(_fullcalendar_core_internal_js__WEBPACK_IMPORTED_MODULE_0__["memoize"])(splitSegsByRow);
11205        this.splitFgEventSegs = Object(_fullcalendar_core_internal_js__WEBPACK_IMPORTED_MODULE_0__["memoize"])(splitSegsByRow);
11206        this.splitDateSelectionSegs = Object(_fullcalendar_core_internal_js__WEBPACK_IMPORTED_MODULE_0__["memoize"])(splitSegsByRow);
11207        this.splitEventDrag = Object(_fullcalendar_core_internal_js__WEBPACK_IMPORTED_MODULE_0__["memoize"])(splitInteractionByRow);
11208        this.splitEventResize = Object(_fullcalendar_core_internal_js__WEBPACK_IMPORTED_MODULE_0__["memoize"])(splitInteractionByRow);
11209        this.rowRefs = new _fullcalendar_core_internal_js__WEBPACK_IMPORTED_MODULE_0__["RefMap"]();
11210    }
11211    render() {
11212        let { props, context } = this;
11213        let rowCnt = props.cells.length;
11214        let businessHourSegsByRow = this.splitBusinessHourSegs(props.businessHourSegs, rowCnt);
11215        let bgEventSegsByRow = this.splitBgEventSegs(props.bgEventSegs, rowCnt);
11216        let fgEventSegsByRow = this.splitFgEventSegs(props.fgEventSegs, rowCnt);
11217        let dateSelectionSegsByRow = this.splitDateSelectionSegs(props.dateSelectionSegs, rowCnt);
11218        let eventDragByRow = this.splitEventDrag(props.eventDrag, rowCnt);
11219        let eventResizeByRow = this.splitEventResize(props.eventResize, rowCnt);
11220        // for DayGrid view with many rows, force a min-height on cells so doesn't appear squished
11221        // choose 7 because a month view will have max 6 rows
11222        let cellMinHeight = (rowCnt >= 7 && props.clientWidth) ?
11223            props.clientWidth / context.options.aspectRatio / 6 :
11224            null;
11225        return (Object(_fullcalendar_core_preact_js__WEBPACK_IMPORTED_MODULE_1__["createElement"])(_fullcalendar_core_internal_js__WEBPACK_IMPORTED_MODULE_0__["NowTimer"], { unit: "day" }, (nowDate, todayRange) => (Object(_fullcalendar_core_preact_js__WEBPACK_IMPORTED_MODULE_1__["createElement"])(_fullcalendar_core_preact_js__WEBPACK_IMPORTED_MODULE_1__["Fragment"], null, props.cells.map((cells, row) => (Object(_fullcalendar_core_preact_js__WEBPACK_IMPORTED_MODULE_1__["createElement"])(TableRow, { ref: this.rowRefs.createRef(row), key: cells.length
11226                ? cells[0].date.toISOString() /* best? or put key on cell? or use diff formatter? */
11227                : row // in case there are no cells (like when resource view is loading)
11228            , showDayNumbers: rowCnt > 1, showWeekNumbers: props.showWeekNumbers, todayRange: todayRange, dateProfile: props.dateProfile, cells: cells, renderIntro: props.renderRowIntro, businessHourSegs: businessHourSegsByRow[row], eventSelection: props.eventSelection, bgEventSegs: bgEventSegsByRow[row].filter(isSegAllDay) /* hack */, fgEventSegs: fgEventSegsByRow[row], dateSelectionSegs: dateSelectionSegsByRow[row], eventDrag: eventDragByRow[row], eventResize: eventResizeByRow[row], dayMaxEvents: props.dayMaxEvents, dayMaxEventRows: props.dayMaxEventRows, clientWidth: props.clientWidth, clientHeight: props.clientHeight, cellMinHeight: cellMinHeight, forPrint: props.forPrint })))))));
11229    }
11230    componentDidMount() {
11231        this.registerInteractiveComponent();
11232    }
11233    componentDidUpdate() {
11234        // for if started with zero cells
11235        this.registerInteractiveComponent();
11236    }
11237    registerInteractiveComponent() {
11238        if (!this.rootEl) {
11239            // HACK: need a daygrid wrapper parent to do positioning
11240            // NOTE: a daygrid resource view w/o resources can have zero cells
11241            const firstCellEl = this.rowRefs.currentMap[0].getCellEls()[0];
11242            const rootEl = firstCellEl ? firstCellEl.closest('.fc-daygrid-body') : null;
11243            if (rootEl) {
11244                this.rootEl = rootEl;
11245                this.context.registerInteractiveComponent(this, {
11246                    el: rootEl,
11247                    isHitComboAllowed: this.props.isHitComboAllowed,
11248                });
11249            }
11250        }
11251    }
11252    componentWillUnmount() {
11253        if (this.rootEl) {
11254            this.context.unregisterInteractiveComponent(this);
11255            this.rootEl = null;
11256        }
11257    }
11258    // Hit System
11259    // ----------------------------------------------------------------------------------------------------
11260    prepareHits() {
11261        this.rowPositions = new _fullcalendar_core_internal_js__WEBPACK_IMPORTED_MODULE_0__["PositionCache"](this.rootEl, this.rowRefs.collect().map((rowObj) => rowObj.getCellEls()[0]), // first cell el in each row. TODO: not optimal
11262        false, true);
11263        this.colPositions = new _fullcalendar_core_internal_js__WEBPACK_IMPORTED_MODULE_0__["PositionCache"](this.rootEl, this.rowRefs.currentMap[0].getCellEls(), // cell els in first row
11264        true, // horizontal
11265        false);
11266    }
11267    queryHit(positionLeft, positionTop) {
11268        let { colPositions, rowPositions } = this;
11269        let col = colPositions.leftToIndex(positionLeft);
11270        let row = rowPositions.topToIndex(positionTop);
11271        if (row != null && col != null) {
11272            let cell = this.props.cells[row][col];
11273            return {
11274                dateProfile: this.props.dateProfile,
11275                dateSpan: Object.assign({ range: this.getCellRange(row, col), allDay: true }, cell.extraDateSpan),
11276                dayEl: this.getCellEl(row, col),
11277                rect: {
11278                    left: colPositions.lefts[col],
11279                    right: colPositions.rights[col],
11280                    top: rowPositions.tops[row],
11281                    bottom: rowPositions.bottoms[row],
11282                },
11283                layer: 0,
11284            };
11285        }
11286        return null;
11287    }
11288    getCellEl(row, col) {
11289        return this.rowRefs.currentMap[row].getCellEls()[col]; // TODO: not optimal
11290    }
11291    getCellRange(row, col) {
11292        let start = this.props.cells[row][col].date;
11293        let end = Object(_fullcalendar_core_internal_js__WEBPACK_IMPORTED_MODULE_0__["addDays"])(start, 1);
11294        return { start, end };
11295    }
11296}
11297function isSegAllDay(seg) {
11298    return seg.eventRange.def.allDay;
11299}
11300
11301class Table extends _fullcalendar_core_internal_js__WEBPACK_IMPORTED_MODULE_0__["DateComponent"] {
11302    constructor() {
11303        super(...arguments);
11304        this.elRef = Object(_fullcalendar_core_preact_js__WEBPACK_IMPORTED_MODULE_1__["createRef"])();
11305        this.needsScrollReset = false;
11306    }
11307    render() {
11308        let { props } = this;
11309        let { dayMaxEventRows, dayMaxEvents, expandRows } = props;
11310        let limitViaBalanced = dayMaxEvents === true || dayMaxEventRows === true;
11311        // if rows can't expand to fill fixed height, can't do balanced-height event limit
11312        // TODO: best place to normalize these options?
11313        if (limitViaBalanced && !expandRows) {
11314            limitViaBalanced = false;
11315            dayMaxEventRows = null;
11316            dayMaxEvents = null;
11317        }
11318        let classNames = [
11319            'fc-daygrid-body',
11320            limitViaBalanced ? 'fc-daygrid-body-balanced' : 'fc-daygrid-body-unbalanced',
11321            expandRows ? '' : 'fc-daygrid-body-natural', // will height of one row depend on the others?
11322        ];
11323        return (Object(_fullcalendar_core_preact_js__WEBPACK_IMPORTED_MODULE_1__["createElement"])("div", { ref: this.elRef, className: classNames.join(' '), style: {
11324                // these props are important to give this wrapper correct dimensions for interactions
11325                // TODO: if we set it here, can we avoid giving to inner tables?
11326                width: props.clientWidth,
11327                minWidth: props.tableMinWidth,
11328            } },
11329            Object(_fullcalendar_core_preact_js__WEBPACK_IMPORTED_MODULE_1__["createElement"])("table", { role: "presentation", className: "fc-scrollgrid-sync-table", style: {
11330                    width: props.clientWidth,
11331                    minWidth: props.tableMinWidth,
11332                    height: expandRows ? props.clientHeight : '',
11333                } },
11334                props.colGroupNode,
11335                Object(_fullcalendar_core_preact_js__WEBPACK_IMPORTED_MODULE_1__["createElement"])("tbody", { role: "presentation" },
11336                    Object(_fullcalendar_core_preact_js__WEBPACK_IMPORTED_MODULE_1__["createElement"])(TableRows, { dateProfile: props.dateProfile, cells: props.cells, renderRowIntro: props.renderRowIntro, showWeekNumbers: props.showWeekNumbers, clientWidth: props.clientWidth, clientHeight: props.clientHeight, businessHourSegs: props.businessHourSegs, bgEventSegs: props.bgEventSegs, fgEventSegs: props.fgEventSegs, dateSelectionSegs: props.dateSelectionSegs, eventSelection: props.eventSelection, eventDrag: props.eventDrag, eventResize: props.eventResize, dayMaxEvents: dayMaxEvents, dayMaxEventRows: dayMaxEventRows, forPrint: props.forPrint, isHitComboAllowed: props.isHitComboAllowed })))));
11337    }
11338    componentDidMount() {
11339        this.requestScrollReset();
11340    }
11341    componentDidUpdate(prevProps) {
11342        if (prevProps.dateProfile !== this.props.dateProfile) {
11343            this.requestScrollReset();
11344        }
11345        else {
11346            this.flushScrollReset();
11347        }
11348    }
11349    requestScrollReset() {
11350        this.needsScrollReset = true;
11351        this.flushScrollReset();
11352    }
11353    flushScrollReset() {
11354        if (this.needsScrollReset &&
11355            this.props.clientWidth // sizes computed?
11356        ) {
11357            const subjectEl = getScrollSubjectEl(this.elRef.current, this.props.dateProfile);
11358            if (subjectEl) {
11359                const originEl = subjectEl.closest('.fc-daygrid-body');
11360                const scrollEl = originEl.closest('.fc-scroller');
11361                const scrollTop = subjectEl.getBoundingClientRect().top -
11362                    originEl.getBoundingClientRect().top;
11363                scrollEl.scrollTop = scrollTop ? (scrollTop + 1) : 0; // overcome border
11364            }
11365            this.needsScrollReset = false;
11366        }
11367    }
11368}
11369function getScrollSubjectEl(containerEl, dateProfile) {
11370    let el;
11371    if (dateProfile.currentRangeUnit.match(/year|month/)) {
11372        el = containerEl.querySelector(`[data-date="${Object(_fullcalendar_core_internal_js__WEBPACK_IMPORTED_MODULE_0__["formatIsoMonthStr"])(dateProfile.currentDate)}-01"]`);
11373        // even if view is month-based, first-of-month might be hidden...
11374    }
11375    if (!el) {
11376        el = containerEl.querySelector(`[data-date="${Object(_fullcalendar_core_internal_js__WEBPACK_IMPORTED_MODULE_0__["formatDayString"])(dateProfile.currentDate)}"]`);
11377        // could still be hidden if an interior-view hidden day
11378    }
11379    return el;
11380}
11381
11382class DayTableSlicer extends _fullcalendar_core_internal_js__WEBPACK_IMPORTED_MODULE_0__["Slicer"] {
11383    constructor() {
11384        super(...arguments);
11385        this.forceDayIfListItem = true;
11386    }
11387    sliceRange(dateRange, dayTableModel) {
11388        return dayTableModel.sliceRange(dateRange);
11389    }
11390}
11391
11392class DayTable extends _fullcalendar_core_internal_js__WEBPACK_IMPORTED_MODULE_0__["DateComponent"] {
11393    constructor() {
11394        super(...arguments);
11395        this.slicer = new DayTableSlicer();
11396        this.tableRef = Object(_fullcalendar_core_preact_js__WEBPACK_IMPORTED_MODULE_1__["createRef"])();
11397    }
11398    render() {
11399        let { props, context } = this;
11400        return (Object(_fullcalendar_core_preact_js__WEBPACK_IMPORTED_MODULE_1__["createElement"])(Table, Object.assign({ ref: this.tableRef }, this.slicer.sliceProps(props, props.dateProfile, props.nextDayThreshold, context, props.dayTableModel), { dateProfile: props.dateProfile, cells: props.dayTableModel.cells, colGroupNode: props.colGroupNode, tableMinWidth: props.tableMinWidth, renderRowIntro: props.renderRowIntro, dayMaxEvents: props.dayMaxEvents, dayMaxEventRows: props.dayMaxEventRows, showWeekNumbers: props.showWeekNumbers, expandRows: props.expandRows, headerAlignElRef: props.headerAlignElRef, clientWidth: props.clientWidth, clientHeight: props.clientHeight, forPrint: props.forPrint })));
11401    }
11402}
11403
11404class DayTableView extends TableView {
11405    constructor() {
11406        super(...arguments);
11407        this.buildDayTableModel = Object(_fullcalendar_core_internal_js__WEBPACK_IMPORTED_MODULE_0__["memoize"])(buildDayTableModel);
11408        this.headerRef = Object(_fullcalendar_core_preact_js__WEBPACK_IMPORTED_MODULE_1__["createRef"])();
11409        this.tableRef = Object(_fullcalendar_core_preact_js__WEBPACK_IMPORTED_MODULE_1__["createRef"])();
11410        // can't override any lifecycle methods from parent
11411    }
11412    render() {
11413        let { options, dateProfileGenerator } = this.context;
11414        let { props } = this;
11415        let dayTableModel = this.buildDayTableModel(props.dateProfile, dateProfileGenerator);
11416        let headerContent = options.dayHeaders && (Object(_fullcalendar_core_preact_js__WEBPACK_IMPORTED_MODULE_1__["createElement"])(_fullcalendar_core_internal_js__WEBPACK_IMPORTED_MODULE_0__["DayHeader"], { ref: this.headerRef, dateProfile: props.dateProfile, dates: dayTableModel.headerDates, datesRepDistinctDays: dayTableModel.rowCnt === 1 }));
11417        let bodyContent = (contentArg) => (Object(_fullcalendar_core_preact_js__WEBPACK_IMPORTED_MODULE_1__["createElement"])(DayTable, { ref: this.tableRef, dateProfile: props.dateProfile, dayTableModel: dayTableModel, businessHours: props.businessHours, dateSelection: props.dateSelection, eventStore: props.eventStore, eventUiBases: props.eventUiBases, eventSelection: props.eventSelection, eventDrag: props.eventDrag, eventResize: props.eventResize, nextDayThreshold: options.nextDayThreshold, colGroupNode: contentArg.tableColGroupNode, tableMinWidth: contentArg.tableMinWidth, dayMaxEvents: options.dayMaxEvents, dayMaxEventRows: options.dayMaxEventRows, showWeekNumbers: options.weekNumbers, expandRows: !props.isHeightAuto, headerAlignElRef: this.headerElRef, clientWidth: contentArg.clientWidth, clientHeight: contentArg.clientHeight, forPrint: props.forPrint }));
11418        return options.dayMinWidth
11419            ? this.renderHScrollLayout(headerContent, bodyContent, dayTableModel.colCnt, options.dayMinWidth)
11420            : this.renderSimpleLayout(headerContent, bodyContent);
11421    }
11422}
11423function buildDayTableModel(dateProfile, dateProfileGenerator) {
11424    let daySeries = new _fullcalendar_core_internal_js__WEBPACK_IMPORTED_MODULE_0__["DaySeriesModel"](dateProfile.renderRange, dateProfileGenerator);
11425    return new _fullcalendar_core_internal_js__WEBPACK_IMPORTED_MODULE_0__["DayTableModel"](daySeries, /year|month|week/.test(dateProfile.currentRangeUnit));
11426}
11427
11428class TableDateProfileGenerator extends _fullcalendar_core_internal_js__WEBPACK_IMPORTED_MODULE_0__["DateProfileGenerator"] {
11429    // Computes the date range that will be rendered
11430    buildRenderRange(currentRange, currentRangeUnit, isRangeAllDay) {
11431        let renderRange = super.buildRenderRange(currentRange, currentRangeUnit, isRangeAllDay);
11432        let { props } = this;
11433        return buildDayTableRenderRange({
11434            currentRange: renderRange,
11435            snapToWeek: /^(year|month)$/.test(currentRangeUnit),
11436            fixedWeekCount: props.fixedWeekCount,
11437            dateEnv: props.dateEnv,
11438        });
11439    }
11440}
11441function buildDayTableRenderRange(props) {
11442    let { dateEnv, currentRange } = props;
11443    let { start, end } = currentRange;
11444    let endOfWeek;
11445    // year and month views should be aligned with weeks. this is already done for week
11446    if (props.snapToWeek) {
11447        start = dateEnv.startOfWeek(start);
11448        // make end-of-week if not already
11449        endOfWeek = dateEnv.startOfWeek(end);
11450        if (endOfWeek.valueOf() !== end.valueOf()) {
11451            end = Object(_fullcalendar_core_internal_js__WEBPACK_IMPORTED_MODULE_0__["addWeeks"])(endOfWeek, 1);
11452        }
11453    }
11454    // ensure 6 weeks
11455    if (props.fixedWeekCount) {
11456        // TODO: instead of these date-math gymnastics (for multimonth view),
11457        // compute dateprofiles of all months, then use start of first and end of last.
11458        let lastMonthRenderStart = dateEnv.startOfWeek(dateEnv.startOfMonth(Object(_fullcalendar_core_internal_js__WEBPACK_IMPORTED_MODULE_0__["addDays"])(currentRange.end, -1)));
11459        let rowCnt = Math.ceil(// could be partial weeks due to hiddenDays
11460        Object(_fullcalendar_core_internal_js__WEBPACK_IMPORTED_MODULE_0__["diffWeeks"])(lastMonthRenderStart, end));
11461        end = Object(_fullcalendar_core_internal_js__WEBPACK_IMPORTED_MODULE_0__["addWeeks"])(end, 6 - rowCnt);
11462    }
11463    return { start, end };
11464}
11465
11466var css_248z = ":root{--fc-daygrid-event-dot-width:8px}.fc-daygrid-day-events:after,.fc-daygrid-day-events:before,.fc-daygrid-day-frame:after,.fc-daygrid-day-frame:before,.fc-daygrid-event-harness:after,.fc-daygrid-event-harness:before{clear:both;content:\"\";display:table}.fc .fc-daygrid-body{position:relative;z-index:1}.fc .fc-daygrid-day.fc-day-today{background-color:var(--fc-today-bg-color)}.fc .fc-daygrid-day-frame{min-height:100%;position:relative}.fc .fc-daygrid-day-top{display:flex;flex-direction:row-reverse}.fc .fc-day-other .fc-daygrid-day-top{opacity:.3}.fc .fc-daygrid-day-number{padding:4px;position:relative;z-index:4}.fc .fc-daygrid-month-start{font-size:1.1em;font-weight:700}.fc .fc-daygrid-day-events{margin-top:1px}.fc .fc-daygrid-body-balanced .fc-daygrid-day-events{left:0;position:absolute;right:0}.fc .fc-daygrid-body-unbalanced .fc-daygrid-day-events{min-height:2em;position:relative}.fc .fc-daygrid-body-natural .fc-daygrid-day-events{margin-bottom:1em}.fc .fc-daygrid-event-harness{position:relative}.fc .fc-daygrid-event-harness-abs{left:0;position:absolute;right:0;top:0}.fc .fc-daygrid-bg-harness{bottom:0;position:absolute;top:0}.fc .fc-daygrid-day-bg .fc-non-business{z-index:1}.fc .fc-daygrid-day-bg .fc-bg-event{z-index:2}.fc .fc-daygrid-day-bg .fc-highlight{z-index:3}.fc .fc-daygrid-event{margin-top:1px;z-index:6}.fc .fc-daygrid-event.fc-event-mirror{z-index:7}.fc .fc-daygrid-day-bottom{font-size:.85em;margin:0 2px}.fc .fc-daygrid-day-bottom:after,.fc .fc-daygrid-day-bottom:before{clear:both;content:\"\";display:table}.fc .fc-daygrid-more-link{border-radius:3px;cursor:pointer;line-height:1;margin-top:1px;max-width:100%;overflow:hidden;padding:2px;position:relative;white-space:nowrap;z-index:4}.fc .fc-daygrid-more-link:hover{background-color:rgba(0,0,0,.1)}.fc .fc-daygrid-week-number{background-color:var(--fc-neutral-bg-color);color:var(--fc-neutral-text-color);min-width:1.5em;padding:2px;position:absolute;text-align:center;top:0;z-index:5}.fc .fc-more-popover .fc-popover-body{min-width:220px;padding:10px}.fc-direction-ltr .fc-daygrid-event.fc-event-start,.fc-direction-rtl .fc-daygrid-event.fc-event-end{margin-left:2px}.fc-direction-ltr .fc-daygrid-event.fc-event-end,.fc-direction-rtl .fc-daygrid-event.fc-event-start{margin-right:2px}.fc-direction-ltr .fc-daygrid-more-link{float:left}.fc-direction-ltr .fc-daygrid-week-number{border-radius:0 0 3px 0;left:0}.fc-direction-rtl .fc-daygrid-more-link{float:right}.fc-direction-rtl .fc-daygrid-week-number{border-radius:0 0 0 3px;right:0}.fc-liquid-hack .fc-daygrid-day-frame{position:static}.fc-daygrid-event{border-radius:3px;font-size:var(--fc-small-font-size);position:relative;white-space:nowrap}.fc-daygrid-block-event .fc-event-time{font-weight:700}.fc-daygrid-block-event .fc-event-time,.fc-daygrid-block-event .fc-event-title{padding:1px}.fc-daygrid-dot-event{align-items:center;display:flex;padding:2px 0}.fc-daygrid-dot-event .fc-event-title{flex-grow:1;flex-shrink:1;font-weight:700;min-width:0;overflow:hidden}.fc-daygrid-dot-event.fc-event-mirror,.fc-daygrid-dot-event:hover{background:rgba(0,0,0,.1)}.fc-daygrid-dot-event.fc-event-selected:before{bottom:-10px;top:-10px}.fc-daygrid-event-dot{border:calc(var(--fc-daygrid-event-dot-width)/2) solid var(--fc-event-border-color);border-radius:calc(var(--fc-daygrid-event-dot-width)/2);box-sizing:content-box;height:0;margin:0 4px;width:0}.fc-direction-ltr .fc-daygrid-event .fc-event-time{margin-right:3px}.fc-direction-rtl .fc-daygrid-event .fc-event-time{margin-left:3px}";
11467Object(_fullcalendar_core_internal_js__WEBPACK_IMPORTED_MODULE_0__["injectStyles"])(css_248z);
11468
11469
11470
11471
11472/***/ }),
11473
vendor: 97,123 bytes, lines 11474-13591
11474/***/ "./node_modules/@fullcalendar/interaction/index.js":
11475/*!*********************************************************!*\
11476  !*** ./node_modules/@fullcalendar/interaction/index.js ***!
11477  \*********************************************************/
11478/*! exports provided: Draggable, ThirdPartyDraggable, default */
11479/***/ (function(module, __webpack_exports__, __webpack_require__) {
11480
11481"use strict";
11482__webpack_require__.r(__webpack_exports__);
11483/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "Draggable", function() { return ExternalDraggable; });
11484/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "ThirdPartyDraggable", function() { return ThirdPartyDraggable; });
11485/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "default", function() { return index; });
11486/* harmony import */ var _fullcalendar_core_index_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @fullcalendar/core/index.js */ "./node_modules/@fullcalendar/core/index.js");
11487/* harmony import */ var _fullcalendar_core_internal_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @fullcalendar/core/internal.js */ "./node_modules/@fullcalendar/core/internal.js");
11488
11489
11490
11491_fullcalendar_core_internal_js__WEBPACK_IMPORTED_MODULE_1__["config"].touchMouseIgnoreWait = 500;
11492let ignoreMouseDepth = 0;
11493let listenerCnt = 0;
11494let isWindowTouchMoveCancelled = false;
11495/*
11496Uses a "pointer" abstraction, which monitors UI events for both mouse and touch.
11497Tracks when the pointer "drags" on a certain element, meaning down+move+up.
11498
11499Also, tracks if there was touch-scrolling.
11500Also, can prevent touch-scrolling from happening.
11501Also, can fire pointermove events when scrolling happens underneath, even when no real pointer movement.
11502
11503emits:
11504- pointerdown
11505- pointermove
11506- pointerup
11507*/
11508class PointerDragging {
11509    constructor(containerEl) {
11510        this.subjectEl = null;
11511        // options that can be directly assigned by caller
11512        this.selector = ''; // will cause subjectEl in all emitted events to be this element
11513        this.handleSelector = '';
11514        this.shouldIgnoreMove = false;
11515        this.shouldWatchScroll = true; // for simulating pointermove on scroll
11516        // internal states
11517        this.isDragging = false;
11518        this.isTouchDragging = false;
11519        this.wasTouchScroll = false;
11520        // Mouse
11521        // ----------------------------------------------------------------------------------------------------
11522        this.handleMouseDown = (ev) => {
11523            if (!this.shouldIgnoreMouse() &&
11524                isPrimaryMouseButton(ev) &&
11525                this.tryStart(ev)) {
11526                let pev = this.createEventFromMouse(ev, true);
11527                this.emitter.trigger('pointerdown', pev);
11528                this.initScrollWatch(pev);
11529                if (!this.shouldIgnoreMove) {
11530                    document.addEventListener('mousemove', this.handleMouseMove);
11531                }
11532                document.addEventListener('mouseup', this.handleMouseUp);
11533            }
11534        };
11535        this.handleMouseMove = (ev) => {
11536            let pev = this.createEventFromMouse(ev);
11537            this.recordCoords(pev);
11538            this.emitter.trigger('pointermove', pev);
11539        };
11540        this.handleMouseUp = (ev) => {
11541            document.removeEventListener('mousemove', this.handleMouseMove);
11542            document.removeEventListener('mouseup', this.handleMouseUp);
11543            this.emitter.trigger('pointerup', this.createEventFromMouse(ev));
11544            this.cleanup(); // call last so that pointerup has access to props
11545        };
11546        // Touch
11547        // ----------------------------------------------------------------------------------------------------
11548        this.handleTouchStart = (ev) => {
11549            if (this.tryStart(ev)) {
11550                this.isTouchDragging = true;
11551                let pev = this.createEventFromTouch(ev, true);
11552                this.emitter.trigger('pointerdown', pev);
11553                this.initScrollWatch(pev);
11554                // unlike mouse, need to attach to target, not document
11555                // https://stackoverflow.com/a/45760014
11556                let targetEl = ev.target;
11557                if (!this.shouldIgnoreMove) {
11558                    targetEl.addEventListener('touchmove', this.handleTouchMove);
11559                }
11560                targetEl.addEventListener('touchend', this.handleTouchEnd);
11561                targetEl.addEventListener('touchcancel', this.handleTouchEnd); // treat it as a touch end
11562                // attach a handler to get called when ANY scroll action happens on the page.
11563                // this was impossible to do with normal on/off because 'scroll' doesn't bubble.
11564                // http://stackoverflow.com/a/32954565/96342
11565                window.addEventListener('scroll', this.handleTouchScroll, true);
11566            }
11567        };
11568        this.handleTouchMove = (ev) => {
11569            let pev = this.createEventFromTouch(ev);
11570            this.recordCoords(pev);
11571            this.emitter.trigger('pointermove', pev);
11572        };
11573        this.handleTouchEnd = (ev) => {
11574            if (this.isDragging) { // done to guard against touchend followed by touchcancel
11575                let targetEl = ev.target;
11576                targetEl.removeEventListener('touchmove', this.handleTouchMove);
11577                targetEl.removeEventListener('touchend', this.handleTouchEnd);
11578                targetEl.removeEventListener('touchcancel', this.handleTouchEnd);
11579                window.removeEventListener('scroll', this.handleTouchScroll, true); // useCaptured=true
11580                this.emitter.trigger('pointerup', this.createEventFromTouch(ev));
11581                this.cleanup(); // call last so that pointerup has access to props
11582                this.isTouchDragging = false;
11583                startIgnoringMouse();
11584            }
11585        };
11586        this.handleTouchScroll = () => {
11587            this.wasTouchScroll = true;
11588        };
11589        this.handleScroll = (ev) => {
11590            if (!this.shouldIgnoreMove) {
11591                let pageX = (window.pageXOffset - this.prevScrollX) + this.prevPageX;
11592                let pageY = (window.pageYOffset - this.prevScrollY) + this.prevPageY;
11593                this.emitter.trigger('pointermove', {
11594                    origEvent: ev,
11595                    isTouch: this.isTouchDragging,
11596                    subjectEl: this.subjectEl,
11597                    pageX,
11598                    pageY,
11599                    deltaX: pageX - this.origPageX,
11600                    deltaY: pageY - this.origPageY,
11601                });
11602            }
11603        };
11604        this.containerEl = containerEl;
11605        this.emitter = new _fullcalendar_core_internal_js__WEBPACK_IMPORTED_MODULE_1__["Emitter"]();
11606        containerEl.addEventListener('mousedown', this.handleMouseDown);
11607        containerEl.addEventListener('touchstart', this.handleTouchStart, { passive: true });
11608        listenerCreated();
11609    }
11610    destroy() {
11611        this.containerEl.removeEventListener('mousedown', this.handleMouseDown);
11612        this.containerEl.removeEventListener('touchstart', this.handleTouchStart, { passive: true });
11613        listenerDestroyed();
11614    }
11615    tryStart(ev) {
11616        let subjectEl = this.querySubjectEl(ev);
11617        let downEl = ev.target;
11618        if (subjectEl &&
11619            (!this.handleSelector || Object(_fullcalendar_core_internal_js__WEBPACK_IMPORTED_MODULE_1__["elementClosest"])(downEl, this.handleSelector))) {
11620            this.subjectEl = subjectEl;
11621            this.isDragging = true; // do this first so cancelTouchScroll will work
11622            this.wasTouchScroll = false;
11623            return true;
11624        }
11625        return false;
11626    }
11627    cleanup() {
11628        isWindowTouchMoveCancelled = false;
11629        this.isDragging = false;
11630        this.subjectEl = null;
11631        // keep wasTouchScroll around for later access
11632        this.destroyScrollWatch();
11633    }
11634    querySubjectEl(ev) {
11635        if (this.selector) {
11636            return Object(_fullcalendar_core_internal_js__WEBPACK_IMPORTED_MODULE_1__["elementClosest"])(ev.target, this.selector);
11637        }
11638        return this.containerEl;
11639    }
11640    shouldIgnoreMouse() {
11641        return ignoreMouseDepth || this.isTouchDragging;
11642    }
11643    // can be called by user of this class, to cancel touch-based scrolling for the current drag
11644    cancelTouchScroll() {
11645        if (this.isDragging) {
11646            isWindowTouchMoveCancelled = true;
11647        }
11648    }
11649    // Scrolling that simulates pointermoves
11650    // ----------------------------------------------------------------------------------------------------
11651    initScrollWatch(ev) {
11652        if (this.shouldWatchScroll) {
11653            this.recordCoords(ev);
11654            window.addEventListener('scroll', this.handleScroll, true); // useCapture=true
11655        }
11656    }
11657    recordCoords(ev) {
11658        if (this.shouldWatchScroll) {
11659            this.prevPageX = ev.pageX;
11660            this.prevPageY = ev.pageY;
11661            this.prevScrollX = window.pageXOffset;
11662            this.prevScrollY = window.pageYOffset;
11663        }
11664    }
11665    destroyScrollWatch() {
11666        if (this.shouldWatchScroll) {
11667            window.removeEventListener('scroll', this.handleScroll, true); // useCaptured=true
11668        }
11669    }
11670    // Event Normalization
11671    // ----------------------------------------------------------------------------------------------------
11672    createEventFromMouse(ev, isFirst) {
11673        let deltaX = 0;
11674        let deltaY = 0;
11675        // TODO: repeat code
11676        if (isFirst) {
11677            this.origPageX = ev.pageX;
11678            this.origPageY = ev.pageY;
11679        }
11680        else {
11681            deltaX = ev.pageX - this.origPageX;
11682            deltaY = ev.pageY - this.origPageY;
11683        }
11684        return {
11685            origEvent: ev,
11686            isTouch: false,
11687            subjectEl: this.subjectEl,
11688            pageX: ev.pageX,
11689            pageY: ev.pageY,
11690            deltaX,
11691            deltaY,
11692        };
11693    }
11694    createEventFromTouch(ev, isFirst) {
11695        let touches = ev.touches;
11696        let pageX;
11697        let pageY;
11698        let deltaX = 0;
11699        let deltaY = 0;
11700        // if touch coords available, prefer,
11701        // because FF would give bad ev.pageX ev.pageY
11702        if (touches && touches.length) {
11703            pageX = touches[0].pageX;
11704            pageY = touches[0].pageY;
11705        }
11706        else {
11707            pageX = ev.pageX;
11708            pageY = ev.pageY;
11709        }
11710        // TODO: repeat code
11711        if (isFirst) {
11712            this.origPageX = pageX;
11713            this.origPageY = pageY;
11714        }
11715        else {
11716            deltaX = pageX - this.origPageX;
11717            deltaY = pageY - this.origPageY;
11718        }
11719        return {
11720            origEvent: ev,
11721            isTouch: true,
11722            subjectEl: this.subjectEl,
11723            pageX,
11724            pageY,
11725            deltaX,
11726            deltaY,
11727        };
11728    }
11729}
11730// Returns a boolean whether this was a left mouse click and no ctrl key (which means right click on Mac)
11731function isPrimaryMouseButton(ev) {
11732    return ev.button === 0 && !ev.ctrlKey;
11733}
11734// Ignoring fake mouse events generated by touch
11735// ----------------------------------------------------------------------------------------------------
11736function startIgnoringMouse() {
11737    ignoreMouseDepth += 1;
11738    setTimeout(() => {
11739        ignoreMouseDepth -= 1;
11740    }, _fullcalendar_core_internal_js__WEBPACK_IMPORTED_MODULE_1__["config"].touchMouseIgnoreWait);
11741}
11742// We want to attach touchmove as early as possible for Safari
11743// ----------------------------------------------------------------------------------------------------
11744function listenerCreated() {
11745    listenerCnt += 1;
11746    if (listenerCnt === 1) {
11747        window.addEventListener('touchmove', onWindowTouchMove, { passive: false });
11748    }
11749}
11750function listenerDestroyed() {
11751    listenerCnt -= 1;
11752    if (!listenerCnt) {
11753        window.removeEventListener('touchmove', onWindowTouchMove, { passive: false });
11754    }
11755}
11756function onWindowTouchMove(ev) {
11757    if (isWindowTouchMoveCancelled) {
11758        ev.preventDefault();
11759    }
11760}
11761
11762/*
11763An effect in which an element follows the movement of a pointer across the screen.
11764The moving element is a clone of some other element.
11765Must call start + handleMove + stop.
11766*/
11767class ElementMirror {
11768    constructor() {
11769        this.isVisible = false; // must be explicitly enabled
11770        this.sourceEl = null;
11771        this.mirrorEl = null;
11772        this.sourceElRect = null; // screen coords relative to viewport
11773        // options that can be set directly by caller
11774        this.parentNode = document.body; // HIGHLY SUGGESTED to set this to sidestep ShadowDOM issues
11775        this.zIndex = 9999;
11776        this.revertDuration = 0;
11777    }
11778    start(sourceEl, pageX, pageY) {
11779        this.sourceEl = sourceEl;
11780        this.sourceElRect = this.sourceEl.getBoundingClientRect();
11781        this.origScreenX = pageX - window.pageXOffset;
11782        this.origScreenY = pageY - window.pageYOffset;
11783        this.deltaX = 0;
11784        this.deltaY = 0;
11785        this.updateElPosition();
11786    }
11787    handleMove(pageX, pageY) {
11788        this.deltaX = (pageX - window.pageXOffset) - this.origScreenX;
11789        this.deltaY = (pageY - window.pageYOffset) - this.origScreenY;
11790        this.updateElPosition();
11791    }
11792    // can be called before start
11793    setIsVisible(bool) {
11794        if (bool) {
11795            if (!this.isVisible) {
11796                if (this.mirrorEl) {
11797                    this.mirrorEl.style.display = '';
11798                }
11799                this.isVisible = bool; // needs to happen before updateElPosition
11800                this.updateElPosition(); // because was not updating the position while invisible
11801            }
11802        }
11803        else if (this.isVisible) {
11804            if (this.mirrorEl) {
11805                this.mirrorEl.style.display = 'none';
11806            }
11807            this.isVisible = bool;
11808        }
11809    }
11810    // always async
11811    stop(needsRevertAnimation, callback) {
11812        let done = () => {
11813            this.cleanup();
11814            callback();
11815        };
11816        if (needsRevertAnimation &&
11817            this.mirrorEl &&
11818            this.isVisible &&
11819            this.revertDuration && // if 0, transition won't work
11820            (this.deltaX || this.deltaY) // if same coords, transition won't work
11821        ) {
11822            this.doRevertAnimation(done, this.revertDuration);
11823        }
11824        else {
11825            setTimeout(done, 0);
11826        }
11827    }
11828    doRevertAnimation(callback, revertDuration) {
11829        let mirrorEl = this.mirrorEl;
11830        let finalSourceElRect = this.sourceEl.getBoundingClientRect(); // because autoscrolling might have happened
11831        mirrorEl.style.transition =
11832            'top ' + revertDuration + 'ms,' +
11833                'left ' + revertDuration + 'ms';
11834        Object(_fullcalendar_core_internal_js__WEBPACK_IMPORTED_MODULE_1__["applyStyle"])(mirrorEl, {
11835            left: finalSourceElRect.left,
11836            top: finalSourceElRect.top,
11837        });
11838        Object(_fullcalendar_core_internal_js__WEBPACK_IMPORTED_MODULE_1__["whenTransitionDone"])(mirrorEl, () => {
11839            mirrorEl.style.transition = '';
11840            callback();
11841        });
11842    }
11843    cleanup() {
11844        if (this.mirrorEl) {
11845            Object(_fullcalendar_core_internal_js__WEBPACK_IMPORTED_MODULE_1__["removeElement"])(this.mirrorEl);
11846            this.mirrorEl = null;
11847        }
11848        this.sourceEl = null;
11849    }
11850    updateElPosition() {
11851        if (this.sourceEl && this.isVisible) {
11852            Object(_fullcalendar_core_internal_js__WEBPACK_IMPORTED_MODULE_1__["applyStyle"])(this.getMirrorEl(), {
11853                left: this.sourceElRect.left + this.deltaX,
11854                top: this.sourceElRect.top + this.deltaY,
11855            });
11856        }
11857    }
11858    getMirrorEl() {
11859        let sourceElRect = this.sourceElRect;
11860        let mirrorEl = this.mirrorEl;
11861        if (!mirrorEl) {
11862            mirrorEl = this.mirrorEl = this.sourceEl.cloneNode(true); // cloneChildren=true
11863            // we don't want long taps or any mouse interaction causing selection/menus.
11864            // would use preventSelection(), but that prevents selectstart, causing problems.
11865            mirrorEl.style.userSelect = 'none';
11866            mirrorEl.style.webkitUserSelect = 'none';
11867            mirrorEl.classList.add('fc-event-dragging');
11868            Object(_fullcalendar_core_internal_js__WEBPACK_IMPORTED_MODULE_1__["applyStyle"])(mirrorEl, {
11869                position: 'fixed',
11870                zIndex: this.zIndex,
11871                visibility: '',
11872                boxSizing: 'border-box',
11873                width: sourceElRect.right - sourceElRect.left,
11874                height: sourceElRect.bottom - sourceElRect.top,
11875                right: 'auto',
11876                bottom: 'auto',
11877                margin: 0,
11878            });
11879            this.parentNode.appendChild(mirrorEl);
11880        }
11881        return mirrorEl;
11882    }
11883}
11884
11885/*
11886Is a cache for a given element's scroll information (all the info that ScrollController stores)
11887in addition the "client rectangle" of the element.. the area within the scrollbars.
11888
11889The cache can be in one of two modes:
11890- doesListening:false - ignores when the container is scrolled by someone else
11891- doesListening:true - watch for scrolling and update the cache
11892*/
11893class ScrollGeomCache extends _fullcalendar_core_internal_js__WEBPACK_IMPORTED_MODULE_1__["ScrollController"] {
11894    constructor(scrollController, doesListening) {
11895        super();
11896        this.handleScroll = () => {
11897            this.scrollTop = this.scrollController.getScrollTop();
11898            this.scrollLeft = this.scrollController.getScrollLeft();
11899            this.handleScrollChange();
11900        };
11901        this.scrollController = scrollController;
11902        this.doesListening = doesListening;
11903        this.scrollTop = this.origScrollTop = scrollController.getScrollTop();
11904        this.scrollLeft = this.origScrollLeft = scrollController.getScrollLeft();
11905        this.scrollWidth = scrollController.getScrollWidth();
11906        this.scrollHeight = scrollController.getScrollHeight();
11907        this.clientWidth = scrollController.getClientWidth();
11908        this.clientHeight = scrollController.getClientHeight();
11909        this.clientRect = this.computeClientRect(); // do last in case it needs cached values
11910        if (this.doesListening) {
11911            this.getEventTarget().addEventListener('scroll', this.handleScroll);
11912        }
11913    }
11914    destroy() {
11915        if (this.doesListening) {
11916            this.getEventTarget().removeEventListener('scroll', this.handleScroll);
11917        }
11918    }
11919    getScrollTop() {
11920        return this.scrollTop;
11921    }
11922    getScrollLeft() {
11923        return this.scrollLeft;
11924    }
11925    setScrollTop(top) {
11926        this.scrollController.setScrollTop(top);
11927        if (!this.doesListening) {
11928            // we are not relying on the element to normalize out-of-bounds scroll values
11929            // so we need to sanitize ourselves
11930            this.scrollTop = Math.max(Math.min(top, this.getMaxScrollTop()), 0);
11931            this.handleScrollChange();
11932        }
11933    }
11934    setScrollLeft(top) {
11935        this.scrollController.setScrollLeft(top);
11936        if (!this.doesListening) {
11937            // we are not relying on the element to normalize out-of-bounds scroll values
11938            // so we need to sanitize ourselves
11939            this.scrollLeft = Math.max(Math.min(top, this.getMaxScrollLeft()), 0);
11940            this.handleScrollChange();
11941        }
11942    }
11943    getClientWidth() {
11944        return this.clientWidth;
11945    }
11946    getClientHeight() {
11947        return this.clientHeight;
11948    }
11949    getScrollWidth() {
11950        return this.scrollWidth;
11951    }
11952    getScrollHeight() {
11953        return this.scrollHeight;
11954    }
11955    handleScrollChange() {
11956    }
11957}
11958
11959class ElementScrollGeomCache extends ScrollGeomCache {
11960    constructor(el, doesListening) {
11961        super(new _fullcalendar_core_internal_js__WEBPACK_IMPORTED_MODULE_1__["ElementScrollController"](el), doesListening);
11962    }
11963    getEventTarget() {
11964        return this.scrollController.el;
11965    }
11966    computeClientRect() {
11967        return Object(_fullcalendar_core_internal_js__WEBPACK_IMPORTED_MODULE_1__["computeInnerRect"])(this.scrollController.el);
11968    }
11969}
11970
11971class WindowScrollGeomCache extends ScrollGeomCache {
11972    constructor(doesListening) {
11973        super(new _fullcalendar_core_internal_js__WEBPACK_IMPORTED_MODULE_1__["WindowScrollController"](), doesListening);
11974    }
11975    getEventTarget() {
11976        return window;
11977    }
11978    computeClientRect() {
11979        return {
11980            left: this.scrollLeft,
11981            right: this.scrollLeft + this.clientWidth,
11982            top: this.scrollTop,
11983            bottom: this.scrollTop + this.clientHeight,
11984        };
11985    }
11986    // the window is the only scroll object that changes it's rectangle relative
11987    // to the document's topleft as it scrolls
11988    handleScrollChange() {
11989        this.clientRect = this.computeClientRect();
11990    }
11991}
11992
11993// If available we are using native "performance" API instead of "Date"
11994// Read more about it on MDN:
11995// https://developer.mozilla.org/en-US/docs/Web/API/Performance
11996const getTime = typeof performance === 'function' ? performance.now : Date.now;
11997/*
11998For a pointer interaction, automatically scrolls certain scroll containers when the pointer
11999approaches the edge.
12000
12001The caller must call start + handleMove + stop.
12002*/
12003class AutoScroller {
12004    constructor() {
12005        // options that can be set by caller
12006        this.isEnabled = true;
12007        this.scrollQuery = [window, '.fc-scroller'];
12008        this.edgeThreshold = 50; // pixels
12009        this.maxVelocity = 300; // pixels per second
12010        // internal state
12011        this.pointerScreenX = null;
12012        this.pointerScreenY = null;
12013        this.isAnimating = false;
12014        this.scrollCaches = null;
12015        // protect against the initial pointerdown being too close to an edge and starting the scroll
12016        this.everMovedUp = false;
12017        this.everMovedDown = false;
12018        this.everMovedLeft = false;
12019        this.everMovedRight = false;
12020        this.animate = () => {
12021            if (this.isAnimating) { // wasn't cancelled between animation calls
12022                let edge = this.computeBestEdge(this.pointerScreenX + window.pageXOffset, this.pointerScreenY + window.pageYOffset);
12023                if (edge) {
12024                    let now = getTime();
12025                    this.handleSide(edge, (now - this.msSinceRequest) / 1000);
12026                    this.requestAnimation(now);
12027                }
12028                else {
12029                    this.isAnimating = false; // will stop animation
12030                }
12031            }
12032        };
12033    }
12034    start(pageX, pageY, scrollStartEl) {
12035        if (this.isEnabled) {
12036            this.scrollCaches = this.buildCaches(scrollStartEl);
12037            this.pointerScreenX = null;
12038            this.pointerScreenY = null;
12039            this.everMovedUp = false;
12040            this.everMovedDown = false;
12041            this.everMovedLeft = false;
12042            this.everMovedRight = false;
12043            this.handleMove(pageX, pageY);
12044        }
12045    }
12046    handleMove(pageX, pageY) {
12047        if (this.isEnabled) {
12048            let pointerScreenX = pageX - window.pageXOffset;
12049            let pointerScreenY = pageY - window.pageYOffset;
12050            let yDelta = this.pointerScreenY === null ? 0 : pointerScreenY - this.pointerScreenY;
12051            let xDelta = this.pointerScreenX === null ? 0 : pointerScreenX - this.pointerScreenX;
12052            if (yDelta < 0) {
12053                this.everMovedUp = true;
12054            }
12055            else if (yDelta > 0) {
12056                this.everMovedDown = true;
12057            }
12058            if (xDelta < 0) {
12059                this.everMovedLeft = true;
12060            }
12061            else if (xDelta > 0) {
12062                this.everMovedRight = true;
12063            }
12064            this.pointerScreenX = pointerScreenX;
12065            this.pointerScreenY = pointerScreenY;
12066            if (!this.isAnimating) {
12067                this.isAnimating = true;
12068                this.requestAnimation(getTime());
12069            }
12070        }
12071    }
12072    stop() {
12073        if (this.isEnabled) {
12074            this.isAnimating = false; // will stop animation
12075            for (let scrollCache of this.scrollCaches) {
12076                scrollCache.destroy();
12077            }
12078            this.scrollCaches = null;
12079        }
12080    }
12081    requestAnimation(now) {
12082        this.msSinceRequest = now;
12083        requestAnimationFrame(this.animate);
12084    }
12085    handleSide(edge, seconds) {
12086        let { scrollCache } = edge;
12087        let { edgeThreshold } = this;
12088        let invDistance = edgeThreshold - edge.distance;
12089        let velocity = // the closer to the edge, the faster we scroll
12090         ((invDistance * invDistance) / (edgeThreshold * edgeThreshold)) * // quadratic
12091            this.maxVelocity * seconds;
12092        let sign = 1;
12093        switch (edge.name) {
12094            case 'left':
12095                sign = -1;
12096            // falls through
12097            case 'right':
12098                scrollCache.setScrollLeft(scrollCache.getScrollLeft() + velocity * sign);
12099                break;
12100            case 'top':
12101                sign = -1;
12102            // falls through
12103            case 'bottom':
12104                scrollCache.setScrollTop(scrollCache.getScrollTop() + velocity * sign);
12105                break;
12106        }
12107    }
12108    // left/top are relative to document topleft
12109    computeBestEdge(left, top) {
12110        let { edgeThreshold } = this;
12111        let bestSide = null;
12112        let scrollCaches = this.scrollCaches || [];
12113        for (let scrollCache of scrollCaches) {
12114            let rect = scrollCache.clientRect;
12115            let leftDist = left - rect.left;
12116            let rightDist = rect.right - left;
12117            let topDist = top - rect.top;
12118            let bottomDist = rect.bottom - top;
12119            // completely within the rect?
12120            if (leftDist >= 0 && rightDist >= 0 && topDist >= 0 && bottomDist >= 0) {
12121                if (topDist <= edgeThreshold && this.everMovedUp && scrollCache.canScrollUp() &&
12122                    (!bestSide || bestSide.distance > topDist)) {
12123                    bestSide = { scrollCache, name: 'top', distance: topDist };
12124                }
12125                if (bottomDist <= edgeThreshold && this.everMovedDown && scrollCache.canScrollDown() &&
12126                    (!bestSide || bestSide.distance > bottomDist)) {
12127                    bestSide = { scrollCache, name: 'bottom', distance: bottomDist };
12128                }
12129                if (leftDist <= edgeThreshold && this.everMovedLeft && scrollCache.canScrollLeft() &&
12130                    (!bestSide || bestSide.distance > leftDist)) {
12131                    bestSide = { scrollCache, name: 'left', distance: leftDist };
12132                }
12133                if (rightDist <= edgeThreshold && this.everMovedRight && scrollCache.canScrollRight() &&
12134                    (!bestSide || bestSide.distance > rightDist)) {
12135                    bestSide = { scrollCache, name: 'right', distance: rightDist };
12136                }
12137            }
12138        }
12139        return bestSide;
12140    }
12141    buildCaches(scrollStartEl) {
12142        return this.queryScrollEls(scrollStartEl).map((el) => {
12143            if (el === window) {
12144                return new WindowScrollGeomCache(false); // false = don't listen to user-generated scrolls
12145            }
12146            return new ElementScrollGeomCache(el, false); // false = don't listen to user-generated scrolls
12147        });
12148    }
12149    queryScrollEls(scrollStartEl) {
12150        let els = [];
12151        for (let query of this.scrollQuery) {
12152            if (typeof query === 'object') {
12153                els.push(query);
12154            }
12155            else {
12156                els.push(...Array.prototype.slice.call(scrollStartEl.getRootNode().querySelectorAll(query)));
12157            }
12158        }
12159        return els;
12160    }
12161}
12162
12163/*
12164Monitors dragging on an element. Has a number of high-level features:
12165- minimum distance required before dragging
12166- minimum wait time ("delay") before dragging
12167- a mirror element that follows the pointer
12168*/
12169class FeaturefulElementDragging extends _fullcalendar_core_internal_js__WEBPACK_IMPORTED_MODULE_1__["ElementDragging"] {
12170    constructor(containerEl, selector) {
12171        super(containerEl);
12172        this.containerEl = containerEl;
12173        // options that can be directly set by caller
12174        // the caller can also set the PointerDragging's options as well
12175        this.delay = null;
12176        this.minDistance = 0;
12177        this.touchScrollAllowed = true; // prevents drag from starting and blocks scrolling during drag
12178        this.mirrorNeedsRevert = false;
12179        this.isInteracting = false; // is the user validly moving the pointer? lasts until pointerup
12180        this.isDragging = false; // is it INTENTFULLY dragging? lasts until after revert animation
12181        this.isDelayEnded = false;
12182        this.isDistanceSurpassed = false;
12183        this.delayTimeoutId = null;
12184        this.onPointerDown = (ev) => {
12185            if (!this.isDragging) { // so new drag doesn't happen while revert animation is going
12186                this.isInteracting = true;
12187                this.isDelayEnded = false;
12188                this.isDistanceSurpassed = false;
12189                Object(_fullcalendar_core_internal_js__WEBPACK_IMPORTED_MODULE_1__["preventSelection"])(document.body);
12190                Object(_fullcalendar_core_internal_js__WEBPACK_IMPORTED_MODULE_1__["preventContextMenu"])(document.body);
12191                // prevent links from being visited if there's an eventual drag.
12192                // also prevents selection in older browsers (maybe?).
12193                // not necessary for touch, besides, browser would complain about passiveness.
12194                if (!ev.isTouch) {
12195                    ev.origEvent.preventDefault();
12196                }
12197                this.emitter.trigger('pointerdown', ev);
12198                if (this.isInteracting && // not destroyed via pointerdown handler
12199                    !this.pointer.shouldIgnoreMove) {
12200                    // actions related to initiating dragstart+dragmove+dragend...
12201                    this.mirror.setIsVisible(false); // reset. caller must set-visible
12202                    this.mirror.start(ev.subjectEl, ev.pageX, ev.pageY); // must happen on first pointer down
12203                    this.startDelay(ev);
12204                    if (!this.minDistance) {
12205                        this.handleDistanceSurpassed(ev);
12206                    }
12207                }
12208            }
12209        };
12210        this.onPointerMove = (ev) => {
12211            if (this.isInteracting) {
12212                this.emitter.trigger('pointermove', ev);
12213                if (!this.isDistanceSurpassed) {
12214                    let minDistance = this.minDistance;
12215                    let distanceSq; // current distance from the origin, squared
12216                    let { deltaX, deltaY } = ev;
12217                    distanceSq = deltaX * deltaX + deltaY * deltaY;
12218                    if (distanceSq >= minDistance * minDistance) { // use pythagorean theorem
12219                        this.handleDistanceSurpassed(ev);
12220                    }
12221                }
12222                if (this.isDragging) {
12223                    // a real pointer move? (not one simulated by scrolling)
12224                    if (ev.origEvent.type !== 'scroll') {
12225                        this.mirror.handleMove(ev.pageX, ev.pageY);
12226                        this.autoScroller.handleMove(ev.pageX, ev.pageY);
12227                    }
12228                    this.emitter.trigger('dragmove', ev);
12229                }
12230            }
12231        };
12232        this.onPointerUp = (ev) => {
12233            if (this.isInteracting) {
12234                this.isInteracting = false;
12235                Object(_fullcalendar_core_internal_js__WEBPACK_IMPORTED_MODULE_1__["allowSelection"])(document.body);
12236                Object(_fullcalendar_core_internal_js__WEBPACK_IMPORTED_MODULE_1__["allowContextMenu"])(document.body);
12237                this.emitter.trigger('pointerup', ev); // can potentially set mirrorNeedsRevert
12238                if (this.isDragging) {
12239                    this.autoScroller.stop();
12240                    this.tryStopDrag(ev); // which will stop the mirror
12241                }
12242                if (this.delayTimeoutId) {
12243                    clearTimeout(this.delayTimeoutId);
12244                    this.delayTimeoutId = null;
12245                }
12246            }
12247        };
12248        let pointer = this.pointer = new PointerDragging(containerEl);
12249        pointer.emitter.on('pointerdown', this.onPointerDown);
12250        pointer.emitter.on('pointermove', this.onPointerMove);
12251        pointer.emitter.on('pointerup', this.onPointerUp);
12252        if (selector) {
12253            pointer.selector = selector;
12254        }
12255        this.mirror = new ElementMirror();
12256        this.autoScroller = new AutoScroller();
12257    }
12258    destroy() {
12259        this.pointer.destroy();
12260        // HACK: simulate a pointer-up to end the current drag
12261        // TODO: fire 'dragend' directly and stop interaction. discourage use of pointerup event (b/c might not fire)
12262        this.onPointerUp({});
12263    }
12264    startDelay(ev) {
12265        if (typeof this.delay === 'number') {
12266            this.delayTimeoutId = setTimeout(() => {
12267                this.delayTimeoutId = null;
12268                this.handleDelayEnd(ev);
12269            }, this.delay); // not assignable to number!
12270        }
12271        else {
12272            this.handleDelayEnd(ev);
12273        }
12274    }
12275    handleDelayEnd(ev) {
12276        this.isDelayEnded = true;
12277        this.tryStartDrag(ev);
12278    }
12279    handleDistanceSurpassed(ev) {
12280        this.isDistanceSurpassed = true;
12281        this.tryStartDrag(ev);
12282    }
12283    tryStartDrag(ev) {
12284        if (this.isDelayEnded && this.isDistanceSurpassed) {
12285            if (!this.pointer.wasTouchScroll || this.touchScrollAllowed) {
12286                this.isDragging = true;
12287                this.mirrorNeedsRevert = false;
12288                this.autoScroller.start(ev.pageX, ev.pageY, this.containerEl);
12289                this.emitter.trigger('dragstart', ev);
12290                if (this.touchScrollAllowed === false) {
12291                    this.pointer.cancelTouchScroll();
12292                }
12293            }
12294        }
12295    }
12296    tryStopDrag(ev) {
12297        // .stop() is ALWAYS asynchronous, which we NEED because we want all pointerup events
12298        // that come from the document to fire beforehand. much more convenient this way.
12299        this.mirror.stop(this.mirrorNeedsRevert, this.stopDrag.bind(this, ev));
12300    }
12301    stopDrag(ev) {
12302        this.isDragging = false;
12303        this.emitter.trigger('dragend', ev);
12304    }
12305    // fill in the implementations...
12306    setIgnoreMove(bool) {
12307        this.pointer.shouldIgnoreMove = bool;
12308    }
12309    setMirrorIsVisible(bool) {
12310        this.mirror.setIsVisible(bool);
12311    }
12312    setMirrorNeedsRevert(bool) {
12313        this.mirrorNeedsRevert = bool;
12314    }
12315    setAutoScrollEnabled(bool) {
12316        this.autoScroller.isEnabled = bool;
12317    }
12318}
12319
12320/*
12321When this class is instantiated, it records the offset of an element (relative to the document topleft),
12322and continues to monitor scrolling, updating the cached coordinates if it needs to.
12323Does not access the DOM after instantiation, so highly performant.
12324
12325Also keeps track of all scrolling/overflow:hidden containers that are parents of the given element
12326and an determine if a given point is inside the combined clipping rectangle.
12327*/
12328class OffsetTracker {
12329    constructor(el) {
12330        this.origRect = Object(_fullcalendar_core_internal_js__WEBPACK_IMPORTED_MODULE_1__["computeRect"])(el);
12331        // will work fine for divs that have overflow:hidden
12332        this.scrollCaches = Object(_fullcalendar_core_internal_js__WEBPACK_IMPORTED_MODULE_1__["getClippingParents"])(el).map((scrollEl) => new ElementScrollGeomCache(scrollEl, true));
12333    }
12334    destroy() {
12335        for (let scrollCache of this.scrollCaches) {
12336            scrollCache.destroy();
12337        }
12338    }
12339    computeLeft() {
12340        let left = this.origRect.left;
12341        for (let scrollCache of this.scrollCaches) {
12342            left += scrollCache.origScrollLeft - scrollCache.getScrollLeft();
12343        }
12344        return left;
12345    }
12346    computeTop() {
12347        let top = this.origRect.top;
12348        for (let scrollCache of this.scrollCaches) {
12349            top += scrollCache.origScrollTop - scrollCache.getScrollTop();
12350        }
12351        return top;
12352    }
12353    isWithinClipping(pageX, pageY) {
12354        let point = { left: pageX, top: pageY };
12355        for (let scrollCache of this.scrollCaches) {
12356            if (!isIgnoredClipping(scrollCache.getEventTarget()) &&
12357                !Object(_fullcalendar_core_internal_js__WEBPACK_IMPORTED_MODULE_1__["pointInsideRect"])(point, scrollCache.clientRect)) {
12358                return false;
12359            }
12360        }
12361        return true;
12362    }
12363}
12364// certain clipping containers should never constrain interactions, like <html> and <body>
12365// https://github.com/fullcalendar/fullcalendar/issues/3615
12366function isIgnoredClipping(node) {
12367    let tagName = node.tagName;
12368    return tagName === 'HTML' || tagName === 'BODY';
12369}
12370
12371/*
12372Tracks movement over multiple droppable areas (aka "hits")
12373that exist in one or more DateComponents.
12374Relies on an existing draggable.
12375
12376emits:
12377- pointerdown
12378- dragstart
12379- hitchange - fires initially, even if not over a hit
12380- pointerup
12381- (hitchange - again, to null, if ended over a hit)
12382- dragend
12383*/
12384class HitDragging {
12385    constructor(dragging, droppableStore) {
12386        // options that can be set by caller
12387        this.useSubjectCenter = false;
12388        this.requireInitial = true; // if doesn't start out on a hit, won't emit any events
12389        this.initialHit = null;
12390        this.movingHit = null;
12391        this.finalHit = null; // won't ever be populated if shouldIgnoreMove
12392        this.handlePointerDown = (ev) => {
12393            let { dragging } = this;
12394            this.initialHit = null;
12395            this.movingHit = null;
12396            this.finalHit = null;
12397            this.prepareHits();
12398            this.processFirstCoord(ev);
12399            if (this.initialHit || !this.requireInitial) {
12400                dragging.setIgnoreMove(false);
12401                // TODO: fire this before computing processFirstCoord, so listeners can cancel. this gets fired by almost every handler :(
12402                this.emitter.trigger('pointerdown', ev);
12403            }
12404            else {
12405                dragging.setIgnoreMove(true);
12406            }
12407        };
12408        this.handleDragStart = (ev) => {
12409            this.emitter.trigger('dragstart', ev);
12410            this.handleMove(ev, true); // force = fire even if initially null
12411        };
12412        this.handleDragMove = (ev) => {
12413            this.emitter.trigger('dragmove', ev);
12414            this.handleMove(ev);
12415        };
12416        this.handlePointerUp = (ev) => {
12417            this.releaseHits();
12418            this.emitter.trigger('pointerup', ev);
12419        };
12420        this.handleDragEnd = (ev) => {
12421            if (this.movingHit) {
12422                this.emitter.trigger('hitupdate', null, true, ev);
12423            }
12424            this.finalHit = this.movingHit;
12425            this.movingHit = null;
12426            this.emitter.trigger('dragend', ev);
12427        };
12428        this.droppableStore = droppableStore;
12429        dragging.emitter.on('pointerdown', this.handlePointerDown);
12430        dragging.emitter.on('dragstart', this.handleDragStart);
12431        dragging.emitter.on('dragmove', this.handleDragMove);
12432        dragging.emitter.on('pointerup', this.handlePointerUp);
12433        dragging.emitter.on('dragend', this.handleDragEnd);
12434        this.dragging = dragging;
12435        this.emitter = new _fullcalendar_core_internal_js__WEBPACK_IMPORTED_MODULE_1__["Emitter"]();
12436    }
12437    // sets initialHit
12438    // sets coordAdjust
12439    processFirstCoord(ev) {
12440        let origPoint = { left: ev.pageX, top: ev.pageY };
12441        let adjustedPoint = origPoint;
12442        let subjectEl = ev.subjectEl;
12443        let subjectRect;
12444        if (subjectEl instanceof HTMLElement) { // i.e. not a Document/ShadowRoot
12445            subjectRect = Object(_fullcalendar_core_internal_js__WEBPACK_IMPORTED_MODULE_1__["computeRect"])(subjectEl);
12446            adjustedPoint = Object(_fullcalendar_core_internal_js__WEBPACK_IMPORTED_MODULE_1__["constrainPoint"])(adjustedPoint, subjectRect);
12447        }
12448        let initialHit = this.initialHit = this.queryHitForOffset(adjustedPoint.left, adjustedPoint.top);
12449        if (initialHit) {
12450            if (this.useSubjectCenter && subjectRect) {
12451                let slicedSubjectRect = Object(_fullcalendar_core_internal_js__WEBPACK_IMPORTED_MODULE_1__["intersectRects"])(subjectRect, initialHit.rect);
12452                if (slicedSubjectRect) {
12453                    adjustedPoint = Object(_fullcalendar_core_internal_js__WEBPACK_IMPORTED_MODULE_1__["getRectCenter"])(slicedSubjectRect);
12454                }
12455            }
12456            this.coordAdjust = Object(_fullcalendar_core_internal_js__WEBPACK_IMPORTED_MODULE_1__["diffPoints"])(adjustedPoint, origPoint);
12457        }
12458        else {
12459            this.coordAdjust = { left: 0, top: 0 };
12460        }
12461    }
12462    handleMove(ev, forceHandle) {
12463        let hit = this.queryHitForOffset(ev.pageX + this.coordAdjust.left, ev.pageY + this.coordAdjust.top);
12464        if (forceHandle || !isHitsEqual(this.movingHit, hit)) {
12465            this.movingHit = hit;
12466            this.emitter.trigger('hitupdate', hit, false, ev);
12467        }
12468    }
12469    prepareHits() {
12470        this.offsetTrackers = Object(_fullcalendar_core_internal_js__WEBPACK_IMPORTED_MODULE_1__["mapHash"])(this.droppableStore, (interactionSettings) => {
12471            interactionSettings.component.prepareHits();
12472            return new OffsetTracker(interactionSettings.el);
12473        });
12474    }
12475    releaseHits() {
12476        let { offsetTrackers } = this;
12477        for (let id in offsetTrackers) {
12478            offsetTrackers[id].destroy();
12479        }
12480        this.offsetTrackers = {};
12481    }
12482    queryHitForOffset(offsetLeft, offsetTop) {
12483        let { droppableStore, offsetTrackers } = this;
12484        let bestHit = null;
12485        for (let id in droppableStore) {
12486            let component = droppableStore[id].component;
12487            let offsetTracker = offsetTrackers[id];
12488            if (offsetTracker && // wasn't destroyed mid-drag
12489                offsetTracker.isWithinClipping(offsetLeft, offsetTop)) {
12490                let originLeft = offsetTracker.computeLeft();
12491                let originTop = offsetTracker.computeTop();
12492                let positionLeft = offsetLeft - originLeft;
12493                let positionTop = offsetTop - originTop;
12494                let { origRect } = offsetTracker;
12495                let width = origRect.right - origRect.left;
12496                let height = origRect.bottom - origRect.top;
12497                if (
12498                // must be within the element's bounds
12499                positionLeft >= 0 && positionLeft < width &&
12500                    positionTop >= 0 && positionTop < height) {
12501                    let hit = component.queryHit(positionLeft, positionTop, width, height);
12502                    if (hit && (
12503                    // make sure the hit is within activeRange, meaning it's not a dead cell
12504                    Object(_fullcalendar_core_internal_js__WEBPACK_IMPORTED_MODULE_1__["rangeContainsRange"])(hit.dateProfile.activeRange, hit.dateSpan.range)) &&
12505                        (!bestHit || hit.layer > bestHit.layer)) {
12506                        hit.componentId = id;
12507                        hit.context = component.context;
12508                        // TODO: better way to re-orient rectangle
12509                        hit.rect.left += originLeft;
12510                        hit.rect.right += originLeft;
12511                        hit.rect.top += originTop;
12512                        hit.rect.bottom += originTop;
12513                        bestHit = hit;
12514                    }
12515                }
12516            }
12517        }
12518        return bestHit;
12519    }
12520}
12521function isHitsEqual(hit0, hit1) {
12522    if (!hit0 && !hit1) {
12523        return true;
12524    }
12525    if (Boolean(hit0) !== Boolean(hit1)) {
12526        return false;
12527    }
12528    return Object(_fullcalendar_core_internal_js__WEBPACK_IMPORTED_MODULE_1__["isDateSpansEqual"])(hit0.dateSpan, hit1.dateSpan);
12529}
12530
12531function buildDatePointApiWithContext(dateSpan, context) {
12532    let props = {};
12533    for (let transform of context.pluginHooks.datePointTransforms) {
12534        Object.assign(props, transform(dateSpan, context));
12535    }
12536    Object.assign(props, buildDatePointApi(dateSpan, context.dateEnv));
12537    return props;
12538}
12539function buildDatePointApi(span, dateEnv) {
12540    return {
12541        date: dateEnv.toDate(span.range.start),
12542        dateStr: dateEnv.formatIso(span.range.start, { omitTime: span.allDay }),
12543        allDay: span.allDay,
12544    };
12545}
12546
12547/*
12548Monitors when the user clicks on a specific date/time of a component.
12549A pointerdown+pointerup on the same "hit" constitutes a click.
12550*/
12551class DateClicking extends _fullcalendar_core_internal_js__WEBPACK_IMPORTED_MODULE_1__["Interaction"] {
12552    constructor(settings) {
12553        super(settings);
12554        this.handlePointerDown = (pev) => {
12555            let { dragging } = this;
12556            let downEl = pev.origEvent.target;
12557            // do this in pointerdown (not dragend) because DOM might be mutated by the time dragend is fired
12558            dragging.setIgnoreMove(!this.component.isValidDateDownEl(downEl));
12559        };
12560        // won't even fire if moving was ignored
12561        this.handleDragEnd = (ev) => {
12562            let { component } = this;
12563            let { pointer } = this.dragging;
12564            if (!pointer.wasTouchScroll) {
12565                let { initialHit, finalHit } = this.hitDragging;
12566                if (initialHit && finalHit && isHitsEqual(initialHit, finalHit)) {
12567                    let { context } = component;
12568                    let arg = Object.assign(Object.assign({}, buildDatePointApiWithContext(initialHit.dateSpan, context)), { dayEl: initialHit.dayEl, jsEvent: ev.origEvent, view: context.viewApi || context.calendarApi.view });
12569                    context.emitter.trigger('dateClick', arg);
12570                }
12571            }
12572        };
12573        // we DO want to watch pointer moves because otherwise finalHit won't get populated
12574        this.dragging = new FeaturefulElementDragging(settings.el);
12575        this.dragging.autoScroller.isEnabled = false;
12576        let hitDragging = this.hitDragging = new HitDragging(this.dragging, Object(_fullcalendar_core_internal_js__WEBPACK_IMPORTED_MODULE_1__["interactionSettingsToStore"])(settings));
12577        hitDragging.emitter.on('pointerdown', this.handlePointerDown);
12578        hitDragging.emitter.on('dragend', this.handleDragEnd);
12579    }
12580    destroy() {
12581        this.dragging.destroy();
12582    }
12583}
12584
12585/*
12586Tracks when the user selects a portion of time of a component,
12587constituted by a drag over date cells, with a possible delay at the beginning of the drag.
12588*/
12589class DateSelecting extends _fullcalendar_core_internal_js__WEBPACK_IMPORTED_MODULE_1__["Interaction"] {
12590    constructor(settings) {
12591        super(settings);
12592        this.dragSelection = null;
12593        this.handlePointerDown = (ev) => {
12594            let { component, dragging } = this;
12595            let { options } = component.context;
12596            let canSelect = options.selectable &&
12597                component.isValidDateDownEl(ev.origEvent.target);
12598            // don't bother to watch expensive moves if component won't do selection
12599            dragging.setIgnoreMove(!canSelect);
12600            // if touch, require user to hold down
12601            dragging.delay = ev.isTouch ? getComponentTouchDelay$1(component) : null;
12602        };
12603        this.handleDragStart = (ev) => {
12604            this.component.context.calendarApi.unselect(ev); // unselect previous selections
12605        };
12606        this.handleHitUpdate = (hit, isFinal) => {
12607            let { context } = this.component;
12608            let dragSelection = null;
12609            let isInvalid = false;
12610            if (hit) {
12611                let initialHit = this.hitDragging.initialHit;
12612                let disallowed = hit.componentId === initialHit.componentId
12613                    && this.isHitComboAllowed
12614                    && !this.isHitComboAllowed(initialHit, hit);
12615                if (!disallowed) {
12616                    dragSelection = joinHitsIntoSelection(initialHit, hit, context.pluginHooks.dateSelectionTransformers);
12617                }
12618                if (!dragSelection || !Object(_fullcalendar_core_internal_js__WEBPACK_IMPORTED_MODULE_1__["isDateSelectionValid"])(dragSelection, hit.dateProfile, context)) {
12619                    isInvalid = true;
12620                    dragSelection = null;
12621                }
12622            }
12623            if (dragSelection) {
12624                context.dispatch({ type: 'SELECT_DATES', selection: dragSelection });
12625            }
12626            else if (!isFinal) { // only unselect if moved away while dragging
12627                context.dispatch({ type: 'UNSELECT_DATES' });
12628            }
12629            if (!isInvalid) {
12630                Object(_fullcalendar_core_internal_js__WEBPACK_IMPORTED_MODULE_1__["enableCursor"])();
12631            }
12632            else {
12633                Object(_fullcalendar_core_internal_js__WEBPACK_IMPORTED_MODULE_1__["disableCursor"])();
12634            }
12635            if (!isFinal) {
12636                this.dragSelection = dragSelection; // only clear if moved away from all hits while dragging
12637            }
12638        };
12639        this.handlePointerUp = (pev) => {
12640            if (this.dragSelection) {
12641                // selection is already rendered, so just need to report selection
12642                Object(_fullcalendar_core_internal_js__WEBPACK_IMPORTED_MODULE_1__["triggerDateSelect"])(this.dragSelection, pev, this.component.context);
12643                this.dragSelection = null;
12644            }
12645        };
12646        let { component } = settings;
12647        let { options } = component.context;
12648        let dragging = this.dragging = new FeaturefulElementDragging(settings.el);
12649        dragging.touchScrollAllowed = false;
12650        dragging.minDistance = options.selectMinDistance || 0;
12651        dragging.autoScroller.isEnabled = options.dragScroll;
12652        let hitDragging = this.hitDragging = new HitDragging(this.dragging, Object(_fullcalendar_core_internal_js__WEBPACK_IMPORTED_MODULE_1__["interactionSettingsToStore"])(settings));
12653        hitDragging.emitter.on('pointerdown', this.handlePointerDown);
12654        hitDragging.emitter.on('dragstart', this.handleDragStart);
12655        hitDragging.emitter.on('hitupdate', this.handleHitUpdate);
12656        hitDragging.emitter.on('pointerup', this.handlePointerUp);
12657    }
12658    destroy() {
12659        this.dragging.destroy();
12660    }
12661}
12662function getComponentTouchDelay$1(component) {
12663    let { options } = component.context;
12664    let delay = options.selectLongPressDelay;
12665    if (delay == null) {
12666        delay = options.longPressDelay;
12667    }
12668    return delay;
12669}
12670function joinHitsIntoSelection(hit0, hit1, dateSelectionTransformers) {
12671    let dateSpan0 = hit0.dateSpan;
12672    let dateSpan1 = hit1.dateSpan;
12673    let ms = [
12674        dateSpan0.range.start,
12675        dateSpan0.range.end,
12676        dateSpan1.range.start,
12677        dateSpan1.range.end,
12678    ];
12679    ms.sort(_fullcalendar_core_internal_js__WEBPACK_IMPORTED_MODULE_1__["compareNumbers"]);
12680    let props = {};
12681    for (let transformer of dateSelectionTransformers) {
12682        let res = transformer(hit0, hit1);
12683        if (res === false) {
12684            return null;
12685        }
12686        if (res) {
12687            Object.assign(props, res);
12688        }
12689    }
12690    props.range = { start: ms[0], end: ms[3] };
12691    props.allDay = dateSpan0.allDay;
12692    return props;
12693}
12694
12695class EventDragging extends _fullcalendar_core_internal_js__WEBPACK_IMPORTED_MODULE_1__["Interaction"] {
12696    constructor(settings) {
12697        super(settings);
12698        // internal state
12699        this.subjectEl = null;
12700        this.subjectSeg = null; // the seg being selected/dragged
12701        this.isDragging = false;
12702        this.eventRange = null;
12703        this.relevantEvents = null; // the events being dragged
12704        this.receivingContext = null;
12705        this.validMutation = null;
12706        this.mutatedRelevantEvents = null;
12707        this.handlePointerDown = (ev) => {
12708            let origTarget = ev.origEvent.target;
12709            let { component, dragging } = this;
12710            let { mirror } = dragging;
12711            let { options } = component.context;
12712            let initialContext = component.context;
12713            this.subjectEl = ev.subjectEl;
12714            let subjectSeg = this.subjectSeg = Object(_fullcalendar_core_internal_js__WEBPACK_IMPORTED_MODULE_1__["getElSeg"])(ev.subjectEl);
12715            let eventRange = this.eventRange = subjectSeg.eventRange;
12716            let eventInstanceId = eventRange.instance.instanceId;
12717            this.relevantEvents = Object(_fullcalendar_core_internal_js__WEBPACK_IMPORTED_MODULE_1__["getRelevantEvents"])(initialContext.getCurrentData().eventStore, eventInstanceId);
12718            dragging.minDistance = ev.isTouch ? 0 : options.eventDragMinDistance;
12719            dragging.delay =
12720                // only do a touch delay if touch and this event hasn't been selected yet
12721                (ev.isTouch && eventInstanceId !== component.props.eventSelection) ?
12722                    getComponentTouchDelay(component) :
12723                    null;
12724            if (options.fixedMirrorParent) {
12725                mirror.parentNode = options.fixedMirrorParent;
12726            }
12727            else {
12728                mirror.parentNode = Object(_fullcalendar_core_internal_js__WEBPACK_IMPORTED_MODULE_1__["elementClosest"])(origTarget, '.fc');
12729            }
12730            mirror.revertDuration = options.dragRevertDuration;
12731            let isValid = component.isValidSegDownEl(origTarget) &&
12732                !Object(_fullcalendar_core_internal_js__WEBPACK_IMPORTED_MODULE_1__["elementClosest"])(origTarget, '.fc-event-resizer'); // NOT on a resizer
12733            dragging.setIgnoreMove(!isValid);
12734            // disable dragging for elements that are resizable (ie, selectable)
12735            // but are not draggable
12736            this.isDragging = isValid &&
12737                ev.subjectEl.classList.contains('fc-event-draggable');
12738        };
12739        this.handleDragStart = (ev) => {
12740            let initialContext = this.component.context;
12741            let eventRange = this.eventRange;
12742            let eventInstanceId = eventRange.instance.instanceId;
12743            if (ev.isTouch) {
12744                // need to select a different event?
12745                if (eventInstanceId !== this.component.props.eventSelection) {
12746                    initialContext.dispatch({ type: 'SELECT_EVENT', eventInstanceId });
12747                }
12748            }
12749            else {
12750                // if now using mouse, but was previous touch interaction, clear selected event
12751                initialContext.dispatch({ type: 'UNSELECT_EVENT' });
12752            }
12753            if (this.isDragging) {
12754                initialContext.calendarApi.unselect(ev); // unselect *date* selection
12755                initialContext.emitter.trigger('eventDragStart', {
12756                    el: this.subjectEl,
12757                    event: new _fullcalendar_core_internal_js__WEBPACK_IMPORTED_MODULE_1__["EventImpl"](initialContext, eventRange.def, eventRange.instance),
12758                    jsEvent: ev.origEvent,
12759                    view: initialContext.viewApi,
12760                });
12761            }
12762        };
12763        this.handleHitUpdate = (hit, isFinal) => {
12764            if (!this.isDragging) {
12765                return;
12766            }
12767            let relevantEvents = this.relevantEvents;
12768            let initialHit = this.hitDragging.initialHit;
12769            let initialContext = this.component.context;
12770            // states based on new hit
12771            let receivingContext = null;
12772            let mutation = null;
12773            let mutatedRelevantEvents = null;
12774            let isInvalid = false;
12775            let interaction = {
12776                affectedEvents: relevantEvents,
12777                mutatedEvents: Object(_fullcalendar_core_internal_js__WEBPACK_IMPORTED_MODULE_1__["createEmptyEventStore"])(),
12778                isEvent: true,
12779            };
12780            if (hit) {
12781                receivingContext = hit.context;
12782                let receivingOptions = receivingContext.options;
12783                if (initialContext === receivingContext ||
12784                    (receivingOptions.editable && receivingOptions.droppable)) {
12785                    mutation = computeEventMutation(initialHit, hit, receivingContext.getCurrentData().pluginHooks.eventDragMutationMassagers);
12786                    if (mutation) {
12787                        mutatedRelevantEvents = Object(_fullcalendar_core_internal_js__WEBPACK_IMPORTED_MODULE_1__["applyMutationToEventStore"])(relevantEvents, receivingContext.getCurrentData().eventUiBases, mutation, receivingContext);
12788                        interaction.mutatedEvents = mutatedRelevantEvents;
12789                        if (!Object(_fullcalendar_core_internal_js__WEBPACK_IMPORTED_MODULE_1__["isInteractionValid"])(interaction, hit.dateProfile, receivingContext)) {
12790                            isInvalid = true;
12791                            mutation = null;
12792                            mutatedRelevantEvents = null;
12793                            interaction.mutatedEvents = Object(_fullcalendar_core_internal_js__WEBPACK_IMPORTED_MODULE_1__["createEmptyEventStore"])();
12794                        }
12795                    }
12796                }
12797                else {
12798                    receivingContext = null;
12799                }
12800            }
12801            this.displayDrag(receivingContext, interaction);
12802            if (!isInvalid) {
12803                Object(_fullcalendar_core_internal_js__WEBPACK_IMPORTED_MODULE_1__["enableCursor"])();
12804            }
12805            else {
12806                Object(_fullcalendar_core_internal_js__WEBPACK_IMPORTED_MODULE_1__["disableCursor"])();
12807            }
12808            if (!isFinal) {
12809                if (initialContext === receivingContext && // TODO: write test for this
12810                    isHitsEqual(initialHit, hit)) {
12811                    mutation = null;
12812                }
12813                this.dragging.setMirrorNeedsRevert(!mutation);
12814                // render the mirror if no already-rendered mirror
12815                // TODO: wish we could somehow wait for dispatch to guarantee render
12816                this.dragging.setMirrorIsVisible(!hit || !this.subjectEl.getRootNode().querySelector('.fc-event-mirror'));
12817                // assign states based on new hit
12818                this.receivingContext = receivingContext;
12819                this.validMutation = mutation;
12820                this.mutatedRelevantEvents = mutatedRelevantEvents;
12821            }
12822        };
12823        this.handlePointerUp = () => {
12824            if (!this.isDragging) {
12825                this.cleanup(); // because handleDragEnd won't fire
12826            }
12827        };
12828        this.handleDragEnd = (ev) => {
12829            if (this.isDragging) {
12830                let initialContext = this.component.context;
12831                let initialView = initialContext.viewApi;
12832                let { receivingContext, validMutation } = this;
12833                let eventDef = this.eventRange.def;
12834                let eventInstance = this.eventRange.instance;
12835                let eventApi = new _fullcalendar_core_internal_js__WEBPACK_IMPORTED_MODULE_1__["EventImpl"](initialContext, eventDef, eventInstance);
12836                let relevantEvents = this.relevantEvents;
12837                let mutatedRelevantEvents = this.mutatedRelevantEvents;
12838                let { finalHit } = this.hitDragging;
12839                this.clearDrag(); // must happen after revert animation
12840                initialContext.emitter.trigger('eventDragStop', {
12841                    el: this.subjectEl,
12842                    event: eventApi,
12843                    jsEvent: ev.origEvent,
12844                    view: initialView,
12845                });
12846                if (validMutation) {
12847                    // dropped within same calendar
12848                    if (receivingContext === initialContext) {
12849                        let updatedEventApi = new _fullcalendar_core_internal_js__WEBPACK_IMPORTED_MODULE_1__["EventImpl"](initialContext, mutatedRelevantEvents.defs[eventDef.defId], eventInstance ? mutatedRelevantEvents.instances[eventInstance.instanceId] : null);
12850                        initialContext.dispatch({
12851                            type: 'MERGE_EVENTS',
12852                            eventStore: mutatedRelevantEvents,
12853                        });
12854                        let eventChangeArg = {
12855                            oldEvent: eventApi,
12856                            event: updatedEventApi,
12857                            relatedEvents: Object(_fullcalendar_core_internal_js__WEBPACK_IMPORTED_MODULE_1__["buildEventApis"])(mutatedRelevantEvents, initialContext, eventInstance),
12858                            revert() {
12859                                initialContext.dispatch({
12860                                    type: 'MERGE_EVENTS',
12861                                    eventStore: relevantEvents, // the pre-change data
12862                                });
12863                            },
12864                        };
12865                        let transformed = {};
12866                        for (let transformer of initialContext.getCurrentData().pluginHooks.eventDropTransformers) {
12867                            Object.assign(transformed, transformer(validMutation, initialContext));
12868                        }
12869                        initialContext.emitter.trigger('eventDrop', Object.assign(Object.assign(Object.assign({}, eventChangeArg), transformed), { el: ev.subjectEl, delta: validMutation.datesDelta, jsEvent: ev.origEvent, view: initialView }));
12870                        initialContext.emitter.trigger('eventChange', eventChangeArg);
12871                        // dropped in different calendar
12872                    }
12873                    else if (receivingContext) {
12874                        let eventRemoveArg = {
12875                            event: eventApi,
12876                            relatedEvents: Object(_fullcalendar_core_internal_js__WEBPACK_IMPORTED_MODULE_1__["buildEventApis"])(relevantEvents, initialContext, eventInstance),
12877                            revert() {
12878                                initialContext.dispatch({
12879                                    type: 'MERGE_EVENTS',
12880                                    eventStore: relevantEvents,
12881                                });
12882                            },
12883                        };
12884                        initialContext.emitter.trigger('eventLeave', Object.assign(Object.assign({}, eventRemoveArg), { draggedEl: ev.subjectEl, view: initialView }));
12885                        initialContext.dispatch({
12886                            type: 'REMOVE_EVENTS',
12887                            eventStore: relevantEvents,
12888                        });
12889                        initialContext.emitter.trigger('eventRemove', eventRemoveArg);
12890                        let addedEventDef = mutatedRelevantEvents.defs[eventDef.defId];
12891                        let addedEventInstance = mutatedRelevantEvents.instances[eventInstance.instanceId];
12892                        let addedEventApi = new _fullcalendar_core_internal_js__WEBPACK_IMPORTED_MODULE_1__["EventImpl"](receivingContext, addedEventDef, addedEventInstance);
12893                        receivingContext.dispatch({
12894                            type: 'MERGE_EVENTS',
12895                            eventStore: mutatedRelevantEvents,
12896                        });
12897                        let eventAddArg = {
12898                            event: addedEventApi,
12899                            relatedEvents: Object(_fullcalendar_core_internal_js__WEBPACK_IMPORTED_MODULE_1__["buildEventApis"])(mutatedRelevantEvents, receivingContext, addedEventInstance),
12900                            revert() {
12901                                receivingContext.dispatch({
12902                                    type: 'REMOVE_EVENTS',
12903                                    eventStore: mutatedRelevantEvents,
12904                                });
12905                            },
12906                        };
12907                        receivingContext.emitter.trigger('eventAdd', eventAddArg);
12908                        if (ev.isTouch) {
12909                            receivingContext.dispatch({
12910                                type: 'SELECT_EVENT',
12911                                eventInstanceId: eventInstance.instanceId,
12912                            });
12913                        }
12914                        receivingContext.emitter.trigger('drop', Object.assign(Object.assign({}, buildDatePointApiWithContext(finalHit.dateSpan, receivingContext)), { draggedEl: ev.subjectEl, jsEvent: ev.origEvent, view: finalHit.context.viewApi }));
12915                        receivingContext.emitter.trigger('eventReceive', Object.assign(Object.assign({}, eventAddArg), { draggedEl: ev.subjectEl, view: finalHit.context.viewApi }));
12916                    }
12917                }
12918                else {
12919                    initialContext.emitter.trigger('_noEventDrop');
12920                }
12921            }
12922            this.cleanup();
12923        };
12924        let { component } = this;
12925        let { options } = component.context;
12926        let dragging = this.dragging = new FeaturefulElementDragging(settings.el);
12927        dragging.pointer.selector = EventDragging.SELECTOR;
12928        dragging.touchScrollAllowed = false;
12929        dragging.autoScroller.isEnabled = options.dragScroll;
12930        let hitDragging = this.hitDragging = new HitDragging(this.dragging, _fullcalendar_core_internal_js__WEBPACK_IMPORTED_MODULE_1__["interactionSettingsStore"]);
12931        hitDragging.useSubjectCenter = settings.useEventCenter;
12932        hitDragging.emitter.on('pointerdown', this.handlePointerDown);
12933        hitDragging.emitter.on('dragstart', this.handleDragStart);
12934        hitDragging.emitter.on('hitupdate', this.handleHitUpdate);
12935        hitDragging.emitter.on('pointerup', this.handlePointerUp);
12936        hitDragging.emitter.on('dragend', this.handleDragEnd);
12937    }
12938    destroy() {
12939        this.dragging.destroy();
12940    }
12941    // render a drag state on the next receivingCalendar
12942    displayDrag(nextContext, state) {
12943        let initialContext = this.component.context;
12944        let prevContext = this.receivingContext;
12945        // does the previous calendar need to be cleared?
12946        if (prevContext && prevContext !== nextContext) {
12947            // does the initial calendar need to be cleared?
12948            // if so, don't clear all the way. we still need to to hide the affectedEvents
12949            if (prevContext === initialContext) {
12950                prevContext.dispatch({
12951                    type: 'SET_EVENT_DRAG',
12952                    state: {
12953                        affectedEvents: state.affectedEvents,
12954                        mutatedEvents: Object(_fullcalendar_core_internal_js__WEBPACK_IMPORTED_MODULE_1__["createEmptyEventStore"])(),
12955                        isEvent: true,
12956                    },
12957                });
12958                // completely clear the old calendar if it wasn't the initial
12959            }
12960            else {
12961                prevContext.dispatch({ type: 'UNSET_EVENT_DRAG' });
12962            }
12963        }
12964        if (nextContext) {
12965            nextContext.dispatch({ type: 'SET_EVENT_DRAG', state });
12966        }
12967    }
12968    clearDrag() {
12969        let initialCalendar = this.component.context;
12970        let { receivingContext } = this;
12971        if (receivingContext) {
12972            receivingContext.dispatch({ type: 'UNSET_EVENT_DRAG' });
12973        }
12974        // the initial calendar might have an dummy drag state from displayDrag
12975        if (initialCalendar !== receivingContext) {
12976            initialCalendar.dispatch({ type: 'UNSET_EVENT_DRAG' });
12977        }
12978    }
12979    cleanup() {
12980        this.subjectSeg = null;
12981        this.isDragging = false;
12982        this.eventRange = null;
12983        this.relevantEvents = null;
12984        this.receivingContext = null;
12985        this.validMutation = null;
12986        this.mutatedRelevantEvents = null;
12987    }
12988}
12989// TODO: test this in IE11
12990// QUESTION: why do we need it on the resizable???
12991EventDragging.SELECTOR = '.fc-event-draggable, .fc-event-resizable';
12992function computeEventMutation(hit0, hit1, massagers) {
12993    let dateSpan0 = hit0.dateSpan;
12994    let dateSpan1 = hit1.dateSpan;
12995    let date0 = dateSpan0.range.start;
12996    let date1 = dateSpan1.range.start;
12997    let standardProps = {};
12998    if (dateSpan0.allDay !== dateSpan1.allDay) {
12999        standardProps.allDay = dateSpan1.allDay;
13000        standardProps.hasEnd = hit1.context.options.allDayMaintainDuration;
13001        if (dateSpan1.allDay) {
13002            // means date1 is already start-of-day,
13003            // but date0 needs to be converted
13004            date0 = Object(_fullcalendar_core_internal_js__WEBPACK_IMPORTED_MODULE_1__["startOfDay"])(date0);
13005        }
13006    }
13007    let delta = Object(_fullcalendar_core_internal_js__WEBPACK_IMPORTED_MODULE_1__["diffDates"])(date0, date1, hit0.context.dateEnv, hit0.componentId === hit1.componentId ?
13008        hit0.largeUnit :
13009        null);
13010    if (delta.milliseconds) { // has hours/minutes/seconds
13011        standardProps.allDay = false;
13012    }
13013    let mutation = {
13014        datesDelta: delta,
13015        standardProps,
13016    };
13017    for (let massager of massagers) {
13018        massager(mutation, hit0, hit1);
13019    }
13020    return mutation;
13021}
13022function getComponentTouchDelay(component) {
13023    let { options } = component.context;
13024    let delay = options.eventLongPressDelay;
13025    if (delay == null) {
13026        delay = options.longPressDelay;
13027    }
13028    return delay;
13029}
13030
13031class EventResizing extends _fullcalendar_core_internal_js__WEBPACK_IMPORTED_MODULE_1__["Interaction"] {
13032    constructor(settings) {
13033        super(settings);
13034        // internal state
13035        this.draggingSegEl = null;
13036        this.draggingSeg = null; // TODO: rename to resizingSeg? subjectSeg?
13037        this.eventRange = null;
13038        this.relevantEvents = null;
13039        this.validMutation = null;
13040        this.mutatedRelevantEvents = null;
13041        this.handlePointerDown = (ev) => {
13042            let { component } = this;
13043            let segEl = this.querySegEl(ev);
13044            let seg = Object(_fullcalendar_core_internal_js__WEBPACK_IMPORTED_MODULE_1__["getElSeg"])(segEl);
13045            let eventRange = this.eventRange = seg.eventRange;
13046            this.dragging.minDistance = component.context.options.eventDragMinDistance;
13047            // if touch, need to be working with a selected event
13048            this.dragging.setIgnoreMove(!this.component.isValidSegDownEl(ev.origEvent.target) ||
13049                (ev.isTouch && this.component.props.eventSelection !== eventRange.instance.instanceId));
13050        };
13051        this.handleDragStart = (ev) => {
13052            let { context } = this.component;
13053            let eventRange = this.eventRange;
13054            this.relevantEvents = Object(_fullcalendar_core_internal_js__WEBPACK_IMPORTED_MODULE_1__["getRelevantEvents"])(context.getCurrentData().eventStore, this.eventRange.instance.instanceId);
13055            let segEl = this.querySegEl(ev);
13056            this.draggingSegEl = segEl;
13057            this.draggingSeg = Object(_fullcalendar_core_internal_js__WEBPACK_IMPORTED_MODULE_1__["getElSeg"])(segEl);
13058            context.calendarApi.unselect();
13059            context.emitter.trigger('eventResizeStart', {
13060                el: segEl,
13061                event: new _fullcalendar_core_internal_js__WEBPACK_IMPORTED_MODULE_1__["EventImpl"](context, eventRange.def, eventRange.instance),
13062                jsEvent: ev.origEvent,
13063                view: context.viewApi,
13064            });
13065        };
13066        this.handleHitUpdate = (hit, isFinal, ev) => {
13067            let { context } = this.component;
13068            let relevantEvents = this.relevantEvents;
13069            let initialHit = this.hitDragging.initialHit;
13070            let eventInstance = this.eventRange.instance;
13071            let mutation = null;
13072            let mutatedRelevantEvents = null;
13073            let isInvalid = false;
13074            let interaction = {
13075                affectedEvents: relevantEvents,
13076                mutatedEvents: Object(_fullcalendar_core_internal_js__WEBPACK_IMPORTED_MODULE_1__["createEmptyEventStore"])(),
13077                isEvent: true,
13078            };
13079            if (hit) {
13080                let disallowed = hit.componentId === initialHit.componentId
13081                    && this.isHitComboAllowed
13082                    && !this.isHitComboAllowed(initialHit, hit);
13083                if (!disallowed) {
13084                    mutation = computeMutation(initialHit, hit, ev.subjectEl.classList.contains('fc-event-resizer-start'), eventInstance.range);
13085                }
13086            }
13087            if (mutation) {
13088                mutatedRelevantEvents = Object(_fullcalendar_core_internal_js__WEBPACK_IMPORTED_MODULE_1__["applyMutationToEventStore"])(relevantEvents, context.getCurrentData().eventUiBases, mutation, context);
13089                interaction.mutatedEvents = mutatedRelevantEvents;
13090                if (!Object(_fullcalendar_core_internal_js__WEBPACK_IMPORTED_MODULE_1__["isInteractionValid"])(interaction, hit.dateProfile, context)) {
13091                    isInvalid = true;
13092                    mutation = null;
13093                    mutatedRelevantEvents = null;
13094                    interaction.mutatedEvents = null;
13095                }
13096            }
13097            if (mutatedRelevantEvents) {
13098                context.dispatch({
13099                    type: 'SET_EVENT_RESIZE',
13100                    state: interaction,
13101                });
13102            }
13103            else {
13104                context.dispatch({ type: 'UNSET_EVENT_RESIZE' });
13105            }
13106            if (!isInvalid) {
13107                Object(_fullcalendar_core_internal_js__WEBPACK_IMPORTED_MODULE_1__["enableCursor"])();
13108            }
13109            else {
13110                Object(_fullcalendar_core_internal_js__WEBPACK_IMPORTED_MODULE_1__["disableCursor"])();
13111            }
13112            if (!isFinal) {
13113                if (mutation && isHitsEqual(initialHit, hit)) {
13114                    mutation = null;
13115                }
13116                this.validMutation = mutation;
13117                this.mutatedRelevantEvents = mutatedRelevantEvents;
13118            }
13119        };
13120        this.handleDragEnd = (ev) => {
13121            let { context } = this.component;
13122            let eventDef = this.eventRange.def;
13123            let eventInstance = this.eventRange.instance;
13124            let eventApi = new _fullcalendar_core_internal_js__WEBPACK_IMPORTED_MODULE_1__["EventImpl"](context, eventDef, eventInstance);
13125            let relevantEvents = this.relevantEvents;
13126            let mutatedRelevantEvents = this.mutatedRelevantEvents;
13127            context.emitter.trigger('eventResizeStop', {
13128                el: this.draggingSegEl,
13129                event: eventApi,
13130                jsEvent: ev.origEvent,
13131                view: context.viewApi,
13132            });
13133            if (this.validMutation) {
13134                let updatedEventApi = new _fullcalendar_core_internal_js__WEBPACK_IMPORTED_MODULE_1__["EventImpl"](context, mutatedRelevantEvents.defs[eventDef.defId], eventInstance ? mutatedRelevantEvents.instances[eventInstance.instanceId] : null);
13135                context.dispatch({
13136                    type: 'MERGE_EVENTS',
13137                    eventStore: mutatedRelevantEvents,
13138                });
13139                let eventChangeArg = {
13140                    oldEvent: eventApi,
13141                    event: updatedEventApi,
13142                    relatedEvents: Object(_fullcalendar_core_internal_js__WEBPACK_IMPORTED_MODULE_1__["buildEventApis"])(mutatedRelevantEvents, context, eventInstance),
13143                    revert() {
13144                        context.dispatch({
13145                            type: 'MERGE_EVENTS',
13146                            eventStore: relevantEvents, // the pre-change events
13147                        });
13148                    },
13149                };
13150                context.emitter.trigger('eventResize', Object.assign(Object.assign({}, eventChangeArg), { el: this.draggingSegEl, startDelta: this.validMutation.startDelta || Object(_fullcalendar_core_internal_js__WEBPACK_IMPORTED_MODULE_1__["createDuration"])(0), endDelta: this.validMutation.endDelta || Object(_fullcalendar_core_internal_js__WEBPACK_IMPORTED_MODULE_1__["createDuration"])(0), jsEvent: ev.origEvent, view: context.viewApi }));
13151                context.emitter.trigger('eventChange', eventChangeArg);
13152            }
13153            else {
13154                context.emitter.trigger('_noEventResize');
13155            }
13156            // reset all internal state
13157            this.draggingSeg = null;
13158            this.relevantEvents = null;
13159            this.validMutation = null;
13160            // okay to keep eventInstance around. useful to set it in handlePointerDown
13161        };
13162        let { component } = settings;
13163        let dragging = this.dragging = new FeaturefulElementDragging(settings.el);
13164        dragging.pointer.selector = '.fc-event-resizer';
13165        dragging.touchScrollAllowed = false;
13166        dragging.autoScroller.isEnabled = component.context.options.dragScroll;
13167        let hitDragging = this.hitDragging = new HitDragging(this.dragging, Object(_fullcalendar_core_internal_js__WEBPACK_IMPORTED_MODULE_1__["interactionSettingsToStore"])(settings));
13168        hitDragging.emitter.on('pointerdown', this.handlePointerDown);
13169        hitDragging.emitter.on('dragstart', this.handleDragStart);
13170        hitDragging.emitter.on('hitupdate', this.handleHitUpdate);
13171        hitDragging.emitter.on('dragend', this.handleDragEnd);
13172    }
13173    destroy() {
13174        this.dragging.destroy();
13175    }
13176    querySegEl(ev) {
13177        return Object(_fullcalendar_core_internal_js__WEBPACK_IMPORTED_MODULE_1__["elementClosest"])(ev.subjectEl, '.fc-event');
13178    }
13179}
13180function computeMutation(hit0, hit1, isFromStart, instanceRange) {
13181    let dateEnv = hit0.context.dateEnv;
13182    let date0 = hit0.dateSpan.range.start;
13183    let date1 = hit1.dateSpan.range.start;
13184    let delta = Object(_fullcalendar_core_internal_js__WEBPACK_IMPORTED_MODULE_1__["diffDates"])(date0, date1, dateEnv, hit0.largeUnit);
13185    if (isFromStart) {
13186        if (dateEnv.add(instanceRange.start, delta) < instanceRange.end) {
13187            return { startDelta: delta };
13188        }
13189    }
13190    else if (dateEnv.add(instanceRange.end, delta) > instanceRange.start) {
13191        return { endDelta: delta };
13192    }
13193    return null;
13194}
13195
13196class UnselectAuto {
13197    constructor(context) {
13198        this.context = context;
13199        this.isRecentPointerDateSelect = false; // wish we could use a selector to detect date selection, but uses hit system
13200        this.matchesCancel = false;
13201        this.matchesEvent = false;
13202        this.onSelect = (selectInfo) => {
13203            if (selectInfo.jsEvent) {
13204                this.isRecentPointerDateSelect = true;
13205            }
13206        };
13207        this.onDocumentPointerDown = (pev) => {
13208            let unselectCancel = this.context.options.unselectCancel;
13209            let downEl = Object(_fullcalendar_core_internal_js__WEBPACK_IMPORTED_MODULE_1__["getEventTargetViaRoot"])(pev.origEvent);
13210            this.matchesCancel = !!Object(_fullcalendar_core_internal_js__WEBPACK_IMPORTED_MODULE_1__["elementClosest"])(downEl, unselectCancel);
13211            this.matchesEvent = !!Object(_fullcalendar_core_internal_js__WEBPACK_IMPORTED_MODULE_1__["elementClosest"])(downEl, EventDragging.SELECTOR); // interaction started on an event?
13212        };
13213        this.onDocumentPointerUp = (pev) => {
13214            let { context } = this;
13215            let { documentPointer } = this;
13216            let calendarState = context.getCurrentData();
13217            // touch-scrolling should never unfocus any type of selection
13218            if (!documentPointer.wasTouchScroll) {
13219                if (calendarState.dateSelection && // an existing date selection?
13220                    !this.isRecentPointerDateSelect // a new pointer-initiated date selection since last onDocumentPointerUp?
13221                ) {
13222                    let unselectAuto = context.options.unselectAuto;
13223                    if (unselectAuto && (!unselectAuto || !this.matchesCancel)) {
13224                        context.calendarApi.unselect(pev);
13225                    }
13226                }
13227                if (calendarState.eventSelection && // an existing event selected?
13228                    !this.matchesEvent // interaction DIDN'T start on an event
13229                ) {
13230                    context.dispatch({ type: 'UNSELECT_EVENT' });
13231                }
13232            }
13233            this.isRecentPointerDateSelect = false;
13234        };
13235        let documentPointer = this.documentPointer = new PointerDragging(document);
13236        documentPointer.shouldIgnoreMove = true;
13237        documentPointer.shouldWatchScroll = false;
13238        documentPointer.emitter.on('pointerdown', this.onDocumentPointerDown);
13239        documentPointer.emitter.on('pointerup', this.onDocumentPointerUp);
13240        /*
13241        TODO: better way to know about whether there was a selection with the pointer
13242        */
13243        context.emitter.on('select', this.onSelect);
13244    }
13245    destroy() {
13246        this.context.emitter.off('select', this.onSelect);
13247        this.documentPointer.destroy();
13248    }
13249}
13250
13251const OPTION_REFINERS = {
13252    fixedMirrorParent: _fullcalendar_core_internal_js__WEBPACK_IMPORTED_MODULE_1__["identity"],
13253};
13254const LISTENER_REFINERS = {
13255    dateClick: _fullcalendar_core_internal_js__WEBPACK_IMPORTED_MODULE_1__["identity"],
13256    eventDragStart: _fullcalendar_core_internal_js__WEBPACK_IMPORTED_MODULE_1__["identity"],
13257    eventDragStop: _fullcalendar_core_internal_js__WEBPACK_IMPORTED_MODULE_1__["identity"],
13258    eventDrop: _fullcalendar_core_internal_js__WEBPACK_IMPORTED_MODULE_1__["identity"],
13259    eventResizeStart: _fullcalendar_core_internal_js__WEBPACK_IMPORTED_MODULE_1__["identity"],
13260    eventResizeStop: _fullcalendar_core_internal_js__WEBPACK_IMPORTED_MODULE_1__["identity"],
13261    eventResize: _fullcalendar_core_internal_js__WEBPACK_IMPORTED_MODULE_1__["identity"],
13262    drop: _fullcalendar_core_internal_js__WEBPACK_IMPORTED_MODULE_1__["identity"],
13263    eventReceive: _fullcalendar_core_internal_js__WEBPACK_IMPORTED_MODULE_1__["identity"],
13264    eventLeave: _fullcalendar_core_internal_js__WEBPACK_IMPORTED_MODULE_1__["identity"],
13265};
13266
13267/*
13268Given an already instantiated draggable object for one-or-more elements,
13269Interprets any dragging as an attempt to drag an events that lives outside
13270of a calendar onto a calendar.
13271*/
13272class ExternalElementDragging {
13273    constructor(dragging, suppliedDragMeta) {
13274        this.receivingContext = null;
13275        this.droppableEvent = null; // will exist for all drags, even if create:false
13276        this.suppliedDragMeta = null;
13277        this.dragMeta = null;
13278        this.handleDragStart = (ev) => {
13279            this.dragMeta = this.buildDragMeta(ev.subjectEl);
13280        };
13281        this.handleHitUpdate = (hit, isFinal, ev) => {
13282            let { dragging } = this.hitDragging;
13283            let receivingContext = null;
13284            let droppableEvent = null;
13285            let isInvalid = false;
13286            let interaction = {
13287                affectedEvents: Object(_fullcalendar_core_internal_js__WEBPACK_IMPORTED_MODULE_1__["createEmptyEventStore"])(),
13288                mutatedEvents: Object(_fullcalendar_core_internal_js__WEBPACK_IMPORTED_MODULE_1__["createEmptyEventStore"])(),
13289                isEvent: this.dragMeta.create,
13290            };
13291            if (hit) {
13292                receivingContext = hit.context;
13293                if (this.canDropElOnCalendar(ev.subjectEl, receivingContext)) {
13294                    droppableEvent = computeEventForDateSpan(hit.dateSpan, this.dragMeta, receivingContext);
13295                    interaction.mutatedEvents = Object(_fullcalendar_core_internal_js__WEBPACK_IMPORTED_MODULE_1__["eventTupleToStore"])(droppableEvent);
13296                    isInvalid = !Object(_fullcalendar_core_internal_js__WEBPACK_IMPORTED_MODULE_1__["isInteractionValid"])(interaction, hit.dateProfile, receivingContext);
13297                    if (isInvalid) {
13298                        interaction.mutatedEvents = Object(_fullcalendar_core_internal_js__WEBPACK_IMPORTED_MODULE_1__["createEmptyEventStore"])();
13299                        droppableEvent = null;
13300                    }
13301                }
13302            }
13303            this.displayDrag(receivingContext, interaction);
13304            // show mirror if no already-rendered mirror element OR if we are shutting down the mirror (?)
13305            // TODO: wish we could somehow wait for dispatch to guarantee render
13306            dragging.setMirrorIsVisible(isFinal || !droppableEvent || !document.querySelector('.fc-event-mirror'));
13307            if (!isInvalid) {
13308                Object(_fullcalendar_core_internal_js__WEBPACK_IMPORTED_MODULE_1__["enableCursor"])();
13309            }
13310            else {
13311                Object(_fullcalendar_core_internal_js__WEBPACK_IMPORTED_MODULE_1__["disableCursor"])();
13312            }
13313            if (!isFinal) {
13314                dragging.setMirrorNeedsRevert(!droppableEvent);
13315                this.receivingContext = receivingContext;
13316                this.droppableEvent = droppableEvent;
13317            }
13318        };
13319        this.handleDragEnd = (pev) => {
13320            let { receivingContext, droppableEvent } = this;
13321            this.clearDrag();
13322            if (receivingContext && droppableEvent) {
13323                let finalHit = this.hitDragging.finalHit;
13324                let finalView = finalHit.context.viewApi;
13325                let dragMeta = this.dragMeta;
13326                receivingContext.emitter.trigger('drop', Object.assign(Object.assign({}, buildDatePointApiWithContext(finalHit.dateSpan, receivingContext)), { draggedEl: pev.subjectEl, jsEvent: pev.origEvent, view: finalView }));
13327                if (dragMeta.create) {
13328                    let addingEvents = Object(_fullcalendar_core_internal_js__WEBPACK_IMPORTED_MODULE_1__["eventTupleToStore"])(droppableEvent);
13329                    receivingContext.dispatch({
13330                        type: 'MERGE_EVENTS',
13331                        eventStore: addingEvents,
13332                    });
13333                    if (pev.isTouch) {
13334                        receivingContext.dispatch({
13335                            type: 'SELECT_EVENT',
13336                            eventInstanceId: droppableEvent.instance.instanceId,
13337                        });
13338                    }
13339                    // signal that an external event landed
13340                    receivingContext.emitter.trigger('eventReceive', {
13341                        event: new _fullcalendar_core_internal_js__WEBPACK_IMPORTED_MODULE_1__["EventImpl"](receivingContext, droppableEvent.def, droppableEvent.instance),
13342                        relatedEvents: [],
13343                        revert() {
13344                            receivingContext.dispatch({
13345                                type: 'REMOVE_EVENTS',
13346                                eventStore: addingEvents,
13347                            });
13348                        },
13349                        draggedEl: pev.subjectEl,
13350                        view: finalView,
13351                    });
13352                }
13353            }
13354            this.receivingContext = null;
13355            this.droppableEvent = null;
13356        };
13357        let hitDragging = this.hitDragging = new HitDragging(dragging, _fullcalendar_core_internal_js__WEBPACK_IMPORTED_MODULE_1__["interactionSettingsStore"]);
13358        hitDragging.requireInitial = false; // will start outside of a component
13359        hitDragging.emitter.on('dragstart', this.handleDragStart);
13360        hitDragging.emitter.on('hitupdate', this.handleHitUpdate);
13361        hitDragging.emitter.on('dragend', this.handleDragEnd);
13362        this.suppliedDragMeta = suppliedDragMeta;
13363    }
13364    buildDragMeta(subjectEl) {
13365        if (typeof this.suppliedDragMeta === 'object') {
13366            return Object(_fullcalendar_core_internal_js__WEBPACK_IMPORTED_MODULE_1__["parseDragMeta"])(this.suppliedDragMeta);
13367        }
13368        if (typeof this.suppliedDragMeta === 'function') {
13369            return Object(_fullcalendar_core_internal_js__WEBPACK_IMPORTED_MODULE_1__["parseDragMeta"])(this.suppliedDragMeta(subjectEl));
13370        }
13371        return getDragMetaFromEl(subjectEl);
13372    }
13373    displayDrag(nextContext, state) {
13374        let prevContext = this.receivingContext;
13375        if (prevContext && prevContext !== nextContext) {
13376            prevContext.dispatch({ type: 'UNSET_EVENT_DRAG' });
13377        }
13378        if (nextContext) {
13379            nextContext.dispatch({ type: 'SET_EVENT_DRAG', state });
13380        }
13381    }
13382    clearDrag() {
13383        if (this.receivingContext) {
13384            this.receivingContext.dispatch({ type: 'UNSET_EVENT_DRAG' });
13385        }
13386    }
13387    canDropElOnCalendar(el, receivingContext) {
13388        let dropAccept = receivingContext.options.dropAccept;
13389        if (typeof dropAccept === 'function') {
13390            return dropAccept.call(receivingContext.calendarApi, el);
13391        }
13392        if (typeof dropAccept === 'string' && dropAccept) {
13393            return Boolean(Object(_fullcalendar_core_internal_js__WEBPACK_IMPORTED_MODULE_1__["elementMatches"])(el, dropAccept));
13394        }
13395        return true;
13396    }
13397}
13398// Utils for computing event store from the DragMeta
13399// ----------------------------------------------------------------------------------------------------
13400function computeEventForDateSpan(dateSpan, dragMeta, context) {
13401    let defProps = Object.assign({}, dragMeta.leftoverProps);
13402    for (let transform of context.pluginHooks.externalDefTransforms) {
13403        Object.assign(defProps, transform(dateSpan, dragMeta));
13404    }
13405    let { refined, extra } = Object(_fullcalendar_core_internal_js__WEBPACK_IMPORTED_MODULE_1__["refineEventDef"])(defProps, context);
13406    let def = Object(_fullcalendar_core_internal_js__WEBPACK_IMPORTED_MODULE_1__["parseEventDef"])(refined, extra, dragMeta.sourceId, dateSpan.allDay, context.options.forceEventDuration || Boolean(dragMeta.duration), // hasEnd
13407    context);
13408    let start = dateSpan.range.start;
13409    // only rely on time info if drop zone is all-day,
13410    // otherwise, we already know the time
13411    if (dateSpan.allDay && dragMeta.startTime) {
13412        start = context.dateEnv.add(start, dragMeta.startTime);
13413    }
13414    let end = dragMeta.duration ?
13415        context.dateEnv.add(start, dragMeta.duration) :
13416        Object(_fullcalendar_core_internal_js__WEBPACK_IMPORTED_MODULE_1__["getDefaultEventEnd"])(dateSpan.allDay, start, context);
13417    let instance = Object(_fullcalendar_core_internal_js__WEBPACK_IMPORTED_MODULE_1__["createEventInstance"])(def.defId, { start, end });
13418    return { def, instance };
13419}
13420// Utils for extracting data from element
13421// ----------------------------------------------------------------------------------------------------
13422function getDragMetaFromEl(el) {
13423    let str = getEmbeddedElData(el, 'event');
13424    let obj = str ?
13425        JSON.parse(str) :
13426        { create: false }; // if no embedded data, assume no event creation
13427    return Object(_fullcalendar_core_internal_js__WEBPACK_IMPORTED_MODULE_1__["parseDragMeta"])(obj);
13428}
13429_fullcalendar_core_internal_js__WEBPACK_IMPORTED_MODULE_1__["config"].dataAttrPrefix = '';
13430function getEmbeddedElData(el, name) {
13431    let prefix = _fullcalendar_core_internal_js__WEBPACK_IMPORTED_MODULE_1__["config"].dataAttrPrefix;
13432    let prefixedName = (prefix ? prefix + '-' : '') + name;
13433    return el.getAttribute('data-' + prefixedName) || '';
13434}
13435
13436/*
13437Makes an element (that is *external* to any calendar) draggable.
13438Can pass in data that determines how an event will be created when dropped onto a calendar.
13439Leverages FullCalendar's internal drag-n-drop functionality WITHOUT a third-party drag system.
13440*/
13441class ExternalDraggable {
13442    constructor(el, settings = {}) {
13443        this.handlePointerDown = (ev) => {
13444            let { dragging } = this;
13445            let { minDistance, longPressDelay } = this.settings;
13446            dragging.minDistance =
13447                minDistance != null ?
13448                    minDistance :
13449                    (ev.isTouch ? 0 : _fullcalendar_core_internal_js__WEBPACK_IMPORTED_MODULE_1__["BASE_OPTION_DEFAULTS"].eventDragMinDistance);
13450            dragging.delay =
13451                ev.isTouch ? // TODO: eventually read eventLongPressDelay instead vvv
13452                    (longPressDelay != null ? longPressDelay : _fullcalendar_core_internal_js__WEBPACK_IMPORTED_MODULE_1__["BASE_OPTION_DEFAULTS"].longPressDelay) :
13453                    0;
13454        };
13455        this.handleDragStart = (ev) => {
13456            if (ev.isTouch &&
13457                this.dragging.delay &&
13458                ev.subjectEl.classList.contains('fc-event')) {
13459                this.dragging.mirror.getMirrorEl().classList.add('fc-event-selected');
13460            }
13461        };
13462        this.settings = settings;
13463        let dragging = this.dragging = new FeaturefulElementDragging(el);
13464        dragging.touchScrollAllowed = false;
13465        if (settings.itemSelector != null) {
13466            dragging.pointer.selector = settings.itemSelector;
13467        }
13468        if (settings.appendTo != null) {
13469            dragging.mirror.parentNode = settings.appendTo; // TODO: write tests
13470        }
13471        dragging.emitter.on('pointerdown', this.handlePointerDown);
13472        dragging.emitter.on('dragstart', this.handleDragStart);
13473        new ExternalElementDragging(dragging, settings.eventData); // eslint-disable-line no-new
13474    }
13475    destroy() {
13476        this.dragging.destroy();
13477    }
13478}
13479
13480/*
13481Detects when a *THIRD-PARTY* drag-n-drop system interacts with elements.
13482The third-party system is responsible for drawing the visuals effects of the drag.
13483This class simply monitors for pointer movements and fires events.
13484It also has the ability to hide the moving element (the "mirror") during the drag.
13485*/
13486class InferredElementDragging extends _fullcalendar_core_internal_js__WEBPACK_IMPORTED_MODULE_1__["ElementDragging"] {
13487    constructor(containerEl) {
13488        super(containerEl);
13489        this.shouldIgnoreMove = false;
13490        this.mirrorSelector = '';
13491        this.currentMirrorEl = null;
13492        this.handlePointerDown = (ev) => {
13493            this.emitter.trigger('pointerdown', ev);
13494            if (!this.shouldIgnoreMove) {
13495                // fire dragstart right away. does not support delay or min-distance
13496                this.emitter.trigger('dragstart', ev);
13497            }
13498        };
13499        this.handlePointerMove = (ev) => {
13500            if (!this.shouldIgnoreMove) {
13501                this.emitter.trigger('dragmove', ev);
13502            }
13503        };
13504        this.handlePointerUp = (ev) => {
13505            this.emitter.trigger('pointerup', ev);
13506            if (!this.shouldIgnoreMove) {
13507                // fire dragend right away. does not support a revert animation
13508                this.emitter.trigger('dragend', ev);
13509            }
13510        };
13511        let pointer = this.pointer = new PointerDragging(containerEl);
13512        pointer.emitter.on('pointerdown', this.handlePointerDown);
13513        pointer.emitter.on('pointermove', this.handlePointerMove);
13514        pointer.emitter.on('pointerup', this.handlePointerUp);
13515    }
13516    destroy() {
13517        this.pointer.destroy();
13518    }
13519    setIgnoreMove(bool) {
13520        this.shouldIgnoreMove = bool;
13521    }
13522    setMirrorIsVisible(bool) {
13523        if (bool) {
13524            // restore a previously hidden element.
13525            // use the reference in case the selector class has already been removed.
13526            if (this.currentMirrorEl) {
13527                this.currentMirrorEl.style.visibility = '';
13528                this.currentMirrorEl = null;
13529            }
13530        }
13531        else {
13532            let mirrorEl = this.mirrorSelector
13533                // TODO: somehow query FullCalendars WITHIN shadow-roots
13534                ? document.querySelector(this.mirrorSelector)
13535                : null;
13536            if (mirrorEl) {
13537                this.currentMirrorEl = mirrorEl;
13538                mirrorEl.style.visibility = 'hidden';
13539            }
13540        }
13541    }
13542}
13543
13544/*
13545Bridges third-party drag-n-drop systems with FullCalendar.
13546Must be instantiated and destroyed by caller.
13547*/
13548class ThirdPartyDraggable {
13549    constructor(containerOrSettings, settings) {
13550        let containerEl = document;
13551        if (
13552        // wish we could just test instanceof EventTarget, but doesn't work in IE11
13553        containerOrSettings === document ||
13554            containerOrSettings instanceof Element) {
13555            containerEl = containerOrSettings;
13556            settings = settings || {};
13557        }
13558        else {
13559            settings = (containerOrSettings || {});
13560        }
13561        let dragging = this.dragging = new InferredElementDragging(containerEl);
13562        if (typeof settings.itemSelector === 'string') {
13563            dragging.pointer.selector = settings.itemSelector;
13564        }
13565        else if (containerEl === document) {
13566            dragging.pointer.selector = '[data-event]';
13567        }
13568        if (typeof settings.mirrorSelector === 'string') {
13569            dragging.mirrorSelector = settings.mirrorSelector;
13570        }
13571        new ExternalElementDragging(dragging, settings.eventData); // eslint-disable-line no-new
13572    }
13573    destroy() {
13574        this.dragging.destroy();
13575    }
13576}
13577
13578var index = Object(_fullcalendar_core_index_js__WEBPACK_IMPORTED_MODULE_0__["createPlugin"])({
13579    name: '@fullcalendar/interaction',
13580    componentInteractions: [DateClicking, DateSelecting, EventDragging, EventResizing],
13581    calendarInteractions: [UnselectAuto],
13582    elementDraggingImpl: FeaturefulElementDragging,
13583    optionRefiners: OPTION_REFINERS,
13584    listenerRefiners: LISTENER_REFINERS,
13585});
13586
13587
13588
13589
13590/***/ }),
13591
vendor: 4,950 bytes, lines 13592-13706
13592/***/ "./node_modules/@fullcalendar/moment/index.js":
13593/*!****************************************************!*\
13594  !*** ./node_modules/@fullcalendar/moment/index.js ***!
13595  \****************************************************/
13596/*! exports provided: default, toMoment, toMomentDuration */
13597/***/ (function(module, __webpack_exports__, __webpack_require__) {
13598
13599"use strict";
13600__webpack_require__.r(__webpack_exports__);
13601/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "default", function() { return index; });
13602/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "toMoment", function() { return toMoment; });
13603/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "toMomentDuration", function() { return toMomentDuration; });
13604/* harmony import */ var _fullcalendar_core_index_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @fullcalendar/core/index.js */ "./node_modules/@fullcalendar/core/index.js");
13605/* harmony import */ var moment__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! moment */ "./node_modules/moment/moment.js");
13606/* harmony import */ var moment__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(moment__WEBPACK_IMPORTED_MODULE_1__);
13607/* harmony import */ var _fullcalendar_core_internal_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @fullcalendar/core/internal.js */ "./node_modules/@fullcalendar/core/internal.js");
13608
13609
13610
13611
13612function toMoment(date, calendar) {
13613    if (!(calendar instanceof _fullcalendar_core_internal_js__WEBPACK_IMPORTED_MODULE_2__["CalendarImpl"])) {
13614        throw new Error('must supply a CalendarApi instance');
13615    }
13616    let { dateEnv } = calendar.getCurrentData();
13617    return convertToMoment(date, dateEnv.timeZone, null, dateEnv.locale.codes[0]);
13618}
13619function toMomentDuration(fcDuration) {
13620    return moment__WEBPACK_IMPORTED_MODULE_1___default.a.duration(fcDuration); // moment accepts all the props that fc.Duration already has!
13621}
13622// Internal Utils
13623function convertToMoment(input, timeZone, timeZoneOffset, locale) {
13624    let mom;
13625    if (timeZone === 'local') {
13626        mom = moment__WEBPACK_IMPORTED_MODULE_1___default()(input);
13627    }
13628    else if (timeZone === 'UTC') {
13629        mom = moment__WEBPACK_IMPORTED_MODULE_1___default.a.utc(input);
13630    }
13631    else if (moment__WEBPACK_IMPORTED_MODULE_1___default.a.tz) {
13632        mom = moment__WEBPACK_IMPORTED_MODULE_1___default.a.tz(input, timeZone);
13633    }
13634    else {
13635        mom = moment__WEBPACK_IMPORTED_MODULE_1___default.a.utc(input);
13636        if (timeZoneOffset != null) {
13637            mom.utcOffset(timeZoneOffset);
13638        }
13639    }
13640    mom.locale(locale);
13641    return mom;
13642}
13643
13644function formatWithCmdStr(cmdStr, arg) {
13645    let cmd = parseCmdStr(cmdStr);
13646    if (arg.end) {
13647        let startMom = convertToMoment(arg.start.array, arg.timeZone, arg.start.timeZoneOffset, arg.localeCodes[0]);
13648        let endMom = convertToMoment(arg.end.array, arg.timeZone, arg.end.timeZoneOffset, arg.localeCodes[0]);
13649        return formatRange(cmd, createMomentFormatFunc(startMom), createMomentFormatFunc(endMom), arg.defaultSeparator);
13650    }
13651    return convertToMoment(arg.date.array, arg.timeZone, arg.date.timeZoneOffset, arg.localeCodes[0]).format(cmd.whole); // TODO: test for this
13652}
13653function createMomentFormatFunc(mom) {
13654    return (cmdStr) => (cmdStr ? mom.format(cmdStr) : '' // because calling with blank string results in ISO8601 :(
13655    );
13656}
13657function parseCmdStr(cmdStr) {
13658    let parts = cmdStr.match(/^(.*?)\{(.*)\}(.*)$/); // TODO: lookbehinds for escape characters
13659    if (parts) {
13660        let middle = parseCmdStr(parts[2]);
13661        return {
13662            head: parts[1],
13663            middle,
13664            tail: parts[3],
13665            whole: parts[1] + middle.whole + parts[3],
13666        };
13667    }
13668    return {
13669        head: null,
13670        middle: null,
13671        tail: null,
13672        whole: cmdStr,
13673    };
13674}
13675function formatRange(cmd, formatStart, formatEnd, separator) {
13676    if (cmd.middle) {
13677        let startHead = formatStart(cmd.head);
13678        let startMiddle = formatRange(cmd.middle, formatStart, formatEnd, separator);
13679        let startTail = formatStart(cmd.tail);
13680        let endHead = formatEnd(cmd.head);
13681        let endMiddle = formatRange(cmd.middle, formatStart, formatEnd, separator);
13682        let endTail = formatEnd(cmd.tail);
13683        if (startHead === endHead && startTail === endTail) {
13684            return startHead +
13685                (startMiddle === endMiddle ? startMiddle : startMiddle + separator + endMiddle) +
13686                startTail;
13687        }
13688    }
13689    let startWhole = formatStart(cmd.whole);
13690    let endWhole = formatEnd(cmd.whole);
13691    if (startWhole === endWhole) {
13692        return startWhole;
13693    }
13694    return startWhole + separator + endWhole;
13695}
13696
13697var index = Object(_fullcalendar_core_index_js__WEBPACK_IMPORTED_MODULE_0__["createPlugin"])({
13698    name: '@fullcalendar/moment',
13699    cmdFormatter: formatWithCmdStr,
13700});
13701
13702
13703
13704
13705/***/ }),
13706
vendor: 6,586 bytes, lines 13707-13861
13707/***/ "./node_modules/@fullcalendar/vue3/dist/FullCalendar.js":
13708/*!**************************************************************!*\
13709  !*** ./node_modules/@fullcalendar/vue3/dist/FullCalendar.js ***!
13710  \**************************************************************/
13711/*! exports provided: default */
13712/***/ (function(module, __webpack_exports__, __webpack_require__) {
13713
13714"use strict";
13715__webpack_require__.r(__webpack_exports__);
13716/* harmony import */ var vue__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! vue */ "./node_modules/vue/dist/vue.esm-bundler.js");
13717/* harmony import */ var _fullcalendar_core__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @fullcalendar/core */ "./node_modules/@fullcalendar/core/index.js");
13718/* harmony import */ var _fullcalendar_core_internal__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @fullcalendar/core/internal */ "./node_modules/@fullcalendar/core/internal.js");
13719/* harmony import */ var _options_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./options.js */ "./node_modules/@fullcalendar/vue3/dist/options.js");
13720
13721
13722
13723
13724const FullCalendar = Object(vue__WEBPACK_IMPORTED_MODULE_0__["defineComponent"])({
13725    props: {
13726        options: Object
13727    },
13728    data() {
13729        return {
13730            renderId: 0,
13731            customRenderingMap: new Map()
13732        };
13733    },
13734    methods: {
13735        getApi() {
13736            return getSecret(this).calendar;
13737        },
13738        buildOptions(suppliedOptions) {
13739            return {
13740                ...suppliedOptions,
13741                customRenderingMetaMap: kebabToCamelKeys(this.$slots),
13742                handleCustomRendering: getSecret(this).handleCustomRendering,
13743            };
13744        },
13745    },
13746    render() {
13747        const customRenderingNodes = [];
13748        for (const customRendering of this.customRenderingMap.values()) {
13749            customRenderingNodes.push(Object(vue__WEBPACK_IMPORTED_MODULE_0__["h"])(CustomRenderingComponent, {
13750                key: customRendering.id,
13751                customRendering,
13752            }));
13753        }
13754        return Object(vue__WEBPACK_IMPORTED_MODULE_0__["h"])('div', {
13755            // when renderId is changed, Vue will trigger a real-DOM async rerender, calling beforeUpdate/updated
13756            attrs: { 'data-fc-render-id': this.renderId }
13757        }, Object(vue__WEBPACK_IMPORTED_MODULE_0__["h"])(vue__WEBPACK_IMPORTED_MODULE_0__["Fragment"], customRenderingNodes)); // for containing CustomRendering keys
13758    },
13759    mounted() {
13760        const customRenderingStore = new _fullcalendar_core_internal__WEBPACK_IMPORTED_MODULE_2__["CustomRenderingStore"]();
13761        getSecret(this).handleCustomRendering = customRenderingStore.handle.bind(customRenderingStore);
13762        const calendarOptions = this.buildOptions(this.options);
13763        const calendar = new _fullcalendar_core__WEBPACK_IMPORTED_MODULE_1__["Calendar"](this.$el, calendarOptions);
13764        getSecret(this).calendar = calendar;
13765        calendar.render();
13766        customRenderingStore.subscribe((customRenderingMap) => {
13767            this.customRenderingMap = customRenderingMap; // likely same reference, so won't rerender
13768            this.renderId++; // force rerender
13769            getSecret(this).needCustomRenderingResize = true;
13770        });
13771    },
13772    beforeUpdate() {
13773        this.getApi().resumeRendering(); // the watcher handlers paused it
13774    },
13775    updated() {
13776        if (getSecret(this).needCustomRenderingResize) {
13777            getSecret(this).needCustomRenderingResize = false;
13778            this.getApi().updateSize();
13779        }
13780    },
13781    beforeUnmount() {
13782        this.getApi().destroy();
13783    },
13784    watch: buildWatchers()
13785});
13786/* harmony default export */ __webpack_exports__["default"] = (FullCalendar);
13787// Custom Rendering
13788// -------------------------------------------------------------------------------------------------
13789const CustomRenderingComponent = Object(vue__WEBPACK_IMPORTED_MODULE_0__["defineComponent"])({
13790    props: {
13791        customRendering: Object
13792    },
13793    render() {
13794        const customRendering = this.customRendering;
13795        const innerContent = typeof customRendering.generatorMeta === 'function' ?
13796            customRendering.generatorMeta(customRendering.renderProps) : // vue-normalized slot function
13797            customRendering.generatorMeta; // probably a vue JSX node returned from content-inject func
13798        return Object(vue__WEBPACK_IMPORTED_MODULE_0__["h"])(vue__WEBPACK_IMPORTED_MODULE_0__["Teleport"], { to: customRendering.containerEl }, innerContent);
13799    }
13800});
13801// storing internal state:
13802// https://github.com/vuejs/vue/issues/1988#issuecomment-163013818
13803function getSecret(inst) {
13804    return inst;
13805}
13806function buildWatchers() {
13807    let watchers = {
13808        // watches changes of ALL options and their nested objects,
13809        // but this is only a means to be notified of top-level non-complex options changes.
13810        options: {
13811            deep: true,
13812            handler(options) {
13813                let calendar = this.getApi();
13814                calendar.pauseRendering();
13815                let calendarOptions = this.buildOptions(options);
13816                calendar.resetOptions(calendarOptions);
13817                this.renderId++; // will queue a rerender
13818            }
13819        }
13820    };
13821    for (let complexOptionName in _options_js__WEBPACK_IMPORTED_MODULE_3__["OPTION_IS_COMPLEX"]) {
13822        // handlers called when nested objects change
13823        watchers[`options.${complexOptionName}`] = {
13824            deep: true,
13825            handler(val) {
13826                // unfortunately the handler is called with undefined if new props were set, but the complex one wasn't ever set
13827                if (val !== undefined) {
13828                    let calendar = this.getApi();
13829                    calendar.pauseRendering();
13830                    calendar.resetOptions({
13831                        [complexOptionName]: val
13832                    }, [complexOptionName]);
13833                    this.renderId++; // will queue a rerender
13834                }
13835            }
13836        };
13837    }
13838    return watchers;
13839}
13840// General Utils
13841// -------------------------------------------------------------------------------------------------
13842function kebabToCamelKeys(map) {
13843    const newMap = {};
13844    for (const key in map) {
13845        newMap[kebabToCamel(key)] = map[key];
13846    }
13847    return newMap;
13848}
13849function kebabToCamel(s) {
13850    return s
13851        .split('-')
13852        .map((word, index) => index ? capitalize(word) : word)
13853        .join('');
13854}
13855function capitalize(s) {
13856    return s.charAt(0).toUpperCase() + s.slice(1);
13857}
13858//# sourceMappingURL=FullCalendar.js.map
13859
13860/***/ }),
13861
vendor: 745 bytes, lines 13862-13877
13862/***/ "./node_modules/@fullcalendar/vue3/dist/index.js":
13863/*!*******************************************************!*\
13864  !*** ./node_modules/@fullcalendar/vue3/dist/index.js ***!
13865  \*******************************************************/
13866/*! exports provided: default */
13867/***/ (function(module, __webpack_exports__, __webpack_require__) {
13868
13869"use strict";
13870__webpack_require__.r(__webpack_exports__);
13871/* harmony import */ var _FullCalendar_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./FullCalendar.js */ "./node_modules/@fullcalendar/vue3/dist/FullCalendar.js");
13872
13873/* harmony default export */ __webpack_exports__["default"] = (_FullCalendar_js__WEBPACK_IMPORTED_MODULE_0__["default"]);
13874//# sourceMappingURL=index.js.map
13875
13876/***/ }),
13877
vendor: 746 bytes, lines 13878-13898
13878/***/ "./node_modules/@fullcalendar/vue3/dist/options.js":
13879/*!*********************************************************!*\
13880  !*** ./node_modules/@fullcalendar/vue3/dist/options.js ***!
13881  \*********************************************************/
13882/*! exports provided: OPTION_IS_COMPLEX */
13883/***/ (function(module, __webpack_exports__, __webpack_require__) {
13884
13885"use strict";
13886__webpack_require__.r(__webpack_exports__);
13887/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "OPTION_IS_COMPLEX", function() { return OPTION_IS_COMPLEX; });
13888const OPTION_IS_COMPLEX = {
13889    headerToolbar: true,
13890    footerToolbar: true,
13891    events: true,
13892    eventSources: true,
13893    resources: true
13894};
13895//# sourceMappingURL=options.js.map
13896
13897/***/ }),
13898
vendor: 188,791 bytes, lines 13899-19723
13899/***/ "./node_modules/@vue/compiler-core/dist/compiler-core.esm-bundler.js":
13900/*!***************************************************************************!*\
13901  !*** ./node_modules/@vue/compiler-core/dist/compiler-core.esm-bundler.js ***!
13902  \***************************************************************************/
13903/*! exports provided: generateCodeFrame, BASE_TRANSITION, BindingTypes, CAMELIZE, CAPITALIZE, CREATE_BLOCK, CREATE_COMMENT, CREATE_ELEMENT_BLOCK, CREATE_ELEMENT_VNODE, CREATE_SLOTS, CREATE_STATIC, CREATE_TEXT, CREATE_VNODE, CompilerDeprecationTypes, ConstantTypes, ElementTypes, ErrorCodes, FRAGMENT, GUARD_REACTIVE_PROPS, IS_MEMO_SAME, IS_REF, KEEP_ALIVE, MERGE_PROPS, NORMALIZE_CLASS, NORMALIZE_PROPS, NORMALIZE_STYLE, Namespaces, NodeTypes, OPEN_BLOCK, POP_SCOPE_ID, PUSH_SCOPE_ID, RENDER_LIST, RENDER_SLOT, RESOLVE_COMPONENT, RESOLVE_DIRECTIVE, RESOLVE_DYNAMIC_COMPONENT, RESOLVE_FILTER, SET_BLOCK_TRACKING, SUSPENSE, TELEPORT, TO_DISPLAY_STRING, TO_HANDLERS, TO_HANDLER_KEY, TS_NODE_TYPES, UNREF, WITH_CTX, WITH_DIRECTIVES, WITH_MEMO, advancePositionWithClone, advancePositionWithMutation, assert, baseCompile, baseParse, buildDirectiveArgs, buildProps, buildSlots, checkCompatEnabled, convertToBlock, createArrayExpression, createAssignmentExpression, createBlockStatement, createCacheExpression, createCallExpression, createCompilerError, createCompoundExpression, createConditionalExpression, createForLoopParams, createFunctionExpression, createIfStatement, createInterpolation, createObjectExpression, createObjectProperty, createReturnStatement, createRoot, createSequenceExpression, createSimpleExpression, createStructuralDirectiveTransform, createTemplateLiteral, createTransformContext, createVNodeCall, errorMessages, extractIdentifiers, findDir, findProp, forAliasRE, generate, getBaseTransformPreset, getConstantType, getMemoedVNodeCall, getVNodeBlockHelper, getVNodeHelper, hasDynamicKeyVBind, hasScopeRef, helperNameMap, injectProp, isCoreComponent, isFunctionType, isInDestructureAssignment, isInNewExpression, isMemberExpression, isMemberExpressionBrowser, isMemberExpressionNode, isReferencedIdentifier, isSimpleIdentifier, isSlotOutlet, isStaticArgOf, isStaticExp, isStaticProperty, isStaticPropertyKey, isTemplateNode, isText, isVSlot, locStub, noopDirectiveTransform, processExpression, processFor, processIf, processSlotOutlet, registerRuntimeHelpers, resolveComponentType, stringifyExpression, toValidAssetId, trackSlotScopes, trackVForSlotScopes, transform, transformBind, transformElement, transformExpression, transformModel, transformOn, traverseNode, unwrapTSNode, walkBlockDeclarations, walkFunctionParams, walkIdentifiers, warnDeprecation */
13904/***/ (function(module, __webpack_exports__, __webpack_require__) {
13905
13906"use strict";
13907__webpack_require__.r(__webpack_exports__);
13908/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "BASE_TRANSITION", function() { return BASE_TRANSITION; });
13909/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "BindingTypes", function() { return BindingTypes; });
13910/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "CAMELIZE", function() { return CAMELIZE; });
13911/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "CAPITALIZE", function() { return CAPITALIZE; });
13912/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "CREATE_BLOCK", function() { return CREATE_BLOCK; });
13913/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "CREATE_COMMENT", function() { return CREATE_COMMENT; });
13914/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "CREATE_ELEMENT_BLOCK", function() { return CREATE_ELEMENT_BLOCK; });
13915/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "CREATE_ELEMENT_VNODE", function() { return CREATE_ELEMENT_VNODE; });
13916/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "CREATE_SLOTS", function() { return CREATE_SLOTS; });
13917/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "CREATE_STATIC", function() { return CREATE_STATIC; });
13918/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "CREATE_TEXT", function() { return CREATE_TEXT; });
13919/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "CREATE_VNODE", function() { return CREATE_VNODE; });
13920/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "CompilerDeprecationTypes", function() { return CompilerDeprecationTypes; });
13921/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "ConstantTypes", function() { return ConstantTypes; });
13922/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "ElementTypes", function() { return ElementTypes; });
13923/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "ErrorCodes", function() { return ErrorCodes; });
13924/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "FRAGMENT", function() { return FRAGMENT; });
13925/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "GUARD_REACTIVE_PROPS", function() { return GUARD_REACTIVE_PROPS; });
13926/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "IS_MEMO_SAME", function() { return IS_MEMO_SAME; });
13927/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "IS_REF", function() { return IS_REF; });
13928/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "KEEP_ALIVE", function() { return KEEP_ALIVE; });
13929/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "MERGE_PROPS", function() { return MERGE_PROPS; });
13930/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "NORMALIZE_CLASS", function() { return NORMALIZE_CLASS; });
13931/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "NORMALIZE_PROPS", function() { return NORMALIZE_PROPS; });
13932/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "NORMALIZE_STYLE", function() { return NORMALIZE_STYLE; });
13933/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "Namespaces", function() { return Namespaces; });
13934/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "NodeTypes", function() { return NodeTypes; });
13935/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "OPEN_BLOCK", function() { return OPEN_BLOCK; });
13936/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "POP_SCOPE_ID", function() { return POP_SCOPE_ID; });
13937/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "PUSH_SCOPE_ID", function() { return PUSH_SCOPE_ID; });
13938/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "RENDER_LIST", function() { return RENDER_LIST; });
13939/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "RENDER_SLOT", function() { return RENDER_SLOT; });
13940/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "RESOLVE_COMPONENT", function() { return RESOLVE_COMPONENT; });
13941/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "RESOLVE_DIRECTIVE", function() { return RESOLVE_DIRECTIVE; });
13942/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "RESOLVE_DYNAMIC_COMPONENT", function() { return RESOLVE_DYNAMIC_COMPONENT; });
13943/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "RESOLVE_FILTER", function() { return RESOLVE_FILTER; });
13944/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "SET_BLOCK_TRACKING", function() { return SET_BLOCK_TRACKING; });
13945/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "SUSPENSE", function() { return SUSPENSE; });
13946/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "TELEPORT", function() { return TELEPORT; });
13947/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "TO_DISPLAY_STRING", function() { return TO_DISPLAY_STRING; });
13948/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "TO_HANDLERS", function() { return TO_HANDLERS; });
13949/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "TO_HANDLER_KEY", function() { return TO_HANDLER_KEY; });
13950/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "TS_NODE_TYPES", function() { return TS_NODE_TYPES; });
13951/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "UNREF", function() { return UNREF; });
13952/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "WITH_CTX", function() { return WITH_CTX; });
13953/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "WITH_DIRECTIVES", function() { return WITH_DIRECTIVES; });
13954/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "WITH_MEMO", function() { return WITH_MEMO; });
13955/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "advancePositionWithClone", function() { return advancePositionWithClone; });
13956/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "advancePositionWithMutation", function() { return advancePositionWithMutation; });
13957/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "assert", function() { return assert; });
13958/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "baseCompile", function() { return baseCompile; });
13959/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "baseParse", function() { return baseParse; });
13960/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "buildDirectiveArgs", function() { return buildDirectiveArgs; });
13961/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "buildProps", function() { return buildProps; });
13962/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "buildSlots", function() { return buildSlots; });
13963/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "checkCompatEnabled", function() { return checkCompatEnabled; });
13964/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "convertToBlock", function() { return convertToBlock; });
13965/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "createArrayExpression", function() { return createArrayExpression; });
13966/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "createAssignmentExpression", function() { return createAssignmentExpression; });
13967/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "createBlockStatement", function() { return createBlockStatement; });
13968/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "createCacheExpression", function() { return createCacheExpression; });
13969/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "createCallExpression", function() { return createCallExpression; });
13970/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "createCompilerError", function() { return createCompilerError; });
13971/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "createCompoundExpression", function() { return createCompoundExpression; });
13972/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "createConditionalExpression", function() { return createConditionalExpression; });
13973/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "createForLoopParams", function() { return createForLoopParams; });
13974/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "createFunctionExpression", function() { return createFunctionExpression; });
13975/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "createIfStatement", function() { return createIfStatement; });
13976/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "createInterpolation", function() { return createInterpolation; });
13977/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "createObjectExpression", function() { return createObjectExpression; });
13978/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "createObjectProperty", function() { return createObjectProperty; });
13979/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "createReturnStatement", function() { return createReturnStatement; });
13980/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "createRoot", function() { return createRoot; });
13981/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "createSequenceExpression", function() { return createSequenceExpression; });
13982/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "createSimpleExpression", function() { return createSimpleExpression; });
13983/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "createStructuralDirectiveTransform", function() { return createStructuralDirectiveTransform; });
13984/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "createTemplateLiteral", function() { return createTemplateLiteral; });
13985/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "createTransformContext", function() { return createTransformContext; });
13986/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "createVNodeCall", function() { return createVNodeCall; });
13987/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "errorMessages", function() { return errorMessages; });
13988/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "extractIdentifiers", function() { return extractIdentifiers; });
13989/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "findDir", function() { return findDir; });
13990/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "findProp", function() { return findProp; });
13991/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "forAliasRE", function() { return forAliasRE; });
13992/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "generate", function() { return generate; });
13993/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getBaseTransformPreset", function() { return getBaseTransformPreset; });
13994/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getConstantType", function() { return getConstantType; });
13995/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getMemoedVNodeCall", function() { return getMemoedVNodeCall; });
13996/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getVNodeBlockHelper", function() { return getVNodeBlockHelper; });
13997/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getVNodeHelper", function() { return getVNodeHelper; });
13998/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "hasDynamicKeyVBind", function() { return hasDynamicKeyVBind; });
13999/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "hasScopeRef", function() { return hasScopeRef; });
14000/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "helperNameMap", function() { return helperNameMap; });
14001/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "injectProp", function() { return injectProp; });
14002/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "isCoreComponent", function() { return isCoreComponent; });
14003/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "isFunctionType", function() { return isFunctionType; });
14004/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "isInDestructureAssignment", function() { return isInDestructureAssignment; });
14005/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "isInNewExpression", function() { return isInNewExpression; });
14006/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "isMemberExpression", function() { return isMemberExpression; });
14007/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "isMemberExpressionBrowser", function() { return isMemberExpressionBrowser; });
14008/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "isMemberExpressionNode", function() { return isMemberExpressionNode; });
14009/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "isReferencedIdentifier", function() { return isReferencedIdentifier; });
14010/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "isSimpleIdentifier", function() { return isSimpleIdentifier; });
14011/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "isSlotOutlet", function() { return isSlotOutlet; });
14012/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "isStaticArgOf", function() { return isStaticArgOf; });
14013/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "isStaticExp", function() { return isStaticExp; });
14014/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "isStaticProperty", function() { return isStaticProperty; });
14015/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "isStaticPropertyKey", function() { return isStaticPropertyKey; });
14016/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "isTemplateNode", function() { return isTemplateNode; });
14017/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "isText", function() { return isText$1; });
14018/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "isVSlot", function() { return isVSlot; });
14019/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "locStub", function() { return locStub; });
14020/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "noopDirectiveTransform", function() { return noopDirectiveTransform; });
14021/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "processExpression", function() { return processExpression; });
14022/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "processFor", function() { return processFor; });
14023/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "processIf", function() { return processIf; });
14024/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "processSlotOutlet", function() { return processSlotOutlet; });
14025/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "registerRuntimeHelpers", function() { return registerRuntimeHelpers; });
14026/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "resolveComponentType", function() { return resolveComponentType; });
14027/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "stringifyExpression", function() { return stringifyExpression; });
14028/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "toValidAssetId", function() { return toValidAssetId; });
14029/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "trackSlotScopes", function() { return trackSlotScopes; });
14030/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "trackVForSlotScopes", function() { return trackVForSlotScopes; });
14031/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "transform", function() { return transform; });
14032/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "transformBind", function() { return transformBind; });
14033/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "transformElement", function() { return transformElement; });
14034/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "transformExpression", function() { return transformExpression; });
14035/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "transformModel", function() { return transformModel; });
14036/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "transformOn", function() { return transformOn; });
14037/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "traverseNode", function() { return traverseNode; });
14038/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "unwrapTSNode", function() { return unwrapTSNode; });
14039/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "walkBlockDeclarations", function() { return walkBlockDeclarations; });
14040/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "walkFunctionParams", function() { return walkFunctionParams; });
14041/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "walkIdentifiers", function() { return walkIdentifiers; });
14042/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "warnDeprecation", function() { return warnDeprecation; });
14043/* harmony import */ var _vue_shared__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @vue/shared */ "./node_modules/@vue/shared/dist/shared.esm-bundler.js");
14044/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "generateCodeFrame", function() { return _vue_shared__WEBPACK_IMPORTED_MODULE_0__["generateCodeFrame"]; });
14045
14046/**
14047* @vue/compiler-core v3.4.21
14048* (c) 2018-present Yuxi (Evan) You and Vue contributors
14049* @license MIT
14050**/
14051
14052
14053
14054const FRAGMENT = Symbol( true ? `Fragment` : undefined);
14055const TELEPORT = Symbol( true ? `Teleport` : undefined);
14056const SUSPENSE = Symbol( true ? `Suspense` : undefined);
14057const KEEP_ALIVE = Symbol( true ? `KeepAlive` : undefined);
14058const BASE_TRANSITION = Symbol( true ? `BaseTransition` : undefined);
14059const OPEN_BLOCK = Symbol( true ? `openBlock` : undefined);
14060const CREATE_BLOCK = Symbol( true ? `createBlock` : undefined);
14061const CREATE_ELEMENT_BLOCK = Symbol( true ? `createElementBlock` : undefined);
14062const CREATE_VNODE = Symbol( true ? `createVNode` : undefined);
14063const CREATE_ELEMENT_VNODE = Symbol( true ? `createElementVNode` : undefined);
14064const CREATE_COMMENT = Symbol( true ? `createCommentVNode` : undefined);
14065const CREATE_TEXT = Symbol( true ? `createTextVNode` : undefined);
14066const CREATE_STATIC = Symbol( true ? `createStaticVNode` : undefined);
14067const RESOLVE_COMPONENT = Symbol( true ? `resolveComponent` : undefined);
14068const RESOLVE_DYNAMIC_COMPONENT = Symbol(
14069   true ? `resolveDynamicComponent` : undefined
14070);
14071const RESOLVE_DIRECTIVE = Symbol( true ? `resolveDirective` : undefined);
14072const RESOLVE_FILTER = Symbol( true ? `resolveFilter` : undefined);
14073const WITH_DIRECTIVES = Symbol( true ? `withDirectives` : undefined);
14074const RENDER_LIST = Symbol( true ? `renderList` : undefined);
14075const RENDER_SLOT = Symbol( true ? `renderSlot` : undefined);
14076const CREATE_SLOTS = Symbol( true ? `createSlots` : undefined);
14077const TO_DISPLAY_STRING = Symbol( true ? `toDisplayString` : undefined);
14078const MERGE_PROPS = Symbol( true ? `mergeProps` : undefined);
14079const NORMALIZE_CLASS = Symbol( true ? `normalizeClass` : undefined);
14080const NORMALIZE_STYLE = Symbol( true ? `normalizeStyle` : undefined);
14081const NORMALIZE_PROPS = Symbol( true ? `normalizeProps` : undefined);
14082const GUARD_REACTIVE_PROPS = Symbol( true ? `guardReactiveProps` : undefined);
14083const TO_HANDLERS = Symbol( true ? `toHandlers` : undefined);
14084const CAMELIZE = Symbol( true ? `camelize` : undefined);
14085const CAPITALIZE = Symbol( true ? `capitalize` : undefined);
14086const TO_HANDLER_KEY = Symbol( true ? `toHandlerKey` : undefined);
14087const SET_BLOCK_TRACKING = Symbol( true ? `setBlockTracking` : undefined);
14088const PUSH_SCOPE_ID = Symbol( true ? `pushScopeId` : undefined);
14089const POP_SCOPE_ID = Symbol( true ? `popScopeId` : undefined);
14090const WITH_CTX = Symbol( true ? `withCtx` : undefined);
14091const UNREF = Symbol( true ? `unref` : undefined);
14092const IS_REF = Symbol( true ? `isRef` : undefined);
14093const WITH_MEMO = Symbol( true ? `withMemo` : undefined);
14094const IS_MEMO_SAME = Symbol( true ? `isMemoSame` : undefined);
14095const helperNameMap = {
14096  [FRAGMENT]: `Fragment`,
14097  [TELEPORT]: `Teleport`,
14098  [SUSPENSE]: `Suspense`,
14099  [KEEP_ALIVE]: `KeepAlive`,
14100  [BASE_TRANSITION]: `BaseTransition`,
14101  [OPEN_BLOCK]: `openBlock`,
14102  [CREATE_BLOCK]: `createBlock`,
14103  [CREATE_ELEMENT_BLOCK]: `createElementBlock`,
14104  [CREATE_VNODE]: `createVNode`,
14105  [CREATE_ELEMENT_VNODE]: `createElementVNode`,
14106  [CREATE_COMMENT]: `createCommentVNode`,
14107  [CREATE_TEXT]: `createTextVNode`,
14108  [CREATE_STATIC]: `createStaticVNode`,
14109  [RESOLVE_COMPONENT]: `resolveComponent`,
14110  [RESOLVE_DYNAMIC_COMPONENT]: `resolveDynamicComponent`,
14111  [RESOLVE_DIRECTIVE]: `resolveDirective`,
14112  [RESOLVE_FILTER]: `resolveFilter`,
14113  [WITH_DIRECTIVES]: `withDirectives`,
14114  [RENDER_LIST]: `renderList`,
14115  [RENDER_SLOT]: `renderSlot`,
14116  [CREATE_SLOTS]: `createSlots`,
14117  [TO_DISPLAY_STRING]: `toDisplayString`,
14118  [MERGE_PROPS]: `mergeProps`,
14119  [NORMALIZE_CLASS]: `normalizeClass`,
14120  [NORMALIZE_STYLE]: `normalizeStyle`,
14121  [NORMALIZE_PROPS]: `normalizeProps`,
14122  [GUARD_REACTIVE_PROPS]: `guardReactiveProps`,
14123  [TO_HANDLERS]: `toHandlers`,
14124  [CAMELIZE]: `camelize`,
14125  [CAPITALIZE]: `capitalize`,
14126  [TO_HANDLER_KEY]: `toHandlerKey`,
14127  [SET_BLOCK_TRACKING]: `setBlockTracking`,
14128  [PUSH_SCOPE_ID]: `pushScopeId`,
14129  [POP_SCOPE_ID]: `popScopeId`,
14130  [WITH_CTX]: `withCtx`,
14131  [UNREF]: `unref`,
14132  [IS_REF]: `isRef`,
14133  [WITH_MEMO]: `withMemo`,
14134  [IS_MEMO_SAME]: `isMemoSame`
14135};
14136function registerRuntimeHelpers(helpers) {
14137  Object.getOwnPropertySymbols(helpers).forEach((s) => {
14138    helperNameMap[s] = helpers[s];
14139  });
14140}
14141
14142const Namespaces = {
14143  "HTML": 0,
14144  "0": "HTML",
14145  "SVG": 1,
14146  "1": "SVG",
14147  "MATH_ML": 2,
14148  "2": "MATH_ML"
14149};
14150const NodeTypes = {
14151  "ROOT": 0,
14152  "0": "ROOT",
14153  "ELEMENT": 1,
14154  "1": "ELEMENT",
14155  "TEXT": 2,
14156  "2": "TEXT",
14157  "COMMENT": 3,
14158  "3": "COMMENT",
14159  "SIMPLE_EXPRESSION": 4,
14160  "4": "SIMPLE_EXPRESSION",
14161  "INTERPOLATION": 5,
14162  "5": "INTERPOLATION",
14163  "ATTRIBUTE": 6,
14164  "6": "ATTRIBUTE",
14165  "DIRECTIVE": 7,
14166  "7": "DIRECTIVE",
14167  "COMPOUND_EXPRESSION": 8,
14168  "8": "COMPOUND_EXPRESSION",
14169  "IF": 9,
14170  "9": "IF",
14171  "IF_BRANCH": 10,
14172  "10": "IF_BRANCH",
14173  "FOR": 11,
14174  "11": "FOR",
14175  "TEXT_CALL": 12,
14176  "12": "TEXT_CALL",
14177  "VNODE_CALL": 13,
14178  "13": "VNODE_CALL",
14179  "JS_CALL_EXPRESSION": 14,
14180  "14": "JS_CALL_EXPRESSION",
14181  "JS_OBJECT_EXPRESSION": 15,
14182  "15": "JS_OBJECT_EXPRESSION",
14183  "JS_PROPERTY": 16,
14184  "16": "JS_PROPERTY",
14185  "JS_ARRAY_EXPRESSION": 17,
14186  "17": "JS_ARRAY_EXPRESSION",
14187  "JS_FUNCTION_EXPRESSION": 18,
14188  "18": "JS_FUNCTION_EXPRESSION",
14189  "JS_CONDITIONAL_EXPRESSION": 19,
14190  "19": "JS_CONDITIONAL_EXPRESSION",
14191  "JS_CACHE_EXPRESSION": 20,
14192  "20": "JS_CACHE_EXPRESSION",
14193  "JS_BLOCK_STATEMENT": 21,
14194  "21": "JS_BLOCK_STATEMENT",
14195  "JS_TEMPLATE_LITERAL": 22,
14196  "22": "JS_TEMPLATE_LITERAL",
14197  "JS_IF_STATEMENT": 23,
14198  "23": "JS_IF_STATEMENT",
14199  "JS_ASSIGNMENT_EXPRESSION": 24,
14200  "24": "JS_ASSIGNMENT_EXPRESSION",
14201  "JS_SEQUENCE_EXPRESSION": 25,
14202  "25": "JS_SEQUENCE_EXPRESSION",
14203  "JS_RETURN_STATEMENT": 26,
14204  "26": "JS_RETURN_STATEMENT"
14205};
14206const ElementTypes = {
14207  "ELEMENT": 0,
14208  "0": "ELEMENT",
14209  "COMPONENT": 1,
14210  "1": "COMPONENT",
14211  "SLOT": 2,
14212  "2": "SLOT",
14213  "TEMPLATE": 3,
14214  "3": "TEMPLATE"
14215};
14216const ConstantTypes = {
14217  "NOT_CONSTANT": 0,
14218  "0": "NOT_CONSTANT",
14219  "CAN_SKIP_PATCH": 1,
14220  "1": "CAN_SKIP_PATCH",
14221  "CAN_HOIST": 2,
14222  "2": "CAN_HOIST",
14223  "CAN_STRINGIFY": 3,
14224  "3": "CAN_STRINGIFY"
14225};
14226const locStub = {
14227  start: { line: 1, column: 1, offset: 0 },
14228  end: { line: 1, column: 1, offset: 0 },
14229  source: ""
14230};
14231function createRoot(children, source = "") {
14232  return {
14233    type: 0,
14234    source,
14235    children,
14236    helpers: /* @__PURE__ */ new Set(),
14237    components: [],
14238    directives: [],
14239    hoists: [],
14240    imports: [],
14241    cached: 0,
14242    temps: 0,
14243    codegenNode: void 0,
14244    loc: locStub
14245  };
14246}
14247function createVNodeCall(context, tag, props, children, patchFlag, dynamicProps, directives, isBlock = false, disableTracking = false, isComponent = false, loc = locStub) {
14248  if (context) {
14249    if (isBlock) {
14250      context.helper(OPEN_BLOCK);
14251      context.helper(getVNodeBlockHelper(context.inSSR, isComponent));
14252    } else {
14253      context.helper(getVNodeHelper(context.inSSR, isComponent));
14254    }
14255    if (directives) {
14256      context.helper(WITH_DIRECTIVES);
14257    }
14258  }
14259  return {
14260    type: 13,
14261    tag,
14262    props,
14263    children,
14264    patchFlag,
14265    dynamicProps,
14266    directives,
14267    isBlock,
14268    disableTracking,
14269    isComponent,
14270    loc
14271  };
14272}
14273function createArrayExpression(elements, loc = locStub) {
14274  return {
14275    type: 17,
14276    loc,
14277    elements
14278  };
14279}
14280function createObjectExpression(properties, loc = locStub) {
14281  return {
14282    type: 15,
14283    loc,
14284    properties
14285  };
14286}
14287function createObjectProperty(key, value) {
14288  return {
14289    type: 16,
14290    loc: locStub,
14291    key: Object(_vue_shared__WEBPACK_IMPORTED_MODULE_0__["isString"])(key) ? createSimpleExpression(key, true) : key,
14292    value
14293  };
14294}
14295function createSimpleExpression(content, isStatic = false, loc = locStub, constType = 0) {
14296  return {
14297    type: 4,
14298    loc,
14299    content,
14300    isStatic,
14301    constType: isStatic ? 3 : constType
14302  };
14303}
14304function createInterpolation(content, loc) {
14305  return {
14306    type: 5,
14307    loc,
14308    content: Object(_vue_shared__WEBPACK_IMPORTED_MODULE_0__["isString"])(content) ? createSimpleExpression(content, false, loc) : content
14309  };
14310}
14311function createCompoundExpression(children, loc = locStub) {
14312  return {
14313    type: 8,
14314    loc,
14315    children
14316  };
14317}
14318function createCallExpression(callee, args = [], loc = locStub) {
14319  return {
14320    type: 14,
14321    loc,
14322    callee,
14323    arguments: args
14324  };
14325}
14326function createFunctionExpression(params, returns = void 0, newline = false, isSlot = false, loc = locStub) {
14327  return {
14328    type: 18,
14329    params,
14330    returns,
14331    newline,
14332    isSlot,
14333    loc
14334  };
14335}
14336function createConditionalExpression(test, consequent, alternate, newline = true) {
14337  return {
14338    type: 19,
14339    test,
14340    consequent,
14341    alternate,
14342    newline,
14343    loc: locStub
14344  };
14345}
14346function createCacheExpression(index, value, isVNode = false) {
14347  return {
14348    type: 20,
14349    index,
14350    value,
14351    isVNode,
14352    loc: locStub
14353  };
14354}
14355function createBlockStatement(body) {
14356  return {
14357    type: 21,
14358    body,
14359    loc: locStub
14360  };
14361}
14362function createTemplateLiteral(elements) {
14363  return {
14364    type: 22,
14365    elements,
14366    loc: locStub
14367  };
14368}
14369function createIfStatement(test, consequent, alternate) {
14370  return {
14371    type: 23,
14372    test,
14373    consequent,
14374    alternate,
14375    loc: locStub
14376  };
14377}
14378function createAssignmentExpression(left, right) {
14379  return {
14380    type: 24,
14381    left,
14382    right,
14383    loc: locStub
14384  };
14385}
14386function createSequenceExpression(expressions) {
14387  return {
14388    type: 25,
14389    expressions,
14390    loc: locStub
14391  };
14392}
14393function createReturnStatement(returns) {
14394  return {
14395    type: 26,
14396    returns,
14397    loc: locStub
14398  };
14399}
14400function getVNodeHelper(ssr, isComponent) {
14401  return ssr || isComponent ? CREATE_VNODE : CREATE_ELEMENT_VNODE;
14402}
14403function getVNodeBlockHelper(ssr, isComponent) {
14404  return ssr || isComponent ? CREATE_BLOCK : CREATE_ELEMENT_BLOCK;
14405}
14406function convertToBlock(node, { helper, removeHelper, inSSR }) {
14407  if (!node.isBlock) {
14408    node.isBlock = true;
14409    removeHelper(getVNodeHelper(inSSR, node.isComponent));
14410    helper(OPEN_BLOCK);
14411    helper(getVNodeBlockHelper(inSSR, node.isComponent));
14412  }
14413}
14414
14415const defaultDelimitersOpen = new Uint8Array([123, 123]);
14416const defaultDelimitersClose = new Uint8Array([125, 125]);
14417function isTagStartChar(c) {
14418  return c >= 97 && c <= 122 || c >= 65 && c <= 90;
14419}
14420function isWhitespace(c) {
14421  return c === 32 || c === 10 || c === 9 || c === 12 || c === 13;
14422}
14423function isEndOfTagSection(c) {
14424  return c === 47 || c === 62 || isWhitespace(c);
14425}
14426function toCharCodes(str) {
14427  const ret = new Uint8Array(str.length);
14428  for (let i = 0; i < str.length; i++) {
14429    ret[i] = str.charCodeAt(i);
14430  }
14431  return ret;
14432}
14433const Sequences = {
14434  Cdata: new Uint8Array([67, 68, 65, 84, 65, 91]),
14435  // CDATA[
14436  CdataEnd: new Uint8Array([93, 93, 62]),
14437  // ]]>
14438  CommentEnd: new Uint8Array([45, 45, 62]),
14439  // `-->`
14440  ScriptEnd: new Uint8Array([60, 47, 115, 99, 114, 105, 112, 116]),
14441  // `<\/script`
14442  StyleEnd: new Uint8Array([60, 47, 115, 116, 121, 108, 101]),
14443  // `</style`
14444  TitleEnd: new Uint8Array([60, 47, 116, 105, 116, 108, 101]),
14445  // `</title`
14446  TextareaEnd: new Uint8Array([
14447    60,
14448    47,
14449    116,
14450    101,
14451    120,
14452    116,
14453    97,
14454    114,
14455    101,
14456    97
14457  ])
14458  // `</textarea
14459};
14460class Tokenizer {
14461  constructor(stack, cbs) {
14462    this.stack = stack;
14463    this.cbs = cbs;
14464    /** The current state the tokenizer is in. */
14465    this.state = 1;
14466    /** The read buffer. */
14467    this.buffer = "";
14468    /** The beginning of the section that is currently being read. */
14469    this.sectionStart = 0;
14470    /** The index within the buffer that we are currently looking at. */
14471    this.index = 0;
14472    /** The start of the last entity. */
14473    this.entityStart = 0;
14474    /** Some behavior, eg. when decoding entities, is done while we are in another state. This keeps track of the other state type. */
14475    this.baseState = 1;
14476    /** For special parsing behavior inside of script and style tags. */
14477    this.inRCDATA = false;
14478    /** For disabling RCDATA tags handling */
14479    this.inXML = false;
14480    /** For disabling interpolation parsing in v-pre */
14481    this.inVPre = false;
14482    /** Record newline positions for fast line / column calculation */
14483    this.newlines = [];
14484    this.mode = 0;
14485    this.delimiterOpen = defaultDelimitersOpen;
14486    this.delimiterClose = defaultDelimitersClose;
14487    this.delimiterIndex = -1;
14488    this.currentSequence = void 0;
14489    this.sequenceIndex = 0;
14490  }
14491  get inSFCRoot() {
14492    return this.mode === 2 && this.stack.length === 0;
14493  }
14494  reset() {
14495    this.state = 1;
14496    this.mode = 0;
14497    this.buffer = "";
14498    this.sectionStart = 0;
14499    this.index = 0;
14500    this.baseState = 1;
14501    this.inRCDATA = false;
14502    this.currentSequence = void 0;
14503    this.newlines.length = 0;
14504    this.delimiterOpen = defaultDelimitersOpen;
14505    this.delimiterClose = defaultDelimitersClose;
14506  }
14507  /**
14508   * Generate Position object with line / column information using recorded
14509   * newline positions. We know the index is always going to be an already
14510   * processed index, so all the newlines up to this index should have been
14511   * recorded.
14512   */
14513  getPos(index) {
14514    let line = 1;
14515    let column = index + 1;
14516    for (let i = this.newlines.length - 1; i >= 0; i--) {
14517      const newlineIndex = this.newlines[i];
14518      if (index > newlineIndex) {
14519        line = i + 2;
14520        column = index - newlineIndex;
14521        break;
14522      }
14523    }
14524    return {
14525      column,
14526      line,
14527      offset: index
14528    };
14529  }
14530  peek() {
14531    return this.buffer.charCodeAt(this.index + 1);
14532  }
14533  stateText(c) {
14534    if (c === 60) {
14535      if (this.index > this.sectionStart) {
14536        this.cbs.ontext(this.sectionStart, this.index);
14537      }
14538      this.state = 5;
14539      this.sectionStart = this.index;
14540    } else if (!this.inVPre && c === this.delimiterOpen[0]) {
14541      this.state = 2;
14542      this.delimiterIndex = 0;
14543      this.stateInterpolationOpen(c);
14544    }
14545  }
14546  stateInterpolationOpen(c) {
14547    if (c === this.delimiterOpen[this.delimiterIndex]) {
14548      if (this.delimiterIndex === this.delimiterOpen.length - 1) {
14549        const start = this.index + 1 - this.delimiterOpen.length;
14550        if (start > this.sectionStart) {
14551          this.cbs.ontext(this.sectionStart, start);
14552        }
14553        this.state = 3;
14554        this.sectionStart = start;
14555      } else {
14556        this.delimiterIndex++;
14557      }
14558    } else if (this.inRCDATA) {
14559      this.state = 32;
14560      this.stateInRCDATA(c);
14561    } else {
14562      this.state = 1;
14563      this.stateText(c);
14564    }
14565  }
14566  stateInterpolation(c) {
14567    if (c === this.delimiterClose[0]) {
14568      this.state = 4;
14569      this.delimiterIndex = 0;
14570      this.stateInterpolationClose(c);
14571    }
14572  }
14573  stateInterpolationClose(c) {
14574    if (c === this.delimiterClose[this.delimiterIndex]) {
14575      if (this.delimiterIndex === this.delimiterClose.length - 1) {
14576        this.cbs.oninterpolation(this.sectionStart, this.index + 1);
14577        if (this.inRCDATA) {
14578          this.state = 32;
14579        } else {
14580          this.state = 1;
14581        }
14582        this.sectionStart = this.index + 1;
14583      } else {
14584        this.delimiterIndex++;
14585      }
14586    } else {
14587      this.state = 3;
14588      this.stateInterpolation(c);
14589    }
14590  }
14591  stateSpecialStartSequence(c) {
14592    const isEnd = this.sequenceIndex === this.currentSequence.length;
14593    const isMatch = isEnd ? (
14594      // If we are at the end of the sequence, make sure the tag name has ended
14595      isEndOfTagSection(c)
14596    ) : (
14597      // Otherwise, do a case-insensitive comparison
14598      (c | 32) === this.currentSequence[this.sequenceIndex]
14599    );
14600    if (!isMatch) {
14601      this.inRCDATA = false;
14602    } else if (!isEnd) {
14603      this.sequenceIndex++;
14604      return;
14605    }
14606    this.sequenceIndex = 0;
14607    this.state = 6;
14608    this.stateInTagName(c);
14609  }
14610  /** Look for an end tag. For <title> and <textarea>, also decode entities. */
14611  stateInRCDATA(c) {
14612    if (this.sequenceIndex === this.currentSequence.length) {
14613      if (c === 62 || isWhitespace(c)) {
14614        const endOfText = this.index - this.currentSequence.length;
14615        if (this.sectionStart < endOfText) {
14616          const actualIndex = this.index;
14617          this.index = endOfText;
14618          this.cbs.ontext(this.sectionStart, endOfText);
14619          this.index = actualIndex;
14620        }
14621        this.sectionStart = endOfText + 2;
14622        this.stateInClosingTagName(c);
14623        this.inRCDATA = false;
14624        return;
14625      }
14626      this.sequenceIndex = 0;
14627    }
14628    if ((c | 32) === this.currentSequence[this.sequenceIndex]) {
14629      this.sequenceIndex += 1;
14630    } else if (this.sequenceIndex === 0) {
14631      if (this.currentSequence === Sequences.TitleEnd || this.currentSequence === Sequences.TextareaEnd && !this.inSFCRoot) {
14632        if (c === this.delimiterOpen[0]) {
14633          this.state = 2;
14634          this.delimiterIndex = 0;
14635          this.stateInterpolationOpen(c);
14636        }
14637      } else if (this.fastForwardTo(60)) {
14638        this.sequenceIndex = 1;
14639      }
14640    } else {
14641      this.sequenceIndex = Number(c === 60);
14642    }
14643  }
14644  stateCDATASequence(c) {
14645    if (c === Sequences.Cdata[this.sequenceIndex]) {
14646      if (++this.sequenceIndex === Sequences.Cdata.length) {
14647        this.state = 28;
14648        this.currentSequence = Sequences.CdataEnd;
14649        this.sequenceIndex = 0;
14650        this.sectionStart = this.index + 1;
14651      }
14652    } else {
14653      this.sequenceIndex = 0;
14654      this.state = 23;
14655      this.stateInDeclaration(c);
14656    }
14657  }
14658  /**
14659   * When we wait for one specific character, we can speed things up
14660   * by skipping through the buffer until we find it.
14661   *
14662   * @returns Whether the character was found.
14663   */
14664  fastForwardTo(c) {
14665    while (++this.index < this.buffer.length) {
14666      const cc = this.buffer.charCodeAt(this.index);
14667      if (cc === 10) {
14668        this.newlines.push(this.index);
14669      }
14670      if (cc === c) {
14671        return true;
14672      }
14673    }
14674    this.index = this.buffer.length - 1;
14675    return false;
14676  }
14677  /**
14678   * Comments and CDATA end with `-->` and `]]>`.
14679   *
14680   * Their common qualities are:
14681   * - Their end sequences have a distinct character they start with.
14682   * - That character is then repeated, so we have to check multiple repeats.
14683   * - All characters but the start character of the sequence can be skipped.
14684   */
14685  stateInCommentLike(c) {
14686    if (c === this.currentSequence[this.sequenceIndex]) {
14687      if (++this.sequenceIndex === this.currentSequence.length) {
14688        if (this.currentSequence === Sequences.CdataEnd) {
14689          this.cbs.oncdata(this.sectionStart, this.index - 2);
14690        } else {
14691          this.cbs.oncomment(this.sectionStart, this.index - 2);
14692        }
14693        this.sequenceIndex = 0;
14694        this.sectionStart = this.index + 1;
14695        this.state = 1;
14696      }
14697    } else if (this.sequenceIndex === 0) {
14698      if (this.fastForwardTo(this.currentSequence[0])) {
14699        this.sequenceIndex = 1;
14700      }
14701    } else if (c !== this.currentSequence[this.sequenceIndex - 1]) {
14702      this.sequenceIndex = 0;
14703    }
14704  }
14705  startSpecial(sequence, offset) {
14706    this.enterRCDATA(sequence, offset);
14707    this.state = 31;
14708  }
14709  enterRCDATA(sequence, offset) {
14710    this.inRCDATA = true;
14711    this.currentSequence = sequence;
14712    this.sequenceIndex = offset;
14713  }
14714  stateBeforeTagName(c) {
14715    if (c === 33) {
14716      this.state = 22;
14717      this.sectionStart = this.index + 1;
14718    } else if (c === 63) {
14719      this.state = 24;
14720      this.sectionStart = this.index + 1;
14721    } else if (isTagStartChar(c)) {
14722      this.sectionStart = this.index;
14723      if (this.mode === 0) {
14724        this.state = 6;
14725      } else if (this.inSFCRoot) {
14726        this.state = 34;
14727      } else if (!this.inXML) {
14728        if (c === 116) {
14729          this.state = 30;
14730        } else {
14731          this.state = c === 115 ? 29 : 6;
14732        }
14733      } else {
14734        this.state = 6;
14735      }
14736    } else if (c === 47) {
14737      this.state = 8;
14738    } else {
14739      this.state = 1;
14740      this.stateText(c);
14741    }
14742  }
14743  stateInTagName(c) {
14744    if (isEndOfTagSection(c)) {
14745      this.handleTagName(c);
14746    }
14747  }
14748  stateInSFCRootTagName(c) {
14749    if (isEndOfTagSection(c)) {
14750      const tag = this.buffer.slice(this.sectionStart, this.index);
14751      if (tag !== "template") {
14752        this.enterRCDATA(toCharCodes(`</` + tag), 0);
14753      }
14754      this.handleTagName(c);
14755    }
14756  }
14757  handleTagName(c) {
14758    this.cbs.onopentagname(this.sectionStart, this.index);
14759    this.sectionStart = -1;
14760    this.state = 11;
14761    this.stateBeforeAttrName(c);
14762  }
14763  stateBeforeClosingTagName(c) {
14764    if (isWhitespace(c)) ; else if (c === 62) {
14765      if (true) {
14766        this.cbs.onerr(14, this.index);
14767      }
14768      this.state = 1;
14769      this.sectionStart = this.index + 1;
14770    } else {
14771      this.state = isTagStartChar(c) ? 9 : 27;
14772      this.sectionStart = this.index;
14773    }
14774  }
14775  stateInClosingTagName(c) {
14776    if (c === 62 || isWhitespace(c)) {
14777      this.cbs.onclosetag(this.sectionStart, this.index);
14778      this.sectionStart = -1;
14779      this.state = 10;
14780      this.stateAfterClosingTagName(c);
14781    }
14782  }
14783  stateAfterClosingTagName(c) {
14784    if (c === 62) {
14785      this.state = 1;
14786      this.sectionStart = this.index + 1;
14787    }
14788  }
14789  stateBeforeAttrName(c) {
14790    if (c === 62) {
14791      this.cbs.onopentagend(this.index);
14792      if (this.inRCDATA) {
14793        this.state = 32;
14794      } else {
14795        this.state = 1;
14796      }
14797      this.sectionStart = this.index + 1;
14798    } else if (c === 47) {
14799      this.state = 7;
14800      if (( true) && this.peek() !== 62) {
14801        this.cbs.onerr(22, this.index);
14802      }
14803    } else if (c === 60 && this.peek() === 47) {
14804      this.cbs.onopentagend(this.index);
14805      this.state = 5;
14806      this.sectionStart = this.index;
14807    } else if (!isWhitespace(c)) {
14808      if (( true) && c === 61) {
14809        this.cbs.onerr(
14810          19,
14811          this.index
14812        );
14813      }
14814      this.handleAttrStart(c);
14815    }
14816  }
14817  handleAttrStart(c) {
14818    if (c === 118 && this.peek() === 45) {
14819      this.state = 13;
14820      this.sectionStart = this.index;
14821    } else if (c === 46 || c === 58 || c === 64 || c === 35) {
14822      this.cbs.ondirname(this.index, this.index + 1);
14823      this.state = 14;
14824      this.sectionStart = this.index + 1;
14825    } else {
14826      this.state = 12;
14827      this.sectionStart = this.index;
14828    }
14829  }
14830  stateInSelfClosingTag(c) {
14831    if (c === 62) {
14832      this.cbs.onselfclosingtag(this.index);
14833      this.state = 1;
14834      this.sectionStart = this.index + 1;
14835      this.inRCDATA = false;
14836    } else if (!isWhitespace(c)) {
14837      this.state = 11;
14838      this.stateBeforeAttrName(c);
14839    }
14840  }
14841  stateInAttrName(c) {
14842    if (c === 61 || isEndOfTagSection(c)) {
14843      this.cbs.onattribname(this.sectionStart, this.index);
14844      this.handleAttrNameEnd(c);
14845    } else if (( true) && (c === 34 || c === 39 || c === 60)) {
14846      this.cbs.onerr(
14847        17,
14848        this.index
14849      );
14850    }
14851  }
14852  stateInDirName(c) {
14853    if (c === 61 || isEndOfTagSection(c)) {
14854      this.cbs.ondirname(this.sectionStart, this.index);
14855      this.handleAttrNameEnd(c);
14856    } else if (c === 58) {
14857      this.cbs.ondirname(this.sectionStart, this.index);
14858      this.state = 14;
14859      this.sectionStart = this.index + 1;
14860    } else if (c === 46) {
14861      this.cbs.ondirname(this.sectionStart, this.index);
14862      this.state = 16;
14863      this.sectionStart = this.index + 1;
14864    }
14865  }
14866  stateInDirArg(c) {
14867    if (c === 61 || isEndOfTagSection(c)) {
14868      this.cbs.ondirarg(this.sectionStart, this.index);
14869      this.handleAttrNameEnd(c);
14870    } else if (c === 91) {
14871      this.state = 15;
14872    } else if (c === 46) {
14873      this.cbs.ondirarg(this.sectionStart, this.index);
14874      this.state = 16;
14875      this.sectionStart = this.index + 1;
14876    }
14877  }
14878  stateInDynamicDirArg(c) {
14879    if (c === 93) {
14880      this.state = 14;
14881    } else if (c === 61 || isEndOfTagSection(c)) {
14882      this.cbs.ondirarg(this.sectionStart, this.index + 1);
14883      this.handleAttrNameEnd(c);
14884      if (true) {
14885        this.cbs.onerr(
14886          27,
14887          this.index
14888        );
14889      }
14890    }
14891  }
14892  stateInDirModifier(c) {
14893    if (c === 61 || isEndOfTagSection(c)) {
14894      this.cbs.ondirmodifier(this.sectionStart, this.index);
14895      this.handleAttrNameEnd(c);
14896    } else if (c === 46) {
14897      this.cbs.ondirmodifier(this.sectionStart, this.index);
14898      this.sectionStart = this.index + 1;
14899    }
14900  }
14901  handleAttrNameEnd(c) {
14902    this.sectionStart = this.index;
14903    this.state = 17;
14904    this.cbs.onattribnameend(this.index);
14905    this.stateAfterAttrName(c);
14906  }
14907  stateAfterAttrName(c) {
14908    if (c === 61) {
14909      this.state = 18;
14910    } else if (c === 47 || c === 62) {
14911      this.cbs.onattribend(0, this.sectionStart);
14912      this.sectionStart = -1;
14913      this.state = 11;
14914      this.stateBeforeAttrName(c);
14915    } else if (!isWhitespace(c)) {
14916      this.cbs.onattribend(0, this.sectionStart);
14917      this.handleAttrStart(c);
14918    }
14919  }
14920  stateBeforeAttrValue(c) {
14921    if (c === 34) {
14922      this.state = 19;
14923      this.sectionStart = this.index + 1;
14924    } else if (c === 39) {
14925      this.state = 20;
14926      this.sectionStart = this.index + 1;
14927    } else if (!isWhitespace(c)) {
14928      this.sectionStart = this.index;
14929      this.state = 21;
14930      this.stateInAttrValueNoQuotes(c);
14931    }
14932  }
14933  handleInAttrValue(c, quote) {
14934    if (c === quote || this.fastForwardTo(quote)) {
14935      this.cbs.onattribdata(this.sectionStart, this.index);
14936      this.sectionStart = -1;
14937      this.cbs.onattribend(
14938        quote === 34 ? 3 : 2,
14939        this.index + 1
14940      );
14941      this.state = 11;
14942    }
14943  }
14944  stateInAttrValueDoubleQuotes(c) {
14945    this.handleInAttrValue(c, 34);
14946  }
14947  stateInAttrValueSingleQuotes(c) {
14948    this.handleInAttrValue(c, 39);
14949  }
14950  stateInAttrValueNoQuotes(c) {
14951    if (isWhitespace(c) || c === 62) {
14952      this.cbs.onattribdata(this.sectionStart, this.index);
14953      this.sectionStart = -1;
14954      this.cbs.onattribend(1, this.index);
14955      this.state = 11;
14956      this.stateBeforeAttrName(c);
14957    } else if (( true) && c === 34 || c === 39 || c === 60 || c === 61 || c === 96) {
14958      this.cbs.onerr(
14959        18,
14960        this.index
14961      );
14962    } else ;
14963  }
14964  stateBeforeDeclaration(c) {
14965    if (c === 91) {
14966      this.state = 26;
14967      this.sequenceIndex = 0;
14968    } else {
14969      this.state = c === 45 ? 25 : 23;
14970    }
14971  }
14972  stateInDeclaration(c) {
14973    if (c === 62 || this.fastForwardTo(62)) {
14974      this.state = 1;
14975      this.sectionStart = this.index + 1;
14976    }
14977  }
14978  stateInProcessingInstruction(c) {
14979    if (c === 62 || this.fastForwardTo(62)) {
14980      this.cbs.onprocessinginstruction(this.sectionStart, this.index);
14981      this.state = 1;
14982      this.sectionStart = this.index + 1;
14983    }
14984  }
14985  stateBeforeComment(c) {
14986    if (c === 45) {
14987      this.state = 28;
14988      this.currentSequence = Sequences.CommentEnd;
14989      this.sequenceIndex = 2;
14990      this.sectionStart = this.index + 1;
14991    } else {
14992      this.state = 23;
14993    }
14994  }
14995  stateInSpecialComment(c) {
14996    if (c === 62 || this.fastForwardTo(62)) {
14997      this.cbs.oncomment(this.sectionStart, this.index);
14998      this.state = 1;
14999      this.sectionStart = this.index + 1;
15000    }
15001  }
15002  stateBeforeSpecialS(c) {
15003    if (c === Sequences.ScriptEnd[3]) {
15004      this.startSpecial(Sequences.ScriptEnd, 4);
15005    } else if (c === Sequences.StyleEnd[3]) {
15006      this.startSpecial(Sequences.StyleEnd, 4);
15007    } else {
15008      this.state = 6;
15009      this.stateInTagName(c);
15010    }
15011  }
15012  stateBeforeSpecialT(c) {
15013    if (c === Sequences.TitleEnd[3]) {
15014      this.startSpecial(Sequences.TitleEnd, 4);
15015    } else if (c === Sequences.TextareaEnd[3]) {
15016      this.startSpecial(Sequences.TextareaEnd, 4);
15017    } else {
15018      this.state = 6;
15019      this.stateInTagName(c);
15020    }
15021  }
15022  startEntity() {
15023  }
15024  stateInEntity() {
15025  }
15026  /**
15027   * Iterates through the buffer, calling the function corresponding to the current state.
15028   *
15029   * States that are more likely to be hit are higher up, as a performance improvement.
15030   */
15031  parse(input) {
15032    this.buffer = input;
15033    while (this.index < this.buffer.length) {
15034      const c = this.buffer.charCodeAt(this.index);
15035      if (c === 10) {
15036        this.newlines.push(this.index);
15037      }
15038      switch (this.state) {
15039        case 1: {
15040          this.stateText(c);
15041          break;
15042        }
15043        case 2: {
15044          this.stateInterpolationOpen(c);
15045          break;
15046        }
15047        case 3: {
15048          this.stateInterpolation(c);
15049          break;
15050        }
15051        case 4: {
15052          this.stateInterpolationClose(c);
15053          break;
15054        }
15055        case 31: {
15056          this.stateSpecialStartSequence(c);
15057          break;
15058        }
15059        case 32: {
15060          this.stateInRCDATA(c);
15061          break;
15062        }
15063        case 26: {
15064          this.stateCDATASequence(c);
15065          break;
15066        }
15067        case 19: {
15068          this.stateInAttrValueDoubleQuotes(c);
15069          break;
15070        }
15071        case 12: {
15072          this.stateInAttrName(c);
15073          break;
15074        }
15075        case 13: {
15076          this.stateInDirName(c);
15077          break;
15078        }
15079        case 14: {
15080          this.stateInDirArg(c);
15081          break;
15082        }
15083        case 15: {
15084          this.stateInDynamicDirArg(c);
15085          break;
15086        }
15087        case 16: {
15088          this.stateInDirModifier(c);
15089          break;
15090        }
15091        case 28: {
15092          this.stateInCommentLike(c);
15093          break;
15094        }
15095        case 27: {
15096          this.stateInSpecialComment(c);
15097          break;
15098        }
15099        case 11: {
15100          this.stateBeforeAttrName(c);
15101          break;
15102        }
15103        case 6: {
15104          this.stateInTagName(c);
15105          break;
15106        }
15107        case 34: {
15108          this.stateInSFCRootTagName(c);
15109          break;
15110        }
15111        case 9: {
15112          this.stateInClosingTagName(c);
15113          break;
15114        }
15115        case 5: {
15116          this.stateBeforeTagName(c);
15117          break;
15118        }
15119        case 17: {
15120          this.stateAfterAttrName(c);
15121          break;
15122        }
15123        case 20: {
15124          this.stateInAttrValueSingleQuotes(c);
15125          break;
15126        }
15127        case 18: {
15128          this.stateBeforeAttrValue(c);
15129          break;
15130        }
15131        case 8: {
15132          this.stateBeforeClosingTagName(c);
15133          break;
15134        }
15135        case 10: {
15136          this.stateAfterClosingTagName(c);
15137          break;
15138        }
15139        case 29: {
15140          this.stateBeforeSpecialS(c);
15141          break;
15142        }
15143        case 30: {
15144          this.stateBeforeSpecialT(c);
15145          break;
15146        }
15147        case 21: {
15148          this.stateInAttrValueNoQuotes(c);
15149          break;
15150        }
15151        case 7: {
15152          this.stateInSelfClosingTag(c);
15153          break;
15154        }
15155        case 23: {
15156          this.stateInDeclaration(c);
15157          break;
15158        }
15159        case 22: {
15160          this.stateBeforeDeclaration(c);
15161          break;
15162        }
15163        case 25: {
15164          this.stateBeforeComment(c);
15165          break;
15166        }
15167        case 24: {
15168          this.stateInProcessingInstruction(c);
15169          break;
15170        }
15171        case 33: {
15172          this.stateInEntity();
15173          break;
15174        }
15175      }
15176      this.index++;
15177    }
15178    this.cleanup();
15179    this.finish();
15180  }
15181  /**
15182   * Remove data that has already been consumed from the buffer.
15183   */
15184  cleanup() {
15185    if (this.sectionStart !== this.index) {
15186      if (this.state === 1 || this.state === 32 && this.sequenceIndex === 0) {
15187        this.cbs.ontext(this.sectionStart, this.index);
15188        this.sectionStart = this.index;
15189      } else if (this.state === 19 || this.state === 20 || this.state === 21) {
15190        this.cbs.onattribdata(this.sectionStart, this.index);
15191        this.sectionStart = this.index;
15192      }
15193    }
15194  }
15195  finish() {
15196    this.handleTrailingData();
15197    this.cbs.onend();
15198  }
15199  /** Handle any trailing data. */
15200  handleTrailingData() {
15201    const endIndex = this.buffer.length;
15202    if (this.sectionStart >= endIndex) {
15203      return;
15204    }
15205    if (this.state === 28) {
15206      if (this.currentSequence === Sequences.CdataEnd) {
15207        this.cbs.oncdata(this.sectionStart, endIndex);
15208      } else {
15209        this.cbs.oncomment(this.sectionStart, endIndex);
15210      }
15211    } else if (this.state === 6 || this.state === 11 || this.state === 18 || this.state === 17 || this.state === 12 || this.state === 13 || this.state === 14 || this.state === 15 || this.state === 16 || this.state === 20 || this.state === 19 || this.state === 21 || this.state === 9) ; else {
15212      this.cbs.ontext(this.sectionStart, endIndex);
15213    }
15214  }
15215  emitCodePoint(cp, consumed) {
15216  }
15217}
15218
15219const CompilerDeprecationTypes = {
15220  "COMPILER_IS_ON_ELEMENT": "COMPILER_IS_ON_ELEMENT",
15221  "COMPILER_V_BIND_SYNC": "COMPILER_V_BIND_SYNC",
15222  "COMPILER_V_BIND_OBJECT_ORDER": "COMPILER_V_BIND_OBJECT_ORDER",
15223  "COMPILER_V_ON_NATIVE": "COMPILER_V_ON_NATIVE",
15224  "COMPILER_V_IF_V_FOR_PRECEDENCE": "COMPILER_V_IF_V_FOR_PRECEDENCE",
15225  "COMPILER_NATIVE_TEMPLATE": "COMPILER_NATIVE_TEMPLATE",
15226  "COMPILER_INLINE_TEMPLATE": "COMPILER_INLINE_TEMPLATE",
15227  "COMPILER_FILTERS": "COMPILER_FILTERS"
15228};
15229const deprecationData = {
15230  ["COMPILER_IS_ON_ELEMENT"]: {
15231    message: `Platform-native elements with "is" prop will no longer be treated as components in Vue 3 unless the "is" value is explicitly prefixed with "vue:".`,
15232    link: `https://v3-migration.vuejs.org/breaking-changes/custom-elements-interop.html`
15233  },
15234  ["COMPILER_V_BIND_SYNC"]: {
15235    message: (key) => `.sync modifier for v-bind has been removed. Use v-model with argument instead. \`v-bind:${key}.sync\` should be changed to \`v-model:${key}\`.`,
15236    link: `https://v3-migration.vuejs.org/breaking-changes/v-model.html`
15237  },
15238  ["COMPILER_V_BIND_OBJECT_ORDER"]: {
15239    message: `v-bind="obj" usage is now order sensitive and behaves like JavaScript object spread: it will now overwrite an existing non-mergeable attribute that appears before v-bind in the case of conflict. To retain 2.x behavior, move v-bind to make it the first attribute. You can also suppress this warning if the usage is intended.`,
15240    link: `https://v3-migration.vuejs.org/breaking-changes/v-bind.html`
15241  },
15242  ["COMPILER_V_ON_NATIVE"]: {
15243    message: `.native modifier for v-on has been removed as is no longer necessary.`,
15244    link: `https://v3-migration.vuejs.org/breaking-changes/v-on-native-modifier-removed.html`
15245  },
15246  ["COMPILER_V_IF_V_FOR_PRECEDENCE"]: {
15247    message: `v-if / v-for precedence when used on the same element has changed in Vue 3: v-if now takes higher precedence and will no longer have access to v-for scope variables. It is best to avoid the ambiguity with <template> tags or use a computed property that filters v-for data source.`,
15248    link: `https://v3-migration.vuejs.org/breaking-changes/v-if-v-for.html`
15249  },
15250  ["COMPILER_NATIVE_TEMPLATE"]: {
15251    message: `<template> with no special directives will render as a native template element instead of its inner content in Vue 3.`
15252  },
15253  ["COMPILER_INLINE_TEMPLATE"]: {
15254    message: `"inline-template" has been removed in Vue 3.`,
15255    link: `https://v3-migration.vuejs.org/breaking-changes/inline-template-attribute.html`
15256  },
15257  ["COMPILER_FILTERS"]: {
15258    message: `filters have been removed in Vue 3. The "|" symbol will be treated as native JavaScript bitwise OR operator. Use method calls or computed properties instead.`,
15259    link: `https://v3-migration.vuejs.org/breaking-changes/filters.html`
15260  }
15261};
15262function getCompatValue(key, { compatConfig }) {
15263  const value = compatConfig && compatConfig[key];
15264  if (key === "MODE") {
15265    return value || 3;
15266  } else {
15267    return value;
15268  }
15269}
15270function isCompatEnabled(key, context) {
15271  const mode = getCompatValue("MODE", context);
15272  const value = getCompatValue(key, context);
15273  return mode === 3 ? value === true : value !== false;
15274}
15275function checkCompatEnabled(key, context, loc, ...args) {
15276  const enabled = isCompatEnabled(key, context);
15277  if ( true && enabled) {
15278    warnDeprecation(key, context, loc, ...args);
15279  }
15280  return enabled;
15281}
15282function warnDeprecation(key, context, loc, ...args) {
15283  const val = getCompatValue(key, context);
15284  if (val === "suppress-warning") {
15285    return;
15286  }
15287  const { message, link } = deprecationData[key];
15288  const msg = `(deprecation ${key}) ${typeof message === "function" ? message(...args) : message}${link ? `
15289  Details: ${link}` : ``}`;
15290  const err = new SyntaxError(msg);
15291  err.code = key;
15292  if (loc)
15293    err.loc = loc;
15294  context.onWarn(err);
15295}
15296
15297function defaultOnError(error) {
15298  throw error;
15299}
15300function defaultOnWarn(msg) {
15301   true && console.warn(`[Vue warn] ${msg.message}`);
15302}
15303function createCompilerError(code, loc, messages, additionalMessage) {
15304  const msg =  true ? (messages || errorMessages)[code] + (additionalMessage || ``) : undefined;
15305  const error = new SyntaxError(String(msg));
15306  error.code = code;
15307  error.loc = loc;
15308  return error;
15309}
15310const ErrorCodes = {
15311  "ABRUPT_CLOSING_OF_EMPTY_COMMENT": 0,
15312  "0": "ABRUPT_CLOSING_OF_EMPTY_COMMENT",
15313  "CDATA_IN_HTML_CONTENT": 1,
15314  "1": "CDATA_IN_HTML_CONTENT",
15315  "DUPLICATE_ATTRIBUTE": 2,
15316  "2": "DUPLICATE_ATTRIBUTE",
15317  "END_TAG_WITH_ATTRIBUTES": 3,
15318  "3": "END_TAG_WITH_ATTRIBUTES",
15319  "END_TAG_WITH_TRAILING_SOLIDUS": 4,
15320  "4": "END_TAG_WITH_TRAILING_SOLIDUS",
15321  "EOF_BEFORE_TAG_NAME": 5,
15322  "5": "EOF_BEFORE_TAG_NAME",
15323  "EOF_IN_CDATA": 6,
15324  "6": "EOF_IN_CDATA",
15325  "EOF_IN_COMMENT": 7,
15326  "7": "EOF_IN_COMMENT",
15327  "EOF_IN_SCRIPT_HTML_COMMENT_LIKE_TEXT": 8,
15328  "8": "EOF_IN_SCRIPT_HTML_COMMENT_LIKE_TEXT",
15329  "EOF_IN_TAG": 9,
15330  "9": "EOF_IN_TAG",
15331  "INCORRECTLY_CLOSED_COMMENT": 10,
15332  "10": "INCORRECTLY_CLOSED_COMMENT",
15333  "INCORRECTLY_OPENED_COMMENT": 11,
15334  "11": "INCORRECTLY_OPENED_COMMENT",
15335  "INVALID_FIRST_CHARACTER_OF_TAG_NAME": 12,
15336  "12": "INVALID_FIRST_CHARACTER_OF_TAG_NAME",
15337  "MISSING_ATTRIBUTE_VALUE": 13,
15338  "13": "MISSING_ATTRIBUTE_VALUE",
15339  "MISSING_END_TAG_NAME": 14,
15340  "14": "MISSING_END_TAG_NAME",
15341  "MISSING_WHITESPACE_BETWEEN_ATTRIBUTES": 15,
15342  "15": "MISSING_WHITESPACE_BETWEEN_ATTRIBUTES",
15343  "NESTED_COMMENT": 16,
15344  "16": "NESTED_COMMENT",
15345  "UNEXPECTED_CHARACTER_IN_ATTRIBUTE_NAME": 17,
15346  "17": "UNEXPECTED_CHARACTER_IN_ATTRIBUTE_NAME",
15347  "UNEXPECTED_CHARACTER_IN_UNQUOTED_ATTRIBUTE_VALUE": 18,
15348  "18": "UNEXPECTED_CHARACTER_IN_UNQUOTED_ATTRIBUTE_VALUE",
15349  "UNEXPECTED_EQUALS_SIGN_BEFORE_ATTRIBUTE_NAME": 19,
15350  "19": "UNEXPECTED_EQUALS_SIGN_BEFORE_ATTRIBUTE_NAME",
15351  "UNEXPECTED_NULL_CHARACTER": 20,
15352  "20": "UNEXPECTED_NULL_CHARACTER",
15353  "UNEXPECTED_QUESTION_MARK_INSTEAD_OF_TAG_NAME": 21,
15354  "21": "UNEXPECTED_QUESTION_MARK_INSTEAD_OF_TAG_NAME",
15355  "UNEXPECTED_SOLIDUS_IN_TAG": 22,
15356  "22": "UNEXPECTED_SOLIDUS_IN_TAG",
15357  "X_INVALID_END_TAG": 23,
15358  "23": "X_INVALID_END_TAG",
15359  "X_MISSING_END_TAG": 24,
15360  "24": "X_MISSING_END_TAG",
15361  "X_MISSING_INTERPOLATION_END": 25,
15362  "25": "X_MISSING_INTERPOLATION_END",
15363  "X_MISSING_DIRECTIVE_NAME": 26,
15364  "26": "X_MISSING_DIRECTIVE_NAME",
15365  "X_MISSING_DYNAMIC_DIRECTIVE_ARGUMENT_END": 27,
15366  "27": "X_MISSING_DYNAMIC_DIRECTIVE_ARGUMENT_END",
15367  "X_V_IF_NO_EXPRESSION": 28,
15368  "28": "X_V_IF_NO_EXPRESSION",
15369  "X_V_IF_SAME_KEY": 29,
15370  "29": "X_V_IF_SAME_KEY",
15371  "X_V_ELSE_NO_ADJACENT_IF": 30,
15372  "30": "X_V_ELSE_NO_ADJACENT_IF",
15373  "X_V_FOR_NO_EXPRESSION": 31,
15374  "31": "X_V_FOR_NO_EXPRESSION",
15375  "X_V_FOR_MALFORMED_EXPRESSION": 32,
15376  "32": "X_V_FOR_MALFORMED_EXPRESSION",
15377  "X_V_FOR_TEMPLATE_KEY_PLACEMENT": 33,
15378  "33": "X_V_FOR_TEMPLATE_KEY_PLACEMENT",
15379  "X_V_BIND_NO_EXPRESSION": 34,
15380  "34": "X_V_BIND_NO_EXPRESSION",
15381  "X_V_ON_NO_EXPRESSION": 35,
15382  "35": "X_V_ON_NO_EXPRESSION",
15383  "X_V_SLOT_UNEXPECTED_DIRECTIVE_ON_SLOT_OUTLET": 36,
15384  "36": "X_V_SLOT_UNEXPECTED_DIRECTIVE_ON_SLOT_OUTLET",
15385  "X_V_SLOT_MIXED_SLOT_USAGE": 37,
15386  "37": "X_V_SLOT_MIXED_SLOT_USAGE",
15387  "X_V_SLOT_DUPLICATE_SLOT_NAMES": 38,
15388  "38": "X_V_SLOT_DUPLICATE_SLOT_NAMES",
15389  "X_V_SLOT_EXTRANEOUS_DEFAULT_SLOT_CHILDREN": 39,
15390  "39": "X_V_SLOT_EXTRANEOUS_DEFAULT_SLOT_CHILDREN",
15391  "X_V_SLOT_MISPLACED": 40,
15392  "40": "X_V_SLOT_MISPLACED",
15393  "X_V_MODEL_NO_EXPRESSION": 41,
15394  "41": "X_V_MODEL_NO_EXPRESSION",
15395  "X_V_MODEL_MALFORMED_EXPRESSION": 42,
15396  "42": "X_V_MODEL_MALFORMED_EXPRESSION",
15397  "X_V_MODEL_ON_SCOPE_VARIABLE": 43,
15398  "43": "X_V_MODEL_ON_SCOPE_VARIABLE",
15399  "X_V_MODEL_ON_PROPS": 44,
15400  "44": "X_V_MODEL_ON_PROPS",
15401  "X_INVALID_EXPRESSION": 45,
15402  "45": "X_INVALID_EXPRESSION",
15403  "X_KEEP_ALIVE_INVALID_CHILDREN": 46,
15404  "46": "X_KEEP_ALIVE_INVALID_CHILDREN",
15405  "X_PREFIX_ID_NOT_SUPPORTED": 47,
15406  "47": "X_PREFIX_ID_NOT_SUPPORTED",
15407  "X_MODULE_MODE_NOT_SUPPORTED": 48,
15408  "48": "X_MODULE_MODE_NOT_SUPPORTED",
15409  "X_CACHE_HANDLER_NOT_SUPPORTED": 49,
15410  "49": "X_CACHE_HANDLER_NOT_SUPPORTED",
15411  "X_SCOPE_ID_NOT_SUPPORTED": 50,
15412  "50": "X_SCOPE_ID_NOT_SUPPORTED",
15413  "X_VNODE_HOOKS": 51,
15414  "51": "X_VNODE_HOOKS",
15415  "X_V_BIND_INVALID_SAME_NAME_ARGUMENT": 52,
15416  "52": "X_V_BIND_INVALID_SAME_NAME_ARGUMENT",
15417  "__EXTEND_POINT__": 53,
15418  "53": "__EXTEND_POINT__"
15419};
15420const errorMessages = {
15421  // parse errors
15422  [0]: "Illegal comment.",
15423  [1]: "CDATA section is allowed only in XML context.",
15424  [2]: "Duplicate attribute.",
15425  [3]: "End tag cannot have attributes.",
15426  [4]: "Illegal '/' in tags.",
15427  [5]: "Unexpected EOF in tag.",
15428  [6]: "Unexpected EOF in CDATA section.",
15429  [7]: "Unexpected EOF in comment.",
15430  [8]: "Unexpected EOF in script.",
15431  [9]: "Unexpected EOF in tag.",
15432  [10]: "Incorrectly closed comment.",
15433  [11]: "Incorrectly opened comment.",
15434  [12]: "Illegal tag name. Use '&lt;' to print '<'.",
15435  [13]: "Attribute value was expected.",
15436  [14]: "End tag name was expected.",
15437  [15]: "Whitespace was expected.",
15438  [16]: "Unexpected '<!--' in comment.",
15439  [17]: `Attribute name cannot contain U+0022 ("), U+0027 ('), and U+003C (<).`,
15440  [18]: "Unquoted attribute value cannot contain U+0022 (\"), U+0027 ('), U+003C (<), U+003D (=), and U+0060 (`).",
15441  [19]: "Attribute name cannot start with '='.",
15442  [21]: "'<?' is allowed only in XML context.",
15443  [20]: `Unexpected null character.`,
15444  [22]: "Illegal '/' in tags.",
15445  // Vue-specific parse errors
15446  [23]: "Invalid end tag.",
15447  [24]: "Element is missing end tag.",
15448  [25]: "Interpolation end sign was not found.",
15449  [27]: "End bracket for dynamic directive argument was not found. Note that dynamic directive argument cannot contain spaces.",
15450  [26]: "Legal directive name was expected.",
15451  // transform errors
15452  [28]: `v-if/v-else-if is missing expression.`,
15453  [29]: `v-if/else branches must use unique keys.`,
15454  [30]: `v-else/v-else-if has no adjacent v-if or v-else-if.`,
15455  [31]: `v-for is missing expression.`,
15456  [32]: `v-for has invalid expression.`,
15457  [33]: `<template v-for> key should be placed on the <template> tag.`,
15458  [34]: `v-bind is missing expression.`,
15459  [52]: `v-bind with same-name shorthand only allows static argument.`,
15460  [35]: `v-on is missing expression.`,
15461  [36]: `Unexpected custom directive on <slot> outlet.`,
15462  [37]: `Mixed v-slot usage on both the component and nested <template>. When there are multiple named slots, all slots should use <template> syntax to avoid scope ambiguity.`,
15463  [38]: `Duplicate slot names found. `,
15464  [39]: `Extraneous children found when component already has explicitly named default slot. These children will be ignored.`,
15465  [40]: `v-slot can only be used on components or <template> tags.`,
15466  [41]: `v-model is missing expression.`,
15467  [42]: `v-model value must be a valid JavaScript member expression.`,
15468  [43]: `v-model cannot be used on v-for or v-slot scope variables because they are not writable.`,
15469  [44]: `v-model cannot be used on a prop, because local prop bindings are not writable.
15470Use a v-bind binding combined with a v-on listener that emits update:x event instead.`,
15471  [45]: `Error parsing JavaScript expression: `,
15472  [46]: `<KeepAlive> expects exactly one child component.`,
15473  [51]: `@vnode-* hooks in templates are no longer supported. Use the vue: prefix instead. For example, @vnode-mounted should be changed to @vue:mounted. @vnode-* hooks support has been removed in 3.4.`,
15474  // generic errors
15475  [47]: `"prefixIdentifiers" option is not supported in this build of compiler.`,
15476  [48]: `ES module mode is not supported in this build of compiler.`,
15477  [49]: `"cacheHandlers" option is only supported when the "prefixIdentifiers" option is enabled.`,
15478  [50]: `"scopeId" option is only supported in module mode.`,
15479  // just to fulfill types
15480  [53]: ``
15481};
15482
15483function walkIdentifiers(root, onIdentifier, includeAll = false, parentStack = [], knownIds = /* @__PURE__ */ Object.create(null)) {
15484  {
15485    return;
15486  }
15487}
15488function isReferencedIdentifier(id, parent, parentStack) {
15489  {
15490    return false;
15491  }
15492}
15493function isInDestructureAssignment(parent, parentStack) {
15494  if (parent && (parent.type === "ObjectProperty" || parent.type === "ArrayPattern")) {
15495    let i = parentStack.length;
15496    while (i--) {
15497      const p = parentStack[i];
15498      if (p.type === "AssignmentExpression") {
15499        return true;
15500      } else if (p.type !== "ObjectProperty" && !p.type.endsWith("Pattern")) {
15501        break;
15502      }
15503    }
15504  }
15505  return false;
15506}
15507function isInNewExpression(parentStack) {
15508  let i = parentStack.length;
15509  while (i--) {
15510    const p = parentStack[i];
15511    if (p.type === "NewExpression") {
15512      return true;
15513    } else if (p.type !== "MemberExpression") {
15514      break;
15515    }
15516  }
15517  return false;
15518}
15519function walkFunctionParams(node, onIdent) {
15520  for (const p of node.params) {
15521    for (const id of extractIdentifiers(p)) {
15522      onIdent(id);
15523    }
15524  }
15525}
15526function walkBlockDeclarations(block, onIdent) {
15527  for (const stmt of block.body) {
15528    if (stmt.type === "VariableDeclaration") {
15529      if (stmt.declare)
15530        continue;
15531      for (const decl of stmt.declarations) {
15532        for (const id of extractIdentifiers(decl.id)) {
15533          onIdent(id);
15534        }
15535      }
15536    } else if (stmt.type === "FunctionDeclaration" || stmt.type === "ClassDeclaration") {
15537      if (stmt.declare || !stmt.id)
15538        continue;
15539      onIdent(stmt.id);
15540    } else if (stmt.type === "ForOfStatement" || stmt.type === "ForInStatement" || stmt.type === "ForStatement") {
15541      const variable = stmt.type === "ForStatement" ? stmt.init : stmt.left;
15542      if (variable && variable.type === "VariableDeclaration") {
15543        for (const decl of variable.declarations) {
15544          for (const id of extractIdentifiers(decl.id)) {
15545            onIdent(id);
15546          }
15547        }
15548      }
15549    }
15550  }
15551}
15552function extractIdentifiers(param, nodes = []) {
15553  switch (param.type) {
15554    case "Identifier":
15555      nodes.push(param);
15556      break;
15557    case "MemberExpression":
15558      let object = param;
15559      while (object.type === "MemberExpression") {
15560        object = object.object;
15561      }
15562      nodes.push(object);
15563      break;
15564    case "ObjectPattern":
15565      for (const prop of param.properties) {
15566        if (prop.type === "RestElement") {
15567          extractIdentifiers(prop.argument, nodes);
15568        } else {
15569          extractIdentifiers(prop.value, nodes);
15570        }
15571      }
15572      break;
15573    case "ArrayPattern":
15574      param.elements.forEach((element) => {
15575        if (element)
15576          extractIdentifiers(element, nodes);
15577      });
15578      break;
15579    case "RestElement":
15580      extractIdentifiers(param.argument, nodes);
15581      break;
15582    case "AssignmentPattern":
15583      extractIdentifiers(param.left, nodes);
15584      break;
15585  }
15586  return nodes;
15587}
15588const isFunctionType = (node) => {
15589  return /Function(?:Expression|Declaration)$|Method$/.test(node.type);
15590};
15591const isStaticProperty = (node) => node && (node.type === "ObjectProperty" || node.type === "ObjectMethod") && !node.computed;
15592const isStaticPropertyKey = (node, parent) => isStaticProperty(parent) && parent.key === node;
15593const TS_NODE_TYPES = [
15594  "TSAsExpression",
15595  // foo as number
15596  "TSTypeAssertion",
15597  // (<number>foo)
15598  "TSNonNullExpression",
15599  // foo!
15600  "TSInstantiationExpression",
15601  // foo<string>
15602  "TSSatisfiesExpression"
15603  // foo satisfies T
15604];
15605function unwrapTSNode(node) {
15606  if (TS_NODE_TYPES.includes(node.type)) {
15607    return unwrapTSNode(node.expression);
15608  } else {
15609    return node;
15610  }
15611}
15612
15613const isStaticExp = (p) => p.type === 4 && p.isStatic;
15614function isCoreComponent(tag) {
15615  switch (tag) {
15616    case "Teleport":
15617    case "teleport":
15618      return TELEPORT;
15619    case "Suspense":
15620    case "suspense":
15621      return SUSPENSE;
15622    case "KeepAlive":
15623    case "keep-alive":
15624      return KEEP_ALIVE;
15625    case "BaseTransition":
15626    case "base-transition":
15627      return BASE_TRANSITION;
15628  }
15629}
15630const nonIdentifierRE = /^\d|[^\$\w]/;
15631const isSimpleIdentifier = (name) => !nonIdentifierRE.test(name);
15632const validFirstIdentCharRE = /[A-Za-z_$\xA0-\uFFFF]/;
15633const validIdentCharRE = /[\.\?\w$\xA0-\uFFFF]/;
15634const whitespaceRE = /\s+[.[]\s*|\s*[.[]\s+/g;
15635const isMemberExpressionBrowser = (path) => {
15636  path = path.trim().replace(whitespaceRE, (s) => s.trim());
15637  let state = 0 /* inMemberExp */;
15638  let stateStack = [];
15639  let currentOpenBracketCount = 0;
15640  let currentOpenParensCount = 0;
15641  let currentStringType = null;
15642  for (let i = 0; i < path.length; i++) {
15643    const char = path.charAt(i);
15644    switch (state) {
15645      case 0 /* inMemberExp */:
15646        if (char === "[") {
15647          stateStack.push(state);
15648          state = 1 /* inBrackets */;
15649          currentOpenBracketCount++;
15650        } else if (char === "(") {
15651          stateStack.push(state);
15652          state = 2 /* inParens */;
15653          currentOpenParensCount++;
15654        } else if (!(i === 0 ? validFirstIdentCharRE : validIdentCharRE).test(char)) {
15655          return false;
15656        }
15657        break;
15658      case 1 /* inBrackets */:
15659        if (char === `'` || char === `"` || char === "`") {
15660          stateStack.push(state);
15661          state = 3 /* inString */;
15662          currentStringType = char;
15663        } else if (char === `[`) {
15664          currentOpenBracketCount++;
15665        } else if (char === `]`) {
15666          if (!--currentOpenBracketCount) {
15667            state = stateStack.pop();
15668          }
15669        }
15670        break;
15671      case 2 /* inParens */:
15672        if (char === `'` || char === `"` || char === "`") {
15673          stateStack.push(state);
15674          state = 3 /* inString */;
15675          currentStringType = char;
15676        } else if (char === `(`) {
15677          currentOpenParensCount++;
15678        } else if (char === `)`) {
15679          if (i === path.length - 1) {
15680            return false;
15681          }
15682          if (!--currentOpenParensCount) {
15683            state = stateStack.pop();
15684          }
15685        }
15686        break;
15687      case 3 /* inString */:
15688        if (char === currentStringType) {
15689          state = stateStack.pop();
15690          currentStringType = null;
15691        }
15692        break;
15693    }
15694  }
15695  return !currentOpenBracketCount && !currentOpenParensCount;
15696};
15697const isMemberExpressionNode = _vue_shared__WEBPACK_IMPORTED_MODULE_0__["NOOP"] ;
15698const isMemberExpression = isMemberExpressionBrowser ;
15699function advancePositionWithClone(pos, source, numberOfCharacters = source.length) {
15700  return advancePositionWithMutation(
15701    {
15702      offset: pos.offset,
15703      line: pos.line,
15704      column: pos.column
15705    },
15706    source,
15707    numberOfCharacters
15708  );
15709}
15710function advancePositionWithMutation(pos, source, numberOfCharacters = source.length) {
15711  let linesCount = 0;
15712  let lastNewLinePos = -1;
15713  for (let i = 0; i < numberOfCharacters; i++) {
15714    if (source.charCodeAt(i) === 10) {
15715      linesCount++;
15716      lastNewLinePos = i;
15717    }
15718  }
15719  pos.offset += numberOfCharacters;
15720  pos.line += linesCount;
15721  pos.column = lastNewLinePos === -1 ? pos.column + numberOfCharacters : numberOfCharacters - lastNewLinePos;
15722  return pos;
15723}
15724function assert(condition, msg) {
15725  if (!condition) {
15726    throw new Error(msg || `unexpected compiler condition`);
15727  }
15728}
15729function findDir(node, name, allowEmpty = false) {
15730  for (let i = 0; i < node.props.length; i++) {
15731    const p = node.props[i];
15732    if (p.type === 7 && (allowEmpty || p.exp) && (Object(_vue_shared__WEBPACK_IMPORTED_MODULE_0__["isString"])(name) ? p.name === name : name.test(p.name))) {
15733      return p;
15734    }
15735  }
15736}
15737function findProp(node, name, dynamicOnly = false, allowEmpty = false) {
15738  for (let i = 0; i < node.props.length; i++) {
15739    const p = node.props[i];
15740    if (p.type === 6) {
15741      if (dynamicOnly)
15742        continue;
15743      if (p.name === name && (p.value || allowEmpty)) {
15744        return p;
15745      }
15746    } else if (p.name === "bind" && (p.exp || allowEmpty) && isStaticArgOf(p.arg, name)) {
15747      return p;
15748    }
15749  }
15750}
15751function isStaticArgOf(arg, name) {
15752  return !!(arg && isStaticExp(arg) && arg.content === name);
15753}
15754function hasDynamicKeyVBind(node) {
15755  return node.props.some(
15756    (p) => p.type === 7 && p.name === "bind" && (!p.arg || // v-bind="obj"
15757    p.arg.type !== 4 || // v-bind:[_ctx.foo]
15758    !p.arg.isStatic)
15759    // v-bind:[foo]
15760  );
15761}
15762function isText$1(node) {
15763  return node.type === 5 || node.type === 2;
15764}
15765function isVSlot(p) {
15766  return p.type === 7 && p.name === "slot";
15767}
15768function isTemplateNode(node) {
15769  return node.type === 1 && node.tagType === 3;
15770}
15771function isSlotOutlet(node) {
15772  return node.type === 1 && node.tagType === 2;
15773}
15774const propsHelperSet = /* @__PURE__ */ new Set([NORMALIZE_PROPS, GUARD_REACTIVE_PROPS]);
15775function getUnnormalizedProps(props, callPath = []) {
15776  if (props && !Object(_vue_shared__WEBPACK_IMPORTED_MODULE_0__["isString"])(props) && props.type === 14) {
15777    const callee = props.callee;
15778    if (!Object(_vue_shared__WEBPACK_IMPORTED_MODULE_0__["isString"])(callee) && propsHelperSet.has(callee)) {
15779      return getUnnormalizedProps(
15780        props.arguments[0],
15781        callPath.concat(props)
15782      );
15783    }
15784  }
15785  return [props, callPath];
15786}
15787function injectProp(node, prop, context) {
15788  let propsWithInjection;
15789  let props = node.type === 13 ? node.props : node.arguments[2];
15790  let callPath = [];
15791  let parentCall;
15792  if (props && !Object(_vue_shared__WEBPACK_IMPORTED_MODULE_0__["isString"])(props) && props.type === 14) {
15793    const ret = getUnnormalizedProps(props);
15794    props = ret[0];
15795    callPath = ret[1];
15796    parentCall = callPath[callPath.length - 1];
15797  }
15798  if (props == null || Object(_vue_shared__WEBPACK_IMPORTED_MODULE_0__["isString"])(props)) {
15799    propsWithInjection = createObjectExpression([prop]);
15800  } else if (props.type === 14) {
15801    const first = props.arguments[0];
15802    if (!Object(_vue_shared__WEBPACK_IMPORTED_MODULE_0__["isString"])(first) && first.type === 15) {
15803      if (!hasProp(prop, first)) {
15804        first.properties.unshift(prop);
15805      }
15806    } else {
15807      if (props.callee === TO_HANDLERS) {
15808        propsWithInjection = createCallExpression(context.helper(MERGE_PROPS), [
15809          createObjectExpression([prop]),
15810          props
15811        ]);
15812      } else {
15813        props.arguments.unshift(createObjectExpression([prop]));
15814      }
15815    }
15816    !propsWithInjection && (propsWithInjection = props);
15817  } else if (props.type === 15) {
15818    if (!hasProp(prop, props)) {
15819      props.properties.unshift(prop);
15820    }
15821    propsWithInjection = props;
15822  } else {
15823    propsWithInjection = createCallExpression(context.helper(MERGE_PROPS), [
15824      createObjectExpression([prop]),
15825      props
15826    ]);
15827    if (parentCall && parentCall.callee === GUARD_REACTIVE_PROPS) {
15828      parentCall = callPath[callPath.length - 2];
15829    }
15830  }
15831  if (node.type === 13) {
15832    if (parentCall) {
15833      parentCall.arguments[0] = propsWithInjection;
15834    } else {
15835      node.props = propsWithInjection;
15836    }
15837  } else {
15838    if (parentCall) {
15839      parentCall.arguments[0] = propsWithInjection;
15840    } else {
15841      node.arguments[2] = propsWithInjection;
15842    }
15843  }
15844}
15845function hasProp(prop, props) {
15846  let result = false;
15847  if (prop.key.type === 4) {
15848    const propKeyName = prop.key.content;
15849    result = props.properties.some(
15850      (p) => p.key.type === 4 && p.key.content === propKeyName
15851    );
15852  }
15853  return result;
15854}
15855function toValidAssetId(name, type) {
15856  return `_${type}_${name.replace(/[^\w]/g, (searchValue, replaceValue) => {
15857    return searchValue === "-" ? "_" : name.charCodeAt(replaceValue).toString();
15858  })}`;
15859}
15860function hasScopeRef(node, ids) {
15861  if (!node || Object.keys(ids).length === 0) {
15862    return false;
15863  }
15864  switch (node.type) {
15865    case 1:
15866      for (let i = 0; i < node.props.length; i++) {
15867        const p = node.props[i];
15868        if (p.type === 7 && (hasScopeRef(p.arg, ids) || hasScopeRef(p.exp, ids))) {
15869          return true;
15870        }
15871      }
15872      return node.children.some((c) => hasScopeRef(c, ids));
15873    case 11:
15874      if (hasScopeRef(node.source, ids)) {
15875        return true;
15876      }
15877      return node.children.some((c) => hasScopeRef(c, ids));
15878    case 9:
15879      return node.branches.some((b) => hasScopeRef(b, ids));
15880    case 10:
15881      if (hasScopeRef(node.condition, ids)) {
15882        return true;
15883      }
15884      return node.children.some((c) => hasScopeRef(c, ids));
15885    case 4:
15886      return !node.isStatic && isSimpleIdentifier(node.content) && !!ids[node.content];
15887    case 8:
15888      return node.children.some((c) => Object(_vue_shared__WEBPACK_IMPORTED_MODULE_0__["isObject"])(c) && hasScopeRef(c, ids));
15889    case 5:
15890    case 12:
15891      return hasScopeRef(node.content, ids);
15892    case 2:
15893    case 3:
15894      return false;
15895    default:
15896      if (true) ;
15897      return false;
15898  }
15899}
15900function getMemoedVNodeCall(node) {
15901  if (node.type === 14 && node.callee === WITH_MEMO) {
15902    return node.arguments[1].returns;
15903  } else {
15904    return node;
15905  }
15906}
15907const forAliasRE = /([\s\S]*?)\s+(?:in|of)\s+([\s\S]*)/;
15908
15909const defaultParserOptions = {
15910  parseMode: "base",
15911  ns: 0,
15912  delimiters: [`{{`, `}}`],
15913  getNamespace: () => 0,
15914  isVoidTag: _vue_shared__WEBPACK_IMPORTED_MODULE_0__["NO"],
15915  isPreTag: _vue_shared__WEBPACK_IMPORTED_MODULE_0__["NO"],
15916  isCustomElement: _vue_shared__WEBPACK_IMPORTED_MODULE_0__["NO"],
15917  onError: defaultOnError,
15918  onWarn: defaultOnWarn,
15919  comments: !!("development" !== "production"),
15920  prefixIdentifiers: false
15921};
15922let currentOptions = defaultParserOptions;
15923let currentRoot = null;
15924let currentInput = "";
15925let currentOpenTag = null;
15926let currentProp = null;
15927let currentAttrValue = "";
15928let currentAttrStartIndex = -1;
15929let currentAttrEndIndex = -1;
15930let inPre = 0;
15931let inVPre = false;
15932let currentVPreBoundary = null;
15933const stack = [];
15934const tokenizer = new Tokenizer(stack, {
15935  onerr: emitError,
15936  ontext(start, end) {
15937    onText(getSlice(start, end), start, end);
15938  },
15939  ontextentity(char, start, end) {
15940    onText(char, start, end);
15941  },
15942  oninterpolation(start, end) {
15943    if (inVPre) {
15944      return onText(getSlice(start, end), start, end);
15945    }
15946    let innerStart = start + tokenizer.delimiterOpen.length;
15947    let innerEnd = end - tokenizer.delimiterClose.length;
15948    while (isWhitespace(currentInput.charCodeAt(innerStart))) {
15949      innerStart++;
15950    }
15951    while (isWhitespace(currentInput.charCodeAt(innerEnd - 1))) {
15952      innerEnd--;
15953    }
15954    let exp = getSlice(innerStart, innerEnd);
15955    if (exp.includes("&")) {
15956      {
15957        exp = currentOptions.decodeEntities(exp, false);
15958      }
15959    }
15960    addNode({
15961      type: 5,
15962      content: createExp(exp, false, getLoc(innerStart, innerEnd)),
15963      loc: getLoc(start, end)
15964    });
15965  },
15966  onopentagname(start, end) {
15967    const name = getSlice(start, end);
15968    currentOpenTag = {
15969      type: 1,
15970      tag: name,
15971      ns: currentOptions.getNamespace(name, stack[0], currentOptions.ns),
15972      tagType: 0,
15973      // will be refined on tag close
15974      props: [],
15975      children: [],
15976      loc: getLoc(start - 1, end),
15977      codegenNode: void 0
15978    };
15979  },
15980  onopentagend(end) {
15981    endOpenTag(end);
15982  },
15983  onclosetag(start, end) {
15984    const name = getSlice(start, end);
15985    if (!currentOptions.isVoidTag(name)) {
15986      let found = false;
15987      for (let i = 0; i < stack.length; i++) {
15988        const e = stack[i];
15989        if (e.tag.toLowerCase() === name.toLowerCase()) {
15990          found = true;
15991          if (i > 0) {
15992            emitError(24, stack[0].loc.start.offset);
15993          }
15994          for (let j = 0; j <= i; j++) {
15995            const el = stack.shift();
15996            onCloseTag(el, end, j < i);
15997          }
15998          break;
15999        }
16000      }
16001      if (!found) {
16002        emitError(23, backTrack(start, 60));
16003      }
16004    }
16005  },
16006  onselfclosingtag(end) {
16007    var _a;
16008    const name = currentOpenTag.tag;
16009    currentOpenTag.isSelfClosing = true;
16010    endOpenTag(end);
16011    if (((_a = stack[0]) == null ? void 0 : _a.tag) === name) {
16012      onCloseTag(stack.shift(), end);
16013    }
16014  },
16015  onattribname(start, end) {
16016    currentProp = {
16017      type: 6,
16018      name: getSlice(start, end),
16019      nameLoc: getLoc(start, end),
16020      value: void 0,
16021      loc: getLoc(start)
16022    };
16023  },
16024  ondirname(start, end) {
16025    const raw = getSlice(start, end);
16026    const name = raw === "." || raw === ":" ? "bind" : raw === "@" ? "on" : raw === "#" ? "slot" : raw.slice(2);
16027    if (!inVPre && name === "") {
16028      emitError(26, start);
16029    }
16030    if (inVPre || name === "") {
16031      currentProp = {
16032        type: 6,
16033        name: raw,
16034        nameLoc: getLoc(start, end),
16035        value: void 0,
16036        loc: getLoc(start)
16037      };
16038    } else {
16039      currentProp = {
16040        type: 7,
16041        name,
16042        rawName: raw,
16043        exp: void 0,
16044        arg: void 0,
16045        modifiers: raw === "." ? ["prop"] : [],
16046        loc: getLoc(start)
16047      };
16048      if (name === "pre") {
16049        inVPre = tokenizer.inVPre = true;
16050        currentVPreBoundary = currentOpenTag;
16051        const props = currentOpenTag.props;
16052        for (let i = 0; i < props.length; i++) {
16053          if (props[i].type === 7) {
16054            props[i] = dirToAttr(props[i]);
16055          }
16056        }
16057      }
16058    }
16059  },
16060  ondirarg(start, end) {
16061    if (start === end)
16062      return;
16063    const arg = getSlice(start, end);
16064    if (inVPre) {
16065      currentProp.name += arg;
16066      setLocEnd(currentProp.nameLoc, end);
16067    } else {
16068      const isStatic = arg[0] !== `[`;
16069      currentProp.arg = createExp(
16070        isStatic ? arg : arg.slice(1, -1),
16071        isStatic,
16072        getLoc(start, end),
16073        isStatic ? 3 : 0
16074      );
16075    }
16076  },
16077  ondirmodifier(start, end) {
16078    const mod = getSlice(start, end);
16079    if (inVPre) {
16080      currentProp.name += "." + mod;
16081      setLocEnd(currentProp.nameLoc, end);
16082    } else if (currentProp.name === "slot") {
16083      const arg = currentProp.arg;
16084      if (arg) {
16085        arg.content += "." + mod;
16086        setLocEnd(arg.loc, end);
16087      }
16088    } else {
16089      currentProp.modifiers.push(mod);
16090    }
16091  },
16092  onattribdata(start, end) {
16093    currentAttrValue += getSlice(start, end);
16094    if (currentAttrStartIndex < 0)
16095      currentAttrStartIndex = start;
16096    currentAttrEndIndex = end;
16097  },
16098  onattribentity(char, start, end) {
16099    currentAttrValue += char;
16100    if (currentAttrStartIndex < 0)
16101      currentAttrStartIndex = start;
16102    currentAttrEndIndex = end;
16103  },
16104  onattribnameend(end) {
16105    const start = currentProp.loc.start.offset;
16106    const name = getSlice(start, end);
16107    if (currentProp.type === 7) {
16108      currentProp.rawName = name;
16109    }
16110    if (currentOpenTag.props.some(
16111      (p) => (p.type === 7 ? p.rawName : p.name) === name
16112    )) {
16113      emitError(2, start);
16114    }
16115  },
16116  onattribend(quote, end) {
16117    if (currentOpenTag && currentProp) {
16118      setLocEnd(currentProp.loc, end);
16119      if (quote !== 0) {
16120        if (currentAttrValue.includes("&")) {
16121          currentAttrValue = currentOptions.decodeEntities(
16122            currentAttrValue,
16123            true
16124          );
16125        }
16126        if (currentProp.type === 6) {
16127          if (currentProp.name === "class") {
16128            currentAttrValue = condense(currentAttrValue).trim();
16129          }
16130          if (quote === 1 && !currentAttrValue) {
16131            emitError(13, end);
16132          }
16133          currentProp.value = {
16134            type: 2,
16135            content: currentAttrValue,
16136            loc: quote === 1 ? getLoc(currentAttrStartIndex, currentAttrEndIndex) : getLoc(currentAttrStartIndex - 1, currentAttrEndIndex + 1)
16137          };
16138          if (tokenizer.inSFCRoot && currentOpenTag.tag === "template" && currentProp.name === "lang" && currentAttrValue && currentAttrValue !== "html") {
16139            tokenizer.enterRCDATA(toCharCodes(`</template`), 0);
16140          }
16141        } else {
16142          let expParseMode = 0 /* Normal */;
16143          currentProp.exp = createExp(
16144            currentAttrValue,
16145            false,
16146            getLoc(currentAttrStartIndex, currentAttrEndIndex),
16147            0,
16148            expParseMode
16149          );
16150          if (currentProp.name === "for") {
16151            currentProp.forParseResult = parseForExpression(currentProp.exp);
16152          }
16153          let syncIndex = -1;
16154          if (currentProp.name === "bind" && (syncIndex = currentProp.modifiers.indexOf("sync")) > -1 && checkCompatEnabled(
16155            "COMPILER_V_BIND_SYNC",
16156            currentOptions,
16157            currentProp.loc,
16158            currentProp.rawName
16159          )) {
16160            currentProp.name = "model";
16161            currentProp.modifiers.splice(syncIndex, 1);
16162          }
16163        }
16164      }
16165      if (currentProp.type !== 7 || currentProp.name !== "pre") {
16166        currentOpenTag.props.push(currentProp);
16167      }
16168    }
16169    currentAttrValue = "";
16170    currentAttrStartIndex = currentAttrEndIndex = -1;
16171  },
16172  oncomment(start, end) {
16173    if (currentOptions.comments) {
16174      addNode({
16175        type: 3,
16176        content: getSlice(start, end),
16177        loc: getLoc(start - 4, end + 3)
16178      });
16179    }
16180  },
16181  onend() {
16182    const end = currentInput.length;
16183    if (( true) && tokenizer.state !== 1) {
16184      switch (tokenizer.state) {
16185        case 5:
16186        case 8:
16187          emitError(5, end);
16188          break;
16189        case 3:
16190        case 4:
16191          emitError(
16192            25,
16193            tokenizer.sectionStart
16194          );
16195          break;
16196        case 28:
16197          if (tokenizer.currentSequence === Sequences.CdataEnd) {
16198            emitError(6, end);
16199          } else {
16200            emitError(7, end);
16201          }
16202          break;
16203        case 6:
16204        case 7:
16205        case 9:
16206        case 11:
16207        case 12:
16208        case 13:
16209        case 14:
16210        case 15:
16211        case 16:
16212        case 17:
16213        case 18:
16214        case 19:
16215        case 20:
16216        case 21:
16217          emitError(9, end);
16218          break;
16219      }
16220    }
16221    for (let index = 0; index < stack.length; index++) {
16222      onCloseTag(stack[index], end - 1);
16223      emitError(24, stack[index].loc.start.offset);
16224    }
16225  },
16226  oncdata(start, end) {
16227    if (stack[0].ns !== 0) {
16228      onText(getSlice(start, end), start, end);
16229    } else {
16230      emitError(1, start - 9);
16231    }
16232  },
16233  onprocessinginstruction(start) {
16234    if ((stack[0] ? stack[0].ns : currentOptions.ns) === 0) {
16235      emitError(
16236        21,
16237        start - 1
16238      );
16239    }
16240  }
16241});
16242const forIteratorRE = /,([^,\}\]]*)(?:,([^,\}\]]*))?$/;
16243const stripParensRE = /^\(|\)$/g;
16244function parseForExpression(input) {
16245  const loc = input.loc;
16246  const exp = input.content;
16247  const inMatch = exp.match(forAliasRE);
16248  if (!inMatch)
16249    return;
16250  const [, LHS, RHS] = inMatch;
16251  const createAliasExpression = (content, offset, asParam = false) => {
16252    const start = loc.start.offset + offset;
16253    const end = start + content.length;
16254    return createExp(
16255      content,
16256      false,
16257      getLoc(start, end),
16258      0,
16259      asParam ? 1 /* Params */ : 0 /* Normal */
16260    );
16261  };
16262  const result = {
16263    source: createAliasExpression(RHS.trim(), exp.indexOf(RHS, LHS.length)),
16264    value: void 0,
16265    key: void 0,
16266    index: void 0,
16267    finalized: false
16268  };
16269  let valueContent = LHS.trim().replace(stripParensRE, "").trim();
16270  const trimmedOffset = LHS.indexOf(valueContent);
16271  const iteratorMatch = valueContent.match(forIteratorRE);
16272  if (iteratorMatch) {
16273    valueContent = valueContent.replace(forIteratorRE, "").trim();
16274    const keyContent = iteratorMatch[1].trim();
16275    let keyOffset;
16276    if (keyContent) {
16277      keyOffset = exp.indexOf(keyContent, trimmedOffset + valueContent.length);
16278      result.key = createAliasExpression(keyContent, keyOffset, true);
16279    }
16280    if (iteratorMatch[2]) {
16281      const indexContent = iteratorMatch[2].trim();
16282      if (indexContent) {
16283        result.index = createAliasExpression(
16284          indexContent,
16285          exp.indexOf(
16286            indexContent,
16287            result.key ? keyOffset + keyContent.length : trimmedOffset + valueContent.length
16288          ),
16289          true
16290        );
16291      }
16292    }
16293  }
16294  if (valueContent) {
16295    result.value = createAliasExpression(valueContent, trimmedOffset, true);
16296  }
16297  return result;
16298}
16299function getSlice(start, end) {
16300  return currentInput.slice(start, end);
16301}
16302function endOpenTag(end) {
16303  if (tokenizer.inSFCRoot) {
16304    currentOpenTag.innerLoc = getLoc(end + 1, end + 1);
16305  }
16306  addNode(currentOpenTag);
16307  const { tag, ns } = currentOpenTag;
16308  if (ns === 0 && currentOptions.isPreTag(tag)) {
16309    inPre++;
16310  }
16311  if (currentOptions.isVoidTag(tag)) {
16312    onCloseTag(currentOpenTag, end);
16313  } else {
16314    stack.unshift(currentOpenTag);
16315    if (ns === 1 || ns === 2) {
16316      tokenizer.inXML = true;
16317    }
16318  }
16319  currentOpenTag = null;
16320}
16321function onText(content, start, end) {
16322  var _a;
16323  {
16324    const tag = (_a = stack[0]) == null ? void 0 : _a.tag;
16325    if (tag !== "script" && tag !== "style" && content.includes("&")) {
16326      content = currentOptions.decodeEntities(content, false);
16327    }
16328  }
16329  const parent = stack[0] || currentRoot;
16330  const lastNode = parent.children[parent.children.length - 1];
16331  if ((lastNode == null ? void 0 : lastNode.type) === 2) {
16332    lastNode.content += content;
16333    setLocEnd(lastNode.loc, end);
16334  } else {
16335    parent.children.push({
16336      type: 2,
16337      content,
16338      loc: getLoc(start, end)
16339    });
16340  }
16341}
16342function onCloseTag(el, end, isImplied = false) {
16343  if (isImplied) {
16344    setLocEnd(el.loc, backTrack(end, 60));
16345  } else {
16346    setLocEnd(el.loc, end + 1);
16347  }
16348  if (tokenizer.inSFCRoot) {
16349    if (el.children.length) {
16350      el.innerLoc.end = Object(_vue_shared__WEBPACK_IMPORTED_MODULE_0__["extend"])({}, el.children[el.children.length - 1].loc.end);
16351    } else {
16352      el.innerLoc.end = Object(_vue_shared__WEBPACK_IMPORTED_MODULE_0__["extend"])({}, el.innerLoc.start);
16353    }
16354    el.innerLoc.source = getSlice(
16355      el.innerLoc.start.offset,
16356      el.innerLoc.end.offset
16357    );
16358  }
16359  const { tag, ns } = el;
16360  if (!inVPre) {
16361    if (tag === "slot") {
16362      el.tagType = 2;
16363    } else if (isFragmentTemplate(el)) {
16364      el.tagType = 3;
16365    } else if (isComponent(el)) {
16366      el.tagType = 1;
16367    }
16368  }
16369  if (!tokenizer.inRCDATA) {
16370    el.children = condenseWhitespace(el.children, el.tag);
16371  }
16372  if (ns === 0 && currentOptions.isPreTag(tag)) {
16373    inPre--;
16374  }
16375  if (currentVPreBoundary === el) {
16376    inVPre = tokenizer.inVPre = false;
16377    currentVPreBoundary = null;
16378  }
16379  if (tokenizer.inXML && (stack[0] ? stack[0].ns : currentOptions.ns) === 0) {
16380    tokenizer.inXML = false;
16381  }
16382  {
16383    const props = el.props;
16384    if ( true && isCompatEnabled(
16385      "COMPILER_V_IF_V_FOR_PRECEDENCE",
16386      currentOptions
16387    )) {
16388      let hasIf = false;
16389      let hasFor = false;
16390      for (let i = 0; i < props.length; i++) {
16391        const p = props[i];
16392        if (p.type === 7) {
16393          if (p.name === "if") {
16394            hasIf = true;
16395          } else if (p.name === "for") {
16396            hasFor = true;
16397          }
16398        }
16399        if (hasIf && hasFor) {
16400          warnDeprecation(
16401            "COMPILER_V_IF_V_FOR_PRECEDENCE",
16402            currentOptions,
16403            el.loc
16404          );
16405          break;
16406        }
16407      }
16408    }
16409    if (!tokenizer.inSFCRoot && isCompatEnabled(
16410      "COMPILER_NATIVE_TEMPLATE",
16411      currentOptions
16412    ) && el.tag === "template" && !isFragmentTemplate(el)) {
16413       true && warnDeprecation(
16414        "COMPILER_NATIVE_TEMPLATE",
16415        currentOptions,
16416        el.loc
16417      );
16418      const parent = stack[0] || currentRoot;
16419      const index = parent.children.indexOf(el);
16420      parent.children.splice(index, 1, ...el.children);
16421    }
16422    const inlineTemplateProp = props.find(
16423      (p) => p.type === 6 && p.name === "inline-template"
16424    );
16425    if (inlineTemplateProp && checkCompatEnabled(
16426      "COMPILER_INLINE_TEMPLATE",
16427      currentOptions,
16428      inlineTemplateProp.loc
16429    ) && el.children.length) {
16430      inlineTemplateProp.value = {
16431        type: 2,
16432        content: getSlice(
16433          el.children[0].loc.start.offset,
16434          el.children[el.children.length - 1].loc.end.offset
16435        ),
16436        loc: inlineTemplateProp.loc
16437      };
16438    }
16439  }
16440}
16441function backTrack(index, c) {
16442  let i = index;
16443  while (currentInput.charCodeAt(i) !== c && i >= 0)
16444    i--;
16445  return i;
16446}
16447const specialTemplateDir = /* @__PURE__ */ new Set(["if", "else", "else-if", "for", "slot"]);
16448function isFragmentTemplate({ tag, props }) {
16449  if (tag === "template") {
16450    for (let i = 0; i < props.length; i++) {
16451      if (props[i].type === 7 && specialTemplateDir.has(props[i].name)) {
16452        return true;
16453      }
16454    }
16455  }
16456  return false;
16457}
16458function isComponent({ tag, props }) {
16459  var _a;
16460  if (currentOptions.isCustomElement(tag)) {
16461    return false;
16462  }
16463  if (tag === "component" || isUpperCase(tag.charCodeAt(0)) || isCoreComponent(tag) || ((_a = currentOptions.isBuiltInComponent) == null ? void 0 : _a.call(currentOptions, tag)) || currentOptions.isNativeTag && !currentOptions.isNativeTag(tag)) {
16464    return true;
16465  }
16466  for (let i = 0; i < props.length; i++) {
16467    const p = props[i];
16468    if (p.type === 6) {
16469      if (p.name === "is" && p.value) {
16470        if (p.value.content.startsWith("vue:")) {
16471          return true;
16472        } else if (checkCompatEnabled(
16473          "COMPILER_IS_ON_ELEMENT",
16474          currentOptions,
16475          p.loc
16476        )) {
16477          return true;
16478        }
16479      }
16480    } else if (// :is on plain element - only treat as component in compat mode
16481    p.name === "bind" && isStaticArgOf(p.arg, "is") && checkCompatEnabled(
16482      "COMPILER_IS_ON_ELEMENT",
16483      currentOptions,
16484      p.loc
16485    )) {
16486      return true;
16487    }
16488  }
16489  return false;
16490}
16491function isUpperCase(c) {
16492  return c > 64 && c < 91;
16493}
16494const windowsNewlineRE = /\r\n/g;
16495function condenseWhitespace(nodes, tag) {
16496  var _a, _b;
16497  const shouldCondense = currentOptions.whitespace !== "preserve";
16498  let removedWhitespace = false;
16499  for (let i = 0; i < nodes.length; i++) {
16500    const node = nodes[i];
16501    if (node.type === 2) {
16502      if (!inPre) {
16503        if (isAllWhitespace(node.content)) {
16504          const prev = (_a = nodes[i - 1]) == null ? void 0 : _a.type;
16505          const next = (_b = nodes[i + 1]) == null ? void 0 : _b.type;
16506          if (!prev || !next || shouldCondense && (prev === 3 && (next === 3 || next === 1) || prev === 1 && (next === 3 || next === 1 && hasNewlineChar(node.content)))) {
16507            removedWhitespace = true;
16508            nodes[i] = null;
16509          } else {
16510            node.content = " ";
16511          }
16512        } else if (shouldCondense) {
16513          node.content = condense(node.content);
16514        }
16515      } else {
16516        node.content = node.content.replace(windowsNewlineRE, "\n");
16517      }
16518    }
16519  }
16520  if (inPre && tag && currentOptions.isPreTag(tag)) {
16521    const first = nodes[0];
16522    if (first && first.type === 2) {
16523      first.content = first.content.replace(/^\r?\n/, "");
16524    }
16525  }
16526  return removedWhitespace ? nodes.filter(Boolean) : nodes;
16527}
16528function isAllWhitespace(str) {
16529  for (let i = 0; i < str.length; i++) {
16530    if (!isWhitespace(str.charCodeAt(i))) {
16531      return false;
16532    }
16533  }
16534  return true;
16535}
16536function hasNewlineChar(str) {
16537  for (let i = 0; i < str.length; i++) {
16538    const c = str.charCodeAt(i);
16539    if (c === 10 || c === 13) {
16540      return true;
16541    }
16542  }
16543  return false;
16544}
16545function condense(str) {
16546  let ret = "";
16547  let prevCharIsWhitespace = false;
16548  for (let i = 0; i < str.length; i++) {
16549    if (isWhitespace(str.charCodeAt(i))) {
16550      if (!prevCharIsWhitespace) {
16551        ret += " ";
16552        prevCharIsWhitespace = true;
16553      }
16554    } else {
16555      ret += str[i];
16556      prevCharIsWhitespace = false;
16557    }
16558  }
16559  return ret;
16560}
16561function addNode(node) {
16562  (stack[0] || currentRoot).children.push(node);
16563}
16564function getLoc(start, end) {
16565  return {
16566    start: tokenizer.getPos(start),
16567    // @ts-expect-error allow late attachment
16568    end: end == null ? end : tokenizer.getPos(end),
16569    // @ts-expect-error allow late attachment
16570    source: end == null ? end : getSlice(start, end)
16571  };
16572}
16573function setLocEnd(loc, end) {
16574  loc.end = tokenizer.getPos(end);
16575  loc.source = getSlice(loc.start.offset, end);
16576}
16577function dirToAttr(dir) {
16578  const attr = {
16579    type: 6,
16580    name: dir.rawName,
16581    nameLoc: getLoc(
16582      dir.loc.start.offset,
16583      dir.loc.start.offset + dir.rawName.length
16584    ),
16585    value: void 0,
16586    loc: dir.loc
16587  };
16588  if (dir.exp) {
16589    const loc = dir.exp.loc;
16590    if (loc.end.offset < dir.loc.end.offset) {
16591      loc.start.offset--;
16592      loc.start.column--;
16593      loc.end.offset++;
16594      loc.end.column++;
16595    }
16596    attr.value = {
16597      type: 2,
16598      content: dir.exp.content,
16599      loc
16600    };
16601  }
16602  return attr;
16603}
16604function createExp(content, isStatic = false, loc, constType = 0, parseMode = 0 /* Normal */) {
16605  const exp = createSimpleExpression(content, isStatic, loc, constType);
16606  return exp;
16607}
16608function emitError(code, index, message) {
16609  currentOptions.onError(
16610    createCompilerError(code, getLoc(index, index), void 0, message)
16611  );
16612}
16613function reset() {
16614  tokenizer.reset();
16615  currentOpenTag = null;
16616  currentProp = null;
16617  currentAttrValue = "";
16618  currentAttrStartIndex = -1;
16619  currentAttrEndIndex = -1;
16620  stack.length = 0;
16621}
16622function baseParse(input, options) {
16623  reset();
16624  currentInput = input;
16625  currentOptions = Object(_vue_shared__WEBPACK_IMPORTED_MODULE_0__["extend"])({}, defaultParserOptions);
16626  if (options) {
16627    let key;
16628    for (key in options) {
16629      if (options[key] != null) {
16630        currentOptions[key] = options[key];
16631      }
16632    }
16633  }
16634  if (true) {
16635    if (!currentOptions.decodeEntities) {
16636      throw new Error(
16637        `[@vue/compiler-core] decodeEntities option is required in browser builds.`
16638      );
16639    }
16640  }
16641  tokenizer.mode = currentOptions.parseMode === "html" ? 1 : currentOptions.parseMode === "sfc" ? 2 : 0;
16642  tokenizer.inXML = currentOptions.ns === 1 || currentOptions.ns === 2;
16643  const delimiters = options == null ? void 0 : options.delimiters;
16644  if (delimiters) {
16645    tokenizer.delimiterOpen = toCharCodes(delimiters[0]);
16646    tokenizer.delimiterClose = toCharCodes(delimiters[1]);
16647  }
16648  const root = currentRoot = createRoot([], input);
16649  tokenizer.parse(currentInput);
16650  root.loc = getLoc(0, input.length);
16651  root.children = condenseWhitespace(root.children);
16652  currentRoot = null;
16653  return root;
16654}
16655
16656function hoistStatic(root, context) {
16657  walk(
16658    root,
16659    context,
16660    // Root node is unfortunately non-hoistable due to potential parent
16661    // fallthrough attributes.
16662    isSingleElementRoot(root, root.children[0])
16663  );
16664}
16665function isSingleElementRoot(root, child) {
16666  const { children } = root;
16667  return children.length === 1 && child.type === 1 && !isSlotOutlet(child);
16668}
16669function walk(node, context, doNotHoistNode = false) {
16670  const { children } = node;
16671  const originalCount = children.length;
16672  let hoistedCount = 0;
16673  for (let i = 0; i < children.length; i++) {
16674    const child = children[i];
16675    if (child.type === 1 && child.tagType === 0) {
16676      const constantType = doNotHoistNode ? 0 : getConstantType(child, context);
16677      if (constantType > 0) {
16678        if (constantType >= 2) {
16679          child.codegenNode.patchFlag = -1 + ( true ? ` /* HOISTED */` : undefined);
16680          child.codegenNode = context.hoist(child.codegenNode);
16681          hoistedCount++;
16682          continue;
16683        }
16684      } else {
16685        const codegenNode = child.codegenNode;
16686        if (codegenNode.type === 13) {
16687          const flag = getPatchFlag(codegenNode);
16688          if ((!flag || flag === 512 || flag === 1) && getGeneratedPropsConstantType(child, context) >= 2) {
16689            const props = getNodeProps(child);
16690            if (props) {
16691              codegenNode.props = context.hoist(props);
16692            }
16693          }
16694          if (codegenNode.dynamicProps) {
16695            codegenNode.dynamicProps = context.hoist(codegenNode.dynamicProps);
16696          }
16697        }
16698      }
16699    }
16700    if (child.type === 1) {
16701      const isComponent = child.tagType === 1;
16702      if (isComponent) {
16703        context.scopes.vSlot++;
16704      }
16705      walk(child, context);
16706      if (isComponent) {
16707        context.scopes.vSlot--;
16708      }
16709    } else if (child.type === 11) {
16710      walk(child, context, child.children.length === 1);
16711    } else if (child.type === 9) {
16712      for (let i2 = 0; i2 < child.branches.length; i2++) {
16713        walk(
16714          child.branches[i2],
16715          context,
16716          child.branches[i2].children.length === 1
16717        );
16718      }
16719    }
16720  }
16721  if (hoistedCount && context.transformHoist) {
16722    context.transformHoist(children, context, node);
16723  }
16724  if (hoistedCount && hoistedCount === originalCount && node.type === 1 && node.tagType === 0 && node.codegenNode && node.codegenNode.type === 13 && Object(_vue_shared__WEBPACK_IMPORTED_MODULE_0__["isArray"])(node.codegenNode.children)) {
16725    const hoisted = context.hoist(
16726      createArrayExpression(node.codegenNode.children)
16727    );
16728    if (context.hmr) {
16729      hoisted.content = `[...${hoisted.content}]`;
16730    }
16731    node.codegenNode.children = hoisted;
16732  }
16733}
16734function getConstantType(node, context) {
16735  const { constantCache } = context;
16736  switch (node.type) {
16737    case 1:
16738      if (node.tagType !== 0) {
16739        return 0;
16740      }
16741      const cached = constantCache.get(node);
16742      if (cached !== void 0) {
16743        return cached;
16744      }
16745      const codegenNode = node.codegenNode;
16746      if (codegenNode.type !== 13) {
16747        return 0;
16748      }
16749      if (codegenNode.isBlock && node.tag !== "svg" && node.tag !== "foreignObject") {
16750        return 0;
16751      }
16752      const flag = getPatchFlag(codegenNode);
16753      if (!flag) {
16754        let returnType2 = 3;
16755        const generatedPropsType = getGeneratedPropsConstantType(node, context);
16756        if (generatedPropsType === 0) {
16757          constantCache.set(node, 0);
16758          return 0;
16759        }
16760        if (generatedPropsType < returnType2) {
16761          returnType2 = generatedPropsType;
16762        }
16763        for (let i = 0; i < node.children.length; i++) {
16764          const childType = getConstantType(node.children[i], context);
16765          if (childType === 0) {
16766            constantCache.set(node, 0);
16767            return 0;
16768          }
16769          if (childType < returnType2) {
16770            returnType2 = childType;
16771          }
16772        }
16773        if (returnType2 > 1) {
16774          for (let i = 0; i < node.props.length; i++) {
16775            const p = node.props[i];
16776            if (p.type === 7 && p.name === "bind" && p.exp) {
16777              const expType = getConstantType(p.exp, context);
16778              if (expType === 0) {
16779                constantCache.set(node, 0);
16780                return 0;
16781              }
16782              if (expType < returnType2) {
16783                returnType2 = expType;
16784              }
16785            }
16786          }
16787        }
16788        if (codegenNode.isBlock) {
16789          for (let i = 0; i < node.props.length; i++) {
16790            const p = node.props[i];
16791            if (p.type === 7) {
16792              constantCache.set(node, 0);
16793              return 0;
16794            }
16795          }
16796          context.removeHelper(OPEN_BLOCK);
16797          context.removeHelper(
16798            getVNodeBlockHelper(context.inSSR, codegenNode.isComponent)
16799          );
16800          codegenNode.isBlock = false;
16801          context.helper(getVNodeHelper(context.inSSR, codegenNode.isComponent));
16802        }
16803        constantCache.set(node, returnType2);
16804        return returnType2;
16805      } else {
16806        constantCache.set(node, 0);
16807        return 0;
16808      }
16809    case 2:
16810    case 3:
16811      return 3;
16812    case 9:
16813    case 11:
16814    case 10:
16815      return 0;
16816    case 5:
16817    case 12:
16818      return getConstantType(node.content, context);
16819    case 4:
16820      return node.constType;
16821    case 8:
16822      let returnType = 3;
16823      for (let i = 0; i < node.children.length; i++) {
16824        const child = node.children[i];
16825        if (Object(_vue_shared__WEBPACK_IMPORTED_MODULE_0__["isString"])(child) || Object(_vue_shared__WEBPACK_IMPORTED_MODULE_0__["isSymbol"])(child)) {
16826          continue;
16827        }
16828        const childType = getConstantType(child, context);
16829        if (childType === 0) {
16830          return 0;
16831        } else if (childType < returnType) {
16832          returnType = childType;
16833        }
16834      }
16835      return returnType;
16836    default:
16837      if (true) ;
16838      return 0;
16839  }
16840}
16841const allowHoistedHelperSet = /* @__PURE__ */ new Set([
16842  NORMALIZE_CLASS,
16843  NORMALIZE_STYLE,
16844  NORMALIZE_PROPS,
16845  GUARD_REACTIVE_PROPS
16846]);
16847function getConstantTypeOfHelperCall(value, context) {
16848  if (value.type === 14 && !Object(_vue_shared__WEBPACK_IMPORTED_MODULE_0__["isString"])(value.callee) && allowHoistedHelperSet.has(value.callee)) {
16849    const arg = value.arguments[0];
16850    if (arg.type === 4) {
16851      return getConstantType(arg, context);
16852    } else if (arg.type === 14) {
16853      return getConstantTypeOfHelperCall(arg, context);
16854    }
16855  }
16856  return 0;
16857}
16858function getGeneratedPropsConstantType(node, context) {
16859  let returnType = 3;
16860  const props = getNodeProps(node);
16861  if (props && props.type === 15) {
16862    const { properties } = props;
16863    for (let i = 0; i < properties.length; i++) {
16864      const { key, value } = properties[i];
16865      const keyType = getConstantType(key, context);
16866      if (keyType === 0) {
16867        return keyType;
16868      }
16869      if (keyType < returnType) {
16870        returnType = keyType;
16871      }
16872      let valueType;
16873      if (value.type === 4) {
16874        valueType = getConstantType(value, context);
16875      } else if (value.type === 14) {
16876        valueType = getConstantTypeOfHelperCall(value, context);
16877      } else {
16878        valueType = 0;
16879      }
16880      if (valueType === 0) {
16881        return valueType;
16882      }
16883      if (valueType < returnType) {
16884        returnType = valueType;
16885      }
16886    }
16887  }
16888  return returnType;
16889}
16890function getNodeProps(node) {
16891  const codegenNode = node.codegenNode;
16892  if (codegenNode.type === 13) {
16893    return codegenNode.props;
16894  }
16895}
16896function getPatchFlag(node) {
16897  const flag = node.patchFlag;
16898  return flag ? parseInt(flag, 10) : void 0;
16899}
16900
16901function createTransformContext(root, {
16902  filename = "",
16903  prefixIdentifiers = false,
16904  hoistStatic: hoistStatic2 = false,
16905  hmr = false,
16906  cacheHandlers = false,
16907  nodeTransforms = [],
16908  directiveTransforms = {},
16909  transformHoist = null,
16910  isBuiltInComponent = _vue_shared__WEBPACK_IMPORTED_MODULE_0__["NOOP"],
16911  isCustomElement = _vue_shared__WEBPACK_IMPORTED_MODULE_0__["NOOP"],
16912  expressionPlugins = [],
16913  scopeId = null,
16914  slotted = true,
16915  ssr = false,
16916  inSSR = false,
16917  ssrCssVars = ``,
16918  bindingMetadata = _vue_shared__WEBPACK_IMPORTED_MODULE_0__["EMPTY_OBJ"],
16919  inline = false,
16920  isTS = false,
16921  onError = defaultOnError,
16922  onWarn = defaultOnWarn,
16923  compatConfig
16924}) {
16925  const nameMatch = filename.replace(/\?.*$/, "").match(/([^/\\]+)\.\w+$/);
16926  const context = {
16927    // options
16928    filename,
16929    selfName: nameMatch && Object(_vue_shared__WEBPACK_IMPORTED_MODULE_0__["capitalize"])(Object(_vue_shared__WEBPACK_IMPORTED_MODULE_0__["camelize"])(nameMatch[1])),
16930    prefixIdentifiers,
16931    hoistStatic: hoistStatic2,
16932    hmr,
16933    cacheHandlers,
16934    nodeTransforms,
16935    directiveTransforms,
16936    transformHoist,
16937    isBuiltInComponent,
16938    isCustomElement,
16939    expressionPlugins,
16940    scopeId,
16941    slotted,
16942    ssr,
16943    inSSR,
16944    ssrCssVars,
16945    bindingMetadata,
16946    inline,
16947    isTS,
16948    onError,
16949    onWarn,
16950    compatConfig,
16951    // state
16952    root,
16953    helpers: /* @__PURE__ */ new Map(),
16954    components: /* @__PURE__ */ new Set(),
16955    directives: /* @__PURE__ */ new Set(),
16956    hoists: [],
16957    imports: [],
16958    constantCache: /* @__PURE__ */ new WeakMap(),
16959    temps: 0,
16960    cached: 0,
16961    identifiers: /* @__PURE__ */ Object.create(null),
16962    scopes: {
16963      vFor: 0,
16964      vSlot: 0,
16965      vPre: 0,
16966      vOnce: 0
16967    },
16968    parent: null,
16969    currentNode: root,
16970    childIndex: 0,
16971    inVOnce: false,
16972    // methods
16973    helper(name) {
16974      const count = context.helpers.get(name) || 0;
16975      context.helpers.set(name, count + 1);
16976      return name;
16977    },
16978    removeHelper(name) {
16979      const count = context.helpers.get(name);
16980      if (count) {
16981        const currentCount = count - 1;
16982        if (!currentCount) {
16983          context.helpers.delete(name);
16984        } else {
16985          context.helpers.set(name, currentCount);
16986        }
16987      }
16988    },
16989    helperString(name) {
16990      return `_${helperNameMap[context.helper(name)]}`;
16991    },
16992    replaceNode(node) {
16993      if (true) {
16994        if (!context.currentNode) {
16995          throw new Error(`Node being replaced is already removed.`);
16996        }
16997        if (!context.parent) {
16998          throw new Error(`Cannot replace root node.`);
16999        }
17000      }
17001      context.parent.children[context.childIndex] = context.currentNode = node;
17002    },
17003    removeNode(node) {
17004      if ( true && !context.parent) {
17005        throw new Error(`Cannot remove root node.`);
17006      }
17007      const list = context.parent.children;
17008      const removalIndex = node ? list.indexOf(node) : context.currentNode ? context.childIndex : -1;
17009      if ( true && removalIndex < 0) {
17010        throw new Error(`node being removed is not a child of current parent`);
17011      }
17012      if (!node || node === context.currentNode) {
17013        context.currentNode = null;
17014        context.onNodeRemoved();
17015      } else {
17016        if (context.childIndex > removalIndex) {
17017          context.childIndex--;
17018          context.onNodeRemoved();
17019        }
17020      }
17021      context.parent.children.splice(removalIndex, 1);
17022    },
17023    onNodeRemoved: _vue_shared__WEBPACK_IMPORTED_MODULE_0__["NOOP"],
17024    addIdentifiers(exp) {
17025    },
17026    removeIdentifiers(exp) {
17027    },
17028    hoist(exp) {
17029      if (Object(_vue_shared__WEBPACK_IMPORTED_MODULE_0__["isString"])(exp))
17030        exp = createSimpleExpression(exp);
17031      context.hoists.push(exp);
17032      const identifier = createSimpleExpression(
17033        `_hoisted_${context.hoists.length}`,
17034        false,
17035        exp.loc,
17036        2
17037      );
17038      identifier.hoisted = exp;
17039      return identifier;
17040    },
17041    cache(exp, isVNode = false) {
17042      return createCacheExpression(context.cached++, exp, isVNode);
17043    }
17044  };
17045  {
17046    context.filters = /* @__PURE__ */ new Set();
17047  }
17048  return context;
17049}
17050function transform(root, options) {
17051  const context = createTransformContext(root, options);
17052  traverseNode(root, context);
17053  if (options.hoistStatic) {
17054    hoistStatic(root, context);
17055  }
17056  if (!options.ssr) {
17057    createRootCodegen(root, context);
17058  }
17059  root.helpers = /* @__PURE__ */ new Set([...context.helpers.keys()]);
17060  root.components = [...context.components];
17061  root.directives = [...context.directives];
17062  root.imports = context.imports;
17063  root.hoists = context.hoists;
17064  root.temps = context.temps;
17065  root.cached = context.cached;
17066  root.transformed = true;
17067  {
17068    root.filters = [...context.filters];
17069  }
17070}
17071function createRootCodegen(root, context) {
17072  const { helper } = context;
17073  const { children } = root;
17074  if (children.length === 1) {
17075    const child = children[0];
17076    if (isSingleElementRoot(root, child) && child.codegenNode) {
17077      const codegenNode = child.codegenNode;
17078      if (codegenNode.type === 13) {
17079        convertToBlock(codegenNode, context);
17080      }
17081      root.codegenNode = codegenNode;
17082    } else {
17083      root.codegenNode = child;
17084    }
17085  } else if (children.length > 1) {
17086    let patchFlag = 64;
17087    let patchFlagText = _vue_shared__WEBPACK_IMPORTED_MODULE_0__["PatchFlagNames"][64];
17088    if ( true && children.filter((c) => c.type !== 3).length === 1) {
17089      patchFlag |= 2048;
17090      patchFlagText += `, ${_vue_shared__WEBPACK_IMPORTED_MODULE_0__["PatchFlagNames"][2048]}`;
17091    }
17092    root.codegenNode = createVNodeCall(
17093      context,
17094      helper(FRAGMENT),
17095      void 0,
17096      root.children,
17097      patchFlag + ( true ? ` /* ${patchFlagText} */` : undefined),
17098      void 0,
17099      void 0,
17100      true,
17101      void 0,
17102      false
17103    );
17104  } else ;
17105}
17106function traverseChildren(parent, context) {
17107  let i = 0;
17108  const nodeRemoved = () => {
17109    i--;
17110  };
17111  for (; i < parent.children.length; i++) {
17112    const child = parent.children[i];
17113    if (Object(_vue_shared__WEBPACK_IMPORTED_MODULE_0__["isString"])(child))
17114      continue;
17115    context.parent = parent;
17116    context.childIndex = i;
17117    context.onNodeRemoved = nodeRemoved;
17118    traverseNode(child, context);
17119  }
17120}
17121function traverseNode(node, context) {
17122  context.currentNode = node;
17123  const { nodeTransforms } = context;
17124  const exitFns = [];
17125  for (let i2 = 0; i2 < nodeTransforms.length; i2++) {
17126    const onExit = nodeTransforms[i2](node, context);
17127    if (onExit) {
17128      if (Object(_vue_shared__WEBPACK_IMPORTED_MODULE_0__["isArray"])(onExit)) {
17129        exitFns.push(...onExit);
17130      } else {
17131        exitFns.push(onExit);
17132      }
17133    }
17134    if (!context.currentNode) {
17135      return;
17136    } else {
17137      node = context.currentNode;
17138    }
17139  }
17140  switch (node.type) {
17141    case 3:
17142      if (!context.ssr) {
17143        context.helper(CREATE_COMMENT);
17144      }
17145      break;
17146    case 5:
17147      if (!context.ssr) {
17148        context.helper(TO_DISPLAY_STRING);
17149      }
17150      break;
17151    case 9:
17152      for (let i2 = 0; i2 < node.branches.length; i2++) {
17153        traverseNode(node.branches[i2], context);
17154      }
17155      break;
17156    case 10:
17157    case 11:
17158    case 1:
17159    case 0:
17160      traverseChildren(node, context);
17161      break;
17162  }
17163  context.currentNode = node;
17164  let i = exitFns.length;
17165  while (i--) {
17166    exitFns[i]();
17167  }
17168}
17169function createStructuralDirectiveTransform(name, fn) {
17170  const matches = Object(_vue_shared__WEBPACK_IMPORTED_MODULE_0__["isString"])(name) ? (n) => n === name : (n) => name.test(n);
17171  return (node, context) => {
17172    if (node.type === 1) {
17173      const { props } = node;
17174      if (node.tagType === 3 && props.some(isVSlot)) {
17175        return;
17176      }
17177      const exitFns = [];
17178      for (let i = 0; i < props.length; i++) {
17179        const prop = props[i];
17180        if (prop.type === 7 && matches(prop.name)) {
17181          props.splice(i, 1);
17182          i--;
17183          const onExit = fn(node, prop, context);
17184          if (onExit)
17185            exitFns.push(onExit);
17186        }
17187      }
17188      return exitFns;
17189    }
17190  };
17191}
17192
17193const PURE_ANNOTATION = `/*#__PURE__*/`;
17194const aliasHelper = (s) => `${helperNameMap[s]}: _${helperNameMap[s]}`;
17195function createCodegenContext(ast, {
17196  mode = "function",
17197  prefixIdentifiers = mode === "module",
17198  sourceMap = false,
17199  filename = `template.vue.html`,
17200  scopeId = null,
17201  optimizeImports = false,
17202  runtimeGlobalName = `Vue`,
17203  runtimeModuleName = `vue`,
17204  ssrRuntimeModuleName = "vue/server-renderer",
17205  ssr = false,
17206  isTS = false,
17207  inSSR = false
17208}) {
17209  const context = {
17210    mode,
17211    prefixIdentifiers,
17212    sourceMap,
17213    filename,
17214    scopeId,
17215    optimizeImports,
17216    runtimeGlobalName,
17217    runtimeModuleName,
17218    ssrRuntimeModuleName,
17219    ssr,
17220    isTS,
17221    inSSR,
17222    source: ast.source,
17223    code: ``,
17224    column: 1,
17225    line: 1,
17226    offset: 0,
17227    indentLevel: 0,
17228    pure: false,
17229    map: void 0,
17230    helper(key) {
17231      return `_${helperNameMap[key]}`;
17232    },
17233    push(code, newlineIndex = -2 /* None */, node) {
17234      context.code += code;
17235    },
17236    indent() {
17237      newline(++context.indentLevel);
17238    },
17239    deindent(withoutNewLine = false) {
17240      if (withoutNewLine) {
17241        --context.indentLevel;
17242      } else {
17243        newline(--context.indentLevel);
17244      }
17245    },
17246    newline() {
17247      newline(context.indentLevel);
17248    }
17249  };
17250  function newline(n) {
17251    context.push("\n" + `  `.repeat(n), 0 /* Start */);
17252  }
17253  return context;
17254}
17255function generate(ast, options = {}) {
17256  const context = createCodegenContext(ast, options);
17257  if (options.onContextCreated)
17258    options.onContextCreated(context);
17259  const {
17260    mode,
17261    push,
17262    prefixIdentifiers,
17263    indent,
17264    deindent,
17265    newline,
17266    scopeId,
17267    ssr
17268  } = context;
17269  const helpers = Array.from(ast.helpers);
17270  const hasHelpers = helpers.length > 0;
17271  const useWithBlock = !prefixIdentifiers && mode !== "module";
17272  const preambleContext = context;
17273  {
17274    genFunctionPreamble(ast, preambleContext);
17275  }
17276  const functionName = ssr ? `ssrRender` : `render`;
17277  const args = ssr ? ["_ctx", "_push", "_parent", "_attrs"] : ["_ctx", "_cache"];
17278  const signature = args.join(", ");
17279  {
17280    push(`function ${functionName}(${signature}) {`);
17281  }
17282  indent();
17283  if (useWithBlock) {
17284    push(`with (_ctx) {`);
17285    indent();
17286    if (hasHelpers) {
17287      push(
17288        `const { ${helpers.map(aliasHelper).join(", ")} } = _Vue
17289`,
17290        -1 /* End */
17291      );
17292      newline();
17293    }
17294  }
17295  if (ast.components.length) {
17296    genAssets(ast.components, "component", context);
17297    if (ast.directives.length || ast.temps > 0) {
17298      newline();
17299    }
17300  }
17301  if (ast.directives.length) {
17302    genAssets(ast.directives, "directive", context);
17303    if (ast.temps > 0) {
17304      newline();
17305    }
17306  }
17307  if (ast.filters && ast.filters.length) {
17308    newline();
17309    genAssets(ast.filters, "filter", context);
17310    newline();
17311  }
17312  if (ast.temps > 0) {
17313    push(`let `);
17314    for (let i = 0; i < ast.temps; i++) {
17315      push(`${i > 0 ? `, ` : ``}_temp${i}`);
17316    }
17317  }
17318  if (ast.components.length || ast.directives.length || ast.temps) {
17319    push(`
17320`, 0 /* Start */);
17321    newline();
17322  }
17323  if (!ssr) {
17324    push(`return `);
17325  }
17326  if (ast.codegenNode) {
17327    genNode(ast.codegenNode, context);
17328  } else {
17329    push(`null`);
17330  }
17331  if (useWithBlock) {
17332    deindent();
17333    push(`}`);
17334  }
17335  deindent();
17336  push(`}`);
17337  return {
17338    ast,
17339    code: context.code,
17340    preamble: ``,
17341    map: context.map ? context.map.toJSON() : void 0
17342  };
17343}
17344function genFunctionPreamble(ast, context) {
17345  const {
17346    ssr,
17347    prefixIdentifiers,
17348    push,
17349    newline,
17350    runtimeModuleName,
17351    runtimeGlobalName,
17352    ssrRuntimeModuleName
17353  } = context;
17354  const VueBinding = runtimeGlobalName;
17355  const helpers = Array.from(ast.helpers);
17356  if (helpers.length > 0) {
17357    {
17358      push(`const _Vue = ${VueBinding}
17359`, -1 /* End */);
17360      if (ast.hoists.length) {
17361        const staticHelpers = [
17362          CREATE_VNODE,
17363          CREATE_ELEMENT_VNODE,
17364          CREATE_COMMENT,
17365          CREATE_TEXT,
17366          CREATE_STATIC
17367        ].filter((helper) => helpers.includes(helper)).map(aliasHelper).join(", ");
17368        push(`const { ${staticHelpers} } = _Vue
17369`, -1 /* End */);
17370      }
17371    }
17372  }
17373  genHoists(ast.hoists, context);
17374  newline();
17375  push(`return `);
17376}
17377function genAssets(assets, type, { helper, push, newline, isTS }) {
17378  const resolver = helper(
17379    type === "filter" ? RESOLVE_FILTER : type === "component" ? RESOLVE_COMPONENT : RESOLVE_DIRECTIVE
17380  );
17381  for (let i = 0; i < assets.length; i++) {
17382    let id = assets[i];
17383    const maybeSelfReference = id.endsWith("__self");
17384    if (maybeSelfReference) {
17385      id = id.slice(0, -6);
17386    }
17387    push(
17388      `const ${toValidAssetId(id, type)} = ${resolver}(${JSON.stringify(id)}${maybeSelfReference ? `, true` : ``})${isTS ? `!` : ``}`
17389    );
17390    if (i < assets.length - 1) {
17391      newline();
17392    }
17393  }
17394}
17395function genHoists(hoists, context) {
17396  if (!hoists.length) {
17397    return;
17398  }
17399  context.pure = true;
17400  const { push, newline, helper, scopeId, mode } = context;
17401  newline();
17402  for (let i = 0; i < hoists.length; i++) {
17403    const exp = hoists[i];
17404    if (exp) {
17405      push(
17406        `const _hoisted_${i + 1} = ${``}`
17407      );
17408      genNode(exp, context);
17409      newline();
17410    }
17411  }
17412  context.pure = false;
17413}
17414function isText(n) {
17415  return Object(_vue_shared__WEBPACK_IMPORTED_MODULE_0__["isString"])(n) || n.type === 4 || n.type === 2 || n.type === 5 || n.type === 8;
17416}
17417function genNodeListAsArray(nodes, context) {
17418  const multilines = nodes.length > 3 ||  true && nodes.some((n) => Object(_vue_shared__WEBPACK_IMPORTED_MODULE_0__["isArray"])(n) || !isText(n));
17419  context.push(`[`);
17420  multilines && context.indent();
17421  genNodeList(nodes, context, multilines);
17422  multilines && context.deindent();
17423  context.push(`]`);
17424}
17425function genNodeList(nodes, context, multilines = false, comma = true) {
17426  const { push, newline } = context;
17427  for (let i = 0; i < nodes.length; i++) {
17428    const node = nodes[i];
17429    if (Object(_vue_shared__WEBPACK_IMPORTED_MODULE_0__["isString"])(node)) {
17430      push(node, -3 /* Unknown */);
17431    } else if (Object(_vue_shared__WEBPACK_IMPORTED_MODULE_0__["isArray"])(node)) {
17432      genNodeListAsArray(node, context);
17433    } else {
17434      genNode(node, context);
17435    }
17436    if (i < nodes.length - 1) {
17437      if (multilines) {
17438        comma && push(",");
17439        newline();
17440      } else {
17441        comma && push(", ");
17442      }
17443    }
17444  }
17445}
17446function genNode(node, context) {
17447  if (Object(_vue_shared__WEBPACK_IMPORTED_MODULE_0__["isString"])(node)) {
17448    context.push(node, -3 /* Unknown */);
17449    return;
17450  }
17451  if (Object(_vue_shared__WEBPACK_IMPORTED_MODULE_0__["isSymbol"])(node)) {
17452    context.push(context.helper(node));
17453    return;
17454  }
17455  switch (node.type) {
17456    case 1:
17457    case 9:
17458    case 11:
17459       true && assert(
17460        node.codegenNode != null,
17461        `Codegen node is missing for element/if/for node. Apply appropriate transforms first.`
17462      );
17463      genNode(node.codegenNode, context);
17464      break;
17465    case 2:
17466      genText(node, context);
17467      break;
17468    case 4:
17469      genExpression(node, context);
17470      break;
17471    case 5:
17472      genInterpolation(node, context);
17473      break;
17474    case 12:
17475      genNode(node.codegenNode, context);
17476      break;
17477    case 8:
17478      genCompoundExpression(node, context);
17479      break;
17480    case 3:
17481      genComment(node, context);
17482      break;
17483    case 13:
17484      genVNodeCall(node, context);
17485      break;
17486    case 14:
17487      genCallExpression(node, context);
17488      break;
17489    case 15:
17490      genObjectExpression(node, context);
17491      break;
17492    case 17:
17493      genArrayExpression(node, context);
17494      break;
17495    case 18:
17496      genFunctionExpression(node, context);
17497      break;
17498    case 19:
17499      genConditionalExpression(node, context);
17500      break;
17501    case 20:
17502      genCacheExpression(node, context);
17503      break;
17504    case 21:
17505      genNodeList(node.body, context, true, false);
17506      break;
17507    case 22:
17508      break;
17509    case 23:
17510      break;
17511    case 24:
17512      break;
17513    case 25:
17514      break;
17515    case 26:
17516      break;
17517    case 10:
17518      break;
17519    default:
17520      if (true) {
17521        assert(false, `unhandled codegen node type: ${node.type}`);
17522        const exhaustiveCheck = node;
17523        return exhaustiveCheck;
17524      }
17525  }
17526}
17527function genText(node, context) {
17528  context.push(JSON.stringify(node.content), -3 /* Unknown */, node);
17529}
17530function genExpression(node, context) {
17531  const { content, isStatic } = node;
17532  context.push(
17533    isStatic ? JSON.stringify(content) : content,
17534    -3 /* Unknown */,
17535    node
17536  );
17537}
17538function genInterpolation(node, context) {
17539  const { push, helper, pure } = context;
17540  if (pure)
17541    push(PURE_ANNOTATION);
17542  push(`${helper(TO_DISPLAY_STRING)}(`);
17543  genNode(node.content, context);
17544  push(`)`);
17545}
17546function genCompoundExpression(node, context) {
17547  for (let i = 0; i < node.children.length; i++) {
17548    const child = node.children[i];
17549    if (Object(_vue_shared__WEBPACK_IMPORTED_MODULE_0__["isString"])(child)) {
17550      context.push(child, -3 /* Unknown */);
17551    } else {
17552      genNode(child, context);
17553    }
17554  }
17555}
17556function genExpressionAsPropertyKey(node, context) {
17557  const { push } = context;
17558  if (node.type === 8) {
17559    push(`[`);
17560    genCompoundExpression(node, context);
17561    push(`]`);
17562  } else if (node.isStatic) {
17563    const text = isSimpleIdentifier(node.content) ? node.content : JSON.stringify(node.content);
17564    push(text, -2 /* None */, node);
17565  } else {
17566    push(`[${node.content}]`, -3 /* Unknown */, node);
17567  }
17568}
17569function genComment(node, context) {
17570  const { push, helper, pure } = context;
17571  if (pure) {
17572    push(PURE_ANNOTATION);
17573  }
17574  push(
17575    `${helper(CREATE_COMMENT)}(${JSON.stringify(node.content)})`,
17576    -3 /* Unknown */,
17577    node
17578  );
17579}
17580function genVNodeCall(node, context) {
17581  const { push, helper, pure } = context;
17582  const {
17583    tag,
17584    props,
17585    children,
17586    patchFlag,
17587    dynamicProps,
17588    directives,
17589    isBlock,
17590    disableTracking,
17591    isComponent
17592  } = node;
17593  if (directives) {
17594    push(helper(WITH_DIRECTIVES) + `(`);
17595  }
17596  if (isBlock) {
17597    push(`(${helper(OPEN_BLOCK)}(${disableTracking ? `true` : ``}), `);
17598  }
17599  if (pure) {
17600    push(PURE_ANNOTATION);
17601  }
17602  const callHelper = isBlock ? getVNodeBlockHelper(context.inSSR, isComponent) : getVNodeHelper(context.inSSR, isComponent);
17603  push(helper(callHelper) + `(`, -2 /* None */, node);
17604  genNodeList(
17605    genNullableArgs([tag, props, children, patchFlag, dynamicProps]),
17606    context
17607  );
17608  push(`)`);
17609  if (isBlock) {
17610    push(`)`);
17611  }
17612  if (directives) {
17613    push(`, `);
17614    genNode(directives, context);
17615    push(`)`);
17616  }
17617}
17618function genNullableArgs(args) {
17619  let i = args.length;
17620  while (i--) {
17621    if (args[i] != null)
17622      break;
17623  }
17624  return args.slice(0, i + 1).map((arg) => arg || `null`);
17625}
17626function genCallExpression(node, context) {
17627  const { push, helper, pure } = context;
17628  const callee = Object(_vue_shared__WEBPACK_IMPORTED_MODULE_0__["isString"])(node.callee) ? node.callee : helper(node.callee);
17629  if (pure) {
17630    push(PURE_ANNOTATION);
17631  }
17632  push(callee + `(`, -2 /* None */, node);
17633  genNodeList(node.arguments, context);
17634  push(`)`);
17635}
17636function genObjectExpression(node, context) {
17637  const { push, indent, deindent, newline } = context;
17638  const { properties } = node;
17639  if (!properties.length) {
17640    push(`{}`, -2 /* None */, node);
17641    return;
17642  }
17643  const multilines = properties.length > 1 ||  true && properties.some((p) => p.value.type !== 4);
17644  push(multilines ? `{` : `{ `);
17645  multilines && indent();
17646  for (let i = 0; i < properties.length; i++) {
17647    const { key, value } = properties[i];
17648    genExpressionAsPropertyKey(key, context);
17649    push(`: `);
17650    genNode(value, context);
17651    if (i < properties.length - 1) {
17652      push(`,`);
17653      newline();
17654    }
17655  }
17656  multilines && deindent();
17657  push(multilines ? `}` : ` }`);
17658}
17659function genArrayExpression(node, context) {
17660  genNodeListAsArray(node.elements, context);
17661}
17662function genFunctionExpression(node, context) {
17663  const { push, indent, deindent } = context;
17664  const { params, returns, body, newline, isSlot } = node;
17665  if (isSlot) {
17666    push(`_${helperNameMap[WITH_CTX]}(`);
17667  }
17668  push(`(`, -2 /* None */, node);
17669  if (Object(_vue_shared__WEBPACK_IMPORTED_MODULE_0__["isArray"])(params)) {
17670    genNodeList(params, context);
17671  } else if (params) {
17672    genNode(params, context);
17673  }
17674  push(`) => `);
17675  if (newline || body) {
17676    push(`{`);
17677    indent();
17678  }
17679  if (returns) {
17680    if (newline) {
17681      push(`return `);
17682    }
17683    if (Object(_vue_shared__WEBPACK_IMPORTED_MODULE_0__["isArray"])(returns)) {
17684      genNodeListAsArray(returns, context);
17685    } else {
17686      genNode(returns, context);
17687    }
17688  } else if (body) {
17689    genNode(body, context);
17690  }
17691  if (newline || body) {
17692    deindent();
17693    push(`}`);
17694  }
17695  if (isSlot) {
17696    if (node.isNonScopedSlot) {
17697      push(`, undefined, true`);
17698    }
17699    push(`)`);
17700  }
17701}
17702function genConditionalExpression(node, context) {
17703  const { test, consequent, alternate, newline: needNewline } = node;
17704  const { push, indent, deindent, newline } = context;
17705  if (test.type === 4) {
17706    const needsParens = !isSimpleIdentifier(test.content);
17707    needsParens && push(`(`);
17708    genExpression(test, context);
17709    needsParens && push(`)`);
17710  } else {
17711    push(`(`);
17712    genNode(test, context);
17713    push(`)`);
17714  }
17715  needNewline && indent();
17716  context.indentLevel++;
17717  needNewline || push(` `);
17718  push(`? `);
17719  genNode(consequent, context);
17720  context.indentLevel--;
17721  needNewline && newline();
17722  needNewline || push(` `);
17723  push(`: `);
17724  const isNested = alternate.type === 19;
17725  if (!isNested) {
17726    context.indentLevel++;
17727  }
17728  genNode(alternate, context);
17729  if (!isNested) {
17730    context.indentLevel--;
17731  }
17732  needNewline && deindent(
17733    true
17734    /* without newline */
17735  );
17736}
17737function genCacheExpression(node, context) {
17738  const { push, helper, indent, deindent, newline } = context;
17739  push(`_cache[${node.index}] || (`);
17740  if (node.isVNode) {
17741    indent();
17742    push(`${helper(SET_BLOCK_TRACKING)}(-1),`);
17743    newline();
17744  }
17745  push(`_cache[${node.index}] = `);
17746  genNode(node.value, context);
17747  if (node.isVNode) {
17748    push(`,`);
17749    newline();
17750    push(`${helper(SET_BLOCK_TRACKING)}(1),`);
17751    newline();
17752    push(`_cache[${node.index}]`);
17753    deindent();
17754  }
17755  push(`)`);
17756}
17757
17758const prohibitedKeywordRE = new RegExp(
17759  "\\b" + "arguments,await,break,case,catch,class,const,continue,debugger,default,delete,do,else,export,extends,finally,for,function,if,import,let,new,return,super,switch,throw,try,var,void,while,with,yield".split(",").join("\\b|\\b") + "\\b"
17760);
17761const stripStringRE = /'(?:[^'\\]|\\.)*'|"(?:[^"\\]|\\.)*"|`(?:[^`\\]|\\.)*\$\{|\}(?:[^`\\]|\\.)*`|`(?:[^`\\]|\\.)*`/g;
17762function validateBrowserExpression(node, context, asParams = false, asRawStatements = false) {
17763  const exp = node.content;
17764  if (!exp.trim()) {
17765    return;
17766  }
17767  try {
17768    new Function(
17769      asRawStatements ? ` ${exp} ` : `return ${asParams ? `(${exp}) => {}` : `(${exp})`}`
17770    );
17771  } catch (e) {
17772    let message = e.message;
17773    const keywordMatch = exp.replace(stripStringRE, "").match(prohibitedKeywordRE);
17774    if (keywordMatch) {
17775      message = `avoid using JavaScript keyword as property name: "${keywordMatch[0]}"`;
17776    }
17777    context.onError(
17778      createCompilerError(
17779        45,
17780        node.loc,
17781        void 0,
17782        message
17783      )
17784    );
17785  }
17786}
17787
17788const transformExpression = (node, context) => {
17789  if (node.type === 5) {
17790    node.content = processExpression(
17791      node.content,
17792      context
17793    );
17794  } else if (node.type === 1) {
17795    for (let i = 0; i < node.props.length; i++) {
17796      const dir = node.props[i];
17797      if (dir.type === 7 && dir.name !== "for") {
17798        const exp = dir.exp;
17799        const arg = dir.arg;
17800        if (exp && exp.type === 4 && !(dir.name === "on" && arg)) {
17801          dir.exp = processExpression(
17802            exp,
17803            context,
17804            // slot args must be processed as function params
17805            dir.name === "slot"
17806          );
17807        }
17808        if (arg && arg.type === 4 && !arg.isStatic) {
17809          dir.arg = processExpression(arg, context);
17810        }
17811      }
17812    }
17813  }
17814};
17815function processExpression(node, context, asParams = false, asRawStatements = false, localVars = Object.create(context.identifiers)) {
17816  {
17817    if (true) {
17818      validateBrowserExpression(node, context, asParams, asRawStatements);
17819    }
17820    return node;
17821  }
17822}
17823function stringifyExpression(exp) {
17824  if (Object(_vue_shared__WEBPACK_IMPORTED_MODULE_0__["isString"])(exp)) {
17825    return exp;
17826  } else if (exp.type === 4) {
17827    return exp.content;
17828  } else {
17829    return exp.children.map(stringifyExpression).join("");
17830  }
17831}
17832
17833const transformIf = createStructuralDirectiveTransform(
17834  /^(if|else|else-if)$/,
17835  (node, dir, context) => {
17836    return processIf(node, dir, context, (ifNode, branch, isRoot) => {
17837      const siblings = context.parent.children;
17838      let i = siblings.indexOf(ifNode);
17839      let key = 0;
17840      while (i-- >= 0) {
17841        const sibling = siblings[i];
17842        if (sibling && sibling.type === 9) {
17843          key += sibling.branches.length;
17844        }
17845      }
17846      return () => {
17847        if (isRoot) {
17848          ifNode.codegenNode = createCodegenNodeForBranch(
17849            branch,
17850            key,
17851            context
17852          );
17853        } else {
17854          const parentCondition = getParentCondition(ifNode.codegenNode);
17855          parentCondition.alternate = createCodegenNodeForBranch(
17856            branch,
17857            key + ifNode.branches.length - 1,
17858            context
17859          );
17860        }
17861      };
17862    });
17863  }
17864);
17865function processIf(node, dir, context, processCodegen) {
17866  if (dir.name !== "else" && (!dir.exp || !dir.exp.content.trim())) {
17867    const loc = dir.exp ? dir.exp.loc : node.loc;
17868    context.onError(
17869      createCompilerError(28, dir.loc)
17870    );
17871    dir.exp = createSimpleExpression(`true`, false, loc);
17872  }
17873  if ( true && dir.exp) {
17874    validateBrowserExpression(dir.exp, context);
17875  }
17876  if (dir.name === "if") {
17877    const branch = createIfBranch(node, dir);
17878    const ifNode = {
17879      type: 9,
17880      loc: node.loc,
17881      branches: [branch]
17882    };
17883    context.replaceNode(ifNode);
17884    if (processCodegen) {
17885      return processCodegen(ifNode, branch, true);
17886    }
17887  } else {
17888    const siblings = context.parent.children;
17889    const comments = [];
17890    let i = siblings.indexOf(node);
17891    while (i-- >= -1) {
17892      const sibling = siblings[i];
17893      if (sibling && sibling.type === 3) {
17894        context.removeNode(sibling);
17895         true && comments.unshift(sibling);
17896        continue;
17897      }
17898      if (sibling && sibling.type === 2 && !sibling.content.trim().length) {
17899        context.removeNode(sibling);
17900        continue;
17901      }
17902      if (sibling && sibling.type === 9) {
17903        if (dir.name === "else-if" && sibling.branches[sibling.branches.length - 1].condition === void 0) {
17904          context.onError(
17905            createCompilerError(30, node.loc)
17906          );
17907        }
17908        context.removeNode();
17909        const branch = createIfBranch(node, dir);
17910        if ( true && comments.length && // #3619 ignore comments if the v-if is direct child of <transition>
17911        !(context.parent && context.parent.type === 1 && (context.parent.tag === "transition" || context.parent.tag === "Transition"))) {
17912          branch.children = [...comments, ...branch.children];
17913        }
17914        if (true) {
17915          const key = branch.userKey;
17916          if (key) {
17917            sibling.branches.forEach(({ userKey }) => {
17918              if (isSameKey(userKey, key)) {
17919                context.onError(
17920                  createCompilerError(
17921                    29,
17922                    branch.userKey.loc
17923                  )
17924                );
17925              }
17926            });
17927          }
17928        }
17929        sibling.branches.push(branch);
17930        const onExit = processCodegen && processCodegen(sibling, branch, false);
17931        traverseNode(branch, context);
17932        if (onExit)
17933          onExit();
17934        context.currentNode = null;
17935      } else {
17936        context.onError(
17937          createCompilerError(30, node.loc)
17938        );
17939      }
17940      break;
17941    }
17942  }
17943}
17944function createIfBranch(node, dir) {
17945  const isTemplateIf = node.tagType === 3;
17946  return {
17947    type: 10,
17948    loc: node.loc,
17949    condition: dir.name === "else" ? void 0 : dir.exp,
17950    children: isTemplateIf && !findDir(node, "for") ? node.children : [node],
17951    userKey: findProp(node, `key`),
17952    isTemplateIf
17953  };
17954}
17955function createCodegenNodeForBranch(branch, keyIndex, context) {
17956  if (branch.condition) {
17957    return createConditionalExpression(
17958      branch.condition,
17959      createChildrenCodegenNode(branch, keyIndex, context),
17960      // make sure to pass in asBlock: true so that the comment node call
17961      // closes the current block.
17962      createCallExpression(context.helper(CREATE_COMMENT), [
17963         true ? '"v-if"' : undefined,
17964        "true"
17965      ])
17966    );
17967  } else {
17968    return createChildrenCodegenNode(branch, keyIndex, context);
17969  }
17970}
17971function createChildrenCodegenNode(branch, keyIndex, context) {
17972  const { helper } = context;
17973  const keyProperty = createObjectProperty(
17974    `key`,
17975    createSimpleExpression(
17976      `${keyIndex}`,
17977      false,
17978      locStub,
17979      2
17980    )
17981  );
17982  const { children } = branch;
17983  const firstChild = children[0];
17984  const needFragmentWrapper = children.length !== 1 || firstChild.type !== 1;
17985  if (needFragmentWrapper) {
17986    if (children.length === 1 && firstChild.type === 11) {
17987      const vnodeCall = firstChild.codegenNode;
17988      injectProp(vnodeCall, keyProperty, context);
17989      return vnodeCall;
17990    } else {
17991      let patchFlag = 64;
17992      let patchFlagText = _vue_shared__WEBPACK_IMPORTED_MODULE_0__["PatchFlagNames"][64];
17993      if ( true && !branch.isTemplateIf && children.filter((c) => c.type !== 3).length === 1) {
17994        patchFlag |= 2048;
17995        patchFlagText += `, ${_vue_shared__WEBPACK_IMPORTED_MODULE_0__["PatchFlagNames"][2048]}`;
17996      }
17997      return createVNodeCall(
17998        context,
17999        helper(FRAGMENT),
18000        createObjectExpression([keyProperty]),
18001        children,
18002        patchFlag + ( true ? ` /* ${patchFlagText} */` : undefined),
18003        void 0,
18004        void 0,
18005        true,
18006        false,
18007        false,
18008        branch.loc
18009      );
18010    }
18011  } else {
18012    const ret = firstChild.codegenNode;
18013    const vnodeCall = getMemoedVNodeCall(ret);
18014    if (vnodeCall.type === 13) {
18015      convertToBlock(vnodeCall, context);
18016    }
18017    injectProp(vnodeCall, keyProperty, context);
18018    return ret;
18019  }
18020}
18021function isSameKey(a, b) {
18022  if (!a || a.type !== b.type) {
18023    return false;
18024  }
18025  if (a.type === 6) {
18026    if (a.value.content !== b.value.content) {
18027      return false;
18028    }
18029  } else {
18030    const exp = a.exp;
18031    const branchExp = b.exp;
18032    if (exp.type !== branchExp.type) {
18033      return false;
18034    }
18035    if (exp.type !== 4 || exp.isStatic !== branchExp.isStatic || exp.content !== branchExp.content) {
18036      return false;
18037    }
18038  }
18039  return true;
18040}
18041function getParentCondition(node) {
18042  while (true) {
18043    if (node.type === 19) {
18044      if (node.alternate.type === 19) {
18045        node = node.alternate;
18046      } else {
18047        return node;
18048      }
18049    } else if (node.type === 20) {
18050      node = node.value;
18051    }
18052  }
18053}
18054
18055const transformFor = createStructuralDirectiveTransform(
18056  "for",
18057  (node, dir, context) => {
18058    const { helper, removeHelper } = context;
18059    return processFor(node, dir, context, (forNode) => {
18060      const renderExp = createCallExpression(helper(RENDER_LIST), [
18061        forNode.source
18062      ]);
18063      const isTemplate = isTemplateNode(node);
18064      const memo = findDir(node, "memo");
18065      const keyProp = findProp(node, `key`);
18066      const keyExp = keyProp && (keyProp.type === 6 ? createSimpleExpression(keyProp.value.content, true) : keyProp.exp);
18067      const keyProperty = keyProp ? createObjectProperty(`key`, keyExp) : null;
18068      const isStableFragment = forNode.source.type === 4 && forNode.source.constType > 0;
18069      const fragmentFlag = isStableFragment ? 64 : keyProp ? 128 : 256;
18070      forNode.codegenNode = createVNodeCall(
18071        context,
18072        helper(FRAGMENT),
18073        void 0,
18074        renderExp,
18075        fragmentFlag + ( true ? ` /* ${_vue_shared__WEBPACK_IMPORTED_MODULE_0__["PatchFlagNames"][fragmentFlag]} */` : undefined),
18076        void 0,
18077        void 0,
18078        true,
18079        !isStableFragment,
18080        false,
18081        node.loc
18082      );
18083      return () => {
18084        let childBlock;
18085        const { children } = forNode;
18086        if (( true) && isTemplate) {
18087          node.children.some((c) => {
18088            if (c.type === 1) {
18089              const key = findProp(c, "key");
18090              if (key) {
18091                context.onError(
18092                  createCompilerError(
18093                    33,
18094                    key.loc
18095                  )
18096                );
18097                return true;
18098              }
18099            }
18100          });
18101        }
18102        const needFragmentWrapper = children.length !== 1 || children[0].type !== 1;
18103        const slotOutlet = isSlotOutlet(node) ? node : isTemplate && node.children.length === 1 && isSlotOutlet(node.children[0]) ? node.children[0] : null;
18104        if (slotOutlet) {
18105          childBlock = slotOutlet.codegenNode;
18106          if (isTemplate && keyProperty) {
18107            injectProp(childBlock, keyProperty, context);
18108          }
18109        } else if (needFragmentWrapper) {
18110          childBlock = createVNodeCall(
18111            context,
18112            helper(FRAGMENT),
18113            keyProperty ? createObjectExpression([keyProperty]) : void 0,
18114            node.children,
18115            64 + ( true ? ` /* ${_vue_shared__WEBPACK_IMPORTED_MODULE_0__["PatchFlagNames"][64]} */` : undefined),
18116            void 0,
18117            void 0,
18118            true,
18119            void 0,
18120            false
18121          );
18122        } else {
18123          childBlock = children[0].codegenNode;
18124          if (isTemplate && keyProperty) {
18125            injectProp(childBlock, keyProperty, context);
18126          }
18127          if (childBlock.isBlock !== !isStableFragment) {
18128            if (childBlock.isBlock) {
18129              removeHelper(OPEN_BLOCK);
18130              removeHelper(
18131                getVNodeBlockHelper(context.inSSR, childBlock.isComponent)
18132              );
18133            } else {
18134              removeHelper(
18135                getVNodeHelper(context.inSSR, childBlock.isComponent)
18136              );
18137            }
18138          }
18139          childBlock.isBlock = !isStableFragment;
18140          if (childBlock.isBlock) {
18141            helper(OPEN_BLOCK);
18142            helper(getVNodeBlockHelper(context.inSSR, childBlock.isComponent));
18143          } else {
18144            helper(getVNodeHelper(context.inSSR, childBlock.isComponent));
18145          }
18146        }
18147        if (memo) {
18148          const loop = createFunctionExpression(
18149            createForLoopParams(forNode.parseResult, [
18150              createSimpleExpression(`_cached`)
18151            ])
18152          );
18153          loop.body = createBlockStatement([
18154            createCompoundExpression([`const _memo = (`, memo.exp, `)`]),
18155            createCompoundExpression([
18156              `if (_cached`,
18157              ...keyExp ? [` && _cached.key === `, keyExp] : [],
18158              ` && ${context.helperString(
18159                IS_MEMO_SAME
18160              )}(_cached, _memo)) return _cached`
18161            ]),
18162            createCompoundExpression([`const _item = `, childBlock]),
18163            createSimpleExpression(`_item.memo = _memo`),
18164            createSimpleExpression(`return _item`)
18165          ]);
18166          renderExp.arguments.push(
18167            loop,
18168            createSimpleExpression(`_cache`),
18169            createSimpleExpression(String(context.cached++))
18170          );
18171        } else {
18172          renderExp.arguments.push(
18173            createFunctionExpression(
18174              createForLoopParams(forNode.parseResult),
18175              childBlock,
18176              true
18177            )
18178          );
18179        }
18180      };
18181    });
18182  }
18183);
18184function processFor(node, dir, context, processCodegen) {
18185  if (!dir.exp) {
18186    context.onError(
18187      createCompilerError(31, dir.loc)
18188    );
18189    return;
18190  }
18191  const parseResult = dir.forParseResult;
18192  if (!parseResult) {
18193    context.onError(
18194      createCompilerError(32, dir.loc)
18195    );
18196    return;
18197  }
18198  finalizeForParseResult(parseResult, context);
18199  const { addIdentifiers, removeIdentifiers, scopes } = context;
18200  const { source, value, key, index } = parseResult;
18201  const forNode = {
18202    type: 11,
18203    loc: dir.loc,
18204    source,
18205    valueAlias: value,
18206    keyAlias: key,
18207    objectIndexAlias: index,
18208    parseResult,
18209    children: isTemplateNode(node) ? node.children : [node]
18210  };
18211  context.replaceNode(forNode);
18212  scopes.vFor++;
18213  const onExit = processCodegen && processCodegen(forNode);
18214  return () => {
18215    scopes.vFor--;
18216    if (onExit)
18217      onExit();
18218  };
18219}
18220function finalizeForParseResult(result, context) {
18221  if (result.finalized)
18222    return;
18223  if (true) {
18224    validateBrowserExpression(result.source, context);
18225    if (result.key) {
18226      validateBrowserExpression(
18227        result.key,
18228        context,
18229        true
18230      );
18231    }
18232    if (result.index) {
18233      validateBrowserExpression(
18234        result.index,
18235        context,
18236        true
18237      );
18238    }
18239    if (result.value) {
18240      validateBrowserExpression(
18241        result.value,
18242        context,
18243        true
18244      );
18245    }
18246  }
18247  result.finalized = true;
18248}
18249function createForLoopParams({ value, key, index }, memoArgs = []) {
18250  return createParamsList([value, key, index, ...memoArgs]);
18251}
18252function createParamsList(args) {
18253  let i = args.length;
18254  while (i--) {
18255    if (args[i])
18256      break;
18257  }
18258  return args.slice(0, i + 1).map((arg, i2) => arg || createSimpleExpression(`_`.repeat(i2 + 1), false));
18259}
18260
18261const defaultFallback = createSimpleExpression(`undefined`, false);
18262const trackSlotScopes = (node, context) => {
18263  if (node.type === 1 && (node.tagType === 1 || node.tagType === 3)) {
18264    const vSlot = findDir(node, "slot");
18265    if (vSlot) {
18266      vSlot.exp;
18267      context.scopes.vSlot++;
18268      return () => {
18269        context.scopes.vSlot--;
18270      };
18271    }
18272  }
18273};
18274const trackVForSlotScopes = (node, context) => {
18275  let vFor;
18276  if (isTemplateNode(node) && node.props.some(isVSlot) && (vFor = findDir(node, "for"))) {
18277    const result = vFor.forParseResult;
18278    if (result) {
18279      finalizeForParseResult(result, context);
18280      const { value, key, index } = result;
18281      const { addIdentifiers, removeIdentifiers } = context;
18282      value && addIdentifiers(value);
18283      key && addIdentifiers(key);
18284      index && addIdentifiers(index);
18285      return () => {
18286        value && removeIdentifiers(value);
18287        key && removeIdentifiers(key);
18288        index && removeIdentifiers(index);
18289      };
18290    }
18291  }
18292};
18293const buildClientSlotFn = (props, _vForExp, children, loc) => createFunctionExpression(
18294  props,
18295  children,
18296  false,
18297  true,
18298  children.length ? children[0].loc : loc
18299);
18300function buildSlots(node, context, buildSlotFn = buildClientSlotFn) {
18301  context.helper(WITH_CTX);
18302  const { children, loc } = node;
18303  const slotsProperties = [];
18304  const dynamicSlots = [];
18305  let hasDynamicSlots = context.scopes.vSlot > 0 || context.scopes.vFor > 0;
18306  const onComponentSlot = findDir(node, "slot", true);
18307  if (onComponentSlot) {
18308    const { arg, exp } = onComponentSlot;
18309    if (arg && !isStaticExp(arg)) {
18310      hasDynamicSlots = true;
18311    }
18312    slotsProperties.push(
18313      createObjectProperty(
18314        arg || createSimpleExpression("default", true),
18315        buildSlotFn(exp, void 0, children, loc)
18316      )
18317    );
18318  }
18319  let hasTemplateSlots = false;
18320  let hasNamedDefaultSlot = false;
18321  const implicitDefaultChildren = [];
18322  const seenSlotNames = /* @__PURE__ */ new Set();
18323  let conditionalBranchIndex = 0;
18324  for (let i = 0; i < children.length; i++) {
18325    const slotElement = children[i];
18326    let slotDir;
18327    if (!isTemplateNode(slotElement) || !(slotDir = findDir(slotElement, "slot", true))) {
18328      if (slotElement.type !== 3) {
18329        implicitDefaultChildren.push(slotElement);
18330      }
18331      continue;
18332    }
18333    if (onComponentSlot) {
18334      context.onError(
18335        createCompilerError(37, slotDir.loc)
18336      );
18337      break;
18338    }
18339    hasTemplateSlots = true;
18340    const { children: slotChildren, loc: slotLoc } = slotElement;
18341    const {
18342      arg: slotName = createSimpleExpression(`default`, true),
18343      exp: slotProps,
18344      loc: dirLoc
18345    } = slotDir;
18346    let staticSlotName;
18347    if (isStaticExp(slotName)) {
18348      staticSlotName = slotName ? slotName.content : `default`;
18349    } else {
18350      hasDynamicSlots = true;
18351    }
18352    const vFor = findDir(slotElement, "for");
18353    const slotFunction = buildSlotFn(slotProps, vFor, slotChildren, slotLoc);
18354    let vIf;
18355    let vElse;
18356    if (vIf = findDir(slotElement, "if")) {
18357      hasDynamicSlots = true;
18358      dynamicSlots.push(
18359        createConditionalExpression(
18360          vIf.exp,
18361          buildDynamicSlot(slotName, slotFunction, conditionalBranchIndex++),
18362          defaultFallback
18363        )
18364      );
18365    } else if (vElse = findDir(
18366      slotElement,
18367      /^else(-if)?$/,
18368      true
18369      /* allowEmpty */
18370    )) {
18371      let j = i;
18372      let prev;
18373      while (j--) {
18374        prev = children[j];
18375        if (prev.type !== 3) {
18376          break;
18377        }
18378      }
18379      if (prev && isTemplateNode(prev) && findDir(prev, "if")) {
18380        children.splice(i, 1);
18381        i--;
18382        let conditional = dynamicSlots[dynamicSlots.length - 1];
18383        while (conditional.alternate.type === 19) {
18384          conditional = conditional.alternate;
18385        }
18386        conditional.alternate = vElse.exp ? createConditionalExpression(
18387          vElse.exp,
18388          buildDynamicSlot(
18389            slotName,
18390            slotFunction,
18391            conditionalBranchIndex++
18392          ),
18393          defaultFallback
18394        ) : buildDynamicSlot(slotName, slotFunction, conditionalBranchIndex++);
18395      } else {
18396        context.onError(
18397          createCompilerError(30, vElse.loc)
18398        );
18399      }
18400    } else if (vFor) {
18401      hasDynamicSlots = true;
18402      const parseResult = vFor.forParseResult;
18403      if (parseResult) {
18404        finalizeForParseResult(parseResult, context);
18405        dynamicSlots.push(
18406          createCallExpression(context.helper(RENDER_LIST), [
18407            parseResult.source,
18408            createFunctionExpression(
18409              createForLoopParams(parseResult),
18410              buildDynamicSlot(slotName, slotFunction),
18411              true
18412            )
18413          ])
18414        );
18415      } else {
18416        context.onError(
18417          createCompilerError(
18418            32,
18419            vFor.loc
18420          )
18421        );
18422      }
18423    } else {
18424      if (staticSlotName) {
18425        if (seenSlotNames.has(staticSlotName)) {
18426          context.onError(
18427            createCompilerError(
18428              38,
18429              dirLoc
18430            )
18431          );
18432          continue;
18433        }
18434        seenSlotNames.add(staticSlotName);
18435        if (staticSlotName === "default") {
18436          hasNamedDefaultSlot = true;
18437        }
18438      }
18439      slotsProperties.push(createObjectProperty(slotName, slotFunction));
18440    }
18441  }
18442  if (!onComponentSlot) {
18443    const buildDefaultSlotProperty = (props, children2) => {
18444      const fn = buildSlotFn(props, void 0, children2, loc);
18445      if (context.compatConfig) {
18446        fn.isNonScopedSlot = true;
18447      }
18448      return createObjectProperty(`default`, fn);
18449    };
18450    if (!hasTemplateSlots) {
18451      slotsProperties.push(buildDefaultSlotProperty(void 0, children));
18452    } else if (implicitDefaultChildren.length && // #3766
18453    // with whitespace: 'preserve', whitespaces between slots will end up in
18454    // implicitDefaultChildren. Ignore if all implicit children are whitespaces.
18455    implicitDefaultChildren.some((node2) => isNonWhitespaceContent(node2))) {
18456      if (hasNamedDefaultSlot) {
18457        context.onError(
18458          createCompilerError(
18459            39,
18460            implicitDefaultChildren[0].loc
18461          )
18462        );
18463      } else {
18464        slotsProperties.push(
18465          buildDefaultSlotProperty(void 0, implicitDefaultChildren)
18466        );
18467      }
18468    }
18469  }
18470  const slotFlag = hasDynamicSlots ? 2 : hasForwardedSlots(node.children) ? 3 : 1;
18471  let slots = createObjectExpression(
18472    slotsProperties.concat(
18473      createObjectProperty(
18474        `_`,
18475        // 2 = compiled but dynamic = can skip normalization, but must run diff
18476        // 1 = compiled and static = can skip normalization AND diff as optimized
18477        createSimpleExpression(
18478          slotFlag + ( true ? ` /* ${_vue_shared__WEBPACK_IMPORTED_MODULE_0__["slotFlagsText"][slotFlag]} */` : undefined),
18479          false
18480        )
18481      )
18482    ),
18483    loc
18484  );
18485  if (dynamicSlots.length) {
18486    slots = createCallExpression(context.helper(CREATE_SLOTS), [
18487      slots,
18488      createArrayExpression(dynamicSlots)
18489    ]);
18490  }
18491  return {
18492    slots,
18493    hasDynamicSlots
18494  };
18495}
18496function buildDynamicSlot(name, fn, index) {
18497  const props = [
18498    createObjectProperty(`name`, name),
18499    createObjectProperty(`fn`, fn)
18500  ];
18501  if (index != null) {
18502    props.push(
18503      createObjectProperty(`key`, createSimpleExpression(String(index), true))
18504    );
18505  }
18506  return createObjectExpression(props);
18507}
18508function hasForwardedSlots(children) {
18509  for (let i = 0; i < children.length; i++) {
18510    const child = children[i];
18511    switch (child.type) {
18512      case 1:
18513        if (child.tagType === 2 || hasForwardedSlots(child.children)) {
18514          return true;
18515        }
18516        break;
18517      case 9:
18518        if (hasForwardedSlots(child.branches))
18519          return true;
18520        break;
18521      case 10:
18522      case 11:
18523        if (hasForwardedSlots(child.children))
18524          return true;
18525        break;
18526    }
18527  }
18528  return false;
18529}
18530function isNonWhitespaceContent(node) {
18531  if (node.type !== 2 && node.type !== 12)
18532    return true;
18533  return node.type === 2 ? !!node.content.trim() : isNonWhitespaceContent(node.content);
18534}
18535
18536const directiveImportMap = /* @__PURE__ */ new WeakMap();
18537const transformElement = (node, context) => {
18538  return function postTransformElement() {
18539    node = context.currentNode;
18540    if (!(node.type === 1 && (node.tagType === 0 || node.tagType === 1))) {
18541      return;
18542    }
18543    const { tag, props } = node;
18544    const isComponent = node.tagType === 1;
18545    let vnodeTag = isComponent ? resolveComponentType(node, context) : `"${tag}"`;
18546    const isDynamicComponent = Object(_vue_shared__WEBPACK_IMPORTED_MODULE_0__["isObject"])(vnodeTag) && vnodeTag.callee === RESOLVE_DYNAMIC_COMPONENT;
18547    let vnodeProps;
18548    let vnodeChildren;
18549    let vnodePatchFlag;
18550    let patchFlag = 0;
18551    let vnodeDynamicProps;
18552    let dynamicPropNames;
18553    let vnodeDirectives;
18554    let shouldUseBlock = (
18555      // dynamic component may resolve to plain elements
18556      isDynamicComponent || vnodeTag === TELEPORT || vnodeTag === SUSPENSE || !isComponent && // <svg> and <foreignObject> must be forced into blocks so that block
18557      // updates inside get proper isSVG flag at runtime. (#639, #643)
18558      // This is technically web-specific, but splitting the logic out of core
18559      // leads to too much unnecessary complexity.
18560      (tag === "svg" || tag === "foreignObject")
18561    );
18562    if (props.length > 0) {
18563      const propsBuildResult = buildProps(
18564        node,
18565        context,
18566        void 0,
18567        isComponent,
18568        isDynamicComponent
18569      );
18570      vnodeProps = propsBuildResult.props;
18571      patchFlag = propsBuildResult.patchFlag;
18572      dynamicPropNames = propsBuildResult.dynamicPropNames;
18573      const directives = propsBuildResult.directives;
18574      vnodeDirectives = directives && directives.length ? createArrayExpression(
18575        directives.map((dir) => buildDirectiveArgs(dir, context))
18576      ) : void 0;
18577      if (propsBuildResult.shouldUseBlock) {
18578        shouldUseBlock = true;
18579      }
18580    }
18581    if (node.children.length > 0) {
18582      if (vnodeTag === KEEP_ALIVE) {
18583        shouldUseBlock = true;
18584        patchFlag |= 1024;
18585        if ( true && node.children.length > 1) {
18586          context.onError(
18587            createCompilerError(46, {
18588              start: node.children[0].loc.start,
18589              end: node.children[node.children.length - 1].loc.end,
18590              source: ""
18591            })
18592          );
18593        }
18594      }
18595      const shouldBuildAsSlots = isComponent && // Teleport is not a real component and has dedicated runtime handling
18596      vnodeTag !== TELEPORT && // explained above.
18597      vnodeTag !== KEEP_ALIVE;
18598      if (shouldBuildAsSlots) {
18599        const { slots, hasDynamicSlots } = buildSlots(node, context);
18600        vnodeChildren = slots;
18601        if (hasDynamicSlots) {
18602          patchFlag |= 1024;
18603        }
18604      } else if (node.children.length === 1 && vnodeTag !== TELEPORT) {
18605        const child = node.children[0];
18606        const type = child.type;
18607        const hasDynamicTextChild = type === 5 || type === 8;
18608        if (hasDynamicTextChild && getConstantType(child, context) === 0) {
18609          patchFlag |= 1;
18610        }
18611        if (hasDynamicTextChild || type === 2) {
18612          vnodeChildren = child;
18613        } else {
18614          vnodeChildren = node.children;
18615        }
18616      } else {
18617        vnodeChildren = node.children;
18618      }
18619    }
18620    if (patchFlag !== 0) {
18621      if (true) {
18622        if (patchFlag < 0) {
18623          vnodePatchFlag = patchFlag + ` /* ${_vue_shared__WEBPACK_IMPORTED_MODULE_0__["PatchFlagNames"][patchFlag]} */`;
18624        } else {
18625          const flagNames = Object.keys(_vue_shared__WEBPACK_IMPORTED_MODULE_0__["PatchFlagNames"]).map(Number).filter((n) => n > 0 && patchFlag & n).map((n) => _vue_shared__WEBPACK_IMPORTED_MODULE_0__["PatchFlagNames"][n]).join(`, `);
18626          vnodePatchFlag = patchFlag + ` /* ${flagNames} */`;
18627        }
18628      } else {}
18629      if (dynamicPropNames && dynamicPropNames.length) {
18630        vnodeDynamicProps = stringifyDynamicPropNames(dynamicPropNames);
18631      }
18632    }
18633    node.codegenNode = createVNodeCall(
18634      context,
18635      vnodeTag,
18636      vnodeProps,
18637      vnodeChildren,
18638      vnodePatchFlag,
18639      vnodeDynamicProps,
18640      vnodeDirectives,
18641      !!shouldUseBlock,
18642      false,
18643      isComponent,
18644      node.loc
18645    );
18646  };
18647};
18648function resolveComponentType(node, context, ssr = false) {
18649  let { tag } = node;
18650  const isExplicitDynamic = isComponentTag(tag);
18651  const isProp = findProp(node, "is");
18652  if (isProp) {
18653    if (isExplicitDynamic || isCompatEnabled(
18654      "COMPILER_IS_ON_ELEMENT",
18655      context
18656    )) {
18657      const exp = isProp.type === 6 ? isProp.value && createSimpleExpression(isProp.value.content, true) : isProp.exp;
18658      if (exp) {
18659        return createCallExpression(context.helper(RESOLVE_DYNAMIC_COMPONENT), [
18660          exp
18661        ]);
18662      }
18663    } else if (isProp.type === 6 && isProp.value.content.startsWith("vue:")) {
18664      tag = isProp.value.content.slice(4);
18665    }
18666  }
18667  const builtIn = isCoreComponent(tag) || context.isBuiltInComponent(tag);
18668  if (builtIn) {
18669    if (!ssr)
18670      context.helper(builtIn);
18671    return builtIn;
18672  }
18673  context.helper(RESOLVE_COMPONENT);
18674  context.components.add(tag);
18675  return toValidAssetId(tag, `component`);
18676}
18677function buildProps(node, context, props = node.props, isComponent, isDynamicComponent, ssr = false) {
18678  const { tag, loc: elementLoc, children } = node;
18679  let properties = [];
18680  const mergeArgs = [];
18681  const runtimeDirectives = [];
18682  const hasChildren = children.length > 0;
18683  let shouldUseBlock = false;
18684  let patchFlag = 0;
18685  let hasRef = false;
18686  let hasClassBinding = false;
18687  let hasStyleBinding = false;
18688  let hasHydrationEventBinding = false;
18689  let hasDynamicKeys = false;
18690  let hasVnodeHook = false;
18691  const dynamicPropNames = [];
18692  const pushMergeArg = (arg) => {
18693    if (properties.length) {
18694      mergeArgs.push(
18695        createObjectExpression(dedupeProperties(properties), elementLoc)
18696      );
18697      properties = [];
18698    }
18699    if (arg)
18700      mergeArgs.push(arg);
18701  };
18702  const analyzePatchFlag = ({ key, value }) => {
18703    if (isStaticExp(key)) {
18704      const name = key.content;
18705      const isEventHandler = Object(_vue_shared__WEBPACK_IMPORTED_MODULE_0__["isOn"])(name);
18706      if (isEventHandler && (!isComponent || isDynamicComponent) && // omit the flag for click handlers because hydration gives click
18707      // dedicated fast path.
18708      name.toLowerCase() !== "onclick" && // omit v-model handlers
18709      name !== "onUpdate:modelValue" && // omit onVnodeXXX hooks
18710      !Object(_vue_shared__WEBPACK_IMPORTED_MODULE_0__["isReservedProp"])(name)) {
18711        hasHydrationEventBinding = true;
18712      }
18713      if (isEventHandler && Object(_vue_shared__WEBPACK_IMPORTED_MODULE_0__["isReservedProp"])(name)) {
18714        hasVnodeHook = true;
18715      }
18716      if (isEventHandler && value.type === 14) {
18717        value = value.arguments[0];
18718      }
18719      if (value.type === 20 || (value.type === 4 || value.type === 8) && getConstantType(value, context) > 0) {
18720        return;
18721      }
18722      if (name === "ref") {
18723        hasRef = true;
18724      } else if (name === "class") {
18725        hasClassBinding = true;
18726      } else if (name === "style") {
18727        hasStyleBinding = true;
18728      } else if (name !== "key" && !dynamicPropNames.includes(name)) {
18729        dynamicPropNames.push(name);
18730      }
18731      if (isComponent && (name === "class" || name === "style") && !dynamicPropNames.includes(name)) {
18732        dynamicPropNames.push(name);
18733      }
18734    } else {
18735      hasDynamicKeys = true;
18736    }
18737  };
18738  for (let i = 0; i < props.length; i++) {
18739    const prop = props[i];
18740    if (prop.type === 6) {
18741      const { loc, name, nameLoc, value } = prop;
18742      let isStatic = true;
18743      if (name === "ref") {
18744        hasRef = true;
18745        if (context.scopes.vFor > 0) {
18746          properties.push(
18747            createObjectProperty(
18748              createSimpleExpression("ref_for", true),
18749              createSimpleExpression("true")
18750            )
18751          );
18752        }
18753      }
18754      if (name === "is" && (isComponentTag(tag) || value && value.content.startsWith("vue:") || isCompatEnabled(
18755        "COMPILER_IS_ON_ELEMENT",
18756        context
18757      ))) {
18758        continue;
18759      }
18760      properties.push(
18761        createObjectProperty(
18762          createSimpleExpression(name, true, nameLoc),
18763          createSimpleExpression(
18764            value ? value.content : "",
18765            isStatic,
18766            value ? value.loc : loc
18767          )
18768        )
18769      );
18770    } else {
18771      const { name, arg, exp, loc, modifiers } = prop;
18772      const isVBind = name === "bind";
18773      const isVOn = name === "on";
18774      if (name === "slot") {
18775        if (!isComponent) {
18776          context.onError(
18777            createCompilerError(40, loc)
18778          );
18779        }
18780        continue;
18781      }
18782      if (name === "once" || name === "memo") {
18783        continue;
18784      }
18785      if (name === "is" || isVBind && isStaticArgOf(arg, "is") && (isComponentTag(tag) || isCompatEnabled(
18786        "COMPILER_IS_ON_ELEMENT",
18787        context
18788      ))) {
18789        continue;
18790      }
18791      if (isVOn && ssr) {
18792        continue;
18793      }
18794      if (
18795        // #938: elements with dynamic keys should be forced into blocks
18796        isVBind && isStaticArgOf(arg, "key") || // inline before-update hooks need to force block so that it is invoked
18797        // before children
18798        isVOn && hasChildren && isStaticArgOf(arg, "vue:before-update")
18799      ) {
18800        shouldUseBlock = true;
18801      }
18802      if (isVBind && isStaticArgOf(arg, "ref") && context.scopes.vFor > 0) {
18803        properties.push(
18804          createObjectProperty(
18805            createSimpleExpression("ref_for", true),
18806            createSimpleExpression("true")
18807          )
18808        );
18809      }
18810      if (!arg && (isVBind || isVOn)) {
18811        hasDynamicKeys = true;
18812        if (exp) {
18813          if (isVBind) {
18814            pushMergeArg();
18815            {
18816              if (true) {
18817                const hasOverridableKeys = mergeArgs.some((arg2) => {
18818                  if (arg2.type === 15) {
18819                    return arg2.properties.some(({ key }) => {
18820                      if (key.type !== 4 || !key.isStatic) {
18821                        return true;
18822                      }
18823                      return key.content !== "class" && key.content !== "style" && !Object(_vue_shared__WEBPACK_IMPORTED_MODULE_0__["isOn"])(key.content);
18824                    });
18825                  } else {
18826                    return true;
18827                  }
18828                });
18829                if (hasOverridableKeys) {
18830                  checkCompatEnabled(
18831                    "COMPILER_V_BIND_OBJECT_ORDER",
18832                    context,
18833                    loc
18834                  );
18835                }
18836              }
18837              if (isCompatEnabled(
18838                "COMPILER_V_BIND_OBJECT_ORDER",
18839                context
18840              )) {
18841                mergeArgs.unshift(exp);
18842                continue;
18843              }
18844            }
18845            mergeArgs.push(exp);
18846          } else {
18847            pushMergeArg({
18848              type: 14,
18849              loc,
18850              callee: context.helper(TO_HANDLERS),
18851              arguments: isComponent ? [exp] : [exp, `true`]
18852            });
18853          }
18854        } else {
18855          context.onError(
18856            createCompilerError(
18857              isVBind ? 34 : 35,
18858              loc
18859            )
18860          );
18861        }
18862        continue;
18863      }
18864      if (isVBind && modifiers.includes("prop")) {
18865        patchFlag |= 32;
18866      }
18867      const directiveTransform = context.directiveTransforms[name];
18868      if (directiveTransform) {
18869        const { props: props2, needRuntime } = directiveTransform(prop, node, context);
18870        !ssr && props2.forEach(analyzePatchFlag);
18871        if (isVOn && arg && !isStaticExp(arg)) {
18872          pushMergeArg(createObjectExpression(props2, elementLoc));
18873        } else {
18874          properties.push(...props2);
18875        }
18876        if (needRuntime) {
18877          runtimeDirectives.push(prop);
18878          if (Object(_vue_shared__WEBPACK_IMPORTED_MODULE_0__["isSymbol"])(needRuntime)) {
18879            directiveImportMap.set(prop, needRuntime);
18880          }
18881        }
18882      } else if (!Object(_vue_shared__WEBPACK_IMPORTED_MODULE_0__["isBuiltInDirective"])(name)) {
18883        runtimeDirectives.push(prop);
18884        if (hasChildren) {
18885          shouldUseBlock = true;
18886        }
18887      }
18888    }
18889  }
18890  let propsExpression = void 0;
18891  if (mergeArgs.length) {
18892    pushMergeArg();
18893    if (mergeArgs.length > 1) {
18894      propsExpression = createCallExpression(
18895        context.helper(MERGE_PROPS),
18896        mergeArgs,
18897        elementLoc
18898      );
18899    } else {
18900      propsExpression = mergeArgs[0];
18901    }
18902  } else if (properties.length) {
18903    propsExpression = createObjectExpression(
18904      dedupeProperties(properties),
18905      elementLoc
18906    );
18907  }
18908  if (hasDynamicKeys) {
18909    patchFlag |= 16;
18910  } else {
18911    if (hasClassBinding && !isComponent) {
18912      patchFlag |= 2;
18913    }
18914    if (hasStyleBinding && !isComponent) {
18915      patchFlag |= 4;
18916    }
18917    if (dynamicPropNames.length) {
18918      patchFlag |= 8;
18919    }
18920    if (hasHydrationEventBinding) {
18921      patchFlag |= 32;
18922    }
18923  }
18924  if (!shouldUseBlock && (patchFlag === 0 || patchFlag === 32) && (hasRef || hasVnodeHook || runtimeDirectives.length > 0)) {
18925    patchFlag |= 512;
18926  }
18927  if (!context.inSSR && propsExpression) {
18928    switch (propsExpression.type) {
18929      case 15:
18930        let classKeyIndex = -1;
18931        let styleKeyIndex = -1;
18932        let hasDynamicKey = false;
18933        for (let i = 0; i < propsExpression.properties.length; i++) {
18934          const key = propsExpression.properties[i].key;
18935          if (isStaticExp(key)) {
18936            if (key.content === "class") {
18937              classKeyIndex = i;
18938            } else if (key.content === "style") {
18939              styleKeyIndex = i;
18940            }
18941          } else if (!key.isHandlerKey) {
18942            hasDynamicKey = true;
18943          }
18944        }
18945        const classProp = propsExpression.properties[classKeyIndex];
18946        const styleProp = propsExpression.properties[styleKeyIndex];
18947        if (!hasDynamicKey) {
18948          if (classProp && !isStaticExp(classProp.value)) {
18949            classProp.value = createCallExpression(
18950              context.helper(NORMALIZE_CLASS),
18951              [classProp.value]
18952            );
18953          }
18954          if (styleProp && // the static style is compiled into an object,
18955          // so use `hasStyleBinding` to ensure that it is a dynamic style binding
18956          (hasStyleBinding || styleProp.value.type === 4 && styleProp.value.content.trim()[0] === `[` || // v-bind:style and style both exist,
18957          // v-bind:style with static literal object
18958          styleProp.value.type === 17)) {
18959            styleProp.value = createCallExpression(
18960              context.helper(NORMALIZE_STYLE),
18961              [styleProp.value]
18962            );
18963          }
18964        } else {
18965          propsExpression = createCallExpression(
18966            context.helper(NORMALIZE_PROPS),
18967            [propsExpression]
18968          );
18969        }
18970        break;
18971      case 14:
18972        break;
18973      default:
18974        propsExpression = createCallExpression(
18975          context.helper(NORMALIZE_PROPS),
18976          [
18977            createCallExpression(context.helper(GUARD_REACTIVE_PROPS), [
18978              propsExpression
18979            ])
18980          ]
18981        );
18982        break;
18983    }
18984  }
18985  return {
18986    props: propsExpression,
18987    directives: runtimeDirectives,
18988    patchFlag,
18989    dynamicPropNames,
18990    shouldUseBlock
18991  };
18992}
18993function dedupeProperties(properties) {
18994  const knownProps = /* @__PURE__ */ new Map();
18995  const deduped = [];
18996  for (let i = 0; i < properties.length; i++) {
18997    const prop = properties[i];
18998    if (prop.key.type === 8 || !prop.key.isStatic) {
18999      deduped.push(prop);
19000      continue;
19001    }
19002    const name = prop.key.content;
19003    const existing = knownProps.get(name);
19004    if (existing) {
19005      if (name === "style" || name === "class" || Object(_vue_shared__WEBPACK_IMPORTED_MODULE_0__["isOn"])(name)) {
19006        mergeAsArray(existing, prop);
19007      }
19008    } else {
19009      knownProps.set(name, prop);
19010      deduped.push(prop);
19011    }
19012  }
19013  return deduped;
19014}
19015function mergeAsArray(existing, incoming) {
19016  if (existing.value.type === 17) {
19017    existing.value.elements.push(incoming.value);
19018  } else {
19019    existing.value = createArrayExpression(
19020      [existing.value, incoming.value],
19021      existing.loc
19022    );
19023  }
19024}
19025function buildDirectiveArgs(dir, context) {
19026  const dirArgs = [];
19027  const runtime = directiveImportMap.get(dir);
19028  if (runtime) {
19029    dirArgs.push(context.helperString(runtime));
19030  } else {
19031    {
19032      context.helper(RESOLVE_DIRECTIVE);
19033      context.directives.add(dir.name);
19034      dirArgs.push(toValidAssetId(dir.name, `directive`));
19035    }
19036  }
19037  const { loc } = dir;
19038  if (dir.exp)
19039    dirArgs.push(dir.exp);
19040  if (dir.arg) {
19041    if (!dir.exp) {
19042      dirArgs.push(`void 0`);
19043    }
19044    dirArgs.push(dir.arg);
19045  }
19046  if (Object.keys(dir.modifiers).length) {
19047    if (!dir.arg) {
19048      if (!dir.exp) {
19049        dirArgs.push(`void 0`);
19050      }
19051      dirArgs.push(`void 0`);
19052    }
19053    const trueExpression = createSimpleExpression(`true`, false, loc);
19054    dirArgs.push(
19055      createObjectExpression(
19056        dir.modifiers.map(
19057          (modifier) => createObjectProperty(modifier, trueExpression)
19058        ),
19059        loc
19060      )
19061    );
19062  }
19063  return createArrayExpression(dirArgs, dir.loc);
19064}
19065function stringifyDynamicPropNames(props) {
19066  let propsNamesString = `[`;
19067  for (let i = 0, l = props.length; i < l; i++) {
19068    propsNamesString += JSON.stringify(props[i]);
19069    if (i < l - 1)
19070      propsNamesString += ", ";
19071  }
19072  return propsNamesString + `]`;
19073}
19074function isComponentTag(tag) {
19075  return tag === "component" || tag === "Component";
19076}
19077
19078const transformSlotOutlet = (node, context) => {
19079  if (isSlotOutlet(node)) {
19080    const { children, loc } = node;
19081    const { slotName, slotProps } = processSlotOutlet(node, context);
19082    const slotArgs = [
19083      context.prefixIdentifiers ? `_ctx.$slots` : `$slots`,
19084      slotName,
19085      "{}",
19086      "undefined",
19087      "true"
19088    ];
19089    let expectedLen = 2;
19090    if (slotProps) {
19091      slotArgs[2] = slotProps;
19092      expectedLen = 3;
19093    }
19094    if (children.length) {
19095      slotArgs[3] = createFunctionExpression([], children, false, false, loc);
19096      expectedLen = 4;
19097    }
19098    if (context.scopeId && !context.slotted) {
19099      expectedLen = 5;
19100    }
19101    slotArgs.splice(expectedLen);
19102    node.codegenNode = createCallExpression(
19103      context.helper(RENDER_SLOT),
19104      slotArgs,
19105      loc
19106    );
19107  }
19108};
19109function processSlotOutlet(node, context) {
19110  let slotName = `"default"`;
19111  let slotProps = void 0;
19112  const nonNameProps = [];
19113  for (let i = 0; i < node.props.length; i++) {
19114    const p = node.props[i];
19115    if (p.type === 6) {
19116      if (p.value) {
19117        if (p.name === "name") {
19118          slotName = JSON.stringify(p.value.content);
19119        } else {
19120          p.name = Object(_vue_shared__WEBPACK_IMPORTED_MODULE_0__["camelize"])(p.name);
19121          nonNameProps.push(p);
19122        }
19123      }
19124    } else {
19125      if (p.name === "bind" && isStaticArgOf(p.arg, "name")) {
19126        if (p.exp) {
19127          slotName = p.exp;
19128        } else if (p.arg && p.arg.type === 4) {
19129          const name = Object(_vue_shared__WEBPACK_IMPORTED_MODULE_0__["camelize"])(p.arg.content);
19130          slotName = p.exp = createSimpleExpression(name, false, p.arg.loc);
19131        }
19132      } else {
19133        if (p.name === "bind" && p.arg && isStaticExp(p.arg)) {
19134          p.arg.content = Object(_vue_shared__WEBPACK_IMPORTED_MODULE_0__["camelize"])(p.arg.content);
19135        }
19136        nonNameProps.push(p);
19137      }
19138    }
19139  }
19140  if (nonNameProps.length > 0) {
19141    const { props, directives } = buildProps(
19142      node,
19143      context,
19144      nonNameProps,
19145      false,
19146      false
19147    );
19148    slotProps = props;
19149    if (directives.length) {
19150      context.onError(
19151        createCompilerError(
19152          36,
19153          directives[0].loc
19154        )
19155      );
19156    }
19157  }
19158  return {
19159    slotName,
19160    slotProps
19161  };
19162}
19163
19164const fnExpRE = /^\s*([\w$_]+|(async\s*)?\([^)]*?\))\s*(:[^=]+)?=>|^\s*(async\s+)?function(?:\s+[\w$]+)?\s*\(/;
19165const transformOn = (dir, node, context, augmentor) => {
19166  const { loc, modifiers, arg } = dir;
19167  if (!dir.exp && !modifiers.length) {
19168    context.onError(createCompilerError(35, loc));
19169  }
19170  let eventName;
19171  if (arg.type === 4) {
19172    if (arg.isStatic) {
19173      let rawName = arg.content;
19174      if ( true && rawName.startsWith("vnode")) {
19175        context.onError(createCompilerError(51, arg.loc));
19176      }
19177      if (rawName.startsWith("vue:")) {
19178        rawName = `vnode-${rawName.slice(4)}`;
19179      }
19180      const eventString = node.tagType !== 0 || rawName.startsWith("vnode") || !/[A-Z]/.test(rawName) ? (
19181        // for non-element and vnode lifecycle event listeners, auto convert
19182        // it to camelCase. See issue #2249
19183        Object(_vue_shared__WEBPACK_IMPORTED_MODULE_0__["toHandlerKey"])(Object(_vue_shared__WEBPACK_IMPORTED_MODULE_0__["camelize"])(rawName))
19184      ) : (
19185        // preserve case for plain element listeners that have uppercase
19186        // letters, as these may be custom elements' custom events
19187        `on:${rawName}`
19188      );
19189      eventName = createSimpleExpression(eventString, true, arg.loc);
19190    } else {
19191      eventName = createCompoundExpression([
19192        `${context.helperString(TO_HANDLER_KEY)}(`,
19193        arg,
19194        `)`
19195      ]);
19196    }
19197  } else {
19198    eventName = arg;
19199    eventName.children.unshift(`${context.helperString(TO_HANDLER_KEY)}(`);
19200    eventName.children.push(`)`);
19201  }
19202  let exp = dir.exp;
19203  if (exp && !exp.content.trim()) {
19204    exp = void 0;
19205  }
19206  let shouldCache = context.cacheHandlers && !exp && !context.inVOnce;
19207  if (exp) {
19208    const isMemberExp = isMemberExpression(exp.content);
19209    const isInlineStatement = !(isMemberExp || fnExpRE.test(exp.content));
19210    const hasMultipleStatements = exp.content.includes(`;`);
19211    if (true) {
19212      validateBrowserExpression(
19213        exp,
19214        context,
19215        false,
19216        hasMultipleStatements
19217      );
19218    }
19219    if (isInlineStatement || shouldCache && isMemberExp) {
19220      exp = createCompoundExpression([
19221        `${isInlineStatement ? `$event` : `${``}(...args)`} => ${hasMultipleStatements ? `{` : `(`}`,
19222        exp,
19223        hasMultipleStatements ? `}` : `)`
19224      ]);
19225    }
19226  }
19227  let ret = {
19228    props: [
19229      createObjectProperty(
19230        eventName,
19231        exp || createSimpleExpression(`() => {}`, false, loc)
19232      )
19233    ]
19234  };
19235  if (augmentor) {
19236    ret = augmentor(ret);
19237  }
19238  if (shouldCache) {
19239    ret.props[0].value = context.cache(ret.props[0].value);
19240  }
19241  ret.props.forEach((p) => p.key.isHandlerKey = true);
19242  return ret;
19243};
19244
19245const transformBind = (dir, _node, context) => {
19246  const { modifiers, loc } = dir;
19247  const arg = dir.arg;
19248  let { exp } = dir;
19249  if (exp && exp.type === 4 && !exp.content.trim()) {
19250    {
19251      exp = void 0;
19252    }
19253  }
19254  if (!exp) {
19255    if (arg.type !== 4 || !arg.isStatic) {
19256      context.onError(
19257        createCompilerError(
19258          52,
19259          arg.loc
19260        )
19261      );
19262      return {
19263        props: [
19264          createObjectProperty(arg, createSimpleExpression("", true, loc))
19265        ]
19266      };
19267    }
19268    const propName = Object(_vue_shared__WEBPACK_IMPORTED_MODULE_0__["camelize"])(arg.content);
19269    exp = dir.exp = createSimpleExpression(propName, false, arg.loc);
19270  }
19271  if (arg.type !== 4) {
19272    arg.children.unshift(`(`);
19273    arg.children.push(`) || ""`);
19274  } else if (!arg.isStatic) {
19275    arg.content = `${arg.content} || ""`;
19276  }
19277  if (modifiers.includes("camel")) {
19278    if (arg.type === 4) {
19279      if (arg.isStatic) {
19280        arg.content = Object(_vue_shared__WEBPACK_IMPORTED_MODULE_0__["camelize"])(arg.content);
19281      } else {
19282        arg.content = `${context.helperString(CAMELIZE)}(${arg.content})`;
19283      }
19284    } else {
19285      arg.children.unshift(`${context.helperString(CAMELIZE)}(`);
19286      arg.children.push(`)`);
19287    }
19288  }
19289  if (!context.inSSR) {
19290    if (modifiers.includes("prop")) {
19291      injectPrefix(arg, ".");
19292    }
19293    if (modifiers.includes("attr")) {
19294      injectPrefix(arg, "^");
19295    }
19296  }
19297  return {
19298    props: [createObjectProperty(arg, exp)]
19299  };
19300};
19301const injectPrefix = (arg, prefix) => {
19302  if (arg.type === 4) {
19303    if (arg.isStatic) {
19304      arg.content = prefix + arg.content;
19305    } else {
19306      arg.content = `\`${prefix}\${${arg.content}}\``;
19307    }
19308  } else {
19309    arg.children.unshift(`'${prefix}' + (`);
19310    arg.children.push(`)`);
19311  }
19312};
19313
19314const transformText = (node, context) => {
19315  if (node.type === 0 || node.type === 1 || node.type === 11 || node.type === 10) {
19316    return () => {
19317      const children = node.children;
19318      let currentContainer = void 0;
19319      let hasText = false;
19320      for (let i = 0; i < children.length; i++) {
19321        const child = children[i];
19322        if (isText$1(child)) {
19323          hasText = true;
19324          for (let j = i + 1; j < children.length; j++) {
19325            const next = children[j];
19326            if (isText$1(next)) {
19327              if (!currentContainer) {
19328                currentContainer = children[i] = createCompoundExpression(
19329                  [child],
19330                  child.loc
19331                );
19332              }
19333              currentContainer.children.push(` + `, next);
19334              children.splice(j, 1);
19335              j--;
19336            } else {
19337              currentContainer = void 0;
19338              break;
19339            }
19340          }
19341        }
19342      }
19343      if (!hasText || // if this is a plain element with a single text child, leave it
19344      // as-is since the runtime has dedicated fast path for this by directly
19345      // setting textContent of the element.
19346      // for component root it's always normalized anyway.
19347      children.length === 1 && (node.type === 0 || node.type === 1 && node.tagType === 0 && // #3756
19348      // custom directives can potentially add DOM elements arbitrarily,
19349      // we need to avoid setting textContent of the element at runtime
19350      // to avoid accidentally overwriting the DOM elements added
19351      // by the user through custom directives.
19352      !node.props.find(
19353        (p) => p.type === 7 && !context.directiveTransforms[p.name]
19354      ) && // in compat mode, <template> tags with no special directives
19355      // will be rendered as a fragment so its children must be
19356      // converted into vnodes.
19357      !(node.tag === "template"))) {
19358        return;
19359      }
19360      for (let i = 0; i < children.length; i++) {
19361        const child = children[i];
19362        if (isText$1(child) || child.type === 8) {
19363          const callArgs = [];
19364          if (child.type !== 2 || child.content !== " ") {
19365            callArgs.push(child);
19366          }
19367          if (!context.ssr && getConstantType(child, context) === 0) {
19368            callArgs.push(
19369              1 + ( true ? ` /* ${_vue_shared__WEBPACK_IMPORTED_MODULE_0__["PatchFlagNames"][1]} */` : undefined)
19370            );
19371          }
19372          children[i] = {
19373            type: 12,
19374            content: child,
19375            loc: child.loc,
19376            codegenNode: createCallExpression(
19377              context.helper(CREATE_TEXT),
19378              callArgs
19379            )
19380          };
19381        }
19382      }
19383    };
19384  }
19385};
19386
19387const seen$1 = /* @__PURE__ */ new WeakSet();
19388const transformOnce = (node, context) => {
19389  if (node.type === 1 && findDir(node, "once", true)) {
19390    if (seen$1.has(node) || context.inVOnce || context.inSSR) {
19391      return;
19392    }
19393    seen$1.add(node);
19394    context.inVOnce = true;
19395    context.helper(SET_BLOCK_TRACKING);
19396    return () => {
19397      context.inVOnce = false;
19398      const cur = context.currentNode;
19399      if (cur.codegenNode) {
19400        cur.codegenNode = context.cache(
19401          cur.codegenNode,
19402          true
19403          /* isVNode */
19404        );
19405      }
19406    };
19407  }
19408};
19409
19410const transformModel = (dir, node, context) => {
19411  const { exp, arg } = dir;
19412  if (!exp) {
19413    context.onError(
19414      createCompilerError(41, dir.loc)
19415    );
19416    return createTransformProps();
19417  }
19418  const rawExp = exp.loc.source;
19419  const expString = exp.type === 4 ? exp.content : rawExp;
19420  const bindingType = context.bindingMetadata[rawExp];
19421  if (bindingType === "props" || bindingType === "props-aliased") {
19422    context.onError(createCompilerError(44, exp.loc));
19423    return createTransformProps();
19424  }
19425  const maybeRef = false;
19426  if (!expString.trim() || !isMemberExpression(expString) && !maybeRef) {
19427    context.onError(
19428      createCompilerError(42, exp.loc)
19429    );
19430    return createTransformProps();
19431  }
19432  const propName = arg ? arg : createSimpleExpression("modelValue", true);
19433  const eventName = arg ? isStaticExp(arg) ? `onUpdate:${Object(_vue_shared__WEBPACK_IMPORTED_MODULE_0__["camelize"])(arg.content)}` : createCompoundExpression(['"onUpdate:" + ', arg]) : `onUpdate:modelValue`;
19434  let assignmentExp;
19435  const eventArg = context.isTS ? `($event: any)` : `$event`;
19436  {
19437    assignmentExp = createCompoundExpression([
19438      `${eventArg} => ((`,
19439      exp,
19440      `) = $event)`
19441    ]);
19442  }
19443  const props = [
19444    // modelValue: foo
19445    createObjectProperty(propName, dir.exp),
19446    // "onUpdate:modelValue": $event => (foo = $event)
19447    createObjectProperty(eventName, assignmentExp)
19448  ];
19449  if (dir.modifiers.length && node.tagType === 1) {
19450    const modifiers = dir.modifiers.map((m) => (isSimpleIdentifier(m) ? m : JSON.stringify(m)) + `: true`).join(`, `);
19451    const modifiersKey = arg ? isStaticExp(arg) ? `${arg.content}Modifiers` : createCompoundExpression([arg, ' + "Modifiers"']) : `modelModifiers`;
19452    props.push(
19453      createObjectProperty(
19454        modifiersKey,
19455        createSimpleExpression(
19456          `{ ${modifiers} }`,
19457          false,
19458          dir.loc,
19459          2
19460        )
19461      )
19462    );
19463  }
19464  return createTransformProps(props);
19465};
19466function createTransformProps(props = []) {
19467  return { props };
19468}
19469
19470const validDivisionCharRE = /[\w).+\-_$\]]/;
19471const transformFilter = (node, context) => {
19472  if (!isCompatEnabled("COMPILER_FILTERS", context)) {
19473    return;
19474  }
19475  if (node.type === 5) {
19476    rewriteFilter(node.content, context);
19477  }
19478  if (node.type === 1) {
19479    node.props.forEach((prop) => {
19480      if (prop.type === 7 && prop.name !== "for" && prop.exp) {
19481        rewriteFilter(prop.exp, context);
19482      }
19483    });
19484  }
19485};
19486function rewriteFilter(node, context) {
19487  if (node.type === 4) {
19488    parseFilter(node, context);
19489  } else {
19490    for (let i = 0; i < node.children.length; i++) {
19491      const child = node.children[i];
19492      if (typeof child !== "object")
19493        continue;
19494      if (child.type === 4) {
19495        parseFilter(child, context);
19496      } else if (child.type === 8) {
19497        rewriteFilter(node, context);
19498      } else if (child.type === 5) {
19499        rewriteFilter(child.content, context);
19500      }
19501    }
19502  }
19503}
19504function parseFilter(node, context) {
19505  const exp = node.content;
19506  let inSingle = false;
19507  let inDouble = false;
19508  let inTemplateString = false;
19509  let inRegex = false;
19510  let curly = 0;
19511  let square = 0;
19512  let paren = 0;
19513  let lastFilterIndex = 0;
19514  let c, prev, i, expression, filters = [];
19515  for (i = 0; i < exp.length; i++) {
19516    prev = c;
19517    c = exp.charCodeAt(i);
19518    if (inSingle) {
19519      if (c === 39 && prev !== 92)
19520        inSingle = false;
19521    } else if (inDouble) {
19522      if (c === 34 && prev !== 92)
19523        inDouble = false;
19524    } else if (inTemplateString) {
19525      if (c === 96 && prev !== 92)
19526        inTemplateString = false;
19527    } else if (inRegex) {
19528      if (c === 47 && prev !== 92)
19529        inRegex = false;
19530    } else if (c === 124 && // pipe
19531    exp.charCodeAt(i + 1) !== 124 && exp.charCodeAt(i - 1) !== 124 && !curly && !square && !paren) {
19532      if (expression === void 0) {
19533        lastFilterIndex = i + 1;
19534        expression = exp.slice(0, i).trim();
19535      } else {
19536        pushFilter();
19537      }
19538    } else {
19539      switch (c) {
19540        case 34:
19541          inDouble = true;
19542          break;
19543        case 39:
19544          inSingle = true;
19545          break;
19546        case 96:
19547          inTemplateString = true;
19548          break;
19549        case 40:
19550          paren++;
19551          break;
19552        case 41:
19553          paren--;
19554          break;
19555        case 91:
19556          square++;
19557          break;
19558        case 93:
19559          square--;
19560          break;
19561        case 123:
19562          curly++;
19563          break;
19564        case 125:
19565          curly--;
19566          break;
19567      }
19568      if (c === 47) {
19569        let j = i - 1;
19570        let p;
19571        for (; j >= 0; j--) {
19572          p = exp.charAt(j);
19573          if (p !== " ")
19574            break;
19575        }
19576        if (!p || !validDivisionCharRE.test(p)) {
19577          inRegex = true;
19578        }
19579      }
19580    }
19581  }
19582  if (expression === void 0) {
19583    expression = exp.slice(0, i).trim();
19584  } else if (lastFilterIndex !== 0) {
19585    pushFilter();
19586  }
19587  function pushFilter() {
19588    filters.push(exp.slice(lastFilterIndex, i).trim());
19589    lastFilterIndex = i + 1;
19590  }
19591  if (filters.length) {
19592     true && warnDeprecation(
19593      "COMPILER_FILTERS",
19594      context,
19595      node.loc
19596    );
19597    for (i = 0; i < filters.length; i++) {
19598      expression = wrapFilter(expression, filters[i], context);
19599    }
19600    node.content = expression;
19601  }
19602}
19603function wrapFilter(exp, filter, context) {
19604  context.helper(RESOLVE_FILTER);
19605  const i = filter.indexOf("(");
19606  if (i < 0) {
19607    context.filters.add(filter);
19608    return `${toValidAssetId(filter, "filter")}(${exp})`;
19609  } else {
19610    const name = filter.slice(0, i);
19611    const args = filter.slice(i + 1);
19612    context.filters.add(name);
19613    return `${toValidAssetId(name, "filter")}(${exp}${args !== ")" ? "," + args : args}`;
19614  }
19615}
19616
19617const seen = /* @__PURE__ */ new WeakSet();
19618const transformMemo = (node, context) => {
19619  if (node.type === 1) {
19620    const dir = findDir(node, "memo");
19621    if (!dir || seen.has(node)) {
19622      return;
19623    }
19624    seen.add(node);
19625    return () => {
19626      const codegenNode = node.codegenNode || context.currentNode.codegenNode;
19627      if (codegenNode && codegenNode.type === 13) {
19628        if (node.tagType !== 1) {
19629          convertToBlock(codegenNode, context);
19630        }
19631        node.codegenNode = createCallExpression(context.helper(WITH_MEMO), [
19632          dir.exp,
19633          createFunctionExpression(void 0, codegenNode),
19634          `_cache`,
19635          String(context.cached++)
19636        ]);
19637      }
19638    };
19639  }
19640};
19641
19642function getBaseTransformPreset(prefixIdentifiers) {
19643  return [
19644    [
19645      transformOnce,
19646      transformIf,
19647      transformMemo,
19648      transformFor,
19649      ...[transformFilter] ,
19650      ... true ? [transformExpression] : undefined,
19651      transformSlotOutlet,
19652      transformElement,
19653      trackSlotScopes,
19654      transformText
19655    ],
19656    {
19657      on: transformOn,
19658      bind: transformBind,
19659      model: transformModel
19660    }
19661  ];
19662}
19663function baseCompile(source, options = {}) {
19664  const onError = options.onError || defaultOnError;
19665  const isModuleMode = options.mode === "module";
19666  {
19667    if (options.prefixIdentifiers === true) {
19668      onError(createCompilerError(47));
19669    } else if (isModuleMode) {
19670      onError(createCompilerError(48));
19671    }
19672  }
19673  const prefixIdentifiers = false;
19674  if (options.cacheHandlers) {
19675    onError(createCompilerError(49));
19676  }
19677  if (options.scopeId && !isModuleMode) {
19678    onError(createCompilerError(50));
19679  }
19680  const resolvedOptions = Object(_vue_shared__WEBPACK_IMPORTED_MODULE_0__["extend"])({}, options, {
19681    prefixIdentifiers
19682  });
19683  const ast = Object(_vue_shared__WEBPACK_IMPORTED_MODULE_0__["isString"])(source) ? baseParse(source, resolvedOptions) : source;
19684  const [nodeTransforms, directiveTransforms] = getBaseTransformPreset();
19685  transform(
19686    ast,
19687    Object(_vue_shared__WEBPACK_IMPORTED_MODULE_0__["extend"])({}, resolvedOptions, {
19688      nodeTransforms: [
19689        ...nodeTransforms,
19690        ...options.nodeTransforms || []
19691        // user transforms
19692      ],
19693      directiveTransforms: Object(_vue_shared__WEBPACK_IMPORTED_MODULE_0__["extend"])(
19694        {},
19695        directiveTransforms,
19696        options.directiveTransforms || {}
19697        // user transforms
19698      )
19699    })
19700  );
19701  return generate(ast, resolvedOptions);
19702}
19703
19704const BindingTypes = {
19705  "DATA": "data",
19706  "PROPS": "props",
19707  "PROPS_ALIASED": "props-aliased",
19708  "SETUP_LET": "setup-let",
19709  "SETUP_CONST": "setup-const",
19710  "SETUP_REACTIVE_CONST": "setup-reactive-const",
19711  "SETUP_MAYBE_REF": "setup-maybe-ref",
19712  "SETUP_REF": "setup-ref",
19713  "OPTIONS": "options",
19714  "LITERAL_CONST": "literal-const"
19715};
19716
19717const noopDirectiveTransform = () => ({ props: [] });
19718
19719
19720
19721
19722/***/ }),
19723
vendor: 48,681 bytes, lines 19724-20535
19724/***/ "./node_modules/@vue/compiler-dom/dist/compiler-dom.esm-bundler.js":
19725/*!*************************************************************************!*\
19726  !*** ./node_modules/@vue/compiler-dom/dist/compiler-dom.esm-bundler.js ***!
19727  \*************************************************************************/
19728/*! exports provided: generateCodeFrame, BASE_TRANSITION, BindingTypes, CAMELIZE, CAPITALIZE, CREATE_BLOCK, CREATE_COMMENT, CREATE_ELEMENT_BLOCK, CREATE_ELEMENT_VNODE, CREATE_SLOTS, CREATE_STATIC, CREATE_TEXT, CREATE_VNODE, CompilerDeprecationTypes, ConstantTypes, ElementTypes, ErrorCodes, FRAGMENT, GUARD_REACTIVE_PROPS, IS_MEMO_SAME, IS_REF, KEEP_ALIVE, MERGE_PROPS, NORMALIZE_CLASS, NORMALIZE_PROPS, NORMALIZE_STYLE, Namespaces, NodeTypes, OPEN_BLOCK, POP_SCOPE_ID, PUSH_SCOPE_ID, RENDER_LIST, RENDER_SLOT, RESOLVE_COMPONENT, RESOLVE_DIRECTIVE, RESOLVE_DYNAMIC_COMPONENT, RESOLVE_FILTER, SET_BLOCK_TRACKING, SUSPENSE, TELEPORT, TO_DISPLAY_STRING, TO_HANDLERS, TO_HANDLER_KEY, TS_NODE_TYPES, UNREF, WITH_CTX, WITH_DIRECTIVES, WITH_MEMO, advancePositionWithClone, advancePositionWithMutation, assert, baseCompile, baseParse, buildDirectiveArgs, buildProps, buildSlots, checkCompatEnabled, convertToBlock, createArrayExpression, createAssignmentExpression, createBlockStatement, createCacheExpression, createCallExpression, createCompilerError, createCompoundExpression, createConditionalExpression, createForLoopParams, createFunctionExpression, createIfStatement, createInterpolation, createObjectExpression, createObjectProperty, createReturnStatement, createRoot, createSequenceExpression, createSimpleExpression, createStructuralDirectiveTransform, createTemplateLiteral, createTransformContext, createVNodeCall, errorMessages, extractIdentifiers, findDir, findProp, forAliasRE, generate, getBaseTransformPreset, getConstantType, getMemoedVNodeCall, getVNodeBlockHelper, getVNodeHelper, hasDynamicKeyVBind, hasScopeRef, helperNameMap, injectProp, isCoreComponent, isFunctionType, isInDestructureAssignment, isInNewExpression, isMemberExpression, isMemberExpressionBrowser, isMemberExpressionNode, isReferencedIdentifier, isSimpleIdentifier, isSlotOutlet, isStaticArgOf, isStaticExp, isStaticProperty, isStaticPropertyKey, isTemplateNode, isText, isVSlot, locStub, noopDirectiveTransform, processExpression, processFor, processIf, processSlotOutlet, registerRuntimeHelpers, resolveComponentType, stringifyExpression, toValidAssetId, trackSlotScopes, trackVForSlotScopes, transform, transformBind, transformElement, transformExpression, transformModel, transformOn, traverseNode, unwrapTSNode, walkBlockDeclarations, walkFunctionParams, walkIdentifiers, warnDeprecation, DOMDirectiveTransforms, DOMErrorCodes, DOMErrorMessages, DOMNodeTransforms, TRANSITION, TRANSITION_GROUP, V_MODEL_CHECKBOX, V_MODEL_DYNAMIC, V_MODEL_RADIO, V_MODEL_SELECT, V_MODEL_TEXT, V_ON_WITH_KEYS, V_ON_WITH_MODIFIERS, V_SHOW, compile, createDOMCompilerError, parse, parserOptions, transformStyle */
19729/***/ (function(module, __webpack_exports__, __webpack_require__) {
19730
19731"use strict";
19732__webpack_require__.r(__webpack_exports__);
19733/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "DOMDirectiveTransforms", function() { return DOMDirectiveTransforms; });
19734/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "DOMErrorCodes", function() { return DOMErrorCodes; });
19735/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "DOMErrorMessages", function() { return DOMErrorMessages; });
19736/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "DOMNodeTransforms", function() { return DOMNodeTransforms; });
19737/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "TRANSITION", function() { return TRANSITION; });
19738/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "TRANSITION_GROUP", function() { return TRANSITION_GROUP; });
19739/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "V_MODEL_CHECKBOX", function() { return V_MODEL_CHECKBOX; });
19740/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "V_MODEL_DYNAMIC", function() { return V_MODEL_DYNAMIC; });
19741/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "V_MODEL_RADIO", function() { return V_MODEL_RADIO; });
19742/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "V_MODEL_SELECT", function() { return V_MODEL_SELECT; });
19743/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "V_MODEL_TEXT", function() { return V_MODEL_TEXT; });
19744/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "V_ON_WITH_KEYS", function() { return V_ON_WITH_KEYS; });
19745/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "V_ON_WITH_MODIFIERS", function() { return V_ON_WITH_MODIFIERS; });
19746/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "V_SHOW", function() { return V_SHOW; });
19747/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "compile", function() { return compile; });
19748/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "createDOMCompilerError", function() { return createDOMCompilerError; });
19749/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "parse", function() { return parse; });
19750/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "parserOptions", function() { return parserOptions; });
19751/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "transformStyle", function() { return transformStyle; });
19752/* harmony import */ var _vue_compiler_core__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @vue/compiler-core */ "./node_modules/@vue/compiler-core/dist/compiler-core.esm-bundler.js");
19753/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "generateCodeFrame", function() { return _vue_compiler_core__WEBPACK_IMPORTED_MODULE_0__["generateCodeFrame"]; });
19754
19755/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "BASE_TRANSITION", function() { return _vue_compiler_core__WEBPACK_IMPORTED_MODULE_0__["BASE_TRANSITION"]; });
19756
19757/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "BindingTypes", function() { return _vue_compiler_core__WEBPACK_IMPORTED_MODULE_0__["BindingTypes"]; });
19758
19759/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "CAMELIZE", function() { return _vue_compiler_core__WEBPACK_IMPORTED_MODULE_0__["CAMELIZE"]; });
19760
19761/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "CAPITALIZE", function() { return _vue_compiler_core__WEBPACK_IMPORTED_MODULE_0__["CAPITALIZE"]; });
19762
19763/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "CREATE_BLOCK", function() { return _vue_compiler_core__WEBPACK_IMPORTED_MODULE_0__["CREATE_BLOCK"]; });
19764
19765/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "CREATE_COMMENT", function() { return _vue_compiler_core__WEBPACK_IMPORTED_MODULE_0__["CREATE_COMMENT"]; });
19766
19767/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "CREATE_ELEMENT_BLOCK", function() { return _vue_compiler_core__WEBPACK_IMPORTED_MODULE_0__["CREATE_ELEMENT_BLOCK"]; });
19768
19769/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "CREATE_ELEMENT_VNODE", function() { return _vue_compiler_core__WEBPACK_IMPORTED_MODULE_0__["CREATE_ELEMENT_VNODE"]; });
19770
19771/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "CREATE_SLOTS", function() { return _vue_compiler_core__WEBPACK_IMPORTED_MODULE_0__["CREATE_SLOTS"]; });
19772
19773/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "CREATE_STATIC", function() { return _vue_compiler_core__WEBPACK_IMPORTED_MODULE_0__["CREATE_STATIC"]; });
19774
19775/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "CREATE_TEXT", function() { return _vue_compiler_core__WEBPACK_IMPORTED_MODULE_0__["CREATE_TEXT"]; });
19776
19777/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "CREATE_VNODE", function() { return _vue_compiler_core__WEBPACK_IMPORTED_MODULE_0__["CREATE_VNODE"]; });
19778
19779/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "CompilerDeprecationTypes", function() { return _vue_compiler_core__WEBPACK_IMPORTED_MODULE_0__["CompilerDeprecationTypes"]; });
19780
19781/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "ConstantTypes", function() { return _vue_compiler_core__WEBPACK_IMPORTED_MODULE_0__["ConstantTypes"]; });
19782
19783/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "ElementTypes", function() { return _vue_compiler_core__WEBPACK_IMPORTED_MODULE_0__["ElementTypes"]; });
19784
19785/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "ErrorCodes", function() { return _vue_compiler_core__WEBPACK_IMPORTED_MODULE_0__["ErrorCodes"]; });
19786
19787/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "FRAGMENT", function() { return _vue_compiler_core__WEBPACK_IMPORTED_MODULE_0__["FRAGMENT"]; });
19788
19789/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "GUARD_REACTIVE_PROPS", function() { return _vue_compiler_core__WEBPACK_IMPORTED_MODULE_0__["GUARD_REACTIVE_PROPS"]; });
19790
19791/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "IS_MEMO_SAME", function() { return _vue_compiler_core__WEBPACK_IMPORTED_MODULE_0__["IS_MEMO_SAME"]; });
19792
19793/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "IS_REF", function() { return _vue_compiler_core__WEBPACK_IMPORTED_MODULE_0__["IS_REF"]; });
19794
19795/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "KEEP_ALIVE", function() { return _vue_compiler_core__WEBPACK_IMPORTED_MODULE_0__["KEEP_ALIVE"]; });
19796
19797/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "MERGE_PROPS", function() { return _vue_compiler_core__WEBPACK_IMPORTED_MODULE_0__["MERGE_PROPS"]; });
19798
19799/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "NORMALIZE_CLASS", function() { return _vue_compiler_core__WEBPACK_IMPORTED_MODULE_0__["NORMALIZE_CLASS"]; });
19800
19801/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "NORMALIZE_PROPS", function() { return _vue_compiler_core__WEBPACK_IMPORTED_MODULE_0__["NORMALIZE_PROPS"]; });
19802
19803/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "NORMALIZE_STYLE", function() { return _vue_compiler_core__WEBPACK_IMPORTED_MODULE_0__["NORMALIZE_STYLE"]; });
19804
19805/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "Namespaces", function() { return _vue_compiler_core__WEBPACK_IMPORTED_MODULE_0__["Namespaces"]; });
19806
19807/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "NodeTypes", function() { return _vue_compiler_core__WEBPACK_IMPORTED_MODULE_0__["NodeTypes"]; });
19808
19809/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "OPEN_BLOCK", function() { return _vue_compiler_core__WEBPACK_IMPORTED_MODULE_0__["OPEN_BLOCK"]; });
19810
19811/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "POP_SCOPE_ID", function() { return _vue_compiler_core__WEBPACK_IMPORTED_MODULE_0__["POP_SCOPE_ID"]; });
19812
19813/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "PUSH_SCOPE_ID", function() { return _vue_compiler_core__WEBPACK_IMPORTED_MODULE_0__["PUSH_SCOPE_ID"]; });
19814
19815/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "RENDER_LIST", function() { return _vue_compiler_core__WEBPACK_IMPORTED_MODULE_0__["RENDER_LIST"]; });
19816
19817/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "RENDER_SLOT", function() { return _vue_compiler_core__WEBPACK_IMPORTED_MODULE_0__["RENDER_SLOT"]; });
19818
19819/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "RESOLVE_COMPONENT", function() { return _vue_compiler_core__WEBPACK_IMPORTED_MODULE_0__["RESOLVE_COMPONENT"]; });
19820
19821/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "RESOLVE_DIRECTIVE", function() { return _vue_compiler_core__WEBPACK_IMPORTED_MODULE_0__["RESOLVE_DIRECTIVE"]; });
19822
19823/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "RESOLVE_DYNAMIC_COMPONENT", function() { return _vue_compiler_core__WEBPACK_IMPORTED_MODULE_0__["RESOLVE_DYNAMIC_COMPONENT"]; });
19824
19825/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "RESOLVE_FILTER", function() { return _vue_compiler_core__WEBPACK_IMPORTED_MODULE_0__["RESOLVE_FILTER"]; });
19826
19827/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "SET_BLOCK_TRACKING", function() { return _vue_compiler_core__WEBPACK_IMPORTED_MODULE_0__["SET_BLOCK_TRACKING"]; });
19828
19829/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "SUSPENSE", function() { return _vue_compiler_core__WEBPACK_IMPORTED_MODULE_0__["SUSPENSE"]; });
19830
19831/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "TELEPORT", function() { return _vue_compiler_core__WEBPACK_IMPORTED_MODULE_0__["TELEPORT"]; });
19832
19833/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "TO_DISPLAY_STRING", function() { return _vue_compiler_core__WEBPACK_IMPORTED_MODULE_0__["TO_DISPLAY_STRING"]; });
19834
19835/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "TO_HANDLERS", function() { return _vue_compiler_core__WEBPACK_IMPORTED_MODULE_0__["TO_HANDLERS"]; });
19836
19837/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "TO_HANDLER_KEY", function() { return _vue_compiler_core__WEBPACK_IMPORTED_MODULE_0__["TO_HANDLER_KEY"]; });
19838
19839/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "TS_NODE_TYPES", function() { return _vue_compiler_core__WEBPACK_IMPORTED_MODULE_0__["TS_NODE_TYPES"]; });
19840
19841/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "UNREF", function() { return _vue_compiler_core__WEBPACK_IMPORTED_MODULE_0__["UNREF"]; });
19842
19843/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "WITH_CTX", function() { return _vue_compiler_core__WEBPACK_IMPORTED_MODULE_0__["WITH_CTX"]; });
19844
19845/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "WITH_DIRECTIVES", function() { return _vue_compiler_core__WEBPACK_IMPORTED_MODULE_0__["WITH_DIRECTIVES"]; });
19846
19847/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "WITH_MEMO", function() { return _vue_compiler_core__WEBPACK_IMPORTED_MODULE_0__["WITH_MEMO"]; });
19848
19849/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "advancePositionWithClone", function() { return _vue_compiler_core__WEBPACK_IMPORTED_MODULE_0__["advancePositionWithClone"]; });
19850
19851/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "advancePositionWithMutation", function() { return _vue_compiler_core__WEBPACK_IMPORTED_MODULE_0__["advancePositionWithMutation"]; });
19852
19853/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "assert", function() { return _vue_compiler_core__WEBPACK_IMPORTED_MODULE_0__["assert"]; });
19854
19855/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "baseCompile", function() { return _vue_compiler_core__WEBPACK_IMPORTED_MODULE_0__["baseCompile"]; });
19856
19857/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "baseParse", function() { return _vue_compiler_core__WEBPACK_IMPORTED_MODULE_0__["baseParse"]; });
19858
19859/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "buildDirectiveArgs", function() { return _vue_compiler_core__WEBPACK_IMPORTED_MODULE_0__["buildDirectiveArgs"]; });
19860
19861/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "buildProps", function() { return _vue_compiler_core__WEBPACK_IMPORTED_MODULE_0__["buildProps"]; });
19862
19863/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "buildSlots", function() { return _vue_compiler_core__WEBPACK_IMPORTED_MODULE_0__["buildSlots"]; });
19864
19865/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "checkCompatEnabled", function() { return _vue_compiler_core__WEBPACK_IMPORTED_MODULE_0__["checkCompatEnabled"]; });
19866
19867/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "convertToBlock", function() { return _vue_compiler_core__WEBPACK_IMPORTED_MODULE_0__["convertToBlock"]; });
19868
19869/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "createArrayExpression", function() { return _vue_compiler_core__WEBPACK_IMPORTED_MODULE_0__["createArrayExpression"]; });
19870
19871/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "createAssignmentExpression", function() { return _vue_compiler_core__WEBPACK_IMPORTED_MODULE_0__["createAssignmentExpression"]; });
19872
19873/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "createBlockStatement", function() { return _vue_compiler_core__WEBPACK_IMPORTED_MODULE_0__["createBlockStatement"]; });
19874
19875/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "createCacheExpression", function() { return _vue_compiler_core__WEBPACK_IMPORTED_MODULE_0__["createCacheExpression"]; });
19876
19877/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "createCallExpression", function() { return _vue_compiler_core__WEBPACK_IMPORTED_MODULE_0__["createCallExpression"]; });
19878
19879/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "createCompilerError", function() { return _vue_compiler_core__WEBPACK_IMPORTED_MODULE_0__["createCompilerError"]; });
19880
19881/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "createCompoundExpression", function() { return _vue_compiler_core__WEBPACK_IMPORTED_MODULE_0__["createCompoundExpression"]; });
19882
19883/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "createConditionalExpression", function() { return _vue_compiler_core__WEBPACK_IMPORTED_MODULE_0__["createConditionalExpression"]; });
19884
19885/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "createForLoopParams", function() { return _vue_compiler_core__WEBPACK_IMPORTED_MODULE_0__["createForLoopParams"]; });
19886
19887/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "createFunctionExpression", function() { return _vue_compiler_core__WEBPACK_IMPORTED_MODULE_0__["createFunctionExpression"]; });
19888
19889/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "createIfStatement", function() { return _vue_compiler_core__WEBPACK_IMPORTED_MODULE_0__["createIfStatement"]; });
19890
19891/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "createInterpolation", function() { return _vue_compiler_core__WEBPACK_IMPORTED_MODULE_0__["createInterpolation"]; });
19892
19893/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "createObjectExpression", function() { return _vue_compiler_core__WEBPACK_IMPORTED_MODULE_0__["createObjectExpression"]; });
19894
19895/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "createObjectProperty", function() { return _vue_compiler_core__WEBPACK_IMPORTED_MODULE_0__["createObjectProperty"]; });
19896
19897/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "createReturnStatement", function() { return _vue_compiler_core__WEBPACK_IMPORTED_MODULE_0__["createReturnStatement"]; });
19898
19899/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "createRoot", function() { return _vue_compiler_core__WEBPACK_IMPORTED_MODULE_0__["createRoot"]; });
19900
19901/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "createSequenceExpression", function() { return _vue_compiler_core__WEBPACK_IMPORTED_MODULE_0__["createSequenceExpression"]; });
19902
19903/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "createSimpleExpression", function() { return _vue_compiler_core__WEBPACK_IMPORTED_MODULE_0__["createSimpleExpression"]; });
19904
19905/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "createStructuralDirectiveTransform", function() { return _vue_compiler_core__WEBPACK_IMPORTED_MODULE_0__["createStructuralDirectiveTransform"]; });
19906
19907/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "createTemplateLiteral", function() { return _vue_compiler_core__WEBPACK_IMPORTED_MODULE_0__["createTemplateLiteral"]; });
19908
19909/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "createTransformContext", function() { return _vue_compiler_core__WEBPACK_IMPORTED_MODULE_0__["createTransformContext"]; });
19910
19911/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "createVNodeCall", function() { return _vue_compiler_core__WEBPACK_IMPORTED_MODULE_0__["createVNodeCall"]; });
19912
19913/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "errorMessages", function() { return _vue_compiler_core__WEBPACK_IMPORTED_MODULE_0__["errorMessages"]; });
19914
19915/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "extractIdentifiers", function() { return _vue_compiler_core__WEBPACK_IMPORTED_MODULE_0__["extractIdentifiers"]; });
19916
19917/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "findDir", function() { return _vue_compiler_core__WEBPACK_IMPORTED_MODULE_0__["findDir"]; });
19918
19919/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "findProp", function() { return _vue_compiler_core__WEBPACK_IMPORTED_MODULE_0__["findProp"]; });
19920
19921/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "forAliasRE", function() { return _vue_compiler_core__WEBPACK_IMPORTED_MODULE_0__["forAliasRE"]; });
19922
19923/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "generate", function() { return _vue_compiler_core__WEBPACK_IMPORTED_MODULE_0__["generate"]; });
19924
19925/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "getBaseTransformPreset", function() { return _vue_compiler_core__WEBPACK_IMPORTED_MODULE_0__["getBaseTransformPreset"]; });
19926
19927/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "getConstantType", function() { return _vue_compiler_core__WEBPACK_IMPORTED_MODULE_0__["getConstantType"]; });
19928
19929/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "getMemoedVNodeCall", function() { return _vue_compiler_core__WEBPACK_IMPORTED_MODULE_0__["getMemoedVNodeCall"]; });
19930
19931/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "getVNodeBlockHelper", function() { return _vue_compiler_core__WEBPACK_IMPORTED_MODULE_0__["getVNodeBlockHelper"]; });
19932
19933/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "getVNodeHelper", function() { return _vue_compiler_core__WEBPACK_IMPORTED_MODULE_0__["getVNodeHelper"]; });
19934
19935/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "hasDynamicKeyVBind", function() { return _vue_compiler_core__WEBPACK_IMPORTED_MODULE_0__["hasDynamicKeyVBind"]; });
19936
19937/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "hasScopeRef", function() { return _vue_compiler_core__WEBPACK_IMPORTED_MODULE_0__["hasScopeRef"]; });
19938
19939/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "helperNameMap", function() { return _vue_compiler_core__WEBPACK_IMPORTED_MODULE_0__["helperNameMap"]; });
19940
19941/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "injectProp", function() { return _vue_compiler_core__WEBPACK_IMPORTED_MODULE_0__["injectProp"]; });
19942
19943/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "isCoreComponent", function() { return _vue_compiler_core__WEBPACK_IMPORTED_MODULE_0__["isCoreComponent"]; });
19944
19945/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "isFunctionType", function() { return _vue_compiler_core__WEBPACK_IMPORTED_MODULE_0__["isFunctionType"]; });
19946
19947/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "isInDestructureAssignment", function() { return _vue_compiler_core__WEBPACK_IMPORTED_MODULE_0__["isInDestructureAssignment"]; });
19948
19949/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "isInNewExpression", function() { return _vue_compiler_core__WEBPACK_IMPORTED_MODULE_0__["isInNewExpression"]; });
19950
19951/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "isMemberExpression", function() { return _vue_compiler_core__WEBPACK_IMPORTED_MODULE_0__["isMemberExpression"]; });
19952
19953/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "isMemberExpressionBrowser", function() { return _vue_compiler_core__WEBPACK_IMPORTED_MODULE_0__["isMemberExpressionBrowser"]; });
19954
19955/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "isMemberExpressionNode", function() { return _vue_compiler_core__WEBPACK_IMPORTED_MODULE_0__["isMemberExpressionNode"]; });
19956
19957/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "isReferencedIdentifier", function() { return _vue_compiler_core__WEBPACK_IMPORTED_MODULE_0__["isReferencedIdentifier"]; });
19958
19959/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "isSimpleIdentifier", function() { return _vue_compiler_core__WEBPACK_IMPORTED_MODULE_0__["isSimpleIdentifier"]; });
19960
19961/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "isSlotOutlet", function() { return _vue_compiler_core__WEBPACK_IMPORTED_MODULE_0__["isSlotOutlet"]; });
19962
19963/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "isStaticArgOf", function() { return _vue_compiler_core__WEBPACK_IMPORTED_MODULE_0__["isStaticArgOf"]; });
19964
19965/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "isStaticExp", function() { return _vue_compiler_core__WEBPACK_IMPORTED_MODULE_0__["isStaticExp"]; });
19966
19967/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "isStaticProperty", function() { return _vue_compiler_core__WEBPACK_IMPORTED_MODULE_0__["isStaticProperty"]; });
19968
19969/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "isStaticPropertyKey", function() { return _vue_compiler_core__WEBPACK_IMPORTED_MODULE_0__["isStaticPropertyKey"]; });
19970
19971/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "isTemplateNode", function() { return _vue_compiler_core__WEBPACK_IMPORTED_MODULE_0__["isTemplateNode"]; });
19972
19973/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "isText", function() { return _vue_compiler_core__WEBPACK_IMPORTED_MODULE_0__["isText"]; });
19974
19975/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "isVSlot", function() { return _vue_compiler_core__WEBPACK_IMPORTED_MODULE_0__["isVSlot"]; });
19976
19977/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "locStub", function() { return _vue_compiler_core__WEBPACK_IMPORTED_MODULE_0__["locStub"]; });
19978
19979/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "noopDirectiveTransform", function() { return _vue_compiler_core__WEBPACK_IMPORTED_MODULE_0__["noopDirectiveTransform"]; });
19980
19981/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "processExpression", function() { return _vue_compiler_core__WEBPACK_IMPORTED_MODULE_0__["processExpression"]; });
19982
19983/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "processFor", function() { return _vue_compiler_core__WEBPACK_IMPORTED_MODULE_0__["processFor"]; });
19984
19985/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "processIf", function() { return _vue_compiler_core__WEBPACK_IMPORTED_MODULE_0__["processIf"]; });
19986
19987/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "processSlotOutlet", function() { return _vue_compiler_core__WEBPACK_IMPORTED_MODULE_0__["processSlotOutlet"]; });
19988
19989/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "registerRuntimeHelpers", function() { return _vue_compiler_core__WEBPACK_IMPORTED_MODULE_0__["registerRuntimeHelpers"]; });
19990
19991/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "resolveComponentType", function() { return _vue_compiler_core__WEBPACK_IMPORTED_MODULE_0__["resolveComponentType"]; });
19992
19993/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "stringifyExpression", function() { return _vue_compiler_core__WEBPACK_IMPORTED_MODULE_0__["stringifyExpression"]; });
19994
19995/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "toValidAssetId", function() { return _vue_compiler_core__WEBPACK_IMPORTED_MODULE_0__["toValidAssetId"]; });
19996
19997/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "trackSlotScopes", function() { return _vue_compiler_core__WEBPACK_IMPORTED_MODULE_0__["trackSlotScopes"]; });
19998
19999/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "trackVForSlotScopes", function() { return _vue_compiler_core__WEBPACK_IMPORTED_MODULE_0__["trackVForSlotScopes"]; });
20000
20001/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "transform", function() { return _vue_compiler_core__WEBPACK_IMPORTED_MODULE_0__["transform"]; });
20002
20003/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "transformBind", function() { return _vue_compiler_core__WEBPACK_IMPORTED_MODULE_0__["transformBind"]; });
20004
20005/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "transformElement", function() { return _vue_compiler_core__WEBPACK_IMPORTED_MODULE_0__["transformElement"]; });
20006
20007/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "transformExpression", function() { return _vue_compiler_core__WEBPACK_IMPORTED_MODULE_0__["transformExpression"]; });
20008
20009/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "transformModel", function() { return _vue_compiler_core__WEBPACK_IMPORTED_MODULE_0__["transformModel"]; });
20010
20011/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "transformOn", function() { return _vue_compiler_core__WEBPACK_IMPORTED_MODULE_0__["transformOn"]; });
20012
20013/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "traverseNode", function() { return _vue_compiler_core__WEBPACK_IMPORTED_MODULE_0__["traverseNode"]; });
20014
20015/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "unwrapTSNode", function() { return _vue_compiler_core__WEBPACK_IMPORTED_MODULE_0__["unwrapTSNode"]; });
20016
20017/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "walkBlockDeclarations", function() { return _vue_compiler_core__WEBPACK_IMPORTED_MODULE_0__["walkBlockDeclarations"]; });
20018
20019/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "walkFunctionParams", function() { return _vue_compiler_core__WEBPACK_IMPORTED_MODULE_0__["walkFunctionParams"]; });
20020
20021/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "walkIdentifiers", function() { return _vue_compiler_core__WEBPACK_IMPORTED_MODULE_0__["walkIdentifiers"]; });
20022
20023/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "warnDeprecation", function() { return _vue_compiler_core__WEBPACK_IMPORTED_MODULE_0__["warnDeprecation"]; });
20024
20025/* harmony import */ var _vue_shared__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @vue/shared */ "./node_modules/@vue/shared/dist/shared.esm-bundler.js");
20026/**
20027* @vue/compiler-dom v3.4.21
20028* (c) 2018-present Yuxi (Evan) You and Vue contributors
20029* @license MIT
20030**/
20031
20032
20033
20034
20035const V_MODEL_RADIO = Symbol( true ? `vModelRadio` : undefined);
20036const V_MODEL_CHECKBOX = Symbol( true ? `vModelCheckbox` : undefined);
20037const V_MODEL_TEXT = Symbol( true ? `vModelText` : undefined);
20038const V_MODEL_SELECT = Symbol( true ? `vModelSelect` : undefined);
20039const V_MODEL_DYNAMIC = Symbol( true ? `vModelDynamic` : undefined);
20040const V_ON_WITH_MODIFIERS = Symbol( true ? `vOnModifiersGuard` : undefined);
20041const V_ON_WITH_KEYS = Symbol( true ? `vOnKeysGuard` : undefined);
20042const V_SHOW = Symbol( true ? `vShow` : undefined);
20043const TRANSITION = Symbol( true ? `Transition` : undefined);
20044const TRANSITION_GROUP = Symbol( true ? `TransitionGroup` : undefined);
20045Object(_vue_compiler_core__WEBPACK_IMPORTED_MODULE_0__["registerRuntimeHelpers"])({
20046  [V_MODEL_RADIO]: `vModelRadio`,
20047  [V_MODEL_CHECKBOX]: `vModelCheckbox`,
20048  [V_MODEL_TEXT]: `vModelText`,
20049  [V_MODEL_SELECT]: `vModelSelect`,
20050  [V_MODEL_DYNAMIC]: `vModelDynamic`,
20051  [V_ON_WITH_MODIFIERS]: `withModifiers`,
20052  [V_ON_WITH_KEYS]: `withKeys`,
20053  [V_SHOW]: `vShow`,
20054  [TRANSITION]: `Transition`,
20055  [TRANSITION_GROUP]: `TransitionGroup`
20056});
20057
20058let decoder;
20059function decodeHtmlBrowser(raw, asAttr = false) {
20060  if (!decoder) {
20061    decoder = document.createElement("div");
20062  }
20063  if (asAttr) {
20064    decoder.innerHTML = `<div foo="${raw.replace(/"/g, "&quot;")}">`;
20065    return decoder.children[0].getAttribute("foo");
20066  } else {
20067    decoder.innerHTML = raw;
20068    return decoder.textContent;
20069  }
20070}
20071
20072const parserOptions = {
20073  parseMode: "html",
20074  isVoidTag: _vue_shared__WEBPACK_IMPORTED_MODULE_1__["isVoidTag"],
20075  isNativeTag: (tag) => Object(_vue_shared__WEBPACK_IMPORTED_MODULE_1__["isHTMLTag"])(tag) || Object(_vue_shared__WEBPACK_IMPORTED_MODULE_1__["isSVGTag"])(tag) || Object(_vue_shared__WEBPACK_IMPORTED_MODULE_1__["isMathMLTag"])(tag),
20076  isPreTag: (tag) => tag === "pre",
20077  decodeEntities: decodeHtmlBrowser ,
20078  isBuiltInComponent: (tag) => {
20079    if (tag === "Transition" || tag === "transition") {
20080      return TRANSITION;
20081    } else if (tag === "TransitionGroup" || tag === "transition-group") {
20082      return TRANSITION_GROUP;
20083    }
20084  },
20085  // https://html.spec.whatwg.org/multipage/parsing.html#tree-construction-dispatcher
20086  getNamespace(tag, parent, rootNamespace) {
20087    let ns = parent ? parent.ns : rootNamespace;
20088    if (parent && ns === 2) {
20089      if (parent.tag === "annotation-xml") {
20090        if (tag === "svg") {
20091          return 1;
20092        }
20093        if (parent.props.some(
20094          (a) => a.type === 6 && a.name === "encoding" && a.value != null && (a.value.content === "text/html" || a.value.content === "application/xhtml+xml")
20095        )) {
20096          ns = 0;
20097        }
20098      } else if (/^m(?:[ions]|text)$/.test(parent.tag) && tag !== "mglyph" && tag !== "malignmark") {
20099        ns = 0;
20100      }
20101    } else if (parent && ns === 1) {
20102      if (parent.tag === "foreignObject" || parent.tag === "desc" || parent.tag === "title") {
20103        ns = 0;
20104      }
20105    }
20106    if (ns === 0) {
20107      if (tag === "svg") {
20108        return 1;
20109      }
20110      if (tag === "math") {
20111        return 2;
20112      }
20113    }
20114    return ns;
20115  }
20116};
20117
20118const transformStyle = (node) => {
20119  if (node.type === 1) {
20120    node.props.forEach((p, i) => {
20121      if (p.type === 6 && p.name === "style" && p.value) {
20122        node.props[i] = {
20123          type: 7,
20124          name: `bind`,
20125          arg: Object(_vue_compiler_core__WEBPACK_IMPORTED_MODULE_0__["createSimpleExpression"])(`style`, true, p.loc),
20126          exp: parseInlineCSS(p.value.content, p.loc),
20127          modifiers: [],
20128          loc: p.loc
20129        };
20130      }
20131    });
20132  }
20133};
20134const parseInlineCSS = (cssText, loc) => {
20135  const normalized = Object(_vue_shared__WEBPACK_IMPORTED_MODULE_1__["parseStringStyle"])(cssText);
20136  return Object(_vue_compiler_core__WEBPACK_IMPORTED_MODULE_0__["createSimpleExpression"])(
20137    JSON.stringify(normalized),
20138    false,
20139    loc,
20140    3
20141  );
20142};
20143
20144function createDOMCompilerError(code, loc) {
20145  return Object(_vue_compiler_core__WEBPACK_IMPORTED_MODULE_0__["createCompilerError"])(
20146    code,
20147    loc,
20148     true ? DOMErrorMessages : undefined
20149  );
20150}
20151const DOMErrorCodes = {
20152  "X_V_HTML_NO_EXPRESSION": 53,
20153  "53": "X_V_HTML_NO_EXPRESSION",
20154  "X_V_HTML_WITH_CHILDREN": 54,
20155  "54": "X_V_HTML_WITH_CHILDREN",
20156  "X_V_TEXT_NO_EXPRESSION": 55,
20157  "55": "X_V_TEXT_NO_EXPRESSION",
20158  "X_V_TEXT_WITH_CHILDREN": 56,
20159  "56": "X_V_TEXT_WITH_CHILDREN",
20160  "X_V_MODEL_ON_INVALID_ELEMENT": 57,
20161  "57": "X_V_MODEL_ON_INVALID_ELEMENT",
20162  "X_V_MODEL_ARG_ON_ELEMENT": 58,
20163  "58": "X_V_MODEL_ARG_ON_ELEMENT",
20164  "X_V_MODEL_ON_FILE_INPUT_ELEMENT": 59,
20165  "59": "X_V_MODEL_ON_FILE_INPUT_ELEMENT",
20166  "X_V_MODEL_UNNECESSARY_VALUE": 60,
20167  "60": "X_V_MODEL_UNNECESSARY_VALUE",
20168  "X_V_SHOW_NO_EXPRESSION": 61,
20169  "61": "X_V_SHOW_NO_EXPRESSION",
20170  "X_TRANSITION_INVALID_CHILDREN": 62,
20171  "62": "X_TRANSITION_INVALID_CHILDREN",
20172  "X_IGNORED_SIDE_EFFECT_TAG": 63,
20173  "63": "X_IGNORED_SIDE_EFFECT_TAG",
20174  "__EXTEND_POINT__": 64,
20175  "64": "__EXTEND_POINT__"
20176};
20177const DOMErrorMessages = {
20178  [53]: `v-html is missing expression.`,
20179  [54]: `v-html will override element children.`,
20180  [55]: `v-text is missing expression.`,
20181  [56]: `v-text will override element children.`,
20182  [57]: `v-model can only be used on <input>, <textarea> and <select> elements.`,
20183  [58]: `v-model argument is not supported on plain elements.`,
20184  [59]: `v-model cannot be used on file inputs since they are read-only. Use a v-on:change listener instead.`,
20185  [60]: `Unnecessary value binding used alongside v-model. It will interfere with v-model's behavior.`,
20186  [61]: `v-show is missing expression.`,
20187  [62]: `<Transition> expects exactly one child element or component.`,
20188  [63]: `Tags with side effect (<script> and <style>) are ignored in client component templates.`
20189};
20190
20191const transformVHtml = (dir, node, context) => {
20192  const { exp, loc } = dir;
20193  if (!exp) {
20194    context.onError(
20195      createDOMCompilerError(53, loc)
20196    );
20197  }
20198  if (node.children.length) {
20199    context.onError(
20200      createDOMCompilerError(54, loc)
20201    );
20202    node.children.length = 0;
20203  }
20204  return {
20205    props: [
20206      Object(_vue_compiler_core__WEBPACK_IMPORTED_MODULE_0__["createObjectProperty"])(
20207        Object(_vue_compiler_core__WEBPACK_IMPORTED_MODULE_0__["createSimpleExpression"])(`innerHTML`, true, loc),
20208        exp || Object(_vue_compiler_core__WEBPACK_IMPORTED_MODULE_0__["createSimpleExpression"])("", true)
20209      )
20210    ]
20211  };
20212};
20213
20214const transformVText = (dir, node, context) => {
20215  const { exp, loc } = dir;
20216  if (!exp) {
20217    context.onError(
20218      createDOMCompilerError(55, loc)
20219    );
20220  }
20221  if (node.children.length) {
20222    context.onError(
20223      createDOMCompilerError(56, loc)
20224    );
20225    node.children.length = 0;
20226  }
20227  return {
20228    props: [
20229      Object(_vue_compiler_core__WEBPACK_IMPORTED_MODULE_0__["createObjectProperty"])(
20230        Object(_vue_compiler_core__WEBPACK_IMPORTED_MODULE_0__["createSimpleExpression"])(`textContent`, true),
20231        exp ? Object(_vue_compiler_core__WEBPACK_IMPORTED_MODULE_0__["getConstantType"])(exp, context) > 0 ? exp : Object(_vue_compiler_core__WEBPACK_IMPORTED_MODULE_0__["createCallExpression"])(
20232          context.helperString(_vue_compiler_core__WEBPACK_IMPORTED_MODULE_0__["TO_DISPLAY_STRING"]),
20233          [exp],
20234          loc
20235        ) : Object(_vue_compiler_core__WEBPACK_IMPORTED_MODULE_0__["createSimpleExpression"])("", true)
20236      )
20237    ]
20238  };
20239};
20240
20241const transformModel = (dir, node, context) => {
20242  const baseResult = Object(_vue_compiler_core__WEBPACK_IMPORTED_MODULE_0__["transformModel"])(dir, node, context);
20243  if (!baseResult.props.length || node.tagType === 1) {
20244    return baseResult;
20245  }
20246  if (dir.arg) {
20247    context.onError(
20248      createDOMCompilerError(
20249        58,
20250        dir.arg.loc
20251      )
20252    );
20253  }
20254  function checkDuplicatedValue() {
20255    const value = Object(_vue_compiler_core__WEBPACK_IMPORTED_MODULE_0__["findDir"])(node, "bind");
20256    if (value && Object(_vue_compiler_core__WEBPACK_IMPORTED_MODULE_0__["isStaticArgOf"])(value.arg, "value")) {
20257      context.onError(
20258        createDOMCompilerError(
20259          60,
20260          value.loc
20261        )
20262      );
20263    }
20264  }
20265  const { tag } = node;
20266  const isCustomElement = context.isCustomElement(tag);
20267  if (tag === "input" || tag === "textarea" || tag === "select" || isCustomElement) {
20268    let directiveToUse = V_MODEL_TEXT;
20269    let isInvalidType = false;
20270    if (tag === "input" || isCustomElement) {
20271      const type = Object(_vue_compiler_core__WEBPACK_IMPORTED_MODULE_0__["findProp"])(node, `type`);
20272      if (type) {
20273        if (type.type === 7) {
20274          directiveToUse = V_MODEL_DYNAMIC;
20275        } else if (type.value) {
20276          switch (type.value.content) {
20277            case "radio":
20278              directiveToUse = V_MODEL_RADIO;
20279              break;
20280            case "checkbox":
20281              directiveToUse = V_MODEL_CHECKBOX;
20282              break;
20283            case "file":
20284              isInvalidType = true;
20285              context.onError(
20286                createDOMCompilerError(
20287                  59,
20288                  dir.loc
20289                )
20290              );
20291              break;
20292            default:
20293               true && checkDuplicatedValue();
20294              break;
20295          }
20296        }
20297      } else if (Object(_vue_compiler_core__WEBPACK_IMPORTED_MODULE_0__["hasDynamicKeyVBind"])(node)) {
20298        directiveToUse = V_MODEL_DYNAMIC;
20299      } else {
20300         true && checkDuplicatedValue();
20301      }
20302    } else if (tag === "select") {
20303      directiveToUse = V_MODEL_SELECT;
20304    } else {
20305       true && checkDuplicatedValue();
20306    }
20307    if (!isInvalidType) {
20308      baseResult.needRuntime = context.helper(directiveToUse);
20309    }
20310  } else {
20311    context.onError(
20312      createDOMCompilerError(
20313        57,
20314        dir.loc
20315      )
20316    );
20317  }
20318  baseResult.props = baseResult.props.filter(
20319    (p) => !(p.key.type === 4 && p.key.content === "modelValue")
20320  );
20321  return baseResult;
20322};
20323
20324const isEventOptionModifier = /* @__PURE__ */ Object(_vue_shared__WEBPACK_IMPORTED_MODULE_1__["makeMap"])(`passive,once,capture`);
20325const isNonKeyModifier = /* @__PURE__ */ Object(_vue_shared__WEBPACK_IMPORTED_MODULE_1__["makeMap"])(
20326  // event propagation management
20327  `stop,prevent,self,ctrl,shift,alt,meta,exact,middle`
20328);
20329const maybeKeyModifier = /* @__PURE__ */ Object(_vue_shared__WEBPACK_IMPORTED_MODULE_1__["makeMap"])("left,right");
20330const isKeyboardEvent = /* @__PURE__ */ Object(_vue_shared__WEBPACK_IMPORTED_MODULE_1__["makeMap"])(
20331  `onkeyup,onkeydown,onkeypress`,
20332  true
20333);
20334const resolveModifiers = (key, modifiers, context, loc) => {
20335  const keyModifiers = [];
20336  const nonKeyModifiers = [];
20337  const eventOptionModifiers = [];
20338  for (let i = 0; i < modifiers.length; i++) {
20339    const modifier = modifiers[i];
20340    if (modifier === "native" && Object(_vue_compiler_core__WEBPACK_IMPORTED_MODULE_0__["checkCompatEnabled"])(
20341      "COMPILER_V_ON_NATIVE",
20342      context,
20343      loc
20344    )) {
20345      eventOptionModifiers.push(modifier);
20346    } else if (isEventOptionModifier(modifier)) {
20347      eventOptionModifiers.push(modifier);
20348    } else {
20349      if (maybeKeyModifier(modifier)) {
20350        if (Object(_vue_compiler_core__WEBPACK_IMPORTED_MODULE_0__["isStaticExp"])(key)) {
20351          if (isKeyboardEvent(key.content)) {
20352            keyModifiers.push(modifier);
20353          } else {
20354            nonKeyModifiers.push(modifier);
20355          }
20356        } else {
20357          keyModifiers.push(modifier);
20358          nonKeyModifiers.push(modifier);
20359        }
20360      } else {
20361        if (isNonKeyModifier(modifier)) {
20362          nonKeyModifiers.push(modifier);
20363        } else {
20364          keyModifiers.push(modifier);
20365        }
20366      }
20367    }
20368  }
20369  return {
20370    keyModifiers,
20371    nonKeyModifiers,
20372    eventOptionModifiers
20373  };
20374};
20375const transformClick = (key, event) => {
20376  const isStaticClick = Object(_vue_compiler_core__WEBPACK_IMPORTED_MODULE_0__["isStaticExp"])(key) && key.content.toLowerCase() === "onclick";
20377  return isStaticClick ? Object(_vue_compiler_core__WEBPACK_IMPORTED_MODULE_0__["createSimpleExpression"])(event, true) : key.type !== 4 ? Object(_vue_compiler_core__WEBPACK_IMPORTED_MODULE_0__["createCompoundExpression"])([
20378    `(`,
20379    key,
20380    `) === "onClick" ? "${event}" : (`,
20381    key,
20382    `)`
20383  ]) : key;
20384};
20385const transformOn = (dir, node, context) => {
20386  return Object(_vue_compiler_core__WEBPACK_IMPORTED_MODULE_0__["transformOn"])(dir, node, context, (baseResult) => {
20387    const { modifiers } = dir;
20388    if (!modifiers.length)
20389      return baseResult;
20390    let { key, value: handlerExp } = baseResult.props[0];
20391    const { keyModifiers, nonKeyModifiers, eventOptionModifiers } = resolveModifiers(key, modifiers, context, dir.loc);
20392    if (nonKeyModifiers.includes("right")) {
20393      key = transformClick(key, `onContextmenu`);
20394    }
20395    if (nonKeyModifiers.includes("middle")) {
20396      key = transformClick(key, `onMouseup`);
20397    }
20398    if (nonKeyModifiers.length) {
20399      handlerExp = Object(_vue_compiler_core__WEBPACK_IMPORTED_MODULE_0__["createCallExpression"])(context.helper(V_ON_WITH_MODIFIERS), [
20400        handlerExp,
20401        JSON.stringify(nonKeyModifiers)
20402      ]);
20403    }
20404    if (keyModifiers.length && // if event name is dynamic, always wrap with keys guard
20405    (!Object(_vue_compiler_core__WEBPACK_IMPORTED_MODULE_0__["isStaticExp"])(key) || isKeyboardEvent(key.content))) {
20406      handlerExp = Object(_vue_compiler_core__WEBPACK_IMPORTED_MODULE_0__["createCallExpression"])(context.helper(V_ON_WITH_KEYS), [
20407        handlerExp,
20408        JSON.stringify(keyModifiers)
20409      ]);
20410    }
20411    if (eventOptionModifiers.length) {
20412      const modifierPostfix = eventOptionModifiers.map(_vue_shared__WEBPACK_IMPORTED_MODULE_1__["capitalize"]).join("");
20413      key = Object(_vue_compiler_core__WEBPACK_IMPORTED_MODULE_0__["isStaticExp"])(key) ? Object(_vue_compiler_core__WEBPACK_IMPORTED_MODULE_0__["createSimpleExpression"])(`${key.content}${modifierPostfix}`, true) : Object(_vue_compiler_core__WEBPACK_IMPORTED_MODULE_0__["createCompoundExpression"])([`(`, key, `) + "${modifierPostfix}"`]);
20414    }
20415    return {
20416      props: [Object(_vue_compiler_core__WEBPACK_IMPORTED_MODULE_0__["createObjectProperty"])(key, handlerExp)]
20417    };
20418  });
20419};
20420
20421const transformShow = (dir, node, context) => {
20422  const { exp, loc } = dir;
20423  if (!exp) {
20424    context.onError(
20425      createDOMCompilerError(61, loc)
20426    );
20427  }
20428  return {
20429    props: [],
20430    needRuntime: context.helper(V_SHOW)
20431  };
20432};
20433
20434const transformTransition = (node, context) => {
20435  if (node.type === 1 && node.tagType === 1) {
20436    const component = context.isBuiltInComponent(node.tag);
20437    if (component === TRANSITION) {
20438      return () => {
20439        if (!node.children.length) {
20440          return;
20441        }
20442        if (hasMultipleChildren(node)) {
20443          context.onError(
20444            createDOMCompilerError(
20445              62,
20446              {
20447                start: node.children[0].loc.start,
20448                end: node.children[node.children.length - 1].loc.end,
20449                source: ""
20450              }
20451            )
20452          );
20453        }
20454        const child = node.children[0];
20455        if (child.type === 1) {
20456          for (const p of child.props) {
20457            if (p.type === 7 && p.name === "show") {
20458              node.props.push({
20459                type: 6,
20460                name: "persisted",
20461                nameLoc: node.loc,
20462                value: void 0,
20463                loc: node.loc
20464              });
20465            }
20466          }
20467        }
20468      };
20469    }
20470  }
20471};
20472function hasMultipleChildren(node) {
20473  const children = node.children = node.children.filter(
20474    (c) => c.type !== 3 && !(c.type === 2 && !c.content.trim())
20475  );
20476  const child = children[0];
20477  return children.length !== 1 || child.type === 11 || child.type === 9 && child.branches.some(hasMultipleChildren);
20478}
20479
20480const ignoreSideEffectTags = (node, context) => {
20481  if (node.type === 1 && node.tagType === 0 && (node.tag === "script" || node.tag === "style")) {
20482     true && context.onError(
20483      createDOMCompilerError(
20484        63,
20485        node.loc
20486      )
20487    );
20488    context.removeNode();
20489  }
20490};
20491
20492const DOMNodeTransforms = [
20493  transformStyle,
20494  ... true ? [transformTransition] : undefined
20495];
20496const DOMDirectiveTransforms = {
20497  cloak: _vue_compiler_core__WEBPACK_IMPORTED_MODULE_0__["noopDirectiveTransform"],
20498  html: transformVHtml,
20499  text: transformVText,
20500  model: transformModel,
20501  // override compiler-core
20502  on: transformOn,
20503  // override compiler-core
20504  show: transformShow
20505};
20506function compile(src, options = {}) {
20507  return Object(_vue_compiler_core__WEBPACK_IMPORTED_MODULE_0__["baseCompile"])(
20508    src,
20509    Object(_vue_shared__WEBPACK_IMPORTED_MODULE_1__["extend"])({}, parserOptions, options, {
20510      nodeTransforms: [
20511        // ignore <script> and <tag>
20512        // this is not put inside DOMNodeTransforms because that list is used
20513        // by compiler-ssr to generate vnode fallback branches
20514        ignoreSideEffectTags,
20515        ...DOMNodeTransforms,
20516        ...options.nodeTransforms || []
20517      ],
20518      directiveTransforms: Object(_vue_shared__WEBPACK_IMPORTED_MODULE_1__["extend"])(
20519        {},
20520        DOMDirectiveTransforms,
20521        options.directiveTransforms || {}
20522      ),
20523      transformHoist: null 
20524    })
20525  );
20526}
20527function parse(template, options = {}) {
20528  return Object(_vue_compiler_core__WEBPACK_IMPORTED_MODULE_0__["baseParse"])(template, Object(_vue_shared__WEBPACK_IMPORTED_MODULE_1__["extend"])({}, parserOptions, options));
20529}
20530
20531
20532
20533
20534/***/ }),
20535
vendor: 42,025 bytes, lines 20536-21833
20536/***/ "./node_modules/@vue/reactivity/dist/reactivity.esm-bundler.js":
20537/*!*********************************************************************!*\
20538  !*** ./node_modules/@vue/reactivity/dist/reactivity.esm-bundler.js ***!
20539  \*********************************************************************/
20540/*! exports provided: EffectScope, ITERATE_KEY, ReactiveEffect, ReactiveFlags, TrackOpTypes, TriggerOpTypes, computed, customRef, deferredComputed, effect, effectScope, enableTracking, getCurrentScope, isProxy, isReactive, isReadonly, isRef, isShallow, markRaw, onScopeDispose, pauseScheduling, pauseTracking, proxyRefs, reactive, readonly, ref, resetScheduling, resetTracking, shallowReactive, shallowReadonly, shallowRef, stop, toRaw, toRef, toRefs, toValue, track, trigger, triggerRef, unref */
20541/***/ (function(module, __webpack_exports__, __webpack_require__) {
20542
20543"use strict";
20544__webpack_require__.r(__webpack_exports__);
20545/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "EffectScope", function() { return EffectScope; });
20546/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "ITERATE_KEY", function() { return ITERATE_KEY; });
20547/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "ReactiveEffect", function() { return ReactiveEffect; });
20548/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "ReactiveFlags", function() { return ReactiveFlags; });
20549/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "TrackOpTypes", function() { return TrackOpTypes; });
20550/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "TriggerOpTypes", function() { return TriggerOpTypes; });
20551/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "computed", function() { return computed; });
20552/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "customRef", function() { return customRef; });
20553/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "deferredComputed", function() { return deferredComputed; });
20554/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "effect", function() { return effect; });
20555/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "effectScope", function() { return effectScope; });
20556/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "enableTracking", function() { return enableTracking; });
20557/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getCurrentScope", function() { return getCurrentScope; });
20558/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "isProxy", function() { return isProxy; });
20559/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "isReactive", function() { return isReactive; });
20560/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "isReadonly", function() { return isReadonly; });
20561/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "isRef", function() { return isRef; });
20562/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "isShallow", function() { return isShallow; });
20563/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "markRaw", function() { return markRaw; });
20564/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "onScopeDispose", function() { return onScopeDispose; });
20565/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "pauseScheduling", function() { return pauseScheduling; });
20566/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "pauseTracking", function() { return pauseTracking; });
20567/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "proxyRefs", function() { return proxyRefs; });
20568/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "reactive", function() { return reactive; });
20569/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "readonly", function() { return readonly; });
20570/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "ref", function() { return ref; });
20571/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "resetScheduling", function() { return resetScheduling; });
20572/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "resetTracking", function() { return resetTracking; });
20573/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "shallowReactive", function() { return shallowReactive; });
20574/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "shallowReadonly", function() { return shallowReadonly; });
20575/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "shallowRef", function() { return shallowRef; });
20576/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "stop", function() { return stop; });
20577/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "toRaw", function() { return toRaw; });
20578/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "toRef", function() { return toRef; });
20579/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "toRefs", function() { return toRefs; });
20580/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "toValue", function() { return toValue; });
20581/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "track", function() { return track; });
20582/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "trigger", function() { return trigger; });
20583/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "triggerRef", function() { return triggerRef; });
20584/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "unref", function() { return unref; });
20585/* harmony import */ var _vue_shared__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @vue/shared */ "./node_modules/@vue/shared/dist/shared.esm-bundler.js");
20586/**
20587* @vue/reactivity v3.4.21
20588* (c) 2018-present Yuxi (Evan) You and Vue contributors
20589* @license MIT
20590**/
20591
20592
20593function warn(msg, ...args) {
20594  console.warn(`[Vue warn] ${msg}`, ...args);
20595}
20596
20597let activeEffectScope;
20598class EffectScope {
20599  constructor(detached = false) {
20600    this.detached = detached;
20601    /**
20602     * @internal
20603     */
20604    this._active = true;
20605    /**
20606     * @internal
20607     */
20608    this.effects = [];
20609    /**
20610     * @internal
20611     */
20612    this.cleanups = [];
20613    this.parent = activeEffectScope;
20614    if (!detached && activeEffectScope) {
20615      this.index = (activeEffectScope.scopes || (activeEffectScope.scopes = [])).push(
20616        this
20617      ) - 1;
20618    }
20619  }
20620  get active() {
20621    return this._active;
20622  }
20623  run(fn) {
20624    if (this._active) {
20625      const currentEffectScope = activeEffectScope;
20626      try {
20627        activeEffectScope = this;
20628        return fn();
20629      } finally {
20630        activeEffectScope = currentEffectScope;
20631      }
20632    } else if (true) {
20633      warn(`cannot run an inactive effect scope.`);
20634    }
20635  }
20636  /**
20637   * This should only be called on non-detached scopes
20638   * @internal
20639   */
20640  on() {
20641    activeEffectScope = this;
20642  }
20643  /**
20644   * This should only be called on non-detached scopes
20645   * @internal
20646   */
20647  off() {
20648    activeEffectScope = this.parent;
20649  }
20650  stop(fromParent) {
20651    if (this._active) {
20652      let i, l;
20653      for (i = 0, l = this.effects.length; i < l; i++) {
20654        this.effects[i].stop();
20655      }
20656      for (i = 0, l = this.cleanups.length; i < l; i++) {
20657        this.cleanups[i]();
20658      }
20659      if (this.scopes) {
20660        for (i = 0, l = this.scopes.length; i < l; i++) {
20661          this.scopes[i].stop(true);
20662        }
20663      }
20664      if (!this.detached && this.parent && !fromParent) {
20665        const last = this.parent.scopes.pop();
20666        if (last && last !== this) {
20667          this.parent.scopes[this.index] = last;
20668          last.index = this.index;
20669        }
20670      }
20671      this.parent = void 0;
20672      this._active = false;
20673    }
20674  }
20675}
20676function effectScope(detached) {
20677  return new EffectScope(detached);
20678}
20679function recordEffectScope(effect, scope = activeEffectScope) {
20680  if (scope && scope.active) {
20681    scope.effects.push(effect);
20682  }
20683}
20684function getCurrentScope() {
20685  return activeEffectScope;
20686}
20687function onScopeDispose(fn) {
20688  if (activeEffectScope) {
20689    activeEffectScope.cleanups.push(fn);
20690  } else if (true) {
20691    warn(
20692      `onScopeDispose() is called when there is no active effect scope to be associated with.`
20693    );
20694  }
20695}
20696
20697let activeEffect;
20698class ReactiveEffect {
20699  constructor(fn, trigger, scheduler, scope) {
20700    this.fn = fn;
20701    this.trigger = trigger;
20702    this.scheduler = scheduler;
20703    this.active = true;
20704    this.deps = [];
20705    /**
20706     * @internal
20707     */
20708    this._dirtyLevel = 4;
20709    /**
20710     * @internal
20711     */
20712    this._trackId = 0;
20713    /**
20714     * @internal
20715     */
20716    this._runnings = 0;
20717    /**
20718     * @internal
20719     */
20720    this._shouldSchedule = false;
20721    /**
20722     * @internal
20723     */
20724    this._depsLength = 0;
20725    recordEffectScope(this, scope);
20726  }
20727  get dirty() {
20728    if (this._dirtyLevel === 2 || this._dirtyLevel === 3) {
20729      this._dirtyLevel = 1;
20730      pauseTracking();
20731      for (let i = 0; i < this._depsLength; i++) {
20732        const dep = this.deps[i];
20733        if (dep.computed) {
20734          triggerComputed(dep.computed);
20735          if (this._dirtyLevel >= 4) {
20736            break;
20737          }
20738        }
20739      }
20740      if (this._dirtyLevel === 1) {
20741        this._dirtyLevel = 0;
20742      }
20743      resetTracking();
20744    }
20745    return this._dirtyLevel >= 4;
20746  }
20747  set dirty(v) {
20748    this._dirtyLevel = v ? 4 : 0;
20749  }
20750  run() {
20751    this._dirtyLevel = 0;
20752    if (!this.active) {
20753      return this.fn();
20754    }
20755    let lastShouldTrack = shouldTrack;
20756    let lastEffect = activeEffect;
20757    try {
20758      shouldTrack = true;
20759      activeEffect = this;
20760      this._runnings++;
20761      preCleanupEffect(this);
20762      return this.fn();
20763    } finally {
20764      postCleanupEffect(this);
20765      this._runnings--;
20766      activeEffect = lastEffect;
20767      shouldTrack = lastShouldTrack;
20768    }
20769  }
20770  stop() {
20771    var _a;
20772    if (this.active) {
20773      preCleanupEffect(this);
20774      postCleanupEffect(this);
20775      (_a = this.onStop) == null ? void 0 : _a.call(this);
20776      this.active = false;
20777    }
20778  }
20779}
20780function triggerComputed(computed) {
20781  return computed.value;
20782}
20783function preCleanupEffect(effect2) {
20784  effect2._trackId++;
20785  effect2._depsLength = 0;
20786}
20787function postCleanupEffect(effect2) {
20788  if (effect2.deps.length > effect2._depsLength) {
20789    for (let i = effect2._depsLength; i < effect2.deps.length; i++) {
20790      cleanupDepEffect(effect2.deps[i], effect2);
20791    }
20792    effect2.deps.length = effect2._depsLength;
20793  }
20794}
20795function cleanupDepEffect(dep, effect2) {
20796  const trackId = dep.get(effect2);
20797  if (trackId !== void 0 && effect2._trackId !== trackId) {
20798    dep.delete(effect2);
20799    if (dep.size === 0) {
20800      dep.cleanup();
20801    }
20802  }
20803}
20804function effect(fn, options) {
20805  if (fn.effect instanceof ReactiveEffect) {
20806    fn = fn.effect.fn;
20807  }
20808  const _effect = new ReactiveEffect(fn, _vue_shared__WEBPACK_IMPORTED_MODULE_0__["NOOP"], () => {
20809    if (_effect.dirty) {
20810      _effect.run();
20811    }
20812  });
20813  if (options) {
20814    Object(_vue_shared__WEBPACK_IMPORTED_MODULE_0__["extend"])(_effect, options);
20815    if (options.scope)
20816      recordEffectScope(_effect, options.scope);
20817  }
20818  if (!options || !options.lazy) {
20819    _effect.run();
20820  }
20821  const runner = _effect.run.bind(_effect);
20822  runner.effect = _effect;
20823  return runner;
20824}
20825function stop(runner) {
20826  runner.effect.stop();
20827}
20828let shouldTrack = true;
20829let pauseScheduleStack = 0;
20830const trackStack = [];
20831function pauseTracking() {
20832  trackStack.push(shouldTrack);
20833  shouldTrack = false;
20834}
20835function enableTracking() {
20836  trackStack.push(shouldTrack);
20837  shouldTrack = true;
20838}
20839function resetTracking() {
20840  const last = trackStack.pop();
20841  shouldTrack = last === void 0 ? true : last;
20842}
20843function pauseScheduling() {
20844  pauseScheduleStack++;
20845}
20846function resetScheduling() {
20847  pauseScheduleStack--;
20848  while (!pauseScheduleStack && queueEffectSchedulers.length) {
20849    queueEffectSchedulers.shift()();
20850  }
20851}
20852function trackEffect(effect2, dep, debuggerEventExtraInfo) {
20853  var _a;
20854  if (dep.get(effect2) !== effect2._trackId) {
20855    dep.set(effect2, effect2._trackId);
20856    const oldDep = effect2.deps[effect2._depsLength];
20857    if (oldDep !== dep) {
20858      if (oldDep) {
20859        cleanupDepEffect(oldDep, effect2);
20860      }
20861      effect2.deps[effect2._depsLength++] = dep;
20862    } else {
20863      effect2._depsLength++;
20864    }
20865    if (true) {
20866      (_a = effect2.onTrack) == null ? void 0 : _a.call(effect2, Object(_vue_shared__WEBPACK_IMPORTED_MODULE_0__["extend"])({ effect: effect2 }, debuggerEventExtraInfo));
20867    }
20868  }
20869}
20870const queueEffectSchedulers = [];
20871function triggerEffects(dep, dirtyLevel, debuggerEventExtraInfo) {
20872  var _a;
20873  pauseScheduling();
20874  for (const effect2 of dep.keys()) {
20875    let tracking;
20876    if (effect2._dirtyLevel < dirtyLevel && (tracking != null ? tracking : tracking = dep.get(effect2) === effect2._trackId)) {
20877      effect2._shouldSchedule || (effect2._shouldSchedule = effect2._dirtyLevel === 0);
20878      effect2._dirtyLevel = dirtyLevel;
20879    }
20880    if (effect2._shouldSchedule && (tracking != null ? tracking : tracking = dep.get(effect2) === effect2._trackId)) {
20881      if (true) {
20882        (_a = effect2.onTrigger) == null ? void 0 : _a.call(effect2, Object(_vue_shared__WEBPACK_IMPORTED_MODULE_0__["extend"])({ effect: effect2 }, debuggerEventExtraInfo));
20883      }
20884      effect2.trigger();
20885      if ((!effect2._runnings || effect2.allowRecurse) && effect2._dirtyLevel !== 2) {
20886        effect2._shouldSchedule = false;
20887        if (effect2.scheduler) {
20888          queueEffectSchedulers.push(effect2.scheduler);
20889        }
20890      }
20891    }
20892  }
20893  resetScheduling();
20894}
20895
20896const createDep = (cleanup, computed) => {
20897  const dep = /* @__PURE__ */ new Map();
20898  dep.cleanup = cleanup;
20899  dep.computed = computed;
20900  return dep;
20901};
20902
20903const targetMap = /* @__PURE__ */ new WeakMap();
20904const ITERATE_KEY = Symbol( true ? "iterate" : undefined);
20905const MAP_KEY_ITERATE_KEY = Symbol( true ? "Map key iterate" : undefined);
20906function track(target, type, key) {
20907  if (shouldTrack && activeEffect) {
20908    let depsMap = targetMap.get(target);
20909    if (!depsMap) {
20910      targetMap.set(target, depsMap = /* @__PURE__ */ new Map());
20911    }
20912    let dep = depsMap.get(key);
20913    if (!dep) {
20914      depsMap.set(key, dep = createDep(() => depsMap.delete(key)));
20915    }
20916    trackEffect(
20917      activeEffect,
20918      dep,
20919       true ? {
20920        target,
20921        type,
20922        key
20923      } : undefined
20924    );
20925  }
20926}
20927function trigger(target, type, key, newValue, oldValue, oldTarget) {
20928  const depsMap = targetMap.get(target);
20929  if (!depsMap) {
20930    return;
20931  }
20932  let deps = [];
20933  if (type === "clear") {
20934    deps = [...depsMap.values()];
20935  } else if (key === "length" && Object(_vue_shared__WEBPACK_IMPORTED_MODULE_0__["isArray"])(target)) {
20936    const newLength = Number(newValue);
20937    depsMap.forEach((dep, key2) => {
20938      if (key2 === "length" || !Object(_vue_shared__WEBPACK_IMPORTED_MODULE_0__["isSymbol"])(key2) && key2 >= newLength) {
20939        deps.push(dep);
20940      }
20941    });
20942  } else {
20943    if (key !== void 0) {
20944      deps.push(depsMap.get(key));
20945    }
20946    switch (type) {
20947      case "add":
20948        if (!Object(_vue_shared__WEBPACK_IMPORTED_MODULE_0__["isArray"])(target)) {
20949          deps.push(depsMap.get(ITERATE_KEY));
20950          if (Object(_vue_shared__WEBPACK_IMPORTED_MODULE_0__["isMap"])(target)) {
20951            deps.push(depsMap.get(MAP_KEY_ITERATE_KEY));
20952          }
20953        } else if (Object(_vue_shared__WEBPACK_IMPORTED_MODULE_0__["isIntegerKey"])(key)) {
20954          deps.push(depsMap.get("length"));
20955        }
20956        break;
20957      case "delete":
20958        if (!Object(_vue_shared__WEBPACK_IMPORTED_MODULE_0__["isArray"])(target)) {
20959          deps.push(depsMap.get(ITERATE_KEY));
20960          if (Object(_vue_shared__WEBPACK_IMPORTED_MODULE_0__["isMap"])(target)) {
20961            deps.push(depsMap.get(MAP_KEY_ITERATE_KEY));
20962          }
20963        }
20964        break;
20965      case "set":
20966        if (Object(_vue_shared__WEBPACK_IMPORTED_MODULE_0__["isMap"])(target)) {
20967          deps.push(depsMap.get(ITERATE_KEY));
20968        }
20969        break;
20970    }
20971  }
20972  pauseScheduling();
20973  for (const dep of deps) {
20974    if (dep) {
20975      triggerEffects(
20976        dep,
20977        4,
20978         true ? {
20979          target,
20980          type,
20981          key,
20982          newValue,
20983          oldValue,
20984          oldTarget
20985        } : undefined
20986      );
20987    }
20988  }
20989  resetScheduling();
20990}
20991function getDepFromReactive(object, key) {
20992  var _a;
20993  return (_a = targetMap.get(object)) == null ? void 0 : _a.get(key);
20994}
20995
20996const isNonTrackableKeys = /* @__PURE__ */ Object(_vue_shared__WEBPACK_IMPORTED_MODULE_0__["makeMap"])(`__proto__,__v_isRef,__isVue`);
20997const builtInSymbols = new Set(
20998  /* @__PURE__ */ Object.getOwnPropertyNames(Symbol).filter((key) => key !== "arguments" && key !== "caller").map((key) => Symbol[key]).filter(_vue_shared__WEBPACK_IMPORTED_MODULE_0__["isSymbol"])
20999);
21000const arrayInstrumentations = /* @__PURE__ */ createArrayInstrumentations();
21001function createArrayInstrumentations() {
21002  const instrumentations = {};
21003  ["includes", "indexOf", "lastIndexOf"].forEach((key) => {
21004    instrumentations[key] = function(...args) {
21005      const arr = toRaw(this);
21006      for (let i = 0, l = this.length; i < l; i++) {
21007        track(arr, "get", i + "");
21008      }
21009      const res = arr[key](...args);
21010      if (res === -1 || res === false) {
21011        return arr[key](...args.map(toRaw));
21012      } else {
21013        return res;
21014      }
21015    };
21016  });
21017  ["push", "pop", "shift", "unshift", "splice"].forEach((key) => {
21018    instrumentations[key] = function(...args) {
21019      pauseTracking();
21020      pauseScheduling();
21021      const res = toRaw(this)[key].apply(this, args);
21022      resetScheduling();
21023      resetTracking();
21024      return res;
21025    };
21026  });
21027  return instrumentations;
21028}
21029function hasOwnProperty(key) {
21030  const obj = toRaw(this);
21031  track(obj, "has", key);
21032  return obj.hasOwnProperty(key);
21033}
21034class BaseReactiveHandler {
21035  constructor(_isReadonly = false, _isShallow = false) {
21036    this._isReadonly = _isReadonly;
21037    this._isShallow = _isShallow;
21038  }
21039  get(target, key, receiver) {
21040    const isReadonly2 = this._isReadonly, isShallow2 = this._isShallow;
21041    if (key === "__v_isReactive") {
21042      return !isReadonly2;
21043    } else if (key === "__v_isReadonly") {
21044      return isReadonly2;
21045    } else if (key === "__v_isShallow") {
21046      return isShallow2;
21047    } else if (key === "__v_raw") {
21048      if (receiver === (isReadonly2 ? isShallow2 ? shallowReadonlyMap : readonlyMap : isShallow2 ? shallowReactiveMap : reactiveMap).get(target) || // receiver is not the reactive proxy, but has the same prototype
21049      // this means the reciever is a user proxy of the reactive proxy
21050      Object.getPrototypeOf(target) === Object.getPrototypeOf(receiver)) {
21051        return target;
21052      }
21053      return;
21054    }
21055    const targetIsArray = Object(_vue_shared__WEBPACK_IMPORTED_MODULE_0__["isArray"])(target);
21056    if (!isReadonly2) {
21057      if (targetIsArray && Object(_vue_shared__WEBPACK_IMPORTED_MODULE_0__["hasOwn"])(arrayInstrumentations, key)) {
21058        return Reflect.get(arrayInstrumentations, key, receiver);
21059      }
21060      if (key === "hasOwnProperty") {
21061        return hasOwnProperty;
21062      }
21063    }
21064    const res = Reflect.get(target, key, receiver);
21065    if (Object(_vue_shared__WEBPACK_IMPORTED_MODULE_0__["isSymbol"])(key) ? builtInSymbols.has(key) : isNonTrackableKeys(key)) {
21066      return res;
21067    }
21068    if (!isReadonly2) {
21069      track(target, "get", key);
21070    }
21071    if (isShallow2) {
21072      return res;
21073    }
21074    if (isRef(res)) {
21075      return targetIsArray && Object(_vue_shared__WEBPACK_IMPORTED_MODULE_0__["isIntegerKey"])(key) ? res : res.value;
21076    }
21077    if (Object(_vue_shared__WEBPACK_IMPORTED_MODULE_0__["isObject"])(res)) {
21078      return isReadonly2 ? readonly(res) : reactive(res);
21079    }
21080    return res;
21081  }
21082}
21083class MutableReactiveHandler extends BaseReactiveHandler {
21084  constructor(isShallow2 = false) {
21085    super(false, isShallow2);
21086  }
21087  set(target, key, value, receiver) {
21088    let oldValue = target[key];
21089    if (!this._isShallow) {
21090      const isOldValueReadonly = isReadonly(oldValue);
21091      if (!isShallow(value) && !isReadonly(value)) {
21092        oldValue = toRaw(oldValue);
21093        value = toRaw(value);
21094      }
21095      if (!Object(_vue_shared__WEBPACK_IMPORTED_MODULE_0__["isArray"])(target) && isRef(oldValue) && !isRef(value)) {
21096        if (isOldValueReadonly) {
21097          return false;
21098        } else {
21099          oldValue.value = value;
21100          return true;
21101        }
21102      }
21103    }
21104    const hadKey = Object(_vue_shared__WEBPACK_IMPORTED_MODULE_0__["isArray"])(target) && Object(_vue_shared__WEBPACK_IMPORTED_MODULE_0__["isIntegerKey"])(key) ? Number(key) < target.length : Object(_vue_shared__WEBPACK_IMPORTED_MODULE_0__["hasOwn"])(target, key);
21105    const result = Reflect.set(target, key, value, receiver);
21106    if (target === toRaw(receiver)) {
21107      if (!hadKey) {
21108        trigger(target, "add", key, value);
21109      } else if (Object(_vue_shared__WEBPACK_IMPORTED_MODULE_0__["hasChanged"])(value, oldValue)) {
21110        trigger(target, "set", key, value, oldValue);
21111      }
21112    }
21113    return result;
21114  }
21115  deleteProperty(target, key) {
21116    const hadKey = Object(_vue_shared__WEBPACK_IMPORTED_MODULE_0__["hasOwn"])(target, key);
21117    const oldValue = target[key];
21118    const result = Reflect.deleteProperty(target, key);
21119    if (result && hadKey) {
21120      trigger(target, "delete", key, void 0, oldValue);
21121    }
21122    return result;
21123  }
21124  has(target, key) {
21125    const result = Reflect.has(target, key);
21126    if (!Object(_vue_shared__WEBPACK_IMPORTED_MODULE_0__["isSymbol"])(key) || !builtInSymbols.has(key)) {
21127      track(target, "has", key);
21128    }
21129    return result;
21130  }
21131  ownKeys(target) {
21132    track(
21133      target,
21134      "iterate",
21135      Object(_vue_shared__WEBPACK_IMPORTED_MODULE_0__["isArray"])(target) ? "length" : ITERATE_KEY
21136    );
21137    return Reflect.ownKeys(target);
21138  }
21139}
21140class ReadonlyReactiveHandler extends BaseReactiveHandler {
21141  constructor(isShallow2 = false) {
21142    super(true, isShallow2);
21143  }
21144  set(target, key) {
21145    if (true) {
21146      warn(
21147        `Set operation on key "${String(key)}" failed: target is readonly.`,
21148        target
21149      );
21150    }
21151    return true;
21152  }
21153  deleteProperty(target, key) {
21154    if (true) {
21155      warn(
21156        `Delete operation on key "${String(key)}" failed: target is readonly.`,
21157        target
21158      );
21159    }
21160    return true;
21161  }
21162}
21163const mutableHandlers = /* @__PURE__ */ new MutableReactiveHandler();
21164const readonlyHandlers = /* @__PURE__ */ new ReadonlyReactiveHandler();
21165const shallowReactiveHandlers = /* @__PURE__ */ new MutableReactiveHandler(
21166  true
21167);
21168const shallowReadonlyHandlers = /* @__PURE__ */ new ReadonlyReactiveHandler(true);
21169
21170const toShallow = (value) => value;
21171const getProto = (v) => Reflect.getPrototypeOf(v);
21172function get(target, key, isReadonly = false, isShallow = false) {
21173  target = target["__v_raw"];
21174  const rawTarget = toRaw(target);
21175  const rawKey = toRaw(key);
21176  if (!isReadonly) {
21177    if (Object(_vue_shared__WEBPACK_IMPORTED_MODULE_0__["hasChanged"])(key, rawKey)) {
21178      track(rawTarget, "get", key);
21179    }
21180    track(rawTarget, "get", rawKey);
21181  }
21182  const { has: has2 } = getProto(rawTarget);
21183  const wrap = isShallow ? toShallow : isReadonly ? toReadonly : toReactive;
21184  if (has2.call(rawTarget, key)) {
21185    return wrap(target.get(key));
21186  } else if (has2.call(rawTarget, rawKey)) {
21187    return wrap(target.get(rawKey));
21188  } else if (target !== rawTarget) {
21189    target.get(key);
21190  }
21191}
21192function has(key, isReadonly = false) {
21193  const target = this["__v_raw"];
21194  const rawTarget = toRaw(target);
21195  const rawKey = toRaw(key);
21196  if (!isReadonly) {
21197    if (Object(_vue_shared__WEBPACK_IMPORTED_MODULE_0__["hasChanged"])(key, rawKey)) {
21198      track(rawTarget, "has", key);
21199    }
21200    track(rawTarget, "has", rawKey);
21201  }
21202  return key === rawKey ? target.has(key) : target.has(key) || target.has(rawKey);
21203}
21204function size(target, isReadonly = false) {
21205  target = target["__v_raw"];
21206  !isReadonly && track(toRaw(target), "iterate", ITERATE_KEY);
21207  return Reflect.get(target, "size", target);
21208}
21209function add(value) {
21210  value = toRaw(value);
21211  const target = toRaw(this);
21212  const proto = getProto(target);
21213  const hadKey = proto.has.call(target, value);
21214  if (!hadKey) {
21215    target.add(value);
21216    trigger(target, "add", value, value);
21217  }
21218  return this;
21219}
21220function set(key, value) {
21221  value = toRaw(value);
21222  const target = toRaw(this);
21223  const { has: has2, get: get2 } = getProto(target);
21224  let hadKey = has2.call(target, key);
21225  if (!hadKey) {
21226    key = toRaw(key);
21227    hadKey = has2.call(target, key);
21228  } else if (true) {
21229    checkIdentityKeys(target, has2, key);
21230  }
21231  const oldValue = get2.call(target, key);
21232  target.set(key, value);
21233  if (!hadKey) {
21234    trigger(target, "add", key, value);
21235  } else if (Object(_vue_shared__WEBPACK_IMPORTED_MODULE_0__["hasChanged"])(value, oldValue)) {
21236    trigger(target, "set", key, value, oldValue);
21237  }
21238  return this;
21239}
21240function deleteEntry(key) {
21241  const target = toRaw(this);
21242  const { has: has2, get: get2 } = getProto(target);
21243  let hadKey = has2.call(target, key);
21244  if (!hadKey) {
21245    key = toRaw(key);
21246    hadKey = has2.call(target, key);
21247  } else if (true) {
21248    checkIdentityKeys(target, has2, key);
21249  }
21250  const oldValue = get2 ? get2.call(target, key) : void 0;
21251  const result = target.delete(key);
21252  if (hadKey) {
21253    trigger(target, "delete", key, void 0, oldValue);
21254  }
21255  return result;
21256}
21257function clear() {
21258  const target = toRaw(this);
21259  const hadItems = target.size !== 0;
21260  const oldTarget =  true ? Object(_vue_shared__WEBPACK_IMPORTED_MODULE_0__["isMap"])(target) ? new Map(target) : new Set(target) : undefined;
21261  const result = target.clear();
21262  if (hadItems) {
21263    trigger(target, "clear", void 0, void 0, oldTarget);
21264  }
21265  return result;
21266}
21267function createForEach(isReadonly, isShallow) {
21268  return function forEach(callback, thisArg) {
21269    const observed = this;
21270    const target = observed["__v_raw"];
21271    const rawTarget = toRaw(target);
21272    const wrap = isShallow ? toShallow : isReadonly ? toReadonly : toReactive;
21273    !isReadonly && track(rawTarget, "iterate", ITERATE_KEY);
21274    return target.forEach((value, key) => {
21275      return callback.call(thisArg, wrap(value), wrap(key), observed);
21276    });
21277  };
21278}
21279function createIterableMethod(method, isReadonly, isShallow) {
21280  return function(...args) {
21281    const target = this["__v_raw"];
21282    const rawTarget = toRaw(target);
21283    const targetIsMap = Object(_vue_shared__WEBPACK_IMPORTED_MODULE_0__["isMap"])(rawTarget);
21284    const isPair = method === "entries" || method === Symbol.iterator && targetIsMap;
21285    const isKeyOnly = method === "keys" && targetIsMap;
21286    const innerIterator = target[method](...args);
21287    const wrap = isShallow ? toShallow : isReadonly ? toReadonly : toReactive;
21288    !isReadonly && track(
21289      rawTarget,
21290      "iterate",
21291      isKeyOnly ? MAP_KEY_ITERATE_KEY : ITERATE_KEY
21292    );
21293    return {
21294      // iterator protocol
21295      next() {
21296        const { value, done } = innerIterator.next();
21297        return done ? { value, done } : {
21298          value: isPair ? [wrap(value[0]), wrap(value[1])] : wrap(value),
21299          done
21300        };
21301      },
21302      // iterable protocol
21303      [Symbol.iterator]() {
21304        return this;
21305      }
21306    };
21307  };
21308}
21309function createReadonlyMethod(type) {
21310  return function(...args) {
21311    if (true) {
21312      const key = args[0] ? `on key "${args[0]}" ` : ``;
21313      warn(
21314        `${Object(_vue_shared__WEBPACK_IMPORTED_MODULE_0__["capitalize"])(type)} operation ${key}failed: target is readonly.`,
21315        toRaw(this)
21316      );
21317    }
21318    return type === "delete" ? false : type === "clear" ? void 0 : this;
21319  };
21320}
21321function createInstrumentations() {
21322  const mutableInstrumentations2 = {
21323    get(key) {
21324      return get(this, key);
21325    },
21326    get size() {
21327      return size(this);
21328    },
21329    has,
21330    add,
21331    set,
21332    delete: deleteEntry,
21333    clear,
21334    forEach: createForEach(false, false)
21335  };
21336  const shallowInstrumentations2 = {
21337    get(key) {
21338      return get(this, key, false, true);
21339    },
21340    get size() {
21341      return size(this);
21342    },
21343    has,
21344    add,
21345    set,
21346    delete: deleteEntry,
21347    clear,
21348    forEach: createForEach(false, true)
21349  };
21350  const readonlyInstrumentations2 = {
21351    get(key) {
21352      return get(this, key, true);
21353    },
21354    get size() {
21355      return size(this, true);
21356    },
21357    has(key) {
21358      return has.call(this, key, true);
21359    },
21360    add: createReadonlyMethod("add"),
21361    set: createReadonlyMethod("set"),
21362    delete: createReadonlyMethod("delete"),
21363    clear: createReadonlyMethod("clear"),
21364    forEach: createForEach(true, false)
21365  };
21366  const shallowReadonlyInstrumentations2 = {
21367    get(key) {
21368      return get(this, key, true, true);
21369    },
21370    get size() {
21371      return size(this, true);
21372    },
21373    has(key) {
21374      return has.call(this, key, true);
21375    },
21376    add: createReadonlyMethod("add"),
21377    set: createReadonlyMethod("set"),
21378    delete: createReadonlyMethod("delete"),
21379    clear: createReadonlyMethod("clear"),
21380    forEach: createForEach(true, true)
21381  };
21382  const iteratorMethods = ["keys", "values", "entries", Symbol.iterator];
21383  iteratorMethods.forEach((method) => {
21384    mutableInstrumentations2[method] = createIterableMethod(
21385      method,
21386      false,
21387      false
21388    );
21389    readonlyInstrumentations2[method] = createIterableMethod(
21390      method,
21391      true,
21392      false
21393    );
21394    shallowInstrumentations2[method] = createIterableMethod(
21395      method,
21396      false,
21397      true
21398    );
21399    shallowReadonlyInstrumentations2[method] = createIterableMethod(
21400      method,
21401      true,
21402      true
21403    );
21404  });
21405  return [
21406    mutableInstrumentations2,
21407    readonlyInstrumentations2,
21408    shallowInstrumentations2,
21409    shallowReadonlyInstrumentations2
21410  ];
21411}
21412const [
21413  mutableInstrumentations,
21414  readonlyInstrumentations,
21415  shallowInstrumentations,
21416  shallowReadonlyInstrumentations
21417] = /* @__PURE__ */ createInstrumentations();
21418function createInstrumentationGetter(isReadonly, shallow) {
21419  const instrumentations = shallow ? isReadonly ? shallowReadonlyInstrumentations : shallowInstrumentations : isReadonly ? readonlyInstrumentations : mutableInstrumentations;
21420  return (target, key, receiver) => {
21421    if (key === "__v_isReactive") {
21422      return !isReadonly;
21423    } else if (key === "__v_isReadonly") {
21424      return isReadonly;
21425    } else if (key === "__v_raw") {
21426      return target;
21427    }
21428    return Reflect.get(
21429      Object(_vue_shared__WEBPACK_IMPORTED_MODULE_0__["hasOwn"])(instrumentations, key) && key in target ? instrumentations : target,
21430      key,
21431      receiver
21432    );
21433  };
21434}
21435const mutableCollectionHandlers = {
21436  get: /* @__PURE__ */ createInstrumentationGetter(false, false)
21437};
21438const shallowCollectionHandlers = {
21439  get: /* @__PURE__ */ createInstrumentationGetter(false, true)
21440};
21441const readonlyCollectionHandlers = {
21442  get: /* @__PURE__ */ createInstrumentationGetter(true, false)
21443};
21444const shallowReadonlyCollectionHandlers = {
21445  get: /* @__PURE__ */ createInstrumentationGetter(true, true)
21446};
21447function checkIdentityKeys(target, has2, key) {
21448  const rawKey = toRaw(key);
21449  if (rawKey !== key && has2.call(target, rawKey)) {
21450    const type = Object(_vue_shared__WEBPACK_IMPORTED_MODULE_0__["toRawType"])(target);
21451    warn(
21452      `Reactive ${type} contains both the raw and reactive versions of the same object${type === `Map` ? ` as keys` : ``}, which can lead to inconsistencies. Avoid differentiating between the raw and reactive versions of an object and only use the reactive version if possible.`
21453    );
21454  }
21455}
21456
21457const reactiveMap = /* @__PURE__ */ new WeakMap();
21458const shallowReactiveMap = /* @__PURE__ */ new WeakMap();
21459const readonlyMap = /* @__PURE__ */ new WeakMap();
21460const shallowReadonlyMap = /* @__PURE__ */ new WeakMap();
21461function targetTypeMap(rawType) {
21462  switch (rawType) {
21463    case "Object":
21464    case "Array":
21465      return 1 /* COMMON */;
21466    case "Map":
21467    case "Set":
21468    case "WeakMap":
21469    case "WeakSet":
21470      return 2 /* COLLECTION */;
21471    default:
21472      return 0 /* INVALID */;
21473  }
21474}
21475function getTargetType(value) {
21476  return value["__v_skip"] || !Object.isExtensible(value) ? 0 /* INVALID */ : targetTypeMap(Object(_vue_shared__WEBPACK_IMPORTED_MODULE_0__["toRawType"])(value));
21477}
21478function reactive(target) {
21479  if (isReadonly(target)) {
21480    return target;
21481  }
21482  return createReactiveObject(
21483    target,
21484    false,
21485    mutableHandlers,
21486    mutableCollectionHandlers,
21487    reactiveMap
21488  );
21489}
21490function shallowReactive(target) {
21491  return createReactiveObject(
21492    target,
21493    false,
21494    shallowReactiveHandlers,
21495    shallowCollectionHandlers,
21496    shallowReactiveMap
21497  );
21498}
21499function readonly(target) {
21500  return createReactiveObject(
21501    target,
21502    true,
21503    readonlyHandlers,
21504    readonlyCollectionHandlers,
21505    readonlyMap
21506  );
21507}
21508function shallowReadonly(target) {
21509  return createReactiveObject(
21510    target,
21511    true,
21512    shallowReadonlyHandlers,
21513    shallowReadonlyCollectionHandlers,
21514    shallowReadonlyMap
21515  );
21516}
21517function createReactiveObject(target, isReadonly2, baseHandlers, collectionHandlers, proxyMap) {
21518  if (!Object(_vue_shared__WEBPACK_IMPORTED_MODULE_0__["isObject"])(target)) {
21519    if (true) {
21520      warn(`value cannot be made reactive: ${String(target)}`);
21521    }
21522    return target;
21523  }
21524  if (target["__v_raw"] && !(isReadonly2 && target["__v_isReactive"])) {
21525    return target;
21526  }
21527  const existingProxy = proxyMap.get(target);
21528  if (existingProxy) {
21529    return existingProxy;
21530  }
21531  const targetType = getTargetType(target);
21532  if (targetType === 0 /* INVALID */) {
21533    return target;
21534  }
21535  const proxy = new Proxy(
21536    target,
21537    targetType === 2 /* COLLECTION */ ? collectionHandlers : baseHandlers
21538  );
21539  proxyMap.set(target, proxy);
21540  return proxy;
21541}
21542function isReactive(value) {
21543  if (isReadonly(value)) {
21544    return isReactive(value["__v_raw"]);
21545  }
21546  return !!(value && value["__v_isReactive"]);
21547}
21548function isReadonly(value) {
21549  return !!(value && value["__v_isReadonly"]);
21550}
21551function isShallow(value) {
21552  return !!(value && value["__v_isShallow"]);
21553}
21554function isProxy(value) {
21555  return isReactive(value) || isReadonly(value);
21556}
21557function toRaw(observed) {
21558  const raw = observed && observed["__v_raw"];
21559  return raw ? toRaw(raw) : observed;
21560}
21561function markRaw(value) {
21562  if (Object.isExtensible(value)) {
21563    Object(_vue_shared__WEBPACK_IMPORTED_MODULE_0__["def"])(value, "__v_skip", true);
21564  }
21565  return value;
21566}
21567const toReactive = (value) => Object(_vue_shared__WEBPACK_IMPORTED_MODULE_0__["isObject"])(value) ? reactive(value) : value;
21568const toReadonly = (value) => Object(_vue_shared__WEBPACK_IMPORTED_MODULE_0__["isObject"])(value) ? readonly(value) : value;
21569
21570const COMPUTED_SIDE_EFFECT_WARN = `Computed is still dirty after getter evaluation, likely because a computed is mutating its own dependency in its getter. State mutations in computed getters should be avoided.  Check the docs for more details: https://vuejs.org/guide/essentials/computed.html#getters-should-be-side-effect-free`;
21571class ComputedRefImpl {
21572  constructor(getter, _setter, isReadonly, isSSR) {
21573    this.getter = getter;
21574    this._setter = _setter;
21575    this.dep = void 0;
21576    this.__v_isRef = true;
21577    this["__v_isReadonly"] = false;
21578    this.effect = new ReactiveEffect(
21579      () => getter(this._value),
21580      () => triggerRefValue(
21581        this,
21582        this.effect._dirtyLevel === 2 ? 2 : 3
21583      )
21584    );
21585    this.effect.computed = this;
21586    this.effect.active = this._cacheable = !isSSR;
21587    this["__v_isReadonly"] = isReadonly;
21588  }
21589  get value() {
21590    const self = toRaw(this);
21591    if ((!self._cacheable || self.effect.dirty) && Object(_vue_shared__WEBPACK_IMPORTED_MODULE_0__["hasChanged"])(self._value, self._value = self.effect.run())) {
21592      triggerRefValue(self, 4);
21593    }
21594    trackRefValue(self);
21595    if (self.effect._dirtyLevel >= 2) {
21596      if ( true && this._warnRecursive) {
21597        warn(COMPUTED_SIDE_EFFECT_WARN, `
21598
21599getter: `, this.getter);
21600      }
21601      triggerRefValue(self, 2);
21602    }
21603    return self._value;
21604  }
21605  set value(newValue) {
21606    this._setter(newValue);
21607  }
21608  // #region polyfill _dirty for backward compatibility third party code for Vue <= 3.3.x
21609  get _dirty() {
21610    return this.effect.dirty;
21611  }
21612  set _dirty(v) {
21613    this.effect.dirty = v;
21614  }
21615  // #endregion
21616}
21617function computed(getterOrOptions, debugOptions, isSSR = false) {
21618  let getter;
21619  let setter;
21620  const onlyGetter = Object(_vue_shared__WEBPACK_IMPORTED_MODULE_0__["isFunction"])(getterOrOptions);
21621  if (onlyGetter) {
21622    getter = getterOrOptions;
21623    setter =  true ? () => {
21624      warn("Write operation failed: computed value is readonly");
21625    } : undefined;
21626  } else {
21627    getter = getterOrOptions.get;
21628    setter = getterOrOptions.set;
21629  }
21630  const cRef = new ComputedRefImpl(getter, setter, onlyGetter || !setter, isSSR);
21631  if ( true && debugOptions && !isSSR) {
21632    cRef.effect.onTrack = debugOptions.onTrack;
21633    cRef.effect.onTrigger = debugOptions.onTrigger;
21634  }
21635  return cRef;
21636}
21637
21638function trackRefValue(ref2) {
21639  var _a;
21640  if (shouldTrack && activeEffect) {
21641    ref2 = toRaw(ref2);
21642    trackEffect(
21643      activeEffect,
21644      (_a = ref2.dep) != null ? _a : ref2.dep = createDep(
21645        () => ref2.dep = void 0,
21646        ref2 instanceof ComputedRefImpl ? ref2 : void 0
21647      ),
21648       true ? {
21649        target: ref2,
21650        type: "get",
21651        key: "value"
21652      } : undefined
21653    );
21654  }
21655}
21656function triggerRefValue(ref2, dirtyLevel = 4, newVal) {
21657  ref2 = toRaw(ref2);
21658  const dep = ref2.dep;
21659  if (dep) {
21660    triggerEffects(
21661      dep,
21662      dirtyLevel,
21663       true ? {
21664        target: ref2,
21665        type: "set",
21666        key: "value",
21667        newValue: newVal
21668      } : undefined
21669    );
21670  }
21671}
21672function isRef(r) {
21673  return !!(r && r.__v_isRef === true);
21674}
21675function ref(value) {
21676  return createRef(value, false);
21677}
21678function shallowRef(value) {
21679  return createRef(value, true);
21680}
21681function createRef(rawValue, shallow) {
21682  if (isRef(rawValue)) {
21683    return rawValue;
21684  }
21685  return new RefImpl(rawValue, shallow);
21686}
21687class RefImpl {
21688  constructor(value, __v_isShallow) {
21689    this.__v_isShallow = __v_isShallow;
21690    this.dep = void 0;
21691    this.__v_isRef = true;
21692    this._rawValue = __v_isShallow ? value : toRaw(value);
21693    this._value = __v_isShallow ? value : toReactive(value);
21694  }
21695  get value() {
21696    trackRefValue(this);
21697    return this._value;
21698  }
21699  set value(newVal) {
21700    const useDirectValue = this.__v_isShallow || isShallow(newVal) || isReadonly(newVal);
21701    newVal = useDirectValue ? newVal : toRaw(newVal);
21702    if (Object(_vue_shared__WEBPACK_IMPORTED_MODULE_0__["hasChanged"])(newVal, this._rawValue)) {
21703      this._rawValue = newVal;
21704      this._value = useDirectValue ? newVal : toReactive(newVal);
21705      triggerRefValue(this, 4, newVal);
21706    }
21707  }
21708}
21709function triggerRef(ref2) {
21710  triggerRefValue(ref2, 4,  true ? ref2.value : undefined);
21711}
21712function unref(ref2) {
21713  return isRef(ref2) ? ref2.value : ref2;
21714}
21715function toValue(source) {
21716  return Object(_vue_shared__WEBPACK_IMPORTED_MODULE_0__["isFunction"])(source) ? source() : unref(source);
21717}
21718const shallowUnwrapHandlers = {
21719  get: (target, key, receiver) => unref(Reflect.get(target, key, receiver)),
21720  set: (target, key, value, receiver) => {
21721    const oldValue = target[key];
21722    if (isRef(oldValue) && !isRef(value)) {
21723      oldValue.value = value;
21724      return true;
21725    } else {
21726      return Reflect.set(target, key, value, receiver);
21727    }
21728  }
21729};
21730function proxyRefs(objectWithRefs) {
21731  return isReactive(objectWithRefs) ? objectWithRefs : new Proxy(objectWithRefs, shallowUnwrapHandlers);
21732}
21733class CustomRefImpl {
21734  constructor(factory) {
21735    this.dep = void 0;
21736    this.__v_isRef = true;
21737    const { get, set } = factory(
21738      () => trackRefValue(this),
21739      () => triggerRefValue(this)
21740    );
21741    this._get = get;
21742    this._set = set;
21743  }
21744  get value() {
21745    return this._get();
21746  }
21747  set value(newVal) {
21748    this._set(newVal);
21749  }
21750}
21751function customRef(factory) {
21752  return new CustomRefImpl(factory);
21753}
21754function toRefs(object) {
21755  if ( true && !isProxy(object)) {
21756    warn(`toRefs() expects a reactive object but received a plain one.`);
21757  }
21758  const ret = Object(_vue_shared__WEBPACK_IMPORTED_MODULE_0__["isArray"])(object) ? new Array(object.length) : {};
21759  for (const key in object) {
21760    ret[key] = propertyToRef(object, key);
21761  }
21762  return ret;
21763}
21764class ObjectRefImpl {
21765  constructor(_object, _key, _defaultValue) {
21766    this._object = _object;
21767    this._key = _key;
21768    this._defaultValue = _defaultValue;
21769    this.__v_isRef = true;
21770  }
21771  get value() {
21772    const val = this._object[this._key];
21773    return val === void 0 ? this._defaultValue : val;
21774  }
21775  set value(newVal) {
21776    this._object[this._key] = newVal;
21777  }
21778  get dep() {
21779    return getDepFromReactive(toRaw(this._object), this._key);
21780  }
21781}
21782class GetterRefImpl {
21783  constructor(_getter) {
21784    this._getter = _getter;
21785    this.__v_isRef = true;
21786    this.__v_isReadonly = true;
21787  }
21788  get value() {
21789    return this._getter();
21790  }
21791}
21792function toRef(source, key, defaultValue) {
21793  if (isRef(source)) {
21794    return source;
21795  } else if (Object(_vue_shared__WEBPACK_IMPORTED_MODULE_0__["isFunction"])(source)) {
21796    return new GetterRefImpl(source);
21797  } else if (Object(_vue_shared__WEBPACK_IMPORTED_MODULE_0__["isObject"])(source) && arguments.length > 1) {
21798    return propertyToRef(source, key, defaultValue);
21799  } else {
21800    return ref(source);
21801  }
21802}
21803function propertyToRef(source, key, defaultValue) {
21804  const val = source[key];
21805  return isRef(val) ? val : new ObjectRefImpl(source, key, defaultValue);
21806}
21807
21808const deferredComputed = computed;
21809
21810const TrackOpTypes = {
21811  "GET": "get",
21812  "HAS": "has",
21813  "ITERATE": "iterate"
21814};
21815const TriggerOpTypes = {
21816  "SET": "set",
21817  "ADD": "add",
21818  "DELETE": "delete",
21819  "CLEAR": "clear"
21820};
21821const ReactiveFlags = {
21822  "SKIP": "__v_skip",
21823  "IS_REACTIVE": "__v_isReactive",
21824  "IS_READONLY": "__v_isReadonly",
21825  "IS_SHALLOW": "__v_isShallow",
21826  "RAW": "__v_raw"
21827};
21828
21829
21830
21831
21832/***/ }),
21833
vendor: 280,326 bytes, lines 21834-30137
21834/***/ "./node_modules/@vue/runtime-core/dist/runtime-core.esm-bundler.js":
21835/*!*************************************************************************!*\
21836  !*** ./node_modules/@vue/runtime-core/dist/runtime-core.esm-bundler.js ***!
21837  \*************************************************************************/
21838/*! exports provided: EffectScope, ReactiveEffect, TrackOpTypes, TriggerOpTypes, customRef, effect, effectScope, getCurrentScope, isProxy, isReactive, isReadonly, isRef, isShallow, markRaw, onScopeDispose, proxyRefs, reactive, readonly, ref, shallowReactive, shallowReadonly, shallowRef, stop, toRaw, toRef, toRefs, toValue, triggerRef, unref, camelize, capitalize, normalizeClass, normalizeProps, normalizeStyle, toDisplayString, toHandlerKey, BaseTransition, BaseTransitionPropsValidators, Comment, DeprecationTypes, ErrorCodes, ErrorTypeStrings, Fragment, KeepAlive, Static, Suspense, Teleport, Text, assertNumber, callWithAsyncErrorHandling, callWithErrorHandling, cloneVNode, compatUtils, computed, createBlock, createCommentVNode, createElementBlock, createElementVNode, createHydrationRenderer, createPropsRestProxy, createRenderer, createSlots, createStaticVNode, createTextVNode, createVNode, defineAsyncComponent, defineComponent, defineEmits, defineExpose, defineModel, defineOptions, defineProps, defineSlots, devtools, getCurrentInstance, getTransitionRawChildren, guardReactiveProps, h, handleError, hasInjectionContext, initCustomFormatter, inject, isMemoSame, isRuntimeOnly, isVNode, mergeDefaults, mergeModels, mergeProps, nextTick, onActivated, onBeforeMount, onBeforeUnmount, onBeforeUpdate, onDeactivated, onErrorCaptured, onMounted, onRenderTracked, onRenderTriggered, onServerPrefetch, onUnmounted, onUpdated, openBlock, popScopeId, provide, pushScopeId, queuePostFlushCb, registerRuntimeCompiler, renderList, renderSlot, resolveComponent, resolveDirective, resolveDynamicComponent, resolveFilter, resolveTransitionHooks, setBlockTracking, setDevtoolsHook, setTransitionHooks, ssrContextKey, ssrUtils, toHandlers, transformVNodeArgs, useAttrs, useModel, useSSRContext, useSlots, useTransitionState, version, warn, watch, watchEffect, watchPostEffect, watchSyncEffect, withAsyncContext, withCtx, withDefaults, withDirectives, withMemo, withScopeId */
21839/***/ (function(module, __webpack_exports__, __webpack_require__) {
21840
21841"use strict";
21842__webpack_require__.r(__webpack_exports__);
21843/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "BaseTransition", function() { return BaseTransition; });
21844/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "BaseTransitionPropsValidators", function() { return BaseTransitionPropsValidators; });
21845/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "Comment", function() { return Comment; });
21846/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "DeprecationTypes", function() { return DeprecationTypes; });
21847/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "ErrorCodes", function() { return ErrorCodes; });
21848/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "ErrorTypeStrings", function() { return ErrorTypeStrings; });
21849/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "Fragment", function() { return Fragment; });
21850/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "KeepAlive", function() { return KeepAlive; });
21851/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "Static", function() { return Static; });
21852/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "Suspense", function() { return Suspense; });
21853/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "Teleport", function() { return Teleport; });
21854/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "Text", function() { return Text; });
21855/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "assertNumber", function() { return assertNumber; });
21856/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "callWithAsyncErrorHandling", function() { return callWithAsyncErrorHandling; });
21857/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "callWithErrorHandling", function() { return callWithErrorHandling; });
21858/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "cloneVNode", function() { return cloneVNode; });
21859/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "compatUtils", function() { return compatUtils; });
21860/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "computed", function() { return computed; });
21861/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "createBlock", function() { return createBlock; });
21862/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "createCommentVNode", function() { return createCommentVNode; });
21863/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "createElementBlock", function() { return createElementBlock; });
21864/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "createElementVNode", function() { return createBaseVNode; });
21865/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "createHydrationRenderer", function() { return createHydrationRenderer; });
21866/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "createPropsRestProxy", function() { return createPropsRestProxy; });
21867/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "createRenderer", function() { return createRenderer; });
21868/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "createSlots", function() { return createSlots; });
21869/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "createStaticVNode", function() { return createStaticVNode; });
21870/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "createTextVNode", function() { return createTextVNode; });
21871/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "createVNode", function() { return createVNode; });
21872/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "defineAsyncComponent", function() { return defineAsyncComponent; });
21873/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "defineComponent", function() { return defineComponent; });
21874/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "defineEmits", function() { return defineEmits; });
21875/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "defineExpose", function() { return defineExpose; });
21876/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "defineModel", function() { return defineModel; });
21877/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "defineOptions", function() { return defineOptions; });
21878/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "defineProps", function() { return defineProps; });
21879/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "defineSlots", function() { return defineSlots; });
21880/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "devtools", function() { return devtools; });
21881/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getCurrentInstance", function() { return getCurrentInstance; });
21882/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getTransitionRawChildren", function() { return getTransitionRawChildren; });
21883/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "guardReactiveProps", function() { return guardReactiveProps; });
21884/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "h", function() { return h; });
21885/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "handleError", function() { return handleError; });
21886/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "hasInjectionContext", function() { return hasInjectionContext; });
21887/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "initCustomFormatter", function() { return initCustomFormatter; });
21888/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "inject", function() { return inject; });
21889/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "isMemoSame", function() { return isMemoSame; });
21890/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "isRuntimeOnly", function() { return isRuntimeOnly; });
21891/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "isVNode", function() { return isVNode; });
21892/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "mergeDefaults", function() { return mergeDefaults; });
21893/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "mergeModels", function() { return mergeModels; });
21894/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "mergeProps", function() { return mergeProps; });
21895/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "nextTick", function() { return nextTick; });
21896/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "onActivated", function() { return onActivated; });
21897/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "onBeforeMount", function() { return onBeforeMount; });
21898/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "onBeforeUnmount", function() { return onBeforeUnmount; });
21899/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "onBeforeUpdate", function() { return onBeforeUpdate; });
21900/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "onDeactivated", function() { return onDeactivated; });
21901/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "onErrorCaptured", function() { return onErrorCaptured; });
21902/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "onMounted", function() { return onMounted; });
21903/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "onRenderTracked", function() { return onRenderTracked; });
21904/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "onRenderTriggered", function() { return onRenderTriggered; });
21905/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "onServerPrefetch", function() { return onServerPrefetch; });
21906/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "onUnmounted", function() { return onUnmounted; });
21907/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "onUpdated", function() { return onUpdated; });
21908/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "openBlock", function() { return openBlock; });
21909/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "popScopeId", function() { return popScopeId; });
21910/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "provide", function() { return provide; });
21911/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "pushScopeId", function() { return pushScopeId; });
21912/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "queuePostFlushCb", function() { return queuePostFlushCb; });
21913/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "registerRuntimeCompiler", function() { return registerRuntimeCompiler; });
21914/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "renderList", function() { return renderList; });
21915/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "renderSlot", function() { return renderSlot; });
21916/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "resolveComponent", function() { return resolveComponent; });
21917/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "resolveDirective", function() { return resolveDirective; });
21918/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "resolveDynamicComponent", function() { return resolveDynamicComponent; });
21919/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "resolveFilter", function() { return resolveFilter; });
21920/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "resolveTransitionHooks", function() { return resolveTransitionHooks; });
21921/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "setBlockTracking", function() { return setBlockTracking; });
21922/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "setDevtoolsHook", function() { return setDevtoolsHook; });
21923/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "setTransitionHooks", function() { return setTransitionHooks; });
21924/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "ssrContextKey", function() { return ssrContextKey; });
21925/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "ssrUtils", function() { return ssrUtils; });
21926/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "toHandlers", function() { return toHandlers; });
21927/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "transformVNodeArgs", function() { return transformVNodeArgs; });
21928/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "useAttrs", function() { return useAttrs; });
21929/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "useModel", function() { return useModel; });
21930/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "useSSRContext", function() { return useSSRContext; });
21931/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "useSlots", function() { return useSlots; });
21932/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "useTransitionState", function() { return useTransitionState; });
21933/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "version", function() { return version; });
21934/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "warn", function() { return warn; });
21935/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "watch", function() { return watch; });
21936/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "watchEffect", function() { return watchEffect; });
21937/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "watchPostEffect", function() { return watchPostEffect; });
21938/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "watchSyncEffect", function() { return watchSyncEffect; });
21939/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "withAsyncContext", function() { return withAsyncContext; });
21940/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "withCtx", function() { return withCtx; });
21941/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "withDefaults", function() { return withDefaults; });
21942/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "withDirectives", function() { return withDirectives; });
21943/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "withMemo", function() { return withMemo; });
21944/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "withScopeId", function() { return withScopeId; });
21945/* harmony import */ var _vue_reactivity__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @vue/reactivity */ "./node_modules/@vue/reactivity/dist/reactivity.esm-bundler.js");
21946/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "EffectScope", function() { return _vue_reactivity__WEBPACK_IMPORTED_MODULE_0__["EffectScope"]; });
21947
21948/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "ReactiveEffect", function() { return _vue_reactivity__WEBPACK_IMPORTED_MODULE_0__["ReactiveEffect"]; });
21949
21950/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "TrackOpTypes", function() { return _vue_reactivity__WEBPACK_IMPORTED_MODULE_0__["TrackOpTypes"]; });
21951
21952/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "TriggerOpTypes", function() { return _vue_reactivity__WEBPACK_IMPORTED_MODULE_0__["TriggerOpTypes"]; });
21953
21954/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "customRef", function() { return _vue_reactivity__WEBPACK_IMPORTED_MODULE_0__["customRef"]; });
21955
21956/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "effect", function() { return _vue_reactivity__WEBPACK_IMPORTED_MODULE_0__["effect"]; });
21957
21958/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "effectScope", function() { return _vue_reactivity__WEBPACK_IMPORTED_MODULE_0__["effectScope"]; });
21959
21960/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "getCurrentScope", function() { return _vue_reactivity__WEBPACK_IMPORTED_MODULE_0__["getCurrentScope"]; });
21961
21962/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "isProxy", function() { return _vue_reactivity__WEBPACK_IMPORTED_MODULE_0__["isProxy"]; });
21963
21964/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "isReactive", function() { return _vue_reactivity__WEBPACK_IMPORTED_MODULE_0__["isReactive"]; });
21965
21966/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "isReadonly", function() { return _vue_reactivity__WEBPACK_IMPORTED_MODULE_0__["isReadonly"]; });
21967
21968/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "isRef", function() { return _vue_reactivity__WEBPACK_IMPORTED_MODULE_0__["isRef"]; });
21969
21970/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "isShallow", function() { return _vue_reactivity__WEBPACK_IMPORTED_MODULE_0__["isShallow"]; });
21971
21972/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "markRaw", function() { return _vue_reactivity__WEBPACK_IMPORTED_MODULE_0__["markRaw"]; });
21973
21974/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "onScopeDispose", function() { return _vue_reactivity__WEBPACK_IMPORTED_MODULE_0__["onScopeDispose"]; });
21975
21976/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "proxyRefs", function() { return _vue_reactivity__WEBPACK_IMPORTED_MODULE_0__["proxyRefs"]; });
21977
21978/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "reactive", function() { return _vue_reactivity__WEBPACK_IMPORTED_MODULE_0__["reactive"]; });
21979
21980/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "readonly", function() { return _vue_reactivity__WEBPACK_IMPORTED_MODULE_0__["readonly"]; });
21981
21982/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "ref", function() { return _vue_reactivity__WEBPACK_IMPORTED_MODULE_0__["ref"]; });
21983
21984/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "shallowReactive", function() { return _vue_reactivity__WEBPACK_IMPORTED_MODULE_0__["shallowReactive"]; });
21985
21986/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "shallowReadonly", function() { return _vue_reactivity__WEBPACK_IMPORTED_MODULE_0__["shallowReadonly"]; });
21987
21988/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "shallowRef", function() { return _vue_reactivity__WEBPACK_IMPORTED_MODULE_0__["shallowRef"]; });
21989
21990/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "stop", function() { return _vue_reactivity__WEBPACK_IMPORTED_MODULE_0__["stop"]; });
21991
21992/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "toRaw", function() { return _vue_reactivity__WEBPACK_IMPORTED_MODULE_0__["toRaw"]; });
21993
21994/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "toRef", function() { return _vue_reactivity__WEBPACK_IMPORTED_MODULE_0__["toRef"]; });
21995
21996/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "toRefs", function() { return _vue_reactivity__WEBPACK_IMPORTED_MODULE_0__["toRefs"]; });
21997
21998/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "toValue", function() { return _vue_reactivity__WEBPACK_IMPORTED_MODULE_0__["toValue"]; });
21999
22000/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "triggerRef", function() { return _vue_reactivity__WEBPACK_IMPORTED_MODULE_0__["triggerRef"]; });
22001
22002/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "unref", function() { return _vue_reactivity__WEBPACK_IMPORTED_MODULE_0__["unref"]; });
22003
22004/* harmony import */ var _vue_shared__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @vue/shared */ "./node_modules/@vue/shared/dist/shared.esm-bundler.js");
22005/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "camelize", function() { return _vue_shared__WEBPACK_IMPORTED_MODULE_1__["camelize"]; });
22006
22007/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "capitalize", function() { return _vue_shared__WEBPACK_IMPORTED_MODULE_1__["capitalize"]; });
22008
22009/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "normalizeClass", function() { return _vue_shared__WEBPACK_IMPORTED_MODULE_1__["normalizeClass"]; });
22010
22011/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "normalizeProps", function() { return _vue_shared__WEBPACK_IMPORTED_MODULE_1__["normalizeProps"]; });
22012
22013/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "normalizeStyle", function() { return _vue_shared__WEBPACK_IMPORTED_MODULE_1__["normalizeStyle"]; });
22014
22015/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "toDisplayString", function() { return _vue_shared__WEBPACK_IMPORTED_MODULE_1__["toDisplayString"]; });
22016
22017/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "toHandlerKey", function() { return _vue_shared__WEBPACK_IMPORTED_MODULE_1__["toHandlerKey"]; });
22018
22019/**
22020* @vue/runtime-core v3.4.21
22021* (c) 2018-present Yuxi (Evan) You and Vue contributors
22022* @license MIT
22023**/
22024
22025
22026
22027
22028
22029const stack = [];
22030function pushWarningContext(vnode) {
22031  stack.push(vnode);
22032}
22033function popWarningContext() {
22034  stack.pop();
22035}
22036function warn$1(msg, ...args) {
22037  Object(_vue_reactivity__WEBPACK_IMPORTED_MODULE_0__["pauseTracking"])();
22038  const instance = stack.length ? stack[stack.length - 1].component : null;
22039  const appWarnHandler = instance && instance.appContext.config.warnHandler;
22040  const trace = getComponentTrace();
22041  if (appWarnHandler) {
22042    callWithErrorHandling(
22043      appWarnHandler,
22044      instance,
22045      11,
22046      [
22047        msg + args.map((a) => {
22048          var _a, _b;
22049          return (_b = (_a = a.toString) == null ? void 0 : _a.call(a)) != null ? _b : JSON.stringify(a);
22050        }).join(""),
22051        instance && instance.proxy,
22052        trace.map(
22053          ({ vnode }) => `at <${formatComponentName(instance, vnode.type)}>`
22054        ).join("\n"),
22055        trace
22056      ]
22057    );
22058  } else {
22059    const warnArgs = [`[Vue warn]: ${msg}`, ...args];
22060    if (trace.length && // avoid spamming console during tests
22061    true) {
22062      warnArgs.push(`
22063`, ...formatTrace(trace));
22064    }
22065    console.warn(...warnArgs);
22066  }
22067  Object(_vue_reactivity__WEBPACK_IMPORTED_MODULE_0__["resetTracking"])();
22068}
22069function getComponentTrace() {
22070  let currentVNode = stack[stack.length - 1];
22071  if (!currentVNode) {
22072    return [];
22073  }
22074  const normalizedStack = [];
22075  while (currentVNode) {
22076    const last = normalizedStack[0];
22077    if (last && last.vnode === currentVNode) {
22078      last.recurseCount++;
22079    } else {
22080      normalizedStack.push({
22081        vnode: currentVNode,
22082        recurseCount: 0
22083      });
22084    }
22085    const parentInstance = currentVNode.component && currentVNode.component.parent;
22086    currentVNode = parentInstance && parentInstance.vnode;
22087  }
22088  return normalizedStack;
22089}
22090function formatTrace(trace) {
22091  const logs = [];
22092  trace.forEach((entry, i) => {
22093    logs.push(...i === 0 ? [] : [`
22094`], ...formatTraceEntry(entry));
22095  });
22096  return logs;
22097}
22098function formatTraceEntry({ vnode, recurseCount }) {
22099  const postfix = recurseCount > 0 ? `... (${recurseCount} recursive calls)` : ``;
22100  const isRoot = vnode.component ? vnode.component.parent == null : false;
22101  const open = ` at <${formatComponentName(
22102    vnode.component,
22103    vnode.type,
22104    isRoot
22105  )}`;
22106  const close = `>` + postfix;
22107  return vnode.props ? [open, ...formatProps(vnode.props), close] : [open + close];
22108}
22109function formatProps(props) {
22110  const res = [];
22111  const keys = Object.keys(props);
22112  keys.slice(0, 3).forEach((key) => {
22113    res.push(...formatProp(key, props[key]));
22114  });
22115  if (keys.length > 3) {
22116    res.push(` ...`);
22117  }
22118  return res;
22119}
22120function formatProp(key, value, raw) {
22121  if (Object(_vue_shared__WEBPACK_IMPORTED_MODULE_1__["isString"])(value)) {
22122    value = JSON.stringify(value);
22123    return raw ? value : [`${key}=${value}`];
22124  } else if (typeof value === "number" || typeof value === "boolean" || value == null) {
22125    return raw ? value : [`${key}=${value}`];
22126  } else if (Object(_vue_reactivity__WEBPACK_IMPORTED_MODULE_0__["isRef"])(value)) {
22127    value = formatProp(key, Object(_vue_reactivity__WEBPACK_IMPORTED_MODULE_0__["toRaw"])(value.value), true);
22128    return raw ? value : [`${key}=Ref<`, value, `>`];
22129  } else if (Object(_vue_shared__WEBPACK_IMPORTED_MODULE_1__["isFunction"])(value)) {
22130    return [`${key}=fn${value.name ? `<${value.name}>` : ``}`];
22131  } else {
22132    value = Object(_vue_reactivity__WEBPACK_IMPORTED_MODULE_0__["toRaw"])(value);
22133    return raw ? value : [`${key}=`, value];
22134  }
22135}
22136function assertNumber(val, type) {
22137  if (false)
22138    {}
22139  if (val === void 0) {
22140    return;
22141  } else if (typeof val !== "number") {
22142    warn$1(`${type} is not a valid number - got ${JSON.stringify(val)}.`);
22143  } else if (isNaN(val)) {
22144    warn$1(`${type} is NaN - the duration expression might be incorrect.`);
22145  }
22146}
22147
22148const ErrorCodes = {
22149  "SETUP_FUNCTION": 0,
22150  "0": "SETUP_FUNCTION",
22151  "RENDER_FUNCTION": 1,
22152  "1": "RENDER_FUNCTION",
22153  "WATCH_GETTER": 2,
22154  "2": "WATCH_GETTER",
22155  "WATCH_CALLBACK": 3,
22156  "3": "WATCH_CALLBACK",
22157  "WATCH_CLEANUP": 4,
22158  "4": "WATCH_CLEANUP",
22159  "NATIVE_EVENT_HANDLER": 5,
22160  "5": "NATIVE_EVENT_HANDLER",
22161  "COMPONENT_EVENT_HANDLER": 6,
22162  "6": "COMPONENT_EVENT_HANDLER",
22163  "VNODE_HOOK": 7,
22164  "7": "VNODE_HOOK",
22165  "DIRECTIVE_HOOK": 8,
22166  "8": "DIRECTIVE_HOOK",
22167  "TRANSITION_HOOK": 9,
22168  "9": "TRANSITION_HOOK",
22169  "APP_ERROR_HANDLER": 10,
22170  "10": "APP_ERROR_HANDLER",
22171  "APP_WARN_HANDLER": 11,
22172  "11": "APP_WARN_HANDLER",
22173  "FUNCTION_REF": 12,
22174  "12": "FUNCTION_REF",
22175  "ASYNC_COMPONENT_LOADER": 13,
22176  "13": "ASYNC_COMPONENT_LOADER",
22177  "SCHEDULER": 14,
22178  "14": "SCHEDULER"
22179};
22180const ErrorTypeStrings$1 = {
22181  ["sp"]: "serverPrefetch hook",
22182  ["bc"]: "beforeCreate hook",
22183  ["c"]: "created hook",
22184  ["bm"]: "beforeMount hook",
22185  ["m"]: "mounted hook",
22186  ["bu"]: "beforeUpdate hook",
22187  ["u"]: "updated",
22188  ["bum"]: "beforeUnmount hook",
22189  ["um"]: "unmounted hook",
22190  ["a"]: "activated hook",
22191  ["da"]: "deactivated hook",
22192  ["ec"]: "errorCaptured hook",
22193  ["rtc"]: "renderTracked hook",
22194  ["rtg"]: "renderTriggered hook",
22195  [0]: "setup function",
22196  [1]: "render function",
22197  [2]: "watcher getter",
22198  [3]: "watcher callback",
22199  [4]: "watcher cleanup function",
22200  [5]: "native event handler",
22201  [6]: "component event handler",
22202  [7]: "vnode hook",
22203  [8]: "directive hook",
22204  [9]: "transition hook",
22205  [10]: "app errorHandler",
22206  [11]: "app warnHandler",
22207  [12]: "ref function",
22208  [13]: "async component loader",
22209  [14]: "scheduler flush. This is likely a Vue internals bug. Please open an issue at https://github.com/vuejs/core ."
22210};
22211function callWithErrorHandling(fn, instance, type, args) {
22212  try {
22213    return args ? fn(...args) : fn();
22214  } catch (err) {
22215    handleError(err, instance, type);
22216  }
22217}
22218function callWithAsyncErrorHandling(fn, instance, type, args) {
22219  if (Object(_vue_shared__WEBPACK_IMPORTED_MODULE_1__["isFunction"])(fn)) {
22220    const res = callWithErrorHandling(fn, instance, type, args);
22221    if (res && Object(_vue_shared__WEBPACK_IMPORTED_MODULE_1__["isPromise"])(res)) {
22222      res.catch((err) => {
22223        handleError(err, instance, type);
22224      });
22225    }
22226    return res;
22227  }
22228  const values = [];
22229  for (let i = 0; i < fn.length; i++) {
22230    values.push(callWithAsyncErrorHandling(fn[i], instance, type, args));
22231  }
22232  return values;
22233}
22234function handleError(err, instance, type, throwInDev = true) {
22235  const contextVNode = instance ? instance.vnode : null;
22236  if (instance) {
22237    let cur = instance.parent;
22238    const exposedInstance = instance.proxy;
22239    const errorInfo =  true ? ErrorTypeStrings$1[type] : undefined;
22240    while (cur) {
22241      const errorCapturedHooks = cur.ec;
22242      if (errorCapturedHooks) {
22243        for (let i = 0; i < errorCapturedHooks.length; i++) {
22244          if (errorCapturedHooks[i](err, exposedInstance, errorInfo) === false) {
22245            return;
22246          }
22247        }
22248      }
22249      cur = cur.parent;
22250    }
22251    const appErrorHandler = instance.appContext.config.errorHandler;
22252    if (appErrorHandler) {
22253      callWithErrorHandling(
22254        appErrorHandler,
22255        null,
22256        10,
22257        [err, exposedInstance, errorInfo]
22258      );
22259      return;
22260    }
22261  }
22262  logError(err, type, contextVNode, throwInDev);
22263}
22264function logError(err, type, contextVNode, throwInDev = true) {
22265  if (true) {
22266    const info = ErrorTypeStrings$1[type];
22267    if (contextVNode) {
22268      pushWarningContext(contextVNode);
22269    }
22270    warn$1(`Unhandled error${info ? ` during execution of ${info}` : ``}`);
22271    if (contextVNode) {
22272      popWarningContext();
22273    }
22274    if (throwInDev) {
22275      throw err;
22276    } else {
22277      console.error(err);
22278    }
22279  } else {}
22280}
22281
22282let isFlushing = false;
22283let isFlushPending = false;
22284const queue = [];
22285let flushIndex = 0;
22286const pendingPostFlushCbs = [];
22287let activePostFlushCbs = null;
22288let postFlushIndex = 0;
22289const resolvedPromise = /* @__PURE__ */ Promise.resolve();
22290let currentFlushPromise = null;
22291const RECURSION_LIMIT = 100;
22292function nextTick(fn) {
22293  const p = currentFlushPromise || resolvedPromise;
22294  return fn ? p.then(this ? fn.bind(this) : fn) : p;
22295}
22296function findInsertionIndex(id) {
22297  let start = flushIndex + 1;
22298  let end = queue.length;
22299  while (start < end) {
22300    const middle = start + end >>> 1;
22301    const middleJob = queue[middle];
22302    const middleJobId = getId(middleJob);
22303    if (middleJobId < id || middleJobId === id && middleJob.pre) {
22304      start = middle + 1;
22305    } else {
22306      end = middle;
22307    }
22308  }
22309  return start;
22310}
22311function queueJob(job) {
22312  if (!queue.length || !queue.includes(
22313    job,
22314    isFlushing && job.allowRecurse ? flushIndex + 1 : flushIndex
22315  )) {
22316    if (job.id == null) {
22317      queue.push(job);
22318    } else {
22319      queue.splice(findInsertionIndex(job.id), 0, job);
22320    }
22321    queueFlush();
22322  }
22323}
22324function queueFlush() {
22325  if (!isFlushing && !isFlushPending) {
22326    isFlushPending = true;
22327    currentFlushPromise = resolvedPromise.then(flushJobs);
22328  }
22329}
22330function invalidateJob(job) {
22331  const i = queue.indexOf(job);
22332  if (i > flushIndex) {
22333    queue.splice(i, 1);
22334  }
22335}
22336function queuePostFlushCb(cb) {
22337  if (!Object(_vue_shared__WEBPACK_IMPORTED_MODULE_1__["isArray"])(cb)) {
22338    if (!activePostFlushCbs || !activePostFlushCbs.includes(
22339      cb,
22340      cb.allowRecurse ? postFlushIndex + 1 : postFlushIndex
22341    )) {
22342      pendingPostFlushCbs.push(cb);
22343    }
22344  } else {
22345    pendingPostFlushCbs.push(...cb);
22346  }
22347  queueFlush();
22348}
22349function flushPreFlushCbs(instance, seen, i = isFlushing ? flushIndex + 1 : 0) {
22350  if (true) {
22351    seen = seen || /* @__PURE__ */ new Map();
22352  }
22353  for (; i < queue.length; i++) {
22354    const cb = queue[i];
22355    if (cb && cb.pre) {
22356      if (instance && cb.id !== instance.uid) {
22357        continue;
22358      }
22359      if ( true && checkRecursiveUpdates(seen, cb)) {
22360        continue;
22361      }
22362      queue.splice(i, 1);
22363      i--;
22364      cb();
22365    }
22366  }
22367}
22368function flushPostFlushCbs(seen) {
22369  if (pendingPostFlushCbs.length) {
22370    const deduped = [...new Set(pendingPostFlushCbs)].sort(
22371      (a, b) => getId(a) - getId(b)
22372    );
22373    pendingPostFlushCbs.length = 0;
22374    if (activePostFlushCbs) {
22375      activePostFlushCbs.push(...deduped);
22376      return;
22377    }
22378    activePostFlushCbs = deduped;
22379    if (true) {
22380      seen = seen || /* @__PURE__ */ new Map();
22381    }
22382    for (postFlushIndex = 0; postFlushIndex < activePostFlushCbs.length; postFlushIndex++) {
22383      if ( true && checkRecursiveUpdates(seen, activePostFlushCbs[postFlushIndex])) {
22384        continue;
22385      }
22386      activePostFlushCbs[postFlushIndex]();
22387    }
22388    activePostFlushCbs = null;
22389    postFlushIndex = 0;
22390  }
22391}
22392const getId = (job) => job.id == null ? Infinity : job.id;
22393const comparator = (a, b) => {
22394  const diff = getId(a) - getId(b);
22395  if (diff === 0) {
22396    if (a.pre && !b.pre)
22397      return -1;
22398    if (b.pre && !a.pre)
22399      return 1;
22400  }
22401  return diff;
22402};
22403function flushJobs(seen) {
22404  isFlushPending = false;
22405  isFlushing = true;
22406  if (true) {
22407    seen = seen || /* @__PURE__ */ new Map();
22408  }
22409  queue.sort(comparator);
22410  const check =  true ? (job) => checkRecursiveUpdates(seen, job) : undefined;
22411  try {
22412    for (flushIndex = 0; flushIndex < queue.length; flushIndex++) {
22413      const job = queue[flushIndex];
22414      if (job && job.active !== false) {
22415        if ( true && check(job)) {
22416          continue;
22417        }
22418        callWithErrorHandling(job, null, 14);
22419      }
22420    }
22421  } finally {
22422    flushIndex = 0;
22423    queue.length = 0;
22424    flushPostFlushCbs(seen);
22425    isFlushing = false;
22426    currentFlushPromise = null;
22427    if (queue.length || pendingPostFlushCbs.length) {
22428      flushJobs(seen);
22429    }
22430  }
22431}
22432function checkRecursiveUpdates(seen, fn) {
22433  if (!seen.has(fn)) {
22434    seen.set(fn, 1);
22435  } else {
22436    const count = seen.get(fn);
22437    if (count > RECURSION_LIMIT) {
22438      const instance = fn.ownerInstance;
22439      const componentName = instance && getComponentName(instance.type);
22440      handleError(
22441        `Maximum recursive updates exceeded${componentName ? ` in component <${componentName}>` : ``}. This means you have a reactive effect that is mutating its own dependencies and thus recursively triggering itself. Possible sources include component template, render function, updated hook or watcher source function.`,
22442        null,
22443        10
22444      );
22445      return true;
22446    } else {
22447      seen.set(fn, count + 1);
22448    }
22449  }
22450}
22451
22452let isHmrUpdating = false;
22453const hmrDirtyComponents = /* @__PURE__ */ new Set();
22454if (true) {
22455  Object(_vue_shared__WEBPACK_IMPORTED_MODULE_1__["getGlobalThis"])().__VUE_HMR_RUNTIME__ = {
22456    createRecord: tryWrap(createRecord),
22457    rerender: tryWrap(rerender),
22458    reload: tryWrap(reload)
22459  };
22460}
22461const map = /* @__PURE__ */ new Map();
22462function registerHMR(instance) {
22463  const id = instance.type.__hmrId;
22464  let record = map.get(id);
22465  if (!record) {
22466    createRecord(id, instance.type);
22467    record = map.get(id);
22468  }
22469  record.instances.add(instance);
22470}
22471function unregisterHMR(instance) {
22472  map.get(instance.type.__hmrId).instances.delete(instance);
22473}
22474function createRecord(id, initialDef) {
22475  if (map.has(id)) {
22476    return false;
22477  }
22478  map.set(id, {
22479    initialDef: normalizeClassComponent(initialDef),
22480    instances: /* @__PURE__ */ new Set()
22481  });
22482  return true;
22483}
22484function normalizeClassComponent(component) {
22485  return isClassComponent(component) ? component.__vccOpts : component;
22486}
22487function rerender(id, newRender) {
22488  const record = map.get(id);
22489  if (!record) {
22490    return;
22491  }
22492  record.initialDef.render = newRender;
22493  [...record.instances].forEach((instance) => {
22494    if (newRender) {
22495      instance.render = newRender;
22496      normalizeClassComponent(instance.type).render = newRender;
22497    }
22498    instance.renderCache = [];
22499    isHmrUpdating = true;
22500    instance.effect.dirty = true;
22501    instance.update();
22502    isHmrUpdating = false;
22503  });
22504}
22505function reload(id, newComp) {
22506  const record = map.get(id);
22507  if (!record)
22508    return;
22509  newComp = normalizeClassComponent(newComp);
22510  updateComponentDef(record.initialDef, newComp);
22511  const instances = [...record.instances];
22512  for (const instance of instances) {
22513    const oldComp = normalizeClassComponent(instance.type);
22514    if (!hmrDirtyComponents.has(oldComp)) {
22515      if (oldComp !== record.initialDef) {
22516        updateComponentDef(oldComp, newComp);
22517      }
22518      hmrDirtyComponents.add(oldComp);
22519    }
22520    instance.appContext.propsCache.delete(instance.type);
22521    instance.appContext.emitsCache.delete(instance.type);
22522    instance.appContext.optionsCache.delete(instance.type);
22523    if (instance.ceReload) {
22524      hmrDirtyComponents.add(oldComp);
22525      instance.ceReload(newComp.styles);
22526      hmrDirtyComponents.delete(oldComp);
22527    } else if (instance.parent) {
22528      instance.parent.effect.dirty = true;
22529      queueJob(instance.parent.update);
22530    } else if (instance.appContext.reload) {
22531      instance.appContext.reload();
22532    } else if (typeof window !== "undefined") {
22533      window.location.reload();
22534    } else {
22535      console.warn(
22536        "[HMR] Root or manually mounted instance modified. Full reload required."
22537      );
22538    }
22539  }
22540  queuePostFlushCb(() => {
22541    for (const instance of instances) {
22542      hmrDirtyComponents.delete(
22543        normalizeClassComponent(instance.type)
22544      );
22545    }
22546  });
22547}
22548function updateComponentDef(oldComp, newComp) {
22549  Object(_vue_shared__WEBPACK_IMPORTED_MODULE_1__["extend"])(oldComp, newComp);
22550  for (const key in oldComp) {
22551    if (key !== "__file" && !(key in newComp)) {
22552      delete oldComp[key];
22553    }
22554  }
22555}
22556function tryWrap(fn) {
22557  return (id, arg) => {
22558    try {
22559      return fn(id, arg);
22560    } catch (e) {
22561      console.error(e);
22562      console.warn(
22563        `[HMR] Something went wrong during Vue component hot-reload. Full reload required.`
22564      );
22565    }
22566  };
22567}
22568
22569let devtools$1;
22570let buffer = [];
22571let devtoolsNotInstalled = false;
22572function emit$1(event, ...args) {
22573  if (devtools$1) {
22574    devtools$1.emit(event, ...args);
22575  } else if (!devtoolsNotInstalled) {
22576    buffer.push({ event, args });
22577  }
22578}
22579function setDevtoolsHook$1(hook, target) {
22580  var _a, _b;
22581  devtools$1 = hook;
22582  if (devtools$1) {
22583    devtools$1.enabled = true;
22584    buffer.forEach(({ event, args }) => devtools$1.emit(event, ...args));
22585    buffer = [];
22586  } else if (
22587    // handle late devtools injection - only do this if we are in an actual
22588    // browser environment to avoid the timer handle stalling test runner exit
22589    // (#4815)
22590    typeof window !== "undefined" && // some envs mock window but not fully
22591    window.HTMLElement && // also exclude jsdom
22592    !((_b = (_a = window.navigator) == null ? void 0 : _a.userAgent) == null ? void 0 : _b.includes("jsdom"))
22593  ) {
22594    const replay = target.__VUE_DEVTOOLS_HOOK_REPLAY__ = target.__VUE_DEVTOOLS_HOOK_REPLAY__ || [];
22595    replay.push((newHook) => {
22596      setDevtoolsHook$1(newHook, target);
22597    });
22598    setTimeout(() => {
22599      if (!devtools$1) {
22600        target.__VUE_DEVTOOLS_HOOK_REPLAY__ = null;
22601        devtoolsNotInstalled = true;
22602        buffer = [];
22603      }
22604    }, 3e3);
22605  } else {
22606    devtoolsNotInstalled = true;
22607    buffer = [];
22608  }
22609}
22610function devtoolsInitApp(app, version) {
22611  emit$1("app:init" /* APP_INIT */, app, version, {
22612    Fragment,
22613    Text,
22614    Comment,
22615    Static
22616  });
22617}
22618function devtoolsUnmountApp(app) {
22619  emit$1("app:unmount" /* APP_UNMOUNT */, app);
22620}
22621const devtoolsComponentAdded = /* @__PURE__ */ createDevtoolsComponentHook(
22622  "component:added" /* COMPONENT_ADDED */
22623);
22624const devtoolsComponentUpdated = /* @__PURE__ */ createDevtoolsComponentHook("component:updated" /* COMPONENT_UPDATED */);
22625const _devtoolsComponentRemoved = /* @__PURE__ */ createDevtoolsComponentHook(
22626  "component:removed" /* COMPONENT_REMOVED */
22627);
22628const devtoolsComponentRemoved = (component) => {
22629  if (devtools$1 && typeof devtools$1.cleanupBuffer === "function" && // remove the component if it wasn't buffered
22630  !devtools$1.cleanupBuffer(component)) {
22631    _devtoolsComponentRemoved(component);
22632  }
22633};
22634function createDevtoolsComponentHook(hook) {
22635  return (component) => {
22636    emit$1(
22637      hook,
22638      component.appContext.app,
22639      component.uid,
22640      component.parent ? component.parent.uid : void 0,
22641      component
22642    );
22643  };
22644}
22645const devtoolsPerfStart = /* @__PURE__ */ createDevtoolsPerformanceHook(
22646  "perf:start" /* PERFORMANCE_START */
22647);
22648const devtoolsPerfEnd = /* @__PURE__ */ createDevtoolsPerformanceHook(
22649  "perf:end" /* PERFORMANCE_END */
22650);
22651function createDevtoolsPerformanceHook(hook) {
22652  return (component, type, time) => {
22653    emit$1(hook, component.appContext.app, component.uid, component, type, time);
22654  };
22655}
22656function devtoolsComponentEmit(component, event, params) {
22657  emit$1(
22658    "component:emit" /* COMPONENT_EMIT */,
22659    component.appContext.app,
22660    component,
22661    event,
22662    params
22663  );
22664}
22665
22666function emit(instance, event, ...rawArgs) {
22667  if (instance.isUnmounted)
22668    return;
22669  const props = instance.vnode.props || _vue_shared__WEBPACK_IMPORTED_MODULE_1__["EMPTY_OBJ"];
22670  if (true) {
22671    const {
22672      emitsOptions,
22673      propsOptions: [propsOptions]
22674    } = instance;
22675    if (emitsOptions) {
22676      if (!(event in emitsOptions) && true) {
22677        if (!propsOptions || !(Object(_vue_shared__WEBPACK_IMPORTED_MODULE_1__["toHandlerKey"])(event) in propsOptions)) {
22678          warn$1(
22679            `Component emitted event "${event}" but it is neither declared in the emits option nor as an "${Object(_vue_shared__WEBPACK_IMPORTED_MODULE_1__["toHandlerKey"])(event)}" prop.`
22680          );
22681        }
22682      } else {
22683        const validator = emitsOptions[event];
22684        if (Object(_vue_shared__WEBPACK_IMPORTED_MODULE_1__["isFunction"])(validator)) {
22685          const isValid = validator(...rawArgs);
22686          if (!isValid) {
22687            warn$1(
22688              `Invalid event arguments: event validation failed for event "${event}".`
22689            );
22690          }
22691        }
22692      }
22693    }
22694  }
22695  let args = rawArgs;
22696  const isModelListener = event.startsWith("update:");
22697  const modelArg = isModelListener && event.slice(7);
22698  if (modelArg && modelArg in props) {
22699    const modifiersKey = `${modelArg === "modelValue" ? "model" : modelArg}Modifiers`;
22700    const { number, trim } = props[modifiersKey] || _vue_shared__WEBPACK_IMPORTED_MODULE_1__["EMPTY_OBJ"];
22701    if (trim) {
22702      args = rawArgs.map((a) => Object(_vue_shared__WEBPACK_IMPORTED_MODULE_1__["isString"])(a) ? a.trim() : a);
22703    }
22704    if (number) {
22705      args = rawArgs.map(_vue_shared__WEBPACK_IMPORTED_MODULE_1__["looseToNumber"]);
22706    }
22707  }
22708  if (true) {
22709    devtoolsComponentEmit(instance, event, args);
22710  }
22711  if (true) {
22712    const lowerCaseEvent = event.toLowerCase();
22713    if (lowerCaseEvent !== event && props[Object(_vue_shared__WEBPACK_IMPORTED_MODULE_1__["toHandlerKey"])(lowerCaseEvent)]) {
22714      warn$1(
22715        `Event "${lowerCaseEvent}" is emitted in component ${formatComponentName(
22716          instance,
22717          instance.type
22718        )} but the handler is registered for "${event}". Note that HTML attributes are case-insensitive and you cannot use v-on to listen to camelCase events when using in-DOM templates. You should probably use "${Object(_vue_shared__WEBPACK_IMPORTED_MODULE_1__["hyphenate"])(
22719          event
22720        )}" instead of "${event}".`
22721      );
22722    }
22723  }
22724  let handlerName;
22725  let handler = props[handlerName = Object(_vue_shared__WEBPACK_IMPORTED_MODULE_1__["toHandlerKey"])(event)] || // also try camelCase event handler (#2249)
22726  props[handlerName = Object(_vue_shared__WEBPACK_IMPORTED_MODULE_1__["toHandlerKey"])(Object(_vue_shared__WEBPACK_IMPORTED_MODULE_1__["camelize"])(event))];
22727  if (!handler && isModelListener) {
22728    handler = props[handlerName = Object(_vue_shared__WEBPACK_IMPORTED_MODULE_1__["toHandlerKey"])(Object(_vue_shared__WEBPACK_IMPORTED_MODULE_1__["hyphenate"])(event))];
22729  }
22730  if (handler) {
22731    callWithAsyncErrorHandling(
22732      handler,
22733      instance,
22734      6,
22735      args
22736    );
22737  }
22738  const onceHandler = props[handlerName + `Once`];
22739  if (onceHandler) {
22740    if (!instance.emitted) {
22741      instance.emitted = {};
22742    } else if (instance.emitted[handlerName]) {
22743      return;
22744    }
22745    instance.emitted[handlerName] = true;
22746    callWithAsyncErrorHandling(
22747      onceHandler,
22748      instance,
22749      6,
22750      args
22751    );
22752  }
22753}
22754function normalizeEmitsOptions(comp, appContext, asMixin = false) {
22755  const cache = appContext.emitsCache;
22756  const cached = cache.get(comp);
22757  if (cached !== void 0) {
22758    return cached;
22759  }
22760  const raw = comp.emits;
22761  let normalized = {};
22762  let hasExtends = false;
22763  if ( true && !Object(_vue_shared__WEBPACK_IMPORTED_MODULE_1__["isFunction"])(comp)) {
22764    const extendEmits = (raw2) => {
22765      const normalizedFromExtend = normalizeEmitsOptions(raw2, appContext, true);
22766      if (normalizedFromExtend) {
22767        hasExtends = true;
22768        Object(_vue_shared__WEBPACK_IMPORTED_MODULE_1__["extend"])(normalized, normalizedFromExtend);
22769      }
22770    };
22771    if (!asMixin && appContext.mixins.length) {
22772      appContext.mixins.forEach(extendEmits);
22773    }
22774    if (comp.extends) {
22775      extendEmits(comp.extends);
22776    }
22777    if (comp.mixins) {
22778      comp.mixins.forEach(extendEmits);
22779    }
22780  }
22781  if (!raw && !hasExtends) {
22782    if (Object(_vue_shared__WEBPACK_IMPORTED_MODULE_1__["isObject"])(comp)) {
22783      cache.set(comp, null);
22784    }
22785    return null;
22786  }
22787  if (Object(_vue_shared__WEBPACK_IMPORTED_MODULE_1__["isArray"])(raw)) {
22788    raw.forEach((key) => normalized[key] = null);
22789  } else {
22790    Object(_vue_shared__WEBPACK_IMPORTED_MODULE_1__["extend"])(normalized, raw);
22791  }
22792  if (Object(_vue_shared__WEBPACK_IMPORTED_MODULE_1__["isObject"])(comp)) {
22793    cache.set(comp, normalized);
22794  }
22795  return normalized;
22796}
22797function isEmitListener(options, key) {
22798  if (!options || !Object(_vue_shared__WEBPACK_IMPORTED_MODULE_1__["isOn"])(key)) {
22799    return false;
22800  }
22801  key = key.slice(2).replace(/Once$/, "");
22802  return Object(_vue_shared__WEBPACK_IMPORTED_MODULE_1__["hasOwn"])(options, key[0].toLowerCase() + key.slice(1)) || Object(_vue_shared__WEBPACK_IMPORTED_MODULE_1__["hasOwn"])(options, Object(_vue_shared__WEBPACK_IMPORTED_MODULE_1__["hyphenate"])(key)) || Object(_vue_shared__WEBPACK_IMPORTED_MODULE_1__["hasOwn"])(options, key);
22803}
22804
22805let currentRenderingInstance = null;
22806let currentScopeId = null;
22807function setCurrentRenderingInstance(instance) {
22808  const prev = currentRenderingInstance;
22809  currentRenderingInstance = instance;
22810  currentScopeId = instance && instance.type.__scopeId || null;
22811  return prev;
22812}
22813function pushScopeId(id) {
22814  currentScopeId = id;
22815}
22816function popScopeId() {
22817  currentScopeId = null;
22818}
22819const withScopeId = (_id) => withCtx;
22820function withCtx(fn, ctx = currentRenderingInstance, isNonScopedSlot) {
22821  if (!ctx)
22822    return fn;
22823  if (fn._n) {
22824    return fn;
22825  }
22826  const renderFnWithContext = (...args) => {
22827    if (renderFnWithContext._d) {
22828      setBlockTracking(-1);
22829    }
22830    const prevInstance = setCurrentRenderingInstance(ctx);
22831    let res;
22832    try {
22833      res = fn(...args);
22834    } finally {
22835      setCurrentRenderingInstance(prevInstance);
22836      if (renderFnWithContext._d) {
22837        setBlockTracking(1);
22838      }
22839    }
22840    if (true) {
22841      devtoolsComponentUpdated(ctx);
22842    }
22843    return res;
22844  };
22845  renderFnWithContext._n = true;
22846  renderFnWithContext._c = true;
22847  renderFnWithContext._d = true;
22848  return renderFnWithContext;
22849}
22850
22851let accessedAttrs = false;
22852function markAttrsAccessed() {
22853  accessedAttrs = true;
22854}
22855function renderComponentRoot(instance) {
22856  const {
22857    type: Component,
22858    vnode,
22859    proxy,
22860    withProxy,
22861    props,
22862    propsOptions: [propsOptions],
22863    slots,
22864    attrs,
22865    emit,
22866    render,
22867    renderCache,
22868    data,
22869    setupState,
22870    ctx,
22871    inheritAttrs
22872  } = instance;
22873  let result;
22874  let fallthroughAttrs;
22875  const prev = setCurrentRenderingInstance(instance);
22876  if (true) {
22877    accessedAttrs = false;
22878  }
22879  try {
22880    if (vnode.shapeFlag & 4) {
22881      const proxyToUse = withProxy || proxy;
22882      const thisProxy =  true && setupState.__isScriptSetup ? new Proxy(proxyToUse, {
22883        get(target, key, receiver) {
22884          warn$1(
22885            `Property '${String(
22886              key
22887            )}' was accessed via 'this'. Avoid using 'this' in templates.`
22888          );
22889          return Reflect.get(target, key, receiver);
22890        }
22891      }) : proxyToUse;
22892      result = normalizeVNode(
22893        render.call(
22894          thisProxy,
22895          proxyToUse,
22896          renderCache,
22897          props,
22898          setupState,
22899          data,
22900          ctx
22901        )
22902      );
22903      fallthroughAttrs = attrs;
22904    } else {
22905      const render2 = Component;
22906      if ( true && attrs === props) {
22907        markAttrsAccessed();
22908      }
22909      result = normalizeVNode(
22910        render2.length > 1 ? render2(
22911          props,
22912           true ? {
22913            get attrs() {
22914              markAttrsAccessed();
22915              return attrs;
22916            },
22917            slots,
22918            emit
22919          } : undefined
22920        ) : render2(
22921          props,
22922          null
22923          /* we know it doesn't need it */
22924        )
22925      );
22926      fallthroughAttrs = Component.props ? attrs : getFunctionalFallthrough(attrs);
22927    }
22928  } catch (err) {
22929    blockStack.length = 0;
22930    handleError(err, instance, 1);
22931    result = createVNode(Comment);
22932  }
22933  let root = result;
22934  let setRoot = void 0;
22935  if ( true && result.patchFlag > 0 && result.patchFlag & 2048) {
22936    [root, setRoot] = getChildRoot(result);
22937  }
22938  if (fallthroughAttrs && inheritAttrs !== false) {
22939    const keys = Object.keys(fallthroughAttrs);
22940    const { shapeFlag } = root;
22941    if (keys.length) {
22942      if (shapeFlag & (1 | 6)) {
22943        if (propsOptions && keys.some(_vue_shared__WEBPACK_IMPORTED_MODULE_1__["isModelListener"])) {
22944          fallthroughAttrs = filterModelListeners(
22945            fallthroughAttrs,
22946            propsOptions
22947          );
22948        }
22949        root = cloneVNode(root, fallthroughAttrs);
22950      } else if ( true && !accessedAttrs && root.type !== Comment) {
22951        const allAttrs = Object.keys(attrs);
22952        const eventAttrs = [];
22953        const extraAttrs = [];
22954        for (let i = 0, l = allAttrs.length; i < l; i++) {
22955          const key = allAttrs[i];
22956          if (Object(_vue_shared__WEBPACK_IMPORTED_MODULE_1__["isOn"])(key)) {
22957            if (!Object(_vue_shared__WEBPACK_IMPORTED_MODULE_1__["isModelListener"])(key)) {
22958              eventAttrs.push(key[2].toLowerCase() + key.slice(3));
22959            }
22960          } else {
22961            extraAttrs.push(key);
22962          }
22963        }
22964        if (extraAttrs.length) {
22965          warn$1(
22966            `Extraneous non-props attributes (${extraAttrs.join(", ")}) were passed to component but could not be automatically inherited because component renders fragment or text root nodes.`
22967          );
22968        }
22969        if (eventAttrs.length) {
22970          warn$1(
22971            `Extraneous non-emits event listeners (${eventAttrs.join(", ")}) were passed to component but could not be automatically inherited because component renders fragment or text root nodes. If the listener is intended to be a component custom event listener only, declare it using the "emits" option.`
22972          );
22973        }
22974      }
22975    }
22976  }
22977  if (vnode.dirs) {
22978    if ( true && !isElementRoot(root)) {
22979      warn$1(
22980        `Runtime directive used on component with non-element root node. The directives will not function as intended.`
22981      );
22982    }
22983    root = cloneVNode(root);
22984    root.dirs = root.dirs ? root.dirs.concat(vnode.dirs) : vnode.dirs;
22985  }
22986  if (vnode.transition) {
22987    if ( true && !isElementRoot(root)) {
22988      warn$1(
22989        `Component inside <Transition> renders non-element root node that cannot be animated.`
22990      );
22991    }
22992    root.transition = vnode.transition;
22993  }
22994  if ( true && setRoot) {
22995    setRoot(root);
22996  } else {
22997    result = root;
22998  }
22999  setCurrentRenderingInstance(prev);
23000  return result;
23001}
23002const getChildRoot = (vnode) => {
23003  const rawChildren = vnode.children;
23004  const dynamicChildren = vnode.dynamicChildren;
23005  const childRoot = filterSingleRoot(rawChildren, false);
23006  if (!childRoot) {
23007    return [vnode, void 0];
23008  } else if ( true && childRoot.patchFlag > 0 && childRoot.patchFlag & 2048) {
23009    return getChildRoot(childRoot);
23010  }
23011  const index = rawChildren.indexOf(childRoot);
23012  const dynamicIndex = dynamicChildren ? dynamicChildren.indexOf(childRoot) : -1;
23013  const setRoot = (updatedRoot) => {
23014    rawChildren[index] = updatedRoot;
23015    if (dynamicChildren) {
23016      if (dynamicIndex > -1) {
23017        dynamicChildren[dynamicIndex] = updatedRoot;
23018      } else if (updatedRoot.patchFlag > 0) {
23019        vnode.dynamicChildren = [...dynamicChildren, updatedRoot];
23020      }
23021    }
23022  };
23023  return [normalizeVNode(childRoot), setRoot];
23024};
23025function filterSingleRoot(children, recurse = true) {
23026  let singleRoot;
23027  for (let i = 0; i < children.length; i++) {
23028    const child = children[i];
23029    if (isVNode(child)) {
23030      if (child.type !== Comment || child.children === "v-if") {
23031        if (singleRoot) {
23032          return;
23033        } else {
23034          singleRoot = child;
23035          if ( true && recurse && singleRoot.patchFlag > 0 && singleRoot.patchFlag & 2048) {
23036            return filterSingleRoot(singleRoot.children);
23037          }
23038        }
23039      }
23040    } else {
23041      return;
23042    }
23043  }
23044  return singleRoot;
23045}
23046const getFunctionalFallthrough = (attrs) => {
23047  let res;
23048  for (const key in attrs) {
23049    if (key === "class" || key === "style" || Object(_vue_shared__WEBPACK_IMPORTED_MODULE_1__["isOn"])(key)) {
23050      (res || (res = {}))[key] = attrs[key];
23051    }
23052  }
23053  return res;
23054};
23055const filterModelListeners = (attrs, props) => {
23056  const res = {};
23057  for (const key in attrs) {
23058    if (!Object(_vue_shared__WEBPACK_IMPORTED_MODULE_1__["isModelListener"])(key) || !(key.slice(9) in props)) {
23059      res[key] = attrs[key];
23060    }
23061  }
23062  return res;
23063};
23064const isElementRoot = (vnode) => {
23065  return vnode.shapeFlag & (6 | 1) || vnode.type === Comment;
23066};
23067function shouldUpdateComponent(prevVNode, nextVNode, optimized) {
23068  const { props: prevProps, children: prevChildren, component } = prevVNode;
23069  const { props: nextProps, children: nextChildren, patchFlag } = nextVNode;
23070  const emits = component.emitsOptions;
23071  if ( true && (prevChildren || nextChildren) && isHmrUpdating) {
23072    return true;
23073  }
23074  if (nextVNode.dirs || nextVNode.transition) {
23075    return true;
23076  }
23077  if (optimized && patchFlag >= 0) {
23078    if (patchFlag & 1024) {
23079      return true;
23080    }
23081    if (patchFlag & 16) {
23082      if (!prevProps) {
23083        return !!nextProps;
23084      }
23085      return hasPropsChanged(prevProps, nextProps, emits);
23086    } else if (patchFlag & 8) {
23087      const dynamicProps = nextVNode.dynamicProps;
23088      for (let i = 0; i < dynamicProps.length; i++) {
23089        const key = dynamicProps[i];
23090        if (nextProps[key] !== prevProps[key] && !isEmitListener(emits, key)) {
23091          return true;
23092        }
23093      }
23094    }
23095  } else {
23096    if (prevChildren || nextChildren) {
23097      if (!nextChildren || !nextChildren.$stable) {
23098        return true;
23099      }
23100    }
23101    if (prevProps === nextProps) {
23102      return false;
23103    }
23104    if (!prevProps) {
23105      return !!nextProps;
23106    }
23107    if (!nextProps) {
23108      return true;
23109    }
23110    return hasPropsChanged(prevProps, nextProps, emits);
23111  }
23112  return false;
23113}
23114function hasPropsChanged(prevProps, nextProps, emitsOptions) {
23115  const nextKeys = Object.keys(nextProps);
23116  if (nextKeys.length !== Object.keys(prevProps).length) {
23117    return true;
23118  }
23119  for (let i = 0; i < nextKeys.length; i++) {
23120    const key = nextKeys[i];
23121    if (nextProps[key] !== prevProps[key] && !isEmitListener(emitsOptions, key)) {
23122      return true;
23123    }
23124  }
23125  return false;
23126}
23127function updateHOCHostEl({ vnode, parent }, el) {
23128  while (parent) {
23129    const root = parent.subTree;
23130    if (root.suspense && root.suspense.activeBranch === vnode) {
23131      root.el = vnode.el;
23132    }
23133    if (root === vnode) {
23134      (vnode = parent.vnode).el = el;
23135      parent = parent.parent;
23136    } else {
23137      break;
23138    }
23139  }
23140}
23141
23142const COMPONENTS = "components";
23143const DIRECTIVES = "directives";
23144function resolveComponent(name, maybeSelfReference) {
23145  return resolveAsset(COMPONENTS, name, true, maybeSelfReference) || name;
23146}
23147const NULL_DYNAMIC_COMPONENT = Symbol.for("v-ndc");
23148function resolveDynamicComponent(component) {
23149  if (Object(_vue_shared__WEBPACK_IMPORTED_MODULE_1__["isString"])(component)) {
23150    return resolveAsset(COMPONENTS, component, false) || component;
23151  } else {
23152    return component || NULL_DYNAMIC_COMPONENT;
23153  }
23154}
23155function resolveDirective(name) {
23156  return resolveAsset(DIRECTIVES, name);
23157}
23158function resolveAsset(type, name, warnMissing = true, maybeSelfReference = false) {
23159  const instance = currentRenderingInstance || currentInstance;
23160  if (instance) {
23161    const Component = instance.type;
23162    if (type === COMPONENTS) {
23163      const selfName = getComponentName(
23164        Component,
23165        false
23166      );
23167      if (selfName && (selfName === name || selfName === Object(_vue_shared__WEBPACK_IMPORTED_MODULE_1__["camelize"])(name) || selfName === Object(_vue_shared__WEBPACK_IMPORTED_MODULE_1__["capitalize"])(Object(_vue_shared__WEBPACK_IMPORTED_MODULE_1__["camelize"])(name)))) {
23168        return Component;
23169      }
23170    }
23171    const res = (
23172      // local registration
23173      // check instance[type] first which is resolved for options API
23174      resolve(instance[type] || Component[type], name) || // global registration
23175      resolve(instance.appContext[type], name)
23176    );
23177    if (!res && maybeSelfReference) {
23178      return Component;
23179    }
23180    if ( true && warnMissing && !res) {
23181      const extra = type === COMPONENTS ? `
23182If this is a native custom element, make sure to exclude it from component resolution via compilerOptions.isCustomElement.` : ``;
23183      warn$1(`Failed to resolve ${type.slice(0, -1)}: ${name}${extra}`);
23184    }
23185    return res;
23186  } else if (true) {
23187    warn$1(
23188      `resolve${Object(_vue_shared__WEBPACK_IMPORTED_MODULE_1__["capitalize"])(type.slice(0, -1))} can only be used in render() or setup().`
23189    );
23190  }
23191}
23192function resolve(registry, name) {
23193  return registry && (registry[name] || registry[Object(_vue_shared__WEBPACK_IMPORTED_MODULE_1__["camelize"])(name)] || registry[Object(_vue_shared__WEBPACK_IMPORTED_MODULE_1__["capitalize"])(Object(_vue_shared__WEBPACK_IMPORTED_MODULE_1__["camelize"])(name))]);
23194}
23195
23196const isSuspense = (type) => type.__isSuspense;
23197let suspenseId = 0;
23198const SuspenseImpl = {
23199  name: "Suspense",
23200  // In order to make Suspense tree-shakable, we need to avoid importing it
23201  // directly in the renderer. The renderer checks for the __isSuspense flag
23202  // on a vnode's type and calls the `process` method, passing in renderer
23203  // internals.
23204  __isSuspense: true,
23205  process(n1, n2, container, anchor, parentComponent, parentSuspense, namespace, slotScopeIds, optimized, rendererInternals) {
23206    if (n1 == null) {
23207      mountSuspense(
23208        n2,
23209        container,
23210        anchor,
23211        parentComponent,
23212        parentSuspense,
23213        namespace,
23214        slotScopeIds,
23215        optimized,
23216        rendererInternals
23217      );
23218    } else {
23219      if (parentSuspense && parentSuspense.deps > 0 && !n1.suspense.isInFallback) {
23220        n2.suspense = n1.suspense;
23221        n2.suspense.vnode = n2;
23222        n2.el = n1.el;
23223        return;
23224      }
23225      patchSuspense(
23226        n1,
23227        n2,
23228        container,
23229        anchor,
23230        parentComponent,
23231        namespace,
23232        slotScopeIds,
23233        optimized,
23234        rendererInternals
23235      );
23236    }
23237  },
23238  hydrate: hydrateSuspense,
23239  create: createSuspenseBoundary,
23240  normalize: normalizeSuspenseChildren
23241};
23242const Suspense = SuspenseImpl ;
23243function triggerEvent(vnode, name) {
23244  const eventListener = vnode.props && vnode.props[name];
23245  if (Object(_vue_shared__WEBPACK_IMPORTED_MODULE_1__["isFunction"])(eventListener)) {
23246    eventListener();
23247  }
23248}
23249function mountSuspense(vnode, container, anchor, parentComponent, parentSuspense, namespace, slotScopeIds, optimized, rendererInternals) {
23250  const {
23251    p: patch,
23252    o: { createElement }
23253  } = rendererInternals;
23254  const hiddenContainer = createElement("div");
23255  const suspense = vnode.suspense = createSuspenseBoundary(
23256    vnode,
23257    parentSuspense,
23258    parentComponent,
23259    container,
23260    hiddenContainer,
23261    anchor,
23262    namespace,
23263    slotScopeIds,
23264    optimized,
23265    rendererInternals
23266  );
23267  patch(
23268    null,
23269    suspense.pendingBranch = vnode.ssContent,
23270    hiddenContainer,
23271    null,
23272    parentComponent,
23273    suspense,
23274    namespace,
23275    slotScopeIds
23276  );
23277  if (suspense.deps > 0) {
23278    triggerEvent(vnode, "onPending");
23279    triggerEvent(vnode, "onFallback");
23280    patch(
23281      null,
23282      vnode.ssFallback,
23283      container,
23284      anchor,
23285      parentComponent,
23286      null,
23287      // fallback tree will not have suspense context
23288      namespace,
23289      slotScopeIds
23290    );
23291    setActiveBranch(suspense, vnode.ssFallback);
23292  } else {
23293    suspense.resolve(false, true);
23294  }
23295}
23296function patchSuspense(n1, n2, container, anchor, parentComponent, namespace, slotScopeIds, optimized, { p: patch, um: unmount, o: { createElement } }) {
23297  const suspense = n2.suspense = n1.suspense;
23298  suspense.vnode = n2;
23299  n2.el = n1.el;
23300  const newBranch = n2.ssContent;
23301  const newFallback = n2.ssFallback;
23302  const { activeBranch, pendingBranch, isInFallback, isHydrating } = suspense;
23303  if (pendingBranch) {
23304    suspense.pendingBranch = newBranch;
23305    if (isSameVNodeType(newBranch, pendingBranch)) {
23306      patch(
23307        pendingBranch,
23308        newBranch,
23309        suspense.hiddenContainer,
23310        null,
23311        parentComponent,
23312        suspense,
23313        namespace,
23314        slotScopeIds,
23315        optimized
23316      );
23317      if (suspense.deps <= 0) {
23318        suspense.resolve();
23319      } else if (isInFallback) {
23320        if (!isHydrating) {
23321          patch(
23322            activeBranch,
23323            newFallback,
23324            container,
23325            anchor,
23326            parentComponent,
23327            null,
23328            // fallback tree will not have suspense context
23329            namespace,
23330            slotScopeIds,
23331            optimized
23332          );
23333          setActiveBranch(suspense, newFallback);
23334        }
23335      }
23336    } else {
23337      suspense.pendingId = suspenseId++;
23338      if (isHydrating) {
23339        suspense.isHydrating = false;
23340        suspense.activeBranch = pendingBranch;
23341      } else {
23342        unmount(pendingBranch, parentComponent, suspense);
23343      }
23344      suspense.deps = 0;
23345      suspense.effects.length = 0;
23346      suspense.hiddenContainer = createElement("div");
23347      if (isInFallback) {
23348        patch(
23349          null,
23350          newBranch,
23351          suspense.hiddenContainer,
23352          null,
23353          parentComponent,
23354          suspense,
23355          namespace,
23356          slotScopeIds,
23357          optimized
23358        );
23359        if (suspense.deps <= 0) {
23360          suspense.resolve();
23361        } else {
23362          patch(
23363            activeBranch,
23364            newFallback,
23365            container,
23366            anchor,
23367            parentComponent,
23368            null,
23369            // fallback tree will not have suspense context
23370            namespace,
23371            slotScopeIds,
23372            optimized
23373          );
23374          setActiveBranch(suspense, newFallback);
23375        }
23376      } else if (activeBranch && isSameVNodeType(newBranch, activeBranch)) {
23377        patch(
23378          activeBranch,
23379          newBranch,
23380          container,
23381          anchor,
23382          parentComponent,
23383          suspense,
23384          namespace,
23385          slotScopeIds,
23386          optimized
23387        );
23388        suspense.resolve(true);
23389      } else {
23390        patch(
23391          null,
23392          newBranch,
23393          suspense.hiddenContainer,
23394          null,
23395          parentComponent,
23396          suspense,
23397          namespace,
23398          slotScopeIds,
23399          optimized
23400        );
23401        if (suspense.deps <= 0) {
23402          suspense.resolve();
23403        }
23404      }
23405    }
23406  } else {
23407    if (activeBranch && isSameVNodeType(newBranch, activeBranch)) {
23408      patch(
23409        activeBranch,
23410        newBranch,
23411        container,
23412        anchor,
23413        parentComponent,
23414        suspense,
23415        namespace,
23416        slotScopeIds,
23417        optimized
23418      );
23419      setActiveBranch(suspense, newBranch);
23420    } else {
23421      triggerEvent(n2, "onPending");
23422      suspense.pendingBranch = newBranch;
23423      if (newBranch.shapeFlag & 512) {
23424        suspense.pendingId = newBranch.component.suspenseId;
23425      } else {
23426        suspense.pendingId = suspenseId++;
23427      }
23428      patch(
23429        null,
23430        newBranch,
23431        suspense.hiddenContainer,
23432        null,
23433        parentComponent,
23434        suspense,
23435        namespace,
23436        slotScopeIds,
23437        optimized
23438      );
23439      if (suspense.deps <= 0) {
23440        suspense.resolve();
23441      } else {
23442        const { timeout, pendingId } = suspense;
23443        if (timeout > 0) {
23444          setTimeout(() => {
23445            if (suspense.pendingId === pendingId) {
23446              suspense.fallback(newFallback);
23447            }
23448          }, timeout);
23449        } else if (timeout === 0) {
23450          suspense.fallback(newFallback);
23451        }
23452      }
23453    }
23454  }
23455}
23456let hasWarned = false;
23457function createSuspenseBoundary(vnode, parentSuspense, parentComponent, container, hiddenContainer, anchor, namespace, slotScopeIds, optimized, rendererInternals, isHydrating = false) {
23458  if ( true && !hasWarned) {
23459    hasWarned = true;
23460    console[console.info ? "info" : "log"](
23461      `<Suspense> is an experimental feature and its API will likely change.`
23462    );
23463  }
23464  const {
23465    p: patch,
23466    m: move,
23467    um: unmount,
23468    n: next,
23469    o: { parentNode, remove }
23470  } = rendererInternals;
23471  let parentSuspenseId;
23472  const isSuspensible = isVNodeSuspensible(vnode);
23473  if (isSuspensible) {
23474    if (parentSuspense == null ? void 0 : parentSuspense.pendingBranch) {
23475      parentSuspenseId = parentSuspense.pendingId;
23476      parentSuspense.deps++;
23477    }
23478  }
23479  const timeout = vnode.props ? Object(_vue_shared__WEBPACK_IMPORTED_MODULE_1__["toNumber"])(vnode.props.timeout) : void 0;
23480  if (true) {
23481    assertNumber(timeout, `Suspense timeout`);
23482  }
23483  const initialAnchor = anchor;
23484  const suspense = {
23485    vnode,
23486    parent: parentSuspense,
23487    parentComponent,
23488    namespace,
23489    container,
23490    hiddenContainer,
23491    deps: 0,
23492    pendingId: suspenseId++,
23493    timeout: typeof timeout === "number" ? timeout : -1,
23494    activeBranch: null,
23495    pendingBranch: null,
23496    isInFallback: !isHydrating,
23497    isHydrating,
23498    isUnmounted: false,
23499    effects: [],
23500    resolve(resume = false, sync = false) {
23501      if (true) {
23502        if (!resume && !suspense.pendingBranch) {
23503          throw new Error(
23504            `suspense.resolve() is called without a pending branch.`
23505          );
23506        }
23507        if (suspense.isUnmounted) {
23508          throw new Error(
23509            `suspense.resolve() is called on an already unmounted suspense boundary.`
23510          );
23511        }
23512      }
23513      const {
23514        vnode: vnode2,
23515        activeBranch,
23516        pendingBranch,
23517        pendingId,
23518        effects,
23519        parentComponent: parentComponent2,
23520        container: container2
23521      } = suspense;
23522      let delayEnter = false;
23523      if (suspense.isHydrating) {
23524        suspense.isHydrating = false;
23525      } else if (!resume) {
23526        delayEnter = activeBranch && pendingBranch.transition && pendingBranch.transition.mode === "out-in";
23527        if (delayEnter) {
23528          activeBranch.transition.afterLeave = () => {
23529            if (pendingId === suspense.pendingId) {
23530              move(
23531                pendingBranch,
23532                container2,
23533                anchor === initialAnchor ? next(activeBranch) : anchor,
23534                0
23535              );
23536              queuePostFlushCb(effects);
23537            }
23538          };
23539        }
23540        if (activeBranch) {
23541          if (parentNode(activeBranch.el) !== suspense.hiddenContainer) {
23542            anchor = next(activeBranch);
23543          }
23544          unmount(activeBranch, parentComponent2, suspense, true);
23545        }
23546        if (!delayEnter) {
23547          move(pendingBranch, container2, anchor, 0);
23548        }
23549      }
23550      setActiveBranch(suspense, pendingBranch);
23551      suspense.pendingBranch = null;
23552      suspense.isInFallback = false;
23553      let parent = suspense.parent;
23554      let hasUnresolvedAncestor = false;
23555      while (parent) {
23556        if (parent.pendingBranch) {
23557          parent.effects.push(...effects);
23558          hasUnresolvedAncestor = true;
23559          break;
23560        }
23561        parent = parent.parent;
23562      }
23563      if (!hasUnresolvedAncestor && !delayEnter) {
23564        queuePostFlushCb(effects);
23565      }
23566      suspense.effects = [];
23567      if (isSuspensible) {
23568        if (parentSuspense && parentSuspense.pendingBranch && parentSuspenseId === parentSuspense.pendingId) {
23569          parentSuspense.deps--;
23570          if (parentSuspense.deps === 0 && !sync) {
23571            parentSuspense.resolve();
23572          }
23573        }
23574      }
23575      triggerEvent(vnode2, "onResolve");
23576    },
23577    fallback(fallbackVNode) {
23578      if (!suspense.pendingBranch) {
23579        return;
23580      }
23581      const { vnode: vnode2, activeBranch, parentComponent: parentComponent2, container: container2, namespace: namespace2 } = suspense;
23582      triggerEvent(vnode2, "onFallback");
23583      const anchor2 = next(activeBranch);
23584      const mountFallback = () => {
23585        if (!suspense.isInFallback) {
23586          return;
23587        }
23588        patch(
23589          null,
23590          fallbackVNode,
23591          container2,
23592          anchor2,
23593          parentComponent2,
23594          null,
23595          // fallback tree will not have suspense context
23596          namespace2,
23597          slotScopeIds,
23598          optimized
23599        );
23600        setActiveBranch(suspense, fallbackVNode);
23601      };
23602      const delayEnter = fallbackVNode.transition && fallbackVNode.transition.mode === "out-in";
23603      if (delayEnter) {
23604        activeBranch.transition.afterLeave = mountFallback;
23605      }
23606      suspense.isInFallback = true;
23607      unmount(
23608        activeBranch,
23609        parentComponent2,
23610        null,
23611        // no suspense so unmount hooks fire now
23612        true
23613        // shouldRemove
23614      );
23615      if (!delayEnter) {
23616        mountFallback();
23617      }
23618    },
23619    move(container2, anchor2, type) {
23620      suspense.activeBranch && move(suspense.activeBranch, container2, anchor2, type);
23621      suspense.container = container2;
23622    },
23623    next() {
23624      return suspense.activeBranch && next(suspense.activeBranch);
23625    },
23626    registerDep(instance, setupRenderEffect) {
23627      const isInPendingSuspense = !!suspense.pendingBranch;
23628      if (isInPendingSuspense) {
23629        suspense.deps++;
23630      }
23631      const hydratedEl = instance.vnode.el;
23632      instance.asyncDep.catch((err) => {
23633        handleError(err, instance, 0);
23634      }).then((asyncSetupResult) => {
23635        if (instance.isUnmounted || suspense.isUnmounted || suspense.pendingId !== instance.suspenseId) {
23636          return;
23637        }
23638        instance.asyncResolved = true;
23639        const { vnode: vnode2 } = instance;
23640        if (true) {
23641          pushWarningContext(vnode2);
23642        }
23643        handleSetupResult(instance, asyncSetupResult, false);
23644        if (hydratedEl) {
23645          vnode2.el = hydratedEl;
23646        }
23647        const placeholder = !hydratedEl && instance.subTree.el;
23648        setupRenderEffect(
23649          instance,
23650          vnode2,
23651          // component may have been moved before resolve.
23652          // if this is not a hydration, instance.subTree will be the comment
23653          // placeholder.
23654          parentNode(hydratedEl || instance.subTree.el),
23655          // anchor will not be used if this is hydration, so only need to
23656          // consider the comment placeholder case.
23657          hydratedEl ? null : next(instance.subTree),
23658          suspense,
23659          namespace,
23660          optimized
23661        );
23662        if (placeholder) {
23663          remove(placeholder);
23664        }
23665        updateHOCHostEl(instance, vnode2.el);
23666        if (true) {
23667          popWarningContext();
23668        }
23669        if (isInPendingSuspense && --suspense.deps === 0) {
23670          suspense.resolve();
23671        }
23672      });
23673    },
23674    unmount(parentSuspense2, doRemove) {
23675      suspense.isUnmounted = true;
23676      if (suspense.activeBranch) {
23677        unmount(
23678          suspense.activeBranch,
23679          parentComponent,
23680          parentSuspense2,
23681          doRemove
23682        );
23683      }
23684      if (suspense.pendingBranch) {
23685        unmount(
23686          suspense.pendingBranch,
23687          parentComponent,
23688          parentSuspense2,
23689          doRemove
23690        );
23691      }
23692    }
23693  };
23694  return suspense;
23695}
23696function hydrateSuspense(node, vnode, parentComponent, parentSuspense, namespace, slotScopeIds, optimized, rendererInternals, hydrateNode) {
23697  const suspense = vnode.suspense = createSuspenseBoundary(
23698    vnode,
23699    parentSuspense,
23700    parentComponent,
23701    node.parentNode,
23702    // eslint-disable-next-line no-restricted-globals
23703    document.createElement("div"),
23704    null,
23705    namespace,
23706    slotScopeIds,
23707    optimized,
23708    rendererInternals,
23709    true
23710  );
23711  const result = hydrateNode(
23712    node,
23713    suspense.pendingBranch = vnode.ssContent,
23714    parentComponent,
23715    suspense,
23716    slotScopeIds,
23717    optimized
23718  );
23719  if (suspense.deps === 0) {
23720    suspense.resolve(false, true);
23721  }
23722  return result;
23723}
23724function normalizeSuspenseChildren(vnode) {
23725  const { shapeFlag, children } = vnode;
23726  const isSlotChildren = shapeFlag & 32;
23727  vnode.ssContent = normalizeSuspenseSlot(
23728    isSlotChildren ? children.default : children
23729  );
23730  vnode.ssFallback = isSlotChildren ? normalizeSuspenseSlot(children.fallback) : createVNode(Comment);
23731}
23732function normalizeSuspenseSlot(s) {
23733  let block;
23734  if (Object(_vue_shared__WEBPACK_IMPORTED_MODULE_1__["isFunction"])(s)) {
23735    const trackBlock = isBlockTreeEnabled && s._c;
23736    if (trackBlock) {
23737      s._d = false;
23738      openBlock();
23739    }
23740    s = s();
23741    if (trackBlock) {
23742      s._d = true;
23743      block = currentBlock;
23744      closeBlock();
23745    }
23746  }
23747  if (Object(_vue_shared__WEBPACK_IMPORTED_MODULE_1__["isArray"])(s)) {
23748    const singleChild = filterSingleRoot(s);
23749    if ( true && !singleChild && s.filter((child) => child !== NULL_DYNAMIC_COMPONENT).length > 0) {
23750      warn$1(`<Suspense> slots expect a single root node.`);
23751    }
23752    s = singleChild;
23753  }
23754  s = normalizeVNode(s);
23755  if (block && !s.dynamicChildren) {
23756    s.dynamicChildren = block.filter((c) => c !== s);
23757  }
23758  return s;
23759}
23760function queueEffectWithSuspense(fn, suspense) {
23761  if (suspense && suspense.pendingBranch) {
23762    if (Object(_vue_shared__WEBPACK_IMPORTED_MODULE_1__["isArray"])(fn)) {
23763      suspense.effects.push(...fn);
23764    } else {
23765      suspense.effects.push(fn);
23766    }
23767  } else {
23768    queuePostFlushCb(fn);
23769  }
23770}
23771function setActiveBranch(suspense, branch) {
23772  suspense.activeBranch = branch;
23773  const { vnode, parentComponent } = suspense;
23774  let el = branch.el;
23775  while (!el && branch.component) {
23776    branch = branch.component.subTree;
23777    el = branch.el;
23778  }
23779  vnode.el = el;
23780  if (parentComponent && parentComponent.subTree === vnode) {
23781    parentComponent.vnode.el = el;
23782    updateHOCHostEl(parentComponent, el);
23783  }
23784}
23785function isVNodeSuspensible(vnode) {
23786  var _a;
23787  return ((_a = vnode.props) == null ? void 0 : _a.suspensible) != null && vnode.props.suspensible !== false;
23788}
23789
23790const ssrContextKey = Symbol.for("v-scx");
23791const useSSRContext = () => {
23792  {
23793    const ctx = inject(ssrContextKey);
23794    if (!ctx) {
23795       true && warn$1(
23796        `Server rendering context not provided. Make sure to only call useSSRContext() conditionally in the server build.`
23797      );
23798    }
23799    return ctx;
23800  }
23801};
23802
23803function watchEffect(effect, options) {
23804  return doWatch(effect, null, options);
23805}
23806function watchPostEffect(effect, options) {
23807  return doWatch(
23808    effect,
23809    null,
23810     true ? Object(_vue_shared__WEBPACK_IMPORTED_MODULE_1__["extend"])({}, options, { flush: "post" }) : undefined
23811  );
23812}
23813function watchSyncEffect(effect, options) {
23814  return doWatch(
23815    effect,
23816    null,
23817     true ? Object(_vue_shared__WEBPACK_IMPORTED_MODULE_1__["extend"])({}, options, { flush: "sync" }) : undefined
23818  );
23819}
23820const INITIAL_WATCHER_VALUE = {};
23821function watch(source, cb, options) {
23822  if ( true && !Object(_vue_shared__WEBPACK_IMPORTED_MODULE_1__["isFunction"])(cb)) {
23823    warn$1(
23824      `\`watch(fn, options?)\` signature has been moved to a separate API. Use \`watchEffect(fn, options?)\` instead. \`watch\` now only supports \`watch(source, cb, options?) signature.`
23825    );
23826  }
23827  return doWatch(source, cb, options);
23828}
23829function doWatch(source, cb, {
23830  immediate,
23831  deep,
23832  flush,
23833  once,
23834  onTrack,
23835  onTrigger
23836} = _vue_shared__WEBPACK_IMPORTED_MODULE_1__["EMPTY_OBJ"]) {
23837  if (cb && once) {
23838    const _cb = cb;
23839    cb = (...args) => {
23840      _cb(...args);
23841      unwatch();
23842    };
23843  }
23844  if ( true && deep !== void 0 && typeof deep === "number") {
23845    warn$1(
23846      `watch() "deep" option with number value will be used as watch depth in future versions. Please use a boolean instead to avoid potential breakage.`
23847    );
23848  }
23849  if ( true && !cb) {
23850    if (immediate !== void 0) {
23851      warn$1(
23852        `watch() "immediate" option is only respected when using the watch(source, callback, options?) signature.`
23853      );
23854    }
23855    if (deep !== void 0) {
23856      warn$1(
23857        `watch() "deep" option is only respected when using the watch(source, callback, options?) signature.`
23858      );
23859    }
23860    if (once !== void 0) {
23861      warn$1(
23862        `watch() "once" option is only respected when using the watch(source, callback, options?) signature.`
23863      );
23864    }
23865  }
23866  const warnInvalidSource = (s) => {
23867    warn$1(
23868      `Invalid watch source: `,
23869      s,
23870      `A watch source can only be a getter/effect function, a ref, a reactive object, or an array of these types.`
23871    );
23872  };
23873  const instance = currentInstance;
23874  const reactiveGetter = (source2) => deep === true ? source2 : (
23875    // for deep: false, only traverse root-level properties
23876    traverse(source2, deep === false ? 1 : void 0)
23877  );
23878  let getter;
23879  let forceTrigger = false;
23880  let isMultiSource = false;
23881  if (Object(_vue_reactivity__WEBPACK_IMPORTED_MODULE_0__["isRef"])(source)) {
23882    getter = () => source.value;
23883    forceTrigger = Object(_vue_reactivity__WEBPACK_IMPORTED_MODULE_0__["isShallow"])(source);
23884  } else if (Object(_vue_reactivity__WEBPACK_IMPORTED_MODULE_0__["isReactive"])(source)) {
23885    getter = () => reactiveGetter(source);
23886    forceTrigger = true;
23887  } else if (Object(_vue_shared__WEBPACK_IMPORTED_MODULE_1__["isArray"])(source)) {
23888    isMultiSource = true;
23889    forceTrigger = source.some((s) => Object(_vue_reactivity__WEBPACK_IMPORTED_MODULE_0__["isReactive"])(s) || Object(_vue_reactivity__WEBPACK_IMPORTED_MODULE_0__["isShallow"])(s));
23890    getter = () => source.map((s) => {
23891      if (Object(_vue_reactivity__WEBPACK_IMPORTED_MODULE_0__["isRef"])(s)) {
23892        return s.value;
23893      } else if (Object(_vue_reactivity__WEBPACK_IMPORTED_MODULE_0__["isReactive"])(s)) {
23894        return reactiveGetter(s);
23895      } else if (Object(_vue_shared__WEBPACK_IMPORTED_MODULE_1__["isFunction"])(s)) {
23896        return callWithErrorHandling(s, instance, 2);
23897      } else {
23898         true && warnInvalidSource(s);
23899      }
23900    });
23901  } else if (Object(_vue_shared__WEBPACK_IMPORTED_MODULE_1__["isFunction"])(source)) {
23902    if (cb) {
23903      getter = () => callWithErrorHandling(source, instance, 2);
23904    } else {
23905      getter = () => {
23906        if (cleanup) {
23907          cleanup();
23908        }
23909        return callWithAsyncErrorHandling(
23910          source,
23911          instance,
23912          3,
23913          [onCleanup]
23914        );
23915      };
23916    }
23917  } else {
23918    getter = _vue_shared__WEBPACK_IMPORTED_MODULE_1__["NOOP"];
23919     true && warnInvalidSource(source);
23920  }
23921  if (cb && deep) {
23922    const baseGetter = getter;
23923    getter = () => traverse(baseGetter());
23924  }
23925  let cleanup;
23926  let onCleanup = (fn) => {
23927    cleanup = effect.onStop = () => {
23928      callWithErrorHandling(fn, instance, 4);
23929      cleanup = effect.onStop = void 0;
23930    };
23931  };
23932  let ssrCleanup;
23933  if (isInSSRComponentSetup) {
23934    onCleanup = _vue_shared__WEBPACK_IMPORTED_MODULE_1__["NOOP"];
23935    if (!cb) {
23936      getter();
23937    } else if (immediate) {
23938      callWithAsyncErrorHandling(cb, instance, 3, [
23939        getter(),
23940        isMultiSource ? [] : void 0,
23941        onCleanup
23942      ]);
23943    }
23944    if (flush === "sync") {
23945      const ctx = useSSRContext();
23946      ssrCleanup = ctx.__watcherHandles || (ctx.__watcherHandles = []);
23947    } else {
23948      return _vue_shared__WEBPACK_IMPORTED_MODULE_1__["NOOP"];
23949    }
23950  }
23951  let oldValue = isMultiSource ? new Array(source.length).fill(INITIAL_WATCHER_VALUE) : INITIAL_WATCHER_VALUE;
23952  const job = () => {
23953    if (!effect.active || !effect.dirty) {
23954      return;
23955    }
23956    if (cb) {
23957      const newValue = effect.run();
23958      if (deep || forceTrigger || (isMultiSource ? newValue.some((v, i) => Object(_vue_shared__WEBPACK_IMPORTED_MODULE_1__["hasChanged"])(v, oldValue[i])) : Object(_vue_shared__WEBPACK_IMPORTED_MODULE_1__["hasChanged"])(newValue, oldValue)) || false) {
23959        if (cleanup) {
23960          cleanup();
23961        }
23962        callWithAsyncErrorHandling(cb, instance, 3, [
23963          newValue,
23964          // pass undefined as the old value when it's changed for the first time
23965          oldValue === INITIAL_WATCHER_VALUE ? void 0 : isMultiSource && oldValue[0] === INITIAL_WATCHER_VALUE ? [] : oldValue,
23966          onCleanup
23967        ]);
23968        oldValue = newValue;
23969      }
23970    } else {
23971      effect.run();
23972    }
23973  };
23974  job.allowRecurse = !!cb;
23975  let scheduler;
23976  if (flush === "sync") {
23977    scheduler = job;
23978  } else if (flush === "post") {
23979    scheduler = () => queuePostRenderEffect(job, instance && instance.suspense);
23980  } else {
23981    job.pre = true;
23982    if (instance)
23983      job.id = instance.uid;
23984    scheduler = () => queueJob(job);
23985  }
23986  const effect = new _vue_reactivity__WEBPACK_IMPORTED_MODULE_0__["ReactiveEffect"](getter, _vue_shared__WEBPACK_IMPORTED_MODULE_1__["NOOP"], scheduler);
23987  const scope = Object(_vue_reactivity__WEBPACK_IMPORTED_MODULE_0__["getCurrentScope"])();
23988  const unwatch = () => {
23989    effect.stop();
23990    if (scope) {
23991      Object(_vue_shared__WEBPACK_IMPORTED_MODULE_1__["remove"])(scope.effects, effect);
23992    }
23993  };
23994  if (true) {
23995    effect.onTrack = onTrack;
23996    effect.onTrigger = onTrigger;
23997  }
23998  if (cb) {
23999    if (immediate) {
24000      job();
24001    } else {
24002      oldValue = effect.run();
24003    }
24004  } else if (flush === "post") {
24005    queuePostRenderEffect(
24006      effect.run.bind(effect),
24007      instance && instance.suspense
24008    );
24009  } else {
24010    effect.run();
24011  }
24012  if (ssrCleanup)
24013    ssrCleanup.push(unwatch);
24014  return unwatch;
24015}
24016function instanceWatch(source, value, options) {
24017  const publicThis = this.proxy;
24018  const getter = Object(_vue_shared__WEBPACK_IMPORTED_MODULE_1__["isString"])(source) ? source.includes(".") ? createPathGetter(publicThis, source) : () => publicThis[source] : source.bind(publicThis, publicThis);
24019  let cb;
24020  if (Object(_vue_shared__WEBPACK_IMPORTED_MODULE_1__["isFunction"])(value)) {
24021    cb = value;
24022  } else {
24023    cb = value.handler;
24024    options = value;
24025  }
24026  const reset = setCurrentInstance(this);
24027  const res = doWatch(getter, cb.bind(publicThis), options);
24028  reset();
24029  return res;
24030}
24031function createPathGetter(ctx, path) {
24032  const segments = path.split(".");
24033  return () => {
24034    let cur = ctx;
24035    for (let i = 0; i < segments.length && cur; i++) {
24036      cur = cur[segments[i]];
24037    }
24038    return cur;
24039  };
24040}
24041function traverse(value, depth, currentDepth = 0, seen) {
24042  if (!Object(_vue_shared__WEBPACK_IMPORTED_MODULE_1__["isObject"])(value) || value["__v_skip"]) {
24043    return value;
24044  }
24045  if (depth && depth > 0) {
24046    if (currentDepth >= depth) {
24047      return value;
24048    }
24049    currentDepth++;
24050  }
24051  seen = seen || /* @__PURE__ */ new Set();
24052  if (seen.has(value)) {
24053    return value;
24054  }
24055  seen.add(value);
24056  if (Object(_vue_reactivity__WEBPACK_IMPORTED_MODULE_0__["isRef"])(value)) {
24057    traverse(value.value, depth, currentDepth, seen);
24058  } else if (Object(_vue_shared__WEBPACK_IMPORTED_MODULE_1__["isArray"])(value)) {
24059    for (let i = 0; i < value.length; i++) {
24060      traverse(value[i], depth, currentDepth, seen);
24061    }
24062  } else if (Object(_vue_shared__WEBPACK_IMPORTED_MODULE_1__["isSet"])(value) || Object(_vue_shared__WEBPACK_IMPORTED_MODULE_1__["isMap"])(value)) {
24063    value.forEach((v) => {
24064      traverse(v, depth, currentDepth, seen);
24065    });
24066  } else if (Object(_vue_shared__WEBPACK_IMPORTED_MODULE_1__["isPlainObject"])(value)) {
24067    for (const key in value) {
24068      traverse(value[key], depth, currentDepth, seen);
24069    }
24070  }
24071  return value;
24072}
24073
24074function validateDirectiveName(name) {
24075  if (Object(_vue_shared__WEBPACK_IMPORTED_MODULE_1__["isBuiltInDirective"])(name)) {
24076    warn$1("Do not use built-in directive ids as custom directive id: " + name);
24077  }
24078}
24079function withDirectives(vnode, directives) {
24080  if (currentRenderingInstance === null) {
24081     true && warn$1(`withDirectives can only be used inside render functions.`);
24082    return vnode;
24083  }
24084  const instance = getExposeProxy(currentRenderingInstance) || currentRenderingInstance.proxy;
24085  const bindings = vnode.dirs || (vnode.dirs = []);
24086  for (let i = 0; i < directives.length; i++) {
24087    let [dir, value, arg, modifiers = _vue_shared__WEBPACK_IMPORTED_MODULE_1__["EMPTY_OBJ"]] = directives[i];
24088    if (dir) {
24089      if (Object(_vue_shared__WEBPACK_IMPORTED_MODULE_1__["isFunction"])(dir)) {
24090        dir = {
24091          mounted: dir,
24092          updated: dir
24093        };
24094      }
24095      if (dir.deep) {
24096        traverse(value);
24097      }
24098      bindings.push({
24099        dir,
24100        instance,
24101        value,
24102        oldValue: void 0,
24103        arg,
24104        modifiers
24105      });
24106    }
24107  }
24108  return vnode;
24109}
24110function invokeDirectiveHook(vnode, prevVNode, instance, name) {
24111  const bindings = vnode.dirs;
24112  const oldBindings = prevVNode && prevVNode.dirs;
24113  for (let i = 0; i < bindings.length; i++) {
24114    const binding = bindings[i];
24115    if (oldBindings) {
24116      binding.oldValue = oldBindings[i].value;
24117    }
24118    let hook = binding.dir[name];
24119    if (hook) {
24120      Object(_vue_reactivity__WEBPACK_IMPORTED_MODULE_0__["pauseTracking"])();
24121      callWithAsyncErrorHandling(hook, instance, 8, [
24122        vnode.el,
24123        binding,
24124        vnode,
24125        prevVNode
24126      ]);
24127      Object(_vue_reactivity__WEBPACK_IMPORTED_MODULE_0__["resetTracking"])();
24128    }
24129  }
24130}
24131
24132const leaveCbKey = Symbol("_leaveCb");
24133const enterCbKey = Symbol("_enterCb");
24134function useTransitionState() {
24135  const state = {
24136    isMounted: false,
24137    isLeaving: false,
24138    isUnmounting: false,
24139    leavingVNodes: /* @__PURE__ */ new Map()
24140  };
24141  onMounted(() => {
24142    state.isMounted = true;
24143  });
24144  onBeforeUnmount(() => {
24145    state.isUnmounting = true;
24146  });
24147  return state;
24148}
24149const TransitionHookValidator = [Function, Array];
24150const BaseTransitionPropsValidators = {
24151  mode: String,
24152  appear: Boolean,
24153  persisted: Boolean,
24154  // enter
24155  onBeforeEnter: TransitionHookValidator,
24156  onEnter: TransitionHookValidator,
24157  onAfterEnter: TransitionHookValidator,
24158  onEnterCancelled: TransitionHookValidator,
24159  // leave
24160  onBeforeLeave: TransitionHookValidator,
24161  onLeave: TransitionHookValidator,
24162  onAfterLeave: TransitionHookValidator,
24163  onLeaveCancelled: TransitionHookValidator,
24164  // appear
24165  onBeforeAppear: TransitionHookValidator,
24166  onAppear: TransitionHookValidator,
24167  onAfterAppear: TransitionHookValidator,
24168  onAppearCancelled: TransitionHookValidator
24169};
24170const BaseTransitionImpl = {
24171  name: `BaseTransition`,
24172  props: BaseTransitionPropsValidators,
24173  setup(props, { slots }) {
24174    const instance = getCurrentInstance();
24175    const state = useTransitionState();
24176    return () => {
24177      const children = slots.default && getTransitionRawChildren(slots.default(), true);
24178      if (!children || !children.length) {
24179        return;
24180      }
24181      let child = children[0];
24182      if (children.length > 1) {
24183        let hasFound = false;
24184        for (const c of children) {
24185          if (c.type !== Comment) {
24186            if ( true && hasFound) {
24187              warn$1(
24188                "<transition> can only be used on a single element or component. Use <transition-group> for lists."
24189              );
24190              break;
24191            }
24192            child = c;
24193            hasFound = true;
24194            if (false)
24195              {}
24196          }
24197        }
24198      }
24199      const rawProps = Object(_vue_reactivity__WEBPACK_IMPORTED_MODULE_0__["toRaw"])(props);
24200      const { mode } = rawProps;
24201      if ( true && mode && mode !== "in-out" && mode !== "out-in" && mode !== "default") {
24202        warn$1(`invalid <transition> mode: ${mode}`);
24203      }
24204      if (state.isLeaving) {
24205        return emptyPlaceholder(child);
24206      }
24207      const innerChild = getKeepAliveChild(child);
24208      if (!innerChild) {
24209        return emptyPlaceholder(child);
24210      }
24211      const enterHooks = resolveTransitionHooks(
24212        innerChild,
24213        rawProps,
24214        state,
24215        instance
24216      );
24217      setTransitionHooks(innerChild, enterHooks);
24218      const oldChild = instance.subTree;
24219      const oldInnerChild = oldChild && getKeepAliveChild(oldChild);
24220      if (oldInnerChild && oldInnerChild.type !== Comment && !isSameVNodeType(innerChild, oldInnerChild)) {
24221        const leavingHooks = resolveTransitionHooks(
24222          oldInnerChild,
24223          rawProps,
24224          state,
24225          instance
24226        );
24227        setTransitionHooks(oldInnerChild, leavingHooks);
24228        if (mode === "out-in") {
24229          state.isLeaving = true;
24230          leavingHooks.afterLeave = () => {
24231            state.isLeaving = false;
24232            if (instance.update.active !== false) {
24233              instance.effect.dirty = true;
24234              instance.update();
24235            }
24236          };
24237          return emptyPlaceholder(child);
24238        } else if (mode === "in-out" && innerChild.type !== Comment) {
24239          leavingHooks.delayLeave = (el, earlyRemove, delayedLeave) => {
24240            const leavingVNodesCache = getLeavingNodesForType(
24241              state,
24242              oldInnerChild
24243            );
24244            leavingVNodesCache[String(oldInnerChild.key)] = oldInnerChild;
24245            el[leaveCbKey] = () => {
24246              earlyRemove();
24247              el[leaveCbKey] = void 0;
24248              delete enterHooks.delayedLeave;
24249            };
24250            enterHooks.delayedLeave = delayedLeave;
24251          };
24252        }
24253      }
24254      return child;
24255    };
24256  }
24257};
24258const BaseTransition = BaseTransitionImpl;
24259function getLeavingNodesForType(state, vnode) {
24260  const { leavingVNodes } = state;
24261  let leavingVNodesCache = leavingVNodes.get(vnode.type);
24262  if (!leavingVNodesCache) {
24263    leavingVNodesCache = /* @__PURE__ */ Object.create(null);
24264    leavingVNodes.set(vnode.type, leavingVNodesCache);
24265  }
24266  return leavingVNodesCache;
24267}
24268function resolveTransitionHooks(vnode, props, state, instance) {
24269  const {
24270    appear,
24271    mode,
24272    persisted = false,
24273    onBeforeEnter,
24274    onEnter,
24275    onAfterEnter,
24276    onEnterCancelled,
24277    onBeforeLeave,
24278    onLeave,
24279    onAfterLeave,
24280    onLeaveCancelled,
24281    onBeforeAppear,
24282    onAppear,
24283    onAfterAppear,
24284    onAppearCancelled
24285  } = props;
24286  const key = String(vnode.key);
24287  const leavingVNodesCache = getLeavingNodesForType(state, vnode);
24288  const callHook = (hook, args) => {
24289    hook && callWithAsyncErrorHandling(
24290      hook,
24291      instance,
24292      9,
24293      args
24294    );
24295  };
24296  const callAsyncHook = (hook, args) => {
24297    const done = args[1];
24298    callHook(hook, args);
24299    if (Object(_vue_shared__WEBPACK_IMPORTED_MODULE_1__["isArray"])(hook)) {
24300      if (hook.every((hook2) => hook2.length <= 1))
24301        done();
24302    } else if (hook.length <= 1) {
24303      done();
24304    }
24305  };
24306  const hooks = {
24307    mode,
24308    persisted,
24309    beforeEnter(el) {
24310      let hook = onBeforeEnter;
24311      if (!state.isMounted) {
24312        if (appear) {
24313          hook = onBeforeAppear || onBeforeEnter;
24314        } else {
24315          return;
24316        }
24317      }
24318      if (el[leaveCbKey]) {
24319        el[leaveCbKey](
24320          true
24321          /* cancelled */
24322        );
24323      }
24324      const leavingVNode = leavingVNodesCache[key];
24325      if (leavingVNode && isSameVNodeType(vnode, leavingVNode) && leavingVNode.el[leaveCbKey]) {
24326        leavingVNode.el[leaveCbKey]();
24327      }
24328      callHook(hook, [el]);
24329    },
24330    enter(el) {
24331      let hook = onEnter;
24332      let afterHook = onAfterEnter;
24333      let cancelHook = onEnterCancelled;
24334      if (!state.isMounted) {
24335        if (appear) {
24336          hook = onAppear || onEnter;
24337          afterHook = onAfterAppear || onAfterEnter;
24338          cancelHook = onAppearCancelled || onEnterCancelled;
24339        } else {
24340          return;
24341        }
24342      }
24343      let called = false;
24344      const done = el[enterCbKey] = (cancelled) => {
24345        if (called)
24346          return;
24347        called = true;
24348        if (cancelled) {
24349          callHook(cancelHook, [el]);
24350        } else {
24351          callHook(afterHook, [el]);
24352        }
24353        if (hooks.delayedLeave) {
24354          hooks.delayedLeave();
24355        }
24356        el[enterCbKey] = void 0;
24357      };
24358      if (hook) {
24359        callAsyncHook(hook, [el, done]);
24360      } else {
24361        done();
24362      }
24363    },
24364    leave(el, remove) {
24365      const key2 = String(vnode.key);
24366      if (el[enterCbKey]) {
24367        el[enterCbKey](
24368          true
24369          /* cancelled */
24370        );
24371      }
24372      if (state.isUnmounting) {
24373        return remove();
24374      }
24375      callHook(onBeforeLeave, [el]);
24376      let called = false;
24377      const done = el[leaveCbKey] = (cancelled) => {
24378        if (called)
24379          return;
24380        called = true;
24381        remove();
24382        if (cancelled) {
24383          callHook(onLeaveCancelled, [el]);
24384        } else {
24385          callHook(onAfterLeave, [el]);
24386        }
24387        el[leaveCbKey] = void 0;
24388        if (leavingVNodesCache[key2] === vnode) {
24389          delete leavingVNodesCache[key2];
24390        }
24391      };
24392      leavingVNodesCache[key2] = vnode;
24393      if (onLeave) {
24394        callAsyncHook(onLeave, [el, done]);
24395      } else {
24396        done();
24397      }
24398    },
24399    clone(vnode2) {
24400      return resolveTransitionHooks(vnode2, props, state, instance);
24401    }
24402  };
24403  return hooks;
24404}
24405function emptyPlaceholder(vnode) {
24406  if (isKeepAlive(vnode)) {
24407    vnode = cloneVNode(vnode);
24408    vnode.children = null;
24409    return vnode;
24410  }
24411}
24412function getKeepAliveChild(vnode) {
24413  return isKeepAlive(vnode) ? (
24414    // #7121 ensure get the child component subtree in case
24415    // it's been replaced during HMR
24416     true && vnode.component ? vnode.component.subTree : vnode.children ? vnode.children[0] : void 0
24417  ) : vnode;
24418}
24419function setTransitionHooks(vnode, hooks) {
24420  if (vnode.shapeFlag & 6 && vnode.component) {
24421    setTransitionHooks(vnode.component.subTree, hooks);
24422  } else if (vnode.shapeFlag & 128) {
24423    vnode.ssContent.transition = hooks.clone(vnode.ssContent);
24424    vnode.ssFallback.transition = hooks.clone(vnode.ssFallback);
24425  } else {
24426    vnode.transition = hooks;
24427  }
24428}
24429function getTransitionRawChildren(children, keepComment = false, parentKey) {
24430  let ret = [];
24431  let keyedFragmentCount = 0;
24432  for (let i = 0; i < children.length; i++) {
24433    let child = children[i];
24434    const key = parentKey == null ? child.key : String(parentKey) + String(child.key != null ? child.key : i);
24435    if (child.type === Fragment) {
24436      if (child.patchFlag & 128)
24437        keyedFragmentCount++;
24438      ret = ret.concat(
24439        getTransitionRawChildren(child.children, keepComment, key)
24440      );
24441    } else if (keepComment || child.type !== Comment) {
24442      ret.push(key != null ? cloneVNode(child, { key }) : child);
24443    }
24444  }
24445  if (keyedFragmentCount > 1) {
24446    for (let i = 0; i < ret.length; i++) {
24447      ret[i].patchFlag = -2;
24448    }
24449  }
24450  return ret;
24451}
24452
24453/*! #__NO_SIDE_EFFECTS__ */
24454// @__NO_SIDE_EFFECTS__
24455function defineComponent(options, extraOptions) {
24456  return Object(_vue_shared__WEBPACK_IMPORTED_MODULE_1__["isFunction"])(options) ? (
24457    // #8326: extend call and options.name access are considered side-effects
24458    // by Rollup, so we have to wrap it in a pure-annotated IIFE.
24459    /* @__PURE__ */ (() => Object(_vue_shared__WEBPACK_IMPORTED_MODULE_1__["extend"])({ name: options.name }, extraOptions, { setup: options }))()
24460  ) : options;
24461}
24462
24463const isAsyncWrapper = (i) => !!i.type.__asyncLoader;
24464/*! #__NO_SIDE_EFFECTS__ */
24465// @__NO_SIDE_EFFECTS__
24466function defineAsyncComponent(source) {
24467  if (Object(_vue_shared__WEBPACK_IMPORTED_MODULE_1__["isFunction"])(source)) {
24468    source = { loader: source };
24469  }
24470  const {
24471    loader,
24472    loadingComponent,
24473    errorComponent,
24474    delay = 200,
24475    timeout,
24476    // undefined = never times out
24477    suspensible = true,
24478    onError: userOnError
24479  } = source;
24480  let pendingRequest = null;
24481  let resolvedComp;
24482  let retries = 0;
24483  const retry = () => {
24484    retries++;
24485    pendingRequest = null;
24486    return load();
24487  };
24488  const load = () => {
24489    let thisRequest;
24490    return pendingRequest || (thisRequest = pendingRequest = loader().catch((err) => {
24491      err = err instanceof Error ? err : new Error(String(err));
24492      if (userOnError) {
24493        return new Promise((resolve, reject) => {
24494          const userRetry = () => resolve(retry());
24495          const userFail = () => reject(err);
24496          userOnError(err, userRetry, userFail, retries + 1);
24497        });
24498      } else {
24499        throw err;
24500      }
24501    }).then((comp) => {
24502      if (thisRequest !== pendingRequest && pendingRequest) {
24503        return pendingRequest;
24504      }
24505      if ( true && !comp) {
24506        warn$1(
24507          `Async component loader resolved to undefined. If you are using retry(), make sure to return its return value.`
24508        );
24509      }
24510      if (comp && (comp.__esModule || comp[Symbol.toStringTag] === "Module")) {
24511        comp = comp.default;
24512      }
24513      if ( true && comp && !Object(_vue_shared__WEBPACK_IMPORTED_MODULE_1__["isObject"])(comp) && !Object(_vue_shared__WEBPACK_IMPORTED_MODULE_1__["isFunction"])(comp)) {
24514        throw new Error(`Invalid async component load result: ${comp}`);
24515      }
24516      resolvedComp = comp;
24517      return comp;
24518    }));
24519  };
24520  return defineComponent({
24521    name: "AsyncComponentWrapper",
24522    __asyncLoader: load,
24523    get __asyncResolved() {
24524      return resolvedComp;
24525    },
24526    setup() {
24527      const instance = currentInstance;
24528      if (resolvedComp) {
24529        return () => createInnerComp(resolvedComp, instance);
24530      }
24531      const onError = (err) => {
24532        pendingRequest = null;
24533        handleError(
24534          err,
24535          instance,
24536          13,
24537          !errorComponent
24538        );
24539      };
24540      if (suspensible && instance.suspense || isInSSRComponentSetup) {
24541        return load().then((comp) => {
24542          return () => createInnerComp(comp, instance);
24543        }).catch((err) => {
24544          onError(err);
24545          return () => errorComponent ? createVNode(errorComponent, {
24546            error: err
24547          }) : null;
24548        });
24549      }
24550      const loaded = Object(_vue_reactivity__WEBPACK_IMPORTED_MODULE_0__["ref"])(false);
24551      const error = Object(_vue_reactivity__WEBPACK_IMPORTED_MODULE_0__["ref"])();
24552      const delayed = Object(_vue_reactivity__WEBPACK_IMPORTED_MODULE_0__["ref"])(!!delay);
24553      if (delay) {
24554        setTimeout(() => {
24555          delayed.value = false;
24556        }, delay);
24557      }
24558      if (timeout != null) {
24559        setTimeout(() => {
24560          if (!loaded.value && !error.value) {
24561            const err = new Error(
24562              `Async component timed out after ${timeout}ms.`
24563            );
24564            onError(err);
24565            error.value = err;
24566          }
24567        }, timeout);
24568      }
24569      load().then(() => {
24570        loaded.value = true;
24571        if (instance.parent && isKeepAlive(instance.parent.vnode)) {
24572          instance.parent.effect.dirty = true;
24573          queueJob(instance.parent.update);
24574        }
24575      }).catch((err) => {
24576        onError(err);
24577        error.value = err;
24578      });
24579      return () => {
24580        if (loaded.value && resolvedComp) {
24581          return createInnerComp(resolvedComp, instance);
24582        } else if (error.value && errorComponent) {
24583          return createVNode(errorComponent, {
24584            error: error.value
24585          });
24586        } else if (loadingComponent && !delayed.value) {
24587          return createVNode(loadingComponent);
24588        }
24589      };
24590    }
24591  });
24592}
24593function createInnerComp(comp, parent) {
24594  const { ref: ref2, props, children, ce } = parent.vnode;
24595  const vnode = createVNode(comp, props, children);
24596  vnode.ref = ref2;
24597  vnode.ce = ce;
24598  delete parent.vnode.ce;
24599  return vnode;
24600}
24601
24602const isKeepAlive = (vnode) => vnode.type.__isKeepAlive;
24603const KeepAliveImpl = {
24604  name: `KeepAlive`,
24605  // Marker for special handling inside the renderer. We are not using a ===
24606  // check directly on KeepAlive in the renderer, because importing it directly
24607  // would prevent it from being tree-shaken.
24608  __isKeepAlive: true,
24609  props: {
24610    include: [String, RegExp, Array],
24611    exclude: [String, RegExp, Array],
24612    max: [String, Number]
24613  },
24614  setup(props, { slots }) {
24615    const instance = getCurrentInstance();
24616    const sharedContext = instance.ctx;
24617    if (!sharedContext.renderer) {
24618      return () => {
24619        const children = slots.default && slots.default();
24620        return children && children.length === 1 ? children[0] : children;
24621      };
24622    }
24623    const cache = /* @__PURE__ */ new Map();
24624    const keys = /* @__PURE__ */ new Set();
24625    let current = null;
24626    if (true) {
24627      instance.__v_cache = cache;
24628    }
24629    const parentSuspense = instance.suspense;
24630    const {
24631      renderer: {
24632        p: patch,
24633        m: move,
24634        um: _unmount,
24635        o: { createElement }
24636      }
24637    } = sharedContext;
24638    const storageContainer = createElement("div");
24639    sharedContext.activate = (vnode, container, anchor, namespace, optimized) => {
24640      const instance2 = vnode.component;
24641      move(vnode, container, anchor, 0, parentSuspense);
24642      patch(
24643        instance2.vnode,
24644        vnode,
24645        container,
24646        anchor,
24647        instance2,
24648        parentSuspense,
24649        namespace,
24650        vnode.slotScopeIds,
24651        optimized
24652      );
24653      queuePostRenderEffect(() => {
24654        instance2.isDeactivated = false;
24655        if (instance2.a) {
24656          Object(_vue_shared__WEBPACK_IMPORTED_MODULE_1__["invokeArrayFns"])(instance2.a);
24657        }
24658        const vnodeHook = vnode.props && vnode.props.onVnodeMounted;
24659        if (vnodeHook) {
24660          invokeVNodeHook(vnodeHook, instance2.parent, vnode);
24661        }
24662      }, parentSuspense);
24663      if (true) {
24664        devtoolsComponentAdded(instance2);
24665      }
24666    };
24667    sharedContext.deactivate = (vnode) => {
24668      const instance2 = vnode.component;
24669      move(vnode, storageContainer, null, 1, parentSuspense);
24670      queuePostRenderEffect(() => {
24671        if (instance2.da) {
24672          Object(_vue_shared__WEBPACK_IMPORTED_MODULE_1__["invokeArrayFns"])(instance2.da);
24673        }
24674        const vnodeHook = vnode.props && vnode.props.onVnodeUnmounted;
24675        if (vnodeHook) {
24676          invokeVNodeHook(vnodeHook, instance2.parent, vnode);
24677        }
24678        instance2.isDeactivated = true;
24679      }, parentSuspense);
24680      if (true) {
24681        devtoolsComponentAdded(instance2);
24682      }
24683    };
24684    function unmount(vnode) {
24685      resetShapeFlag(vnode);
24686      _unmount(vnode, instance, parentSuspense, true);
24687    }
24688    function pruneCache(filter) {
24689      cache.forEach((vnode, key) => {
24690        const name = getComponentName(vnode.type);
24691        if (name && (!filter || !filter(name))) {
24692          pruneCacheEntry(key);
24693        }
24694      });
24695    }
24696    function pruneCacheEntry(key) {
24697      const cached = cache.get(key);
24698      if (!current || !isSameVNodeType(cached, current)) {
24699        unmount(cached);
24700      } else if (current) {
24701        resetShapeFlag(current);
24702      }
24703      cache.delete(key);
24704      keys.delete(key);
24705    }
24706    watch(
24707      () => [props.include, props.exclude],
24708      ([include, exclude]) => {
24709        include && pruneCache((name) => matches(include, name));
24710        exclude && pruneCache((name) => !matches(exclude, name));
24711      },
24712      // prune post-render after `current` has been updated
24713      { flush: "post", deep: true }
24714    );
24715    let pendingCacheKey = null;
24716    const cacheSubtree = () => {
24717      if (pendingCacheKey != null) {
24718        cache.set(pendingCacheKey, getInnerChild(instance.subTree));
24719      }
24720    };
24721    onMounted(cacheSubtree);
24722    onUpdated(cacheSubtree);
24723    onBeforeUnmount(() => {
24724      cache.forEach((cached) => {
24725        const { subTree, suspense } = instance;
24726        const vnode = getInnerChild(subTree);
24727        if (cached.type === vnode.type && cached.key === vnode.key) {
24728          resetShapeFlag(vnode);
24729          const da = vnode.component.da;
24730          da && queuePostRenderEffect(da, suspense);
24731          return;
24732        }
24733        unmount(cached);
24734      });
24735    });
24736    return () => {
24737      pendingCacheKey = null;
24738      if (!slots.default) {
24739        return null;
24740      }
24741      const children = slots.default();
24742      const rawVNode = children[0];
24743      if (children.length > 1) {
24744        if (true) {
24745          warn$1(`KeepAlive should contain exactly one component child.`);
24746        }
24747        current = null;
24748        return children;
24749      } else if (!isVNode(rawVNode) || !(rawVNode.shapeFlag & 4) && !(rawVNode.shapeFlag & 128)) {
24750        current = null;
24751        return rawVNode;
24752      }
24753      let vnode = getInnerChild(rawVNode);
24754      const comp = vnode.type;
24755      const name = getComponentName(
24756        isAsyncWrapper(vnode) ? vnode.type.__asyncResolved || {} : comp
24757      );
24758      const { include, exclude, max } = props;
24759      if (include && (!name || !matches(include, name)) || exclude && name && matches(exclude, name)) {
24760        current = vnode;
24761        return rawVNode;
24762      }
24763      const key = vnode.key == null ? comp : vnode.key;
24764      const cachedVNode = cache.get(key);
24765      if (vnode.el) {
24766        vnode = cloneVNode(vnode);
24767        if (rawVNode.shapeFlag & 128) {
24768          rawVNode.ssContent = vnode;
24769        }
24770      }
24771      pendingCacheKey = key;
24772      if (cachedVNode) {
24773        vnode.el = cachedVNode.el;
24774        vnode.component = cachedVNode.component;
24775        if (vnode.transition) {
24776          setTransitionHooks(vnode, vnode.transition);
24777        }
24778        vnode.shapeFlag |= 512;
24779        keys.delete(key);
24780        keys.add(key);
24781      } else {
24782        keys.add(key);
24783        if (max && keys.size > parseInt(max, 10)) {
24784          pruneCacheEntry(keys.values().next().value);
24785        }
24786      }
24787      vnode.shapeFlag |= 256;
24788      current = vnode;
24789      return isSuspense(rawVNode.type) ? rawVNode : vnode;
24790    };
24791  }
24792};
24793const KeepAlive = KeepAliveImpl;
24794function matches(pattern, name) {
24795  if (Object(_vue_shared__WEBPACK_IMPORTED_MODULE_1__["isArray"])(pattern)) {
24796    return pattern.some((p) => matches(p, name));
24797  } else if (Object(_vue_shared__WEBPACK_IMPORTED_MODULE_1__["isString"])(pattern)) {
24798    return pattern.split(",").includes(name);
24799  } else if (Object(_vue_shared__WEBPACK_IMPORTED_MODULE_1__["isRegExp"])(pattern)) {
24800    return pattern.test(name);
24801  }
24802  return false;
24803}
24804function onActivated(hook, target) {
24805  registerKeepAliveHook(hook, "a", target);
24806}
24807function onDeactivated(hook, target) {
24808  registerKeepAliveHook(hook, "da", target);
24809}
24810function registerKeepAliveHook(hook, type, target = currentInstance) {
24811  const wrappedHook = hook.__wdc || (hook.__wdc = () => {
24812    let current = target;
24813    while (current) {
24814      if (current.isDeactivated) {
24815        return;
24816      }
24817      current = current.parent;
24818    }
24819    return hook();
24820  });
24821  injectHook(type, wrappedHook, target);
24822  if (target) {
24823    let current = target.parent;
24824    while (current && current.parent) {
24825      if (isKeepAlive(current.parent.vnode)) {
24826        injectToKeepAliveRoot(wrappedHook, type, target, current);
24827      }
24828      current = current.parent;
24829    }
24830  }
24831}
24832function injectToKeepAliveRoot(hook, type, target, keepAliveRoot) {
24833  const injected = injectHook(
24834    type,
24835    hook,
24836    keepAliveRoot,
24837    true
24838    /* prepend */
24839  );
24840  onUnmounted(() => {
24841    Object(_vue_shared__WEBPACK_IMPORTED_MODULE_1__["remove"])(keepAliveRoot[type], injected);
24842  }, target);
24843}
24844function resetShapeFlag(vnode) {
24845  vnode.shapeFlag &= ~256;
24846  vnode.shapeFlag &= ~512;
24847}
24848function getInnerChild(vnode) {
24849  return vnode.shapeFlag & 128 ? vnode.ssContent : vnode;
24850}
24851
24852function injectHook(type, hook, target = currentInstance, prepend = false) {
24853  if (target) {
24854    const hooks = target[type] || (target[type] = []);
24855    const wrappedHook = hook.__weh || (hook.__weh = (...args) => {
24856      if (target.isUnmounted) {
24857        return;
24858      }
24859      Object(_vue_reactivity__WEBPACK_IMPORTED_MODULE_0__["pauseTracking"])();
24860      const reset = setCurrentInstance(target);
24861      const res = callWithAsyncErrorHandling(hook, target, type, args);
24862      reset();
24863      Object(_vue_reactivity__WEBPACK_IMPORTED_MODULE_0__["resetTracking"])();
24864      return res;
24865    });
24866    if (prepend) {
24867      hooks.unshift(wrappedHook);
24868    } else {
24869      hooks.push(wrappedHook);
24870    }
24871    return wrappedHook;
24872  } else if (true) {
24873    const apiName = Object(_vue_shared__WEBPACK_IMPORTED_MODULE_1__["toHandlerKey"])(ErrorTypeStrings$1[type].replace(/ hook$/, ""));
24874    warn$1(
24875      `${apiName} is called when there is no active component instance to be associated with. Lifecycle injection APIs can only be used during execution of setup().` + (` If you are using async setup(), make sure to register lifecycle hooks before the first await statement.` )
24876    );
24877  }
24878}
24879const createHook = (lifecycle) => (hook, target = currentInstance) => (
24880  // post-create lifecycle registrations are noops during SSR (except for serverPrefetch)
24881  (!isInSSRComponentSetup || lifecycle === "sp") && injectHook(lifecycle, (...args) => hook(...args), target)
24882);
24883const onBeforeMount = createHook("bm");
24884const onMounted = createHook("m");
24885const onBeforeUpdate = createHook("bu");
24886const onUpdated = createHook("u");
24887const onBeforeUnmount = createHook("bum");
24888const onUnmounted = createHook("um");
24889const onServerPrefetch = createHook("sp");
24890const onRenderTriggered = createHook(
24891  "rtg"
24892);
24893const onRenderTracked = createHook(
24894  "rtc"
24895);
24896function onErrorCaptured(hook, target = currentInstance) {
24897  injectHook("ec", hook, target);
24898}
24899
24900function renderList(source, renderItem, cache, index) {
24901  let ret;
24902  const cached = cache && cache[index];
24903  if (Object(_vue_shared__WEBPACK_IMPORTED_MODULE_1__["isArray"])(source) || Object(_vue_shared__WEBPACK_IMPORTED_MODULE_1__["isString"])(source)) {
24904    ret = new Array(source.length);
24905    for (let i = 0, l = source.length; i < l; i++) {
24906      ret[i] = renderItem(source[i], i, void 0, cached && cached[i]);
24907    }
24908  } else if (typeof source === "number") {
24909    if ( true && !Number.isInteger(source)) {
24910      warn$1(`The v-for range expect an integer value but got ${source}.`);
24911    }
24912    ret = new Array(source);
24913    for (let i = 0; i < source; i++) {
24914      ret[i] = renderItem(i + 1, i, void 0, cached && cached[i]);
24915    }
24916  } else if (Object(_vue_shared__WEBPACK_IMPORTED_MODULE_1__["isObject"])(source)) {
24917    if (source[Symbol.iterator]) {
24918      ret = Array.from(
24919        source,
24920        (item, i) => renderItem(item, i, void 0, cached && cached[i])
24921      );
24922    } else {
24923      const keys = Object.keys(source);
24924      ret = new Array(keys.length);
24925      for (let i = 0, l = keys.length; i < l; i++) {
24926        const key = keys[i];
24927        ret[i] = renderItem(source[key], key, i, cached && cached[i]);
24928      }
24929    }
24930  } else {
24931    ret = [];
24932  }
24933  if (cache) {
24934    cache[index] = ret;
24935  }
24936  return ret;
24937}
24938
24939function createSlots(slots, dynamicSlots) {
24940  for (let i = 0; i < dynamicSlots.length; i++) {
24941    const slot = dynamicSlots[i];
24942    if (Object(_vue_shared__WEBPACK_IMPORTED_MODULE_1__["isArray"])(slot)) {
24943      for (let j = 0; j < slot.length; j++) {
24944        slots[slot[j].name] = slot[j].fn;
24945      }
24946    } else if (slot) {
24947      slots[slot.name] = slot.key ? (...args) => {
24948        const res = slot.fn(...args);
24949        if (res)
24950          res.key = slot.key;
24951        return res;
24952      } : slot.fn;
24953    }
24954  }
24955  return slots;
24956}
24957
24958function renderSlot(slots, name, props = {}, fallback, noSlotted) {
24959  if (currentRenderingInstance.isCE || currentRenderingInstance.parent && isAsyncWrapper(currentRenderingInstance.parent) && currentRenderingInstance.parent.isCE) {
24960    if (name !== "default")
24961      props.name = name;
24962    return createVNode("slot", props, fallback && fallback());
24963  }
24964  let slot = slots[name];
24965  if ( true && slot && slot.length > 1) {
24966    warn$1(
24967      `SSR-optimized slot function detected in a non-SSR-optimized render function. You need to mark this component with $dynamic-slots in the parent template.`
24968    );
24969    slot = () => [];
24970  }
24971  if (slot && slot._c) {
24972    slot._d = false;
24973  }
24974  openBlock();
24975  const validSlotContent = slot && ensureValidVNode(slot(props));
24976  const rendered = createBlock(
24977    Fragment,
24978    {
24979      key: props.key || // slot content array of a dynamic conditional slot may have a branch
24980      // key attached in the `createSlots` helper, respect that
24981      validSlotContent && validSlotContent.key || `_${name}`
24982    },
24983    validSlotContent || (fallback ? fallback() : []),
24984    validSlotContent && slots._ === 1 ? 64 : -2
24985  );
24986  if (!noSlotted && rendered.scopeId) {
24987    rendered.slotScopeIds = [rendered.scopeId + "-s"];
24988  }
24989  if (slot && slot._c) {
24990    slot._d = true;
24991  }
24992  return rendered;
24993}
24994function ensureValidVNode(vnodes) {
24995  return vnodes.some((child) => {
24996    if (!isVNode(child))
24997      return true;
24998    if (child.type === Comment)
24999      return false;
25000    if (child.type === Fragment && !ensureValidVNode(child.children))
25001      return false;
25002    return true;
25003  }) ? vnodes : null;
25004}
25005
25006function toHandlers(obj, preserveCaseIfNecessary) {
25007  const ret = {};
25008  if ( true && !Object(_vue_shared__WEBPACK_IMPORTED_MODULE_1__["isObject"])(obj)) {
25009    warn$1(`v-on with no argument expects an object value.`);
25010    return ret;
25011  }
25012  for (const key in obj) {
25013    ret[preserveCaseIfNecessary && /[A-Z]/.test(key) ? `on:${key}` : Object(_vue_shared__WEBPACK_IMPORTED_MODULE_1__["toHandlerKey"])(key)] = obj[key];
25014  }
25015  return ret;
25016}
25017
25018const getPublicInstance = (i) => {
25019  if (!i)
25020    return null;
25021  if (isStatefulComponent(i))
25022    return getExposeProxy(i) || i.proxy;
25023  return getPublicInstance(i.parent);
25024};
25025const publicPropertiesMap = (
25026  // Move PURE marker to new line to workaround compiler discarding it
25027  // due to type annotation
25028  /* @__PURE__ */ Object(_vue_shared__WEBPACK_IMPORTED_MODULE_1__["extend"])(/* @__PURE__ */ Object.create(null), {
25029    $: (i) => i,
25030    $el: (i) => i.vnode.el,
25031    $data: (i) => i.data,
25032    $props: (i) =>  true ? Object(_vue_reactivity__WEBPACK_IMPORTED_MODULE_0__["shallowReadonly"])(i.props) : undefined,
25033    $attrs: (i) =>  true ? Object(_vue_reactivity__WEBPACK_IMPORTED_MODULE_0__["shallowReadonly"])(i.attrs) : undefined,
25034    $slots: (i) =>  true ? Object(_vue_reactivity__WEBPACK_IMPORTED_MODULE_0__["shallowReadonly"])(i.slots) : undefined,
25035    $refs: (i) =>  true ? Object(_vue_reactivity__WEBPACK_IMPORTED_MODULE_0__["shallowReadonly"])(i.refs) : undefined,
25036    $parent: (i) => getPublicInstance(i.parent),
25037    $root: (i) => getPublicInstance(i.root),
25038    $emit: (i) => i.emit,
25039    $options: (i) =>  true ? resolveMergedOptions(i) : undefined,
25040    $forceUpdate: (i) => i.f || (i.f = () => {
25041      i.effect.dirty = true;
25042      queueJob(i.update);
25043    }),
25044    $nextTick: (i) => i.n || (i.n = nextTick.bind(i.proxy)),
25045    $watch: (i) =>  true ? instanceWatch.bind(i) : undefined
25046  })
25047);
25048const isReservedPrefix = (key) => key === "_" || key === "$";
25049const hasSetupBinding = (state, key) => state !== _vue_shared__WEBPACK_IMPORTED_MODULE_1__["EMPTY_OBJ"] && !state.__isScriptSetup && Object(_vue_shared__WEBPACK_IMPORTED_MODULE_1__["hasOwn"])(state, key);
25050const PublicInstanceProxyHandlers = {
25051  get({ _: instance }, key) {
25052    const { ctx, setupState, data, props, accessCache, type, appContext } = instance;
25053    if ( true && key === "__isVue") {
25054      return true;
25055    }
25056    let normalizedProps;
25057    if (key[0] !== "$") {
25058      const n = accessCache[key];
25059      if (n !== void 0) {
25060        switch (n) {
25061          case 1 /* SETUP */:
25062            return setupState[key];
25063          case 2 /* DATA */:
25064            return data[key];
25065          case 4 /* CONTEXT */:
25066            return ctx[key];
25067          case 3 /* PROPS */:
25068            return props[key];
25069        }
25070      } else if (hasSetupBinding(setupState, key)) {
25071        accessCache[key] = 1 /* SETUP */;
25072        return setupState[key];
25073      } else if (data !== _vue_shared__WEBPACK_IMPORTED_MODULE_1__["EMPTY_OBJ"] && Object(_vue_shared__WEBPACK_IMPORTED_MODULE_1__["hasOwn"])(data, key)) {
25074        accessCache[key] = 2 /* DATA */;
25075        return data[key];
25076      } else if (
25077        // only cache other properties when instance has declared (thus stable)
25078        // props
25079        (normalizedProps = instance.propsOptions[0]) && Object(_vue_shared__WEBPACK_IMPORTED_MODULE_1__["hasOwn"])(normalizedProps, key)
25080      ) {
25081        accessCache[key] = 3 /* PROPS */;
25082        return props[key];
25083      } else if (ctx !== _vue_shared__WEBPACK_IMPORTED_MODULE_1__["EMPTY_OBJ"] && Object(_vue_shared__WEBPACK_IMPORTED_MODULE_1__["hasOwn"])(ctx, key)) {
25084        accessCache[key] = 4 /* CONTEXT */;
25085        return ctx[key];
25086      } else if ( false || shouldCacheAccess) {
25087        accessCache[key] = 0 /* OTHER */;
25088      }
25089    }
25090    const publicGetter = publicPropertiesMap[key];
25091    let cssModule, globalProperties;
25092    if (publicGetter) {
25093      if (key === "$attrs") {
25094        Object(_vue_reactivity__WEBPACK_IMPORTED_MODULE_0__["track"])(instance, "get", key);
25095         true && markAttrsAccessed();
25096      } else if ( true && key === "$slots") {
25097        Object(_vue_reactivity__WEBPACK_IMPORTED_MODULE_0__["track"])(instance, "get", key);
25098      }
25099      return publicGetter(instance);
25100    } else if (
25101      // css module (injected by vue-loader)
25102      (cssModule = type.__cssModules) && (cssModule = cssModule[key])
25103    ) {
25104      return cssModule;
25105    } else if (ctx !== _vue_shared__WEBPACK_IMPORTED_MODULE_1__["EMPTY_OBJ"] && Object(_vue_shared__WEBPACK_IMPORTED_MODULE_1__["hasOwn"])(ctx, key)) {
25106      accessCache[key] = 4 /* CONTEXT */;
25107      return ctx[key];
25108    } else if (
25109      // global properties
25110      globalProperties = appContext.config.globalProperties, Object(_vue_shared__WEBPACK_IMPORTED_MODULE_1__["hasOwn"])(globalProperties, key)
25111    ) {
25112      {
25113        return globalProperties[key];
25114      }
25115    } else if ( true && currentRenderingInstance && (!Object(_vue_shared__WEBPACK_IMPORTED_MODULE_1__["isString"])(key) || // #1091 avoid internal isRef/isVNode checks on component instance leading
25116    // to infinite warning loop
25117    key.indexOf("__v") !== 0)) {
25118      if (data !== _vue_shared__WEBPACK_IMPORTED_MODULE_1__["EMPTY_OBJ"] && isReservedPrefix(key[0]) && Object(_vue_shared__WEBPACK_IMPORTED_MODULE_1__["hasOwn"])(data, key)) {
25119        warn$1(
25120          `Property ${JSON.stringify(
25121            key
25122          )} must be accessed via $data because it starts with a reserved character ("$" or "_") and is not proxied on the render context.`
25123        );
25124      } else if (instance === currentRenderingInstance) {
25125        warn$1(
25126          `Property ${JSON.stringify(key)} was accessed during render but is not defined on instance.`
25127        );
25128      }
25129    }
25130  },
25131  set({ _: instance }, key, value) {
25132    const { data, setupState, ctx } = instance;
25133    if (hasSetupBinding(setupState, key)) {
25134      setupState[key] = value;
25135      return true;
25136    } else if ( true && setupState.__isScriptSetup && Object(_vue_shared__WEBPACK_IMPORTED_MODULE_1__["hasOwn"])(setupState, key)) {
25137      warn$1(`Cannot mutate <script setup> binding "${key}" from Options API.`);
25138      return false;
25139    } else if (data !== _vue_shared__WEBPACK_IMPORTED_MODULE_1__["EMPTY_OBJ"] && Object(_vue_shared__WEBPACK_IMPORTED_MODULE_1__["hasOwn"])(data, key)) {
25140      data[key] = value;
25141      return true;
25142    } else if (Object(_vue_shared__WEBPACK_IMPORTED_MODULE_1__["hasOwn"])(instance.props, key)) {
25143       true && warn$1(`Attempting to mutate prop "${key}". Props are readonly.`);
25144      return false;
25145    }
25146    if (key[0] === "$" && key.slice(1) in instance) {
25147       true && warn$1(
25148        `Attempting to mutate public property "${key}". Properties starting with $ are reserved and readonly.`
25149      );
25150      return false;
25151    } else {
25152      if ( true && key in instance.appContext.config.globalProperties) {
25153        Object.defineProperty(ctx, key, {
25154          enumerable: true,
25155          configurable: true,
25156          value
25157        });
25158      } else {
25159        ctx[key] = value;
25160      }
25161    }
25162    return true;
25163  },
25164  has({
25165    _: { data, setupState, accessCache, ctx, appContext, propsOptions }
25166  }, key) {
25167    let normalizedProps;
25168    return !!accessCache[key] || data !== _vue_shared__WEBPACK_IMPORTED_MODULE_1__["EMPTY_OBJ"] && Object(_vue_shared__WEBPACK_IMPORTED_MODULE_1__["hasOwn"])(data, key) || hasSetupBinding(setupState, key) || (normalizedProps = propsOptions[0]) && Object(_vue_shared__WEBPACK_IMPORTED_MODULE_1__["hasOwn"])(normalizedProps, key) || Object(_vue_shared__WEBPACK_IMPORTED_MODULE_1__["hasOwn"])(ctx, key) || Object(_vue_shared__WEBPACK_IMPORTED_MODULE_1__["hasOwn"])(publicPropertiesMap, key) || Object(_vue_shared__WEBPACK_IMPORTED_MODULE_1__["hasOwn"])(appContext.config.globalProperties, key);
25169  },
25170  defineProperty(target, key, descriptor) {
25171    if (descriptor.get != null) {
25172      target._.accessCache[key] = 0;
25173    } else if (Object(_vue_shared__WEBPACK_IMPORTED_MODULE_1__["hasOwn"])(descriptor, "value")) {
25174      this.set(target, key, descriptor.value, null);
25175    }
25176    return Reflect.defineProperty(target, key, descriptor);
25177  }
25178};
25179if (true) {
25180  PublicInstanceProxyHandlers.ownKeys = (target) => {
25181    warn$1(
25182      `Avoid app logic that relies on enumerating keys on a component instance. The keys will be empty in production mode to avoid performance overhead.`
25183    );
25184    return Reflect.ownKeys(target);
25185  };
25186}
25187const RuntimeCompiledPublicInstanceProxyHandlers = /* @__PURE__ */ Object(_vue_shared__WEBPACK_IMPORTED_MODULE_1__["extend"])(
25188  {},
25189  PublicInstanceProxyHandlers,
25190  {
25191    get(target, key) {
25192      if (key === Symbol.unscopables) {
25193        return;
25194      }
25195      return PublicInstanceProxyHandlers.get(target, key, target);
25196    },
25197    has(_, key) {
25198      const has = key[0] !== "_" && !Object(_vue_shared__WEBPACK_IMPORTED_MODULE_1__["isGloballyAllowed"])(key);
25199      if ( true && !has && PublicInstanceProxyHandlers.has(_, key)) {
25200        warn$1(
25201          `Property ${JSON.stringify(
25202            key
25203          )} should not start with _ which is a reserved prefix for Vue internals.`
25204        );
25205      }
25206      return has;
25207    }
25208  }
25209);
25210function createDevRenderContext(instance) {
25211  const target = {};
25212  Object.defineProperty(target, `_`, {
25213    configurable: true,
25214    enumerable: false,
25215    get: () => instance
25216  });
25217  Object.keys(publicPropertiesMap).forEach((key) => {
25218    Object.defineProperty(target, key, {
25219      configurable: true,
25220      enumerable: false,
25221      get: () => publicPropertiesMap[key](instance),
25222      // intercepted by the proxy so no need for implementation,
25223      // but needed to prevent set errors
25224      set: _vue_shared__WEBPACK_IMPORTED_MODULE_1__["NOOP"]
25225    });
25226  });
25227  return target;
25228}
25229function exposePropsOnRenderContext(instance) {
25230  const {
25231    ctx,
25232    propsOptions: [propsOptions]
25233  } = instance;
25234  if (propsOptions) {
25235    Object.keys(propsOptions).forEach((key) => {
25236      Object.defineProperty(ctx, key, {
25237        enumerable: true,
25238        configurable: true,
25239        get: () => instance.props[key],
25240        set: _vue_shared__WEBPACK_IMPORTED_MODULE_1__["NOOP"]
25241      });
25242    });
25243  }
25244}
25245function exposeSetupStateOnRenderContext(instance) {
25246  const { ctx, setupState } = instance;
25247  Object.keys(Object(_vue_reactivity__WEBPACK_IMPORTED_MODULE_0__["toRaw"])(setupState)).forEach((key) => {
25248    if (!setupState.__isScriptSetup) {
25249      if (isReservedPrefix(key[0])) {
25250        warn$1(
25251          `setup() return property ${JSON.stringify(
25252            key
25253          )} should not start with "$" or "_" which are reserved prefixes for Vue internals.`
25254        );
25255        return;
25256      }
25257      Object.defineProperty(ctx, key, {
25258        enumerable: true,
25259        configurable: true,
25260        get: () => setupState[key],
25261        set: _vue_shared__WEBPACK_IMPORTED_MODULE_1__["NOOP"]
25262      });
25263    }
25264  });
25265}
25266
25267const warnRuntimeUsage = (method) => warn$1(
25268  `${method}() is a compiler-hint helper that is only usable inside <script setup> of a single file component. Its arguments should be compiled away and passing it at runtime has no effect.`
25269);
25270function defineProps() {
25271  if (true) {
25272    warnRuntimeUsage(`defineProps`);
25273  }
25274  return null;
25275}
25276function defineEmits() {
25277  if (true) {
25278    warnRuntimeUsage(`defineEmits`);
25279  }
25280  return null;
25281}
25282function defineExpose(exposed) {
25283  if (true) {
25284    warnRuntimeUsage(`defineExpose`);
25285  }
25286}
25287function defineOptions(options) {
25288  if (true) {
25289    warnRuntimeUsage(`defineOptions`);
25290  }
25291}
25292function defineSlots() {
25293  if (true) {
25294    warnRuntimeUsage(`defineSlots`);
25295  }
25296  return null;
25297}
25298function defineModel() {
25299  if (true) {
25300    warnRuntimeUsage("defineModel");
25301  }
25302}
25303function withDefaults(props, defaults) {
25304  if (true) {
25305    warnRuntimeUsage(`withDefaults`);
25306  }
25307  return null;
25308}
25309function useSlots() {
25310  return getContext().slots;
25311}
25312function useAttrs() {
25313  return getContext().attrs;
25314}
25315function getContext() {
25316  const i = getCurrentInstance();
25317  if ( true && !i) {
25318    warn$1(`useContext() called without active instance.`);
25319  }
25320  return i.setupContext || (i.setupContext = createSetupContext(i));
25321}
25322function normalizePropsOrEmits(props) {
25323  return Object(_vue_shared__WEBPACK_IMPORTED_MODULE_1__["isArray"])(props) ? props.reduce(
25324    (normalized, p) => (normalized[p] = null, normalized),
25325    {}
25326  ) : props;
25327}
25328function mergeDefaults(raw, defaults) {
25329  const props = normalizePropsOrEmits(raw);
25330  for (const key in defaults) {
25331    if (key.startsWith("__skip"))
25332      continue;
25333    let opt = props[key];
25334    if (opt) {
25335      if (Object(_vue_shared__WEBPACK_IMPORTED_MODULE_1__["isArray"])(opt) || Object(_vue_shared__WEBPACK_IMPORTED_MODULE_1__["isFunction"])(opt)) {
25336        opt = props[key] = { type: opt, default: defaults[key] };
25337      } else {
25338        opt.default = defaults[key];
25339      }
25340    } else if (opt === null) {
25341      opt = props[key] = { default: defaults[key] };
25342    } else if (true) {
25343      warn$1(`props default key "${key}" has no corresponding declaration.`);
25344    }
25345    if (opt && defaults[`__skip_${key}`]) {
25346      opt.skipFactory = true;
25347    }
25348  }
25349  return props;
25350}
25351function mergeModels(a, b) {
25352  if (!a || !b)
25353    return a || b;
25354  if (Object(_vue_shared__WEBPACK_IMPORTED_MODULE_1__["isArray"])(a) && Object(_vue_shared__WEBPACK_IMPORTED_MODULE_1__["isArray"])(b))
25355    return a.concat(b);
25356  return Object(_vue_shared__WEBPACK_IMPORTED_MODULE_1__["extend"])({}, normalizePropsOrEmits(a), normalizePropsOrEmits(b));
25357}
25358function createPropsRestProxy(props, excludedKeys) {
25359  const ret = {};
25360  for (const key in props) {
25361    if (!excludedKeys.includes(key)) {
25362      Object.defineProperty(ret, key, {
25363        enumerable: true,
25364        get: () => props[key]
25365      });
25366    }
25367  }
25368  return ret;
25369}
25370function withAsyncContext(getAwaitable) {
25371  const ctx = getCurrentInstance();
25372  if ( true && !ctx) {
25373    warn$1(
25374      `withAsyncContext called without active current instance. This is likely a bug.`
25375    );
25376  }
25377  let awaitable = getAwaitable();
25378  unsetCurrentInstance();
25379  if (Object(_vue_shared__WEBPACK_IMPORTED_MODULE_1__["isPromise"])(awaitable)) {
25380    awaitable = awaitable.catch((e) => {
25381      setCurrentInstance(ctx);
25382      throw e;
25383    });
25384  }
25385  return [awaitable, () => setCurrentInstance(ctx)];
25386}
25387
25388function createDuplicateChecker() {
25389  const cache = /* @__PURE__ */ Object.create(null);
25390  return (type, key) => {
25391    if (cache[key]) {
25392      warn$1(`${type} property "${key}" is already defined in ${cache[key]}.`);
25393    } else {
25394      cache[key] = type;
25395    }
25396  };
25397}
25398let shouldCacheAccess = true;
25399function applyOptions(instance) {
25400  const options = resolveMergedOptions(instance);
25401  const publicThis = instance.proxy;
25402  const ctx = instance.ctx;
25403  shouldCacheAccess = false;
25404  if (options.beforeCreate) {
25405    callHook(options.beforeCreate, instance, "bc");
25406  }
25407  const {
25408    // state
25409    data: dataOptions,
25410    computed: computedOptions,
25411    methods,
25412    watch: watchOptions,
25413    provide: provideOptions,
25414    inject: injectOptions,
25415    // lifecycle
25416    created,
25417    beforeMount,
25418    mounted,
25419    beforeUpdate,
25420    updated,
25421    activated,
25422    deactivated,
25423    beforeDestroy,
25424    beforeUnmount,
25425    destroyed,
25426    unmounted,
25427    render,
25428    renderTracked,
25429    renderTriggered,
25430    errorCaptured,
25431    serverPrefetch,
25432    // public API
25433    expose,
25434    inheritAttrs,
25435    // assets
25436    components,
25437    directives,
25438    filters
25439  } = options;
25440  const checkDuplicateProperties =  true ? createDuplicateChecker() : undefined;
25441  if (true) {
25442    const [propsOptions] = instance.propsOptions;
25443    if (propsOptions) {
25444      for (const key in propsOptions) {
25445        checkDuplicateProperties("Props" /* PROPS */, key);
25446      }
25447    }
25448  }
25449  if (injectOptions) {
25450    resolveInjections(injectOptions, ctx, checkDuplicateProperties);
25451  }
25452  if (methods) {
25453    for (const key in methods) {
25454      const methodHandler = methods[key];
25455      if (Object(_vue_shared__WEBPACK_IMPORTED_MODULE_1__["isFunction"])(methodHandler)) {
25456        if (true) {
25457          Object.defineProperty(ctx, key, {
25458            value: methodHandler.bind(publicThis),
25459            configurable: true,
25460            enumerable: true,
25461            writable: true
25462          });
25463        } else {}
25464        if (true) {
25465          checkDuplicateProperties("Methods" /* METHODS */, key);
25466        }
25467      } else if (true) {
25468        warn$1(
25469          `Method "${key}" has type "${typeof methodHandler}" in the component definition. Did you reference the function correctly?`
25470        );
25471      }
25472    }
25473  }
25474  if (dataOptions) {
25475    if ( true && !Object(_vue_shared__WEBPACK_IMPORTED_MODULE_1__["isFunction"])(dataOptions)) {
25476      warn$1(
25477        `The data option must be a function. Plain object usage is no longer supported.`
25478      );
25479    }
25480    const data = dataOptions.call(publicThis, publicThis);
25481    if ( true && Object(_vue_shared__WEBPACK_IMPORTED_MODULE_1__["isPromise"])(data)) {
25482      warn$1(
25483        `data() returned a Promise - note data() cannot be async; If you intend to perform data fetching before component renders, use async setup() + <Suspense>.`
25484      );
25485    }
25486    if (!Object(_vue_shared__WEBPACK_IMPORTED_MODULE_1__["isObject"])(data)) {
25487       true && warn$1(`data() should return an object.`);
25488    } else {
25489      instance.data = Object(_vue_reactivity__WEBPACK_IMPORTED_MODULE_0__["reactive"])(data);
25490      if (true) {
25491        for (const key in data) {
25492          checkDuplicateProperties("Data" /* DATA */, key);
25493          if (!isReservedPrefix(key[0])) {
25494            Object.defineProperty(ctx, key, {
25495              configurable: true,
25496              enumerable: true,
25497              get: () => data[key],
25498              set: _vue_shared__WEBPACK_IMPORTED_MODULE_1__["NOOP"]
25499            });
25500          }
25501        }
25502      }
25503    }
25504  }
25505  shouldCacheAccess = true;
25506  if (computedOptions) {
25507    for (const key in computedOptions) {
25508      const opt = computedOptions[key];
25509      const get = Object(_vue_shared__WEBPACK_IMPORTED_MODULE_1__["isFunction"])(opt) ? opt.bind(publicThis, publicThis) : Object(_vue_shared__WEBPACK_IMPORTED_MODULE_1__["isFunction"])(opt.get) ? opt.get.bind(publicThis, publicThis) : _vue_shared__WEBPACK_IMPORTED_MODULE_1__["NOOP"];
25510      if ( true && get === _vue_shared__WEBPACK_IMPORTED_MODULE_1__["NOOP"]) {
25511        warn$1(`Computed property "${key}" has no getter.`);
25512      }
25513      const set = !Object(_vue_shared__WEBPACK_IMPORTED_MODULE_1__["isFunction"])(opt) && Object(_vue_shared__WEBPACK_IMPORTED_MODULE_1__["isFunction"])(opt.set) ? opt.set.bind(publicThis) :  true ? () => {
25514        warn$1(
25515          `Write operation failed: computed property "${key}" is readonly.`
25516        );
25517      } : undefined;
25518      const c = computed({
25519        get,
25520        set
25521      });
25522      Object.defineProperty(ctx, key, {
25523        enumerable: true,
25524        configurable: true,
25525        get: () => c.value,
25526        set: (v) => c.value = v
25527      });
25528      if (true) {
25529        checkDuplicateProperties("Computed" /* COMPUTED */, key);
25530      }
25531    }
25532  }
25533  if (watchOptions) {
25534    for (const key in watchOptions) {
25535      createWatcher(watchOptions[key], ctx, publicThis, key);
25536    }
25537  }
25538  if (provideOptions) {
25539    const provides = Object(_vue_shared__WEBPACK_IMPORTED_MODULE_1__["isFunction"])(provideOptions) ? provideOptions.call(publicThis) : provideOptions;
25540    Reflect.ownKeys(provides).forEach((key) => {
25541      provide(key, provides[key]);
25542    });
25543  }
25544  if (created) {
25545    callHook(created, instance, "c");
25546  }
25547  function registerLifecycleHook(register, hook) {
25548    if (Object(_vue_shared__WEBPACK_IMPORTED_MODULE_1__["isArray"])(hook)) {
25549      hook.forEach((_hook) => register(_hook.bind(publicThis)));
25550    } else if (hook) {
25551      register(hook.bind(publicThis));
25552    }
25553  }
25554  registerLifecycleHook(onBeforeMount, beforeMount);
25555  registerLifecycleHook(onMounted, mounted);
25556  registerLifecycleHook(onBeforeUpdate, beforeUpdate);
25557  registerLifecycleHook(onUpdated, updated);
25558  registerLifecycleHook(onActivated, activated);
25559  registerLifecycleHook(onDeactivated, deactivated);
25560  registerLifecycleHook(onErrorCaptured, errorCaptured);
25561  registerLifecycleHook(onRenderTracked, renderTracked);
25562  registerLifecycleHook(onRenderTriggered, renderTriggered);
25563  registerLifecycleHook(onBeforeUnmount, beforeUnmount);
25564  registerLifecycleHook(onUnmounted, unmounted);
25565  registerLifecycleHook(onServerPrefetch, serverPrefetch);
25566  if (Object(_vue_shared__WEBPACK_IMPORTED_MODULE_1__["isArray"])(expose)) {
25567    if (expose.length) {
25568      const exposed = instance.exposed || (instance.exposed = {});
25569      expose.forEach((key) => {
25570        Object.defineProperty(exposed, key, {
25571          get: () => publicThis[key],
25572          set: (val) => publicThis[key] = val
25573        });
25574      });
25575    } else if (!instance.exposed) {
25576      instance.exposed = {};
25577    }
25578  }
25579  if (render && instance.render === _vue_shared__WEBPACK_IMPORTED_MODULE_1__["NOOP"]) {
25580    instance.render = render;
25581  }
25582  if (inheritAttrs != null) {
25583    instance.inheritAttrs = inheritAttrs;
25584  }
25585  if (components)
25586    instance.components = components;
25587  if (directives)
25588    instance.directives = directives;
25589}
25590function resolveInjections(injectOptions, ctx, checkDuplicateProperties = _vue_shared__WEBPACK_IMPORTED_MODULE_1__["NOOP"]) {
25591  if (Object(_vue_shared__WEBPACK_IMPORTED_MODULE_1__["isArray"])(injectOptions)) {
25592    injectOptions = normalizeInject(injectOptions);
25593  }
25594  for (const key in injectOptions) {
25595    const opt = injectOptions[key];
25596    let injected;
25597    if (Object(_vue_shared__WEBPACK_IMPORTED_MODULE_1__["isObject"])(opt)) {
25598      if ("default" in opt) {
25599        injected = inject(
25600          opt.from || key,
25601          opt.default,
25602          true
25603        );
25604      } else {
25605        injected = inject(opt.from || key);
25606      }
25607    } else {
25608      injected = inject(opt);
25609    }
25610    if (Object(_vue_reactivity__WEBPACK_IMPORTED_MODULE_0__["isRef"])(injected)) {
25611      Object.defineProperty(ctx, key, {
25612        enumerable: true,
25613        configurable: true,
25614        get: () => injected.value,
25615        set: (v) => injected.value = v
25616      });
25617    } else {
25618      ctx[key] = injected;
25619    }
25620    if (true) {
25621      checkDuplicateProperties("Inject" /* INJECT */, key);
25622    }
25623  }
25624}
25625function callHook(hook, instance, type) {
25626  callWithAsyncErrorHandling(
25627    Object(_vue_shared__WEBPACK_IMPORTED_MODULE_1__["isArray"])(hook) ? hook.map((h) => h.bind(instance.proxy)) : hook.bind(instance.proxy),
25628    instance,
25629    type
25630  );
25631}
25632function createWatcher(raw, ctx, publicThis, key) {
25633  const getter = key.includes(".") ? createPathGetter(publicThis, key) : () => publicThis[key];
25634  if (Object(_vue_shared__WEBPACK_IMPORTED_MODULE_1__["isString"])(raw)) {
25635    const handler = ctx[raw];
25636    if (Object(_vue_shared__WEBPACK_IMPORTED_MODULE_1__["isFunction"])(handler)) {
25637      watch(getter, handler);
25638    } else if (true) {
25639      warn$1(`Invalid watch handler specified by key "${raw}"`, handler);
25640    }
25641  } else if (Object(_vue_shared__WEBPACK_IMPORTED_MODULE_1__["isFunction"])(raw)) {
25642    watch(getter, raw.bind(publicThis));
25643  } else if (Object(_vue_shared__WEBPACK_IMPORTED_MODULE_1__["isObject"])(raw)) {
25644    if (Object(_vue_shared__WEBPACK_IMPORTED_MODULE_1__["isArray"])(raw)) {
25645      raw.forEach((r) => createWatcher(r, ctx, publicThis, key));
25646    } else {
25647      const handler = Object(_vue_shared__WEBPACK_IMPORTED_MODULE_1__["isFunction"])(raw.handler) ? raw.handler.bind(publicThis) : ctx[raw.handler];
25648      if (Object(_vue_shared__WEBPACK_IMPORTED_MODULE_1__["isFunction"])(handler)) {
25649        watch(getter, handler, raw);
25650      } else if (true) {
25651        warn$1(`Invalid watch handler specified by key "${raw.handler}"`, handler);
25652      }
25653    }
25654  } else if (true) {
25655    warn$1(`Invalid watch option: "${key}"`, raw);
25656  }
25657}
25658function resolveMergedOptions(instance) {
25659  const base = instance.type;
25660  const { mixins, extends: extendsOptions } = base;
25661  const {
25662    mixins: globalMixins,
25663    optionsCache: cache,
25664    config: { optionMergeStrategies }
25665  } = instance.appContext;
25666  const cached = cache.get(base);
25667  let resolved;
25668  if (cached) {
25669    resolved = cached;
25670  } else if (!globalMixins.length && !mixins && !extendsOptions) {
25671    {
25672      resolved = base;
25673    }
25674  } else {
25675    resolved = {};
25676    if (globalMixins.length) {
25677      globalMixins.forEach(
25678        (m) => mergeOptions(resolved, m, optionMergeStrategies, true)
25679      );
25680    }
25681    mergeOptions(resolved, base, optionMergeStrategies);
25682  }
25683  if (Object(_vue_shared__WEBPACK_IMPORTED_MODULE_1__["isObject"])(base)) {
25684    cache.set(base, resolved);
25685  }
25686  return resolved;
25687}
25688function mergeOptions(to, from, strats, asMixin = false) {
25689  const { mixins, extends: extendsOptions } = from;
25690  if (extendsOptions) {
25691    mergeOptions(to, extendsOptions, strats, true);
25692  }
25693  if (mixins) {
25694    mixins.forEach(
25695      (m) => mergeOptions(to, m, strats, true)
25696    );
25697  }
25698  for (const key in from) {
25699    if (asMixin && key === "expose") {
25700       true && warn$1(
25701        `"expose" option is ignored when declared in mixins or extends. It should only be declared in the base component itself.`
25702      );
25703    } else {
25704      const strat = internalOptionMergeStrats[key] || strats && strats[key];
25705      to[key] = strat ? strat(to[key], from[key]) : from[key];
25706    }
25707  }
25708  return to;
25709}
25710const internalOptionMergeStrats = {
25711  data: mergeDataFn,
25712  props: mergeEmitsOrPropsOptions,
25713  emits: mergeEmitsOrPropsOptions,
25714  // objects
25715  methods: mergeObjectOptions,
25716  computed: mergeObjectOptions,
25717  // lifecycle
25718  beforeCreate: mergeAsArray,
25719  created: mergeAsArray,
25720  beforeMount: mergeAsArray,
25721  mounted: mergeAsArray,
25722  beforeUpdate: mergeAsArray,
25723  updated: mergeAsArray,
25724  beforeDestroy: mergeAsArray,
25725  beforeUnmount: mergeAsArray,
25726  destroyed: mergeAsArray,
25727  unmounted: mergeAsArray,
25728  activated: mergeAsArray,
25729  deactivated: mergeAsArray,
25730  errorCaptured: mergeAsArray,
25731  serverPrefetch: mergeAsArray,
25732  // assets
25733  components: mergeObjectOptions,
25734  directives: mergeObjectOptions,
25735  // watch
25736  watch: mergeWatchOptions,
25737  // provide / inject
25738  provide: mergeDataFn,
25739  inject: mergeInject
25740};
25741function mergeDataFn(to, from) {
25742  if (!from) {
25743    return to;
25744  }
25745  if (!to) {
25746    return from;
25747  }
25748  return function mergedDataFn() {
25749    return (Object(_vue_shared__WEBPACK_IMPORTED_MODULE_1__["extend"]))(
25750      Object(_vue_shared__WEBPACK_IMPORTED_MODULE_1__["isFunction"])(to) ? to.call(this, this) : to,
25751      Object(_vue_shared__WEBPACK_IMPORTED_MODULE_1__["isFunction"])(from) ? from.call(this, this) : from
25752    );
25753  };
25754}
25755function mergeInject(to, from) {
25756  return mergeObjectOptions(normalizeInject(to), normalizeInject(from));
25757}
25758function normalizeInject(raw) {
25759  if (Object(_vue_shared__WEBPACK_IMPORTED_MODULE_1__["isArray"])(raw)) {
25760    const res = {};
25761    for (let i = 0; i < raw.length; i++) {
25762      res[raw[i]] = raw[i];
25763    }
25764    return res;
25765  }
25766  return raw;
25767}
25768function mergeAsArray(to, from) {
25769  return to ? [...new Set([].concat(to, from))] : from;
25770}
25771function mergeObjectOptions(to, from) {
25772  return to ? Object(_vue_shared__WEBPACK_IMPORTED_MODULE_1__["extend"])(/* @__PURE__ */ Object.create(null), to, from) : from;
25773}
25774function mergeEmitsOrPropsOptions(to, from) {
25775  if (to) {
25776    if (Object(_vue_shared__WEBPACK_IMPORTED_MODULE_1__["isArray"])(to) && Object(_vue_shared__WEBPACK_IMPORTED_MODULE_1__["isArray"])(from)) {
25777      return [.../* @__PURE__ */ new Set([...to, ...from])];
25778    }
25779    return Object(_vue_shared__WEBPACK_IMPORTED_MODULE_1__["extend"])(
25780      /* @__PURE__ */ Object.create(null),
25781      normalizePropsOrEmits(to),
25782      normalizePropsOrEmits(from != null ? from : {})
25783    );
25784  } else {
25785    return from;
25786  }
25787}
25788function mergeWatchOptions(to, from) {
25789  if (!to)
25790    return from;
25791  if (!from)
25792    return to;
25793  const merged = Object(_vue_shared__WEBPACK_IMPORTED_MODULE_1__["extend"])(/* @__PURE__ */ Object.create(null), to);
25794  for (const key in from) {
25795    merged[key] = mergeAsArray(to[key], from[key]);
25796  }
25797  return merged;
25798}
25799
25800function createAppContext() {
25801  return {
25802    app: null,
25803    config: {
25804      isNativeTag: _vue_shared__WEBPACK_IMPORTED_MODULE_1__["NO"],
25805      performance: false,
25806      globalProperties: {},
25807      optionMergeStrategies: {},
25808      errorHandler: void 0,
25809      warnHandler: void 0,
25810      compilerOptions: {}
25811    },
25812    mixins: [],
25813    components: {},
25814    directives: {},
25815    provides: /* @__PURE__ */ Object.create(null),
25816    optionsCache: /* @__PURE__ */ new WeakMap(),
25817    propsCache: /* @__PURE__ */ new WeakMap(),
25818    emitsCache: /* @__PURE__ */ new WeakMap()
25819  };
25820}
25821let uid$1 = 0;
25822function createAppAPI(render, hydrate) {
25823  return function createApp(rootComponent, rootProps = null) {
25824    if (!Object(_vue_shared__WEBPACK_IMPORTED_MODULE_1__["isFunction"])(rootComponent)) {
25825      rootComponent = Object(_vue_shared__WEBPACK_IMPORTED_MODULE_1__["extend"])({}, rootComponent);
25826    }
25827    if (rootProps != null && !Object(_vue_shared__WEBPACK_IMPORTED_MODULE_1__["isObject"])(rootProps)) {
25828       true && warn$1(`root props passed to app.mount() must be an object.`);
25829      rootProps = null;
25830    }
25831    const context = createAppContext();
25832    const installedPlugins = /* @__PURE__ */ new WeakSet();
25833    let isMounted = false;
25834    const app = context.app = {
25835      _uid: uid$1++,
25836      _component: rootComponent,
25837      _props: rootProps,
25838      _container: null,
25839      _context: context,
25840      _instance: null,
25841      version,
25842      get config() {
25843        return context.config;
25844      },
25845      set config(v) {
25846        if (true) {
25847          warn$1(
25848            `app.config cannot be replaced. Modify individual options instead.`
25849          );
25850        }
25851      },
25852      use(plugin, ...options) {
25853        if (installedPlugins.has(plugin)) {
25854           true && warn$1(`Plugin has already been applied to target app.`);
25855        } else if (plugin && Object(_vue_shared__WEBPACK_IMPORTED_MODULE_1__["isFunction"])(plugin.install)) {
25856          installedPlugins.add(plugin);
25857          plugin.install(app, ...options);
25858        } else if (Object(_vue_shared__WEBPACK_IMPORTED_MODULE_1__["isFunction"])(plugin)) {
25859          installedPlugins.add(plugin);
25860          plugin(app, ...options);
25861        } else if (true) {
25862          warn$1(
25863            `A plugin must either be a function or an object with an "install" function.`
25864          );
25865        }
25866        return app;
25867      },
25868      mixin(mixin) {
25869        if (true) {
25870          if (!context.mixins.includes(mixin)) {
25871            context.mixins.push(mixin);
25872          } else if (true) {
25873            warn$1(
25874              "Mixin has already been applied to target app" + (mixin.name ? `: ${mixin.name}` : "")
25875            );
25876          }
25877        } else {}
25878        return app;
25879      },
25880      component(name, component) {
25881        if (true) {
25882          validateComponentName(name, context.config);
25883        }
25884        if (!component) {
25885          return context.components[name];
25886        }
25887        if ( true && context.components[name]) {
25888          warn$1(`Component "${name}" has already been registered in target app.`);
25889        }
25890        context.components[name] = component;
25891        return app;
25892      },
25893      directive(name, directive) {
25894        if (true) {
25895          validateDirectiveName(name);
25896        }
25897        if (!directive) {
25898          return context.directives[name];
25899        }
25900        if ( true && context.directives[name]) {
25901          warn$1(`Directive "${name}" has already been registered in target app.`);
25902        }
25903        context.directives[name] = directive;
25904        return app;
25905      },
25906      mount(rootContainer, isHydrate, namespace) {
25907        if (!isMounted) {
25908          if ( true && rootContainer.__vue_app__) {
25909            warn$1(
25910              `There is already an app instance mounted on the host container.
25911 If you want to mount another app on the same host container, you need to unmount the previous app by calling \`app.unmount()\` first.`
25912            );
25913          }
25914          const vnode = createVNode(rootComponent, rootProps);
25915          vnode.appContext = context;
25916          if (namespace === true) {
25917            namespace = "svg";
25918          } else if (namespace === false) {
25919            namespace = void 0;
25920          }
25921          if (true) {
25922            context.reload = () => {
25923              render(
25924                cloneVNode(vnode),
25925                rootContainer,
25926                namespace
25927              );
25928            };
25929          }
25930          if (isHydrate && hydrate) {
25931            hydrate(vnode, rootContainer);
25932          } else {
25933            render(vnode, rootContainer, namespace);
25934          }
25935          isMounted = true;
25936          app._container = rootContainer;
25937          rootContainer.__vue_app__ = app;
25938          if (true) {
25939            app._instance = vnode.component;
25940            devtoolsInitApp(app, version);
25941          }
25942          return getExposeProxy(vnode.component) || vnode.component.proxy;
25943        } else if (true) {
25944          warn$1(
25945            `App has already been mounted.
25946If you want to remount the same app, move your app creation logic into a factory function and create fresh app instances for each mount - e.g. \`const createMyApp = () => createApp(App)\``
25947          );
25948        }
25949      },
25950      unmount() {
25951        if (isMounted) {
25952          render(null, app._container);
25953          if (true) {
25954            app._instance = null;
25955            devtoolsUnmountApp(app);
25956          }
25957          delete app._container.__vue_app__;
25958        } else if (true) {
25959          warn$1(`Cannot unmount an app that is not mounted.`);
25960        }
25961      },
25962      provide(key, value) {
25963        if ( true && key in context.provides) {
25964          warn$1(
25965            `App already provides property with key "${String(key)}". It will be overwritten with the new value.`
25966          );
25967        }
25968        context.provides[key] = value;
25969        return app;
25970      },
25971      runWithContext(fn) {
25972        const lastApp = currentApp;
25973        currentApp = app;
25974        try {
25975          return fn();
25976        } finally {
25977          currentApp = lastApp;
25978        }
25979      }
25980    };
25981    return app;
25982  };
25983}
25984let currentApp = null;
25985
25986function provide(key, value) {
25987  if (!currentInstance) {
25988    if (true) {
25989      warn$1(`provide() can only be used inside setup().`);
25990    }
25991  } else {
25992    let provides = currentInstance.provides;
25993    const parentProvides = currentInstance.parent && currentInstance.parent.provides;
25994    if (parentProvides === provides) {
25995      provides = currentInstance.provides = Object.create(parentProvides);
25996    }
25997    provides[key] = value;
25998  }
25999}
26000function inject(key, defaultValue, treatDefaultAsFactory = false) {
26001  const instance = currentInstance || currentRenderingInstance;
26002  if (instance || currentApp) {
26003    const provides = instance ? instance.parent == null ? instance.vnode.appContext && instance.vnode.appContext.provides : instance.parent.provides : currentApp._context.provides;
26004    if (provides && key in provides) {
26005      return provides[key];
26006    } else if (arguments.length > 1) {
26007      return treatDefaultAsFactory && Object(_vue_shared__WEBPACK_IMPORTED_MODULE_1__["isFunction"])(defaultValue) ? defaultValue.call(instance && instance.proxy) : defaultValue;
26008    } else if (true) {
26009      warn$1(`injection "${String(key)}" not found.`);
26010    }
26011  } else if (true) {
26012    warn$1(`inject() can only be used inside setup() or functional components.`);
26013  }
26014}
26015function hasInjectionContext() {
26016  return !!(currentInstance || currentRenderingInstance || currentApp);
26017}
26018
26019function initProps(instance, rawProps, isStateful, isSSR = false) {
26020  const props = {};
26021  const attrs = {};
26022  Object(_vue_shared__WEBPACK_IMPORTED_MODULE_1__["def"])(attrs, InternalObjectKey, 1);
26023  instance.propsDefaults = /* @__PURE__ */ Object.create(null);
26024  setFullProps(instance, rawProps, props, attrs);
26025  for (const key in instance.propsOptions[0]) {
26026    if (!(key in props)) {
26027      props[key] = void 0;
26028    }
26029  }
26030  if (true) {
26031    validateProps(rawProps || {}, props, instance);
26032  }
26033  if (isStateful) {
26034    instance.props = isSSR ? props : Object(_vue_reactivity__WEBPACK_IMPORTED_MODULE_0__["shallowReactive"])(props);
26035  } else {
26036    if (!instance.type.props) {
26037      instance.props = attrs;
26038    } else {
26039      instance.props = props;
26040    }
26041  }
26042  instance.attrs = attrs;
26043}
26044function isInHmrContext(instance) {
26045  while (instance) {
26046    if (instance.type.__hmrId)
26047      return true;
26048    instance = instance.parent;
26049  }
26050}
26051function updateProps(instance, rawProps, rawPrevProps, optimized) {
26052  const {
26053    props,
26054    attrs,
26055    vnode: { patchFlag }
26056  } = instance;
26057  const rawCurrentProps = Object(_vue_reactivity__WEBPACK_IMPORTED_MODULE_0__["toRaw"])(props);
26058  const [options] = instance.propsOptions;
26059  let hasAttrsChanged = false;
26060  if (
26061    // always force full diff in dev
26062    // - #1942 if hmr is enabled with sfc component
26063    // - vite#872 non-sfc component used by sfc component
26064    !( true && isInHmrContext(instance)) && (optimized || patchFlag > 0) && !(patchFlag & 16)
26065  ) {
26066    if (patchFlag & 8) {
26067      const propsToUpdate = instance.vnode.dynamicProps;
26068      for (let i = 0; i < propsToUpdate.length; i++) {
26069        let key = propsToUpdate[i];
26070        if (isEmitListener(instance.emitsOptions, key)) {
26071          continue;
26072        }
26073        const value = rawProps[key];
26074        if (options) {
26075          if (Object(_vue_shared__WEBPACK_IMPORTED_MODULE_1__["hasOwn"])(attrs, key)) {
26076            if (value !== attrs[key]) {
26077              attrs[key] = value;
26078              hasAttrsChanged = true;
26079            }
26080          } else {
26081            const camelizedKey = Object(_vue_shared__WEBPACK_IMPORTED_MODULE_1__["camelize"])(key);
26082            props[camelizedKey] = resolvePropValue(
26083              options,
26084              rawCurrentProps,
26085              camelizedKey,
26086              value,
26087              instance,
26088              false
26089            );
26090          }
26091        } else {
26092          if (value !== attrs[key]) {
26093            attrs[key] = value;
26094            hasAttrsChanged = true;
26095          }
26096        }
26097      }
26098    }
26099  } else {
26100    if (setFullProps(instance, rawProps, props, attrs)) {
26101      hasAttrsChanged = true;
26102    }
26103    let kebabKey;
26104    for (const key in rawCurrentProps) {
26105      if (!rawProps || // for camelCase
26106      !Object(_vue_shared__WEBPACK_IMPORTED_MODULE_1__["hasOwn"])(rawProps, key) && // it's possible the original props was passed in as kebab-case
26107      // and converted to camelCase (#955)
26108      ((kebabKey = Object(_vue_shared__WEBPACK_IMPORTED_MODULE_1__["hyphenate"])(key)) === key || !Object(_vue_shared__WEBPACK_IMPORTED_MODULE_1__["hasOwn"])(rawProps, kebabKey))) {
26109        if (options) {
26110          if (rawPrevProps && // for camelCase
26111          (rawPrevProps[key] !== void 0 || // for kebab-case
26112          rawPrevProps[kebabKey] !== void 0)) {
26113            props[key] = resolvePropValue(
26114              options,
26115              rawCurrentProps,
26116              key,
26117              void 0,
26118              instance,
26119              true
26120            );
26121          }
26122        } else {
26123          delete props[key];
26124        }
26125      }
26126    }
26127    if (attrs !== rawCurrentProps) {
26128      for (const key in attrs) {
26129        if (!rawProps || !Object(_vue_shared__WEBPACK_IMPORTED_MODULE_1__["hasOwn"])(rawProps, key) && true) {
26130          delete attrs[key];
26131          hasAttrsChanged = true;
26132        }
26133      }
26134    }
26135  }
26136  if (hasAttrsChanged) {
26137    Object(_vue_reactivity__WEBPACK_IMPORTED_MODULE_0__["trigger"])(instance, "set", "$attrs");
26138  }
26139  if (true) {
26140    validateProps(rawProps || {}, props, instance);
26141  }
26142}
26143function setFullProps(instance, rawProps, props, attrs) {
26144  const [options, needCastKeys] = instance.propsOptions;
26145  let hasAttrsChanged = false;
26146  let rawCastValues;
26147  if (rawProps) {
26148    for (let key in rawProps) {
26149      if (Object(_vue_shared__WEBPACK_IMPORTED_MODULE_1__["isReservedProp"])(key)) {
26150        continue;
26151      }
26152      const value = rawProps[key];
26153      let camelKey;
26154      if (options && Object(_vue_shared__WEBPACK_IMPORTED_MODULE_1__["hasOwn"])(options, camelKey = Object(_vue_shared__WEBPACK_IMPORTED_MODULE_1__["camelize"])(key))) {
26155        if (!needCastKeys || !needCastKeys.includes(camelKey)) {
26156          props[camelKey] = value;
26157        } else {
26158          (rawCastValues || (rawCastValues = {}))[camelKey] = value;
26159        }
26160      } else if (!isEmitListener(instance.emitsOptions, key)) {
26161        if (!(key in attrs) || value !== attrs[key]) {
26162          attrs[key] = value;
26163          hasAttrsChanged = true;
26164        }
26165      }
26166    }
26167  }
26168  if (needCastKeys) {
26169    const rawCurrentProps = Object(_vue_reactivity__WEBPACK_IMPORTED_MODULE_0__["toRaw"])(props);
26170    const castValues = rawCastValues || _vue_shared__WEBPACK_IMPORTED_MODULE_1__["EMPTY_OBJ"];
26171    for (let i = 0; i < needCastKeys.length; i++) {
26172      const key = needCastKeys[i];
26173      props[key] = resolvePropValue(
26174        options,
26175        rawCurrentProps,
26176        key,
26177        castValues[key],
26178        instance,
26179        !Object(_vue_shared__WEBPACK_IMPORTED_MODULE_1__["hasOwn"])(castValues, key)
26180      );
26181    }
26182  }
26183  return hasAttrsChanged;
26184}
26185function resolvePropValue(options, props, key, value, instance, isAbsent) {
26186  const opt = options[key];
26187  if (opt != null) {
26188    const hasDefault = Object(_vue_shared__WEBPACK_IMPORTED_MODULE_1__["hasOwn"])(opt, "default");
26189    if (hasDefault && value === void 0) {
26190      const defaultValue = opt.default;
26191      if (opt.type !== Function && !opt.skipFactory && Object(_vue_shared__WEBPACK_IMPORTED_MODULE_1__["isFunction"])(defaultValue)) {
26192        const { propsDefaults } = instance;
26193        if (key in propsDefaults) {
26194          value = propsDefaults[key];
26195        } else {
26196          const reset = setCurrentInstance(instance);
26197          value = propsDefaults[key] = defaultValue.call(
26198            null,
26199            props
26200          );
26201          reset();
26202        }
26203      } else {
26204        value = defaultValue;
26205      }
26206    }
26207    if (opt[0 /* shouldCast */]) {
26208      if (isAbsent && !hasDefault) {
26209        value = false;
26210      } else if (opt[1 /* shouldCastTrue */] && (value === "" || value === Object(_vue_shared__WEBPACK_IMPORTED_MODULE_1__["hyphenate"])(key))) {
26211        value = true;
26212      }
26213    }
26214  }
26215  return value;
26216}
26217function normalizePropsOptions(comp, appContext, asMixin = false) {
26218  const cache = appContext.propsCache;
26219  const cached = cache.get(comp);
26220  if (cached) {
26221    return cached;
26222  }
26223  const raw = comp.props;
26224  const normalized = {};
26225  const needCastKeys = [];
26226  let hasExtends = false;
26227  if ( true && !Object(_vue_shared__WEBPACK_IMPORTED_MODULE_1__["isFunction"])(comp)) {
26228    const extendProps = (raw2) => {
26229      hasExtends = true;
26230      const [props, keys] = normalizePropsOptions(raw2, appContext, true);
26231      Object(_vue_shared__WEBPACK_IMPORTED_MODULE_1__["extend"])(normalized, props);
26232      if (keys)
26233        needCastKeys.push(...keys);
26234    };
26235    if (!asMixin && appContext.mixins.length) {
26236      appContext.mixins.forEach(extendProps);
26237    }
26238    if (comp.extends) {
26239      extendProps(comp.extends);
26240    }
26241    if (comp.mixins) {
26242      comp.mixins.forEach(extendProps);
26243    }
26244  }
26245  if (!raw && !hasExtends) {
26246    if (Object(_vue_shared__WEBPACK_IMPORTED_MODULE_1__["isObject"])(comp)) {
26247      cache.set(comp, _vue_shared__WEBPACK_IMPORTED_MODULE_1__["EMPTY_ARR"]);
26248    }
26249    return _vue_shared__WEBPACK_IMPORTED_MODULE_1__["EMPTY_ARR"];
26250  }
26251  if (Object(_vue_shared__WEBPACK_IMPORTED_MODULE_1__["isArray"])(raw)) {
26252    for (let i = 0; i < raw.length; i++) {
26253      if ( true && !Object(_vue_shared__WEBPACK_IMPORTED_MODULE_1__["isString"])(raw[i])) {
26254        warn$1(`props must be strings when using array syntax.`, raw[i]);
26255      }
26256      const normalizedKey = Object(_vue_shared__WEBPACK_IMPORTED_MODULE_1__["camelize"])(raw[i]);
26257      if (validatePropName(normalizedKey)) {
26258        normalized[normalizedKey] = _vue_shared__WEBPACK_IMPORTED_MODULE_1__["EMPTY_OBJ"];
26259      }
26260    }
26261  } else if (raw) {
26262    if ( true && !Object(_vue_shared__WEBPACK_IMPORTED_MODULE_1__["isObject"])(raw)) {
26263      warn$1(`invalid props options`, raw);
26264    }
26265    for (const key in raw) {
26266      const normalizedKey = Object(_vue_shared__WEBPACK_IMPORTED_MODULE_1__["camelize"])(key);
26267      if (validatePropName(normalizedKey)) {
26268        const opt = raw[key];
26269        const prop = normalized[normalizedKey] = Object(_vue_shared__WEBPACK_IMPORTED_MODULE_1__["isArray"])(opt) || Object(_vue_shared__WEBPACK_IMPORTED_MODULE_1__["isFunction"])(opt) ? { type: opt } : Object(_vue_shared__WEBPACK_IMPORTED_MODULE_1__["extend"])({}, opt);
26270        if (prop) {
26271          const booleanIndex = getTypeIndex(Boolean, prop.type);
26272          const stringIndex = getTypeIndex(String, prop.type);
26273          prop[0 /* shouldCast */] = booleanIndex > -1;
26274          prop[1 /* shouldCastTrue */] = stringIndex < 0 || booleanIndex < stringIndex;
26275          if (booleanIndex > -1 || Object(_vue_shared__WEBPACK_IMPORTED_MODULE_1__["hasOwn"])(prop, "default")) {
26276            needCastKeys.push(normalizedKey);
26277          }
26278        }
26279      }
26280    }
26281  }
26282  const res = [normalized, needCastKeys];
26283  if (Object(_vue_shared__WEBPACK_IMPORTED_MODULE_1__["isObject"])(comp)) {
26284    cache.set(comp, res);
26285  }
26286  return res;
26287}
26288function validatePropName(key) {
26289  if (key[0] !== "$" && !Object(_vue_shared__WEBPACK_IMPORTED_MODULE_1__["isReservedProp"])(key)) {
26290    return true;
26291  } else if (true) {
26292    warn$1(`Invalid prop name: "${key}" is a reserved property.`);
26293  }
26294  return false;
26295}
26296function getType(ctor) {
26297  if (ctor === null) {
26298    return "null";
26299  }
26300  if (typeof ctor === "function") {
26301    return ctor.name || "";
26302  } else if (typeof ctor === "object") {
26303    const name = ctor.constructor && ctor.constructor.name;
26304    return name || "";
26305  }
26306  return "";
26307}
26308function isSameType(a, b) {
26309  return getType(a) === getType(b);
26310}
26311function getTypeIndex(type, expectedTypes) {
26312  if (Object(_vue_shared__WEBPACK_IMPORTED_MODULE_1__["isArray"])(expectedTypes)) {
26313    return expectedTypes.findIndex((t) => isSameType(t, type));
26314  } else if (Object(_vue_shared__WEBPACK_IMPORTED_MODULE_1__["isFunction"])(expectedTypes)) {
26315    return isSameType(expectedTypes, type) ? 0 : -1;
26316  }
26317  return -1;
26318}
26319function validateProps(rawProps, props, instance) {
26320  const resolvedValues = Object(_vue_reactivity__WEBPACK_IMPORTED_MODULE_0__["toRaw"])(props);
26321  const options = instance.propsOptions[0];
26322  for (const key in options) {
26323    let opt = options[key];
26324    if (opt == null)
26325      continue;
26326    validateProp(
26327      key,
26328      resolvedValues[key],
26329      opt,
26330       true ? Object(_vue_reactivity__WEBPACK_IMPORTED_MODULE_0__["shallowReadonly"])(resolvedValues) : undefined,
26331      !Object(_vue_shared__WEBPACK_IMPORTED_MODULE_1__["hasOwn"])(rawProps, key) && !Object(_vue_shared__WEBPACK_IMPORTED_MODULE_1__["hasOwn"])(rawProps, Object(_vue_shared__WEBPACK_IMPORTED_MODULE_1__["hyphenate"])(key))
26332    );
26333  }
26334}
26335function validateProp(name, value, prop, props, isAbsent) {
26336  const { type, required, validator, skipCheck } = prop;
26337  if (required && isAbsent) {
26338    warn$1('Missing required prop: "' + name + '"');
26339    return;
26340  }
26341  if (value == null && !required) {
26342    return;
26343  }
26344  if (type != null && type !== true && !skipCheck) {
26345    let isValid = false;
26346    const types = Object(_vue_shared__WEBPACK_IMPORTED_MODULE_1__["isArray"])(type) ? type : [type];
26347    const expectedTypes = [];
26348    for (let i = 0; i < types.length && !isValid; i++) {
26349      const { valid, expectedType } = assertType(value, types[i]);
26350      expectedTypes.push(expectedType || "");
26351      isValid = valid;
26352    }
26353    if (!isValid) {
26354      warn$1(getInvalidTypeMessage(name, value, expectedTypes));
26355      return;
26356    }
26357  }
26358  if (validator && !validator(value, props)) {
26359    warn$1('Invalid prop: custom validator check failed for prop "' + name + '".');
26360  }
26361}
26362const isSimpleType = /* @__PURE__ */ Object(_vue_shared__WEBPACK_IMPORTED_MODULE_1__["makeMap"])(
26363  "String,Number,Boolean,Function,Symbol,BigInt"
26364);
26365function assertType(value, type) {
26366  let valid;
26367  const expectedType = getType(type);
26368  if (isSimpleType(expectedType)) {
26369    const t = typeof value;
26370    valid = t === expectedType.toLowerCase();
26371    if (!valid && t === "object") {
26372      valid = value instanceof type;
26373    }
26374  } else if (expectedType === "Object") {
26375    valid = Object(_vue_shared__WEBPACK_IMPORTED_MODULE_1__["isObject"])(value);
26376  } else if (expectedType === "Array") {
26377    valid = Object(_vue_shared__WEBPACK_IMPORTED_MODULE_1__["isArray"])(value);
26378  } else if (expectedType === "null") {
26379    valid = value === null;
26380  } else {
26381    valid = value instanceof type;
26382  }
26383  return {
26384    valid,
26385    expectedType
26386  };
26387}
26388function getInvalidTypeMessage(name, value, expectedTypes) {
26389  if (expectedTypes.length === 0) {
26390    return `Prop type [] for prop "${name}" won't match anything. Did you mean to use type Array instead?`;
26391  }
26392  let message = `Invalid prop: type check failed for prop "${name}". Expected ${expectedTypes.map(_vue_shared__WEBPACK_IMPORTED_MODULE_1__["capitalize"]).join(" | ")}`;
26393  const expectedType = expectedTypes[0];
26394  const receivedType = Object(_vue_shared__WEBPACK_IMPORTED_MODULE_1__["toRawType"])(value);
26395  const expectedValue = styleValue(value, expectedType);
26396  const receivedValue = styleValue(value, receivedType);
26397  if (expectedTypes.length === 1 && isExplicable(expectedType) && !isBoolean(expectedType, receivedType)) {
26398    message += ` with value ${expectedValue}`;
26399  }
26400  message += `, got ${receivedType} `;
26401  if (isExplicable(receivedType)) {
26402    message += `with value ${receivedValue}.`;
26403  }
26404  return message;
26405}
26406function styleValue(value, type) {
26407  if (type === "String") {
26408    return `"${value}"`;
26409  } else if (type === "Number") {
26410    return `${Number(value)}`;
26411  } else {
26412    return `${value}`;
26413  }
26414}
26415function isExplicable(type) {
26416  const explicitTypes = ["string", "number", "boolean"];
26417  return explicitTypes.some((elem) => type.toLowerCase() === elem);
26418}
26419function isBoolean(...args) {
26420  return args.some((elem) => elem.toLowerCase() === "boolean");
26421}
26422
26423const isInternalKey = (key) => key[0] === "_" || key === "$stable";
26424const normalizeSlotValue = (value) => Object(_vue_shared__WEBPACK_IMPORTED_MODULE_1__["isArray"])(value) ? value.map(normalizeVNode) : [normalizeVNode(value)];
26425const normalizeSlot = (key, rawSlot, ctx) => {
26426  if (rawSlot._n) {
26427    return rawSlot;
26428  }
26429  const normalized = withCtx((...args) => {
26430    if ( true && currentInstance && (!ctx || ctx.root === currentInstance.root)) {
26431      warn$1(
26432        `Slot "${key}" invoked outside of the render function: this will not track dependencies used in the slot. Invoke the slot function inside the render function instead.`
26433      );
26434    }
26435    return normalizeSlotValue(rawSlot(...args));
26436  }, ctx);
26437  normalized._c = false;
26438  return normalized;
26439};
26440const normalizeObjectSlots = (rawSlots, slots, instance) => {
26441  const ctx = rawSlots._ctx;
26442  for (const key in rawSlots) {
26443    if (isInternalKey(key))
26444      continue;
26445    const value = rawSlots[key];
26446    if (Object(_vue_shared__WEBPACK_IMPORTED_MODULE_1__["isFunction"])(value)) {
26447      slots[key] = normalizeSlot(key, value, ctx);
26448    } else if (value != null) {
26449      if (true) {
26450        warn$1(
26451          `Non-function value encountered for slot "${key}". Prefer function slots for better performance.`
26452        );
26453      }
26454      const normalized = normalizeSlotValue(value);
26455      slots[key] = () => normalized;
26456    }
26457  }
26458};
26459const normalizeVNodeSlots = (instance, children) => {
26460  if ( true && !isKeepAlive(instance.vnode) && true) {
26461    warn$1(
26462      `Non-function value encountered for default slot. Prefer function slots for better performance.`
26463    );
26464  }
26465  const normalized = normalizeSlotValue(children);
26466  instance.slots.default = () => normalized;
26467};
26468const initSlots = (instance, children) => {
26469  if (instance.vnode.shapeFlag & 32) {
26470    const type = children._;
26471    if (type) {
26472      instance.slots = Object(_vue_reactivity__WEBPACK_IMPORTED_MODULE_0__["toRaw"])(children);
26473      Object(_vue_shared__WEBPACK_IMPORTED_MODULE_1__["def"])(children, "_", type);
26474    } else {
26475      normalizeObjectSlots(
26476        children,
26477        instance.slots = {});
26478    }
26479  } else {
26480    instance.slots = {};
26481    if (children) {
26482      normalizeVNodeSlots(instance, children);
26483    }
26484  }
26485  Object(_vue_shared__WEBPACK_IMPORTED_MODULE_1__["def"])(instance.slots, InternalObjectKey, 1);
26486};
26487const updateSlots = (instance, children, optimized) => {
26488  const { vnode, slots } = instance;
26489  let needDeletionCheck = true;
26490  let deletionComparisonTarget = _vue_shared__WEBPACK_IMPORTED_MODULE_1__["EMPTY_OBJ"];
26491  if (vnode.shapeFlag & 32) {
26492    const type = children._;
26493    if (type) {
26494      if ( true && isHmrUpdating) {
26495        Object(_vue_shared__WEBPACK_IMPORTED_MODULE_1__["extend"])(slots, children);
26496        Object(_vue_reactivity__WEBPACK_IMPORTED_MODULE_0__["trigger"])(instance, "set", "$slots");
26497      } else if (optimized && type === 1) {
26498        needDeletionCheck = false;
26499      } else {
26500        Object(_vue_shared__WEBPACK_IMPORTED_MODULE_1__["extend"])(slots, children);
26501        if (!optimized && type === 1) {
26502          delete slots._;
26503        }
26504      }
26505    } else {
26506      needDeletionCheck = !children.$stable;
26507      normalizeObjectSlots(children, slots);
26508    }
26509    deletionComparisonTarget = children;
26510  } else if (children) {
26511    normalizeVNodeSlots(instance, children);
26512    deletionComparisonTarget = { default: 1 };
26513  }
26514  if (needDeletionCheck) {
26515    for (const key in slots) {
26516      if (!isInternalKey(key) && deletionComparisonTarget[key] == null) {
26517        delete slots[key];
26518      }
26519    }
26520  }
26521};
26522
26523function setRef(rawRef, oldRawRef, parentSuspense, vnode, isUnmount = false) {
26524  if (Object(_vue_shared__WEBPACK_IMPORTED_MODULE_1__["isArray"])(rawRef)) {
26525    rawRef.forEach(
26526      (r, i) => setRef(
26527        r,
26528        oldRawRef && (Object(_vue_shared__WEBPACK_IMPORTED_MODULE_1__["isArray"])(oldRawRef) ? oldRawRef[i] : oldRawRef),
26529        parentSuspense,
26530        vnode,
26531        isUnmount
26532      )
26533    );
26534    return;
26535  }
26536  if (isAsyncWrapper(vnode) && !isUnmount) {
26537    return;
26538  }
26539  const refValue = vnode.shapeFlag & 4 ? getExposeProxy(vnode.component) || vnode.component.proxy : vnode.el;
26540  const value = isUnmount ? null : refValue;
26541  const { i: owner, r: ref } = rawRef;
26542  if ( true && !owner) {
26543    warn$1(
26544      `Missing ref owner context. ref cannot be used on hoisted vnodes. A vnode with ref must be created inside the render function.`
26545    );
26546    return;
26547  }
26548  const oldRef = oldRawRef && oldRawRef.r;
26549  const refs = owner.refs === _vue_shared__WEBPACK_IMPORTED_MODULE_1__["EMPTY_OBJ"] ? owner.refs = {} : owner.refs;
26550  const setupState = owner.setupState;
26551  if (oldRef != null && oldRef !== ref) {
26552    if (Object(_vue_shared__WEBPACK_IMPORTED_MODULE_1__["isString"])(oldRef)) {
26553      refs[oldRef] = null;
26554      if (Object(_vue_shared__WEBPACK_IMPORTED_MODULE_1__["hasOwn"])(setupState, oldRef)) {
26555        setupState[oldRef] = null;
26556      }
26557    } else if (Object(_vue_reactivity__WEBPACK_IMPORTED_MODULE_0__["isRef"])(oldRef)) {
26558      oldRef.value = null;
26559    }
26560  }
26561  if (Object(_vue_shared__WEBPACK_IMPORTED_MODULE_1__["isFunction"])(ref)) {
26562    callWithErrorHandling(ref, owner, 12, [value, refs]);
26563  } else {
26564    const _isString = Object(_vue_shared__WEBPACK_IMPORTED_MODULE_1__["isString"])(ref);
26565    const _isRef = Object(_vue_reactivity__WEBPACK_IMPORTED_MODULE_0__["isRef"])(ref);
26566    if (_isString || _isRef) {
26567      const doSet = () => {
26568        if (rawRef.f) {
26569          const existing = _isString ? Object(_vue_shared__WEBPACK_IMPORTED_MODULE_1__["hasOwn"])(setupState, ref) ? setupState[ref] : refs[ref] : ref.value;
26570          if (isUnmount) {
26571            Object(_vue_shared__WEBPACK_IMPORTED_MODULE_1__["isArray"])(existing) && Object(_vue_shared__WEBPACK_IMPORTED_MODULE_1__["remove"])(existing, refValue);
26572          } else {
26573            if (!Object(_vue_shared__WEBPACK_IMPORTED_MODULE_1__["isArray"])(existing)) {
26574              if (_isString) {
26575                refs[ref] = [refValue];
26576                if (Object(_vue_shared__WEBPACK_IMPORTED_MODULE_1__["hasOwn"])(setupState, ref)) {
26577                  setupState[ref] = refs[ref];
26578                }
26579              } else {
26580                ref.value = [refValue];
26581                if (rawRef.k)
26582                  refs[rawRef.k] = ref.value;
26583              }
26584            } else if (!existing.includes(refValue)) {
26585              existing.push(refValue);
26586            }
26587          }
26588        } else if (_isString) {
26589          refs[ref] = value;
26590          if (Object(_vue_shared__WEBPACK_IMPORTED_MODULE_1__["hasOwn"])(setupState, ref)) {
26591            setupState[ref] = value;
26592          }
26593        } else if (_isRef) {
26594          ref.value = value;
26595          if (rawRef.k)
26596            refs[rawRef.k] = value;
26597        } else if (true) {
26598          warn$1("Invalid template ref type:", ref, `(${typeof ref})`);
26599        }
26600      };
26601      if (value) {
26602        doSet.id = -1;
26603        queuePostRenderEffect(doSet, parentSuspense);
26604      } else {
26605        doSet();
26606      }
26607    } else if (true) {
26608      warn$1("Invalid template ref type:", ref, `(${typeof ref})`);
26609    }
26610  }
26611}
26612
26613let hasMismatch = false;
26614const isSVGContainer = (container) => container.namespaceURI.includes("svg") && container.tagName !== "foreignObject";
26615const isMathMLContainer = (container) => container.namespaceURI.includes("MathML");
26616const getContainerType = (container) => {
26617  if (isSVGContainer(container))
26618    return "svg";
26619  if (isMathMLContainer(container))
26620    return "mathml";
26621  return void 0;
26622};
26623const isComment = (node) => node.nodeType === 8 /* COMMENT */;
26624function createHydrationFunctions(rendererInternals) {
26625  const {
26626    mt: mountComponent,
26627    p: patch,
26628    o: {
26629      patchProp,
26630      createText,
26631      nextSibling,
26632      parentNode,
26633      remove,
26634      insert,
26635      createComment
26636    }
26637  } = rendererInternals;
26638  const hydrate = (vnode, container) => {
26639    if (!container.hasChildNodes()) {
26640      ( true) && warn$1(
26641        `Attempting to hydrate existing markup but container is empty. Performing full mount instead.`
26642      );
26643      patch(null, vnode, container);
26644      flushPostFlushCbs();
26645      container._vnode = vnode;
26646      return;
26647    }
26648    hasMismatch = false;
26649    hydrateNode(container.firstChild, vnode, null, null, null);
26650    flushPostFlushCbs();
26651    container._vnode = vnode;
26652    if (hasMismatch && true) {
26653      console.error(`Hydration completed but contains mismatches.`);
26654    }
26655  };
26656  const hydrateNode = (node, vnode, parentComponent, parentSuspense, slotScopeIds, optimized = false) => {
26657    const isFragmentStart = isComment(node) && node.data === "[";
26658    const onMismatch = () => handleMismatch(
26659      node,
26660      vnode,
26661      parentComponent,
26662      parentSuspense,
26663      slotScopeIds,
26664      isFragmentStart
26665    );
26666    const { type, ref, shapeFlag, patchFlag } = vnode;
26667    let domType = node.nodeType;
26668    vnode.el = node;
26669    if (true) {
26670      if (!("__vnode" in node)) {
26671        Object.defineProperty(node, "__vnode", {
26672          value: vnode,
26673          enumerable: false
26674        });
26675      }
26676      if (!("__vueParentComponent" in node)) {
26677        Object.defineProperty(node, "__vueParentComponent", {
26678          value: parentComponent,
26679          enumerable: false
26680        });
26681      }
26682    }
26683    if (patchFlag === -2) {
26684      optimized = false;
26685      vnode.dynamicChildren = null;
26686    }
26687    let nextNode = null;
26688    switch (type) {
26689      case Text:
26690        if (domType !== 3 /* TEXT */) {
26691          if (vnode.children === "") {
26692            insert(vnode.el = createText(""), parentNode(node), node);
26693            nextNode = node;
26694          } else {
26695            nextNode = onMismatch();
26696          }
26697        } else {
26698          if (node.data !== vnode.children) {
26699            hasMismatch = true;
26700            ( true) && warn$1(
26701              `Hydration text mismatch in`,
26702              node.parentNode,
26703              `
26704  - rendered on server: ${JSON.stringify(
26705                node.data
26706              )}
26707  - expected on client: ${JSON.stringify(vnode.children)}`
26708            );
26709            node.data = vnode.children;
26710          }
26711          nextNode = nextSibling(node);
26712        }
26713        break;
26714      case Comment:
26715        if (isTemplateNode(node)) {
26716          nextNode = nextSibling(node);
26717          replaceNode(
26718            vnode.el = node.content.firstChild,
26719            node,
26720            parentComponent
26721          );
26722        } else if (domType !== 8 /* COMMENT */ || isFragmentStart) {
26723          nextNode = onMismatch();
26724        } else {
26725          nextNode = nextSibling(node);
26726        }
26727        break;
26728      case Static:
26729        if (isFragmentStart) {
26730          node = nextSibling(node);
26731          domType = node.nodeType;
26732        }
26733        if (domType === 1 /* ELEMENT */ || domType === 3 /* TEXT */) {
26734          nextNode = node;
26735          const needToAdoptContent = !vnode.children.length;
26736          for (let i = 0; i < vnode.staticCount; i++) {
26737            if (needToAdoptContent)
26738              vnode.children += nextNode.nodeType === 1 /* ELEMENT */ ? nextNode.outerHTML : nextNode.data;
26739            if (i === vnode.staticCount - 1) {
26740              vnode.anchor = nextNode;
26741            }
26742            nextNode = nextSibling(nextNode);
26743          }
26744          return isFragmentStart ? nextSibling(nextNode) : nextNode;
26745        } else {
26746          onMismatch();
26747        }
26748        break;
26749      case Fragment:
26750        if (!isFragmentStart) {
26751          nextNode = onMismatch();
26752        } else {
26753          nextNode = hydrateFragment(
26754            node,
26755            vnode,
26756            parentComponent,
26757            parentSuspense,
26758            slotScopeIds,
26759            optimized
26760          );
26761        }
26762        break;
26763      default:
26764        if (shapeFlag & 1) {
26765          if ((domType !== 1 /* ELEMENT */ || vnode.type.toLowerCase() !== node.tagName.toLowerCase()) && !isTemplateNode(node)) {
26766            nextNode = onMismatch();
26767          } else {
26768            nextNode = hydrateElement(
26769              node,
26770              vnode,
26771              parentComponent,
26772              parentSuspense,
26773              slotScopeIds,
26774              optimized
26775            );
26776          }
26777        } else if (shapeFlag & 6) {
26778          vnode.slotScopeIds = slotScopeIds;
26779          const container = parentNode(node);
26780          if (isFragmentStart) {
26781            nextNode = locateClosingAnchor(node);
26782          } else if (isComment(node) && node.data === "teleport start") {
26783            nextNode = locateClosingAnchor(node, node.data, "teleport end");
26784          } else {
26785            nextNode = nextSibling(node);
26786          }
26787          mountComponent(
26788            vnode,
26789            container,
26790            null,
26791            parentComponent,
26792            parentSuspense,
26793            getContainerType(container),
26794            optimized
26795          );
26796          if (isAsyncWrapper(vnode)) {
26797            let subTree;
26798            if (isFragmentStart) {
26799              subTree = createVNode(Fragment);
26800              subTree.anchor = nextNode ? nextNode.previousSibling : container.lastChild;
26801            } else {
26802              subTree = node.nodeType === 3 ? createTextVNode("") : createVNode("div");
26803            }
26804            subTree.el = node;
26805            vnode.component.subTree = subTree;
26806          }
26807        } else if (shapeFlag & 64) {
26808          if (domType !== 8 /* COMMENT */) {
26809            nextNode = onMismatch();
26810          } else {
26811            nextNode = vnode.type.hydrate(
26812              node,
26813              vnode,
26814              parentComponent,
26815              parentSuspense,
26816              slotScopeIds,
26817              optimized,
26818              rendererInternals,
26819              hydrateChildren
26820            );
26821          }
26822        } else if (shapeFlag & 128) {
26823          nextNode = vnode.type.hydrate(
26824            node,
26825            vnode,
26826            parentComponent,
26827            parentSuspense,
26828            getContainerType(parentNode(node)),
26829            slotScopeIds,
26830            optimized,
26831            rendererInternals,
26832            hydrateNode
26833          );
26834        } else if (true) {
26835          warn$1("Invalid HostVNode type:", type, `(${typeof type})`);
26836        }
26837    }
26838    if (ref != null) {
26839      setRef(ref, null, parentSuspense, vnode);
26840    }
26841    return nextNode;
26842  };
26843  const hydrateElement = (el, vnode, parentComponent, parentSuspense, slotScopeIds, optimized) => {
26844    optimized = optimized || !!vnode.dynamicChildren;
26845    const { type, props, patchFlag, shapeFlag, dirs, transition } = vnode;
26846    const forcePatch = type === "input" || type === "option";
26847    if (true) {
26848      if (dirs) {
26849        invokeDirectiveHook(vnode, null, parentComponent, "created");
26850      }
26851      let needCallTransitionHooks = false;
26852      if (isTemplateNode(el)) {
26853        needCallTransitionHooks = needTransition(parentSuspense, transition) && parentComponent && parentComponent.vnode.props && parentComponent.vnode.props.appear;
26854        const content = el.content.firstChild;
26855        if (needCallTransitionHooks) {
26856          transition.beforeEnter(content);
26857        }
26858        replaceNode(content, el, parentComponent);
26859        vnode.el = el = content;
26860      }
26861      if (shapeFlag & 16 && // skip if element has innerHTML / textContent
26862      !(props && (props.innerHTML || props.textContent))) {
26863        let next = hydrateChildren(
26864          el.firstChild,
26865          vnode,
26866          el,
26867          parentComponent,
26868          parentSuspense,
26869          slotScopeIds,
26870          optimized
26871        );
26872        let hasWarned = false;
26873        while (next) {
26874          hasMismatch = true;
26875          if (( true) && !hasWarned) {
26876            warn$1(
26877              `Hydration children mismatch on`,
26878              el,
26879              `
26880Server rendered element contains more child nodes than client vdom.`
26881            );
26882            hasWarned = true;
26883          }
26884          const cur = next;
26885          next = next.nextSibling;
26886          remove(cur);
26887        }
26888      } else if (shapeFlag & 8) {
26889        if (el.textContent !== vnode.children) {
26890          hasMismatch = true;
26891          ( true) && warn$1(
26892            `Hydration text content mismatch on`,
26893            el,
26894            `
26895  - rendered on server: ${el.textContent}
26896  - expected on client: ${vnode.children}`
26897          );
26898          el.textContent = vnode.children;
26899        }
26900      }
26901      if (props) {
26902        if (true) {
26903          for (const key in props) {
26904            if ( true && propHasMismatch(el, key, props[key], vnode, parentComponent)) {
26905              hasMismatch = true;
26906            }
26907            if (forcePatch && (key.endsWith("value") || key === "indeterminate") || Object(_vue_shared__WEBPACK_IMPORTED_MODULE_1__["isOn"])(key) && !Object(_vue_shared__WEBPACK_IMPORTED_MODULE_1__["isReservedProp"])(key) || // force hydrate v-bind with .prop modifiers
26908            key[0] === ".") {
26909              patchProp(
26910                el,
26911                key,
26912                null,
26913                props[key],
26914                void 0,
26915                void 0,
26916                parentComponent
26917              );
26918            }
26919          }
26920        } else {}
26921      }
26922      let vnodeHooks;
26923      if (vnodeHooks = props && props.onVnodeBeforeMount) {
26924        invokeVNodeHook(vnodeHooks, parentComponent, vnode);
26925      }
26926      if (dirs) {
26927        invokeDirectiveHook(vnode, null, parentComponent, "beforeMount");
26928      }
26929      if ((vnodeHooks = props && props.onVnodeMounted) || dirs || needCallTransitionHooks) {
26930        queueEffectWithSuspense(() => {
26931          vnodeHooks && invokeVNodeHook(vnodeHooks, parentComponent, vnode);
26932          needCallTransitionHooks && transition.enter(el);
26933          dirs && invokeDirectiveHook(vnode, null, parentComponent, "mounted");
26934        }, parentSuspense);
26935      }
26936    }
26937    return el.nextSibling;
26938  };
26939  const hydrateChildren = (node, parentVNode, container, parentComponent, parentSuspense, slotScopeIds, optimized) => {
26940    optimized = optimized || !!parentVNode.dynamicChildren;
26941    const children = parentVNode.children;
26942    const l = children.length;
26943    let hasWarned = false;
26944    for (let i = 0; i < l; i++) {
26945      const vnode = optimized ? children[i] : children[i] = normalizeVNode(children[i]);
26946      if (node) {
26947        node = hydrateNode(
26948          node,
26949          vnode,
26950          parentComponent,
26951          parentSuspense,
26952          slotScopeIds,
26953          optimized
26954        );
26955      } else if (vnode.type === Text && !vnode.children) {
26956        continue;
26957      } else {
26958        hasMismatch = true;
26959        if (( true) && !hasWarned) {
26960          warn$1(
26961            `Hydration children mismatch on`,
26962            container,
26963            `
26964Server rendered element contains fewer child nodes than client vdom.`
26965          );
26966          hasWarned = true;
26967        }
26968        patch(
26969          null,
26970          vnode,
26971          container,
26972          null,
26973          parentComponent,
26974          parentSuspense,
26975          getContainerType(container),
26976          slotScopeIds
26977        );
26978      }
26979    }
26980    return node;
26981  };
26982  const hydrateFragment = (node, vnode, parentComponent, parentSuspense, slotScopeIds, optimized) => {
26983    const { slotScopeIds: fragmentSlotScopeIds } = vnode;
26984    if (fragmentSlotScopeIds) {
26985      slotScopeIds = slotScopeIds ? slotScopeIds.concat(fragmentSlotScopeIds) : fragmentSlotScopeIds;
26986    }
26987    const container = parentNode(node);
26988    const next = hydrateChildren(
26989      nextSibling(node),
26990      vnode,
26991      container,
26992      parentComponent,
26993      parentSuspense,
26994      slotScopeIds,
26995      optimized
26996    );
26997    if (next && isComment(next) && next.data === "]") {
26998      return nextSibling(vnode.anchor = next);
26999    } else {
27000      hasMismatch = true;
27001      insert(vnode.anchor = createComment(`]`), container, next);
27002      return next;
27003    }
27004  };
27005  const handleMismatch = (node, vnode, parentComponent, parentSuspense, slotScopeIds, isFragment) => {
27006    hasMismatch = true;
27007    ( true) && warn$1(
27008      `Hydration node mismatch:
27009- rendered on server:`,
27010      node,
27011      node.nodeType === 3 /* TEXT */ ? `(text)` : isComment(node) && node.data === "[" ? `(start of fragment)` : ``,
27012      `
27013- expected on client:`,
27014      vnode.type
27015    );
27016    vnode.el = null;
27017    if (isFragment) {
27018      const end = locateClosingAnchor(node);
27019      while (true) {
27020        const next2 = nextSibling(node);
27021        if (next2 && next2 !== end) {
27022          remove(next2);
27023        } else {
27024          break;
27025        }
27026      }
27027    }
27028    const next = nextSibling(node);
27029    const container = parentNode(node);
27030    remove(node);
27031    patch(
27032      null,
27033      vnode,
27034      container,
27035      next,
27036      parentComponent,
27037      parentSuspense,
27038      getContainerType(container),
27039      slotScopeIds
27040    );
27041    return next;
27042  };
27043  const locateClosingAnchor = (node, open = "[", close = "]") => {
27044    let match = 0;
27045    while (node) {
27046      node = nextSibling(node);
27047      if (node && isComment(node)) {
27048        if (node.data === open)
27049          match++;
27050        if (node.data === close) {
27051          if (match === 0) {
27052            return nextSibling(node);
27053          } else {
27054            match--;
27055          }
27056        }
27057      }
27058    }
27059    return node;
27060  };
27061  const replaceNode = (newNode, oldNode, parentComponent) => {
27062    const parentNode2 = oldNode.parentNode;
27063    if (parentNode2) {
27064      parentNode2.replaceChild(newNode, oldNode);
27065    }
27066    let parent = parentComponent;
27067    while (parent) {
27068      if (parent.vnode.el === oldNode) {
27069        parent.vnode.el = parent.subTree.el = newNode;
27070      }
27071      parent = parent.parent;
27072    }
27073  };
27074  const isTemplateNode = (node) => {
27075    return node.nodeType === 1 /* ELEMENT */ && node.tagName.toLowerCase() === "template";
27076  };
27077  return [hydrate, hydrateNode];
27078}
27079function propHasMismatch(el, key, clientValue, vnode, instance) {
27080  var _a;
27081  let mismatchType;
27082  let mismatchKey;
27083  let actual;
27084  let expected;
27085  if (key === "class") {
27086    actual = el.getAttribute("class");
27087    expected = Object(_vue_shared__WEBPACK_IMPORTED_MODULE_1__["normalizeClass"])(clientValue);
27088    if (!isSetEqual(toClassSet(actual || ""), toClassSet(expected))) {
27089      mismatchType = mismatchKey = `class`;
27090    }
27091  } else if (key === "style") {
27092    actual = el.getAttribute("style");
27093    expected = Object(_vue_shared__WEBPACK_IMPORTED_MODULE_1__["isString"])(clientValue) ? clientValue : Object(_vue_shared__WEBPACK_IMPORTED_MODULE_1__["stringifyStyle"])(Object(_vue_shared__WEBPACK_IMPORTED_MODULE_1__["normalizeStyle"])(clientValue));
27094    const actualMap = toStyleMap(actual);
27095    const expectedMap = toStyleMap(expected);
27096    if (vnode.dirs) {
27097      for (const { dir, value } of vnode.dirs) {
27098        if (dir.name === "show" && !value) {
27099          expectedMap.set("display", "none");
27100        }
27101      }
27102    }
27103    const root = instance == null ? void 0 : instance.subTree;
27104    if (vnode === root || (root == null ? void 0 : root.type) === Fragment && root.children.includes(vnode)) {
27105      const cssVars = (_a = instance == null ? void 0 : instance.getCssVars) == null ? void 0 : _a.call(instance);
27106      for (const key2 in cssVars) {
27107        expectedMap.set(`--${key2}`, String(cssVars[key2]));
27108      }
27109    }
27110    if (!isMapEqual(actualMap, expectedMap)) {
27111      mismatchType = mismatchKey = "style";
27112    }
27113  } else if (el instanceof SVGElement && Object(_vue_shared__WEBPACK_IMPORTED_MODULE_1__["isKnownSvgAttr"])(key) || el instanceof HTMLElement && (Object(_vue_shared__WEBPACK_IMPORTED_MODULE_1__["isBooleanAttr"])(key) || Object(_vue_shared__WEBPACK_IMPORTED_MODULE_1__["isKnownHtmlAttr"])(key))) {
27114    if (Object(_vue_shared__WEBPACK_IMPORTED_MODULE_1__["isBooleanAttr"])(key)) {
27115      actual = el.hasAttribute(key);
27116      expected = Object(_vue_shared__WEBPACK_IMPORTED_MODULE_1__["includeBooleanAttr"])(clientValue);
27117    } else if (clientValue == null) {
27118      actual = el.hasAttribute(key);
27119      expected = false;
27120    } else {
27121      if (el.hasAttribute(key)) {
27122        actual = el.getAttribute(key);
27123      } else if (key === "value" && el.tagName === "TEXTAREA") {
27124        actual = el.value;
27125      } else {
27126        actual = false;
27127      }
27128      expected = Object(_vue_shared__WEBPACK_IMPORTED_MODULE_1__["isRenderableAttrValue"])(clientValue) ? String(clientValue) : false;
27129    }
27130    if (actual !== expected) {
27131      mismatchType = `attribute`;
27132      mismatchKey = key;
27133    }
27134  }
27135  if (mismatchType) {
27136    const format = (v) => v === false ? `(not rendered)` : `${mismatchKey}="${v}"`;
27137    const preSegment = `Hydration ${mismatchType} mismatch on`;
27138    const postSegment = `
27139  - rendered on server: ${format(actual)}
27140  - expected on client: ${format(expected)}
27141  Note: this mismatch is check-only. The DOM will not be rectified in production due to performance overhead.
27142  You should fix the source of the mismatch.`;
27143    {
27144      warn$1(preSegment, el, postSegment);
27145    }
27146    return true;
27147  }
27148  return false;
27149}
27150function toClassSet(str) {
27151  return new Set(str.trim().split(/\s+/));
27152}
27153function isSetEqual(a, b) {
27154  if (a.size !== b.size) {
27155    return false;
27156  }
27157  for (const s of a) {
27158    if (!b.has(s)) {
27159      return false;
27160    }
27161  }
27162  return true;
27163}
27164function toStyleMap(str) {
27165  const styleMap = /* @__PURE__ */ new Map();
27166  for (const item of str.split(";")) {
27167    let [key, value] = item.split(":");
27168    key = key == null ? void 0 : key.trim();
27169    value = value == null ? void 0 : value.trim();
27170    if (key && value) {
27171      styleMap.set(key, value);
27172    }
27173  }
27174  return styleMap;
27175}
27176function isMapEqual(a, b) {
27177  if (a.size !== b.size) {
27178    return false;
27179  }
27180  for (const [key, value] of a) {
27181    if (value !== b.get(key)) {
27182      return false;
27183    }
27184  }
27185  return true;
27186}
27187
27188let supported;
27189let perf;
27190function startMeasure(instance, type) {
27191  if (instance.appContext.config.performance && isSupported()) {
27192    perf.mark(`vue-${type}-${instance.uid}`);
27193  }
27194  if (true) {
27195    devtoolsPerfStart(instance, type, isSupported() ? perf.now() : Date.now());
27196  }
27197}
27198function endMeasure(instance, type) {
27199  if (instance.appContext.config.performance && isSupported()) {
27200    const startTag = `vue-${type}-${instance.uid}`;
27201    const endTag = startTag + `:end`;
27202    perf.mark(endTag);
27203    perf.measure(
27204      `<${formatComponentName(instance, instance.type)}> ${type}`,
27205      startTag,
27206      endTag
27207    );
27208    perf.clearMarks(startTag);
27209    perf.clearMarks(endTag);
27210  }
27211  if (true) {
27212    devtoolsPerfEnd(instance, type, isSupported() ? perf.now() : Date.now());
27213  }
27214}
27215function isSupported() {
27216  if (supported !== void 0) {
27217    return supported;
27218  }
27219  if (typeof window !== "undefined" && window.performance) {
27220    supported = true;
27221    perf = window.performance;
27222  } else {
27223    supported = false;
27224  }
27225  return supported;
27226}
27227
27228function initFeatureFlags() {
27229  const needWarn = [];
27230  if (false) {}
27231  if (false) {}
27232  if (false) {}
27233  if ( true && needWarn.length) {
27234    const multi = needWarn.length > 1;
27235    console.warn(
27236      `Feature flag${multi ? `s` : ``} ${needWarn.join(", ")} ${multi ? `are` : `is`} not explicitly defined. You are running the esm-bundler build of Vue, which expects these compile-time feature flags to be globally injected via the bundler config in order to get better tree-shaking in the production bundle.
27237
27238For more details, see https://link.vuejs.org/feature-flags.`
27239    );
27240  }
27241}
27242
27243const queuePostRenderEffect = queueEffectWithSuspense ;
27244function createRenderer(options) {
27245  return baseCreateRenderer(options);
27246}
27247function createHydrationRenderer(options) {
27248  return baseCreateRenderer(options, createHydrationFunctions);
27249}
27250function baseCreateRenderer(options, createHydrationFns) {
27251  {
27252    initFeatureFlags();
27253  }
27254  const target = Object(_vue_shared__WEBPACK_IMPORTED_MODULE_1__["getGlobalThis"])();
27255  target.__VUE__ = true;
27256  if (true) {
27257    setDevtoolsHook$1(target.__VUE_DEVTOOLS_GLOBAL_HOOK__, target);
27258  }
27259  const {
27260    insert: hostInsert,
27261    remove: hostRemove,
27262    patchProp: hostPatchProp,
27263    createElement: hostCreateElement,
27264    createText: hostCreateText,
27265    createComment: hostCreateComment,
27266    setText: hostSetText,
27267    setElementText: hostSetElementText,
27268    parentNode: hostParentNode,
27269    nextSibling: hostNextSibling,
27270    setScopeId: hostSetScopeId = _vue_shared__WEBPACK_IMPORTED_MODULE_1__["NOOP"],
27271    insertStaticContent: hostInsertStaticContent
27272  } = options;
27273  const patch = (n1, n2, container, anchor = null, parentComponent = null, parentSuspense = null, namespace = void 0, slotScopeIds = null, optimized =  true && isHmrUpdating ? false : !!n2.dynamicChildren) => {
27274    if (n1 === n2) {
27275      return;
27276    }
27277    if (n1 && !isSameVNodeType(n1, n2)) {
27278      anchor = getNextHostNode(n1);
27279      unmount(n1, parentComponent, parentSuspense, true);
27280      n1 = null;
27281    }
27282    if (n2.patchFlag === -2) {
27283      optimized = false;
27284      n2.dynamicChildren = null;
27285    }
27286    const { type, ref, shapeFlag } = n2;
27287    switch (type) {
27288      case Text:
27289        processText(n1, n2, container, anchor);
27290        break;
27291      case Comment:
27292        processCommentNode(n1, n2, container, anchor);
27293        break;
27294      case Static:
27295        if (n1 == null) {
27296          mountStaticNode(n2, container, anchor, namespace);
27297        } else if (true) {
27298          patchStaticNode(n1, n2, container, namespace);
27299        }
27300        break;
27301      case Fragment:
27302        processFragment(
27303          n1,
27304          n2,
27305          container,
27306          anchor,
27307          parentComponent,
27308          parentSuspense,
27309          namespace,
27310          slotScopeIds,
27311          optimized
27312        );
27313        break;
27314      default:
27315        if (shapeFlag & 1) {
27316          processElement(
27317            n1,
27318            n2,
27319            container,
27320            anchor,
27321            parentComponent,
27322            parentSuspense,
27323            namespace,
27324            slotScopeIds,
27325            optimized
27326          );
27327        } else if (shapeFlag & 6) {
27328          processComponent(
27329            n1,
27330            n2,
27331            container,
27332            anchor,
27333            parentComponent,
27334            parentSuspense,
27335            namespace,
27336            slotScopeIds,
27337            optimized
27338          );
27339        } else if (shapeFlag & 64) {
27340          type.process(
27341            n1,
27342            n2,
27343            container,
27344            anchor,
27345            parentComponent,
27346            parentSuspense,
27347            namespace,
27348            slotScopeIds,
27349            optimized,
27350            internals
27351          );
27352        } else if (shapeFlag & 128) {
27353          type.process(
27354            n1,
27355            n2,
27356            container,
27357            anchor,
27358            parentComponent,
27359            parentSuspense,
27360            namespace,
27361            slotScopeIds,
27362            optimized,
27363            internals
27364          );
27365        } else if (true) {
27366          warn$1("Invalid VNode type:", type, `(${typeof type})`);
27367        }
27368    }
27369    if (ref != null && parentComponent) {
27370      setRef(ref, n1 && n1.ref, parentSuspense, n2 || n1, !n2);
27371    }
27372  };
27373  const processText = (n1, n2, container, anchor) => {
27374    if (n1 == null) {
27375      hostInsert(
27376        n2.el = hostCreateText(n2.children),
27377        container,
27378        anchor
27379      );
27380    } else {
27381      const el = n2.el = n1.el;
27382      if (n2.children !== n1.children) {
27383        hostSetText(el, n2.children);
27384      }
27385    }
27386  };
27387  const processCommentNode = (n1, n2, container, anchor) => {
27388    if (n1 == null) {
27389      hostInsert(
27390        n2.el = hostCreateComment(n2.children || ""),
27391        container,
27392        anchor
27393      );
27394    } else {
27395      n2.el = n1.el;
27396    }
27397  };
27398  const mountStaticNode = (n2, container, anchor, namespace) => {
27399    [n2.el, n2.anchor] = hostInsertStaticContent(
27400      n2.children,
27401      container,
27402      anchor,
27403      namespace,
27404      n2.el,
27405      n2.anchor
27406    );
27407  };
27408  const patchStaticNode = (n1, n2, container, namespace) => {
27409    if (n2.children !== n1.children) {
27410      const anchor = hostNextSibling(n1.anchor);
27411      removeStaticNode(n1);
27412      [n2.el, n2.anchor] = hostInsertStaticContent(
27413        n2.children,
27414        container,
27415        anchor,
27416        namespace
27417      );
27418    } else {
27419      n2.el = n1.el;
27420      n2.anchor = n1.anchor;
27421    }
27422  };
27423  const moveStaticNode = ({ el, anchor }, container, nextSibling) => {
27424    let next;
27425    while (el && el !== anchor) {
27426      next = hostNextSibling(el);
27427      hostInsert(el, container, nextSibling);
27428      el = next;
27429    }
27430    hostInsert(anchor, container, nextSibling);
27431  };
27432  const removeStaticNode = ({ el, anchor }) => {
27433    let next;
27434    while (el && el !== anchor) {
27435      next = hostNextSibling(el);
27436      hostRemove(el);
27437      el = next;
27438    }
27439    hostRemove(anchor);
27440  };
27441  const processElement = (n1, n2, container, anchor, parentComponent, parentSuspense, namespace, slotScopeIds, optimized) => {
27442    if (n2.type === "svg") {
27443      namespace = "svg";
27444    } else if (n2.type === "math") {
27445      namespace = "mathml";
27446    }
27447    if (n1 == null) {
27448      mountElement(
27449        n2,
27450        container,
27451        anchor,
27452        parentComponent,
27453        parentSuspense,
27454        namespace,
27455        slotScopeIds,
27456        optimized
27457      );
27458    } else {
27459      patchElement(
27460        n1,
27461        n2,
27462        parentComponent,
27463        parentSuspense,
27464        namespace,
27465        slotScopeIds,
27466        optimized
27467      );
27468    }
27469  };
27470  const mountElement = (vnode, container, anchor, parentComponent, parentSuspense, namespace, slotScopeIds, optimized) => {
27471    let el;
27472    let vnodeHook;
27473    const { props, shapeFlag, transition, dirs } = vnode;
27474    el = vnode.el = hostCreateElement(
27475      vnode.type,
27476      namespace,
27477      props && props.is,
27478      props
27479    );
27480    if (shapeFlag & 8) {
27481      hostSetElementText(el, vnode.children);
27482    } else if (shapeFlag & 16) {
27483      mountChildren(
27484        vnode.children,
27485        el,
27486        null,
27487        parentComponent,
27488        parentSuspense,
27489        resolveChildrenNamespace(vnode, namespace),
27490        slotScopeIds,
27491        optimized
27492      );
27493    }
27494    if (dirs) {
27495      invokeDirectiveHook(vnode, null, parentComponent, "created");
27496    }
27497    setScopeId(el, vnode, vnode.scopeId, slotScopeIds, parentComponent);
27498    if (props) {
27499      for (const key in props) {
27500        if (key !== "value" && !Object(_vue_shared__WEBPACK_IMPORTED_MODULE_1__["isReservedProp"])(key)) {
27501          hostPatchProp(
27502            el,
27503            key,
27504            null,
27505            props[key],
27506            namespace,
27507            vnode.children,
27508            parentComponent,
27509            parentSuspense,
27510            unmountChildren
27511          );
27512        }
27513      }
27514      if ("value" in props) {
27515        hostPatchProp(el, "value", null, props.value, namespace);
27516      }
27517      if (vnodeHook = props.onVnodeBeforeMount) {
27518        invokeVNodeHook(vnodeHook, parentComponent, vnode);
27519      }
27520    }
27521    if (true) {
27522      Object.defineProperty(el, "__vnode", {
27523        value: vnode,
27524        enumerable: false
27525      });
27526      Object.defineProperty(el, "__vueParentComponent", {
27527        value: parentComponent,
27528        enumerable: false
27529      });
27530    }
27531    if (dirs) {
27532      invokeDirectiveHook(vnode, null, parentComponent, "beforeMount");
27533    }
27534    const needCallTransitionHooks = needTransition(parentSuspense, transition);
27535    if (needCallTransitionHooks) {
27536      transition.beforeEnter(el);
27537    }
27538    hostInsert(el, container, anchor);
27539    if ((vnodeHook = props && props.onVnodeMounted) || needCallTransitionHooks || dirs) {
27540      queuePostRenderEffect(() => {
27541        vnodeHook && invokeVNodeHook(vnodeHook, parentComponent, vnode);
27542        needCallTransitionHooks && transition.enter(el);
27543        dirs && invokeDirectiveHook(vnode, null, parentComponent, "mounted");
27544      }, parentSuspense);
27545    }
27546  };
27547  const setScopeId = (el, vnode, scopeId, slotScopeIds, parentComponent) => {
27548    if (scopeId) {
27549      hostSetScopeId(el, scopeId);
27550    }
27551    if (slotScopeIds) {
27552      for (let i = 0; i < slotScopeIds.length; i++) {
27553        hostSetScopeId(el, slotScopeIds[i]);
27554      }
27555    }
27556    if (parentComponent) {
27557      let subTree = parentComponent.subTree;
27558      if ( true && subTree.patchFlag > 0 && subTree.patchFlag & 2048) {
27559        subTree = filterSingleRoot(subTree.children) || subTree;
27560      }
27561      if (vnode === subTree) {
27562        const parentVNode = parentComponent.vnode;
27563        setScopeId(
27564          el,
27565          parentVNode,
27566          parentVNode.scopeId,
27567          parentVNode.slotScopeIds,
27568          parentComponent.parent
27569        );
27570      }
27571    }
27572  };
27573  const mountChildren = (children, container, anchor, parentComponent, parentSuspense, namespace, slotScopeIds, optimized, start = 0) => {
27574    for (let i = start; i < children.length; i++) {
27575      const child = children[i] = optimized ? cloneIfMounted(children[i]) : normalizeVNode(children[i]);
27576      patch(
27577        null,
27578        child,
27579        container,
27580        anchor,
27581        parentComponent,
27582        parentSuspense,
27583        namespace,
27584        slotScopeIds,
27585        optimized
27586      );
27587    }
27588  };
27589  const patchElement = (n1, n2, parentComponent, parentSuspense, namespace, slotScopeIds, optimized) => {
27590    const el = n2.el = n1.el;
27591    let { patchFlag, dynamicChildren, dirs } = n2;
27592    patchFlag |= n1.patchFlag & 16;
27593    const oldProps = n1.props || _vue_shared__WEBPACK_IMPORTED_MODULE_1__["EMPTY_OBJ"];
27594    const newProps = n2.props || _vue_shared__WEBPACK_IMPORTED_MODULE_1__["EMPTY_OBJ"];
27595    let vnodeHook;
27596    parentComponent && toggleRecurse(parentComponent, false);
27597    if (vnodeHook = newProps.onVnodeBeforeUpdate) {
27598      invokeVNodeHook(vnodeHook, parentComponent, n2, n1);
27599    }
27600    if (dirs) {
27601      invokeDirectiveHook(n2, n1, parentComponent, "beforeUpdate");
27602    }
27603    parentComponent && toggleRecurse(parentComponent, true);
27604    if ( true && isHmrUpdating) {
27605      patchFlag = 0;
27606      optimized = false;
27607      dynamicChildren = null;
27608    }
27609    if (dynamicChildren) {
27610      patchBlockChildren(
27611        n1.dynamicChildren,
27612        dynamicChildren,
27613        el,
27614        parentComponent,
27615        parentSuspense,
27616        resolveChildrenNamespace(n2, namespace),
27617        slotScopeIds
27618      );
27619      if (true) {
27620        traverseStaticChildren(n1, n2);
27621      }
27622    } else if (!optimized) {
27623      patchChildren(
27624        n1,
27625        n2,
27626        el,
27627        null,
27628        parentComponent,
27629        parentSuspense,
27630        resolveChildrenNamespace(n2, namespace),
27631        slotScopeIds,
27632        false
27633      );
27634    }
27635    if (patchFlag > 0) {
27636      if (patchFlag & 16) {
27637        patchProps(
27638          el,
27639          n2,
27640          oldProps,
27641          newProps,
27642          parentComponent,
27643          parentSuspense,
27644          namespace
27645        );
27646      } else {
27647        if (patchFlag & 2) {
27648          if (oldProps.class !== newProps.class) {
27649            hostPatchProp(el, "class", null, newProps.class, namespace);
27650          }
27651        }
27652        if (patchFlag & 4) {
27653          hostPatchProp(el, "style", oldProps.style, newProps.style, namespace);
27654        }
27655        if (patchFlag & 8) {
27656          const propsToUpdate = n2.dynamicProps;
27657          for (let i = 0; i < propsToUpdate.length; i++) {
27658            const key = propsToUpdate[i];
27659            const prev = oldProps[key];
27660            const next = newProps[key];
27661            if (next !== prev || key === "value") {
27662              hostPatchProp(
27663                el,
27664                key,
27665                prev,
27666                next,
27667                namespace,
27668                n1.children,
27669                parentComponent,
27670                parentSuspense,
27671                unmountChildren
27672              );
27673            }
27674          }
27675        }
27676      }
27677      if (patchFlag & 1) {
27678        if (n1.children !== n2.children) {
27679          hostSetElementText(el, n2.children);
27680        }
27681      }
27682    } else if (!optimized && dynamicChildren == null) {
27683      patchProps(
27684        el,
27685        n2,
27686        oldProps,
27687        newProps,
27688        parentComponent,
27689        parentSuspense,
27690        namespace
27691      );
27692    }
27693    if ((vnodeHook = newProps.onVnodeUpdated) || dirs) {
27694      queuePostRenderEffect(() => {
27695        vnodeHook && invokeVNodeHook(vnodeHook, parentComponent, n2, n1);
27696        dirs && invokeDirectiveHook(n2, n1, parentComponent, "updated");
27697      }, parentSuspense);
27698    }
27699  };
27700  const patchBlockChildren = (oldChildren, newChildren, fallbackContainer, parentComponent, parentSuspense, namespace, slotScopeIds) => {
27701    for (let i = 0; i < newChildren.length; i++) {
27702      const oldVNode = oldChildren[i];
27703      const newVNode = newChildren[i];
27704      const container = (
27705        // oldVNode may be an errored async setup() component inside Suspense
27706        // which will not have a mounted element
27707        oldVNode.el && // - In the case of a Fragment, we need to provide the actual parent
27708        // of the Fragment itself so it can move its children.
27709        (oldVNode.type === Fragment || // - In the case of different nodes, there is going to be a replacement
27710        // which also requires the correct parent container
27711        !isSameVNodeType(oldVNode, newVNode) || // - In the case of a component, it could contain anything.
27712        oldVNode.shapeFlag & (6 | 64)) ? hostParentNode(oldVNode.el) : (
27713          // In other cases, the parent container is not actually used so we
27714          // just pass the block element here to avoid a DOM parentNode call.
27715          fallbackContainer
27716        )
27717      );
27718      patch(
27719        oldVNode,
27720        newVNode,
27721        container,
27722        null,
27723        parentComponent,
27724        parentSuspense,
27725        namespace,
27726        slotScopeIds,
27727        true
27728      );
27729    }
27730  };
27731  const patchProps = (el, vnode, oldProps, newProps, parentComponent, parentSuspense, namespace) => {
27732    if (oldProps !== newProps) {
27733      if (oldProps !== _vue_shared__WEBPACK_IMPORTED_MODULE_1__["EMPTY_OBJ"]) {
27734        for (const key in oldProps) {
27735          if (!Object(_vue_shared__WEBPACK_IMPORTED_MODULE_1__["isReservedProp"])(key) && !(key in newProps)) {
27736            hostPatchProp(
27737              el,
27738              key,
27739              oldProps[key],
27740              null,
27741              namespace,
27742              vnode.children,
27743              parentComponent,
27744              parentSuspense,
27745              unmountChildren
27746            );
27747          }
27748        }
27749      }
27750      for (const key in newProps) {
27751        if (Object(_vue_shared__WEBPACK_IMPORTED_MODULE_1__["isReservedProp"])(key))
27752          continue;
27753        const next = newProps[key];
27754        const prev = oldProps[key];
27755        if (next !== prev && key !== "value") {
27756          hostPatchProp(
27757            el,
27758            key,
27759            prev,
27760            next,
27761            namespace,
27762            vnode.children,
27763            parentComponent,
27764            parentSuspense,
27765            unmountChildren
27766          );
27767        }
27768      }
27769      if ("value" in newProps) {
27770        hostPatchProp(el, "value", oldProps.value, newProps.value, namespace);
27771      }
27772    }
27773  };
27774  const processFragment = (n1, n2, container, anchor, parentComponent, parentSuspense, namespace, slotScopeIds, optimized) => {
27775    const fragmentStartAnchor = n2.el = n1 ? n1.el : hostCreateText("");
27776    const fragmentEndAnchor = n2.anchor = n1 ? n1.anchor : hostCreateText("");
27777    let { patchFlag, dynamicChildren, slotScopeIds: fragmentSlotScopeIds } = n2;
27778    if ( true && // #5523 dev root fragment may inherit directives
27779    (isHmrUpdating || patchFlag & 2048)) {
27780      patchFlag = 0;
27781      optimized = false;
27782      dynamicChildren = null;
27783    }
27784    if (fragmentSlotScopeIds) {
27785      slotScopeIds = slotScopeIds ? slotScopeIds.concat(fragmentSlotScopeIds) : fragmentSlotScopeIds;
27786    }
27787    if (n1 == null) {
27788      hostInsert(fragmentStartAnchor, container, anchor);
27789      hostInsert(fragmentEndAnchor, container, anchor);
27790      mountChildren(
27791        // #10007
27792        // such fragment like `<></>` will be compiled into
27793        // a fragment which doesn't have a children.
27794        // In this case fallback to an empty array
27795        n2.children || [],
27796        container,
27797        fragmentEndAnchor,
27798        parentComponent,
27799        parentSuspense,
27800        namespace,
27801        slotScopeIds,
27802        optimized
27803      );
27804    } else {
27805      if (patchFlag > 0 && patchFlag & 64 && dynamicChildren && // #2715 the previous fragment could've been a BAILed one as a result
27806      // of renderSlot() with no valid children
27807      n1.dynamicChildren) {
27808        patchBlockChildren(
27809          n1.dynamicChildren,
27810          dynamicChildren,
27811          container,
27812          parentComponent,
27813          parentSuspense,
27814          namespace,
27815          slotScopeIds
27816        );
27817        if (true) {
27818          traverseStaticChildren(n1, n2);
27819        } else {}
27820      } else {
27821        patchChildren(
27822          n1,
27823          n2,
27824          container,
27825          fragmentEndAnchor,
27826          parentComponent,
27827          parentSuspense,
27828          namespace,
27829          slotScopeIds,
27830          optimized
27831        );
27832      }
27833    }
27834  };
27835  const processComponent = (n1, n2, container, anchor, parentComponent, parentSuspense, namespace, slotScopeIds, optimized) => {
27836    n2.slotScopeIds = slotScopeIds;
27837    if (n1 == null) {
27838      if (n2.shapeFlag & 512) {
27839        parentComponent.ctx.activate(
27840          n2,
27841          container,
27842          anchor,
27843          namespace,
27844          optimized
27845        );
27846      } else {
27847        mountComponent(
27848          n2,
27849          container,
27850          anchor,
27851          parentComponent,
27852          parentSuspense,
27853          namespace,
27854          optimized
27855        );
27856      }
27857    } else {
27858      updateComponent(n1, n2, optimized);
27859    }
27860  };
27861  const mountComponent = (initialVNode, container, anchor, parentComponent, parentSuspense, namespace, optimized) => {
27862    const instance = (initialVNode.component = createComponentInstance(
27863      initialVNode,
27864      parentComponent,
27865      parentSuspense
27866    ));
27867    if ( true && instance.type.__hmrId) {
27868      registerHMR(instance);
27869    }
27870    if (true) {
27871      pushWarningContext(initialVNode);
27872      startMeasure(instance, `mount`);
27873    }
27874    if (isKeepAlive(initialVNode)) {
27875      instance.ctx.renderer = internals;
27876    }
27877    {
27878      if (true) {
27879        startMeasure(instance, `init`);
27880      }
27881      setupComponent(instance);
27882      if (true) {
27883        endMeasure(instance, `init`);
27884      }
27885    }
27886    if (instance.asyncDep) {
27887      parentSuspense && parentSuspense.registerDep(instance, setupRenderEffect);
27888      if (!initialVNode.el) {
27889        const placeholder = instance.subTree = createVNode(Comment);
27890        processCommentNode(null, placeholder, container, anchor);
27891      }
27892    } else {
27893      setupRenderEffect(
27894        instance,
27895        initialVNode,
27896        container,
27897        anchor,
27898        parentSuspense,
27899        namespace,
27900        optimized
27901      );
27902    }
27903    if (true) {
27904      popWarningContext();
27905      endMeasure(instance, `mount`);
27906    }
27907  };
27908  const updateComponent = (n1, n2, optimized) => {
27909    const instance = n2.component = n1.component;
27910    if (shouldUpdateComponent(n1, n2, optimized)) {
27911      if (instance.asyncDep && !instance.asyncResolved) {
27912        if (true) {
27913          pushWarningContext(n2);
27914        }
27915        updateComponentPreRender(instance, n2, optimized);
27916        if (true) {
27917          popWarningContext();
27918        }
27919        return;
27920      } else {
27921        instance.next = n2;
27922        invalidateJob(instance.update);
27923        instance.effect.dirty = true;
27924        instance.update();
27925      }
27926    } else {
27927      n2.el = n1.el;
27928      instance.vnode = n2;
27929    }
27930  };
27931  const setupRenderEffect = (instance, initialVNode, container, anchor, parentSuspense, namespace, optimized) => {
27932    const componentUpdateFn = () => {
27933      if (!instance.isMounted) {
27934        let vnodeHook;
27935        const { el, props } = initialVNode;
27936        const { bm, m, parent } = instance;
27937        const isAsyncWrapperVNode = isAsyncWrapper(initialVNode);
27938        toggleRecurse(instance, false);
27939        if (bm) {
27940          Object(_vue_shared__WEBPACK_IMPORTED_MODULE_1__["invokeArrayFns"])(bm);
27941        }
27942        if (!isAsyncWrapperVNode && (vnodeHook = props && props.onVnodeBeforeMount)) {
27943          invokeVNodeHook(vnodeHook, parent, initialVNode);
27944        }
27945        toggleRecurse(instance, true);
27946        if (el && hydrateNode) {
27947          const hydrateSubTree = () => {
27948            if (true) {
27949              startMeasure(instance, `render`);
27950            }
27951            instance.subTree = renderComponentRoot(instance);
27952            if (true) {
27953              endMeasure(instance, `render`);
27954            }
27955            if (true) {
27956              startMeasure(instance, `hydrate`);
27957            }
27958            hydrateNode(
27959              el,
27960              instance.subTree,
27961              instance,
27962              parentSuspense,
27963              null
27964            );
27965            if (true) {
27966              endMeasure(instance, `hydrate`);
27967            }
27968          };
27969          if (isAsyncWrapperVNode) {
27970            initialVNode.type.__asyncLoader().then(
27971              // note: we are moving the render call into an async callback,
27972              // which means it won't track dependencies - but it's ok because
27973              // a server-rendered async wrapper is already in resolved state
27974              // and it will never need to change.
27975              () => !instance.isUnmounted && hydrateSubTree()
27976            );
27977          } else {
27978            hydrateSubTree();
27979          }
27980        } else {
27981          if (true) {
27982            startMeasure(instance, `render`);
27983          }
27984          const subTree = instance.subTree = renderComponentRoot(instance);
27985          if (true) {
27986            endMeasure(instance, `render`);
27987          }
27988          if (true) {
27989            startMeasure(instance, `patch`);
27990          }
27991          patch(
27992            null,
27993            subTree,
27994            container,
27995            anchor,
27996            instance,
27997            parentSuspense,
27998            namespace
27999          );
28000          if (true) {
28001            endMeasure(instance, `patch`);
28002          }
28003          initialVNode.el = subTree.el;
28004        }
28005        if (m) {
28006          queuePostRenderEffect(m, parentSuspense);
28007        }
28008        if (!isAsyncWrapperVNode && (vnodeHook = props && props.onVnodeMounted)) {
28009          const scopedInitialVNode = initialVNode;
28010          queuePostRenderEffect(
28011            () => invokeVNodeHook(vnodeHook, parent, scopedInitialVNode),
28012            parentSuspense
28013          );
28014        }
28015        if (initialVNode.shapeFlag & 256 || parent && isAsyncWrapper(parent.vnode) && parent.vnode.shapeFlag & 256) {
28016          instance.a && queuePostRenderEffect(instance.a, parentSuspense);
28017        }
28018        instance.isMounted = true;
28019        if (true) {
28020          devtoolsComponentAdded(instance);
28021        }
28022        initialVNode = container = anchor = null;
28023      } else {
28024        let { next, bu, u, parent, vnode } = instance;
28025        {
28026          const nonHydratedAsyncRoot = locateNonHydratedAsyncRoot(instance);
28027          if (nonHydratedAsyncRoot) {
28028            if (next) {
28029              next.el = vnode.el;
28030              updateComponentPreRender(instance, next, optimized);
28031            }
28032            nonHydratedAsyncRoot.asyncDep.then(() => {
28033              if (!instance.isUnmounted) {
28034                componentUpdateFn();
28035              }
28036            });
28037            return;
28038          }
28039        }
28040        let originNext = next;
28041        let vnodeHook;
28042        if (true) {
28043          pushWarningContext(next || instance.vnode);
28044        }
28045        toggleRecurse(instance, false);
28046        if (next) {
28047          next.el = vnode.el;
28048          updateComponentPreRender(instance, next, optimized);
28049        } else {
28050          next = vnode;
28051        }
28052        if (bu) {
28053          Object(_vue_shared__WEBPACK_IMPORTED_MODULE_1__["invokeArrayFns"])(bu);
28054        }
28055        if (vnodeHook = next.props && next.props.onVnodeBeforeUpdate) {
28056          invokeVNodeHook(vnodeHook, parent, next, vnode);
28057        }
28058        toggleRecurse(instance, true);
28059        if (true) {
28060          startMeasure(instance, `render`);
28061        }
28062        const nextTree = renderComponentRoot(instance);
28063        if (true) {
28064          endMeasure(instance, `render`);
28065        }
28066        const prevTree = instance.subTree;
28067        instance.subTree = nextTree;
28068        if (true) {
28069          startMeasure(instance, `patch`);
28070        }
28071        patch(
28072          prevTree,
28073          nextTree,
28074          // parent may have changed if it's in a teleport
28075          hostParentNode(prevTree.el),
28076          // anchor may have changed if it's in a fragment
28077          getNextHostNode(prevTree),
28078          instance,
28079          parentSuspense,
28080          namespace
28081        );
28082        if (true) {
28083          endMeasure(instance, `patch`);
28084        }
28085        next.el = nextTree.el;
28086        if (originNext === null) {
28087          updateHOCHostEl(instance, nextTree.el);
28088        }
28089        if (u) {
28090          queuePostRenderEffect(u, parentSuspense);
28091        }
28092        if (vnodeHook = next.props && next.props.onVnodeUpdated) {
28093          queuePostRenderEffect(
28094            () => invokeVNodeHook(vnodeHook, parent, next, vnode),
28095            parentSuspense
28096          );
28097        }
28098        if (true) {
28099          devtoolsComponentUpdated(instance);
28100        }
28101        if (true) {
28102          popWarningContext();
28103        }
28104      }
28105    };
28106    const effect = instance.effect = new _vue_reactivity__WEBPACK_IMPORTED_MODULE_0__["ReactiveEffect"](
28107      componentUpdateFn,
28108      _vue_shared__WEBPACK_IMPORTED_MODULE_1__["NOOP"],
28109      () => queueJob(update),
28110      instance.scope
28111      // track it in component's effect scope
28112    );
28113    const update = instance.update = () => {
28114      if (effect.dirty) {
28115        effect.run();
28116      }
28117    };
28118    update.id = instance.uid;
28119    toggleRecurse(instance, true);
28120    if (true) {
28121      effect.onTrack = instance.rtc ? (e) => Object(_vue_shared__WEBPACK_IMPORTED_MODULE_1__["invokeArrayFns"])(instance.rtc, e) : void 0;
28122      effect.onTrigger = instance.rtg ? (e) => Object(_vue_shared__WEBPACK_IMPORTED_MODULE_1__["invokeArrayFns"])(instance.rtg, e) : void 0;
28123      update.ownerInstance = instance;
28124    }
28125    update();
28126  };
28127  const updateComponentPreRender = (instance, nextVNode, optimized) => {
28128    nextVNode.component = instance;
28129    const prevProps = instance.vnode.props;
28130    instance.vnode = nextVNode;
28131    instance.next = null;
28132    updateProps(instance, nextVNode.props, prevProps, optimized);
28133    updateSlots(instance, nextVNode.children, optimized);
28134    Object(_vue_reactivity__WEBPACK_IMPORTED_MODULE_0__["pauseTracking"])();
28135    flushPreFlushCbs(instance);
28136    Object(_vue_reactivity__WEBPACK_IMPORTED_MODULE_0__["resetTracking"])();
28137  };
28138  const patchChildren = (n1, n2, container, anchor, parentComponent, parentSuspense, namespace, slotScopeIds, optimized = false) => {
28139    const c1 = n1 && n1.children;
28140    const prevShapeFlag = n1 ? n1.shapeFlag : 0;
28141    const c2 = n2.children;
28142    const { patchFlag, shapeFlag } = n2;
28143    if (patchFlag > 0) {
28144      if (patchFlag & 128) {
28145        patchKeyedChildren(
28146          c1,
28147          c2,
28148          container,
28149          anchor,
28150          parentComponent,
28151          parentSuspense,
28152          namespace,
28153          slotScopeIds,
28154          optimized
28155        );
28156        return;
28157      } else if (patchFlag & 256) {
28158        patchUnkeyedChildren(
28159          c1,
28160          c2,
28161          container,
28162          anchor,
28163          parentComponent,
28164          parentSuspense,
28165          namespace,
28166          slotScopeIds,
28167          optimized
28168        );
28169        return;
28170      }
28171    }
28172    if (shapeFlag & 8) {
28173      if (prevShapeFlag & 16) {
28174        unmountChildren(c1, parentComponent, parentSuspense);
28175      }
28176      if (c2 !== c1) {
28177        hostSetElementText(container, c2);
28178      }
28179    } else {
28180      if (prevShapeFlag & 16) {
28181        if (shapeFlag & 16) {
28182          patchKeyedChildren(
28183            c1,
28184            c2,
28185            container,
28186            anchor,
28187            parentComponent,
28188            parentSuspense,
28189            namespace,
28190            slotScopeIds,
28191            optimized
28192          );
28193        } else {
28194          unmountChildren(c1, parentComponent, parentSuspense, true);
28195        }
28196      } else {
28197        if (prevShapeFlag & 8) {
28198          hostSetElementText(container, "");
28199        }
28200        if (shapeFlag & 16) {
28201          mountChildren(
28202            c2,
28203            container,
28204            anchor,
28205            parentComponent,
28206            parentSuspense,
28207            namespace,
28208            slotScopeIds,
28209            optimized
28210          );
28211        }
28212      }
28213    }
28214  };
28215  const patchUnkeyedChildren = (c1, c2, container, anchor, parentComponent, parentSuspense, namespace, slotScopeIds, optimized) => {
28216    c1 = c1 || _vue_shared__WEBPACK_IMPORTED_MODULE_1__["EMPTY_ARR"];
28217    c2 = c2 || _vue_shared__WEBPACK_IMPORTED_MODULE_1__["EMPTY_ARR"];
28218    const oldLength = c1.length;
28219    const newLength = c2.length;
28220    const commonLength = Math.min(oldLength, newLength);
28221    let i;
28222    for (i = 0; i < commonLength; i++) {
28223      const nextChild = c2[i] = optimized ? cloneIfMounted(c2[i]) : normalizeVNode(c2[i]);
28224      patch(
28225        c1[i],
28226        nextChild,
28227        container,
28228        null,
28229        parentComponent,
28230        parentSuspense,
28231        namespace,
28232        slotScopeIds,
28233        optimized
28234      );
28235    }
28236    if (oldLength > newLength) {
28237      unmountChildren(
28238        c1,
28239        parentComponent,
28240        parentSuspense,
28241        true,
28242        false,
28243        commonLength
28244      );
28245    } else {
28246      mountChildren(
28247        c2,
28248        container,
28249        anchor,
28250        parentComponent,
28251        parentSuspense,
28252        namespace,
28253        slotScopeIds,
28254        optimized,
28255        commonLength
28256      );
28257    }
28258  };
28259  const patchKeyedChildren = (c1, c2, container, parentAnchor, parentComponent, parentSuspense, namespace, slotScopeIds, optimized) => {
28260    let i = 0;
28261    const l2 = c2.length;
28262    let e1 = c1.length - 1;
28263    let e2 = l2 - 1;
28264    while (i <= e1 && i <= e2) {
28265      const n1 = c1[i];
28266      const n2 = c2[i] = optimized ? cloneIfMounted(c2[i]) : normalizeVNode(c2[i]);
28267      if (isSameVNodeType(n1, n2)) {
28268        patch(
28269          n1,
28270          n2,
28271          container,
28272          null,
28273          parentComponent,
28274          parentSuspense,
28275          namespace,
28276          slotScopeIds,
28277          optimized
28278        );
28279      } else {
28280        break;
28281      }
28282      i++;
28283    }
28284    while (i <= e1 && i <= e2) {
28285      const n1 = c1[e1];
28286      const n2 = c2[e2] = optimized ? cloneIfMounted(c2[e2]) : normalizeVNode(c2[e2]);
28287      if (isSameVNodeType(n1, n2)) {
28288        patch(
28289          n1,
28290          n2,
28291          container,
28292          null,
28293          parentComponent,
28294          parentSuspense,
28295          namespace,
28296          slotScopeIds,
28297          optimized
28298        );
28299      } else {
28300        break;
28301      }
28302      e1--;
28303      e2--;
28304    }
28305    if (i > e1) {
28306      if (i <= e2) {
28307        const nextPos = e2 + 1;
28308        const anchor = nextPos < l2 ? c2[nextPos].el : parentAnchor;
28309        while (i <= e2) {
28310          patch(
28311            null,
28312            c2[i] = optimized ? cloneIfMounted(c2[i]) : normalizeVNode(c2[i]),
28313            container,
28314            anchor,
28315            parentComponent,
28316            parentSuspense,
28317            namespace,
28318            slotScopeIds,
28319            optimized
28320          );
28321          i++;
28322        }
28323      }
28324    } else if (i > e2) {
28325      while (i <= e1) {
28326        unmount(c1[i], parentComponent, parentSuspense, true);
28327        i++;
28328      }
28329    } else {
28330      const s1 = i;
28331      const s2 = i;
28332      const keyToNewIndexMap = /* @__PURE__ */ new Map();
28333      for (i = s2; i <= e2; i++) {
28334        const nextChild = c2[i] = optimized ? cloneIfMounted(c2[i]) : normalizeVNode(c2[i]);
28335        if (nextChild.key != null) {
28336          if ( true && keyToNewIndexMap.has(nextChild.key)) {
28337            warn$1(
28338              `Duplicate keys found during update:`,
28339              JSON.stringify(nextChild.key),
28340              `Make sure keys are unique.`
28341            );
28342          }
28343          keyToNewIndexMap.set(nextChild.key, i);
28344        }
28345      }
28346      let j;
28347      let patched = 0;
28348      const toBePatched = e2 - s2 + 1;
28349      let moved = false;
28350      let maxNewIndexSoFar = 0;
28351      const newIndexToOldIndexMap = new Array(toBePatched);
28352      for (i = 0; i < toBePatched; i++)
28353        newIndexToOldIndexMap[i] = 0;
28354      for (i = s1; i <= e1; i++) {
28355        const prevChild = c1[i];
28356        if (patched >= toBePatched) {
28357          unmount(prevChild, parentComponent, parentSuspense, true);
28358          continue;
28359        }
28360        let newIndex;
28361        if (prevChild.key != null) {
28362          newIndex = keyToNewIndexMap.get(prevChild.key);
28363        } else {
28364          for (j = s2; j <= e2; j++) {
28365            if (newIndexToOldIndexMap[j - s2] === 0 && isSameVNodeType(prevChild, c2[j])) {
28366              newIndex = j;
28367              break;
28368            }
28369          }
28370        }
28371        if (newIndex === void 0) {
28372          unmount(prevChild, parentComponent, parentSuspense, true);
28373        } else {
28374          newIndexToOldIndexMap[newIndex - s2] = i + 1;
28375          if (newIndex >= maxNewIndexSoFar) {
28376            maxNewIndexSoFar = newIndex;
28377          } else {
28378            moved = true;
28379          }
28380          patch(
28381            prevChild,
28382            c2[newIndex],
28383            container,
28384            null,
28385            parentComponent,
28386            parentSuspense,
28387            namespace,
28388            slotScopeIds,
28389            optimized
28390          );
28391          patched++;
28392        }
28393      }
28394      const increasingNewIndexSequence = moved ? getSequence(newIndexToOldIndexMap) : _vue_shared__WEBPACK_IMPORTED_MODULE_1__["EMPTY_ARR"];
28395      j = increasingNewIndexSequence.length - 1;
28396      for (i = toBePatched - 1; i >= 0; i--) {
28397        const nextIndex = s2 + i;
28398        const nextChild = c2[nextIndex];
28399        const anchor = nextIndex + 1 < l2 ? c2[nextIndex + 1].el : parentAnchor;
28400        if (newIndexToOldIndexMap[i] === 0) {
28401          patch(
28402            null,
28403            nextChild,
28404            container,
28405            anchor,
28406            parentComponent,
28407            parentSuspense,
28408            namespace,
28409            slotScopeIds,
28410            optimized
28411          );
28412        } else if (moved) {
28413          if (j < 0 || i !== increasingNewIndexSequence[j]) {
28414            move(nextChild, container, anchor, 2);
28415          } else {
28416            j--;
28417          }
28418        }
28419      }
28420    }
28421  };
28422  const move = (vnode, container, anchor, moveType, parentSuspense = null) => {
28423    const { el, type, transition, children, shapeFlag } = vnode;
28424    if (shapeFlag & 6) {
28425      move(vnode.component.subTree, container, anchor, moveType);
28426      return;
28427    }
28428    if (shapeFlag & 128) {
28429      vnode.suspense.move(container, anchor, moveType);
28430      return;
28431    }
28432    if (shapeFlag & 64) {
28433      type.move(vnode, container, anchor, internals);
28434      return;
28435    }
28436    if (type === Fragment) {
28437      hostInsert(el, container, anchor);
28438      for (let i = 0; i < children.length; i++) {
28439        move(children[i], container, anchor, moveType);
28440      }
28441      hostInsert(vnode.anchor, container, anchor);
28442      return;
28443    }
28444    if (type === Static) {
28445      moveStaticNode(vnode, container, anchor);
28446      return;
28447    }
28448    const needTransition2 = moveType !== 2 && shapeFlag & 1 && transition;
28449    if (needTransition2) {
28450      if (moveType === 0) {
28451        transition.beforeEnter(el);
28452        hostInsert(el, container, anchor);
28453        queuePostRenderEffect(() => transition.enter(el), parentSuspense);
28454      } else {
28455        const { leave, delayLeave, afterLeave } = transition;
28456        const remove2 = () => hostInsert(el, container, anchor);
28457        const performLeave = () => {
28458          leave(el, () => {
28459            remove2();
28460            afterLeave && afterLeave();
28461          });
28462        };
28463        if (delayLeave) {
28464          delayLeave(el, remove2, performLeave);
28465        } else {
28466          performLeave();
28467        }
28468      }
28469    } else {
28470      hostInsert(el, container, anchor);
28471    }
28472  };
28473  const unmount = (vnode, parentComponent, parentSuspense, doRemove = false, optimized = false) => {
28474    const {
28475      type,
28476      props,
28477      ref,
28478      children,
28479      dynamicChildren,
28480      shapeFlag,
28481      patchFlag,
28482      dirs
28483    } = vnode;
28484    if (ref != null) {
28485      setRef(ref, null, parentSuspense, vnode, true);
28486    }
28487    if (shapeFlag & 256) {
28488      parentComponent.ctx.deactivate(vnode);
28489      return;
28490    }
28491    const shouldInvokeDirs = shapeFlag & 1 && dirs;
28492    const shouldInvokeVnodeHook = !isAsyncWrapper(vnode);
28493    let vnodeHook;
28494    if (shouldInvokeVnodeHook && (vnodeHook = props && props.onVnodeBeforeUnmount)) {
28495      invokeVNodeHook(vnodeHook, parentComponent, vnode);
28496    }
28497    if (shapeFlag & 6) {
28498      unmountComponent(vnode.component, parentSuspense, doRemove);
28499    } else {
28500      if (shapeFlag & 128) {
28501        vnode.suspense.unmount(parentSuspense, doRemove);
28502        return;
28503      }
28504      if (shouldInvokeDirs) {
28505        invokeDirectiveHook(vnode, null, parentComponent, "beforeUnmount");
28506      }
28507      if (shapeFlag & 64) {
28508        vnode.type.remove(
28509          vnode,
28510          parentComponent,
28511          parentSuspense,
28512          optimized,
28513          internals,
28514          doRemove
28515        );
28516      } else if (dynamicChildren && // #1153: fast path should not be taken for non-stable (v-for) fragments
28517      (type !== Fragment || patchFlag > 0 && patchFlag & 64)) {
28518        unmountChildren(
28519          dynamicChildren,
28520          parentComponent,
28521          parentSuspense,
28522          false,
28523          true
28524        );
28525      } else if (type === Fragment && patchFlag & (128 | 256) || !optimized && shapeFlag & 16) {
28526        unmountChildren(children, parentComponent, parentSuspense);
28527      }
28528      if (doRemove) {
28529        remove(vnode);
28530      }
28531    }
28532    if (shouldInvokeVnodeHook && (vnodeHook = props && props.onVnodeUnmounted) || shouldInvokeDirs) {
28533      queuePostRenderEffect(() => {
28534        vnodeHook && invokeVNodeHook(vnodeHook, parentComponent, vnode);
28535        shouldInvokeDirs && invokeDirectiveHook(vnode, null, parentComponent, "unmounted");
28536      }, parentSuspense);
28537    }
28538  };
28539  const remove = (vnode) => {
28540    const { type, el, anchor, transition } = vnode;
28541    if (type === Fragment) {
28542      if ( true && vnode.patchFlag > 0 && vnode.patchFlag & 2048 && transition && !transition.persisted) {
28543        vnode.children.forEach((child) => {
28544          if (child.type === Comment) {
28545            hostRemove(child.el);
28546          } else {
28547            remove(child);
28548          }
28549        });
28550      } else {
28551        removeFragment(el, anchor);
28552      }
28553      return;
28554    }
28555    if (type === Static) {
28556      removeStaticNode(vnode);
28557      return;
28558    }
28559    const performRemove = () => {
28560      hostRemove(el);
28561      if (transition && !transition.persisted && transition.afterLeave) {
28562        transition.afterLeave();
28563      }
28564    };
28565    if (vnode.shapeFlag & 1 && transition && !transition.persisted) {
28566      const { leave, delayLeave } = transition;
28567      const performLeave = () => leave(el, performRemove);
28568      if (delayLeave) {
28569        delayLeave(vnode.el, performRemove, performLeave);
28570      } else {
28571        performLeave();
28572      }
28573    } else {
28574      performRemove();
28575    }
28576  };
28577  const removeFragment = (cur, end) => {
28578    let next;
28579    while (cur !== end) {
28580      next = hostNextSibling(cur);
28581      hostRemove(cur);
28582      cur = next;
28583    }
28584    hostRemove(end);
28585  };
28586  const unmountComponent = (instance, parentSuspense, doRemove) => {
28587    if ( true && instance.type.__hmrId) {
28588      unregisterHMR(instance);
28589    }
28590    const { bum, scope, update, subTree, um } = instance;
28591    if (bum) {
28592      Object(_vue_shared__WEBPACK_IMPORTED_MODULE_1__["invokeArrayFns"])(bum);
28593    }
28594    scope.stop();
28595    if (update) {
28596      update.active = false;
28597      unmount(subTree, instance, parentSuspense, doRemove);
28598    }
28599    if (um) {
28600      queuePostRenderEffect(um, parentSuspense);
28601    }
28602    queuePostRenderEffect(() => {
28603      instance.isUnmounted = true;
28604    }, parentSuspense);
28605    if (parentSuspense && parentSuspense.pendingBranch && !parentSuspense.isUnmounted && instance.asyncDep && !instance.asyncResolved && instance.suspenseId === parentSuspense.pendingId) {
28606      parentSuspense.deps--;
28607      if (parentSuspense.deps === 0) {
28608        parentSuspense.resolve();
28609      }
28610    }
28611    if (true) {
28612      devtoolsComponentRemoved(instance);
28613    }
28614  };
28615  const unmountChildren = (children, parentComponent, parentSuspense, doRemove = false, optimized = false, start = 0) => {
28616    for (let i = start; i < children.length; i++) {
28617      unmount(children[i], parentComponent, parentSuspense, doRemove, optimized);
28618    }
28619  };
28620  const getNextHostNode = (vnode) => {
28621    if (vnode.shapeFlag & 6) {
28622      return getNextHostNode(vnode.component.subTree);
28623    }
28624    if (vnode.shapeFlag & 128) {
28625      return vnode.suspense.next();
28626    }
28627    return hostNextSibling(vnode.anchor || vnode.el);
28628  };
28629  let isFlushing = false;
28630  const render = (vnode, container, namespace) => {
28631    if (vnode == null) {
28632      if (container._vnode) {
28633        unmount(container._vnode, null, null, true);
28634      }
28635    } else {
28636      patch(
28637        container._vnode || null,
28638        vnode,
28639        container,
28640        null,
28641        null,
28642        null,
28643        namespace
28644      );
28645    }
28646    if (!isFlushing) {
28647      isFlushing = true;
28648      flushPreFlushCbs();
28649      flushPostFlushCbs();
28650      isFlushing = false;
28651    }
28652    container._vnode = vnode;
28653  };
28654  const internals = {
28655    p: patch,
28656    um: unmount,
28657    m: move,
28658    r: remove,
28659    mt: mountComponent,
28660    mc: mountChildren,
28661    pc: patchChildren,
28662    pbc: patchBlockChildren,
28663    n: getNextHostNode,
28664    o: options
28665  };
28666  let hydrate;
28667  let hydrateNode;
28668  if (createHydrationFns) {
28669    [hydrate, hydrateNode] = createHydrationFns(
28670      internals
28671    );
28672  }
28673  return {
28674    render,
28675    hydrate,
28676    createApp: createAppAPI(render, hydrate)
28677  };
28678}
28679function resolveChildrenNamespace({ type, props }, currentNamespace) {
28680  return currentNamespace === "svg" && type === "foreignObject" || currentNamespace === "mathml" && type === "annotation-xml" && props && props.encoding && props.encoding.includes("html") ? void 0 : currentNamespace;
28681}
28682function toggleRecurse({ effect, update }, allowed) {
28683  effect.allowRecurse = update.allowRecurse = allowed;
28684}
28685function needTransition(parentSuspense, transition) {
28686  return (!parentSuspense || parentSuspense && !parentSuspense.pendingBranch) && transition && !transition.persisted;
28687}
28688function traverseStaticChildren(n1, n2, shallow = false) {
28689  const ch1 = n1.children;
28690  const ch2 = n2.children;
28691  if (Object(_vue_shared__WEBPACK_IMPORTED_MODULE_1__["isArray"])(ch1) && Object(_vue_shared__WEBPACK_IMPORTED_MODULE_1__["isArray"])(ch2)) {
28692    for (let i = 0; i < ch1.length; i++) {
28693      const c1 = ch1[i];
28694      let c2 = ch2[i];
28695      if (c2.shapeFlag & 1 && !c2.dynamicChildren) {
28696        if (c2.patchFlag <= 0 || c2.patchFlag === 32) {
28697          c2 = ch2[i] = cloneIfMounted(ch2[i]);
28698          c2.el = c1.el;
28699        }
28700        if (!shallow)
28701          traverseStaticChildren(c1, c2);
28702      }
28703      if (c2.type === Text) {
28704        c2.el = c1.el;
28705      }
28706      if ( true && c2.type === Comment && !c2.el) {
28707        c2.el = c1.el;
28708      }
28709    }
28710  }
28711}
28712function getSequence(arr) {
28713  const p = arr.slice();
28714  const result = [0];
28715  let i, j, u, v, c;
28716  const len = arr.length;
28717  for (i = 0; i < len; i++) {
28718    const arrI = arr[i];
28719    if (arrI !== 0) {
28720      j = result[result.length - 1];
28721      if (arr[j] < arrI) {
28722        p[i] = j;
28723        result.push(i);
28724        continue;
28725      }
28726      u = 0;
28727      v = result.length - 1;
28728      while (u < v) {
28729        c = u + v >> 1;
28730        if (arr[result[c]] < arrI) {
28731          u = c + 1;
28732        } else {
28733          v = c;
28734        }
28735      }
28736      if (arrI < arr[result[u]]) {
28737        if (u > 0) {
28738          p[i] = result[u - 1];
28739        }
28740        result[u] = i;
28741      }
28742    }
28743  }
28744  u = result.length;
28745  v = result[u - 1];
28746  while (u-- > 0) {
28747    result[u] = v;
28748    v = p[v];
28749  }
28750  return result;
28751}
28752function locateNonHydratedAsyncRoot(instance) {
28753  const subComponent = instance.subTree.component;
28754  if (subComponent) {
28755    if (subComponent.asyncDep && !subComponent.asyncResolved) {
28756      return subComponent;
28757    } else {
28758      return locateNonHydratedAsyncRoot(subComponent);
28759    }
28760  }
28761}
28762
28763const isTeleport = (type) => type.__isTeleport;
28764const isTeleportDisabled = (props) => props && (props.disabled || props.disabled === "");
28765const isTargetSVG = (target) => typeof SVGElement !== "undefined" && target instanceof SVGElement;
28766const isTargetMathML = (target) => typeof MathMLElement === "function" && target instanceof MathMLElement;
28767const resolveTarget = (props, select) => {
28768  const targetSelector = props && props.to;
28769  if (Object(_vue_shared__WEBPACK_IMPORTED_MODULE_1__["isString"])(targetSelector)) {
28770    if (!select) {
28771       true && warn$1(
28772        `Current renderer does not support string target for Teleports. (missing querySelector renderer option)`
28773      );
28774      return null;
28775    } else {
28776      const target = select(targetSelector);
28777      if (!target) {
28778         true && warn$1(
28779          `Failed to locate Teleport target with selector "${targetSelector}". Note the target element must exist before the component is mounted - i.e. the target cannot be rendered by the component itself, and ideally should be outside of the entire Vue component tree.`
28780        );
28781      }
28782      return target;
28783    }
28784  } else {
28785    if ( true && !targetSelector && !isTeleportDisabled(props)) {
28786      warn$1(`Invalid Teleport target: ${targetSelector}`);
28787    }
28788    return targetSelector;
28789  }
28790};
28791const TeleportImpl = {
28792  name: "Teleport",
28793  __isTeleport: true,
28794  process(n1, n2, container, anchor, parentComponent, parentSuspense, namespace, slotScopeIds, optimized, internals) {
28795    const {
28796      mc: mountChildren,
28797      pc: patchChildren,
28798      pbc: patchBlockChildren,
28799      o: { insert, querySelector, createText, createComment }
28800    } = internals;
28801    const disabled = isTeleportDisabled(n2.props);
28802    let { shapeFlag, children, dynamicChildren } = n2;
28803    if ( true && isHmrUpdating) {
28804      optimized = false;
28805      dynamicChildren = null;
28806    }
28807    if (n1 == null) {
28808      const placeholder = n2.el =  true ? createComment("teleport start") : undefined;
28809      const mainAnchor = n2.anchor =  true ? createComment("teleport end") : undefined;
28810      insert(placeholder, container, anchor);
28811      insert(mainAnchor, container, anchor);
28812      const target = n2.target = resolveTarget(n2.props, querySelector);
28813      const targetAnchor = n2.targetAnchor = createText("");
28814      if (target) {
28815        insert(targetAnchor, target);
28816        if (namespace === "svg" || isTargetSVG(target)) {
28817          namespace = "svg";
28818        } else if (namespace === "mathml" || isTargetMathML(target)) {
28819          namespace = "mathml";
28820        }
28821      } else if ( true && !disabled) {
28822        warn$1("Invalid Teleport target on mount:", target, `(${typeof target})`);
28823      }
28824      const mount = (container2, anchor2) => {
28825        if (shapeFlag & 16) {
28826          mountChildren(
28827            children,
28828            container2,
28829            anchor2,
28830            parentComponent,
28831            parentSuspense,
28832            namespace,
28833            slotScopeIds,
28834            optimized
28835          );
28836        }
28837      };
28838      if (disabled) {
28839        mount(container, mainAnchor);
28840      } else if (target) {
28841        mount(target, targetAnchor);
28842      }
28843    } else {
28844      n2.el = n1.el;
28845      const mainAnchor = n2.anchor = n1.anchor;
28846      const target = n2.target = n1.target;
28847      const targetAnchor = n2.targetAnchor = n1.targetAnchor;
28848      const wasDisabled = isTeleportDisabled(n1.props);
28849      const currentContainer = wasDisabled ? container : target;
28850      const currentAnchor = wasDisabled ? mainAnchor : targetAnchor;
28851      if (namespace === "svg" || isTargetSVG(target)) {
28852        namespace = "svg";
28853      } else if (namespace === "mathml" || isTargetMathML(target)) {
28854        namespace = "mathml";
28855      }
28856      if (dynamicChildren) {
28857        patchBlockChildren(
28858          n1.dynamicChildren,
28859          dynamicChildren,
28860          currentContainer,
28861          parentComponent,
28862          parentSuspense,
28863          namespace,
28864          slotScopeIds
28865        );
28866        traverseStaticChildren(n1, n2, true);
28867      } else if (!optimized) {
28868        patchChildren(
28869          n1,
28870          n2,
28871          currentContainer,
28872          currentAnchor,
28873          parentComponent,
28874          parentSuspense,
28875          namespace,
28876          slotScopeIds,
28877          false
28878        );
28879      }
28880      if (disabled) {
28881        if (!wasDisabled) {
28882          moveTeleport(
28883            n2,
28884            container,
28885            mainAnchor,
28886            internals,
28887            1
28888          );
28889        } else {
28890          if (n2.props && n1.props && n2.props.to !== n1.props.to) {
28891            n2.props.to = n1.props.to;
28892          }
28893        }
28894      } else {
28895        if ((n2.props && n2.props.to) !== (n1.props && n1.props.to)) {
28896          const nextTarget = n2.target = resolveTarget(
28897            n2.props,
28898            querySelector
28899          );
28900          if (nextTarget) {
28901            moveTeleport(
28902              n2,
28903              nextTarget,
28904              null,
28905              internals,
28906              0
28907            );
28908          } else if (true) {
28909            warn$1(
28910              "Invalid Teleport target on update:",
28911              target,
28912              `(${typeof target})`
28913            );
28914          }
28915        } else if (wasDisabled) {
28916          moveTeleport(
28917            n2,
28918            target,
28919            targetAnchor,
28920            internals,
28921            1
28922          );
28923        }
28924      }
28925    }
28926    updateCssVars(n2);
28927  },
28928  remove(vnode, parentComponent, parentSuspense, optimized, { um: unmount, o: { remove: hostRemove } }, doRemove) {
28929    const { shapeFlag, children, anchor, targetAnchor, target, props } = vnode;
28930    if (target) {
28931      hostRemove(targetAnchor);
28932    }
28933    doRemove && hostRemove(anchor);
28934    if (shapeFlag & 16) {
28935      const shouldRemove = doRemove || !isTeleportDisabled(props);
28936      for (let i = 0; i < children.length; i++) {
28937        const child = children[i];
28938        unmount(
28939          child,
28940          parentComponent,
28941          parentSuspense,
28942          shouldRemove,
28943          !!child.dynamicChildren
28944        );
28945      }
28946    }
28947  },
28948  move: moveTeleport,
28949  hydrate: hydrateTeleport
28950};
28951function moveTeleport(vnode, container, parentAnchor, { o: { insert }, m: move }, moveType = 2) {
28952  if (moveType === 0) {
28953    insert(vnode.targetAnchor, container, parentAnchor);
28954  }
28955  const { el, anchor, shapeFlag, children, props } = vnode;
28956  const isReorder = moveType === 2;
28957  if (isReorder) {
28958    insert(el, container, parentAnchor);
28959  }
28960  if (!isReorder || isTeleportDisabled(props)) {
28961    if (shapeFlag & 16) {
28962      for (let i = 0; i < children.length; i++) {
28963        move(
28964          children[i],
28965          container,
28966          parentAnchor,
28967          2
28968        );
28969      }
28970    }
28971  }
28972  if (isReorder) {
28973    insert(anchor, container, parentAnchor);
28974  }
28975}
28976function hydrateTeleport(node, vnode, parentComponent, parentSuspense, slotScopeIds, optimized, {
28977  o: { nextSibling, parentNode, querySelector }
28978}, hydrateChildren) {
28979  const target = vnode.target = resolveTarget(
28980    vnode.props,
28981    querySelector
28982  );
28983  if (target) {
28984    const targetNode = target._lpa || target.firstChild;
28985    if (vnode.shapeFlag & 16) {
28986      if (isTeleportDisabled(vnode.props)) {
28987        vnode.anchor = hydrateChildren(
28988          nextSibling(node),
28989          vnode,
28990          parentNode(node),
28991          parentComponent,
28992          parentSuspense,
28993          slotScopeIds,
28994          optimized
28995        );
28996        vnode.targetAnchor = targetNode;
28997      } else {
28998        vnode.anchor = nextSibling(node);
28999        let targetAnchor = targetNode;
29000        while (targetAnchor) {
29001          targetAnchor = nextSibling(targetAnchor);
29002          if (targetAnchor && targetAnchor.nodeType === 8 && targetAnchor.data === "teleport anchor") {
29003            vnode.targetAnchor = targetAnchor;
29004            target._lpa = vnode.targetAnchor && nextSibling(vnode.targetAnchor);
29005            break;
29006          }
29007        }
29008        hydrateChildren(
29009          targetNode,
29010          vnode,
29011          target,
29012          parentComponent,
29013          parentSuspense,
29014          slotScopeIds,
29015          optimized
29016        );
29017      }
29018    }
29019    updateCssVars(vnode);
29020  }
29021  return vnode.anchor && nextSibling(vnode.anchor);
29022}
29023const Teleport = TeleportImpl;
29024function updateCssVars(vnode) {
29025  const ctx = vnode.ctx;
29026  if (ctx && ctx.ut) {
29027    let node = vnode.children[0].el;
29028    while (node && node !== vnode.targetAnchor) {
29029      if (node.nodeType === 1)
29030        node.setAttribute("data-v-owner", ctx.uid);
29031      node = node.nextSibling;
29032    }
29033    ctx.ut();
29034  }
29035}
29036
29037const Fragment = Symbol.for("v-fgt");
29038const Text = Symbol.for("v-txt");
29039const Comment = Symbol.for("v-cmt");
29040const Static = Symbol.for("v-stc");
29041const blockStack = [];
29042let currentBlock = null;
29043function openBlock(disableTracking = false) {
29044  blockStack.push(currentBlock = disableTracking ? null : []);
29045}
29046function closeBlock() {
29047  blockStack.pop();
29048  currentBlock = blockStack[blockStack.length - 1] || null;
29049}
29050let isBlockTreeEnabled = 1;
29051function setBlockTracking(value) {
29052  isBlockTreeEnabled += value;
29053}
29054function setupBlock(vnode) {
29055  vnode.dynamicChildren = isBlockTreeEnabled > 0 ? currentBlock || _vue_shared__WEBPACK_IMPORTED_MODULE_1__["EMPTY_ARR"] : null;
29056  closeBlock();
29057  if (isBlockTreeEnabled > 0 && currentBlock) {
29058    currentBlock.push(vnode);
29059  }
29060  return vnode;
29061}
29062function createElementBlock(type, props, children, patchFlag, dynamicProps, shapeFlag) {
29063  return setupBlock(
29064    createBaseVNode(
29065      type,
29066      props,
29067      children,
29068      patchFlag,
29069      dynamicProps,
29070      shapeFlag,
29071      true
29072    )
29073  );
29074}
29075function createBlock(type, props, children, patchFlag, dynamicProps) {
29076  return setupBlock(
29077    createVNode(
29078      type,
29079      props,
29080      children,
29081      patchFlag,
29082      dynamicProps,
29083      true
29084    )
29085  );
29086}
29087function isVNode(value) {
29088  return value ? value.__v_isVNode === true : false;
29089}
29090function isSameVNodeType(n1, n2) {
29091  if ( true && n2.shapeFlag & 6 && hmrDirtyComponents.has(n2.type)) {
29092    n1.shapeFlag &= ~256;
29093    n2.shapeFlag &= ~512;
29094    return false;
29095  }
29096  return n1.type === n2.type && n1.key === n2.key;
29097}
29098let vnodeArgsTransformer;
29099function transformVNodeArgs(transformer) {
29100  vnodeArgsTransformer = transformer;
29101}
29102const createVNodeWithArgsTransform = (...args) => {
29103  return _createVNode(
29104    ...vnodeArgsTransformer ? vnodeArgsTransformer(args, currentRenderingInstance) : args
29105  );
29106};
29107const InternalObjectKey = `__vInternal`;
29108const normalizeKey = ({ key }) => key != null ? key : null;
29109const normalizeRef = ({
29110  ref,
29111  ref_key,
29112  ref_for
29113}) => {
29114  if (typeof ref === "number") {
29115    ref = "" + ref;
29116  }
29117  return ref != null ? Object(_vue_shared__WEBPACK_IMPORTED_MODULE_1__["isString"])(ref) || Object(_vue_reactivity__WEBPACK_IMPORTED_MODULE_0__["isRef"])(ref) || Object(_vue_shared__WEBPACK_IMPORTED_MODULE_1__["isFunction"])(ref) ? { i: currentRenderingInstance, r: ref, k: ref_key, f: !!ref_for } : ref : null;
29118};
29119function createBaseVNode(type, props = null, children = null, patchFlag = 0, dynamicProps = null, shapeFlag = type === Fragment ? 0 : 1, isBlockNode = false, needFullChildrenNormalization = false) {
29120  const vnode = {
29121    __v_isVNode: true,
29122    __v_skip: true,
29123    type,
29124    props,
29125    key: props && normalizeKey(props),
29126    ref: props && normalizeRef(props),
29127    scopeId: currentScopeId,
29128    slotScopeIds: null,
29129    children,
29130    component: null,
29131    suspense: null,
29132    ssContent: null,
29133    ssFallback: null,
29134    dirs: null,
29135    transition: null,
29136    el: null,
29137    anchor: null,
29138    target: null,
29139    targetAnchor: null,
29140    staticCount: 0,
29141    shapeFlag,
29142    patchFlag,
29143    dynamicProps,
29144    dynamicChildren: null,
29145    appContext: null,
29146    ctx: currentRenderingInstance
29147  };
29148  if (needFullChildrenNormalization) {
29149    normalizeChildren(vnode, children);
29150    if (shapeFlag & 128) {
29151      type.normalize(vnode);
29152    }
29153  } else if (children) {
29154    vnode.shapeFlag |= Object(_vue_shared__WEBPACK_IMPORTED_MODULE_1__["isString"])(children) ? 8 : 16;
29155  }
29156  if ( true && vnode.key !== vnode.key) {
29157    warn$1(`VNode created with invalid key (NaN). VNode type:`, vnode.type);
29158  }
29159  if (isBlockTreeEnabled > 0 && // avoid a block node from tracking itself
29160  !isBlockNode && // has current parent block
29161  currentBlock && // presence of a patch flag indicates this node needs patching on updates.
29162  // component nodes also should always be patched, because even if the
29163  // component doesn't need to update, it needs to persist the instance on to
29164  // the next vnode so that it can be properly unmounted later.
29165  (vnode.patchFlag > 0 || shapeFlag & 6) && // the EVENTS flag is only for hydration and if it is the only flag, the
29166  // vnode should not be considered dynamic due to handler caching.
29167  vnode.patchFlag !== 32) {
29168    currentBlock.push(vnode);
29169  }
29170  return vnode;
29171}
29172const createVNode =  true ? createVNodeWithArgsTransform : undefined;
29173function _createVNode(type, props = null, children = null, patchFlag = 0, dynamicProps = null, isBlockNode = false) {
29174  if (!type || type === NULL_DYNAMIC_COMPONENT) {
29175    if ( true && !type) {
29176      warn$1(`Invalid vnode type when creating vnode: ${type}.`);
29177    }
29178    type = Comment;
29179  }
29180  if (isVNode(type)) {
29181    const cloned = cloneVNode(
29182      type,
29183      props,
29184      true
29185      /* mergeRef: true */
29186    );
29187    if (children) {
29188      normalizeChildren(cloned, children);
29189    }
29190    if (isBlockTreeEnabled > 0 && !isBlockNode && currentBlock) {
29191      if (cloned.shapeFlag & 6) {
29192        currentBlock[currentBlock.indexOf(type)] = cloned;
29193      } else {
29194        currentBlock.push(cloned);
29195      }
29196    }
29197    cloned.patchFlag |= -2;
29198    return cloned;
29199  }
29200  if (isClassComponent(type)) {
29201    type = type.__vccOpts;
29202  }
29203  if (props) {
29204    props = guardReactiveProps(props);
29205    let { class: klass, style } = props;
29206    if (klass && !Object(_vue_shared__WEBPACK_IMPORTED_MODULE_1__["isString"])(klass)) {
29207      props.class = Object(_vue_shared__WEBPACK_IMPORTED_MODULE_1__["normalizeClass"])(klass);
29208    }
29209    if (Object(_vue_shared__WEBPACK_IMPORTED_MODULE_1__["isObject"])(style)) {
29210      if (Object(_vue_reactivity__WEBPACK_IMPORTED_MODULE_0__["isProxy"])(style) && !Object(_vue_shared__WEBPACK_IMPORTED_MODULE_1__["isArray"])(style)) {
29211        style = Object(_vue_shared__WEBPACK_IMPORTED_MODULE_1__["extend"])({}, style);
29212      }
29213      props.style = Object(_vue_shared__WEBPACK_IMPORTED_MODULE_1__["normalizeStyle"])(style);
29214    }
29215  }
29216  const shapeFlag = Object(_vue_shared__WEBPACK_IMPORTED_MODULE_1__["isString"])(type) ? 1 : isSuspense(type) ? 128 : isTeleport(type) ? 64 : Object(_vue_shared__WEBPACK_IMPORTED_MODULE_1__["isObject"])(type) ? 4 : Object(_vue_shared__WEBPACK_IMPORTED_MODULE_1__["isFunction"])(type) ? 2 : 0;
29217  if ( true && shapeFlag & 4 && Object(_vue_reactivity__WEBPACK_IMPORTED_MODULE_0__["isProxy"])(type)) {
29218    type = Object(_vue_reactivity__WEBPACK_IMPORTED_MODULE_0__["toRaw"])(type);
29219    warn$1(
29220      `Vue received a Component that was made a reactive object. This can lead to unnecessary performance overhead and should be avoided by marking the component with \`markRaw\` or using \`shallowRef\` instead of \`ref\`.`,
29221      `
29222Component that was made reactive: `,
29223      type
29224    );
29225  }
29226  return createBaseVNode(
29227    type,
29228    props,
29229    children,
29230    patchFlag,
29231    dynamicProps,
29232    shapeFlag,
29233    isBlockNode,
29234    true
29235  );
29236}
29237function guardReactiveProps(props) {
29238  if (!props)
29239    return null;
29240  return Object(_vue_reactivity__WEBPACK_IMPORTED_MODULE_0__["isProxy"])(props) || InternalObjectKey in props ? Object(_vue_shared__WEBPACK_IMPORTED_MODULE_1__["extend"])({}, props) : props;
29241}
29242function cloneVNode(vnode, extraProps, mergeRef = false) {
29243  const { props, ref, patchFlag, children } = vnode;
29244  const mergedProps = extraProps ? mergeProps(props || {}, extraProps) : props;
29245  const cloned = {
29246    __v_isVNode: true,
29247    __v_skip: true,
29248    type: vnode.type,
29249    props: mergedProps,
29250    key: mergedProps && normalizeKey(mergedProps),
29251    ref: extraProps && extraProps.ref ? (
29252      // #2078 in the case of <component :is="vnode" ref="extra"/>
29253      // if the vnode itself already has a ref, cloneVNode will need to merge
29254      // the refs so the single vnode can be set on multiple refs
29255      mergeRef && ref ? Object(_vue_shared__WEBPACK_IMPORTED_MODULE_1__["isArray"])(ref) ? ref.concat(normalizeRef(extraProps)) : [ref, normalizeRef(extraProps)] : normalizeRef(extraProps)
29256    ) : ref,
29257    scopeId: vnode.scopeId,
29258    slotScopeIds: vnode.slotScopeIds,
29259    children:  true && patchFlag === -1 && Object(_vue_shared__WEBPACK_IMPORTED_MODULE_1__["isArray"])(children) ? children.map(deepCloneVNode) : children,
29260    target: vnode.target,
29261    targetAnchor: vnode.targetAnchor,
29262    staticCount: vnode.staticCount,
29263    shapeFlag: vnode.shapeFlag,
29264    // if the vnode is cloned with extra props, we can no longer assume its
29265    // existing patch flag to be reliable and need to add the FULL_PROPS flag.
29266    // note: preserve flag for fragments since they use the flag for children
29267    // fast paths only.
29268    patchFlag: extraProps && vnode.type !== Fragment ? patchFlag === -1 ? 16 : patchFlag | 16 : patchFlag,
29269    dynamicProps: vnode.dynamicProps,
29270    dynamicChildren: vnode.dynamicChildren,
29271    appContext: vnode.appContext,
29272    dirs: vnode.dirs,
29273    transition: vnode.transition,
29274    // These should technically only be non-null on mounted VNodes. However,
29275    // they *should* be copied for kept-alive vnodes. So we just always copy
29276    // them since them being non-null during a mount doesn't affect the logic as
29277    // they will simply be overwritten.
29278    component: vnode.component,
29279    suspense: vnode.suspense,
29280    ssContent: vnode.ssContent && cloneVNode(vnode.ssContent),
29281    ssFallback: vnode.ssFallback && cloneVNode(vnode.ssFallback),
29282    el: vnode.el,
29283    anchor: vnode.anchor,
29284    ctx: vnode.ctx,
29285    ce: vnode.ce
29286  };
29287  return cloned;
29288}
29289function deepCloneVNode(vnode) {
29290  const cloned = cloneVNode(vnode);
29291  if (Object(_vue_shared__WEBPACK_IMPORTED_MODULE_1__["isArray"])(vnode.children)) {
29292    cloned.children = vnode.children.map(deepCloneVNode);
29293  }
29294  return cloned;
29295}
29296function createTextVNode(text = " ", flag = 0) {
29297  return createVNode(Text, null, text, flag);
29298}
29299function createStaticVNode(content, numberOfNodes) {
29300  const vnode = createVNode(Static, null, content);
29301  vnode.staticCount = numberOfNodes;
29302  return vnode;
29303}
29304function createCommentVNode(text = "", asBlock = false) {
29305  return asBlock ? (openBlock(), createBlock(Comment, null, text)) : createVNode(Comment, null, text);
29306}
29307function normalizeVNode(child) {
29308  if (child == null || typeof child === "boolean") {
29309    return createVNode(Comment);
29310  } else if (Object(_vue_shared__WEBPACK_IMPORTED_MODULE_1__["isArray"])(child)) {
29311    return createVNode(
29312      Fragment,
29313      null,
29314      // #3666, avoid reference pollution when reusing vnode
29315      child.slice()
29316    );
29317  } else if (typeof child === "object") {
29318    return cloneIfMounted(child);
29319  } else {
29320    return createVNode(Text, null, String(child));
29321  }
29322}
29323function cloneIfMounted(child) {
29324  return child.el === null && child.patchFlag !== -1 || child.memo ? child : cloneVNode(child);
29325}
29326function normalizeChildren(vnode, children) {
29327  let type = 0;
29328  const { shapeFlag } = vnode;
29329  if (children == null) {
29330    children = null;
29331  } else if (Object(_vue_shared__WEBPACK_IMPORTED_MODULE_1__["isArray"])(children)) {
29332    type = 16;
29333  } else if (typeof children === "object") {
29334    if (shapeFlag & (1 | 64)) {
29335      const slot = children.default;
29336      if (slot) {
29337        slot._c && (slot._d = false);
29338        normalizeChildren(vnode, slot());
29339        slot._c && (slot._d = true);
29340      }
29341      return;
29342    } else {
29343      type = 32;
29344      const slotFlag = children._;
29345      if (!slotFlag && !(InternalObjectKey in children)) {
29346        children._ctx = currentRenderingInstance;
29347      } else if (slotFlag === 3 && currentRenderingInstance) {
29348        if (currentRenderingInstance.slots._ === 1) {
29349          children._ = 1;
29350        } else {
29351          children._ = 2;
29352          vnode.patchFlag |= 1024;
29353        }
29354      }
29355    }
29356  } else if (Object(_vue_shared__WEBPACK_IMPORTED_MODULE_1__["isFunction"])(children)) {
29357    children = { default: children, _ctx: currentRenderingInstance };
29358    type = 32;
29359  } else {
29360    children = String(children);
29361    if (shapeFlag & 64) {
29362      type = 16;
29363      children = [createTextVNode(children)];
29364    } else {
29365      type = 8;
29366    }
29367  }
29368  vnode.children = children;
29369  vnode.shapeFlag |= type;
29370}
29371function mergeProps(...args) {
29372  const ret = {};
29373  for (let i = 0; i < args.length; i++) {
29374    const toMerge = args[i];
29375    for (const key in toMerge) {
29376      if (key === "class") {
29377        if (ret.class !== toMerge.class) {
29378          ret.class = Object(_vue_shared__WEBPACK_IMPORTED_MODULE_1__["normalizeClass"])([ret.class, toMerge.class]);
29379        }
29380      } else if (key === "style") {
29381        ret.style = Object(_vue_shared__WEBPACK_IMPORTED_MODULE_1__["normalizeStyle"])([ret.style, toMerge.style]);
29382      } else if (Object(_vue_shared__WEBPACK_IMPORTED_MODULE_1__["isOn"])(key)) {
29383        const existing = ret[key];
29384        const incoming = toMerge[key];
29385        if (incoming && existing !== incoming && !(Object(_vue_shared__WEBPACK_IMPORTED_MODULE_1__["isArray"])(existing) && existing.includes(incoming))) {
29386          ret[key] = existing ? [].concat(existing, incoming) : incoming;
29387        }
29388      } else if (key !== "") {
29389        ret[key] = toMerge[key];
29390      }
29391    }
29392  }
29393  return ret;
29394}
29395function invokeVNodeHook(hook, instance, vnode, prevVNode = null) {
29396  callWithAsyncErrorHandling(hook, instance, 7, [
29397    vnode,
29398    prevVNode
29399  ]);
29400}
29401
29402const emptyAppContext = createAppContext();
29403let uid = 0;
29404function createComponentInstance(vnode, parent, suspense) {
29405  const type = vnode.type;
29406  const appContext = (parent ? parent.appContext : vnode.appContext) || emptyAppContext;
29407  const instance = {
29408    uid: uid++,
29409    vnode,
29410    type,
29411    parent,
29412    appContext,
29413    root: null,
29414    // to be immediately set
29415    next: null,
29416    subTree: null,
29417    // will be set synchronously right after creation
29418    effect: null,
29419    update: null,
29420    // will be set synchronously right after creation
29421    scope: new _vue_reactivity__WEBPACK_IMPORTED_MODULE_0__["EffectScope"](
29422      true
29423      /* detached */
29424    ),
29425    render: null,
29426    proxy: null,
29427    exposed: null,
29428    exposeProxy: null,
29429    withProxy: null,
29430    provides: parent ? parent.provides : Object.create(appContext.provides),
29431    accessCache: null,
29432    renderCache: [],
29433    // local resolved assets
29434    components: null,
29435    directives: null,
29436    // resolved props and emits options
29437    propsOptions: normalizePropsOptions(type, appContext),
29438    emitsOptions: normalizeEmitsOptions(type, appContext),
29439    // emit
29440    emit: null,
29441    // to be set immediately
29442    emitted: null,
29443    // props default value
29444    propsDefaults: _vue_shared__WEBPACK_IMPORTED_MODULE_1__["EMPTY_OBJ"],
29445    // inheritAttrs
29446    inheritAttrs: type.inheritAttrs,
29447    // state
29448    ctx: _vue_shared__WEBPACK_IMPORTED_MODULE_1__["EMPTY_OBJ"],
29449    data: _vue_shared__WEBPACK_IMPORTED_MODULE_1__["EMPTY_OBJ"],
29450    props: _vue_shared__WEBPACK_IMPORTED_MODULE_1__["EMPTY_OBJ"],
29451    attrs: _vue_shared__WEBPACK_IMPORTED_MODULE_1__["EMPTY_OBJ"],
29452    slots: _vue_shared__WEBPACK_IMPORTED_MODULE_1__["EMPTY_OBJ"],
29453    refs: _vue_shared__WEBPACK_IMPORTED_MODULE_1__["EMPTY_OBJ"],
29454    setupState: _vue_shared__WEBPACK_IMPORTED_MODULE_1__["EMPTY_OBJ"],
29455    setupContext: null,
29456    attrsProxy: null,
29457    slotsProxy: null,
29458    // suspense related
29459    suspense,
29460    suspenseId: suspense ? suspense.pendingId : 0,
29461    asyncDep: null,
29462    asyncResolved: false,
29463    // lifecycle hooks
29464    // not using enums here because it results in computed properties
29465    isMounted: false,
29466    isUnmounted: false,
29467    isDeactivated: false,
29468    bc: null,
29469    c: null,
29470    bm: null,
29471    m: null,
29472    bu: null,
29473    u: null,
29474    um: null,
29475    bum: null,
29476    da: null,
29477    a: null,
29478    rtg: null,
29479    rtc: null,
29480    ec: null,
29481    sp: null
29482  };
29483  if (true) {
29484    instance.ctx = createDevRenderContext(instance);
29485  } else {}
29486  instance.root = parent ? parent.root : instance;
29487  instance.emit = emit.bind(null, instance);
29488  if (vnode.ce) {
29489    vnode.ce(instance);
29490  }
29491  return instance;
29492}
29493let currentInstance = null;
29494const getCurrentInstance = () => currentInstance || currentRenderingInstance;
29495let internalSetCurrentInstance;
29496let setInSSRSetupState;
29497{
29498  const g = Object(_vue_shared__WEBPACK_IMPORTED_MODULE_1__["getGlobalThis"])();
29499  const registerGlobalSetter = (key, setter) => {
29500    let setters;
29501    if (!(setters = g[key]))
29502      setters = g[key] = [];
29503    setters.push(setter);
29504    return (v) => {
29505      if (setters.length > 1)
29506        setters.forEach((set) => set(v));
29507      else
29508        setters[0](v);
29509    };
29510  };
29511  internalSetCurrentInstance = registerGlobalSetter(
29512    `__VUE_INSTANCE_SETTERS__`,
29513    (v) => currentInstance = v
29514  );
29515  setInSSRSetupState = registerGlobalSetter(
29516    `__VUE_SSR_SETTERS__`,
29517    (v) => isInSSRComponentSetup = v
29518  );
29519}
29520const setCurrentInstance = (instance) => {
29521  const prev = currentInstance;
29522  internalSetCurrentInstance(instance);
29523  instance.scope.on();
29524  return () => {
29525    instance.scope.off();
29526    internalSetCurrentInstance(prev);
29527  };
29528};
29529const unsetCurrentInstance = () => {
29530  currentInstance && currentInstance.scope.off();
29531  internalSetCurrentInstance(null);
29532};
29533const isBuiltInTag = /* @__PURE__ */ Object(_vue_shared__WEBPACK_IMPORTED_MODULE_1__["makeMap"])("slot,component");
29534function validateComponentName(name, { isNativeTag }) {
29535  if (isBuiltInTag(name) || isNativeTag(name)) {
29536    warn$1(
29537      "Do not use built-in or reserved HTML elements as component id: " + name
29538    );
29539  }
29540}
29541function isStatefulComponent(instance) {
29542  return instance.vnode.shapeFlag & 4;
29543}
29544let isInSSRComponentSetup = false;
29545function setupComponent(instance, isSSR = false) {
29546  isSSR && setInSSRSetupState(isSSR);
29547  const { props, children } = instance.vnode;
29548  const isStateful = isStatefulComponent(instance);
29549  initProps(instance, props, isStateful, isSSR);
29550  initSlots(instance, children);
29551  const setupResult = isStateful ? setupStatefulComponent(instance, isSSR) : void 0;
29552  isSSR && setInSSRSetupState(false);
29553  return setupResult;
29554}
29555function setupStatefulComponent(instance, isSSR) {
29556  var _a;
29557  const Component = instance.type;
29558  if (true) {
29559    if (Component.name) {
29560      validateComponentName(Component.name, instance.appContext.config);
29561    }
29562    if (Component.components) {
29563      const names = Object.keys(Component.components);
29564      for (let i = 0; i < names.length; i++) {
29565        validateComponentName(names[i], instance.appContext.config);
29566      }
29567    }
29568    if (Component.directives) {
29569      const names = Object.keys(Component.directives);
29570      for (let i = 0; i < names.length; i++) {
29571        validateDirectiveName(names[i]);
29572      }
29573    }
29574    if (Component.compilerOptions && isRuntimeOnly()) {
29575      warn$1(
29576        `"compilerOptions" is only supported when using a build of Vue that includes the runtime compiler. Since you are using a runtime-only build, the options should be passed via your build tool config instead.`
29577      );
29578    }
29579  }
29580  instance.accessCache = /* @__PURE__ */ Object.create(null);
29581  instance.proxy = Object(_vue_reactivity__WEBPACK_IMPORTED_MODULE_0__["markRaw"])(new Proxy(instance.ctx, PublicInstanceProxyHandlers));
29582  if (true) {
29583    exposePropsOnRenderContext(instance);
29584  }
29585  const { setup } = Component;
29586  if (setup) {
29587    const setupContext = instance.setupContext = setup.length > 1 ? createSetupContext(instance) : null;
29588    const reset = setCurrentInstance(instance);
29589    Object(_vue_reactivity__WEBPACK_IMPORTED_MODULE_0__["pauseTracking"])();
29590    const setupResult = callWithErrorHandling(
29591      setup,
29592      instance,
29593      0,
29594      [
29595         true ? Object(_vue_reactivity__WEBPACK_IMPORTED_MODULE_0__["shallowReadonly"])(instance.props) : undefined,
29596        setupContext
29597      ]
29598    );
29599    Object(_vue_reactivity__WEBPACK_IMPORTED_MODULE_0__["resetTracking"])();
29600    reset();
29601    if (Object(_vue_shared__WEBPACK_IMPORTED_MODULE_1__["isPromise"])(setupResult)) {
29602      setupResult.then(unsetCurrentInstance, unsetCurrentInstance);
29603      if (isSSR) {
29604        return setupResult.then((resolvedResult) => {
29605          handleSetupResult(instance, resolvedResult, isSSR);
29606        }).catch((e) => {
29607          handleError(e, instance, 0);
29608        });
29609      } else {
29610        instance.asyncDep = setupResult;
29611        if ( true && !instance.suspense) {
29612          const name = (_a = Component.name) != null ? _a : "Anonymous";
29613          warn$1(
29614            `Component <${name}>: setup function returned a promise, but no <Suspense> boundary was found in the parent component tree. A component with async setup() must be nested in a <Suspense> in order to be rendered.`
29615          );
29616        }
29617      }
29618    } else {
29619      handleSetupResult(instance, setupResult, isSSR);
29620    }
29621  } else {
29622    finishComponentSetup(instance, isSSR);
29623  }
29624}
29625function handleSetupResult(instance, setupResult, isSSR) {
29626  if (Object(_vue_shared__WEBPACK_IMPORTED_MODULE_1__["isFunction"])(setupResult)) {
29627    if (instance.type.__ssrInlineRender) {
29628      instance.ssrRender = setupResult;
29629    } else {
29630      instance.render = setupResult;
29631    }
29632  } else if (Object(_vue_shared__WEBPACK_IMPORTED_MODULE_1__["isObject"])(setupResult)) {
29633    if ( true && isVNode(setupResult)) {
29634      warn$1(
29635        `setup() should not return VNodes directly - return a render function instead.`
29636      );
29637    }
29638    if (true) {
29639      instance.devtoolsRawSetupState = setupResult;
29640    }
29641    instance.setupState = Object(_vue_reactivity__WEBPACK_IMPORTED_MODULE_0__["proxyRefs"])(setupResult);
29642    if (true) {
29643      exposeSetupStateOnRenderContext(instance);
29644    }
29645  } else if ( true && setupResult !== void 0) {
29646    warn$1(
29647      `setup() should return an object. Received: ${setupResult === null ? "null" : typeof setupResult}`
29648    );
29649  }
29650  finishComponentSetup(instance, isSSR);
29651}
29652let compile;
29653let installWithProxy;
29654function registerRuntimeCompiler(_compile) {
29655  compile = _compile;
29656  installWithProxy = (i) => {
29657    if (i.render._rc) {
29658      i.withProxy = new Proxy(i.ctx, RuntimeCompiledPublicInstanceProxyHandlers);
29659    }
29660  };
29661}
29662const isRuntimeOnly = () => !compile;
29663function finishComponentSetup(instance, isSSR, skipOptions) {
29664  const Component = instance.type;
29665  if (!instance.render) {
29666    if (!isSSR && compile && !Component.render) {
29667      const template = Component.template || resolveMergedOptions(instance).template;
29668      if (template) {
29669        if (true) {
29670          startMeasure(instance, `compile`);
29671        }
29672        const { isCustomElement, compilerOptions } = instance.appContext.config;
29673        const { delimiters, compilerOptions: componentCompilerOptions } = Component;
29674        const finalCompilerOptions = Object(_vue_shared__WEBPACK_IMPORTED_MODULE_1__["extend"])(
29675          Object(_vue_shared__WEBPACK_IMPORTED_MODULE_1__["extend"])(
29676            {
29677              isCustomElement,
29678              delimiters
29679            },
29680            compilerOptions
29681          ),
29682          componentCompilerOptions
29683        );
29684        Component.render = compile(template, finalCompilerOptions);
29685        if (true) {
29686          endMeasure(instance, `compile`);
29687        }
29688      }
29689    }
29690    instance.render = Component.render || _vue_shared__WEBPACK_IMPORTED_MODULE_1__["NOOP"];
29691    if (installWithProxy) {
29692      installWithProxy(instance);
29693    }
29694  }
29695  if (true) {
29696    const reset = setCurrentInstance(instance);
29697    Object(_vue_reactivity__WEBPACK_IMPORTED_MODULE_0__["pauseTracking"])();
29698    try {
29699      applyOptions(instance);
29700    } finally {
29701      Object(_vue_reactivity__WEBPACK_IMPORTED_MODULE_0__["resetTracking"])();
29702      reset();
29703    }
29704  }
29705  if ( true && !Component.render && instance.render === _vue_shared__WEBPACK_IMPORTED_MODULE_1__["NOOP"] && !isSSR) {
29706    if (!compile && Component.template) {
29707      warn$1(
29708        `Component provided template option but runtime compilation is not supported in this build of Vue.` + (` Configure your bundler to alias "vue" to "vue/dist/vue.esm-bundler.js".` )
29709      );
29710    } else {
29711      warn$1(`Component is missing template or render function.`);
29712    }
29713  }
29714}
29715function getAttrsProxy(instance) {
29716  return instance.attrsProxy || (instance.attrsProxy = new Proxy(
29717    instance.attrs,
29718     true ? {
29719      get(target, key) {
29720        markAttrsAccessed();
29721        Object(_vue_reactivity__WEBPACK_IMPORTED_MODULE_0__["track"])(instance, "get", "$attrs");
29722        return target[key];
29723      },
29724      set() {
29725        warn$1(`setupContext.attrs is readonly.`);
29726        return false;
29727      },
29728      deleteProperty() {
29729        warn$1(`setupContext.attrs is readonly.`);
29730        return false;
29731      }
29732    } : undefined
29733  ));
29734}
29735function getSlotsProxy(instance) {
29736  return instance.slotsProxy || (instance.slotsProxy = new Proxy(instance.slots, {
29737    get(target, key) {
29738      Object(_vue_reactivity__WEBPACK_IMPORTED_MODULE_0__["track"])(instance, "get", "$slots");
29739      return target[key];
29740    }
29741  }));
29742}
29743function createSetupContext(instance) {
29744  const expose = (exposed) => {
29745    if (true) {
29746      if (instance.exposed) {
29747        warn$1(`expose() should be called only once per setup().`);
29748      }
29749      if (exposed != null) {
29750        let exposedType = typeof exposed;
29751        if (exposedType === "object") {
29752          if (Object(_vue_shared__WEBPACK_IMPORTED_MODULE_1__["isArray"])(exposed)) {
29753            exposedType = "array";
29754          } else if (Object(_vue_reactivity__WEBPACK_IMPORTED_MODULE_0__["isRef"])(exposed)) {
29755            exposedType = "ref";
29756          }
29757        }
29758        if (exposedType !== "object") {
29759          warn$1(
29760            `expose() should be passed a plain object, received ${exposedType}.`
29761          );
29762        }
29763      }
29764    }
29765    instance.exposed = exposed || {};
29766  };
29767  if (true) {
29768    return Object.freeze({
29769      get attrs() {
29770        return getAttrsProxy(instance);
29771      },
29772      get slots() {
29773        return getSlotsProxy(instance);
29774      },
29775      get emit() {
29776        return (event, ...args) => instance.emit(event, ...args);
29777      },
29778      expose
29779    });
29780  } else {}
29781}
29782function getExposeProxy(instance) {
29783  if (instance.exposed) {
29784    return instance.exposeProxy || (instance.exposeProxy = new Proxy(Object(_vue_reactivity__WEBPACK_IMPORTED_MODULE_0__["proxyRefs"])(Object(_vue_reactivity__WEBPACK_IMPORTED_MODULE_0__["markRaw"])(instance.exposed)), {
29785      get(target, key) {
29786        if (key in target) {
29787          return target[key];
29788        } else if (key in publicPropertiesMap) {
29789          return publicPropertiesMap[key](instance);
29790        }
29791      },
29792      has(target, key) {
29793        return key in target || key in publicPropertiesMap;
29794      }
29795    }));
29796  }
29797}
29798const classifyRE = /(?:^|[-_])(\w)/g;
29799const classify = (str) => str.replace(classifyRE, (c) => c.toUpperCase()).replace(/[-_]/g, "");
29800function getComponentName(Component, includeInferred = true) {
29801  return Object(_vue_shared__WEBPACK_IMPORTED_MODULE_1__["isFunction"])(Component) ? Component.displayName || Component.name : Component.name || includeInferred && Component.__name;
29802}
29803function formatComponentName(instance, Component, isRoot = false) {
29804  let name = getComponentName(Component);
29805  if (!name && Component.__file) {
29806    const match = Component.__file.match(/([^/\\]+)\.\w+$/);
29807    if (match) {
29808      name = match[1];
29809    }
29810  }
29811  if (!name && instance && instance.parent) {
29812    const inferFromRegistry = (registry) => {
29813      for (const key in registry) {
29814        if (registry[key] === Component) {
29815          return key;
29816        }
29817      }
29818    };
29819    name = inferFromRegistry(
29820      instance.components || instance.parent.type.components
29821    ) || inferFromRegistry(instance.appContext.components);
29822  }
29823  return name ? classify(name) : isRoot ? `App` : `Anonymous`;
29824}
29825function isClassComponent(value) {
29826  return Object(_vue_shared__WEBPACK_IMPORTED_MODULE_1__["isFunction"])(value) && "__vccOpts" in value;
29827}
29828
29829const computed = (getterOrOptions, debugOptions) => {
29830  const c = Object(_vue_reactivity__WEBPACK_IMPORTED_MODULE_0__["computed"])(getterOrOptions, debugOptions, isInSSRComponentSetup);
29831  if (true) {
29832    const i = getCurrentInstance();
29833    if (i && i.appContext.config.warnRecursiveComputed) {
29834      c._warnRecursive = true;
29835    }
29836  }
29837  return c;
29838};
29839
29840function useModel(props, name, options = _vue_shared__WEBPACK_IMPORTED_MODULE_1__["EMPTY_OBJ"]) {
29841  const i = getCurrentInstance();
29842  if ( true && !i) {
29843    warn$1(`useModel() called without active instance.`);
29844    return Object(_vue_reactivity__WEBPACK_IMPORTED_MODULE_0__["ref"])();
29845  }
29846  if ( true && !i.propsOptions[0][name]) {
29847    warn$1(`useModel() called with prop "${name}" which is not declared.`);
29848    return Object(_vue_reactivity__WEBPACK_IMPORTED_MODULE_0__["ref"])();
29849  }
29850  const camelizedName = Object(_vue_shared__WEBPACK_IMPORTED_MODULE_1__["camelize"])(name);
29851  const hyphenatedName = Object(_vue_shared__WEBPACK_IMPORTED_MODULE_1__["hyphenate"])(name);
29852  const res = Object(_vue_reactivity__WEBPACK_IMPORTED_MODULE_0__["customRef"])((track, trigger) => {
29853    let localValue;
29854    watchSyncEffect(() => {
29855      const propValue = props[name];
29856      if (Object(_vue_shared__WEBPACK_IMPORTED_MODULE_1__["hasChanged"])(localValue, propValue)) {
29857        localValue = propValue;
29858        trigger();
29859      }
29860    });
29861    return {
29862      get() {
29863        track();
29864        return options.get ? options.get(localValue) : localValue;
29865      },
29866      set(value) {
29867        const rawProps = i.vnode.props;
29868        if (!(rawProps && // check if parent has passed v-model
29869        (name in rawProps || camelizedName in rawProps || hyphenatedName in rawProps) && (`onUpdate:${name}` in rawProps || `onUpdate:${camelizedName}` in rawProps || `onUpdate:${hyphenatedName}` in rawProps)) && Object(_vue_shared__WEBPACK_IMPORTED_MODULE_1__["hasChanged"])(value, localValue)) {
29870          localValue = value;
29871          trigger();
29872        }
29873        i.emit(`update:${name}`, options.set ? options.set(value) : value);
29874      }
29875    };
29876  });
29877  const modifierKey = name === "modelValue" ? "modelModifiers" : `${name}Modifiers`;
29878  res[Symbol.iterator] = () => {
29879    let i2 = 0;
29880    return {
29881      next() {
29882        if (i2 < 2) {
29883          return { value: i2++ ? props[modifierKey] || {} : res, done: false };
29884        } else {
29885          return { done: true };
29886        }
29887      }
29888    };
29889  };
29890  return res;
29891}
29892
29893function h(type, propsOrChildren, children) {
29894  const l = arguments.length;
29895  if (l === 2) {
29896    if (Object(_vue_shared__WEBPACK_IMPORTED_MODULE_1__["isObject"])(propsOrChildren) && !Object(_vue_shared__WEBPACK_IMPORTED_MODULE_1__["isArray"])(propsOrChildren)) {
29897      if (isVNode(propsOrChildren)) {
29898        return createVNode(type, null, [propsOrChildren]);
29899      }
29900      return createVNode(type, propsOrChildren);
29901    } else {
29902      return createVNode(type, null, propsOrChildren);
29903    }
29904  } else {
29905    if (l > 3) {
29906      children = Array.prototype.slice.call(arguments, 2);
29907    } else if (l === 3 && isVNode(children)) {
29908      children = [children];
29909    }
29910    return createVNode(type, propsOrChildren, children);
29911  }
29912}
29913
29914function initCustomFormatter() {
29915  if ( false || typeof window === "undefined") {
29916    return;
29917  }
29918  const vueStyle = { style: "color:#3ba776" };
29919  const numberStyle = { style: "color:#1677ff" };
29920  const stringStyle = { style: "color:#f5222d" };
29921  const keywordStyle = { style: "color:#eb2f96" };
29922  const formatter = {
29923    header(obj) {
29924      if (!Object(_vue_shared__WEBPACK_IMPORTED_MODULE_1__["isObject"])(obj)) {
29925        return null;
29926      }
29927      if (obj.__isVue) {
29928        return ["div", vueStyle, `VueInstance`];
29929      } else if (Object(_vue_reactivity__WEBPACK_IMPORTED_MODULE_0__["isRef"])(obj)) {
29930        return [
29931          "div",
29932          {},
29933          ["span", vueStyle, genRefFlag(obj)],
29934          "<",
29935          formatValue(obj.value),
29936          `>`
29937        ];
29938      } else if (Object(_vue_reactivity__WEBPACK_IMPORTED_MODULE_0__["isReactive"])(obj)) {
29939        return [
29940          "div",
29941          {},
29942          ["span", vueStyle, Object(_vue_reactivity__WEBPACK_IMPORTED_MODULE_0__["isShallow"])(obj) ? "ShallowReactive" : "Reactive"],
29943          "<",
29944          formatValue(obj),
29945          `>${Object(_vue_reactivity__WEBPACK_IMPORTED_MODULE_0__["isReadonly"])(obj) ? ` (readonly)` : ``}`
29946        ];
29947      } else if (Object(_vue_reactivity__WEBPACK_IMPORTED_MODULE_0__["isReadonly"])(obj)) {
29948        return [
29949          "div",
29950          {},
29951          ["span", vueStyle, Object(_vue_reactivity__WEBPACK_IMPORTED_MODULE_0__["isShallow"])(obj) ? "ShallowReadonly" : "Readonly"],
29952          "<",
29953          formatValue(obj),
29954          ">"
29955        ];
29956      }
29957      return null;
29958    },
29959    hasBody(obj) {
29960      return obj && obj.__isVue;
29961    },
29962    body(obj) {
29963      if (obj && obj.__isVue) {
29964        return [
29965          "div",
29966          {},
29967          ...formatInstance(obj.$)
29968        ];
29969      }
29970    }
29971  };
29972  function formatInstance(instance) {
29973    const blocks = [];
29974    if (instance.type.props && instance.props) {
29975      blocks.push(createInstanceBlock("props", Object(_vue_reactivity__WEBPACK_IMPORTED_MODULE_0__["toRaw"])(instance.props)));
29976    }
29977    if (instance.setupState !== _vue_shared__WEBPACK_IMPORTED_MODULE_1__["EMPTY_OBJ"]) {
29978      blocks.push(createInstanceBlock("setup", instance.setupState));
29979    }
29980    if (instance.data !== _vue_shared__WEBPACK_IMPORTED_MODULE_1__["EMPTY_OBJ"]) {
29981      blocks.push(createInstanceBlock("data", Object(_vue_reactivity__WEBPACK_IMPORTED_MODULE_0__["toRaw"])(instance.data)));
29982    }
29983    const computed = extractKeys(instance, "computed");
29984    if (computed) {
29985      blocks.push(createInstanceBlock("computed", computed));
29986    }
29987    const injected = extractKeys(instance, "inject");
29988    if (injected) {
29989      blocks.push(createInstanceBlock("injected", injected));
29990    }
29991    blocks.push([
29992      "div",
29993      {},
29994      [
29995        "span",
29996        {
29997          style: keywordStyle.style + ";opacity:0.66"
29998        },
29999        "$ (internal): "
30000      ],
30001      ["object", { object: instance }]
30002    ]);
30003    return blocks;
30004  }
30005  function createInstanceBlock(type, target) {
30006    target = Object(_vue_shared__WEBPACK_IMPORTED_MODULE_1__["extend"])({}, target);
30007    if (!Object.keys(target).length) {
30008      return ["span", {}];
30009    }
30010    return [
30011      "div",
30012      { style: "line-height:1.25em;margin-bottom:0.6em" },
30013      [
30014        "div",
30015        {
30016          style: "color:#476582"
30017        },
30018        type
30019      ],
30020      [
30021        "div",
30022        {
30023          style: "padding-left:1.25em"
30024        },
30025        ...Object.keys(target).map((key) => {
30026          return [
30027            "div",
30028            {},
30029            ["span", keywordStyle, key + ": "],
30030            formatValue(target[key], false)
30031          ];
30032        })
30033      ]
30034    ];
30035  }
30036  function formatValue(v, asRaw = true) {
30037    if (typeof v === "number") {
30038      return ["span", numberStyle, v];
30039    } else if (typeof v === "string") {
30040      return ["span", stringStyle, JSON.stringify(v)];
30041    } else if (typeof v === "boolean") {
30042      return ["span", keywordStyle, v];
30043    } else if (Object(_vue_shared__WEBPACK_IMPORTED_MODULE_1__["isObject"])(v)) {
30044      return ["object", { object: asRaw ? Object(_vue_reactivity__WEBPACK_IMPORTED_MODULE_0__["toRaw"])(v) : v }];
30045    } else {
30046      return ["span", stringStyle, String(v)];
30047    }
30048  }
30049  function extractKeys(instance, type) {
30050    const Comp = instance.type;
30051    if (Object(_vue_shared__WEBPACK_IMPORTED_MODULE_1__["isFunction"])(Comp)) {
30052      return;
30053    }
30054    const extracted = {};
30055    for (const key in instance.ctx) {
30056      if (isKeyOfType(Comp, key, type)) {
30057        extracted[key] = instance.ctx[key];
30058      }
30059    }
30060    return extracted;
30061  }
30062  function isKeyOfType(Comp, key, type) {
30063    const opts = Comp[type];
30064    if (Object(_vue_shared__WEBPACK_IMPORTED_MODULE_1__["isArray"])(opts) && opts.includes(key) || Object(_vue_shared__WEBPACK_IMPORTED_MODULE_1__["isObject"])(opts) && key in opts) {
30065      return true;
30066    }
30067    if (Comp.extends && isKeyOfType(Comp.extends, key, type)) {
30068      return true;
30069    }
30070    if (Comp.mixins && Comp.mixins.some((m) => isKeyOfType(m, key, type))) {
30071      return true;
30072    }
30073  }
30074  function genRefFlag(v) {
30075    if (Object(_vue_reactivity__WEBPACK_IMPORTED_MODULE_0__["isShallow"])(v)) {
30076      return `ShallowRef`;
30077    }
30078    if (v.effect) {
30079      return `ComputedRef`;
30080    }
30081    return `Ref`;
30082  }
30083  if (window.devtoolsFormatters) {
30084    window.devtoolsFormatters.push(formatter);
30085  } else {
30086    window.devtoolsFormatters = [formatter];
30087  }
30088}
30089
30090function withMemo(memo, render, cache, index) {
30091  const cached = cache[index];
30092  if (cached && isMemoSame(cached, memo)) {
30093    return cached;
30094  }
30095  const ret = render();
30096  ret.memo = memo.slice();
30097  return cache[index] = ret;
30098}
30099function isMemoSame(cached, memo) {
30100  const prev = cached.memo;
30101  if (prev.length != memo.length) {
30102    return false;
30103  }
30104  for (let i = 0; i < prev.length; i++) {
30105    if (Object(_vue_shared__WEBPACK_IMPORTED_MODULE_1__["hasChanged"])(prev[i], memo[i])) {
30106      return false;
30107    }
30108  }
30109  if (isBlockTreeEnabled > 0 && currentBlock) {
30110    currentBlock.push(cached);
30111  }
30112  return true;
30113}
30114
30115const version = "3.4.21";
30116const warn =  true ? warn$1 : undefined;
30117const ErrorTypeStrings = ErrorTypeStrings$1 ;
30118const devtools =  true ? devtools$1 : undefined;
30119const setDevtoolsHook =  true ? setDevtoolsHook$1 : undefined;
30120const _ssrUtils = {
30121  createComponentInstance,
30122  setupComponent,
30123  renderComponentRoot,
30124  setCurrentRenderingInstance,
30125  isVNode: isVNode,
30126  normalizeVNode
30127};
30128const ssrUtils = _ssrUtils ;
30129const resolveFilter = null;
30130const compatUtils = null;
30131const DeprecationTypes = null;
30132
30133
30134
30135
30136/***/ }),
30137
vendor: 83,895 bytes, lines 30138-32052
30138/***/ "./node_modules/@vue/runtime-dom/dist/runtime-dom.esm-bundler.js":
30139/*!***********************************************************************!*\
30140  !*** ./node_modules/@vue/runtime-dom/dist/runtime-dom.esm-bundler.js ***!
30141  \***********************************************************************/
30142/*! exports provided: EffectScope, ReactiveEffect, TrackOpTypes, TriggerOpTypes, customRef, effect, effectScope, getCurrentScope, isProxy, isReactive, isReadonly, isRef, isShallow, markRaw, onScopeDispose, proxyRefs, reactive, readonly, ref, shallowReactive, shallowReadonly, shallowRef, stop, toRaw, toRef, toRefs, toValue, triggerRef, unref, camelize, capitalize, normalizeClass, normalizeProps, normalizeStyle, toDisplayString, toHandlerKey, BaseTransition, BaseTransitionPropsValidators, Comment, DeprecationTypes, ErrorCodes, ErrorTypeStrings, Fragment, KeepAlive, Static, Suspense, Teleport, Text, assertNumber, callWithAsyncErrorHandling, callWithErrorHandling, cloneVNode, compatUtils, computed, createBlock, createCommentVNode, createElementBlock, createElementVNode, createHydrationRenderer, createPropsRestProxy, createRenderer, createSlots, createStaticVNode, createTextVNode, createVNode, defineAsyncComponent, defineComponent, defineEmits, defineExpose, defineModel, defineOptions, defineProps, defineSlots, devtools, getCurrentInstance, getTransitionRawChildren, guardReactiveProps, h, handleError, hasInjectionContext, initCustomFormatter, inject, isMemoSame, isRuntimeOnly, isVNode, mergeDefaults, mergeModels, mergeProps, nextTick, onActivated, onBeforeMount, onBeforeUnmount, onBeforeUpdate, onDeactivated, onErrorCaptured, onMounted, onRenderTracked, onRenderTriggered, onServerPrefetch, onUnmounted, onUpdated, openBlock, popScopeId, provide, pushScopeId, queuePostFlushCb, registerRuntimeCompiler, renderList, renderSlot, resolveComponent, resolveDirective, resolveDynamicComponent, resolveFilter, resolveTransitionHooks, setBlockTracking, setDevtoolsHook, setTransitionHooks, ssrContextKey, ssrUtils, toHandlers, transformVNodeArgs, useAttrs, useModel, useSSRContext, useSlots, useTransitionState, version, warn, watch, watchEffect, watchPostEffect, watchSyncEffect, withAsyncContext, withCtx, withDefaults, withDirectives, withMemo, withScopeId, Transition, TransitionGroup, VueElement, createApp, createSSRApp, defineCustomElement, defineSSRCustomElement, hydrate, initDirectivesForSSR, render, useCssModule, useCssVars, vModelCheckbox, vModelDynamic, vModelRadio, vModelSelect, vModelText, vShow, withKeys, withModifiers */
30143/***/ (function(module, __webpack_exports__, __webpack_require__) {
30144
30145"use strict";
30146__webpack_require__.r(__webpack_exports__);
30147/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "Transition", function() { return Transition; });
30148/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "TransitionGroup", function() { return TransitionGroup; });
30149/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "VueElement", function() { return VueElement; });
30150/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "createApp", function() { return createApp; });
30151/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "createSSRApp", function() { return createSSRApp; });
30152/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "defineCustomElement", function() { return defineCustomElement; });
30153/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "defineSSRCustomElement", function() { return defineSSRCustomElement; });
30154/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "hydrate", function() { return hydrate; });
30155/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "initDirectivesForSSR", function() { return initDirectivesForSSR; });
30156/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "render", function() { return render; });
30157/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "useCssModule", function() { return useCssModule; });
30158/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "useCssVars", function() { return useCssVars; });
30159/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "vModelCheckbox", function() { return vModelCheckbox; });
30160/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "vModelDynamic", function() { return vModelDynamic; });
30161/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "vModelRadio", function() { return vModelRadio; });
30162/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "vModelSelect", function() { return vModelSelect; });
30163/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "vModelText", function() { return vModelText; });
30164/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "vShow", function() { return vShow; });
30165/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "withKeys", function() { return withKeys; });
30166/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "withModifiers", function() { return withModifiers; });
30167/* harmony import */ var _vue_runtime_core__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @vue/runtime-core */ "./node_modules/@vue/runtime-core/dist/runtime-core.esm-bundler.js");
30168/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "EffectScope", function() { return _vue_runtime_core__WEBPACK_IMPORTED_MODULE_0__["EffectScope"]; });
30169
30170/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "ReactiveEffect", function() { return _vue_runtime_core__WEBPACK_IMPORTED_MODULE_0__["ReactiveEffect"]; });
30171
30172/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "TrackOpTypes", function() { return _vue_runtime_core__WEBPACK_IMPORTED_MODULE_0__["TrackOpTypes"]; });
30173
30174/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "TriggerOpTypes", function() { return _vue_runtime_core__WEBPACK_IMPORTED_MODULE_0__["TriggerOpTypes"]; });
30175
30176/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "customRef", function() { return _vue_runtime_core__WEBPACK_IMPORTED_MODULE_0__["customRef"]; });
30177
30178/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "effect", function() { return _vue_runtime_core__WEBPACK_IMPORTED_MODULE_0__["effect"]; });
30179
30180/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "effectScope", function() { return _vue_runtime_core__WEBPACK_IMPORTED_MODULE_0__["effectScope"]; });
30181
30182/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "getCurrentScope", function() { return _vue_runtime_core__WEBPACK_IMPORTED_MODULE_0__["getCurrentScope"]; });
30183
30184/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "isProxy", function() { return _vue_runtime_core__WEBPACK_IMPORTED_MODULE_0__["isProxy"]; });
30185
30186/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "isReactive", function() { return _vue_runtime_core__WEBPACK_IMPORTED_MODULE_0__["isReactive"]; });
30187
30188/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "isReadonly", function() { return _vue_runtime_core__WEBPACK_IMPORTED_MODULE_0__["isReadonly"]; });
30189
30190/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "isRef", function() { return _vue_runtime_core__WEBPACK_IMPORTED_MODULE_0__["isRef"]; });
30191
30192/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "isShallow", function() { return _vue_runtime_core__WEBPACK_IMPORTED_MODULE_0__["isShallow"]; });
30193
30194/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "markRaw", function() { return _vue_runtime_core__WEBPACK_IMPORTED_MODULE_0__["markRaw"]; });
30195
30196/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "onScopeDispose", function() { return _vue_runtime_core__WEBPACK_IMPORTED_MODULE_0__["onScopeDispose"]; });
30197
30198/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "proxyRefs", function() { return _vue_runtime_core__WEBPACK_IMPORTED_MODULE_0__["proxyRefs"]; });
30199
30200/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "reactive", function() { return _vue_runtime_core__WEBPACK_IMPORTED_MODULE_0__["reactive"]; });
30201
30202/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "readonly", function() { return _vue_runtime_core__WEBPACK_IMPORTED_MODULE_0__["readonly"]; });
30203
30204/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "ref", function() { return _vue_runtime_core__WEBPACK_IMPORTED_MODULE_0__["ref"]; });
30205
30206/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "shallowReactive", function() { return _vue_runtime_core__WEBPACK_IMPORTED_MODULE_0__["shallowReactive"]; });
30207
30208/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "shallowReadonly", function() { return _vue_runtime_core__WEBPACK_IMPORTED_MODULE_0__["shallowReadonly"]; });
30209
30210/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "shallowRef", function() { return _vue_runtime_core__WEBPACK_IMPORTED_MODULE_0__["shallowRef"]; });
30211
30212/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "stop", function() { return _vue_runtime_core__WEBPACK_IMPORTED_MODULE_0__["stop"]; });
30213
30214/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "toRaw", function() { return _vue_runtime_core__WEBPACK_IMPORTED_MODULE_0__["toRaw"]; });
30215
30216/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "toRef", function() { return _vue_runtime_core__WEBPACK_IMPORTED_MODULE_0__["toRef"]; });
30217
30218/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "toRefs", function() { return _vue_runtime_core__WEBPACK_IMPORTED_MODULE_0__["toRefs"]; });
30219
30220/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "toValue", function() { return _vue_runtime_core__WEBPACK_IMPORTED_MODULE_0__["toValue"]; });
30221
30222/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "triggerRef", function() { return _vue_runtime_core__WEBPACK_IMPORTED_MODULE_0__["triggerRef"]; });
30223
30224/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "unref", function() { return _vue_runtime_core__WEBPACK_IMPORTED_MODULE_0__["unref"]; });
30225
30226/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "camelize", function() { return _vue_runtime_core__WEBPACK_IMPORTED_MODULE_0__["camelize"]; });
30227
30228/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "capitalize", function() { return _vue_runtime_core__WEBPACK_IMPORTED_MODULE_0__["capitalize"]; });
30229
30230/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "normalizeClass", function() { return _vue_runtime_core__WEBPACK_IMPORTED_MODULE_0__["normalizeClass"]; });
30231
30232/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "normalizeProps", function() { return _vue_runtime_core__WEBPACK_IMPORTED_MODULE_0__["normalizeProps"]; });
30233
30234/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "normalizeStyle", function() { return _vue_runtime_core__WEBPACK_IMPORTED_MODULE_0__["normalizeStyle"]; });
30235
30236/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "toDisplayString", function() { return _vue_runtime_core__WEBPACK_IMPORTED_MODULE_0__["toDisplayString"]; });
30237
30238/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "toHandlerKey", function() { return _vue_runtime_core__WEBPACK_IMPORTED_MODULE_0__["toHandlerKey"]; });
30239
30240/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "BaseTransition", function() { return _vue_runtime_core__WEBPACK_IMPORTED_MODULE_0__["BaseTransition"]; });
30241
30242/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "BaseTransitionPropsValidators", function() { return _vue_runtime_core__WEBPACK_IMPORTED_MODULE_0__["BaseTransitionPropsValidators"]; });
30243
30244/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "Comment", function() { return _vue_runtime_core__WEBPACK_IMPORTED_MODULE_0__["Comment"]; });
30245
30246/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "DeprecationTypes", function() { return _vue_runtime_core__WEBPACK_IMPORTED_MODULE_0__["DeprecationTypes"]; });
30247
30248/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "ErrorCodes", function() { return _vue_runtime_core__WEBPACK_IMPORTED_MODULE_0__["ErrorCodes"]; });
30249
30250/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "ErrorTypeStrings", function() { return _vue_runtime_core__WEBPACK_IMPORTED_MODULE_0__["ErrorTypeStrings"]; });
30251
30252/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "Fragment", function() { return _vue_runtime_core__WEBPACK_IMPORTED_MODULE_0__["Fragment"]; });
30253
30254/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "KeepAlive", function() { return _vue_runtime_core__WEBPACK_IMPORTED_MODULE_0__["KeepAlive"]; });
30255
30256/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "Static", function() { return _vue_runtime_core__WEBPACK_IMPORTED_MODULE_0__["Static"]; });
30257
30258/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "Suspense", function() { return _vue_runtime_core__WEBPACK_IMPORTED_MODULE_0__["Suspense"]; });
30259
30260/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "Teleport", function() { return _vue_runtime_core__WEBPACK_IMPORTED_MODULE_0__["Teleport"]; });
30261
30262/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "Text", function() { return _vue_runtime_core__WEBPACK_IMPORTED_MODULE_0__["Text"]; });
30263
30264/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "assertNumber", function() { return _vue_runtime_core__WEBPACK_IMPORTED_MODULE_0__["assertNumber"]; });
30265
30266/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "callWithAsyncErrorHandling", function() { return _vue_runtime_core__WEBPACK_IMPORTED_MODULE_0__["callWithAsyncErrorHandling"]; });
30267
30268/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "callWithErrorHandling", function() { return _vue_runtime_core__WEBPACK_IMPORTED_MODULE_0__["callWithErrorHandling"]; });
30269
30270/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "cloneVNode", function() { return _vue_runtime_core__WEBPACK_IMPORTED_MODULE_0__["cloneVNode"]; });
30271
30272/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "compatUtils", function() { return _vue_runtime_core__WEBPACK_IMPORTED_MODULE_0__["compatUtils"]; });
30273
30274/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "computed", function() { return _vue_runtime_core__WEBPACK_IMPORTED_MODULE_0__["computed"]; });
30275
30276/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "createBlock", function() { return _vue_runtime_core__WEBPACK_IMPORTED_MODULE_0__["createBlock"]; });
30277
30278/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "createCommentVNode", function() { return _vue_runtime_core__WEBPACK_IMPORTED_MODULE_0__["createCommentVNode"]; });
30279
30280/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "createElementBlock", function() { return _vue_runtime_core__WEBPACK_IMPORTED_MODULE_0__["createElementBlock"]; });
30281
30282/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "createElementVNode", function() { return _vue_runtime_core__WEBPACK_IMPORTED_MODULE_0__["createElementVNode"]; });
30283
30284/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "createHydrationRenderer", function() { return _vue_runtime_core__WEBPACK_IMPORTED_MODULE_0__["createHydrationRenderer"]; });
30285
30286/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "createPropsRestProxy", function() { return _vue_runtime_core__WEBPACK_IMPORTED_MODULE_0__["createPropsRestProxy"]; });
30287
30288/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "createRenderer", function() { return _vue_runtime_core__WEBPACK_IMPORTED_MODULE_0__["createRenderer"]; });
30289
30290/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "createSlots", function() { return _vue_runtime_core__WEBPACK_IMPORTED_MODULE_0__["createSlots"]; });
30291
30292/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "createStaticVNode", function() { return _vue_runtime_core__WEBPACK_IMPORTED_MODULE_0__["createStaticVNode"]; });
30293
30294/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "createTextVNode", function() { return _vue_runtime_core__WEBPACK_IMPORTED_MODULE_0__["createTextVNode"]; });
30295
30296/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "createVNode", function() { return _vue_runtime_core__WEBPACK_IMPORTED_MODULE_0__["createVNode"]; });
30297
30298/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "defineAsyncComponent", function() { return _vue_runtime_core__WEBPACK_IMPORTED_MODULE_0__["defineAsyncComponent"]; });
30299
30300/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "defineComponent", function() { return _vue_runtime_core__WEBPACK_IMPORTED_MODULE_0__["defineComponent"]; });
30301
30302/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "defineEmits", function() { return _vue_runtime_core__WEBPACK_IMPORTED_MODULE_0__["defineEmits"]; });
30303
30304/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "defineExpose", function() { return _vue_runtime_core__WEBPACK_IMPORTED_MODULE_0__["defineExpose"]; });
30305
30306/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "defineModel", function() { return _vue_runtime_core__WEBPACK_IMPORTED_MODULE_0__["defineModel"]; });
30307
30308/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "defineOptions", function() { return _vue_runtime_core__WEBPACK_IMPORTED_MODULE_0__["defineOptions"]; });
30309
30310/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "defineProps", function() { return _vue_runtime_core__WEBPACK_IMPORTED_MODULE_0__["defineProps"]; });
30311
30312/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "defineSlots", function() { return _vue_runtime_core__WEBPACK_IMPORTED_MODULE_0__["defineSlots"]; });
30313
30314/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "devtools", function() { return _vue_runtime_core__WEBPACK_IMPORTED_MODULE_0__["devtools"]; });
30315
30316/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "getCurrentInstance", function() { return _vue_runtime_core__WEBPACK_IMPORTED_MODULE_0__["getCurrentInstance"]; });
30317
30318/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "getTransitionRawChildren", function() { return _vue_runtime_core__WEBPACK_IMPORTED_MODULE_0__["getTransitionRawChildren"]; });
30319
30320/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "guardReactiveProps", function() { return _vue_runtime_core__WEBPACK_IMPORTED_MODULE_0__["guardReactiveProps"]; });
30321
30322/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "h", function() { return _vue_runtime_core__WEBPACK_IMPORTED_MODULE_0__["h"]; });
30323
30324/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "handleError", function() { return _vue_runtime_core__WEBPACK_IMPORTED_MODULE_0__["handleError"]; });
30325
30326/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "hasInjectionContext", function() { return _vue_runtime_core__WEBPACK_IMPORTED_MODULE_0__["hasInjectionContext"]; });
30327
30328/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "initCustomFormatter", function() { return _vue_runtime_core__WEBPACK_IMPORTED_MODULE_0__["initCustomFormatter"]; });
30329
30330/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "inject", function() { return _vue_runtime_core__WEBPACK_IMPORTED_MODULE_0__["inject"]; });
30331
30332/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "isMemoSame", function() { return _vue_runtime_core__WEBPACK_IMPORTED_MODULE_0__["isMemoSame"]; });
30333
30334/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "isRuntimeOnly", function() { return _vue_runtime_core__WEBPACK_IMPORTED_MODULE_0__["isRuntimeOnly"]; });
30335
30336/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "isVNode", function() { return _vue_runtime_core__WEBPACK_IMPORTED_MODULE_0__["isVNode"]; });
30337
30338/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "mergeDefaults", function() { return _vue_runtime_core__WEBPACK_IMPORTED_MODULE_0__["mergeDefaults"]; });
30339
30340/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "mergeModels", function() { return _vue_runtime_core__WEBPACK_IMPORTED_MODULE_0__["mergeModels"]; });
30341
30342/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "mergeProps", function() { return _vue_runtime_core__WEBPACK_IMPORTED_MODULE_0__["mergeProps"]; });
30343
30344/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "nextTick", function() { return _vue_runtime_core__WEBPACK_IMPORTED_MODULE_0__["nextTick"]; });
30345
30346/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "onActivated", function() { return _vue_runtime_core__WEBPACK_IMPORTED_MODULE_0__["onActivated"]; });
30347
30348/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "onBeforeMount", function() { return _vue_runtime_core__WEBPACK_IMPORTED_MODULE_0__["onBeforeMount"]; });
30349
30350/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "onBeforeUnmount", function() { return _vue_runtime_core__WEBPACK_IMPORTED_MODULE_0__["onBeforeUnmount"]; });
30351
30352/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "onBeforeUpdate", function() { return _vue_runtime_core__WEBPACK_IMPORTED_MODULE_0__["onBeforeUpdate"]; });
30353
30354/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "onDeactivated", function() { return _vue_runtime_core__WEBPACK_IMPORTED_MODULE_0__["onDeactivated"]; });
30355
30356/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "onErrorCaptured", function() { return _vue_runtime_core__WEBPACK_IMPORTED_MODULE_0__["onErrorCaptured"]; });
30357
30358/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "onMounted", function() { return _vue_runtime_core__WEBPACK_IMPORTED_MODULE_0__["onMounted"]; });
30359
30360/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "onRenderTracked", function() { return _vue_runtime_core__WEBPACK_IMPORTED_MODULE_0__["onRenderTracked"]; });
30361
30362/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "onRenderTriggered", function() { return _vue_runtime_core__WEBPACK_IMPORTED_MODULE_0__["onRenderTriggered"]; });
30363
30364/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "onServerPrefetch", function() { return _vue_runtime_core__WEBPACK_IMPORTED_MODULE_0__["onServerPrefetch"]; });
30365
30366/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "onUnmounted", function() { return _vue_runtime_core__WEBPACK_IMPORTED_MODULE_0__["onUnmounted"]; });
30367
30368/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "onUpdated", function() { return _vue_runtime_core__WEBPACK_IMPORTED_MODULE_0__["onUpdated"]; });
30369
30370/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "openBlock", function() { return _vue_runtime_core__WEBPACK_IMPORTED_MODULE_0__["openBlock"]; });
30371
30372/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "popScopeId", function() { return _vue_runtime_core__WEBPACK_IMPORTED_MODULE_0__["popScopeId"]; });
30373
30374/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "provide", function() { return _vue_runtime_core__WEBPACK_IMPORTED_MODULE_0__["provide"]; });
30375
30376/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "pushScopeId", function() { return _vue_runtime_core__WEBPACK_IMPORTED_MODULE_0__["pushScopeId"]; });
30377
30378/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "queuePostFlushCb", function() { return _vue_runtime_core__WEBPACK_IMPORTED_MODULE_0__["queuePostFlushCb"]; });
30379
30380/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "registerRuntimeCompiler", function() { return _vue_runtime_core__WEBPACK_IMPORTED_MODULE_0__["registerRuntimeCompiler"]; });
30381
30382/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "renderList", function() { return _vue_runtime_core__WEBPACK_IMPORTED_MODULE_0__["renderList"]; });
30383
30384/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "renderSlot", function() { return _vue_runtime_core__WEBPACK_IMPORTED_MODULE_0__["renderSlot"]; });
30385
30386/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "resolveComponent", function() { return _vue_runtime_core__WEBPACK_IMPORTED_MODULE_0__["resolveComponent"]; });
30387
30388/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "resolveDirective", function() { return _vue_runtime_core__WEBPACK_IMPORTED_MODULE_0__["resolveDirective"]; });
30389
30390/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "resolveDynamicComponent", function() { return _vue_runtime_core__WEBPACK_IMPORTED_MODULE_0__["resolveDynamicComponent"]; });
30391
30392/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "resolveFilter", function() { return _vue_runtime_core__WEBPACK_IMPORTED_MODULE_0__["resolveFilter"]; });
30393
30394/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "resolveTransitionHooks", function() { return _vue_runtime_core__WEBPACK_IMPORTED_MODULE_0__["resolveTransitionHooks"]; });
30395
30396/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "setBlockTracking", function() { return _vue_runtime_core__WEBPACK_IMPORTED_MODULE_0__["setBlockTracking"]; });
30397
30398/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "setDevtoolsHook", function() { return _vue_runtime_core__WEBPACK_IMPORTED_MODULE_0__["setDevtoolsHook"]; });
30399
30400/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "setTransitionHooks", function() { return _vue_runtime_core__WEBPACK_IMPORTED_MODULE_0__["setTransitionHooks"]; });
30401
30402/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "ssrContextKey", function() { return _vue_runtime_core__WEBPACK_IMPORTED_MODULE_0__["ssrContextKey"]; });
30403
30404/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "ssrUtils", function() { return _vue_runtime_core__WEBPACK_IMPORTED_MODULE_0__["ssrUtils"]; });
30405
30406/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "toHandlers", function() { return _vue_runtime_core__WEBPACK_IMPORTED_MODULE_0__["toHandlers"]; });
30407
30408/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "transformVNodeArgs", function() { return _vue_runtime_core__WEBPACK_IMPORTED_MODULE_0__["transformVNodeArgs"]; });
30409
30410/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "useAttrs", function() { return _vue_runtime_core__WEBPACK_IMPORTED_MODULE_0__["useAttrs"]; });
30411
30412/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "useModel", function() { return _vue_runtime_core__WEBPACK_IMPORTED_MODULE_0__["useModel"]; });
30413
30414/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "useSSRContext", function() { return _vue_runtime_core__WEBPACK_IMPORTED_MODULE_0__["useSSRContext"]; });
30415
30416/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "useSlots", function() { return _vue_runtime_core__WEBPACK_IMPORTED_MODULE_0__["useSlots"]; });
30417
30418/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "useTransitionState", function() { return _vue_runtime_core__WEBPACK_IMPORTED_MODULE_0__["useTransitionState"]; });
30419
30420/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "version", function() { return _vue_runtime_core__WEBPACK_IMPORTED_MODULE_0__["version"]; });
30421
30422/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "warn", function() { return _vue_runtime_core__WEBPACK_IMPORTED_MODULE_0__["warn"]; });
30423
30424/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "watch", function() { return _vue_runtime_core__WEBPACK_IMPORTED_MODULE_0__["watch"]; });
30425
30426/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "watchEffect", function() { return _vue_runtime_core__WEBPACK_IMPORTED_MODULE_0__["watchEffect"]; });
30427
30428/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "watchPostEffect", function() { return _vue_runtime_core__WEBPACK_IMPORTED_MODULE_0__["watchPostEffect"]; });
30429
30430/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "watchSyncEffect", function() { return _vue_runtime_core__WEBPACK_IMPORTED_MODULE_0__["watchSyncEffect"]; });
30431
30432/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "withAsyncContext", function() { return _vue_runtime_core__WEBPACK_IMPORTED_MODULE_0__["withAsyncContext"]; });
30433
30434/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "withCtx", function() { return _vue_runtime_core__WEBPACK_IMPORTED_MODULE_0__["withCtx"]; });
30435
30436/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "withDefaults", function() { return _vue_runtime_core__WEBPACK_IMPORTED_MODULE_0__["withDefaults"]; });
30437
30438/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "withDirectives", function() { return _vue_runtime_core__WEBPACK_IMPORTED_MODULE_0__["withDirectives"]; });
30439
30440/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "withMemo", function() { return _vue_runtime_core__WEBPACK_IMPORTED_MODULE_0__["withMemo"]; });
30441
30442/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "withScopeId", function() { return _vue_runtime_core__WEBPACK_IMPORTED_MODULE_0__["withScopeId"]; });
30443
30444/* harmony import */ var _vue_shared__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @vue/shared */ "./node_modules/@vue/shared/dist/shared.esm-bundler.js");
30445/**
30446* @vue/runtime-dom v3.4.21
30447* (c) 2018-present Yuxi (Evan) You and Vue contributors
30448* @license MIT
30449**/
30450
30451
30452
30453
30454const svgNS = "http://www.w3.org/2000/svg";
30455const mathmlNS = "http://www.w3.org/1998/Math/MathML";
30456const doc = typeof document !== "undefined" ? document : null;
30457const templateContainer = doc && /* @__PURE__ */ doc.createElement("template");
30458const nodeOps = {
30459  insert: (child, parent, anchor) => {
30460    parent.insertBefore(child, anchor || null);
30461  },
30462  remove: (child) => {
30463    const parent = child.parentNode;
30464    if (parent) {
30465      parent.removeChild(child);
30466    }
30467  },
30468  createElement: (tag, namespace, is, props) => {
30469    const el = namespace === "svg" ? doc.createElementNS(svgNS, tag) : namespace === "mathml" ? doc.createElementNS(mathmlNS, tag) : doc.createElement(tag, is ? { is } : void 0);
30470    if (tag === "select" && props && props.multiple != null) {
30471      el.setAttribute("multiple", props.multiple);
30472    }
30473    return el;
30474  },
30475  createText: (text) => doc.createTextNode(text),
30476  createComment: (text) => doc.createComment(text),
30477  setText: (node, text) => {
30478    node.nodeValue = text;
30479  },
30480  setElementText: (el, text) => {
30481    el.textContent = text;
30482  },
30483  parentNode: (node) => node.parentNode,
30484  nextSibling: (node) => node.nextSibling,
30485  querySelector: (selector) => doc.querySelector(selector),
30486  setScopeId(el, id) {
30487    el.setAttribute(id, "");
30488  },
30489  // __UNSAFE__
30490  // Reason: innerHTML.
30491  // Static content here can only come from compiled templates.
30492  // As long as the user only uses trusted templates, this is safe.
30493  insertStaticContent(content, parent, anchor, namespace, start, end) {
30494    const before = anchor ? anchor.previousSibling : parent.lastChild;
30495    if (start && (start === end || start.nextSibling)) {
30496      while (true) {
30497        parent.insertBefore(start.cloneNode(true), anchor);
30498        if (start === end || !(start = start.nextSibling))
30499          break;
30500      }
30501    } else {
30502      templateContainer.innerHTML = namespace === "svg" ? `<svg>${content}</svg>` : namespace === "mathml" ? `<math>${content}</math>` : content;
30503      const template = templateContainer.content;
30504      if (namespace === "svg" || namespace === "mathml") {
30505        const wrapper = template.firstChild;
30506        while (wrapper.firstChild) {
30507          template.appendChild(wrapper.firstChild);
30508        }
30509        template.removeChild(wrapper);
30510      }
30511      parent.insertBefore(template, anchor);
30512    }
30513    return [
30514      // first
30515      before ? before.nextSibling : parent.firstChild,
30516      // last
30517      anchor ? anchor.previousSibling : parent.lastChild
30518    ];
30519  }
30520};
30521
30522const TRANSITION = "transition";
30523const ANIMATION = "animation";
30524const vtcKey = Symbol("_vtc");
30525const Transition = (props, { slots }) => Object(_vue_runtime_core__WEBPACK_IMPORTED_MODULE_0__["h"])(_vue_runtime_core__WEBPACK_IMPORTED_MODULE_0__["BaseTransition"], resolveTransitionProps(props), slots);
30526Transition.displayName = "Transition";
30527const DOMTransitionPropsValidators = {
30528  name: String,
30529  type: String,
30530  css: {
30531    type: Boolean,
30532    default: true
30533  },
30534  duration: [String, Number, Object],
30535  enterFromClass: String,
30536  enterActiveClass: String,
30537  enterToClass: String,
30538  appearFromClass: String,
30539  appearActiveClass: String,
30540  appearToClass: String,
30541  leaveFromClass: String,
30542  leaveActiveClass: String,
30543  leaveToClass: String
30544};
30545const TransitionPropsValidators = Transition.props = /* @__PURE__ */ Object(_vue_shared__WEBPACK_IMPORTED_MODULE_1__["extend"])(
30546  {},
30547  _vue_runtime_core__WEBPACK_IMPORTED_MODULE_0__["BaseTransitionPropsValidators"],
30548  DOMTransitionPropsValidators
30549);
30550const callHook = (hook, args = []) => {
30551  if (Object(_vue_shared__WEBPACK_IMPORTED_MODULE_1__["isArray"])(hook)) {
30552    hook.forEach((h2) => h2(...args));
30553  } else if (hook) {
30554    hook(...args);
30555  }
30556};
30557const hasExplicitCallback = (hook) => {
30558  return hook ? Object(_vue_shared__WEBPACK_IMPORTED_MODULE_1__["isArray"])(hook) ? hook.some((h2) => h2.length > 1) : hook.length > 1 : false;
30559};
30560function resolveTransitionProps(rawProps) {
30561  const baseProps = {};
30562  for (const key in rawProps) {
30563    if (!(key in DOMTransitionPropsValidators)) {
30564      baseProps[key] = rawProps[key];
30565    }
30566  }
30567  if (rawProps.css === false) {
30568    return baseProps;
30569  }
30570  const {
30571    name = "v",
30572    type,
30573    duration,
30574    enterFromClass = `${name}-enter-from`,
30575    enterActiveClass = `${name}-enter-active`,
30576    enterToClass = `${name}-enter-to`,
30577    appearFromClass = enterFromClass,
30578    appearActiveClass = enterActiveClass,
30579    appearToClass = enterToClass,
30580    leaveFromClass = `${name}-leave-from`,
30581    leaveActiveClass = `${name}-leave-active`,
30582    leaveToClass = `${name}-leave-to`
30583  } = rawProps;
30584  const durations = normalizeDuration(duration);
30585  const enterDuration = durations && durations[0];
30586  const leaveDuration = durations && durations[1];
30587  const {
30588    onBeforeEnter,
30589    onEnter,
30590    onEnterCancelled,
30591    onLeave,
30592    onLeaveCancelled,
30593    onBeforeAppear = onBeforeEnter,
30594    onAppear = onEnter,
30595    onAppearCancelled = onEnterCancelled
30596  } = baseProps;
30597  const finishEnter = (el, isAppear, done) => {
30598    removeTransitionClass(el, isAppear ? appearToClass : enterToClass);
30599    removeTransitionClass(el, isAppear ? appearActiveClass : enterActiveClass);
30600    done && done();
30601  };
30602  const finishLeave = (el, done) => {
30603    el._isLeaving = false;
30604    removeTransitionClass(el, leaveFromClass);
30605    removeTransitionClass(el, leaveToClass);
30606    removeTransitionClass(el, leaveActiveClass);
30607    done && done();
30608  };
30609  const makeEnterHook = (isAppear) => {
30610    return (el, done) => {
30611      const hook = isAppear ? onAppear : onEnter;
30612      const resolve = () => finishEnter(el, isAppear, done);
30613      callHook(hook, [el, resolve]);
30614      nextFrame(() => {
30615        removeTransitionClass(el, isAppear ? appearFromClass : enterFromClass);
30616        addTransitionClass(el, isAppear ? appearToClass : enterToClass);
30617        if (!hasExplicitCallback(hook)) {
30618          whenTransitionEnds(el, type, enterDuration, resolve);
30619        }
30620      });
30621    };
30622  };
30623  return Object(_vue_shared__WEBPACK_IMPORTED_MODULE_1__["extend"])(baseProps, {
30624    onBeforeEnter(el) {
30625      callHook(onBeforeEnter, [el]);
30626      addTransitionClass(el, enterFromClass);
30627      addTransitionClass(el, enterActiveClass);
30628    },
30629    onBeforeAppear(el) {
30630      callHook(onBeforeAppear, [el]);
30631      addTransitionClass(el, appearFromClass);
30632      addTransitionClass(el, appearActiveClass);
30633    },
30634    onEnter: makeEnterHook(false),
30635    onAppear: makeEnterHook(true),
30636    onLeave(el, done) {
30637      el._isLeaving = true;
30638      const resolve = () => finishLeave(el, done);
30639      addTransitionClass(el, leaveFromClass);
30640      forceReflow();
30641      addTransitionClass(el, leaveActiveClass);
30642      nextFrame(() => {
30643        if (!el._isLeaving) {
30644          return;
30645        }
30646        removeTransitionClass(el, leaveFromClass);
30647        addTransitionClass(el, leaveToClass);
30648        if (!hasExplicitCallback(onLeave)) {
30649          whenTransitionEnds(el, type, leaveDuration, resolve);
30650        }
30651      });
30652      callHook(onLeave, [el, resolve]);
30653    },
30654    onEnterCancelled(el) {
30655      finishEnter(el, false);
30656      callHook(onEnterCancelled, [el]);
30657    },
30658    onAppearCancelled(el) {
30659      finishEnter(el, true);
30660      callHook(onAppearCancelled, [el]);
30661    },
30662    onLeaveCancelled(el) {
30663      finishLeave(el);
30664      callHook(onLeaveCancelled, [el]);
30665    }
30666  });
30667}
30668function normalizeDuration(duration) {
30669  if (duration == null) {
30670    return null;
30671  } else if (Object(_vue_shared__WEBPACK_IMPORTED_MODULE_1__["isObject"])(duration)) {
30672    return [NumberOf(duration.enter), NumberOf(duration.leave)];
30673  } else {
30674    const n = NumberOf(duration);
30675    return [n, n];
30676  }
30677}
30678function NumberOf(val) {
30679  const res = Object(_vue_shared__WEBPACK_IMPORTED_MODULE_1__["toNumber"])(val);
30680  if (true) {
30681    Object(_vue_runtime_core__WEBPACK_IMPORTED_MODULE_0__["assertNumber"])(res, "<transition> explicit duration");
30682  }
30683  return res;
30684}
30685function addTransitionClass(el, cls) {
30686  cls.split(/\s+/).forEach((c) => c && el.classList.add(c));
30687  (el[vtcKey] || (el[vtcKey] = /* @__PURE__ */ new Set())).add(cls);
30688}
30689function removeTransitionClass(el, cls) {
30690  cls.split(/\s+/).forEach((c) => c && el.classList.remove(c));
30691  const _vtc = el[vtcKey];
30692  if (_vtc) {
30693    _vtc.delete(cls);
30694    if (!_vtc.size) {
30695      el[vtcKey] = void 0;
30696    }
30697  }
30698}
30699function nextFrame(cb) {
30700  requestAnimationFrame(() => {
30701    requestAnimationFrame(cb);
30702  });
30703}
30704let endId = 0;
30705function whenTransitionEnds(el, expectedType, explicitTimeout, resolve) {
30706  const id = el._endId = ++endId;
30707  const resolveIfNotStale = () => {
30708    if (id === el._endId) {
30709      resolve();
30710    }
30711  };
30712  if (explicitTimeout) {
30713    return setTimeout(resolveIfNotStale, explicitTimeout);
30714  }
30715  const { type, timeout, propCount } = getTransitionInfo(el, expectedType);
30716  if (!type) {
30717    return resolve();
30718  }
30719  const endEvent = type + "end";
30720  let ended = 0;
30721  const end = () => {
30722    el.removeEventListener(endEvent, onEnd);
30723    resolveIfNotStale();
30724  };
30725  const onEnd = (e) => {
30726    if (e.target === el && ++ended >= propCount) {
30727      end();
30728    }
30729  };
30730  setTimeout(() => {
30731    if (ended < propCount) {
30732      end();
30733    }
30734  }, timeout + 1);
30735  el.addEventListener(endEvent, onEnd);
30736}
30737function getTransitionInfo(el, expectedType) {
30738  const styles = window.getComputedStyle(el);
30739  const getStyleProperties = (key) => (styles[key] || "").split(", ");
30740  const transitionDelays = getStyleProperties(`${TRANSITION}Delay`);
30741  const transitionDurations = getStyleProperties(`${TRANSITION}Duration`);
30742  const transitionTimeout = getTimeout(transitionDelays, transitionDurations);
30743  const animationDelays = getStyleProperties(`${ANIMATION}Delay`);
30744  const animationDurations = getStyleProperties(`${ANIMATION}Duration`);
30745  const animationTimeout = getTimeout(animationDelays, animationDurations);
30746  let type = null;
30747  let timeout = 0;
30748  let propCount = 0;
30749  if (expectedType === TRANSITION) {
30750    if (transitionTimeout > 0) {
30751      type = TRANSITION;
30752      timeout = transitionTimeout;
30753      propCount = transitionDurations.length;
30754    }
30755  } else if (expectedType === ANIMATION) {
30756    if (animationTimeout > 0) {
30757      type = ANIMATION;
30758      timeout = animationTimeout;
30759      propCount = animationDurations.length;
30760    }
30761  } else {
30762    timeout = Math.max(transitionTimeout, animationTimeout);
30763    type = timeout > 0 ? transitionTimeout > animationTimeout ? TRANSITION : ANIMATION : null;
30764    propCount = type ? type === TRANSITION ? transitionDurations.length : animationDurations.length : 0;
30765  }
30766  const hasTransform = type === TRANSITION && /\b(transform|all)(,|$)/.test(
30767    getStyleProperties(`${TRANSITION}Property`).toString()
30768  );
30769  return {
30770    type,
30771    timeout,
30772    propCount,
30773    hasTransform
30774  };
30775}
30776function getTimeout(delays, durations) {
30777  while (delays.length < durations.length) {
30778    delays = delays.concat(delays);
30779  }
30780  return Math.max(...durations.map((d, i) => toMs(d) + toMs(delays[i])));
30781}
30782function toMs(s) {
30783  if (s === "auto")
30784    return 0;
30785  return Number(s.slice(0, -1).replace(",", ".")) * 1e3;
30786}
30787function forceReflow() {
30788  return document.body.offsetHeight;
30789}
30790
30791function patchClass(el, value, isSVG) {
30792  const transitionClasses = el[vtcKey];
30793  if (transitionClasses) {
30794    value = (value ? [value, ...transitionClasses] : [...transitionClasses]).join(" ");
30795  }
30796  if (value == null) {
30797    el.removeAttribute("class");
30798  } else if (isSVG) {
30799    el.setAttribute("class", value);
30800  } else {
30801    el.className = value;
30802  }
30803}
30804
30805const vShowOriginalDisplay = Symbol("_vod");
30806const vShowHidden = Symbol("_vsh");
30807const vShow = {
30808  beforeMount(el, { value }, { transition }) {
30809    el[vShowOriginalDisplay] = el.style.display === "none" ? "" : el.style.display;
30810    if (transition && value) {
30811      transition.beforeEnter(el);
30812    } else {
30813      setDisplay(el, value);
30814    }
30815  },
30816  mounted(el, { value }, { transition }) {
30817    if (transition && value) {
30818      transition.enter(el);
30819    }
30820  },
30821  updated(el, { value, oldValue }, { transition }) {
30822    if (!value === !oldValue)
30823      return;
30824    if (transition) {
30825      if (value) {
30826        transition.beforeEnter(el);
30827        setDisplay(el, true);
30828        transition.enter(el);
30829      } else {
30830        transition.leave(el, () => {
30831          setDisplay(el, false);
30832        });
30833      }
30834    } else {
30835      setDisplay(el, value);
30836    }
30837  },
30838  beforeUnmount(el, { value }) {
30839    setDisplay(el, value);
30840  }
30841};
30842if (true) {
30843  vShow.name = "show";
30844}
30845function setDisplay(el, value) {
30846  el.style.display = value ? el[vShowOriginalDisplay] : "none";
30847  el[vShowHidden] = !value;
30848}
30849function initVShowForSSR() {
30850  vShow.getSSRProps = ({ value }) => {
30851    if (!value) {
30852      return { style: { display: "none" } };
30853    }
30854  };
30855}
30856
30857const CSS_VAR_TEXT = Symbol( true ? "CSS_VAR_TEXT" : undefined);
30858function useCssVars(getter) {
30859  const instance = Object(_vue_runtime_core__WEBPACK_IMPORTED_MODULE_0__["getCurrentInstance"])();
30860  if (!instance) {
30861     true && Object(_vue_runtime_core__WEBPACK_IMPORTED_MODULE_0__["warn"])(`useCssVars is called without current active component instance.`);
30862    return;
30863  }
30864  const updateTeleports = instance.ut = (vars = getter(instance.proxy)) => {
30865    Array.from(
30866      document.querySelectorAll(`[data-v-owner="${instance.uid}"]`)
30867    ).forEach((node) => setVarsOnNode(node, vars));
30868  };
30869  if (true) {
30870    instance.getCssVars = () => getter(instance.proxy);
30871  }
30872  const setVars = () => {
30873    const vars = getter(instance.proxy);
30874    setVarsOnVNode(instance.subTree, vars);
30875    updateTeleports(vars);
30876  };
30877  Object(_vue_runtime_core__WEBPACK_IMPORTED_MODULE_0__["watchPostEffect"])(setVars);
30878  Object(_vue_runtime_core__WEBPACK_IMPORTED_MODULE_0__["onMounted"])(() => {
30879    const ob = new MutationObserver(setVars);
30880    ob.observe(instance.subTree.el.parentNode, { childList: true });
30881    Object(_vue_runtime_core__WEBPACK_IMPORTED_MODULE_0__["onUnmounted"])(() => ob.disconnect());
30882  });
30883}
30884function setVarsOnVNode(vnode, vars) {
30885  if (vnode.shapeFlag & 128) {
30886    const suspense = vnode.suspense;
30887    vnode = suspense.activeBranch;
30888    if (suspense.pendingBranch && !suspense.isHydrating) {
30889      suspense.effects.push(() => {
30890        setVarsOnVNode(suspense.activeBranch, vars);
30891      });
30892    }
30893  }
30894  while (vnode.component) {
30895    vnode = vnode.component.subTree;
30896  }
30897  if (vnode.shapeFlag & 1 && vnode.el) {
30898    setVarsOnNode(vnode.el, vars);
30899  } else if (vnode.type === _vue_runtime_core__WEBPACK_IMPORTED_MODULE_0__["Fragment"]) {
30900    vnode.children.forEach((c) => setVarsOnVNode(c, vars));
30901  } else if (vnode.type === _vue_runtime_core__WEBPACK_IMPORTED_MODULE_0__["Static"]) {
30902    let { el, anchor } = vnode;
30903    while (el) {
30904      setVarsOnNode(el, vars);
30905      if (el === anchor)
30906        break;
30907      el = el.nextSibling;
30908    }
30909  }
30910}
30911function setVarsOnNode(el, vars) {
30912  if (el.nodeType === 1) {
30913    const style = el.style;
30914    let cssText = "";
30915    for (const key in vars) {
30916      style.setProperty(`--${key}`, vars[key]);
30917      cssText += `--${key}: ${vars[key]};`;
30918    }
30919    style[CSS_VAR_TEXT] = cssText;
30920  }
30921}
30922
30923const displayRE = /(^|;)\s*display\s*:/;
30924function patchStyle(el, prev, next) {
30925  const style = el.style;
30926  const isCssString = Object(_vue_shared__WEBPACK_IMPORTED_MODULE_1__["isString"])(next);
30927  let hasControlledDisplay = false;
30928  if (next && !isCssString) {
30929    if (prev) {
30930      if (!Object(_vue_shared__WEBPACK_IMPORTED_MODULE_1__["isString"])(prev)) {
30931        for (const key in prev) {
30932          if (next[key] == null) {
30933            setStyle(style, key, "");
30934          }
30935        }
30936      } else {
30937        for (const prevStyle of prev.split(";")) {
30938          const key = prevStyle.slice(0, prevStyle.indexOf(":")).trim();
30939          if (next[key] == null) {
30940            setStyle(style, key, "");
30941          }
30942        }
30943      }
30944    }
30945    for (const key in next) {
30946      if (key === "display") {
30947        hasControlledDisplay = true;
30948      }
30949      setStyle(style, key, next[key]);
30950    }
30951  } else {
30952    if (isCssString) {
30953      if (prev !== next) {
30954        const cssVarText = style[CSS_VAR_TEXT];
30955        if (cssVarText) {
30956          next += ";" + cssVarText;
30957        }
30958        style.cssText = next;
30959        hasControlledDisplay = displayRE.test(next);
30960      }
30961    } else if (prev) {
30962      el.removeAttribute("style");
30963    }
30964  }
30965  if (vShowOriginalDisplay in el) {
30966    el[vShowOriginalDisplay] = hasControlledDisplay ? style.display : "";
30967    if (el[vShowHidden]) {
30968      style.display = "none";
30969    }
30970  }
30971}
30972const semicolonRE = /[^\\];\s*$/;
30973const importantRE = /\s*!important$/;
30974function setStyle(style, name, val) {
30975  if (Object(_vue_shared__WEBPACK_IMPORTED_MODULE_1__["isArray"])(val)) {
30976    val.forEach((v) => setStyle(style, name, v));
30977  } else {
30978    if (val == null)
30979      val = "";
30980    if (true) {
30981      if (semicolonRE.test(val)) {
30982        Object(_vue_runtime_core__WEBPACK_IMPORTED_MODULE_0__["warn"])(
30983          `Unexpected semicolon at the end of '${name}' style value: '${val}'`
30984        );
30985      }
30986    }
30987    if (name.startsWith("--")) {
30988      style.setProperty(name, val);
30989    } else {
30990      const prefixed = autoPrefix(style, name);
30991      if (importantRE.test(val)) {
30992        style.setProperty(
30993          Object(_vue_shared__WEBPACK_IMPORTED_MODULE_1__["hyphenate"])(prefixed),
30994          val.replace(importantRE, ""),
30995          "important"
30996        );
30997      } else {
30998        style[prefixed] = val;
30999      }
31000    }
31001  }
31002}
31003const prefixes = ["Webkit", "Moz", "ms"];
31004const prefixCache = {};
31005function autoPrefix(style, rawName) {
31006  const cached = prefixCache[rawName];
31007  if (cached) {
31008    return cached;
31009  }
31010  let name = Object(_vue_runtime_core__WEBPACK_IMPORTED_MODULE_0__["camelize"])(rawName);
31011  if (name !== "filter" && name in style) {
31012    return prefixCache[rawName] = name;
31013  }
31014  name = Object(_vue_shared__WEBPACK_IMPORTED_MODULE_1__["capitalize"])(name);
31015  for (let i = 0; i < prefixes.length; i++) {
31016    const prefixed = prefixes[i] + name;
31017    if (prefixed in style) {
31018      return prefixCache[rawName] = prefixed;
31019    }
31020  }
31021  return rawName;
31022}
31023
31024const xlinkNS = "http://www.w3.org/1999/xlink";
31025function patchAttr(el, key, value, isSVG, instance) {
31026  if (isSVG && key.startsWith("xlink:")) {
31027    if (value == null) {
31028      el.removeAttributeNS(xlinkNS, key.slice(6, key.length));
31029    } else {
31030      el.setAttributeNS(xlinkNS, key, value);
31031    }
31032  } else {
31033    const isBoolean = Object(_vue_shared__WEBPACK_IMPORTED_MODULE_1__["isSpecialBooleanAttr"])(key);
31034    if (value == null || isBoolean && !Object(_vue_shared__WEBPACK_IMPORTED_MODULE_1__["includeBooleanAttr"])(value)) {
31035      el.removeAttribute(key);
31036    } else {
31037      el.setAttribute(key, isBoolean ? "" : value);
31038    }
31039  }
31040}
31041
31042function patchDOMProp(el, key, value, prevChildren, parentComponent, parentSuspense, unmountChildren) {
31043  if (key === "innerHTML" || key === "textContent") {
31044    if (prevChildren) {
31045      unmountChildren(prevChildren, parentComponent, parentSuspense);
31046    }
31047    el[key] = value == null ? "" : value;
31048    return;
31049  }
31050  const tag = el.tagName;
31051  if (key === "value" && tag !== "PROGRESS" && // custom elements may use _value internally
31052  !tag.includes("-")) {
31053    const oldValue = tag === "OPTION" ? el.getAttribute("value") || "" : el.value;
31054    const newValue = value == null ? "" : value;
31055    if (oldValue !== newValue || !("_value" in el)) {
31056      el.value = newValue;
31057    }
31058    if (value == null) {
31059      el.removeAttribute(key);
31060    }
31061    el._value = value;
31062    return;
31063  }
31064  let needRemove = false;
31065  if (value === "" || value == null) {
31066    const type = typeof el[key];
31067    if (type === "boolean") {
31068      value = Object(_vue_shared__WEBPACK_IMPORTED_MODULE_1__["includeBooleanAttr"])(value);
31069    } else if (value == null && type === "string") {
31070      value = "";
31071      needRemove = true;
31072    } else if (type === "number") {
31073      value = 0;
31074      needRemove = true;
31075    }
31076  }
31077  try {
31078    el[key] = value;
31079  } catch (e) {
31080    if ( true && !needRemove) {
31081      Object(_vue_runtime_core__WEBPACK_IMPORTED_MODULE_0__["warn"])(
31082        `Failed setting prop "${key}" on <${tag.toLowerCase()}>: value ${value} is invalid.`,
31083        e
31084      );
31085    }
31086  }
31087  needRemove && el.removeAttribute(key);
31088}
31089
31090function addEventListener(el, event, handler, options) {
31091  el.addEventListener(event, handler, options);
31092}
31093function removeEventListener(el, event, handler, options) {
31094  el.removeEventListener(event, handler, options);
31095}
31096const veiKey = Symbol("_vei");
31097function patchEvent(el, rawName, prevValue, nextValue, instance = null) {
31098  const invokers = el[veiKey] || (el[veiKey] = {});
31099  const existingInvoker = invokers[rawName];
31100  if (nextValue && existingInvoker) {
31101    existingInvoker.value = nextValue;
31102  } else {
31103    const [name, options] = parseName(rawName);
31104    if (nextValue) {
31105      const invoker = invokers[rawName] = createInvoker(nextValue, instance);
31106      addEventListener(el, name, invoker, options);
31107    } else if (existingInvoker) {
31108      removeEventListener(el, name, existingInvoker, options);
31109      invokers[rawName] = void 0;
31110    }
31111  }
31112}
31113const optionsModifierRE = /(?:Once|Passive|Capture)$/;
31114function parseName(name) {
31115  let options;
31116  if (optionsModifierRE.test(name)) {
31117    options = {};
31118    let m;
31119    while (m = name.match(optionsModifierRE)) {
31120      name = name.slice(0, name.length - m[0].length);
31121      options[m[0].toLowerCase()] = true;
31122    }
31123  }
31124  const event = name[2] === ":" ? name.slice(3) : Object(_vue_shared__WEBPACK_IMPORTED_MODULE_1__["hyphenate"])(name.slice(2));
31125  return [event, options];
31126}
31127let cachedNow = 0;
31128const p = /* @__PURE__ */ Promise.resolve();
31129const getNow = () => cachedNow || (p.then(() => cachedNow = 0), cachedNow = Date.now());
31130function createInvoker(initialValue, instance) {
31131  const invoker = (e) => {
31132    if (!e._vts) {
31133      e._vts = Date.now();
31134    } else if (e._vts <= invoker.attached) {
31135      return;
31136    }
31137    Object(_vue_runtime_core__WEBPACK_IMPORTED_MODULE_0__["callWithAsyncErrorHandling"])(
31138      patchStopImmediatePropagation(e, invoker.value),
31139      instance,
31140      5,
31141      [e]
31142    );
31143  };
31144  invoker.value = initialValue;
31145  invoker.attached = getNow();
31146  return invoker;
31147}
31148function patchStopImmediatePropagation(e, value) {
31149  if (Object(_vue_shared__WEBPACK_IMPORTED_MODULE_1__["isArray"])(value)) {
31150    const originalStop = e.stopImmediatePropagation;
31151    e.stopImmediatePropagation = () => {
31152      originalStop.call(e);
31153      e._stopped = true;
31154    };
31155    return value.map((fn) => (e2) => !e2._stopped && fn && fn(e2));
31156  } else {
31157    return value;
31158  }
31159}
31160
31161const isNativeOn = (key) => key.charCodeAt(0) === 111 && key.charCodeAt(1) === 110 && // lowercase letter
31162key.charCodeAt(2) > 96 && key.charCodeAt(2) < 123;
31163const patchProp = (el, key, prevValue, nextValue, namespace, prevChildren, parentComponent, parentSuspense, unmountChildren) => {
31164  const isSVG = namespace === "svg";
31165  if (key === "class") {
31166    patchClass(el, nextValue, isSVG);
31167  } else if (key === "style") {
31168    patchStyle(el, prevValue, nextValue);
31169  } else if (Object(_vue_shared__WEBPACK_IMPORTED_MODULE_1__["isOn"])(key)) {
31170    if (!Object(_vue_shared__WEBPACK_IMPORTED_MODULE_1__["isModelListener"])(key)) {
31171      patchEvent(el, key, prevValue, nextValue, parentComponent);
31172    }
31173  } else if (key[0] === "." ? (key = key.slice(1), true) : key[0] === "^" ? (key = key.slice(1), false) : shouldSetAsProp(el, key, nextValue, isSVG)) {
31174    patchDOMProp(
31175      el,
31176      key,
31177      nextValue,
31178      prevChildren,
31179      parentComponent,
31180      parentSuspense,
31181      unmountChildren
31182    );
31183  } else {
31184    if (key === "true-value") {
31185      el._trueValue = nextValue;
31186    } else if (key === "false-value") {
31187      el._falseValue = nextValue;
31188    }
31189    patchAttr(el, key, nextValue, isSVG);
31190  }
31191};
31192function shouldSetAsProp(el, key, value, isSVG) {
31193  if (isSVG) {
31194    if (key === "innerHTML" || key === "textContent") {
31195      return true;
31196    }
31197    if (key in el && isNativeOn(key) && Object(_vue_shared__WEBPACK_IMPORTED_MODULE_1__["isFunction"])(value)) {
31198      return true;
31199    }
31200    return false;
31201  }
31202  if (key === "spellcheck" || key === "draggable" || key === "translate") {
31203    return false;
31204  }
31205  if (key === "form") {
31206    return false;
31207  }
31208  if (key === "list" && el.tagName === "INPUT") {
31209    return false;
31210  }
31211  if (key === "type" && el.tagName === "TEXTAREA") {
31212    return false;
31213  }
31214  if (key === "width" || key === "height") {
31215    const tag = el.tagName;
31216    if (tag === "IMG" || tag === "VIDEO" || tag === "CANVAS" || tag === "SOURCE") {
31217      return false;
31218    }
31219  }
31220  if (isNativeOn(key) && Object(_vue_shared__WEBPACK_IMPORTED_MODULE_1__["isString"])(value)) {
31221    return false;
31222  }
31223  return key in el;
31224}
31225
31226/*! #__NO_SIDE_EFFECTS__ */
31227// @__NO_SIDE_EFFECTS__
31228function defineCustomElement(options, hydrate2) {
31229  const Comp = Object(_vue_runtime_core__WEBPACK_IMPORTED_MODULE_0__["defineComponent"])(options);
31230  class VueCustomElement extends VueElement {
31231    constructor(initialProps) {
31232      super(Comp, initialProps, hydrate2);
31233    }
31234  }
31235  VueCustomElement.def = Comp;
31236  return VueCustomElement;
31237}
31238/*! #__NO_SIDE_EFFECTS__ */
31239const defineSSRCustomElement = /* @__NO_SIDE_EFFECTS__ */ (options) => {
31240  return /* @__PURE__ */ defineCustomElement(options, hydrate);
31241};
31242const BaseClass = typeof HTMLElement !== "undefined" ? HTMLElement : class {
31243};
31244class VueElement extends BaseClass {
31245  constructor(_def, _props = {}, hydrate2) {
31246    super();
31247    this._def = _def;
31248    this._props = _props;
31249    /**
31250     * @internal
31251     */
31252    this._instance = null;
31253    this._connected = false;
31254    this._resolved = false;
31255    this._numberProps = null;
31256    this._ob = null;
31257    if (this.shadowRoot && hydrate2) {
31258      hydrate2(this._createVNode(), this.shadowRoot);
31259    } else {
31260      if ( true && this.shadowRoot) {
31261        Object(_vue_runtime_core__WEBPACK_IMPORTED_MODULE_0__["warn"])(
31262          `Custom element has pre-rendered declarative shadow root but is not defined as hydratable. Use \`defineSSRCustomElement\`.`
31263        );
31264      }
31265      this.attachShadow({ mode: "open" });
31266      if (!this._def.__asyncLoader) {
31267        this._resolveProps(this._def);
31268      }
31269    }
31270  }
31271  connectedCallback() {
31272    this._connected = true;
31273    if (!this._instance) {
31274      if (this._resolved) {
31275        this._update();
31276      } else {
31277        this._resolveDef();
31278      }
31279    }
31280  }
31281  disconnectedCallback() {
31282    this._connected = false;
31283    if (this._ob) {
31284      this._ob.disconnect();
31285      this._ob = null;
31286    }
31287    Object(_vue_runtime_core__WEBPACK_IMPORTED_MODULE_0__["nextTick"])(() => {
31288      if (!this._connected) {
31289        render(null, this.shadowRoot);
31290        this._instance = null;
31291      }
31292    });
31293  }
31294  /**
31295   * resolve inner component definition (handle possible async component)
31296   */
31297  _resolveDef() {
31298    this._resolved = true;
31299    for (let i = 0; i < this.attributes.length; i++) {
31300      this._setAttr(this.attributes[i].name);
31301    }
31302    this._ob = new MutationObserver((mutations) => {
31303      for (const m of mutations) {
31304        this._setAttr(m.attributeName);
31305      }
31306    });
31307    this._ob.observe(this, { attributes: true });
31308    const resolve = (def, isAsync = false) => {
31309      const { props, styles } = def;
31310      let numberProps;
31311      if (props && !Object(_vue_shared__WEBPACK_IMPORTED_MODULE_1__["isArray"])(props)) {
31312        for (const key in props) {
31313          const opt = props[key];
31314          if (opt === Number || opt && opt.type === Number) {
31315            if (key in this._props) {
31316              this._props[key] = Object(_vue_shared__WEBPACK_IMPORTED_MODULE_1__["toNumber"])(this._props[key]);
31317            }
31318            (numberProps || (numberProps = /* @__PURE__ */ Object.create(null)))[Object(_vue_shared__WEBPACK_IMPORTED_MODULE_1__["camelize"])(key)] = true;
31319          }
31320        }
31321      }
31322      this._numberProps = numberProps;
31323      if (isAsync) {
31324        this._resolveProps(def);
31325      }
31326      this._applyStyles(styles);
31327      this._update();
31328    };
31329    const asyncDef = this._def.__asyncLoader;
31330    if (asyncDef) {
31331      asyncDef().then((def) => resolve(def, true));
31332    } else {
31333      resolve(this._def);
31334    }
31335  }
31336  _resolveProps(def) {
31337    const { props } = def;
31338    const declaredPropKeys = Object(_vue_shared__WEBPACK_IMPORTED_MODULE_1__["isArray"])(props) ? props : Object.keys(props || {});
31339    for (const key of Object.keys(this)) {
31340      if (key[0] !== "_" && declaredPropKeys.includes(key)) {
31341        this._setProp(key, this[key], true, false);
31342      }
31343    }
31344    for (const key of declaredPropKeys.map(_vue_shared__WEBPACK_IMPORTED_MODULE_1__["camelize"])) {
31345      Object.defineProperty(this, key, {
31346        get() {
31347          return this._getProp(key);
31348        },
31349        set(val) {
31350          this._setProp(key, val);
31351        }
31352      });
31353    }
31354  }
31355  _setAttr(key) {
31356    let value = this.getAttribute(key);
31357    const camelKey = Object(_vue_shared__WEBPACK_IMPORTED_MODULE_1__["camelize"])(key);
31358    if (this._numberProps && this._numberProps[camelKey]) {
31359      value = Object(_vue_shared__WEBPACK_IMPORTED_MODULE_1__["toNumber"])(value);
31360    }
31361    this._setProp(camelKey, value, false);
31362  }
31363  /**
31364   * @internal
31365   */
31366  _getProp(key) {
31367    return this._props[key];
31368  }
31369  /**
31370   * @internal
31371   */
31372  _setProp(key, val, shouldReflect = true, shouldUpdate = true) {
31373    if (val !== this._props[key]) {
31374      this._props[key] = val;
31375      if (shouldUpdate && this._instance) {
31376        this._update();
31377      }
31378      if (shouldReflect) {
31379        if (val === true) {
31380          this.setAttribute(Object(_vue_shared__WEBPACK_IMPORTED_MODULE_1__["hyphenate"])(key), "");
31381        } else if (typeof val === "string" || typeof val === "number") {
31382          this.setAttribute(Object(_vue_shared__WEBPACK_IMPORTED_MODULE_1__["hyphenate"])(key), val + "");
31383        } else if (!val) {
31384          this.removeAttribute(Object(_vue_shared__WEBPACK_IMPORTED_MODULE_1__["hyphenate"])(key));
31385        }
31386      }
31387    }
31388  }
31389  _update() {
31390    render(this._createVNode(), this.shadowRoot);
31391  }
31392  _createVNode() {
31393    const vnode = Object(_vue_runtime_core__WEBPACK_IMPORTED_MODULE_0__["createVNode"])(this._def, Object(_vue_shared__WEBPACK_IMPORTED_MODULE_1__["extend"])({}, this._props));
31394    if (!this._instance) {
31395      vnode.ce = (instance) => {
31396        this._instance = instance;
31397        instance.isCE = true;
31398        if (true) {
31399          instance.ceReload = (newStyles) => {
31400            if (this._styles) {
31401              this._styles.forEach((s) => this.shadowRoot.removeChild(s));
31402              this._styles.length = 0;
31403            }
31404            this._applyStyles(newStyles);
31405            this._instance = null;
31406            this._update();
31407          };
31408        }
31409        const dispatch = (event, args) => {
31410          this.dispatchEvent(
31411            new CustomEvent(event, {
31412              detail: args
31413            })
31414          );
31415        };
31416        instance.emit = (event, ...args) => {
31417          dispatch(event, args);
31418          if (Object(_vue_shared__WEBPACK_IMPORTED_MODULE_1__["hyphenate"])(event) !== event) {
31419            dispatch(Object(_vue_shared__WEBPACK_IMPORTED_MODULE_1__["hyphenate"])(event), args);
31420          }
31421        };
31422        let parent = this;
31423        while (parent = parent && (parent.parentNode || parent.host)) {
31424          if (parent instanceof VueElement) {
31425            instance.parent = parent._instance;
31426            instance.provides = parent._instance.provides;
31427            break;
31428          }
31429        }
31430      };
31431    }
31432    return vnode;
31433  }
31434  _applyStyles(styles) {
31435    if (styles) {
31436      styles.forEach((css) => {
31437        const s = document.createElement("style");
31438        s.textContent = css;
31439        this.shadowRoot.appendChild(s);
31440        if (true) {
31441          (this._styles || (this._styles = [])).push(s);
31442        }
31443      });
31444    }
31445  }
31446}
31447
31448function useCssModule(name = "$style") {
31449  {
31450    const instance = Object(_vue_runtime_core__WEBPACK_IMPORTED_MODULE_0__["getCurrentInstance"])();
31451    if (!instance) {
31452       true && Object(_vue_runtime_core__WEBPACK_IMPORTED_MODULE_0__["warn"])(`useCssModule must be called inside setup()`);
31453      return _vue_shared__WEBPACK_IMPORTED_MODULE_1__["EMPTY_OBJ"];
31454    }
31455    const modules = instance.type.__cssModules;
31456    if (!modules) {
31457       true && Object(_vue_runtime_core__WEBPACK_IMPORTED_MODULE_0__["warn"])(`Current instance does not have CSS modules injected.`);
31458      return _vue_shared__WEBPACK_IMPORTED_MODULE_1__["EMPTY_OBJ"];
31459    }
31460    const mod = modules[name];
31461    if (!mod) {
31462       true && Object(_vue_runtime_core__WEBPACK_IMPORTED_MODULE_0__["warn"])(`Current instance does not have CSS module named "${name}".`);
31463      return _vue_shared__WEBPACK_IMPORTED_MODULE_1__["EMPTY_OBJ"];
31464    }
31465    return mod;
31466  }
31467}
31468
31469const positionMap = /* @__PURE__ */ new WeakMap();
31470const newPositionMap = /* @__PURE__ */ new WeakMap();
31471const moveCbKey = Symbol("_moveCb");
31472const enterCbKey = Symbol("_enterCb");
31473const TransitionGroupImpl = {
31474  name: "TransitionGroup",
31475  props: /* @__PURE__ */ Object(_vue_shared__WEBPACK_IMPORTED_MODULE_1__["extend"])({}, TransitionPropsValidators, {
31476    tag: String,
31477    moveClass: String
31478  }),
31479  setup(props, { slots }) {
31480    const instance = Object(_vue_runtime_core__WEBPACK_IMPORTED_MODULE_0__["getCurrentInstance"])();
31481    const state = Object(_vue_runtime_core__WEBPACK_IMPORTED_MODULE_0__["useTransitionState"])();
31482    let prevChildren;
31483    let children;
31484    Object(_vue_runtime_core__WEBPACK_IMPORTED_MODULE_0__["onUpdated"])(() => {
31485      if (!prevChildren.length) {
31486        return;
31487      }
31488      const moveClass = props.moveClass || `${props.name || "v"}-move`;
31489      if (!hasCSSTransform(
31490        prevChildren[0].el,
31491        instance.vnode.el,
31492        moveClass
31493      )) {
31494        return;
31495      }
31496      prevChildren.forEach(callPendingCbs);
31497      prevChildren.forEach(recordPosition);
31498      const movedChildren = prevChildren.filter(applyTranslation);
31499      forceReflow();
31500      movedChildren.forEach((c) => {
31501        const el = c.el;
31502        const style = el.style;
31503        addTransitionClass(el, moveClass);
31504        style.transform = style.webkitTransform = style.transitionDuration = "";
31505        const cb = el[moveCbKey] = (e) => {
31506          if (e && e.target !== el) {
31507            return;
31508          }
31509          if (!e || /transform$/.test(e.propertyName)) {
31510            el.removeEventListener("transitionend", cb);
31511            el[moveCbKey] = null;
31512            removeTransitionClass(el, moveClass);
31513          }
31514        };
31515        el.addEventListener("transitionend", cb);
31516      });
31517    });
31518    return () => {
31519      const rawProps = Object(_vue_runtime_core__WEBPACK_IMPORTED_MODULE_0__["toRaw"])(props);
31520      const cssTransitionProps = resolveTransitionProps(rawProps);
31521      let tag = rawProps.tag || _vue_runtime_core__WEBPACK_IMPORTED_MODULE_0__["Fragment"];
31522      prevChildren = children;
31523      children = slots.default ? Object(_vue_runtime_core__WEBPACK_IMPORTED_MODULE_0__["getTransitionRawChildren"])(slots.default()) : [];
31524      for (let i = 0; i < children.length; i++) {
31525        const child = children[i];
31526        if (child.key != null) {
31527          Object(_vue_runtime_core__WEBPACK_IMPORTED_MODULE_0__["setTransitionHooks"])(
31528            child,
31529            Object(_vue_runtime_core__WEBPACK_IMPORTED_MODULE_0__["resolveTransitionHooks"])(child, cssTransitionProps, state, instance)
31530          );
31531        } else if (true) {
31532          Object(_vue_runtime_core__WEBPACK_IMPORTED_MODULE_0__["warn"])(`<TransitionGroup> children must be keyed.`);
31533        }
31534      }
31535      if (prevChildren) {
31536        for (let i = 0; i < prevChildren.length; i++) {
31537          const child = prevChildren[i];
31538          Object(_vue_runtime_core__WEBPACK_IMPORTED_MODULE_0__["setTransitionHooks"])(
31539            child,
31540            Object(_vue_runtime_core__WEBPACK_IMPORTED_MODULE_0__["resolveTransitionHooks"])(child, cssTransitionProps, state, instance)
31541          );
31542          positionMap.set(child, child.el.getBoundingClientRect());
31543        }
31544      }
31545      return Object(_vue_runtime_core__WEBPACK_IMPORTED_MODULE_0__["createVNode"])(tag, null, children);
31546    };
31547  }
31548};
31549const removeMode = (props) => delete props.mode;
31550/* @__PURE__ */ removeMode(TransitionGroupImpl.props);
31551const TransitionGroup = TransitionGroupImpl;
31552function callPendingCbs(c) {
31553  const el = c.el;
31554  if (el[moveCbKey]) {
31555    el[moveCbKey]();
31556  }
31557  if (el[enterCbKey]) {
31558    el[enterCbKey]();
31559  }
31560}
31561function recordPosition(c) {
31562  newPositionMap.set(c, c.el.getBoundingClientRect());
31563}
31564function applyTranslation(c) {
31565  const oldPos = positionMap.get(c);
31566  const newPos = newPositionMap.get(c);
31567  const dx = oldPos.left - newPos.left;
31568  const dy = oldPos.top - newPos.top;
31569  if (dx || dy) {
31570    const s = c.el.style;
31571    s.transform = s.webkitTransform = `translate(${dx}px,${dy}px)`;
31572    s.transitionDuration = "0s";
31573    return c;
31574  }
31575}
31576function hasCSSTransform(el, root, moveClass) {
31577  const clone = el.cloneNode();
31578  const _vtc = el[vtcKey];
31579  if (_vtc) {
31580    _vtc.forEach((cls) => {
31581      cls.split(/\s+/).forEach((c) => c && clone.classList.remove(c));
31582    });
31583  }
31584  moveClass.split(/\s+/).forEach((c) => c && clone.classList.add(c));
31585  clone.style.display = "none";
31586  const container = root.nodeType === 1 ? root : root.parentNode;
31587  container.appendChild(clone);
31588  const { hasTransform } = getTransitionInfo(clone);
31589  container.removeChild(clone);
31590  return hasTransform;
31591}
31592
31593const getModelAssigner = (vnode) => {
31594  const fn = vnode.props["onUpdate:modelValue"] || false;
31595  return Object(_vue_shared__WEBPACK_IMPORTED_MODULE_1__["isArray"])(fn) ? (value) => Object(_vue_shared__WEBPACK_IMPORTED_MODULE_1__["invokeArrayFns"])(fn, value) : fn;
31596};
31597function onCompositionStart(e) {
31598  e.target.composing = true;
31599}
31600function onCompositionEnd(e) {
31601  const target = e.target;
31602  if (target.composing) {
31603    target.composing = false;
31604    target.dispatchEvent(new Event("input"));
31605  }
31606}
31607const assignKey = Symbol("_assign");
31608const vModelText = {
31609  created(el, { modifiers: { lazy, trim, number } }, vnode) {
31610    el[assignKey] = getModelAssigner(vnode);
31611    const castToNumber = number || vnode.props && vnode.props.type === "number";
31612    addEventListener(el, lazy ? "change" : "input", (e) => {
31613      if (e.target.composing)
31614        return;
31615      let domValue = el.value;
31616      if (trim) {
31617        domValue = domValue.trim();
31618      }
31619      if (castToNumber) {
31620        domValue = Object(_vue_shared__WEBPACK_IMPORTED_MODULE_1__["looseToNumber"])(domValue);
31621      }
31622      el[assignKey](domValue);
31623    });
31624    if (trim) {
31625      addEventListener(el, "change", () => {
31626        el.value = el.value.trim();
31627      });
31628    }
31629    if (!lazy) {
31630      addEventListener(el, "compositionstart", onCompositionStart);
31631      addEventListener(el, "compositionend", onCompositionEnd);
31632      addEventListener(el, "change", onCompositionEnd);
31633    }
31634  },
31635  // set value on mounted so it's after min/max for type="range"
31636  mounted(el, { value }) {
31637    el.value = value == null ? "" : value;
31638  },
31639  beforeUpdate(el, { value, modifiers: { lazy, trim, number } }, vnode) {
31640    el[assignKey] = getModelAssigner(vnode);
31641    if (el.composing)
31642      return;
31643    const elValue = number || el.type === "number" ? Object(_vue_shared__WEBPACK_IMPORTED_MODULE_1__["looseToNumber"])(el.value) : el.value;
31644    const newValue = value == null ? "" : value;
31645    if (elValue === newValue) {
31646      return;
31647    }
31648    if (document.activeElement === el && el.type !== "range") {
31649      if (lazy) {
31650        return;
31651      }
31652      if (trim && el.value.trim() === newValue) {
31653        return;
31654      }
31655    }
31656    el.value = newValue;
31657  }
31658};
31659const vModelCheckbox = {
31660  // #4096 array checkboxes need to be deep traversed
31661  deep: true,
31662  created(el, _, vnode) {
31663    el[assignKey] = getModelAssigner(vnode);
31664    addEventListener(el, "change", () => {
31665      const modelValue = el._modelValue;
31666      const elementValue = getValue(el);
31667      const checked = el.checked;
31668      const assign = el[assignKey];
31669      if (Object(_vue_shared__WEBPACK_IMPORTED_MODULE_1__["isArray"])(modelValue)) {
31670        const index = Object(_vue_shared__WEBPACK_IMPORTED_MODULE_1__["looseIndexOf"])(modelValue, elementValue);
31671        const found = index !== -1;
31672        if (checked && !found) {
31673          assign(modelValue.concat(elementValue));
31674        } else if (!checked && found) {
31675          const filtered = [...modelValue];
31676          filtered.splice(index, 1);
31677          assign(filtered);
31678        }
31679      } else if (Object(_vue_shared__WEBPACK_IMPORTED_MODULE_1__["isSet"])(modelValue)) {
31680        const cloned = new Set(modelValue);
31681        if (checked) {
31682          cloned.add(elementValue);
31683        } else {
31684          cloned.delete(elementValue);
31685        }
31686        assign(cloned);
31687      } else {
31688        assign(getCheckboxValue(el, checked));
31689      }
31690    });
31691  },
31692  // set initial checked on mount to wait for true-value/false-value
31693  mounted: setChecked,
31694  beforeUpdate(el, binding, vnode) {
31695    el[assignKey] = getModelAssigner(vnode);
31696    setChecked(el, binding, vnode);
31697  }
31698};
31699function setChecked(el, { value, oldValue }, vnode) {
31700  el._modelValue = value;
31701  if (Object(_vue_shared__WEBPACK_IMPORTED_MODULE_1__["isArray"])(value)) {
31702    el.checked = Object(_vue_shared__WEBPACK_IMPORTED_MODULE_1__["looseIndexOf"])(value, vnode.props.value) > -1;
31703  } else if (Object(_vue_shared__WEBPACK_IMPORTED_MODULE_1__["isSet"])(value)) {
31704    el.checked = value.has(vnode.props.value);
31705  } else if (value !== oldValue) {
31706    el.checked = Object(_vue_shared__WEBPACK_IMPORTED_MODULE_1__["looseEqual"])(value, getCheckboxValue(el, true));
31707  }
31708}
31709const vModelRadio = {
31710  created(el, { value }, vnode) {
31711    el.checked = Object(_vue_shared__WEBPACK_IMPORTED_MODULE_1__["looseEqual"])(value, vnode.props.value);
31712    el[assignKey] = getModelAssigner(vnode);
31713    addEventListener(el, "change", () => {
31714      el[assignKey](getValue(el));
31715    });
31716  },
31717  beforeUpdate(el, { value, oldValue }, vnode) {
31718    el[assignKey] = getModelAssigner(vnode);
31719    if (value !== oldValue) {
31720      el.checked = Object(_vue_shared__WEBPACK_IMPORTED_MODULE_1__["looseEqual"])(value, vnode.props.value);
31721    }
31722  }
31723};
31724const vModelSelect = {
31725  // <select multiple> value need to be deep traversed
31726  deep: true,
31727  created(el, { value, modifiers: { number } }, vnode) {
31728    const isSetModel = Object(_vue_shared__WEBPACK_IMPORTED_MODULE_1__["isSet"])(value);
31729    addEventListener(el, "change", () => {
31730      const selectedVal = Array.prototype.filter.call(el.options, (o) => o.selected).map(
31731        (o) => number ? Object(_vue_shared__WEBPACK_IMPORTED_MODULE_1__["looseToNumber"])(getValue(o)) : getValue(o)
31732      );
31733      el[assignKey](
31734        el.multiple ? isSetModel ? new Set(selectedVal) : selectedVal : selectedVal[0]
31735      );
31736      el._assigning = true;
31737      Object(_vue_runtime_core__WEBPACK_IMPORTED_MODULE_0__["nextTick"])(() => {
31738        el._assigning = false;
31739      });
31740    });
31741    el[assignKey] = getModelAssigner(vnode);
31742  },
31743  // set value in mounted & updated because <select> relies on its children
31744  // <option>s.
31745  mounted(el, { value, modifiers: { number } }) {
31746    setSelected(el, value, number);
31747  },
31748  beforeUpdate(el, _binding, vnode) {
31749    el[assignKey] = getModelAssigner(vnode);
31750  },
31751  updated(el, { value, modifiers: { number } }) {
31752    if (!el._assigning) {
31753      setSelected(el, value, number);
31754    }
31755  }
31756};
31757function setSelected(el, value, number) {
31758  const isMultiple = el.multiple;
31759  const isArrayValue = Object(_vue_shared__WEBPACK_IMPORTED_MODULE_1__["isArray"])(value);
31760  if (isMultiple && !isArrayValue && !Object(_vue_shared__WEBPACK_IMPORTED_MODULE_1__["isSet"])(value)) {
31761     true && Object(_vue_runtime_core__WEBPACK_IMPORTED_MODULE_0__["warn"])(
31762      `<select multiple v-model> expects an Array or Set value for its binding, but got ${Object.prototype.toString.call(value).slice(8, -1)}.`
31763    );
31764    return;
31765  }
31766  for (let i = 0, l = el.options.length; i < l; i++) {
31767    const option = el.options[i];
31768    const optionValue = getValue(option);
31769    if (isMultiple) {
31770      if (isArrayValue) {
31771        const optionType = typeof optionValue;
31772        if (optionType === "string" || optionType === "number") {
31773          option.selected = value.includes(
31774            number ? Object(_vue_shared__WEBPACK_IMPORTED_MODULE_1__["looseToNumber"])(optionValue) : optionValue
31775          );
31776        } else {
31777          option.selected = Object(_vue_shared__WEBPACK_IMPORTED_MODULE_1__["looseIndexOf"])(value, optionValue) > -1;
31778        }
31779      } else {
31780        option.selected = value.has(optionValue);
31781      }
31782    } else if (Object(_vue_shared__WEBPACK_IMPORTED_MODULE_1__["looseEqual"])(getValue(option), value)) {
31783      if (el.selectedIndex !== i)
31784        el.selectedIndex = i;
31785      return;
31786    }
31787  }
31788  if (!isMultiple && el.selectedIndex !== -1) {
31789    el.selectedIndex = -1;
31790  }
31791}
31792function getValue(el) {
31793  return "_value" in el ? el._value : el.value;
31794}
31795function getCheckboxValue(el, checked) {
31796  const key = checked ? "_trueValue" : "_falseValue";
31797  return key in el ? el[key] : checked;
31798}
31799const vModelDynamic = {
31800  created(el, binding, vnode) {
31801    callModelHook(el, binding, vnode, null, "created");
31802  },
31803  mounted(el, binding, vnode) {
31804    callModelHook(el, binding, vnode, null, "mounted");
31805  },
31806  beforeUpdate(el, binding, vnode, prevVNode) {
31807    callModelHook(el, binding, vnode, prevVNode, "beforeUpdate");
31808  },
31809  updated(el, binding, vnode, prevVNode) {
31810    callModelHook(el, binding, vnode, prevVNode, "updated");
31811  }
31812};
31813function resolveDynamicModel(tagName, type) {
31814  switch (tagName) {
31815    case "SELECT":
31816      return vModelSelect;
31817    case "TEXTAREA":
31818      return vModelText;
31819    default:
31820      switch (type) {
31821        case "checkbox":
31822          return vModelCheckbox;
31823        case "radio":
31824          return vModelRadio;
31825        default:
31826          return vModelText;
31827      }
31828  }
31829}
31830function callModelHook(el, binding, vnode, prevVNode, hook) {
31831  const modelToUse = resolveDynamicModel(
31832    el.tagName,
31833    vnode.props && vnode.props.type
31834  );
31835  const fn = modelToUse[hook];
31836  fn && fn(el, binding, vnode, prevVNode);
31837}
31838function initVModelForSSR() {
31839  vModelText.getSSRProps = ({ value }) => ({ value });
31840  vModelRadio.getSSRProps = ({ value }, vnode) => {
31841    if (vnode.props && Object(_vue_shared__WEBPACK_IMPORTED_MODULE_1__["looseEqual"])(vnode.props.value, value)) {
31842      return { checked: true };
31843    }
31844  };
31845  vModelCheckbox.getSSRProps = ({ value }, vnode) => {
31846    if (Object(_vue_shared__WEBPACK_IMPORTED_MODULE_1__["isArray"])(value)) {
31847      if (vnode.props && Object(_vue_shared__WEBPACK_IMPORTED_MODULE_1__["looseIndexOf"])(value, vnode.props.value) > -1) {
31848        return { checked: true };
31849      }
31850    } else if (Object(_vue_shared__WEBPACK_IMPORTED_MODULE_1__["isSet"])(value)) {
31851      if (vnode.props && value.has(vnode.props.value)) {
31852        return { checked: true };
31853      }
31854    } else if (value) {
31855      return { checked: true };
31856    }
31857  };
31858  vModelDynamic.getSSRProps = (binding, vnode) => {
31859    if (typeof vnode.type !== "string") {
31860      return;
31861    }
31862    const modelToUse = resolveDynamicModel(
31863      // resolveDynamicModel expects an uppercase tag name, but vnode.type is lowercase
31864      vnode.type.toUpperCase(),
31865      vnode.props && vnode.props.type
31866    );
31867    if (modelToUse.getSSRProps) {
31868      return modelToUse.getSSRProps(binding, vnode);
31869    }
31870  };
31871}
31872
31873const systemModifiers = ["ctrl", "shift", "alt", "meta"];
31874const modifierGuards = {
31875  stop: (e) => e.stopPropagation(),
31876  prevent: (e) => e.preventDefault(),
31877  self: (e) => e.target !== e.currentTarget,
31878  ctrl: (e) => !e.ctrlKey,
31879  shift: (e) => !e.shiftKey,
31880  alt: (e) => !e.altKey,
31881  meta: (e) => !e.metaKey,
31882  left: (e) => "button" in e && e.button !== 0,
31883  middle: (e) => "button" in e && e.button !== 1,
31884  right: (e) => "button" in e && e.button !== 2,
31885  exact: (e, modifiers) => systemModifiers.some((m) => e[`${m}Key`] && !modifiers.includes(m))
31886};
31887const withModifiers = (fn, modifiers) => {
31888  const cache = fn._withMods || (fn._withMods = {});
31889  const cacheKey = modifiers.join(".");
31890  return cache[cacheKey] || (cache[cacheKey] = (event, ...args) => {
31891    for (let i = 0; i < modifiers.length; i++) {
31892      const guard = modifierGuards[modifiers[i]];
31893      if (guard && guard(event, modifiers))
31894        return;
31895    }
31896    return fn(event, ...args);
31897  });
31898};
31899const keyNames = {
31900  esc: "escape",
31901  space: " ",
31902  up: "arrow-up",
31903  left: "arrow-left",
31904  right: "arrow-right",
31905  down: "arrow-down",
31906  delete: "backspace"
31907};
31908const withKeys = (fn, modifiers) => {
31909  const cache = fn._withKeys || (fn._withKeys = {});
31910  const cacheKey = modifiers.join(".");
31911  return cache[cacheKey] || (cache[cacheKey] = (event) => {
31912    if (!("key" in event)) {
31913      return;
31914    }
31915    const eventKey = Object(_vue_shared__WEBPACK_IMPORTED_MODULE_1__["hyphenate"])(event.key);
31916    if (modifiers.some((k) => k === eventKey || keyNames[k] === eventKey)) {
31917      return fn(event);
31918    }
31919  });
31920};
31921
31922const rendererOptions = /* @__PURE__ */ Object(_vue_shared__WEBPACK_IMPORTED_MODULE_1__["extend"])({ patchProp }, nodeOps);
31923let renderer;
31924let enabledHydration = false;
31925function ensureRenderer() {
31926  return renderer || (renderer = Object(_vue_runtime_core__WEBPACK_IMPORTED_MODULE_0__["createRenderer"])(rendererOptions));
31927}
31928function ensureHydrationRenderer() {
31929  renderer = enabledHydration ? renderer : Object(_vue_runtime_core__WEBPACK_IMPORTED_MODULE_0__["createHydrationRenderer"])(rendererOptions);
31930  enabledHydration = true;
31931  return renderer;
31932}
31933const render = (...args) => {
31934  ensureRenderer().render(...args);
31935};
31936const hydrate = (...args) => {
31937  ensureHydrationRenderer().hydrate(...args);
31938};
31939const createApp = (...args) => {
31940  const app = ensureRenderer().createApp(...args);
31941  if (true) {
31942    injectNativeTagCheck(app);
31943    injectCompilerOptionsCheck(app);
31944  }
31945  const { mount } = app;
31946  app.mount = (containerOrSelector) => {
31947    const container = normalizeContainer(containerOrSelector);
31948    if (!container)
31949      return;
31950    const component = app._component;
31951    if (!Object(_vue_shared__WEBPACK_IMPORTED_MODULE_1__["isFunction"])(component) && !component.render && !component.template) {
31952      component.template = container.innerHTML;
31953    }
31954    container.innerHTML = "";
31955    const proxy = mount(container, false, resolveRootNamespace(container));
31956    if (container instanceof Element) {
31957      container.removeAttribute("v-cloak");
31958      container.setAttribute("data-v-app", "");
31959    }
31960    return proxy;
31961  };
31962  return app;
31963};
31964const createSSRApp = (...args) => {
31965  const app = ensureHydrationRenderer().createApp(...args);
31966  if (true) {
31967    injectNativeTagCheck(app);
31968    injectCompilerOptionsCheck(app);
31969  }
31970  const { mount } = app;
31971  app.mount = (containerOrSelector) => {
31972    const container = normalizeContainer(containerOrSelector);
31973    if (container) {
31974      return mount(container, true, resolveRootNamespace(container));
31975    }
31976  };
31977  return app;
31978};
31979function resolveRootNamespace(container) {
31980  if (container instanceof SVGElement) {
31981    return "svg";
31982  }
31983  if (typeof MathMLElement === "function" && container instanceof MathMLElement) {
31984    return "mathml";
31985  }
31986}
31987function injectNativeTagCheck(app) {
31988  Object.defineProperty(app.config, "isNativeTag", {
31989    value: (tag) => Object(_vue_shared__WEBPACK_IMPORTED_MODULE_1__["isHTMLTag"])(tag) || Object(_vue_shared__WEBPACK_IMPORTED_MODULE_1__["isSVGTag"])(tag) || Object(_vue_shared__WEBPACK_IMPORTED_MODULE_1__["isMathMLTag"])(tag),
31990    writable: false
31991  });
31992}
31993function injectCompilerOptionsCheck(app) {
31994  if (Object(_vue_runtime_core__WEBPACK_IMPORTED_MODULE_0__["isRuntimeOnly"])()) {
31995    const isCustomElement = app.config.isCustomElement;
31996    Object.defineProperty(app.config, "isCustomElement", {
31997      get() {
31998        return isCustomElement;
31999      },
32000      set() {
32001        Object(_vue_runtime_core__WEBPACK_IMPORTED_MODULE_0__["warn"])(
32002          `The \`isCustomElement\` config option is deprecated. Use \`compilerOptions.isCustomElement\` instead.`
32003        );
32004      }
32005    });
32006    const compilerOptions = app.config.compilerOptions;
32007    const msg = `The \`compilerOptions\` config option is only respected when using a build of Vue.js that includes the runtime compiler (aka "full build"). Since you are using the runtime-only build, \`compilerOptions\` must be passed to \`@vue/compiler-dom\` in the build setup instead.
32008- For vue-loader: pass it via vue-loader's \`compilerOptions\` loader option.
32009- For vue-cli: see https://cli.vuejs.org/guide/webpack.html#modifying-options-of-a-loader
32010- For vite: pass it via @vitejs/plugin-vue options. See https://github.com/vitejs/vite-plugin-vue/tree/main/packages/plugin-vue#example-for-passing-options-to-vuecompiler-sfc`;
32011    Object.defineProperty(app.config, "compilerOptions", {
32012      get() {
32013        Object(_vue_runtime_core__WEBPACK_IMPORTED_MODULE_0__["warn"])(msg);
32014        return compilerOptions;
32015      },
32016      set() {
32017        Object(_vue_runtime_core__WEBPACK_IMPORTED_MODULE_0__["warn"])(msg);
32018      }
32019    });
32020  }
32021}
32022function normalizeContainer(container) {
32023  if (Object(_vue_shared__WEBPACK_IMPORTED_MODULE_1__["isString"])(container)) {
32024    const res = document.querySelector(container);
32025    if ( true && !res) {
32026      Object(_vue_runtime_core__WEBPACK_IMPORTED_MODULE_0__["warn"])(
32027        `Failed to mount app: mount target selector "${container}" returned null.`
32028      );
32029    }
32030    return res;
32031  }
32032  if ( true && window.ShadowRoot && container instanceof window.ShadowRoot && container.mode === "closed") {
32033    Object(_vue_runtime_core__WEBPACK_IMPORTED_MODULE_0__["warn"])(
32034      `mounting on a ShadowRoot with \`{mode: "closed"}\` may lead to unpredictable bugs`
32035    );
32036  }
32037  return container;
32038}
32039let ssrDirectiveInitialized = false;
32040const initDirectivesForSSR = () => {
32041  if (!ssrDirectiveInitialized) {
32042    ssrDirectiveInitialized = true;
32043    initVModelForSSR();
32044    initVShowForSSR();
32045  }
32046} ;
32047
32048
32049
32050
32051/***/ }),
32052
vendor: 29,923 bytes, lines 32053-32624
32053/***/ "./node_modules/@vue/shared/dist/shared.esm-bundler.js":
32054/*!*************************************************************!*\
32055  !*** ./node_modules/@vue/shared/dist/shared.esm-bundler.js ***!
32056  \*************************************************************/
32057/*! exports provided: EMPTY_ARR, EMPTY_OBJ, NO, NOOP, PatchFlagNames, PatchFlags, ShapeFlags, SlotFlags, camelize, capitalize, def, escapeHtml, escapeHtmlComment, extend, genPropsAccessExp, generateCodeFrame, getGlobalThis, hasChanged, hasOwn, hyphenate, includeBooleanAttr, invokeArrayFns, isArray, isBooleanAttr, isBuiltInDirective, isDate, isFunction, isGloballyAllowed, isGloballyWhitelisted, isHTMLTag, isIntegerKey, isKnownHtmlAttr, isKnownSvgAttr, isMap, isMathMLTag, isModelListener, isObject, isOn, isPlainObject, isPromise, isRegExp, isRenderableAttrValue, isReservedProp, isSSRSafeAttrName, isSVGTag, isSet, isSpecialBooleanAttr, isString, isSymbol, isVoidTag, looseEqual, looseIndexOf, looseToNumber, makeMap, normalizeClass, normalizeProps, normalizeStyle, objectToString, parseStringStyle, propsToAttrMap, remove, slotFlagsText, stringifyStyle, toDisplayString, toHandlerKey, toNumber, toRawType, toTypeString */
32058/***/ (function(module, __webpack_exports__, __webpack_require__) {
32059
32060"use strict";
32061__webpack_require__.r(__webpack_exports__);
32062/* WEBPACK VAR INJECTION */(function(global) {/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "EMPTY_ARR", function() { return EMPTY_ARR; });
32063/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "EMPTY_OBJ", function() { return EMPTY_OBJ; });
32064/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "NO", function() { return NO; });
32065/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "NOOP", function() { return NOOP; });
32066/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "PatchFlagNames", function() { return PatchFlagNames; });
32067/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "PatchFlags", function() { return PatchFlags; });
32068/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "ShapeFlags", function() { return ShapeFlags; });
32069/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "SlotFlags", function() { return SlotFlags; });
32070/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "camelize", function() { return camelize; });
32071/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "capitalize", function() { return capitalize; });
32072/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "def", function() { return def; });
32073/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "escapeHtml", function() { return escapeHtml; });
32074/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "escapeHtmlComment", function() { return escapeHtmlComment; });
32075/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "extend", function() { return extend; });
32076/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "genPropsAccessExp", function() { return genPropsAccessExp; });
32077/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "generateCodeFrame", function() { return generateCodeFrame; });
32078/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getGlobalThis", function() { return getGlobalThis; });
32079/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "hasChanged", function() { return hasChanged; });
32080/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "hasOwn", function() { return hasOwn; });
32081/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "hyphenate", function() { return hyphenate; });
32082/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "includeBooleanAttr", function() { return includeBooleanAttr; });
32083/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "invokeArrayFns", function() { return invokeArrayFns; });
32084/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "isArray", function() { return isArray; });
32085/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "isBooleanAttr", function() { return isBooleanAttr; });
32086/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "isBuiltInDirective", function() { return isBuiltInDirective; });
32087/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "isDate", function() { return isDate; });
32088/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "isFunction", function() { return isFunction; });
32089/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "isGloballyAllowed", function() { return isGloballyAllowed; });
32090/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "isGloballyWhitelisted", function() { return isGloballyWhitelisted; });
32091/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "isHTMLTag", function() { return isHTMLTag; });
32092/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "isIntegerKey", function() { return isIntegerKey; });
32093/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "isKnownHtmlAttr", function() { return isKnownHtmlAttr; });
32094/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "isKnownSvgAttr", function() { return isKnownSvgAttr; });
32095/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "isMap", function() { return isMap; });
32096/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "isMathMLTag", function() { return isMathMLTag; });
32097/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "isModelListener", function() { return isModelListener; });
32098/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "isObject", function() { return isObject; });
32099/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "isOn", function() { return isOn; });
32100/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "isPlainObject", function() { return isPlainObject; });
32101/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "isPromise", function() { return isPromise; });
32102/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "isRegExp", function() { return isRegExp; });
32103/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "isRenderableAttrValue", function() { return isRenderableAttrValue; });
32104/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "isReservedProp", function() { return isReservedProp; });
32105/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "isSSRSafeAttrName", function() { return isSSRSafeAttrName; });
32106/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "isSVGTag", function() { return isSVGTag; });
32107/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "isSet", function() { return isSet; });
32108/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "isSpecialBooleanAttr", function() { return isSpecialBooleanAttr; });
32109/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "isString", function() { return isString; });
32110/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "isSymbol", function() { return isSymbol; });
32111/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "isVoidTag", function() { return isVoidTag; });
32112/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "looseEqual", function() { return looseEqual; });
32113/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "looseIndexOf", function() { return looseIndexOf; });
32114/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "looseToNumber", function() { return looseToNumber; });
32115/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "makeMap", function() { return makeMap; });
32116/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "normalizeClass", function() { return normalizeClass; });
32117/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "normalizeProps", function() { return normalizeProps; });
32118/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "normalizeStyle", function() { return normalizeStyle; });
32119/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "objectToString", function() { return objectToString; });
32120/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "parseStringStyle", function() { return parseStringStyle; });
32121/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "propsToAttrMap", function() { return propsToAttrMap; });
32122/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "remove", function() { return remove; });
32123/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "slotFlagsText", function() { return slotFlagsText; });
32124/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "stringifyStyle", function() { return stringifyStyle; });
32125/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "toDisplayString", function() { return toDisplayString; });
32126/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "toHandlerKey", function() { return toHandlerKey; });
32127/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "toNumber", function() { return toNumber; });
32128/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "toRawType", function() { return toRawType; });
32129/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "toTypeString", function() { return toTypeString; });
32130/**
32131* @vue/shared v3.4.21
32132* (c) 2018-present Yuxi (Evan) You and Vue contributors
32133* @license MIT
32134**/
32135function makeMap(str, expectsLowerCase) {
32136  const set = new Set(str.split(","));
32137  return expectsLowerCase ? (val) => set.has(val.toLowerCase()) : (val) => set.has(val);
32138}
32139
32140const EMPTY_OBJ =  true ? Object.freeze({}) : undefined;
32141const EMPTY_ARR =  true ? Object.freeze([]) : undefined;
32142const NOOP = () => {
32143};
32144const NO = () => false;
32145const isOn = (key) => key.charCodeAt(0) === 111 && key.charCodeAt(1) === 110 && // uppercase letter
32146(key.charCodeAt(2) > 122 || key.charCodeAt(2) < 97);
32147const isModelListener = (key) => key.startsWith("onUpdate:");
32148const extend = Object.assign;
32149const remove = (arr, el) => {
32150  const i = arr.indexOf(el);
32151  if (i > -1) {
32152    arr.splice(i, 1);
32153  }
32154};
32155const hasOwnProperty = Object.prototype.hasOwnProperty;
32156const hasOwn = (val, key) => hasOwnProperty.call(val, key);
32157const isArray = Array.isArray;
32158const isMap = (val) => toTypeString(val) === "[object Map]";
32159const isSet = (val) => toTypeString(val) === "[object Set]";
32160const isDate = (val) => toTypeString(val) === "[object Date]";
32161const isRegExp = (val) => toTypeString(val) === "[object RegExp]";
32162const isFunction = (val) => typeof val === "function";
32163const isString = (val) => typeof val === "string";
32164const isSymbol = (val) => typeof val === "symbol";
32165const isObject = (val) => val !== null && typeof val === "object";
32166const isPromise = (val) => {
32167  return (isObject(val) || isFunction(val)) && isFunction(val.then) && isFunction(val.catch);
32168};
32169const objectToString = Object.prototype.toString;
32170const toTypeString = (value) => objectToString.call(value);
32171const toRawType = (value) => {
32172  return toTypeString(value).slice(8, -1);
32173};
32174const isPlainObject = (val) => toTypeString(val) === "[object Object]";
32175const isIntegerKey = (key) => isString(key) && key !== "NaN" && key[0] !== "-" && "" + parseInt(key, 10) === key;
32176const isReservedProp = /* @__PURE__ */ makeMap(
32177  // the leading comma is intentional so empty string "" is also included
32178  ",key,ref,ref_for,ref_key,onVnodeBeforeMount,onVnodeMounted,onVnodeBeforeUpdate,onVnodeUpdated,onVnodeBeforeUnmount,onVnodeUnmounted"
32179);
32180const isBuiltInDirective = /* @__PURE__ */ makeMap(
32181  "bind,cloak,else-if,else,for,html,if,model,on,once,pre,show,slot,text,memo"
32182);
32183const cacheStringFunction = (fn) => {
32184  const cache = /* @__PURE__ */ Object.create(null);
32185  return (str) => {
32186    const hit = cache[str];
32187    return hit || (cache[str] = fn(str));
32188  };
32189};
32190const camelizeRE = /-(\w)/g;
32191const camelize = cacheStringFunction((str) => {
32192  return str.replace(camelizeRE, (_, c) => c ? c.toUpperCase() : "");
32193});
32194const hyphenateRE = /\B([A-Z])/g;
32195const hyphenate = cacheStringFunction(
32196  (str) => str.replace(hyphenateRE, "-$1").toLowerCase()
32197);
32198const capitalize = cacheStringFunction((str) => {
32199  return str.charAt(0).toUpperCase() + str.slice(1);
32200});
32201const toHandlerKey = cacheStringFunction((str) => {
32202  const s = str ? `on${capitalize(str)}` : ``;
32203  return s;
32204});
32205const hasChanged = (value, oldValue) => !Object.is(value, oldValue);
32206const invokeArrayFns = (fns, arg) => {
32207  for (let i = 0; i < fns.length; i++) {
32208    fns[i](arg);
32209  }
32210};
32211const def = (obj, key, value) => {
32212  Object.defineProperty(obj, key, {
32213    configurable: true,
32214    enumerable: false,
32215    value
32216  });
32217};
32218const looseToNumber = (val) => {
32219  const n = parseFloat(val);
32220  return isNaN(n) ? val : n;
32221};
32222const toNumber = (val) => {
32223  const n = isString(val) ? Number(val) : NaN;
32224  return isNaN(n) ? val : n;
32225};
32226let _globalThis;
32227const getGlobalThis = () => {
32228  return _globalThis || (_globalThis = typeof globalThis !== "undefined" ? globalThis : typeof self !== "undefined" ? self : typeof window !== "undefined" ? window : typeof global !== "undefined" ? global : {});
32229};
32230const identRE = /^[_$a-zA-Z\xA0-\uFFFF][_$a-zA-Z0-9\xA0-\uFFFF]*$/;
32231function genPropsAccessExp(name) {
32232  return identRE.test(name) ? `__props.${name}` : `__props[${JSON.stringify(name)}]`;
32233}
32234
32235const PatchFlags = {
32236  "TEXT": 1,
32237  "1": "TEXT",
32238  "CLASS": 2,
32239  "2": "CLASS",
32240  "STYLE": 4,
32241  "4": "STYLE",
32242  "PROPS": 8,
32243  "8": "PROPS",
32244  "FULL_PROPS": 16,
32245  "16": "FULL_PROPS",
32246  "NEED_HYDRATION": 32,
32247  "32": "NEED_HYDRATION",
32248  "STABLE_FRAGMENT": 64,
32249  "64": "STABLE_FRAGMENT",
32250  "KEYED_FRAGMENT": 128,
32251  "128": "KEYED_FRAGMENT",
32252  "UNKEYED_FRAGMENT": 256,
32253  "256": "UNKEYED_FRAGMENT",
32254  "NEED_PATCH": 512,
32255  "512": "NEED_PATCH",
32256  "DYNAMIC_SLOTS": 1024,
32257  "1024": "DYNAMIC_SLOTS",
32258  "DEV_ROOT_FRAGMENT": 2048,
32259  "2048": "DEV_ROOT_FRAGMENT",
32260  "HOISTED": -1,
32261  "-1": "HOISTED",
32262  "BAIL": -2,
32263  "-2": "BAIL"
32264};
32265const PatchFlagNames = {
32266  [1]: `TEXT`,
32267  [2]: `CLASS`,
32268  [4]: `STYLE`,
32269  [8]: `PROPS`,
32270  [16]: `FULL_PROPS`,
32271  [32]: `NEED_HYDRATION`,
32272  [64]: `STABLE_FRAGMENT`,
32273  [128]: `KEYED_FRAGMENT`,
32274  [256]: `UNKEYED_FRAGMENT`,
32275  [512]: `NEED_PATCH`,
32276  [1024]: `DYNAMIC_SLOTS`,
32277  [2048]: `DEV_ROOT_FRAGMENT`,
32278  [-1]: `HOISTED`,
32279  [-2]: `BAIL`
32280};
32281
32282const ShapeFlags = {
32283  "ELEMENT": 1,
32284  "1": "ELEMENT",
32285  "FUNCTIONAL_COMPONENT": 2,
32286  "2": "FUNCTIONAL_COMPONENT",
32287  "STATEFUL_COMPONENT": 4,
32288  "4": "STATEFUL_COMPONENT",
32289  "TEXT_CHILDREN": 8,
32290  "8": "TEXT_CHILDREN",
32291  "ARRAY_CHILDREN": 16,
32292  "16": "ARRAY_CHILDREN",
32293  "SLOTS_CHILDREN": 32,
32294  "32": "SLOTS_CHILDREN",
32295  "TELEPORT": 64,
32296  "64": "TELEPORT",
32297  "SUSPENSE": 128,
32298  "128": "SUSPENSE",
32299  "COMPONENT_SHOULD_KEEP_ALIVE": 256,
32300  "256": "COMPONENT_SHOULD_KEEP_ALIVE",
32301  "COMPONENT_KEPT_ALIVE": 512,
32302  "512": "COMPONENT_KEPT_ALIVE",
32303  "COMPONENT": 6,
32304  "6": "COMPONENT"
32305};
32306
32307const SlotFlags = {
32308  "STABLE": 1,
32309  "1": "STABLE",
32310  "DYNAMIC": 2,
32311  "2": "DYNAMIC",
32312  "FORWARDED": 3,
32313  "3": "FORWARDED"
32314};
32315const slotFlagsText = {
32316  [1]: "STABLE",
32317  [2]: "DYNAMIC",
32318  [3]: "FORWARDED"
32319};
32320
32321const GLOBALS_ALLOWED = "Infinity,undefined,NaN,isFinite,isNaN,parseFloat,parseInt,decodeURI,decodeURIComponent,encodeURI,encodeURIComponent,Math,Number,Date,Array,Object,Boolean,String,RegExp,Map,Set,JSON,Intl,BigInt,console,Error";
32322const isGloballyAllowed = /* @__PURE__ */ makeMap(GLOBALS_ALLOWED);
32323const isGloballyWhitelisted = isGloballyAllowed;
32324
32325const range = 2;
32326function generateCodeFrame(source, start = 0, end = source.length) {
32327  let lines = source.split(/(\r?\n)/);
32328  const newlineSequences = lines.filter((_, idx) => idx % 2 === 1);
32329  lines = lines.filter((_, idx) => idx % 2 === 0);
32330  let count = 0;
32331  const res = [];
32332  for (let i = 0; i < lines.length; i++) {
32333    count += lines[i].length + (newlineSequences[i] && newlineSequences[i].length || 0);
32334    if (count >= start) {
32335      for (let j = i - range; j <= i + range || end > count; j++) {
32336        if (j < 0 || j >= lines.length)
32337          continue;
32338        const line = j + 1;
32339        res.push(
32340          `${line}${" ".repeat(Math.max(3 - String(line).length, 0))}|  ${lines[j]}`
32341        );
32342        const lineLength = lines[j].length;
32343        const newLineSeqLength = newlineSequences[j] && newlineSequences[j].length || 0;
32344        if (j === i) {
32345          const pad = start - (count - (lineLength + newLineSeqLength));
32346          const length = Math.max(
32347            1,
32348            end > count ? lineLength - pad : end - start
32349          );
32350          res.push(`   |  ` + " ".repeat(pad) + "^".repeat(length));
32351        } else if (j > i) {
32352          if (end > count) {
32353            const length = Math.max(Math.min(end - count, lineLength), 1);
32354            res.push(`   |  ` + "^".repeat(length));
32355          }
32356          count += lineLength + newLineSeqLength;
32357        }
32358      }
32359      break;
32360    }
32361  }
32362  return res.join("\n");
32363}
32364
32365function normalizeStyle(value) {
32366  if (isArray(value)) {
32367    const res = {};
32368    for (let i = 0; i < value.length; i++) {
32369      const item = value[i];
32370      const normalized = isString(item) ? parseStringStyle(item) : normalizeStyle(item);
32371      if (normalized) {
32372        for (const key in normalized) {
32373          res[key] = normalized[key];
32374        }
32375      }
32376    }
32377    return res;
32378  } else if (isString(value) || isObject(value)) {
32379    return value;
32380  }
32381}
32382const listDelimiterRE = /;(?![^(]*\))/g;
32383const propertyDelimiterRE = /:([^]+)/;
32384const styleCommentRE = /\/\*[^]*?\*\//g;
32385function parseStringStyle(cssText) {
32386  const ret = {};
32387  cssText.replace(styleCommentRE, "").split(listDelimiterRE).forEach((item) => {
32388    if (item) {
32389      const tmp = item.split(propertyDelimiterRE);
32390      tmp.length > 1 && (ret[tmp[0].trim()] = tmp[1].trim());
32391    }
32392  });
32393  return ret;
32394}
32395function stringifyStyle(styles) {
32396  let ret = "";
32397  if (!styles || isString(styles)) {
32398    return ret;
32399  }
32400  for (const key in styles) {
32401    const value = styles[key];
32402    const normalizedKey = key.startsWith(`--`) ? key : hyphenate(key);
32403    if (isString(value) || typeof value === "number") {
32404      ret += `${normalizedKey}:${value};`;
32405    }
32406  }
32407  return ret;
32408}
32409function normalizeClass(value) {
32410  let res = "";
32411  if (isString(value)) {
32412    res = value;
32413  } else if (isArray(value)) {
32414    for (let i = 0; i < value.length; i++) {
32415      const normalized = normalizeClass(value[i]);
32416      if (normalized) {
32417        res += normalized + " ";
32418      }
32419    }
32420  } else if (isObject(value)) {
32421    for (const name in value) {
32422      if (value[name]) {
32423        res += name + " ";
32424      }
32425    }
32426  }
32427  return res.trim();
32428}
32429function normalizeProps(props) {
32430  if (!props)
32431    return null;
32432  let { class: klass, style } = props;
32433  if (klass && !isString(klass)) {
32434    props.class = normalizeClass(klass);
32435  }
32436  if (style) {
32437    props.style = normalizeStyle(style);
32438  }
32439  return props;
32440}
32441
32442const HTML_TAGS = "html,body,base,head,link,meta,style,title,address,article,aside,footer,header,hgroup,h1,h2,h3,h4,h5,h6,nav,section,div,dd,dl,dt,figcaption,figure,picture,hr,img,li,main,ol,p,pre,ul,a,b,abbr,bdi,bdo,br,cite,code,data,dfn,em,i,kbd,mark,q,rp,rt,ruby,s,samp,small,span,strong,sub,sup,time,u,var,wbr,area,audio,map,track,video,embed,object,param,source,canvas,script,noscript,del,ins,caption,col,colgroup,table,thead,tbody,td,th,tr,button,datalist,fieldset,form,input,label,legend,meter,optgroup,option,output,progress,select,textarea,details,dialog,menu,summary,template,blockquote,iframe,tfoot";
32443const SVG_TAGS = "svg,animate,animateMotion,animateTransform,circle,clipPath,color-profile,defs,desc,discard,ellipse,feBlend,feColorMatrix,feComponentTransfer,feComposite,feConvolveMatrix,feDiffuseLighting,feDisplacementMap,feDistantLight,feDropShadow,feFlood,feFuncA,feFuncB,feFuncG,feFuncR,feGaussianBlur,feImage,feMerge,feMergeNode,feMorphology,feOffset,fePointLight,feSpecularLighting,feSpotLight,feTile,feTurbulence,filter,foreignObject,g,hatch,hatchpath,image,line,linearGradient,marker,mask,mesh,meshgradient,meshpatch,meshrow,metadata,mpath,path,pattern,polygon,polyline,radialGradient,rect,set,solidcolor,stop,switch,symbol,text,textPath,title,tspan,unknown,use,view";
32444const MATH_TAGS = "annotation,annotation-xml,maction,maligngroup,malignmark,math,menclose,merror,mfenced,mfrac,mfraction,mglyph,mi,mlabeledtr,mlongdiv,mmultiscripts,mn,mo,mover,mpadded,mphantom,mprescripts,mroot,mrow,ms,mscarries,mscarry,msgroup,msline,mspace,msqrt,msrow,mstack,mstyle,msub,msubsup,msup,mtable,mtd,mtext,mtr,munder,munderover,none,semantics";
32445const VOID_TAGS = "area,base,br,col,embed,hr,img,input,link,meta,param,source,track,wbr";
32446const isHTMLTag = /* @__PURE__ */ makeMap(HTML_TAGS);
32447const isSVGTag = /* @__PURE__ */ makeMap(SVG_TAGS);
32448const isMathMLTag = /* @__PURE__ */ makeMap(MATH_TAGS);
32449const isVoidTag = /* @__PURE__ */ makeMap(VOID_TAGS);
32450
32451const specialBooleanAttrs = `itemscope,allowfullscreen,formnovalidate,ismap,nomodule,novalidate,readonly`;
32452const isSpecialBooleanAttr = /* @__PURE__ */ makeMap(specialBooleanAttrs);
32453const isBooleanAttr = /* @__PURE__ */ makeMap(
32454  specialBooleanAttrs + `,async,autofocus,autoplay,controls,default,defer,disabled,hidden,inert,loop,open,required,reversed,scoped,seamless,checked,muted,multiple,selected`
32455);
32456function includeBooleanAttr(value) {
32457  return !!value || value === "";
32458}
32459const unsafeAttrCharRE = /[>/="'\u0009\u000a\u000c\u0020]/;
32460const attrValidationCache = {};
32461function isSSRSafeAttrName(name) {
32462  if (attrValidationCache.hasOwnProperty(name)) {
32463    return attrValidationCache[name];
32464  }
32465  const isUnsafe = unsafeAttrCharRE.test(name);
32466  if (isUnsafe) {
32467    console.error(`unsafe attribute name: ${name}`);
32468  }
32469  return attrValidationCache[name] = !isUnsafe;
32470}
32471const propsToAttrMap = {
32472  acceptCharset: "accept-charset",
32473  className: "class",
32474  htmlFor: "for",
32475  httpEquiv: "http-equiv"
32476};
32477const isKnownHtmlAttr = /* @__PURE__ */ makeMap(
32478  `accept,accept-charset,accesskey,action,align,allow,alt,async,autocapitalize,autocomplete,autofocus,autoplay,background,bgcolor,border,buffered,capture,challenge,charset,checked,cite,class,code,codebase,color,cols,colspan,content,contenteditable,contextmenu,controls,coords,crossorigin,csp,data,datetime,decoding,default,defer,dir,dirname,disabled,download,draggable,dropzone,enctype,enterkeyhint,for,form,formaction,formenctype,formmethod,formnovalidate,formtarget,headers,height,hidden,high,href,hreflang,http-equiv,icon,id,importance,inert,integrity,ismap,itemprop,keytype,kind,label,lang,language,loading,list,loop,low,manifest,max,maxlength,minlength,media,min,multiple,muted,name,novalidate,open,optimum,pattern,ping,placeholder,poster,preload,radiogroup,readonly,referrerpolicy,rel,required,reversed,rows,rowspan,sandbox,scope,scoped,selected,shape,size,sizes,slot,span,spellcheck,src,srcdoc,srclang,srcset,start,step,style,summary,tabindex,target,title,translate,type,usemap,value,width,wrap`
32479);
32480const isKnownSvgAttr = /* @__PURE__ */ makeMap(
32481  `xmlns,accent-height,accumulate,additive,alignment-baseline,alphabetic,amplitude,arabic-form,ascent,attributeName,attributeType,azimuth,baseFrequency,baseline-shift,baseProfile,bbox,begin,bias,by,calcMode,cap-height,class,clip,clipPathUnits,clip-path,clip-rule,color,color-interpolation,color-interpolation-filters,color-profile,color-rendering,contentScriptType,contentStyleType,crossorigin,cursor,cx,cy,d,decelerate,descent,diffuseConstant,direction,display,divisor,dominant-baseline,dur,dx,dy,edgeMode,elevation,enable-background,end,exponent,fill,fill-opacity,fill-rule,filter,filterRes,filterUnits,flood-color,flood-opacity,font-family,font-size,font-size-adjust,font-stretch,font-style,font-variant,font-weight,format,from,fr,fx,fy,g1,g2,glyph-name,glyph-orientation-horizontal,glyph-orientation-vertical,glyphRef,gradientTransform,gradientUnits,hanging,height,href,hreflang,horiz-adv-x,horiz-origin-x,id,ideographic,image-rendering,in,in2,intercept,k,k1,k2,k3,k4,kernelMatrix,kernelUnitLength,kerning,keyPoints,keySplines,keyTimes,lang,lengthAdjust,letter-spacing,lighting-color,limitingConeAngle,local,marker-end,marker-mid,marker-start,markerHeight,markerUnits,markerWidth,mask,maskContentUnits,maskUnits,mathematical,max,media,method,min,mode,name,numOctaves,offset,opacity,operator,order,orient,orientation,origin,overflow,overline-position,overline-thickness,panose-1,paint-order,path,pathLength,patternContentUnits,patternTransform,patternUnits,ping,pointer-events,points,pointsAtX,pointsAtY,pointsAtZ,preserveAlpha,preserveAspectRatio,primitiveUnits,r,radius,referrerPolicy,refX,refY,rel,rendering-intent,repeatCount,repeatDur,requiredExtensions,requiredFeatures,restart,result,rotate,rx,ry,scale,seed,shape-rendering,slope,spacing,specularConstant,specularExponent,speed,spreadMethod,startOffset,stdDeviation,stemh,stemv,stitchTiles,stop-color,stop-opacity,strikethrough-position,strikethrough-thickness,string,stroke,stroke-dasharray,stroke-dashoffset,stroke-linecap,stroke-linejoin,stroke-miterlimit,stroke-opacity,stroke-width,style,surfaceScale,systemLanguage,tabindex,tableValues,target,targetX,targetY,text-anchor,text-decoration,text-rendering,textLength,to,transform,transform-origin,type,u1,u2,underline-position,underline-thickness,unicode,unicode-bidi,unicode-range,units-per-em,v-alphabetic,v-hanging,v-ideographic,v-mathematical,values,vector-effect,version,vert-adv-y,vert-origin-x,vert-origin-y,viewBox,viewTarget,visibility,width,widths,word-spacing,writing-mode,x,x-height,x1,x2,xChannelSelector,xlink:actuate,xlink:arcrole,xlink:href,xlink:role,xlink:show,xlink:title,xlink:type,xmlns:xlink,xml:base,xml:lang,xml:space,y,y1,y2,yChannelSelector,z,zoomAndPan`
32482);
32483function isRenderableAttrValue(value) {
32484  if (value == null) {
32485    return false;
32486  }
32487  const type = typeof value;
32488  return type === "string" || type === "number" || type === "boolean";
32489}
32490
32491const escapeRE = /["'&<>]/;
32492function escapeHtml(string) {
32493  const str = "" + string;
32494  const match = escapeRE.exec(str);
32495  if (!match) {
32496    return str;
32497  }
32498  let html = "";
32499  let escaped;
32500  let index;
32501  let lastIndex = 0;
32502  for (index = match.index; index < str.length; index++) {
32503    switch (str.charCodeAt(index)) {
32504      case 34:
32505        escaped = "&quot;";
32506        break;
32507      case 38:
32508        escaped = "&amp;";
32509        break;
32510      case 39:
32511        escaped = "&#39;";
32512        break;
32513      case 60:
32514        escaped = "&lt;";
32515        break;
32516      case 62:
32517        escaped = "&gt;";
32518        break;
32519      default:
32520        continue;
32521    }
32522    if (lastIndex !== index) {
32523      html += str.slice(lastIndex, index);
32524    }
32525    lastIndex = index + 1;
32526    html += escaped;
32527  }
32528  return lastIndex !== index ? html + str.slice(lastIndex, index) : html;
32529}
32530const commentStripRE = /^-?>|<!--|-->|--!>|<!-$/g;
32531function escapeHtmlComment(src) {
32532  return src.replace(commentStripRE, "");
32533}
32534
32535function looseCompareArrays(a, b) {
32536  if (a.length !== b.length)
32537    return false;
32538  let equal = true;
32539  for (let i = 0; equal && i < a.length; i++) {
32540    equal = looseEqual(a[i], b[i]);
32541  }
32542  return equal;
32543}
32544function looseEqual(a, b) {
32545  if (a === b)
32546    return true;
32547  let aValidType = isDate(a);
32548  let bValidType = isDate(b);
32549  if (aValidType || bValidType) {
32550    return aValidType && bValidType ? a.getTime() === b.getTime() : false;
32551  }
32552  aValidType = isSymbol(a);
32553  bValidType = isSymbol(b);
32554  if (aValidType || bValidType) {
32555    return a === b;
32556  }
32557  aValidType = isArray(a);
32558  bValidType = isArray(b);
32559  if (aValidType || bValidType) {
32560    return aValidType && bValidType ? looseCompareArrays(a, b) : false;
32561  }
32562  aValidType = isObject(a);
32563  bValidType = isObject(b);
32564  if (aValidType || bValidType) {
32565    if (!aValidType || !bValidType) {
32566      return false;
32567    }
32568    const aKeysCount = Object.keys(a).length;
32569    const bKeysCount = Object.keys(b).length;
32570    if (aKeysCount !== bKeysCount) {
32571      return false;
32572    }
32573    for (const key in a) {
32574      const aHasKey = a.hasOwnProperty(key);
32575      const bHasKey = b.hasOwnProperty(key);
32576      if (aHasKey && !bHasKey || !aHasKey && bHasKey || !looseEqual(a[key], b[key])) {
32577        return false;
32578      }
32579    }
32580  }
32581  return String(a) === String(b);
32582}
32583function looseIndexOf(arr, val) {
32584  return arr.findIndex((item) => looseEqual(item, val));
32585}
32586
32587const toDisplayString = (val) => {
32588  return isString(val) ? val : val == null ? "" : isArray(val) || isObject(val) && (val.toString === objectToString || !isFunction(val.toString)) ? JSON.stringify(val, replacer, 2) : String(val);
32589};
32590const replacer = (_key, val) => {
32591  if (val && val.__v_isRef) {
32592    return replacer(_key, val.value);
32593  } else if (isMap(val)) {
32594    return {
32595      [`Map(${val.size})`]: [...val.entries()].reduce(
32596        (entries, [key, val2], i) => {
32597          entries[stringifySymbol(key, i) + " =>"] = val2;
32598          return entries;
32599        },
32600        {}
32601      )
32602    };
32603  } else if (isSet(val)) {
32604    return {
32605      [`Set(${val.size})`]: [...val.values()].map((v) => stringifySymbol(v))
32606    };
32607  } else if (isSymbol(val)) {
32608    return stringifySymbol(val);
32609  } else if (isObject(val) && !isArray(val) && !isPlainObject(val)) {
32610    return String(val);
32611  }
32612  return val;
32613};
32614const stringifySymbol = (v, i = "") => {
32615  var _a;
32616  return isSymbol(v) ? `Symbol(${(_a = v.description) != null ? _a : i})` : v;
32617};
32618
32619
32620
32621/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./../../../webpack/buildin/global.js */ "./node_modules/webpack/buildin/global.js")))
32622
32623/***/ }),
32624
vendor: 3,247 bytes, lines 32625-32681
32625/***/ "./node_modules/axios/index.js":
32626/*!*************************************!*\
32627  !*** ./node_modules/axios/index.js ***!
32628  \*************************************/
32629/*! exports provided: default, Axios, AxiosError, CanceledError, isCancel, CancelToken, VERSION, all, Cancel, isAxiosError, spread, toFormData, AxiosHeaders, HttpStatusCode, formToJSON, getAdapter, mergeConfig */
32630/***/ (function(module, __webpack_exports__, __webpack_require__) {
32631
32632"use strict";
32633__webpack_require__.r(__webpack_exports__);
32634/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "Axios", function() { return Axios; });
32635/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "AxiosError", function() { return AxiosError; });
32636/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "CanceledError", function() { return CanceledError; });
32637/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "isCancel", function() { return isCancel; });
32638/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "CancelToken", function() { return CancelToken; });
32639/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "VERSION", function() { return VERSION; });
32640/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "all", function() { return all; });
32641/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "Cancel", function() { return Cancel; });
32642/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "isAxiosError", function() { return isAxiosError; });
32643/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "spread", function() { return spread; });
32644/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "toFormData", function() { return toFormData; });
32645/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "AxiosHeaders", function() { return AxiosHeaders; });
32646/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "HttpStatusCode", function() { return HttpStatusCode; });
32647/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "formToJSON", function() { return formToJSON; });
32648/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getAdapter", function() { return getAdapter; });
32649/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "mergeConfig", function() { return mergeConfig; });
32650/* harmony import */ var _lib_axios_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./lib/axios.js */ "./node_modules/axios/lib/axios.js");
32651/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "default", function() { return _lib_axios_js__WEBPACK_IMPORTED_MODULE_0__["default"]; });
32652
32653
32654
32655// This module is intended to unwrap Axios default export as named.
32656// Keep top-level export same with static properties
32657// so that it can keep same with es module or cjs
32658const {
32659  Axios,
32660  AxiosError,
32661  CanceledError,
32662  isCancel,
32663  CancelToken,
32664  VERSION,
32665  all,
32666  Cancel,
32667  isAxiosError,
32668  spread,
32669  toFormData,
32670  AxiosHeaders,
32671  HttpStatusCode,
32672  formToJSON,
32673  getAdapter,
32674  mergeConfig
32675} = _lib_axios_js__WEBPACK_IMPORTED_MODULE_0__["default"];
32676
32677
32678
32679
32680/***/ }),
32681
vendor: 3,125 bytes, lines 32682-32775
32682/***/ "./node_modules/axios/lib/adapters/adapters.js":
32683/*!*****************************************************!*\
32684  !*** ./node_modules/axios/lib/adapters/adapters.js ***!
32685  \*****************************************************/
32686/*! exports provided: default */
32687/***/ (function(module, __webpack_exports__, __webpack_require__) {
32688
32689"use strict";
32690__webpack_require__.r(__webpack_exports__);
32691/* harmony import */ var _utils_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../utils.js */ "./node_modules/axios/lib/utils.js");
32692/* harmony import */ var _http_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./http.js */ "./node_modules/axios/lib/helpers/null.js");
32693/* harmony import */ var _xhr_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./xhr.js */ "./node_modules/axios/lib/adapters/xhr.js");
32694/* harmony import */ var _core_AxiosError_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../core/AxiosError.js */ "./node_modules/axios/lib/core/AxiosError.js");
32695
32696
32697
32698
32699
32700const knownAdapters = {
32701  http: _http_js__WEBPACK_IMPORTED_MODULE_1__["default"],
32702  xhr: _xhr_js__WEBPACK_IMPORTED_MODULE_2__["default"]
32703}
32704
32705_utils_js__WEBPACK_IMPORTED_MODULE_0__["default"].forEach(knownAdapters, (fn, value) => {
32706  if (fn) {
32707    try {
32708      Object.defineProperty(fn, 'name', {value});
32709    } catch (e) {
32710      // eslint-disable-next-line no-empty
32711    }
32712    Object.defineProperty(fn, 'adapterName', {value});
32713  }
32714});
32715
32716const renderReason = (reason) => `- ${reason}`;
32717
32718const isResolvedHandle = (adapter) => _utils_js__WEBPACK_IMPORTED_MODULE_0__["default"].isFunction(adapter) || adapter === null || adapter === false;
32719
32720/* harmony default export */ __webpack_exports__["default"] = ({
32721  getAdapter: (adapters) => {
32722    adapters = _utils_js__WEBPACK_IMPORTED_MODULE_0__["default"].isArray(adapters) ? adapters : [adapters];
32723
32724    const {length} = adapters;
32725    let nameOrAdapter;
32726    let adapter;
32727
32728    const rejectedReasons = {};
32729
32730    for (let i = 0; i < length; i++) {
32731      nameOrAdapter = adapters[i];
32732      let id;
32733
32734      adapter = nameOrAdapter;
32735
32736      if (!isResolvedHandle(nameOrAdapter)) {
32737        adapter = knownAdapters[(id = String(nameOrAdapter)).toLowerCase()];
32738
32739        if (adapter === undefined) {
32740          throw new _core_AxiosError_js__WEBPACK_IMPORTED_MODULE_3__["default"](`Unknown adapter '${id}'`);
32741        }
32742      }
32743
32744      if (adapter) {
32745        break;
32746      }
32747
32748      rejectedReasons[id || '#' + i] = adapter;
32749    }
32750
32751    if (!adapter) {
32752
32753      const reasons = Object.entries(rejectedReasons)
32754        .map(([id, state]) => `adapter ${id} ` +
32755          (state === false ? 'is not supported by the environment' : 'is not available in the build')
32756        );
32757
32758      let s = length ?
32759        (reasons.length > 1 ? 'since :\n' + reasons.map(renderReason).join('\n') : ' ' + renderReason(reasons[0])) :
32760        'as no adapter specified';
32761
32762      throw new _core_AxiosError_js__WEBPACK_IMPORTED_MODULE_3__["default"](
32763        `There is no suitable adapter to dispatch the request ` + s,
32764        'ERR_NOT_SUPPORT'
32765      );
32766    }
32767
32768    return adapter;
32769  },
32770  adapters: knownAdapters
32771});
32772
32773
32774/***/ }),
32775
vendor: 12,357 bytes, lines 32776-33061
32776/***/ "./node_modules/axios/lib/adapters/xhr.js":
32777/*!************************************************!*\
32778  !*** ./node_modules/axios/lib/adapters/xhr.js ***!
32779  \************************************************/
32780/*! exports provided: default */
32781/***/ (function(module, __webpack_exports__, __webpack_require__) {
32782
32783"use strict";
32784__webpack_require__.r(__webpack_exports__);
32785/* harmony import */ var _utils_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./../utils.js */ "./node_modules/axios/lib/utils.js");
32786/* harmony import */ var _core_settle_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./../core/settle.js */ "./node_modules/axios/lib/core/settle.js");
32787/* harmony import */ var _helpers_cookies_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./../helpers/cookies.js */ "./node_modules/axios/lib/helpers/cookies.js");
32788/* harmony import */ var _helpers_buildURL_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./../helpers/buildURL.js */ "./node_modules/axios/lib/helpers/buildURL.js");
32789/* harmony import */ var _core_buildFullPath_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../core/buildFullPath.js */ "./node_modules/axios/lib/core/buildFullPath.js");
32790/* harmony import */ var _helpers_isURLSameOrigin_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./../helpers/isURLSameOrigin.js */ "./node_modules/axios/lib/helpers/isURLSameOrigin.js");
32791/* harmony import */ var _defaults_transitional_js__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../defaults/transitional.js */ "./node_modules/axios/lib/defaults/transitional.js");
32792/* harmony import */ var _core_AxiosError_js__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../core/AxiosError.js */ "./node_modules/axios/lib/core/AxiosError.js");
32793/* harmony import */ var _cancel_CanceledError_js__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ../cancel/CanceledError.js */ "./node_modules/axios/lib/cancel/CanceledError.js");
32794/* harmony import */ var _helpers_parseProtocol_js__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ../helpers/parseProtocol.js */ "./node_modules/axios/lib/helpers/parseProtocol.js");
32795/* harmony import */ var _platform_index_js__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ../platform/index.js */ "./node_modules/axios/lib/platform/index.js");
32796/* harmony import */ var _core_AxiosHeaders_js__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ../core/AxiosHeaders.js */ "./node_modules/axios/lib/core/AxiosHeaders.js");
32797/* harmony import */ var _helpers_speedometer_js__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! ../helpers/speedometer.js */ "./node_modules/axios/lib/helpers/speedometer.js");
32798
32799
32800
32801
32802
32803
32804
32805
32806
32807
32808
32809
32810
32811
32812
32813
32814function progressEventReducer(listener, isDownloadStream) {
32815  let bytesNotified = 0;
32816  const _speedometer = Object(_helpers_speedometer_js__WEBPACK_IMPORTED_MODULE_12__["default"])(50, 250);
32817
32818  return e => {
32819    const loaded = e.loaded;
32820    const total = e.lengthComputable ? e.total : undefined;
32821    const progressBytes = loaded - bytesNotified;
32822    const rate = _speedometer(progressBytes);
32823    const inRange = loaded <= total;
32824
32825    bytesNotified = loaded;
32826
32827    const data = {
32828      loaded,
32829      total,
32830      progress: total ? (loaded / total) : undefined,
32831      bytes: progressBytes,
32832      rate: rate ? rate : undefined,
32833      estimated: rate && total && inRange ? (total - loaded) / rate : undefined,
32834      event: e
32835    };
32836
32837    data[isDownloadStream ? 'download' : 'upload'] = true;
32838
32839    listener(data);
32840  };
32841}
32842
32843const isXHRAdapterSupported = typeof XMLHttpRequest !== 'undefined';
32844
32845/* harmony default export */ __webpack_exports__["default"] = (isXHRAdapterSupported && function (config) {
32846  return new Promise(function dispatchXhrRequest(resolve, reject) {
32847    let requestData = config.data;
32848    const requestHeaders = _core_AxiosHeaders_js__WEBPACK_IMPORTED_MODULE_11__["default"].from(config.headers).normalize();
32849    let {responseType, withXSRFToken} = config;
32850    let onCanceled;
32851    function done() {
32852      if (config.cancelToken) {
32853        config.cancelToken.unsubscribe(onCanceled);
32854      }
32855
32856      if (config.signal) {
32857        config.signal.removeEventListener('abort', onCanceled);
32858      }
32859    }
32860
32861    let contentType;
32862
32863    if (_utils_js__WEBPACK_IMPORTED_MODULE_0__["default"].isFormData(requestData)) {
32864      if (_platform_index_js__WEBPACK_IMPORTED_MODULE_10__["default"].hasStandardBrowserEnv || _platform_index_js__WEBPACK_IMPORTED_MODULE_10__["default"].hasStandardBrowserWebWorkerEnv) {
32865        requestHeaders.setContentType(false); // Let the browser set it
32866      } else if ((contentType = requestHeaders.getContentType()) !== false) {
32867        // fix semicolon duplication issue for ReactNative FormData implementation
32868        const [type, ...tokens] = contentType ? contentType.split(';').map(token => token.trim()).filter(Boolean) : [];
32869        requestHeaders.setContentType([type || 'multipart/form-data', ...tokens].join('; '));
32870      }
32871    }
32872
32873    let request = new XMLHttpRequest();
32874
32875    // HTTP basic authentication
32876    if (config.auth) {
32877      const username = config.auth.username || '';
32878      const password = config.auth.password ? unescape(encodeURIComponent(config.auth.password)) : '';
32879      requestHeaders.set('Authorization', 'Basic ' + btoa(username + ':' + password));
32880    }
32881
32882    const fullPath = Object(_core_buildFullPath_js__WEBPACK_IMPORTED_MODULE_4__["default"])(config.baseURL, config.url);
32883
32884    request.open(config.method.toUpperCase(), Object(_helpers_buildURL_js__WEBPACK_IMPORTED_MODULE_3__["default"])(fullPath, config.params, config.paramsSerializer), true);
32885
32886    // Set the request timeout in MS
32887    request.timeout = config.timeout;
32888
32889    function onloadend() {
32890      if (!request) {
32891        return;
32892      }
32893      // Prepare the response
32894      const responseHeaders = _core_AxiosHeaders_js__WEBPACK_IMPORTED_MODULE_11__["default"].from(
32895        'getAllResponseHeaders' in request && request.getAllResponseHeaders()
32896      );
32897      const responseData = !responseType || responseType === 'text' || responseType === 'json' ?
32898        request.responseText : request.response;
32899      const response = {
32900        data: responseData,
32901        status: request.status,
32902        statusText: request.statusText,
32903        headers: responseHeaders,
32904        config,
32905        request
32906      };
32907
32908      Object(_core_settle_js__WEBPACK_IMPORTED_MODULE_1__["default"])(function _resolve(value) {
32909        resolve(value);
32910        done();
32911      }, function _reject(err) {
32912        reject(err);
32913        done();
32914      }, response);
32915
32916      // Clean up request
32917      request = null;
32918    }
32919
32920    if ('onloadend' in request) {
32921      // Use onloadend if available
32922      request.onloadend = onloadend;
32923    } else {
32924      // Listen for ready state to emulate onloadend
32925      request.onreadystatechange = function handleLoad() {
32926        if (!request || request.readyState !== 4) {
32927          return;
32928        }
32929
32930        // The request errored out and we didn't get a response, this will be
32931        // handled by onerror instead
32932        // With one exception: request that using file: protocol, most browsers
32933        // will return status as 0 even though it's a successful request
32934        if (request.status === 0 && !(request.responseURL && request.responseURL.indexOf('file:') === 0)) {
32935          return;
32936        }
32937        // readystate handler is calling before onerror or ontimeout handlers,
32938        // so we should call onloadend on the next 'tick'
32939        setTimeout(onloadend);
32940      };
32941    }
32942
32943    // Handle browser request cancellation (as opposed to a manual cancellation)
32944    request.onabort = function handleAbort() {
32945      if (!request) {
32946        return;
32947      }
32948
32949      reject(new _core_AxiosError_js__WEBPACK_IMPORTED_MODULE_7__["default"]('Request aborted', _core_AxiosError_js__WEBPACK_IMPORTED_MODULE_7__["default"].ECONNABORTED, config, request));
32950
32951      // Clean up request
32952      request = null;
32953    };
32954
32955    // Handle low level network errors
32956    request.onerror = function handleError() {
32957      // Real errors are hidden from us by the browser
32958      // onerror should only fire if it's a network error
32959      reject(new _core_AxiosError_js__WEBPACK_IMPORTED_MODULE_7__["default"]('Network Error', _core_AxiosError_js__WEBPACK_IMPORTED_MODULE_7__["default"].ERR_NETWORK, config, request));
32960
32961      // Clean up request
32962      request = null;
32963    };
32964
32965    // Handle timeout
32966    request.ontimeout = function handleTimeout() {
32967      let timeoutErrorMessage = config.timeout ? 'timeout of ' + config.timeout + 'ms exceeded' : 'timeout exceeded';
32968      const transitional = config.transitional || _defaults_transitional_js__WEBPACK_IMPORTED_MODULE_6__["default"];
32969      if (config.timeoutErrorMessage) {
32970        timeoutErrorMessage = config.timeoutErrorMessage;
32971      }
32972      reject(new _core_AxiosError_js__WEBPACK_IMPORTED_MODULE_7__["default"](
32973        timeoutErrorMessage,
32974        transitional.clarifyTimeoutError ? _core_AxiosError_js__WEBPACK_IMPORTED_MODULE_7__["default"].ETIMEDOUT : _core_AxiosError_js__WEBPACK_IMPORTED_MODULE_7__["default"].ECONNABORTED,
32975        config,
32976        request));
32977
32978      // Clean up request
32979      request = null;
32980    };
32981
32982    // Add xsrf header
32983    // This is only done if running in a standard browser environment.
32984    // Specifically not if we're in a web worker, or react-native.
32985    if(_platform_index_js__WEBPACK_IMPORTED_MODULE_10__["default"].hasStandardBrowserEnv) {
32986      withXSRFToken && _utils_js__WEBPACK_IMPORTED_MODULE_0__["default"].isFunction(withXSRFToken) && (withXSRFToken = withXSRFToken(config));
32987
32988      if (withXSRFToken || (withXSRFToken !== false && Object(_helpers_isURLSameOrigin_js__WEBPACK_IMPORTED_MODULE_5__["default"])(fullPath))) {
32989        // Add xsrf header
32990        const xsrfValue = config.xsrfHeaderName && config.xsrfCookieName && _helpers_cookies_js__WEBPACK_IMPORTED_MODULE_2__["default"].read(config.xsrfCookieName);
32991
32992        if (xsrfValue) {
32993          requestHeaders.set(config.xsrfHeaderName, xsrfValue);
32994        }
32995      }
32996    }
32997
32998    // Remove Content-Type if data is undefined
32999    requestData === undefined && requestHeaders.setContentType(null);
33000
33001    // Add headers to the request
33002    if ('setRequestHeader' in request) {
33003      _utils_js__WEBPACK_IMPORTED_MODULE_0__["default"].forEach(requestHeaders.toJSON(), function setRequestHeader(val, key) {
33004        request.setRequestHeader(key, val);
33005      });
33006    }
33007
33008    // Add withCredentials to request if needed
33009    if (!_utils_js__WEBPACK_IMPORTED_MODULE_0__["default"].isUndefined(config.withCredentials)) {
33010      request.withCredentials = !!config.withCredentials;
33011    }
33012
33013    // Add responseType to request if needed
33014    if (responseType && responseType !== 'json') {
33015      request.responseType = config.responseType;
33016    }
33017
33018    // Handle progress if needed
33019    if (typeof config.onDownloadProgress === 'function') {
33020      request.addEventListener('progress', progressEventReducer(config.onDownloadProgress, true));
33021    }
33022
33023    // Not all browsers support upload events
33024    if (typeof config.onUploadProgress === 'function' && request.upload) {
33025      request.upload.addEventListener('progress', progressEventReducer(config.onUploadProgress));
33026    }
33027
33028    if (config.cancelToken || config.signal) {
33029      // Handle cancellation
33030      // eslint-disable-next-line func-names
33031      onCanceled = cancel => {
33032        if (!request) {
33033          return;
33034        }
33035        reject(!cancel || cancel.type ? new _cancel_CanceledError_js__WEBPACK_IMPORTED_MODULE_8__["default"](null, config, request) : cancel);
33036        request.abort();
33037        request = null;
33038      };
33039
33040      config.cancelToken && config.cancelToken.subscribe(onCanceled);
33041      if (config.signal) {
33042        config.signal.aborted ? onCanceled() : config.signal.addEventListener('abort', onCanceled);
33043      }
33044    }
33045
33046    const protocol = Object(_helpers_parseProtocol_js__WEBPACK_IMPORTED_MODULE_9__["default"])(fullPath);
33047
33048    if (protocol && _platform_index_js__WEBPACK_IMPORTED_MODULE_10__["default"].protocols.indexOf(protocol) === -1) {
33049      reject(new _core_AxiosError_js__WEBPACK_IMPORTED_MODULE_7__["default"]('Unsupported protocol ' + protocol + ':', _core_AxiosError_js__WEBPACK_IMPORTED_MODULE_7__["default"].ERR_BAD_REQUEST, config));
33050      return;
33051    }
33052
33053
33054    // Send the request
33055    request.send(requestData || null);
33056  });
33057});
33058
33059
33060/***/ }),
33061
vendor: 6,285 bytes, lines 33062-33180
33062/***/ "./node_modules/axios/lib/axios.js":
33063/*!*****************************************!*\
33064  !*** ./node_modules/axios/lib/axios.js ***!
33065  \*****************************************/
33066/*! exports provided: default */
33067/***/ (function(module, __webpack_exports__, __webpack_require__) {
33068
33069"use strict";
33070__webpack_require__.r(__webpack_exports__);
33071/* harmony import */ var _utils_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./utils.js */ "./node_modules/axios/lib/utils.js");
33072/* harmony import */ var _helpers_bind_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./helpers/bind.js */ "./node_modules/axios/lib/helpers/bind.js");
33073/* harmony import */ var _core_Axios_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./core/Axios.js */ "./node_modules/axios/lib/core/Axios.js");
33074/* harmony import */ var _core_mergeConfig_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./core/mergeConfig.js */ "./node_modules/axios/lib/core/mergeConfig.js");
33075/* harmony import */ var _defaults_index_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./defaults/index.js */ "./node_modules/axios/lib/defaults/index.js");
33076/* harmony import */ var _helpers_formDataToJSON_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./helpers/formDataToJSON.js */ "./node_modules/axios/lib/helpers/formDataToJSON.js");
33077/* harmony import */ var _cancel_CanceledError_js__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./cancel/CanceledError.js */ "./node_modules/axios/lib/cancel/CanceledError.js");
33078/* harmony import */ var _cancel_CancelToken_js__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./cancel/CancelToken.js */ "./node_modules/axios/lib/cancel/CancelToken.js");
33079/* harmony import */ var _cancel_isCancel_js__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./cancel/isCancel.js */ "./node_modules/axios/lib/cancel/isCancel.js");
33080/* harmony import */ var _env_data_js__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ./env/data.js */ "./node_modules/axios/lib/env/data.js");
33081/* harmony import */ var _helpers_toFormData_js__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ./helpers/toFormData.js */ "./node_modules/axios/lib/helpers/toFormData.js");
33082/* harmony import */ var _core_AxiosError_js__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ./core/AxiosError.js */ "./node_modules/axios/lib/core/AxiosError.js");
33083/* harmony import */ var _helpers_spread_js__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! ./helpers/spread.js */ "./node_modules/axios/lib/helpers/spread.js");
33084/* harmony import */ var _helpers_isAxiosError_js__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! ./helpers/isAxiosError.js */ "./node_modules/axios/lib/helpers/isAxiosError.js");
33085/* harmony import */ var _core_AxiosHeaders_js__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! ./core/AxiosHeaders.js */ "./node_modules/axios/lib/core/AxiosHeaders.js");
33086/* harmony import */ var _adapters_adapters_js__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(/*! ./adapters/adapters.js */ "./node_modules/axios/lib/adapters/adapters.js");
33087/* harmony import */ var _helpers_HttpStatusCode_js__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__(/*! ./helpers/HttpStatusCode.js */ "./node_modules/axios/lib/helpers/HttpStatusCode.js");
33088
33089
33090
33091
33092
33093
33094
33095
33096
33097
33098
33099
33100
33101
33102
33103
33104
33105
33106
33107
33108/**
33109 * Create an instance of Axios
33110 *
33111 * @param {Object} defaultConfig The default config for the instance
33112 *
33113 * @returns {Axios} A new instance of Axios
33114 */
33115function createInstance(defaultConfig) {
33116  const context = new _core_Axios_js__WEBPACK_IMPORTED_MODULE_2__["default"](defaultConfig);
33117  const instance = Object(_helpers_bind_js__WEBPACK_IMPORTED_MODULE_1__["default"])(_core_Axios_js__WEBPACK_IMPORTED_MODULE_2__["default"].prototype.request, context);
33118
33119  // Copy axios.prototype to instance
33120  _utils_js__WEBPACK_IMPORTED_MODULE_0__["default"].extend(instance, _core_Axios_js__WEBPACK_IMPORTED_MODULE_2__["default"].prototype, context, {allOwnKeys: true});
33121
33122  // Copy context to instance
33123  _utils_js__WEBPACK_IMPORTED_MODULE_0__["default"].extend(instance, context, null, {allOwnKeys: true});
33124
33125  // Factory for creating new instances
33126  instance.create = function create(instanceConfig) {
33127    return createInstance(Object(_core_mergeConfig_js__WEBPACK_IMPORTED_MODULE_3__["default"])(defaultConfig, instanceConfig));
33128  };
33129
33130  return instance;
33131}
33132
33133// Create the default instance to be exported
33134const axios = createInstance(_defaults_index_js__WEBPACK_IMPORTED_MODULE_4__["default"]);
33135
33136// Expose Axios class to allow class inheritance
33137axios.Axios = _core_Axios_js__WEBPACK_IMPORTED_MODULE_2__["default"];
33138
33139// Expose Cancel & CancelToken
33140axios.CanceledError = _cancel_CanceledError_js__WEBPACK_IMPORTED_MODULE_6__["default"];
33141axios.CancelToken = _cancel_CancelToken_js__WEBPACK_IMPORTED_MODULE_7__["default"];
33142axios.isCancel = _cancel_isCancel_js__WEBPACK_IMPORTED_MODULE_8__["default"];
33143axios.VERSION = _env_data_js__WEBPACK_IMPORTED_MODULE_9__["VERSION"];
33144axios.toFormData = _helpers_toFormData_js__WEBPACK_IMPORTED_MODULE_10__["default"];
33145
33146// Expose AxiosError class
33147axios.AxiosError = _core_AxiosError_js__WEBPACK_IMPORTED_MODULE_11__["default"];
33148
33149// alias for CanceledError for backward compatibility
33150axios.Cancel = axios.CanceledError;
33151
33152// Expose all/spread
33153axios.all = function all(promises) {
33154  return Promise.all(promises);
33155};
33156
33157axios.spread = _helpers_spread_js__WEBPACK_IMPORTED_MODULE_12__["default"];
33158
33159// Expose isAxiosError
33160axios.isAxiosError = _helpers_isAxiosError_js__WEBPACK_IMPORTED_MODULE_13__["default"];
33161
33162// Expose mergeConfig
33163axios.mergeConfig = _core_mergeConfig_js__WEBPACK_IMPORTED_MODULE_3__["default"];
33164
33165axios.AxiosHeaders = _core_AxiosHeaders_js__WEBPACK_IMPORTED_MODULE_14__["default"];
33166
33167axios.formToJSON = thing => Object(_helpers_formDataToJSON_js__WEBPACK_IMPORTED_MODULE_5__["default"])(_utils_js__WEBPACK_IMPORTED_MODULE_0__["default"].isHTMLForm(thing) ? new FormData(thing) : thing);
33168
33169axios.getAdapter = _adapters_adapters_js__WEBPACK_IMPORTED_MODULE_15__["default"].getAdapter;
33170
33171axios.HttpStatusCode = _helpers_HttpStatusCode_js__WEBPACK_IMPORTED_MODULE_16__["default"];
33172
33173axios.default = axios;
33174
33175// this module should only have a default export
33176/* harmony default export */ __webpack_exports__["default"] = (axios);
33177
33178
33179/***/ }),
33180
vendor: 3,139 bytes, lines 33181-33315
33181/***/ "./node_modules/axios/lib/cancel/CancelToken.js":
33182/*!******************************************************!*\
33183  !*** ./node_modules/axios/lib/cancel/CancelToken.js ***!
33184  \******************************************************/
33185/*! exports provided: default */
33186/***/ (function(module, __webpack_exports__, __webpack_require__) {
33187
33188"use strict";
33189__webpack_require__.r(__webpack_exports__);
33190/* harmony import */ var _CanceledError_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./CanceledError.js */ "./node_modules/axios/lib/cancel/CanceledError.js");
33191
33192
33193
33194
33195/**
33196 * A `CancelToken` is an object that can be used to request cancellation of an operation.
33197 *
33198 * @param {Function} executor The executor function.
33199 *
33200 * @returns {CancelToken}
33201 */
33202class CancelToken {
33203  constructor(executor) {
33204    if (typeof executor !== 'function') {
33205      throw new TypeError('executor must be a function.');
33206    }
33207
33208    let resolvePromise;
33209
33210    this.promise = new Promise(function promiseExecutor(resolve) {
33211      resolvePromise = resolve;
33212    });
33213
33214    const token = this;
33215
33216    // eslint-disable-next-line func-names
33217    this.promise.then(cancel => {
33218      if (!token._listeners) return;
33219
33220      let i = token._listeners.length;
33221
33222      while (i-- > 0) {
33223        token._listeners[i](cancel);
33224      }
33225      token._listeners = null;
33226    });
33227
33228    // eslint-disable-next-line func-names
33229    this.promise.then = onfulfilled => {
33230      let _resolve;
33231      // eslint-disable-next-line func-names
33232      const promise = new Promise(resolve => {
33233        token.subscribe(resolve);
33234        _resolve = resolve;
33235      }).then(onfulfilled);
33236
33237      promise.cancel = function reject() {
33238        token.unsubscribe(_resolve);
33239      };
33240
33241      return promise;
33242    };
33243
33244    executor(function cancel(message, config, request) {
33245      if (token.reason) {
33246        // Cancellation has already been requested
33247        return;
33248      }
33249
33250      token.reason = new _CanceledError_js__WEBPACK_IMPORTED_MODULE_0__["default"](message, config, request);
33251      resolvePromise(token.reason);
33252    });
33253  }
33254
33255  /**
33256   * Throws a `CanceledError` if cancellation has been requested.
33257   */
33258  throwIfRequested() {
33259    if (this.reason) {
33260      throw this.reason;
33261    }
33262  }
33263
33264  /**
33265   * Subscribe to the cancel signal
33266   */
33267
33268  subscribe(listener) {
33269    if (this.reason) {
33270      listener(this.reason);
33271      return;
33272    }
33273
33274    if (this._listeners) {
33275      this._listeners.push(listener);
33276    } else {
33277      this._listeners = [listener];
33278    }
33279  }
33280
33281  /**
33282   * Unsubscribe from the cancel signal
33283   */
33284
33285  unsubscribe(listener) {
33286    if (!this._listeners) {
33287      return;
33288    }
33289    const index = this._listeners.indexOf(listener);
33290    if (index !== -1) {
33291      this._listeners.splice(index, 1);
33292    }
33293  }
33294
33295  /**
33296   * Returns an object that contains a new `CancelToken` and a function that, when called,
33297   * cancels the `CancelToken`.
33298   */
33299  static source() {
33300    let cancel;
33301    const token = new CancelToken(function executor(c) {
33302      cancel = c;
33303    });
33304    return {
33305      token,
33306      cancel
33307    };
33308  }
33309}
33310
33311/* harmony default export */ __webpack_exports__["default"] = (CancelToken);
33312
33313
33314/***/ }),
33315
vendor: 1,577 bytes, lines 33316-33355
33316/***/ "./node_modules/axios/lib/cancel/CanceledError.js":
33317/*!********************************************************!*\
33318  !*** ./node_modules/axios/lib/cancel/CanceledError.js ***!
33319  \********************************************************/
33320/*! exports provided: default */
33321/***/ (function(module, __webpack_exports__, __webpack_require__) {
33322
33323"use strict";
33324__webpack_require__.r(__webpack_exports__);
33325/* harmony import */ var _core_AxiosError_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../core/AxiosError.js */ "./node_modules/axios/lib/core/AxiosError.js");
33326/* harmony import */ var _utils_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../utils.js */ "./node_modules/axios/lib/utils.js");
33327
33328
33329
33330
33331
33332/**
33333 * A `CanceledError` is an object that is thrown when an operation is canceled.
33334 *
33335 * @param {string=} message The message.
33336 * @param {Object=} config The config.
33337 * @param {Object=} request The request.
33338 *
33339 * @returns {CanceledError} The created error.
33340 */
33341function CanceledError(message, config, request) {
33342  // eslint-disable-next-line no-eq-null,eqeqeq
33343  _core_AxiosError_js__WEBPACK_IMPORTED_MODULE_0__["default"].call(this, message == null ? 'canceled' : message, _core_AxiosError_js__WEBPACK_IMPORTED_MODULE_0__["default"].ERR_CANCELED, config, request);
33344  this.name = 'CanceledError';
33345}
33346
33347_utils_js__WEBPACK_IMPORTED_MODULE_1__["default"].inherits(CanceledError, _core_AxiosError_js__WEBPACK_IMPORTED_MODULE_0__["default"], {
33348  __CANCEL__: true
33349});
33350
33351/* harmony default export */ __webpack_exports__["default"] = (CanceledError);
33352
33353
33354/***/ }),
33355
vendor: 586 bytes, lines 33356-33374
33356/***/ "./node_modules/axios/lib/cancel/isCancel.js":
33357/*!***************************************************!*\
33358  !*** ./node_modules/axios/lib/cancel/isCancel.js ***!
33359  \***************************************************/
33360/*! exports provided: default */
33361/***/ (function(module, __webpack_exports__, __webpack_require__) {
33362
33363"use strict";
33364__webpack_require__.r(__webpack_exports__);
33365/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "default", function() { return isCancel; });
33366
33367
33368function isCancel(value) {
33369  return !!(value && value.__CANCEL__);
33370}
33371
33372
33373/***/ }),
33374
vendor: 8,580 bytes, lines 33375-33620
33375/***/ "./node_modules/axios/lib/core/Axios.js":
33376/*!**********************************************!*\
33377  !*** ./node_modules/axios/lib/core/Axios.js ***!
33378  \**********************************************/
33379/*! exports provided: default */
33380/***/ (function(module, __webpack_exports__, __webpack_require__) {
33381
33382"use strict";
33383__webpack_require__.r(__webpack_exports__);
33384/* harmony import */ var _utils_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./../utils.js */ "./node_modules/axios/lib/utils.js");
33385/* harmony import */ var _helpers_buildURL_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../helpers/buildURL.js */ "./node_modules/axios/lib/helpers/buildURL.js");
33386/* harmony import */ var _InterceptorManager_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./InterceptorManager.js */ "./node_modules/axios/lib/core/InterceptorManager.js");
33387/* harmony import */ var _dispatchRequest_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./dispatchRequest.js */ "./node_modules/axios/lib/core/dispatchRequest.js");
33388/* harmony import */ var _mergeConfig_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./mergeConfig.js */ "./node_modules/axios/lib/core/mergeConfig.js");
33389/* harmony import */ var _buildFullPath_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./buildFullPath.js */ "./node_modules/axios/lib/core/buildFullPath.js");
33390/* harmony import */ var _helpers_validator_js__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../helpers/validator.js */ "./node_modules/axios/lib/helpers/validator.js");
33391/* harmony import */ var _AxiosHeaders_js__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./AxiosHeaders.js */ "./node_modules/axios/lib/core/AxiosHeaders.js");
33392
33393
33394
33395
33396
33397
33398
33399
33400
33401
33402
33403const validators = _helpers_validator_js__WEBPACK_IMPORTED_MODULE_6__["default"].validators;
33404
33405/**
33406 * Create a new instance of Axios
33407 *
33408 * @param {Object} instanceConfig The default config for the instance
33409 *
33410 * @return {Axios} A new instance of Axios
33411 */
33412class Axios {
33413  constructor(instanceConfig) {
33414    this.defaults = instanceConfig;
33415    this.interceptors = {
33416      request: new _InterceptorManager_js__WEBPACK_IMPORTED_MODULE_2__["default"](),
33417      response: new _InterceptorManager_js__WEBPACK_IMPORTED_MODULE_2__["default"]()
33418    };
33419  }
33420
33421  /**
33422   * Dispatch a request
33423   *
33424   * @param {String|Object} configOrUrl The config specific for this request (merged with this.defaults)
33425   * @param {?Object} config
33426   *
33427   * @returns {Promise} The Promise to be fulfilled
33428   */
33429  async request(configOrUrl, config) {
33430    try {
33431      return await this._request(configOrUrl, config);
33432    } catch (err) {
33433      if (err instanceof Error) {
33434        let dummy;
33435
33436        Error.captureStackTrace ? Error.captureStackTrace(dummy = {}) : (dummy = new Error());
33437
33438        // slice off the Error: ... line
33439        const stack = dummy.stack ? dummy.stack.replace(/^.+\n/, '') : '';
33440
33441        if (!err.stack) {
33442          err.stack = stack;
33443          // match without the 2 top stack lines
33444        } else if (stack && !String(err.stack).endsWith(stack.replace(/^.+\n.+\n/, ''))) {
33445          err.stack += '\n' + stack
33446        }
33447      }
33448
33449      throw err;
33450    }
33451  }
33452
33453  _request(configOrUrl, config) {
33454    /*eslint no-param-reassign:0*/
33455    // Allow for axios('example/url'[, config]) a la fetch API
33456    if (typeof configOrUrl === 'string') {
33457      config = config || {};
33458      config.url = configOrUrl;
33459    } else {
33460      config = configOrUrl || {};
33461    }
33462
33463    config = Object(_mergeConfig_js__WEBPACK_IMPORTED_MODULE_4__["default"])(this.defaults, config);
33464
33465    const {transitional, paramsSerializer, headers} = config;
33466
33467    if (transitional !== undefined) {
33468      _helpers_validator_js__WEBPACK_IMPORTED_MODULE_6__["default"].assertOptions(transitional, {
33469        silentJSONParsing: validators.transitional(validators.boolean),
33470        forcedJSONParsing: validators.transitional(validators.boolean),
33471        clarifyTimeoutError: validators.transitional(validators.boolean)
33472      }, false);
33473    }
33474
33475    if (paramsSerializer != null) {
33476      if (_utils_js__WEBPACK_IMPORTED_MODULE_0__["default"].isFunction(paramsSerializer)) {
33477        config.paramsSerializer = {
33478          serialize: paramsSerializer
33479        }
33480      } else {
33481        _helpers_validator_js__WEBPACK_IMPORTED_MODULE_6__["default"].assertOptions(paramsSerializer, {
33482          encode: validators.function,
33483          serialize: validators.function
33484        }, true);
33485      }
33486    }
33487
33488    // Set config.method
33489    config.method = (config.method || this.defaults.method || 'get').toLowerCase();
33490
33491    // Flatten headers
33492    let contextHeaders = headers && _utils_js__WEBPACK_IMPORTED_MODULE_0__["default"].merge(
33493      headers.common,
33494      headers[config.method]
33495    );
33496
33497    headers && _utils_js__WEBPACK_IMPORTED_MODULE_0__["default"].forEach(
33498      ['delete', 'get', 'head', 'post', 'put', 'patch', 'common'],
33499      (method) => {
33500        delete headers[method];
33501      }
33502    );
33503
33504    config.headers = _AxiosHeaders_js__WEBPACK_IMPORTED_MODULE_7__["default"].concat(contextHeaders, headers);
33505
33506    // filter out skipped interceptors
33507    const requestInterceptorChain = [];
33508    let synchronousRequestInterceptors = true;
33509    this.interceptors.request.forEach(function unshiftRequestInterceptors(interceptor) {
33510      if (typeof interceptor.runWhen === 'function' && interceptor.runWhen(config) === false) {
33511        return;
33512      }
33513
33514      synchronousRequestInterceptors = synchronousRequestInterceptors && interceptor.synchronous;
33515
33516      requestInterceptorChain.unshift(interceptor.fulfilled, interceptor.rejected);
33517    });
33518
33519    const responseInterceptorChain = [];
33520    this.interceptors.response.forEach(function pushResponseInterceptors(interceptor) {
33521      responseInterceptorChain.push(interceptor.fulfilled, interceptor.rejected);
33522    });
33523
33524    let promise;
33525    let i = 0;
33526    let len;
33527
33528    if (!synchronousRequestInterceptors) {
33529      const chain = [_dispatchRequest_js__WEBPACK_IMPORTED_MODULE_3__["default"].bind(this), undefined];
33530      chain.unshift.apply(chain, requestInterceptorChain);
33531      chain.push.apply(chain, responseInterceptorChain);
33532      len = chain.length;
33533
33534      promise = Promise.resolve(config);
33535
33536      while (i < len) {
33537        promise = promise.then(chain[i++], chain[i++]);
33538      }
33539
33540      return promise;
33541    }
33542
33543    len = requestInterceptorChain.length;
33544
33545    let newConfig = config;
33546
33547    i = 0;
33548
33549    while (i < len) {
33550      const onFulfilled = requestInterceptorChain[i++];
33551      const onRejected = requestInterceptorChain[i++];
33552      try {
33553        newConfig = onFulfilled(newConfig);
33554      } catch (error) {
33555        onRejected.call(this, error);
33556        break;
33557      }
33558    }
33559
33560    try {
33561      promise = _dispatchRequest_js__WEBPACK_IMPORTED_MODULE_3__["default"].call(this, newConfig);
33562    } catch (error) {
33563      return Promise.reject(error);
33564    }
33565
33566    i = 0;
33567    len = responseInterceptorChain.length;
33568
33569    while (i < len) {
33570      promise = promise.then(responseInterceptorChain[i++], responseInterceptorChain[i++]);
33571    }
33572
33573    return promise;
33574  }
33575
33576  getUri(config) {
33577    config = Object(_mergeConfig_js__WEBPACK_IMPORTED_MODULE_4__["default"])(this.defaults, config);
33578    const fullPath = Object(_buildFullPath_js__WEBPACK_IMPORTED_MODULE_5__["default"])(config.baseURL, config.url);
33579    return Object(_helpers_buildURL_js__WEBPACK_IMPORTED_MODULE_1__["default"])(fullPath, config.params, config.paramsSerializer);
33580  }
33581}
33582
33583// Provide aliases for supported request methods
33584_utils_js__WEBPACK_IMPORTED_MODULE_0__["default"].forEach(['delete', 'get', 'head', 'options'], function forEachMethodNoData(method) {
33585  /*eslint func-names:0*/
33586  Axios.prototype[method] = function(url, config) {
33587    return this.request(Object(_mergeConfig_js__WEBPACK_IMPORTED_MODULE_4__["default"])(config || {}, {
33588      method,
33589      url,
33590      data: (config || {}).data
33591    }));
33592  };
33593});
33594
33595_utils_js__WEBPACK_IMPORTED_MODULE_0__["default"].forEach(['post', 'put', 'patch'], function forEachMethodWithData(method) {
33596  /*eslint func-names:0*/
33597
33598  function generateHTTPMethod(isForm) {
33599    return function httpMethod(url, data, config) {
33600      return this.request(Object(_mergeConfig_js__WEBPACK_IMPORTED_MODULE_4__["default"])(config || {}, {
33601        method,
33602        headers: isForm ? {
33603          'Content-Type': 'multipart/form-data'
33604        } : {},
33605        url,
33606        data
33607      }));
33608    };
33609  }
33610
33611  Axios.prototype[method] = generateHTTPMethod();
33612
33613  Axios.prototype[method + 'Form'] = generateHTTPMethod(true);
33614});
33615
33616/* harmony default export */ __webpack_exports__["default"] = (Axios);
33617
33618
33619/***/ }),
33620
vendor: 3,207 bytes, lines 33621-33734
33621/***/ "./node_modules/axios/lib/core/AxiosError.js":
33622/*!***************************************************!*\
33623  !*** ./node_modules/axios/lib/core/AxiosError.js ***!
33624  \***************************************************/
33625/*! exports provided: default */
33626/***/ (function(module, __webpack_exports__, __webpack_require__) {
33627
33628"use strict";
33629__webpack_require__.r(__webpack_exports__);
33630/* harmony import */ var _utils_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../utils.js */ "./node_modules/axios/lib/utils.js");
33631
33632
33633
33634
33635/**
33636 * Create an Error with the specified message, config, error code, request and response.
33637 *
33638 * @param {string} message The error message.
33639 * @param {string} [code] The error code (for example, 'ECONNABORTED').
33640 * @param {Object} [config] The config.
33641 * @param {Object} [request] The request.
33642 * @param {Object} [response] The response.
33643 *
33644 * @returns {Error} The created error.
33645 */
33646function AxiosError(message, code, config, request, response) {
33647  Error.call(this);
33648
33649  if (Error.captureStackTrace) {
33650    Error.captureStackTrace(this, this.constructor);
33651  } else {
33652    this.stack = (new Error()).stack;
33653  }
33654
33655  this.message = message;
33656  this.name = 'AxiosError';
33657  code && (this.code = code);
33658  config && (this.config = config);
33659  request && (this.request = request);
33660  response && (this.response = response);
33661}
33662
33663_utils_js__WEBPACK_IMPORTED_MODULE_0__["default"].inherits(AxiosError, Error, {
33664  toJSON: function toJSON() {
33665    return {
33666      // Standard
33667      message: this.message,
33668      name: this.name,
33669      // Microsoft
33670      description: this.description,
33671      number: this.number,
33672      // Mozilla
33673      fileName: this.fileName,
33674      lineNumber: this.lineNumber,
33675      columnNumber: this.columnNumber,
33676      stack: this.stack,
33677      // Axios
33678      config: _utils_js__WEBPACK_IMPORTED_MODULE_0__["default"].toJSONObject(this.config),
33679      code: this.code,
33680      status: this.response && this.response.status ? this.response.status : null
33681    };
33682  }
33683});
33684
33685const prototype = AxiosError.prototype;
33686const descriptors = {};
33687
33688[
33689  'ERR_BAD_OPTION_VALUE',
33690  'ERR_BAD_OPTION',
33691  'ECONNABORTED',
33692  'ETIMEDOUT',
33693  'ERR_NETWORK',
33694  'ERR_FR_TOO_MANY_REDIRECTS',
33695  'ERR_DEPRECATED',
33696  'ERR_BAD_RESPONSE',
33697  'ERR_BAD_REQUEST',
33698  'ERR_CANCELED',
33699  'ERR_NOT_SUPPORT',
33700  'ERR_INVALID_URL'
33701// eslint-disable-next-line func-names
33702].forEach(code => {
33703  descriptors[code] = {value: code};
33704});
33705
33706Object.defineProperties(AxiosError, descriptors);
33707Object.defineProperty(prototype, 'isAxiosError', {value: true});
33708
33709// eslint-disable-next-line func-names
33710AxiosError.from = (error, code, config, request, response, customProps) => {
33711  const axiosError = Object.create(prototype);
33712
33713  _utils_js__WEBPACK_IMPORTED_MODULE_0__["default"].toFlatObject(error, axiosError, function filter(obj) {
33714    return obj !== Error.prototype;
33715  }, prop => {
33716    return prop !== 'isAxiosError';
33717  });
33718
33719  AxiosError.call(axiosError, error.message, code, config, request, response);
33720
33721  axiosError.cause = error;
33722
33723  axiosError.name = error.name;
33724
33725  customProps && Object.assign(axiosError, customProps);
33726
33727  return axiosError;
33728};
33729
33730/* harmony default export */ __webpack_exports__["default"] = (AxiosError);
33731
33732
33733/***/ }),
33734
vendor: 8,646 bytes, lines 33735-34047
33735/***/ "./node_modules/axios/lib/core/AxiosHeaders.js":
33736/*!*****************************************************!*\
33737  !*** ./node_modules/axios/lib/core/AxiosHeaders.js ***!
33738  \*****************************************************/
33739/*! exports provided: default */
33740/***/ (function(module, __webpack_exports__, __webpack_require__) {
33741
33742"use strict";
33743__webpack_require__.r(__webpack_exports__);
33744/* harmony import */ var _utils_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../utils.js */ "./node_modules/axios/lib/utils.js");
33745/* harmony import */ var _helpers_parseHeaders_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../helpers/parseHeaders.js */ "./node_modules/axios/lib/helpers/parseHeaders.js");
33746
33747
33748
33749
33750
33751const $internals = Symbol('internals');
33752
33753function normalizeHeader(header) {
33754  return header && String(header).trim().toLowerCase();
33755}
33756
33757function normalizeValue(value) {
33758  if (value === false || value == null) {
33759    return value;
33760  }
33761
33762  return _utils_js__WEBPACK_IMPORTED_MODULE_0__["default"].isArray(value) ? value.map(normalizeValue) : String(value);
33763}
33764
33765function parseTokens(str) {
33766  const tokens = Object.create(null);
33767  const tokensRE = /([^\s,;=]+)\s*(?:=\s*([^,;]+))?/g;
33768  let match;
33769
33770  while ((match = tokensRE.exec(str))) {
33771    tokens[match[1]] = match[2];
33772  }
33773
33774  return tokens;
33775}
33776
33777const isValidHeaderName = (str) => /^[-_a-zA-Z0-9^`|~,!#$%&'*+.]+$/.test(str.trim());
33778
33779function matchHeaderValue(context, value, header, filter, isHeaderNameFilter) {
33780  if (_utils_js__WEBPACK_IMPORTED_MODULE_0__["default"].isFunction(filter)) {
33781    return filter.call(this, value, header);
33782  }
33783
33784  if (isHeaderNameFilter) {
33785    value = header;
33786  }
33787
33788  if (!_utils_js__WEBPACK_IMPORTED_MODULE_0__["default"].isString(value)) return;
33789
33790  if (_utils_js__WEBPACK_IMPORTED_MODULE_0__["default"].isString(filter)) {
33791    return value.indexOf(filter) !== -1;
33792  }
33793
33794  if (_utils_js__WEBPACK_IMPORTED_MODULE_0__["default"].isRegExp(filter)) {
33795    return filter.test(value);
33796  }
33797}
33798
33799function formatHeader(header) {
33800  return header.trim()
33801    .toLowerCase().replace(/([a-z\d])(\w*)/g, (w, char, str) => {
33802      return char.toUpperCase() + str;
33803    });
33804}
33805
33806function buildAccessors(obj, header) {
33807  const accessorName = _utils_js__WEBPACK_IMPORTED_MODULE_0__["default"].toCamelCase(' ' + header);
33808
33809  ['get', 'set', 'has'].forEach(methodName => {
33810    Object.defineProperty(obj, methodName + accessorName, {
33811      value: function(arg1, arg2, arg3) {
33812        return this[methodName].call(this, header, arg1, arg2, arg3);
33813      },
33814      configurable: true
33815    });
33816  });
33817}
33818
33819class AxiosHeaders {
33820  constructor(headers) {
33821    headers && this.set(headers);
33822  }
33823
33824  set(header, valueOrRewrite, rewrite) {
33825    const self = this;
33826
33827    function setHeader(_value, _header, _rewrite) {
33828      const lHeader = normalizeHeader(_header);
33829
33830      if (!lHeader) {
33831        throw new Error('header name must be a non-empty string');
33832      }
33833
33834      const key = _utils_js__WEBPACK_IMPORTED_MODULE_0__["default"].findKey(self, lHeader);
33835
33836      if(!key || self[key] === undefined || _rewrite === true || (_rewrite === undefined && self[key] !== false)) {
33837        self[key || _header] = normalizeValue(_value);
33838      }
33839    }
33840
33841    const setHeaders = (headers, _rewrite) =>
33842      _utils_js__WEBPACK_IMPORTED_MODULE_0__["default"].forEach(headers, (_value, _header) => setHeader(_value, _header, _rewrite));
33843
33844    if (_utils_js__WEBPACK_IMPORTED_MODULE_0__["default"].isPlainObject(header) || header instanceof this.constructor) {
33845      setHeaders(header, valueOrRewrite)
33846    } else if(_utils_js__WEBPACK_IMPORTED_MODULE_0__["default"].isString(header) && (header = header.trim()) && !isValidHeaderName(header)) {
33847      setHeaders(Object(_helpers_parseHeaders_js__WEBPACK_IMPORTED_MODULE_1__["default"])(header), valueOrRewrite);
33848    } else {
33849      header != null && setHeader(valueOrRewrite, header, rewrite);
33850    }
33851
33852    return this;
33853  }
33854
33855  get(header, parser) {
33856    header = normalizeHeader(header);
33857
33858    if (header) {
33859      const key = _utils_js__WEBPACK_IMPORTED_MODULE_0__["default"].findKey(this, header);
33860
33861      if (key) {
33862        const value = this[key];
33863
33864        if (!parser) {
33865          return value;
33866        }
33867
33868        if (parser === true) {
33869          return parseTokens(value);
33870        }
33871
33872        if (_utils_js__WEBPACK_IMPORTED_MODULE_0__["default"].isFunction(parser)) {
33873          return parser.call(this, value, key);
33874        }
33875
33876        if (_utils_js__WEBPACK_IMPORTED_MODULE_0__["default"].isRegExp(parser)) {
33877          return parser.exec(value);
33878        }
33879
33880        throw new TypeError('parser must be boolean|regexp|function');
33881      }
33882    }
33883  }
33884
33885  has(header, matcher) {
33886    header = normalizeHeader(header);
33887
33888    if (header) {
33889      const key = _utils_js__WEBPACK_IMPORTED_MODULE_0__["default"].findKey(this, header);
33890
33891      return !!(key && this[key] !== undefined && (!matcher || matchHeaderValue(this, this[key], key, matcher)));
33892    }
33893
33894    return false;
33895  }
33896
33897  delete(header, matcher) {
33898    const self = this;
33899    let deleted = false;
33900
33901    function deleteHeader(_header) {
33902      _header = normalizeHeader(_header);
33903
33904      if (_header) {
33905        const key = _utils_js__WEBPACK_IMPORTED_MODULE_0__["default"].findKey(self, _header);
33906
33907        if (key && (!matcher || matchHeaderValue(self, self[key], key, matcher))) {
33908          delete self[key];
33909
33910          deleted = true;
33911        }
33912      }
33913    }
33914
33915    if (_utils_js__WEBPACK_IMPORTED_MODULE_0__["default"].isArray(header)) {
33916      header.forEach(deleteHeader);
33917    } else {
33918      deleteHeader(header);
33919    }
33920
33921    return deleted;
33922  }
33923
33924  clear(matcher) {
33925    const keys = Object.keys(this);
33926    let i = keys.length;
33927    let deleted = false;
33928
33929    while (i--) {
33930      const key = keys[i];
33931      if(!matcher || matchHeaderValue(this, this[key], key, matcher, true)) {
33932        delete this[key];
33933        deleted = true;
33934      }
33935    }
33936
33937    return deleted;
33938  }
33939
33940  normalize(format) {
33941    const self = this;
33942    const headers = {};
33943
33944    _utils_js__WEBPACK_IMPORTED_MODULE_0__["default"].forEach(this, (value, header) => {
33945      const key = _utils_js__WEBPACK_IMPORTED_MODULE_0__["default"].findKey(headers, header);
33946
33947      if (key) {
33948        self[key] = normalizeValue(value);
33949        delete self[header];
33950        return;
33951      }
33952
33953      const normalized = format ? formatHeader(header) : String(header).trim();
33954
33955      if (normalized !== header) {
33956        delete self[header];
33957      }
33958
33959      self[normalized] = normalizeValue(value);
33960
33961      headers[normalized] = true;
33962    });
33963
33964    return this;
33965  }
33966
33967  concat(...targets) {
33968    return this.constructor.concat(this, ...targets);
33969  }
33970
33971  toJSON(asStrings) {
33972    const obj = Object.create(null);
33973
33974    _utils_js__WEBPACK_IMPORTED_MODULE_0__["default"].forEach(this, (value, header) => {
33975      value != null && value !== false && (obj[header] = asStrings && _utils_js__WEBPACK_IMPORTED_MODULE_0__["default"].isArray(value) ? value.join(', ') : value);
33976    });
33977
33978    return obj;
33979  }
33980
33981  [Symbol.iterator]() {
33982    return Object.entries(this.toJSON())[Symbol.iterator]();
33983  }
33984
33985  toString() {
33986    return Object.entries(this.toJSON()).map(([header, value]) => header + ': ' + value).join('\n');
33987  }
33988
33989  get [Symbol.toStringTag]() {
33990    return 'AxiosHeaders';
33991  }
33992
33993  static from(thing) {
33994    return thing instanceof this ? thing : new this(thing);
33995  }
33996
33997  static concat(first, ...targets) {
33998    const computed = new this(first);
33999
34000    targets.forEach((target) => computed.set(target));
34001
34002    return computed;
34003  }
34004
34005  static accessor(header) {
34006    const internals = this[$internals] = (this[$internals] = {
34007      accessors: {}
34008    });
34009
34010    const accessors = internals.accessors;
34011    const prototype = this.prototype;
34012
34013    function defineAccessor(_header) {
34014      const lHeader = normalizeHeader(_header);
34015
34016      if (!accessors[lHeader]) {
34017        buildAccessors(prototype, _header);
34018        accessors[lHeader] = true;
34019      }
34020    }
34021
34022    _utils_js__WEBPACK_IMPORTED_MODULE_0__["default"].isArray(header) ? header.forEach(defineAccessor) : defineAccessor(header);
34023
34024    return this;
34025  }
34026}
34027
34028AxiosHeaders.accessor(['Content-Type', 'Content-Length', 'Accept', 'Accept-Encoding', 'User-Agent', 'Authorization']);
34029
34030// reserved names hotfix
34031_utils_js__WEBPACK_IMPORTED_MODULE_0__["default"].reduceDescriptors(AxiosHeaders.prototype, ({value}, key) => {
34032  let mapped = key[0].toUpperCase() + key.slice(1); // map `set` => `Set`
34033  return {
34034    get: () => value,
34035    set(headerValue) {
34036      this[mapped] = headerValue;
34037    }
34038  }
34039});
34040
34041_utils_js__WEBPACK_IMPORTED_MODULE_0__["default"].freezeMethods(AxiosHeaders);
34042
34043/* harmony default export */ __webpack_exports__["default"] = (AxiosHeaders);
34044
34045
34046/***/ }),
34047
vendor: 2,188 bytes, lines 34048-34132
34048/***/ "./node_modules/axios/lib/core/InterceptorManager.js":
34049/*!***********************************************************!*\
34050  !*** ./node_modules/axios/lib/core/InterceptorManager.js ***!
34051  \***********************************************************/
34052/*! exports provided: default */
34053/***/ (function(module, __webpack_exports__, __webpack_require__) {
34054
34055"use strict";
34056__webpack_require__.r(__webpack_exports__);
34057/* harmony import */ var _utils_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./../utils.js */ "./node_modules/axios/lib/utils.js");
34058
34059
34060
34061
34062class InterceptorManager {
34063  constructor() {
34064    this.handlers = [];
34065  }
34066
34067  /**
34068   * Add a new interceptor to the stack
34069   *
34070   * @param {Function} fulfilled The function to handle `then` for a `Promise`
34071   * @param {Function} rejected The function to handle `reject` for a `Promise`
34072   *
34073   * @return {Number} An ID used to remove interceptor later
34074   */
34075  use(fulfilled, rejected, options) {
34076    this.handlers.push({
34077      fulfilled,
34078      rejected,
34079      synchronous: options ? options.synchronous : false,
34080      runWhen: options ? options.runWhen : null
34081    });
34082    return this.handlers.length - 1;
34083  }
34084
34085  /**
34086   * Remove an interceptor from the stack
34087   *
34088   * @param {Number} id The ID that was returned by `use`
34089   *
34090   * @returns {Boolean} `true` if the interceptor was removed, `false` otherwise
34091   */
34092  eject(id) {
34093    if (this.handlers[id]) {
34094      this.handlers[id] = null;
34095    }
34096  }
34097
34098  /**
34099   * Clear all interceptors from the stack
34100   *
34101   * @returns {void}
34102   */
34103  clear() {
34104    if (this.handlers) {
34105      this.handlers = [];
34106    }
34107  }
34108
34109  /**
34110   * Iterate over all the registered interceptors
34111   *
34112   * This method is particularly useful for skipping over any
34113   * interceptors that may have become `null` calling `eject`.
34114   *
34115   * @param {Function} fn The function to call for each interceptor
34116   *
34117   * @returns {void}
34118   */
34119  forEach(fn) {
34120    _utils_js__WEBPACK_IMPORTED_MODULE_0__["default"].forEach(this.handlers, function forEachHandler(h) {
34121      if (h !== null) {
34122        fn(h);
34123      }
34124    });
34125  }
34126}
34127
34128/* harmony default export */ __webpack_exports__["default"] = (InterceptorManager);
34129
34130
34131/***/ }),
34132
vendor: 1,587 bytes, lines 34133-34169
34133/***/ "./node_modules/axios/lib/core/buildFullPath.js":
34134/*!******************************************************!*\
34135  !*** ./node_modules/axios/lib/core/buildFullPath.js ***!
34136  \******************************************************/
34137/*! exports provided: default */
34138/***/ (function(module, __webpack_exports__, __webpack_require__) {
34139
34140"use strict";
34141__webpack_require__.r(__webpack_exports__);
34142/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "default", function() { return buildFullPath; });
34143/* harmony import */ var _helpers_isAbsoluteURL_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../helpers/isAbsoluteURL.js */ "./node_modules/axios/lib/helpers/isAbsoluteURL.js");
34144/* harmony import */ var _helpers_combineURLs_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../helpers/combineURLs.js */ "./node_modules/axios/lib/helpers/combineURLs.js");
34145
34146
34147
34148
34149
34150/**
34151 * Creates a new URL by combining the baseURL with the requestedURL,
34152 * only when the requestedURL is not already an absolute URL.
34153 * If the requestURL is absolute, this function returns the requestedURL untouched.
34154 *
34155 * @param {string} baseURL The base URL
34156 * @param {string} requestedURL Absolute or relative URL to combine
34157 *
34158 * @returns {string} The combined full path
34159 */
34160function buildFullPath(baseURL, requestedURL) {
34161  if (baseURL && !Object(_helpers_isAbsoluteURL_js__WEBPACK_IMPORTED_MODULE_0__["default"])(requestedURL)) {
34162    return Object(_helpers_combineURLs_js__WEBPACK_IMPORTED_MODULE_1__["default"])(baseURL, requestedURL);
34163  }
34164  return requestedURL;
34165}
34166
34167
34168/***/ }),
34169
vendor: 3,964 bytes, lines 34170-34270
34170/***/ "./node_modules/axios/lib/core/dispatchRequest.js":
34171/*!********************************************************!*\
34172  !*** ./node_modules/axios/lib/core/dispatchRequest.js ***!
34173  \********************************************************/
34174/*! exports provided: default */
34175/***/ (function(module, __webpack_exports__, __webpack_require__) {
34176
34177"use strict";
34178__webpack_require__.r(__webpack_exports__);
34179/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "default", function() { return dispatchRequest; });
34180/* harmony import */ var _transformData_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./transformData.js */ "./node_modules/axios/lib/core/transformData.js");
34181/* harmony import */ var _cancel_isCancel_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../cancel/isCancel.js */ "./node_modules/axios/lib/cancel/isCancel.js");
34182/* harmony import */ var _defaults_index_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../defaults/index.js */ "./node_modules/axios/lib/defaults/index.js");
34183/* harmony import */ var _cancel_CanceledError_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../cancel/CanceledError.js */ "./node_modules/axios/lib/cancel/CanceledError.js");
34184/* harmony import */ var _core_AxiosHeaders_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../core/AxiosHeaders.js */ "./node_modules/axios/lib/core/AxiosHeaders.js");
34185/* harmony import */ var _adapters_adapters_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../adapters/adapters.js */ "./node_modules/axios/lib/adapters/adapters.js");
34186
34187
34188
34189
34190
34191
34192
34193
34194
34195/**
34196 * Throws a `CanceledError` if cancellation has been requested.
34197 *
34198 * @param {Object} config The config that is to be used for the request
34199 *
34200 * @returns {void}
34201 */
34202function throwIfCancellationRequested(config) {
34203  if (config.cancelToken) {
34204    config.cancelToken.throwIfRequested();
34205  }
34206
34207  if (config.signal && config.signal.aborted) {
34208    throw new _cancel_CanceledError_js__WEBPACK_IMPORTED_MODULE_3__["default"](null, config);
34209  }
34210}
34211
34212/**
34213 * Dispatch a request to the server using the configured adapter.
34214 *
34215 * @param {object} config The config that is to be used for the request
34216 *
34217 * @returns {Promise} The Promise to be fulfilled
34218 */
34219function dispatchRequest(config) {
34220  throwIfCancellationRequested(config);
34221
34222  config.headers = _core_AxiosHeaders_js__WEBPACK_IMPORTED_MODULE_4__["default"].from(config.headers);
34223
34224  // Transform request data
34225  config.data = _transformData_js__WEBPACK_IMPORTED_MODULE_0__["default"].call(
34226    config,
34227    config.transformRequest
34228  );
34229
34230  if (['post', 'put', 'patch'].indexOf(config.method) !== -1) {
34231    config.headers.setContentType('application/x-www-form-urlencoded', false);
34232  }
34233
34234  const adapter = _adapters_adapters_js__WEBPACK_IMPORTED_MODULE_5__["default"].getAdapter(config.adapter || _defaults_index_js__WEBPACK_IMPORTED_MODULE_2__["default"].adapter);
34235
34236  return adapter(config).then(function onAdapterResolution(response) {
34237    throwIfCancellationRequested(config);
34238
34239    // Transform response data
34240    response.data = _transformData_js__WEBPACK_IMPORTED_MODULE_0__["default"].call(
34241      config,
34242      config.transformResponse,
34243      response
34244    );
34245
34246    response.headers = _core_AxiosHeaders_js__WEBPACK_IMPORTED_MODULE_4__["default"].from(response.headers);
34247
34248    return response;
34249  }, function onAdapterRejection(reason) {
34250    if (!Object(_cancel_isCancel_js__WEBPACK_IMPORTED_MODULE_1__["default"])(reason)) {
34251      throwIfCancellationRequested(config);
34252
34253      // Transform response data
34254      if (reason && reason.response) {
34255        reason.response.data = _transformData_js__WEBPACK_IMPORTED_MODULE_0__["default"].call(
34256          config,
34257          config.transformResponse,
34258          reason.response
34259        );
34260        reason.response.headers = _core_AxiosHeaders_js__WEBPACK_IMPORTED_MODULE_4__["default"].from(reason.response.headers);
34261      }
34262    }
34263
34264    return Promise.reject(reason);
34265  });
34266}
34267
34268
34269/***/ }),
34270
vendor: 4,720 bytes, lines 34271-34392
34271/***/ "./node_modules/axios/lib/core/mergeConfig.js":
34272/*!****************************************************!*\
34273  !*** ./node_modules/axios/lib/core/mergeConfig.js ***!
34274  \****************************************************/
34275/*! exports provided: default */
34276/***/ (function(module, __webpack_exports__, __webpack_require__) {
34277
34278"use strict";
34279__webpack_require__.r(__webpack_exports__);
34280/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "default", function() { return mergeConfig; });
34281/* harmony import */ var _utils_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../utils.js */ "./node_modules/axios/lib/utils.js");
34282/* harmony import */ var _AxiosHeaders_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./AxiosHeaders.js */ "./node_modules/axios/lib/core/AxiosHeaders.js");
34283
34284
34285
34286
34287
34288const headersToObject = (thing) => thing instanceof _AxiosHeaders_js__WEBPACK_IMPORTED_MODULE_1__["default"] ? { ...thing } : thing;
34289
34290/**
34291 * Config-specific merge-function which creates a new config-object
34292 * by merging two configuration objects together.
34293 *
34294 * @param {Object} config1
34295 * @param {Object} config2
34296 *
34297 * @returns {Object} New object resulting from merging config2 to config1
34298 */
34299function mergeConfig(config1, config2) {
34300  // eslint-disable-next-line no-param-reassign
34301  config2 = config2 || {};
34302  const config = {};
34303
34304  function getMergedValue(target, source, caseless) {
34305    if (_utils_js__WEBPACK_IMPORTED_MODULE_0__["default"].isPlainObject(target) && _utils_js__WEBPACK_IMPORTED_MODULE_0__["default"].isPlainObject(source)) {
34306      return _utils_js__WEBPACK_IMPORTED_MODULE_0__["default"].merge.call({caseless}, target, source);
34307    } else if (_utils_js__WEBPACK_IMPORTED_MODULE_0__["default"].isPlainObject(source)) {
34308      return _utils_js__WEBPACK_IMPORTED_MODULE_0__["default"].merge({}, source);
34309    } else if (_utils_js__WEBPACK_IMPORTED_MODULE_0__["default"].isArray(source)) {
34310      return source.slice();
34311    }
34312    return source;
34313  }
34314
34315  // eslint-disable-next-line consistent-return
34316  function mergeDeepProperties(a, b, caseless) {
34317    if (!_utils_js__WEBPACK_IMPORTED_MODULE_0__["default"].isUndefined(b)) {
34318      return getMergedValue(a, b, caseless);
34319    } else if (!_utils_js__WEBPACK_IMPORTED_MODULE_0__["default"].isUndefined(a)) {
34320      return getMergedValue(undefined, a, caseless);
34321    }
34322  }
34323
34324  // eslint-disable-next-line consistent-return
34325  function valueFromConfig2(a, b) {
34326    if (!_utils_js__WEBPACK_IMPORTED_MODULE_0__["default"].isUndefined(b)) {
34327      return getMergedValue(undefined, b);
34328    }
34329  }
34330
34331  // eslint-disable-next-line consistent-return
34332  function defaultToConfig2(a, b) {
34333    if (!_utils_js__WEBPACK_IMPORTED_MODULE_0__["default"].isUndefined(b)) {
34334      return getMergedValue(undefined, b);
34335    } else if (!_utils_js__WEBPACK_IMPORTED_MODULE_0__["default"].isUndefined(a)) {
34336      return getMergedValue(undefined, a);
34337    }
34338  }
34339
34340  // eslint-disable-next-line consistent-return
34341  function mergeDirectKeys(a, b, prop) {
34342    if (prop in config2) {
34343      return getMergedValue(a, b);
34344    } else if (prop in config1) {
34345      return getMergedValue(undefined, a);
34346    }
34347  }
34348
34349  const mergeMap = {
34350    url: valueFromConfig2,
34351    method: valueFromConfig2,
34352    data: valueFromConfig2,
34353    baseURL: defaultToConfig2,
34354    transformRequest: defaultToConfig2,
34355    transformResponse: defaultToConfig2,
34356    paramsSerializer: defaultToConfig2,
34357    timeout: defaultToConfig2,
34358    timeoutMessage: defaultToConfig2,
34359    withCredentials: defaultToConfig2,
34360    withXSRFToken: defaultToConfig2,
34361    adapter: defaultToConfig2,
34362    responseType: defaultToConfig2,
34363    xsrfCookieName: defaultToConfig2,
34364    xsrfHeaderName: defaultToConfig2,
34365    onUploadProgress: defaultToConfig2,
34366    onDownloadProgress: defaultToConfig2,
34367    decompress: defaultToConfig2,
34368    maxContentLength: defaultToConfig2,
34369    maxBodyLength: defaultToConfig2,
34370    beforeRedirect: defaultToConfig2,
34371    transport: defaultToConfig2,
34372    httpAgent: defaultToConfig2,
34373    httpsAgent: defaultToConfig2,
34374    cancelToken: defaultToConfig2,
34375    socketPath: defaultToConfig2,
34376    responseEncoding: defaultToConfig2,
34377    validateStatus: mergeDirectKeys,
34378    headers: (a, b) => mergeDeepProperties(headersToObject(a), headersToObject(b), true)
34379  };
34380
34381  _utils_js__WEBPACK_IMPORTED_MODULE_0__["default"].forEach(Object.keys(Object.assign({}, config1, config2)), function computeConfigValue(prop) {
34382    const merge = mergeMap[prop] || mergeDeepProperties;
34383    const configValue = merge(config1[prop], config2[prop], prop);
34384    (_utils_js__WEBPACK_IMPORTED_MODULE_0__["default"].isUndefined(configValue) && merge !== mergeDirectKeys) || (config[prop] = configValue);
34385  });
34386
34387  return config;
34388}
34389
34390
34391/***/ }),
34392
vendor: 1,558 bytes, lines 34393-34434
34393/***/ "./node_modules/axios/lib/core/settle.js":
34394/*!***********************************************!*\
34395  !*** ./node_modules/axios/lib/core/settle.js ***!
34396  \***********************************************/
34397/*! exports provided: default */
34398/***/ (function(module, __webpack_exports__, __webpack_require__) {
34399
34400"use strict";
34401__webpack_require__.r(__webpack_exports__);
34402/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "default", function() { return settle; });
34403/* harmony import */ var _AxiosError_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./AxiosError.js */ "./node_modules/axios/lib/core/AxiosError.js");
34404
34405
34406
34407
34408/**
34409 * Resolve or reject a Promise based on response status.
34410 *
34411 * @param {Function} resolve A function that resolves the promise.
34412 * @param {Function} reject A function that rejects the promise.
34413 * @param {object} response The response.
34414 *
34415 * @returns {object} The response.
34416 */
34417function settle(resolve, reject, response) {
34418  const validateStatus = response.config.validateStatus;
34419  if (!response.status || !validateStatus || validateStatus(response.status)) {
34420    resolve(response);
34421  } else {
34422    reject(new _AxiosError_js__WEBPACK_IMPORTED_MODULE_0__["default"](
34423      'Request failed with status code ' + response.status,
34424      [_AxiosError_js__WEBPACK_IMPORTED_MODULE_0__["default"].ERR_BAD_REQUEST, _AxiosError_js__WEBPACK_IMPORTED_MODULE_0__["default"].ERR_BAD_RESPONSE][Math.floor(response.status / 100) - 4],
34425      response.config,
34426      response.request,
34427      response
34428    ));
34429  }
34430}
34431
34432
34433/***/ }),
34434
vendor: 1,790 bytes, lines 34435-34479
34435/***/ "./node_modules/axios/lib/core/transformData.js":
34436/*!******************************************************!*\
34437  !*** ./node_modules/axios/lib/core/transformData.js ***!
34438  \******************************************************/
34439/*! exports provided: default */
34440/***/ (function(module, __webpack_exports__, __webpack_require__) {
34441
34442"use strict";
34443__webpack_require__.r(__webpack_exports__);
34444/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "default", function() { return transformData; });
34445/* harmony import */ var _utils_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./../utils.js */ "./node_modules/axios/lib/utils.js");
34446/* harmony import */ var _defaults_index_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../defaults/index.js */ "./node_modules/axios/lib/defaults/index.js");
34447/* harmony import */ var _core_AxiosHeaders_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../core/AxiosHeaders.js */ "./node_modules/axios/lib/core/AxiosHeaders.js");
34448
34449
34450
34451
34452
34453
34454/**
34455 * Transform the data for a request or a response
34456 *
34457 * @param {Array|Function} fns A single function or Array of functions
34458 * @param {?Object} response The response object
34459 *
34460 * @returns {*} The resulting transformed data
34461 */
34462function transformData(fns, response) {
34463  const config = this || _defaults_index_js__WEBPACK_IMPORTED_MODULE_1__["default"];
34464  const context = response || config;
34465  const headers = _core_AxiosHeaders_js__WEBPACK_IMPORTED_MODULE_2__["default"].from(context.headers);
34466  let data = context.data;
34467
34468  _utils_js__WEBPACK_IMPORTED_MODULE_0__["default"].forEach(fns, function transform(fn) {
34469    data = fn.call(config, data, headers.normalize(), response ? response.status : undefined);
34470  });
34471
34472  headers.normalize();
34473
34474  return data;
34475}
34476
34477
34478/***/ }),
34479
vendor: 6,730 bytes, lines 34480-34655
34480/***/ "./node_modules/axios/lib/defaults/index.js":
34481/*!**************************************************!*\
34482  !*** ./node_modules/axios/lib/defaults/index.js ***!
34483  \**************************************************/
34484/*! exports provided: default */
34485/***/ (function(module, __webpack_exports__, __webpack_require__) {
34486
34487"use strict";
34488__webpack_require__.r(__webpack_exports__);
34489/* harmony import */ var _utils_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../utils.js */ "./node_modules/axios/lib/utils.js");
34490/* harmony import */ var _core_AxiosError_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../core/AxiosError.js */ "./node_modules/axios/lib/core/AxiosError.js");
34491/* harmony import */ var _transitional_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./transitional.js */ "./node_modules/axios/lib/defaults/transitional.js");
34492/* harmony import */ var _helpers_toFormData_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../helpers/toFormData.js */ "./node_modules/axios/lib/helpers/toFormData.js");
34493/* harmony import */ var _helpers_toURLEncodedForm_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../helpers/toURLEncodedForm.js */ "./node_modules/axios/lib/helpers/toURLEncodedForm.js");
34494/* harmony import */ var _platform_index_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../platform/index.js */ "./node_modules/axios/lib/platform/index.js");
34495/* harmony import */ var _helpers_formDataToJSON_js__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../helpers/formDataToJSON.js */ "./node_modules/axios/lib/helpers/formDataToJSON.js");
34496
34497
34498
34499
34500
34501
34502
34503
34504
34505
34506/**
34507 * It takes a string, tries to parse it, and if it fails, it returns the stringified version
34508 * of the input
34509 *
34510 * @param {any} rawValue - The value to be stringified.
34511 * @param {Function} parser - A function that parses a string into a JavaScript object.
34512 * @param {Function} encoder - A function that takes a value and returns a string.
34513 *
34514 * @returns {string} A stringified version of the rawValue.
34515 */
34516function stringifySafely(rawValue, parser, encoder) {
34517  if (_utils_js__WEBPACK_IMPORTED_MODULE_0__["default"].isString(rawValue)) {
34518    try {
34519      (parser || JSON.parse)(rawValue);
34520      return _utils_js__WEBPACK_IMPORTED_MODULE_0__["default"].trim(rawValue);
34521    } catch (e) {
34522      if (e.name !== 'SyntaxError') {
34523        throw e;
34524      }
34525    }
34526  }
34527
34528  return (encoder || JSON.stringify)(rawValue);
34529}
34530
34531const defaults = {
34532
34533  transitional: _transitional_js__WEBPACK_IMPORTED_MODULE_2__["default"],
34534
34535  adapter: ['xhr', 'http'],
34536
34537  transformRequest: [function transformRequest(data, headers) {
34538    const contentType = headers.getContentType() || '';
34539    const hasJSONContentType = contentType.indexOf('application/json') > -1;
34540    const isObjectPayload = _utils_js__WEBPACK_IMPORTED_MODULE_0__["default"].isObject(data);
34541
34542    if (isObjectPayload && _utils_js__WEBPACK_IMPORTED_MODULE_0__["default"].isHTMLForm(data)) {
34543      data = new FormData(data);
34544    }
34545
34546    const isFormData = _utils_js__WEBPACK_IMPORTED_MODULE_0__["default"].isFormData(data);
34547
34548    if (isFormData) {
34549      return hasJSONContentType ? JSON.stringify(Object(_helpers_formDataToJSON_js__WEBPACK_IMPORTED_MODULE_6__["default"])(data)) : data;
34550    }
34551
34552    if (_utils_js__WEBPACK_IMPORTED_MODULE_0__["default"].isArrayBuffer(data) ||
34553      _utils_js__WEBPACK_IMPORTED_MODULE_0__["default"].isBuffer(data) ||
34554      _utils_js__WEBPACK_IMPORTED_MODULE_0__["default"].isStream(data) ||
34555      _utils_js__WEBPACK_IMPORTED_MODULE_0__["default"].isFile(data) ||
34556      _utils_js__WEBPACK_IMPORTED_MODULE_0__["default"].isBlob(data)
34557    ) {
34558      return data;
34559    }
34560    if (_utils_js__WEBPACK_IMPORTED_MODULE_0__["default"].isArrayBufferView(data)) {
34561      return data.buffer;
34562    }
34563    if (_utils_js__WEBPACK_IMPORTED_MODULE_0__["default"].isURLSearchParams(data)) {
34564      headers.setContentType('application/x-www-form-urlencoded;charset=utf-8', false);
34565      return data.toString();
34566    }
34567
34568    let isFileList;
34569
34570    if (isObjectPayload) {
34571      if (contentType.indexOf('application/x-www-form-urlencoded') > -1) {
34572        return Object(_helpers_toURLEncodedForm_js__WEBPACK_IMPORTED_MODULE_4__["default"])(data, this.formSerializer).toString();
34573      }
34574
34575      if ((isFileList = _utils_js__WEBPACK_IMPORTED_MODULE_0__["default"].isFileList(data)) || contentType.indexOf('multipart/form-data') > -1) {
34576        const _FormData = this.env && this.env.FormData;
34577
34578        return Object(_helpers_toFormData_js__WEBPACK_IMPORTED_MODULE_3__["default"])(
34579          isFileList ? {'files[]': data} : data,
34580          _FormData && new _FormData(),
34581          this.formSerializer
34582        );
34583      }
34584    }
34585
34586    if (isObjectPayload || hasJSONContentType ) {
34587      headers.setContentType('application/json', false);
34588      return stringifySafely(data);
34589    }
34590
34591    return data;
34592  }],
34593
34594  transformResponse: [function transformResponse(data) {
34595    const transitional = this.transitional || defaults.transitional;
34596    const forcedJSONParsing = transitional && transitional.forcedJSONParsing;
34597    const JSONRequested = this.responseType === 'json';
34598
34599    if (data && _utils_js__WEBPACK_IMPORTED_MODULE_0__["default"].isString(data) && ((forcedJSONParsing && !this.responseType) || JSONRequested)) {
34600      const silentJSONParsing = transitional && transitional.silentJSONParsing;
34601      const strictJSONParsing = !silentJSONParsing && JSONRequested;
34602
34603      try {
34604        return JSON.parse(data);
34605      } catch (e) {
34606        if (strictJSONParsing) {
34607          if (e.name === 'SyntaxError') {
34608            throw _core_AxiosError_js__WEBPACK_IMPORTED_MODULE_1__["default"].from(e, _core_AxiosError_js__WEBPACK_IMPORTED_MODULE_1__["default"].ERR_BAD_RESPONSE, this, null, this.response);
34609          }
34610          throw e;
34611        }
34612      }
34613    }
34614
34615    return data;
34616  }],
34617
34618  /**
34619   * A timeout in milliseconds to abort a request. If set to 0 (default) a
34620   * timeout is not created.
34621   */
34622  timeout: 0,
34623
34624  xsrfCookieName: 'XSRF-TOKEN',
34625  xsrfHeaderName: 'X-XSRF-TOKEN',
34626
34627  maxContentLength: -1,
34628  maxBodyLength: -1,
34629
34630  env: {
34631    FormData: _platform_index_js__WEBPACK_IMPORTED_MODULE_5__["default"].classes.FormData,
34632    Blob: _platform_index_js__WEBPACK_IMPORTED_MODULE_5__["default"].classes.Blob
34633  },
34634
34635  validateStatus: function validateStatus(status) {
34636    return status >= 200 && status < 300;
34637  },
34638
34639  headers: {
34640    common: {
34641      'Accept': 'application/json, text/plain, */*',
34642      'Content-Type': undefined
34643    }
34644  }
34645};
34646
34647_utils_js__WEBPACK_IMPORTED_MODULE_0__["default"].forEach(['delete', 'get', 'head', 'post', 'put', 'patch'], (method) => {
34648  defaults.headers[method] = {};
34649});
34650
34651/* harmony default export */ __webpack_exports__["default"] = (defaults);
34652
34653
34654/***/ }),
34655
vendor: 574 bytes, lines 34656-34675
34656/***/ "./node_modules/axios/lib/defaults/transitional.js":
34657/*!*********************************************************!*\
34658  !*** ./node_modules/axios/lib/defaults/transitional.js ***!
34659  \*********************************************************/
34660/*! exports provided: default */
34661/***/ (function(module, __webpack_exports__, __webpack_require__) {
34662
34663"use strict";
34664__webpack_require__.r(__webpack_exports__);
34665
34666
34667/* harmony default export */ __webpack_exports__["default"] = ({
34668  silentJSONParsing: true,
34669  forcedJSONParsing: true,
34670  clarifyTimeoutError: false
34671});
34672
34673
34674/***/ }),
34675
vendor: 510 bytes, lines 34676-34689
34676/***/ "./node_modules/axios/lib/env/data.js":
34677/*!********************************************!*\
34678  !*** ./node_modules/axios/lib/env/data.js ***!
34679  \********************************************/
34680/*! exports provided: VERSION */
34681/***/ (function(module, __webpack_exports__, __webpack_require__) {
34682
34683"use strict";
34684__webpack_require__.r(__webpack_exports__);
34685/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "VERSION", function() { return VERSION; });
34686const VERSION = "1.6.8";
34687
34688/***/ }),
34689
vendor: 2,099 bytes, lines 34690-34761
34690/***/ "./node_modules/axios/lib/helpers/AxiosURLSearchParams.js":
34691/*!****************************************************************!*\
34692  !*** ./node_modules/axios/lib/helpers/AxiosURLSearchParams.js ***!
34693  \****************************************************************/
34694/*! exports provided: default */
34695/***/ (function(module, __webpack_exports__, __webpack_require__) {
34696
34697"use strict";
34698__webpack_require__.r(__webpack_exports__);
34699/* harmony import */ var _toFormData_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./toFormData.js */ "./node_modules/axios/lib/helpers/toFormData.js");
34700
34701
34702
34703
34704/**
34705 * It encodes a string by replacing all characters that are not in the unreserved set with
34706 * their percent-encoded equivalents
34707 *
34708 * @param {string} str - The string to encode.
34709 *
34710 * @returns {string} The encoded string.
34711 */
34712function encode(str) {
34713  const charMap = {
34714    '!': '%21',
34715    "'": '%27',
34716    '(': '%28',
34717    ')': '%29',
34718    '~': '%7E',
34719    '%20': '+',
34720    '%00': '\x00'
34721  };
34722  return encodeURIComponent(str).replace(/[!'()~]|%20|%00/g, function replacer(match) {
34723    return charMap[match];
34724  });
34725}
34726
34727/**
34728 * It takes a params object and converts it to a FormData object
34729 *
34730 * @param {Object<string, any>} params - The parameters to be converted to a FormData object.
34731 * @param {Object<string, any>} options - The options object passed to the Axios constructor.
34732 *
34733 * @returns {void}
34734 */
34735function AxiosURLSearchParams(params, options) {
34736  this._pairs = [];
34737
34738  params && Object(_toFormData_js__WEBPACK_IMPORTED_MODULE_0__["default"])(params, this, options);
34739}
34740
34741const prototype = AxiosURLSearchParams.prototype;
34742
34743prototype.append = function append(name, value) {
34744  this._pairs.push([name, value]);
34745};
34746
34747prototype.toString = function toString(encoder) {
34748  const _encode = encoder ? function(value) {
34749    return encoder.call(this, value, encode);
34750  } : encode;
34751
34752  return this._pairs.map(function each(pair) {
34753    return _encode(pair[0]) + '=' + _encode(pair[1]);
34754  }, '').join('&');
34755};
34756
34757/* harmony default export */ __webpack_exports__["default"] = (AxiosURLSearchParams);
34758
34759
34760/***/ }),
34761
vendor: 2,073 bytes, lines 34762-34845
34762/***/ "./node_modules/axios/lib/helpers/HttpStatusCode.js":
34763/*!**********************************************************!*\
34764  !*** ./node_modules/axios/lib/helpers/HttpStatusCode.js ***!
34765  \**********************************************************/
34766/*! exports provided: default */
34767/***/ (function(module, __webpack_exports__, __webpack_require__) {
34768
34769"use strict";
34770__webpack_require__.r(__webpack_exports__);
34771const HttpStatusCode = {
34772  Continue: 100,
34773  SwitchingProtocols: 101,
34774  Processing: 102,
34775  EarlyHints: 103,
34776  Ok: 200,
34777  Created: 201,
34778  Accepted: 202,
34779  NonAuthoritativeInformation: 203,
34780  NoContent: 204,
34781  ResetContent: 205,
34782  PartialContent: 206,
34783  MultiStatus: 207,
34784  AlreadyReported: 208,
34785  ImUsed: 226,
34786  MultipleChoices: 300,
34787  MovedPermanently: 301,
34788  Found: 302,
34789  SeeOther: 303,
34790  NotModified: 304,
34791  UseProxy: 305,
34792  Unused: 306,
34793  TemporaryRedirect: 307,
34794  PermanentRedirect: 308,
34795  BadRequest: 400,
34796  Unauthorized: 401,
34797  PaymentRequired: 402,
34798  Forbidden: 403,
34799  NotFound: 404,
34800  MethodNotAllowed: 405,
34801  NotAcceptable: 406,
34802  ProxyAuthenticationRequired: 407,
34803  RequestTimeout: 408,
34804  Conflict: 409,
34805  Gone: 410,
34806  LengthRequired: 411,
34807  PreconditionFailed: 412,
34808  PayloadTooLarge: 413,
34809  UriTooLong: 414,
34810  UnsupportedMediaType: 415,
34811  RangeNotSatisfiable: 416,
34812  ExpectationFailed: 417,
34813  ImATeapot: 418,
34814  MisdirectedRequest: 421,
34815  UnprocessableEntity: 422,
34816  Locked: 423,
34817  FailedDependency: 424,
34818  TooEarly: 425,
34819  UpgradeRequired: 426,
34820  PreconditionRequired: 428,
34821  TooManyRequests: 429,
34822  RequestHeaderFieldsTooLarge: 431,
34823  UnavailableForLegalReasons: 451,
34824  InternalServerError: 500,
34825  NotImplemented: 501,
34826  BadGateway: 502,
34827  ServiceUnavailable: 503,
34828  GatewayTimeout: 504,
34829  HttpVersionNotSupported: 505,
34830  VariantAlsoNegotiates: 506,
34831  InsufficientStorage: 507,
34832  LoopDetected: 508,
34833  NotExtended: 510,
34834  NetworkAuthenticationRequired: 511,
34835};
34836
34837Object.entries(HttpStatusCode).forEach(([key, value]) => {
34838  HttpStatusCode[value] = key;
34839});
34840
34841/* harmony default export */ __webpack_exports__["default"] = (HttpStatusCode);
34842
34843
34844/***/ }),
34845
vendor: 605 bytes, lines 34846-34866
34846/***/ "./node_modules/axios/lib/helpers/bind.js":
34847/*!************************************************!*\
34848  !*** ./node_modules/axios/lib/helpers/bind.js ***!
34849  \************************************************/
34850/*! exports provided: default */
34851/***/ (function(module, __webpack_exports__, __webpack_require__) {
34852
34853"use strict";
34854__webpack_require__.r(__webpack_exports__);
34855/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "default", function() { return bind; });
34856
34857
34858function bind(fn, thisArg) {
34859  return function wrap() {
34860    return fn.apply(thisArg, arguments);
34861  };
34862}
34863
34864
34865/***/ }),
34866
vendor: 2,399 bytes, lines 34867-34945
34867/***/ "./node_modules/axios/lib/helpers/buildURL.js":
34868/*!****************************************************!*\
34869  !*** ./node_modules/axios/lib/helpers/buildURL.js ***!
34870  \****************************************************/
34871/*! exports provided: default */
34872/***/ (function(module, __webpack_exports__, __webpack_require__) {
34873
34874"use strict";
34875__webpack_require__.r(__webpack_exports__);
34876/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "default", function() { return buildURL; });
34877/* harmony import */ var _utils_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../utils.js */ "./node_modules/axios/lib/utils.js");
34878/* harmony import */ var _helpers_AxiosURLSearchParams_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../helpers/AxiosURLSearchParams.js */ "./node_modules/axios/lib/helpers/AxiosURLSearchParams.js");
34879
34880
34881
34882
34883
34884/**
34885 * It replaces all instances of the characters `:`, `$`, `,`, `+`, `[`, and `]` with their
34886 * URI encoded counterparts
34887 *
34888 * @param {string} val The value to be encoded.
34889 *
34890 * @returns {string} The encoded value.
34891 */
34892function encode(val) {
34893  return encodeURIComponent(val).
34894    replace(/%3A/gi, ':').
34895    replace(/%24/g, '$').
34896    replace(/%2C/gi, ',').
34897    replace(/%20/g, '+').
34898    replace(/%5B/gi, '[').
34899    replace(/%5D/gi, ']');
34900}
34901
34902/**
34903 * Build a URL by appending params to the end
34904 *
34905 * @param {string} url The base of the url (e.g., http://www.google.com)
34906 * @param {object} [params] The params to be appended
34907 * @param {?object} options
34908 *
34909 * @returns {string} The formatted url
34910 */
34911function buildURL(url, params, options) {
34912  /*eslint no-param-reassign:0*/
34913  if (!params) {
34914    return url;
34915  }
34916  
34917  const _encode = options && options.encode || encode;
34918
34919  const serializeFn = options && options.serialize;
34920
34921  let serializedParams;
34922
34923  if (serializeFn) {
34924    serializedParams = serializeFn(params, options);
34925  } else {
34926    serializedParams = _utils_js__WEBPACK_IMPORTED_MODULE_0__["default"].isURLSearchParams(params) ?
34927      params.toString() :
34928      new _helpers_AxiosURLSearchParams_js__WEBPACK_IMPORTED_MODULE_1__["default"](params, options).toString(_encode);
34929  }
34930
34931  if (serializedParams) {
34932    const hashmarkIndex = url.indexOf("#");
34933
34934    if (hashmarkIndex !== -1) {
34935      url = url.slice(0, hashmarkIndex);
34936    }
34937    url += (url.indexOf('?') === -1 ? '?' : '&') + serializedParams;
34938  }
34939
34940  return url;
34941}
34942
34943
34944/***/ }),
34945
vendor: 888 bytes, lines 34946-34974
34946/***/ "./node_modules/axios/lib/helpers/combineURLs.js":
34947/*!*******************************************************!*\
34948  !*** ./node_modules/axios/lib/helpers/combineURLs.js ***!
34949  \*******************************************************/
34950/*! exports provided: default */
34951/***/ (function(module, __webpack_exports__, __webpack_require__) {
34952
34953"use strict";
34954__webpack_require__.r(__webpack_exports__);
34955/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "default", function() { return combineURLs; });
34956
34957
34958/**
34959 * Creates a new URL by combining the specified URLs
34960 *
34961 * @param {string} baseURL The base URL
34962 * @param {string} relativeURL The relative URL
34963 *
34964 * @returns {string} The combined URL
34965 */
34966function combineURLs(baseURL, relativeURL) {
34967  return relativeURL
34968    ? baseURL.replace(/\/?\/$/, '') + '/' + relativeURL.replace(/^\/+/, '')
34969    : baseURL;
34970}
34971
34972
34973/***/ }),
34974
vendor: 1,909 bytes, lines 34975-35031
34975/***/ "./node_modules/axios/lib/helpers/cookies.js":
34976/*!***************************************************!*\
34977  !*** ./node_modules/axios/lib/helpers/cookies.js ***!
34978  \***************************************************/
34979/*! exports provided: default */
34980/***/ (function(module, __webpack_exports__, __webpack_require__) {
34981
34982"use strict";
34983__webpack_require__.r(__webpack_exports__);
34984/* harmony import */ var _utils_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./../utils.js */ "./node_modules/axios/lib/utils.js");
34985/* harmony import */ var _platform_index_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../platform/index.js */ "./node_modules/axios/lib/platform/index.js");
34986
34987
34988
34989/* harmony default export */ __webpack_exports__["default"] = (_platform_index_js__WEBPACK_IMPORTED_MODULE_1__["default"].hasStandardBrowserEnv ?
34990
34991  // Standard browser envs support document.cookie
34992  {
34993    write(name, value, expires, path, domain, secure) {
34994      const cookie = [name + '=' + encodeURIComponent(value)];
34995
34996      _utils_js__WEBPACK_IMPORTED_MODULE_0__["default"].isNumber(expires) && cookie.push('expires=' + new Date(expires).toGMTString());
34997
34998      _utils_js__WEBPACK_IMPORTED_MODULE_0__["default"].isString(path) && cookie.push('path=' + path);
34999
35000      _utils_js__WEBPACK_IMPORTED_MODULE_0__["default"].isString(domain) && cookie.push('domain=' + domain);
35001
35002      secure === true && cookie.push('secure');
35003
35004      document.cookie = cookie.join('; ');
35005    },
35006
35007    read(name) {
35008      const match = document.cookie.match(new RegExp('(^|;\\s*)(' + name + ')=([^;]*)'));
35009      return (match ? decodeURIComponent(match[3]) : null);
35010    },
35011
35012    remove(name) {
35013      this.write(name, '', Date.now() - 86400000);
35014    }
35015  }
35016
35017  :
35018
35019  // Non-standard browser env (web workers, react-native) lack needed support.
35020  {
35021    write() {},
35022    read() {
35023      return null;
35024    },
35025    remove() {}
35026  });
35027
35028
35029
35030/***/ }),
35031
vendor: 3,087 bytes, lines 35032-35140
35032/***/ "./node_modules/axios/lib/helpers/formDataToJSON.js":
35033/*!**********************************************************!*\
35034  !*** ./node_modules/axios/lib/helpers/formDataToJSON.js ***!
35035  \**********************************************************/
35036/*! exports provided: default */
35037/***/ (function(module, __webpack_exports__, __webpack_require__) {
35038
35039"use strict";
35040__webpack_require__.r(__webpack_exports__);
35041/* harmony import */ var _utils_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../utils.js */ "./node_modules/axios/lib/utils.js");
35042
35043
35044
35045
35046/**
35047 * It takes a string like `foo[x][y][z]` and returns an array like `['foo', 'x', 'y', 'z']
35048 *
35049 * @param {string} name - The name of the property to get.
35050 *
35051 * @returns An array of strings.
35052 */
35053function parsePropPath(name) {
35054  // foo[x][y][z]
35055  // foo.x.y.z
35056  // foo-x-y-z
35057  // foo x y z
35058  return _utils_js__WEBPACK_IMPORTED_MODULE_0__["default"].matchAll(/\w+|\[(\w*)]/g, name).map(match => {
35059    return match[0] === '[]' ? '' : match[1] || match[0];
35060  });
35061}
35062
35063/**
35064 * Convert an array to an object.
35065 *
35066 * @param {Array<any>} arr - The array to convert to an object.
35067 *
35068 * @returns An object with the same keys and values as the array.
35069 */
35070function arrayToObject(arr) {
35071  const obj = {};
35072  const keys = Object.keys(arr);
35073  let i;
35074  const len = keys.length;
35075  let key;
35076  for (i = 0; i < len; i++) {
35077    key = keys[i];
35078    obj[key] = arr[key];
35079  }
35080  return obj;
35081}
35082
35083/**
35084 * It takes a FormData object and returns a JavaScript object
35085 *
35086 * @param {string} formData The FormData object to convert to JSON.
35087 *
35088 * @returns {Object<string, any> | null} The converted object.
35089 */
35090function formDataToJSON(formData) {
35091  function buildPath(path, value, target, index) {
35092    let name = path[index++];
35093
35094    if (name === '__proto__') return true;
35095
35096    const isNumericKey = Number.isFinite(+name);
35097    const isLast = index >= path.length;
35098    name = !name && _utils_js__WEBPACK_IMPORTED_MODULE_0__["default"].isArray(target) ? target.length : name;
35099
35100    if (isLast) {
35101      if (_utils_js__WEBPACK_IMPORTED_MODULE_0__["default"].hasOwnProp(target, name)) {
35102        target[name] = [target[name], value];
35103      } else {
35104        target[name] = value;
35105      }
35106
35107      return !isNumericKey;
35108    }
35109
35110    if (!target[name] || !_utils_js__WEBPACK_IMPORTED_MODULE_0__["default"].isObject(target[name])) {
35111      target[name] = [];
35112    }
35113
35114    const result = buildPath(path, value, target[name], index);
35115
35116    if (result && _utils_js__WEBPACK_IMPORTED_MODULE_0__["default"].isArray(target[name])) {
35117      target[name] = arrayToObject(target[name]);
35118    }
35119
35120    return !isNumericKey;
35121  }
35122
35123  if (_utils_js__WEBPACK_IMPORTED_MODULE_0__["default"].isFormData(formData) && _utils_js__WEBPACK_IMPORTED_MODULE_0__["default"].isFunction(formData.entries)) {
35124    const obj = {};
35125
35126    _utils_js__WEBPACK_IMPORTED_MODULE_0__["default"].forEachEntry(formData, (name, value) => {
35127      buildPath(parsePropPath(name), value, obj, 0);
35128    });
35129
35130    return obj;
35131  }
35132
35133  return null;
35134}
35135
35136/* harmony default export */ __webpack_exports__["default"] = (formDataToJSON);
35137
35138
35139/***/ }),
35140
vendor: 1,077 bytes, lines 35141-35169
35141/***/ "./node_modules/axios/lib/helpers/isAbsoluteURL.js":
35142/*!*********************************************************!*\
35143  !*** ./node_modules/axios/lib/helpers/isAbsoluteURL.js ***!
35144  \*********************************************************/
35145/*! exports provided: default */
35146/***/ (function(module, __webpack_exports__, __webpack_require__) {
35147
35148"use strict";
35149__webpack_require__.r(__webpack_exports__);
35150/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "default", function() { return isAbsoluteURL; });
35151
35152
35153/**
35154 * Determines whether the specified URL is absolute
35155 *
35156 * @param {string} url The URL to test
35157 *
35158 * @returns {boolean} True if the specified URL is absolute, otherwise false
35159 */
35160function isAbsoluteURL(url) {
35161  // A URL is considered absolute if it begins with "<scheme>://" or "//" (protocol-relative URL).
35162  // RFC 3986 defines scheme name as a sequence of characters beginning with a letter and followed
35163  // by any combination of letters, digits, plus, period, or hyphen.
35164  return /^([a-z][a-z\d+\-.]*:)?\/\//i.test(url);
35165}
35166
35167
35168/***/ }),
35169
vendor: 1,039 bytes, lines 35170-35198
35170/***/ "./node_modules/axios/lib/helpers/isAxiosError.js":
35171/*!********************************************************!*\
35172  !*** ./node_modules/axios/lib/helpers/isAxiosError.js ***!
35173  \********************************************************/
35174/*! exports provided: default */
35175/***/ (function(module, __webpack_exports__, __webpack_require__) {
35176
35177"use strict";
35178__webpack_require__.r(__webpack_exports__);
35179/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "default", function() { return isAxiosError; });
35180/* harmony import */ var _utils_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./../utils.js */ "./node_modules/axios/lib/utils.js");
35181
35182
35183
35184
35185/**
35186 * Determines whether the payload is an error thrown by Axios
35187 *
35188 * @param {*} payload The value to test
35189 *
35190 * @returns {boolean} True if the payload is an error thrown by Axios, otherwise false
35191 */
35192function isAxiosError(payload) {
35193  return _utils_js__WEBPACK_IMPORTED_MODULE_0__["default"].isObject(payload) && (payload.isAxiosError === true);
35194}
35195
35196
35197/***/ }),
35198
vendor: 3,062 bytes, lines 35199-35280
35199/***/ "./node_modules/axios/lib/helpers/isURLSameOrigin.js":
35200/*!***********************************************************!*\
35201  !*** ./node_modules/axios/lib/helpers/isURLSameOrigin.js ***!
35202  \***********************************************************/
35203/*! exports provided: default */
35204/***/ (function(module, __webpack_exports__, __webpack_require__) {
35205
35206"use strict";
35207__webpack_require__.r(__webpack_exports__);
35208/* harmony import */ var _utils_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./../utils.js */ "./node_modules/axios/lib/utils.js");
35209/* harmony import */ var _platform_index_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../platform/index.js */ "./node_modules/axios/lib/platform/index.js");
35210
35211
35212
35213
35214
35215/* harmony default export */ __webpack_exports__["default"] = (_platform_index_js__WEBPACK_IMPORTED_MODULE_1__["default"].hasStandardBrowserEnv ?
35216
35217// Standard browser envs have full support of the APIs needed to test
35218// whether the request URL is of the same origin as current location.
35219  (function standardBrowserEnv() {
35220    const msie = /(msie|trident)/i.test(navigator.userAgent);
35221    const urlParsingNode = document.createElement('a');
35222    let originURL;
35223
35224    /**
35225    * Parse a URL to discover its components
35226    *
35227    * @param {String} url The URL to be parsed
35228    * @returns {Object}
35229    */
35230    function resolveURL(url) {
35231      let href = url;
35232
35233      if (msie) {
35234        // IE needs attribute set twice to normalize properties
35235        urlParsingNode.setAttribute('href', href);
35236        href = urlParsingNode.href;
35237      }
35238
35239      urlParsingNode.setAttribute('href', href);
35240
35241      // urlParsingNode provides the UrlUtils interface - http://url.spec.whatwg.org/#urlutils
35242      return {
35243        href: urlParsingNode.href,
35244        protocol: urlParsingNode.protocol ? urlParsingNode.protocol.replace(/:$/, '') : '',
35245        host: urlParsingNode.host,
35246        search: urlParsingNode.search ? urlParsingNode.search.replace(/^\?/, '') : '',
35247        hash: urlParsingNode.hash ? urlParsingNode.hash.replace(/^#/, '') : '',
35248        hostname: urlParsingNode.hostname,
35249        port: urlParsingNode.port,
35250        pathname: (urlParsingNode.pathname.charAt(0) === '/') ?
35251          urlParsingNode.pathname :
35252          '/' + urlParsingNode.pathname
35253      };
35254    }
35255
35256    originURL = resolveURL(window.location.href);
35257
35258    /**
35259    * Determine if a URL shares the same origin as the current location
35260    *
35261    * @param {String} requestURL The URL to test
35262    * @returns {boolean} True if URL shares the same origin, otherwise false
35263    */
35264    return function isURLSameOrigin(requestURL) {
35265      const parsed = (_utils_js__WEBPACK_IMPORTED_MODULE_0__["default"].isString(requestURL)) ? resolveURL(requestURL) : requestURL;
35266      return (parsed.protocol === originURL.protocol &&
35267          parsed.host === originURL.host);
35268    };
35269  })() :
35270
35271  // Non standard browser envs (web workers, react-native) lack needed support.
35272  (function nonStandardBrowserEnv() {
35273    return function isURLSameOrigin() {
35274      return true;
35275    };
35276  })());
35277
35278
35279/***/ }),
35280
vendor: 489 bytes, lines 35281-35295
35281/***/ "./node_modules/axios/lib/helpers/null.js":
35282/*!************************************************!*\
35283  !*** ./node_modules/axios/lib/helpers/null.js ***!
35284  \************************************************/
35285/*! exports provided: default */
35286/***/ (function(module, __webpack_exports__, __webpack_require__) {
35287
35288"use strict";
35289__webpack_require__.r(__webpack_exports__);
35290// eslint-disable-next-line strict
35291/* harmony default export */ __webpack_exports__["default"] = (null);
35292
35293
35294/***/ }),
35295
vendor: 1,989 bytes, lines 35296-35364
35296/***/ "./node_modules/axios/lib/helpers/parseHeaders.js":
35297/*!********************************************************!*\
35298  !*** ./node_modules/axios/lib/helpers/parseHeaders.js ***!
35299  \********************************************************/
35300/*! exports provided: default */
35301/***/ (function(module, __webpack_exports__, __webpack_require__) {
35302
35303"use strict";
35304__webpack_require__.r(__webpack_exports__);
35305/* harmony import */ var _utils_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./../utils.js */ "./node_modules/axios/lib/utils.js");
35306
35307
35308
35309
35310// RawAxiosHeaders whose duplicates are ignored by node
35311// c.f. https://nodejs.org/api/http.html#http_message_headers
35312const ignoreDuplicateOf = _utils_js__WEBPACK_IMPORTED_MODULE_0__["default"].toObjectSet([
35313  'age', 'authorization', 'content-length', 'content-type', 'etag',
35314  'expires', 'from', 'host', 'if-modified-since', 'if-unmodified-since',
35315  'last-modified', 'location', 'max-forwards', 'proxy-authorization',
35316  'referer', 'retry-after', 'user-agent'
35317]);
35318
35319/**
35320 * Parse headers into an object
35321 *
35322 * ```
35323 * Date: Wed, 27 Aug 2014 08:58:49 GMT
35324 * Content-Type: application/json
35325 * Connection: keep-alive
35326 * Transfer-Encoding: chunked
35327 * ```
35328 *
35329 * @param {String} rawHeaders Headers needing to be parsed
35330 *
35331 * @returns {Object} Headers parsed into an object
35332 */
35333/* harmony default export */ __webpack_exports__["default"] = (rawHeaders => {
35334  const parsed = {};
35335  let key;
35336  let val;
35337  let i;
35338
35339  rawHeaders && rawHeaders.split('\n').forEach(function parser(line) {
35340    i = line.indexOf(':');
35341    key = line.substring(0, i).trim().toLowerCase();
35342    val = line.substring(i + 1).trim();
35343
35344    if (!key || (parsed[key] && ignoreDuplicateOf[key])) {
35345      return;
35346    }
35347
35348    if (key === 'set-cookie') {
35349      if (parsed[key]) {
35350        parsed[key].push(val);
35351      } else {
35352        parsed[key] = [val];
35353      }
35354    } else {
35355      parsed[key] = parsed[key] ? parsed[key] + ', ' + val : val;
35356    }
35357  });
35358
35359  return parsed;
35360});
35361
35362
35363/***/ }),
35364
vendor: 667 bytes, lines 35365-35384
35365/***/ "./node_modules/axios/lib/helpers/parseProtocol.js":
35366/*!*********************************************************!*\
35367  !*** ./node_modules/axios/lib/helpers/parseProtocol.js ***!
35368  \*********************************************************/
35369/*! exports provided: default */
35370/***/ (function(module, __webpack_exports__, __webpack_require__) {
35371
35372"use strict";
35373__webpack_require__.r(__webpack_exports__);
35374/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "default", function() { return parseProtocol; });
35375
35376
35377function parseProtocol(url) {
35378  const match = /^([-+\w]{1,25})(:?\/\/|:)/.exec(url);
35379  return match && match[1] || '';
35380}
35381
35382
35383/***/ }),
35384
vendor: 1,540 bytes, lines 35385-35452
35385/***/ "./node_modules/axios/lib/helpers/speedometer.js":
35386/*!*******************************************************!*\
35387  !*** ./node_modules/axios/lib/helpers/speedometer.js ***!
35388  \*******************************************************/
35389/*! exports provided: default */
35390/***/ (function(module, __webpack_exports__, __webpack_require__) {
35391
35392"use strict";
35393__webpack_require__.r(__webpack_exports__);
35394
35395
35396/**
35397 * Calculate data maxRate
35398 * @param {Number} [samplesCount= 10]
35399 * @param {Number} [min= 1000]
35400 * @returns {Function}
35401 */
35402function speedometer(samplesCount, min) {
35403  samplesCount = samplesCount || 10;
35404  const bytes = new Array(samplesCount);
35405  const timestamps = new Array(samplesCount);
35406  let head = 0;
35407  let tail = 0;
35408  let firstSampleTS;
35409
35410  min = min !== undefined ? min : 1000;
35411
35412  return function push(chunkLength) {
35413    const now = Date.now();
35414
35415    const startedAt = timestamps[tail];
35416
35417    if (!firstSampleTS) {
35418      firstSampleTS = now;
35419    }
35420
35421    bytes[head] = chunkLength;
35422    timestamps[head] = now;
35423
35424    let i = tail;
35425    let bytesCount = 0;
35426
35427    while (i !== head) {
35428      bytesCount += bytes[i++];
35429      i = i % samplesCount;
35430    }
35431
35432    head = (head + 1) % samplesCount;
35433
35434    if (head === tail) {
35435      tail = (tail + 1) % samplesCount;
35436    }
35437
35438    if (now - firstSampleTS < min) {
35439      return;
35440    }
35441
35442    const passed = startedAt && now - startedAt;
35443
35444    return passed ? Math.round(bytesCount * 1000 / passed) : undefined;
35445  };
35446}
35447
35448/* harmony default export */ __webpack_exports__["default"] = (speedometer);
35449
35450
35451/***/ }),
35452
vendor: 1,045 bytes, lines 35453-35494
35453/***/ "./node_modules/axios/lib/helpers/spread.js":
35454/*!**************************************************!*\
35455  !*** ./node_modules/axios/lib/helpers/spread.js ***!
35456  \**************************************************/
35457/*! exports provided: default */
35458/***/ (function(module, __webpack_exports__, __webpack_require__) {
35459
35460"use strict";
35461__webpack_require__.r(__webpack_exports__);
35462/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "default", function() { return spread; });
35463
35464
35465/**
35466 * Syntactic sugar for invoking a function and expanding an array for arguments.
35467 *
35468 * Common use case would be to use `Function.prototype.apply`.
35469 *
35470 *  ```js
35471 *  function f(x, y, z) {}
35472 *  var args = [1, 2, 3];
35473 *  f.apply(null, args);
35474 *  ```
35475 *
35476 * With `spread` this example can be re-written.
35477 *
35478 *  ```js
35479 *  spread(function(x, y, z) {})([1, 2, 3]);
35480 *  ```
35481 *
35482 * @param {Function} callback
35483 *
35484 * @returns {Function}
35485 */
35486function spread(callback) {
35487  return function wrap(arr) {
35488    return callback.apply(null, arr);
35489  };
35490}
35491
35492
35493/***/ }),
35494
vendor: 8,291 bytes, lines 35495-35730
35495/***/ "./node_modules/axios/lib/helpers/toFormData.js":
35496/*!******************************************************!*\
35497  !*** ./node_modules/axios/lib/helpers/toFormData.js ***!
35498  \******************************************************/
35499/*! exports provided: default */
35500/***/ (function(module, __webpack_exports__, __webpack_require__) {
35501
35502"use strict";
35503__webpack_require__.r(__webpack_exports__);
35504/* WEBPACK VAR INJECTION */(function(Buffer) {/* harmony import */ var _utils_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../utils.js */ "./node_modules/axios/lib/utils.js");
35505/* harmony import */ var _core_AxiosError_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../core/AxiosError.js */ "./node_modules/axios/lib/core/AxiosError.js");
35506/* harmony import */ var _platform_node_classes_FormData_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../platform/node/classes/FormData.js */ "./node_modules/axios/lib/helpers/null.js");
35507
35508
35509
35510
35511// temporary hotfix to avoid circular references until AxiosURLSearchParams is refactored
35512
35513
35514/**
35515 * Determines if the given thing is a array or js object.
35516 *
35517 * @param {string} thing - The object or array to be visited.
35518 *
35519 * @returns {boolean}
35520 */
35521function isVisitable(thing) {
35522  return _utils_js__WEBPACK_IMPORTED_MODULE_0__["default"].isPlainObject(thing) || _utils_js__WEBPACK_IMPORTED_MODULE_0__["default"].isArray(thing);
35523}
35524
35525/**
35526 * It removes the brackets from the end of a string
35527 *
35528 * @param {string} key - The key of the parameter.
35529 *
35530 * @returns {string} the key without the brackets.
35531 */
35532function removeBrackets(key) {
35533  return _utils_js__WEBPACK_IMPORTED_MODULE_0__["default"].endsWith(key, '[]') ? key.slice(0, -2) : key;
35534}
35535
35536/**
35537 * It takes a path, a key, and a boolean, and returns a string
35538 *
35539 * @param {string} path - The path to the current key.
35540 * @param {string} key - The key of the current object being iterated over.
35541 * @param {string} dots - If true, the key will be rendered with dots instead of brackets.
35542 *
35543 * @returns {string} The path to the current key.
35544 */
35545function renderKey(path, key, dots) {
35546  if (!path) return key;
35547  return path.concat(key).map(function each(token, i) {
35548    // eslint-disable-next-line no-param-reassign
35549    token = removeBrackets(token);
35550    return !dots && i ? '[' + token + ']' : token;
35551  }).join(dots ? '.' : '');
35552}
35553
35554/**
35555 * If the array is an array and none of its elements are visitable, then it's a flat array.
35556 *
35557 * @param {Array<any>} arr - The array to check
35558 *
35559 * @returns {boolean}
35560 */
35561function isFlatArray(arr) {
35562  return _utils_js__WEBPACK_IMPORTED_MODULE_0__["default"].isArray(arr) && !arr.some(isVisitable);
35563}
35564
35565const predicates = _utils_js__WEBPACK_IMPORTED_MODULE_0__["default"].toFlatObject(_utils_js__WEBPACK_IMPORTED_MODULE_0__["default"], {}, null, function filter(prop) {
35566  return /^is[A-Z]/.test(prop);
35567});
35568
35569/**
35570 * Convert a data object to FormData
35571 *
35572 * @param {Object} obj
35573 * @param {?Object} [formData]
35574 * @param {?Object} [options]
35575 * @param {Function} [options.visitor]
35576 * @param {Boolean} [options.metaTokens = true]
35577 * @param {Boolean} [options.dots = false]
35578 * @param {?Boolean} [options.indexes = false]
35579 *
35580 * @returns {Object}
35581 **/
35582
35583/**
35584 * It converts an object into a FormData object
35585 *
35586 * @param {Object<any, any>} obj - The object to convert to form data.
35587 * @param {string} formData - The FormData object to append to.
35588 * @param {Object<string, any>} options
35589 *
35590 * @returns
35591 */
35592function toFormData(obj, formData, options) {
35593  if (!_utils_js__WEBPACK_IMPORTED_MODULE_0__["default"].isObject(obj)) {
35594    throw new TypeError('target must be an object');
35595  }
35596
35597  // eslint-disable-next-line no-param-reassign
35598  formData = formData || new (_platform_node_classes_FormData_js__WEBPACK_IMPORTED_MODULE_2__["default"] || FormData)();
35599
35600  // eslint-disable-next-line no-param-reassign
35601  options = _utils_js__WEBPACK_IMPORTED_MODULE_0__["default"].toFlatObject(options, {
35602    metaTokens: true,
35603    dots: false,
35604    indexes: false
35605  }, false, function defined(option, source) {
35606    // eslint-disable-next-line no-eq-null,eqeqeq
35607    return !_utils_js__WEBPACK_IMPORTED_MODULE_0__["default"].isUndefined(source[option]);
35608  });
35609
35610  const metaTokens = options.metaTokens;
35611  // eslint-disable-next-line no-use-before-define
35612  const visitor = options.visitor || defaultVisitor;
35613  const dots = options.dots;
35614  const indexes = options.indexes;
35615  const _Blob = options.Blob || typeof Blob !== 'undefined' && Blob;
35616  const useBlob = _Blob && _utils_js__WEBPACK_IMPORTED_MODULE_0__["default"].isSpecCompliantForm(formData);
35617
35618  if (!_utils_js__WEBPACK_IMPORTED_MODULE_0__["default"].isFunction(visitor)) {
35619    throw new TypeError('visitor must be a function');
35620  }
35621
35622  function convertValue(value) {
35623    if (value === null) return '';
35624
35625    if (_utils_js__WEBPACK_IMPORTED_MODULE_0__["default"].isDate(value)) {
35626      return value.toISOString();
35627    }
35628
35629    if (!useBlob && _utils_js__WEBPACK_IMPORTED_MODULE_0__["default"].isBlob(value)) {
35630      throw new _core_AxiosError_js__WEBPACK_IMPORTED_MODULE_1__["default"]('Blob is not supported. Use a Buffer instead.');
35631    }
35632
35633    if (_utils_js__WEBPACK_IMPORTED_MODULE_0__["default"].isArrayBuffer(value) || _utils_js__WEBPACK_IMPORTED_MODULE_0__["default"].isTypedArray(value)) {
35634      return useBlob && typeof Blob === 'function' ? new Blob([value]) : Buffer.from(value);
35635    }
35636
35637    return value;
35638  }
35639
35640  /**
35641   * Default visitor.
35642   *
35643   * @param {*} value
35644   * @param {String|Number} key
35645   * @param {Array<String|Number>} path
35646   * @this {FormData}
35647   *
35648   * @returns {boolean} return true to visit the each prop of the value recursively
35649   */
35650  function defaultVisitor(value, key, path) {
35651    let arr = value;
35652
35653    if (value && !path && typeof value === 'object') {
35654      if (_utils_js__WEBPACK_IMPORTED_MODULE_0__["default"].endsWith(key, '{}')) {
35655        // eslint-disable-next-line no-param-reassign
35656        key = metaTokens ? key : key.slice(0, -2);
35657        // eslint-disable-next-line no-param-reassign
35658        value = JSON.stringify(value);
35659      } else if (
35660        (_utils_js__WEBPACK_IMPORTED_MODULE_0__["default"].isArray(value) && isFlatArray(value)) ||
35661        ((_utils_js__WEBPACK_IMPORTED_MODULE_0__["default"].isFileList(value) || _utils_js__WEBPACK_IMPORTED_MODULE_0__["default"].endsWith(key, '[]')) && (arr = _utils_js__WEBPACK_IMPORTED_MODULE_0__["default"].toArray(value))
35662        )) {
35663        // eslint-disable-next-line no-param-reassign
35664        key = removeBrackets(key);
35665
35666        arr.forEach(function each(el, index) {
35667          !(_utils_js__WEBPACK_IMPORTED_MODULE_0__["default"].isUndefined(el) || el === null) && formData.append(
35668            // eslint-disable-next-line no-nested-ternary
35669            indexes === true ? renderKey([key], index, dots) : (indexes === null ? key : key + '[]'),
35670            convertValue(el)
35671          );
35672        });
35673        return false;
35674      }
35675    }
35676
35677    if (isVisitable(value)) {
35678      return true;
35679    }
35680
35681    formData.append(renderKey(path, key, dots), convertValue(value));
35682
35683    return false;
35684  }
35685
35686  const stack = [];
35687
35688  const exposedHelpers = Object.assign(predicates, {
35689    defaultVisitor,
35690    convertValue,
35691    isVisitable
35692  });
35693
35694  function build(value, path) {
35695    if (_utils_js__WEBPACK_IMPORTED_MODULE_0__["default"].isUndefined(value)) return;
35696
35697    if (stack.indexOf(value) !== -1) {
35698      throw Error('Circular reference detected in ' + path.join('.'));
35699    }
35700
35701    stack.push(value);
35702
35703    _utils_js__WEBPACK_IMPORTED_MODULE_0__["default"].forEach(value, function each(el, key) {
35704      const result = !(_utils_js__WEBPACK_IMPORTED_MODULE_0__["default"].isUndefined(el) || el === null) && visitor.call(
35705        formData, el, _utils_js__WEBPACK_IMPORTED_MODULE_0__["default"].isString(key) ? key.trim() : key, path, exposedHelpers
35706      );
35707
35708      if (result === true) {
35709        build(el, path ? path.concat(key) : [key]);
35710      }
35711    });
35712
35713    stack.pop();
35714  }
35715
35716  if (!_utils_js__WEBPACK_IMPORTED_MODULE_0__["default"].isObject(obj)) {
35717    throw new TypeError('data must be an object');
35718  }
35719
35720  build(obj);
35721
35722  return formData;
35723}
35724
35725/* harmony default export */ __webpack_exports__["default"] = (toFormData);
35726
35727/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./../../../buffer/index.js */ "./node_modules/buffer/index.js").Buffer))
35728
35729/***/ }),
35730
vendor: 1,636 bytes, lines 35731-35765
35731/***/ "./node_modules/axios/lib/helpers/toURLEncodedForm.js":
35732/*!************************************************************!*\
35733  !*** ./node_modules/axios/lib/helpers/toURLEncodedForm.js ***!
35734  \************************************************************/
35735/*! exports provided: default */
35736/***/ (function(module, __webpack_exports__, __webpack_require__) {
35737
35738"use strict";
35739__webpack_require__.r(__webpack_exports__);
35740/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "default", function() { return toURLEncodedForm; });
35741/* harmony import */ var _utils_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../utils.js */ "./node_modules/axios/lib/utils.js");
35742/* harmony import */ var _toFormData_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./toFormData.js */ "./node_modules/axios/lib/helpers/toFormData.js");
35743/* harmony import */ var _platform_index_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../platform/index.js */ "./node_modules/axios/lib/platform/index.js");
35744
35745
35746
35747
35748
35749
35750function toURLEncodedForm(data, options) {
35751  return Object(_toFormData_js__WEBPACK_IMPORTED_MODULE_1__["default"])(data, new _platform_index_js__WEBPACK_IMPORTED_MODULE_2__["default"].classes.URLSearchParams(), Object.assign({
35752    visitor: function(value, key, path, helpers) {
35753      if (_platform_index_js__WEBPACK_IMPORTED_MODULE_2__["default"].isNode && _utils_js__WEBPACK_IMPORTED_MODULE_0__["default"].isBuffer(value)) {
35754        this.append(key, value.toString('base64'));
35755        return false;
35756      }
35757
35758      return helpers.defaultVisitor.apply(this, arguments);
35759    }
35760  }, options));
35761}
35762
35763
35764/***/ }),
35765
vendor: 3,673 bytes, lines 35766-35871
35766/***/ "./node_modules/axios/lib/helpers/validator.js":
35767/*!*****************************************************!*\
35768  !*** ./node_modules/axios/lib/helpers/validator.js ***!
35769  \*****************************************************/
35770/*! exports provided: default */
35771/***/ (function(module, __webpack_exports__, __webpack_require__) {
35772
35773"use strict";
35774__webpack_require__.r(__webpack_exports__);
35775/* harmony import */ var _env_data_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../env/data.js */ "./node_modules/axios/lib/env/data.js");
35776/* harmony import */ var _core_AxiosError_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../core/AxiosError.js */ "./node_modules/axios/lib/core/AxiosError.js");
35777
35778
35779
35780
35781
35782const validators = {};
35783
35784// eslint-disable-next-line func-names
35785['object', 'boolean', 'number', 'function', 'string', 'symbol'].forEach((type, i) => {
35786  validators[type] = function validator(thing) {
35787    return typeof thing === type || 'a' + (i < 1 ? 'n ' : ' ') + type;
35788  };
35789});
35790
35791const deprecatedWarnings = {};
35792
35793/**
35794 * Transitional option validator
35795 *
35796 * @param {function|boolean?} validator - set to false if the transitional option has been removed
35797 * @param {string?} version - deprecated version / removed since version
35798 * @param {string?} message - some message with additional info
35799 *
35800 * @returns {function}
35801 */
35802validators.transitional = function transitional(validator, version, message) {
35803  function formatMessage(opt, desc) {
35804    return '[Axios v' + _env_data_js__WEBPACK_IMPORTED_MODULE_0__["VERSION"] + '] Transitional option \'' + opt + '\'' + desc + (message ? '. ' + message : '');
35805  }
35806
35807  // eslint-disable-next-line func-names
35808  return (value, opt, opts) => {
35809    if (validator === false) {
35810      throw new _core_AxiosError_js__WEBPACK_IMPORTED_MODULE_1__["default"](
35811        formatMessage(opt, ' has been removed' + (version ? ' in ' + version : '')),
35812        _core_AxiosError_js__WEBPACK_IMPORTED_MODULE_1__["default"].ERR_DEPRECATED
35813      );
35814    }
35815
35816    if (version && !deprecatedWarnings[opt]) {
35817      deprecatedWarnings[opt] = true;
35818      // eslint-disable-next-line no-console
35819      console.warn(
35820        formatMessage(
35821          opt,
35822          ' has been deprecated since v' + version + ' and will be removed in the near future'
35823        )
35824      );
35825    }
35826
35827    return validator ? validator(value, opt, opts) : true;
35828  };
35829};
35830
35831/**
35832 * Assert object's properties type
35833 *
35834 * @param {object} options
35835 * @param {object} schema
35836 * @param {boolean?} allowUnknown
35837 *
35838 * @returns {object}
35839 */
35840
35841function assertOptions(options, schema, allowUnknown) {
35842  if (typeof options !== 'object') {
35843    throw new _core_AxiosError_js__WEBPACK_IMPORTED_MODULE_1__["default"]('options must be an object', _core_AxiosError_js__WEBPACK_IMPORTED_MODULE_1__["default"].ERR_BAD_OPTION_VALUE);
35844  }
35845  const keys = Object.keys(options);
35846  let i = keys.length;
35847  while (i-- > 0) {
35848    const opt = keys[i];
35849    const validator = schema[opt];
35850    if (validator) {
35851      const value = options[opt];
35852      const result = value === undefined || validator(value, opt, options);
35853      if (result !== true) {
35854        throw new _core_AxiosError_js__WEBPACK_IMPORTED_MODULE_1__["default"]('option ' + opt + ' must be ' + result, _core_AxiosError_js__WEBPACK_IMPORTED_MODULE_1__["default"].ERR_BAD_OPTION_VALUE);
35855      }
35856      continue;
35857    }
35858    if (allowUnknown !== true) {
35859      throw new _core_AxiosError_js__WEBPACK_IMPORTED_MODULE_1__["default"]('Unknown option ' + opt, _core_AxiosError_js__WEBPACK_IMPORTED_MODULE_1__["default"].ERR_BAD_OPTION);
35860    }
35861  }
35862}
35863
35864/* harmony default export */ __webpack_exports__["default"] = ({
35865  assertOptions,
35866  validators
35867});
35868
35869
35870/***/ }),
35871
vendor: 561 bytes, lines 35872-35887
35872/***/ "./node_modules/axios/lib/platform/browser/classes/Blob.js":
35873/*!*****************************************************************!*\
35874  !*** ./node_modules/axios/lib/platform/browser/classes/Blob.js ***!
35875  \*****************************************************************/
35876/*! exports provided: default */
35877/***/ (function(module, __webpack_exports__, __webpack_require__) {
35878
35879"use strict";
35880__webpack_require__.r(__webpack_exports__);
35881
35882
35883/* harmony default export */ __webpack_exports__["default"] = (typeof Blob !== 'undefined' ? Blob : null);
35884
35885
35886/***/ }),
35887
vendor: 585 bytes, lines 35888-35903
35888/***/ "./node_modules/axios/lib/platform/browser/classes/FormData.js":
35889/*!*********************************************************************!*\
35890  !*** ./node_modules/axios/lib/platform/browser/classes/FormData.js ***!
35891  \*********************************************************************/
35892/*! exports provided: default */
35893/***/ (function(module, __webpack_exports__, __webpack_require__) {
35894
35895"use strict";
35896__webpack_require__.r(__webpack_exports__);
35897
35898
35899/* harmony default export */ __webpack_exports__["default"] = (typeof FormData !== 'undefined' ? FormData : null);
35900
35901
35902/***/ }),
35903
vendor: 914 bytes, lines 35904-35921
35904/***/ "./node_modules/axios/lib/platform/browser/classes/URLSearchParams.js":
35905/*!****************************************************************************!*\
35906  !*** ./node_modules/axios/lib/platform/browser/classes/URLSearchParams.js ***!
35907  \****************************************************************************/
35908/*! exports provided: default */
35909/***/ (function(module, __webpack_exports__, __webpack_require__) {
35910
35911"use strict";
35912__webpack_require__.r(__webpack_exports__);
35913/* harmony import */ var _helpers_AxiosURLSearchParams_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../../helpers/AxiosURLSearchParams.js */ "./node_modules/axios/lib/helpers/AxiosURLSearchParams.js");
35914
35915
35916
35917/* harmony default export */ __webpack_exports__["default"] = (typeof URLSearchParams !== 'undefined' ? URLSearchParams : _helpers_AxiosURLSearchParams_js__WEBPACK_IMPORTED_MODULE_0__["default"]);
35918
35919
35920/***/ }),
35921
vendor: 1,414 bytes, lines 35922-35950
35922/***/ "./node_modules/axios/lib/platform/browser/index.js":
35923/*!**********************************************************!*\
35924  !*** ./node_modules/axios/lib/platform/browser/index.js ***!
35925  \**********************************************************/
35926/*! exports provided: default */
35927/***/ (function(module, __webpack_exports__, __webpack_require__) {
35928
35929"use strict";
35930__webpack_require__.r(__webpack_exports__);
35931/* harmony import */ var _classes_URLSearchParams_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./classes/URLSearchParams.js */ "./node_modules/axios/lib/platform/browser/classes/URLSearchParams.js");
35932/* harmony import */ var _classes_FormData_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./classes/FormData.js */ "./node_modules/axios/lib/platform/browser/classes/FormData.js");
35933/* harmony import */ var _classes_Blob_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./classes/Blob.js */ "./node_modules/axios/lib/platform/browser/classes/Blob.js");
35934
35935
35936
35937
35938/* harmony default export */ __webpack_exports__["default"] = ({
35939  isBrowser: true,
35940  classes: {
35941    URLSearchParams: _classes_URLSearchParams_js__WEBPACK_IMPORTED_MODULE_0__["default"],
35942    FormData: _classes_FormData_js__WEBPACK_IMPORTED_MODULE_1__["default"],
35943    Blob: _classes_Blob_js__WEBPACK_IMPORTED_MODULE_2__["default"]
35944  },
35945  protocols: ['http', 'https', 'file', 'blob', 'url', 'data']
35946});
35947
35948
35949/***/ }),
35950
vendor: 2,300 bytes, lines 35951-36009
35951/***/ "./node_modules/axios/lib/platform/common/utils.js":
35952/*!*********************************************************!*\
35953  !*** ./node_modules/axios/lib/platform/common/utils.js ***!
35954  \*********************************************************/
35955/*! exports provided: hasBrowserEnv, hasStandardBrowserWebWorkerEnv, hasStandardBrowserEnv */
35956/***/ (function(module, __webpack_exports__, __webpack_require__) {
35957
35958"use strict";
35959__webpack_require__.r(__webpack_exports__);
35960/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "hasBrowserEnv", function() { return hasBrowserEnv; });
35961/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "hasStandardBrowserWebWorkerEnv", function() { return hasStandardBrowserWebWorkerEnv; });
35962/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "hasStandardBrowserEnv", function() { return hasStandardBrowserEnv; });
35963const hasBrowserEnv = typeof window !== 'undefined' && typeof document !== 'undefined';
35964
35965/**
35966 * Determine if we're running in a standard browser environment
35967 *
35968 * This allows axios to run in a web worker, and react-native.
35969 * Both environments support XMLHttpRequest, but not fully standard globals.
35970 *
35971 * web workers:
35972 *  typeof window -> undefined
35973 *  typeof document -> undefined
35974 *
35975 * react-native:
35976 *  navigator.product -> 'ReactNative'
35977 * nativescript
35978 *  navigator.product -> 'NativeScript' or 'NS'
35979 *
35980 * @returns {boolean}
35981 */
35982const hasStandardBrowserEnv = (
35983  (product) => {
35984    return hasBrowserEnv && ['ReactNative', 'NativeScript', 'NS'].indexOf(product) < 0
35985  })(typeof navigator !== 'undefined' && navigator.product);
35986
35987/**
35988 * Determine if we're running in a standard browser webWorker environment
35989 *
35990 * Although the `isStandardBrowserEnv` method indicates that
35991 * `allows axios to run in a web worker`, the WebWorker will still be
35992 * filtered out due to its judgment standard
35993 * `typeof window !== 'undefined' && typeof document !== 'undefined'`.
35994 * This leads to a problem when axios post `FormData` in webWorker
35995 */
35996const hasStandardBrowserWebWorkerEnv = (() => {
35997  return (
35998    typeof WorkerGlobalScope !== 'undefined' &&
35999    // eslint-disable-next-line no-undef
36000    self instanceof WorkerGlobalScope &&
36001    typeof self.importScripts === 'function'
36002  );
36003})();
36004
36005
36006
36007
36008/***/ }),
36009
vendor: 917 bytes, lines 36010-36031
36010/***/ "./node_modules/axios/lib/platform/index.js":
36011/*!**************************************************!*\
36012  !*** ./node_modules/axios/lib/platform/index.js ***!
36013  \**************************************************/
36014/*! exports provided: default */
36015/***/ (function(module, __webpack_exports__, __webpack_require__) {
36016
36017"use strict";
36018__webpack_require__.r(__webpack_exports__);
36019/* harmony import */ var _node_index_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./node/index.js */ "./node_modules/axios/lib/platform/browser/index.js");
36020/* harmony import */ var _common_utils_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./common/utils.js */ "./node_modules/axios/lib/platform/common/utils.js");
36021
36022
36023
36024/* harmony default export */ __webpack_exports__["default"] = ({
36025  ..._common_utils_js__WEBPACK_IMPORTED_MODULE_1__,
36026  ..._node_index_js__WEBPACK_IMPORTED_MODULE_0__["default"]
36027});
36028
36029
36030/***/ }),
36031
vendor: 54,426 bytes, lines 36032-37441
36032/***/ "./node_modules/axios/lib/utils.js":
36033/*!*****************************************!*\
36034  !*** ./node_modules/axios/lib/utils.js ***!
36035  \*****************************************/
36036/*! exports provided: default */
36037/***/ (function(module, __webpack_exports__, __webpack_require__) {
36038
36039"use strict";
36040__webpack_require__.r(__webpack_exports__);
36041/* WEBPACK VAR INJECTION */(function(global) {/* harmony import */ var _helpers_bind_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./helpers/bind.js */ "./node_modules/axios/lib/helpers/bind.js");
36042
36043
36044
36045
36046// utils is a library of generic helper functions non-specific to axios
36047
36048const {toString} = Object.prototype;
36049const {getPrototypeOf} = Object;
36050
36051const kindOf = (cache => thing => {
36052    const str = toString.call(thing);
36053    return cache[str] || (cache[str] = str.slice(8, -1).toLowerCase());
36054})(Object.create(null));
36055
36056const kindOfTest = (type) => {
36057  type = type.toLowerCase();
36058  return (thing) => kindOf(thing) === type
36059}
36060
36061const typeOfTest = type => thing => typeof thing === type;
36062
36063/**
36064 * Determine if a value is an Array
36065 *
36066 * @param {Object} val The value to test
36067 *
36068 * @returns {boolean} True if value is an Array, otherwise false
36069 */
36070const {isArray} = Array;
36071
36072/**
36073 * Determine if a value is undefined
36074 *
36075 * @param {*} val The value to test
36076 *
36077 * @returns {boolean} True if the value is undefined, otherwise false
36078 */
36079const isUndefined = typeOfTest('undefined');
36080
36081/**
36082 * Determine if a value is a Buffer
36083 *
36084 * @param {*} val The value to test
36085 *
36086 * @returns {boolean} True if value is a Buffer, otherwise false
36087 */
36088function isBuffer(val) {
36089  return val !== null && !isUndefined(val) && val.constructor !== null && !isUndefined(val.constructor)
36090    && isFunction(val.constructor.isBuffer) && val.constructor.isBuffer(val);
36091}
36092
36093/**
36094 * Determine if a value is an ArrayBuffer
36095 *
36096 * @param {*} val The value to test
36097 *
36098 * @returns {boolean} True if value is an ArrayBuffer, otherwise false
36099 */
36100const isArrayBuffer = kindOfTest('ArrayBuffer');
36101
36102
36103/**
36104 * Determine if a value is a view on an ArrayBuffer
36105 *
36106 * @param {*} val The value to test
36107 *
36108 * @returns {boolean} True if value is a view on an ArrayBuffer, otherwise false
36109 */
36110function isArrayBufferView(val) {
36111  let result;
36112  if ((typeof ArrayBuffer !== 'undefined') && (ArrayBuffer.isView)) {
36113    result = ArrayBuffer.isView(val);
36114  } else {
36115    result = (val) && (val.buffer) && (isArrayBuffer(val.buffer));
36116  }
36117  return result;
36118}
36119
36120/**
36121 * Determine if a value is a String
36122 *
36123 * @param {*} val The value to test
36124 *
36125 * @returns {boolean} True if value is a String, otherwise false
36126 */
36127const isString = typeOfTest('string');
36128
36129/**
36130 * Determine if a value is a Function
36131 *
36132 * @param {*} val The value to test
36133 * @returns {boolean} True if value is a Function, otherwise false
36134 */
36135const isFunction = typeOfTest('function');
36136
36137/**
36138 * Determine if a value is a Number
36139 *
36140 * @param {*} val The value to test
36141 *
36142 * @returns {boolean} True if value is a Number, otherwise false
36143 */
36144const isNumber = typeOfTest('number');
36145
36146/**
36147 * Determine if a value is an Object
36148 *
36149 * @param {*} thing The value to test
36150 *
36151 * @returns {boolean} True if value is an Object, otherwise false
36152 */
36153const isObject = (thing) => thing !== null && typeof thing === 'object';
36154
36155/**
36156 * Determine if a value is a Boolean
36157 *
36158 * @param {*} thing The value to test
36159 * @returns {boolean} True if value is a Boolean, otherwise false
36160 */
36161const isBoolean = thing => thing === true || thing === false;
36162
36163/**
36164 * Determine if a value is a plain Object
36165 *
36166 * @param {*} val The value to test
36167 *
36168 * @returns {boolean} True if value is a plain Object, otherwise false
36169 */
36170const isPlainObject = (val) => {
36171  if (kindOf(val) !== 'object') {
36172    return false;
36173  }
36174
36175  const prototype = getPrototypeOf(val);
36176  return (prototype === null || prototype === Object.prototype || Object.getPrototypeOf(prototype) === null) && !(Symbol.toStringTag in val) && !(Symbol.iterator in val);
36177}
36178
36179/**
36180 * Determine if a value is a Date
36181 *
36182 * @param {*} val The value to test
36183 *
36184 * @returns {boolean} True if value is a Date, otherwise false
36185 */
36186const isDate = kindOfTest('Date');
36187
36188/**
36189 * Determine if a value is a File
36190 *
36191 * @param {*} val The value to test
36192 *
36193 * @returns {boolean} True if value is a File, otherwise false
36194 */
36195const isFile = kindOfTest('File');
36196
36197/**
36198 * Determine if a value is a Blob
36199 *
36200 * @param {*} val The value to test
36201 *
36202 * @returns {boolean} True if value is a Blob, otherwise false
36203 */
36204const isBlob = kindOfTest('Blob');
36205
36206/**
36207 * Determine if a value is a FileList
36208 *
36209 * @param {*} val The value to test
36210 *
36211 * @returns {boolean} True if value is a File, otherwise false
36212 */
36213const isFileList = kindOfTest('FileList');
36214
36215/**
36216 * Determine if a value is a Stream
36217 *
36218 * @param {*} val The value to test
36219 *
36220 * @returns {boolean} True if value is a Stream, otherwise false
36221 */
36222const isStream = (val) => isObject(val) && isFunction(val.pipe);
36223
36224/**
36225 * Determine if a value is a FormData
36226 *
36227 * @param {*} thing The value to test
36228 *
36229 * @returns {boolean} True if value is an FormData, otherwise false
36230 */
36231const isFormData = (thing) => {
36232  let kind;
36233  return thing && (
36234    (typeof FormData === 'function' && thing instanceof FormData) || (
36235      isFunction(thing.append) && (
36236        (kind = kindOf(thing)) === 'formdata' ||
36237        // detect form-data instance
36238        (kind === 'object' && isFunction(thing.toString) && thing.toString() === '[object FormData]')
36239      )
36240    )
36241  )
36242}
36243
36244/**
36245 * Determine if a value is a URLSearchParams object
36246 *
36247 * @param {*} val The value to test
36248 *
36249 * @returns {boolean} True if value is a URLSearchParams object, otherwise false
36250 */
36251const isURLSearchParams = kindOfTest('URLSearchParams');
36252
36253/**
36254 * Trim excess whitespace off the beginning and end of a string
36255 *
36256 * @param {String} str The String to trim
36257 *
36258 * @returns {String} The String freed of excess whitespace
36259 */
36260const trim = (str) => str.trim ?
36261  str.trim() : str.replace(/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g, '');
36262
36263/**
36264 * Iterate over an Array or an Object invoking a function for each item.
36265 *
36266 * If `obj` is an Array callback will be called passing
36267 * the value, index, and complete array for each item.
36268 *
36269 * If 'obj' is an Object callback will be called passing
36270 * the value, key, and complete object for each property.
36271 *
36272 * @param {Object|Array} obj The object to iterate
36273 * @param {Function} fn The callback to invoke for each item
36274 *
36275 * @param {Boolean} [allOwnKeys = false]
36276 * @returns {any}
36277 */
36278function forEach(obj, fn, {allOwnKeys = false} = {}) {
36279  // Don't bother if no value provided
36280  if (obj === null || typeof obj === 'undefined') {
36281    return;
36282  }
36283
36284  let i;
36285  let l;
36286
36287  // Force an array if not already something iterable
36288  if (typeof obj !== 'object') {
36289    /*eslint no-param-reassign:0*/
36290    obj = [obj];
36291  }
36292
36293  if (isArray(obj)) {
36294    // Iterate over array values
36295    for (i = 0, l = obj.length; i < l; i++) {
36296      fn.call(null, obj[i], i, obj);
36297    }
36298  } else {
36299    // Iterate over object keys
36300    const keys = allOwnKeys ? Object.getOwnPropertyNames(obj) : Object.keys(obj);
36301    const len = keys.length;
36302    let key;
36303
36304    for (i = 0; i < len; i++) {
36305      key = keys[i];
36306      fn.call(null, obj[key], key, obj);
36307    }
36308  }
36309}
36310
36311function findKey(obj, key) {
36312  key = key.toLowerCase();
36313  const keys = Object.keys(obj);
36314  let i = keys.length;
36315  let _key;
36316  while (i-- > 0) {
36317    _key = keys[i];
36318    if (key === _key.toLowerCase()) {
36319      return _key;
36320    }
36321  }
36322  return null;
36323}
36324
36325const _global = (() => {
36326  /*eslint no-undef:0*/
36327  if (typeof globalThis !== "undefined") return globalThis;
36328  return typeof self !== "undefined" ? self : (typeof window !== 'undefined' ? window : global)
36329})();
36330
36331const isContextDefined = (context) => !isUndefined(context) && context !== _global;
36332
36333/**
36334 * Accepts varargs expecting each argument to be an object, then
36335 * immutably merges the properties of each object and returns result.
36336 *
36337 * When multiple objects contain the same key the later object in
36338 * the arguments list will take precedence.
36339 *
36340 * Example:
36341 *
36342 * ```js
36343 * var result = merge({foo: 123}, {foo: 456});
36344 * console.log(result.foo); // outputs 456
36345 * ```
36346 *
36347 * @param {Object} obj1 Object to merge
36348 *
36349 * @returns {Object} Result of all merge properties
36350 */
36351function merge(/* obj1, obj2, obj3, ... */) {
36352  const {caseless} = isContextDefined(this) && this || {};
36353  const result = {};
36354  const assignValue = (val, key) => {
36355    const targetKey = caseless && findKey(result, key) || key;
36356    if (isPlainObject(result[targetKey]) && isPlainObject(val)) {
36357      result[targetKey] = merge(result[targetKey], val);
36358    } else if (isPlainObject(val)) {
36359      result[targetKey] = merge({}, val);
36360    } else if (isArray(val)) {
36361      result[targetKey] = val.slice();
36362    } else {
36363      result[targetKey] = val;
36364    }
36365  }
36366
36367  for (let i = 0, l = arguments.length; i < l; i++) {
36368    arguments[i] && forEach(arguments[i], assignValue);
36369  }
36370  return result;
36371}
36372
36373/**
36374 * Extends object a by mutably adding to it the properties of object b.
36375 *
36376 * @param {Object} a The object to be extended
36377 * @param {Object} b The object to copy properties from
36378 * @param {Object} thisArg The object to bind function to
36379 *
36380 * @param {Boolean} [allOwnKeys]
36381 * @returns {Object} The resulting value of object a
36382 */
36383const extend = (a, b, thisArg, {allOwnKeys}= {}) => {
36384  forEach(b, (val, key) => {
36385    if (thisArg && isFunction(val)) {
36386      a[key] = Object(_helpers_bind_js__WEBPACK_IMPORTED_MODULE_0__["default"])(val, thisArg);
36387    } else {
36388      a[key] = val;
36389    }
36390  }, {allOwnKeys});
36391  return a;
36392}
36393
36394/**
36395 * Remove byte order marker. This catches EF BB BF (the UTF-8 BOM)
36396 *
36397 * @param {string} content with BOM
36398 *
36399 * @returns {string} content value without BOM
36400 */
36401const stripBOM = (content) => {
36402  if (content.charCodeAt(0) === 0xFEFF) {
36403    content = content.slice(1);
36404  }
36405  return content;
36406}
36407
36408/**
36409 * Inherit the prototype methods from one constructor into another
36410 * @param {function} constructor
36411 * @param {function} superConstructor
36412 * @param {object} [props]
36413 * @param {object} [descriptors]
36414 *
36415 * @returns {void}
36416 */
36417const inherits = (constructor, superConstructor, props, descriptors) => {
36418  constructor.prototype = Object.create(superConstructor.prototype, descriptors);
36419  constructor.prototype.constructor = constructor;
36420  Object.defineProperty(constructor, 'super', {
36421    value: superConstructor.prototype
36422  });
36423  props && Object.assign(constructor.prototype, props);
36424}
36425
36426/**
36427 * Resolve object with deep prototype chain to a flat object
36428 * @param {Object} sourceObj source object
36429 * @param {Object} [destObj]
36430 * @param {Function|Boolean} [filter]
36431 * @param {Function} [propFilter]
36432 *
36433 * @returns {Object}
36434 */
36435const toFlatObject = (sourceObj, destObj, filter, propFilter) => {
36436  let props;
36437  let i;
36438  let prop;
36439  const merged = {};
36440
36441  destObj = destObj || {};
36442  // eslint-disable-next-line no-eq-null,eqeqeq
36443  if (sourceObj == null) return destObj;
36444
36445  do {
36446    props = Object.getOwnPropertyNames(sourceObj);
36447    i = props.length;
36448    while (i-- > 0) {
36449      prop = props[i];
36450      if ((!propFilter || propFilter(prop, sourceObj, destObj)) && !merged[prop]) {
36451        destObj[prop] = sourceObj[prop];
36452        merged[prop] = true;
36453      }
36454    }
36455    sourceObj = filter !== false && getPrototypeOf(sourceObj);
36456  } while (sourceObj && (!filter || filter(sourceObj, destObj)) && sourceObj !== Object.prototype);
36457
36458  return destObj;
36459}
36460
36461/**
36462 * Determines whether a string ends with the characters of a specified string
36463 *
36464 * @param {String} str
36465 * @param {String} searchString
36466 * @param {Number} [position= 0]
36467 *
36468 * @returns {boolean}
36469 */
36470const endsWith = (str, searchString, position) => {
36471  str = String(str);
36472  if (position === undefined || position > str.length) {
36473    position = str.length;
36474  }
36475  position -= searchString.length;
36476  const lastIndex = str.indexOf(searchString, position);
36477  return lastIndex !== -1 && lastIndex === position;
36478}
36479
36480
36481/**
36482 * Returns new array from array like object or null if failed
36483 *
36484 * @param {*} [thing]
36485 *
36486 * @returns {?Array}
36487 */
36488const toArray = (thing) => {
36489  if (!thing) return null;
36490  if (isArray(thing)) return thing;
36491  let i = thing.length;
36492  if (!isNumber(i)) return null;
36493  const arr = new Array(i);
36494  while (i-- > 0) {
36495    arr[i] = thing[i];
36496  }
36497  return arr;
36498}
36499
36500/**
36501 * Checking if the Uint8Array exists and if it does, it returns a function that checks if the
36502 * thing passed in is an instance of Uint8Array
36503 *
36504 * @param {TypedArray}
36505 *
36506 * @returns {Array}
36507 */
36508// eslint-disable-next-line func-names
36509const isTypedArray = (TypedArray => {
36510  // eslint-disable-next-line func-names
36511  return thing => {
36512    return TypedArray && thing instanceof TypedArray;
36513  };
36514})(typeof Uint8Array !== 'undefined' && getPrototypeOf(Uint8Array));
36515
36516/**
36517 * For each entry in the object, call the function with the key and value.
36518 *
36519 * @param {Object<any, any>} obj - The object to iterate over.
36520 * @param {Function} fn - The function to call for each entry.
36521 *
36522 * @returns {void}
36523 */
36524const forEachEntry = (obj, fn) => {
36525  const generator = obj && obj[Symbol.iterator];
36526
36527  const iterator = generator.call(obj);
36528
36529  let result;
36530
36531  while ((result = iterator.next()) && !result.done) {
36532    const pair = result.value;
36533    fn.call(obj, pair[0], pair[1]);
36534  }
36535}
36536
36537/**
36538 * It takes a regular expression and a string, and returns an array of all the matches
36539 *
36540 * @param {string} regExp - The regular expression to match against.
36541 * @param {string} str - The string to search.
36542 *
36543 * @returns {Array<boolean>}
36544 */
36545const matchAll = (regExp, str) => {
36546  let matches;
36547  const arr = [];
36548
36549  while ((matches = regExp.exec(str)) !== null) {
36550    arr.push(matches);
36551  }
36552
36553  return arr;
36554}
36555
36556/* Checking if the kindOfTest function returns true when passed an HTMLFormElement. */
36557const isHTMLForm = kindOfTest('HTMLFormElement');
36558
36559const toCamelCase = str => {
36560  return str.toLowerCase().replace(/[-_\s]([a-z\d])(\w*)/g,
36561    function replacer(m, p1, p2) {
36562      return p1.toUpperCase() + p2;
36563    }
36564  );
36565};
36566
36567/* Creating a function that will check if an object has a property. */
36568const hasOwnProperty = (({hasOwnProperty}) => (obj, prop) => hasOwnProperty.call(obj, prop))(Object.prototype);
36569
36570/**
36571 * Determine if a value is a RegExp object
36572 *
36573 * @param {*} val The value to test
36574 *
36575 * @returns {boolean} True if value is a RegExp object, otherwise false
36576 */
36577const isRegExp = kindOfTest('RegExp');
36578
36579const reduceDescriptors = (obj, reducer) => {
36580  const descriptors = Object.getOwnPropertyDescriptors(obj);
36581  const reducedDescriptors = {};
36582
36583  forEach(descriptors, (descriptor, name) => {
36584    let ret;
36585    if ((ret = reducer(descriptor, name, obj)) !== false) {
36586      reducedDescriptors[name] = ret || descriptor;
36587    }
36588  });
36589
36590  Object.defineProperties(obj, reducedDescriptors);
36591}
36592
36593/**
36594 * Makes all methods read-only
36595 * @param {Object} obj
36596 */
36597
36598const freezeMethods = (obj) => {
36599  reduceDescriptors(obj, (descriptor, name) => {
36600    // skip restricted props in strict mode
36601    if (isFunction(obj) && ['arguments', 'caller', 'callee'].indexOf(name) !== -1) {
36602      return false;
36603    }
36604
36605    const value = obj[name];
36606
36607    if (!isFunction(value)) return;
36608
36609    descriptor.enumerable = false;
36610
36611    if ('writable' in descriptor) {
36612      descriptor.writable = false;
36613      return;
36614    }
36615
36616    if (!descriptor.set) {
36617      descriptor.set = () => {
36618        throw Error('Can not rewrite read-only method \'' + name + '\'');
36619      };
36620    }
36621  });
36622}
36623
36624const toObjectSet = (arrayOrString, delimiter) => {
36625  const obj = {};
36626
36627  const define = (arr) => {
36628    arr.forEach(value => {
36629      obj[value] = true;
36630    });
36631  }
36632
36633  isArray(arrayOrString) ? define(arrayOrString) : define(String(arrayOrString).split(delimiter));
36634
36635  return obj;
36636}
36637
36638const noop = () => {}
36639
36640const toFiniteNumber = (value, defaultValue) => {
36641  value = +value;
36642  return Number.isFinite(value) ? value : defaultValue;
36643}
36644
36645const ALPHA = 'abcdefghijklmnopqrstuvwxyz'
36646
36647const DIGIT = '0123456789';
36648
36649const ALPHABET = {
36650  DIGIT,
36651  ALPHA,
36652  ALPHA_DIGIT: ALPHA + ALPHA.toUpperCase() + DIGIT
36653}
36654
36655const generateString = (size = 16, alphabet = ALPHABET.ALPHA_DIGIT) => {
36656  let str = '';
36657  const {length} = alphabet;
36658  while (size--) {
36659    str += alphabet[Math.random() * length|0]
36660  }
36661
36662  return str;
36663}
36664
36665/**
36666 * If the thing is a FormData object, return true, otherwise return false.
36667 *
36668 * @param {unknown} thing - The thing to check.
36669 *
36670 * @returns {boolean}
36671 */
36672function isSpecCompliantForm(thing) {
36673  return !!(thing && isFunction(thing.append) && thing[Symbol.toStringTag] === 'FormData' && thing[Symbol.iterator]);
36674}
36675
36676const toJSONObject = (obj) => {
36677  const stack = new Array(10);
36678
36679  const visit = (source, i) => {
36680
36681    if (isObject(source)) {
36682      if (stack.indexOf(source) >= 0) {
36683        return;
36684      }
36685
36686      if(!('toJSON' in source)) {
36687        stack[i] = source;
36688        const target = isArray(source) ? [] : {};
36689
36690        forEach(source, (value, key) => {
36691          const reducedValue = visit(value, i + 1);
36692          !isUndefined(reducedValue) && (target[key] = reducedValue);
36693        });
36694
36695        stack[i] = undefined;
36696
36697        return target;
36698      }
36699    }
36700
36701    return source;
36702  }
36703
36704  return visit(obj, 0);
36705}
36706
36707const isAsyncFn = kindOfTest('AsyncFunction');
36708
36709const isThenable = (thing) =>
36710  thing && (isObject(thing) || isFunction(thing)) && isFunction(thing.then) && isFunction(thing.catch);
36711
36712/* harmony default export */ __webpack_exports__["default"] = ({
36713  isArray,
36714  isArrayBuffer,
36715  isBuffer,
36716  isFormData,
36717  isArrayBufferView,
36718  isString,
36719  isNumber,
36720  isBoolean,
36721  isObject,
36722  isPlainObject,
36723  isUndefined,
36724  isDate,
36725  isFile,
36726  isBlob,
36727  isRegExp,
36728  isFunction,
36729  isStream,
36730  isURLSearchParams,
36731  isTypedArray,
36732  isFileList,
36733  forEach,
36734  merge,
36735  extend,
36736  trim,
36737  stripBOM,
36738  inherits,
36739  toFlatObject,
36740  kindOf,
36741  kindOfTest,
36742  endsWith,
36743  toArray,
36744  forEachEntry,
36745  matchAll,
36746  isHTMLForm,
36747  hasOwnProperty,
36748  hasOwnProp: hasOwnProperty, // an alias to avoid ESLint no-prototype-builtins detection
36749  reduceDescriptors,
36750  freezeMethods,
36751  toObjectSet,
36752  toCamelCase,
36753  noop,
36754  toFiniteNumber,
36755  findKey,
36756  global: _global,
36757  isContextDefined,
36758  ALPHABET,
36759  generateString,
36760  isSpecCompliantForm,
36761  toJSONObject,
36762  isAsyncFn,
36763  isThenable
36764});
36765
36766/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./../../webpack/buildin/global.js */ "./node_modules/webpack/buildin/global.js")))
36767
36768/***/ }),
36769
36770/***/ "./node_modules/babel-loader/lib/index.js!./node_modules/vue-loader/dist/index.js?!./src/vue/admissions/App.vue?vue&type=script&lang=js":
36771/*!**************************************************************************************************************************************!*\
36772  !*** ./node_modules/babel-loader/lib!./node_modules/vue-loader/dist??ref--14-0!./src/vue/admissions/App.vue?vue&type=script&lang=js ***!
36773  \**************************************************************************************************************************************/
36774/*! exports provided: default */
36775/***/ (function(module, __webpack_exports__, __webpack_require__) {
36776
36777"use strict";
36778__webpack_require__.r(__webpack_exports__);
36779/* harmony import */ var moment__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! moment */ "./node_modules/moment/moment.js");
36780/* harmony import */ var moment__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(moment__WEBPACK_IMPORTED_MODULE_0__);
36781/* harmony import */ var _components_AdmissionsModal__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./components/AdmissionsModal */ "./src/vue/admissions/components/AdmissionsModal.vue");
36782
36783
36784/* harmony default export */ __webpack_exports__["default"] = ({
36785  name: "App",
36786  components: {
36787    AdmissionsModal: _components_AdmissionsModal__WEBPACK_IMPORTED_MODULE_1__["default"]
36788  },
36789  props: {
36790    dateLabel: {
36791      type: String,
36792      default: ''
36793    },
36794    eventTitle: {
36795      type: String,
36796      default: ''
36797    },
36798    firstAdmission: {
36799      type: String,
36800      default: moment__WEBPACK_IMPORTED_MODULE_0___default()().format('YYYY-MM-DD')
36801    },
36802    lastAdmission: {
36803      type: String,
36804      default: function _default(props) {
36805        return props.firstAdmission;
36806      }
36807    }
36808  }
36809});
36810
36811/***/ }),
36812
36813/***/ "./node_modules/babel-loader/lib/index.js!./node_modules/vue-loader/dist/index.js?!./src/vue/admissions/components/AdmissionInstances.vue?vue&type=script&lang=js":
36814/*!****************************************************************************************************************************************************************!*\
36815  !*** ./node_modules/babel-loader/lib!./node_modules/vue-loader/dist??ref--14-0!./src/vue/admissions/components/AdmissionInstances.vue?vue&type=script&lang=js ***!
36816  \****************************************************************************************************************************************************************/
36817/*! exports provided: default */
36818/***/ (function(module, __webpack_exports__, __webpack_require__) {
36819
36820"use strict";
36821__webpack_require__.r(__webpack_exports__);
36822/* harmony import */ var moment__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! moment */ "./node_modules/moment/moment.js");
36823/* harmony import */ var moment__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(moment__WEBPACK_IMPORTED_MODULE_0__);
36824
36825/* harmony default export */ __webpack_exports__["default"] = ({
36826  name: "AdmissionInstances",
36827  props: {
36828    admission: {
36829      required: true,
36830      type: Object
36831    },
36832    openingTimes: {
36833      required: true,
36834      type: Object
36835    }
36836  },
36837  computed: {
36838    isWednesday: function isWednesday() {
36839      return Number(moment__WEBPACK_IMPORTED_MODULE_0___default.a.utc(this.admission.datetime).format('d')) === 3;
36840    },
36841    dateLabel: function dateLabel() {
36842      // Monday, January 1, 2024
36843      return moment__WEBPACK_IMPORTED_MODULE_0___default.a.utc(this.admission.datetime).format('dddd, MMMM D, YYYY');
36844    },
36845    openingDetails: function openingDetails() {
36846      return this.openingTimes.details(this.admission.datetime);
36847    }
36848  }
36849});
36850
36851/***/ }),
36852
36853/***/ "./node_modules/babel-loader/lib/index.js!./node_modules/vue-loader/dist/index.js?!./src/vue/admissions/components/Admissions.vue?vue&type=script&lang=js":
36854/*!********************************************************************************************************************************************************!*\
36855  !*** ./node_modules/babel-loader/lib!./node_modules/vue-loader/dist??ref--14-0!./src/vue/admissions/components/Admissions.vue?vue&type=script&lang=js ***!
36856  \********************************************************************************************************************************************************/
36857/*! exports provided: default */
36858/***/ (function(module, __webpack_exports__, __webpack_require__) {
36859
36860"use strict";
36861__webpack_require__.r(__webpack_exports__);
36862/* harmony import */ var axios__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! axios */ "./node_modules/axios/index.js");
36863/* harmony import */ var _modules_OpeningTimes__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../modules/OpeningTimes */ "./src/vue/admissions/modules/OpeningTimes.js");
36864/* harmony import */ var _AdmissionInstances__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./AdmissionInstances */ "./src/vue/admissions/components/AdmissionInstances.vue");
36865/* harmony import */ var _Loader__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./Loader */ "./src/vue/admissions/components/Loader.vue");
36866/* harmony import */ var _fullcalendar_vue3__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @fullcalendar/vue3 */ "./node_modules/@fullcalendar/vue3/dist/index.js");
36867/* harmony import */ var _fullcalendar_daygrid__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @fullcalendar/daygrid */ "./node_modules/@fullcalendar/daygrid/index.js");
36868/* harmony import */ var _fullcalendar_interaction__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! @fullcalendar/interaction */ "./node_modules/@fullcalendar/interaction/index.js");
36869/* harmony import */ var _fullcalendar_moment__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! @fullcalendar/moment */ "./node_modules/@fullcalendar/moment/index.js");
36870/* harmony import */ var moment__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! moment */ "./node_modules/moment/moment.js");
36871/* harmony import */ var moment__WEBPACK_IMPORTED_MODULE_8___default = /*#__PURE__*/__webpack_require__.n(moment__WEBPACK_IMPORTED_MODULE_8__);
36872
36873
36874
36875
36876
36877
36878
36879
36880
36881/* harmony default export */ __webpack_exports__["default"] = ({
36882  name: 'Admissions',
36883  props: {
36884    firstAdmission: String,
36885    lastAdmission: String
36886  },
36887  components: {
36888    AdmissionInstances: _AdmissionInstances__WEBPACK_IMPORTED_MODULE_2__["default"],
36889    FullCalendar: _fullcalendar_vue3__WEBPACK_IMPORTED_MODULE_4__["default"],
36890    Loader: _Loader__WEBPACK_IMPORTED_MODULE_3__["default"]
36891  },
36892  data: function data() {
36893    var _this = this;
36894
36895    return {
36896      calendarOptions: {
36897        firstDay: 0,
36898        headerToolbar: {
36899          start: 'prev',
36900          center: 'title',
36901          end: 'next'
36902        },
36903        buttonIcons: false,
36904        buttonText: {
36905          prev: '',
36906          next: ''
36907        },
36908        dayMaxEventRows: true,
36909        views: {
36910          dayGridMonth: {
36911            dayMaxEventRows: 6,
36912            dayHeaderFormat: {
36913              weekday: 'narrow'
36914            }
36915          }
36916        },
36917        footerToolbar: false,
36918        height: 'auto',
36919        plugins: [_fullcalendar_daygrid__WEBPACK_IMPORTED_MODULE_5__["default"], _fullcalendar_interaction__WEBPACK_IMPORTED_MODULE_6__["default"], _fullcalendar_moment__WEBPACK_IMPORTED_MODULE_7__["default"]],
36920        initialView: 'dayGridMonth',
36921        events: [],
36922        displayEventTime: false,
36923        validRange: this.validRange,
36924        fixedWeekCount: false,
36925        timeZone: 'UTC',
36926        dayCellClassNames: ['fc-day-no-admissions'],
36927        // This class will denote days with not event
36928        eventClick: function eventClick(info) {
36929          _this.$emitter.emit('event-selected', info);
36930        },
36931        eventDidMount: function eventDidMount(info) {
36932          // When event has been added the no admission class will be remvoed
36933          info.el.closest('.fc-day').classList.remove('fc-day-no-admissions');
36934        }
36935      },
36936      isLoading: true,
36937      calendarApi: null,
36938      openingTimes: null,
36939      currentAdmission: null,
36940      filterDates: window.admissions.filterDates
36941    };
36942  },
36943  mounted: function mounted() {
36944    this.calendarApi = this.$refs.fullCalendar.getApi();
36945    this.resizeOnModalOpen();
36946    this.configNextAndPrevBtns();
36947    this.addEventClickHandler();
36948    this.fetchOpeningTimes();
36949    this.fetchAdmissions();
36950  },
36951  methods: {
36952    addEventClickHandler: function addEventClickHandler() {
36953      var _this2 = this;
36954
36955      // Handler for showing instance card for the selected date/event
36956      this.$emitter.on('event-selected', function (info) {
36957        var _document$querySelect;
36958
36959        info.jsEvent.preventDefault();
36960        (_document$querySelect = document.querySelector('.fc-daygrid-event.selected')) == null ? void 0 : _document$querySelect.classList.remove('selected');
36961        _this2.currentAdmission = {
36962          datetime: moment__WEBPACK_IMPORTED_MODULE_8___default.a.utc(info.event.start).format('YYYY-MM-DD'),
36963          instances: info.event.extendedProps.instances
36964        };
36965
36966        _this2.scrollToAdmissionInstances();
36967      });
36968    },
36969    configNextAndPrevBtns: function configNextAndPrevBtns() {
36970      var _this3 = this;
36971
36972      var previousButton = document.querySelector('#admission-dialog .fc-prev-button');
36973      previousButton.removeAttribute('title');
36974      previousButton.innerHTML = '<span class="u-hidden-visually">Go to previous month</span><i class="fa-light fa-chevron-left" aria-hidden="true"></i>';
36975      previousButton.addEventListener('click', function () {
36976        _this3.fetchAdmissions();
36977      });
36978      var nextButton = document.querySelector('.fc-next-button');
36979      nextButton.removeAttribute('title');
36980      nextButton.innerHTML = '<span class="u-hidden-visually">Go to next month</span><i class="fa-light fa-chevron-right" aria-hidden="true"></i>';
36981      nextButton.addEventListener('click', function () {
36982        _this3.fetchAdmissions();
36983      });
36984    },
36985    fetchAdmissions: function fetchAdmissions() {
36986      var _this4 = this;
36987
36988      this.isLoading = true;
36989      this.calendarOptions.events = [];
36990      this.currentAdmission = null;
36991      var endpoint = wpApiSettings.root + 'v1/attendable/calendar';
36992      axios__WEBPACK_IMPORTED_MODULE_0__["default"].get(endpoint, {
36993        params: this.queryParams(),
36994        headers: {
36995          'X-WP-Nonce': wpApiSettings.nonce
36996        }
36997      }).then(function (response) {
36998        var events = response.data; // Filtering to match the instance dates of a Ticket Exhibition event
36999
37000        if (_this4.filterDates.length) {
37001          events = _this4.filterEvents(events);
37002        }
37003
37004        _this4.calendarOptions.events = events;
37005        _this4.isLoading = false;
37006      }).catch(function (error) {
37007        _this4.isLoading = false;
37008        console.warn(error);
37009      });
37010    },
37011    fetchOpeningTimes: function fetchOpeningTimes() {
37012      var _this5 = this;
37013
37014      // Opening retrieve when Admission component is mounted
37015      // This will be used in the AdmissionInstances component
37016      var endpoint = wpApiSettings.root + 'v1/opening-times/';
37017      axios__WEBPACK_IMPORTED_MODULE_0__["default"].get(endpoint).then(function (response) {
37018        var data = response.data;
37019        _this5.openingTimes = new _modules_OpeningTimes__WEBPACK_IMPORTED_MODULE_1__["default"](data.days, data.overrides);
37020      }).catch(function (error) {
37021        console.log(error);
37022      });
37023    },
37024    filterEvents: function filterEvents(events) {
37025      var _this6 = this;
37026
37027      return events.filter(function (event) {
37028        return _this6.filterDates.includes(event.start);
37029      });
37030    },
37031    resizeOnModalOpen: function resizeOnModalOpen() {
37032      var _this7 = this;
37033
37034      // This event correct an issue with the calendar not rendering the correct size
37035      // This is due to the calendar being in modal that is hidden when calendar is rendered
37036      this.$emitter.on('state--modal-open', function (e) {
37037        _this7.calendarApi.updateSize();
37038      });
37039    },
37040    queryParams: function queryParams() {
37041      var today = moment__WEBPACK_IMPORTED_MODULE_8___default()();
37042      var start = moment__WEBPACK_IMPORTED_MODULE_8___default.a.utc(this.calendarApi.currentData.currentDate); // Will prevent past instances from being retrieved
37043
37044      start = start.isBefore(today) ? today : start;
37045      return {
37046        start: start.format('YYYY-MM-DD 00:00:00'),
37047        end: moment__WEBPACK_IMPORTED_MODULE_8___default.a.utc(this.calendarApi.currentData.currentDate).endOf("month").format('YYYY-MM-DD 23:59:59'),
37048        event: window.admissions.event
37049      };
37050    },
37051    scrollToAdmissionInstances: function scrollToAdmissionInstances() {
37052      var admissionInstances = this.$refs.admissionInstances;
37053      admissionInstances.scrollIntoView({
37054        behavior: "smooth",
37055        inline: "end"
37056      });
37057      admissionInstances.focus(); // ickle timeout so focus happens before blurring
37058
37059      setTimeout(function () {
37060        admissionInstances.blur();
37061      }, 100);
37062    },
37063    validRange: function validRange() {
37064      return {
37065        start: moment__WEBPACK_IMPORTED_MODULE_8___default.a.utc(this.firstAdmission).startOf("month").format('YYYY-MM-DD 00:00:00'),
37066        end: moment__WEBPACK_IMPORTED_MODULE_8___default.a.utc(this.lastAdmission).endOf("month").format('YYYY-MM-DD 23:59:59')
37067      };
37068    }
37069  },
37070  computed: {
37071    showAdmissionInstances: function showAdmissionInstances() {
37072      return this.currentAdmission !== null;
37073    }
37074  }
37075});
37076
37077/***/ }),
37078
37079/***/ "./node_modules/babel-loader/lib/index.js!./node_modules/vue-loader/dist/index.js?!./src/vue/admissions/components/AdmissionsModal.vue?vue&type=script&lang=js":
37080/*!*************************************************************************************************************************************************************!*\
37081  !*** ./node_modules/babel-loader/lib!./node_modules/vue-loader/dist??ref--14-0!./src/vue/admissions/components/AdmissionsModal.vue?vue&type=script&lang=js ***!
37082  \*************************************************************************************************************************************************************/
37083/*! exports provided: default */
37084/***/ (function(module, __webpack_exports__, __webpack_require__) {
37085
37086"use strict";
37087__webpack_require__.r(__webpack_exports__);
37088/* harmony import */ var vue_a11y_dialog__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! vue-a11y-dialog */ "./node_modules/vue-a11y-dialog/dist/vue-a11y-dialog.umd.js");
37089/* harmony import */ var vue_a11y_dialog__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(vue_a11y_dialog__WEBPACK_IMPORTED_MODULE_0__);
37090/* harmony import */ var _Admissions__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./Admissions */ "./src/vue/admissions/components/Admissions.vue");
37091
37092
37093/* harmony default export */ __webpack_exports__["default"] = ({
37094  name: "AdmissionsModal",
37095  props: {
37096    dateLabel: String,
37097    eventTitle: String,
37098    firstAdmission: String,
37099    lastAdmission: String
37100  },
37101  components: {
37102    "a11y-dialog": vue_a11y_dialog__WEBPACK_IMPORTED_MODULE_0__["A11yDialog"],
37103    Admissions: _Admissions__WEBPACK_IMPORTED_MODULE_1__["default"]
37104  },
37105  data: function data() {
37106    return {
37107      dialog: null,
37108      isOpen: false,
37109      content: window.admissions.messages,
37110      classes: {
37111        container: 'c-modal c-modal--general-admissions',
37112        document: 'c-modal__container',
37113        overlay: 'c-modal__backdrop',
37114        title: 'u-hidden-visually'
37115      },
37116      titles: {
37117        hidden: 'General admissions calendar. View the dates where general admission to the museum is available.',
37118        heading: 'Book Now'
37119      },
37120      subtitle: this.subtitleText()
37121    };
37122  },
37123  methods: {
37124    assignDialogRef: function assignDialogRef(dialog) {
37125      var _this = this;
37126
37127      this.dialog = dialog;
37128      this.dialog.on('show', function (dialogEl, event) {
37129        _this.isOpen = true;
37130
37131        _this.$emitter.emit('state--modal-open');
37132
37133        document.body.classList.add('state--modal-open');
37134        var modalWrap = dialogEl.querySelector('.c-modal__wrap');
37135        modalWrap.scrollTo(0, 0);
37136      });
37137      this.dialog.on('hide', function (dialogEl, event) {
37138        _this.isOpen = false;
37139        var modalWrap = dialogEl.querySelector('.c-modal__wrap');
37140        document.body.classList.remove('state--modal-open');
37141        modalWrap.scrollTo(0, 0);
37142      });
37143
37144      if (window.location.hash == '#admissions') {
37145        this.dialog.show();
37146      }
37147    },
37148    subtitleText: function subtitleText() {
37149      if (this.eventTitle.length) {
37150        return "For Museum admission, including <span class='c-modal__exhibition-name'>" + this.eventTitle + "</span>";
37151      }
37152
37153      return 'For admissions to all of our galleries and exhibitions';
37154    }
37155  }
37156});
37157
37158/***/ }),
37159
37160/***/ "./node_modules/babel-loader/lib/index.js!./node_modules/vue-loader/dist/index.js?!./src/vue/admissions/components/Loader.vue?vue&type=script&lang=js":
37161/*!****************************************************************************************************************************************************!*\
37162  !*** ./node_modules/babel-loader/lib!./node_modules/vue-loader/dist??ref--14-0!./src/vue/admissions/components/Loader.vue?vue&type=script&lang=js ***!
37163  \****************************************************************************************************************************************************/
37164/*! exports provided: default */
37165/***/ (function(module, __webpack_exports__, __webpack_require__) {
37166
37167"use strict";
37168__webpack_require__.r(__webpack_exports__);
37169/* harmony default export */ __webpack_exports__["default"] = ({
37170  name: "Loader"
37171});
37172
37173/***/ }),
37174
37175/***/ "./node_modules/babel-loader/lib/index.js!./node_modules/vue-loader/dist/templateLoader.js?!./node_modules/vue-loader/dist/index.js?!./src/vue/admissions/App.vue?vue&type=template&id=04c4054e":
37176/*!*****************************************************************************************************************************************************************************************************!*\
37177  !*** ./node_modules/babel-loader/lib!./node_modules/vue-loader/dist/templateLoader.js??ref--6!./node_modules/vue-loader/dist??ref--14-0!./src/vue/admissions/App.vue?vue&type=template&id=04c4054e ***!
37178  \*****************************************************************************************************************************************************************************************************/
37179/*! exports provided: render */
37180/***/ (function(module, __webpack_exports__, __webpack_require__) {
37181
37182"use strict";
37183__webpack_require__.r(__webpack_exports__);
37184/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "render", function() { return render; });
37185/* harmony import */ var vue__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! vue */ "./node_modules/vue/dist/vue.esm-bundler.js");
37186
37187function render(_ctx, _cache, $props, $setup, $data, $options) {
37188  var _component_AdmissionsModal = Object(vue__WEBPACK_IMPORTED_MODULE_0__["resolveComponent"])("AdmissionsModal");
37189
37190  return Object(vue__WEBPACK_IMPORTED_MODULE_0__["openBlock"])(), Object(vue__WEBPACK_IMPORTED_MODULE_0__["createBlock"])(_component_AdmissionsModal, {
37191    "date-label": $props.dateLabel,
37192    "event-title": $props.eventTitle,
37193    "first-admission": $props.firstAdmission,
37194    "last-admission": $props.lastAdmission
37195  }, null, 8, ["date-label", "event-title", "first-admission", "last-admission"]);
37196}
37197
37198/***/ }),
37199
37200/***/ "./node_modules/babel-loader/lib/index.js!./node_modules/vue-loader/dist/templateLoader.js?!./node_modules/vue-loader/dist/index.js?!./src/vue/admissions/components/AdmissionInstances.vue?vue&type=template&id=d40542b2":
37201/*!*******************************************************************************************************************************************************************************************************************************!*\
37202  !*** ./node_modules/babel-loader/lib!./node_modules/vue-loader/dist/templateLoader.js??ref--6!./node_modules/vue-loader/dist??ref--14-0!./src/vue/admissions/components/AdmissionInstances.vue?vue&type=template&id=d40542b2 ***!
37203  \*******************************************************************************************************************************************************************************************************************************/
37204/*! exports provided: render */
37205/***/ (function(module, __webpack_exports__, __webpack_require__) {
37206
37207"use strict";
37208__webpack_require__.r(__webpack_exports__);
37209/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "render", function() { return render; });
37210/* harmony import */ var vue__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! vue */ "./node_modules/vue/dist/vue.esm-bundler.js");
37211
37212var _hoisted_1 = {
37213  class: "c-cal-instance__instance-details"
37214};
37215var _hoisted_2 = ["datetime"];
37216var _hoisted_3 = {
37217  key: 0,
37218  class: "c-cal-instance__opening-time"
37219};
37220var _hoisted_4 = {
37221  class: "c-cal-instance__opening-timenumber"
37222};
37223var _hoisted_5 = {
37224  key: 0
37225};
37226var _hoisted_6 = {
37227  key: 1,
37228  class: "c-cal-instance__additional-details"
37229};
37230
37231var _hoisted_7 = /*#__PURE__*/Object(vue__WEBPACK_IMPORTED_MODULE_0__["createElementVNode"])("p", null, [/*#__PURE__*/Object(vue__WEBPACK_IMPORTED_MODULE_0__["createTextVNode"])(" Enjoy free admissions every Wednesday evening from 4-8 pm, presented by "), /*#__PURE__*/Object(vue__WEBPACK_IMPORTED_MODULE_0__["createElementVNode"])("a", {
37232  href: "https://our-impact.bmo.com/"
37233}, "BMO"), /*#__PURE__*/Object(vue__WEBPACK_IMPORTED_MODULE_0__["createTextVNode"])(". Tickets available in person. Pre-registration not required. ")], -1);
37234
37235var _hoisted_8 = [_hoisted_7];
37236var _hoisted_9 = {
37237  class: "c-cal-instance__instance-book"
37238};
37239var _hoisted_10 = {
37240  class: "c-cal-instance__actions"
37241};
37242var _hoisted_11 = {
37243  key: 0
37244};
37245var _hoisted_12 = ["href"];
37246
37247var _hoisted_13 = /*#__PURE__*/Object(vue__WEBPACK_IMPORTED_MODULE_0__["createElementVNode"])("i", {
37248  class: "fa-light fa-ticket",
37249  "aria-hidden": "true"
37250}, null, -1);
37251
37252function render(_ctx, _cache, $props, $setup, $data, $options) {
37253  return Object(vue__WEBPACK_IMPORTED_MODULE_0__["openBlock"])(), Object(vue__WEBPACK_IMPORTED_MODULE_0__["createElementBlock"])(vue__WEBPACK_IMPORTED_MODULE_0__["Fragment"], null, [Object(vue__WEBPACK_IMPORTED_MODULE_0__["createElementVNode"])("div", _hoisted_1, [Object(vue__WEBPACK_IMPORTED_MODULE_0__["createElementVNode"])("time", {
37254    class: "c-cal-instance__date",
37255    datetime: $props.admission.datetime
37256  }, Object(vue__WEBPACK_IMPORTED_MODULE_0__["toDisplayString"])($options.dateLabel), 9, _hoisted_2), $options.openingDetails ? (Object(vue__WEBPACK_IMPORTED_MODULE_0__["openBlock"])(), Object(vue__WEBPACK_IMPORTED_MODULE_0__["createElementBlock"])("div", _hoisted_3, [Object(vue__WEBPACK_IMPORTED_MODULE_0__["createElementVNode"])("span", _hoisted_4, Object(vue__WEBPACK_IMPORTED_MODULE_0__["toDisplayString"])($options.openingDetails.status), 1), $options.openingDetails.note ? (Object(vue__WEBPACK_IMPORTED_MODULE_0__["openBlock"])(), Object(vue__WEBPACK_IMPORTED_MODULE_0__["createElementBlock"])("span", _hoisted_5, Object(vue__WEBPACK_IMPORTED_MODULE_0__["toDisplayString"])($options.openingDetails.note), 1)) : Object(vue__WEBPACK_IMPORTED_MODULE_0__["createCommentVNode"])("", true)])) : Object(vue__WEBPACK_IMPORTED_MODULE_0__["createCommentVNode"])("", true), $options.isWednesday ? (Object(vue__WEBPACK_IMPORTED_MODULE_0__["openBlock"])(), Object(vue__WEBPACK_IMPORTED_MODULE_0__["createElementBlock"])("div", _hoisted_6, _hoisted_8)) : Object(vue__WEBPACK_IMPORTED_MODULE_0__["createCommentVNode"])("", true)]), Object(vue__WEBPACK_IMPORTED_MODULE_0__["createElementVNode"])("div", _hoisted_9, [(Object(vue__WEBPACK_IMPORTED_MODULE_0__["openBlock"])(true), Object(vue__WEBPACK_IMPORTED_MODULE_0__["createElementBlock"])(vue__WEBPACK_IMPORTED_MODULE_0__["Fragment"], null, Object(vue__WEBPACK_IMPORTED_MODULE_0__["renderList"])($props.admission.instances, function (instance) {
37257    return Object(vue__WEBPACK_IMPORTED_MODULE_0__["openBlock"])(), Object(vue__WEBPACK_IMPORTED_MODULE_0__["createElementBlock"])("div", _hoisted_10, [instance.limited ? (Object(vue__WEBPACK_IMPORTED_MODULE_0__["openBlock"])(), Object(vue__WEBPACK_IMPORTED_MODULE_0__["createElementBlock"])("span", _hoisted_11, "Limited")) : Object(vue__WEBPACK_IMPORTED_MODULE_0__["createCommentVNode"])("", true), Object(vue__WEBPACK_IMPORTED_MODULE_0__["createElementVNode"])("a", {
37258      href: instance.url,
37259      class: "c-btn c-arrow c-btn--book"
37260    }, [_hoisted_13, Object(vue__WEBPACK_IMPORTED_MODULE_0__["createTextVNode"])(" " + Object(vue__WEBPACK_IMPORTED_MODULE_0__["toDisplayString"])(instance.booking_button_label), 1)], 8, _hoisted_12)]);
37261  }), 256))])], 64);
37262}
37263
37264/***/ }),
37265
37266/***/ "./node_modules/babel-loader/lib/index.js!./node_modules/vue-loader/dist/templateLoader.js?!./node_modules/vue-loader/dist/index.js?!./src/vue/admissions/components/Admissions.vue?vue&type=template&id=e7fe7e76":
37267/*!***********************************************************************************************************************************************************************************************************************!*\
37268  !*** ./node_modules/babel-loader/lib!./node_modules/vue-loader/dist/templateLoader.js??ref--6!./node_modules/vue-loader/dist??ref--14-0!./src/vue/admissions/components/Admissions.vue?vue&type=template&id=e7fe7e76 ***!
37269  \***********************************************************************************************************************************************************************************************************************/
37270/*! exports provided: render */
37271/***/ (function(module, __webpack_exports__, __webpack_require__) {
37272
37273"use strict";
37274__webpack_require__.r(__webpack_exports__);
37275/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "render", function() { return render; });
37276/* harmony import */ var vue__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! vue */ "./node_modules/vue/dist/vue.esm-bundler.js");
37277
37278var _hoisted_1 = {
37279  class: "c-admissions-calendar"
37280};
37281
37282var _hoisted_2 = /*#__PURE__*/Object(vue__WEBPACK_IMPORTED_MODULE_0__["createElementVNode"])("p", {
37283  class: "c-col-text"
37284}, "Please select a day that you would like to visit the Museum", -1);
37285
37286var _hoisted_3 = ["aria-hidden"];
37287function render(_ctx, _cache, $props, $setup, $data, $options) {
37288  var _component_Loader = Object(vue__WEBPACK_IMPORTED_MODULE_0__["resolveComponent"])("Loader");
37289
37290  var _component_FullCalendar = Object(vue__WEBPACK_IMPORTED_MODULE_0__["resolveComponent"])("FullCalendar");
37291
37292  var _component_AdmissionInstances = Object(vue__WEBPACK_IMPORTED_MODULE_0__["resolveComponent"])("AdmissionInstances");
37293
37294  return Object(vue__WEBPACK_IMPORTED_MODULE_0__["openBlock"])(), Object(vue__WEBPACK_IMPORTED_MODULE_0__["createElementBlock"])("div", _hoisted_1, [$data.isLoading ? (Object(vue__WEBPACK_IMPORTED_MODULE_0__["openBlock"])(), Object(vue__WEBPACK_IMPORTED_MODULE_0__["createBlock"])(_component_Loader, {
37295    key: 0
37296  })) : Object(vue__WEBPACK_IMPORTED_MODULE_0__["createCommentVNode"])("", true), _hoisted_2, Object(vue__WEBPACK_IMPORTED_MODULE_0__["createVNode"])(_component_FullCalendar, {
37297    id: "fullCalendar",
37298    ref: "fullCalendar",
37299    options: $data.calendarOptions
37300  }, null, 8, ["options"]), Object(vue__WEBPACK_IMPORTED_MODULE_0__["createElementVNode"])("div", {
37301    id: "admissionInstances",
37302    ref: "admissionInstances",
37303    "aria-hidden": !$options.showAdmissionInstances,
37304    tabindex: "0"
37305  }, [$options.showAdmissionInstances ? (Object(vue__WEBPACK_IMPORTED_MODULE_0__["openBlock"])(), Object(vue__WEBPACK_IMPORTED_MODULE_0__["createBlock"])(_component_AdmissionInstances, {
37306    key: 0,
37307    admission: $data.currentAdmission,
37308    openingTimes: $data.openingTimes
37309  }, null, 8, ["admission", "openingTimes"])) : Object(vue__WEBPACK_IMPORTED_MODULE_0__["createCommentVNode"])("", true)], 8, _hoisted_3)]);
37310}
37311
37312/***/ }),
37313
37314/***/ "./node_modules/babel-loader/lib/index.js!./node_modules/vue-loader/dist/templateLoader.js?!./node_modules/vue-loader/dist/index.js?!./src/vue/admissions/components/AdmissionsModal.vue?vue&type=template&id=6dfafd1c":
37315/*!****************************************************************************************************************************************************************************************************************************!*\
37316  !*** ./node_modules/babel-loader/lib!./node_modules/vue-loader/dist/templateLoader.js??ref--6!./node_modules/vue-loader/dist??ref--14-0!./src/vue/admissions/components/AdmissionsModal.vue?vue&type=template&id=6dfafd1c ***!
37317  \****************************************************************************************************************************************************************************************************************************/
37318/*! exports provided: render */
37319/***/ (function(module, __webpack_exports__, __webpack_require__) {
37320
37321"use strict";
37322__webpack_require__.r(__webpack_exports__);
37323/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "render", function() { return render; });
37324/* harmony import */ var vue__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! vue */ "./node_modules/vue/dist/vue.esm-bundler.js");
37325
37326var _hoisted_1 = {
37327  class: "c-modal__head"
37328};
37329var _hoisted_2 = {
37330  class: "c-modal__info-wrap"
37331};
37332var _hoisted_3 = {
37333  class: "c-col-title"
37334};
37335var _hoisted_4 = ["innerHTML"];
37336var _hoisted_5 = {
37337  key: 0,
37338  class: "c-modal__date"
37339};
37340
37341var _hoisted_6 = /*#__PURE__*/Object(vue__WEBPACK_IMPORTED_MODULE_0__["createElementVNode"])("i", {
37342  class: "fal fa-calendar-days",
37343  "aria-hidden": "true"
37344}, null, -1);
37345
37346var _hoisted_7 = /*#__PURE__*/Object(vue__WEBPACK_IMPORTED_MODULE_0__["createElementVNode"])("button", {
37347  class: "c-modal__head-button",
37348  "data-a11y-dialog-hide": "",
37349  "aria-label": "Close the admission calendar modal"
37350}, [/*#__PURE__*/Object(vue__WEBPACK_IMPORTED_MODULE_0__["createTextVNode"])(" Close "), /*#__PURE__*/Object(vue__WEBPACK_IMPORTED_MODULE_0__["createElementVNode"])("span", {
37351  class: "fas fa-times",
37352  "aria-hidden": "true"
37353})], -1);
37354
37355var _hoisted_8 = {
37356  class: "c-modal__wrap"
37357};
37358var _hoisted_9 = {
37359  key: 0,
37360  class: "c-modal__content c-modal__content--general-admissions"
37361};
37362var _hoisted_10 = {
37363  key: 0,
37364  class: "c-modal__content--general-admissions-general"
37365};
37366var _hoisted_11 = ["innerHTML"];
37367var _hoisted_12 = ["innerHTML"];
37368function render(_ctx, _cache, $props, $setup, $data, $options) {
37369  var _component_Admissions = Object(vue__WEBPACK_IMPORTED_MODULE_0__["resolveComponent"])("Admissions");
37370
37371  var _component_a11y_dialog = Object(vue__WEBPACK_IMPORTED_MODULE_0__["resolveComponent"])("a11y-dialog");
37372
37373  return Object(vue__WEBPACK_IMPORTED_MODULE_0__["openBlock"])(), Object(vue__WEBPACK_IMPORTED_MODULE_0__["createBlock"])(_component_a11y_dialog, {
37374    id: "admission-dialog",
37375    onDialogRef: $options.assignDialogRef,
37376    "dialog-root": "#admission-modal-root",
37377    "close-button-label": "Close",
37378    "close-button-position": "none",
37379    "class-names": $data.classes
37380  }, {
37381    title: Object(vue__WEBPACK_IMPORTED_MODULE_0__["withCtx"])(function () {
37382      return [Object(vue__WEBPACK_IMPORTED_MODULE_0__["createElementVNode"])("span", null, Object(vue__WEBPACK_IMPORTED_MODULE_0__["toDisplayString"])($data.titles.hidden), 1)];
37383    }),
37384    default: Object(vue__WEBPACK_IMPORTED_MODULE_0__["withCtx"])(function () {
37385      return [Object(vue__WEBPACK_IMPORTED_MODULE_0__["createElementVNode"])("div", _hoisted_1, [Object(vue__WEBPACK_IMPORTED_MODULE_0__["createElementVNode"])("div", _hoisted_2, [Object(vue__WEBPACK_IMPORTED_MODULE_0__["createElementVNode"])("h3", _hoisted_3, Object(vue__WEBPACK_IMPORTED_MODULE_0__["toDisplayString"])($data.titles.heading), 1), Object(vue__WEBPACK_IMPORTED_MODULE_0__["createElementVNode"])("p", {
37386        innerHTML: $data.subtitle
37387      }, null, 8, _hoisted_4), $props.dateLabel.length ? (Object(vue__WEBPACK_IMPORTED_MODULE_0__["openBlock"])(), Object(vue__WEBPACK_IMPORTED_MODULE_0__["createElementBlock"])("span", _hoisted_5, [_hoisted_6, Object(vue__WEBPACK_IMPORTED_MODULE_0__["createElementVNode"])("span", null, Object(vue__WEBPACK_IMPORTED_MODULE_0__["toDisplayString"])($props.dateLabel), 1)])) : Object(vue__WEBPACK_IMPORTED_MODULE_0__["createCommentVNode"])("", true)]), _hoisted_7]), Object(vue__WEBPACK_IMPORTED_MODULE_0__["createElementVNode"])("div", _hoisted_8, [$data.content ? (Object(vue__WEBPACK_IMPORTED_MODULE_0__["openBlock"])(), Object(vue__WEBPACK_IMPORTED_MODULE_0__["createElementBlock"])("div", _hoisted_9, [$data.content.general.length ? (Object(vue__WEBPACK_IMPORTED_MODULE_0__["openBlock"])(), Object(vue__WEBPACK_IMPORTED_MODULE_0__["createElementBlock"])("div", _hoisted_10, [Object(vue__WEBPACK_IMPORTED_MODULE_0__["createElementVNode"])("div", {
37388        class: "c-wysiwyg",
37389        innerHTML: $data.content.general
37390      }, null, 8, _hoisted_11)])) : Object(vue__WEBPACK_IMPORTED_MODULE_0__["createCommentVNode"])("", true), $data.content.memberships.length ? (Object(vue__WEBPACK_IMPORTED_MODULE_0__["openBlock"])(), Object(vue__WEBPACK_IMPORTED_MODULE_0__["createElementBlock"])("div", {
37391        key: 1,
37392        class: Object(vue__WEBPACK_IMPORTED_MODULE_0__["normalizeClass"])(["c-modal__content--general-membership", {
37393          'no-content': !$data.content.general
37394        }])
37395      }, [Object(vue__WEBPACK_IMPORTED_MODULE_0__["createElementVNode"])("div", {
37396        class: "c-event-instance__memberdetails c-wysiwyg",
37397        innerHTML: $data.content.memberships
37398      }, null, 8, _hoisted_12)], 2)) : Object(vue__WEBPACK_IMPORTED_MODULE_0__["createCommentVNode"])("", true), Object(vue__WEBPACK_IMPORTED_MODULE_0__["createVNode"])(_component_Admissions, {
37399        "first-admission": $props.firstAdmission,
37400        "last-admission": $props.lastAdmission
37401      }, null, 8, ["first-admission", "last-admission"])])) : Object(vue__WEBPACK_IMPORTED_MODULE_0__["createCommentVNode"])("", true)])];
37402    }),
37403    _: 1
37404  }, 8, ["onDialogRef", "class-names"]);
37405}
37406
37407/***/ }),
37408
37409/***/ "./node_modules/babel-loader/lib/index.js!./node_modules/vue-loader/dist/templateLoader.js?!./node_modules/vue-loader/dist/index.js?!./src/vue/admissions/components/Loader.vue?vue&type=template&id=36f07e48":
37410/*!*******************************************************************************************************************************************************************************************************************!*\
37411  !*** ./node_modules/babel-loader/lib!./node_modules/vue-loader/dist/templateLoader.js??ref--6!./node_modules/vue-loader/dist??ref--14-0!./src/vue/admissions/components/Loader.vue?vue&type=template&id=36f07e48 ***!
37412  \*******************************************************************************************************************************************************************************************************************/
37413/*! exports provided: render */
37414/***/ (function(module, __webpack_exports__, __webpack_require__) {
37415
37416"use strict";
37417__webpack_require__.r(__webpack_exports__);
37418/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "render", function() { return render; });
37419/* harmony import */ var vue__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! vue */ "./node_modules/vue/dist/vue.esm-bundler.js");
37420
37421var _hoisted_1 = {
37422  class: "c-loader",
37423  "aria-live": "polite"
37424};
37425
37426var _hoisted_2 = /*#__PURE__*/Object(vue__WEBPACK_IMPORTED_MODULE_0__["createElementVNode"])("div", {
37427  class: "c-loader__spin"
37428}, [/*#__PURE__*/Object(vue__WEBPACK_IMPORTED_MODULE_0__["createElementVNode"])("i", {
37429  class: "fa-regular fa-circle-notch fa-spin",
37430  "aria-hidden": "true"
37431}), /*#__PURE__*/Object(vue__WEBPACK_IMPORTED_MODULE_0__["createElementVNode"])("span", {
37432  class: "c-loader__label"
37433}, "Loading...")], -1);
37434
37435var _hoisted_3 = [_hoisted_2];
37436function render(_ctx, _cache, $props, $setup, $data, $options) {
37437  return Object(vue__WEBPACK_IMPORTED_MODULE_0__["openBlock"])(), Object(vue__WEBPACK_IMPORTED_MODULE_0__["createElementBlock"])("div", _hoisted_1, _hoisted_3);
37438}
37439
37440/***/ }),
37441
vendor: 4,218 bytes, lines 37442-37603
37442/***/ "./node_modules/base64-js/index.js":
37443/*!*****************************************!*\
37444  !*** ./node_modules/base64-js/index.js ***!
37445  \*****************************************/
37446/*! no static exports found */
37447/***/ (function(module, exports, __webpack_require__) {
37448
37449"use strict";
37450
37451
37452exports.byteLength = byteLength
37453exports.toByteArray = toByteArray
37454exports.fromByteArray = fromByteArray
37455
37456var lookup = []
37457var revLookup = []
37458var Arr = typeof Uint8Array !== 'undefined' ? Uint8Array : Array
37459
37460var code = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/'
37461for (var i = 0, len = code.length; i < len; ++i) {
37462  lookup[i] = code[i]
37463  revLookup[code.charCodeAt(i)] = i
37464}
37465
37466// Support decoding URL-safe base64 strings, as Node.js does.
37467// See: https://en.wikipedia.org/wiki/Base64#URL_applications
37468revLookup['-'.charCodeAt(0)] = 62
37469revLookup['_'.charCodeAt(0)] = 63
37470
37471function getLens (b64) {
37472  var len = b64.length
37473
37474  if (len % 4 > 0) {
37475    throw new Error('Invalid string. Length must be a multiple of 4')
37476  }
37477
37478  // Trim off extra bytes after placeholder bytes are found
37479  // See: https://github.com/beatgammit/base64-js/issues/42
37480  var validLen = b64.indexOf('=')
37481  if (validLen === -1) validLen = len
37482
37483  var placeHoldersLen = validLen === len
37484    ? 0
37485    : 4 - (validLen % 4)
37486
37487  return [validLen, placeHoldersLen]
37488}
37489
37490// base64 is 4/3 + up to two characters of the original data
37491function byteLength (b64) {
37492  var lens = getLens(b64)
37493  var validLen = lens[0]
37494  var placeHoldersLen = lens[1]
37495  return ((validLen + placeHoldersLen) * 3 / 4) - placeHoldersLen
37496}
37497
37498function _byteLength (b64, validLen, placeHoldersLen) {
37499  return ((validLen + placeHoldersLen) * 3 / 4) - placeHoldersLen
37500}
37501
37502function toByteArray (b64) {
37503  var tmp
37504  var lens = getLens(b64)
37505  var validLen = lens[0]
37506  var placeHoldersLen = lens[1]
37507
37508  var arr = new Arr(_byteLength(b64, validLen, placeHoldersLen))
37509
37510  var curByte = 0
37511
37512  // if there are placeholders, only get up to the last complete 4 chars
37513  var len = placeHoldersLen > 0
37514    ? validLen - 4
37515    : validLen
37516
37517  var i
37518  for (i = 0; i < len; i += 4) {
37519    tmp =
37520      (revLookup[b64.charCodeAt(i)] << 18) |
37521      (revLookup[b64.charCodeAt(i + 1)] << 12) |
37522      (revLookup[b64.charCodeAt(i + 2)] << 6) |
37523      revLookup[b64.charCodeAt(i + 3)]
37524    arr[curByte++] = (tmp >> 16) & 0xFF
37525    arr[curByte++] = (tmp >> 8) & 0xFF
37526    arr[curByte++] = tmp & 0xFF
37527  }
37528
37529  if (placeHoldersLen === 2) {
37530    tmp =
37531      (revLookup[b64.charCodeAt(i)] << 2) |
37532      (revLookup[b64.charCodeAt(i + 1)] >> 4)
37533    arr[curByte++] = tmp & 0xFF
37534  }
37535
37536  if (placeHoldersLen === 1) {
37537    tmp =
37538      (revLookup[b64.charCodeAt(i)] << 10) |
37539      (revLookup[b64.charCodeAt(i + 1)] << 4) |
37540      (revLookup[b64.charCodeAt(i + 2)] >> 2)
37541    arr[curByte++] = (tmp >> 8) & 0xFF
37542    arr[curByte++] = tmp & 0xFF
37543  }
37544
37545  return arr
37546}
37547
37548function tripletToBase64 (num) {
37549  return lookup[num >> 18 & 0x3F] +
37550    lookup[num >> 12 & 0x3F] +
37551    lookup[num >> 6 & 0x3F] +
37552    lookup[num & 0x3F]
37553}
37554
37555function encodeChunk (uint8, start, end) {
37556  var tmp
37557  var output = []
37558  for (var i = start; i < end; i += 3) {
37559    tmp =
37560      ((uint8[i] << 16) & 0xFF0000) +
37561      ((uint8[i + 1] << 8) & 0xFF00) +
37562      (uint8[i + 2] & 0xFF)
37563    output.push(tripletToBase64(tmp))
37564  }
37565  return output.join('')
37566}
37567
37568function fromByteArray (uint8) {
37569  var tmp
37570  var len = uint8.length
37571  var extraBytes = len % 3 // if we have 1 byte left, pad 2 bytes
37572  var parts = []
37573  var maxChunkLength = 16383 // must be multiple of 3
37574
37575  // go through the array every three bytes, we'll deal with trailing stuff later
37576  for (var i = 0, len2 = len - extraBytes; i < len2; i += maxChunkLength) {
37577    parts.push(encodeChunk(uint8, i, (i + maxChunkLength) > len2 ? len2 : (i + maxChunkLength)))
37578  }
37579
37580  // pad the end with zeros, but make sure to not forget the extra bytes
37581  if (extraBytes === 1) {
37582    tmp = uint8[len - 1]
37583    parts.push(
37584      lookup[tmp >> 2] +
37585      lookup[(tmp << 4) & 0x3F] +
37586      '=='
37587    )
37588  } else if (extraBytes === 2) {
37589    tmp = (uint8[len - 2] << 8) + uint8[len - 1]
37590    parts.push(
37591      lookup[tmp >> 10] +
37592      lookup[(tmp >> 4) & 0x3F] +
37593      lookup[(tmp << 2) & 0x3F] +
37594      '='
37595    )
37596  }
37597
37598  return parts.join('')
37599}
37600
37601
37602/***/ }),
37603
vendor: 49,209 bytes, lines 37604-39405
37604/***/ "./node_modules/buffer/index.js":
37605/*!**************************************!*\
37606  !*** ./node_modules/buffer/index.js ***!
37607  \**************************************/
37608/*! no static exports found */
37609/***/ (function(module, exports, __webpack_require__) {
37610
37611"use strict";
37612/* WEBPACK VAR INJECTION */(function(global) {/*!
37613 * The buffer module from node.js, for the browser.
37614 *
37615 * @author   Feross Aboukhadijeh <http://feross.org>
37616 * @license  MIT
37617 */
37618/* eslint-disable no-proto */
37619
37620
37621
37622var base64 = __webpack_require__(/*! base64-js */ "./node_modules/base64-js/index.js")
37623var ieee754 = __webpack_require__(/*! ieee754 */ "./node_modules/ieee754/index.js")
37624var isArray = __webpack_require__(/*! isarray */ "./node_modules/isarray/index.js")
37625
37626exports.Buffer = Buffer
37627exports.SlowBuffer = SlowBuffer
37628exports.INSPECT_MAX_BYTES = 50
37629
37630/**
37631 * If `Buffer.TYPED_ARRAY_SUPPORT`:
37632 *   === true    Use Uint8Array implementation (fastest)
37633 *   === false   Use Object implementation (most compatible, even IE6)
37634 *
37635 * Browsers that support typed arrays are IE 10+, Firefox 4+, Chrome 7+, Safari 5.1+,
37636 * Opera 11.6+, iOS 4.2+.
37637 *
37638 * Due to various browser bugs, sometimes the Object implementation will be used even
37639 * when the browser supports typed arrays.
37640 *
37641 * Note:
37642 *
37643 *   - Firefox 4-29 lacks support for adding new properties to `Uint8Array` instances,
37644 *     See: https://bugzilla.mozilla.org/show_bug.cgi?id=695438.
37645 *
37646 *   - Chrome 9-10 is missing the `TypedArray.prototype.subarray` function.
37647 *
37648 *   - IE10 has a broken `TypedArray.prototype.subarray` function which returns arrays of
37649 *     incorrect length in some situations.
37650
37651 * We detect these buggy browsers and set `Buffer.TYPED_ARRAY_SUPPORT` to `false` so they
37652 * get the Object implementation, which is slower but behaves correctly.
37653 */
37654Buffer.TYPED_ARRAY_SUPPORT = global.TYPED_ARRAY_SUPPORT !== undefined
37655  ? global.TYPED_ARRAY_SUPPORT
37656  : typedArraySupport()
37657
37658/*
37659 * Export kMaxLength after typed array support is determined.
37660 */
37661exports.kMaxLength = kMaxLength()
37662
37663function typedArraySupport () {
37664  try {
37665    var arr = new Uint8Array(1)
37666    arr.__proto__ = {__proto__: Uint8Array.prototype, foo: function () { return 42 }}
37667    return arr.foo() === 42 && // typed array instances can be augmented
37668        typeof arr.subarray === 'function' && // chrome 9-10 lack `subarray`
37669        arr.subarray(1, 1).byteLength === 0 // ie10 has broken `subarray`
37670  } catch (e) {
37671    return false
37672  }
37673}
37674
37675function kMaxLength () {
37676  return Buffer.TYPED_ARRAY_SUPPORT
37677    ? 0x7fffffff
37678    : 0x3fffffff
37679}
37680
37681function createBuffer (that, length) {
37682  if (kMaxLength() < length) {
37683    throw new RangeError('Invalid typed array length')
37684  }
37685  if (Buffer.TYPED_ARRAY_SUPPORT) {
37686    // Return an augmented `Uint8Array` instance, for best performance
37687    that = new Uint8Array(length)
37688    that.__proto__ = Buffer.prototype
37689  } else {
37690    // Fallback: Return an object instance of the Buffer class
37691    if (that === null) {
37692      that = new Buffer(length)
37693    }
37694    that.length = length
37695  }
37696
37697  return that
37698}
37699
37700/**
37701 * The Buffer constructor returns instances of `Uint8Array` that have their
37702 * prototype changed to `Buffer.prototype`. Furthermore, `Buffer` is a subclass of
37703 * `Uint8Array`, so the returned instances will have all the node `Buffer` methods
37704 * and the `Uint8Array` methods. Square bracket notation works as expected -- it
37705 * returns a single octet.
37706 *
37707 * The `Uint8Array` prototype remains unmodified.
37708 */
37709
37710function Buffer (arg, encodingOrOffset, length) {
37711  if (!Buffer.TYPED_ARRAY_SUPPORT && !(this instanceof Buffer)) {
37712    return new Buffer(arg, encodingOrOffset, length)
37713  }
37714
37715  // Common case.
37716  if (typeof arg === 'number') {
37717    if (typeof encodingOrOffset === 'string') {
37718      throw new Error(
37719        'If encoding is specified then the first argument must be a string'
37720      )
37721    }
37722    return allocUnsafe(this, arg)
37723  }
37724  return from(this, arg, encodingOrOffset, length)
37725}
37726
37727Buffer.poolSize = 8192 // not used by this implementation
37728
37729// TODO: Legacy, not needed anymore. Remove in next major version.
37730Buffer._augment = function (arr) {
37731  arr.__proto__ = Buffer.prototype
37732  return arr
37733}
37734
37735function from (that, value, encodingOrOffset, length) {
37736  if (typeof value === 'number') {
37737    throw new TypeError('"value" argument must not be a number')
37738  }
37739
37740  if (typeof ArrayBuffer !== 'undefined' && value instanceof ArrayBuffer) {
37741    return fromArrayBuffer(that, value, encodingOrOffset, length)
37742  }
37743
37744  if (typeof value === 'string') {
37745    return fromString(that, value, encodingOrOffset)
37746  }
37747
37748  return fromObject(that, value)
37749}
37750
37751/**
37752 * Functionally equivalent to Buffer(arg, encoding) but throws a TypeError
37753 * if value is a number.
37754 * Buffer.from(str[, encoding])
37755 * Buffer.from(array)
37756 * Buffer.from(buffer)
37757 * Buffer.from(arrayBuffer[, byteOffset[, length]])
37758 **/
37759Buffer.from = function (value, encodingOrOffset, length) {
37760  return from(null, value, encodingOrOffset, length)
37761}
37762
37763if (Buffer.TYPED_ARRAY_SUPPORT) {
37764  Buffer.prototype.__proto__ = Uint8Array.prototype
37765  Buffer.__proto__ = Uint8Array
37766  if (typeof Symbol !== 'undefined' && Symbol.species &&
37767      Buffer[Symbol.species] === Buffer) {
37768    // Fix subarray() in ES2016. See: https://github.com/feross/buffer/pull/97
37769    Object.defineProperty(Buffer, Symbol.species, {
37770      value: null,
37771      configurable: true
37772    })
37773  }
37774}
37775
37776function assertSize (size) {
37777  if (typeof size !== 'number') {
37778    throw new TypeError('"size" argument must be a number')
37779  } else if (size < 0) {
37780    throw new RangeError('"size" argument must not be negative')
37781  }
37782}
37783
37784function alloc (that, size, fill, encoding) {
37785  assertSize(size)
37786  if (size <= 0) {
37787    return createBuffer(that, size)
37788  }
37789  if (fill !== undefined) {
37790    // Only pay attention to encoding if it's a string. This
37791    // prevents accidentally sending in a number that would
37792    // be interpretted as a start offset.
37793    return typeof encoding === 'string'
37794      ? createBuffer(that, size).fill(fill, encoding)
37795      : createBuffer(that, size).fill(fill)
37796  }
37797  return createBuffer(that, size)
37798}
37799
37800/**
37801 * Creates a new filled Buffer instance.
37802 * alloc(size[, fill[, encoding]])
37803 **/
37804Buffer.alloc = function (size, fill, encoding) {
37805  return alloc(null, size, fill, encoding)
37806}
37807
37808function allocUnsafe (that, size) {
37809  assertSize(size)
37810  that = createBuffer(that, size < 0 ? 0 : checked(size) | 0)
37811  if (!Buffer.TYPED_ARRAY_SUPPORT) {
37812    for (var i = 0; i < size; ++i) {
37813      that[i] = 0
37814    }
37815  }
37816  return that
37817}
37818
37819/**
37820 * Equivalent to Buffer(num), by default creates a non-zero-filled Buffer instance.
37821 * */
37822Buffer.allocUnsafe = function (size) {
37823  return allocUnsafe(null, size)
37824}
37825/**
37826 * Equivalent to SlowBuffer(num), by default creates a non-zero-filled Buffer instance.
37827 */
37828Buffer.allocUnsafeSlow = function (size) {
37829  return allocUnsafe(null, size)
37830}
37831
37832function fromString (that, string, encoding) {
37833  if (typeof encoding !== 'string' || encoding === '') {
37834    encoding = 'utf8'
37835  }
37836
37837  if (!Buffer.isEncoding(encoding)) {
37838    throw new TypeError('"encoding" must be a valid string encoding')
37839  }
37840
37841  var length = byteLength(string, encoding) | 0
37842  that = createBuffer(that, length)
37843
37844  var actual = that.write(string, encoding)
37845
37846  if (actual !== length) {
37847    // Writing a hex string, for example, that contains invalid characters will
37848    // cause everything after the first invalid character to be ignored. (e.g.
37849    // 'abxxcd' will be treated as 'ab')
37850    that = that.slice(0, actual)
37851  }
37852
37853  return that
37854}
37855
37856function fromArrayLike (that, array) {
37857  var length = array.length < 0 ? 0 : checked(array.length) | 0
37858  that = createBuffer(that, length)
37859  for (var i = 0; i < length; i += 1) {
37860    that[i] = array[i] & 255
37861  }
37862  return that
37863}
37864
37865function fromArrayBuffer (that, array, byteOffset, length) {
37866  array.byteLength // this throws if `array` is not a valid ArrayBuffer
37867
37868  if (byteOffset < 0 || array.byteLength < byteOffset) {
37869    throw new RangeError('\'offset\' is out of bounds')
37870  }
37871
37872  if (array.byteLength < byteOffset + (length || 0)) {
37873    throw new RangeError('\'length\' is out of bounds')
37874  }
37875
37876  if (byteOffset === undefined && length === undefined) {
37877    array = new Uint8Array(array)
37878  } else if (length === undefined) {
37879    array = new Uint8Array(array, byteOffset)
37880  } else {
37881    array = new Uint8Array(array, byteOffset, length)
37882  }
37883
37884  if (Buffer.TYPED_ARRAY_SUPPORT) {
37885    // Return an augmented `Uint8Array` instance, for best performance
37886    that = array
37887    that.__proto__ = Buffer.prototype
37888  } else {
37889    // Fallback: Return an object instance of the Buffer class
37890    that = fromArrayLike(that, array)
37891  }
37892  return that
37893}
37894
37895function fromObject (that, obj) {
37896  if (Buffer.isBuffer(obj)) {
37897    var len = checked(obj.length) | 0
37898    that = createBuffer(that, len)
37899
37900    if (that.length === 0) {
37901      return that
37902    }
37903
37904    obj.copy(that, 0, 0, len)
37905    return that
37906  }
37907
37908  if (obj) {
37909    if ((typeof ArrayBuffer !== 'undefined' &&
37910        obj.buffer instanceof ArrayBuffer) || 'length' in obj) {
37911      if (typeof obj.length !== 'number' || isnan(obj.length)) {
37912        return createBuffer(that, 0)
37913      }
37914      return fromArrayLike(that, obj)
37915    }
37916
37917    if (obj.type === 'Buffer' && isArray(obj.data)) {
37918      return fromArrayLike(that, obj.data)
37919    }
37920  }
37921
37922  throw new TypeError('First argument must be a string, Buffer, ArrayBuffer, Array, or array-like object.')
37923}
37924
37925function checked (length) {
37926  // Note: cannot use `length < kMaxLength()` here because that fails when
37927  // length is NaN (which is otherwise coerced to zero.)
37928  if (length >= kMaxLength()) {
37929    throw new RangeError('Attempt to allocate Buffer larger than maximum ' +
37930                         'size: 0x' + kMaxLength().toString(16) + ' bytes')
37931  }
37932  return length | 0
37933}
37934
37935function SlowBuffer (length) {
37936  if (+length != length) { // eslint-disable-line eqeqeq
37937    length = 0
37938  }
37939  return Buffer.alloc(+length)
37940}
37941
37942Buffer.isBuffer = function isBuffer (b) {
37943  return !!(b != null && b._isBuffer)
37944}
37945
37946Buffer.compare = function compare (a, b) {
37947  if (!Buffer.isBuffer(a) || !Buffer.isBuffer(b)) {
37948    throw new TypeError('Arguments must be Buffers')
37949  }
37950
37951  if (a === b) return 0
37952
37953  var x = a.length
37954  var y = b.length
37955
37956  for (var i = 0, len = Math.min(x, y); i < len; ++i) {
37957    if (a[i] !== b[i]) {
37958      x = a[i]
37959      y = b[i]
37960      break
37961    }
37962  }
37963
37964  if (x < y) return -1
37965  if (y < x) return 1
37966  return 0
37967}
37968
37969Buffer.isEncoding = function isEncoding (encoding) {
37970  switch (String(encoding).toLowerCase()) {
37971    case 'hex':
37972    case 'utf8':
37973    case 'utf-8':
37974    case 'ascii':
37975    case 'latin1':
37976    case 'binary':
37977    case 'base64':
37978    case 'ucs2':
37979    case 'ucs-2':
37980    case 'utf16le':
37981    case 'utf-16le':
37982      return true
37983    default:
37984      return false
37985  }
37986}
37987
37988Buffer.concat = function concat (list, length) {
37989  if (!isArray(list)) {
37990    throw new TypeError('"list" argument must be an Array of Buffers')
37991  }
37992
37993  if (list.length === 0) {
37994    return Buffer.alloc(0)
37995  }
37996
37997  var i
37998  if (length === undefined) {
37999    length = 0
38000    for (i = 0; i < list.length; ++i) {
38001      length += list[i].length
38002    }
38003  }
38004
38005  var buffer = Buffer.allocUnsafe(length)
38006  var pos = 0
38007  for (i = 0; i < list.length; ++i) {
38008    var buf = list[i]
38009    if (!Buffer.isBuffer(buf)) {
38010      throw new TypeError('"list" argument must be an Array of Buffers')
38011    }
38012    buf.copy(buffer, pos)
38013    pos += buf.length
38014  }
38015  return buffer
38016}
38017
38018function byteLength (string, encoding) {
38019  if (Buffer.isBuffer(string)) {
38020    return string.length
38021  }
38022  if (typeof ArrayBuffer !== 'undefined' && typeof ArrayBuffer.isView === 'function' &&
38023      (ArrayBuffer.isView(string) || string instanceof ArrayBuffer)) {
38024    return string.byteLength
38025  }
38026  if (typeof string !== 'string') {
38027    string = '' + string
38028  }
38029
38030  var len = string.length
38031  if (len === 0) return 0
38032
38033  // Use a for loop to avoid recursion
38034  var loweredCase = false
38035  for (;;) {
38036    switch (encoding) {
38037      case 'ascii':
38038      case 'latin1':
38039      case 'binary':
38040        return len
38041      case 'utf8':
38042      case 'utf-8':
38043      case undefined:
38044        return utf8ToBytes(string).length
38045      case 'ucs2':
38046      case 'ucs-2':
38047      case 'utf16le':
38048      case 'utf-16le':
38049        return len * 2
38050      case 'hex':
38051        return len >>> 1
38052      case 'base64':
38053        return base64ToBytes(string).length
38054      default:
38055        if (loweredCase) return utf8ToBytes(string).length // assume utf8
38056        encoding = ('' + encoding).toLowerCase()
38057        loweredCase = true
38058    }
38059  }
38060}
38061Buffer.byteLength = byteLength
38062
38063function slowToString (encoding, start, end) {
38064  var loweredCase = false
38065
38066  // No need to verify that "this.length <= MAX_UINT32" since it's a read-only
38067  // property of a typed array.
38068
38069  // This behaves neither like String nor Uint8Array in that we set start/end
38070  // to their upper/lower bounds if the value passed is out of range.
38071  // undefined is handled specially as per ECMA-262 6th Edition,
38072  // Section 13.3.3.7 Runtime Semantics: KeyedBindingInitialization.
38073  if (start === undefined || start < 0) {
38074    start = 0
38075  }
38076  // Return early if start > this.length. Done here to prevent potential uint32
38077  // coercion fail below.
38078  if (start > this.length) {
38079    return ''
38080  }
38081
38082  if (end === undefined || end > this.length) {
38083    end = this.length
38084  }
38085
38086  if (end <= 0) {
38087    return ''
38088  }
38089
38090  // Force coersion to uint32. This will also coerce falsey/NaN values to 0.
38091  end >>>= 0
38092  start >>>= 0
38093
38094  if (end <= start) {
38095    return ''
38096  }
38097
38098  if (!encoding) encoding = 'utf8'
38099
38100  while (true) {
38101    switch (encoding) {
38102      case 'hex':
38103        return hexSlice(this, start, end)
38104
38105      case 'utf8':
38106      case 'utf-8':
38107        return utf8Slice(this, start, end)
38108
38109      case 'ascii':
38110        return asciiSlice(this, start, end)
38111
38112      case 'latin1':
38113      case 'binary':
38114        return latin1Slice(this, start, end)
38115
38116      case 'base64':
38117        return base64Slice(this, start, end)
38118
38119      case 'ucs2':
38120      case 'ucs-2':
38121      case 'utf16le':
38122      case 'utf-16le':
38123        return utf16leSlice(this, start, end)
38124
38125      default:
38126        if (loweredCase) throw new TypeError('Unknown encoding: ' + encoding)
38127        encoding = (encoding + '').toLowerCase()
38128        loweredCase = true
38129    }
38130  }
38131}
38132
38133// The property is used by `Buffer.isBuffer` and `is-buffer` (in Safari 5-7) to detect
38134// Buffer instances.
38135Buffer.prototype._isBuffer = true
38136
38137function swap (b, n, m) {
38138  var i = b[n]
38139  b[n] = b[m]
38140  b[m] = i
38141}
38142
38143Buffer.prototype.swap16 = function swap16 () {
38144  var len = this.length
38145  if (len % 2 !== 0) {
38146    throw new RangeError('Buffer size must be a multiple of 16-bits')
38147  }
38148  for (var i = 0; i < len; i += 2) {
38149    swap(this, i, i + 1)
38150  }
38151  return this
38152}
38153
38154Buffer.prototype.swap32 = function swap32 () {
38155  var len = this.length
38156  if (len % 4 !== 0) {
38157    throw new RangeError('Buffer size must be a multiple of 32-bits')
38158  }
38159  for (var i = 0; i < len; i += 4) {
38160    swap(this, i, i + 3)
38161    swap(this, i + 1, i + 2)
38162  }
38163  return this
38164}
38165
38166Buffer.prototype.swap64 = function swap64 () {
38167  var len = this.length
38168  if (len % 8 !== 0) {
38169    throw new RangeError('Buffer size must be a multiple of 64-bits')
38170  }
38171  for (var i = 0; i < len; i += 8) {
38172    swap(this, i, i + 7)
38173    swap(this, i + 1, i + 6)
38174    swap(this, i + 2, i + 5)
38175    swap(this, i + 3, i + 4)
38176  }
38177  return this
38178}
38179
38180Buffer.prototype.toString = function toString () {
38181  var length = this.length | 0
38182  if (length === 0) return ''
38183  if (arguments.length === 0) return utf8Slice(this, 0, length)
38184  return slowToString.apply(this, arguments)
38185}
38186
38187Buffer.prototype.equals = function equals (b) {
38188  if (!Buffer.isBuffer(b)) throw new TypeError('Argument must be a Buffer')
38189  if (this === b) return true
38190  return Buffer.compare(this, b) === 0
38191}
38192
38193Buffer.prototype.inspect = function inspect () {
38194  var str = ''
38195  var max = exports.INSPECT_MAX_BYTES
38196  if (this.length > 0) {
38197    str = this.toString('hex', 0, max).match(/.{2}/g).join(' ')
38198    if (this.length > max) str += ' ... '
38199  }
38200  return '<Buffer ' + str + '>'
38201}
38202
38203Buffer.prototype.compare = function compare (target, start, end, thisStart, thisEnd) {
38204  if (!Buffer.isBuffer(target)) {
38205    throw new TypeError('Argument must be a Buffer')
38206  }
38207
38208  if (start === undefined) {
38209    start = 0
38210  }
38211  if (end === undefined) {
38212    end = target ? target.length : 0
38213  }
38214  if (thisStart === undefined) {
38215    thisStart = 0
38216  }
38217  if (thisEnd === undefined) {
38218    thisEnd = this.length
38219  }
38220
38221  if (start < 0 || end > target.length || thisStart < 0 || thisEnd > this.length) {
38222    throw new RangeError('out of range index')
38223  }
38224
38225  if (thisStart >= thisEnd && start >= end) {
38226    return 0
38227  }
38228  if (thisStart >= thisEnd) {
38229    return -1
38230  }
38231  if (start >= end) {
38232    return 1
38233  }
38234
38235  start >>>= 0
38236  end >>>= 0
38237  thisStart >>>= 0
38238  thisEnd >>>= 0
38239
38240  if (this === target) return 0
38241
38242  var x = thisEnd - thisStart
38243  var y = end - start
38244  var len = Math.min(x, y)
38245
38246  var thisCopy = this.slice(thisStart, thisEnd)
38247  var targetCopy = target.slice(start, end)
38248
38249  for (var i = 0; i < len; ++i) {
38250    if (thisCopy[i] !== targetCopy[i]) {
38251      x = thisCopy[i]
38252      y = targetCopy[i]
38253      break
38254    }
38255  }
38256
38257  if (x < y) return -1
38258  if (y < x) return 1
38259  return 0
38260}
38261
38262// Finds either the first index of `val` in `buffer` at offset >= `byteOffset`,
38263// OR the last index of `val` in `buffer` at offset <= `byteOffset`.
38264//
38265// Arguments:
38266// - buffer - a Buffer to search
38267// - val - a string, Buffer, or number
38268// - byteOffset - an index into `buffer`; will be clamped to an int32
38269// - encoding - an optional encoding, relevant is val is a string
38270// - dir - true for indexOf, false for lastIndexOf
38271function bidirectionalIndexOf (buffer, val, byteOffset, encoding, dir) {
38272  // Empty buffer means no match
38273  if (buffer.length === 0) return -1
38274
38275  // Normalize byteOffset
38276  if (typeof byteOffset === 'string') {
38277    encoding = byteOffset
38278    byteOffset = 0
38279  } else if (byteOffset > 0x7fffffff) {
38280    byteOffset = 0x7fffffff
38281  } else if (byteOffset < -0x80000000) {
38282    byteOffset = -0x80000000
38283  }
38284  byteOffset = +byteOffset  // Coerce to Number.
38285  if (isNaN(byteOffset)) {
38286    // byteOffset: it it's undefined, null, NaN, "foo", etc, search whole buffer
38287    byteOffset = dir ? 0 : (buffer.length - 1)
38288  }
38289
38290  // Normalize byteOffset: negative offsets start from the end of the buffer
38291  if (byteOffset < 0) byteOffset = buffer.length + byteOffset
38292  if (byteOffset >= buffer.length) {
38293    if (dir) return -1
38294    else byteOffset = buffer.length - 1
38295  } else if (byteOffset < 0) {
38296    if (dir) byteOffset = 0
38297    else return -1
38298  }
38299
38300  // Normalize val
38301  if (typeof val === 'string') {
38302    val = Buffer.from(val, encoding)
38303  }
38304
38305  // Finally, search either indexOf (if dir is true) or lastIndexOf
38306  if (Buffer.isBuffer(val)) {
38307    // Special case: looking for empty string/buffer always fails
38308    if (val.length === 0) {
38309      return -1
38310    }
38311    return arrayIndexOf(buffer, val, byteOffset, encoding, dir)
38312  } else if (typeof val === 'number') {
38313    val = val & 0xFF // Search for a byte value [0-255]
38314    if (Buffer.TYPED_ARRAY_SUPPORT &&
38315        typeof Uint8Array.prototype.indexOf === 'function') {
38316      if (dir) {
38317        return Uint8Array.prototype.indexOf.call(buffer, val, byteOffset)
38318      } else {
38319        return Uint8Array.prototype.lastIndexOf.call(buffer, val, byteOffset)
38320      }
38321    }
38322    return arrayIndexOf(buffer, [ val ], byteOffset, encoding, dir)
38323  }
38324
38325  throw new TypeError('val must be string, number or Buffer')
38326}
38327
38328function arrayIndexOf (arr, val, byteOffset, encoding, dir) {
38329  var indexSize = 1
38330  var arrLength = arr.length
38331  var valLength = val.length
38332
38333  if (encoding !== undefined) {
38334    encoding = String(encoding).toLowerCase()
38335    if (encoding === 'ucs2' || encoding === 'ucs-2' ||
38336        encoding === 'utf16le' || encoding === 'utf-16le') {
38337      if (arr.length < 2 || val.length < 2) {
38338        return -1
38339      }
38340      indexSize = 2
38341      arrLength /= 2
38342      valLength /= 2
38343      byteOffset /= 2
38344    }
38345  }
38346
38347  function read (buf, i) {
38348    if (indexSize === 1) {
38349      return buf[i]
38350    } else {
38351      return buf.readUInt16BE(i * indexSize)
38352    }
38353  }
38354
38355  var i
38356  if (dir) {
38357    var foundIndex = -1
38358    for (i = byteOffset; i < arrLength; i++) {
38359      if (read(arr, i) === read(val, foundIndex === -1 ? 0 : i - foundIndex)) {
38360        if (foundIndex === -1) foundIndex = i
38361        if (i - foundIndex + 1 === valLength) return foundIndex * indexSize
38362      } else {
38363        if (foundIndex !== -1) i -= i - foundIndex
38364        foundIndex = -1
38365      }
38366    }
38367  } else {
38368    if (byteOffset + valLength > arrLength) byteOffset = arrLength - valLength
38369    for (i = byteOffset; i >= 0; i--) {
38370      var found = true
38371      for (var j = 0; j < valLength; j++) {
38372        if (read(arr, i + j) !== read(val, j)) {
38373          found = false
38374          break
38375        }
38376      }
38377      if (found) return i
38378    }
38379  }
38380
38381  return -1
38382}
38383
38384Buffer.prototype.includes = function includes (val, byteOffset, encoding) {
38385  return this.indexOf(val, byteOffset, encoding) !== -1
38386}
38387
38388Buffer.prototype.indexOf = function indexOf (val, byteOffset, encoding) {
38389  return bidirectionalIndexOf(this, val, byteOffset, encoding, true)
38390}
38391
38392Buffer.prototype.lastIndexOf = function lastIndexOf (val, byteOffset, encoding) {
38393  return bidirectionalIndexOf(this, val, byteOffset, encoding, false)
38394}
38395
38396function hexWrite (buf, string, offset, length) {
38397  offset = Number(offset) || 0
38398  var remaining = buf.length - offset
38399  if (!length) {
38400    length = remaining
38401  } else {
38402    length = Number(length)
38403    if (length > remaining) {
38404      length = remaining
38405    }
38406  }
38407
38408  // must be an even number of digits
38409  var strLen = string.length
38410  if (strLen % 2 !== 0) throw new TypeError('Invalid hex string')
38411
38412  if (length > strLen / 2) {
38413    length = strLen / 2
38414  }
38415  for (var i = 0; i < length; ++i) {
38416    var parsed = parseInt(string.substr(i * 2, 2), 16)
38417    if (isNaN(parsed)) return i
38418    buf[offset + i] = parsed
38419  }
38420  return i
38421}
38422
38423function utf8Write (buf, string, offset, length) {
38424  return blitBuffer(utf8ToBytes(string, buf.length - offset), buf, offset, length)
38425}
38426
38427function asciiWrite (buf, string, offset, length) {
38428  return blitBuffer(asciiToBytes(string), buf, offset, length)
38429}
38430
38431function latin1Write (buf, string, offset, length) {
38432  return asciiWrite(buf, string, offset, length)
38433}
38434
38435function base64Write (buf, string, offset, length) {
38436  return blitBuffer(base64ToBytes(string), buf, offset, length)
38437}
38438
38439function ucs2Write (buf, string, offset, length) {
38440  return blitBuffer(utf16leToBytes(string, buf.length - offset), buf, offset, length)
38441}
38442
38443Buffer.prototype.write = function write (string, offset, length, encoding) {
38444  // Buffer#write(string)
38445  if (offset === undefined) {
38446    encoding = 'utf8'
38447    length = this.length
38448    offset = 0
38449  // Buffer#write(string, encoding)
38450  } else if (length === undefined && typeof offset === 'string') {
38451    encoding = offset
38452    length = this.length
38453    offset = 0
38454  // Buffer#write(string, offset[, length][, encoding])
38455  } else if (isFinite(offset)) {
38456    offset = offset | 0
38457    if (isFinite(length)) {
38458      length = length | 0
38459      if (encoding === undefined) encoding = 'utf8'
38460    } else {
38461      encoding = length
38462      length = undefined
38463    }
38464  // legacy write(string, encoding, offset, length) - remove in v0.13
38465  } else {
38466    throw new Error(
38467      'Buffer.write(string, encoding, offset[, length]) is no longer supported'
38468    )
38469  }
38470
38471  var remaining = this.length - offset
38472  if (length === undefined || length > remaining) length = remaining
38473
38474  if ((string.length > 0 && (length < 0 || offset < 0)) || offset > this.length) {
38475    throw new RangeError('Attempt to write outside buffer bounds')
38476  }
38477
38478  if (!encoding) encoding = 'utf8'
38479
38480  var loweredCase = false
38481  for (;;) {
38482    switch (encoding) {
38483      case 'hex':
38484        return hexWrite(this, string, offset, length)
38485
38486      case 'utf8':
38487      case 'utf-8':
38488        return utf8Write(this, string, offset, length)
38489
38490      case 'ascii':
38491        return asciiWrite(this, string, offset, length)
38492
38493      case 'latin1':
38494      case 'binary':
38495        return latin1Write(this, string, offset, length)
38496
38497      case 'base64':
38498        // Warning: maxLength not taken into account in base64Write
38499        return base64Write(this, string, offset, length)
38500
38501      case 'ucs2':
38502      case 'ucs-2':
38503      case 'utf16le':
38504      case 'utf-16le':
38505        return ucs2Write(this, string, offset, length)
38506
38507      default:
38508        if (loweredCase) throw new TypeError('Unknown encoding: ' + encoding)
38509        encoding = ('' + encoding).toLowerCase()
38510        loweredCase = true
38511    }
38512  }
38513}
38514
38515Buffer.prototype.toJSON = function toJSON () {
38516  return {
38517    type: 'Buffer',
38518    data: Array.prototype.slice.call(this._arr || this, 0)
38519  }
38520}
38521
38522function base64Slice (buf, start, end) {
38523  if (start === 0 && end === buf.length) {
38524    return base64.fromByteArray(buf)
38525  } else {
38526    return base64.fromByteArray(buf.slice(start, end))
38527  }
38528}
38529
38530function utf8Slice (buf, start, end) {
38531  end = Math.min(buf.length, end)
38532  var res = []
38533
38534  var i = start
38535  while (i < end) {
38536    var firstByte = buf[i]
38537    var codePoint = null
38538    var bytesPerSequence = (firstByte > 0xEF) ? 4
38539      : (firstByte > 0xDF) ? 3
38540      : (firstByte > 0xBF) ? 2
38541      : 1
38542
38543    if (i + bytesPerSequence <= end) {
38544      var secondByte, thirdByte, fourthByte, tempCodePoint
38545
38546      switch (bytesPerSequence) {
38547        case 1:
38548          if (firstByte < 0x80) {
38549            codePoint = firstByte
38550          }
38551          break
38552        case 2:
38553          secondByte = buf[i + 1]
38554          if ((secondByte & 0xC0) === 0x80) {
38555            tempCodePoint = (firstByte & 0x1F) << 0x6 | (secondByte & 0x3F)
38556            if (tempCodePoint > 0x7F) {
38557              codePoint = tempCodePoint
38558            }
38559          }
38560          break
38561        case 3:
38562          secondByte = buf[i + 1]
38563          thirdByte = buf[i + 2]
38564          if ((secondByte & 0xC0) === 0x80 && (thirdByte & 0xC0) === 0x80) {
38565            tempCodePoint = (firstByte & 0xF) << 0xC | (secondByte & 0x3F) << 0x6 | (thirdByte & 0x3F)
38566            if (tempCodePoint > 0x7FF && (tempCodePoint < 0xD800 || tempCodePoint > 0xDFFF)) {
38567              codePoint = tempCodePoint
38568            }
38569          }
38570          break
38571        case 4:
38572          secondByte = buf[i + 1]
38573          thirdByte = buf[i + 2]
38574          fourthByte = buf[i + 3]
38575          if ((secondByte & 0xC0) === 0x80 && (thirdByte & 0xC0) === 0x80 && (fourthByte & 0xC0) === 0x80) {
38576            tempCodePoint = (firstByte & 0xF) << 0x12 | (secondByte & 0x3F) << 0xC | (thirdByte & 0x3F) << 0x6 | (fourthByte & 0x3F)
38577            if (tempCodePoint > 0xFFFF && tempCodePoint < 0x110000) {
38578              codePoint = tempCodePoint
38579            }
38580          }
38581      }
38582    }
38583
38584    if (codePoint === null) {
38585      // we did not generate a valid codePoint so insert a
38586      // replacement char (U+FFFD) and advance only 1 byte
38587      codePoint = 0xFFFD
38588      bytesPerSequence = 1
38589    } else if (codePoint > 0xFFFF) {
38590      // encode to utf16 (surrogate pair dance)
38591      codePoint -= 0x10000
38592      res.push(codePoint >>> 10 & 0x3FF | 0xD800)
38593      codePoint = 0xDC00 | codePoint & 0x3FF
38594    }
38595
38596    res.push(codePoint)
38597    i += bytesPerSequence
38598  }
38599
38600  return decodeCodePointsArray(res)
38601}
38602
38603// Based on http://stackoverflow.com/a/22747272/680742, the browser with
38604// the lowest limit is Chrome, with 0x10000 args.
38605// We go 1 magnitude less, for safety
38606var MAX_ARGUMENTS_LENGTH = 0x1000
38607
38608function decodeCodePointsArray (codePoints) {
38609  var len = codePoints.length
38610  if (len <= MAX_ARGUMENTS_LENGTH) {
38611    return String.fromCharCode.apply(String, codePoints) // avoid extra slice()
38612  }
38613
38614  // Decode in chunks to avoid "call stack size exceeded".
38615  var res = ''
38616  var i = 0
38617  while (i < len) {
38618    res += String.fromCharCode.apply(
38619      String,
38620      codePoints.slice(i, i += MAX_ARGUMENTS_LENGTH)
38621    )
38622  }
38623  return res
38624}
38625
38626function asciiSlice (buf, start, end) {
38627  var ret = ''
38628  end = Math.min(buf.length, end)
38629
38630  for (var i = start; i < end; ++i) {
38631    ret += String.fromCharCode(buf[i] & 0x7F)
38632  }
38633  return ret
38634}
38635
38636function latin1Slice (buf, start, end) {
38637  var ret = ''
38638  end = Math.min(buf.length, end)
38639
38640  for (var i = start; i < end; ++i) {
38641    ret += String.fromCharCode(buf[i])
38642  }
38643  return ret
38644}
38645
38646function hexSlice (buf, start, end) {
38647  var len = buf.length
38648
38649  if (!start || start < 0) start = 0
38650  if (!end || end < 0 || end > len) end = len
38651
38652  var out = ''
38653  for (var i = start; i < end; ++i) {
38654    out += toHex(buf[i])
38655  }
38656  return out
38657}
38658
38659function utf16leSlice (buf, start, end) {
38660  var bytes = buf.slice(start, end)
38661  var res = ''
38662  for (var i = 0; i < bytes.length; i += 2) {
38663    res += String.fromCharCode(bytes[i] + bytes[i + 1] * 256)
38664  }
38665  return res
38666}
38667
38668Buffer.prototype.slice = function slice (start, end) {
38669  var len = this.length
38670  start = ~~start
38671  end = end === undefined ? len : ~~end
38672
38673  if (start < 0) {
38674    start += len
38675    if (start < 0) start = 0
38676  } else if (start > len) {
38677    start = len
38678  }
38679
38680  if (end < 0) {
38681    end += len
38682    if (end < 0) end = 0
38683  } else if (end > len) {
38684    end = len
38685  }
38686
38687  if (end < start) end = start
38688
38689  var newBuf
38690  if (Buffer.TYPED_ARRAY_SUPPORT) {
38691    newBuf = this.subarray(start, end)
38692    newBuf.__proto__ = Buffer.prototype
38693  } else {
38694    var sliceLen = end - start
38695    newBuf = new Buffer(sliceLen, undefined)
38696    for (var i = 0; i < sliceLen; ++i) {
38697      newBuf[i] = this[i + start]
38698    }
38699  }
38700
38701  return newBuf
38702}
38703
38704/*
38705 * Need to make sure that buffer isn't trying to write out of bounds.
38706 */
38707function checkOffset (offset, ext, length) {
38708  if ((offset % 1) !== 0 || offset < 0) throw new RangeError('offset is not uint')
38709  if (offset + ext > length) throw new RangeError('Trying to access beyond buffer length')
38710}
38711
38712Buffer.prototype.readUIntLE = function readUIntLE (offset, byteLength, noAssert) {
38713  offset = offset | 0
38714  byteLength = byteLength | 0
38715  if (!noAssert) checkOffset(offset, byteLength, this.length)
38716
38717  var val = this[offset]
38718  var mul = 1
38719  var i = 0
38720  while (++i < byteLength && (mul *= 0x100)) {
38721    val += this[offset + i] * mul
38722  }
38723
38724  return val
38725}
38726
38727Buffer.prototype.readUIntBE = function readUIntBE (offset, byteLength, noAssert) {
38728  offset = offset | 0
38729  byteLength = byteLength | 0
38730  if (!noAssert) {
38731    checkOffset(offset, byteLength, this.length)
38732  }
38733
38734  var val = this[offset + --byteLength]
38735  var mul = 1
38736  while (byteLength > 0 && (mul *= 0x100)) {
38737    val += this[offset + --byteLength] * mul
38738  }
38739
38740  return val
38741}
38742
38743Buffer.prototype.readUInt8 = function readUInt8 (offset, noAssert) {
38744  if (!noAssert) checkOffset(offset, 1, this.length)
38745  return this[offset]
38746}
38747
38748Buffer.prototype.readUInt16LE = function readUInt16LE (offset, noAssert) {
38749  if (!noAssert) checkOffset(offset, 2, this.length)
38750  return this[offset] | (this[offset + 1] << 8)
38751}
38752
38753Buffer.prototype.readUInt16BE = function readUInt16BE (offset, noAssert) {
38754  if (!noAssert) checkOffset(offset, 2, this.length)
38755  return (this[offset] << 8) | this[offset + 1]
38756}
38757
38758Buffer.prototype.readUInt32LE = function readUInt32LE (offset, noAssert) {
38759  if (!noAssert) checkOffset(offset, 4, this.length)
38760
38761  return ((this[offset]) |
38762      (this[offset + 1] << 8) |
38763      (this[offset + 2] << 16)) +
38764      (this[offset + 3] * 0x1000000)
38765}
38766
38767Buffer.prototype.readUInt32BE = function readUInt32BE (offset, noAssert) {
38768  if (!noAssert) checkOffset(offset, 4, this.length)
38769
38770  return (this[offset] * 0x1000000) +
38771    ((this[offset + 1] << 16) |
38772    (this[offset + 2] << 8) |
38773    this[offset + 3])
38774}
38775
38776Buffer.prototype.readIntLE = function readIntLE (offset, byteLength, noAssert) {
38777  offset = offset | 0
38778  byteLength = byteLength | 0
38779  if (!noAssert) checkOffset(offset, byteLength, this.length)
38780
38781  var val = this[offset]
38782  var mul = 1
38783  var i = 0
38784  while (++i < byteLength && (mul *= 0x100)) {
38785    val += this[offset + i] * mul
38786  }
38787  mul *= 0x80
38788
38789  if (val >= mul) val -= Math.pow(2, 8 * byteLength)
38790
38791  return val
38792}
38793
38794Buffer.prototype.readIntBE = function readIntBE (offset, byteLength, noAssert) {
38795  offset = offset | 0
38796  byteLength = byteLength | 0
38797  if (!noAssert) checkOffset(offset, byteLength, this.length)
38798
38799  var i = byteLength
38800  var mul = 1
38801  var val = this[offset + --i]
38802  while (i > 0 && (mul *= 0x100)) {
38803    val += this[offset + --i] * mul
38804  }
38805  mul *= 0x80
38806
38807  if (val >= mul) val -= Math.pow(2, 8 * byteLength)
38808
38809  return val
38810}
38811
38812Buffer.prototype.readInt8 = function readInt8 (offset, noAssert) {
38813  if (!noAssert) checkOffset(offset, 1, this.length)
38814  if (!(this[offset] & 0x80)) return (this[offset])
38815  return ((0xff - this[offset] + 1) * -1)
38816}
38817
38818Buffer.prototype.readInt16LE = function readInt16LE (offset, noAssert) {
38819  if (!noAssert) checkOffset(offset, 2, this.length)
38820  var val = this[offset] | (this[offset + 1] << 8)
38821  return (val & 0x8000) ? val | 0xFFFF0000 : val
38822}
38823
38824Buffer.prototype.readInt16BE = function readInt16BE (offset, noAssert) {
38825  if (!noAssert) checkOffset(offset, 2, this.length)
38826  var val = this[offset + 1] | (this[offset] << 8)
38827  return (val & 0x8000) ? val | 0xFFFF0000 : val
38828}
38829
38830Buffer.prototype.readInt32LE = function readInt32LE (offset, noAssert) {
38831  if (!noAssert) checkOffset(offset, 4, this.length)
38832
38833  return (this[offset]) |
38834    (this[offset + 1] << 8) |
38835    (this[offset + 2] << 16) |
38836    (this[offset + 3] << 24)
38837}
38838
38839Buffer.prototype.readInt32BE = function readInt32BE (offset, noAssert) {
38840  if (!noAssert) checkOffset(offset, 4, this.length)
38841
38842  return (this[offset] << 24) |
38843    (this[offset + 1] << 16) |
38844    (this[offset + 2] << 8) |
38845    (this[offset + 3])
38846}
38847
38848Buffer.prototype.readFloatLE = function readFloatLE (offset, noAssert) {
38849  if (!noAssert) checkOffset(offset, 4, this.length)
38850  return ieee754.read(this, offset, true, 23, 4)
38851}
38852
38853Buffer.prototype.readFloatBE = function readFloatBE (offset, noAssert) {
38854  if (!noAssert) checkOffset(offset, 4, this.length)
38855  return ieee754.read(this, offset, false, 23, 4)
38856}
38857
38858Buffer.prototype.readDoubleLE = function readDoubleLE (offset, noAssert) {
38859  if (!noAssert) checkOffset(offset, 8, this.length)
38860  return ieee754.read(this, offset, true, 52, 8)
38861}
38862
38863Buffer.prototype.readDoubleBE = function readDoubleBE (offset, noAssert) {
38864  if (!noAssert) checkOffset(offset, 8, this.length)
38865  return ieee754.read(this, offset, false, 52, 8)
38866}
38867
38868function checkInt (buf, value, offset, ext, max, min) {
38869  if (!Buffer.isBuffer(buf)) throw new TypeError('"buffer" argument must be a Buffer instance')
38870  if (value > max || value < min) throw new RangeError('"value" argument is out of bounds')
38871  if (offset + ext > buf.length) throw new RangeError('Index out of range')
38872}
38873
38874Buffer.prototype.writeUIntLE = function writeUIntLE (value, offset, byteLength, noAssert) {
38875  value = +value
38876  offset = offset | 0
38877  byteLength = byteLength | 0
38878  if (!noAssert) {
38879    var maxBytes = Math.pow(2, 8 * byteLength) - 1
38880    checkInt(this, value, offset, byteLength, maxBytes, 0)
38881  }
38882
38883  var mul = 1
38884  var i = 0
38885  this[offset] = value & 0xFF
38886  while (++i < byteLength && (mul *= 0x100)) {
38887    this[offset + i] = (value / mul) & 0xFF
38888  }
38889
38890  return offset + byteLength
38891}
38892
38893Buffer.prototype.writeUIntBE = function writeUIntBE (value, offset, byteLength, noAssert) {
38894  value = +value
38895  offset = offset | 0
38896  byteLength = byteLength | 0
38897  if (!noAssert) {
38898    var maxBytes = Math.pow(2, 8 * byteLength) - 1
38899    checkInt(this, value, offset, byteLength, maxBytes, 0)
38900  }
38901
38902  var i = byteLength - 1
38903  var mul = 1
38904  this[offset + i] = value & 0xFF
38905  while (--i >= 0 && (mul *= 0x100)) {
38906    this[offset + i] = (value / mul) & 0xFF
38907  }
38908
38909  return offset + byteLength
38910}
38911
38912Buffer.prototype.writeUInt8 = function writeUInt8 (value, offset, noAssert) {
38913  value = +value
38914  offset = offset | 0
38915  if (!noAssert) checkInt(this, value, offset, 1, 0xff, 0)
38916  if (!Buffer.TYPED_ARRAY_SUPPORT) value = Math.floor(value)
38917  this[offset] = (value & 0xff)
38918  return offset + 1
38919}
38920
38921function objectWriteUInt16 (buf, value, offset, littleEndian) {
38922  if (value < 0) value = 0xffff + value + 1
38923  for (var i = 0, j = Math.min(buf.length - offset, 2); i < j; ++i) {
38924    buf[offset + i] = (value & (0xff << (8 * (littleEndian ? i : 1 - i)))) >>>
38925      (littleEndian ? i : 1 - i) * 8
38926  }
38927}
38928
38929Buffer.prototype.writeUInt16LE = function writeUInt16LE (value, offset, noAssert) {
38930  value = +value
38931  offset = offset | 0
38932  if (!noAssert) checkInt(this, value, offset, 2, 0xffff, 0)
38933  if (Buffer.TYPED_ARRAY_SUPPORT) {
38934    this[offset] = (value & 0xff)
38935    this[offset + 1] = (value >>> 8)
38936  } else {
38937    objectWriteUInt16(this, value, offset, true)
38938  }
38939  return offset + 2
38940}
38941
38942Buffer.prototype.writeUInt16BE = function writeUInt16BE (value, offset, noAssert) {
38943  value = +value
38944  offset = offset | 0
38945  if (!noAssert) checkInt(this, value, offset, 2, 0xffff, 0)
38946  if (Buffer.TYPED_ARRAY_SUPPORT) {
38947    this[offset] = (value >>> 8)
38948    this[offset + 1] = (value & 0xff)
38949  } else {
38950    objectWriteUInt16(this, value, offset, false)
38951  }
38952  return offset + 2
38953}
38954
38955function objectWriteUInt32 (buf, value, offset, littleEndian) {
38956  if (value < 0) value = 0xffffffff + value + 1
38957  for (var i = 0, j = Math.min(buf.length - offset, 4); i < j; ++i) {
38958    buf[offset + i] = (value >>> (littleEndian ? i : 3 - i) * 8) & 0xff
38959  }
38960}
38961
38962Buffer.prototype.writeUInt32LE = function writeUInt32LE (value, offset, noAssert) {
38963  value = +value
38964  offset = offset | 0
38965  if (!noAssert) checkInt(this, value, offset, 4, 0xffffffff, 0)
38966  if (Buffer.TYPED_ARRAY_SUPPORT) {
38967    this[offset + 3] = (value >>> 24)
38968    this[offset + 2] = (value >>> 16)
38969    this[offset + 1] = (value >>> 8)
38970    this[offset] = (value & 0xff)
38971  } else {
38972    objectWriteUInt32(this, value, offset, true)
38973  }
38974  return offset + 4
38975}
38976
38977Buffer.prototype.writeUInt32BE = function writeUInt32BE (value, offset, noAssert) {
38978  value = +value
38979  offset = offset | 0
38980  if (!noAssert) checkInt(this, value, offset, 4, 0xffffffff, 0)
38981  if (Buffer.TYPED_ARRAY_SUPPORT) {
38982    this[offset] = (value >>> 24)
38983    this[offset + 1] = (value >>> 16)
38984    this[offset + 2] = (value >>> 8)
38985    this[offset + 3] = (value & 0xff)
38986  } else {
38987    objectWriteUInt32(this, value, offset, false)
38988  }
38989  return offset + 4
38990}
38991
38992Buffer.prototype.writeIntLE = function writeIntLE (value, offset, byteLength, noAssert) {
38993  value = +value
38994  offset = offset | 0
38995  if (!noAssert) {
38996    var limit = Math.pow(2, 8 * byteLength - 1)
38997
38998    checkInt(this, value, offset, byteLength, limit - 1, -limit)
38999  }
39000
39001  var i = 0
39002  var mul = 1
39003  var sub = 0
39004  this[offset] = value & 0xFF
39005  while (++i < byteLength && (mul *= 0x100)) {
39006    if (value < 0 && sub === 0 && this[offset + i - 1] !== 0) {
39007      sub = 1
39008    }
39009    this[offset + i] = ((value / mul) >> 0) - sub & 0xFF
39010  }
39011
39012  return offset + byteLength
39013}
39014
39015Buffer.prototype.writeIntBE = function writeIntBE (value, offset, byteLength, noAssert) {
39016  value = +value
39017  offset = offset | 0
39018  if (!noAssert) {
39019    var limit = Math.pow(2, 8 * byteLength - 1)
39020
39021    checkInt(this, value, offset, byteLength, limit - 1, -limit)
39022  }
39023
39024  var i = byteLength - 1
39025  var mul = 1
39026  var sub = 0
39027  this[offset + i] = value & 0xFF
39028  while (--i >= 0 && (mul *= 0x100)) {
39029    if (value < 0 && sub === 0 && this[offset + i + 1] !== 0) {
39030      sub = 1
39031    }
39032    this[offset + i] = ((value / mul) >> 0) - sub & 0xFF
39033  }
39034
39035  return offset + byteLength
39036}
39037
39038Buffer.prototype.writeInt8 = function writeInt8 (value, offset, noAssert) {
39039  value = +value
39040  offset = offset | 0
39041  if (!noAssert) checkInt(this, value, offset, 1, 0x7f, -0x80)
39042  if (!Buffer.TYPED_ARRAY_SUPPORT) value = Math.floor(value)
39043  if (value < 0) value = 0xff + value + 1
39044  this[offset] = (value & 0xff)
39045  return offset + 1
39046}
39047
39048Buffer.prototype.writeInt16LE = function writeInt16LE (value, offset, noAssert) {
39049  value = +value
39050  offset = offset | 0
39051  if (!noAssert) checkInt(this, value, offset, 2, 0x7fff, -0x8000)
39052  if (Buffer.TYPED_ARRAY_SUPPORT) {
39053    this[offset] = (value & 0xff)
39054    this[offset + 1] = (value >>> 8)
39055  } else {
39056    objectWriteUInt16(this, value, offset, true)
39057  }
39058  return offset + 2
39059}
39060
39061Buffer.prototype.writeInt16BE = function writeInt16BE (value, offset, noAssert) {
39062  value = +value
39063  offset = offset | 0
39064  if (!noAssert) checkInt(this, value, offset, 2, 0x7fff, -0x8000)
39065  if (Buffer.TYPED_ARRAY_SUPPORT) {
39066    this[offset] = (value >>> 8)
39067    this[offset + 1] = (value & 0xff)
39068  } else {
39069    objectWriteUInt16(this, value, offset, false)
39070  }
39071  return offset + 2
39072}
39073
39074Buffer.prototype.writeInt32LE = function writeInt32LE (value, offset, noAssert) {
39075  value = +value
39076  offset = offset | 0
39077  if (!noAssert) checkInt(this, value, offset, 4, 0x7fffffff, -0x80000000)
39078  if (Buffer.TYPED_ARRAY_SUPPORT) {
39079    this[offset] = (value & 0xff)
39080    this[offset + 1] = (value >>> 8)
39081    this[offset + 2] = (value >>> 16)
39082    this[offset + 3] = (value >>> 24)
39083  } else {
39084    objectWriteUInt32(this, value, offset, true)
39085  }
39086  return offset + 4
39087}
39088
39089Buffer.prototype.writeInt32BE = function writeInt32BE (value, offset, noAssert) {
39090  value = +value
39091  offset = offset | 0
39092  if (!noAssert) checkInt(this, value, offset, 4, 0x7fffffff, -0x80000000)
39093  if (value < 0) value = 0xffffffff + value + 1
39094  if (Buffer.TYPED_ARRAY_SUPPORT) {
39095    this[offset] = (value >>> 24)
39096    this[offset + 1] = (value >>> 16)
39097    this[offset + 2] = (value >>> 8)
39098    this[offset + 3] = (value & 0xff)
39099  } else {
39100    objectWriteUInt32(this, value, offset, false)
39101  }
39102  return offset + 4
39103}
39104
39105function checkIEEE754 (buf, value, offset, ext, max, min) {
39106  if (offset + ext > buf.length) throw new RangeError('Index out of range')
39107  if (offset < 0) throw new RangeError('Index out of range')
39108}
39109
39110function writeFloat (buf, value, offset, littleEndian, noAssert) {
39111  if (!noAssert) {
39112    checkIEEE754(buf, value, offset, 4, 3.4028234663852886e+38, -3.4028234663852886e+38)
39113  }
39114  ieee754.write(buf, value, offset, littleEndian, 23, 4)
39115  return offset + 4
39116}
39117
39118Buffer.prototype.writeFloatLE = function writeFloatLE (value, offset, noAssert) {
39119  return writeFloat(this, value, offset, true, noAssert)
39120}
39121
39122Buffer.prototype.writeFloatBE = function writeFloatBE (value, offset, noAssert) {
39123  return writeFloat(this, value, offset, false, noAssert)
39124}
39125
39126function writeDouble (buf, value, offset, littleEndian, noAssert) {
39127  if (!noAssert) {
39128    checkIEEE754(buf, value, offset, 8, 1.7976931348623157E+308, -1.7976931348623157E+308)
39129  }
39130  ieee754.write(buf, value, offset, littleEndian, 52, 8)
39131  return offset + 8
39132}
39133
39134Buffer.prototype.writeDoubleLE = function writeDoubleLE (value, offset, noAssert) {
39135  return writeDouble(this, value, offset, true, noAssert)
39136}
39137
39138Buffer.prototype.writeDoubleBE = function writeDoubleBE (value, offset, noAssert) {
39139  return writeDouble(this, value, offset, false, noAssert)
39140}
39141
39142// copy(targetBuffer, targetStart=0, sourceStart=0, sourceEnd=buffer.length)
39143Buffer.prototype.copy = function copy (target, targetStart, start, end) {
39144  if (!start) start = 0
39145  if (!end && end !== 0) end = this.length
39146  if (targetStart >= target.length) targetStart = target.length
39147  if (!targetStart) targetStart = 0
39148  if (end > 0 && end < start) end = start
39149
39150  // Copy 0 bytes; we're done
39151  if (end === start) return 0
39152  if (target.length === 0 || this.length === 0) return 0
39153
39154  // Fatal error conditions
39155  if (targetStart < 0) {
39156    throw new RangeError('targetStart out of bounds')
39157  }
39158  if (start < 0 || start >= this.length) throw new RangeError('sourceStart out of bounds')
39159  if (end < 0) throw new RangeError('sourceEnd out of bounds')
39160
39161  // Are we oob?
39162  if (end > this.length) end = this.length
39163  if (target.length - targetStart < end - start) {
39164    end = target.length - targetStart + start
39165  }
39166
39167  var len = end - start
39168  var i
39169
39170  if (this === target && start < targetStart && targetStart < end) {
39171    // descending copy from end
39172    for (i = len - 1; i >= 0; --i) {
39173      target[i + targetStart] = this[i + start]
39174    }
39175  } else if (len < 1000 || !Buffer.TYPED_ARRAY_SUPPORT) {
39176    // ascending copy from start
39177    for (i = 0; i < len; ++i) {
39178      target[i + targetStart] = this[i + start]
39179    }
39180  } else {
39181    Uint8Array.prototype.set.call(
39182      target,
39183      this.subarray(start, start + len),
39184      targetStart
39185    )
39186  }
39187
39188  return len
39189}
39190
39191// Usage:
39192//    buffer.fill(number[, offset[, end]])
39193//    buffer.fill(buffer[, offset[, end]])
39194//    buffer.fill(string[, offset[, end]][, encoding])
39195Buffer.prototype.fill = function fill (val, start, end, encoding) {
39196  // Handle string cases:
39197  if (typeof val === 'string') {
39198    if (typeof start === 'string') {
39199      encoding = start
39200      start = 0
39201      end = this.length
39202    } else if (typeof end === 'string') {
39203      encoding = end
39204      end = this.length
39205    }
39206    if (val.length === 1) {
39207      var code = val.charCodeAt(0)
39208      if (code < 256) {
39209        val = code
39210      }
39211    }
39212    if (encoding !== undefined && typeof encoding !== 'string') {
39213      throw new TypeError('encoding must be a string')
39214    }
39215    if (typeof encoding === 'string' && !Buffer.isEncoding(encoding)) {
39216      throw new TypeError('Unknown encoding: ' + encoding)
39217    }
39218  } else if (typeof val === 'number') {
39219    val = val & 255
39220  }
39221
39222  // Invalid ranges are not set to a default, so can range check early.
39223  if (start < 0 || this.length < start || this.length < end) {
39224    throw new RangeError('Out of range index')
39225  }
39226
39227  if (end <= start) {
39228    return this
39229  }
39230
39231  start = start >>> 0
39232  end = end === undefined ? this.length : end >>> 0
39233
39234  if (!val) val = 0
39235
39236  var i
39237  if (typeof val === 'number') {
39238    for (i = start; i < end; ++i) {
39239      this[i] = val
39240    }
39241  } else {
39242    var bytes = Buffer.isBuffer(val)
39243      ? val
39244      : utf8ToBytes(new Buffer(val, encoding).toString())
39245    var len = bytes.length
39246    for (i = 0; i < end - start; ++i) {
39247      this[i + start] = bytes[i % len]
39248    }
39249  }
39250
39251  return this
39252}
39253
39254// HELPER FUNCTIONS
39255// ================
39256
39257var INVALID_BASE64_RE = /[^+\/0-9A-Za-z-_]/g
39258
39259function base64clean (str) {
39260  // Node strips out invalid characters like \n and \t from the string, base64-js does not
39261  str = stringtrim(str).replace(INVALID_BASE64_RE, '')
39262  // Node converts strings with length < 2 to ''
39263  if (str.length < 2) return ''
39264  // Node allows for non-padded base64 strings (missing trailing ===), base64-js does not
39265  while (str.length % 4 !== 0) {
39266    str = str + '='
39267  }
39268  return str
39269}
39270
39271function stringtrim (str) {
39272  if (str.trim) return str.trim()
39273  return str.replace(/^\s+|\s+$/g, '')
39274}
39275
39276function toHex (n) {
39277  if (n < 16) return '0' + n.toString(16)
39278  return n.toString(16)
39279}
39280
39281function utf8ToBytes (string, units) {
39282  units = units || Infinity
39283  var codePoint
39284  var length = string.length
39285  var leadSurrogate = null
39286  var bytes = []
39287
39288  for (var i = 0; i < length; ++i) {
39289    codePoint = string.charCodeAt(i)
39290
39291    // is surrogate component
39292    if (codePoint > 0xD7FF && codePoint < 0xE000) {
39293      // last char was a lead
39294      if (!leadSurrogate) {
39295        // no lead yet
39296        if (codePoint > 0xDBFF) {
39297          // unexpected trail
39298          if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)
39299          continue
39300        } else if (i + 1 === length) {
39301          // unpaired lead
39302          if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)
39303          continue
39304        }
39305
39306        // valid lead
39307        leadSurrogate = codePoint
39308
39309        continue
39310      }
39311
39312      // 2 leads in a row
39313      if (codePoint < 0xDC00) {
39314        if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)
39315        leadSurrogate = codePoint
39316        continue
39317      }
39318
39319      // valid surrogate pair
39320      codePoint = (leadSurrogate - 0xD800 << 10 | codePoint - 0xDC00) + 0x10000
39321    } else if (leadSurrogate) {
39322      // valid bmp char, but last char was a lead
39323      if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)
39324    }
39325
39326    leadSurrogate = null
39327
39328    // encode utf8
39329    if (codePoint < 0x80) {
39330      if ((units -= 1) < 0) break
39331      bytes.push(codePoint)
39332    } else if (codePoint < 0x800) {
39333      if ((units -= 2) < 0) break
39334      bytes.push(
39335        codePoint >> 0x6 | 0xC0,
39336        codePoint & 0x3F | 0x80
39337      )
39338    } else if (codePoint < 0x10000) {
39339      if ((units -= 3) < 0) break
39340      bytes.push(
39341        codePoint >> 0xC | 0xE0,
39342        codePoint >> 0x6 & 0x3F | 0x80,
39343        codePoint & 0x3F | 0x80
39344      )
39345    } else if (codePoint < 0x110000) {
39346      if ((units -= 4) < 0) break
39347      bytes.push(
39348        codePoint >> 0x12 | 0xF0,
39349        codePoint >> 0xC & 0x3F | 0x80,
39350        codePoint >> 0x6 & 0x3F | 0x80,
39351        codePoint & 0x3F | 0x80
39352      )
39353    } else {
39354      throw new Error('Invalid code point')
39355    }
39356  }
39357
39358  return bytes
39359}
39360
39361function asciiToBytes (str) {
39362  var byteArray = []
39363  for (var i = 0; i < str.length; ++i) {
39364    // Node's code seems to be doing this and not & 0x7F..
39365    byteArray.push(str.charCodeAt(i) & 0xFF)
39366  }
39367  return byteArray
39368}
39369
39370function utf16leToBytes (str, units) {
39371  var c, hi, lo
39372  var byteArray = []
39373  for (var i = 0; i < str.length; ++i) {
39374    if ((units -= 2) < 0) break
39375
39376    c = str.charCodeAt(i)
39377    hi = c >> 8
39378    lo = c % 256
39379    byteArray.push(lo)
39380    byteArray.push(hi)
39381  }
39382
39383  return byteArray
39384}
39385
39386function base64ToBytes (str) {
39387  return base64.toByteArray(base64clean(str))
39388}
39389
39390function blitBuffer (src, dst, offset, length) {
39391  for (var i = 0; i < length; ++i) {
39392    if ((i + offset >= dst.length) || (i >= src.length)) break
39393    dst[i + offset] = src[i]
39394  }
39395  return i
39396}
39397
39398function isnan (val) {
39399  return val !== val // eslint-disable-line no-self-compare
39400}
39401
39402/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./../webpack/buildin/global.js */ "./node_modules/webpack/buildin/global.js")))
39403
39404/***/ }),
39405
vendor: 2,409 bytes, lines 39406-39501
39406/***/ "./node_modules/ieee754/index.js":
39407/*!***************************************!*\
39408  !*** ./node_modules/ieee754/index.js ***!
39409  \***************************************/
39410/*! no static exports found */
39411/***/ (function(module, exports) {
39412
39413/*! ieee754. BSD-3-Clause License. Feross Aboukhadijeh <https://feross.org/opensource> */
39414exports.read = function (buffer, offset, isLE, mLen, nBytes) {
39415  var e, m
39416  var eLen = (nBytes * 8) - mLen - 1
39417  var eMax = (1 << eLen) - 1
39418  var eBias = eMax >> 1
39419  var nBits = -7
39420  var i = isLE ? (nBytes - 1) : 0
39421  var d = isLE ? -1 : 1
39422  var s = buffer[offset + i]
39423
39424  i += d
39425
39426  e = s & ((1 << (-nBits)) - 1)
39427  s >>= (-nBits)
39428  nBits += eLen
39429  for (; nBits > 0; e = (e * 256) + buffer[offset + i], i += d, nBits -= 8) {}
39430
39431  m = e & ((1 << (-nBits)) - 1)
39432  e >>= (-nBits)
39433  nBits += mLen
39434  for (; nBits > 0; m = (m * 256) + buffer[offset + i], i += d, nBits -= 8) {}
39435
39436  if (e === 0) {
39437    e = 1 - eBias
39438  } else if (e === eMax) {
39439    return m ? NaN : ((s ? -1 : 1) * Infinity)
39440  } else {
39441    m = m + Math.pow(2, mLen)
39442    e = e - eBias
39443  }
39444  return (s ? -1 : 1) * m * Math.pow(2, e - mLen)
39445}
39446
39447exports.write = function (buffer, value, offset, isLE, mLen, nBytes) {
39448  var e, m, c
39449  var eLen = (nBytes * 8) - mLen - 1
39450  var eMax = (1 << eLen) - 1
39451  var eBias = eMax >> 1
39452  var rt = (mLen === 23 ? Math.pow(2, -24) - Math.pow(2, -77) : 0)
39453  var i = isLE ? 0 : (nBytes - 1)
39454  var d = isLE ? 1 : -1
39455  var s = value < 0 || (value === 0 && 1 / value < 0) ? 1 : 0
39456
39457  value = Math.abs(value)
39458
39459  if (isNaN(value) || value === Infinity) {
39460    m = isNaN(value) ? 1 : 0
39461    e = eMax
39462  } else {
39463    e = Math.floor(Math.log(value) / Math.LN2)
39464    if (value * (c = Math.pow(2, -e)) < 1) {
39465      e--
39466      c *= 2
39467    }
39468    if (e + eBias >= 1) {
39469      value += rt / c
39470    } else {
39471      value += rt * Math.pow(2, 1 - eBias)
39472    }
39473    if (value * c >= 2) {
39474      e++
39475      c /= 2
39476    }
39477
39478    if (e + eBias >= eMax) {
39479      m = 0
39480      e = eMax
39481    } else if (e + eBias >= 1) {
39482      m = ((value * c) - 1) * Math.pow(2, mLen)
39483      e = e + eBias
39484    } else {
39485      m = value * Math.pow(2, eBias - 1) * Math.pow(2, mLen)
39486      e = 0
39487    }
39488  }
39489
39490  for (; mLen >= 8; buffer[offset + i] = m & 0xff, i += d, m /= 256, mLen -= 8) {}
39491
39492  e = (e << mLen) | m
39493  eLen += mLen
39494  for (; eLen > 0; buffer[offset + i] = e & 0xff, i += d, e /= 256, eLen -= 8) {}
39495
39496  buffer[offset + i - d] |= s * 128
39497}
39498
39499
39500/***/ }),
39501
vendor: 387 bytes, lines 39502-39517
39502/***/ "./node_modules/isarray/index.js":
39503/*!***************************************!*\
39504  !*** ./node_modules/isarray/index.js ***!
39505  \***************************************/
39506/*! no static exports found */
39507/***/ (function(module, exports) {
39508
39509var toString = {}.toString;
39510
39511module.exports = Array.isArray || function (arr) {
39512  return toString.call(arr) == '[object Array]';
39513};
39514
39515
39516/***/ }),
39517
vendor: 15,557 bytes, lines 39518-39838
39518/***/ "./node_modules/mitt/dist/mitt.mjs":
39519/*!*****************************************!*\
39520  !*** ./node_modules/mitt/dist/mitt.mjs ***!
39521  \*****************************************/
39522/*! exports provided: default */
39523/***/ (function(__webpack_module__, __webpack_exports__, __webpack_require__) {
39524
39525"use strict";
39526__webpack_require__.r(__webpack_exports__);
39527/* harmony default export */ __webpack_exports__["default"] = (function(n){return{all:n=n||new Map,on:function(t,e){var i=n.get(t);i?i.push(e):n.set(t,[e])},off:function(t,e){var i=n.get(t);i&&(e?i.splice(i.indexOf(e)>>>0,1):n.set(t,[]))},emit:function(t,e){var i=n.get(t);i&&i.slice().map(function(n){n(e)}),(i=n.get("*"))&&i.slice().map(function(n){n(t,e)})}}});
39528//# sourceMappingURL=mitt.mjs.map
39529
39530
39531/***/ }),
39532
39533/***/ "./node_modules/moment/locale sync recursive ^\\.\\/.*$":
39534/*!**************************************************!*\
39535  !*** ./node_modules/moment/locale sync ^\.\/.*$ ***!
39536  \**************************************************/
39537/*! no static exports found */
39538/***/ (function(module, exports, __webpack_require__) {
39539
39540var map = {
39541	"./af": "./node_modules/moment/locale/af.js",
39542	"./af.js": "./node_modules/moment/locale/af.js",
39543	"./ar": "./node_modules/moment/locale/ar.js",
39544	"./ar-dz": "./node_modules/moment/locale/ar-dz.js",
39545	"./ar-dz.js": "./node_modules/moment/locale/ar-dz.js",
39546	"./ar-kw": "./node_modules/moment/locale/ar-kw.js",
39547	"./ar-kw.js": "./node_modules/moment/locale/ar-kw.js",
39548	"./ar-ly": "./node_modules/moment/locale/ar-ly.js",
39549	"./ar-ly.js": "./node_modules/moment/locale/ar-ly.js",
39550	"./ar-ma": "./node_modules/moment/locale/ar-ma.js",
39551	"./ar-ma.js": "./node_modules/moment/locale/ar-ma.js",
39552	"./ar-ps": "./node_modules/moment/locale/ar-ps.js",
39553	"./ar-ps.js": "./node_modules/moment/locale/ar-ps.js",
39554	"./ar-sa": "./node_modules/moment/locale/ar-sa.js",
39555	"./ar-sa.js": "./node_modules/moment/locale/ar-sa.js",
39556	"./ar-tn": "./node_modules/moment/locale/ar-tn.js",
39557	"./ar-tn.js": "./node_modules/moment/locale/ar-tn.js",
39558	"./ar.js": "./node_modules/moment/locale/ar.js",
39559	"./az": "./node_modules/moment/locale/az.js",
39560	"./az.js": "./node_modules/moment/locale/az.js",
39561	"./be": "./node_modules/moment/locale/be.js",
39562	"./be.js": "./node_modules/moment/locale/be.js",
39563	"./bg": "./node_modules/moment/locale/bg.js",
39564	"./bg.js": "./node_modules/moment/locale/bg.js",
39565	"./bm": "./node_modules/moment/locale/bm.js",
39566	"./bm.js": "./node_modules/moment/locale/bm.js",
39567	"./bn": "./node_modules/moment/locale/bn.js",
39568	"./bn-bd": "./node_modules/moment/locale/bn-bd.js",
39569	"./bn-bd.js": "./node_modules/moment/locale/bn-bd.js",
39570	"./bn.js": "./node_modules/moment/locale/bn.js",
39571	"./bo": "./node_modules/moment/locale/bo.js",
39572	"./bo.js": "./node_modules/moment/locale/bo.js",
39573	"./br": "./node_modules/moment/locale/br.js",
39574	"./br.js": "./node_modules/moment/locale/br.js",
39575	"./bs": "./node_modules/moment/locale/bs.js",
39576	"./bs.js": "./node_modules/moment/locale/bs.js",
39577	"./ca": "./node_modules/moment/locale/ca.js",
39578	"./ca.js": "./node_modules/moment/locale/ca.js",
39579	"./cs": "./node_modules/moment/locale/cs.js",
39580	"./cs.js": "./node_modules/moment/locale/cs.js",
39581	"./cv": "./node_modules/moment/locale/cv.js",
39582	"./cv.js": "./node_modules/moment/locale/cv.js",
39583	"./cy": "./node_modules/moment/locale/cy.js",
39584	"./cy.js": "./node_modules/moment/locale/cy.js",
39585	"./da": "./node_modules/moment/locale/da.js",
39586	"./da.js": "./node_modules/moment/locale/da.js",
39587	"./de": "./node_modules/moment/locale/de.js",
39588	"./de-at": "./node_modules/moment/locale/de-at.js",
39589	"./de-at.js": "./node_modules/moment/locale/de-at.js",
39590	"./de-ch": "./node_modules/moment/locale/de-ch.js",
39591	"./de-ch.js": "./node_modules/moment/locale/de-ch.js",
39592	"./de.js": "./node_modules/moment/locale/de.js",
39593	"./dv": "./node_modules/moment/locale/dv.js",
39594	"./dv.js": "./node_modules/moment/locale/dv.js",
39595	"./el": "./node_modules/moment/locale/el.js",
39596	"./el.js": "./node_modules/moment/locale/el.js",
39597	"./en-au": "./node_modules/moment/locale/en-au.js",
39598	"./en-au.js": "./node_modules/moment/locale/en-au.js",
39599	"./en-ca": "./node_modules/moment/locale/en-ca.js",
39600	"./en-ca.js": "./node_modules/moment/locale/en-ca.js",
39601	"./en-gb": "./node_modules/moment/locale/en-gb.js",
39602	"./en-gb.js": "./node_modules/moment/locale/en-gb.js",
39603	"./en-ie": "./node_modules/moment/locale/en-ie.js",
39604	"./en-ie.js": "./node_modules/moment/locale/en-ie.js",
39605	"./en-il": "./node_modules/moment/locale/en-il.js",
39606	"./en-il.js": "./node_modules/moment/locale/en-il.js",
39607	"./en-in": "./node_modules/moment/locale/en-in.js",
39608	"./en-in.js": "./node_modules/moment/locale/en-in.js",
39609	"./en-nz": "./node_modules/moment/locale/en-nz.js",
39610	"./en-nz.js": "./node_modules/moment/locale/en-nz.js",
39611	"./en-sg": "./node_modules/moment/locale/en-sg.js",
39612	"./en-sg.js": "./node_modules/moment/locale/en-sg.js",
39613	"./eo": "./node_modules/moment/locale/eo.js",
39614	"./eo.js": "./node_modules/moment/locale/eo.js",
39615	"./es": "./node_modules/moment/locale/es.js",
39616	"./es-do": "./node_modules/moment/locale/es-do.js",
39617	"./es-do.js": "./node_modules/moment/locale/es-do.js",
39618	"./es-mx": "./node_modules/moment/locale/es-mx.js",
39619	"./es-mx.js": "./node_modules/moment/locale/es-mx.js",
39620	"./es-us": "./node_modules/moment/locale/es-us.js",
39621	"./es-us.js": "./node_modules/moment/locale/es-us.js",
39622	"./es.js": "./node_modules/moment/locale/es.js",
39623	"./et": "./node_modules/moment/locale/et.js",
39624	"./et.js": "./node_modules/moment/locale/et.js",
39625	"./eu": "./node_modules/moment/locale/eu.js",
39626	"./eu.js": "./node_modules/moment/locale/eu.js",
39627	"./fa": "./node_modules/moment/locale/fa.js",
39628	"./fa.js": "./node_modules/moment/locale/fa.js",
39629	"./fi": "./node_modules/moment/locale/fi.js",
39630	"./fi.js": "./node_modules/moment/locale/fi.js",
39631	"./fil": "./node_modules/moment/locale/fil.js",
39632	"./fil.js": "./node_modules/moment/locale/fil.js",
39633	"./fo": "./node_modules/moment/locale/fo.js",
39634	"./fo.js": "./node_modules/moment/locale/fo.js",
39635	"./fr": "./node_modules/moment/locale/fr.js",
39636	"./fr-ca": "./node_modules/moment/locale/fr-ca.js",
39637	"./fr-ca.js": "./node_modules/moment/locale/fr-ca.js",
39638	"./fr-ch": "./node_modules/moment/locale/fr-ch.js",
39639	"./fr-ch.js": "./node_modules/moment/locale/fr-ch.js",
39640	"./fr.js": "./node_modules/moment/locale/fr.js",
39641	"./fy": "./node_modules/moment/locale/fy.js",
39642	"./fy.js": "./node_modules/moment/locale/fy.js",
39643	"./ga": "./node_modules/moment/locale/ga.js",
39644	"./ga.js": "./node_modules/moment/locale/ga.js",
39645	"./gd": "./node_modules/moment/locale/gd.js",
39646	"./gd.js": "./node_modules/moment/locale/gd.js",
39647	"./gl": "./node_modules/moment/locale/gl.js",
39648	"./gl.js": "./node_modules/moment/locale/gl.js",
39649	"./gom-deva": "./node_modules/moment/locale/gom-deva.js",
39650	"./gom-deva.js": "./node_modules/moment/locale/gom-deva.js",
39651	"./gom-latn": "./node_modules/moment/locale/gom-latn.js",
39652	"./gom-latn.js": "./node_modules/moment/locale/gom-latn.js",
39653	"./gu": "./node_modules/moment/locale/gu.js",
39654	"./gu.js": "./node_modules/moment/locale/gu.js",
39655	"./he": "./node_modules/moment/locale/he.js",
39656	"./he.js": "./node_modules/moment/locale/he.js",
39657	"./hi": "./node_modules/moment/locale/hi.js",
39658	"./hi.js": "./node_modules/moment/locale/hi.js",
39659	"./hr": "./node_modules/moment/locale/hr.js",
39660	"./hr.js": "./node_modules/moment/locale/hr.js",
39661	"./hu": "./node_modules/moment/locale/hu.js",
39662	"./hu.js": "./node_modules/moment/locale/hu.js",
39663	"./hy-am": "./node_modules/moment/locale/hy-am.js",
39664	"./hy-am.js": "./node_modules/moment/locale/hy-am.js",
39665	"./id": "./node_modules/moment/locale/id.js",
39666	"./id.js": "./node_modules/moment/locale/id.js",
39667	"./is": "./node_modules/moment/locale/is.js",
39668	"./is.js": "./node_modules/moment/locale/is.js",
39669	"./it": "./node_modules/moment/locale/it.js",
39670	"./it-ch": "./node_modules/moment/locale/it-ch.js",
39671	"./it-ch.js": "./node_modules/moment/locale/it-ch.js",
39672	"./it.js": "./node_modules/moment/locale/it.js",
39673	"./ja": "./node_modules/moment/locale/ja.js",
39674	"./ja.js": "./node_modules/moment/locale/ja.js",
39675	"./jv": "./node_modules/moment/locale/jv.js",
39676	"./jv.js": "./node_modules/moment/locale/jv.js",
39677	"./ka": "./node_modules/moment/locale/ka.js",
39678	"./ka.js": "./node_modules/moment/locale/ka.js",
39679	"./kk": "./node_modules/moment/locale/kk.js",
39680	"./kk.js": "./node_modules/moment/locale/kk.js",
39681	"./km": "./node_modules/moment/locale/km.js",
39682	"./km.js": "./node_modules/moment/locale/km.js",
39683	"./kn": "./node_modules/moment/locale/kn.js",
39684	"./kn.js": "./node_modules/moment/locale/kn.js",
39685	"./ko": "./node_modules/moment/locale/ko.js",
39686	"./ko.js": "./node_modules/moment/locale/ko.js",
39687	"./ku": "./node_modules/moment/locale/ku.js",
39688	"./ku-kmr": "./node_modules/moment/locale/ku-kmr.js",
39689	"./ku-kmr.js": "./node_modules/moment/locale/ku-kmr.js",
39690	"./ku.js": "./node_modules/moment/locale/ku.js",
39691	"./ky": "./node_modules/moment/locale/ky.js",
39692	"./ky.js": "./node_modules/moment/locale/ky.js",
39693	"./lb": "./node_modules/moment/locale/lb.js",
39694	"./lb.js": "./node_modules/moment/locale/lb.js",
39695	"./lo": "./node_modules/moment/locale/lo.js",
39696	"./lo.js": "./node_modules/moment/locale/lo.js",
39697	"./lt": "./node_modules/moment/locale/lt.js",
39698	"./lt.js": "./node_modules/moment/locale/lt.js",
39699	"./lv": "./node_modules/moment/locale/lv.js",
39700	"./lv.js": "./node_modules/moment/locale/lv.js",
39701	"./me": "./node_modules/moment/locale/me.js",
39702	"./me.js": "./node_modules/moment/locale/me.js",
39703	"./mi": "./node_modules/moment/locale/mi.js",
39704	"./mi.js": "./node_modules/moment/locale/mi.js",
39705	"./mk": "./node_modules/moment/locale/mk.js",
39706	"./mk.js": "./node_modules/moment/locale/mk.js",
39707	"./ml": "./node_modules/moment/locale/ml.js",
39708	"./ml.js": "./node_modules/moment/locale/ml.js",
39709	"./mn": "./node_modules/moment/locale/mn.js",
39710	"./mn.js": "./node_modules/moment/locale/mn.js",
39711	"./mr": "./node_modules/moment/locale/mr.js",
39712	"./mr.js": "./node_modules/moment/locale/mr.js",
39713	"./ms": "./node_modules/moment/locale/ms.js",
39714	"./ms-my": "./node_modules/moment/locale/ms-my.js",
39715	"./ms-my.js": "./node_modules/moment/locale/ms-my.js",
39716	"./ms.js": "./node_modules/moment/locale/ms.js",
39717	"./mt": "./node_modules/moment/locale/mt.js",
39718	"./mt.js": "./node_modules/moment/locale/mt.js",
39719	"./my": "./node_modules/moment/locale/my.js",
39720	"./my.js": "./node_modules/moment/locale/my.js",
39721	"./nb": "./node_modules/moment/locale/nb.js",
39722	"./nb.js": "./node_modules/moment/locale/nb.js",
39723	"./ne": "./node_modules/moment/locale/ne.js",
39724	"./ne.js": "./node_modules/moment/locale/ne.js",
39725	"./nl": "./node_modules/moment/locale/nl.js",
39726	"./nl-be": "./node_modules/moment/locale/nl-be.js",
39727	"./nl-be.js": "./node_modules/moment/locale/nl-be.js",
39728	"./nl.js": "./node_modules/moment/locale/nl.js",
39729	"./nn": "./node_modules/moment/locale/nn.js",
39730	"./nn.js": "./node_modules/moment/locale/nn.js",
39731	"./oc-lnc": "./node_modules/moment/locale/oc-lnc.js",
39732	"./oc-lnc.js": "./node_modules/moment/locale/oc-lnc.js",
39733	"./pa-in": "./node_modules/moment/locale/pa-in.js",
39734	"./pa-in.js": "./node_modules/moment/locale/pa-in.js",
39735	"./pl": "./node_modules/moment/locale/pl.js",
39736	"./pl.js": "./node_modules/moment/locale/pl.js",
39737	"./pt": "./node_modules/moment/locale/pt.js",
39738	"./pt-br": "./node_modules/moment/locale/pt-br.js",
39739	"./pt-br.js": "./node_modules/moment/locale/pt-br.js",
39740	"./pt.js": "./node_modules/moment/locale/pt.js",
39741	"./ro": "./node_modules/moment/locale/ro.js",
39742	"./ro.js": "./node_modules/moment/locale/ro.js",
39743	"./ru": "./node_modules/moment/locale/ru.js",
39744	"./ru.js": "./node_modules/moment/locale/ru.js",
39745	"./sd": "./node_modules/moment/locale/sd.js",
39746	"./sd.js": "./node_modules/moment/locale/sd.js",
39747	"./se": "./node_modules/moment/locale/se.js",
39748	"./se.js": "./node_modules/moment/locale/se.js",
39749	"./si": "./node_modules/moment/locale/si.js",
39750	"./si.js": "./node_modules/moment/locale/si.js",
39751	"./sk": "./node_modules/moment/locale/sk.js",
39752	"./sk.js": "./node_modules/moment/locale/sk.js",
39753	"./sl": "./node_modules/moment/locale/sl.js",
39754	"./sl.js": "./node_modules/moment/locale/sl.js",
39755	"./sq": "./node_modules/moment/locale/sq.js",
39756	"./sq.js": "./node_modules/moment/locale/sq.js",
39757	"./sr": "./node_modules/moment/locale/sr.js",
39758	"./sr-cyrl": "./node_modules/moment/locale/sr-cyrl.js",
39759	"./sr-cyrl.js": "./node_modules/moment/locale/sr-cyrl.js",
39760	"./sr.js": "./node_modules/moment/locale/sr.js",
39761	"./ss": "./node_modules/moment/locale/ss.js",
39762	"./ss.js": "./node_modules/moment/locale/ss.js",
39763	"./sv": "./node_modules/moment/locale/sv.js",
39764	"./sv.js": "./node_modules/moment/locale/sv.js",
39765	"./sw": "./node_modules/moment/locale/sw.js",
39766	"./sw.js": "./node_modules/moment/locale/sw.js",
39767	"./ta": "./node_modules/moment/locale/ta.js",
39768	"./ta.js": "./node_modules/moment/locale/ta.js",
39769	"./te": "./node_modules/moment/locale/te.js",
39770	"./te.js": "./node_modules/moment/locale/te.js",
39771	"./tet": "./node_modules/moment/locale/tet.js",
39772	"./tet.js": "./node_modules/moment/locale/tet.js",
39773	"./tg": "./node_modules/moment/locale/tg.js",
39774	"./tg.js": "./node_modules/moment/locale/tg.js",
39775	"./th": "./node_modules/moment/locale/th.js",
39776	"./th.js": "./node_modules/moment/locale/th.js",
39777	"./tk": "./node_modules/moment/locale/tk.js",
39778	"./tk.js": "./node_modules/moment/locale/tk.js",
39779	"./tl-ph": "./node_modules/moment/locale/tl-ph.js",
39780	"./tl-ph.js": "./node_modules/moment/locale/tl-ph.js",
39781	"./tlh": "./node_modules/moment/locale/tlh.js",
39782	"./tlh.js": "./node_modules/moment/locale/tlh.js",
39783	"./tr": "./node_modules/moment/locale/tr.js",
39784	"./tr.js": "./node_modules/moment/locale/tr.js",
39785	"./tzl": "./node_modules/moment/locale/tzl.js",
39786	"./tzl.js": "./node_modules/moment/locale/tzl.js",
39787	"./tzm": "./node_modules/moment/locale/tzm.js",
39788	"./tzm-latn": "./node_modules/moment/locale/tzm-latn.js",
39789	"./tzm-latn.js": "./node_modules/moment/locale/tzm-latn.js",
39790	"./tzm.js": "./node_modules/moment/locale/tzm.js",
39791	"./ug-cn": "./node_modules/moment/locale/ug-cn.js",
39792	"./ug-cn.js": "./node_modules/moment/locale/ug-cn.js",
39793	"./uk": "./node_modules/moment/locale/uk.js",
39794	"./uk.js": "./node_modules/moment/locale/uk.js",
39795	"./ur": "./node_modules/moment/locale/ur.js",
39796	"./ur.js": "./node_modules/moment/locale/ur.js",
39797	"./uz": "./node_modules/moment/locale/uz.js",
39798	"./uz-latn": "./node_modules/moment/locale/uz-latn.js",
39799	"./uz-latn.js": "./node_modules/moment/locale/uz-latn.js",
39800	"./uz.js": "./node_modules/moment/locale/uz.js",
39801	"./vi": "./node_modules/moment/locale/vi.js",
39802	"./vi.js": "./node_modules/moment/locale/vi.js",
39803	"./x-pseudo": "./node_modules/moment/locale/x-pseudo.js",
39804	"./x-pseudo.js": "./node_modules/moment/locale/x-pseudo.js",
39805	"./yo": "./node_modules/moment/locale/yo.js",
39806	"./yo.js": "./node_modules/moment/locale/yo.js",
39807	"./zh-cn": "./node_modules/moment/locale/zh-cn.js",
39808	"./zh-cn.js": "./node_modules/moment/locale/zh-cn.js",
39809	"./zh-hk": "./node_modules/moment/locale/zh-hk.js",
39810	"./zh-hk.js": "./node_modules/moment/locale/zh-hk.js",
39811	"./zh-mo": "./node_modules/moment/locale/zh-mo.js",
39812	"./zh-mo.js": "./node_modules/moment/locale/zh-mo.js",
39813	"./zh-tw": "./node_modules/moment/locale/zh-tw.js",
39814	"./zh-tw.js": "./node_modules/moment/locale/zh-tw.js"
39815};
39816
39817
39818function webpackContext(req) {
39819	var id = webpackContextResolve(req);
39820	return __webpack_require__(id);
39821}
39822function webpackContextResolve(req) {
39823	if(!__webpack_require__.o(map, req)) {
39824		var e = new Error("Cannot find module '" + req + "'");
39825		e.code = 'MODULE_NOT_FOUND';
39826		throw e;
39827	}
39828	return map[req];
39829}
39830webpackContext.keys = function webpackContextKeys() {
39831	return Object.keys(map);
39832};
39833webpackContext.resolve = webpackContextResolve;
39834module.exports = webpackContext;
39835webpackContext.id = "./node_modules/moment/locale sync recursive ^\\.\\/.*$";
39836
39837/***/ }),
39838
vendor: 2,903 bytes, lines 39839-39929
39839/***/ "./node_modules/moment/locale/af.js":
39840/*!******************************************!*\
39841  !*** ./node_modules/moment/locale/af.js ***!
39842  \******************************************/
39843/*! no static exports found */
39844/***/ (function(module, exports, __webpack_require__) {
39845
39846//! moment.js locale configuration
39847//! locale : Afrikaans [af]
39848//! author : Werner Mollentze : https://github.com/wernerm
39849
39850;(function (global, factory) {
39851    true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/moment/moment.js")) :
39852   undefined
39853}(this, (function (moment) { 'use strict';
39854
39855    //! moment.js locale configuration
39856
39857    var af = moment.defineLocale('af', {
39858        months: 'Januarie_Februarie_Maart_April_Mei_Junie_Julie_Augustus_September_Oktober_November_Desember'.split(
39859            '_'
39860        ),
39861        monthsShort: 'Jan_Feb_Mrt_Apr_Mei_Jun_Jul_Aug_Sep_Okt_Nov_Des'.split('_'),
39862        weekdays: 'Sondag_Maandag_Dinsdag_Woensdag_Donderdag_Vrydag_Saterdag'.split(
39863            '_'
39864        ),
39865        weekdaysShort: 'Son_Maa_Din_Woe_Don_Vry_Sat'.split('_'),
39866        weekdaysMin: 'So_Ma_Di_Wo_Do_Vr_Sa'.split('_'),
39867        meridiemParse: /vm|nm/i,
39868        isPM: function (input) {
39869            return /^nm$/i.test(input);
39870        },
39871        meridiem: function (hours, minutes, isLower) {
39872            if (hours < 12) {
39873                return isLower ? 'vm' : 'VM';
39874            } else {
39875                return isLower ? 'nm' : 'NM';
39876            }
39877        },
39878        longDateFormat: {
39879            LT: 'HH:mm',
39880            LTS: 'HH:mm:ss',
39881            L: 'DD/MM/YYYY',
39882            LL: 'D MMMM YYYY',
39883            LLL: 'D MMMM YYYY HH:mm',
39884            LLLL: 'dddd, D MMMM YYYY HH:mm',
39885        },
39886        calendar: {
39887            sameDay: '[Vandag om] LT',
39888            nextDay: '[Môre om] LT',
39889            nextWeek: 'dddd [om] LT',
39890            lastDay: '[Gister om] LT',
39891            lastWeek: '[Laas] dddd [om] LT',
39892            sameElse: 'L',
39893        },
39894        relativeTime: {
39895            future: 'oor %s',
39896            past: '%s gelede',
39897            s: "'n paar sekondes",
39898            ss: '%d sekondes',
39899            m: "'n minuut",
39900            mm: '%d minute',
39901            h: "'n uur",
39902            hh: '%d ure',
39903            d: "'n dag",
39904            dd: '%d dae',
39905            M: "'n maand",
39906            MM: '%d maande',
39907            y: "'n jaar",
39908            yy: '%d jaar',
39909        },
39910        dayOfMonthOrdinalParse: /\d{1,2}(ste|de)/,
39911        ordinal: function (number) {
39912            return (
39913                number +
39914                (number === 1 || number === 8 || number >= 20 ? 'ste' : 'de')
39915            ); // Thanks to Joris Röling : https://github.com/jjupiter
39916        },
39917        week: {
39918            dow: 1, // Maandag is die eerste dag van die week.
39919            doy: 4, // Die week wat die 4de Januarie bevat is die eerste week van die jaar.
39920        },
39921    });
39922
39923    return af;
39924
39925})));
39926
39927
39928/***/ }),
39929
vendor: 5,579 bytes, lines 39930-40105
39930/***/ "./node_modules/moment/locale/ar-dz.js":
39931/*!*********************************************!*\
39932  !*** ./node_modules/moment/locale/ar-dz.js ***!
39933  \*********************************************/
39934/*! no static exports found */
39935/***/ (function(module, exports, __webpack_require__) {
39936
39937//! moment.js locale configuration
39938//! locale : Arabic (Algeria) [ar-dz]
39939//! author : Amine Roukh: https://github.com/Amine27
39940//! author : Abdel Said: https://github.com/abdelsaid
39941//! author : Ahmed Elkhatib
39942//! author : forabi https://github.com/forabi
39943//! author : Noureddine LOUAHEDJ : https://github.com/noureddinem
39944
39945;(function (global, factory) {
39946    true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/moment/moment.js")) :
39947   undefined
39948}(this, (function (moment) { 'use strict';
39949
39950    //! moment.js locale configuration
39951
39952    var pluralForm = function (n) {
39953            return n === 0
39954                ? 0
39955                : n === 1
39956                  ? 1
39957                  : n === 2
39958                    ? 2
39959                    : n % 100 >= 3 && n % 100 <= 10
39960                      ? 3
39961                      : n % 100 >= 11
39962                        ? 4
39963                        : 5;
39964        },
39965        plurals = {
39966            s: [
39967                'أقل من ثانية',
39968                'ثانية واحدة',
39969                ['ثانيتان', 'ثانيتين'],
39970                '%d ثوان',
39971                '%d ثانية',
39972                '%d ثانية',
39973            ],
39974            m: [
39975                'أقل من دقيقة',
39976                'دقيقة واحدة',
39977                ['دقيقتان', 'دقيقتين'],
39978                '%d دقائق',
39979                '%d دقيقة',
39980                '%d دقيقة',
39981            ],
39982            h: [
39983                'أقل من ساعة',
39984                'ساعة واحدة',
39985                ['ساعتان', 'ساعتين'],
39986                '%d ساعات',
39987                '%d ساعة',
39988                '%d ساعة',
39989            ],
39990            d: [
39991                'أقل من يوم',
39992                'يوم واحد',
39993                ['يومان', 'يومين'],
39994                '%d أيام',
39995                '%d يومًا',
39996                '%d يوم',
39997            ],
39998            M: [
39999                'أقل من شهر',
40000                'شهر واحد',
40001                ['شهران', 'شهرين'],
40002                '%d أشهر',
40003                '%d شهرا',
40004                '%d شهر',
40005            ],
40006            y: [
40007                'أقل من عام',
40008                'عام واحد',
40009                ['عامان', 'عامين'],
40010                '%d أعوام',
40011                '%d عامًا',
40012                '%d عام',
40013            ],
40014        },
40015        pluralize = function (u) {
40016            return function (number, withoutSuffix, string, isFuture) {
40017                var f = pluralForm(number),
40018                    str = plurals[u][pluralForm(number)];
40019                if (f === 2) {
40020                    str = str[withoutSuffix ? 0 : 1];
40021                }
40022                return str.replace(/%d/i, number);
40023            };
40024        },
40025        months = [
40026            'جانفي',
40027            'فيفري',
40028            'مارس',
40029            'أفريل',
40030            'ماي',
40031            'جوان',
40032            'جويلية',
40033            'أوت',
40034            'سبتمبر',
40035            'أكتوبر',
40036            'نوفمبر',
40037            'ديسمبر',
40038        ];
40039
40040    var arDz = moment.defineLocale('ar-dz', {
40041        months: months,
40042        monthsShort: months,
40043        weekdays: 'الأحد_الإثنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت'.split('_'),
40044        weekdaysShort: 'أحد_إثنين_ثلاثاء_أربعاء_خميس_جمعة_سبت'.split('_'),
40045        weekdaysMin: 'ح_ن_ث_ر_خ_ج_س'.split('_'),
40046        weekdaysParseExact: true,
40047        longDateFormat: {
40048            LT: 'HH:mm',
40049            LTS: 'HH:mm:ss',
40050            L: 'D/\u200FM/\u200FYYYY',
40051            LL: 'D MMMM YYYY',
40052            LLL: 'D MMMM YYYY HH:mm',
40053            LLLL: 'dddd D MMMM YYYY HH:mm',
40054        },
40055        meridiemParse: /ص|م/,
40056        isPM: function (input) {
40057            return 'م' === input;
40058        },
40059        meridiem: function (hour, minute, isLower) {
40060            if (hour < 12) {
40061                return 'ص';
40062            } else {
40063                return 'م';
40064            }
40065        },
40066        calendar: {
40067            sameDay: '[اليوم عند الساعة] LT',
40068            nextDay: '[غدًا عند الساعة] LT',
40069            nextWeek: 'dddd [عند الساعة] LT',
40070            lastDay: '[أمس عند الساعة] LT',
40071            lastWeek: 'dddd [عند الساعة] LT',
40072            sameElse: 'L',
40073        },
40074        relativeTime: {
40075            future: 'بعد %s',
40076            past: 'منذ %s',
40077            s: pluralize('s'),
40078            ss: pluralize('s'),
40079            m: pluralize('m'),
40080            mm: pluralize('m'),
40081            h: pluralize('h'),
40082            hh: pluralize('h'),
40083            d: pluralize('d'),
40084            dd: pluralize('d'),
40085            M: pluralize('M'),
40086            MM: pluralize('M'),
40087            y: pluralize('y'),
40088            yy: pluralize('y'),
40089        },
40090        postformat: function (string) {
40091            return string.replace(/,/g, '،');
40092        },
40093        week: {
40094            dow: 0, // Sunday is the first day of the week.
40095            doy: 4, // The week that contains Jan 4th is the first week of the year.
40096        },
40097    });
40098
40099    return arDz;
40100
40101})));
40102
40103
40104/***/ }),
40105
vendor: 2,640 bytes, lines 40106-40180
40106/***/ "./node_modules/moment/locale/ar-kw.js":
40107/*!*********************************************!*\
40108  !*** ./node_modules/moment/locale/ar-kw.js ***!
40109  \*********************************************/
40110/*! no static exports found */
40111/***/ (function(module, exports, __webpack_require__) {
40112
40113//! moment.js locale configuration
40114//! locale : Arabic (Kuwait) [ar-kw]
40115//! author : Nusret Parlak: https://github.com/nusretparlak
40116
40117;(function (global, factory) {
40118    true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/moment/moment.js")) :
40119   undefined
40120}(this, (function (moment) { 'use strict';
40121
40122    //! moment.js locale configuration
40123
40124    var arKw = moment.defineLocale('ar-kw', {
40125        months: 'يناير_فبراير_مارس_أبريل_ماي_يونيو_يوليوز_غشت_شتنبر_أكتوبر_نونبر_دجنبر'.split(
40126            '_'
40127        ),
40128        monthsShort:
40129            'يناير_فبراير_مارس_أبريل_ماي_يونيو_يوليوز_غشت_شتنبر_أكتوبر_نونبر_دجنبر'.split(
40130                '_'
40131            ),
40132        weekdays: 'الأحد_الإتنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت'.split('_'),
40133        weekdaysShort: 'احد_اتنين_ثلاثاء_اربعاء_خميس_جمعة_سبت'.split('_'),
40134        weekdaysMin: 'ح_ن_ث_ر_خ_ج_س'.split('_'),
40135        weekdaysParseExact: true,
40136        longDateFormat: {
40137            LT: 'HH:mm',
40138            LTS: 'HH:mm:ss',
40139            L: 'DD/MM/YYYY',
40140            LL: 'D MMMM YYYY',
40141            LLL: 'D MMMM YYYY HH:mm',
40142            LLLL: 'dddd D MMMM YYYY HH:mm',
40143        },
40144        calendar: {
40145            sameDay: '[اليوم على الساعة] LT',
40146            nextDay: '[غدا على الساعة] LT',
40147            nextWeek: 'dddd [على الساعة] LT',
40148            lastDay: '[أمس على الساعة] LT',
40149            lastWeek: 'dddd [على الساعة] LT',
40150            sameElse: 'L',
40151        },
40152        relativeTime: {
40153            future: 'في %s',
40154            past: 'منذ %s',
40155            s: 'ثوان',
40156            ss: '%d ثانية',
40157            m: 'دقيقة',
40158            mm: '%d دقائق',
40159            h: 'ساعة',
40160            hh: '%d ساعات',
40161            d: 'يوم',
40162            dd: '%d أيام',
40163            M: 'شهر',
40164            MM: '%d أشهر',
40165            y: 'سنة',
40166            yy: '%d سنوات',
40167        },
40168        week: {
40169            dow: 0, // Sunday is the first day of the week.
40170            doy: 12, // The week that contains Jan 12th is the first week of the year.
40171        },
40172    });
40173
40174    return arKw;
40175
40176})));
40177
40178
40179/***/ }),
40180
vendor: 5,854 bytes, lines 40181-40371
40181/***/ "./node_modules/moment/locale/ar-ly.js":
40182/*!*********************************************!*\
40183  !*** ./node_modules/moment/locale/ar-ly.js ***!
40184  \*********************************************/
40185/*! no static exports found */
40186/***/ (function(module, exports, __webpack_require__) {
40187
40188//! moment.js locale configuration
40189//! locale : Arabic (Libya) [ar-ly]
40190//! author : Ali Hmer: https://github.com/kikoanis
40191
40192;(function (global, factory) {
40193    true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/moment/moment.js")) :
40194   undefined
40195}(this, (function (moment) { 'use strict';
40196
40197    //! moment.js locale configuration
40198
40199    var symbolMap = {
40200            1: '1',
40201            2: '2',
40202            3: '3',
40203            4: '4',
40204            5: '5',
40205            6: '6',
40206            7: '7',
40207            8: '8',
40208            9: '9',
40209            0: '0',
40210        },
40211        pluralForm = function (n) {
40212            return n === 0
40213                ? 0
40214                : n === 1
40215                  ? 1
40216                  : n === 2
40217                    ? 2
40218                    : n % 100 >= 3 && n % 100 <= 10
40219                      ? 3
40220                      : n % 100 >= 11
40221                        ? 4
40222                        : 5;
40223        },
40224        plurals = {
40225            s: [
40226                'أقل من ثانية',
40227                'ثانية واحدة',
40228                ['ثانيتان', 'ثانيتين'],
40229                '%d ثوان',
40230                '%d ثانية',
40231                '%d ثانية',
40232            ],
40233            m: [
40234                'أقل من دقيقة',
40235                'دقيقة واحدة',
40236                ['دقيقتان', 'دقيقتين'],
40237                '%d دقائق',
40238                '%d دقيقة',
40239                '%d دقيقة',
40240            ],
40241            h: [
40242                'أقل من ساعة',
40243                'ساعة واحدة',
40244                ['ساعتان', 'ساعتين'],
40245                '%d ساعات',
40246                '%d ساعة',
40247                '%d ساعة',
40248            ],
40249            d: [
40250                'أقل من يوم',
40251                'يوم واحد',
40252                ['يومان', 'يومين'],
40253                '%d أيام',
40254                '%d يومًا',
40255                '%d يوم',
40256            ],
40257            M: [
40258                'أقل من شهر',
40259                'شهر واحد',
40260                ['شهران', 'شهرين'],
40261                '%d أشهر',
40262                '%d شهرا',
40263                '%d شهر',
40264            ],
40265            y: [
40266                'أقل من عام',
40267                'عام واحد',
40268                ['عامان', 'عامين'],
40269                '%d أعوام',
40270                '%d عامًا',
40271                '%d عام',
40272            ],
40273        },
40274        pluralize = function (u) {
40275            return function (number, withoutSuffix, string, isFuture) {
40276                var f = pluralForm(number),
40277                    str = plurals[u][pluralForm(number)];
40278                if (f === 2) {
40279                    str = str[withoutSuffix ? 0 : 1];
40280                }
40281                return str.replace(/%d/i, number);
40282            };
40283        },
40284        months = [
40285            'يناير',
40286            'فبراير',
40287            'مارس',
40288            'أبريل',
40289            'مايو',
40290            'يونيو',
40291            'يوليو',
40292            'أغسطس',
40293            'سبتمبر',
40294            'أكتوبر',
40295            'نوفمبر',
40296            'ديسمبر',
40297        ];
40298
40299    var arLy = moment.defineLocale('ar-ly', {
40300        months: months,
40301        monthsShort: months,
40302        weekdays: 'الأحد_الإثنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت'.split('_'),
40303        weekdaysShort: 'أحد_إثنين_ثلاثاء_أربعاء_خميس_جمعة_سبت'.split('_'),
40304        weekdaysMin: 'ح_ن_ث_ر_خ_ج_س'.split('_'),
40305        weekdaysParseExact: true,
40306        longDateFormat: {
40307            LT: 'HH:mm',
40308            LTS: 'HH:mm:ss',
40309            L: 'D/\u200FM/\u200FYYYY',
40310            LL: 'D MMMM YYYY',
40311            LLL: 'D MMMM YYYY HH:mm',
40312            LLLL: 'dddd D MMMM YYYY HH:mm',
40313        },
40314        meridiemParse: /ص|م/,
40315        isPM: function (input) {
40316            return 'م' === input;
40317        },
40318        meridiem: function (hour, minute, isLower) {
40319            if (hour < 12) {
40320                return 'ص';
40321            } else {
40322                return 'م';
40323            }
40324        },
40325        calendar: {
40326            sameDay: '[اليوم عند الساعة] LT',
40327            nextDay: '[غدًا عند الساعة] LT',
40328            nextWeek: 'dddd [عند الساعة] LT',
40329            lastDay: '[أمس عند الساعة] LT',
40330            lastWeek: 'dddd [عند الساعة] LT',
40331            sameElse: 'L',
40332        },
40333        relativeTime: {
40334            future: 'بعد %s',
40335            past: 'منذ %s',
40336            s: pluralize('s'),
40337            ss: pluralize('s'),
40338            m: pluralize('m'),
40339            mm: pluralize('m'),
40340            h: pluralize('h'),
40341            hh: pluralize('h'),
40342            d: pluralize('d'),
40343            dd: pluralize('d'),
40344            M: pluralize('M'),
40345            MM: pluralize('M'),
40346            y: pluralize('y'),
40347            yy: pluralize('y'),
40348        },
40349        preparse: function (string) {
40350            return string.replace(/،/g, ',');
40351        },
40352        postformat: function (string) {
40353            return string
40354                .replace(/\d/g, function (match) {
40355                    return symbolMap[match];
40356                })
40357                .replace(/,/g, '،');
40358        },
40359        week: {
40360            dow: 6, // Saturday is the first day of the week.
40361            doy: 12, // The week that contains Jan 12th is the first week of the year.
40362        },
40363    });
40364
40365    return arLy;
40366
40367})));
40368
40369
40370/***/ }),
40371
vendor: 2,695 bytes, lines 40372-40447
40372/***/ "./node_modules/moment/locale/ar-ma.js":
40373/*!*********************************************!*\
40374  !*** ./node_modules/moment/locale/ar-ma.js ***!
40375  \*********************************************/
40376/*! no static exports found */
40377/***/ (function(module, exports, __webpack_require__) {
40378
40379//! moment.js locale configuration
40380//! locale : Arabic (Morocco) [ar-ma]
40381//! author : ElFadili Yassine : https://github.com/ElFadiliY
40382//! author : Abdel Said : https://github.com/abdelsaid
40383
40384;(function (global, factory) {
40385    true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/moment/moment.js")) :
40386   undefined
40387}(this, (function (moment) { 'use strict';
40388
40389    //! moment.js locale configuration
40390
40391    var arMa = moment.defineLocale('ar-ma', {
40392        months: 'يناير_فبراير_مارس_أبريل_ماي_يونيو_يوليوز_غشت_شتنبر_أكتوبر_نونبر_دجنبر'.split(
40393            '_'
40394        ),
40395        monthsShort:
40396            'يناير_فبراير_مارس_أبريل_ماي_يونيو_يوليوز_غشت_شتنبر_أكتوبر_نونبر_دجنبر'.split(
40397                '_'
40398            ),
40399        weekdays: 'الأحد_الإثنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت'.split('_'),
40400        weekdaysShort: 'احد_اثنين_ثلاثاء_اربعاء_خميس_جمعة_سبت'.split('_'),
40401        weekdaysMin: 'ح_ن_ث_ر_خ_ج_س'.split('_'),
40402        weekdaysParseExact: true,
40403        longDateFormat: {
40404            LT: 'HH:mm',
40405            LTS: 'HH:mm:ss',
40406            L: 'DD/MM/YYYY',
40407            LL: 'D MMMM YYYY',
40408            LLL: 'D MMMM YYYY HH:mm',
40409            LLLL: 'dddd D MMMM YYYY HH:mm',
40410        },
40411        calendar: {
40412            sameDay: '[اليوم على الساعة] LT',
40413            nextDay: '[غدا على الساعة] LT',
40414            nextWeek: 'dddd [على الساعة] LT',
40415            lastDay: '[أمس على الساعة] LT',
40416            lastWeek: 'dddd [على الساعة] LT',
40417            sameElse: 'L',
40418        },
40419        relativeTime: {
40420            future: 'في %s',
40421            past: 'منذ %s',
40422            s: 'ثوان',
40423            ss: '%d ثانية',
40424            m: 'دقيقة',
40425            mm: '%d دقائق',
40426            h: 'ساعة',
40427            hh: '%d ساعات',
40428            d: 'يوم',
40429            dd: '%d أيام',
40430            M: 'شهر',
40431            MM: '%d أشهر',
40432            y: 'سنة',
40433            yy: '%d سنوات',
40434        },
40435        week: {
40436            dow: 1, // Monday is the first day of the week.
40437            doy: 4, // The week that contains Jan 4th is the first week of the year.
40438        },
40439    });
40440
40441    return arMa;
40442
40443})));
40444
40445
40446/***/ }),
40447
vendor: 4,264 bytes, lines 40448-40579
40448/***/ "./node_modules/moment/locale/ar-ps.js":
40449/*!*********************************************!*\
40450  !*** ./node_modules/moment/locale/ar-ps.js ***!
40451  \*********************************************/
40452/*! no static exports found */
40453/***/ (function(module, exports, __webpack_require__) {
40454
40455//! moment.js locale configuration
40456//! locale : Arabic (Palestine) [ar-ps]
40457//! author : Majd Al-Shihabi : https://github.com/majdal
40458
40459;(function (global, factory) {
40460    true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/moment/moment.js")) :
40461   undefined
40462}(this, (function (moment) { 'use strict';
40463
40464    //! moment.js locale configuration
40465
40466    var symbolMap = {
40467            1: 'Ù¡',
40468            2: 'Ù¢',
40469            3: 'Ù£',
40470            4: 'Ù¤',
40471            5: 'Ù¥',
40472            6: 'Ù¦',
40473            7: 'Ù§',
40474            8: 'Ù¨',
40475            9: 'Ù©',
40476            0: 'Ù ',
40477        },
40478        numberMap = {
40479            'Ù¡': '1',
40480            'Ù¢': '2',
40481            'Ù£': '3',
40482            'Ù¤': '4',
40483            'Ù¥': '5',
40484            'Ù¦': '6',
40485            'Ù§': '7',
40486            'Ù¨': '8',
40487            'Ù©': '9',
40488            'Ù ': '0',
40489        };
40490
40491    var arPs = moment.defineLocale('ar-ps', {
40492        months: 'كانون الثاني_شباط_آذار_نيسان_أيّار_حزيران_تمّوز_آب_أيلول_تشري الأوّل_تشرين الثاني_كانون الأوّل'.split(
40493            '_'
40494        ),
40495        monthsShort:
40496            'ك٢_شباط_آذار_نيسان_أيّار_حزيران_تمّوز_آب_أيلول_ت١_ت٢_ك١'.split('_'),
40497        weekdays: 'الأحد_الإثنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت'.split('_'),
40498        weekdaysShort: 'أحد_إثنين_ثلاثاء_أربعاء_خميس_جمعة_سبت'.split('_'),
40499        weekdaysMin: 'ح_ن_ث_ر_خ_ج_س'.split('_'),
40500        weekdaysParseExact: true,
40501        longDateFormat: {
40502            LT: 'HH:mm',
40503            LTS: 'HH:mm:ss',
40504            L: 'DD/MM/YYYY',
40505            LL: 'D MMMM YYYY',
40506            LLL: 'D MMMM YYYY HH:mm',
40507            LLLL: 'dddd D MMMM YYYY HH:mm',
40508        },
40509        meridiemParse: /ص|م/,
40510        isPM: function (input) {
40511            return 'م' === input;
40512        },
40513        meridiem: function (hour, minute, isLower) {
40514            if (hour < 12) {
40515                return 'ص';
40516            } else {
40517                return 'م';
40518            }
40519        },
40520        calendar: {
40521            sameDay: '[اليوم على الساعة] LT',
40522            nextDay: '[غدا على الساعة] LT',
40523            nextWeek: 'dddd [على الساعة] LT',
40524            lastDay: '[أمس على الساعة] LT',
40525            lastWeek: 'dddd [على الساعة] LT',
40526            sameElse: 'L',
40527        },
40528        relativeTime: {
40529            future: 'في %s',
40530            past: 'منذ %s',
40531            s: 'ثوان',
40532            ss: '%d ثانية',
40533            m: 'دقيقة',
40534            mm: '%d دقائق',
40535            h: 'ساعة',
40536            hh: '%d ساعات',
40537            d: 'يوم',
40538            dd: '%d أيام',
40539            M: 'شهر',
40540            MM: '%d أشهر',
40541            y: 'سنة',
40542            yy: '%d سنوات',
40543        },
40544        preparse: function (string) {
40545            return string
40546                .replace(/[٣٤٥٦٧٨٩٠]/g, function (match) {
40547                    return numberMap[match];
40548                })
40549                .split('') // reversed since negative lookbehind not supported everywhere
40550                .reverse()
40551                .join('')
40552                .replace(/[١٢](?![\u062a\u0643])/g, function (match) {
40553                    return numberMap[match];
40554                })
40555                .split('')
40556                .reverse()
40557                .join('')
40558                .replace(/،/g, ',');
40559        },
40560        postformat: function (string) {
40561            return string
40562                .replace(/\d/g, function (match) {
40563                    return symbolMap[match];
40564                })
40565                .replace(/,/g, '،');
40566        },
40567        week: {
40568            dow: 0, // Sunday is the first day of the week.
40569            doy: 6, // The week that contains Jan 6th is the first week of the year.
40570        },
40571    });
40572
40573    return arPs;
40574
40575})));
40576
40577
40578/***/ }),
40579
vendor: 3,944 bytes, lines 40580-40704
40580/***/ "./node_modules/moment/locale/ar-sa.js":
40581/*!*********************************************!*\
40582  !*** ./node_modules/moment/locale/ar-sa.js ***!
40583  \*********************************************/
40584/*! no static exports found */
40585/***/ (function(module, exports, __webpack_require__) {
40586
40587//! moment.js locale configuration
40588//! locale : Arabic (Saudi Arabia) [ar-sa]
40589//! author : Suhail Alkowaileet : https://github.com/xsoh
40590
40591;(function (global, factory) {
40592    true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/moment/moment.js")) :
40593   undefined
40594}(this, (function (moment) { 'use strict';
40595
40596    //! moment.js locale configuration
40597
40598    var symbolMap = {
40599            1: 'Ù¡',
40600            2: 'Ù¢',
40601            3: 'Ù£',
40602            4: 'Ù¤',
40603            5: 'Ù¥',
40604            6: 'Ù¦',
40605            7: 'Ù§',
40606            8: 'Ù¨',
40607            9: 'Ù©',
40608            0: 'Ù ',
40609        },
40610        numberMap = {
40611            'Ù¡': '1',
40612            'Ù¢': '2',
40613            'Ù£': '3',
40614            'Ù¤': '4',
40615            'Ù¥': '5',
40616            'Ù¦': '6',
40617            'Ù§': '7',
40618            'Ù¨': '8',
40619            'Ù©': '9',
40620            'Ù ': '0',
40621        };
40622
40623    var arSa = moment.defineLocale('ar-sa', {
40624        months: 'يناير_فبراير_مارس_أبريل_مايو_يونيو_يوليو_أغسطس_سبتمبر_أكتوبر_نوفمبر_ديسمبر'.split(
40625            '_'
40626        ),
40627        monthsShort:
40628            'يناير_فبراير_مارس_أبريل_مايو_يونيو_يوليو_أغسطس_سبتمبر_أكتوبر_نوفمبر_ديسمبر'.split(
40629                '_'
40630            ),
40631        weekdays: 'الأحد_الإثنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت'.split('_'),
40632        weekdaysShort: 'أحد_إثنين_ثلاثاء_أربعاء_خميس_جمعة_سبت'.split('_'),
40633        weekdaysMin: 'ح_ن_ث_ر_خ_ج_س'.split('_'),
40634        weekdaysParseExact: true,
40635        longDateFormat: {
40636            LT: 'HH:mm',
40637            LTS: 'HH:mm:ss',
40638            L: 'DD/MM/YYYY',
40639            LL: 'D MMMM YYYY',
40640            LLL: 'D MMMM YYYY HH:mm',
40641            LLLL: 'dddd D MMMM YYYY HH:mm',
40642        },
40643        meridiemParse: /ص|م/,
40644        isPM: function (input) {
40645            return 'م' === input;
40646        },
40647        meridiem: function (hour, minute, isLower) {
40648            if (hour < 12) {
40649                return 'ص';
40650            } else {
40651                return 'م';
40652            }
40653        },
40654        calendar: {
40655            sameDay: '[اليوم على الساعة] LT',
40656            nextDay: '[غدا على الساعة] LT',
40657            nextWeek: 'dddd [على الساعة] LT',
40658            lastDay: '[أمس على الساعة] LT',
40659            lastWeek: 'dddd [على الساعة] LT',
40660            sameElse: 'L',
40661        },
40662        relativeTime: {
40663            future: 'في %s',
40664            past: 'منذ %s',
40665            s: 'ثوان',
40666            ss: '%d ثانية',
40667            m: 'دقيقة',
40668            mm: '%d دقائق',
40669            h: 'ساعة',
40670            hh: '%d ساعات',
40671            d: 'يوم',
40672            dd: '%d أيام',
40673            M: 'شهر',
40674            MM: '%d أشهر',
40675            y: 'سنة',
40676            yy: '%d سنوات',
40677        },
40678        preparse: function (string) {
40679            return string
40680                .replace(/[١٢٣٤٥٦٧٨٩٠]/g, function (match) {
40681                    return numberMap[match];
40682                })
40683                .replace(/،/g, ',');
40684        },
40685        postformat: function (string) {
40686            return string
40687                .replace(/\d/g, function (match) {
40688                    return symbolMap[match];
40689                })
40690                .replace(/,/g, '،');
40691        },
40692        week: {
40693            dow: 0, // Sunday is the first day of the week.
40694            doy: 6, // The week that contains Jan 6th is the first week of the year.
40695        },
40696    });
40697
40698    return arSa;
40699
40700})));
40701
40702
40703/***/ }),
40704
vendor: 2,642 bytes, lines 40705-40779
40705/***/ "./node_modules/moment/locale/ar-tn.js":
40706/*!*********************************************!*\
40707  !*** ./node_modules/moment/locale/ar-tn.js ***!
40708  \*********************************************/
40709/*! no static exports found */
40710/***/ (function(module, exports, __webpack_require__) {
40711
40712//! moment.js locale configuration
40713//! locale  :  Arabic (Tunisia) [ar-tn]
40714//! author : Nader Toukabri : https://github.com/naderio
40715
40716;(function (global, factory) {
40717    true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/moment/moment.js")) :
40718   undefined
40719}(this, (function (moment) { 'use strict';
40720
40721    //! moment.js locale configuration
40722
40723    var arTn = moment.defineLocale('ar-tn', {
40724        months: 'جانفي_فيفري_مارس_أفريل_ماي_جوان_جويلية_أوت_سبتمبر_أكتوبر_نوفمبر_ديسمبر'.split(
40725            '_'
40726        ),
40727        monthsShort:
40728            'جانفي_فيفري_مارس_أفريل_ماي_جوان_جويلية_أوت_سبتمبر_أكتوبر_نوفمبر_ديسمبر'.split(
40729                '_'
40730            ),
40731        weekdays: 'الأحد_الإثنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت'.split('_'),
40732        weekdaysShort: 'أحد_إثنين_ثلاثاء_أربعاء_خميس_جمعة_سبت'.split('_'),
40733        weekdaysMin: 'ح_ن_ث_ر_خ_ج_س'.split('_'),
40734        weekdaysParseExact: true,
40735        longDateFormat: {
40736            LT: 'HH:mm',
40737            LTS: 'HH:mm:ss',
40738            L: 'DD/MM/YYYY',
40739            LL: 'D MMMM YYYY',
40740            LLL: 'D MMMM YYYY HH:mm',
40741            LLLL: 'dddd D MMMM YYYY HH:mm',
40742        },
40743        calendar: {
40744            sameDay: '[اليوم على الساعة] LT',
40745            nextDay: '[غدا على الساعة] LT',
40746            nextWeek: 'dddd [على الساعة] LT',
40747            lastDay: '[أمس على الساعة] LT',
40748            lastWeek: 'dddd [على الساعة] LT',
40749            sameElse: 'L',
40750        },
40751        relativeTime: {
40752            future: 'في %s',
40753            past: 'منذ %s',
40754            s: 'ثوان',
40755            ss: '%d ثانية',
40756            m: 'دقيقة',
40757            mm: '%d دقائق',
40758            h: 'ساعة',
40759            hh: '%d ساعات',
40760            d: 'يوم',
40761            dd: '%d أيام',
40762            M: 'شهر',
40763            MM: '%d أشهر',
40764            y: 'سنة',
40765            yy: '%d سنوات',
40766        },
40767        week: {
40768            dow: 1, // Monday is the first day of the week.
40769            doy: 4, // The week that contains Jan 4th is the first week of the year.
40770        },
40771    });
40772
40773    return arTn;
40774
40775})));
40776
40777
40778/***/ }),
40779
vendor: 6,326 bytes, lines 40780-40988
40780/***/ "./node_modules/moment/locale/ar.js":
40781/*!******************************************!*\
40782  !*** ./node_modules/moment/locale/ar.js ***!
40783  \******************************************/
40784/*! no static exports found */
40785/***/ (function(module, exports, __webpack_require__) {
40786
40787//! moment.js locale configuration
40788//! locale : Arabic [ar]
40789//! author : Abdel Said: https://github.com/abdelsaid
40790//! author : Ahmed Elkhatib
40791//! author : forabi https://github.com/forabi
40792
40793;(function (global, factory) {
40794    true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/moment/moment.js")) :
40795   undefined
40796}(this, (function (moment) { 'use strict';
40797
40798    //! moment.js locale configuration
40799
40800    var symbolMap = {
40801            1: 'Ù¡',
40802            2: 'Ù¢',
40803            3: 'Ù£',
40804            4: 'Ù¤',
40805            5: 'Ù¥',
40806            6: 'Ù¦',
40807            7: 'Ù§',
40808            8: 'Ù¨',
40809            9: 'Ù©',
40810            0: 'Ù ',
40811        },
40812        numberMap = {
40813            'Ù¡': '1',
40814            'Ù¢': '2',
40815            'Ù£': '3',
40816            'Ù¤': '4',
40817            'Ù¥': '5',
40818            'Ù¦': '6',
40819            'Ù§': '7',
40820            'Ù¨': '8',
40821            'Ù©': '9',
40822            'Ù ': '0',
40823        },
40824        pluralForm = function (n) {
40825            return n === 0
40826                ? 0
40827                : n === 1
40828                  ? 1
40829                  : n === 2
40830                    ? 2
40831                    : n % 100 >= 3 && n % 100 <= 10
40832                      ? 3
40833                      : n % 100 >= 11
40834                        ? 4
40835                        : 5;
40836        },
40837        plurals = {
40838            s: [
40839                'أقل من ثانية',
40840                'ثانية واحدة',
40841                ['ثانيتان', 'ثانيتين'],
40842                '%d ثوان',
40843                '%d ثانية',
40844                '%d ثانية',
40845            ],
40846            m: [
40847                'أقل من دقيقة',
40848                'دقيقة واحدة',
40849                ['دقيقتان', 'دقيقتين'],
40850                '%d دقائق',
40851                '%d دقيقة',
40852                '%d دقيقة',
40853            ],
40854            h: [
40855                'أقل من ساعة',
40856                'ساعة واحدة',
40857                ['ساعتان', 'ساعتين'],
40858                '%d ساعات',
40859                '%d ساعة',
40860                '%d ساعة',
40861            ],
40862            d: [
40863                'أقل من يوم',
40864                'يوم واحد',
40865                ['يومان', 'يومين'],
40866                '%d أيام',
40867                '%d يومًا',
40868                '%d يوم',
40869            ],
40870            M: [
40871                'أقل من شهر',
40872                'شهر واحد',
40873                ['شهران', 'شهرين'],
40874                '%d أشهر',
40875                '%d شهرا',
40876                '%d شهر',
40877            ],
40878            y: [
40879                'أقل من عام',
40880                'عام واحد',
40881                ['عامان', 'عامين'],
40882                '%d أعوام',
40883                '%d عامًا',
40884                '%d عام',
40885            ],
40886        },
40887        pluralize = function (u) {
40888            return function (number, withoutSuffix, string, isFuture) {
40889                var f = pluralForm(number),
40890                    str = plurals[u][pluralForm(number)];
40891                if (f === 2) {
40892                    str = str[withoutSuffix ? 0 : 1];
40893                }
40894                return str.replace(/%d/i, number);
40895            };
40896        },
40897        months = [
40898            'يناير',
40899            'فبراير',
40900            'مارس',
40901            'أبريل',
40902            'مايو',
40903            'يونيو',
40904            'يوليو',
40905            'أغسطس',
40906            'سبتمبر',
40907            'أكتوبر',
40908            'نوفمبر',
40909            'ديسمبر',
40910        ];
40911
40912    var ar = moment.defineLocale('ar', {
40913        months: months,
40914        monthsShort: months,
40915        weekdays: 'الأحد_الإثنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت'.split('_'),
40916        weekdaysShort: 'أحد_إثنين_ثلاثاء_أربعاء_خميس_جمعة_سبت'.split('_'),
40917        weekdaysMin: 'ح_ن_ث_ر_خ_ج_س'.split('_'),
40918        weekdaysParseExact: true,
40919        longDateFormat: {
40920            LT: 'HH:mm',
40921            LTS: 'HH:mm:ss',
40922            L: 'D/\u200FM/\u200FYYYY',
40923            LL: 'D MMMM YYYY',
40924            LLL: 'D MMMM YYYY HH:mm',
40925            LLLL: 'dddd D MMMM YYYY HH:mm',
40926        },
40927        meridiemParse: /ص|م/,
40928        isPM: function (input) {
40929            return 'م' === input;
40930        },
40931        meridiem: function (hour, minute, isLower) {
40932            if (hour < 12) {
40933                return 'ص';
40934            } else {
40935                return 'م';
40936            }
40937        },
40938        calendar: {
40939            sameDay: '[اليوم عند الساعة] LT',
40940            nextDay: '[غدًا عند الساعة] LT',
40941            nextWeek: 'dddd [عند الساعة] LT',
40942            lastDay: '[أمس عند الساعة] LT',
40943            lastWeek: 'dddd [عند الساعة] LT',
40944            sameElse: 'L',
40945        },
40946        relativeTime: {
40947            future: 'بعد %s',
40948            past: 'منذ %s',
40949            s: pluralize('s'),
40950            ss: pluralize('s'),
40951            m: pluralize('m'),
40952            mm: pluralize('m'),
40953            h: pluralize('h'),
40954            hh: pluralize('h'),
40955            d: pluralize('d'),
40956            dd: pluralize('d'),
40957            M: pluralize('M'),
40958            MM: pluralize('M'),
40959            y: pluralize('y'),
40960            yy: pluralize('y'),
40961        },
40962        preparse: function (string) {
40963            return string
40964                .replace(/[١٢٣٤٥٦٧٨٩٠]/g, function (match) {
40965                    return numberMap[match];
40966                })
40967                .replace(/،/g, ',');
40968        },
40969        postformat: function (string) {
40970            return string
40971                .replace(/\d/g, function (match) {
40972                    return symbolMap[match];
40973                })
40974                .replace(/,/g, '،');
40975        },
40976        week: {
40977            dow: 6, // Saturday is the first day of the week.
40978            doy: 12, // The week that contains Jan 12th is the first week of the year.
40979        },
40980    });
40981
40982    return ar;
40983
40984})));
40985
40986
40987/***/ }),
40988
vendor: 3,720 bytes, lines 40989-41110
40989/***/ "./node_modules/moment/locale/az.js":
40990/*!******************************************!*\
40991  !*** ./node_modules/moment/locale/az.js ***!
40992  \******************************************/
40993/*! no static exports found */
40994/***/ (function(module, exports, __webpack_require__) {
40995
40996//! moment.js locale configuration
40997//! locale : Azerbaijani [az]
40998//! author : topchiyev : https://github.com/topchiyev
40999
41000;(function (global, factory) {
41001    true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/moment/moment.js")) :
41002   undefined
41003}(this, (function (moment) { 'use strict';
41004
41005    //! moment.js locale configuration
41006
41007    var suffixes = {
41008        1: '-inci',
41009        5: '-inci',
41010        8: '-inci',
41011        70: '-inci',
41012        80: '-inci',
41013        2: '-nci',
41014        7: '-nci',
41015        20: '-nci',
41016        50: '-nci',
41017        3: '-üncü',
41018        4: '-üncü',
41019        100: '-üncü',
41020        6: '-ncı',
41021        9: '-uncu',
41022        10: '-uncu',
41023        30: '-uncu',
41024        60: '-ıncı',
41025        90: '-ıncı',
41026    };
41027
41028    var az = moment.defineLocale('az', {
41029        months: 'yanvar_fevral_mart_aprel_may_iyun_iyul_avqust_sentyabr_oktyabr_noyabr_dekabr'.split(
41030            '_'
41031        ),
41032        monthsShort: 'yan_fev_mar_apr_may_iyn_iyl_avq_sen_okt_noy_dek'.split('_'),
41033        weekdays:
41034            'Bazar_Bazar ertəsi_Çərşənbə axşamı_Çərşənbə_Cümə axşamı_Cümə_Şənbə'.split(
41035                '_'
41036            ),
41037        weekdaysShort: 'Baz_BzE_ÇAx_Çər_CAx_Cüm_Şən'.split('_'),
41038        weekdaysMin: 'Bz_BE_ÇA_Çə_CA_Cü_Şə'.split('_'),
41039        weekdaysParseExact: true,
41040        longDateFormat: {
41041            LT: 'HH:mm',
41042            LTS: 'HH:mm:ss',
41043            L: 'DD.MM.YYYY',
41044            LL: 'D MMMM YYYY',
41045            LLL: 'D MMMM YYYY HH:mm',
41046            LLLL: 'dddd, D MMMM YYYY HH:mm',
41047        },
41048        calendar: {
41049            sameDay: '[bugün saat] LT',
41050            nextDay: '[sabah saat] LT',
41051            nextWeek: '[gələn həftə] dddd [saat] LT',
41052            lastDay: '[dünən] LT',
41053            lastWeek: '[keçən həftə] dddd [saat] LT',
41054            sameElse: 'L',
41055        },
41056        relativeTime: {
41057            future: '%s sonra',
41058            past: '%s əvvəl',
41059            s: 'bir neçə saniyə',
41060            ss: '%d saniyə',
41061            m: 'bir dəqiqə',
41062            mm: '%d dəqiqə',
41063            h: 'bir saat',
41064            hh: '%d saat',
41065            d: 'bir gün',
41066            dd: '%d gün',
41067            M: 'bir ay',
41068            MM: '%d ay',
41069            y: 'bir il',
41070            yy: '%d il',
41071        },
41072        meridiemParse: /gecə|səhər|gündüz|axşam/,
41073        isPM: function (input) {
41074            return /^(gündüz|axşam)$/.test(input);
41075        },
41076        meridiem: function (hour, minute, isLower) {
41077            if (hour < 4) {
41078                return 'gecə';
41079            } else if (hour < 12) {
41080                return 'səhər';
41081            } else if (hour < 17) {
41082                return 'gündüz';
41083            } else {
41084                return 'axşam';
41085            }
41086        },
41087        dayOfMonthOrdinalParse: /\d{1,2}-(ıncı|inci|nci|üncü|ncı|uncu)/,
41088        ordinal: function (number) {
41089            if (number === 0) {
41090                // special case for zero
41091                return number + '-ıncı';
41092            }
41093            var a = number % 10,
41094                b = (number % 100) - a,
41095                c = number >= 100 ? 100 : null;
41096            return number + (suffixes[a] || suffixes[b] || suffixes[c]);
41097        },
41098        week: {
41099            dow: 1, // Monday is the first day of the week.
41100            doy: 7, // The week that contains Jan 7th is the first week of the year.
41101        },
41102    });
41103
41104    return az;
41105
41106})));
41107
41108
41109/***/ }),
41110
vendor: 6,184 bytes, lines 41111-41272
41111/***/ "./node_modules/moment/locale/be.js":
41112/*!******************************************!*\
41113  !*** ./node_modules/moment/locale/be.js ***!
41114  \******************************************/
41115/*! no static exports found */
41116/***/ (function(module, exports, __webpack_require__) {
41117
41118//! moment.js locale configuration
41119//! locale : Belarusian [be]
41120//! author : Dmitry Demidov : https://github.com/demidov91
41121//! author: Praleska: http://praleska.pro/
41122//! Author : Menelion Elensúle : https://github.com/Oire
41123
41124;(function (global, factory) {
41125    true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/moment/moment.js")) :
41126   undefined
41127}(this, (function (moment) { 'use strict';
41128
41129    //! moment.js locale configuration
41130
41131    function plural(word, num) {
41132        var forms = word.split('_');
41133        return num % 10 === 1 && num % 100 !== 11
41134            ? forms[0]
41135            : num % 10 >= 2 && num % 10 <= 4 && (num % 100 < 10 || num % 100 >= 20)
41136              ? forms[1]
41137              : forms[2];
41138    }
41139    function relativeTimeWithPlural(number, withoutSuffix, key) {
41140        var format = {
41141            ss: withoutSuffix ? 'секунда_секунды_секунд' : 'секунду_секунды_секунд',
41142            mm: withoutSuffix ? 'хвіліна_хвіліны_хвілін' : 'хвіліну_хвіліны_хвілін',
41143            hh: withoutSuffix ? 'гадзіна_гадзіны_гадзін' : 'гадзіну_гадзіны_гадзін',
41144            dd: 'дзень_дні_дзён',
41145            MM: 'месяц_месяцы_месяцаў',
41146            yy: 'год_гады_гадоў',
41147        };
41148        if (key === 'm') {
41149            return withoutSuffix ? 'хвіліна' : 'хвіліну';
41150        } else if (key === 'h') {
41151            return withoutSuffix ? 'гадзіна' : 'гадзіну';
41152        } else {
41153            return number + ' ' + plural(format[key], +number);
41154        }
41155    }
41156
41157    var be = moment.defineLocale('be', {
41158        months: {
41159            format: 'студзеня_лютага_сакавіка_красавіка_траўня_чэрвеня_ліпеня_жніўня_верасня_кастрычніка_лістапада_снежня'.split(
41160                '_'
41161            ),
41162            standalone:
41163                'студзень_люты_сакавік_красавік_травень_чэрвень_ліпень_жнівень_верасень_кастрычнік_лістапад_снежань'.split(
41164                    '_'
41165                ),
41166        },
41167        monthsShort:
41168            'студ_лют_сак_крас_трав_чэрв_ліп_жнів_вер_каст_ліст_снеж'.split('_'),
41169        weekdays: {
41170            format: 'нядзелю_панядзелак_аўторак_сераду_чацвер_пятніцу_суботу'.split(
41171                '_'
41172            ),
41173            standalone:
41174                'нядзеля_панядзелак_аўторак_серада_чацвер_пятніца_субота'.split(
41175                    '_'
41176                ),
41177            isFormat: /\[ ?[Ууў] ?(?:мінулую|наступную)? ?\] ?dddd/,
41178        },
41179        weekdaysShort: 'нд_пн_ат_ср_чц_пт_сб'.split('_'),
41180        weekdaysMin: 'нд_пн_ат_ср_чц_пт_сб'.split('_'),
41181        longDateFormat: {
41182            LT: 'HH:mm',
41183            LTS: 'HH:mm:ss',
41184            L: 'DD.MM.YYYY',
41185            LL: 'D MMMM YYYY г.',
41186            LLL: 'D MMMM YYYY г., HH:mm',
41187            LLLL: 'dddd, D MMMM YYYY г., HH:mm',
41188        },
41189        calendar: {
41190            sameDay: '[Сёння ў] LT',
41191            nextDay: '[Заўтра ў] LT',
41192            lastDay: '[Учора ў] LT',
41193            nextWeek: function () {
41194                return '[У] dddd [ў] LT';
41195            },
41196            lastWeek: function () {
41197                switch (this.day()) {
41198                    case 0:
41199                    case 3:
41200                    case 5:
41201                    case 6:
41202                        return '[У мінулую] dddd [ў] LT';
41203                    case 1:
41204                    case 2:
41205                    case 4:
41206                        return '[У мінулы] dddd [ў] LT';
41207                }
41208            },
41209            sameElse: 'L',
41210        },
41211        relativeTime: {
41212            future: 'праз %s',
41213            past: '%s таму',
41214            s: 'некалькі секунд',
41215            m: relativeTimeWithPlural,
41216            mm: relativeTimeWithPlural,
41217            h: relativeTimeWithPlural,
41218            hh: relativeTimeWithPlural,
41219            d: 'дзень',
41220            dd: relativeTimeWithPlural,
41221            M: 'месяц',
41222            MM: relativeTimeWithPlural,
41223            y: 'год',
41224            yy: relativeTimeWithPlural,
41225        },
41226        meridiemParse: /ночы|раніцы|дня|вечара/,
41227        isPM: function (input) {
41228            return /^(дня|вечара)$/.test(input);
41229        },
41230        meridiem: function (hour, minute, isLower) {
41231            if (hour < 4) {
41232                return 'ночы';
41233            } else if (hour < 12) {
41234                return 'раніцы';
41235            } else if (hour < 17) {
41236                return 'дня';
41237            } else {
41238                return 'вечара';
41239            }
41240        },
41241        dayOfMonthOrdinalParse: /\d{1,2}-(і|ы|га)/,
41242        ordinal: function (number, period) {
41243            switch (period) {
41244                case 'M':
41245                case 'd':
41246                case 'DDD':
41247                case 'w':
41248                case 'W':
41249                    return (number % 10 === 2 || number % 10 === 3) &&
41250                        number % 100 !== 12 &&
41251                        number % 100 !== 13
41252                        ? number + '-і'
41253                        : number + '-ы';
41254                case 'D':
41255                    return number + '-га';
41256                default:
41257                    return number;
41258            }
41259        },
41260        week: {
41261            dow: 1, // Monday is the first day of the week.
41262            doy: 7, // The week that contains Jan 7th is the first week of the year.
41263        },
41264    });
41265
41266    return be;
41267
41268})));
41269
41270
41271/***/ }),
41272
vendor: 3,773 bytes, lines 41273-41379
41273/***/ "./node_modules/moment/locale/bg.js":
41274/*!******************************************!*\
41275  !*** ./node_modules/moment/locale/bg.js ***!
41276  \******************************************/
41277/*! no static exports found */
41278/***/ (function(module, exports, __webpack_require__) {
41279
41280//! moment.js locale configuration
41281//! locale : Bulgarian [bg]
41282//! author : Krasen Borisov : https://github.com/kraz
41283
41284;(function (global, factory) {
41285    true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/moment/moment.js")) :
41286   undefined
41287}(this, (function (moment) { 'use strict';
41288
41289    //! moment.js locale configuration
41290
41291    var bg = moment.defineLocale('bg', {
41292        months: 'януари_февруари_март_април_май_юни_юли_август_септември_октомври_ноември_декември'.split(
41293            '_'
41294        ),
41295        monthsShort: 'яну_фев_мар_апр_май_юни_юли_авг_сеп_окт_ное_дек'.split('_'),
41296        weekdays: 'неделя_понеделник_вторник_сряда_четвъртък_петък_събота'.split(
41297            '_'
41298        ),
41299        weekdaysShort: 'нед_пон_вто_сря_чет_пет_съб'.split('_'),
41300        weekdaysMin: 'нд_пн_вт_ср_чт_пт_сб'.split('_'),
41301        longDateFormat: {
41302            LT: 'H:mm',
41303            LTS: 'H:mm:ss',
41304            L: 'D.MM.YYYY',
41305            LL: 'D MMMM YYYY',
41306            LLL: 'D MMMM YYYY H:mm',
41307            LLLL: 'dddd, D MMMM YYYY H:mm',
41308        },
41309        calendar: {
41310            sameDay: '[Днес в] LT',
41311            nextDay: '[Утре в] LT',
41312            nextWeek: 'dddd [в] LT',
41313            lastDay: '[Вчера в] LT',
41314            lastWeek: function () {
41315                switch (this.day()) {
41316                    case 0:
41317                    case 3:
41318                    case 6:
41319                        return '[Миналата] dddd [в] LT';
41320                    case 1:
41321                    case 2:
41322                    case 4:
41323                    case 5:
41324                        return '[Миналия] dddd [в] LT';
41325                }
41326            },
41327            sameElse: 'L',
41328        },
41329        relativeTime: {
41330            future: 'след %s',
41331            past: 'преди %s',
41332            s: 'няколко секунди',
41333            ss: '%d секунди',
41334            m: 'минута',
41335            mm: '%d минути',
41336            h: 'час',
41337            hh: '%d часа',
41338            d: 'ден',
41339            dd: '%d дена',
41340            w: 'седмица',
41341            ww: '%d седмици',
41342            M: 'месец',
41343            MM: '%d месеца',
41344            y: 'година',
41345            yy: '%d години',
41346        },
41347        dayOfMonthOrdinalParse: /\d{1,2}-(ев|ен|ти|ви|ри|ми)/,
41348        ordinal: function (number) {
41349            var lastDigit = number % 10,
41350                last2Digits = number % 100;
41351            if (number === 0) {
41352                return number + '-ев';
41353            } else if (last2Digits === 0) {
41354                return number + '-ен';
41355            } else if (last2Digits > 10 && last2Digits < 20) {
41356                return number + '-ти';
41357            } else if (lastDigit === 1) {
41358                return number + '-ви';
41359            } else if (lastDigit === 2) {
41360                return number + '-ри';
41361            } else if (lastDigit === 7 || lastDigit === 8) {
41362                return number + '-ми';
41363            } else {
41364                return number + '-ти';
41365            }
41366        },
41367        week: {
41368            dow: 1, // Monday is the first day of the week.
41369            doy: 7, // The week that contains Jan 7th is the first week of the year.
41370        },
41371    });
41372
41373    return bg;
41374
41375})));
41376
41377
41378/***/ }),
41379
vendor: 2,383 bytes, lines 41380-41450
41380/***/ "./node_modules/moment/locale/bm.js":
41381/*!******************************************!*\
41382  !*** ./node_modules/moment/locale/bm.js ***!
41383  \******************************************/
41384/*! no static exports found */
41385/***/ (function(module, exports, __webpack_require__) {
41386
41387//! moment.js locale configuration
41388//! locale : Bambara [bm]
41389//! author : Estelle Comment : https://github.com/estellecomment
41390
41391;(function (global, factory) {
41392    true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/moment/moment.js")) :
41393   undefined
41394}(this, (function (moment) { 'use strict';
41395
41396    //! moment.js locale configuration
41397
41398    var bm = moment.defineLocale('bm', {
41399        months: 'Zanwuyekalo_Fewuruyekalo_Marisikalo_Awirilikalo_Mɛkalo_Zuwɛnkalo_Zuluyekalo_Utikalo_Sɛtanburukalo_ɔkutɔburukalo_Nowanburukalo_Desanburukalo'.split(
41400            '_'
41401        ),
41402        monthsShort: 'Zan_Few_Mar_Awi_Mɛ_Zuw_Zul_Uti_Sɛt_ɔku_Now_Des'.split('_'),
41403        weekdays: 'Kari_Ntɛnɛn_Tarata_Araba_Alamisa_Juma_Sibiri'.split('_'),
41404        weekdaysShort: 'Kar_Ntɛ_Tar_Ara_Ala_Jum_Sib'.split('_'),
41405        weekdaysMin: 'Ka_Nt_Ta_Ar_Al_Ju_Si'.split('_'),
41406        longDateFormat: {
41407            LT: 'HH:mm',
41408            LTS: 'HH:mm:ss',
41409            L: 'DD/MM/YYYY',
41410            LL: 'MMMM [tile] D [san] YYYY',
41411            LLL: 'MMMM [tile] D [san] YYYY [lɛrɛ] HH:mm',
41412            LLLL: 'dddd MMMM [tile] D [san] YYYY [lɛrɛ] HH:mm',
41413        },
41414        calendar: {
41415            sameDay: '[Bi lɛrɛ] LT',
41416            nextDay: '[Sini lɛrɛ] LT',
41417            nextWeek: 'dddd [don lɛrɛ] LT',
41418            lastDay: '[Kunu lɛrɛ] LT',
41419            lastWeek: 'dddd [tɛmɛnen lɛrɛ] LT',
41420            sameElse: 'L',
41421        },
41422        relativeTime: {
41423            future: '%s kɔnɔ',
41424            past: 'a bɛ %s bɔ',
41425            s: 'sanga dama dama',
41426            ss: 'sekondi %d',
41427            m: 'miniti kelen',
41428            mm: 'miniti %d',
41429            h: 'lɛrɛ kelen',
41430            hh: 'lɛrɛ %d',
41431            d: 'tile kelen',
41432            dd: 'tile %d',
41433            M: 'kalo kelen',
41434            MM: 'kalo %d',
41435            y: 'san kelen',
41436            yy: 'san %d',
41437        },
41438        week: {
41439            dow: 1, // Monday is the first day of the week.
41440            doy: 4, // The week that contains Jan 4th is the first week of the year.
41441        },
41442    });
41443
41444    return bm;
41445
41446})));
41447
41448
41449/***/ }),
41450
vendor: 5,339 bytes, lines 41451-41599
41451/***/ "./node_modules/moment/locale/bn-bd.js":
41452/*!*********************************************!*\
41453  !*** ./node_modules/moment/locale/bn-bd.js ***!
41454  \*********************************************/
41455/*! no static exports found */
41456/***/ (function(module, exports, __webpack_require__) {
41457
41458//! moment.js locale configuration
41459//! locale : Bengali (Bangladesh) [bn-bd]
41460//! author : Asraf Hossain Patoary : https://github.com/ashwoolford
41461
41462;(function (global, factory) {
41463    true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/moment/moment.js")) :
41464   undefined
41465}(this, (function (moment) { 'use strict';
41466
41467    //! moment.js locale configuration
41468
41469    var symbolMap = {
41470            1: 'à§§',
41471            2: '২',
41472            3: 'à§©',
41473            4: '৪',
41474            5: 'à§«',
41475            6: '৬',
41476            7: 'à§­',
41477            8: 'à§®',
41478            9: '৯',
41479            0: '০',
41480        },
41481        numberMap = {
41482            'à§§': '1',
41483            '২': '2',
41484            'à§©': '3',
41485            '৪': '4',
41486            'à§«': '5',
41487            '৬': '6',
41488            'à§­': '7',
41489            'à§®': '8',
41490            '৯': '9',
41491            '০': '0',
41492        };
41493
41494    var bnBd = moment.defineLocale('bn-bd', {
41495        months: 'জানুয়ারি_ফেব্রুয়ারি_মার্চ_এপ্রিল_মে_জুন_জুলাই_আগস্ট_সেপ্টেম্বর_অক্টোবর_নভেম্বর_ডিসেম্বর'.split(
41496            '_'
41497        ),
41498        monthsShort:
41499            'জানু_ফেব্রু_মার্চ_এপ্রিল_মে_জুন_জুলাই_আগস্ট_সেপ্ট_অক্টো_নভে_ডিসে'.split(
41500                '_'
41501            ),
41502        weekdays: 'রবিবার_সোমবার_মঙ্গলবার_বুধবার_বৃহস্পতিবার_শুক্রবার_শনিবার'.split(
41503            '_'
41504        ),
41505        weekdaysShort: 'রবি_সোম_মঙ্গল_বুধ_বৃহস্পতি_শুক্র_শনি'.split('_'),
41506        weekdaysMin: 'রবি_সোম_মঙ্গল_বুধ_বৃহ_শুক্র_শনি'.split('_'),
41507        longDateFormat: {
41508            LT: 'A h:mm সময়',
41509            LTS: 'A h:mm:ss সময়',
41510            L: 'DD/MM/YYYY',
41511            LL: 'D MMMM YYYY',
41512            LLL: 'D MMMM YYYY, A h:mm সময়',
41513            LLLL: 'dddd, D MMMM YYYY, A h:mm সময়',
41514        },
41515        calendar: {
41516            sameDay: '[আজ] LT',
41517            nextDay: '[আগামীকাল] LT',
41518            nextWeek: 'dddd, LT',
41519            lastDay: '[গতকাল] LT',
41520            lastWeek: '[গত] dddd, LT',
41521            sameElse: 'L',
41522        },
41523        relativeTime: {
41524            future: '%s পরে',
41525            past: '%s আগে',
41526            s: 'কয়েক সেকেন্ড',
41527            ss: '%d সেকেন্ড',
41528            m: 'এক মিনিট',
41529            mm: '%d মিনিট',
41530            h: 'এক ঘন্টা',
41531            hh: '%d ঘন্টা',
41532            d: 'এক দিন',
41533            dd: '%d দিন',
41534            M: 'এক মাস',
41535            MM: '%d মাস',
41536            y: 'এক বছর',
41537            yy: '%d বছর',
41538        },
41539        preparse: function (string) {
41540            return string.replace(/[১২৩৪৫৬৭৮৯০]/g, function (match) {
41541                return numberMap[match];
41542            });
41543        },
41544        postformat: function (string) {
41545            return string.replace(/\d/g, function (match) {
41546                return symbolMap[match];
41547            });
41548        },
41549
41550        meridiemParse: /রাত|ভোর|সকাল|দুপুর|বিকাল|সন্ধ্যা|রাত/,
41551        meridiemHour: function (hour, meridiem) {
41552            if (hour === 12) {
41553                hour = 0;
41554            }
41555            if (meridiem === 'রাত') {
41556                return hour < 4 ? hour : hour + 12;
41557            } else if (meridiem === 'ভোর') {
41558                return hour;
41559            } else if (meridiem === 'সকাল') {
41560                return hour;
41561            } else if (meridiem === 'দুপুর') {
41562                return hour >= 3 ? hour : hour + 12;
41563            } else if (meridiem === 'বিকাল') {
41564                return hour + 12;
41565            } else if (meridiem === 'সন্ধ্যা') {
41566                return hour + 12;
41567            }
41568        },
41569
41570        meridiem: function (hour, minute, isLower) {
41571            if (hour < 4) {
41572                return 'রাত';
41573            } else if (hour < 6) {
41574                return 'ভোর';
41575            } else if (hour < 12) {
41576                return 'সকাল';
41577            } else if (hour < 15) {
41578                return 'দুপুর';
41579            } else if (hour < 18) {
41580                return 'বিকাল';
41581            } else if (hour < 20) {
41582                return 'সন্ধ্যা';
41583            } else {
41584                return 'রাত';
41585            }
41586        },
41587        week: {
41588            dow: 0, // Sunday is the first day of the week.
41589            doy: 6, // The week that contains Jan 6th is the first week of the year.
41590        },
41591    });
41592
41593    return bnBd;
41594
41595})));
41596
41597
41598/***/ }),
41599
vendor: 4,840 bytes, lines 41600-41738
41600/***/ "./node_modules/moment/locale/bn.js":
41601/*!******************************************!*\
41602  !*** ./node_modules/moment/locale/bn.js ***!
41603  \******************************************/
41604/*! no static exports found */
41605/***/ (function(module, exports, __webpack_require__) {
41606
41607//! moment.js locale configuration
41608//! locale : Bengali [bn]
41609//! author : Kaushik Gandhi : https://github.com/kaushikgandhi
41610
41611;(function (global, factory) {
41612    true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/moment/moment.js")) :
41613   undefined
41614}(this, (function (moment) { 'use strict';
41615
41616    //! moment.js locale configuration
41617
41618    var symbolMap = {
41619            1: 'à§§',
41620            2: '২',
41621            3: 'à§©',
41622            4: '৪',
41623            5: 'à§«',
41624            6: '৬',
41625            7: 'à§­',
41626            8: 'à§®',
41627            9: '৯',
41628            0: '০',
41629        },
41630        numberMap = {
41631            'à§§': '1',
41632            '২': '2',
41633            'à§©': '3',
41634            '৪': '4',
41635            'à§«': '5',
41636            '৬': '6',
41637            'à§­': '7',
41638            'à§®': '8',
41639            '৯': '9',
41640            '০': '0',
41641        };
41642
41643    var bn = moment.defineLocale('bn', {
41644        months: 'জানুয়ারি_ফেব্রুয়ারি_মার্চ_এপ্রিল_মে_জুন_জুলাই_আগস্ট_সেপ্টেম্বর_অক্টোবর_নভেম্বর_ডিসেম্বর'.split(
41645            '_'
41646        ),
41647        monthsShort:
41648            'জানু_ফেব্রু_মার্চ_এপ্রিল_মে_জুন_জুলাই_আগস্ট_সেপ্ট_অক্টো_নভে_ডিসে'.split(
41649                '_'
41650            ),
41651        weekdays: 'রবিবার_সোমবার_মঙ্গলবার_বুধবার_বৃহস্পতিবার_শুক্রবার_শনিবার'.split(
41652            '_'
41653        ),
41654        weekdaysShort: 'রবি_সোম_মঙ্গল_বুধ_বৃহস্পতি_শুক্র_শনি'.split('_'),
41655        weekdaysMin: 'রবি_সোম_মঙ্গল_বুধ_বৃহ_শুক্র_শনি'.split('_'),
41656        longDateFormat: {
41657            LT: 'A h:mm সময়',
41658            LTS: 'A h:mm:ss সময়',
41659            L: 'DD/MM/YYYY',
41660            LL: 'D MMMM YYYY',
41661            LLL: 'D MMMM YYYY, A h:mm সময়',
41662            LLLL: 'dddd, D MMMM YYYY, A h:mm সময়',
41663        },
41664        calendar: {
41665            sameDay: '[আজ] LT',
41666            nextDay: '[আগামীকাল] LT',
41667            nextWeek: 'dddd, LT',
41668            lastDay: '[গতকাল] LT',
41669            lastWeek: '[গত] dddd, LT',
41670            sameElse: 'L',
41671        },
41672        relativeTime: {
41673            future: '%s পরে',
41674            past: '%s আগে',
41675            s: 'কয়েক সেকেন্ড',
41676            ss: '%d সেকেন্ড',
41677            m: 'এক মিনিট',
41678            mm: '%d মিনিট',
41679            h: 'এক ঘন্টা',
41680            hh: '%d ঘন্টা',
41681            d: 'এক দিন',
41682            dd: '%d দিন',
41683            M: 'এক মাস',
41684            MM: '%d মাস',
41685            y: 'এক বছর',
41686            yy: '%d বছর',
41687        },
41688        preparse: function (string) {
41689            return string.replace(/[১২৩৪৫৬৭৮৯০]/g, function (match) {
41690                return numberMap[match];
41691            });
41692        },
41693        postformat: function (string) {
41694            return string.replace(/\d/g, function (match) {
41695                return symbolMap[match];
41696            });
41697        },
41698        meridiemParse: /রাত|সকাল|দুপুর|বিকাল|রাত/,
41699        meridiemHour: function (hour, meridiem) {
41700            if (hour === 12) {
41701                hour = 0;
41702            }
41703            if (
41704                (meridiem === 'রাত' && hour >= 4) ||
41705                (meridiem === 'দুপুর' && hour < 5) ||
41706                meridiem === 'বিকাল'
41707            ) {
41708                return hour + 12;
41709            } else {
41710                return hour;
41711            }
41712        },
41713        meridiem: function (hour, minute, isLower) {
41714            if (hour < 4) {
41715                return 'রাত';
41716            } else if (hour < 10) {
41717                return 'সকাল';
41718            } else if (hour < 17) {
41719                return 'দুপুর';
41720            } else if (hour < 20) {
41721                return 'বিকাল';
41722            } else {
41723                return 'রাত';
41724            }
41725        },
41726        week: {
41727            dow: 0, // Sunday is the first day of the week.
41728            doy: 6, // The week that contains Jan 6th is the first week of the year.
41729        },
41730    });
41731
41732    return bn;
41733
41734})));
41735
41736
41737/***/ }),
41738
vendor: 5,361 bytes, lines 41739-41882
41739/***/ "./node_modules/moment/locale/bo.js":
41740/*!******************************************!*\
41741  !*** ./node_modules/moment/locale/bo.js ***!
41742  \******************************************/
41743/*! no static exports found */
41744/***/ (function(module, exports, __webpack_require__) {
41745
41746//! moment.js locale configuration
41747//! locale : Tibetan [bo]
41748//! author : Thupten N. Chakrishar : https://github.com/vajradog
41749
41750;(function (global, factory) {
41751    true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/moment/moment.js")) :
41752   undefined
41753}(this, (function (moment) { 'use strict';
41754
41755    //! moment.js locale configuration
41756
41757    var symbolMap = {
41758            1: '༡',
41759            2: '༢',
41760            3: '༣',
41761            4: '༤',
41762            5: '༥',
41763            6: '༦',
41764            7: '༧',
41765            8: '༨',
41766            9: '༩',
41767            0: '༠',
41768        },
41769        numberMap = {
41770            '༡': '1',
41771            '༢': '2',
41772            '༣': '3',
41773            '༤': '4',
41774            '༥': '5',
41775            '༦': '6',
41776            '༧': '7',
41777            '༨': '8',
41778            '༩': '9',
41779            '༠': '0',
41780        };
41781
41782    var bo = moment.defineLocale('bo', {
41783        months: 'ཟླ་བ་དང་པོ_ཟླ་བ་གཉིས་པ_ཟླ་བ་གསུམ་པ_ཟླ་བ་བཞི་པ_ཟླ་བ་ལྔ་པ_ཟླ་བ་དྲུག་པ_ཟླ་བ་བདུན་པ_ཟླ་བ་བརྒྱད་པ_ཟླ་བ་དགུ་པ_ཟླ་བ་བཅུ་པ_ཟླ་བ་བཅུ་གཅིག་པ_ཟླ་བ་བཅུ་གཉིས་པ'.split(
41784            '_'
41785        ),
41786        monthsShort:
41787            'ཟླ་1_ཟླ་2_ཟླ་3_ཟླ་4_ཟླ་5_ཟླ་6_ཟླ་7_ཟླ་8_ཟླ་9_ཟླ་10_ཟླ་11_ཟླ་12'.split(
41788                '_'
41789            ),
41790        monthsShortRegex: /^(ཟླ་\d{1,2})/,
41791        monthsParseExact: true,
41792        weekdays:
41793            'གཟའ་ཉི་མ་_གཟའ་ཟླ་བ་_གཟའ་མིག་དམར་_གཟའ་ལྷག་པ་_གཟའ་ཕུར་བུ_གཟའ་པ་སངས་_གཟའ་སྤེན་པ་'.split(
41794                '_'
41795            ),
41796        weekdaysShort: 'ཉི་མ་_ཟླ་བ་_མིག་དམར་_ལྷག་པ་_ཕུར་བུ_པ་སངས་_སྤེན་པ་'.split(
41797            '_'
41798        ),
41799        weekdaysMin: 'ཉི_ཟླ_མིག_ལྷག_ཕུར_སངས_སྤེན'.split('_'),
41800        longDateFormat: {
41801            LT: 'A h:mm',
41802            LTS: 'A h:mm:ss',
41803            L: 'DD/MM/YYYY',
41804            LL: 'D MMMM YYYY',
41805            LLL: 'D MMMM YYYY, A h:mm',
41806            LLLL: 'dddd, D MMMM YYYY, A h:mm',
41807        },
41808        calendar: {
41809            sameDay: '[དི་རིང] LT',
41810            nextDay: '[སང་ཉིན] LT',
41811            nextWeek: '[བདུན་ཕྲག་རྗེས་མ], LT',
41812            lastDay: '[ཁ་སང] LT',
41813            lastWeek: '[བདུན་ཕྲག་མཐའ་མ] dddd, LT',
41814            sameElse: 'L',
41815        },
41816        relativeTime: {
41817            future: '%s ལ་',
41818            past: '%s སྔན་ལ',
41819            s: 'ལམ་སང',
41820            ss: '%d སྐར་ཆ།',
41821            m: 'སྐར་མ་གཅིག',
41822            mm: '%d སྐར་མ',
41823            h: 'ཆུ་ཚོད་གཅིག',
41824            hh: '%d ཆུ་ཚོད',
41825            d: 'ཉིན་གཅིག',
41826            dd: '%d ཉིན་',
41827            M: 'ཟླ་བ་གཅིག',
41828            MM: '%d ཟླ་བ',
41829            y: 'ལོ་གཅིག',
41830            yy: '%d ལོ',
41831        },
41832        preparse: function (string) {
41833            return string.replace(/[༡༢༣༤༥༦༧༨༩༠]/g, function (match) {
41834                return numberMap[match];
41835            });
41836        },
41837        postformat: function (string) {
41838            return string.replace(/\d/g, function (match) {
41839                return symbolMap[match];
41840            });
41841        },
41842        meridiemParse: /མཚན་མོ|ཞོགས་ཀས|ཉིན་གུང|དགོང་དག|མཚན་མོ/,
41843        meridiemHour: function (hour, meridiem) {
41844            if (hour === 12) {
41845                hour = 0;
41846            }
41847            if (
41848                (meridiem === 'མཚན་མོ' && hour >= 4) ||
41849                (meridiem === 'ཉིན་གུང' && hour < 5) ||
41850                meridiem === 'དགོང་དག'
41851            ) {
41852                return hour + 12;
41853            } else {
41854                return hour;
41855            }
41856        },
41857        meridiem: function (hour, minute, isLower) {
41858            if (hour < 4) {
41859                return 'མཚན་མོ';
41860            } else if (hour < 10) {
41861                return 'ཞོགས་ཀས';
41862            } else if (hour < 17) {
41863                return 'ཉིན་གུང';
41864            } else if (hour < 20) {
41865                return 'དགོང་དག';
41866            } else {
41867                return 'མཚན་མོ';
41868            }
41869        },
41870        week: {
41871            dow: 0, // Sunday is the first day of the week.
41872            doy: 6, // The week that contains Jan 6th is the first week of the year.
41873        },
41874    });
41875
41876    return bo;
41877
41878})));
41879
41880
41881/***/ }),
41882
vendor: 5,670 bytes, lines 41883-42070
41883/***/ "./node_modules/moment/locale/br.js":
41884/*!******************************************!*\
41885  !*** ./node_modules/moment/locale/br.js ***!
41886  \******************************************/
41887/*! no static exports found */
41888/***/ (function(module, exports, __webpack_require__) {
41889
41890//! moment.js locale configuration
41891//! locale : Breton [br]
41892//! author : Jean-Baptiste Le Duigou : https://github.com/jbleduigou
41893
41894;(function (global, factory) {
41895    true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/moment/moment.js")) :
41896   undefined
41897}(this, (function (moment) { 'use strict';
41898
41899    //! moment.js locale configuration
41900
41901    function relativeTimeWithMutation(number, withoutSuffix, key) {
41902        var format = {
41903            mm: 'munutenn',
41904            MM: 'miz',
41905            dd: 'devezh',
41906        };
41907        return number + ' ' + mutation(format[key], number);
41908    }
41909    function specialMutationForYears(number) {
41910        switch (lastNumber(number)) {
41911            case 1:
41912            case 3:
41913            case 4:
41914            case 5:
41915            case 9:
41916                return number + ' bloaz';
41917            default:
41918                return number + ' vloaz';
41919        }
41920    }
41921    function lastNumber(number) {
41922        if (number > 9) {
41923            return lastNumber(number % 10);
41924        }
41925        return number;
41926    }
41927    function mutation(text, number) {
41928        if (number === 2) {
41929            return softMutation(text);
41930        }
41931        return text;
41932    }
41933    function softMutation(text) {
41934        var mutationTable = {
41935            m: 'v',
41936            b: 'v',
41937            d: 'z',
41938        };
41939        if (mutationTable[text.charAt(0)] === undefined) {
41940            return text;
41941        }
41942        return mutationTable[text.charAt(0)] + text.substring(1);
41943    }
41944
41945    var monthsParse = [
41946            /^gen/i,
41947            /^c[ʼ\']hwe/i,
41948            /^meu/i,
41949            /^ebr/i,
41950            /^mae/i,
41951            /^(mez|eve)/i,
41952            /^gou/i,
41953            /^eos/i,
41954            /^gwe/i,
41955            /^her/i,
41956            /^du/i,
41957            /^ker/i,
41958        ],
41959        monthsRegex =
41960            /^(genver|c[ʼ\']hwevrer|meurzh|ebrel|mae|mezheven|gouere|eost|gwengolo|here|du|kerzu|gen|c[ʼ\']hwe|meu|ebr|mae|eve|gou|eos|gwe|her|du|ker)/i,
41961        monthsStrictRegex =
41962            /^(genver|c[ʼ\']hwevrer|meurzh|ebrel|mae|mezheven|gouere|eost|gwengolo|here|du|kerzu)/i,
41963        monthsShortStrictRegex =
41964            /^(gen|c[ʼ\']hwe|meu|ebr|mae|eve|gou|eos|gwe|her|du|ker)/i,
41965        fullWeekdaysParse = [
41966            /^sul/i,
41967            /^lun/i,
41968            /^meurzh/i,
41969            /^merc[ʼ\']her/i,
41970            /^yaou/i,
41971            /^gwener/i,
41972            /^sadorn/i,
41973        ],
41974        shortWeekdaysParse = [
41975            /^Sul/i,
41976            /^Lun/i,
41977            /^Meu/i,
41978            /^Mer/i,
41979            /^Yao/i,
41980            /^Gwe/i,
41981            /^Sad/i,
41982        ],
41983        minWeekdaysParse = [
41984            /^Su/i,
41985            /^Lu/i,
41986            /^Me([^r]|$)/i,
41987            /^Mer/i,
41988            /^Ya/i,
41989            /^Gw/i,
41990            /^Sa/i,
41991        ];
41992
41993    var br = moment.defineLocale('br', {
41994        months: 'Genver_Cʼhwevrer_Meurzh_Ebrel_Mae_Mezheven_Gouere_Eost_Gwengolo_Here_Du_Kerzu'.split(
41995            '_'
41996        ),
41997        monthsShort: 'Gen_Cʼhwe_Meu_Ebr_Mae_Eve_Gou_Eos_Gwe_Her_Du_Ker'.split('_'),
41998        weekdays: 'Sul_Lun_Meurzh_Mercʼher_Yaou_Gwener_Sadorn'.split('_'),
41999        weekdaysShort: 'Sul_Lun_Meu_Mer_Yao_Gwe_Sad'.split('_'),
42000        weekdaysMin: 'Su_Lu_Me_Mer_Ya_Gw_Sa'.split('_'),
42001        weekdaysParse: minWeekdaysParse,
42002        fullWeekdaysParse: fullWeekdaysParse,
42003        shortWeekdaysParse: shortWeekdaysParse,
42004        minWeekdaysParse: minWeekdaysParse,
42005
42006        monthsRegex: monthsRegex,
42007        monthsShortRegex: monthsRegex,
42008        monthsStrictRegex: monthsStrictRegex,
42009        monthsShortStrictRegex: monthsShortStrictRegex,
42010        monthsParse: monthsParse,
42011        longMonthsParse: monthsParse,
42012        shortMonthsParse: monthsParse,
42013
42014        longDateFormat: {
42015            LT: 'HH:mm',
42016            LTS: 'HH:mm:ss',
42017            L: 'DD/MM/YYYY',
42018            LL: 'D [a viz] MMMM YYYY',
42019            LLL: 'D [a viz] MMMM YYYY HH:mm',
42020            LLLL: 'dddd, D [a viz] MMMM YYYY HH:mm',
42021        },
42022        calendar: {
42023            sameDay: '[Hiziv da] LT',
42024            nextDay: '[Warcʼhoazh da] LT',
42025            nextWeek: 'dddd [da] LT',
42026            lastDay: '[Decʼh da] LT',
42027            lastWeek: 'dddd [paset da] LT',
42028            sameElse: 'L',
42029        },
42030        relativeTime: {
42031            future: 'a-benn %s',
42032            past: '%s ʼzo',
42033            s: 'un nebeud segondennoù',
42034            ss: '%d eilenn',
42035            m: 'ur vunutenn',
42036            mm: relativeTimeWithMutation,
42037            h: 'un eur',
42038            hh: '%d eur',
42039            d: 'un devezh',
42040            dd: relativeTimeWithMutation,
42041            M: 'ur miz',
42042            MM: relativeTimeWithMutation,
42043            y: 'ur bloaz',
42044            yy: specialMutationForYears,
42045        },
42046        dayOfMonthOrdinalParse: /\d{1,2}(añ|vet)/,
42047        ordinal: function (number) {
42048            var output = number === 1 ? 'añ' : 'vet';
42049            return number + output;
42050        },
42051        week: {
42052            dow: 1, // Monday is the first day of the week.
42053            doy: 4, // The week that contains Jan 4th is the first week of the year.
42054        },
42055        meridiemParse: /a.m.|g.m./, // goude merenn | a-raok merenn
42056        isPM: function (token) {
42057            return token === 'g.m.';
42058        },
42059        meridiem: function (hour, minute, isLower) {
42060            return hour < 12 ? 'a.m.' : 'g.m.';
42061        },
42062    });
42063
42064    return br;
42065
42066})));
42067
42068
42069/***/ }),
42070
vendor: 5,825 bytes, lines 42071-42250
42071/***/ "./node_modules/moment/locale/bs.js":
42072/*!******************************************!*\
42073  !*** ./node_modules/moment/locale/bs.js ***!
42074  \******************************************/
42075/*! no static exports found */
42076/***/ (function(module, exports, __webpack_require__) {
42077
42078//! moment.js locale configuration
42079//! locale : Bosnian [bs]
42080//! author : Nedim Cholich : https://github.com/frontyard
42081//! author : Rasid Redzic : https://github.com/rasidre
42082//! based on (hr) translation by Bojan Marković
42083
42084;(function (global, factory) {
42085    true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/moment/moment.js")) :
42086   undefined
42087}(this, (function (moment) { 'use strict';
42088
42089    //! moment.js locale configuration
42090
42091    function processRelativeTime(number, withoutSuffix, key, isFuture) {
42092        switch (key) {
42093            case 'm':
42094                return withoutSuffix
42095                    ? 'jedna minuta'
42096                    : isFuture
42097                      ? 'jednu minutu'
42098                      : 'jedne minute';
42099        }
42100    }
42101
42102    function translate(number, withoutSuffix, key) {
42103        var result = number + ' ';
42104        switch (key) {
42105            case 'ss':
42106                if (number === 1) {
42107                    result += 'sekunda';
42108                } else if (number === 2 || number === 3 || number === 4) {
42109                    result += 'sekunde';
42110                } else {
42111                    result += 'sekundi';
42112                }
42113                return result;
42114            case 'mm':
42115                if (number === 1) {
42116                    result += 'minuta';
42117                } else if (number === 2 || number === 3 || number === 4) {
42118                    result += 'minute';
42119                } else {
42120                    result += 'minuta';
42121                }
42122                return result;
42123            case 'h':
42124                return withoutSuffix ? 'jedan sat' : 'jedan sat';
42125            case 'hh':
42126                if (number === 1) {
42127                    result += 'sat';
42128                } else if (number === 2 || number === 3 || number === 4) {
42129                    result += 'sata';
42130                } else {
42131                    result += 'sati';
42132                }
42133                return result;
42134            case 'dd':
42135                if (number === 1) {
42136                    result += 'dan';
42137                } else {
42138                    result += 'dana';
42139                }
42140                return result;
42141            case 'MM':
42142                if (number === 1) {
42143                    result += 'mjesec';
42144                } else if (number === 2 || number === 3 || number === 4) {
42145                    result += 'mjeseca';
42146                } else {
42147                    result += 'mjeseci';
42148                }
42149                return result;
42150            case 'yy':
42151                if (number === 1) {
42152                    result += 'godina';
42153                } else if (number === 2 || number === 3 || number === 4) {
42154                    result += 'godine';
42155                } else {
42156                    result += 'godina';
42157                }
42158                return result;
42159        }
42160    }
42161
42162    var bs = moment.defineLocale('bs', {
42163        months: 'januar_februar_mart_april_maj_juni_juli_august_septembar_oktobar_novembar_decembar'.split(
42164            '_'
42165        ),
42166        monthsShort:
42167            'jan._feb._mar._apr._maj._jun._jul._aug._sep._okt._nov._dec.'.split(
42168                '_'
42169            ),
42170        monthsParseExact: true,
42171        weekdays: 'nedjelja_ponedjeljak_utorak_srijeda_četvrtak_petak_subota'.split(
42172            '_'
42173        ),
42174        weekdaysShort: 'ned._pon._uto._sri._čet._pet._sub.'.split('_'),
42175        weekdaysMin: 'ne_po_ut_sr_če_pe_su'.split('_'),
42176        weekdaysParseExact: true,
42177        longDateFormat: {
42178            LT: 'H:mm',
42179            LTS: 'H:mm:ss',
42180            L: 'DD.MM.YYYY',
42181            LL: 'D. MMMM YYYY',
42182            LLL: 'D. MMMM YYYY H:mm',
42183            LLLL: 'dddd, D. MMMM YYYY H:mm',
42184        },
42185        calendar: {
42186            sameDay: '[danas u] LT',
42187            nextDay: '[sutra u] LT',
42188            nextWeek: function () {
42189                switch (this.day()) {
42190                    case 0:
42191                        return '[u] [nedjelju] [u] LT';
42192                    case 3:
42193                        return '[u] [srijedu] [u] LT';
42194                    case 6:
42195                        return '[u] [subotu] [u] LT';
42196                    case 1:
42197                    case 2:
42198                    case 4:
42199                    case 5:
42200                        return '[u] dddd [u] LT';
42201                }
42202            },
42203            lastDay: '[jučer u] LT',
42204            lastWeek: function () {
42205                switch (this.day()) {
42206                    case 0:
42207                    case 3:
42208                        return '[prošlu] dddd [u] LT';
42209                    case 6:
42210                        return '[prošle] [subote] [u] LT';
42211                    case 1:
42212                    case 2:
42213                    case 4:
42214                    case 5:
42215                        return '[prošli] dddd [u] LT';
42216                }
42217            },
42218            sameElse: 'L',
42219        },
42220        relativeTime: {
42221            future: 'za %s',
42222            past: 'prije %s',
42223            s: 'par sekundi',
42224            ss: translate,
42225            m: processRelativeTime,
42226            mm: translate,
42227            h: translate,
42228            hh: translate,
42229            d: 'dan',
42230            dd: translate,
42231            M: 'mjesec',
42232            MM: translate,
42233            y: 'godinu',
42234            yy: translate,
42235        },
42236        dayOfMonthOrdinalParse: /\d{1,2}\./,
42237        ordinal: '%d.',
42238        week: {
42239            dow: 1, // Monday is the first day of the week.
42240            doy: 7, // The week that contains Jan 7th is the first week of the year.
42241        },
42242    });
42243
42244    return bs;
42245
42246})));
42247
42248
42249/***/ }),
42250
vendor: 3,925 bytes, lines 42251-42370
42251/***/ "./node_modules/moment/locale/ca.js":
42252/*!******************************************!*\
42253  !*** ./node_modules/moment/locale/ca.js ***!
42254  \******************************************/
42255/*! no static exports found */
42256/***/ (function(module, exports, __webpack_require__) {
42257
42258//! moment.js locale configuration
42259//! locale : Catalan [ca]
42260//! author : Juan G. Hurtado : https://github.com/juanghurtado
42261
42262;(function (global, factory) {
42263    true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/moment/moment.js")) :
42264   undefined
42265}(this, (function (moment) { 'use strict';
42266
42267    //! moment.js locale configuration
42268
42269    var ca = moment.defineLocale('ca', {
42270        months: {
42271            standalone:
42272                'gener_febrer_març_abril_maig_juny_juliol_agost_setembre_octubre_novembre_desembre'.split(
42273                    '_'
42274                ),
42275            format: "de gener_de febrer_de març_d'abril_de maig_de juny_de juliol_d'agost_de setembre_d'octubre_de novembre_de desembre".split(
42276                '_'
42277            ),
42278            isFormat: /D[oD]?(\s)+MMMM/,
42279        },
42280        monthsShort:
42281            'gen._febr._març_abr._maig_juny_jul._ag._set._oct._nov._des.'.split(
42282                '_'
42283            ),
42284        monthsParseExact: true,
42285        weekdays:
42286            'diumenge_dilluns_dimarts_dimecres_dijous_divendres_dissabte'.split(
42287                '_'
42288            ),
42289        weekdaysShort: 'dg._dl._dt._dc._dj._dv._ds.'.split('_'),
42290        weekdaysMin: 'dg_dl_dt_dc_dj_dv_ds'.split('_'),
42291        weekdaysParseExact: true,
42292        longDateFormat: {
42293            LT: 'H:mm',
42294            LTS: 'H:mm:ss',
42295            L: 'DD/MM/YYYY',
42296            LL: 'D MMMM [de] YYYY',
42297            ll: 'D MMM YYYY',
42298            LLL: 'D MMMM [de] YYYY [a les] H:mm',
42299            lll: 'D MMM YYYY, H:mm',
42300            LLLL: 'dddd D MMMM [de] YYYY [a les] H:mm',
42301            llll: 'ddd D MMM YYYY, H:mm',
42302        },
42303        calendar: {
42304            sameDay: function () {
42305                return '[avui a ' + (this.hours() !== 1 ? 'les' : 'la') + '] LT';
42306            },
42307            nextDay: function () {
42308                return '[demà a ' + (this.hours() !== 1 ? 'les' : 'la') + '] LT';
42309            },
42310            nextWeek: function () {
42311                return 'dddd [a ' + (this.hours() !== 1 ? 'les' : 'la') + '] LT';
42312            },
42313            lastDay: function () {
42314                return '[ahir a ' + (this.hours() !== 1 ? 'les' : 'la') + '] LT';
42315            },
42316            lastWeek: function () {
42317                return (
42318                    '[el] dddd [passat a ' +
42319                    (this.hours() !== 1 ? 'les' : 'la') +
42320                    '] LT'
42321                );
42322            },
42323            sameElse: 'L',
42324        },
42325        relativeTime: {
42326            future: "d'aquí %s",
42327            past: 'fa %s',
42328            s: 'uns segons',
42329            ss: '%d segons',
42330            m: 'un minut',
42331            mm: '%d minuts',
42332            h: 'una hora',
42333            hh: '%d hores',
42334            d: 'un dia',
42335            dd: '%d dies',
42336            M: 'un mes',
42337            MM: '%d mesos',
42338            y: 'un any',
42339            yy: '%d anys',
42340        },
42341        dayOfMonthOrdinalParse: /\d{1,2}(r|n|t|è|a)/,
42342        ordinal: function (number, period) {
42343            var output =
42344                number === 1
42345                    ? 'r'
42346                    : number === 2
42347                      ? 'n'
42348                      : number === 3
42349                        ? 'r'
42350                        : number === 4
42351                          ? 't'
42352                          : 'è';
42353            if (period === 'w' || period === 'W') {
42354                output = 'a';
42355            }
42356            return number + output;
42357        },
42358        week: {
42359            dow: 1, // Monday is the first day of the week.
42360            doy: 4, // The week that contains Jan 4th is the first week of the year.
42361        },
42362    });
42363
42364    return ca;
42365
42366})));
42367
42368
42369/***/ }),
42370
vendor: 7,956 bytes, lines 42371-42571
42371/***/ "./node_modules/moment/locale/cs.js":
42372/*!******************************************!*\
42373  !*** ./node_modules/moment/locale/cs.js ***!
42374  \******************************************/
42375/*! no static exports found */
42376/***/ (function(module, exports, __webpack_require__) {
42377
42378//! moment.js locale configuration
42379//! locale : Czech [cs]
42380//! author : petrbela : https://github.com/petrbela
42381
42382;(function (global, factory) {
42383    true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/moment/moment.js")) :
42384   undefined
42385}(this, (function (moment) { 'use strict';
42386
42387    //! moment.js locale configuration
42388
42389    var months = {
42390            standalone:
42391                'leden_únor_březen_duben_květen_červen_červenec_srpen_září_říjen_listopad_prosinec'.split(
42392                    '_'
42393                ),
42394            format: 'ledna_února_března_dubna_května_června_července_srpna_září_října_listopadu_prosince'.split(
42395                '_'
42396            ),
42397            isFormat: /DD?[o.]?(\[[^\[\]]*\]|\s)+MMMM/,
42398        },
42399        monthsShort = 'led_úno_bře_dub_kvě_čvn_čvc_srp_zář_říj_lis_pro'.split('_'),
42400        monthsParse = [
42401            /^led/i,
42402            /^úno/i,
42403            /^bře/i,
42404            /^dub/i,
42405            /^kvě/i,
42406            /^(čvn|červen$|června)/i,
42407            /^(čvc|červenec|července)/i,
42408            /^srp/i,
42409            /^zář/i,
42410            /^říj/i,
42411            /^lis/i,
42412            /^pro/i,
42413        ],
42414        // NOTE: 'červen' is substring of 'červenec'; therefore 'červenec' must precede 'červen' in the regex to be fully matched.
42415        // Otherwise parser matches '1. červenec' as '1. červen' + 'ec'.
42416        monthsRegex =
42417            /^(leden|únor|březen|duben|květen|červenec|července|červen|června|srpen|září|říjen|listopad|prosinec|led|úno|bře|dub|kvě|čvn|čvc|srp|zář|říj|lis|pro)/i;
42418
42419    function plural(n) {
42420        return n > 1 && n < 5 && ~~(n / 10) !== 1;
42421    }
42422    function translate(number, withoutSuffix, key, isFuture) {
42423        var result = number + ' ';
42424        switch (key) {
42425            case 's': // a few seconds / in a few seconds / a few seconds ago
42426                return withoutSuffix || isFuture ? 'pár sekund' : 'pár sekundami';
42427            case 'ss': // 9 seconds / in 9 seconds / 9 seconds ago
42428                if (withoutSuffix || isFuture) {
42429                    return result + (plural(number) ? 'sekundy' : 'sekund');
42430                } else {
42431                    return result + 'sekundami';
42432                }
42433            case 'm': // a minute / in a minute / a minute ago
42434                return withoutSuffix ? 'minuta' : isFuture ? 'minutu' : 'minutou';
42435            case 'mm': // 9 minutes / in 9 minutes / 9 minutes ago
42436                if (withoutSuffix || isFuture) {
42437                    return result + (plural(number) ? 'minuty' : 'minut');
42438                } else {
42439                    return result + 'minutami';
42440                }
42441            case 'h': // an hour / in an hour / an hour ago
42442                return withoutSuffix ? 'hodina' : isFuture ? 'hodinu' : 'hodinou';
42443            case 'hh': // 9 hours / in 9 hours / 9 hours ago
42444                if (withoutSuffix || isFuture) {
42445                    return result + (plural(number) ? 'hodiny' : 'hodin');
42446                } else {
42447                    return result + 'hodinami';
42448                }
42449            case 'd': // a day / in a day / a day ago
42450                return withoutSuffix || isFuture ? 'den' : 'dnem';
42451            case 'dd': // 9 days / in 9 days / 9 days ago
42452                if (withoutSuffix || isFuture) {
42453                    return result + (plural(number) ? 'dny' : 'dní');
42454                } else {
42455                    return result + 'dny';
42456                }
42457            case 'M': // a month / in a month / a month ago
42458                return withoutSuffix || isFuture ? 'měsíc' : 'měsícem';
42459            case 'MM': // 9 months / in 9 months / 9 months ago
42460                if (withoutSuffix || isFuture) {
42461                    return result + (plural(number) ? 'měsíce' : 'měsíců');
42462                } else {
42463                    return result + 'měsíci';
42464                }
42465            case 'y': // a year / in a year / a year ago
42466                return withoutSuffix || isFuture ? 'rok' : 'rokem';
42467            case 'yy': // 9 years / in 9 years / 9 years ago
42468                if (withoutSuffix || isFuture) {
42469                    return result + (plural(number) ? 'roky' : 'let');
42470                } else {
42471                    return result + 'lety';
42472                }
42473        }
42474    }
42475
42476    var cs = moment.defineLocale('cs', {
42477        months: months,
42478        monthsShort: monthsShort,
42479        monthsRegex: monthsRegex,
42480        monthsShortRegex: monthsRegex,
42481        // NOTE: 'červen' is substring of 'červenec'; therefore 'červenec' must precede 'červen' in the regex to be fully matched.
42482        // Otherwise parser matches '1. červenec' as '1. červen' + 'ec'.
42483        monthsStrictRegex:
42484            /^(leden|ledna|února|únor|březen|března|duben|dubna|květen|května|červenec|července|červen|června|srpen|srpna|září|říjen|října|listopadu|listopad|prosinec|prosince)/i,
42485        monthsShortStrictRegex:
42486            /^(led|úno|bře|dub|kvě|čvn|čvc|srp|zář|říj|lis|pro)/i,
42487        monthsParse: monthsParse,
42488        longMonthsParse: monthsParse,
42489        shortMonthsParse: monthsParse,
42490        weekdays: 'neděle_pondělí_úterý_středa_čtvrtek_pátek_sobota'.split('_'),
42491        weekdaysShort: 'ne_po_út_st_čt_pá_so'.split('_'),
42492        weekdaysMin: 'ne_po_út_st_čt_pá_so'.split('_'),
42493        longDateFormat: {
42494            LT: 'H:mm',
42495            LTS: 'H:mm:ss',
42496            L: 'DD.MM.YYYY',
42497            LL: 'D. MMMM YYYY',
42498            LLL: 'D. MMMM YYYY H:mm',
42499            LLLL: 'dddd D. MMMM YYYY H:mm',
42500            l: 'D. M. YYYY',
42501        },
42502        calendar: {
42503            sameDay: '[dnes v] LT',
42504            nextDay: '[zítra v] LT',
42505            nextWeek: function () {
42506                switch (this.day()) {
42507                    case 0:
42508                        return '[v neděli v] LT';
42509                    case 1:
42510                    case 2:
42511                        return '[v] dddd [v] LT';
42512                    case 3:
42513                        return '[ve středu v] LT';
42514                    case 4:
42515                        return '[ve čtvrtek v] LT';
42516                    case 5:
42517                        return '[v pátek v] LT';
42518                    case 6:
42519                        return '[v sobotu v] LT';
42520                }
42521            },
42522            lastDay: '[včera v] LT',
42523            lastWeek: function () {
42524                switch (this.day()) {
42525                    case 0:
42526                        return '[minulou neděli v] LT';
42527                    case 1:
42528                    case 2:
42529                        return '[minulé] dddd [v] LT';
42530                    case 3:
42531                        return '[minulou středu v] LT';
42532                    case 4:
42533                    case 5:
42534                        return '[minulý] dddd [v] LT';
42535                    case 6:
42536                        return '[minulou sobotu v] LT';
42537                }
42538            },
42539            sameElse: 'L',
42540        },
42541        relativeTime: {
42542            future: 'za %s',
42543            past: 'před %s',
42544            s: translate,
42545            ss: translate,
42546            m: translate,
42547            mm: translate,
42548            h: translate,
42549            hh: translate,
42550            d: translate,
42551            dd: translate,
42552            M: translate,
42553            MM: translate,
42554            y: translate,
42555            yy: translate,
42556        },
42557        dayOfMonthOrdinalParse: /\d{1,2}\./,
42558        ordinal: '%d.',
42559        week: {
42560            dow: 1, // Monday is the first day of the week.
42561            doy: 4, // The week that contains Jan 4th is the first week of the year.
42562        },
42563    });
42564
42565    return cs;
42566
42567})));
42568
42569
42570/***/ }),
42571
vendor: 3,067 bytes, lines 42572-42654
42572/***/ "./node_modules/moment/locale/cv.js":
42573/*!******************************************!*\
42574  !*** ./node_modules/moment/locale/cv.js ***!
42575  \******************************************/
42576/*! no static exports found */
42577/***/ (function(module, exports, __webpack_require__) {
42578
42579//! moment.js locale configuration
42580//! locale : Chuvash [cv]
42581//! author : Anatoly Mironov : https://github.com/mirontoli
42582
42583;(function (global, factory) {
42584    true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/moment/moment.js")) :
42585   undefined
42586}(this, (function (moment) { 'use strict';
42587
42588    //! moment.js locale configuration
42589
42590    var cv = moment.defineLocale('cv', {
42591        months: 'кӑрлач_нарӑс_пуш_ака_май_ҫӗртме_утӑ_ҫурла_авӑн_юпа_чӳк_раштав'.split(
42592            '_'
42593        ),
42594        monthsShort: 'кӑр_нар_пуш_ака_май_ҫӗр_утӑ_ҫур_авн_юпа_чӳк_раш'.split('_'),
42595        weekdays:
42596            'вырсарникун_тунтикун_ытларикун_юнкун_кӗҫнерникун_эрнекун_шӑматкун'.split(
42597                '_'
42598            ),
42599        weekdaysShort: 'выр_тун_ытл_юн_кӗҫ_эрн_шӑм'.split('_'),
42600        weekdaysMin: 'вр_тн_ыт_юн_кҫ_эр_шм'.split('_'),
42601        longDateFormat: {
42602            LT: 'HH:mm',
42603            LTS: 'HH:mm:ss',
42604            L: 'DD-MM-YYYY',
42605            LL: 'YYYY [ҫулхи] MMMM [уйӑхӗн] D[-мӗшӗ]',
42606            LLL: 'YYYY [ҫулхи] MMMM [уйӑхӗн] D[-мӗшӗ], HH:mm',
42607            LLLL: 'dddd, YYYY [ҫулхи] MMMM [уйӑхӗн] D[-мӗшӗ], HH:mm',
42608        },
42609        calendar: {
42610            sameDay: '[Паян] LT [сехетре]',
42611            nextDay: '[Ыран] LT [сехетре]',
42612            lastDay: '[Ӗнер] LT [сехетре]',
42613            nextWeek: '[Ҫитес] dddd LT [сехетре]',
42614            lastWeek: '[Иртнӗ] dddd LT [сехетре]',
42615            sameElse: 'L',
42616        },
42617        relativeTime: {
42618            future: function (output) {
42619                var affix = /сехет$/i.exec(output)
42620                    ? 'рен'
42621                    : /ҫул$/i.exec(output)
42622                      ? 'тан'
42623                      : 'ран';
42624                return output + affix;
42625            },
42626            past: '%s каялла',
42627            s: 'пӗр-ик ҫеккунт',
42628            ss: '%d ҫеккунт',
42629            m: 'пӗр минут',
42630            mm: '%d минут',
42631            h: 'пӗр сехет',
42632            hh: '%d сехет',
42633            d: 'пӗр кун',
42634            dd: '%d кун',
42635            M: 'пӗр уйӑх',
42636            MM: '%d уйӑх',
42637            y: 'пӗр ҫул',
42638            yy: '%d ҫул',
42639        },
42640        dayOfMonthOrdinalParse: /\d{1,2}-мӗш/,
42641        ordinal: '%d-мӗш',
42642        week: {
42643            dow: 1, // Monday is the first day of the week.
42644            doy: 7, // The week that contains Jan 7th is the first week of the year.
42645        },
42646    });
42647
42648    return cv;
42649
42650})));
42651
42652
42653/***/ }),
42654
vendor: 3,692 bytes, lines 42655-42772
42655/***/ "./node_modules/moment/locale/cy.js":
42656/*!******************************************!*\
42657  !*** ./node_modules/moment/locale/cy.js ***!
42658  \******************************************/
42659/*! no static exports found */
42660/***/ (function(module, exports, __webpack_require__) {
42661
42662//! moment.js locale configuration
42663//! locale : Welsh [cy]
42664//! author : Robert Allen : https://github.com/robgallen
42665//! author : https://github.com/ryangreaves
42666
42667;(function (global, factory) {
42668    true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/moment/moment.js")) :
42669   undefined
42670}(this, (function (moment) { 'use strict';
42671
42672    //! moment.js locale configuration
42673
42674    var cy = moment.defineLocale('cy', {
42675        months: 'Ionawr_Chwefror_Mawrth_Ebrill_Mai_Mehefin_Gorffennaf_Awst_Medi_Hydref_Tachwedd_Rhagfyr'.split(
42676            '_'
42677        ),
42678        monthsShort: 'Ion_Chwe_Maw_Ebr_Mai_Meh_Gor_Aws_Med_Hyd_Tach_Rhag'.split(
42679            '_'
42680        ),
42681        weekdays:
42682            'Dydd Sul_Dydd Llun_Dydd Mawrth_Dydd Mercher_Dydd Iau_Dydd Gwener_Dydd Sadwrn'.split(
42683                '_'
42684            ),
42685        weekdaysShort: 'Sul_Llun_Maw_Mer_Iau_Gwe_Sad'.split('_'),
42686        weekdaysMin: 'Su_Ll_Ma_Me_Ia_Gw_Sa'.split('_'),
42687        weekdaysParseExact: true,
42688        // time formats are the same as en-gb
42689        longDateFormat: {
42690            LT: 'HH:mm',
42691            LTS: 'HH:mm:ss',
42692            L: 'DD/MM/YYYY',
42693            LL: 'D MMMM YYYY',
42694            LLL: 'D MMMM YYYY HH:mm',
42695            LLLL: 'dddd, D MMMM YYYY HH:mm',
42696        },
42697        calendar: {
42698            sameDay: '[Heddiw am] LT',
42699            nextDay: '[Yfory am] LT',
42700            nextWeek: 'dddd [am] LT',
42701            lastDay: '[Ddoe am] LT',
42702            lastWeek: 'dddd [diwethaf am] LT',
42703            sameElse: 'L',
42704        },
42705        relativeTime: {
42706            future: 'mewn %s',
42707            past: '%s yn ôl',
42708            s: 'ychydig eiliadau',
42709            ss: '%d eiliad',
42710            m: 'munud',
42711            mm: '%d munud',
42712            h: 'awr',
42713            hh: '%d awr',
42714            d: 'diwrnod',
42715            dd: '%d diwrnod',
42716            M: 'mis',
42717            MM: '%d mis',
42718            y: 'blwyddyn',
42719            yy: '%d flynedd',
42720        },
42721        dayOfMonthOrdinalParse: /\d{1,2}(fed|ain|af|il|ydd|ed|eg)/,
42722        // traditional ordinal numbers above 31 are not commonly used in colloquial Welsh
42723        ordinal: function (number) {
42724            var b = number,
42725                output = '',
42726                lookup = [
42727                    '',
42728                    'af',
42729                    'il',
42730                    'ydd',
42731                    'ydd',
42732                    'ed',
42733                    'ed',
42734                    'ed',
42735                    'fed',
42736                    'fed',
42737                    'fed', // 1af to 10fed
42738                    'eg',
42739                    'fed',
42740                    'eg',
42741                    'eg',
42742                    'fed',
42743                    'eg',
42744                    'eg',
42745                    'fed',
42746                    'eg',
42747                    'fed', // 11eg to 20fed
42748                ];
42749            if (b > 20) {
42750                if (b === 40 || b === 50 || b === 60 || b === 80 || b === 100) {
42751                    output = 'fed'; // not 30ain, 70ain or 90ain
42752                } else {
42753                    output = 'ain';
42754                }
42755            } else if (b > 0) {
42756                output = lookup[b];
42757            }
42758            return number + output;
42759        },
42760        week: {
42761            dow: 1, // Monday is the first day of the week.
42762            doy: 4, // The week that contains Jan 4th is the first week of the year.
42763        },
42764    });
42765
42766    return cy;
42767
42768})));
42769
42770
42771/***/ }),
42772
vendor: 2,311 bytes, lines 42773-42845
42773/***/ "./node_modules/moment/locale/da.js":
42774/*!******************************************!*\
42775  !*** ./node_modules/moment/locale/da.js ***!
42776  \******************************************/
42777/*! no static exports found */
42778/***/ (function(module, exports, __webpack_require__) {
42779
42780//! moment.js locale configuration
42781//! locale : Danish [da]
42782//! author : Ulrik Nielsen : https://github.com/mrbase
42783
42784;(function (global, factory) {
42785    true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/moment/moment.js")) :
42786   undefined
42787}(this, (function (moment) { 'use strict';
42788
42789    //! moment.js locale configuration
42790
42791    var da = moment.defineLocale('da', {
42792        months: 'januar_februar_marts_april_maj_juni_juli_august_september_oktober_november_december'.split(
42793            '_'
42794        ),
42795        monthsShort: 'jan_feb_mar_apr_maj_jun_jul_aug_sep_okt_nov_dec'.split('_'),
42796        weekdays: 'søndag_mandag_tirsdag_onsdag_torsdag_fredag_lørdag'.split('_'),
42797        weekdaysShort: 'søn_man_tir_ons_tor_fre_lør'.split('_'),
42798        weekdaysMin: 'sø_ma_ti_on_to_fr_lø'.split('_'),
42799        longDateFormat: {
42800            LT: 'HH:mm',
42801            LTS: 'HH:mm:ss',
42802            L: 'DD.MM.YYYY',
42803            LL: 'D. MMMM YYYY',
42804            LLL: 'D. MMMM YYYY HH:mm',
42805            LLLL: 'dddd [d.] D. MMMM YYYY [kl.] HH:mm',
42806        },
42807        calendar: {
42808            sameDay: '[i dag kl.] LT',
42809            nextDay: '[i morgen kl.] LT',
42810            nextWeek: 'på dddd [kl.] LT',
42811            lastDay: '[i går kl.] LT',
42812            lastWeek: '[i] dddd[s kl.] LT',
42813            sameElse: 'L',
42814        },
42815        relativeTime: {
42816            future: 'om %s',
42817            past: '%s siden',
42818            s: 'få sekunder',
42819            ss: '%d sekunder',
42820            m: 'et minut',
42821            mm: '%d minutter',
42822            h: 'en time',
42823            hh: '%d timer',
42824            d: 'en dag',
42825            dd: '%d dage',
42826            M: 'en måned',
42827            MM: '%d måneder',
42828            y: 'et år',
42829            yy: '%d år',
42830        },
42831        dayOfMonthOrdinalParse: /\d{1,2}\./,
42832        ordinal: '%d.',
42833        week: {
42834            dow: 1, // Monday is the first day of the week.
42835            doy: 4, // The week that contains Jan 4th is the first week of the year.
42836        },
42837    });
42838
42839    return da;
42840
42841})));
42842
42843
42844/***/ }),
42845
vendor: 3,421 bytes, lines 42846-42944
42846/***/ "./node_modules/moment/locale/de-at.js":
42847/*!*********************************************!*\
42848  !*** ./node_modules/moment/locale/de-at.js ***!
42849  \*********************************************/
42850/*! no static exports found */
42851/***/ (function(module, exports, __webpack_require__) {
42852
42853//! moment.js locale configuration
42854//! locale : German (Austria) [de-at]
42855//! author : lluchs : https://github.com/lluchs
42856//! author: Menelion Elensúle: https://github.com/Oire
42857//! author : Martin Groller : https://github.com/MadMG
42858//! author : Mikolaj Dadela : https://github.com/mik01aj
42859
42860;(function (global, factory) {
42861    true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/moment/moment.js")) :
42862   undefined
42863}(this, (function (moment) { 'use strict';
42864
42865    //! moment.js locale configuration
42866
42867    function processRelativeTime(number, withoutSuffix, key, isFuture) {
42868        var format = {
42869            m: ['eine Minute', 'einer Minute'],
42870            h: ['eine Stunde', 'einer Stunde'],
42871            d: ['ein Tag', 'einem Tag'],
42872            dd: [number + ' Tage', number + ' Tagen'],
42873            w: ['eine Woche', 'einer Woche'],
42874            M: ['ein Monat', 'einem Monat'],
42875            MM: [number + ' Monate', number + ' Monaten'],
42876            y: ['ein Jahr', 'einem Jahr'],
42877            yy: [number + ' Jahre', number + ' Jahren'],
42878        };
42879        return withoutSuffix ? format[key][0] : format[key][1];
42880    }
42881
42882    var deAt = moment.defineLocale('de-at', {
42883        months: 'Jänner_Februar_März_April_Mai_Juni_Juli_August_September_Oktober_November_Dezember'.split(
42884            '_'
42885        ),
42886        monthsShort:
42887            'Jän._Feb._März_Apr._Mai_Juni_Juli_Aug._Sep._Okt._Nov._Dez.'.split('_'),
42888        monthsParseExact: true,
42889        weekdays:
42890            'Sonntag_Montag_Dienstag_Mittwoch_Donnerstag_Freitag_Samstag'.split(
42891                '_'
42892            ),
42893        weekdaysShort: 'So._Mo._Di._Mi._Do._Fr._Sa.'.split('_'),
42894        weekdaysMin: 'So_Mo_Di_Mi_Do_Fr_Sa'.split('_'),
42895        weekdaysParseExact: true,
42896        longDateFormat: {
42897            LT: 'HH:mm',
42898            LTS: 'HH:mm:ss',
42899            L: 'DD.MM.YYYY',
42900            LL: 'D. MMMM YYYY',
42901            LLL: 'D. MMMM YYYY HH:mm',
42902            LLLL: 'dddd, D. MMMM YYYY HH:mm',
42903        },
42904        calendar: {
42905            sameDay: '[heute um] LT [Uhr]',
42906            sameElse: 'L',
42907            nextDay: '[morgen um] LT [Uhr]',
42908            nextWeek: 'dddd [um] LT [Uhr]',
42909            lastDay: '[gestern um] LT [Uhr]',
42910            lastWeek: '[letzten] dddd [um] LT [Uhr]',
42911        },
42912        relativeTime: {
42913            future: 'in %s',
42914            past: 'vor %s',
42915            s: 'ein paar Sekunden',
42916            ss: '%d Sekunden',
42917            m: processRelativeTime,
42918            mm: '%d Minuten',
42919            h: processRelativeTime,
42920            hh: '%d Stunden',
42921            d: processRelativeTime,
42922            dd: processRelativeTime,
42923            w: processRelativeTime,
42924            ww: '%d Wochen',
42925            M: processRelativeTime,
42926            MM: processRelativeTime,
42927            y: processRelativeTime,
42928            yy: processRelativeTime,
42929        },
42930        dayOfMonthOrdinalParse: /\d{1,2}\./,
42931        ordinal: '%d.',
42932        week: {
42933            dow: 1, // Monday is the first day of the week.
42934            doy: 4, // The week that contains Jan 4th is the first week of the year.
42935        },
42936    });
42937
42938    return deAt;
42939
42940})));
42941
42942
42943/***/ }),
42944
vendor: 3,256 bytes, lines 42945-43040
42945/***/ "./node_modules/moment/locale/de-ch.js":
42946/*!*********************************************!*\
42947  !*** ./node_modules/moment/locale/de-ch.js ***!
42948  \*********************************************/
42949/*! no static exports found */
42950/***/ (function(module, exports, __webpack_require__) {
42951
42952//! moment.js locale configuration
42953//! locale : German (Switzerland) [de-ch]
42954//! author : sschueller : https://github.com/sschueller
42955
42956;(function (global, factory) {
42957    true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/moment/moment.js")) :
42958   undefined
42959}(this, (function (moment) { 'use strict';
42960
42961    //! moment.js locale configuration
42962
42963    function processRelativeTime(number, withoutSuffix, key, isFuture) {
42964        var format = {
42965            m: ['eine Minute', 'einer Minute'],
42966            h: ['eine Stunde', 'einer Stunde'],
42967            d: ['ein Tag', 'einem Tag'],
42968            dd: [number + ' Tage', number + ' Tagen'],
42969            w: ['eine Woche', 'einer Woche'],
42970            M: ['ein Monat', 'einem Monat'],
42971            MM: [number + ' Monate', number + ' Monaten'],
42972            y: ['ein Jahr', 'einem Jahr'],
42973            yy: [number + ' Jahre', number + ' Jahren'],
42974        };
42975        return withoutSuffix ? format[key][0] : format[key][1];
42976    }
42977
42978    var deCh = moment.defineLocale('de-ch', {
42979        months: 'Januar_Februar_März_April_Mai_Juni_Juli_August_September_Oktober_November_Dezember'.split(
42980            '_'
42981        ),
42982        monthsShort:
42983            'Jan._Feb._März_Apr._Mai_Juni_Juli_Aug._Sep._Okt._Nov._Dez.'.split('_'),
42984        monthsParseExact: true,
42985        weekdays:
42986            'Sonntag_Montag_Dienstag_Mittwoch_Donnerstag_Freitag_Samstag'.split(
42987                '_'
42988            ),
42989        weekdaysShort: 'So_Mo_Di_Mi_Do_Fr_Sa'.split('_'),
42990        weekdaysMin: 'So_Mo_Di_Mi_Do_Fr_Sa'.split('_'),
42991        weekdaysParseExact: true,
42992        longDateFormat: {
42993            LT: 'HH:mm',
42994            LTS: 'HH:mm:ss',
42995            L: 'DD.MM.YYYY',
42996            LL: 'D. MMMM YYYY',
42997            LLL: 'D. MMMM YYYY HH:mm',
42998            LLLL: 'dddd, D. MMMM YYYY HH:mm',
42999        },
43000        calendar: {
43001            sameDay: '[heute um] LT [Uhr]',
43002            sameElse: 'L',
43003            nextDay: '[morgen um] LT [Uhr]',
43004            nextWeek: 'dddd [um] LT [Uhr]',
43005            lastDay: '[gestern um] LT [Uhr]',
43006            lastWeek: '[letzten] dddd [um] LT [Uhr]',
43007        },
43008        relativeTime: {
43009            future: 'in %s',
43010            past: 'vor %s',
43011            s: 'ein paar Sekunden',
43012            ss: '%d Sekunden',
43013            m: processRelativeTime,
43014            mm: '%d Minuten',
43015            h: processRelativeTime,
43016            hh: '%d Stunden',
43017            d: processRelativeTime,
43018            dd: processRelativeTime,
43019            w: processRelativeTime,
43020            ww: '%d Wochen',
43021            M: processRelativeTime,
43022            MM: processRelativeTime,
43023            y: processRelativeTime,
43024            yy: processRelativeTime,
43025        },
43026        dayOfMonthOrdinalParse: /\d{1,2}\./,
43027        ordinal: '%d.',
43028        week: {
43029            dow: 1, // Monday is the first day of the week.
43030            doy: 4, // The week that contains Jan 4th is the first week of the year.
43031        },
43032    });
43033
43034    return deCh;
43035
43036})));
43037
43038
43039/***/ }),
43040
vendor: 3,332 bytes, lines 43041-43138
43041/***/ "./node_modules/moment/locale/de.js":
43042/*!******************************************!*\
43043  !*** ./node_modules/moment/locale/de.js ***!
43044  \******************************************/
43045/*! no static exports found */
43046/***/ (function(module, exports, __webpack_require__) {
43047
43048//! moment.js locale configuration
43049//! locale : German [de]
43050//! author : lluchs : https://github.com/lluchs
43051//! author: Menelion Elensúle: https://github.com/Oire
43052//! author : Mikolaj Dadela : https://github.com/mik01aj
43053
43054;(function (global, factory) {
43055    true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/moment/moment.js")) :
43056   undefined
43057}(this, (function (moment) { 'use strict';
43058
43059    //! moment.js locale configuration
43060
43061    function processRelativeTime(number, withoutSuffix, key, isFuture) {
43062        var format = {
43063            m: ['eine Minute', 'einer Minute'],
43064            h: ['eine Stunde', 'einer Stunde'],
43065            d: ['ein Tag', 'einem Tag'],
43066            dd: [number + ' Tage', number + ' Tagen'],
43067            w: ['eine Woche', 'einer Woche'],
43068            M: ['ein Monat', 'einem Monat'],
43069            MM: [number + ' Monate', number + ' Monaten'],
43070            y: ['ein Jahr', 'einem Jahr'],
43071            yy: [number + ' Jahre', number + ' Jahren'],
43072        };
43073        return withoutSuffix ? format[key][0] : format[key][1];
43074    }
43075
43076    var de = moment.defineLocale('de', {
43077        months: 'Januar_Februar_März_April_Mai_Juni_Juli_August_September_Oktober_November_Dezember'.split(
43078            '_'
43079        ),
43080        monthsShort:
43081            'Jan._Feb._März_Apr._Mai_Juni_Juli_Aug._Sep._Okt._Nov._Dez.'.split('_'),
43082        monthsParseExact: true,
43083        weekdays:
43084            'Sonntag_Montag_Dienstag_Mittwoch_Donnerstag_Freitag_Samstag'.split(
43085                '_'
43086            ),
43087        weekdaysShort: 'So._Mo._Di._Mi._Do._Fr._Sa.'.split('_'),
43088        weekdaysMin: 'So_Mo_Di_Mi_Do_Fr_Sa'.split('_'),
43089        weekdaysParseExact: true,
43090        longDateFormat: {
43091            LT: 'HH:mm',
43092            LTS: 'HH:mm:ss',
43093            L: 'DD.MM.YYYY',
43094            LL: 'D. MMMM YYYY',
43095            LLL: 'D. MMMM YYYY HH:mm',
43096            LLLL: 'dddd, D. MMMM YYYY HH:mm',
43097        },
43098        calendar: {
43099            sameDay: '[heute um] LT [Uhr]',
43100            sameElse: 'L',
43101            nextDay: '[morgen um] LT [Uhr]',
43102            nextWeek: 'dddd [um] LT [Uhr]',
43103            lastDay: '[gestern um] LT [Uhr]',
43104            lastWeek: '[letzten] dddd [um] LT [Uhr]',
43105        },
43106        relativeTime: {
43107            future: 'in %s',
43108            past: 'vor %s',
43109            s: 'ein paar Sekunden',
43110            ss: '%d Sekunden',
43111            m: processRelativeTime,
43112            mm: '%d Minuten',
43113            h: processRelativeTime,
43114            hh: '%d Stunden',
43115            d: processRelativeTime,
43116            dd: processRelativeTime,
43117            w: processRelativeTime,
43118            ww: '%d Wochen',
43119            M: processRelativeTime,
43120            MM: processRelativeTime,
43121            y: processRelativeTime,
43122            yy: processRelativeTime,
43123        },
43124        dayOfMonthOrdinalParse: /\d{1,2}\./,
43125        ordinal: '%d.',
43126        week: {
43127            dow: 1, // Monday is the first day of the week.
43128            doy: 4, // The week that contains Jan 4th is the first week of the year.
43129        },
43130    });
43131
43132    return de;
43133
43134})));
43135
43136
43137/***/ }),
43138
vendor: 3,290 bytes, lines 43139-43248
43139/***/ "./node_modules/moment/locale/dv.js":
43140/*!******************************************!*\
43141  !*** ./node_modules/moment/locale/dv.js ***!
43142  \******************************************/
43143/*! no static exports found */
43144/***/ (function(module, exports, __webpack_require__) {
43145
43146//! moment.js locale configuration
43147//! locale : Maldivian [dv]
43148//! author : Jawish Hameed : https://github.com/jawish
43149
43150;(function (global, factory) {
43151    true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/moment/moment.js")) :
43152   undefined
43153}(this, (function (moment) { 'use strict';
43154
43155    //! moment.js locale configuration
43156
43157    var months = [
43158            'ޖެނުއަރީ',
43159            'ފެބްރުއަރީ',
43160            'މާރިޗު',
43161            'އޭޕްރީލު',
43162            'މޭ',
43163            'ޖޫން',
43164            'ޖުލައި',
43165            'އޯގަސްޓު',
43166            'ސެޕްޓެމްބަރު',
43167            'އޮކްޓޯބަރު',
43168            'ނޮވެމްބަރު',
43169            'ޑިސެމްބަރު',
43170        ],
43171        weekdays = [
43172            'އާދިއްތަ',
43173            'ހޯމަ',
43174            'އަންގާރަ',
43175            'ބުދަ',
43176            'ބުރާސްފަތި',
43177            'ހުކުރު',
43178            'ހޮނިހިރު',
43179        ];
43180
43181    var dv = moment.defineLocale('dv', {
43182        months: months,
43183        monthsShort: months,
43184        weekdays: weekdays,
43185        weekdaysShort: weekdays,
43186        weekdaysMin: 'އާދި_ހޯމަ_އަން_ބުދަ_ބުރާ_ހުކު_ހޮނި'.split('_'),
43187        longDateFormat: {
43188            LT: 'HH:mm',
43189            LTS: 'HH:mm:ss',
43190            L: 'D/M/YYYY',
43191            LL: 'D MMMM YYYY',
43192            LLL: 'D MMMM YYYY HH:mm',
43193            LLLL: 'dddd D MMMM YYYY HH:mm',
43194        },
43195        meridiemParse: /މކ|މފ/,
43196        isPM: function (input) {
43197            return 'މފ' === input;
43198        },
43199        meridiem: function (hour, minute, isLower) {
43200            if (hour < 12) {
43201                return 'މކ';
43202            } else {
43203                return 'މފ';
43204            }
43205        },
43206        calendar: {
43207            sameDay: '[މިއަދު] LT',
43208            nextDay: '[މާދަމާ] LT',
43209            nextWeek: 'dddd LT',
43210            lastDay: '[އިއްޔެ] LT',
43211            lastWeek: '[ފާއިތުވި] dddd LT',
43212            sameElse: 'L',
43213        },
43214        relativeTime: {
43215            future: 'ތެރޭގައި %s',
43216            past: 'ކުރިން %s',
43217            s: 'ސިކުންތުކޮޅެއް',
43218            ss: 'd% ސިކުންތު',
43219            m: 'މިނިޓެއް',
43220            mm: 'މިނިޓު %d',
43221            h: 'ގަޑިއިރެއް',
43222            hh: 'ގަޑިއިރު %d',
43223            d: 'ދުވަހެއް',
43224            dd: 'ދުވަސް %d',
43225            M: 'މަހެއް',
43226            MM: 'މަސް %d',
43227            y: 'އަހަރެއް',
43228            yy: 'އަހަރު %d',
43229        },
43230        preparse: function (string) {
43231            return string.replace(/،/g, ',');
43232        },
43233        postformat: function (string) {
43234            return string.replace(/,/g, '،');
43235        },
43236        week: {
43237            dow: 7, // Sunday is the first day of the week.
43238            doy: 12, // The week that contains Jan 12th is the first week of the year.
43239        },
43240    });
43241
43242    return dv;
43243
43244})));
43245
43246
43247/***/ }),
43248
vendor: 4,767 bytes, lines 43249-43374
43249/***/ "./node_modules/moment/locale/el.js":
43250/*!******************************************!*\
43251  !*** ./node_modules/moment/locale/el.js ***!
43252  \******************************************/
43253/*! no static exports found */
43254/***/ (function(module, exports, __webpack_require__) {
43255
43256//! moment.js locale configuration
43257//! locale : Greek [el]
43258//! author : Aggelos Karalias : https://github.com/mehiel
43259
43260;(function (global, factory) {
43261    true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/moment/moment.js")) :
43262   undefined
43263}(this, (function (moment) { 'use strict';
43264
43265    //! moment.js locale configuration
43266
43267    function isFunction(input) {
43268        return (
43269            (typeof Function !== 'undefined' && input instanceof Function) ||
43270            Object.prototype.toString.call(input) === '[object Function]'
43271        );
43272    }
43273
43274    var el = moment.defineLocale('el', {
43275        monthsNominativeEl:
43276            'Ιανουάριος_Φεβρουάριος_Μάρτιος_Απρίλιος_Μάιος_Ιούνιος_Ιούλιος_Αύγουστος_Σεπτέμβριος_Οκτώβριος_Νοέμβριος_Δεκέμβριος'.split(
43277                '_'
43278            ),
43279        monthsGenitiveEl:
43280            'Ιανουαρίου_Φεβρουαρίου_Μαρτίου_Απριλίου_Μαΐου_Ιουνίου_Ιουλίου_Αυγούστου_Σεπτεμβρίου_Οκτωβρίου_Νοεμβρίου_Δεκεμβρίου'.split(
43281                '_'
43282            ),
43283        months: function (momentToFormat, format) {
43284            if (!momentToFormat) {
43285                return this._monthsNominativeEl;
43286            } else if (
43287                typeof format === 'string' &&
43288                /D/.test(format.substring(0, format.indexOf('MMMM')))
43289            ) {
43290                // if there is a day number before 'MMMM'
43291                return this._monthsGenitiveEl[momentToFormat.month()];
43292            } else {
43293                return this._monthsNominativeEl[momentToFormat.month()];
43294            }
43295        },
43296        monthsShort: 'Ιαν_Φεβ_Μαρ_Απρ_Μαϊ_Ιουν_Ιουλ_Αυγ_Σεπ_Οκτ_Νοε_Δεκ'.split('_'),
43297        weekdays: 'Κυριακή_Δευτέρα_Τρίτη_Τετάρτη_Πέμπτη_Παρασκευή_Σάββατο'.split(
43298            '_'
43299        ),
43300        weekdaysShort: 'Κυρ_Δευ_Τρι_Τετ_Πεμ_Παρ_Σαβ'.split('_'),
43301        weekdaysMin: 'Κυ_Δε_Τρ_Τε_Πε_Πα_Σα'.split('_'),
43302        meridiem: function (hours, minutes, isLower) {
43303            if (hours > 11) {
43304                return isLower ? 'μμ' : 'ΜΜ';
43305            } else {
43306                return isLower ? 'πμ' : 'ΠΜ';
43307            }
43308        },
43309        isPM: function (input) {
43310            return (input + '').toLowerCase()[0] === 'μ';
43311        },
43312        meridiemParse: /[ΠΜ]\.?Μ?\.?/i,
43313        longDateFormat: {
43314            LT: 'h:mm A',
43315            LTS: 'h:mm:ss A',
43316            L: 'DD/MM/YYYY',
43317            LL: 'D MMMM YYYY',
43318            LLL: 'D MMMM YYYY h:mm A',
43319            LLLL: 'dddd, D MMMM YYYY h:mm A',
43320        },
43321        calendarEl: {
43322            sameDay: '[Σήμερα {}] LT',
43323            nextDay: '[Αύριο {}] LT',
43324            nextWeek: 'dddd [{}] LT',
43325            lastDay: '[Χθες {}] LT',
43326            lastWeek: function () {
43327                switch (this.day()) {
43328                    case 6:
43329                        return '[το προηγούμενο] dddd [{}] LT';
43330                    default:
43331                        return '[την προηγούμενη] dddd [{}] LT';
43332                }
43333            },
43334            sameElse: 'L',
43335        },
43336        calendar: function (key, mom) {
43337            var output = this._calendarEl[key],
43338                hours = mom && mom.hours();
43339            if (isFunction(output)) {
43340                output = output.apply(mom);
43341            }
43342            return output.replace('{}', hours % 12 === 1 ? 'στη' : 'στις');
43343        },
43344        relativeTime: {
43345            future: 'σε %s',
43346            past: '%s πριν',
43347            s: 'λίγα δευτερόλεπτα',
43348            ss: '%d δευτερόλεπτα',
43349            m: 'ένα λεπτό',
43350            mm: '%d λεπτά',
43351            h: 'μία ώρα',
43352            hh: '%d ώρες',
43353            d: 'μία μέρα',
43354            dd: '%d μέρες',
43355            M: 'ένας μήνας',
43356            MM: '%d μήνες',
43357            y: 'ένας χρόνος',
43358            yy: '%d χρόνια',
43359        },
43360        dayOfMonthOrdinalParse: /\d{1,2}η/,
43361        ordinal: '%dη',
43362        week: {
43363            dow: 1, // Monday is the first day of the week.
43364            doy: 4, // The week that contains Jan 4st is the first week of the year.
43365        },
43366    });
43367
43368    return el;
43369
43370})));
43371
43372
43373/***/ }),
43374
vendor: 2,811 bytes, lines 43375-43462
43375/***/ "./node_modules/moment/locale/en-au.js":
43376/*!*********************************************!*\
43377  !*** ./node_modules/moment/locale/en-au.js ***!
43378  \*********************************************/
43379/*! no static exports found */
43380/***/ (function(module, exports, __webpack_require__) {
43381
43382//! moment.js locale configuration
43383//! locale : English (Australia) [en-au]
43384//! author : Jared Morse : https://github.com/jarcoal
43385
43386;(function (global, factory) {
43387    true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/moment/moment.js")) :
43388   undefined
43389}(this, (function (moment) { 'use strict';
43390
43391    //! moment.js locale configuration
43392
43393    var enAu = moment.defineLocale('en-au', {
43394        months: 'January_February_March_April_May_June_July_August_September_October_November_December'.split(
43395            '_'
43396        ),
43397        monthsShort: 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_'),
43398        weekdays: 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split(
43399            '_'
43400        ),
43401        weekdaysShort: 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'),
43402        weekdaysMin: 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_'),
43403        longDateFormat: {
43404            LT: 'h:mm A',
43405            LTS: 'h:mm:ss A',
43406            L: 'DD/MM/YYYY',
43407            LL: 'D MMMM YYYY',
43408            LLL: 'D MMMM YYYY h:mm A',
43409            LLLL: 'dddd, D MMMM YYYY h:mm A',
43410        },
43411        calendar: {
43412            sameDay: '[Today at] LT',
43413            nextDay: '[Tomorrow at] LT',
43414            nextWeek: 'dddd [at] LT',
43415            lastDay: '[Yesterday at] LT',
43416            lastWeek: '[Last] dddd [at] LT',
43417            sameElse: 'L',
43418        },
43419        relativeTime: {
43420            future: 'in %s',
43421            past: '%s ago',
43422            s: 'a few seconds',
43423            ss: '%d seconds',
43424            m: 'a minute',
43425            mm: '%d minutes',
43426            h: 'an hour',
43427            hh: '%d hours',
43428            d: 'a day',
43429            dd: '%d days',
43430            M: 'a month',
43431            MM: '%d months',
43432            y: 'a year',
43433            yy: '%d years',
43434        },
43435        dayOfMonthOrdinalParse: /\d{1,2}(st|nd|rd|th)/,
43436        ordinal: function (number) {
43437            var b = number % 10,
43438                output =
43439                    ~~((number % 100) / 10) === 1
43440                        ? 'th'
43441                        : b === 1
43442                          ? 'st'
43443                          : b === 2
43444                            ? 'nd'
43445                            : b === 3
43446                              ? 'rd'
43447                              : 'th';
43448            return number + output;
43449        },
43450        week: {
43451            dow: 0, // Sunday is the first day of the week.
43452            doy: 4, // The week that contains Jan 4th is the first week of the year.
43453        },
43454    });
43455
43456    return enAu;
43457
43458})));
43459
43460
43461/***/ }),
43462
vendor: 2,644 bytes, lines 43463-43546
43463/***/ "./node_modules/moment/locale/en-ca.js":
43464/*!*********************************************!*\
43465  !*** ./node_modules/moment/locale/en-ca.js ***!
43466  \*********************************************/
43467/*! no static exports found */
43468/***/ (function(module, exports, __webpack_require__) {
43469
43470//! moment.js locale configuration
43471//! locale : English (Canada) [en-ca]
43472//! author : Jonathan Abourbih : https://github.com/jonbca
43473
43474;(function (global, factory) {
43475    true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/moment/moment.js")) :
43476   undefined
43477}(this, (function (moment) { 'use strict';
43478
43479    //! moment.js locale configuration
43480
43481    var enCa = moment.defineLocale('en-ca', {
43482        months: 'January_February_March_April_May_June_July_August_September_October_November_December'.split(
43483            '_'
43484        ),
43485        monthsShort: 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_'),
43486        weekdays: 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split(
43487            '_'
43488        ),
43489        weekdaysShort: 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'),
43490        weekdaysMin: 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_'),
43491        longDateFormat: {
43492            LT: 'h:mm A',
43493            LTS: 'h:mm:ss A',
43494            L: 'YYYY-MM-DD',
43495            LL: 'MMMM D, YYYY',
43496            LLL: 'MMMM D, YYYY h:mm A',
43497            LLLL: 'dddd, MMMM D, YYYY h:mm A',
43498        },
43499        calendar: {
43500            sameDay: '[Today at] LT',
43501            nextDay: '[Tomorrow at] LT',
43502            nextWeek: 'dddd [at] LT',
43503            lastDay: '[Yesterday at] LT',
43504            lastWeek: '[Last] dddd [at] LT',
43505            sameElse: 'L',
43506        },
43507        relativeTime: {
43508            future: 'in %s',
43509            past: '%s ago',
43510            s: 'a few seconds',
43511            ss: '%d seconds',
43512            m: 'a minute',
43513            mm: '%d minutes',
43514            h: 'an hour',
43515            hh: '%d hours',
43516            d: 'a day',
43517            dd: '%d days',
43518            M: 'a month',
43519            MM: '%d months',
43520            y: 'a year',
43521            yy: '%d years',
43522        },
43523        dayOfMonthOrdinalParse: /\d{1,2}(st|nd|rd|th)/,
43524        ordinal: function (number) {
43525            var b = number % 10,
43526                output =
43527                    ~~((number % 100) / 10) === 1
43528                        ? 'th'
43529                        : b === 1
43530                          ? 'st'
43531                          : b === 2
43532                            ? 'nd'
43533                            : b === 3
43534                              ? 'rd'
43535                              : 'th';
43536            return number + output;
43537        },
43538    });
43539
43540    return enCa;
43541
43542})));
43543
43544
43545/***/ }),
43546
vendor: 2,817 bytes, lines 43547-43634
43547/***/ "./node_modules/moment/locale/en-gb.js":
43548/*!*********************************************!*\
43549  !*** ./node_modules/moment/locale/en-gb.js ***!
43550  \*********************************************/
43551/*! no static exports found */
43552/***/ (function(module, exports, __webpack_require__) {
43553
43554//! moment.js locale configuration
43555//! locale : English (United Kingdom) [en-gb]
43556//! author : Chris Gedrim : https://github.com/chrisgedrim
43557
43558;(function (global, factory) {
43559    true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/moment/moment.js")) :
43560   undefined
43561}(this, (function (moment) { 'use strict';
43562
43563    //! moment.js locale configuration
43564
43565    var enGb = moment.defineLocale('en-gb', {
43566        months: 'January_February_March_April_May_June_July_August_September_October_November_December'.split(
43567            '_'
43568        ),
43569        monthsShort: 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_'),
43570        weekdays: 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split(
43571            '_'
43572        ),
43573        weekdaysShort: 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'),
43574        weekdaysMin: 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_'),
43575        longDateFormat: {
43576            LT: 'HH:mm',
43577            LTS: 'HH:mm:ss',
43578            L: 'DD/MM/YYYY',
43579            LL: 'D MMMM YYYY',
43580            LLL: 'D MMMM YYYY HH:mm',
43581            LLLL: 'dddd, D MMMM YYYY HH:mm',
43582        },
43583        calendar: {
43584            sameDay: '[Today at] LT',
43585            nextDay: '[Tomorrow at] LT',
43586            nextWeek: 'dddd [at] LT',
43587            lastDay: '[Yesterday at] LT',
43588            lastWeek: '[Last] dddd [at] LT',
43589            sameElse: 'L',
43590        },
43591        relativeTime: {
43592            future: 'in %s',
43593            past: '%s ago',
43594            s: 'a few seconds',
43595            ss: '%d seconds',
43596            m: 'a minute',
43597            mm: '%d minutes',
43598            h: 'an hour',
43599            hh: '%d hours',
43600            d: 'a day',
43601            dd: '%d days',
43602            M: 'a month',
43603            MM: '%d months',
43604            y: 'a year',
43605            yy: '%d years',
43606        },
43607        dayOfMonthOrdinalParse: /\d{1,2}(st|nd|rd|th)/,
43608        ordinal: function (number) {
43609            var b = number % 10,
43610                output =
43611                    ~~((number % 100) / 10) === 1
43612                        ? 'th'
43613                        : b === 1
43614                          ? 'st'
43615                          : b === 2
43616                            ? 'nd'
43617                            : b === 3
43618                              ? 'rd'
43619                              : 'th';
43620            return number + output;
43621        },
43622        week: {
43623            dow: 1, // Monday is the first day of the week.
43624            doy: 4, // The week that contains Jan 4th is the first week of the year.
43625        },
43626    });
43627
43628    return enGb;
43629
43630})));
43631
43632
43633/***/ }),
43634
vendor: 2,815 bytes, lines 43635-43722
43635/***/ "./node_modules/moment/locale/en-ie.js":
43636/*!*********************************************!*\
43637  !*** ./node_modules/moment/locale/en-ie.js ***!
43638  \*********************************************/
43639/*! no static exports found */
43640/***/ (function(module, exports, __webpack_require__) {
43641
43642//! moment.js locale configuration
43643//! locale : English (Ireland) [en-ie]
43644//! author : Chris Cartlidge : https://github.com/chriscartlidge
43645
43646;(function (global, factory) {
43647    true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/moment/moment.js")) :
43648   undefined
43649}(this, (function (moment) { 'use strict';
43650
43651    //! moment.js locale configuration
43652
43653    var enIe = moment.defineLocale('en-ie', {
43654        months: 'January_February_March_April_May_June_July_August_September_October_November_December'.split(
43655            '_'
43656        ),
43657        monthsShort: 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_'),
43658        weekdays: 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split(
43659            '_'
43660        ),
43661        weekdaysShort: 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'),
43662        weekdaysMin: 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_'),
43663        longDateFormat: {
43664            LT: 'HH:mm',
43665            LTS: 'HH:mm:ss',
43666            L: 'DD/MM/YYYY',
43667            LL: 'D MMMM YYYY',
43668            LLL: 'D MMMM YYYY HH:mm',
43669            LLLL: 'dddd D MMMM YYYY HH:mm',
43670        },
43671        calendar: {
43672            sameDay: '[Today at] LT',
43673            nextDay: '[Tomorrow at] LT',
43674            nextWeek: 'dddd [at] LT',
43675            lastDay: '[Yesterday at] LT',
43676            lastWeek: '[Last] dddd [at] LT',
43677            sameElse: 'L',
43678        },
43679        relativeTime: {
43680            future: 'in %s',
43681            past: '%s ago',
43682            s: 'a few seconds',
43683            ss: '%d seconds',
43684            m: 'a minute',
43685            mm: '%d minutes',
43686            h: 'an hour',
43687            hh: '%d hours',
43688            d: 'a day',
43689            dd: '%d days',
43690            M: 'a month',
43691            MM: '%d months',
43692            y: 'a year',
43693            yy: '%d years',
43694        },
43695        dayOfMonthOrdinalParse: /\d{1,2}(st|nd|rd|th)/,
43696        ordinal: function (number) {
43697            var b = number % 10,
43698                output =
43699                    ~~((number % 100) / 10) === 1
43700                        ? 'th'
43701                        : b === 1
43702                          ? 'st'
43703                          : b === 2
43704                            ? 'nd'
43705                            : b === 3
43706                              ? 'rd'
43707                              : 'th';
43708            return number + output;
43709        },
43710        week: {
43711            dow: 1, // Monday is the first day of the week.
43712            doy: 4, // The week that contains Jan 4th is the first week of the year.
43713        },
43714    });
43715
43716    return enIe;
43717
43718})));
43719
43720
43721/***/ }),
43722
vendor: 2,637 bytes, lines 43723-43806
43723/***/ "./node_modules/moment/locale/en-il.js":
43724/*!*********************************************!*\
43725  !*** ./node_modules/moment/locale/en-il.js ***!
43726  \*********************************************/
43727/*! no static exports found */
43728/***/ (function(module, exports, __webpack_require__) {
43729
43730//! moment.js locale configuration
43731//! locale : English (Israel) [en-il]
43732//! author : Chris Gedrim : https://github.com/chrisgedrim
43733
43734;(function (global, factory) {
43735    true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/moment/moment.js")) :
43736   undefined
43737}(this, (function (moment) { 'use strict';
43738
43739    //! moment.js locale configuration
43740
43741    var enIl = moment.defineLocale('en-il', {
43742        months: 'January_February_March_April_May_June_July_August_September_October_November_December'.split(
43743            '_'
43744        ),
43745        monthsShort: 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_'),
43746        weekdays: 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split(
43747            '_'
43748        ),
43749        weekdaysShort: 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'),
43750        weekdaysMin: 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_'),
43751        longDateFormat: {
43752            LT: 'HH:mm',
43753            LTS: 'HH:mm:ss',
43754            L: 'DD/MM/YYYY',
43755            LL: 'D MMMM YYYY',
43756            LLL: 'D MMMM YYYY HH:mm',
43757            LLLL: 'dddd, D MMMM YYYY HH:mm',
43758        },
43759        calendar: {
43760            sameDay: '[Today at] LT',
43761            nextDay: '[Tomorrow at] LT',
43762            nextWeek: 'dddd [at] LT',
43763            lastDay: '[Yesterday at] LT',
43764            lastWeek: '[Last] dddd [at] LT',
43765            sameElse: 'L',
43766        },
43767        relativeTime: {
43768            future: 'in %s',
43769            past: '%s ago',
43770            s: 'a few seconds',
43771            ss: '%d seconds',
43772            m: 'a minute',
43773            mm: '%d minutes',
43774            h: 'an hour',
43775            hh: '%d hours',
43776            d: 'a day',
43777            dd: '%d days',
43778            M: 'a month',
43779            MM: '%d months',
43780            y: 'a year',
43781            yy: '%d years',
43782        },
43783        dayOfMonthOrdinalParse: /\d{1,2}(st|nd|rd|th)/,
43784        ordinal: function (number) {
43785            var b = number % 10,
43786                output =
43787                    ~~((number % 100) / 10) === 1
43788                        ? 'th'
43789                        : b === 1
43790                          ? 'st'
43791                          : b === 2
43792                            ? 'nd'
43793                            : b === 3
43794                              ? 'rd'
43795                              : 'th';
43796            return number + output;
43797        },
43798    });
43799
43800    return enIl;
43801
43802})));
43803
43804
43805/***/ }),
43806
vendor: 2,811 bytes, lines 43807-43894
43807/***/ "./node_modules/moment/locale/en-in.js":
43808/*!*********************************************!*\
43809  !*** ./node_modules/moment/locale/en-in.js ***!
43810  \*********************************************/
43811/*! no static exports found */
43812/***/ (function(module, exports, __webpack_require__) {
43813
43814//! moment.js locale configuration
43815//! locale : English (India) [en-in]
43816//! author : Jatin Agrawal : https://github.com/jatinag22
43817
43818;(function (global, factory) {
43819    true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/moment/moment.js")) :
43820   undefined
43821}(this, (function (moment) { 'use strict';
43822
43823    //! moment.js locale configuration
43824
43825    var enIn = moment.defineLocale('en-in', {
43826        months: 'January_February_March_April_May_June_July_August_September_October_November_December'.split(
43827            '_'
43828        ),
43829        monthsShort: 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_'),
43830        weekdays: 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split(
43831            '_'
43832        ),
43833        weekdaysShort: 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'),
43834        weekdaysMin: 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_'),
43835        longDateFormat: {
43836            LT: 'h:mm A',
43837            LTS: 'h:mm:ss A',
43838            L: 'DD/MM/YYYY',
43839            LL: 'D MMMM YYYY',
43840            LLL: 'D MMMM YYYY h:mm A',
43841            LLLL: 'dddd, D MMMM YYYY h:mm A',
43842        },
43843        calendar: {
43844            sameDay: '[Today at] LT',
43845            nextDay: '[Tomorrow at] LT',
43846            nextWeek: 'dddd [at] LT',
43847            lastDay: '[Yesterday at] LT',
43848            lastWeek: '[Last] dddd [at] LT',
43849            sameElse: 'L',
43850        },
43851        relativeTime: {
43852            future: 'in %s',
43853            past: '%s ago',
43854            s: 'a few seconds',
43855            ss: '%d seconds',
43856            m: 'a minute',
43857            mm: '%d minutes',
43858            h: 'an hour',
43859            hh: '%d hours',
43860            d: 'a day',
43861            dd: '%d days',
43862            M: 'a month',
43863            MM: '%d months',
43864            y: 'a year',
43865            yy: '%d years',
43866        },
43867        dayOfMonthOrdinalParse: /\d{1,2}(st|nd|rd|th)/,
43868        ordinal: function (number) {
43869            var b = number % 10,
43870                output =
43871                    ~~((number % 100) / 10) === 1
43872                        ? 'th'
43873                        : b === 1
43874                          ? 'st'
43875                          : b === 2
43876                            ? 'nd'
43877                            : b === 3
43878                              ? 'rd'
43879                              : 'th';
43880            return number + output;
43881        },
43882        week: {
43883            dow: 0, // Sunday is the first day of the week.
43884            doy: 6, // The week that contains Jan 1st is the first week of the year.
43885        },
43886    });
43887
43888    return enIn;
43889
43890})));
43891
43892
43893/***/ }),
43894
vendor: 2,820 bytes, lines 43895-43982
43895/***/ "./node_modules/moment/locale/en-nz.js":
43896/*!*********************************************!*\
43897  !*** ./node_modules/moment/locale/en-nz.js ***!
43898  \*********************************************/
43899/*! no static exports found */
43900/***/ (function(module, exports, __webpack_require__) {
43901
43902//! moment.js locale configuration
43903//! locale : English (New Zealand) [en-nz]
43904//! author : Luke McGregor : https://github.com/lukemcgregor
43905
43906;(function (global, factory) {
43907    true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/moment/moment.js")) :
43908   undefined
43909}(this, (function (moment) { 'use strict';
43910
43911    //! moment.js locale configuration
43912
43913    var enNz = moment.defineLocale('en-nz', {
43914        months: 'January_February_March_April_May_June_July_August_September_October_November_December'.split(
43915            '_'
43916        ),
43917        monthsShort: 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_'),
43918        weekdays: 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split(
43919            '_'
43920        ),
43921        weekdaysShort: 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'),
43922        weekdaysMin: 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_'),
43923        longDateFormat: {
43924            LT: 'h:mm A',
43925            LTS: 'h:mm:ss A',
43926            L: 'DD/MM/YYYY',
43927            LL: 'D MMMM YYYY',
43928            LLL: 'D MMMM YYYY h:mm A',
43929            LLLL: 'dddd, D MMMM YYYY h:mm A',
43930        },
43931        calendar: {
43932            sameDay: '[Today at] LT',
43933            nextDay: '[Tomorrow at] LT',
43934            nextWeek: 'dddd [at] LT',
43935            lastDay: '[Yesterday at] LT',
43936            lastWeek: '[Last] dddd [at] LT',
43937            sameElse: 'L',
43938        },
43939        relativeTime: {
43940            future: 'in %s',
43941            past: '%s ago',
43942            s: 'a few seconds',
43943            ss: '%d seconds',
43944            m: 'a minute',
43945            mm: '%d minutes',
43946            h: 'an hour',
43947            hh: '%d hours',
43948            d: 'a day',
43949            dd: '%d days',
43950            M: 'a month',
43951            MM: '%d months',
43952            y: 'a year',
43953            yy: '%d years',
43954        },
43955        dayOfMonthOrdinalParse: /\d{1,2}(st|nd|rd|th)/,
43956        ordinal: function (number) {
43957            var b = number % 10,
43958                output =
43959                    ~~((number % 100) / 10) === 1
43960                        ? 'th'
43961                        : b === 1
43962                          ? 'st'
43963                          : b === 2
43964                            ? 'nd'
43965                            : b === 3
43966                              ? 'rd'
43967                              : 'th';
43968            return number + output;
43969        },
43970        week: {
43971            dow: 1, // Monday is the first day of the week.
43972            doy: 4, // The week that contains Jan 4th is the first week of the year.
43973        },
43974    });
43975
43976    return enNz;
43977
43978})));
43979
43980
43981/***/ }),
43982
vendor: 2,829 bytes, lines 43983-44070
43983/***/ "./node_modules/moment/locale/en-sg.js":
43984/*!*********************************************!*\
43985  !*** ./node_modules/moment/locale/en-sg.js ***!
43986  \*********************************************/
43987/*! no static exports found */
43988/***/ (function(module, exports, __webpack_require__) {
43989
43990//! moment.js locale configuration
43991//! locale : English (Singapore) [en-sg]
43992//! author : Matthew Castrillon-Madrigal : https://github.com/techdimension
43993
43994;(function (global, factory) {
43995    true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/moment/moment.js")) :
43996   undefined
43997}(this, (function (moment) { 'use strict';
43998
43999    //! moment.js locale configuration
44000
44001    var enSg = moment.defineLocale('en-sg', {
44002        months: 'January_February_March_April_May_June_July_August_September_October_November_December'.split(
44003            '_'
44004        ),
44005        monthsShort: 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_'),
44006        weekdays: 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split(
44007            '_'
44008        ),
44009        weekdaysShort: 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'),
44010        weekdaysMin: 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_'),
44011        longDateFormat: {
44012            LT: 'HH:mm',
44013            LTS: 'HH:mm:ss',
44014            L: 'DD/MM/YYYY',
44015            LL: 'D MMMM YYYY',
44016            LLL: 'D MMMM YYYY HH:mm',
44017            LLLL: 'dddd, D MMMM YYYY HH:mm',
44018        },
44019        calendar: {
44020            sameDay: '[Today at] LT',
44021            nextDay: '[Tomorrow at] LT',
44022            nextWeek: 'dddd [at] LT',
44023            lastDay: '[Yesterday at] LT',
44024            lastWeek: '[Last] dddd [at] LT',
44025            sameElse: 'L',
44026        },
44027        relativeTime: {
44028            future: 'in %s',
44029            past: '%s ago',
44030            s: 'a few seconds',
44031            ss: '%d seconds',
44032            m: 'a minute',
44033            mm: '%d minutes',
44034            h: 'an hour',
44035            hh: '%d hours',
44036            d: 'a day',
44037            dd: '%d days',
44038            M: 'a month',
44039            MM: '%d months',
44040            y: 'a year',
44041            yy: '%d years',
44042        },
44043        dayOfMonthOrdinalParse: /\d{1,2}(st|nd|rd|th)/,
44044        ordinal: function (number) {
44045            var b = number % 10,
44046                output =
44047                    ~~((number % 100) / 10) === 1
44048                        ? 'th'
44049                        : b === 1
44050                          ? 'st'
44051                          : b === 2
44052                            ? 'nd'
44053                            : b === 3
44054                              ? 'rd'
44055                              : 'th';
44056            return number + output;
44057        },
44058        week: {
44059            dow: 1, // Monday is the first day of the week.
44060            doy: 4, // The week that contains Jan 4th is the first week of the year.
44061        },
44062    });
44063
44064    return enSg;
44065
44066})));
44067
44068
44069/***/ }),
44070
vendor: 3,068 bytes, lines 44071-44158
44071/***/ "./node_modules/moment/locale/eo.js":
44072/*!******************************************!*\
44073  !*** ./node_modules/moment/locale/eo.js ***!
44074  \******************************************/
44075/*! no static exports found */
44076/***/ (function(module, exports, __webpack_require__) {
44077
44078//! moment.js locale configuration
44079//! locale : Esperanto [eo]
44080//! author : Colin Dean : https://github.com/colindean
44081//! author : Mia Nordentoft Imperatori : https://github.com/miestasmia
44082//! comment : miestasmia corrected the translation by colindean
44083//! comment : Vivakvo corrected the translation by colindean and miestasmia
44084
44085;(function (global, factory) {
44086    true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/moment/moment.js")) :
44087   undefined
44088}(this, (function (moment) { 'use strict';
44089
44090    //! moment.js locale configuration
44091
44092    var eo = moment.defineLocale('eo', {
44093        months: 'januaro_februaro_marto_aprilo_majo_junio_julio_aÅ­gusto_septembro_oktobro_novembro_decembro'.split(
44094            '_'
44095        ),
44096        monthsShort: 'jan_feb_mart_apr_maj_jun_jul_aÅ­g_sept_okt_nov_dec'.split('_'),
44097        weekdays: 'dimanĉo_lundo_mardo_merkredo_ĵaŭdo_vendredo_sabato'.split('_'),
44098        weekdaysShort: 'dim_lun_mard_merk_ĵaŭ_ven_sab'.split('_'),
44099        weekdaysMin: 'di_lu_ma_me_ĵa_ve_sa'.split('_'),
44100        longDateFormat: {
44101            LT: 'HH:mm',
44102            LTS: 'HH:mm:ss',
44103            L: 'YYYY-MM-DD',
44104            LL: '[la] D[-an de] MMMM, YYYY',
44105            LLL: '[la] D[-an de] MMMM, YYYY HH:mm',
44106            LLLL: 'dddd[n], [la] D[-an de] MMMM, YYYY HH:mm',
44107            llll: 'ddd, [la] D[-an de] MMM, YYYY HH:mm',
44108        },
44109        meridiemParse: /[ap]\.t\.m/i,
44110        isPM: function (input) {
44111            return input.charAt(0).toLowerCase() === 'p';
44112        },
44113        meridiem: function (hours, minutes, isLower) {
44114            if (hours > 11) {
44115                return isLower ? 'p.t.m.' : 'P.T.M.';
44116            } else {
44117                return isLower ? 'a.t.m.' : 'A.T.M.';
44118            }
44119        },
44120        calendar: {
44121            sameDay: '[HodiaÅ­ je] LT',
44122            nextDay: '[MorgaÅ­ je] LT',
44123            nextWeek: 'dddd[n je] LT',
44124            lastDay: '[HieraÅ­ je] LT',
44125            lastWeek: '[pasintan] dddd[n je] LT',
44126            sameElse: 'L',
44127        },
44128        relativeTime: {
44129            future: 'post %s',
44130            past: 'antaÅ­ %s',
44131            s: 'kelkaj sekundoj',
44132            ss: '%d sekundoj',
44133            m: 'unu minuto',
44134            mm: '%d minutoj',
44135            h: 'unu horo',
44136            hh: '%d horoj',
44137            d: 'unu tago', //ne 'diurno', ĉar estas uzita por proksimumo
44138            dd: '%d tagoj',
44139            M: 'unu monato',
44140            MM: '%d monatoj',
44141            y: 'unu jaro',
44142            yy: '%d jaroj',
44143        },
44144        dayOfMonthOrdinalParse: /\d{1,2}a/,
44145        ordinal: '%da',
44146        week: {
44147            dow: 1, // Monday is the first day of the week.
44148            doy: 7, // The week that contains Jan 7th is the first week of the year.
44149        },
44150    });
44151
44152    return eo;
44153
44154})));
44155
44156
44157/***/ }),
44158
vendor: 4,359 bytes, lines 44159-44286
44159/***/ "./node_modules/moment/locale/es-do.js":
44160/*!*********************************************!*\
44161  !*** ./node_modules/moment/locale/es-do.js ***!
44162  \*********************************************/
44163/*! no static exports found */
44164/***/ (function(module, exports, __webpack_require__) {
44165
44166//! moment.js locale configuration
44167//! locale : Spanish (Dominican Republic) [es-do]
44168
44169;(function (global, factory) {
44170    true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/moment/moment.js")) :
44171   undefined
44172}(this, (function (moment) { 'use strict';
44173
44174    //! moment.js locale configuration
44175
44176    var monthsShortDot =
44177            'ene._feb._mar._abr._may._jun._jul._ago._sep._oct._nov._dic.'.split(
44178                '_'
44179            ),
44180        monthsShort = 'ene_feb_mar_abr_may_jun_jul_ago_sep_oct_nov_dic'.split('_'),
44181        monthsParse = [
44182            /^ene/i,
44183            /^feb/i,
44184            /^mar/i,
44185            /^abr/i,
44186            /^may/i,
44187            /^jun/i,
44188            /^jul/i,
44189            /^ago/i,
44190            /^sep/i,
44191            /^oct/i,
44192            /^nov/i,
44193            /^dic/i,
44194        ],
44195        monthsRegex =
44196            /^(enero|febrero|marzo|abril|mayo|junio|julio|agosto|septiembre|octubre|noviembre|diciembre|ene\.?|feb\.?|mar\.?|abr\.?|may\.?|jun\.?|jul\.?|ago\.?|sep\.?|oct\.?|nov\.?|dic\.?)/i;
44197
44198    var esDo = moment.defineLocale('es-do', {
44199        months: 'enero_febrero_marzo_abril_mayo_junio_julio_agosto_septiembre_octubre_noviembre_diciembre'.split(
44200            '_'
44201        ),
44202        monthsShort: function (m, format) {
44203            if (!m) {
44204                return monthsShortDot;
44205            } else if (/-MMM-/.test(format)) {
44206                return monthsShort[m.month()];
44207            } else {
44208                return monthsShortDot[m.month()];
44209            }
44210        },
44211        monthsRegex: monthsRegex,
44212        monthsShortRegex: monthsRegex,
44213        monthsStrictRegex:
44214            /^(enero|febrero|marzo|abril|mayo|junio|julio|agosto|septiembre|octubre|noviembre|diciembre)/i,
44215        monthsShortStrictRegex:
44216            /^(ene\.?|feb\.?|mar\.?|abr\.?|may\.?|jun\.?|jul\.?|ago\.?|sep\.?|oct\.?|nov\.?|dic\.?)/i,
44217        monthsParse: monthsParse,
44218        longMonthsParse: monthsParse,
44219        shortMonthsParse: monthsParse,
44220        weekdays: 'domingo_lunes_martes_miércoles_jueves_viernes_sábado'.split('_'),
44221        weekdaysShort: 'dom._lun._mar._mié._jue._vie._sáb.'.split('_'),
44222        weekdaysMin: 'do_lu_ma_mi_ju_vi_sá'.split('_'),
44223        weekdaysParseExact: true,
44224        longDateFormat: {
44225            LT: 'h:mm A',
44226            LTS: 'h:mm:ss A',
44227            L: 'DD/MM/YYYY',
44228            LL: 'D [de] MMMM [de] YYYY',
44229            LLL: 'D [de] MMMM [de] YYYY h:mm A',
44230            LLLL: 'dddd, D [de] MMMM [de] YYYY h:mm A',
44231        },
44232        calendar: {
44233            sameDay: function () {
44234                return '[hoy a la' + (this.hours() !== 1 ? 's' : '') + '] LT';
44235            },
44236            nextDay: function () {
44237                return '[mañana a la' + (this.hours() !== 1 ? 's' : '') + '] LT';
44238            },
44239            nextWeek: function () {
44240                return 'dddd [a la' + (this.hours() !== 1 ? 's' : '') + '] LT';
44241            },
44242            lastDay: function () {
44243                return '[ayer a la' + (this.hours() !== 1 ? 's' : '') + '] LT';
44244            },
44245            lastWeek: function () {
44246                return (
44247                    '[el] dddd [pasado a la' +
44248                    (this.hours() !== 1 ? 's' : '') +
44249                    '] LT'
44250                );
44251            },
44252            sameElse: 'L',
44253        },
44254        relativeTime: {
44255            future: 'en %s',
44256            past: 'hace %s',
44257            s: 'unos segundos',
44258            ss: '%d segundos',
44259            m: 'un minuto',
44260            mm: '%d minutos',
44261            h: 'una hora',
44262            hh: '%d horas',
44263            d: 'un día',
44264            dd: '%d días',
44265            w: 'una semana',
44266            ww: '%d semanas',
44267            M: 'un mes',
44268            MM: '%d meses',
44269            y: 'un año',
44270            yy: '%d años',
44271        },
44272        dayOfMonthOrdinalParse: /\d{1,2}º/,
44273        ordinal: '%dº',
44274        week: {
44275            dow: 1, // Monday is the first day of the week.
44276            doy: 4, // The week that contains Jan 4th is the first week of the year.
44277        },
44278    });
44279
44280    return esDo;
44281
44282})));
44283
44284
44285/***/ }),
44286
vendor: 4,432 bytes, lines 44287-44416
44287/***/ "./node_modules/moment/locale/es-mx.js":
44288/*!*********************************************!*\
44289  !*** ./node_modules/moment/locale/es-mx.js ***!
44290  \*********************************************/
44291/*! no static exports found */
44292/***/ (function(module, exports, __webpack_require__) {
44293
44294//! moment.js locale configuration
44295//! locale : Spanish (Mexico) [es-mx]
44296//! author : JC Franco : https://github.com/jcfranco
44297
44298;(function (global, factory) {
44299    true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/moment/moment.js")) :
44300   undefined
44301}(this, (function (moment) { 'use strict';
44302
44303    //! moment.js locale configuration
44304
44305    var monthsShortDot =
44306            'ene._feb._mar._abr._may._jun._jul._ago._sep._oct._nov._dic.'.split(
44307                '_'
44308            ),
44309        monthsShort = 'ene_feb_mar_abr_may_jun_jul_ago_sep_oct_nov_dic'.split('_'),
44310        monthsParse = [
44311            /^ene/i,
44312            /^feb/i,
44313            /^mar/i,
44314            /^abr/i,
44315            /^may/i,
44316            /^jun/i,
44317            /^jul/i,
44318            /^ago/i,
44319            /^sep/i,
44320            /^oct/i,
44321            /^nov/i,
44322            /^dic/i,
44323        ],
44324        monthsRegex =
44325            /^(enero|febrero|marzo|abril|mayo|junio|julio|agosto|septiembre|octubre|noviembre|diciembre|ene\.?|feb\.?|mar\.?|abr\.?|may\.?|jun\.?|jul\.?|ago\.?|sep\.?|oct\.?|nov\.?|dic\.?)/i;
44326
44327    var esMx = moment.defineLocale('es-mx', {
44328        months: 'enero_febrero_marzo_abril_mayo_junio_julio_agosto_septiembre_octubre_noviembre_diciembre'.split(
44329            '_'
44330        ),
44331        monthsShort: function (m, format) {
44332            if (!m) {
44333                return monthsShortDot;
44334            } else if (/-MMM-/.test(format)) {
44335                return monthsShort[m.month()];
44336            } else {
44337                return monthsShortDot[m.month()];
44338            }
44339        },
44340        monthsRegex: monthsRegex,
44341        monthsShortRegex: monthsRegex,
44342        monthsStrictRegex:
44343            /^(enero|febrero|marzo|abril|mayo|junio|julio|agosto|septiembre|octubre|noviembre|diciembre)/i,
44344        monthsShortStrictRegex:
44345            /^(ene\.?|feb\.?|mar\.?|abr\.?|may\.?|jun\.?|jul\.?|ago\.?|sep\.?|oct\.?|nov\.?|dic\.?)/i,
44346        monthsParse: monthsParse,
44347        longMonthsParse: monthsParse,
44348        shortMonthsParse: monthsParse,
44349        weekdays: 'domingo_lunes_martes_miércoles_jueves_viernes_sábado'.split('_'),
44350        weekdaysShort: 'dom._lun._mar._mié._jue._vie._sáb.'.split('_'),
44351        weekdaysMin: 'do_lu_ma_mi_ju_vi_sá'.split('_'),
44352        weekdaysParseExact: true,
44353        longDateFormat: {
44354            LT: 'H:mm',
44355            LTS: 'H:mm:ss',
44356            L: 'DD/MM/YYYY',
44357            LL: 'D [de] MMMM [de] YYYY',
44358            LLL: 'D [de] MMMM [de] YYYY H:mm',
44359            LLLL: 'dddd, D [de] MMMM [de] YYYY H:mm',
44360        },
44361        calendar: {
44362            sameDay: function () {
44363                return '[hoy a la' + (this.hours() !== 1 ? 's' : '') + '] LT';
44364            },
44365            nextDay: function () {
44366                return '[mañana a la' + (this.hours() !== 1 ? 's' : '') + '] LT';
44367            },
44368            nextWeek: function () {
44369                return 'dddd [a la' + (this.hours() !== 1 ? 's' : '') + '] LT';
44370            },
44371            lastDay: function () {
44372                return '[ayer a la' + (this.hours() !== 1 ? 's' : '') + '] LT';
44373            },
44374            lastWeek: function () {
44375                return (
44376                    '[el] dddd [pasado a la' +
44377                    (this.hours() !== 1 ? 's' : '') +
44378                    '] LT'
44379                );
44380            },
44381            sameElse: 'L',
44382        },
44383        relativeTime: {
44384            future: 'en %s',
44385            past: 'hace %s',
44386            s: 'unos segundos',
44387            ss: '%d segundos',
44388            m: 'un minuto',
44389            mm: '%d minutos',
44390            h: 'una hora',
44391            hh: '%d horas',
44392            d: 'un día',
44393            dd: '%d días',
44394            w: 'una semana',
44395            ww: '%d semanas',
44396            M: 'un mes',
44397            MM: '%d meses',
44398            y: 'un año',
44399            yy: '%d años',
44400        },
44401        dayOfMonthOrdinalParse: /\d{1,2}º/,
44402        ordinal: '%dº',
44403        week: {
44404            dow: 0, // Sunday is the first day of the week.
44405            doy: 4, // The week that contains Jan 4th is the first week of the year.
44406        },
44407        invalidDate: 'Fecha inválida',
44408    });
44409
44410    return esMx;
44411
44412})));
44413
44414
44415/***/ }),
44416
vendor: 4,456 bytes, lines 44417-44546
44417/***/ "./node_modules/moment/locale/es-us.js":
44418/*!*********************************************!*\
44419  !*** ./node_modules/moment/locale/es-us.js ***!
44420  \*********************************************/
44421/*! no static exports found */
44422/***/ (function(module, exports, __webpack_require__) {
44423
44424//! moment.js locale configuration
44425//! locale : Spanish (United States) [es-us]
44426//! author : bustta : https://github.com/bustta
44427//! author : chrisrodz : https://github.com/chrisrodz
44428
44429;(function (global, factory) {
44430    true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/moment/moment.js")) :
44431   undefined
44432}(this, (function (moment) { 'use strict';
44433
44434    //! moment.js locale configuration
44435
44436    var monthsShortDot =
44437            'ene._feb._mar._abr._may._jun._jul._ago._sep._oct._nov._dic.'.split(
44438                '_'
44439            ),
44440        monthsShort = 'ene_feb_mar_abr_may_jun_jul_ago_sep_oct_nov_dic'.split('_'),
44441        monthsParse = [
44442            /^ene/i,
44443            /^feb/i,
44444            /^mar/i,
44445            /^abr/i,
44446            /^may/i,
44447            /^jun/i,
44448            /^jul/i,
44449            /^ago/i,
44450            /^sep/i,
44451            /^oct/i,
44452            /^nov/i,
44453            /^dic/i,
44454        ],
44455        monthsRegex =
44456            /^(enero|febrero|marzo|abril|mayo|junio|julio|agosto|septiembre|octubre|noviembre|diciembre|ene\.?|feb\.?|mar\.?|abr\.?|may\.?|jun\.?|jul\.?|ago\.?|sep\.?|oct\.?|nov\.?|dic\.?)/i;
44457
44458    var esUs = moment.defineLocale('es-us', {
44459        months: 'enero_febrero_marzo_abril_mayo_junio_julio_agosto_septiembre_octubre_noviembre_diciembre'.split(
44460            '_'
44461        ),
44462        monthsShort: function (m, format) {
44463            if (!m) {
44464                return monthsShortDot;
44465            } else if (/-MMM-/.test(format)) {
44466                return monthsShort[m.month()];
44467            } else {
44468                return monthsShortDot[m.month()];
44469            }
44470        },
44471        monthsRegex: monthsRegex,
44472        monthsShortRegex: monthsRegex,
44473        monthsStrictRegex:
44474            /^(enero|febrero|marzo|abril|mayo|junio|julio|agosto|septiembre|octubre|noviembre|diciembre)/i,
44475        monthsShortStrictRegex:
44476            /^(ene\.?|feb\.?|mar\.?|abr\.?|may\.?|jun\.?|jul\.?|ago\.?|sep\.?|oct\.?|nov\.?|dic\.?)/i,
44477        monthsParse: monthsParse,
44478        longMonthsParse: monthsParse,
44479        shortMonthsParse: monthsParse,
44480        weekdays: 'domingo_lunes_martes_miércoles_jueves_viernes_sábado'.split('_'),
44481        weekdaysShort: 'dom._lun._mar._mié._jue._vie._sáb.'.split('_'),
44482        weekdaysMin: 'do_lu_ma_mi_ju_vi_sá'.split('_'),
44483        weekdaysParseExact: true,
44484        longDateFormat: {
44485            LT: 'h:mm A',
44486            LTS: 'h:mm:ss A',
44487            L: 'MM/DD/YYYY',
44488            LL: 'D [de] MMMM [de] YYYY',
44489            LLL: 'D [de] MMMM [de] YYYY h:mm A',
44490            LLLL: 'dddd, D [de] MMMM [de] YYYY h:mm A',
44491        },
44492        calendar: {
44493            sameDay: function () {
44494                return '[hoy a la' + (this.hours() !== 1 ? 's' : '') + '] LT';
44495            },
44496            nextDay: function () {
44497                return '[mañana a la' + (this.hours() !== 1 ? 's' : '') + '] LT';
44498            },
44499            nextWeek: function () {
44500                return 'dddd [a la' + (this.hours() !== 1 ? 's' : '') + '] LT';
44501            },
44502            lastDay: function () {
44503                return '[ayer a la' + (this.hours() !== 1 ? 's' : '') + '] LT';
44504            },
44505            lastWeek: function () {
44506                return (
44507                    '[el] dddd [pasado a la' +
44508                    (this.hours() !== 1 ? 's' : '') +
44509                    '] LT'
44510                );
44511            },
44512            sameElse: 'L',
44513        },
44514        relativeTime: {
44515            future: 'en %s',
44516            past: 'hace %s',
44517            s: 'unos segundos',
44518            ss: '%d segundos',
44519            m: 'un minuto',
44520            mm: '%d minutos',
44521            h: 'una hora',
44522            hh: '%d horas',
44523            d: 'un día',
44524            dd: '%d días',
44525            w: 'una semana',
44526            ww: '%d semanas',
44527            M: 'un mes',
44528            MM: '%d meses',
44529            y: 'un año',
44530            yy: '%d años',
44531        },
44532        dayOfMonthOrdinalParse: /\d{1,2}º/,
44533        ordinal: '%dº',
44534        week: {
44535            dow: 0, // Sunday is the first day of the week.
44536            doy: 6, // The week that contains Jan 6th is the first week of the year.
44537        },
44538    });
44539
44540    return esUs;
44541
44542})));
44543
44544
44545/***/ }),
44546
vendor: 4,404 bytes, lines 44547-44676
44547/***/ "./node_modules/moment/locale/es.js":
44548/*!******************************************!*\
44549  !*** ./node_modules/moment/locale/es.js ***!
44550  \******************************************/
44551/*! no static exports found */
44552/***/ (function(module, exports, __webpack_require__) {
44553
44554//! moment.js locale configuration
44555//! locale : Spanish [es]
44556//! author : Julio Napurí : https://github.com/julionc
44557
44558;(function (global, factory) {
44559    true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/moment/moment.js")) :
44560   undefined
44561}(this, (function (moment) { 'use strict';
44562
44563    //! moment.js locale configuration
44564
44565    var monthsShortDot =
44566            'ene._feb._mar._abr._may._jun._jul._ago._sep._oct._nov._dic.'.split(
44567                '_'
44568            ),
44569        monthsShort = 'ene_feb_mar_abr_may_jun_jul_ago_sep_oct_nov_dic'.split('_'),
44570        monthsParse = [
44571            /^ene/i,
44572            /^feb/i,
44573            /^mar/i,
44574            /^abr/i,
44575            /^may/i,
44576            /^jun/i,
44577            /^jul/i,
44578            /^ago/i,
44579            /^sep/i,
44580            /^oct/i,
44581            /^nov/i,
44582            /^dic/i,
44583        ],
44584        monthsRegex =
44585            /^(enero|febrero|marzo|abril|mayo|junio|julio|agosto|septiembre|octubre|noviembre|diciembre|ene\.?|feb\.?|mar\.?|abr\.?|may\.?|jun\.?|jul\.?|ago\.?|sep\.?|oct\.?|nov\.?|dic\.?)/i;
44586
44587    var es = moment.defineLocale('es', {
44588        months: 'enero_febrero_marzo_abril_mayo_junio_julio_agosto_septiembre_octubre_noviembre_diciembre'.split(
44589            '_'
44590        ),
44591        monthsShort: function (m, format) {
44592            if (!m) {
44593                return monthsShortDot;
44594            } else if (/-MMM-/.test(format)) {
44595                return monthsShort[m.month()];
44596            } else {
44597                return monthsShortDot[m.month()];
44598            }
44599        },
44600        monthsRegex: monthsRegex,
44601        monthsShortRegex: monthsRegex,
44602        monthsStrictRegex:
44603            /^(enero|febrero|marzo|abril|mayo|junio|julio|agosto|septiembre|octubre|noviembre|diciembre)/i,
44604        monthsShortStrictRegex:
44605            /^(ene\.?|feb\.?|mar\.?|abr\.?|may\.?|jun\.?|jul\.?|ago\.?|sep\.?|oct\.?|nov\.?|dic\.?)/i,
44606        monthsParse: monthsParse,
44607        longMonthsParse: monthsParse,
44608        shortMonthsParse: monthsParse,
44609        weekdays: 'domingo_lunes_martes_miércoles_jueves_viernes_sábado'.split('_'),
44610        weekdaysShort: 'dom._lun._mar._mié._jue._vie._sáb.'.split('_'),
44611        weekdaysMin: 'do_lu_ma_mi_ju_vi_sá'.split('_'),
44612        weekdaysParseExact: true,
44613        longDateFormat: {
44614            LT: 'H:mm',
44615            LTS: 'H:mm:ss',
44616            L: 'DD/MM/YYYY',
44617            LL: 'D [de] MMMM [de] YYYY',
44618            LLL: 'D [de] MMMM [de] YYYY H:mm',
44619            LLLL: 'dddd, D [de] MMMM [de] YYYY H:mm',
44620        },
44621        calendar: {
44622            sameDay: function () {
44623                return '[hoy a la' + (this.hours() !== 1 ? 's' : '') + '] LT';
44624            },
44625            nextDay: function () {
44626                return '[mañana a la' + (this.hours() !== 1 ? 's' : '') + '] LT';
44627            },
44628            nextWeek: function () {
44629                return 'dddd [a la' + (this.hours() !== 1 ? 's' : '') + '] LT';
44630            },
44631            lastDay: function () {
44632                return '[ayer a la' + (this.hours() !== 1 ? 's' : '') + '] LT';
44633            },
44634            lastWeek: function () {
44635                return (
44636                    '[el] dddd [pasado a la' +
44637                    (this.hours() !== 1 ? 's' : '') +
44638                    '] LT'
44639                );
44640            },
44641            sameElse: 'L',
44642        },
44643        relativeTime: {
44644            future: 'en %s',
44645            past: 'hace %s',
44646            s: 'unos segundos',
44647            ss: '%d segundos',
44648            m: 'un minuto',
44649            mm: '%d minutos',
44650            h: 'una hora',
44651            hh: '%d horas',
44652            d: 'un día',
44653            dd: '%d días',
44654            w: 'una semana',
44655            ww: '%d semanas',
44656            M: 'un mes',
44657            MM: '%d meses',
44658            y: 'un año',
44659            yy: '%d años',
44660        },
44661        dayOfMonthOrdinalParse: /\d{1,2}º/,
44662        ordinal: '%dº',
44663        week: {
44664            dow: 1, // Monday is the first day of the week.
44665            doy: 4, // The week that contains Jan 4th is the first week of the year.
44666        },
44667        invalidDate: 'Fecha inválida',
44668    });
44669
44670    return es;
44671
44672})));
44673
44674
44675/***/ }),
44676
vendor: 3,405 bytes, lines 44677-44774
44677/***/ "./node_modules/moment/locale/et.js":
44678/*!******************************************!*\
44679  !*** ./node_modules/moment/locale/et.js ***!
44680  \******************************************/
44681/*! no static exports found */
44682/***/ (function(module, exports, __webpack_require__) {
44683
44684//! moment.js locale configuration
44685//! locale : Estonian [et]
44686//! author : Henry Kehlmann : https://github.com/madhenry
44687//! improvements : Illimar Tambek : https://github.com/ragulka
44688
44689;(function (global, factory) {
44690    true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/moment/moment.js")) :
44691   undefined
44692}(this, (function (moment) { 'use strict';
44693
44694    //! moment.js locale configuration
44695
44696    function processRelativeTime(number, withoutSuffix, key, isFuture) {
44697        var format = {
44698            s: ['mõne sekundi', 'mõni sekund', 'paar sekundit'],
44699            ss: [number + 'sekundi', number + 'sekundit'],
44700            m: ['ühe minuti', 'üks minut'],
44701            mm: [number + ' minuti', number + ' minutit'],
44702            h: ['ühe tunni', 'tund aega', 'üks tund'],
44703            hh: [number + ' tunni', number + ' tundi'],
44704            d: ['ühe päeva', 'üks päev'],
44705            M: ['kuu aja', 'kuu aega', 'üks kuu'],
44706            MM: [number + ' kuu', number + ' kuud'],
44707            y: ['ühe aasta', 'aasta', 'üks aasta'],
44708            yy: [number + ' aasta', number + ' aastat'],
44709        };
44710        if (withoutSuffix) {
44711            return format[key][2] ? format[key][2] : format[key][1];
44712        }
44713        return isFuture ? format[key][0] : format[key][1];
44714    }
44715
44716    var et = moment.defineLocale('et', {
44717        months: 'jaanuar_veebruar_märts_aprill_mai_juuni_juuli_august_september_oktoober_november_detsember'.split(
44718            '_'
44719        ),
44720        monthsShort:
44721            'jaan_veebr_märts_apr_mai_juuni_juuli_aug_sept_okt_nov_dets'.split('_'),
44722        weekdays:
44723            'pühapäev_esmaspäev_teisipäev_kolmapäev_neljapäev_reede_laupäev'.split(
44724                '_'
44725            ),
44726        weekdaysShort: 'P_E_T_K_N_R_L'.split('_'),
44727        weekdaysMin: 'P_E_T_K_N_R_L'.split('_'),
44728        longDateFormat: {
44729            LT: 'H:mm',
44730            LTS: 'H:mm:ss',
44731            L: 'DD.MM.YYYY',
44732            LL: 'D. MMMM YYYY',
44733            LLL: 'D. MMMM YYYY H:mm',
44734            LLLL: 'dddd, D. MMMM YYYY H:mm',
44735        },
44736        calendar: {
44737            sameDay: '[Täna,] LT',
44738            nextDay: '[Homme,] LT',
44739            nextWeek: '[Järgmine] dddd LT',
44740            lastDay: '[Eile,] LT',
44741            lastWeek: '[Eelmine] dddd LT',
44742            sameElse: 'L',
44743        },
44744        relativeTime: {
44745            future: '%s pärast',
44746            past: '%s tagasi',
44747            s: processRelativeTime,
44748            ss: processRelativeTime,
44749            m: processRelativeTime,
44750            mm: processRelativeTime,
44751            h: processRelativeTime,
44752            hh: processRelativeTime,
44753            d: processRelativeTime,
44754            dd: '%d päeva',
44755            M: processRelativeTime,
44756            MM: processRelativeTime,
44757            y: processRelativeTime,
44758            yy: processRelativeTime,
44759        },
44760        dayOfMonthOrdinalParse: /\d{1,2}\./,
44761        ordinal: '%d.',
44762        week: {
44763            dow: 1, // Monday is the first day of the week.
44764            doy: 4, // The week that contains Jan 4th is the first week of the year.
44765        },
44766    });
44767
44768    return et;
44769
44770})));
44771
44772
44773/***/ }),
44774
vendor: 2,694 bytes, lines 44775-44859
44775/***/ "./node_modules/moment/locale/eu.js":
44776/*!******************************************!*\
44777  !*** ./node_modules/moment/locale/eu.js ***!
44778  \******************************************/
44779/*! no static exports found */
44780/***/ (function(module, exports, __webpack_require__) {
44781
44782//! moment.js locale configuration
44783//! locale : Basque [eu]
44784//! author : Eneko Illarramendi : https://github.com/eillarra
44785
44786;(function (global, factory) {
44787    true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/moment/moment.js")) :
44788   undefined
44789}(this, (function (moment) { 'use strict';
44790
44791    //! moment.js locale configuration
44792
44793    var eu = moment.defineLocale('eu', {
44794        months: 'urtarrila_otsaila_martxoa_apirila_maiatza_ekaina_uztaila_abuztua_iraila_urria_azaroa_abendua'.split(
44795            '_'
44796        ),
44797        monthsShort:
44798            'urt._ots._mar._api._mai._eka._uzt._abu._ira._urr._aza._abe.'.split(
44799                '_'
44800            ),
44801        monthsParseExact: true,
44802        weekdays:
44803            'igandea_astelehena_asteartea_asteazkena_osteguna_ostirala_larunbata'.split(
44804                '_'
44805            ),
44806        weekdaysShort: 'ig._al._ar._az._og._ol._lr.'.split('_'),
44807        weekdaysMin: 'ig_al_ar_az_og_ol_lr'.split('_'),
44808        weekdaysParseExact: true,
44809        longDateFormat: {
44810            LT: 'HH:mm',
44811            LTS: 'HH:mm:ss',
44812            L: 'YYYY-MM-DD',
44813            LL: 'YYYY[ko] MMMM[ren] D[a]',
44814            LLL: 'YYYY[ko] MMMM[ren] D[a] HH:mm',
44815            LLLL: 'dddd, YYYY[ko] MMMM[ren] D[a] HH:mm',
44816            l: 'YYYY-M-D',
44817            ll: 'YYYY[ko] MMM D[a]',
44818            lll: 'YYYY[ko] MMM D[a] HH:mm',
44819            llll: 'ddd, YYYY[ko] MMM D[a] HH:mm',
44820        },
44821        calendar: {
44822            sameDay: '[gaur] LT[etan]',
44823            nextDay: '[bihar] LT[etan]',
44824            nextWeek: 'dddd LT[etan]',
44825            lastDay: '[atzo] LT[etan]',
44826            lastWeek: '[aurreko] dddd LT[etan]',
44827            sameElse: 'L',
44828        },
44829        relativeTime: {
44830            future: '%s barru',
44831            past: 'duela %s',
44832            s: 'segundo batzuk',
44833            ss: '%d segundo',
44834            m: 'minutu bat',
44835            mm: '%d minutu',
44836            h: 'ordu bat',
44837            hh: '%d ordu',
44838            d: 'egun bat',
44839            dd: '%d egun',
44840            M: 'hilabete bat',
44841            MM: '%d hilabete',
44842            y: 'urte bat',
44843            yy: '%d urte',
44844        },
44845        dayOfMonthOrdinalParse: /\d{1,2}\./,
44846        ordinal: '%d.',
44847        week: {
44848            dow: 1, // Monday is the first day of the week.
44849            doy: 7, // The week that contains Jan 7th is the first week of the year.
44850        },
44851    });
44852
44853    return eu;
44854
44855})));
44856
44857
44858/***/ }),
44859
vendor: 4,148 bytes, lines 44860-44992
44860/***/ "./node_modules/moment/locale/fa.js":
44861/*!******************************************!*\
44862  !*** ./node_modules/moment/locale/fa.js ***!
44863  \******************************************/
44864/*! no static exports found */
44865/***/ (function(module, exports, __webpack_require__) {
44866
44867//! moment.js locale configuration
44868//! locale : Persian [fa]
44869//! author : Ebrahim Byagowi : https://github.com/ebraminio
44870
44871;(function (global, factory) {
44872    true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/moment/moment.js")) :
44873   undefined
44874}(this, (function (moment) { 'use strict';
44875
44876    //! moment.js locale configuration
44877
44878    var symbolMap = {
44879            1: 'Û±',
44880            2: 'Û²',
44881            3: 'Û³',
44882            4: 'Û´',
44883            5: 'Ûµ',
44884            6: 'Û¶',
44885            7: 'Û·',
44886            8: 'Û¸',
44887            9: 'Û¹',
44888            0: 'Û°',
44889        },
44890        numberMap = {
44891            'Û±': '1',
44892            'Û²': '2',
44893            'Û³': '3',
44894            'Û´': '4',
44895            'Ûµ': '5',
44896            'Û¶': '6',
44897            'Û·': '7',
44898            'Û¸': '8',
44899            'Û¹': '9',
44900            'Û°': '0',
44901        };
44902
44903    var fa = moment.defineLocale('fa', {
44904        months: 'ژانویه_فوریه_مارس_آوریل_مه_ژوئن_ژوئیه_اوت_سپتامبر_اکتبر_نوامبر_دسامبر'.split(
44905            '_'
44906        ),
44907        monthsShort:
44908            'ژانویه_فوریه_مارس_آوریل_مه_ژوئن_ژوئیه_اوت_سپتامبر_اکتبر_نوامبر_دسامبر'.split(
44909                '_'
44910            ),
44911        weekdays:
44912            'یک\u200cشنبه_دوشنبه_سه\u200cشنبه_چهارشنبه_پنج\u200cشنبه_جمعه_شنبه'.split(
44913                '_'
44914            ),
44915        weekdaysShort:
44916            'یک\u200cشنبه_دوشنبه_سه\u200cشنبه_چهارشنبه_پنج\u200cشنبه_جمعه_شنبه'.split(
44917                '_'
44918            ),
44919        weekdaysMin: 'ی_د_س_چ_پ_ج_ش'.split('_'),
44920        weekdaysParseExact: true,
44921        longDateFormat: {
44922            LT: 'HH:mm',
44923            LTS: 'HH:mm:ss',
44924            L: 'DD/MM/YYYY',
44925            LL: 'D MMMM YYYY',
44926            LLL: 'D MMMM YYYY HH:mm',
44927            LLLL: 'dddd, D MMMM YYYY HH:mm',
44928        },
44929        meridiemParse: /قبل از ظهر|بعد از ظهر/,
44930        isPM: function (input) {
44931            return /بعد از ظهر/.test(input);
44932        },
44933        meridiem: function (hour, minute, isLower) {
44934            if (hour < 12) {
44935                return 'قبل از ظهر';
44936            } else {
44937                return 'بعد از ظهر';
44938            }
44939        },
44940        calendar: {
44941            sameDay: '[امروز ساعت] LT',
44942            nextDay: '[فردا ساعت] LT',
44943            nextWeek: 'dddd [ساعت] LT',
44944            lastDay: '[دیروز ساعت] LT',
44945            lastWeek: 'dddd [پیش] [ساعت] LT',
44946            sameElse: 'L',
44947        },
44948        relativeTime: {
44949            future: 'در %s',
44950            past: '%s پیش',
44951            s: 'چند ثانیه',
44952            ss: '%d ثانیه',
44953            m: 'یک دقیقه',
44954            mm: '%d دقیقه',
44955            h: 'یک ساعت',
44956            hh: '%d ساعت',
44957            d: 'یک روز',
44958            dd: '%d روز',
44959            M: 'یک ماه',
44960            MM: '%d ماه',
44961            y: 'یک سال',
44962            yy: '%d سال',
44963        },
44964        preparse: function (string) {
44965            return string
44966                .replace(/[Û°-Û¹]/g, function (match) {
44967                    return numberMap[match];
44968                })
44969                .replace(/،/g, ',');
44970        },
44971        postformat: function (string) {
44972            return string
44973                .replace(/\d/g, function (match) {
44974                    return symbolMap[match];
44975                })
44976                .replace(/,/g, '،');
44977        },
44978        dayOfMonthOrdinalParse: /\d{1,2}م/,
44979        ordinal: '%dم',
44980        week: {
44981            dow: 6, // Saturday is the first day of the week.
44982            doy: 12, // The week that contains Jan 12th is the first week of the year.
44983        },
44984    });
44985
44986    return fa;
44987
44988})));
44989
44990
44991/***/ }),
44992
vendor: 4,594 bytes, lines 44993-45136
44993/***/ "./node_modules/moment/locale/fi.js":
44994/*!******************************************!*\
44995  !*** ./node_modules/moment/locale/fi.js ***!
44996  \******************************************/
44997/*! no static exports found */
44998/***/ (function(module, exports, __webpack_require__) {
44999
45000//! moment.js locale configuration
45001//! locale : Finnish [fi]
45002//! author : Tarmo Aidantausta : https://github.com/bleadof
45003
45004;(function (global, factory) {
45005    true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/moment/moment.js")) :
45006   undefined
45007}(this, (function (moment) { 'use strict';
45008
45009    //! moment.js locale configuration
45010
45011    var numbersPast =
45012            'nolla yksi kaksi kolme neljä viisi kuusi seitsemän kahdeksan yhdeksän'.split(
45013                ' '
45014            ),
45015        numbersFuture = [
45016            'nolla',
45017            'yhden',
45018            'kahden',
45019            'kolmen',
45020            'neljän',
45021            'viiden',
45022            'kuuden',
45023            numbersPast[7],
45024            numbersPast[8],
45025            numbersPast[9],
45026        ];
45027    function translate(number, withoutSuffix, key, isFuture) {
45028        var result = '';
45029        switch (key) {
45030            case 's':
45031                return isFuture ? 'muutaman sekunnin' : 'muutama sekunti';
45032            case 'ss':
45033                result = isFuture ? 'sekunnin' : 'sekuntia';
45034                break;
45035            case 'm':
45036                return isFuture ? 'minuutin' : 'minuutti';
45037            case 'mm':
45038                result = isFuture ? 'minuutin' : 'minuuttia';
45039                break;
45040            case 'h':
45041                return isFuture ? 'tunnin' : 'tunti';
45042            case 'hh':
45043                result = isFuture ? 'tunnin' : 'tuntia';
45044                break;
45045            case 'd':
45046                return isFuture ? 'päivän' : 'päivä';
45047            case 'dd':
45048                result = isFuture ? 'päivän' : 'päivää';
45049                break;
45050            case 'M':
45051                return isFuture ? 'kuukauden' : 'kuukausi';
45052            case 'MM':
45053                result = isFuture ? 'kuukauden' : 'kuukautta';
45054                break;
45055            case 'y':
45056                return isFuture ? 'vuoden' : 'vuosi';
45057            case 'yy':
45058                result = isFuture ? 'vuoden' : 'vuotta';
45059                break;
45060        }
45061        result = verbalNumber(number, isFuture) + ' ' + result;
45062        return result;
45063    }
45064    function verbalNumber(number, isFuture) {
45065        return number < 10
45066            ? isFuture
45067                ? numbersFuture[number]
45068                : numbersPast[number]
45069            : number;
45070    }
45071
45072    var fi = moment.defineLocale('fi', {
45073        months: 'tammikuu_helmikuu_maaliskuu_huhtikuu_toukokuu_kesäkuu_heinäkuu_elokuu_syyskuu_lokakuu_marraskuu_joulukuu'.split(
45074            '_'
45075        ),
45076        monthsShort:
45077            'tammi_helmi_maalis_huhti_touko_kesä_heinä_elo_syys_loka_marras_joulu'.split(
45078                '_'
45079            ),
45080        weekdays:
45081            'sunnuntai_maanantai_tiistai_keskiviikko_torstai_perjantai_lauantai'.split(
45082                '_'
45083            ),
45084        weekdaysShort: 'su_ma_ti_ke_to_pe_la'.split('_'),
45085        weekdaysMin: 'su_ma_ti_ke_to_pe_la'.split('_'),
45086        longDateFormat: {
45087            LT: 'HH.mm',
45088            LTS: 'HH.mm.ss',
45089            L: 'DD.MM.YYYY',
45090            LL: 'Do MMMM[ta] YYYY',
45091            LLL: 'Do MMMM[ta] YYYY, [klo] HH.mm',
45092            LLLL: 'dddd, Do MMMM[ta] YYYY, [klo] HH.mm',
45093            l: 'D.M.YYYY',
45094            ll: 'Do MMM YYYY',
45095            lll: 'Do MMM YYYY, [klo] HH.mm',
45096            llll: 'ddd, Do MMM YYYY, [klo] HH.mm',
45097        },
45098        calendar: {
45099            sameDay: '[tänään] [klo] LT',
45100            nextDay: '[huomenna] [klo] LT',
45101            nextWeek: 'dddd [klo] LT',
45102            lastDay: '[eilen] [klo] LT',
45103            lastWeek: '[viime] dddd[na] [klo] LT',
45104            sameElse: 'L',
45105        },
45106        relativeTime: {
45107            future: '%s päästä',
45108            past: '%s sitten',
45109            s: translate,
45110            ss: translate,
45111            m: translate,
45112            mm: translate,
45113            h: translate,
45114            hh: translate,
45115            d: translate,
45116            dd: translate,
45117            M: translate,
45118            MM: translate,
45119            y: translate,
45120            yy: translate,
45121        },
45122        dayOfMonthOrdinalParse: /\d{1,2}\./,
45123        ordinal: '%d.',
45124        week: {
45125            dow: 1, // Monday is the first day of the week.
45126            doy: 4, // The week that contains Jan 4th is the first week of the year.
45127        },
45128    });
45129
45130    return fi;
45131
45132})));
45133
45134
45135/***/ }),
45136
vendor: 2,480 bytes, lines 45137-45214
45137/***/ "./node_modules/moment/locale/fil.js":
45138/*!*******************************************!*\
45139  !*** ./node_modules/moment/locale/fil.js ***!
45140  \*******************************************/
45141/*! no static exports found */
45142/***/ (function(module, exports, __webpack_require__) {
45143
45144//! moment.js locale configuration
45145//! locale : Filipino [fil]
45146//! author : Dan Hagman : https://github.com/hagmandan
45147//! author : Matthew Co : https://github.com/matthewdeeco
45148
45149;(function (global, factory) {
45150    true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/moment/moment.js")) :
45151   undefined
45152}(this, (function (moment) { 'use strict';
45153
45154    //! moment.js locale configuration
45155
45156    var fil = moment.defineLocale('fil', {
45157        months: 'Enero_Pebrero_Marso_Abril_Mayo_Hunyo_Hulyo_Agosto_Setyembre_Oktubre_Nobyembre_Disyembre'.split(
45158            '_'
45159        ),
45160        monthsShort: 'Ene_Peb_Mar_Abr_May_Hun_Hul_Ago_Set_Okt_Nob_Dis'.split('_'),
45161        weekdays: 'Linggo_Lunes_Martes_Miyerkules_Huwebes_Biyernes_Sabado'.split(
45162            '_'
45163        ),
45164        weekdaysShort: 'Lin_Lun_Mar_Miy_Huw_Biy_Sab'.split('_'),
45165        weekdaysMin: 'Li_Lu_Ma_Mi_Hu_Bi_Sab'.split('_'),
45166        longDateFormat: {
45167            LT: 'HH:mm',
45168            LTS: 'HH:mm:ss',
45169            L: 'MM/D/YYYY',
45170            LL: 'MMMM D, YYYY',
45171            LLL: 'MMMM D, YYYY HH:mm',
45172            LLLL: 'dddd, MMMM DD, YYYY HH:mm',
45173        },
45174        calendar: {
45175            sameDay: 'LT [ngayong araw]',
45176            nextDay: '[Bukas ng] LT',
45177            nextWeek: 'LT [sa susunod na] dddd',
45178            lastDay: 'LT [kahapon]',
45179            lastWeek: 'LT [noong nakaraang] dddd',
45180            sameElse: 'L',
45181        },
45182        relativeTime: {
45183            future: 'sa loob ng %s',
45184            past: '%s ang nakalipas',
45185            s: 'ilang segundo',
45186            ss: '%d segundo',
45187            m: 'isang minuto',
45188            mm: '%d minuto',
45189            h: 'isang oras',
45190            hh: '%d oras',
45191            d: 'isang araw',
45192            dd: '%d araw',
45193            M: 'isang buwan',
45194            MM: '%d buwan',
45195            y: 'isang taon',
45196            yy: '%d taon',
45197        },
45198        dayOfMonthOrdinalParse: /\d{1,2}/,
45199        ordinal: function (number) {
45200            return number;
45201        },
45202        week: {
45203            dow: 1, // Monday is the first day of the week.
45204            doy: 4, // The week that contains Jan 4th is the first week of the year.
45205        },
45206    });
45207
45208    return fil;
45209
45210})));
45211
45212
45213/***/ }),
45214
vendor: 2,466 bytes, lines 45215-45291
45215/***/ "./node_modules/moment/locale/fo.js":
45216/*!******************************************!*\
45217  !*** ./node_modules/moment/locale/fo.js ***!
45218  \******************************************/
45219/*! no static exports found */
45220/***/ (function(module, exports, __webpack_require__) {
45221
45222//! moment.js locale configuration
45223//! locale : Faroese [fo]
45224//! author : Ragnar Johannesen : https://github.com/ragnar123
45225//! author : Kristian Sakarisson : https://github.com/sakarisson
45226
45227;(function (global, factory) {
45228    true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/moment/moment.js")) :
45229   undefined
45230}(this, (function (moment) { 'use strict';
45231
45232    //! moment.js locale configuration
45233
45234    var fo = moment.defineLocale('fo', {
45235        months: 'januar_februar_mars_apríl_mai_juni_juli_august_september_oktober_november_desember'.split(
45236            '_'
45237        ),
45238        monthsShort: 'jan_feb_mar_apr_mai_jun_jul_aug_sep_okt_nov_des'.split('_'),
45239        weekdays:
45240            'sunnudagur_mánadagur_týsdagur_mikudagur_hósdagur_fríggjadagur_leygardagur'.split(
45241                '_'
45242            ),
45243        weekdaysShort: 'sun_mán_týs_mik_hós_frí_ley'.split('_'),
45244        weekdaysMin: 'su_má_tý_mi_hó_fr_le'.split('_'),
45245        longDateFormat: {
45246            LT: 'HH:mm',
45247            LTS: 'HH:mm:ss',
45248            L: 'DD/MM/YYYY',
45249            LL: 'D MMMM YYYY',
45250            LLL: 'D MMMM YYYY HH:mm',
45251            LLLL: 'dddd D. MMMM, YYYY HH:mm',
45252        },
45253        calendar: {
45254            sameDay: '[Í dag kl.] LT',
45255            nextDay: '[Í morgin kl.] LT',
45256            nextWeek: 'dddd [kl.] LT',
45257            lastDay: '[Í gjár kl.] LT',
45258            lastWeek: '[síðstu] dddd [kl] LT',
45259            sameElse: 'L',
45260        },
45261        relativeTime: {
45262            future: 'um %s',
45263            past: '%s síðani',
45264            s: 'fá sekund',
45265            ss: '%d sekundir',
45266            m: 'ein minuttur',
45267            mm: '%d minuttir',
45268            h: 'ein tími',
45269            hh: '%d tímar',
45270            d: 'ein dagur',
45271            dd: '%d dagar',
45272            M: 'ein mánaður',
45273            MM: '%d mánaðir',
45274            y: 'eitt ár',
45275            yy: '%d ár',
45276        },
45277        dayOfMonthOrdinalParse: /\d{1,2}\./,
45278        ordinal: '%d.',
45279        week: {
45280            dow: 1, // Monday is the first day of the week.
45281            doy: 4, // The week that contains Jan 4th is the first week of the year.
45282        },
45283    });
45284
45285    return fo;
45286
45287})));
45288
45289
45290/***/ }),
45291
vendor: 2,866 bytes, lines 45292-45381
45292/***/ "./node_modules/moment/locale/fr-ca.js":
45293/*!*********************************************!*\
45294  !*** ./node_modules/moment/locale/fr-ca.js ***!
45295  \*********************************************/
45296/*! no static exports found */
45297/***/ (function(module, exports, __webpack_require__) {
45298
45299//! moment.js locale configuration
45300//! locale : French (Canada) [fr-ca]
45301//! author : Jonathan Abourbih : https://github.com/jonbca
45302
45303;(function (global, factory) {
45304    true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/moment/moment.js")) :
45305   undefined
45306}(this, (function (moment) { 'use strict';
45307
45308    //! moment.js locale configuration
45309
45310    var frCa = moment.defineLocale('fr-ca', {
45311        months: 'janvier_février_mars_avril_mai_juin_juillet_août_septembre_octobre_novembre_décembre'.split(
45312            '_'
45313        ),
45314        monthsShort:
45315            'janv._févr._mars_avr._mai_juin_juil._août_sept._oct._nov._déc.'.split(
45316                '_'
45317            ),
45318        monthsParseExact: true,
45319        weekdays: 'dimanche_lundi_mardi_mercredi_jeudi_vendredi_samedi'.split('_'),
45320        weekdaysShort: 'dim._lun._mar._mer._jeu._ven._sam.'.split('_'),
45321        weekdaysMin: 'di_lu_ma_me_je_ve_sa'.split('_'),
45322        weekdaysParseExact: true,
45323        longDateFormat: {
45324            LT: 'HH:mm',
45325            LTS: 'HH:mm:ss',
45326            L: 'YYYY-MM-DD',
45327            LL: 'D MMMM YYYY',
45328            LLL: 'D MMMM YYYY HH:mm',
45329            LLLL: 'dddd D MMMM YYYY HH:mm',
45330        },
45331        calendar: {
45332            sameDay: '[Aujourd’hui à] LT',
45333            nextDay: '[Demain à] LT',
45334            nextWeek: 'dddd [à] LT',
45335            lastDay: '[Hier à] LT',
45336            lastWeek: 'dddd [dernier à] LT',
45337            sameElse: 'L',
45338        },
45339        relativeTime: {
45340            future: 'dans %s',
45341            past: 'il y a %s',
45342            s: 'quelques secondes',
45343            ss: '%d secondes',
45344            m: 'une minute',
45345            mm: '%d minutes',
45346            h: 'une heure',
45347            hh: '%d heures',
45348            d: 'un jour',
45349            dd: '%d jours',
45350            M: 'un mois',
45351            MM: '%d mois',
45352            y: 'un an',
45353            yy: '%d ans',
45354        },
45355        dayOfMonthOrdinalParse: /\d{1,2}(er|e)/,
45356        ordinal: function (number, period) {
45357            switch (period) {
45358                // Words with masculine grammatical gender: mois, trimestre, jour
45359                default:
45360                case 'M':
45361                case 'Q':
45362                case 'D':
45363                case 'DDD':
45364                case 'd':
45365                    return number + (number === 1 ? 'er' : 'e');
45366
45367                // Words with feminine grammatical gender: semaine
45368                case 'w':
45369                case 'W':
45370                    return number + (number === 1 ? 're' : 'e');
45371            }
45372        },
45373    });
45374
45375    return frCa;
45376
45377})));
45378
45379
45380/***/ }),
45381
vendor: 3,041 bytes, lines 45382-45475
45382/***/ "./node_modules/moment/locale/fr-ch.js":
45383/*!*********************************************!*\
45384  !*** ./node_modules/moment/locale/fr-ch.js ***!
45385  \*********************************************/
45386/*! no static exports found */
45387/***/ (function(module, exports, __webpack_require__) {
45388
45389//! moment.js locale configuration
45390//! locale : French (Switzerland) [fr-ch]
45391//! author : Gaspard Bucher : https://github.com/gaspard
45392
45393;(function (global, factory) {
45394    true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/moment/moment.js")) :
45395   undefined
45396}(this, (function (moment) { 'use strict';
45397
45398    //! moment.js locale configuration
45399
45400    var frCh = moment.defineLocale('fr-ch', {
45401        months: 'janvier_février_mars_avril_mai_juin_juillet_août_septembre_octobre_novembre_décembre'.split(
45402            '_'
45403        ),
45404        monthsShort:
45405            'janv._févr._mars_avr._mai_juin_juil._août_sept._oct._nov._déc.'.split(
45406                '_'
45407            ),
45408        monthsParseExact: true,
45409        weekdays: 'dimanche_lundi_mardi_mercredi_jeudi_vendredi_samedi'.split('_'),
45410        weekdaysShort: 'dim._lun._mar._mer._jeu._ven._sam.'.split('_'),
45411        weekdaysMin: 'di_lu_ma_me_je_ve_sa'.split('_'),
45412        weekdaysParseExact: true,
45413        longDateFormat: {
45414            LT: 'HH:mm',
45415            LTS: 'HH:mm:ss',
45416            L: 'DD.MM.YYYY',
45417            LL: 'D MMMM YYYY',
45418            LLL: 'D MMMM YYYY HH:mm',
45419            LLLL: 'dddd D MMMM YYYY HH:mm',
45420        },
45421        calendar: {
45422            sameDay: '[Aujourd’hui à] LT',
45423            nextDay: '[Demain à] LT',
45424            nextWeek: 'dddd [à] LT',
45425            lastDay: '[Hier à] LT',
45426            lastWeek: 'dddd [dernier à] LT',
45427            sameElse: 'L',
45428        },
45429        relativeTime: {
45430            future: 'dans %s',
45431            past: 'il y a %s',
45432            s: 'quelques secondes',
45433            ss: '%d secondes',
45434            m: 'une minute',
45435            mm: '%d minutes',
45436            h: 'une heure',
45437            hh: '%d heures',
45438            d: 'un jour',
45439            dd: '%d jours',
45440            M: 'un mois',
45441            MM: '%d mois',
45442            y: 'un an',
45443            yy: '%d ans',
45444        },
45445        dayOfMonthOrdinalParse: /\d{1,2}(er|e)/,
45446        ordinal: function (number, period) {
45447            switch (period) {
45448                // Words with masculine grammatical gender: mois, trimestre, jour
45449                default:
45450                case 'M':
45451                case 'Q':
45452                case 'D':
45453                case 'DDD':
45454                case 'd':
45455                    return number + (number === 1 ? 'er' : 'e');
45456
45457                // Words with feminine grammatical gender: semaine
45458                case 'w':
45459                case 'W':
45460                    return number + (number === 1 ? 're' : 'e');
45461            }
45462        },
45463        week: {
45464            dow: 1, // Monday is the first day of the week.
45465            doy: 4, // The week that contains Jan 4th is the first week of the year.
45466        },
45467    });
45468
45469    return frCh;
45470
45471})));
45472
45473
45474/***/ }),
45475
vendor: 4,361 bytes, lines 45476-45603
45476/***/ "./node_modules/moment/locale/fr.js":
45477/*!******************************************!*\
45478  !*** ./node_modules/moment/locale/fr.js ***!
45479  \******************************************/
45480/*! no static exports found */
45481/***/ (function(module, exports, __webpack_require__) {
45482
45483//! moment.js locale configuration
45484//! locale : French [fr]
45485//! author : John Fischer : https://github.com/jfroffice
45486
45487;(function (global, factory) {
45488    true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/moment/moment.js")) :
45489   undefined
45490}(this, (function (moment) { 'use strict';
45491
45492    //! moment.js locale configuration
45493
45494    var monthsStrictRegex =
45495            /^(janvier|février|mars|avril|mai|juin|juillet|août|septembre|octobre|novembre|décembre)/i,
45496        monthsShortStrictRegex =
45497            /(janv\.?|févr\.?|mars|avr\.?|mai|juin|juil\.?|août|sept\.?|oct\.?|nov\.?|déc\.?)/i,
45498        monthsRegex =
45499            /(janv\.?|févr\.?|mars|avr\.?|mai|juin|juil\.?|août|sept\.?|oct\.?|nov\.?|déc\.?|janvier|février|mars|avril|mai|juin|juillet|août|septembre|octobre|novembre|décembre)/i,
45500        monthsParse = [
45501            /^janv/i,
45502            /^févr/i,
45503            /^mars/i,
45504            /^avr/i,
45505            /^mai/i,
45506            /^juin/i,
45507            /^juil/i,
45508            /^août/i,
45509            /^sept/i,
45510            /^oct/i,
45511            /^nov/i,
45512            /^déc/i,
45513        ];
45514
45515    var fr = moment.defineLocale('fr', {
45516        months: 'janvier_février_mars_avril_mai_juin_juillet_août_septembre_octobre_novembre_décembre'.split(
45517            '_'
45518        ),
45519        monthsShort:
45520            'janv._févr._mars_avr._mai_juin_juil._août_sept._oct._nov._déc.'.split(
45521                '_'
45522            ),
45523        monthsRegex: monthsRegex,
45524        monthsShortRegex: monthsRegex,
45525        monthsStrictRegex: monthsStrictRegex,
45526        monthsShortStrictRegex: monthsShortStrictRegex,
45527        monthsParse: monthsParse,
45528        longMonthsParse: monthsParse,
45529        shortMonthsParse: monthsParse,
45530        weekdays: 'dimanche_lundi_mardi_mercredi_jeudi_vendredi_samedi'.split('_'),
45531        weekdaysShort: 'dim._lun._mar._mer._jeu._ven._sam.'.split('_'),
45532        weekdaysMin: 'di_lu_ma_me_je_ve_sa'.split('_'),
45533        weekdaysParseExact: true,
45534        longDateFormat: {
45535            LT: 'HH:mm',
45536            LTS: 'HH:mm:ss',
45537            L: 'DD/MM/YYYY',
45538            LL: 'D MMMM YYYY',
45539            LLL: 'D MMMM YYYY HH:mm',
45540            LLLL: 'dddd D MMMM YYYY HH:mm',
45541        },
45542        calendar: {
45543            sameDay: '[Aujourd’hui à] LT',
45544            nextDay: '[Demain à] LT',
45545            nextWeek: 'dddd [à] LT',
45546            lastDay: '[Hier à] LT',
45547            lastWeek: 'dddd [dernier à] LT',
45548            sameElse: 'L',
45549        },
45550        relativeTime: {
45551            future: 'dans %s',
45552            past: 'il y a %s',
45553            s: 'quelques secondes',
45554            ss: '%d secondes',
45555            m: 'une minute',
45556            mm: '%d minutes',
45557            h: 'une heure',
45558            hh: '%d heures',
45559            d: 'un jour',
45560            dd: '%d jours',
45561            w: 'une semaine',
45562            ww: '%d semaines',
45563            M: 'un mois',
45564            MM: '%d mois',
45565            y: 'un an',
45566            yy: '%d ans',
45567        },
45568        dayOfMonthOrdinalParse: /\d{1,2}(er|)/,
45569        ordinal: function (number, period) {
45570            switch (period) {
45571                // TODO: Return 'e' when day of month > 1. Move this case inside
45572                // block for masculine words below.
45573                // See https://github.com/moment/moment/issues/3375
45574                case 'D':
45575                    return number + (number === 1 ? 'er' : '');
45576
45577                // Words with masculine grammatical gender: mois, trimestre, jour
45578                default:
45579                case 'M':
45580                case 'Q':
45581                case 'DDD':
45582                case 'd':
45583                    return number + (number === 1 ? 'er' : 'e');
45584
45585                // Words with feminine grammatical gender: semaine
45586                case 'w':
45587                case 'W':
45588                    return number + (number === 1 ? 're' : 'e');
45589            }
45590        },
45591        week: {
45592            dow: 1, // Monday is the first day of the week.
45593            doy: 4, // The week that contains Jan 4th is the first week of the year.
45594        },
45595    });
45596
45597    return fr;
45598
45599})));
45600
45601
45602/***/ }),
45603
vendor: 3,041 bytes, lines 45604-45698
45604/***/ "./node_modules/moment/locale/fy.js":
45605/*!******************************************!*\
45606  !*** ./node_modules/moment/locale/fy.js ***!
45607  \******************************************/
45608/*! no static exports found */
45609/***/ (function(module, exports, __webpack_require__) {
45610
45611//! moment.js locale configuration
45612//! locale : Frisian [fy]
45613//! author : Robin van der Vliet : https://github.com/robin0van0der0v
45614
45615;(function (global, factory) {
45616    true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/moment/moment.js")) :
45617   undefined
45618}(this, (function (moment) { 'use strict';
45619
45620    //! moment.js locale configuration
45621
45622    var monthsShortWithDots =
45623            'jan._feb._mrt._apr._mai_jun._jul._aug._sep._okt._nov._des.'.split('_'),
45624        monthsShortWithoutDots =
45625            'jan_feb_mrt_apr_mai_jun_jul_aug_sep_okt_nov_des'.split('_');
45626
45627    var fy = moment.defineLocale('fy', {
45628        months: 'jannewaris_febrewaris_maart_april_maaie_juny_july_augustus_septimber_oktober_novimber_desimber'.split(
45629            '_'
45630        ),
45631        monthsShort: function (m, format) {
45632            if (!m) {
45633                return monthsShortWithDots;
45634            } else if (/-MMM-/.test(format)) {
45635                return monthsShortWithoutDots[m.month()];
45636            } else {
45637                return monthsShortWithDots[m.month()];
45638            }
45639        },
45640        monthsParseExact: true,
45641        weekdays: 'snein_moandei_tiisdei_woansdei_tongersdei_freed_sneon'.split(
45642            '_'
45643        ),
45644        weekdaysShort: 'si._mo._ti._wo._to._fr._so.'.split('_'),
45645        weekdaysMin: 'Si_Mo_Ti_Wo_To_Fr_So'.split('_'),
45646        weekdaysParseExact: true,
45647        longDateFormat: {
45648            LT: 'HH:mm',
45649            LTS: 'HH:mm:ss',
45650            L: 'DD-MM-YYYY',
45651            LL: 'D MMMM YYYY',
45652            LLL: 'D MMMM YYYY HH:mm',
45653            LLLL: 'dddd D MMMM YYYY HH:mm',
45654        },
45655        calendar: {
45656            sameDay: '[hjoed om] LT',
45657            nextDay: '[moarn om] LT',
45658            nextWeek: 'dddd [om] LT',
45659            lastDay: '[juster om] LT',
45660            lastWeek: '[ôfrûne] dddd [om] LT',
45661            sameElse: 'L',
45662        },
45663        relativeTime: {
45664            future: 'oer %s',
45665            past: '%s lyn',
45666            s: 'in pear sekonden',
45667            ss: '%d sekonden',
45668            m: 'ien minút',
45669            mm: '%d minuten',
45670            h: 'ien oere',
45671            hh: '%d oeren',
45672            d: 'ien dei',
45673            dd: '%d dagen',
45674            M: 'ien moanne',
45675            MM: '%d moannen',
45676            y: 'ien jier',
45677            yy: '%d jierren',
45678        },
45679        dayOfMonthOrdinalParse: /\d{1,2}(ste|de)/,
45680        ordinal: function (number) {
45681            return (
45682                number +
45683                (number === 1 || number === 8 || number >= 20 ? 'ste' : 'de')
45684            );
45685        },
45686        week: {
45687            dow: 1, // Monday is the first day of the week.
45688            doy: 4, // The week that contains Jan 4th is the first week of the year.
45689        },
45690    });
45691
45692    return fy;
45693
45694})));
45695
45696
45697/***/ }),
45698
vendor: 3,206 bytes, lines 45699-45813
45699/***/ "./node_modules/moment/locale/ga.js":
45700/*!******************************************!*\
45701  !*** ./node_modules/moment/locale/ga.js ***!
45702  \******************************************/
45703/*! no static exports found */
45704/***/ (function(module, exports, __webpack_require__) {
45705
45706//! moment.js locale configuration
45707//! locale : Irish or Irish Gaelic [ga]
45708//! author : André Silva : https://github.com/askpt
45709
45710;(function (global, factory) {
45711    true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/moment/moment.js")) :
45712   undefined
45713}(this, (function (moment) { 'use strict';
45714
45715    //! moment.js locale configuration
45716
45717    var months = [
45718            'Eanáir',
45719            'Feabhra',
45720            'Márta',
45721            'Aibreán',
45722            'Bealtaine',
45723            'Meitheamh',
45724            'Iúil',
45725            'Lúnasa',
45726            'Meán Fómhair',
45727            'Deireadh Fómhair',
45728            'Samhain',
45729            'Nollaig',
45730        ],
45731        monthsShort = [
45732            'Ean',
45733            'Feabh',
45734            'Márt',
45735            'Aib',
45736            'Beal',
45737            'Meith',
45738            'Iúil',
45739            'Lún',
45740            'M.F.',
45741            'D.F.',
45742            'Samh',
45743            'Noll',
45744        ],
45745        weekdays = [
45746            'Dé Domhnaigh',
45747            'Dé Luain',
45748            'Dé Máirt',
45749            'Dé Céadaoin',
45750            'Déardaoin',
45751            'Dé hAoine',
45752            'Dé Sathairn',
45753        ],
45754        weekdaysShort = ['Domh', 'Luan', 'Máirt', 'Céad', 'Déar', 'Aoine', 'Sath'],
45755        weekdaysMin = ['Do', 'Lu', 'Má', 'Cé', 'Dé', 'A', 'Sa'];
45756
45757    var ga = moment.defineLocale('ga', {
45758        months: months,
45759        monthsShort: monthsShort,
45760        monthsParseExact: true,
45761        weekdays: weekdays,
45762        weekdaysShort: weekdaysShort,
45763        weekdaysMin: weekdaysMin,
45764        longDateFormat: {
45765            LT: 'HH:mm',
45766            LTS: 'HH:mm:ss',
45767            L: 'DD/MM/YYYY',
45768            LL: 'D MMMM YYYY',
45769            LLL: 'D MMMM YYYY HH:mm',
45770            LLLL: 'dddd, D MMMM YYYY HH:mm',
45771        },
45772        calendar: {
45773            sameDay: '[Inniu ag] LT',
45774            nextDay: '[Amárach ag] LT',
45775            nextWeek: 'dddd [ag] LT',
45776            lastDay: '[Inné ag] LT',
45777            lastWeek: 'dddd [seo caite] [ag] LT',
45778            sameElse: 'L',
45779        },
45780        relativeTime: {
45781            future: 'i %s',
45782            past: '%s ó shin',
45783            s: 'cúpla soicind',
45784            ss: '%d soicind',
45785            m: 'nóiméad',
45786            mm: '%d nóiméad',
45787            h: 'uair an chloig',
45788            hh: '%d uair an chloig',
45789            d: 'lá',
45790            dd: '%d lá',
45791            M: 'mí',
45792            MM: '%d míonna',
45793            y: 'bliain',
45794            yy: '%d bliain',
45795        },
45796        dayOfMonthOrdinalParse: /\d{1,2}(d|na|mh)/,
45797        ordinal: function (number) {
45798            var output = number === 1 ? 'd' : number % 10 === 2 ? 'na' : 'mh';
45799            return number + output;
45800        },
45801        week: {
45802            dow: 1, // Monday is the first day of the week.
45803            doy: 4, // The week that contains Jan 4th is the first week of the year.
45804        },
45805    });
45806
45807    return ga;
45808
45809})));
45810
45811
45812/***/ }),
45813
vendor: 3,226 bytes, lines 45814-45928
45814/***/ "./node_modules/moment/locale/gd.js":
45815/*!******************************************!*\
45816  !*** ./node_modules/moment/locale/gd.js ***!
45817  \******************************************/
45818/*! no static exports found */
45819/***/ (function(module, exports, __webpack_require__) {
45820
45821//! moment.js locale configuration
45822//! locale : Scottish Gaelic [gd]
45823//! author : Jon Ashdown : https://github.com/jonashdown
45824
45825;(function (global, factory) {
45826    true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/moment/moment.js")) :
45827   undefined
45828}(this, (function (moment) { 'use strict';
45829
45830    //! moment.js locale configuration
45831
45832    var months = [
45833            'Am Faoilleach',
45834            'An Gearran',
45835            'Am Màrt',
45836            'An Giblean',
45837            'An Cèitean',
45838            'An t-Ògmhios',
45839            'An t-Iuchar',
45840            'An Lùnastal',
45841            'An t-Sultain',
45842            'An Dàmhair',
45843            'An t-Samhain',
45844            'An Dùbhlachd',
45845        ],
45846        monthsShort = [
45847            'Faoi',
45848            'Gear',
45849            'Màrt',
45850            'Gibl',
45851            'Cèit',
45852            'Ògmh',
45853            'Iuch',
45854            'Lùn',
45855            'Sult',
45856            'Dàmh',
45857            'Samh',
45858            'Dùbh',
45859        ],
45860        weekdays = [
45861            'Didòmhnaich',
45862            'Diluain',
45863            'Dimàirt',
45864            'Diciadain',
45865            'Diardaoin',
45866            'Dihaoine',
45867            'Disathairne',
45868        ],
45869        weekdaysShort = ['Did', 'Dil', 'Dim', 'Dic', 'Dia', 'Dih', 'Dis'],
45870        weekdaysMin = ['Dò', 'Lu', 'Mà', 'Ci', 'Ar', 'Ha', 'Sa'];
45871
45872    var gd = moment.defineLocale('gd', {
45873        months: months,
45874        monthsShort: monthsShort,
45875        monthsParseExact: true,
45876        weekdays: weekdays,
45877        weekdaysShort: weekdaysShort,
45878        weekdaysMin: weekdaysMin,
45879        longDateFormat: {
45880            LT: 'HH:mm',
45881            LTS: 'HH:mm:ss',
45882            L: 'DD/MM/YYYY',
45883            LL: 'D MMMM YYYY',
45884            LLL: 'D MMMM YYYY HH:mm',
45885            LLLL: 'dddd, D MMMM YYYY HH:mm',
45886        },
45887        calendar: {
45888            sameDay: '[An-diugh aig] LT',
45889            nextDay: '[A-màireach aig] LT',
45890            nextWeek: 'dddd [aig] LT',
45891            lastDay: '[An-dè aig] LT',
45892            lastWeek: 'dddd [seo chaidh] [aig] LT',
45893            sameElse: 'L',
45894        },
45895        relativeTime: {
45896            future: 'ann an %s',
45897            past: 'bho chionn %s',
45898            s: 'beagan diogan',
45899            ss: '%d diogan',
45900            m: 'mionaid',
45901            mm: '%d mionaidean',
45902            h: 'uair',
45903            hh: '%d uairean',
45904            d: 'latha',
45905            dd: '%d latha',
45906            M: 'mìos',
45907            MM: '%d mìosan',
45908            y: 'bliadhna',
45909            yy: '%d bliadhna',
45910        },
45911        dayOfMonthOrdinalParse: /\d{1,2}(d|na|mh)/,
45912        ordinal: function (number) {
45913            var output = number === 1 ? 'd' : number % 10 === 2 ? 'na' : 'mh';
45914            return number + output;
45915        },
45916        week: {
45917            dow: 1, // Monday is the first day of the week.
45918            doy: 4, // The week that contains Jan 4th is the first week of the year.
45919        },
45920    });
45921
45922    return gd;
45923
45924})));
45925
45926
45927/***/ }),
45928
vendor: 3,117 bytes, lines 45929-46023
45929/***/ "./node_modules/moment/locale/gl.js":
45930/*!******************************************!*\
45931  !*** ./node_modules/moment/locale/gl.js ***!
45932  \******************************************/
45933/*! no static exports found */
45934/***/ (function(module, exports, __webpack_require__) {
45935
45936//! moment.js locale configuration
45937//! locale : Galician [gl]
45938//! author : Juan G. Hurtado : https://github.com/juanghurtado
45939
45940;(function (global, factory) {
45941    true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/moment/moment.js")) :
45942   undefined
45943}(this, (function (moment) { 'use strict';
45944
45945    //! moment.js locale configuration
45946
45947    var gl = moment.defineLocale('gl', {
45948        months: 'xaneiro_febreiro_marzo_abril_maio_xuño_xullo_agosto_setembro_outubro_novembro_decembro'.split(
45949            '_'
45950        ),
45951        monthsShort:
45952            'xan._feb._mar._abr._mai._xuñ._xul._ago._set._out._nov._dec.'.split(
45953                '_'
45954            ),
45955        monthsParseExact: true,
45956        weekdays: 'domingo_luns_martes_mércores_xoves_venres_sábado'.split('_'),
45957        weekdaysShort: 'dom._lun._mar._mér._xov._ven._sáb.'.split('_'),
45958        weekdaysMin: 'do_lu_ma_mé_xo_ve_sá'.split('_'),
45959        weekdaysParseExact: true,
45960        longDateFormat: {
45961            LT: 'H:mm',
45962            LTS: 'H:mm:ss',
45963            L: 'DD/MM/YYYY',
45964            LL: 'D [de] MMMM [de] YYYY',
45965            LLL: 'D [de] MMMM [de] YYYY H:mm',
45966            LLLL: 'dddd, D [de] MMMM [de] YYYY H:mm',
45967        },
45968        calendar: {
45969            sameDay: function () {
45970                return '[hoxe ' + (this.hours() !== 1 ? 'ás' : 'á') + '] LT';
45971            },
45972            nextDay: function () {
45973                return '[mañá ' + (this.hours() !== 1 ? 'ás' : 'á') + '] LT';
45974            },
45975            nextWeek: function () {
45976                return 'dddd [' + (this.hours() !== 1 ? 'ás' : 'a') + '] LT';
45977            },
45978            lastDay: function () {
45979                return '[onte ' + (this.hours() !== 1 ? 'á' : 'a') + '] LT';
45980            },
45981            lastWeek: function () {
45982                return (
45983                    '[o] dddd [pasado ' + (this.hours() !== 1 ? 'ás' : 'a') + '] LT'
45984                );
45985            },
45986            sameElse: 'L',
45987        },
45988        relativeTime: {
45989            future: function (str) {
45990                if (str.indexOf('un') === 0) {
45991                    return 'n' + str;
45992                }
45993                return 'en ' + str;
45994            },
45995            past: 'hai %s',
45996            s: 'uns segundos',
45997            ss: '%d segundos',
45998            m: 'un minuto',
45999            mm: '%d minutos',
46000            h: 'unha hora',
46001            hh: '%d horas',
46002            d: 'un día',
46003            dd: '%d días',
46004            M: 'un mes',
46005            MM: '%d meses',
46006            y: 'un ano',
46007            yy: '%d anos',
46008        },
46009        dayOfMonthOrdinalParse: /\d{1,2}º/,
46010        ordinal: '%dº',
46011        week: {
46012            dow: 1, // Monday is the first day of the week.
46013            doy: 4, // The week that contains Jan 4th is the first week of the year.
46014        },
46015    });
46016
46017    return gl;
46018
46019})));
46020
46021
46022/***/ }),
46023
vendor: 6,510 bytes, lines 46024-46169
46024/***/ "./node_modules/moment/locale/gom-deva.js":
46025/*!************************************************!*\
46026  !*** ./node_modules/moment/locale/gom-deva.js ***!
46027  \************************************************/
46028/*! no static exports found */
46029/***/ (function(module, exports, __webpack_require__) {
46030
46031//! moment.js locale configuration
46032//! locale : Konkani Devanagari script [gom-deva]
46033//! author : The Discoverer : https://github.com/WikiDiscoverer
46034
46035;(function (global, factory) {
46036    true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/moment/moment.js")) :
46037   undefined
46038}(this, (function (moment) { 'use strict';
46039
46040    //! moment.js locale configuration
46041
46042    function processRelativeTime(number, withoutSuffix, key, isFuture) {
46043        var format = {
46044            s: ['थोडया सॅकंडांनी', 'थोडे सॅकंड'],
46045            ss: [number + ' सॅकंडांनी', number + ' सॅकंड'],
46046            m: ['एका मिणटान', 'एक मिनूट'],
46047            mm: [number + ' मिणटांनी', number + ' मिणटां'],
46048            h: ['एका वरान', 'एक वर'],
46049            hh: [number + ' वरांनी', number + ' वरां'],
46050            d: ['एका दिसान', 'एक दीस'],
46051            dd: [number + ' दिसांनी', number + ' दीस'],
46052            M: ['एका म्हयन्यान', 'एक म्हयनो'],
46053            MM: [number + ' म्हयन्यानी', number + ' म्हयने'],
46054            y: ['एका वर्सान', 'एक वर्स'],
46055            yy: [number + ' वर्सांनी', number + ' वर्सां'],
46056        };
46057        return isFuture ? format[key][0] : format[key][1];
46058    }
46059
46060    var gomDeva = moment.defineLocale('gom-deva', {
46061        months: {
46062            standalone:
46063                'जानेवारी_फेब्रुवारी_मार्च_एप्रील_मे_जून_जुलय_ऑगस्ट_सप्टेंबर_ऑक्टोबर_नोव्हेंबर_डिसेंबर'.split(
46064                    '_'
46065                ),
46066            format: 'जानेवारीच्या_फेब्रुवारीच्या_मार्चाच्या_एप्रीलाच्या_मेयाच्या_जूनाच्या_जुलयाच्या_ऑगस्टाच्या_सप्टेंबराच्या_ऑक्टोबराच्या_नोव्हेंबराच्या_डिसेंबराच्या'.split(
46067                '_'
46068            ),
46069            isFormat: /MMMM(\s)+D[oD]?/,
46070        },
46071        monthsShort:
46072            'जाने._फेब्रु._मार्च_एप्री._मे_जून_जुल._ऑग._सप्टें._ऑक्टो._नोव्हें._डिसें.'.split(
46073                '_'
46074            ),
46075        monthsParseExact: true,
46076        weekdays: 'आयतार_सोमार_मंगळार_बुधवार_बिरेस्तार_सुक्रार_शेनवार'.split('_'),
46077        weekdaysShort: 'आयत._सोम._मंगळ._बुध._ब्रेस्त._सुक्र._शेन.'.split('_'),
46078        weekdaysMin: 'आ_सो_मं_बु_ब्रे_सु_शे'.split('_'),
46079        weekdaysParseExact: true,
46080        longDateFormat: {
46081            LT: 'A h:mm [वाजतां]',
46082            LTS: 'A h:mm:ss [वाजतां]',
46083            L: 'DD-MM-YYYY',
46084            LL: 'D MMMM YYYY',
46085            LLL: 'D MMMM YYYY A h:mm [वाजतां]',
46086            LLLL: 'dddd, MMMM Do, YYYY, A h:mm [वाजतां]',
46087            llll: 'ddd, D MMM YYYY, A h:mm [वाजतां]',
46088        },
46089        calendar: {
46090            sameDay: '[आयज] LT',
46091            nextDay: '[फाल्यां] LT',
46092            nextWeek: '[फुडलो] dddd[,] LT',
46093            lastDay: '[काल] LT',
46094            lastWeek: '[फाटलो] dddd[,] LT',
46095            sameElse: 'L',
46096        },
46097        relativeTime: {
46098            future: '%s',
46099            past: '%s आदीं',
46100            s: processRelativeTime,
46101            ss: processRelativeTime,
46102            m: processRelativeTime,
46103            mm: processRelativeTime,
46104            h: processRelativeTime,
46105            hh: processRelativeTime,
46106            d: processRelativeTime,
46107            dd: processRelativeTime,
46108            M: processRelativeTime,
46109            MM: processRelativeTime,
46110            y: processRelativeTime,
46111            yy: processRelativeTime,
46112        },
46113        dayOfMonthOrdinalParse: /\d{1,2}(वेर)/,
46114        ordinal: function (number, period) {
46115            switch (period) {
46116                // the ordinal 'वेर' only applies to day of the month
46117                case 'D':
46118                    return number + 'वेर';
46119                default:
46120                case 'M':
46121                case 'Q':
46122                case 'DDD':
46123                case 'd':
46124                case 'w':
46125                case 'W':
46126                    return number;
46127            }
46128        },
46129        week: {
46130            dow: 0, // Sunday is the first day of the week
46131            doy: 3, // The week that contains Jan 4th is the first week of the year (7 + 0 - 4)
46132        },
46133        meridiemParse: /राती|सकाळीं|दनपारां|सांजे/,
46134        meridiemHour: function (hour, meridiem) {
46135            if (hour === 12) {
46136                hour = 0;
46137            }
46138            if (meridiem === 'राती') {
46139                return hour < 4 ? hour : hour + 12;
46140            } else if (meridiem === 'सकाळीं') {
46141                return hour;
46142            } else if (meridiem === 'दनपारां') {
46143                return hour > 12 ? hour : hour + 12;
46144            } else if (meridiem === 'सांजे') {
46145                return hour + 12;
46146            }
46147        },
46148        meridiem: function (hour, minute, isLower) {
46149            if (hour < 4) {
46150                return 'राती';
46151            } else if (hour < 12) {
46152                return 'सकाळीं';
46153            } else if (hour < 16) {
46154                return 'दनपारां';
46155            } else if (hour < 20) {
46156                return 'सांजे';
46157            } else {
46158                return 'राती';
46159            }
46160        },
46161    });
46162
46163    return gomDeva;
46164
46165})));
46166
46167
46168/***/ }),
46169
vendor: 5,126 bytes, lines 46170-46313
46170/***/ "./node_modules/moment/locale/gom-latn.js":
46171/*!************************************************!*\
46172  !*** ./node_modules/moment/locale/gom-latn.js ***!
46173  \************************************************/
46174/*! no static exports found */
46175/***/ (function(module, exports, __webpack_require__) {
46176
46177//! moment.js locale configuration
46178//! locale : Konkani Latin script [gom-latn]
46179//! author : The Discoverer : https://github.com/WikiDiscoverer
46180
46181;(function (global, factory) {
46182    true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/moment/moment.js")) :
46183   undefined
46184}(this, (function (moment) { 'use strict';
46185
46186    //! moment.js locale configuration
46187
46188    function processRelativeTime(number, withoutSuffix, key, isFuture) {
46189        var format = {
46190            s: ['thoddea sekondamni', 'thodde sekond'],
46191            ss: [number + ' sekondamni', number + ' sekond'],
46192            m: ['eka mintan', 'ek minut'],
46193            mm: [number + ' mintamni', number + ' mintam'],
46194            h: ['eka voran', 'ek vor'],
46195            hh: [number + ' voramni', number + ' voram'],
46196            d: ['eka disan', 'ek dis'],
46197            dd: [number + ' disamni', number + ' dis'],
46198            M: ['eka mhoinean', 'ek mhoino'],
46199            MM: [number + ' mhoineamni', number + ' mhoine'],
46200            y: ['eka vorsan', 'ek voros'],
46201            yy: [number + ' vorsamni', number + ' vorsam'],
46202        };
46203        return isFuture ? format[key][0] : format[key][1];
46204    }
46205
46206    var gomLatn = moment.defineLocale('gom-latn', {
46207        months: {
46208            standalone:
46209                'Janer_Febrer_Mars_Abril_Mai_Jun_Julai_Agost_Setembr_Otubr_Novembr_Dezembr'.split(
46210                    '_'
46211                ),
46212            format: 'Janerachea_Febrerachea_Marsachea_Abrilachea_Maiachea_Junachea_Julaiachea_Agostachea_Setembrachea_Otubrachea_Novembrachea_Dezembrachea'.split(
46213                '_'
46214            ),
46215            isFormat: /MMMM(\s)+D[oD]?/,
46216        },
46217        monthsShort:
46218            'Jan._Feb._Mars_Abr._Mai_Jun_Jul._Ago._Set._Otu._Nov._Dez.'.split('_'),
46219        monthsParseExact: true,
46220        weekdays: "Aitar_Somar_Mongllar_Budhvar_Birestar_Sukrar_Son'var".split('_'),
46221        weekdaysShort: 'Ait._Som._Mon._Bud._Bre._Suk._Son.'.split('_'),
46222        weekdaysMin: 'Ai_Sm_Mo_Bu_Br_Su_Sn'.split('_'),
46223        weekdaysParseExact: true,
46224        longDateFormat: {
46225            LT: 'A h:mm [vazta]',
46226            LTS: 'A h:mm:ss [vazta]',
46227            L: 'DD-MM-YYYY',
46228            LL: 'D MMMM YYYY',
46229            LLL: 'D MMMM YYYY A h:mm [vazta]',
46230            LLLL: 'dddd, MMMM Do, YYYY, A h:mm [vazta]',
46231            llll: 'ddd, D MMM YYYY, A h:mm [vazta]',
46232        },
46233        calendar: {
46234            sameDay: '[Aiz] LT',
46235            nextDay: '[Faleam] LT',
46236            nextWeek: '[Fuddlo] dddd[,] LT',
46237            lastDay: '[Kal] LT',
46238            lastWeek: '[Fattlo] dddd[,] LT',
46239            sameElse: 'L',
46240        },
46241        relativeTime: {
46242            future: '%s',
46243            past: '%s adim',
46244            s: processRelativeTime,
46245            ss: processRelativeTime,
46246            m: processRelativeTime,
46247            mm: processRelativeTime,
46248            h: processRelativeTime,
46249            hh: processRelativeTime,
46250            d: processRelativeTime,
46251            dd: processRelativeTime,
46252            M: processRelativeTime,
46253            MM: processRelativeTime,
46254            y: processRelativeTime,
46255            yy: processRelativeTime,
46256        },
46257        dayOfMonthOrdinalParse: /\d{1,2}(er)/,
46258        ordinal: function (number, period) {
46259            switch (period) {
46260                // the ordinal 'er' only applies to day of the month
46261                case 'D':
46262                    return number + 'er';
46263                default:
46264                case 'M':
46265                case 'Q':
46266                case 'DDD':
46267                case 'd':
46268                case 'w':
46269                case 'W':
46270                    return number;
46271            }
46272        },
46273        week: {
46274            dow: 0, // Sunday is the first day of the week
46275            doy: 3, // The week that contains Jan 4th is the first week of the year (7 + 0 - 4)
46276        },
46277        meridiemParse: /rati|sokallim|donparam|sanje/,
46278        meridiemHour: function (hour, meridiem) {
46279            if (hour === 12) {
46280                hour = 0;
46281            }
46282            if (meridiem === 'rati') {
46283                return hour < 4 ? hour : hour + 12;
46284            } else if (meridiem === 'sokallim') {
46285                return hour;
46286            } else if (meridiem === 'donparam') {
46287                return hour > 12 ? hour : hour + 12;
46288            } else if (meridiem === 'sanje') {
46289                return hour + 12;
46290            }
46291        },
46292        meridiem: function (hour, minute, isLower) {
46293            if (hour < 4) {
46294                return 'rati';
46295            } else if (hour < 12) {
46296                return 'sokallim';
46297            } else if (hour < 16) {
46298                return 'donparam';
46299            } else if (hour < 20) {
46300                return 'sanje';
46301            } else {
46302                return 'rati';
46303            }
46304        },
46305    });
46306
46307    return gomLatn;
46308
46309})));
46310
46311
46312/***/ }),
46313
vendor: 5,086 bytes, lines 46314-46455
46314/***/ "./node_modules/moment/locale/gu.js":
46315/*!******************************************!*\
46316  !*** ./node_modules/moment/locale/gu.js ***!
46317  \******************************************/
46318/*! no static exports found */
46319/***/ (function(module, exports, __webpack_require__) {
46320
46321//! moment.js locale configuration
46322//! locale : Gujarati [gu]
46323//! author : Kaushik Thanki : https://github.com/Kaushik1987
46324
46325;(function (global, factory) {
46326    true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/moment/moment.js")) :
46327   undefined
46328}(this, (function (moment) { 'use strict';
46329
46330    //! moment.js locale configuration
46331
46332    var symbolMap = {
46333            1: 'à«§',
46334            2: '૨',
46335            3: 'à«©',
46336            4: '૪',
46337            5: 'à««',
46338            6: '૬',
46339            7: 'à«­',
46340            8: 'à«®',
46341            9: '૯',
46342            0: '૦',
46343        },
46344        numberMap = {
46345            'à«§': '1',
46346            '૨': '2',
46347            'à«©': '3',
46348            '૪': '4',
46349            'à««': '5',
46350            '૬': '6',
46351            'à«­': '7',
46352            'à«®': '8',
46353            '૯': '9',
46354            '૦': '0',
46355        };
46356
46357    var gu = moment.defineLocale('gu', {
46358        months: 'જાન્યુઆરી_ફેબ્રુઆરી_માર્ચ_એપ્રિલ_મે_જૂન_જુલાઈ_ઑગસ્ટ_સપ્ટેમ્બર_ઑક્ટ્બર_નવેમ્બર_ડિસેમ્બર'.split(
46359            '_'
46360        ),
46361        monthsShort:
46362            'જાન્યુ._ફેબ્રુ._માર્ચ_એપ્રિ._મે_જૂન_જુલા._ઑગ._સપ્ટે._ઑક્ટ્._નવે._ડિસે.'.split(
46363                '_'
46364            ),
46365        monthsParseExact: true,
46366        weekdays: 'રવિવાર_સોમવાર_મંગળવાર_બુધ્વાર_ગુરુવાર_શુક્રવાર_શનિવાર'.split(
46367            '_'
46368        ),
46369        weekdaysShort: 'રવિ_સોમ_મંગળ_બુધ્_ગુરુ_શુક્ર_શનિ'.split('_'),
46370        weekdaysMin: 'ર_સો_મં_બુ_ગુ_શુ_શ'.split('_'),
46371        longDateFormat: {
46372            LT: 'A h:mm વાગ્યે',
46373            LTS: 'A h:mm:ss વાગ્યે',
46374            L: 'DD/MM/YYYY',
46375            LL: 'D MMMM YYYY',
46376            LLL: 'D MMMM YYYY, A h:mm વાગ્યે',
46377            LLLL: 'dddd, D MMMM YYYY, A h:mm વાગ્યે',
46378        },
46379        calendar: {
46380            sameDay: '[આજ] LT',
46381            nextDay: '[કાલે] LT',
46382            nextWeek: 'dddd, LT',
46383            lastDay: '[ગઇકાલે] LT',
46384            lastWeek: '[પાછલા] dddd, LT',
46385            sameElse: 'L',
46386        },
46387        relativeTime: {
46388            future: '%s મા',
46389            past: '%s પહેલા',
46390            s: 'અમુક પળો',
46391            ss: '%d સેકંડ',
46392            m: 'એક મિનિટ',
46393            mm: '%d મિનિટ',
46394            h: 'એક કલાક',
46395            hh: '%d કલાક',
46396            d: 'એક દિવસ',
46397            dd: '%d દિવસ',
46398            M: 'એક મહિનો',
46399            MM: '%d મહિનો',
46400            y: 'એક વર્ષ',
46401            yy: '%d વર્ષ',
46402        },
46403        preparse: function (string) {
46404            return string.replace(/[૧૨૩૪૫૬૭૮૯૦]/g, function (match) {
46405                return numberMap[match];
46406            });
46407        },
46408        postformat: function (string) {
46409            return string.replace(/\d/g, function (match) {
46410                return symbolMap[match];
46411            });
46412        },
46413        // Gujarati notation for meridiems are quite fuzzy in practice. While there exists
46414        // a rigid notion of a 'Pahar' it is not used as rigidly in modern Gujarati.
46415        meridiemParse: /રાત|બપોર|સવાર|સાંજ/,
46416        meridiemHour: function (hour, meridiem) {
46417            if (hour === 12) {
46418                hour = 0;
46419            }
46420            if (meridiem === 'રાત') {
46421                return hour < 4 ? hour : hour + 12;
46422            } else if (meridiem === 'સવાર') {
46423                return hour;
46424            } else if (meridiem === 'બપોર') {
46425                return hour >= 10 ? hour : hour + 12;
46426            } else if (meridiem === 'સાંજ') {
46427                return hour + 12;
46428            }
46429        },
46430        meridiem: function (hour, minute, isLower) {
46431            if (hour < 4) {
46432                return 'રાત';
46433            } else if (hour < 10) {
46434                return 'સવાર';
46435            } else if (hour < 17) {
46436                return 'બપોર';
46437            } else if (hour < 20) {
46438                return 'સાંજ';
46439            } else {
46440                return 'રાત';
46441            }
46442        },
46443        week: {
46444            dow: 0, // Sunday is the first day of the week.
46445            doy: 6, // The week that contains Jan 6th is the first week of the year.
46446        },
46447    });
46448
46449    return gu;
46450
46451})));
46452
46453
46454/***/ }),
46455
vendor: 4,049 bytes, lines 46456-46569
46456/***/ "./node_modules/moment/locale/he.js":
46457/*!******************************************!*\
46458  !*** ./node_modules/moment/locale/he.js ***!
46459  \******************************************/
46460/*! no static exports found */
46461/***/ (function(module, exports, __webpack_require__) {
46462
46463//! moment.js locale configuration
46464//! locale : Hebrew [he]
46465//! author : Tomer Cohen : https://github.com/tomer
46466//! author : Moshe Simantov : https://github.com/DevelopmentIL
46467//! author : Tal Ater : https://github.com/TalAter
46468
46469;(function (global, factory) {
46470    true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/moment/moment.js")) :
46471   undefined
46472}(this, (function (moment) { 'use strict';
46473
46474    //! moment.js locale configuration
46475
46476    var he = moment.defineLocale('he', {
46477        months: 'ינואר_פברואר_מרץ_אפריל_מאי_יוני_יולי_אוגוסט_ספטמבר_אוקטובר_נובמבר_דצמבר'.split(
46478            '_'
46479        ),
46480        monthsShort:
46481            'ינו׳_פבר׳_מרץ_אפר׳_מאי_יוני_יולי_אוג׳_ספט׳_אוק׳_נוב׳_דצמ׳'.split('_'),
46482        weekdays: 'ראשון_שני_שלישי_רביעי_חמישי_שישי_שבת'.split('_'),
46483        weekdaysShort: 'א׳_ב׳_ג׳_ד׳_ה׳_ו׳_ש׳'.split('_'),
46484        weekdaysMin: 'א_ב_ג_ד_ה_ו_ש'.split('_'),
46485        longDateFormat: {
46486            LT: 'HH:mm',
46487            LTS: 'HH:mm:ss',
46488            L: 'DD/MM/YYYY',
46489            LL: 'D [ב]MMMM YYYY',
46490            LLL: 'D [ב]MMMM YYYY HH:mm',
46491            LLLL: 'dddd, D [ב]MMMM YYYY HH:mm',
46492            l: 'D/M/YYYY',
46493            ll: 'D MMM YYYY',
46494            lll: 'D MMM YYYY HH:mm',
46495            llll: 'ddd, D MMM YYYY HH:mm',
46496        },
46497        calendar: {
46498            sameDay: '[היום ב־]LT',
46499            nextDay: '[מחר ב־]LT',
46500            nextWeek: 'dddd [בשעה] LT',
46501            lastDay: '[אתמול ב־]LT',
46502            lastWeek: '[ביום] dddd [האחרון בשעה] LT',
46503            sameElse: 'L',
46504        },
46505        relativeTime: {
46506            future: 'בעוד %s',
46507            past: 'לפני %s',
46508            s: 'מספר שניות',
46509            ss: '%d שניות',
46510            m: 'דקה',
46511            mm: '%d דקות',
46512            h: 'שעה',
46513            hh: function (number) {
46514                if (number === 2) {
46515                    return 'שעתיים';
46516                }
46517                return number + ' שעות';
46518            },
46519            d: 'יום',
46520            dd: function (number) {
46521                if (number === 2) {
46522                    return 'יומיים';
46523                }
46524                return number + ' ימים';
46525            },
46526            M: 'חודש',
46527            MM: function (number) {
46528                if (number === 2) {
46529                    return 'חודשיים';
46530                }
46531                return number + ' חודשים';
46532            },
46533            y: 'שנה',
46534            yy: function (number) {
46535                if (number === 2) {
46536                    return 'שנתיים';
46537                } else if (number % 10 === 0 && number !== 10) {
46538                    return number + ' שנה';
46539                }
46540                return number + ' שנים';
46541            },
46542        },
46543        meridiemParse:
46544            /אחה"צ|לפנה"צ|אחרי הצהריים|לפני הצהריים|לפנות בוקר|בבוקר|בערב/i,
46545        isPM: function (input) {
46546            return /^(אחה"צ|אחרי הצהריים|בערב)$/.test(input);
46547        },
46548        meridiem: function (hour, minute, isLower) {
46549            if (hour < 5) {
46550                return 'לפנות בוקר';
46551            } else if (hour < 10) {
46552                return 'בבוקר';
46553            } else if (hour < 12) {
46554                return isLower ? 'לפנה"צ' : 'לפני הצהריים';
46555            } else if (hour < 18) {
46556                return isLower ? 'אחה"צ' : 'אחרי הצהריים';
46557            } else {
46558                return 'בערב';
46559            }
46560        },
46561    });
46562
46563    return he;
46564
46565})));
46566
46567
46568/***/ }),
46569
vendor: 7,535 bytes, lines 46570-46757
46570/***/ "./node_modules/moment/locale/hi.js":
46571/*!******************************************!*\
46572  !*** ./node_modules/moment/locale/hi.js ***!
46573  \******************************************/
46574/*! no static exports found */
46575/***/ (function(module, exports, __webpack_require__) {
46576
46577//! moment.js locale configuration
46578//! locale : Hindi [hi]
46579//! author : Mayank Singhal : https://github.com/mayanksinghal
46580
46581;(function (global, factory) {
46582    true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/moment/moment.js")) :
46583   undefined
46584}(this, (function (moment) { 'use strict';
46585
46586    //! moment.js locale configuration
46587
46588    var symbolMap = {
46589            1: '१',
46590            2: '२',
46591            3: '३',
46592            4: '४',
46593            5: '५',
46594            6: '६',
46595            7: '७',
46596            8: '८',
46597            9: '९',
46598            0: '०',
46599        },
46600        numberMap = {
46601            '१': '1',
46602            '२': '2',
46603            '३': '3',
46604            '४': '4',
46605            '५': '5',
46606            '६': '6',
46607            '७': '7',
46608            '८': '8',
46609            '९': '9',
46610            '०': '0',
46611        },
46612        monthsParse = [
46613            /^जन/i,
46614            /^फ़र|फर/i,
46615            /^मार्च/i,
46616            /^अप्रै/i,
46617            /^मई/i,
46618            /^जून/i,
46619            /^जुल/i,
46620            /^अग/i,
46621            /^सितं|सित/i,
46622            /^अक्टू/i,
46623            /^नव|नवं/i,
46624            /^दिसं|दिस/i,
46625        ],
46626        shortMonthsParse = [
46627            /^जन/i,
46628            /^फ़र/i,
46629            /^मार्च/i,
46630            /^अप्रै/i,
46631            /^मई/i,
46632            /^जून/i,
46633            /^जुल/i,
46634            /^अग/i,
46635            /^सित/i,
46636            /^अक्टू/i,
46637            /^नव/i,
46638            /^दिस/i,
46639        ];
46640
46641    var hi = moment.defineLocale('hi', {
46642        months: {
46643            format: 'जनवरी_फ़रवरी_मार्च_अप्रैल_मई_जून_जुलाई_अगस्त_सितम्बर_अक्टूबर_नवम्बर_दिसम्बर'.split(
46644                '_'
46645            ),
46646            standalone:
46647                'जनवरी_फरवरी_मार्च_अप्रैल_मई_जून_जुलाई_अगस्त_सितंबर_अक्टूबर_नवंबर_दिसंबर'.split(
46648                    '_'
46649                ),
46650        },
46651        monthsShort:
46652            'जन._फ़र._मार्च_अप्रै._मई_जून_जुल._अग._सित._अक्टू._नव._दिस.'.split('_'),
46653        weekdays: 'रविवार_सोमवार_मंगलवार_बुधवार_गुरूवार_शुक्रवार_शनिवार'.split('_'),
46654        weekdaysShort: 'रवि_सोम_मंगल_बुध_गुरू_शुक्र_शनि'.split('_'),
46655        weekdaysMin: 'र_सो_मं_बु_गु_शु_श'.split('_'),
46656        longDateFormat: {
46657            LT: 'A h:mm बजे',
46658            LTS: 'A h:mm:ss बजे',
46659            L: 'DD/MM/YYYY',
46660            LL: 'D MMMM YYYY',
46661            LLL: 'D MMMM YYYY, A h:mm बजे',
46662            LLLL: 'dddd, D MMMM YYYY, A h:mm बजे',
46663        },
46664
46665        monthsParse: monthsParse,
46666        longMonthsParse: monthsParse,
46667        shortMonthsParse: shortMonthsParse,
46668
46669        monthsRegex:
46670            /^(जनवरी|जन\.?|फ़रवरी|फरवरी|फ़र\.?|मार्च?|अप्रैल|अप्रै\.?|मई?|जून?|जुलाई|जुल\.?|अगस्त|अग\.?|सितम्बर|सितंबर|सित\.?|अक्टूबर|अक्टू\.?|नवम्बर|नवंबर|नव\.?|दिसम्बर|दिसंबर|दिस\.?)/i,
46671
46672        monthsShortRegex:
46673            /^(जनवरी|जन\.?|फ़रवरी|फरवरी|फ़र\.?|मार्च?|अप्रैल|अप्रै\.?|मई?|जून?|जुलाई|जुल\.?|अगस्त|अग\.?|सितम्बर|सितंबर|सित\.?|अक्टूबर|अक्टू\.?|नवम्बर|नवंबर|नव\.?|दिसम्बर|दिसंबर|दिस\.?)/i,
46674
46675        monthsStrictRegex:
46676            /^(जनवरी?|फ़रवरी|फरवरी?|मार्च?|अप्रैल?|मई?|जून?|जुलाई?|अगस्त?|सितम्बर|सितंबर|सित?\.?|अक्टूबर|अक्टू\.?|नवम्बर|नवंबर?|दिसम्बर|दिसंबर?)/i,
46677
46678        monthsShortStrictRegex:
46679            /^(जन\.?|फ़र\.?|मार्च?|अप्रै\.?|मई?|जून?|जुल\.?|अग\.?|सित\.?|अक्टू\.?|नव\.?|दिस\.?)/i,
46680
46681        calendar: {
46682            sameDay: '[आज] LT',
46683            nextDay: '[कल] LT',
46684            nextWeek: 'dddd, LT',
46685            lastDay: '[कल] LT',
46686            lastWeek: '[पिछले] dddd, LT',
46687            sameElse: 'L',
46688        },
46689        relativeTime: {
46690            future: '%s में',
46691            past: '%s पहले',
46692            s: 'कुछ ही क्षण',
46693            ss: '%d सेकंड',
46694            m: 'एक मिनट',
46695            mm: '%d मिनट',
46696            h: 'एक घंटा',
46697            hh: '%d घंटे',
46698            d: 'एक दिन',
46699            dd: '%d दिन',
46700            M: 'एक महीने',
46701            MM: '%d महीने',
46702            y: 'एक वर्ष',
46703            yy: '%d वर्ष',
46704        },
46705        preparse: function (string) {
46706            return string.replace(/[१२३४५६७८९०]/g, function (match) {
46707                return numberMap[match];
46708            });
46709        },
46710        postformat: function (string) {
46711            return string.replace(/\d/g, function (match) {
46712                return symbolMap[match];
46713            });
46714        },
46715        // Hindi notation for meridiems are quite fuzzy in practice. While there exists
46716        // a rigid notion of a 'Pahar' it is not used as rigidly in modern Hindi.
46717        meridiemParse: /रात|सुबह|दोपहर|शाम/,
46718        meridiemHour: function (hour, meridiem) {
46719            if (hour === 12) {
46720                hour = 0;
46721            }
46722            if (meridiem === 'रात') {
46723                return hour < 4 ? hour : hour + 12;
46724            } else if (meridiem === 'सुबह') {
46725                return hour;
46726            } else if (meridiem === 'दोपहर') {
46727                return hour >= 10 ? hour : hour + 12;
46728            } else if (meridiem === 'शाम') {
46729                return hour + 12;
46730            }
46731        },
46732        meridiem: function (hour, minute, isLower) {
46733            if (hour < 4) {
46734                return 'रात';
46735            } else if (hour < 10) {
46736                return 'सुबह';
46737            } else if (hour < 17) {
46738                return 'दोपहर';
46739            } else if (hour < 20) {
46740                return 'शाम';
46741            } else {
46742                return 'रात';
46743            }
46744        },
46745        week: {
46746            dow: 0, // Sunday is the first day of the week.
46747            doy: 6, // The week that contains Jan 6th is the first week of the year.
46748        },
46749    });
46750
46751    return hi;
46752
46753})));
46754
46755
46756/***/ }),
46757
vendor: 5,808 bytes, lines 46758-46933
46758/***/ "./node_modules/moment/locale/hr.js":
46759/*!******************************************!*\
46760  !*** ./node_modules/moment/locale/hr.js ***!
46761  \******************************************/
46762/*! no static exports found */
46763/***/ (function(module, exports, __webpack_require__) {
46764
46765//! moment.js locale configuration
46766//! locale : Croatian [hr]
46767//! author : Bojan Marković : https://github.com/bmarkovic
46768
46769;(function (global, factory) {
46770    true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/moment/moment.js")) :
46771   undefined
46772}(this, (function (moment) { 'use strict';
46773
46774    //! moment.js locale configuration
46775
46776    function translate(number, withoutSuffix, key) {
46777        var result = number + ' ';
46778        switch (key) {
46779            case 'ss':
46780                if (number === 1) {
46781                    result += 'sekunda';
46782                } else if (number === 2 || number === 3 || number === 4) {
46783                    result += 'sekunde';
46784                } else {
46785                    result += 'sekundi';
46786                }
46787                return result;
46788            case 'm':
46789                return withoutSuffix ? 'jedna minuta' : 'jedne minute';
46790            case 'mm':
46791                if (number === 1) {
46792                    result += 'minuta';
46793                } else if (number === 2 || number === 3 || number === 4) {
46794                    result += 'minute';
46795                } else {
46796                    result += 'minuta';
46797                }
46798                return result;
46799            case 'h':
46800                return withoutSuffix ? 'jedan sat' : 'jednog sata';
46801            case 'hh':
46802                if (number === 1) {
46803                    result += 'sat';
46804                } else if (number === 2 || number === 3 || number === 4) {
46805                    result += 'sata';
46806                } else {
46807                    result += 'sati';
46808                }
46809                return result;
46810            case 'dd':
46811                if (number === 1) {
46812                    result += 'dan';
46813                } else {
46814                    result += 'dana';
46815                }
46816                return result;
46817            case 'MM':
46818                if (number === 1) {
46819                    result += 'mjesec';
46820                } else if (number === 2 || number === 3 || number === 4) {
46821                    result += 'mjeseca';
46822                } else {
46823                    result += 'mjeseci';
46824                }
46825                return result;
46826            case 'yy':
46827                if (number === 1) {
46828                    result += 'godina';
46829                } else if (number === 2 || number === 3 || number === 4) {
46830                    result += 'godine';
46831                } else {
46832                    result += 'godina';
46833                }
46834                return result;
46835        }
46836    }
46837
46838    var hr = moment.defineLocale('hr', {
46839        months: {
46840            format: 'siječnja_veljače_ožujka_travnja_svibnja_lipnja_srpnja_kolovoza_rujna_listopada_studenoga_prosinca'.split(
46841                '_'
46842            ),
46843            standalone:
46844                'siječanj_veljača_ožujak_travanj_svibanj_lipanj_srpanj_kolovoz_rujan_listopad_studeni_prosinac'.split(
46845                    '_'
46846                ),
46847        },
46848        monthsShort:
46849            'sij._velj._ožu._tra._svi._lip._srp._kol._ruj._lis._stu._pro.'.split(
46850                '_'
46851            ),
46852        monthsParseExact: true,
46853        weekdays: 'nedjelja_ponedjeljak_utorak_srijeda_četvrtak_petak_subota'.split(
46854            '_'
46855        ),
46856        weekdaysShort: 'ned._pon._uto._sri._čet._pet._sub.'.split('_'),
46857        weekdaysMin: 'ne_po_ut_sr_če_pe_su'.split('_'),
46858        weekdaysParseExact: true,
46859        longDateFormat: {
46860            LT: 'H:mm',
46861            LTS: 'H:mm:ss',
46862            L: 'DD.MM.YYYY',
46863            LL: 'Do MMMM YYYY',
46864            LLL: 'Do MMMM YYYY H:mm',
46865            LLLL: 'dddd, Do MMMM YYYY H:mm',
46866        },
46867        calendar: {
46868            sameDay: '[danas u] LT',
46869            nextDay: '[sutra u] LT',
46870            nextWeek: function () {
46871                switch (this.day()) {
46872                    case 0:
46873                        return '[u] [nedjelju] [u] LT';
46874                    case 3:
46875                        return '[u] [srijedu] [u] LT';
46876                    case 6:
46877                        return '[u] [subotu] [u] LT';
46878                    case 1:
46879                    case 2:
46880                    case 4:
46881                    case 5:
46882                        return '[u] dddd [u] LT';
46883                }
46884            },
46885            lastDay: '[jučer u] LT',
46886            lastWeek: function () {
46887                switch (this.day()) {
46888                    case 0:
46889                        return '[prošlu] [nedjelju] [u] LT';
46890                    case 3:
46891                        return '[prošlu] [srijedu] [u] LT';
46892                    case 6:
46893                        return '[prošle] [subote] [u] LT';
46894                    case 1:
46895                    case 2:
46896                    case 4:
46897                    case 5:
46898                        return '[prošli] dddd [u] LT';
46899                }
46900            },
46901            sameElse: 'L',
46902        },
46903        relativeTime: {
46904            future: 'za %s',
46905            past: 'prije %s',
46906            s: 'par sekundi',
46907            ss: translate,
46908            m: translate,
46909            mm: translate,
46910            h: translate,
46911            hh: translate,
46912            d: 'dan',
46913            dd: translate,
46914            M: 'mjesec',
46915            MM: translate,
46916            y: 'godinu',
46917            yy: translate,
46918        },
46919        dayOfMonthOrdinalParse: /\d{1,2}\./,
46920        ordinal: '%d.',
46921        week: {
46922            dow: 1, // Monday is the first day of the week.
46923            doy: 7, // The week that contains Jan 7th is the first week of the year.
46924        },
46925    });
46926
46927    return hr;
46928
46929})));
46930
46931
46932/***/ }),
46933
vendor: 4,749 bytes, lines 46934-47071
46934/***/ "./node_modules/moment/locale/hu.js":
46935/*!******************************************!*\
46936  !*** ./node_modules/moment/locale/hu.js ***!
46937  \******************************************/
46938/*! no static exports found */
46939/***/ (function(module, exports, __webpack_require__) {
46940
46941//! moment.js locale configuration
46942//! locale : Hungarian [hu]
46943//! author : Adam Brunner : https://github.com/adambrunner
46944//! author : Peter Viszt  : https://github.com/passatgt
46945
46946;(function (global, factory) {
46947    true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/moment/moment.js")) :
46948   undefined
46949}(this, (function (moment) { 'use strict';
46950
46951    //! moment.js locale configuration
46952
46953    var weekEndings =
46954        'vasárnap hétfőn kedden szerdán csütörtökön pénteken szombaton'.split(' ');
46955    function translate(number, withoutSuffix, key, isFuture) {
46956        var num = number;
46957        switch (key) {
46958            case 's':
46959                return isFuture || withoutSuffix
46960                    ? 'néhány másodperc'
46961                    : 'néhány másodperce';
46962            case 'ss':
46963                return num + (isFuture || withoutSuffix)
46964                    ? ' másodperc'
46965                    : ' másodperce';
46966            case 'm':
46967                return 'egy' + (isFuture || withoutSuffix ? ' perc' : ' perce');
46968            case 'mm':
46969                return num + (isFuture || withoutSuffix ? ' perc' : ' perce');
46970            case 'h':
46971                return 'egy' + (isFuture || withoutSuffix ? ' óra' : ' órája');
46972            case 'hh':
46973                return num + (isFuture || withoutSuffix ? ' óra' : ' órája');
46974            case 'd':
46975                return 'egy' + (isFuture || withoutSuffix ? ' nap' : ' napja');
46976            case 'dd':
46977                return num + (isFuture || withoutSuffix ? ' nap' : ' napja');
46978            case 'M':
46979                return 'egy' + (isFuture || withoutSuffix ? ' hónap' : ' hónapja');
46980            case 'MM':
46981                return num + (isFuture || withoutSuffix ? ' hónap' : ' hónapja');
46982            case 'y':
46983                return 'egy' + (isFuture || withoutSuffix ? ' év' : ' éve');
46984            case 'yy':
46985                return num + (isFuture || withoutSuffix ? ' év' : ' éve');
46986        }
46987        return '';
46988    }
46989    function week(isFuture) {
46990        return (
46991            (isFuture ? '' : '[múlt] ') +
46992            '[' +
46993            weekEndings[this.day()] +
46994            '] LT[-kor]'
46995        );
46996    }
46997
46998    var hu = moment.defineLocale('hu', {
46999        months: 'január_február_március_április_május_június_július_augusztus_szeptember_október_november_december'.split(
47000            '_'
47001        ),
47002        monthsShort:
47003            'jan._feb._márc._ápr._máj._jún._júl._aug._szept._okt._nov._dec.'.split(
47004                '_'
47005            ),
47006        monthsParseExact: true,
47007        weekdays: 'vasárnap_hétfő_kedd_szerda_csütörtök_péntek_szombat'.split('_'),
47008        weekdaysShort: 'vas_hét_kedd_sze_csüt_pén_szo'.split('_'),
47009        weekdaysMin: 'v_h_k_sze_cs_p_szo'.split('_'),
47010        longDateFormat: {
47011            LT: 'H:mm',
47012            LTS: 'H:mm:ss',
47013            L: 'YYYY.MM.DD.',
47014            LL: 'YYYY. MMMM D.',
47015            LLL: 'YYYY. MMMM D. H:mm',
47016            LLLL: 'YYYY. MMMM D., dddd H:mm',
47017        },
47018        meridiemParse: /de|du/i,
47019        isPM: function (input) {
47020            return input.charAt(1).toLowerCase() === 'u';
47021        },
47022        meridiem: function (hours, minutes, isLower) {
47023            if (hours < 12) {
47024                return isLower === true ? 'de' : 'DE';
47025            } else {
47026                return isLower === true ? 'du' : 'DU';
47027            }
47028        },
47029        calendar: {
47030            sameDay: '[ma] LT[-kor]',
47031            nextDay: '[holnap] LT[-kor]',
47032            nextWeek: function () {
47033                return week.call(this, true);
47034            },
47035            lastDay: '[tegnap] LT[-kor]',
47036            lastWeek: function () {
47037                return week.call(this, false);
47038            },
47039            sameElse: 'L',
47040        },
47041        relativeTime: {
47042            future: '%s múlva',
47043            past: '%s',
47044            s: translate,
47045            ss: translate,
47046            m: translate,
47047            mm: translate,
47048            h: translate,
47049            hh: translate,
47050            d: translate,
47051            dd: translate,
47052            M: translate,
47053            MM: translate,
47054            y: translate,
47055            yy: translate,
47056        },
47057        dayOfMonthOrdinalParse: /\d{1,2}\./,
47058        ordinal: '%d.',
47059        week: {
47060            dow: 1, // Monday is the first day of the week.
47061            doy: 4, // The week that contains Jan 4th is the first week of the year.
47062        },
47063    });
47064
47065    return hu;
47066
47067})));
47068
47069
47070/***/ }),
47071
vendor: 4,098 bytes, lines 47072-47185
47072/***/ "./node_modules/moment/locale/hy-am.js":
47073/*!*********************************************!*\
47074  !*** ./node_modules/moment/locale/hy-am.js ***!
47075  \*********************************************/
47076/*! no static exports found */
47077/***/ (function(module, exports, __webpack_require__) {
47078
47079//! moment.js locale configuration
47080//! locale : Armenian [hy-am]
47081//! author : Armendarabyan : https://github.com/armendarabyan
47082
47083;(function (global, factory) {
47084    true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/moment/moment.js")) :
47085   undefined
47086}(this, (function (moment) { 'use strict';
47087
47088    //! moment.js locale configuration
47089
47090    var hyAm = moment.defineLocale('hy-am', {
47091        months: {
47092            format: 'հունվարի_փետրվարի_մարտի_ապրիլի_մայիսի_հունիսի_հուլիսի_օգոստոսի_սեպտեմբերի_հոկտեմբերի_նոյեմբերի_դեկտեմբերի'.split(
47093                '_'
47094            ),
47095            standalone:
47096                'հունվար_փետրվար_մարտ_ապրիլ_մայիս_հունիս_հուլիս_օգոստոս_սեպտեմբեր_հոկտեմբեր_նոյեմբեր_դեկտեմբեր'.split(
47097                    '_'
47098                ),
47099        },
47100        monthsShort: 'հնվ_փտր_մրտ_ապր_մյս_հնս_հլս_օգս_սպտ_հկտ_նմբ_դկտ'.split('_'),
47101        weekdays:
47102            'կիրակի_երկուշաբթի_երեքշաբթի_չորեքշաբթի_հինգշաբթի_ուրբաթ_շաբաթ'.split(
47103                '_'
47104            ),
47105        weekdaysShort: 'կրկ_երկ_երք_չրք_հնգ_ուրբ_շբթ'.split('_'),
47106        weekdaysMin: 'կրկ_երկ_երք_չրք_հնգ_ուրբ_շբթ'.split('_'),
47107        longDateFormat: {
47108            LT: 'HH:mm',
47109            LTS: 'HH:mm:ss',
47110            L: 'DD.MM.YYYY',
47111            LL: 'D MMMM YYYY Õ©.',
47112            LLL: 'D MMMM YYYY Õ©., HH:mm',
47113            LLLL: 'dddd, D MMMM YYYY Õ©., HH:mm',
47114        },
47115        calendar: {
47116            sameDay: '[այսօր] LT',
47117            nextDay: '[Õ¾Õ¡Õ²Õ¨] LT',
47118            lastDay: '[երեկ] LT',
47119            nextWeek: function () {
47120                return 'dddd [օրը ժամը] LT';
47121            },
47122            lastWeek: function () {
47123                return '[անցած] dddd [օրը ժամը] LT';
47124            },
47125            sameElse: 'L',
47126        },
47127        relativeTime: {
47128            future: '%s Õ°Õ¥Õ¿Õ¸',
47129            past: '%s Õ¡Õ¼Õ¡Õ»',
47130            s: 'մի քանի վայրկյան',
47131            ss: '%d վայրկյան',
47132            m: 'րոպե',
47133            mm: '%d րոպե',
47134            h: 'ÕªÕ¡Õ´',
47135            hh: '%d ÕªÕ¡Õ´',
47136            d: 'օր',
47137            dd: '%d օր',
47138            M: 'Õ¡Õ´Õ«Õ½',
47139            MM: '%d Õ¡Õ´Õ«Õ½',
47140            y: 'տարի',
47141            yy: '%d տարի',
47142        },
47143        meridiemParse: /գիշերվա|առավոտվա|ցերեկվա|երեկոյան/,
47144        isPM: function (input) {
47145            return /^(ցերեկվա|երեկոյան)$/.test(input);
47146        },
47147        meridiem: function (hour) {
47148            if (hour < 4) {
47149                return 'գիշերվա';
47150            } else if (hour < 12) {
47151                return 'Õ¡Õ¼Õ¡Õ¾Õ¸Õ¿Õ¾Õ¡';
47152            } else if (hour < 17) {
47153                return 'ցերեկվա';
47154            } else {
47155                return 'երեկոյան';
47156            }
47157        },
47158        dayOfMonthOrdinalParse: /\d{1,2}|\d{1,2}-(ին|րդ)/,
47159        ordinal: function (number, period) {
47160            switch (period) {
47161                case 'DDD':
47162                case 'w':
47163                case 'W':
47164                case 'DDDo':
47165                    if (number === 1) {
47166                        return number + '-Õ«Õ¶';
47167                    }
47168                    return number + '-րդ';
47169                default:
47170                    return number;
47171            }
47172        },
47173        week: {
47174            dow: 1, // Monday is the first day of the week.
47175            doy: 7, // The week that contains Jan 7th is the first week of the year.
47176        },
47177    });
47178
47179    return hyAm;
47180
47181})));
47182
47183
47184/***/ }),
47185
vendor: 3,145 bytes, lines 47186-47281
47186/***/ "./node_modules/moment/locale/id.js":
47187/*!******************************************!*\
47188  !*** ./node_modules/moment/locale/id.js ***!
47189  \******************************************/
47190/*! no static exports found */
47191/***/ (function(module, exports, __webpack_require__) {
47192
47193//! moment.js locale configuration
47194//! locale : Indonesian [id]
47195//! author : Mohammad Satrio Utomo : https://github.com/tyok
47196//! reference: http://id.wikisource.org/wiki/Pedoman_Umum_Ejaan_Bahasa_Indonesia_yang_Disempurnakan
47197
47198;(function (global, factory) {
47199    true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/moment/moment.js")) :
47200   undefined
47201}(this, (function (moment) { 'use strict';
47202
47203    //! moment.js locale configuration
47204
47205    var id = moment.defineLocale('id', {
47206        months: 'Januari_Februari_Maret_April_Mei_Juni_Juli_Agustus_September_Oktober_November_Desember'.split(
47207            '_'
47208        ),
47209        monthsShort: 'Jan_Feb_Mar_Apr_Mei_Jun_Jul_Agt_Sep_Okt_Nov_Des'.split('_'),
47210        weekdays: 'Minggu_Senin_Selasa_Rabu_Kamis_Jumat_Sabtu'.split('_'),
47211        weekdaysShort: 'Min_Sen_Sel_Rab_Kam_Jum_Sab'.split('_'),
47212        weekdaysMin: 'Mg_Sn_Sl_Rb_Km_Jm_Sb'.split('_'),
47213        longDateFormat: {
47214            LT: 'HH.mm',
47215            LTS: 'HH.mm.ss',
47216            L: 'DD/MM/YYYY',
47217            LL: 'D MMMM YYYY',
47218            LLL: 'D MMMM YYYY [pukul] HH.mm',
47219            LLLL: 'dddd, D MMMM YYYY [pukul] HH.mm',
47220        },
47221        meridiemParse: /pagi|siang|sore|malam/,
47222        meridiemHour: function (hour, meridiem) {
47223            if (hour === 12) {
47224                hour = 0;
47225            }
47226            if (meridiem === 'pagi') {
47227                return hour;
47228            } else if (meridiem === 'siang') {
47229                return hour >= 11 ? hour : hour + 12;
47230            } else if (meridiem === 'sore' || meridiem === 'malam') {
47231                return hour + 12;
47232            }
47233        },
47234        meridiem: function (hours, minutes, isLower) {
47235            if (hours < 11) {
47236                return 'pagi';
47237            } else if (hours < 15) {
47238                return 'siang';
47239            } else if (hours < 19) {
47240                return 'sore';
47241            } else {
47242                return 'malam';
47243            }
47244        },
47245        calendar: {
47246            sameDay: '[Hari ini pukul] LT',
47247            nextDay: '[Besok pukul] LT',
47248            nextWeek: 'dddd [pukul] LT',
47249            lastDay: '[Kemarin pukul] LT',
47250            lastWeek: 'dddd [lalu pukul] LT',
47251            sameElse: 'L',
47252        },
47253        relativeTime: {
47254            future: 'dalam %s',
47255            past: '%s yang lalu',
47256            s: 'beberapa detik',
47257            ss: '%d detik',
47258            m: 'semenit',
47259            mm: '%d menit',
47260            h: 'sejam',
47261            hh: '%d jam',
47262            d: 'sehari',
47263            dd: '%d hari',
47264            M: 'sebulan',
47265            MM: '%d bulan',
47266            y: 'setahun',
47267            yy: '%d tahun',
47268        },
47269        week: {
47270            dow: 0, // Sunday is the first day of the week.
47271            doy: 6, // The week that contains Jan 6th is the first week of the year.
47272        },
47273    });
47274
47275    return id;
47276
47277})));
47278
47279
47280/***/ }),
47281
vendor: 5,484 bytes, lines 47282-47441
47282/***/ "./node_modules/moment/locale/is.js":
47283/*!******************************************!*\
47284  !*** ./node_modules/moment/locale/is.js ***!
47285  \******************************************/
47286/*! no static exports found */
47287/***/ (function(module, exports, __webpack_require__) {
47288
47289//! moment.js locale configuration
47290//! locale : Icelandic [is]
47291//! author : Hinrik Örn Sigurðsson : https://github.com/hinrik
47292
47293;(function (global, factory) {
47294    true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/moment/moment.js")) :
47295   undefined
47296}(this, (function (moment) { 'use strict';
47297
47298    //! moment.js locale configuration
47299
47300    function plural(n) {
47301        if (n % 100 === 11) {
47302            return true;
47303        } else if (n % 10 === 1) {
47304            return false;
47305        }
47306        return true;
47307    }
47308    function translate(number, withoutSuffix, key, isFuture) {
47309        var result = number + ' ';
47310        switch (key) {
47311            case 's':
47312                return withoutSuffix || isFuture
47313                    ? 'nokkrar sekúndur'
47314                    : 'nokkrum sekúndum';
47315            case 'ss':
47316                if (plural(number)) {
47317                    return (
47318                        result +
47319                        (withoutSuffix || isFuture ? 'sekúndur' : 'sekúndum')
47320                    );
47321                }
47322                return result + 'sekúnda';
47323            case 'm':
47324                return withoutSuffix ? 'mínúta' : 'mínútu';
47325            case 'mm':
47326                if (plural(number)) {
47327                    return (
47328                        result + (withoutSuffix || isFuture ? 'mínútur' : 'mínútum')
47329                    );
47330                } else if (withoutSuffix) {
47331                    return result + 'mínúta';
47332                }
47333                return result + 'mínútu';
47334            case 'hh':
47335                if (plural(number)) {
47336                    return (
47337                        result +
47338                        (withoutSuffix || isFuture
47339                            ? 'klukkustundir'
47340                            : 'klukkustundum')
47341                    );
47342                }
47343                return result + 'klukkustund';
47344            case 'd':
47345                if (withoutSuffix) {
47346                    return 'dagur';
47347                }
47348                return isFuture ? 'dag' : 'degi';
47349            case 'dd':
47350                if (plural(number)) {
47351                    if (withoutSuffix) {
47352                        return result + 'dagar';
47353                    }
47354                    return result + (isFuture ? 'daga' : 'dögum');
47355                } else if (withoutSuffix) {
47356                    return result + 'dagur';
47357                }
47358                return result + (isFuture ? 'dag' : 'degi');
47359            case 'M':
47360                if (withoutSuffix) {
47361                    return 'mánuður';
47362                }
47363                return isFuture ? 'mánuð' : 'mánuði';
47364            case 'MM':
47365                if (plural(number)) {
47366                    if (withoutSuffix) {
47367                        return result + 'mánuðir';
47368                    }
47369                    return result + (isFuture ? 'mánuði' : 'mánuðum');
47370                } else if (withoutSuffix) {
47371                    return result + 'mánuður';
47372                }
47373                return result + (isFuture ? 'mánuð' : 'mánuði');
47374            case 'y':
47375                return withoutSuffix || isFuture ? 'ár' : 'ári';
47376            case 'yy':
47377                if (plural(number)) {
47378                    return result + (withoutSuffix || isFuture ? 'ár' : 'árum');
47379                }
47380                return result + (withoutSuffix || isFuture ? 'ár' : 'ári');
47381        }
47382    }
47383
47384    var is = moment.defineLocale('is', {
47385        months: 'janúar_febrúar_mars_apríl_maí_júní_júlí_ágúst_september_október_nóvember_desember'.split(
47386            '_'
47387        ),
47388        monthsShort: 'jan_feb_mar_apr_maí_jún_júl_ágú_sep_okt_nóv_des'.split('_'),
47389        weekdays:
47390            'sunnudagur_mánudagur_þriðjudagur_miðvikudagur_fimmtudagur_föstudagur_laugardagur'.split(
47391                '_'
47392            ),
47393        weekdaysShort: 'sun_mán_þri_mið_fim_fös_lau'.split('_'),
47394        weekdaysMin: 'Su_Má_Þr_Mi_Fi_Fö_La'.split('_'),
47395        longDateFormat: {
47396            LT: 'H:mm',
47397            LTS: 'H:mm:ss',
47398            L: 'DD.MM.YYYY',
47399            LL: 'D. MMMM YYYY',
47400            LLL: 'D. MMMM YYYY [kl.] H:mm',
47401            LLLL: 'dddd, D. MMMM YYYY [kl.] H:mm',
47402        },
47403        calendar: {
47404            sameDay: '[í dag kl.] LT',
47405            nextDay: '[á morgun kl.] LT',
47406            nextWeek: 'dddd [kl.] LT',
47407            lastDay: '[í gær kl.] LT',
47408            lastWeek: '[síðasta] dddd [kl.] LT',
47409            sameElse: 'L',
47410        },
47411        relativeTime: {
47412            future: 'eftir %s',
47413            past: 'fyrir %s síðan',
47414            s: translate,
47415            ss: translate,
47416            m: translate,
47417            mm: translate,
47418            h: 'klukkustund',
47419            hh: translate,
47420            d: translate,
47421            dd: translate,
47422            M: translate,
47423            MM: translate,
47424            y: translate,
47425            yy: translate,
47426        },
47427        dayOfMonthOrdinalParse: /\d{1,2}\./,
47428        ordinal: '%d.',
47429        week: {
47430            dow: 1, // Monday is the first day of the week.
47431            doy: 4, // The week that contains Jan 4th is the first week of the year.
47432        },
47433    });
47434
47435    return is;
47436
47437})));
47438
47439
47440/***/ }),
47441
vendor: 2,683 bytes, lines 47442-47525
47442/***/ "./node_modules/moment/locale/it-ch.js":
47443/*!*********************************************!*\
47444  !*** ./node_modules/moment/locale/it-ch.js ***!
47445  \*********************************************/
47446/*! no static exports found */
47447/***/ (function(module, exports, __webpack_require__) {
47448
47449//! moment.js locale configuration
47450//! locale : Italian (Switzerland) [it-ch]
47451//! author : xfh : https://github.com/xfh
47452
47453;(function (global, factory) {
47454    true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/moment/moment.js")) :
47455   undefined
47456}(this, (function (moment) { 'use strict';
47457
47458    //! moment.js locale configuration
47459
47460    var itCh = moment.defineLocale('it-ch', {
47461        months: 'gennaio_febbraio_marzo_aprile_maggio_giugno_luglio_agosto_settembre_ottobre_novembre_dicembre'.split(
47462            '_'
47463        ),
47464        monthsShort: 'gen_feb_mar_apr_mag_giu_lug_ago_set_ott_nov_dic'.split('_'),
47465        weekdays: 'domenica_lunedì_martedì_mercoledì_giovedì_venerdì_sabato'.split(
47466            '_'
47467        ),
47468        weekdaysShort: 'dom_lun_mar_mer_gio_ven_sab'.split('_'),
47469        weekdaysMin: 'do_lu_ma_me_gi_ve_sa'.split('_'),
47470        longDateFormat: {
47471            LT: 'HH:mm',
47472            LTS: 'HH:mm:ss',
47473            L: 'DD.MM.YYYY',
47474            LL: 'D MMMM YYYY',
47475            LLL: 'D MMMM YYYY HH:mm',
47476            LLLL: 'dddd D MMMM YYYY HH:mm',
47477        },
47478        calendar: {
47479            sameDay: '[Oggi alle] LT',
47480            nextDay: '[Domani alle] LT',
47481            nextWeek: 'dddd [alle] LT',
47482            lastDay: '[Ieri alle] LT',
47483            lastWeek: function () {
47484                switch (this.day()) {
47485                    case 0:
47486                        return '[la scorsa] dddd [alle] LT';
47487                    default:
47488                        return '[lo scorso] dddd [alle] LT';
47489                }
47490            },
47491            sameElse: 'L',
47492        },
47493        relativeTime: {
47494            future: function (s) {
47495                return (/^[0-9].+$/.test(s) ? 'tra' : 'in') + ' ' + s;
47496            },
47497            past: '%s fa',
47498            s: 'alcuni secondi',
47499            ss: '%d secondi',
47500            m: 'un minuto',
47501            mm: '%d minuti',
47502            h: "un'ora",
47503            hh: '%d ore',
47504            d: 'un giorno',
47505            dd: '%d giorni',
47506            M: 'un mese',
47507            MM: '%d mesi',
47508            y: 'un anno',
47509            yy: '%d anni',
47510        },
47511        dayOfMonthOrdinalParse: /\d{1,2}º/,
47512        ordinal: '%dº',
47513        week: {
47514            dow: 1, // Monday is the first day of the week.
47515            doy: 4, // The week that contains Jan 4th is the first week of the year.
47516        },
47517    });
47518
47519    return itCh;
47520
47521})));
47522
47523
47524/***/ }),
47525
vendor: 4,145 bytes, lines 47526-47651
47526/***/ "./node_modules/moment/locale/it.js":
47527/*!******************************************!*\
47528  !*** ./node_modules/moment/locale/it.js ***!
47529  \******************************************/
47530/*! no static exports found */
47531/***/ (function(module, exports, __webpack_require__) {
47532
47533//! moment.js locale configuration
47534//! locale : Italian [it]
47535//! author : Lorenzo : https://github.com/aliem
47536//! author: Mattia Larentis: https://github.com/nostalgiaz
47537//! author: Marco : https://github.com/Manfre98
47538
47539;(function (global, factory) {
47540    true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/moment/moment.js")) :
47541   undefined
47542}(this, (function (moment) { 'use strict';
47543
47544    //! moment.js locale configuration
47545
47546    var it = moment.defineLocale('it', {
47547        months: 'gennaio_febbraio_marzo_aprile_maggio_giugno_luglio_agosto_settembre_ottobre_novembre_dicembre'.split(
47548            '_'
47549        ),
47550        monthsShort: 'gen_feb_mar_apr_mag_giu_lug_ago_set_ott_nov_dic'.split('_'),
47551        weekdays: 'domenica_lunedì_martedì_mercoledì_giovedì_venerdì_sabato'.split(
47552            '_'
47553        ),
47554        weekdaysShort: 'dom_lun_mar_mer_gio_ven_sab'.split('_'),
47555        weekdaysMin: 'do_lu_ma_me_gi_ve_sa'.split('_'),
47556        longDateFormat: {
47557            LT: 'HH:mm',
47558            LTS: 'HH:mm:ss',
47559            L: 'DD/MM/YYYY',
47560            LL: 'D MMMM YYYY',
47561            LLL: 'D MMMM YYYY HH:mm',
47562            LLLL: 'dddd D MMMM YYYY HH:mm',
47563        },
47564        calendar: {
47565            sameDay: function () {
47566                return (
47567                    '[Oggi a' +
47568                    (this.hours() > 1 ? 'lle ' : this.hours() === 0 ? ' ' : "ll'") +
47569                    ']LT'
47570                );
47571            },
47572            nextDay: function () {
47573                return (
47574                    '[Domani a' +
47575                    (this.hours() > 1 ? 'lle ' : this.hours() === 0 ? ' ' : "ll'") +
47576                    ']LT'
47577                );
47578            },
47579            nextWeek: function () {
47580                return (
47581                    'dddd [a' +
47582                    (this.hours() > 1 ? 'lle ' : this.hours() === 0 ? ' ' : "ll'") +
47583                    ']LT'
47584                );
47585            },
47586            lastDay: function () {
47587                return (
47588                    '[Ieri a' +
47589                    (this.hours() > 1 ? 'lle ' : this.hours() === 0 ? ' ' : "ll'") +
47590                    ']LT'
47591                );
47592            },
47593            lastWeek: function () {
47594                switch (this.day()) {
47595                    case 0:
47596                        return (
47597                            '[La scorsa] dddd [a' +
47598                            (this.hours() > 1
47599                                ? 'lle '
47600                                : this.hours() === 0
47601                                  ? ' '
47602                                  : "ll'") +
47603                            ']LT'
47604                        );
47605                    default:
47606                        return (
47607                            '[Lo scorso] dddd [a' +
47608                            (this.hours() > 1
47609                                ? 'lle '
47610                                : this.hours() === 0
47611                                  ? ' '
47612                                  : "ll'") +
47613                            ']LT'
47614                        );
47615                }
47616            },
47617            sameElse: 'L',
47618        },
47619        relativeTime: {
47620            future: 'tra %s',
47621            past: '%s fa',
47622            s: 'alcuni secondi',
47623            ss: '%d secondi',
47624            m: 'un minuto',
47625            mm: '%d minuti',
47626            h: "un'ora",
47627            hh: '%d ore',
47628            d: 'un giorno',
47629            dd: '%d giorni',
47630            w: 'una settimana',
47631            ww: '%d settimane',
47632            M: 'un mese',
47633            MM: '%d mesi',
47634            y: 'un anno',
47635            yy: '%d anni',
47636        },
47637        dayOfMonthOrdinalParse: /\d{1,2}º/,
47638        ordinal: '%dº',
47639        week: {
47640            dow: 1, // Monday is the first day of the week.
47641            doy: 4, // The week that contains Jan 4th is the first week of the year.
47642        },
47643    });
47644
47645    return it;
47646
47647})));
47648
47649
47650/***/ }),
47651
vendor: 5,017 bytes, lines 47652-47819
47652/***/ "./node_modules/moment/locale/ja.js":
47653/*!******************************************!*\
47654  !*** ./node_modules/moment/locale/ja.js ***!
47655  \******************************************/
47656/*! no static exports found */
47657/***/ (function(module, exports, __webpack_require__) {
47658
47659//! moment.js locale configuration
47660//! locale : Japanese [ja]
47661//! author : LI Long : https://github.com/baryon
47662
47663;(function (global, factory) {
47664    true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/moment/moment.js")) :
47665   undefined
47666}(this, (function (moment) { 'use strict';
47667
47668    //! moment.js locale configuration
47669
47670    var ja = moment.defineLocale('ja', {
47671        eras: [
47672            {
47673                since: '2019-05-01',
47674                offset: 1,
47675                name: '令和',
47676                narrow: '㋿',
47677                abbr: 'R',
47678            },
47679            {
47680                since: '1989-01-08',
47681                until: '2019-04-30',
47682                offset: 1,
47683                name: '平成',
47684                narrow: '㍻',
47685                abbr: 'H',
47686            },
47687            {
47688                since: '1926-12-25',
47689                until: '1989-01-07',
47690                offset: 1,
47691                name: '昭和',
47692                narrow: '㍼',
47693                abbr: 'S',
47694            },
47695            {
47696                since: '1912-07-30',
47697                until: '1926-12-24',
47698                offset: 1,
47699                name: '大正',
47700                narrow: '㍽',
47701                abbr: 'T',
47702            },
47703            {
47704                since: '1873-01-01',
47705                until: '1912-07-29',
47706                offset: 6,
47707                name: '明治',
47708                narrow: '㍾',
47709                abbr: 'M',
47710            },
47711            {
47712                since: '0001-01-01',
47713                until: '1873-12-31',
47714                offset: 1,
47715                name: '西暦',
47716                narrow: 'AD',
47717                abbr: 'AD',
47718            },
47719            {
47720                since: '0000-12-31',
47721                until: -Infinity,
47722                offset: 1,
47723                name: '紀元前',
47724                narrow: 'BC',
47725                abbr: 'BC',
47726            },
47727        ],
47728        eraYearOrdinalRegex: /(元|\d+)年/,
47729        eraYearOrdinalParse: function (input, match) {
47730            return match[1] === '元' ? 1 : parseInt(match[1] || input, 10);
47731        },
47732        months: '1月_2月_3月_4月_5月_6月_7月_8月_9月_10月_11月_12月'.split('_'),
47733        monthsShort: '1月_2月_3月_4月_5月_6月_7月_8月_9月_10月_11月_12月'.split(
47734            '_'
47735        ),
47736        weekdays: '日曜日_月曜日_火曜日_水曜日_木曜日_金曜日_土曜日'.split('_'),
47737        weekdaysShort: '日_月_火_水_木_金_土'.split('_'),
47738        weekdaysMin: '日_月_火_水_木_金_土'.split('_'),
47739        longDateFormat: {
47740            LT: 'HH:mm',
47741            LTS: 'HH:mm:ss',
47742            L: 'YYYY/MM/DD',
47743            LL: 'YYYY年M月D日',
47744            LLL: 'YYYY年M月D日 HH:mm',
47745            LLLL: 'YYYY年M月D日 dddd HH:mm',
47746            l: 'YYYY/MM/DD',
47747            ll: 'YYYY年M月D日',
47748            lll: 'YYYY年M月D日 HH:mm',
47749            llll: 'YYYY年M月D日(ddd) HH:mm',
47750        },
47751        meridiemParse: /午前|午後/i,
47752        isPM: function (input) {
47753            return input === '午後';
47754        },
47755        meridiem: function (hour, minute, isLower) {
47756            if (hour < 12) {
47757                return '午前';
47758            } else {
47759                return '午後';
47760            }
47761        },
47762        calendar: {
47763            sameDay: '[今日] LT',
47764            nextDay: '[明日] LT',
47765            nextWeek: function (now) {
47766                if (now.week() !== this.week()) {
47767                    return '[来週]dddd LT';
47768                } else {
47769                    return 'dddd LT';
47770                }
47771            },
47772            lastDay: '[昨日] LT',
47773            lastWeek: function (now) {
47774                if (this.week() !== now.week()) {
47775                    return '[先週]dddd LT';
47776                } else {
47777                    return 'dddd LT';
47778                }
47779            },
47780            sameElse: 'L',
47781        },
47782        dayOfMonthOrdinalParse: /\d{1,2}日/,
47783        ordinal: function (number, period) {
47784            switch (period) {
47785                case 'y':
47786                    return number === 1 ? '元年' : number + '年';
47787                case 'd':
47788                case 'D':
47789                case 'DDD':
47790                    return number + '日';
47791                default:
47792                    return number;
47793            }
47794        },
47795        relativeTime: {
47796            future: '%s後',
47797            past: '%s前',
47798            s: '数秒',
47799            ss: '%d秒',
47800            m: '1分',
47801            mm: '%d分',
47802            h: '1時間',
47803            hh: '%d時間',
47804            d: '1日',
47805            dd: '%d日',
47806            M: '1ヶ月',
47807            MM: '%dヶ月',
47808            y: '1å¹´',
47809            yy: '%då¹´',
47810        },
47811    });
47812
47813    return ja;
47814
47815})));
47816
47817
47818/***/ }),
47819
vendor: 3,154 bytes, lines 47820-47915
47820/***/ "./node_modules/moment/locale/jv.js":
47821/*!******************************************!*\
47822  !*** ./node_modules/moment/locale/jv.js ***!
47823  \******************************************/
47824/*! no static exports found */
47825/***/ (function(module, exports, __webpack_require__) {
47826
47827//! moment.js locale configuration
47828//! locale : Javanese [jv]
47829//! author : Rony Lantip : https://github.com/lantip
47830//! reference: http://jv.wikipedia.org/wiki/Basa_Jawa
47831
47832;(function (global, factory) {
47833    true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/moment/moment.js")) :
47834   undefined
47835}(this, (function (moment) { 'use strict';
47836
47837    //! moment.js locale configuration
47838
47839    var jv = moment.defineLocale('jv', {
47840        months: 'Januari_Februari_Maret_April_Mei_Juni_Juli_Agustus_September_Oktober_Nopember_Desember'.split(
47841            '_'
47842        ),
47843        monthsShort: 'Jan_Feb_Mar_Apr_Mei_Jun_Jul_Ags_Sep_Okt_Nop_Des'.split('_'),
47844        weekdays: 'Minggu_Senen_Seloso_Rebu_Kemis_Jemuwah_Septu'.split('_'),
47845        weekdaysShort: 'Min_Sen_Sel_Reb_Kem_Jem_Sep'.split('_'),
47846        weekdaysMin: 'Mg_Sn_Sl_Rb_Km_Jm_Sp'.split('_'),
47847        longDateFormat: {
47848            LT: 'HH.mm',
47849            LTS: 'HH.mm.ss',
47850            L: 'DD/MM/YYYY',
47851            LL: 'D MMMM YYYY',
47852            LLL: 'D MMMM YYYY [pukul] HH.mm',
47853            LLLL: 'dddd, D MMMM YYYY [pukul] HH.mm',
47854        },
47855        meridiemParse: /enjing|siyang|sonten|ndalu/,
47856        meridiemHour: function (hour, meridiem) {
47857            if (hour === 12) {
47858                hour = 0;
47859            }
47860            if (meridiem === 'enjing') {
47861                return hour;
47862            } else if (meridiem === 'siyang') {
47863                return hour >= 11 ? hour : hour + 12;
47864            } else if (meridiem === 'sonten' || meridiem === 'ndalu') {
47865                return hour + 12;
47866            }
47867        },
47868        meridiem: function (hours, minutes, isLower) {
47869            if (hours < 11) {
47870                return 'enjing';
47871            } else if (hours < 15) {
47872                return 'siyang';
47873            } else if (hours < 19) {
47874                return 'sonten';
47875            } else {
47876                return 'ndalu';
47877            }
47878        },
47879        calendar: {
47880            sameDay: '[Dinten puniko pukul] LT',
47881            nextDay: '[Mbenjang pukul] LT',
47882            nextWeek: 'dddd [pukul] LT',
47883            lastDay: '[Kala wingi pukul] LT',
47884            lastWeek: 'dddd [kepengker pukul] LT',
47885            sameElse: 'L',
47886        },
47887        relativeTime: {
47888            future: 'wonten ing %s',
47889            past: '%s ingkang kepengker',
47890            s: 'sawetawis detik',
47891            ss: '%d detik',
47892            m: 'setunggal menit',
47893            mm: '%d menit',
47894            h: 'setunggal jam',
47895            hh: '%d jam',
47896            d: 'sedinten',
47897            dd: '%d dinten',
47898            M: 'sewulan',
47899            MM: '%d wulan',
47900            y: 'setaun',
47901            yy: '%d taun',
47902        },
47903        week: {
47904            dow: 1, // Monday is the first day of the week.
47905            doy: 7, // The week that contains Jan 7th is the first week of the year.
47906        },
47907    });
47908
47909    return jv;
47910
47911})));
47912
47913
47914/***/ }),
47915
vendor: 4,342 bytes, lines 47916-48027
47916/***/ "./node_modules/moment/locale/ka.js":
47917/*!******************************************!*\
47918  !*** ./node_modules/moment/locale/ka.js ***!
47919  \******************************************/
47920/*! no static exports found */
47921/***/ (function(module, exports, __webpack_require__) {
47922
47923//! moment.js locale configuration
47924//! locale : Georgian [ka]
47925//! author : Irakli Janiashvili : https://github.com/IrakliJani
47926
47927;(function (global, factory) {
47928    true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/moment/moment.js")) :
47929   undefined
47930}(this, (function (moment) { 'use strict';
47931
47932    //! moment.js locale configuration
47933
47934    var ka = moment.defineLocale('ka', {
47935        months: 'იანვარი_თებერვალი_მარტი_აპრილი_მაისი_ივნისი_ივლისი_აგვისტო_სექტემბერი_ოქტომბერი_ნოემბერი_დეკემბერი'.split(
47936            '_'
47937        ),
47938        monthsShort: 'იან_თებ_მარ_აპრ_მაი_ივნ_ივლ_აგვ_სექ_ოქტ_ნოე_დეკ'.split('_'),
47939        weekdays: {
47940            standalone:
47941                'კვირა_ორშაბათი_სამშაბათი_ოთხშაბათი_ხუთშაბათი_პარასკევი_შაბათი'.split(
47942                    '_'
47943                ),
47944            format: 'კვირას_ორშაბათს_სამშაბათს_ოთხშაბათს_ხუთშაბათს_პარასკევს_შაბათს'.split(
47945                '_'
47946            ),
47947            isFormat: /(წინა|შემდეგ)/,
47948        },
47949        weekdaysShort: 'კვი_ორშ_სამ_ოთხ_ხუთ_პარ_შაბ'.split('_'),
47950        weekdaysMin: 'კვ_ორ_სა_ოთ_ხუ_პა_შა'.split('_'),
47951        longDateFormat: {
47952            LT: 'HH:mm',
47953            LTS: 'HH:mm:ss',
47954            L: 'DD/MM/YYYY',
47955            LL: 'D MMMM YYYY',
47956            LLL: 'D MMMM YYYY HH:mm',
47957            LLLL: 'dddd, D MMMM YYYY HH:mm',
47958        },
47959        calendar: {
47960            sameDay: '[დღეს] LT[-ზე]',
47961            nextDay: '[ხვალ] LT[-ზე]',
47962            lastDay: '[გუშინ] LT[-ზე]',
47963            nextWeek: '[შემდეგ] dddd LT[-ზე]',
47964            lastWeek: '[წინა] dddd LT-ზე',
47965            sameElse: 'L',
47966        },
47967        relativeTime: {
47968            future: function (s) {
47969                return s.replace(
47970                    /(წამ|წუთ|საათ|წელ|დღ|თვ)(ი|ე)/,
47971                    function ($0, $1, $2) {
47972                        return $2 === 'ი' ? $1 + 'ში' : $1 + $2 + 'ში';
47973                    }
47974                );
47975            },
47976            past: function (s) {
47977                if (/(წამი|წუთი|საათი|დღე|თვე)/.test(s)) {
47978                    return s.replace(/(ი|ე)$/, 'ის წინ');
47979                }
47980                if (/წელი/.test(s)) {
47981                    return s.replace(/წელი$/, 'წლის წინ');
47982                }
47983                return s;
47984            },
47985            s: 'რამდენიმე წამი',
47986            ss: '%d წამი',
47987            m: 'წუთი',
47988            mm: '%d წუთი',
47989            h: 'საათი',
47990            hh: '%d საათი',
47991            d: 'დღე',
47992            dd: '%d დღე',
47993            M: 'თვე',
47994            MM: '%d თვე',
47995            y: 'წელი',
47996            yy: '%d წელი',
47997        },
47998        dayOfMonthOrdinalParse: /0|1-ლი|მე-\d{1,2}|\d{1,2}-ე/,
47999        ordinal: function (number) {
48000            if (number === 0) {
48001                return number;
48002            }
48003            if (number === 1) {
48004                return number + '-ლი';
48005            }
48006            if (
48007                number < 20 ||
48008                (number <= 100 && number % 20 === 0) ||
48009                number % 100 === 0
48010            ) {
48011                return 'მე-' + number;
48012            }
48013            return number + '-ე';
48014        },
48015        week: {
48016            dow: 1,
48017            doy: 7,
48018        },
48019    });
48020
48021    return ka;
48022
48023})));
48024
48025
48026/***/ }),
48027
vendor: 3,289 bytes, lines 48028-48129
48028/***/ "./node_modules/moment/locale/kk.js":
48029/*!******************************************!*\
48030  !*** ./node_modules/moment/locale/kk.js ***!
48031  \******************************************/
48032/*! no static exports found */
48033/***/ (function(module, exports, __webpack_require__) {
48034
48035//! moment.js locale configuration
48036//! locale : Kazakh [kk]
48037//! authors : Nurlan Rakhimzhanov : https://github.com/nurlan
48038
48039;(function (global, factory) {
48040    true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/moment/moment.js")) :
48041   undefined
48042}(this, (function (moment) { 'use strict';
48043
48044    //! moment.js locale configuration
48045
48046    var suffixes = {
48047        0: '-ші',
48048        1: '-ші',
48049        2: '-ші',
48050        3: '-ші',
48051        4: '-ші',
48052        5: '-ші',
48053        6: '-шы',
48054        7: '-ші',
48055        8: '-ші',
48056        9: '-шы',
48057        10: '-шы',
48058        20: '-шы',
48059        30: '-шы',
48060        40: '-шы',
48061        50: '-ші',
48062        60: '-шы',
48063        70: '-ші',
48064        80: '-ші',
48065        90: '-шы',
48066        100: '-ші',
48067    };
48068
48069    var kk = moment.defineLocale('kk', {
48070        months: 'қаңтар_ақпан_наурыз_сәуір_мамыр_маусым_шілде_тамыз_қыркүйек_қазан_қараша_желтоқсан'.split(
48071            '_'
48072        ),
48073        monthsShort: 'қаң_ақп_нау_сәу_мам_мау_шіл_там_қыр_қаз_қар_жел'.split('_'),
48074        weekdays: 'жексенбі_дүйсенбі_сейсенбі_сәрсенбі_бейсенбі_жұма_сенбі'.split(
48075            '_'
48076        ),
48077        weekdaysShort: 'жек_дүй_сей_сәр_бей_жұм_сен'.split('_'),
48078        weekdaysMin: 'жк_дй_сй_ср_бй_жм_сн'.split('_'),
48079        longDateFormat: {
48080            LT: 'HH:mm',
48081            LTS: 'HH:mm:ss',
48082            L: 'DD.MM.YYYY',
48083            LL: 'D MMMM YYYY',
48084            LLL: 'D MMMM YYYY HH:mm',
48085            LLLL: 'dddd, D MMMM YYYY HH:mm',
48086        },
48087        calendar: {
48088            sameDay: '[Бүгін сағат] LT',
48089            nextDay: '[Ертең сағат] LT',
48090            nextWeek: 'dddd [сағат] LT',
48091            lastDay: '[Кеше сағат] LT',
48092            lastWeek: '[Өткен аптаның] dddd [сағат] LT',
48093            sameElse: 'L',
48094        },
48095        relativeTime: {
48096            future: '%s ішінде',
48097            past: '%s бұрын',
48098            s: 'бірнеше секунд',
48099            ss: '%d секунд',
48100            m: 'бір минут',
48101            mm: '%d минут',
48102            h: 'бір сағат',
48103            hh: '%d сағат',
48104            d: 'бір күн',
48105            dd: '%d күн',
48106            M: 'бір ай',
48107            MM: '%d ай',
48108            y: 'бір жыл',
48109            yy: '%d жыл',
48110        },
48111        dayOfMonthOrdinalParse: /\d{1,2}-(ші|шы)/,
48112        ordinal: function (number) {
48113            var a = number % 10,
48114                b = number >= 100 ? 100 : null;
48115            return number + (suffixes[number] || suffixes[a] || suffixes[b]);
48116        },
48117        week: {
48118            dow: 1, // Monday is the first day of the week.
48119            doy: 7, // The week that contains Jan 7th is the first week of the year.
48120        },
48121    });
48122
48123    return kk;
48124
48125})));
48126
48127
48128/***/ }),
48129
vendor: 4,240 bytes, lines 48130-48252
48130/***/ "./node_modules/moment/locale/km.js":
48131/*!******************************************!*\
48132  !*** ./node_modules/moment/locale/km.js ***!
48133  \******************************************/
48134/*! no static exports found */
48135/***/ (function(module, exports, __webpack_require__) {
48136
48137//! moment.js locale configuration
48138//! locale : Cambodian [km]
48139//! author : Kruy Vanna : https://github.com/kruyvanna
48140
48141;(function (global, factory) {
48142    true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/moment/moment.js")) :
48143   undefined
48144}(this, (function (moment) { 'use strict';
48145
48146    //! moment.js locale configuration
48147
48148    var symbolMap = {
48149            1: '១',
48150            2: '២',
48151            3: '៣',
48152            4: '៤',
48153            5: '៥',
48154            6: '៦',
48155            7: '៧',
48156            8: '៨',
48157            9: '៩',
48158            0: '០',
48159        },
48160        numberMap = {
48161            '១': '1',
48162            '២': '2',
48163            '៣': '3',
48164            '៤': '4',
48165            '៥': '5',
48166            '៦': '6',
48167            '៧': '7',
48168            '៨': '8',
48169            '៩': '9',
48170            '០': '0',
48171        };
48172
48173    var km = moment.defineLocale('km', {
48174        months: 'មករា_កុម្ភៈ_មីនា_មេសា_ឧសភា_មិថុនា_កក្កដា_សីហា_កញ្ញា_តុលា_វិច្ឆិកា_ធ្នូ'.split(
48175            '_'
48176        ),
48177        monthsShort:
48178            'មករា_កុម្ភៈ_មីនា_មេសា_ឧសភា_មិថុនា_កក្កដា_សីហា_កញ្ញា_តុលា_វិច្ឆិកា_ធ្នូ'.split(
48179                '_'
48180            ),
48181        weekdays: 'អាទិត្យ_ច័ន្ទ_អង្គារ_ពុធ_ព្រហស្បតិ៍_សុក្រ_សៅរ៍'.split('_'),
48182        weekdaysShort: 'អា_ច_អ_ព_ព្រ_សុ_ស'.split('_'),
48183        weekdaysMin: 'អា_ច_អ_ព_ព្រ_សុ_ស'.split('_'),
48184        weekdaysParseExact: true,
48185        longDateFormat: {
48186            LT: 'HH:mm',
48187            LTS: 'HH:mm:ss',
48188            L: 'DD/MM/YYYY',
48189            LL: 'D MMMM YYYY',
48190            LLL: 'D MMMM YYYY HH:mm',
48191            LLLL: 'dddd, D MMMM YYYY HH:mm',
48192        },
48193        meridiemParse: /ព្រឹក|ល្ងាច/,
48194        isPM: function (input) {
48195            return input === 'ល្ងាច';
48196        },
48197        meridiem: function (hour, minute, isLower) {
48198            if (hour < 12) {
48199                return 'ព្រឹក';
48200            } else {
48201                return 'ល្ងាច';
48202            }
48203        },
48204        calendar: {
48205            sameDay: '[ថ្ងៃនេះ ម៉ោង] LT',
48206            nextDay: '[ស្អែក ម៉ោង] LT',
48207            nextWeek: 'dddd [ម៉ោង] LT',
48208            lastDay: '[ម្សិលមិញ ម៉ោង] LT',
48209            lastWeek: 'dddd [សប្តាហ៍មុន] [ម៉ោង] LT',
48210            sameElse: 'L',
48211        },
48212        relativeTime: {
48213            future: '%sទៀត',
48214            past: '%sមុន',
48215            s: 'ប៉ុន្មានវិនាទី',
48216            ss: '%d វិនាទី',
48217            m: 'មួយនាទី',
48218            mm: '%d នាទី',
48219            h: 'មួយម៉ោង',
48220            hh: '%d ម៉ោង',
48221            d: 'មួយថ្ងៃ',
48222            dd: '%d ថ្ងៃ',
48223            M: 'មួយខែ',
48224            MM: '%d ខែ',
48225            y: 'មួយឆ្នាំ',
48226            yy: '%d ឆ្នាំ',
48227        },
48228        dayOfMonthOrdinalParse: /ទី\d{1,2}/,
48229        ordinal: 'ទី%d',
48230        preparse: function (string) {
48231            return string.replace(/[១២៣៤៥៦៧៨៩០]/g, function (match) {
48232                return numberMap[match];
48233            });
48234        },
48235        postformat: function (string) {
48236            return string.replace(/\d/g, function (match) {
48237                return symbolMap[match];
48238            });
48239        },
48240        week: {
48241            dow: 1, // Monday is the first day of the week.
48242            doy: 4, // The week that contains Jan 4th is the first week of the year.
48243        },
48244    });
48245
48246    return km;
48247
48248})));
48249
48250
48251/***/ }),
48252
vendor: 5,214 bytes, lines 48253-48396
48253/***/ "./node_modules/moment/locale/kn.js":
48254/*!******************************************!*\
48255  !*** ./node_modules/moment/locale/kn.js ***!
48256  \******************************************/
48257/*! no static exports found */
48258/***/ (function(module, exports, __webpack_require__) {
48259
48260//! moment.js locale configuration
48261//! locale : Kannada [kn]
48262//! author : Rajeev Naik : https://github.com/rajeevnaikte
48263
48264;(function (global, factory) {
48265    true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/moment/moment.js")) :
48266   undefined
48267}(this, (function (moment) { 'use strict';
48268
48269    //! moment.js locale configuration
48270
48271    var symbolMap = {
48272            1: 'à³§',
48273            2: '೨',
48274            3: '೩',
48275            4: '೪',
48276            5: '೫',
48277            6: '೬',
48278            7: 'à³­',
48279            8: 'à³®',
48280            9: '೯',
48281            0: '೦',
48282        },
48283        numberMap = {
48284            'à³§': '1',
48285            '೨': '2',
48286            '೩': '3',
48287            '೪': '4',
48288            '೫': '5',
48289            '೬': '6',
48290            'à³­': '7',
48291            'à³®': '8',
48292            '೯': '9',
48293            '೦': '0',
48294        };
48295
48296    var kn = moment.defineLocale('kn', {
48297        months: 'ಜನವರಿ_ಫೆಬ್ರವರಿ_ಮಾರ್ಚ್_ಏಪ್ರಿಲ್_ಮೇ_ಜೂನ್_ಜುಲೈ_ಆಗಸ್ಟ್_ಸೆಪ್ಟೆಂಬರ್_ಅಕ್ಟೋಬರ್_ನವೆಂಬರ್_ಡಿಸೆಂಬರ್'.split(
48298            '_'
48299        ),
48300        monthsShort:
48301            'ಜನ_ಫೆಬ್ರ_ಮಾರ್ಚ್_ಏಪ್ರಿಲ್_ಮೇ_ಜೂನ್_ಜುಲೈ_ಆಗಸ್ಟ್_ಸೆಪ್ಟೆಂ_ಅಕ್ಟೋ_ನವೆಂ_ಡಿಸೆಂ'.split(
48302                '_'
48303            ),
48304        monthsParseExact: true,
48305        weekdays: 'ಭಾನುವಾರ_ಸೋಮವಾರ_ಮಂಗಳವಾರ_ಬುಧವಾರ_ಗುರುವಾರ_ಶುಕ್ರವಾರ_ಶನಿವಾರ'.split(
48306            '_'
48307        ),
48308        weekdaysShort: 'ಭಾನು_ಸೋಮ_ಮಂಗಳ_ಬುಧ_ಗುರು_ಶುಕ್ರ_ಶನಿ'.split('_'),
48309        weekdaysMin: 'ಭಾ_ಸೋ_ಮಂ_ಬು_ಗು_ಶು_ಶ'.split('_'),
48310        longDateFormat: {
48311            LT: 'A h:mm',
48312            LTS: 'A h:mm:ss',
48313            L: 'DD/MM/YYYY',
48314            LL: 'D MMMM YYYY',
48315            LLL: 'D MMMM YYYY, A h:mm',
48316            LLLL: 'dddd, D MMMM YYYY, A h:mm',
48317        },
48318        calendar: {
48319            sameDay: '[ಇಂದು] LT',
48320            nextDay: '[ನಾಳೆ] LT',
48321            nextWeek: 'dddd, LT',
48322            lastDay: '[ನಿನ್ನೆ] LT',
48323            lastWeek: '[ಕೊನೆಯ] dddd, LT',
48324            sameElse: 'L',
48325        },
48326        relativeTime: {
48327            future: '%s ನಂತರ',
48328            past: '%s ಹಿಂದೆ',
48329            s: 'ಕೆಲವು ಕ್ಷಣಗಳು',
48330            ss: '%d ಸೆಕೆಂಡುಗಳು',
48331            m: 'ಒಂದು ನಿಮಿಷ',
48332            mm: '%d ನಿಮಿಷ',
48333            h: 'ಒಂದು ಗಂಟೆ',
48334            hh: '%d ಗಂಟೆ',
48335            d: 'ಒಂದು ದಿನ',
48336            dd: '%d ದಿನ',
48337            M: 'ಒಂದು ತಿಂಗಳು',
48338            MM: '%d ತಿಂಗಳು',
48339            y: 'ಒಂದು ವರ್ಷ',
48340            yy: '%d ವರ್ಷ',
48341        },
48342        preparse: function (string) {
48343            return string.replace(/[೧೨೩೪೫೬೭೮೯೦]/g, function (match) {
48344                return numberMap[match];
48345            });
48346        },
48347        postformat: function (string) {
48348            return string.replace(/\d/g, function (match) {
48349                return symbolMap[match];
48350            });
48351        },
48352        meridiemParse: /ರಾತ್ರಿ|ಬೆಳಿಗ್ಗೆ|ಮಧ್ಯಾಹ್ನ|ಸಂಜೆ/,
48353        meridiemHour: function (hour, meridiem) {
48354            if (hour === 12) {
48355                hour = 0;
48356            }
48357            if (meridiem === 'ರಾತ್ರಿ') {
48358                return hour < 4 ? hour : hour + 12;
48359            } else if (meridiem === 'ಬೆಳಿಗ್ಗೆ') {
48360                return hour;
48361            } else if (meridiem === 'ಮಧ್ಯಾಹ್ನ') {
48362                return hour >= 10 ? hour : hour + 12;
48363            } else if (meridiem === 'ಸಂಜೆ') {
48364                return hour + 12;
48365            }
48366        },
48367        meridiem: function (hour, minute, isLower) {
48368            if (hour < 4) {
48369                return 'ರಾತ್ರಿ';
48370            } else if (hour < 10) {
48371                return 'ಬೆಳಿಗ್ಗೆ';
48372            } else if (hour < 17) {
48373                return 'ಮಧ್ಯಾಹ್ನ';
48374            } else if (hour < 20) {
48375                return 'ಸಂಜೆ';
48376            } else {
48377                return 'ರಾತ್ರಿ';
48378            }
48379        },
48380        dayOfMonthOrdinalParse: /\d{1,2}(ನೇ)/,
48381        ordinal: function (number) {
48382            return number + 'ನೇ';
48383        },
48384        week: {
48385            dow: 0, // Sunday is the first day of the week.
48386            doy: 6, // The week that contains Jan 6th is the first week of the year.
48387        },
48388    });
48389
48390    return kn;
48391
48392})));
48393
48394
48395/***/ }),
48396
vendor: 2,989 bytes, lines 48397-48491
48397/***/ "./node_modules/moment/locale/ko.js":
48398/*!******************************************!*\
48399  !*** ./node_modules/moment/locale/ko.js ***!
48400  \******************************************/
48401/*! no static exports found */
48402/***/ (function(module, exports, __webpack_require__) {
48403
48404//! moment.js locale configuration
48405//! locale : Korean [ko]
48406//! author : Kyungwook, Park : https://github.com/kyungw00k
48407//! author : Jeeeyul Lee <[email protected]>
48408
48409;(function (global, factory) {
48410    true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/moment/moment.js")) :
48411   undefined
48412}(this, (function (moment) { 'use strict';
48413
48414    //! moment.js locale configuration
48415
48416    var ko = moment.defineLocale('ko', {
48417        months: '1월_2월_3월_4월_5월_6월_7월_8월_9월_10월_11월_12월'.split('_'),
48418        monthsShort: '1월_2월_3월_4월_5월_6월_7월_8월_9월_10월_11월_12월'.split(
48419            '_'
48420        ),
48421        weekdays: '일요일_월요일_화요일_수요일_목요일_금요일_토요일'.split('_'),
48422        weekdaysShort: '일_월_화_수_목_금_토'.split('_'),
48423        weekdaysMin: '일_월_화_수_목_금_토'.split('_'),
48424        longDateFormat: {
48425            LT: 'A h:mm',
48426            LTS: 'A h:mm:ss',
48427            L: 'YYYY.MM.DD.',
48428            LL: 'YYYY년 MMMM D일',
48429            LLL: 'YYYY년 MMMM D일 A h:mm',
48430            LLLL: 'YYYY년 MMMM D일 dddd A h:mm',
48431            l: 'YYYY.MM.DD.',
48432            ll: 'YYYY년 MMMM D일',
48433            lll: 'YYYY년 MMMM D일 A h:mm',
48434            llll: 'YYYY년 MMMM D일 dddd A h:mm',
48435        },
48436        calendar: {
48437            sameDay: '오늘 LT',
48438            nextDay: '내일 LT',
48439            nextWeek: 'dddd LT',
48440            lastDay: '어제 LT',
48441            lastWeek: '지난주 dddd LT',
48442            sameElse: 'L',
48443        },
48444        relativeTime: {
48445            future: '%s 후',
48446            past: '%s 전',
48447            s: '몇 초',
48448            ss: '%d초',
48449            m: '1분',
48450            mm: '%d분',
48451            h: '한 시간',
48452            hh: '%d시간',
48453            d: '하루',
48454            dd: '%d일',
48455            M: '한 달',
48456            MM: '%d달',
48457            y: '일 년',
48458            yy: '%d년',
48459        },
48460        dayOfMonthOrdinalParse: /\d{1,2}(일|월|주)/,
48461        ordinal: function (number, period) {
48462            switch (period) {
48463                case 'd':
48464                case 'D':
48465                case 'DDD':
48466                    return number + '일';
48467                case 'M':
48468                    return number + '월';
48469                case 'w':
48470                case 'W':
48471                    return number + '주';
48472                default:
48473                    return number;
48474            }
48475        },
48476        meridiemParse: /오전|오후/,
48477        isPM: function (token) {
48478            return token === '오후';
48479        },
48480        meridiem: function (hour, minute, isUpper) {
48481            return hour < 12 ? '오전' : '오후';
48482        },
48483    });
48484
48485    return ko;
48486
48487})));
48488
48489
48490/***/ }),
48491
vendor: 5,056 bytes, lines 48492-48625
48492/***/ "./node_modules/moment/locale/ku-kmr.js":
48493/*!**********************************************!*\
48494  !*** ./node_modules/moment/locale/ku-kmr.js ***!
48495  \**********************************************/
48496/*! no static exports found */
48497/***/ (function(module, exports, __webpack_require__) {
48498
48499//! moment.js locale configuration
48500//! locale : Northern Kurdish [ku-kmr]
48501//! authors : Mazlum Özdogan : https://github.com/mergehez
48502
48503;(function (global, factory) {
48504    true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/moment/moment.js")) :
48505   undefined
48506}(this, (function (moment) { 'use strict';
48507
48508    //! moment.js locale configuration
48509
48510    function processRelativeTime(num, withoutSuffix, key, isFuture) {
48511        var format = {
48512            s: ['çend sanîye', 'çend sanîyeyan'],
48513            ss: [num + ' sanîye', num + ' sanîyeyan'],
48514            m: ['deqîqeyek', 'deqîqeyekê'],
48515            mm: [num + ' deqîqe', num + ' deqîqeyan'],
48516            h: ['saetek', 'saetekê'],
48517            hh: [num + ' saet', num + ' saetan'],
48518            d: ['rojek', 'rojekê'],
48519            dd: [num + ' roj', num + ' rojan'],
48520            w: ['hefteyek', 'hefteyekê'],
48521            ww: [num + ' hefte', num + ' hefteyan'],
48522            M: ['mehek', 'mehekê'],
48523            MM: [num + ' meh', num + ' mehan'],
48524            y: ['salek', 'salekê'],
48525            yy: [num + ' sal', num + ' salan'],
48526        };
48527        return withoutSuffix ? format[key][0] : format[key][1];
48528    }
48529    // function obliqueNumSuffix(num) {
48530    //     if(num.includes(':'))
48531    //         num = parseInt(num.split(':')[0]);
48532    //     else
48533    //         num = parseInt(num);
48534    //     return num == 0 || num % 10 == 1 ? 'ê'
48535    //                         : (num > 10 && num % 10 == 0 ? 'î' : 'an');
48536    // }
48537    function ezafeNumSuffix(num) {
48538        num = '' + num;
48539        var l = num.substring(num.length - 1),
48540            ll = num.length > 1 ? num.substring(num.length - 2) : '';
48541        if (
48542            !(ll == 12 || ll == 13) &&
48543            (l == '2' || l == '3' || ll == '50' || l == '70' || l == '80')
48544        )
48545            return 'yê';
48546        return 'ê';
48547    }
48548
48549    var kuKmr = moment.defineLocale('ku-kmr', {
48550        // According to the spelling rules defined by the work group of Weqfa Mezopotamyayê (Mesopotamia Foundation)
48551        // this should be: 'Kanûna Paşîn_Sibat_Adar_Nîsan_Gulan_Hezîran_Tîrmeh_Tebax_Îlon_Çirîya Pêşîn_Çirîya Paşîn_Kanûna Pêşîn'
48552        // But the names below are more well known and handy
48553        months: 'Rêbendan_Sibat_Adar_Nîsan_Gulan_Hezîran_Tîrmeh_Tebax_Îlon_Cotmeh_Mijdar_Berfanbar'.split(
48554            '_'
48555        ),
48556        monthsShort: 'Rêb_Sib_Ada_Nîs_Gul_Hez_Tîr_Teb_Îlo_Cot_Mij_Ber'.split('_'),
48557        monthsParseExact: true,
48558        weekdays: 'Yekşem_Duşem_Sêşem_Çarşem_Pêncşem_În_Şemî'.split('_'),
48559        weekdaysShort: 'Yek_Du_Sê_Çar_Pên_În_Şem'.split('_'),
48560        weekdaysMin: 'Ye_Du_Sê_Ça_Pê_În_Şe'.split('_'),
48561        meridiem: function (hours, minutes, isLower) {
48562            if (hours < 12) {
48563                return isLower ? 'bn' : 'BN';
48564            } else {
48565                return isLower ? 'pn' : 'PN';
48566            }
48567        },
48568        meridiemParse: /bn|BN|pn|PN/,
48569        longDateFormat: {
48570            LT: 'HH:mm',
48571            LTS: 'HH:mm:ss',
48572            L: 'DD.MM.YYYY',
48573            LL: 'Do MMMM[a] YYYY[an]',
48574            LLL: 'Do MMMM[a] YYYY[an] HH:mm',
48575            LLLL: 'dddd, Do MMMM[a] YYYY[an] HH:mm',
48576            ll: 'Do MMM[.] YYYY[an]',
48577            lll: 'Do MMM[.] YYYY[an] HH:mm',
48578            llll: 'ddd[.], Do MMM[.] YYYY[an] HH:mm',
48579        },
48580        calendar: {
48581            sameDay: '[Îro di saet] LT [de]',
48582            nextDay: '[Sibê di saet] LT [de]',
48583            nextWeek: 'dddd [di saet] LT [de]',
48584            lastDay: '[Duh di saet] LT [de]',
48585            lastWeek: 'dddd[a borî di saet] LT [de]',
48586            sameElse: 'L',
48587        },
48588        relativeTime: {
48589            future: 'di %s de',
48590            past: 'berî %s',
48591            s: processRelativeTime,
48592            ss: processRelativeTime,
48593            m: processRelativeTime,
48594            mm: processRelativeTime,
48595            h: processRelativeTime,
48596            hh: processRelativeTime,
48597            d: processRelativeTime,
48598            dd: processRelativeTime,
48599            w: processRelativeTime,
48600            ww: processRelativeTime,
48601            M: processRelativeTime,
48602            MM: processRelativeTime,
48603            y: processRelativeTime,
48604            yy: processRelativeTime,
48605        },
48606        dayOfMonthOrdinalParse: /\d{1,2}(?:yê|ê|\.)/,
48607        ordinal: function (num, period) {
48608            var p = period.toLowerCase();
48609            if (p.includes('w') || p.includes('m')) return num + '.';
48610
48611            return num + ezafeNumSuffix(num);
48612        },
48613        week: {
48614            dow: 1, // Monday is the first day of the week.
48615            doy: 4, // The week that contains Jan 4th is the first week of the year.
48616        },
48617    });
48618
48619    return kuKmr;
48620
48621})));
48622
48623
48624/***/ }),
48625
vendor: 4,268 bytes, lines 48626-48763
48626/***/ "./node_modules/moment/locale/ku.js":
48627/*!******************************************!*\
48628  !*** ./node_modules/moment/locale/ku.js ***!
48629  \******************************************/
48630/*! no static exports found */
48631/***/ (function(module, exports, __webpack_require__) {
48632
48633//! moment.js locale configuration
48634//! locale : Kurdish [ku]
48635//! author : Shahram Mebashar : https://github.com/ShahramMebashar
48636
48637;(function (global, factory) {
48638    true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/moment/moment.js")) :
48639   undefined
48640}(this, (function (moment) { 'use strict';
48641
48642    //! moment.js locale configuration
48643
48644    var symbolMap = {
48645            1: 'Ù¡',
48646            2: 'Ù¢',
48647            3: 'Ù£',
48648            4: 'Ù¤',
48649            5: 'Ù¥',
48650            6: 'Ù¦',
48651            7: 'Ù§',
48652            8: 'Ù¨',
48653            9: 'Ù©',
48654            0: 'Ù ',
48655        },
48656        numberMap = {
48657            'Ù¡': '1',
48658            'Ù¢': '2',
48659            'Ù£': '3',
48660            'Ù¤': '4',
48661            'Ù¥': '5',
48662            'Ù¦': '6',
48663            'Ù§': '7',
48664            'Ù¨': '8',
48665            'Ù©': '9',
48666            'Ù ': '0',
48667        },
48668        months = [
48669            'کانونی دووەم',
48670            'شوبات',
48671            'ئازار',
48672            'نیسان',
48673            'ئایار',
48674            'حوزەیران',
48675            'تەمموز',
48676            'ئاب',
48677            'ئەیلوول',
48678            'تشرینی یەكەم',
48679            'تشرینی دووەم',
48680            'كانونی یەکەم',
48681        ];
48682
48683    var ku = moment.defineLocale('ku', {
48684        months: months,
48685        monthsShort: months,
48686        weekdays:
48687            'یه‌كشه‌ممه‌_دووشه‌ممه‌_سێشه‌ممه‌_چوارشه‌ممه‌_پێنجشه‌ممه‌_هه‌ینی_شه‌ممه‌'.split(
48688                '_'
48689            ),
48690        weekdaysShort:
48691            'یه‌كشه‌م_دووشه‌م_سێشه‌م_چوارشه‌م_پێنجشه‌م_هه‌ینی_شه‌ممه‌'.split('_'),
48692        weekdaysMin: 'ی_د_س_چ_پ_ه_ش'.split('_'),
48693        weekdaysParseExact: true,
48694        longDateFormat: {
48695            LT: 'HH:mm',
48696            LTS: 'HH:mm:ss',
48697            L: 'DD/MM/YYYY',
48698            LL: 'D MMMM YYYY',
48699            LLL: 'D MMMM YYYY HH:mm',
48700            LLLL: 'dddd, D MMMM YYYY HH:mm',
48701        },
48702        meridiemParse: /ئێواره‌|به‌یانی/,
48703        isPM: function (input) {
48704            return /ئێواره‌/.test(input);
48705        },
48706        meridiem: function (hour, minute, isLower) {
48707            if (hour < 12) {
48708                return 'به‌یانی';
48709            } else {
48710                return 'ئێواره‌';
48711            }
48712        },
48713        calendar: {
48714            sameDay: '[ئه‌مرۆ كاتژمێر] LT',
48715            nextDay: '[به‌یانی كاتژمێر] LT',
48716            nextWeek: 'dddd [كاتژمێر] LT',
48717            lastDay: '[دوێنێ كاتژمێر] LT',
48718            lastWeek: 'dddd [كاتژمێر] LT',
48719            sameElse: 'L',
48720        },
48721        relativeTime: {
48722            future: 'له‌ %s',
48723            past: '%s',
48724            s: 'چه‌ند چركه‌یه‌ك',
48725            ss: 'چركه‌ %d',
48726            m: 'یه‌ك خوله‌ك',
48727            mm: '%d خوله‌ك',
48728            h: 'یه‌ك كاتژمێر',
48729            hh: '%d كاتژمێر',
48730            d: 'یه‌ك ڕۆژ',
48731            dd: '%d ڕۆژ',
48732            M: 'یه‌ك مانگ',
48733            MM: '%d مانگ',
48734            y: 'یه‌ك ساڵ',
48735            yy: '%d ساڵ',
48736        },
48737        preparse: function (string) {
48738            return string
48739                .replace(/[١٢٣٤٥٦٧٨٩٠]/g, function (match) {
48740                    return numberMap[match];
48741                })
48742                .replace(/،/g, ',');
48743        },
48744        postformat: function (string) {
48745            return string
48746                .replace(/\d/g, function (match) {
48747                    return symbolMap[match];
48748                })
48749                .replace(/,/g, '،');
48750        },
48751        week: {
48752            dow: 6, // Saturday is the first day of the week.
48753            doy: 12, // The week that contains Jan 12th is the first week of the year.
48754        },
48755    });
48756
48757    return ku;
48758
48759})));
48760
48761
48762/***/ }),
48763
vendor: 3,323 bytes, lines 48764-48867
48764/***/ "./node_modules/moment/locale/ky.js":
48765/*!******************************************!*\
48766  !*** ./node_modules/moment/locale/ky.js ***!
48767  \******************************************/
48768/*! no static exports found */
48769/***/ (function(module, exports, __webpack_require__) {
48770
48771//! moment.js locale configuration
48772//! locale : Kyrgyz [ky]
48773//! author : Chyngyz Arystan uulu : https://github.com/chyngyz
48774
48775;(function (global, factory) {
48776    true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/moment/moment.js")) :
48777   undefined
48778}(this, (function (moment) { 'use strict';
48779
48780    //! moment.js locale configuration
48781
48782    var suffixes = {
48783        0: '-чү',
48784        1: '-чи',
48785        2: '-чи',
48786        3: '-чү',
48787        4: '-чү',
48788        5: '-чи',
48789        6: '-чы',
48790        7: '-чи',
48791        8: '-чи',
48792        9: '-чу',
48793        10: '-чу',
48794        20: '-чы',
48795        30: '-чу',
48796        40: '-чы',
48797        50: '-чү',
48798        60: '-чы',
48799        70: '-чи',
48800        80: '-чи',
48801        90: '-чу',
48802        100: '-чү',
48803    };
48804
48805    var ky = moment.defineLocale('ky', {
48806        months: 'январь_февраль_март_апрель_май_июнь_июль_август_сентябрь_октябрь_ноябрь_декабрь'.split(
48807            '_'
48808        ),
48809        monthsShort: 'янв_фев_март_апр_май_июнь_июль_авг_сен_окт_ноя_дек'.split(
48810            '_'
48811        ),
48812        weekdays: 'Жекшемби_Дүйшөмбү_Шейшемби_Шаршемби_Бейшемби_Жума_Ишемби'.split(
48813            '_'
48814        ),
48815        weekdaysShort: 'Жек_Дүй_Шей_Шар_Бей_Жум_Ише'.split('_'),
48816        weekdaysMin: 'Жк_Дй_Шй_Шр_Бй_Жм_Иш'.split('_'),
48817        longDateFormat: {
48818            LT: 'HH:mm',
48819            LTS: 'HH:mm:ss',
48820            L: 'DD.MM.YYYY',
48821            LL: 'D MMMM YYYY',
48822            LLL: 'D MMMM YYYY HH:mm',
48823            LLLL: 'dddd, D MMMM YYYY HH:mm',
48824        },
48825        calendar: {
48826            sameDay: '[Бүгүн саат] LT',
48827            nextDay: '[Эртең саат] LT',
48828            nextWeek: 'dddd [саат] LT',
48829            lastDay: '[Кечээ саат] LT',
48830            lastWeek: '[Өткөн аптанын] dddd [күнү] [саат] LT',
48831            sameElse: 'L',
48832        },
48833        relativeTime: {
48834            future: '%s ичинде',
48835            past: '%s мурун',
48836            s: 'бирнече секунд',
48837            ss: '%d секунд',
48838            m: 'бир мүнөт',
48839            mm: '%d мүнөт',
48840            h: 'бир саат',
48841            hh: '%d саат',
48842            d: 'бир күн',
48843            dd: '%d күн',
48844            M: 'бир ай',
48845            MM: '%d ай',
48846            y: 'бир жыл',
48847            yy: '%d жыл',
48848        },
48849        dayOfMonthOrdinalParse: /\d{1,2}-(чи|чы|чү|чу)/,
48850        ordinal: function (number) {
48851            var a = number % 10,
48852                b = number >= 100 ? 100 : null;
48853            return number + (suffixes[number] || suffixes[a] || suffixes[b]);
48854        },
48855        week: {
48856            dow: 1, // Monday is the first day of the week.
48857            doy: 7, // The week that contains Jan 7th is the first week of the year.
48858        },
48859    });
48860
48861    return ky;
48862
48863})));
48864
48865
48866/***/ }),
48867
vendor: 5,279 bytes, lines 48868-49024
48868/***/ "./node_modules/moment/locale/lb.js":
48869/*!******************************************!*\
48870  !*** ./node_modules/moment/locale/lb.js ***!
48871  \******************************************/
48872/*! no static exports found */
48873/***/ (function(module, exports, __webpack_require__) {
48874
48875//! moment.js locale configuration
48876//! locale : Luxembourgish [lb]
48877//! author : mweimerskirch : https://github.com/mweimerskirch
48878//! author : David Raison : https://github.com/kwisatz
48879
48880;(function (global, factory) {
48881    true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/moment/moment.js")) :
48882   undefined
48883}(this, (function (moment) { 'use strict';
48884
48885    //! moment.js locale configuration
48886
48887    function processRelativeTime(number, withoutSuffix, key, isFuture) {
48888        var format = {
48889            m: ['eng Minutt', 'enger Minutt'],
48890            h: ['eng Stonn', 'enger Stonn'],
48891            d: ['een Dag', 'engem Dag'],
48892            M: ['ee Mount', 'engem Mount'],
48893            y: ['ee Joer', 'engem Joer'],
48894        };
48895        return withoutSuffix ? format[key][0] : format[key][1];
48896    }
48897    function processFutureTime(string) {
48898        var number = string.substr(0, string.indexOf(' '));
48899        if (eifelerRegelAppliesToNumber(number)) {
48900            return 'a ' + string;
48901        }
48902        return 'an ' + string;
48903    }
48904    function processPastTime(string) {
48905        var number = string.substr(0, string.indexOf(' '));
48906        if (eifelerRegelAppliesToNumber(number)) {
48907            return 'viru ' + string;
48908        }
48909        return 'virun ' + string;
48910    }
48911    /**
48912     * Returns true if the word before the given number loses the '-n' ending.
48913     * e.g. 'an 10 Deeg' but 'a 5 Deeg'
48914     *
48915     * @param number {integer}
48916     * @returns {boolean}
48917     */
48918    function eifelerRegelAppliesToNumber(number) {
48919        number = parseInt(number, 10);
48920        if (isNaN(number)) {
48921            return false;
48922        }
48923        if (number < 0) {
48924            // Negative Number --> always true
48925            return true;
48926        } else if (number < 10) {
48927            // Only 1 digit
48928            if (4 <= number && number <= 7) {
48929                return true;
48930            }
48931            return false;
48932        } else if (number < 100) {
48933            // 2 digits
48934            var lastDigit = number % 10,
48935                firstDigit = number / 10;
48936            if (lastDigit === 0) {
48937                return eifelerRegelAppliesToNumber(firstDigit);
48938            }
48939            return eifelerRegelAppliesToNumber(lastDigit);
48940        } else if (number < 10000) {
48941            // 3 or 4 digits --> recursively check first digit
48942            while (number >= 10) {
48943                number = number / 10;
48944            }
48945            return eifelerRegelAppliesToNumber(number);
48946        } else {
48947            // Anything larger than 4 digits: recursively check first n-3 digits
48948            number = number / 1000;
48949            return eifelerRegelAppliesToNumber(number);
48950        }
48951    }
48952
48953    var lb = moment.defineLocale('lb', {
48954        months: 'Januar_Februar_Mäerz_Abrëll_Mee_Juni_Juli_August_September_Oktober_November_Dezember'.split(
48955            '_'
48956        ),
48957        monthsShort:
48958            'Jan._Febr._Mrz._Abr._Mee_Jun._Jul._Aug._Sept._Okt._Nov._Dez.'.split(
48959                '_'
48960            ),
48961        monthsParseExact: true,
48962        weekdays:
48963            'Sonndeg_Méindeg_Dënschdeg_Mëttwoch_Donneschdeg_Freideg_Samschdeg'.split(
48964                '_'
48965            ),
48966        weekdaysShort: 'So._Mé._Dë._Më._Do._Fr._Sa.'.split('_'),
48967        weekdaysMin: 'So_Mé_Dë_Më_Do_Fr_Sa'.split('_'),
48968        weekdaysParseExact: true,
48969        longDateFormat: {
48970            LT: 'H:mm [Auer]',
48971            LTS: 'H:mm:ss [Auer]',
48972            L: 'DD.MM.YYYY',
48973            LL: 'D. MMMM YYYY',
48974            LLL: 'D. MMMM YYYY H:mm [Auer]',
48975            LLLL: 'dddd, D. MMMM YYYY H:mm [Auer]',
48976        },
48977        calendar: {
48978            sameDay: '[Haut um] LT',
48979            sameElse: 'L',
48980            nextDay: '[Muer um] LT',
48981            nextWeek: 'dddd [um] LT',
48982            lastDay: '[Gëschter um] LT',
48983            lastWeek: function () {
48984                // Different date string for 'Dënschdeg' (Tuesday) and 'Donneschdeg' (Thursday) due to phonological rule
48985                switch (this.day()) {
48986                    case 2:
48987                    case 4:
48988                        return '[Leschten] dddd [um] LT';
48989                    default:
48990                        return '[Leschte] dddd [um] LT';
48991                }
48992            },
48993        },
48994        relativeTime: {
48995            future: processFutureTime,
48996            past: processPastTime,
48997            s: 'e puer Sekonnen',
48998            ss: '%d Sekonnen',
48999            m: processRelativeTime,
49000            mm: '%d Minutten',
49001            h: processRelativeTime,
49002            hh: '%d Stonnen',
49003            d: processRelativeTime,
49004            dd: '%d Deeg',
49005            M: processRelativeTime,
49006            MM: '%d Méint',
49007            y: processRelativeTime,
49008            yy: '%d Joer',
49009        },
49010        dayOfMonthOrdinalParse: /\d{1,2}\./,
49011        ordinal: '%d.',
49012        week: {
49013            dow: 1, // Monday is the first day of the week.
49014            doy: 4, // The week that contains Jan 4th is the first week of the year.
49015        },
49016    });
49017
49018    return lb;
49019
49020})));
49021
49022
49023/***/ }),
49024
vendor: 3,319 bytes, lines 49025-49110
49025/***/ "./node_modules/moment/locale/lo.js":
49026/*!******************************************!*\
49027  !*** ./node_modules/moment/locale/lo.js ***!
49028  \******************************************/
49029/*! no static exports found */
49030/***/ (function(module, exports, __webpack_require__) {
49031
49032//! moment.js locale configuration
49033//! locale : Lao [lo]
49034//! author : Ryan Hart : https://github.com/ryanhart2
49035
49036;(function (global, factory) {
49037    true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/moment/moment.js")) :
49038   undefined
49039}(this, (function (moment) { 'use strict';
49040
49041    //! moment.js locale configuration
49042
49043    var lo = moment.defineLocale('lo', {
49044        months: 'ມັງກອນ_ກຸມພາ_ມີນາ_ເມສາ_ພຶດສະພາ_ມິຖຸນາ_ກໍລະກົດ_ສິງຫາ_ກັນຍາ_ຕຸລາ_ພະຈິກ_ທັນວາ'.split(
49045            '_'
49046        ),
49047        monthsShort:
49048            'ມັງກອນ_ກຸມພາ_ມີນາ_ເມສາ_ພຶດສະພາ_ມິຖຸນາ_ກໍລະກົດ_ສິງຫາ_ກັນຍາ_ຕຸລາ_ພະຈິກ_ທັນວາ'.split(
49049                '_'
49050            ),
49051        weekdays: 'ອາທິດ_ຈັນ_ອັງຄານ_ພຸດ_ພະຫັດ_ສຸກ_ເສົາ'.split('_'),
49052        weekdaysShort: 'ທິດ_ຈັນ_ອັງຄານ_ພຸດ_ພະຫັດ_ສຸກ_ເສົາ'.split('_'),
49053        weekdaysMin: 'ທ_ຈ_ອຄ_ພ_ພຫ_ສກ_ສ'.split('_'),
49054        weekdaysParseExact: true,
49055        longDateFormat: {
49056            LT: 'HH:mm',
49057            LTS: 'HH:mm:ss',
49058            L: 'DD/MM/YYYY',
49059            LL: 'D MMMM YYYY',
49060            LLL: 'D MMMM YYYY HH:mm',
49061            LLLL: 'ວັນdddd D MMMM YYYY HH:mm',
49062        },
49063        meridiemParse: /ຕອນເຊົ້າ|ຕອນແລງ/,
49064        isPM: function (input) {
49065            return input === 'ຕອນແລງ';
49066        },
49067        meridiem: function (hour, minute, isLower) {
49068            if (hour < 12) {
49069                return 'ຕອນເຊົ້າ';
49070            } else {
49071                return 'ຕອນແລງ';
49072            }
49073        },
49074        calendar: {
49075            sameDay: '[ມື້ນີ້ເວລາ] LT',
49076            nextDay: '[ມື້ອື່ນເວລາ] LT',
49077            nextWeek: '[ວັນ]dddd[ໜ້າເວລາ] LT',
49078            lastDay: '[ມື້ວານນີ້ເວລາ] LT',
49079            lastWeek: '[ວັນ]dddd[ແລ້ວນີ້ເວລາ] LT',
49080            sameElse: 'L',
49081        },
49082        relativeTime: {
49083            future: 'ອີກ %s',
49084            past: '%sຜ່ານມາ',
49085            s: 'ບໍ່ເທົ່າໃດວິນາທີ',
49086            ss: '%d ວິນາທີ',
49087            m: '1 ນາທີ',
49088            mm: '%d ນາທີ',
49089            h: '1 ຊົ່ວໂມງ',
49090            hh: '%d ຊົ່ວໂມງ',
49091            d: '1 ມື້',
49092            dd: '%d ມື້',
49093            M: '1 ເດືອນ',
49094            MM: '%d ເດືອນ',
49095            y: '1 ປີ',
49096            yy: '%d ປີ',
49097        },
49098        dayOfMonthOrdinalParse: /(ທີ່)\d{1,2}/,
49099        ordinal: function (number) {
49100            return 'ທີ່' + number;
49101        },
49102    });
49103
49104    return lo;
49105
49106})));
49107
49108
49109/***/ }),
49110
vendor: 4,979 bytes, lines 49111-49255
49111/***/ "./node_modules/moment/locale/lt.js":
49112/*!******************************************!*\
49113  !*** ./node_modules/moment/locale/lt.js ***!
49114  \******************************************/
49115/*! no static exports found */
49116/***/ (function(module, exports, __webpack_require__) {
49117
49118//! moment.js locale configuration
49119//! locale : Lithuanian [lt]
49120//! author : Mindaugas Mozūras : https://github.com/mmozuras
49121
49122;(function (global, factory) {
49123    true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/moment/moment.js")) :
49124   undefined
49125}(this, (function (moment) { 'use strict';
49126
49127    //! moment.js locale configuration
49128
49129    var units = {
49130        ss: 'sekundė_sekundžių_sekundes',
49131        m: 'minutė_minutės_minutę',
49132        mm: 'minutės_minučių_minutes',
49133        h: 'valanda_valandos_valandą',
49134        hh: 'valandos_valandų_valandas',
49135        d: 'diena_dienos_dieną',
49136        dd: 'dienos_dienų_dienas',
49137        M: 'mėnuo_mėnesio_mėnesį',
49138        MM: 'mėnesiai_mėnesių_mėnesius',
49139        y: 'metai_metų_metus',
49140        yy: 'metai_metų_metus',
49141    };
49142    function translateSeconds(number, withoutSuffix, key, isFuture) {
49143        if (withoutSuffix) {
49144            return 'kelios sekundės';
49145        } else {
49146            return isFuture ? 'kelių sekundžių' : 'kelias sekundes';
49147        }
49148    }
49149    function translateSingular(number, withoutSuffix, key, isFuture) {
49150        return withoutSuffix
49151            ? forms(key)[0]
49152            : isFuture
49153              ? forms(key)[1]
49154              : forms(key)[2];
49155    }
49156    function special(number) {
49157        return number % 10 === 0 || (number > 10 && number < 20);
49158    }
49159    function forms(key) {
49160        return units[key].split('_');
49161    }
49162    function translate(number, withoutSuffix, key, isFuture) {
49163        var result = number + ' ';
49164        if (number === 1) {
49165            return (
49166                result + translateSingular(number, withoutSuffix, key[0], isFuture)
49167            );
49168        } else if (withoutSuffix) {
49169            return result + (special(number) ? forms(key)[1] : forms(key)[0]);
49170        } else {
49171            if (isFuture) {
49172                return result + forms(key)[1];
49173            } else {
49174                return result + (special(number) ? forms(key)[1] : forms(key)[2]);
49175            }
49176        }
49177    }
49178    var lt = moment.defineLocale('lt', {
49179        months: {
49180            format: 'sausio_vasario_kovo_balandžio_gegužės_birželio_liepos_rugpjūčio_rugsėjo_spalio_lapkričio_gruodžio'.split(
49181                '_'
49182            ),
49183            standalone:
49184                'sausis_vasaris_kovas_balandis_gegužė_birželis_liepa_rugpjūtis_rugsėjis_spalis_lapkritis_gruodis'.split(
49185                    '_'
49186                ),
49187            isFormat: /D[oD]?(\[[^\[\]]*\]|\s)+MMMM?|MMMM?(\[[^\[\]]*\]|\s)+D[oD]?/,
49188        },
49189        monthsShort: 'sau_vas_kov_bal_geg_bir_lie_rgp_rgs_spa_lap_grd'.split('_'),
49190        weekdays: {
49191            format: 'sekmadienį_pirmadienį_antradienį_trečiadienį_ketvirtadienį_penktadienį_šeštadienį'.split(
49192                '_'
49193            ),
49194            standalone:
49195                'sekmadienis_pirmadienis_antradienis_trečiadienis_ketvirtadienis_penktadienis_šeštadienis'.split(
49196                    '_'
49197                ),
49198            isFormat: /dddd HH:mm/,
49199        },
49200        weekdaysShort: 'Sek_Pir_Ant_Tre_Ket_Pen_Šeš'.split('_'),
49201        weekdaysMin: 'S_P_A_T_K_Pn_Å '.split('_'),
49202        weekdaysParseExact: true,
49203        longDateFormat: {
49204            LT: 'HH:mm',
49205            LTS: 'HH:mm:ss',
49206            L: 'YYYY-MM-DD',
49207            LL: 'YYYY [m.] MMMM D [d.]',
49208            LLL: 'YYYY [m.] MMMM D [d.], HH:mm [val.]',
49209            LLLL: 'YYYY [m.] MMMM D [d.], dddd, HH:mm [val.]',
49210            l: 'YYYY-MM-DD',
49211            ll: 'YYYY [m.] MMMM D [d.]',
49212            lll: 'YYYY [m.] MMMM D [d.], HH:mm [val.]',
49213            llll: 'YYYY [m.] MMMM D [d.], ddd, HH:mm [val.]',
49214        },
49215        calendar: {
49216            sameDay: '[Å iandien] LT',
49217            nextDay: '[Rytoj] LT',
49218            nextWeek: 'dddd LT',
49219            lastDay: '[Vakar] LT',
49220            lastWeek: '[Praėjusį] dddd LT',
49221            sameElse: 'L',
49222        },
49223        relativeTime: {
49224            future: 'po %s',
49225            past: 'prieš %s',
49226            s: translateSeconds,
49227            ss: translate,
49228            m: translateSingular,
49229            mm: translate,
49230            h: translateSingular,
49231            hh: translate,
49232            d: translateSingular,
49233            dd: translate,
49234            M: translateSingular,
49235            MM: translate,
49236            y: translateSingular,
49237            yy: translate,
49238        },
49239        dayOfMonthOrdinalParse: /\d{1,2}-oji/,
49240        ordinal: function (number) {
49241            return number + '-oji';
49242        },
49243        week: {
49244            dow: 1, // Monday is the first day of the week.
49245            doy: 4, // The week that contains Jan 4th is the first week of the year.
49246        },
49247    });
49248
49249    return lt;
49250
49251})));
49252
49253
49254/***/ }),
49255
vendor: 4,287 bytes, lines 49256-49369
49256/***/ "./node_modules/moment/locale/lv.js":
49257/*!******************************************!*\
49258  !*** ./node_modules/moment/locale/lv.js ***!
49259  \******************************************/
49260/*! no static exports found */
49261/***/ (function(module, exports, __webpack_require__) {
49262
49263//! moment.js locale configuration
49264//! locale : Latvian [lv]
49265//! author : Kristaps Karlsons : https://github.com/skakri
49266//! author : Jānis Elmeris : https://github.com/JanisE
49267
49268;(function (global, factory) {
49269    true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/moment/moment.js")) :
49270   undefined
49271}(this, (function (moment) { 'use strict';
49272
49273    //! moment.js locale configuration
49274
49275    var units = {
49276        ss: 'sekundes_sekundēm_sekunde_sekundes'.split('_'),
49277        m: 'minūtes_minūtēm_minūte_minūtes'.split('_'),
49278        mm: 'minūtes_minūtēm_minūte_minūtes'.split('_'),
49279        h: 'stundas_stundām_stunda_stundas'.split('_'),
49280        hh: 'stundas_stundām_stunda_stundas'.split('_'),
49281        d: 'dienas_dienām_diena_dienas'.split('_'),
49282        dd: 'dienas_dienām_diena_dienas'.split('_'),
49283        M: 'mēneša_mēnešiem_mēnesis_mēneši'.split('_'),
49284        MM: 'mēneša_mēnešiem_mēnesis_mēneši'.split('_'),
49285        y: 'gada_gadiem_gads_gadi'.split('_'),
49286        yy: 'gada_gadiem_gads_gadi'.split('_'),
49287    };
49288    /**
49289     * @param withoutSuffix boolean true = a length of time; false = before/after a period of time.
49290     */
49291    function format(forms, number, withoutSuffix) {
49292        if (withoutSuffix) {
49293            // E.g. "21 minūte", "3 minūtes".
49294            return number % 10 === 1 && number % 100 !== 11 ? forms[2] : forms[3];
49295        } else {
49296            // E.g. "21 minūtes" as in "pēc 21 minūtes".
49297            // E.g. "3 minūtēm" as in "pēc 3 minūtēm".
49298            return number % 10 === 1 && number % 100 !== 11 ? forms[0] : forms[1];
49299        }
49300    }
49301    function relativeTimeWithPlural(number, withoutSuffix, key) {
49302        return number + ' ' + format(units[key], number, withoutSuffix);
49303    }
49304    function relativeTimeWithSingular(number, withoutSuffix, key) {
49305        return format(units[key], number, withoutSuffix);
49306    }
49307    function relativeSeconds(number, withoutSuffix) {
49308        return withoutSuffix ? 'dažas sekundes' : 'dažām sekundēm';
49309    }
49310
49311    var lv = moment.defineLocale('lv', {
49312        months: 'janvāris_februāris_marts_aprīlis_maijs_jūnijs_jūlijs_augusts_septembris_oktobris_novembris_decembris'.split(
49313            '_'
49314        ),
49315        monthsShort: 'jan_feb_mar_apr_mai_jūn_jūl_aug_sep_okt_nov_dec'.split('_'),
49316        weekdays:
49317            'svētdiena_pirmdiena_otrdiena_trešdiena_ceturtdiena_piektdiena_sestdiena'.split(
49318                '_'
49319            ),
49320        weekdaysShort: 'Sv_P_O_T_C_Pk_S'.split('_'),
49321        weekdaysMin: 'Sv_P_O_T_C_Pk_S'.split('_'),
49322        weekdaysParseExact: true,
49323        longDateFormat: {
49324            LT: 'HH:mm',
49325            LTS: 'HH:mm:ss',
49326            L: 'DD.MM.YYYY.',
49327            LL: 'YYYY. [gada] D. MMMM',
49328            LLL: 'YYYY. [gada] D. MMMM, HH:mm',
49329            LLLL: 'YYYY. [gada] D. MMMM, dddd, HH:mm',
49330        },
49331        calendar: {
49332            sameDay: '[Å odien pulksten] LT',
49333            nextDay: '[Rīt pulksten] LT',
49334            nextWeek: 'dddd [pulksten] LT',
49335            lastDay: '[Vakar pulksten] LT',
49336            lastWeek: '[Pagājušā] dddd [pulksten] LT',
49337            sameElse: 'L',
49338        },
49339        relativeTime: {
49340            future: 'pēc %s',
49341            past: 'pirms %s',
49342            s: relativeSeconds,
49343            ss: relativeTimeWithPlural,
49344            m: relativeTimeWithSingular,
49345            mm: relativeTimeWithPlural,
49346            h: relativeTimeWithSingular,
49347            hh: relativeTimeWithPlural,
49348            d: relativeTimeWithSingular,
49349            dd: relativeTimeWithPlural,
49350            M: relativeTimeWithSingular,
49351            MM: relativeTimeWithPlural,
49352            y: relativeTimeWithSingular,
49353            yy: relativeTimeWithPlural,
49354        },
49355        dayOfMonthOrdinalParse: /\d{1,2}\./,
49356        ordinal: '%d.',
49357        week: {
49358            dow: 1, // Monday is the first day of the week.
49359            doy: 4, // The week that contains Jan 4th is the first week of the year.
49360        },
49361    });
49362
49363    return lv;
49364
49365})));
49366
49367
49368/***/ }),
49369
vendor: 4,595 bytes, lines 49370-49506
49370/***/ "./node_modules/moment/locale/me.js":
49371/*!******************************************!*\
49372  !*** ./node_modules/moment/locale/me.js ***!
49373  \******************************************/
49374/*! no static exports found */
49375/***/ (function(module, exports, __webpack_require__) {
49376
49377//! moment.js locale configuration
49378//! locale : Montenegrin [me]
49379//! author : Miodrag Nikač <[email protected]> : https://github.com/miodragnikac
49380
49381;(function (global, factory) {
49382    true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/moment/moment.js")) :
49383   undefined
49384}(this, (function (moment) { 'use strict';
49385
49386    //! moment.js locale configuration
49387
49388    var translator = {
49389        words: {
49390            //Different grammatical cases
49391            ss: ['sekund', 'sekunda', 'sekundi'],
49392            m: ['jedan minut', 'jednog minuta'],
49393            mm: ['minut', 'minuta', 'minuta'],
49394            h: ['jedan sat', 'jednog sata'],
49395            hh: ['sat', 'sata', 'sati'],
49396            dd: ['dan', 'dana', 'dana'],
49397            MM: ['mjesec', 'mjeseca', 'mjeseci'],
49398            yy: ['godina', 'godine', 'godina'],
49399        },
49400        correctGrammaticalCase: function (number, wordKey) {
49401            return number === 1
49402                ? wordKey[0]
49403                : number >= 2 && number <= 4
49404                  ? wordKey[1]
49405                  : wordKey[2];
49406        },
49407        translate: function (number, withoutSuffix, key) {
49408            var wordKey = translator.words[key];
49409            if (key.length === 1) {
49410                return withoutSuffix ? wordKey[0] : wordKey[1];
49411            } else {
49412                return (
49413                    number +
49414                    ' ' +
49415                    translator.correctGrammaticalCase(number, wordKey)
49416                );
49417            }
49418        },
49419    };
49420
49421    var me = moment.defineLocale('me', {
49422        months: 'januar_februar_mart_april_maj_jun_jul_avgust_septembar_oktobar_novembar_decembar'.split(
49423            '_'
49424        ),
49425        monthsShort:
49426            'jan._feb._mar._apr._maj_jun_jul_avg._sep._okt._nov._dec.'.split('_'),
49427        monthsParseExact: true,
49428        weekdays: 'nedjelja_ponedjeljak_utorak_srijeda_četvrtak_petak_subota'.split(
49429            '_'
49430        ),
49431        weekdaysShort: 'ned._pon._uto._sri._čet._pet._sub.'.split('_'),
49432        weekdaysMin: 'ne_po_ut_sr_če_pe_su'.split('_'),
49433        weekdaysParseExact: true,
49434        longDateFormat: {
49435            LT: 'H:mm',
49436            LTS: 'H:mm:ss',
49437            L: 'DD.MM.YYYY',
49438            LL: 'D. MMMM YYYY',
49439            LLL: 'D. MMMM YYYY H:mm',
49440            LLLL: 'dddd, D. MMMM YYYY H:mm',
49441        },
49442        calendar: {
49443            sameDay: '[danas u] LT',
49444            nextDay: '[sjutra u] LT',
49445
49446            nextWeek: function () {
49447                switch (this.day()) {
49448                    case 0:
49449                        return '[u] [nedjelju] [u] LT';
49450                    case 3:
49451                        return '[u] [srijedu] [u] LT';
49452                    case 6:
49453                        return '[u] [subotu] [u] LT';
49454                    case 1:
49455                    case 2:
49456                    case 4:
49457                    case 5:
49458                        return '[u] dddd [u] LT';
49459                }
49460            },
49461            lastDay: '[juče u] LT',
49462            lastWeek: function () {
49463                var lastWeekDays = [
49464                    '[prošle] [nedjelje] [u] LT',
49465                    '[prošlog] [ponedjeljka] [u] LT',
49466                    '[prošlog] [utorka] [u] LT',
49467                    '[prošle] [srijede] [u] LT',
49468                    '[prošlog] [četvrtka] [u] LT',
49469                    '[prošlog] [petka] [u] LT',
49470                    '[prošle] [subote] [u] LT',
49471                ];
49472                return lastWeekDays[this.day()];
49473            },
49474            sameElse: 'L',
49475        },
49476        relativeTime: {
49477            future: 'za %s',
49478            past: 'prije %s',
49479            s: 'nekoliko sekundi',
49480            ss: translator.translate,
49481            m: translator.translate,
49482            mm: translator.translate,
49483            h: translator.translate,
49484            hh: translator.translate,
49485            d: 'dan',
49486            dd: translator.translate,
49487            M: 'mjesec',
49488            MM: translator.translate,
49489            y: 'godinu',
49490            yy: translator.translate,
49491        },
49492        dayOfMonthOrdinalParse: /\d{1,2}\./,
49493        ordinal: '%d.',
49494        week: {
49495            dow: 1, // Monday is the first day of the week.
49496            doy: 7, // The week that contains Jan 7th is the first week of the year.
49497        },
49498    });
49499
49500    return me;
49501
49502})));
49503
49504
49505/***/ }),
49506
vendor: 2,733 bytes, lines 49507-49586
49507/***/ "./node_modules/moment/locale/mi.js":
49508/*!******************************************!*\
49509  !*** ./node_modules/moment/locale/mi.js ***!
49510  \******************************************/
49511/*! no static exports found */
49512/***/ (function(module, exports, __webpack_require__) {
49513
49514//! moment.js locale configuration
49515//! locale : Maori [mi]
49516//! author : John Corrigan <[email protected]> : https://github.com/johnideal
49517
49518;(function (global, factory) {
49519    true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/moment/moment.js")) :
49520   undefined
49521}(this, (function (moment) { 'use strict';
49522
49523    //! moment.js locale configuration
49524
49525    var mi = moment.defineLocale('mi', {
49526        months: 'Kohi-tāte_Hui-tanguru_Poutū-te-rangi_Paenga-whāwhā_Haratua_Pipiri_Hōngoingoi_Here-turi-kōkā_Mahuru_Whiringa-ā-nuku_Whiringa-ā-rangi_Hakihea'.split(
49527            '_'
49528        ),
49529        monthsShort:
49530            'Kohi_Hui_Pou_Pae_Hara_Pipi_Hōngoi_Here_Mahu_Whi-nu_Whi-ra_Haki'.split(
49531                '_'
49532            ),
49533        monthsRegex: /(?:['a-z\u0101\u014D\u016B]+\-?){1,3}/i,
49534        monthsStrictRegex: /(?:['a-z\u0101\u014D\u016B]+\-?){1,3}/i,
49535        monthsShortRegex: /(?:['a-z\u0101\u014D\u016B]+\-?){1,3}/i,
49536        monthsShortStrictRegex: /(?:['a-z\u0101\u014D\u016B]+\-?){1,2}/i,
49537        weekdays: 'Rātapu_Mane_Tūrei_Wenerei_Tāite_Paraire_Hātarei'.split('_'),
49538        weekdaysShort: 'Ta_Ma_Tū_We_Tāi_Pa_Hā'.split('_'),
49539        weekdaysMin: 'Ta_Ma_Tū_We_Tāi_Pa_Hā'.split('_'),
49540        longDateFormat: {
49541            LT: 'HH:mm',
49542            LTS: 'HH:mm:ss',
49543            L: 'DD/MM/YYYY',
49544            LL: 'D MMMM YYYY',
49545            LLL: 'D MMMM YYYY [i] HH:mm',
49546            LLLL: 'dddd, D MMMM YYYY [i] HH:mm',
49547        },
49548        calendar: {
49549            sameDay: '[i teie mahana, i] LT',
49550            nextDay: '[apopo i] LT',
49551            nextWeek: 'dddd [i] LT',
49552            lastDay: '[inanahi i] LT',
49553            lastWeek: 'dddd [whakamutunga i] LT',
49554            sameElse: 'L',
49555        },
49556        relativeTime: {
49557            future: 'i roto i %s',
49558            past: '%s i mua',
49559            s: 'te hēkona ruarua',
49560            ss: '%d hēkona',
49561            m: 'he meneti',
49562            mm: '%d meneti',
49563            h: 'te haora',
49564            hh: '%d haora',
49565            d: 'he ra',
49566            dd: '%d ra',
49567            M: 'he marama',
49568            MM: '%d marama',
49569            y: 'he tau',
49570            yy: '%d tau',
49571        },
49572        dayOfMonthOrdinalParse: /\d{1,2}º/,
49573        ordinal: '%dº',
49574        week: {
49575            dow: 1, // Monday is the first day of the week.
49576            doy: 4, // The week that contains Jan 4th is the first week of the year.
49577        },
49578    });
49579
49580    return mi;
49581
49582})));
49583
49584
49585/***/ }),
49586
vendor: 3,832 bytes, lines 49587-49692
49587/***/ "./node_modules/moment/locale/mk.js":
49588/*!******************************************!*\
49589  !*** ./node_modules/moment/locale/mk.js ***!
49590  \******************************************/
49591/*! no static exports found */
49592/***/ (function(module, exports, __webpack_require__) {
49593
49594//! moment.js locale configuration
49595//! locale : Macedonian [mk]
49596//! author : Borislav Mickov : https://github.com/B0k0
49597//! author : Sashko Todorov : https://github.com/bkyceh
49598
49599;(function (global, factory) {
49600    true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/moment/moment.js")) :
49601   undefined
49602}(this, (function (moment) { 'use strict';
49603
49604    //! moment.js locale configuration
49605
49606    var mk = moment.defineLocale('mk', {
49607        months: 'јануари_февруари_март_април_мај_јуни_јули_август_септември_октомври_ноември_декември'.split(
49608            '_'
49609        ),
49610        monthsShort: 'јан_фев_мар_апр_мај_јун_јул_авг_сеп_окт_ное_дек'.split('_'),
49611        weekdays: 'недела_понеделник_вторник_среда_четврток_петок_сабота'.split(
49612            '_'
49613        ),
49614        weekdaysShort: 'нед_пон_вто_сре_чет_пет_саб'.split('_'),
49615        weekdaysMin: 'нe_пo_вт_ср_че_пе_сa'.split('_'),
49616        longDateFormat: {
49617            LT: 'H:mm',
49618            LTS: 'H:mm:ss',
49619            L: 'D.MM.YYYY',
49620            LL: 'D MMMM YYYY',
49621            LLL: 'D MMMM YYYY H:mm',
49622            LLLL: 'dddd, D MMMM YYYY H:mm',
49623        },
49624        calendar: {
49625            sameDay: '[Денес во] LT',
49626            nextDay: '[Утре во] LT',
49627            nextWeek: '[Во] dddd [во] LT',
49628            lastDay: '[Вчера во] LT',
49629            lastWeek: function () {
49630                switch (this.day()) {
49631                    case 0:
49632                    case 3:
49633                    case 6:
49634                        return '[Изминатата] dddd [во] LT';
49635                    case 1:
49636                    case 2:
49637                    case 4:
49638                    case 5:
49639                        return '[Изминатиот] dddd [во] LT';
49640                }
49641            },
49642            sameElse: 'L',
49643        },
49644        relativeTime: {
49645            future: 'за %s',
49646            past: 'пред %s',
49647            s: 'неколку секунди',
49648            ss: '%d секунди',
49649            m: 'една минута',
49650            mm: '%d минути',
49651            h: 'еден час',
49652            hh: '%d часа',
49653            d: 'еден ден',
49654            dd: '%d дена',
49655            M: 'еден месец',
49656            MM: '%d месеци',
49657            y: 'една година',
49658            yy: '%d години',
49659        },
49660        dayOfMonthOrdinalParse: /\d{1,2}-(ев|ен|ти|ви|ри|ми)/,
49661        ordinal: function (number) {
49662            var lastDigit = number % 10,
49663                last2Digits = number % 100;
49664            if (number === 0) {
49665                return number + '-ев';
49666            } else if (last2Digits === 0) {
49667                return number + '-ен';
49668            } else if (last2Digits > 10 && last2Digits < 20) {
49669                return number + '-ти';
49670            } else if (lastDigit === 1) {
49671                return number + '-ви';
49672            } else if (lastDigit === 2) {
49673                return number + '-ри';
49674            } else if (lastDigit === 7 || lastDigit === 8) {
49675                return number + '-ми';
49676            } else {
49677                return number + '-ти';
49678            }
49679        },
49680        week: {
49681            dow: 1, // Monday is the first day of the week.
49682            doy: 7, // The week that contains Jan 7th is the first week of the year.
49683        },
49684    });
49685
49686    return mk;
49687
49688})));
49689
49690
49691/***/ }),
49692
vendor: 4,085 bytes, lines 49693-49794
49693/***/ "./node_modules/moment/locale/ml.js":
49694/*!******************************************!*\
49695  !*** ./node_modules/moment/locale/ml.js ***!
49696  \******************************************/
49697/*! no static exports found */
49698/***/ (function(module, exports, __webpack_require__) {
49699
49700//! moment.js locale configuration
49701//! locale : Malayalam [ml]
49702//! author : Floyd Pink : https://github.com/floydpink
49703
49704;(function (global, factory) {
49705    true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/moment/moment.js")) :
49706   undefined
49707}(this, (function (moment) { 'use strict';
49708
49709    //! moment.js locale configuration
49710
49711    var ml = moment.defineLocale('ml', {
49712        months: 'ജനുവരി_ഫെബ്രുവരി_മാർച്ച്_ഏപ്രിൽ_മേയ്_ജൂൺ_ജൂലൈ_ഓഗസ്റ്റ്_സെപ്റ്റംബർ_ഒക്ടോബർ_നവംബർ_ഡിസംബർ'.split(
49713            '_'
49714        ),
49715        monthsShort:
49716            'ജനു._ഫെബ്രു._മാർ._ഏപ്രി._മേയ്_ജൂൺ_ജൂലൈ._ഓഗ._സെപ്റ്റ._ഒക്ടോ._നവം._ഡിസം.'.split(
49717                '_'
49718            ),
49719        monthsParseExact: true,
49720        weekdays:
49721            'ഞായറാഴ്ച_തിങ്കളാഴ്ച_ചൊവ്വാഴ്ച_ബുധനാഴ്ച_വ്യാഴാഴ്ച_വെള്ളിയാഴ്ച_ശനിയാഴ്ച'.split(
49722                '_'
49723            ),
49724        weekdaysShort: 'ഞായർ_തിങ്കൾ_ചൊവ്വ_ബുധൻ_വ്യാഴം_വെള്ളി_ശനി'.split('_'),
49725        weekdaysMin: 'ഞാ_തി_ചൊ_ബു_വ്യാ_വെ_ശ'.split('_'),
49726        longDateFormat: {
49727            LT: 'A h:mm -നു',
49728            LTS: 'A h:mm:ss -നു',
49729            L: 'DD/MM/YYYY',
49730            LL: 'D MMMM YYYY',
49731            LLL: 'D MMMM YYYY, A h:mm -നു',
49732            LLLL: 'dddd, D MMMM YYYY, A h:mm -നു',
49733        },
49734        calendar: {
49735            sameDay: '[ഇന്ന്] LT',
49736            nextDay: '[നാളെ] LT',
49737            nextWeek: 'dddd, LT',
49738            lastDay: '[ഇന്നലെ] LT',
49739            lastWeek: '[കഴിഞ്ഞ] dddd, LT',
49740            sameElse: 'L',
49741        },
49742        relativeTime: {
49743            future: '%s കഴിഞ്ഞ്',
49744            past: '%s മുൻപ്',
49745            s: 'അൽപ നിമിഷങ്ങൾ',
49746            ss: '%d സെക്കൻഡ്',
49747            m: 'ഒരു മിനിറ്റ്',
49748            mm: '%d മിനിറ്റ്',
49749            h: 'ഒരു മണിക്കൂർ',
49750            hh: '%d മണിക്കൂർ',
49751            d: 'ഒരു ദിവസം',
49752            dd: '%d ദിവസം',
49753            M: 'ഒരു മാസം',
49754            MM: '%d മാസം',
49755            y: 'ഒരു വർഷം',
49756            yy: '%d വർഷം',
49757        },
49758        meridiemParse: /രാത്രി|രാവിലെ|ഉച്ച കഴിഞ്ഞ്|വൈകുന്നേരം|രാത്രി/i,
49759        meridiemHour: function (hour, meridiem) {
49760            if (hour === 12) {
49761                hour = 0;
49762            }
49763            if (
49764                (meridiem === 'രാത്രി' && hour >= 4) ||
49765                meridiem === 'ഉച്ച കഴിഞ്ഞ്' ||
49766                meridiem === 'വൈകുന്നേരം'
49767            ) {
49768                return hour + 12;
49769            } else {
49770                return hour;
49771            }
49772        },
49773        meridiem: function (hour, minute, isLower) {
49774            if (hour < 4) {
49775                return 'രാത്രി';
49776            } else if (hour < 12) {
49777                return 'രാവിലെ';
49778            } else if (hour < 17) {
49779                return 'ഉച്ച കഴിഞ്ഞ്';
49780            } else if (hour < 20) {
49781                return 'വൈകുന്നേരം';
49782            } else {
49783                return 'രാത്രി';
49784            }
49785        },
49786    });
49787
49788    return ml;
49789
49790})));
49791
49792
49793/***/ }),
49794
vendor: 4,280 bytes, lines 49795-49914
49795/***/ "./node_modules/moment/locale/mn.js":
49796/*!******************************************!*\
49797  !*** ./node_modules/moment/locale/mn.js ***!
49798  \******************************************/
49799/*! no static exports found */
49800/***/ (function(module, exports, __webpack_require__) {
49801
49802//! moment.js locale configuration
49803//! locale : Mongolian [mn]
49804//! author : Javkhlantugs Nyamdorj : https://github.com/javkhaanj7
49805
49806;(function (global, factory) {
49807    true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/moment/moment.js")) :
49808   undefined
49809}(this, (function (moment) { 'use strict';
49810
49811    //! moment.js locale configuration
49812
49813    function translate(number, withoutSuffix, key, isFuture) {
49814        switch (key) {
49815            case 's':
49816                return withoutSuffix ? 'хэдхэн секунд' : 'хэдхэн секундын';
49817            case 'ss':
49818                return number + (withoutSuffix ? ' секунд' : ' секундын');
49819            case 'm':
49820            case 'mm':
49821                return number + (withoutSuffix ? ' минут' : ' минутын');
49822            case 'h':
49823            case 'hh':
49824                return number + (withoutSuffix ? ' цаг' : ' цагийн');
49825            case 'd':
49826            case 'dd':
49827                return number + (withoutSuffix ? ' өдөр' : ' өдрийн');
49828            case 'M':
49829            case 'MM':
49830                return number + (withoutSuffix ? ' сар' : ' сарын');
49831            case 'y':
49832            case 'yy':
49833                return number + (withoutSuffix ? ' жил' : ' жилийн');
49834            default:
49835                return number;
49836        }
49837    }
49838
49839    var mn = moment.defineLocale('mn', {
49840        months: 'Нэгдүгээр сар_Хоёрдугаар сар_Гуравдугаар сар_Дөрөвдүгээр сар_Тавдугаар сар_Зургадугаар сар_Долдугаар сар_Наймдугаар сар_Есдүгээр сар_Аравдугаар сар_Арван нэгдүгээр сар_Арван хоёрдугаар сар'.split(
49841            '_'
49842        ),
49843        monthsShort:
49844            '1 сар_2 сар_3 сар_4 сар_5 сар_6 сар_7 сар_8 сар_9 сар_10 сар_11 сар_12 сар'.split(
49845                '_'
49846            ),
49847        monthsParseExact: true,
49848        weekdays: 'Ням_Даваа_Мягмар_Лхагва_Пүрэв_Баасан_Бямба'.split('_'),
49849        weekdaysShort: 'Ням_Дав_Мяг_Лха_Пүр_Баа_Бям'.split('_'),
49850        weekdaysMin: 'Ня_Да_Мя_Лх_Пү_Ба_Бя'.split('_'),
49851        weekdaysParseExact: true,
49852        longDateFormat: {
49853            LT: 'HH:mm',
49854            LTS: 'HH:mm:ss',
49855            L: 'YYYY-MM-DD',
49856            LL: 'YYYY оны MMMMын D',
49857            LLL: 'YYYY оны MMMMын D HH:mm',
49858            LLLL: 'dddd, YYYY оны MMMMын D HH:mm',
49859        },
49860        meridiemParse: /ҮӨ|ҮХ/i,
49861        isPM: function (input) {
49862            return input === 'ҮХ';
49863        },
49864        meridiem: function (hour, minute, isLower) {
49865            if (hour < 12) {
49866                return 'Ò®Ó¨';
49867            } else {
49868                return 'ҮХ';
49869            }
49870        },
49871        calendar: {
49872            sameDay: '[Өнөөдөр] LT',
49873            nextDay: '[Маргааш] LT',
49874            nextWeek: '[Ирэх] dddd LT',
49875            lastDay: '[Өчигдөр] LT',
49876            lastWeek: '[Өнгөрсөн] dddd LT',
49877            sameElse: 'L',
49878        },
49879        relativeTime: {
49880            future: '%s дараа',
49881            past: '%s өмнө',
49882            s: translate,
49883            ss: translate,
49884            m: translate,
49885            mm: translate,
49886            h: translate,
49887            hh: translate,
49888            d: translate,
49889            dd: translate,
49890            M: translate,
49891            MM: translate,
49892            y: translate,
49893            yy: translate,
49894        },
49895        dayOfMonthOrdinalParse: /\d{1,2} өдөр/,
49896        ordinal: function (number, period) {
49897            switch (period) {
49898                case 'd':
49899                case 'D':
49900                case 'DDD':
49901                    return number + ' өдөр';
49902                default:
49903                    return number;
49904            }
49905        },
49906    });
49907
49908    return mn;
49909
49910})));
49911
49912
49913/***/ }),
49914
vendor: 7,844 bytes, lines 49915-50137
49915/***/ "./node_modules/moment/locale/mr.js":
49916/*!******************************************!*\
49917  !*** ./node_modules/moment/locale/mr.js ***!
49918  \******************************************/
49919/*! no static exports found */
49920/***/ (function(module, exports, __webpack_require__) {
49921
49922//! moment.js locale configuration
49923//! locale : Marathi [mr]
49924//! author : Harshad Kale : https://github.com/kalehv
49925//! author : Vivek Athalye : https://github.com/vnathalye
49926
49927;(function (global, factory) {
49928    true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/moment/moment.js")) :
49929   undefined
49930}(this, (function (moment) { 'use strict';
49931
49932    //! moment.js locale configuration
49933
49934    var symbolMap = {
49935            1: '१',
49936            2: '२',
49937            3: '३',
49938            4: '४',
49939            5: '५',
49940            6: '६',
49941            7: '७',
49942            8: '८',
49943            9: '९',
49944            0: '०',
49945        },
49946        numberMap = {
49947            '१': '1',
49948            '२': '2',
49949            '३': '3',
49950            '४': '4',
49951            '५': '5',
49952            '६': '6',
49953            '७': '7',
49954            '८': '8',
49955            '९': '9',
49956            '०': '0',
49957        };
49958
49959    function relativeTimeMr(number, withoutSuffix, string, isFuture) {
49960        var output = '';
49961        if (withoutSuffix) {
49962            switch (string) {
49963                case 's':
49964                    output = 'काही सेकंद';
49965                    break;
49966                case 'ss':
49967                    output = '%d सेकंद';
49968                    break;
49969                case 'm':
49970                    output = 'एक मिनिट';
49971                    break;
49972                case 'mm':
49973                    output = '%d मिनिटे';
49974                    break;
49975                case 'h':
49976                    output = 'एक तास';
49977                    break;
49978                case 'hh':
49979                    output = '%d तास';
49980                    break;
49981                case 'd':
49982                    output = 'एक दिवस';
49983                    break;
49984                case 'dd':
49985                    output = '%d दिवस';
49986                    break;
49987                case 'M':
49988                    output = 'एक महिना';
49989                    break;
49990                case 'MM':
49991                    output = '%d महिने';
49992                    break;
49993                case 'y':
49994                    output = 'एक वर्ष';
49995                    break;
49996                case 'yy':
49997                    output = '%d वर्षे';
49998                    break;
49999            }
50000        } else {
50001            switch (string) {
50002                case 's':
50003                    output = 'काही सेकंदां';
50004                    break;
50005                case 'ss':
50006                    output = '%d सेकंदां';
50007                    break;
50008                case 'm':
50009                    output = 'एका मिनिटा';
50010                    break;
50011                case 'mm':
50012                    output = '%d मिनिटां';
50013                    break;
50014                case 'h':
50015                    output = 'एका तासा';
50016                    break;
50017                case 'hh':
50018                    output = '%d तासां';
50019                    break;
50020                case 'd':
50021                    output = 'एका दिवसा';
50022                    break;
50023                case 'dd':
50024                    output = '%d दिवसां';
50025                    break;
50026                case 'M':
50027                    output = 'एका महिन्या';
50028                    break;
50029                case 'MM':
50030                    output = '%d महिन्यां';
50031                    break;
50032                case 'y':
50033                    output = 'एका वर्षा';
50034                    break;
50035                case 'yy':
50036                    output = '%d वर्षां';
50037                    break;
50038            }
50039        }
50040        return output.replace(/%d/i, number);
50041    }
50042
50043    var mr = moment.defineLocale('mr', {
50044        months: 'जानेवारी_फेब्रुवारी_मार्च_एप्रिल_मे_जून_जुलै_ऑगस्ट_सप्टेंबर_ऑक्टोबर_नोव्हेंबर_डिसेंबर'.split(
50045            '_'
50046        ),
50047        monthsShort:
50048            'जाने._फेब्रु._मार्च._एप्रि._मे._जून._जुलै._ऑग._सप्टें._ऑक्टो._नोव्हें._डिसें.'.split(
50049                '_'
50050            ),
50051        monthsParseExact: true,
50052        weekdays: 'रविवार_सोमवार_मंगळवार_बुधवार_गुरूवार_शुक्रवार_शनिवार'.split('_'),
50053        weekdaysShort: 'रवि_सोम_मंगळ_बुध_गुरू_शुक्र_शनि'.split('_'),
50054        weekdaysMin: 'र_सो_मं_बु_गु_शु_श'.split('_'),
50055        longDateFormat: {
50056            LT: 'A h:mm वाजता',
50057            LTS: 'A h:mm:ss वाजता',
50058            L: 'DD/MM/YYYY',
50059            LL: 'D MMMM YYYY',
50060            LLL: 'D MMMM YYYY, A h:mm वाजता',
50061            LLLL: 'dddd, D MMMM YYYY, A h:mm वाजता',
50062        },
50063        calendar: {
50064            sameDay: '[आज] LT',
50065            nextDay: '[उद्या] LT',
50066            nextWeek: 'dddd, LT',
50067            lastDay: '[काल] LT',
50068            lastWeek: '[मागील] dddd, LT',
50069            sameElse: 'L',
50070        },
50071        relativeTime: {
50072            future: '%sमध्ये',
50073            past: '%sपूर्वी',
50074            s: relativeTimeMr,
50075            ss: relativeTimeMr,
50076            m: relativeTimeMr,
50077            mm: relativeTimeMr,
50078            h: relativeTimeMr,
50079            hh: relativeTimeMr,
50080            d: relativeTimeMr,
50081            dd: relativeTimeMr,
50082            M: relativeTimeMr,
50083            MM: relativeTimeMr,
50084            y: relativeTimeMr,
50085            yy: relativeTimeMr,
50086        },
50087        preparse: function (string) {
50088            return string.replace(/[१२३४५६७८९०]/g, function (match) {
50089                return numberMap[match];
50090            });
50091        },
50092        postformat: function (string) {
50093            return string.replace(/\d/g, function (match) {
50094                return symbolMap[match];
50095            });
50096        },
50097        meridiemParse: /पहाटे|सकाळी|दुपारी|सायंकाळी|रात्री/,
50098        meridiemHour: function (hour, meridiem) {
50099            if (hour === 12) {
50100                hour = 0;
50101            }
50102            if (meridiem === 'पहाटे' || meridiem === 'सकाळी') {
50103                return hour;
50104            } else if (
50105                meridiem === 'दुपारी' ||
50106                meridiem === 'सायंकाळी' ||
50107                meridiem === 'रात्री'
50108            ) {
50109                return hour >= 12 ? hour : hour + 12;
50110            }
50111        },
50112        meridiem: function (hour, minute, isLower) {
50113            if (hour >= 0 && hour < 6) {
50114                return 'पहाटे';
50115            } else if (hour < 12) {
50116                return 'सकाळी';
50117            } else if (hour < 17) {
50118                return 'दुपारी';
50119            } else if (hour < 20) {
50120                return 'सायंकाळी';
50121            } else {
50122                return 'रात्री';
50123            }
50124        },
50125        week: {
50126            dow: 0, // Sunday is the first day of the week.
50127            doy: 6, // The week that contains Jan 6th is the first week of the year.
50128        },
50129    });
50130
50131    return mr;
50132
50133})));
50134
50135
50136/***/ }),
50137
vendor: 3,116 bytes, lines 50138-50233
50138/***/ "./node_modules/moment/locale/ms-my.js":
50139/*!*********************************************!*\
50140  !*** ./node_modules/moment/locale/ms-my.js ***!
50141  \*********************************************/
50142/*! no static exports found */
50143/***/ (function(module, exports, __webpack_require__) {
50144
50145//! moment.js locale configuration
50146//! locale : Malay [ms-my]
50147//! note : DEPRECATED, the correct one is [ms]
50148//! author : Weldan Jamili : https://github.com/weldan
50149
50150;(function (global, factory) {
50151    true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/moment/moment.js")) :
50152   undefined
50153}(this, (function (moment) { 'use strict';
50154
50155    //! moment.js locale configuration
50156
50157    var msMy = moment.defineLocale('ms-my', {
50158        months: 'Januari_Februari_Mac_April_Mei_Jun_Julai_Ogos_September_Oktober_November_Disember'.split(
50159            '_'
50160        ),
50161        monthsShort: 'Jan_Feb_Mac_Apr_Mei_Jun_Jul_Ogs_Sep_Okt_Nov_Dis'.split('_'),
50162        weekdays: 'Ahad_Isnin_Selasa_Rabu_Khamis_Jumaat_Sabtu'.split('_'),
50163        weekdaysShort: 'Ahd_Isn_Sel_Rab_Kha_Jum_Sab'.split('_'),
50164        weekdaysMin: 'Ah_Is_Sl_Rb_Km_Jm_Sb'.split('_'),
50165        longDateFormat: {
50166            LT: 'HH.mm',
50167            LTS: 'HH.mm.ss',
50168            L: 'DD/MM/YYYY',
50169            LL: 'D MMMM YYYY',
50170            LLL: 'D MMMM YYYY [pukul] HH.mm',
50171            LLLL: 'dddd, D MMMM YYYY [pukul] HH.mm',
50172        },
50173        meridiemParse: /pagi|tengahari|petang|malam/,
50174        meridiemHour: function (hour, meridiem) {
50175            if (hour === 12) {
50176                hour = 0;
50177            }
50178            if (meridiem === 'pagi') {
50179                return hour;
50180            } else if (meridiem === 'tengahari') {
50181                return hour >= 11 ? hour : hour + 12;
50182            } else if (meridiem === 'petang' || meridiem === 'malam') {
50183                return hour + 12;
50184            }
50185        },
50186        meridiem: function (hours, minutes, isLower) {
50187            if (hours < 11) {
50188                return 'pagi';
50189            } else if (hours < 15) {
50190                return 'tengahari';
50191            } else if (hours < 19) {
50192                return 'petang';
50193            } else {
50194                return 'malam';
50195            }
50196        },
50197        calendar: {
50198            sameDay: '[Hari ini pukul] LT',
50199            nextDay: '[Esok pukul] LT',
50200            nextWeek: 'dddd [pukul] LT',
50201            lastDay: '[Kelmarin pukul] LT',
50202            lastWeek: 'dddd [lepas pukul] LT',
50203            sameElse: 'L',
50204        },
50205        relativeTime: {
50206            future: 'dalam %s',
50207            past: '%s yang lepas',
50208            s: 'beberapa saat',
50209            ss: '%d saat',
50210            m: 'seminit',
50211            mm: '%d minit',
50212            h: 'sejam',
50213            hh: '%d jam',
50214            d: 'sehari',
50215            dd: '%d hari',
50216            M: 'sebulan',
50217            MM: '%d bulan',
50218            y: 'setahun',
50219            yy: '%d tahun',
50220        },
50221        week: {
50222            dow: 1, // Monday is the first day of the week.
50223            doy: 7, // The week that contains Jan 7th is the first week of the year.
50224        },
50225    });
50226
50227    return msMy;
50228
50229})));
50230
50231
50232/***/ }),
50233
vendor: 3,047 bytes, lines 50234-50328
50234/***/ "./node_modules/moment/locale/ms.js":
50235/*!******************************************!*\
50236  !*** ./node_modules/moment/locale/ms.js ***!
50237  \******************************************/
50238/*! no static exports found */
50239/***/ (function(module, exports, __webpack_require__) {
50240
50241//! moment.js locale configuration
50242//! locale : Malay [ms]
50243//! author : Weldan Jamili : https://github.com/weldan
50244
50245;(function (global, factory) {
50246    true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/moment/moment.js")) :
50247   undefined
50248}(this, (function (moment) { 'use strict';
50249
50250    //! moment.js locale configuration
50251
50252    var ms = moment.defineLocale('ms', {
50253        months: 'Januari_Februari_Mac_April_Mei_Jun_Julai_Ogos_September_Oktober_November_Disember'.split(
50254            '_'
50255        ),
50256        monthsShort: 'Jan_Feb_Mac_Apr_Mei_Jun_Jul_Ogs_Sep_Okt_Nov_Dis'.split('_'),
50257        weekdays: 'Ahad_Isnin_Selasa_Rabu_Khamis_Jumaat_Sabtu'.split('_'),
50258        weekdaysShort: 'Ahd_Isn_Sel_Rab_Kha_Jum_Sab'.split('_'),
50259        weekdaysMin: 'Ah_Is_Sl_Rb_Km_Jm_Sb'.split('_'),
50260        longDateFormat: {
50261            LT: 'HH.mm',
50262            LTS: 'HH.mm.ss',
50263            L: 'DD/MM/YYYY',
50264            LL: 'D MMMM YYYY',
50265            LLL: 'D MMMM YYYY [pukul] HH.mm',
50266            LLLL: 'dddd, D MMMM YYYY [pukul] HH.mm',
50267        },
50268        meridiemParse: /pagi|tengahari|petang|malam/,
50269        meridiemHour: function (hour, meridiem) {
50270            if (hour === 12) {
50271                hour = 0;
50272            }
50273            if (meridiem === 'pagi') {
50274                return hour;
50275            } else if (meridiem === 'tengahari') {
50276                return hour >= 11 ? hour : hour + 12;
50277            } else if (meridiem === 'petang' || meridiem === 'malam') {
50278                return hour + 12;
50279            }
50280        },
50281        meridiem: function (hours, minutes, isLower) {
50282            if (hours < 11) {
50283                return 'pagi';
50284            } else if (hours < 15) {
50285                return 'tengahari';
50286            } else if (hours < 19) {
50287                return 'petang';
50288            } else {
50289                return 'malam';
50290            }
50291        },
50292        calendar: {
50293            sameDay: '[Hari ini pukul] LT',
50294            nextDay: '[Esok pukul] LT',
50295            nextWeek: 'dddd [pukul] LT',
50296            lastDay: '[Kelmarin pukul] LT',
50297            lastWeek: 'dddd [lepas pukul] LT',
50298            sameElse: 'L',
50299        },
50300        relativeTime: {
50301            future: 'dalam %s',
50302            past: '%s yang lepas',
50303            s: 'beberapa saat',
50304            ss: '%d saat',
50305            m: 'seminit',
50306            mm: '%d minit',
50307            h: 'sejam',
50308            hh: '%d jam',
50309            d: 'sehari',
50310            dd: '%d hari',
50311            M: 'sebulan',
50312            MM: '%d bulan',
50313            y: 'setahun',
50314            yy: '%d tahun',
50315        },
50316        week: {
50317            dow: 1, // Monday is the first day of the week.
50318            doy: 7, // The week that contains Jan 7th is the first week of the year.
50319        },
50320    });
50321
50322    return ms;
50323
50324})));
50325
50326
50327/***/ }),
50328
vendor: 2,378 bytes, lines 50329-50404
50329/***/ "./node_modules/moment/locale/mt.js":
50330/*!******************************************!*\
50331  !*** ./node_modules/moment/locale/mt.js ***!
50332  \******************************************/
50333/*! no static exports found */
50334/***/ (function(module, exports, __webpack_require__) {
50335
50336//! moment.js locale configuration
50337//! locale : Maltese (Malta) [mt]
50338//! author : Alessandro Maruccia : https://github.com/alesma
50339
50340;(function (global, factory) {
50341    true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/moment/moment.js")) :
50342   undefined
50343}(this, (function (moment) { 'use strict';
50344
50345    //! moment.js locale configuration
50346
50347    var mt = moment.defineLocale('mt', {
50348        months: 'Jannar_Frar_Marzu_April_Mejju_Ġunju_Lulju_Awwissu_Settembru_Ottubru_Novembru_Diċembru'.split(
50349            '_'
50350        ),
50351        monthsShort: 'Jan_Fra_Mar_Apr_Mej_Ġun_Lul_Aww_Set_Ott_Nov_Diċ'.split('_'),
50352        weekdays:
50353            'Il-Ħadd_It-Tnejn_It-Tlieta_L-Erbgħa_Il-Ħamis_Il-Ġimgħa_Is-Sibt'.split(
50354                '_'
50355            ),
50356        weekdaysShort: 'Ħad_Tne_Tli_Erb_Ħam_Ġim_Sib'.split('_'),
50357        weekdaysMin: 'Ħa_Tn_Tl_Er_Ħa_Ġi_Si'.split('_'),
50358        longDateFormat: {
50359            LT: 'HH:mm',
50360            LTS: 'HH:mm:ss',
50361            L: 'DD/MM/YYYY',
50362            LL: 'D MMMM YYYY',
50363            LLL: 'D MMMM YYYY HH:mm',
50364            LLLL: 'dddd, D MMMM YYYY HH:mm',
50365        },
50366        calendar: {
50367            sameDay: '[Illum fil-]LT',
50368            nextDay: '[Għada fil-]LT',
50369            nextWeek: 'dddd [fil-]LT',
50370            lastDay: '[Il-bieraħ fil-]LT',
50371            lastWeek: 'dddd [li għadda] [fil-]LT',
50372            sameElse: 'L',
50373        },
50374        relativeTime: {
50375            future: 'f’ %s',
50376            past: '%s ilu',
50377            s: 'ftit sekondi',
50378            ss: '%d sekondi',
50379            m: 'minuta',
50380            mm: '%d minuti',
50381            h: 'siegħa',
50382            hh: '%d siegħat',
50383            d: 'ġurnata',
50384            dd: '%d ġranet',
50385            M: 'xahar',
50386            MM: '%d xhur',
50387            y: 'sena',
50388            yy: '%d sni',
50389        },
50390        dayOfMonthOrdinalParse: /\d{1,2}º/,
50391        ordinal: '%dº',
50392        week: {
50393            dow: 1, // Monday is the first day of the week.
50394            doy: 4, // The week that contains Jan 4th is the first week of the year.
50395        },
50396    });
50397
50398    return mt;
50399
50400})));
50401
50402
50403/***/ }),
50404
vendor: 3,912 bytes, lines 50405-50515
50405/***/ "./node_modules/moment/locale/my.js":
50406/*!******************************************!*\
50407  !*** ./node_modules/moment/locale/my.js ***!
50408  \******************************************/
50409/*! no static exports found */
50410/***/ (function(module, exports, __webpack_require__) {
50411
50412//! moment.js locale configuration
50413//! locale : Burmese [my]
50414//! author : Squar team, mysquar.com
50415//! author : David Rossellat : https://github.com/gholadr
50416//! author : Tin Aung Lin : https://github.com/thanyawzinmin
50417
50418;(function (global, factory) {
50419    true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/moment/moment.js")) :
50420   undefined
50421}(this, (function (moment) { 'use strict';
50422
50423    //! moment.js locale configuration
50424
50425    var symbolMap = {
50426            1: '၁',
50427            2: '၂',
50428            3: '၃',
50429            4: '၄',
50430            5: '၅',
50431            6: '၆',
50432            7: '၇',
50433            8: '၈',
50434            9: '၉',
50435            0: '၀',
50436        },
50437        numberMap = {
50438            '၁': '1',
50439            '၂': '2',
50440            '၃': '3',
50441            '၄': '4',
50442            '၅': '5',
50443            '၆': '6',
50444            '၇': '7',
50445            '၈': '8',
50446            '၉': '9',
50447            '၀': '0',
50448        };
50449
50450    var my = moment.defineLocale('my', {
50451        months: 'ဇန်နဝါရီ_ဖေဖော်ဝါရီ_မတ်_ဧပြီ_မေ_ဇွန်_ဇူလိုင်_သြဂုတ်_စက်တင်ဘာ_အောက်တိုဘာ_နိုဝင်ဘာ_ဒီဇင်ဘာ'.split(
50452            '_'
50453        ),
50454        monthsShort: 'ဇန်_ဖေ_မတ်_ပြီ_မေ_ဇွန်_လိုင်_သြ_စက်_အောက်_နို_ဒီ'.split('_'),
50455        weekdays: 'တနင်္ဂနွေ_တနင်္လာ_အင်္ဂါ_ဗုဒ္ဓဟူး_ကြာသပတေး_သောကြာ_စနေ'.split(
50456            '_'
50457        ),
50458        weekdaysShort: 'နွေ_လာ_ဂါ_ဟူး_ကြာ_သော_နေ'.split('_'),
50459        weekdaysMin: 'နွေ_လာ_ဂါ_ဟူး_ကြာ_သော_နေ'.split('_'),
50460
50461        longDateFormat: {
50462            LT: 'HH:mm',
50463            LTS: 'HH:mm:ss',
50464            L: 'DD/MM/YYYY',
50465            LL: 'D MMMM YYYY',
50466            LLL: 'D MMMM YYYY HH:mm',
50467            LLLL: 'dddd D MMMM YYYY HH:mm',
50468        },
50469        calendar: {
50470            sameDay: '[ယနေ.] LT [မှာ]',
50471            nextDay: '[မနက်ဖြန်] LT [မှာ]',
50472            nextWeek: 'dddd LT [မှာ]',
50473            lastDay: '[မနေ.က] LT [မှာ]',
50474            lastWeek: '[ပြီးခဲ့သော] dddd LT [မှာ]',
50475            sameElse: 'L',
50476        },
50477        relativeTime: {
50478            future: 'လာမည့် %s မှာ',
50479            past: 'လွန်ခဲ့သော %s က',
50480            s: 'စက္ကန်.အနည်းငယ်',
50481            ss: '%d စက္ကန့်',
50482            m: 'တစ်မိနစ်',
50483            mm: '%d မိနစ်',
50484            h: 'တစ်နာရီ',
50485            hh: '%d နာရီ',
50486            d: 'တစ်ရက်',
50487            dd: '%d ရက်',
50488            M: 'တစ်လ',
50489            MM: '%d လ',
50490            y: 'တစ်နှစ်',
50491            yy: '%d နှစ်',
50492        },
50493        preparse: function (string) {
50494            return string.replace(/[၁၂၃၄၅၆၇၈၉၀]/g, function (match) {
50495                return numberMap[match];
50496            });
50497        },
50498        postformat: function (string) {
50499            return string.replace(/\d/g, function (match) {
50500                return symbolMap[match];
50501            });
50502        },
50503        week: {
50504            dow: 1, // Monday is the first day of the week.
50505            doy: 4, // The week that contains Jan 4th is the first week of the year.
50506        },
50507    });
50508
50509    return my;
50510
50511})));
50512
50513
50514/***/ }),
50515
vendor: 2,605 bytes, lines 50516-50595
50516/***/ "./node_modules/moment/locale/nb.js":
50517/*!******************************************!*\
50518  !*** ./node_modules/moment/locale/nb.js ***!
50519  \******************************************/
50520/*! no static exports found */
50521/***/ (function(module, exports, __webpack_require__) {
50522
50523//! moment.js locale configuration
50524//! locale : Norwegian Bokmål [nb]
50525//! authors : Espen Hovlandsdal : https://github.com/rexxars
50526//!           Sigurd Gartmann : https://github.com/sigurdga
50527//!           Stephen Ramthun : https://github.com/stephenramthun
50528
50529;(function (global, factory) {
50530    true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/moment/moment.js")) :
50531   undefined
50532}(this, (function (moment) { 'use strict';
50533
50534    //! moment.js locale configuration
50535
50536    var nb = moment.defineLocale('nb', {
50537        months: 'januar_februar_mars_april_mai_juni_juli_august_september_oktober_november_desember'.split(
50538            '_'
50539        ),
50540        monthsShort:
50541            'jan._feb._mars_apr._mai_juni_juli_aug._sep._okt._nov._des.'.split('_'),
50542        monthsParseExact: true,
50543        weekdays: 'søndag_mandag_tirsdag_onsdag_torsdag_fredag_lørdag'.split('_'),
50544        weekdaysShort: 'sø._ma._ti._on._to._fr._lø.'.split('_'),
50545        weekdaysMin: 'sø_ma_ti_on_to_fr_lø'.split('_'),
50546        weekdaysParseExact: true,
50547        longDateFormat: {
50548            LT: 'HH:mm',
50549            LTS: 'HH:mm:ss',
50550            L: 'DD.MM.YYYY',
50551            LL: 'D. MMMM YYYY',
50552            LLL: 'D. MMMM YYYY [kl.] HH:mm',
50553            LLLL: 'dddd D. MMMM YYYY [kl.] HH:mm',
50554        },
50555        calendar: {
50556            sameDay: '[i dag kl.] LT',
50557            nextDay: '[i morgen kl.] LT',
50558            nextWeek: 'dddd [kl.] LT',
50559            lastDay: '[i går kl.] LT',
50560            lastWeek: '[forrige] dddd [kl.] LT',
50561            sameElse: 'L',
50562        },
50563        relativeTime: {
50564            future: 'om %s',
50565            past: '%s siden',
50566            s: 'noen sekunder',
50567            ss: '%d sekunder',
50568            m: 'ett minutt',
50569            mm: '%d minutter',
50570            h: 'én time',
50571            hh: '%d timer',
50572            d: 'én dag',
50573            dd: '%d dager',
50574            w: 'én uke',
50575            ww: '%d uker',
50576            M: 'én måned',
50577            MM: '%d måneder',
50578            y: 'ett år',
50579            yy: '%d år',
50580        },
50581        dayOfMonthOrdinalParse: /\d{1,2}\./,
50582        ordinal: '%d.',
50583        week: {
50584            dow: 1, // Monday is the first day of the week.
50585            doy: 4, // The week that contains Jan 4th is the first week of the year.
50586        },
50587    });
50588
50589    return nb;
50590
50591})));
50592
50593
50594/***/ }),
50595
vendor: 4,981 bytes, lines 50596-50736
50596/***/ "./node_modules/moment/locale/ne.js":
50597/*!******************************************!*\
50598  !*** ./node_modules/moment/locale/ne.js ***!
50599  \******************************************/
50600/*! no static exports found */
50601/***/ (function(module, exports, __webpack_require__) {
50602
50603//! moment.js locale configuration
50604//! locale : Nepalese [ne]
50605//! author : suvash : https://github.com/suvash
50606
50607;(function (global, factory) {
50608    true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/moment/moment.js")) :
50609   undefined
50610}(this, (function (moment) { 'use strict';
50611
50612    //! moment.js locale configuration
50613
50614    var symbolMap = {
50615            1: '१',
50616            2: '२',
50617            3: '३',
50618            4: '४',
50619            5: '५',
50620            6: '६',
50621            7: '७',
50622            8: '८',
50623            9: '९',
50624            0: '०',
50625        },
50626        numberMap = {
50627            '१': '1',
50628            '२': '2',
50629            '३': '3',
50630            '४': '4',
50631            '५': '5',
50632            '६': '6',
50633            '७': '7',
50634            '८': '8',
50635            '९': '9',
50636            '०': '0',
50637        };
50638
50639    var ne = moment.defineLocale('ne', {
50640        months: 'जनवरी_फेब्रुवरी_मार्च_अप्रिल_मई_जुन_जुलाई_अगष्ट_सेप्टेम्बर_अक्टोबर_नोभेम्बर_डिसेम्बर'.split(
50641            '_'
50642        ),
50643        monthsShort:
50644            'जन._फेब्रु._मार्च_अप्रि._मई_जुन_जुलाई._अग._सेप्ट._अक्टो._नोभे._डिसे.'.split(
50645                '_'
50646            ),
50647        monthsParseExact: true,
50648        weekdays: 'आइतबार_सोमबार_मङ्गलबार_बुधबार_बिहिबार_शुक्रबार_शनिबार'.split(
50649            '_'
50650        ),
50651        weekdaysShort: 'आइत._सोम._मङ्गल._बुध._बिहि._शुक्र._शनि.'.split('_'),
50652        weekdaysMin: 'आ._सो._मं._बु._बि._शु._श.'.split('_'),
50653        weekdaysParseExact: true,
50654        longDateFormat: {
50655            LT: 'Aको h:mm बजे',
50656            LTS: 'Aको h:mm:ss बजे',
50657            L: 'DD/MM/YYYY',
50658            LL: 'D MMMM YYYY',
50659            LLL: 'D MMMM YYYY, Aको h:mm बजे',
50660            LLLL: 'dddd, D MMMM YYYY, Aको h:mm बजे',
50661        },
50662        preparse: function (string) {
50663            return string.replace(/[१२३४५६७८९०]/g, function (match) {
50664                return numberMap[match];
50665            });
50666        },
50667        postformat: function (string) {
50668            return string.replace(/\d/g, function (match) {
50669                return symbolMap[match];
50670            });
50671        },
50672        meridiemParse: /राति|बिहान|दिउँसो|साँझ/,
50673        meridiemHour: function (hour, meridiem) {
50674            if (hour === 12) {
50675                hour = 0;
50676            }
50677            if (meridiem === 'राति') {
50678                return hour < 4 ? hour : hour + 12;
50679            } else if (meridiem === 'बिहान') {
50680                return hour;
50681            } else if (meridiem === 'दिउँसो') {
50682                return hour >= 10 ? hour : hour + 12;
50683            } else if (meridiem === 'साँझ') {
50684                return hour + 12;
50685            }
50686        },
50687        meridiem: function (hour, minute, isLower) {
50688            if (hour < 3) {
50689                return 'राति';
50690            } else if (hour < 12) {
50691                return 'बिहान';
50692            } else if (hour < 16) {
50693                return 'दिउँसो';
50694            } else if (hour < 20) {
50695                return 'साँझ';
50696            } else {
50697                return 'राति';
50698            }
50699        },
50700        calendar: {
50701            sameDay: '[आज] LT',
50702            nextDay: '[भोलि] LT',
50703            nextWeek: '[आउँदो] dddd[,] LT',
50704            lastDay: '[हिजो] LT',
50705            lastWeek: '[गएको] dddd[,] LT',
50706            sameElse: 'L',
50707        },
50708        relativeTime: {
50709            future: '%sमा',
50710            past: '%s अगाडि',
50711            s: 'केही क्षण',
50712            ss: '%d सेकेण्ड',
50713            m: 'एक मिनेट',
50714            mm: '%d मिनेट',
50715            h: 'एक घण्टा',
50716            hh: '%d घण्टा',
50717            d: 'एक दिन',
50718            dd: '%d दिन',
50719            M: 'एक महिना',
50720            MM: '%d महिना',
50721            y: 'एक बर्ष',
50722            yy: '%d बर्ष',
50723        },
50724        week: {
50725            dow: 0, // Sunday is the first day of the week.
50726            doy: 6, // The week that contains Jan 6th is the first week of the year.
50727        },
50728    });
50729
50730    return ne;
50731
50732})));
50733
50734
50735/***/ }),
50736
vendor: 4,046 bytes, lines 50737-50858
50737/***/ "./node_modules/moment/locale/nl-be.js":
50738/*!*********************************************!*\
50739  !*** ./node_modules/moment/locale/nl-be.js ***!
50740  \*********************************************/
50741/*! no static exports found */
50742/***/ (function(module, exports, __webpack_require__) {
50743
50744//! moment.js locale configuration
50745//! locale : Dutch (Belgium) [nl-be]
50746//! author : Joris Röling : https://github.com/jorisroling
50747//! author : Jacob Middag : https://github.com/middagj
50748
50749;(function (global, factory) {
50750    true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/moment/moment.js")) :
50751   undefined
50752}(this, (function (moment) { 'use strict';
50753
50754    //! moment.js locale configuration
50755
50756    var monthsShortWithDots =
50757            'jan._feb._mrt._apr._mei_jun._jul._aug._sep._okt._nov._dec.'.split('_'),
50758        monthsShortWithoutDots =
50759            'jan_feb_mrt_apr_mei_jun_jul_aug_sep_okt_nov_dec'.split('_'),
50760        monthsParse = [
50761            /^jan/i,
50762            /^feb/i,
50763            /^(maart|mrt\.?)$/i,
50764            /^apr/i,
50765            /^mei$/i,
50766            /^jun[i.]?$/i,
50767            /^jul[i.]?$/i,
50768            /^aug/i,
50769            /^sep/i,
50770            /^okt/i,
50771            /^nov/i,
50772            /^dec/i,
50773        ],
50774        monthsRegex =
50775            /^(januari|februari|maart|april|mei|ju[nl]i|augustus|september|oktober|november|december|jan\.?|feb\.?|mrt\.?|apr\.?|ju[nl]\.?|aug\.?|sep\.?|okt\.?|nov\.?|dec\.?)/i;
50776
50777    var nlBe = moment.defineLocale('nl-be', {
50778        months: 'januari_februari_maart_april_mei_juni_juli_augustus_september_oktober_november_december'.split(
50779            '_'
50780        ),
50781        monthsShort: function (m, format) {
50782            if (!m) {
50783                return monthsShortWithDots;
50784            } else if (/-MMM-/.test(format)) {
50785                return monthsShortWithoutDots[m.month()];
50786            } else {
50787                return monthsShortWithDots[m.month()];
50788            }
50789        },
50790
50791        monthsRegex: monthsRegex,
50792        monthsShortRegex: monthsRegex,
50793        monthsStrictRegex:
50794            /^(januari|februari|maart|april|mei|ju[nl]i|augustus|september|oktober|november|december)/i,
50795        monthsShortStrictRegex:
50796            /^(jan\.?|feb\.?|mrt\.?|apr\.?|mei|ju[nl]\.?|aug\.?|sep\.?|okt\.?|nov\.?|dec\.?)/i,
50797
50798        monthsParse: monthsParse,
50799        longMonthsParse: monthsParse,
50800        shortMonthsParse: monthsParse,
50801
50802        weekdays:
50803            'zondag_maandag_dinsdag_woensdag_donderdag_vrijdag_zaterdag'.split('_'),
50804        weekdaysShort: 'zo._ma._di._wo._do._vr._za.'.split('_'),
50805        weekdaysMin: 'zo_ma_di_wo_do_vr_za'.split('_'),
50806        weekdaysParseExact: true,
50807        longDateFormat: {
50808            LT: 'HH:mm',
50809            LTS: 'HH:mm:ss',
50810            L: 'DD/MM/YYYY',
50811            LL: 'D MMMM YYYY',
50812            LLL: 'D MMMM YYYY HH:mm',
50813            LLLL: 'dddd D MMMM YYYY HH:mm',
50814        },
50815        calendar: {
50816            sameDay: '[vandaag om] LT',
50817            nextDay: '[morgen om] LT',
50818            nextWeek: 'dddd [om] LT',
50819            lastDay: '[gisteren om] LT',
50820            lastWeek: '[afgelopen] dddd [om] LT',
50821            sameElse: 'L',
50822        },
50823        relativeTime: {
50824            future: 'over %s',
50825            past: '%s geleden',
50826            s: 'een paar seconden',
50827            ss: '%d seconden',
50828            m: 'één minuut',
50829            mm: '%d minuten',
50830            h: 'één uur',
50831            hh: '%d uur',
50832            d: 'één dag',
50833            dd: '%d dagen',
50834            M: 'één maand',
50835            MM: '%d maanden',
50836            y: 'één jaar',
50837            yy: '%d jaar',
50838        },
50839        dayOfMonthOrdinalParse: /\d{1,2}(ste|de)/,
50840        ordinal: function (number) {
50841            return (
50842                number +
50843                (number === 1 || number === 8 || number >= 20 ? 'ste' : 'de')
50844            );
50845        },
50846        week: {
50847            dow: 1, // Monday is the first day of the week.
50848            doy: 4, // The week that contains Jan 4th is the first week of the year.
50849        },
50850    });
50851
50852    return nlBe;
50853
50854})));
50855
50856
50857/***/ }),
50858
vendor: 4,071 bytes, lines 50859-50982
50859/***/ "./node_modules/moment/locale/nl.js":
50860/*!******************************************!*\
50861  !*** ./node_modules/moment/locale/nl.js ***!
50862  \******************************************/
50863/*! no static exports found */
50864/***/ (function(module, exports, __webpack_require__) {
50865
50866//! moment.js locale configuration
50867//! locale : Dutch [nl]
50868//! author : Joris Röling : https://github.com/jorisroling
50869//! author : Jacob Middag : https://github.com/middagj
50870
50871;(function (global, factory) {
50872    true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/moment/moment.js")) :
50873   undefined
50874}(this, (function (moment) { 'use strict';
50875
50876    //! moment.js locale configuration
50877
50878    var monthsShortWithDots =
50879            'jan._feb._mrt._apr._mei_jun._jul._aug._sep._okt._nov._dec.'.split('_'),
50880        monthsShortWithoutDots =
50881            'jan_feb_mrt_apr_mei_jun_jul_aug_sep_okt_nov_dec'.split('_'),
50882        monthsParse = [
50883            /^jan/i,
50884            /^feb/i,
50885            /^(maart|mrt\.?)$/i,
50886            /^apr/i,
50887            /^mei$/i,
50888            /^jun[i.]?$/i,
50889            /^jul[i.]?$/i,
50890            /^aug/i,
50891            /^sep/i,
50892            /^okt/i,
50893            /^nov/i,
50894            /^dec/i,
50895        ],
50896        monthsRegex =
50897            /^(januari|februari|maart|april|mei|ju[nl]i|augustus|september|oktober|november|december|jan\.?|feb\.?|mrt\.?|apr\.?|ju[nl]\.?|aug\.?|sep\.?|okt\.?|nov\.?|dec\.?)/i;
50898
50899    var nl = moment.defineLocale('nl', {
50900        months: 'januari_februari_maart_april_mei_juni_juli_augustus_september_oktober_november_december'.split(
50901            '_'
50902        ),
50903        monthsShort: function (m, format) {
50904            if (!m) {
50905                return monthsShortWithDots;
50906            } else if (/-MMM-/.test(format)) {
50907                return monthsShortWithoutDots[m.month()];
50908            } else {
50909                return monthsShortWithDots[m.month()];
50910            }
50911        },
50912
50913        monthsRegex: monthsRegex,
50914        monthsShortRegex: monthsRegex,
50915        monthsStrictRegex:
50916            /^(januari|februari|maart|april|mei|ju[nl]i|augustus|september|oktober|november|december)/i,
50917        monthsShortStrictRegex:
50918            /^(jan\.?|feb\.?|mrt\.?|apr\.?|mei|ju[nl]\.?|aug\.?|sep\.?|okt\.?|nov\.?|dec\.?)/i,
50919
50920        monthsParse: monthsParse,
50921        longMonthsParse: monthsParse,
50922        shortMonthsParse: monthsParse,
50923
50924        weekdays:
50925            'zondag_maandag_dinsdag_woensdag_donderdag_vrijdag_zaterdag'.split('_'),
50926        weekdaysShort: 'zo._ma._di._wo._do._vr._za.'.split('_'),
50927        weekdaysMin: 'zo_ma_di_wo_do_vr_za'.split('_'),
50928        weekdaysParseExact: true,
50929        longDateFormat: {
50930            LT: 'HH:mm',
50931            LTS: 'HH:mm:ss',
50932            L: 'DD-MM-YYYY',
50933            LL: 'D MMMM YYYY',
50934            LLL: 'D MMMM YYYY HH:mm',
50935            LLLL: 'dddd D MMMM YYYY HH:mm',
50936        },
50937        calendar: {
50938            sameDay: '[vandaag om] LT',
50939            nextDay: '[morgen om] LT',
50940            nextWeek: 'dddd [om] LT',
50941            lastDay: '[gisteren om] LT',
50942            lastWeek: '[afgelopen] dddd [om] LT',
50943            sameElse: 'L',
50944        },
50945        relativeTime: {
50946            future: 'over %s',
50947            past: '%s geleden',
50948            s: 'een paar seconden',
50949            ss: '%d seconden',
50950            m: 'één minuut',
50951            mm: '%d minuten',
50952            h: 'één uur',
50953            hh: '%d uur',
50954            d: 'één dag',
50955            dd: '%d dagen',
50956            w: 'één week',
50957            ww: '%d weken',
50958            M: 'één maand',
50959            MM: '%d maanden',
50960            y: 'één jaar',
50961            yy: '%d jaar',
50962        },
50963        dayOfMonthOrdinalParse: /\d{1,2}(ste|de)/,
50964        ordinal: function (number) {
50965            return (
50966                number +
50967                (number === 1 || number === 8 || number >= 20 ? 'ste' : 'de')
50968            );
50969        },
50970        week: {
50971            dow: 1, // Monday is the first day of the week.
50972            doy: 4, // The week that contains Jan 4th is the first week of the year.
50973        },
50974    });
50975
50976    return nl;
50977
50978})));
50979
50980
50981/***/ }),
50982
vendor: 2,530 bytes, lines 50983-51061
50983/***/ "./node_modules/moment/locale/nn.js":
50984/*!******************************************!*\
50985  !*** ./node_modules/moment/locale/nn.js ***!
50986  \******************************************/
50987/*! no static exports found */
50988/***/ (function(module, exports, __webpack_require__) {
50989
50990//! moment.js locale configuration
50991//! locale : Nynorsk [nn]
50992//! authors : https://github.com/mechuwind
50993//!           Stephen Ramthun : https://github.com/stephenramthun
50994
50995;(function (global, factory) {
50996    true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/moment/moment.js")) :
50997   undefined
50998}(this, (function (moment) { 'use strict';
50999
51000    //! moment.js locale configuration
51001
51002    var nn = moment.defineLocale('nn', {
51003        months: 'januar_februar_mars_april_mai_juni_juli_august_september_oktober_november_desember'.split(
51004            '_'
51005        ),
51006        monthsShort:
51007            'jan._feb._mars_apr._mai_juni_juli_aug._sep._okt._nov._des.'.split('_'),
51008        monthsParseExact: true,
51009        weekdays: 'sundag_måndag_tysdag_onsdag_torsdag_fredag_laurdag'.split('_'),
51010        weekdaysShort: 'su._må._ty._on._to._fr._lau.'.split('_'),
51011        weekdaysMin: 'su_må_ty_on_to_fr_la'.split('_'),
51012        weekdaysParseExact: true,
51013        longDateFormat: {
51014            LT: 'HH:mm',
51015            LTS: 'HH:mm:ss',
51016            L: 'DD.MM.YYYY',
51017            LL: 'D. MMMM YYYY',
51018            LLL: 'D. MMMM YYYY [kl.] H:mm',
51019            LLLL: 'dddd D. MMMM YYYY [kl.] HH:mm',
51020        },
51021        calendar: {
51022            sameDay: '[I dag klokka] LT',
51023            nextDay: '[I morgon klokka] LT',
51024            nextWeek: 'dddd [klokka] LT',
51025            lastDay: '[I går klokka] LT',
51026            lastWeek: '[Føregåande] dddd [klokka] LT',
51027            sameElse: 'L',
51028        },
51029        relativeTime: {
51030            future: 'om %s',
51031            past: '%s sidan',
51032            s: 'nokre sekund',
51033            ss: '%d sekund',
51034            m: 'eit minutt',
51035            mm: '%d minutt',
51036            h: 'ein time',
51037            hh: '%d timar',
51038            d: 'ein dag',
51039            dd: '%d dagar',
51040            w: 'ei veke',
51041            ww: '%d veker',
51042            M: 'ein månad',
51043            MM: '%d månader',
51044            y: 'eit år',
51045            yy: '%d år',
51046        },
51047        dayOfMonthOrdinalParse: /\d{1,2}\./,
51048        ordinal: '%d.',
51049        week: {
51050            dow: 1, // Monday is the first day of the week.
51051            doy: 4, // The week that contains Jan 4th is the first week of the year.
51052        },
51053    });
51054
51055    return nn;
51056
51057})));
51058
51059
51060/***/ }),
51061
vendor: 3,328 bytes, lines 51062-51166
51062/***/ "./node_modules/moment/locale/oc-lnc.js":
51063/*!**********************************************!*\
51064  !*** ./node_modules/moment/locale/oc-lnc.js ***!
51065  \**********************************************/
51066/*! no static exports found */
51067/***/ (function(module, exports, __webpack_require__) {
51068
51069//! moment.js locale configuration
51070//! locale : Occitan, lengadocian dialecte [oc-lnc]
51071//! author : Quentin PAGÈS : https://github.com/Quenty31
51072
51073;(function (global, factory) {
51074    true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/moment/moment.js")) :
51075   undefined
51076}(this, (function (moment) { 'use strict';
51077
51078    //! moment.js locale configuration
51079
51080    var ocLnc = moment.defineLocale('oc-lnc', {
51081        months: {
51082            standalone:
51083                'genièr_febrièr_març_abril_mai_junh_julhet_agost_setembre_octòbre_novembre_decembre'.split(
51084                    '_'
51085                ),
51086            format: "de genièr_de febrièr_de març_d'abril_de mai_de junh_de julhet_d'agost_de setembre_d'octòbre_de novembre_de decembre".split(
51087                '_'
51088            ),
51089            isFormat: /D[oD]?(\s)+MMMM/,
51090        },
51091        monthsShort:
51092            'gen._febr._març_abr._mai_junh_julh._ago._set._oct._nov._dec.'.split(
51093                '_'
51094            ),
51095        monthsParseExact: true,
51096        weekdays: 'dimenge_diluns_dimars_dimècres_dijòus_divendres_dissabte'.split(
51097            '_'
51098        ),
51099        weekdaysShort: 'dg._dl._dm._dc._dj._dv._ds.'.split('_'),
51100        weekdaysMin: 'dg_dl_dm_dc_dj_dv_ds'.split('_'),
51101        weekdaysParseExact: true,
51102        longDateFormat: {
51103            LT: 'H:mm',
51104            LTS: 'H:mm:ss',
51105            L: 'DD/MM/YYYY',
51106            LL: 'D MMMM [de] YYYY',
51107            ll: 'D MMM YYYY',
51108            LLL: 'D MMMM [de] YYYY [a] H:mm',
51109            lll: 'D MMM YYYY, H:mm',
51110            LLLL: 'dddd D MMMM [de] YYYY [a] H:mm',
51111            llll: 'ddd D MMM YYYY, H:mm',
51112        },
51113        calendar: {
51114            sameDay: '[uèi a] LT',
51115            nextDay: '[deman a] LT',
51116            nextWeek: 'dddd [a] LT',
51117            lastDay: '[ièr a] LT',
51118            lastWeek: 'dddd [passat a] LT',
51119            sameElse: 'L',
51120        },
51121        relativeTime: {
51122            future: "d'aquí %s",
51123            past: 'fa %s',
51124            s: 'unas segondas',
51125            ss: '%d segondas',
51126            m: 'una minuta',
51127            mm: '%d minutas',
51128            h: 'una ora',
51129            hh: '%d oras',
51130            d: 'un jorn',
51131            dd: '%d jorns',
51132            M: 'un mes',
51133            MM: '%d meses',
51134            y: 'un an',
51135            yy: '%d ans',
51136        },
51137        dayOfMonthOrdinalParse: /\d{1,2}(r|n|t|è|a)/,
51138        ordinal: function (number, period) {
51139            var output =
51140                number === 1
51141                    ? 'r'
51142                    : number === 2
51143                      ? 'n'
51144                      : number === 3
51145                        ? 'r'
51146                        : number === 4
51147                          ? 't'
51148                          : 'è';
51149            if (period === 'w' || period === 'W') {
51150                output = 'a';
51151            }
51152            return number + output;
51153        },
51154        week: {
51155            dow: 1, // Monday is the first day of the week.
51156            doy: 4,
51157        },
51158    });
51159
51160    return ocLnc;
51161
51162})));
51163
51164
51165/***/ }),
51166
vendor: 5,168 bytes, lines 51167-51308
51167/***/ "./node_modules/moment/locale/pa-in.js":
51168/*!*********************************************!*\
51169  !*** ./node_modules/moment/locale/pa-in.js ***!
51170  \*********************************************/
51171/*! no static exports found */
51172/***/ (function(module, exports, __webpack_require__) {
51173
51174//! moment.js locale configuration
51175//! locale : Punjabi (India) [pa-in]
51176//! author : Harpreet Singh : https://github.com/harpreetkhalsagtbit
51177
51178;(function (global, factory) {
51179    true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/moment/moment.js")) :
51180   undefined
51181}(this, (function (moment) { 'use strict';
51182
51183    //! moment.js locale configuration
51184
51185    var symbolMap = {
51186            1: 'à©§',
51187            2: '੨',
51188            3: 'à©©',
51189            4: '੪',
51190            5: 'à©«',
51191            6: '੬',
51192            7: 'à©­',
51193            8: 'à©®',
51194            9: '੯',
51195            0: '੦',
51196        },
51197        numberMap = {
51198            'à©§': '1',
51199            '੨': '2',
51200            'à©©': '3',
51201            '੪': '4',
51202            'à©«': '5',
51203            '੬': '6',
51204            'à©­': '7',
51205            'à©®': '8',
51206            '੯': '9',
51207            '੦': '0',
51208        };
51209
51210    var paIn = moment.defineLocale('pa-in', {
51211        // There are months name as per Nanakshahi Calendar but they are not used as rigidly in modern Punjabi.
51212        months: 'ਜਨਵਰੀ_ਫ਼ਰਵਰੀ_ਮਾਰਚ_ਅਪ੍ਰੈਲ_ਮਈ_ਜੂਨ_ਜੁਲਾਈ_ਅਗਸਤ_ਸਤੰਬਰ_ਅਕਤੂਬਰ_ਨਵੰਬਰ_ਦਸੰਬਰ'.split(
51213            '_'
51214        ),
51215        monthsShort:
51216            'ਜਨਵਰੀ_ਫ਼ਰਵਰੀ_ਮਾਰਚ_ਅਪ੍ਰੈਲ_ਮਈ_ਜੂਨ_ਜੁਲਾਈ_ਅਗਸਤ_ਸਤੰਬਰ_ਅਕਤੂਬਰ_ਨਵੰਬਰ_ਦਸੰਬਰ'.split(
51217                '_'
51218            ),
51219        weekdays: 'ਐਤਵਾਰ_ਸੋਮਵਾਰ_ਮੰਗਲਵਾਰ_ਬੁਧਵਾਰ_ਵੀਰਵਾਰ_ਸ਼ੁੱਕਰਵਾਰ_ਸ਼ਨੀਚਰਵਾਰ'.split(
51220            '_'
51221        ),
51222        weekdaysShort: 'ਐਤ_ਸੋਮ_ਮੰਗਲ_ਬੁਧ_ਵੀਰ_ਸ਼ੁਕਰ_ਸ਼ਨੀ'.split('_'),
51223        weekdaysMin: 'ਐਤ_ਸੋਮ_ਮੰਗਲ_ਬੁਧ_ਵੀਰ_ਸ਼ੁਕਰ_ਸ਼ਨੀ'.split('_'),
51224        longDateFormat: {
51225            LT: 'A h:mm ਵਜੇ',
51226            LTS: 'A h:mm:ss ਵਜੇ',
51227            L: 'DD/MM/YYYY',
51228            LL: 'D MMMM YYYY',
51229            LLL: 'D MMMM YYYY, A h:mm ਵਜੇ',
51230            LLLL: 'dddd, D MMMM YYYY, A h:mm ਵਜੇ',
51231        },
51232        calendar: {
51233            sameDay: '[ਅਜ] LT',
51234            nextDay: '[ਕਲ] LT',
51235            nextWeek: '[ਅਗਲਾ] dddd, LT',
51236            lastDay: '[ਕਲ] LT',
51237            lastWeek: '[ਪਿਛਲੇ] dddd, LT',
51238            sameElse: 'L',
51239        },
51240        relativeTime: {
51241            future: '%s ਵਿੱਚ',
51242            past: '%s ਪਿਛਲੇ',
51243            s: 'ਕੁਝ ਸਕਿੰਟ',
51244            ss: '%d ਸਕਿੰਟ',
51245            m: 'ਇਕ ਮਿੰਟ',
51246            mm: '%d ਮਿੰਟ',
51247            h: 'ਇੱਕ ਘੰਟਾ',
51248            hh: '%d ਘੰਟੇ',
51249            d: 'ਇੱਕ ਦਿਨ',
51250            dd: '%d ਦਿਨ',
51251            M: 'ਇੱਕ ਮਹੀਨਾ',
51252            MM: '%d ਮਹੀਨੇ',
51253            y: 'ਇੱਕ ਸਾਲ',
51254            yy: '%d ਸਾਲ',
51255        },
51256        preparse: function (string) {
51257            return string.replace(/[੧੨੩੪੫੬੭੮੯੦]/g, function (match) {
51258                return numberMap[match];
51259            });
51260        },
51261        postformat: function (string) {
51262            return string.replace(/\d/g, function (match) {
51263                return symbolMap[match];
51264            });
51265        },
51266        // Punjabi notation for meridiems are quite fuzzy in practice. While there exists
51267        // a rigid notion of a 'Pahar' it is not used as rigidly in modern Punjabi.
51268        meridiemParse: /ਰਾਤ|ਸਵੇਰ|ਦੁਪਹਿਰ|ਸ਼ਾਮ/,
51269        meridiemHour: function (hour, meridiem) {
51270            if (hour === 12) {
51271                hour = 0;
51272            }
51273            if (meridiem === 'ਰਾਤ') {
51274                return hour < 4 ? hour : hour + 12;
51275            } else if (meridiem === 'ਸਵੇਰ') {
51276                return hour;
51277            } else if (meridiem === 'ਦੁਪਹਿਰ') {
51278                return hour >= 10 ? hour : hour + 12;
51279            } else if (meridiem === 'ਸ਼ਾਮ') {
51280                return hour + 12;
51281            }
51282        },
51283        meridiem: function (hour, minute, isLower) {
51284            if (hour < 4) {
51285                return 'ਰਾਤ';
51286            } else if (hour < 10) {
51287                return 'ਸਵੇਰ';
51288            } else if (hour < 17) {
51289                return 'ਦੁਪਹਿਰ';
51290            } else if (hour < 20) {
51291                return 'ਸ਼ਾਮ';
51292            } else {
51293                return 'ਰਾਤ';
51294            }
51295        },
51296        week: {
51297            dow: 0, // Sunday is the first day of the week.
51298            doy: 6, // The week that contains Jan 6th is the first week of the year.
51299        },
51300    });
51301
51302    return paIn;
51303
51304})));
51305
51306
51307/***/ }),
51308
vendor: 5,176 bytes, lines 51309-51468
51309/***/ "./node_modules/moment/locale/pl.js":
51310/*!******************************************!*\
51311  !*** ./node_modules/moment/locale/pl.js ***!
51312  \******************************************/
51313/*! no static exports found */
51314/***/ (function(module, exports, __webpack_require__) {
51315
51316//! moment.js locale configuration
51317//! locale : Polish [pl]
51318//! author : Rafal Hirsz : https://github.com/evoL
51319
51320;(function (global, factory) {
51321    true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/moment/moment.js")) :
51322   undefined
51323}(this, (function (moment) { 'use strict';
51324
51325    //! moment.js locale configuration
51326
51327    var monthsNominative =
51328            'styczeń_luty_marzec_kwiecień_maj_czerwiec_lipiec_sierpień_wrzesień_październik_listopad_grudzień'.split(
51329                '_'
51330            ),
51331        monthsSubjective =
51332            'stycznia_lutego_marca_kwietnia_maja_czerwca_lipca_sierpnia_września_października_listopada_grudnia'.split(
51333                '_'
51334            ),
51335        monthsParse = [
51336            /^sty/i,
51337            /^lut/i,
51338            /^mar/i,
51339            /^kwi/i,
51340            /^maj/i,
51341            /^cze/i,
51342            /^lip/i,
51343            /^sie/i,
51344            /^wrz/i,
51345            /^paź/i,
51346            /^lis/i,
51347            /^gru/i,
51348        ];
51349    function plural(n) {
51350        return n % 10 < 5 && n % 10 > 1 && ~~(n / 10) % 10 !== 1;
51351    }
51352    function translate(number, withoutSuffix, key) {
51353        var result = number + ' ';
51354        switch (key) {
51355            case 'ss':
51356                return result + (plural(number) ? 'sekundy' : 'sekund');
51357            case 'm':
51358                return withoutSuffix ? 'minuta' : 'minutę';
51359            case 'mm':
51360                return result + (plural(number) ? 'minuty' : 'minut');
51361            case 'h':
51362                return withoutSuffix ? 'godzina' : 'godzinę';
51363            case 'hh':
51364                return result + (plural(number) ? 'godziny' : 'godzin');
51365            case 'ww':
51366                return result + (plural(number) ? 'tygodnie' : 'tygodni');
51367            case 'MM':
51368                return result + (plural(number) ? 'miesiące' : 'miesięcy');
51369            case 'yy':
51370                return result + (plural(number) ? 'lata' : 'lat');
51371        }
51372    }
51373
51374    var pl = moment.defineLocale('pl', {
51375        months: function (momentToFormat, format) {
51376            if (!momentToFormat) {
51377                return monthsNominative;
51378            } else if (/D MMMM/.test(format)) {
51379                return monthsSubjective[momentToFormat.month()];
51380            } else {
51381                return monthsNominative[momentToFormat.month()];
51382            }
51383        },
51384        monthsShort: 'sty_lut_mar_kwi_maj_cze_lip_sie_wrz_paź_lis_gru'.split('_'),
51385        monthsParse: monthsParse,
51386        longMonthsParse: monthsParse,
51387        shortMonthsParse: monthsParse,
51388        weekdays:
51389            'niedziela_poniedziałek_wtorek_środa_czwartek_piątek_sobota'.split('_'),
51390        weekdaysShort: 'ndz_pon_wt_śr_czw_pt_sob'.split('_'),
51391        weekdaysMin: 'Nd_Pn_Wt_Śr_Cz_Pt_So'.split('_'),
51392        longDateFormat: {
51393            LT: 'HH:mm',
51394            LTS: 'HH:mm:ss',
51395            L: 'DD.MM.YYYY',
51396            LL: 'D MMMM YYYY',
51397            LLL: 'D MMMM YYYY HH:mm',
51398            LLLL: 'dddd, D MMMM YYYY HH:mm',
51399        },
51400        calendar: {
51401            sameDay: '[Dziś o] LT',
51402            nextDay: '[Jutro o] LT',
51403            nextWeek: function () {
51404                switch (this.day()) {
51405                    case 0:
51406                        return '[W niedzielę o] LT';
51407
51408                    case 2:
51409                        return '[We wtorek o] LT';
51410
51411                    case 3:
51412                        return '[W środę o] LT';
51413
51414                    case 6:
51415                        return '[W sobotę o] LT';
51416
51417                    default:
51418                        return '[W] dddd [o] LT';
51419                }
51420            },
51421            lastDay: '[Wczoraj o] LT',
51422            lastWeek: function () {
51423                switch (this.day()) {
51424                    case 0:
51425                        return '[W zeszłą niedzielę o] LT';
51426                    case 3:
51427                        return '[W zeszłą środę o] LT';
51428                    case 6:
51429                        return '[W zeszłą sobotę o] LT';
51430                    default:
51431                        return '[W zeszły] dddd [o] LT';
51432                }
51433            },
51434            sameElse: 'L',
51435        },
51436        relativeTime: {
51437            future: 'za %s',
51438            past: '%s temu',
51439            s: 'kilka sekund',
51440            ss: translate,
51441            m: translate,
51442            mm: translate,
51443            h: translate,
51444            hh: translate,
51445            d: '1 dzień',
51446            dd: '%d dni',
51447            w: 'tydzień',
51448            ww: translate,
51449            M: 'miesiąc',
51450            MM: translate,
51451            y: 'rok',
51452            yy: translate,
51453        },
51454        dayOfMonthOrdinalParse: /\d{1,2}\./,
51455        ordinal: '%d.',
51456        week: {
51457            dow: 1, // Monday is the first day of the week.
51458            doy: 4, // The week that contains Jan 4th is the first week of the year.
51459        },
51460    });
51461
51462    return pl;
51463
51464})));
51465
51466
51467/***/ }),
51468
vendor: 2,572 bytes, lines 51469-51546
51469/***/ "./node_modules/moment/locale/pt-br.js":
51470/*!*********************************************!*\
51471  !*** ./node_modules/moment/locale/pt-br.js ***!
51472  \*********************************************/
51473/*! no static exports found */
51474/***/ (function(module, exports, __webpack_require__) {
51475
51476//! moment.js locale configuration
51477//! locale : Portuguese (Brazil) [pt-br]
51478//! author : Caio Ribeiro Pereira : https://github.com/caio-ribeiro-pereira
51479
51480;(function (global, factory) {
51481    true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/moment/moment.js")) :
51482   undefined
51483}(this, (function (moment) { 'use strict';
51484
51485    //! moment.js locale configuration
51486
51487    var ptBr = moment.defineLocale('pt-br', {
51488        months: 'janeiro_fevereiro_março_abril_maio_junho_julho_agosto_setembro_outubro_novembro_dezembro'.split(
51489            '_'
51490        ),
51491        monthsShort: 'jan_fev_mar_abr_mai_jun_jul_ago_set_out_nov_dez'.split('_'),
51492        weekdays:
51493            'domingo_segunda-feira_terça-feira_quarta-feira_quinta-feira_sexta-feira_sábado'.split(
51494                '_'
51495            ),
51496        weekdaysShort: 'dom_seg_ter_qua_qui_sex_sáb'.split('_'),
51497        weekdaysMin: 'do_2ª_3ª_4ª_5ª_6ª_sá'.split('_'),
51498        weekdaysParseExact: true,
51499        longDateFormat: {
51500            LT: 'HH:mm',
51501            LTS: 'HH:mm:ss',
51502            L: 'DD/MM/YYYY',
51503            LL: 'D [de] MMMM [de] YYYY',
51504            LLL: 'D [de] MMMM [de] YYYY [às] HH:mm',
51505            LLLL: 'dddd, D [de] MMMM [de] YYYY [às] HH:mm',
51506        },
51507        calendar: {
51508            sameDay: '[Hoje às] LT',
51509            nextDay: '[Amanhã às] LT',
51510            nextWeek: 'dddd [às] LT',
51511            lastDay: '[Ontem às] LT',
51512            lastWeek: function () {
51513                return this.day() === 0 || this.day() === 6
51514                    ? '[Último] dddd [às] LT' // Saturday + Sunday
51515                    : '[Última] dddd [às] LT'; // Monday - Friday
51516            },
51517            sameElse: 'L',
51518        },
51519        relativeTime: {
51520            future: 'em %s',
51521            past: 'há %s',
51522            s: 'poucos segundos',
51523            ss: '%d segundos',
51524            m: 'um minuto',
51525            mm: '%d minutos',
51526            h: 'uma hora',
51527            hh: '%d horas',
51528            d: 'um dia',
51529            dd: '%d dias',
51530            M: 'um mês',
51531            MM: '%d meses',
51532            y: 'um ano',
51533            yy: '%d anos',
51534        },
51535        dayOfMonthOrdinalParse: /\d{1,2}º/,
51536        ordinal: '%dº',
51537        invalidDate: 'Data inválida',
51538    });
51539
51540    return ptBr;
51541
51542})));
51543
51544
51545/***/ }),
51546
vendor: 2,690 bytes, lines 51547-51629
51547/***/ "./node_modules/moment/locale/pt.js":
51548/*!******************************************!*\
51549  !*** ./node_modules/moment/locale/pt.js ***!
51550  \******************************************/
51551/*! no static exports found */
51552/***/ (function(module, exports, __webpack_require__) {
51553
51554//! moment.js locale configuration
51555//! locale : Portuguese [pt]
51556//! author : Jefferson : https://github.com/jalex79
51557
51558;(function (global, factory) {
51559    true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/moment/moment.js")) :
51560   undefined
51561}(this, (function (moment) { 'use strict';
51562
51563    //! moment.js locale configuration
51564
51565    var pt = moment.defineLocale('pt', {
51566        months: 'janeiro_fevereiro_março_abril_maio_junho_julho_agosto_setembro_outubro_novembro_dezembro'.split(
51567            '_'
51568        ),
51569        monthsShort: 'jan_fev_mar_abr_mai_jun_jul_ago_set_out_nov_dez'.split('_'),
51570        weekdays:
51571            'Domingo_Segunda-feira_Terça-feira_Quarta-feira_Quinta-feira_Sexta-feira_Sábado'.split(
51572                '_'
51573            ),
51574        weekdaysShort: 'Dom_Seg_Ter_Qua_Qui_Sex_Sáb'.split('_'),
51575        weekdaysMin: 'Do_2ª_3ª_4ª_5ª_6ª_Sá'.split('_'),
51576        weekdaysParseExact: true,
51577        longDateFormat: {
51578            LT: 'HH:mm',
51579            LTS: 'HH:mm:ss',
51580            L: 'DD/MM/YYYY',
51581            LL: 'D [de] MMMM [de] YYYY',
51582            LLL: 'D [de] MMMM [de] YYYY HH:mm',
51583            LLLL: 'dddd, D [de] MMMM [de] YYYY HH:mm',
51584        },
51585        calendar: {
51586            sameDay: '[Hoje às] LT',
51587            nextDay: '[Amanhã às] LT',
51588            nextWeek: 'dddd [às] LT',
51589            lastDay: '[Ontem às] LT',
51590            lastWeek: function () {
51591                return this.day() === 0 || this.day() === 6
51592                    ? '[Último] dddd [às] LT' // Saturday + Sunday
51593                    : '[Última] dddd [às] LT'; // Monday - Friday
51594            },
51595            sameElse: 'L',
51596        },
51597        relativeTime: {
51598            future: 'em %s',
51599            past: 'há %s',
51600            s: 'segundos',
51601            ss: '%d segundos',
51602            m: 'um minuto',
51603            mm: '%d minutos',
51604            h: 'uma hora',
51605            hh: '%d horas',
51606            d: 'um dia',
51607            dd: '%d dias',
51608            w: 'uma semana',
51609            ww: '%d semanas',
51610            M: 'um mês',
51611            MM: '%d meses',
51612            y: 'um ano',
51613            yy: '%d anos',
51614        },
51615        dayOfMonthOrdinalParse: /\d{1,2}º/,
51616        ordinal: '%dº',
51617        week: {
51618            dow: 1, // Monday is the first day of the week.
51619            doy: 4, // The week that contains Jan 4th is the first week of the year.
51620        },
51621    });
51622
51623    return pt;
51624
51625})));
51626
51627
51628/***/ }),
51629
vendor: 3,081 bytes, lines 51630-51725
51630/***/ "./node_modules/moment/locale/ro.js":
51631/*!******************************************!*\
51632  !*** ./node_modules/moment/locale/ro.js ***!
51633  \******************************************/
51634/*! no static exports found */
51635/***/ (function(module, exports, __webpack_require__) {
51636
51637//! moment.js locale configuration
51638//! locale : Romanian [ro]
51639//! author : Vlad Gurdiga : https://github.com/gurdiga
51640//! author : Valentin Agachi : https://github.com/avaly
51641//! author : Emanuel Cepoi : https://github.com/cepem
51642
51643;(function (global, factory) {
51644    true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/moment/moment.js")) :
51645   undefined
51646}(this, (function (moment) { 'use strict';
51647
51648    //! moment.js locale configuration
51649
51650    function relativeTimeWithPlural(number, withoutSuffix, key) {
51651        var format = {
51652                ss: 'secunde',
51653                mm: 'minute',
51654                hh: 'ore',
51655                dd: 'zile',
51656                ww: 'săptămâni',
51657                MM: 'luni',
51658                yy: 'ani',
51659            },
51660            separator = ' ';
51661        if (number % 100 >= 20 || (number >= 100 && number % 100 === 0)) {
51662            separator = ' de ';
51663        }
51664        return number + separator + format[key];
51665    }
51666
51667    var ro = moment.defineLocale('ro', {
51668        months: 'ianuarie_februarie_martie_aprilie_mai_iunie_iulie_august_septembrie_octombrie_noiembrie_decembrie'.split(
51669            '_'
51670        ),
51671        monthsShort:
51672            'ian._feb._mart._apr._mai_iun._iul._aug._sept._oct._nov._dec.'.split(
51673                '_'
51674            ),
51675        monthsParseExact: true,
51676        weekdays: 'duminică_luni_marți_miercuri_joi_vineri_sâmbătă'.split('_'),
51677        weekdaysShort: 'Dum_Lun_Mar_Mie_Joi_Vin_Sâm'.split('_'),
51678        weekdaysMin: 'Du_Lu_Ma_Mi_Jo_Vi_Sâ'.split('_'),
51679        longDateFormat: {
51680            LT: 'H:mm',
51681            LTS: 'H:mm:ss',
51682            L: 'DD.MM.YYYY',
51683            LL: 'D MMMM YYYY',
51684            LLL: 'D MMMM YYYY H:mm',
51685            LLLL: 'dddd, D MMMM YYYY H:mm',
51686        },
51687        calendar: {
51688            sameDay: '[azi la] LT',
51689            nextDay: '[mâine la] LT',
51690            nextWeek: 'dddd [la] LT',
51691            lastDay: '[ieri la] LT',
51692            lastWeek: '[fosta] dddd [la] LT',
51693            sameElse: 'L',
51694        },
51695        relativeTime: {
51696            future: 'peste %s',
51697            past: '%s în urmă',
51698            s: 'câteva secunde',
51699            ss: relativeTimeWithPlural,
51700            m: 'un minut',
51701            mm: relativeTimeWithPlural,
51702            h: 'o oră',
51703            hh: relativeTimeWithPlural,
51704            d: 'o zi',
51705            dd: relativeTimeWithPlural,
51706            w: 'o săptămână',
51707            ww: relativeTimeWithPlural,
51708            M: 'o lună',
51709            MM: relativeTimeWithPlural,
51710            y: 'un an',
51711            yy: relativeTimeWithPlural,
51712        },
51713        week: {
51714            dow: 1, // Monday is the first day of the week.
51715            doy: 7, // The week that contains Jan 7th is the first week of the year.
51716        },
51717    });
51718
51719    return ro;
51720
51721})));
51722
51723
51724/***/ }),
51725
vendor: 9,716 bytes, lines 51726-51958
51726/***/ "./node_modules/moment/locale/ru.js":
51727/*!******************************************!*\
51728  !*** ./node_modules/moment/locale/ru.js ***!
51729  \******************************************/
51730/*! no static exports found */
51731/***/ (function(module, exports, __webpack_require__) {
51732
51733//! moment.js locale configuration
51734//! locale : Russian [ru]
51735//! author : Viktorminator : https://github.com/Viktorminator
51736//! author : Menelion Elensúle : https://github.com/Oire
51737//! author : Коренберг Марк : https://github.com/socketpair
51738
51739;(function (global, factory) {
51740    true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/moment/moment.js")) :
51741   undefined
51742}(this, (function (moment) { 'use strict';
51743
51744    //! moment.js locale configuration
51745
51746    function plural(word, num) {
51747        var forms = word.split('_');
51748        return num % 10 === 1 && num % 100 !== 11
51749            ? forms[0]
51750            : num % 10 >= 2 && num % 10 <= 4 && (num % 100 < 10 || num % 100 >= 20)
51751              ? forms[1]
51752              : forms[2];
51753    }
51754    function relativeTimeWithPlural(number, withoutSuffix, key) {
51755        var format = {
51756            ss: withoutSuffix ? 'секунда_секунды_секунд' : 'секунду_секунды_секунд',
51757            mm: withoutSuffix ? 'минута_минуты_минут' : 'минуту_минуты_минут',
51758            hh: 'час_часа_часов',
51759            dd: 'день_дня_дней',
51760            ww: 'неделя_недели_недель',
51761            MM: 'месяц_месяца_месяцев',
51762            yy: 'год_года_лет',
51763        };
51764        if (key === 'm') {
51765            return withoutSuffix ? 'минута' : 'минуту';
51766        } else {
51767            return number + ' ' + plural(format[key], +number);
51768        }
51769    }
51770    var monthsParse = [
51771        /^янв/i,
51772        /^фев/i,
51773        /^мар/i,
51774        /^апр/i,
51775        /^ма[йя]/i,
51776        /^июн/i,
51777        /^июл/i,
51778        /^авг/i,
51779        /^сен/i,
51780        /^окт/i,
51781        /^ноя/i,
51782        /^дек/i,
51783    ];
51784
51785    // http://new.gramota.ru/spravka/rules/139-prop : § 103
51786    // Сокращения месяцев: http://new.gramota.ru/spravka/buro/search-answer?s=242637
51787    // CLDR data:          http://www.unicode.org/cldr/charts/28/summary/ru.html#1753
51788    var ru = moment.defineLocale('ru', {
51789        months: {
51790            format: 'января_февраля_марта_апреля_мая_июня_июля_августа_сентября_октября_ноября_декабря'.split(
51791                '_'
51792            ),
51793            standalone:
51794                'январь_февраль_март_апрель_май_июнь_июль_август_сентябрь_октябрь_ноябрь_декабрь'.split(
51795                    '_'
51796                ),
51797        },
51798        monthsShort: {
51799            // по CLDR именно "июл." и "июн.", но какой смысл менять букву на точку?
51800            format: 'янв._февр._мар._апр._мая_июня_июля_авг._сент._окт._нояб._дек.'.split(
51801                '_'
51802            ),
51803            standalone:
51804                'янв._февр._март_апр._май_июнь_июль_авг._сент._окт._нояб._дек.'.split(
51805                    '_'
51806                ),
51807        },
51808        weekdays: {
51809            standalone:
51810                'воскресенье_понедельник_вторник_среда_четверг_пятница_суббота'.split(
51811                    '_'
51812                ),
51813            format: 'воскресенье_понедельник_вторник_среду_четверг_пятницу_субботу'.split(
51814                '_'
51815            ),
51816            isFormat: /\[ ?[Вв] ?(?:прошлую|следующую|эту)? ?] ?dddd/,
51817        },
51818        weekdaysShort: 'вс_пн_вт_ср_чт_пт_сб'.split('_'),
51819        weekdaysMin: 'вс_пн_вт_ср_чт_пт_сб'.split('_'),
51820        monthsParse: monthsParse,
51821        longMonthsParse: monthsParse,
51822        shortMonthsParse: monthsParse,
51823
51824        // полные названия с падежами, по три буквы, для некоторых, по 4 буквы, сокращения с точкой и без точки
51825        monthsRegex:
51826            /^(январ[ья]|янв\.?|феврал[ья]|февр?\.?|марта?|мар\.?|апрел[ья]|апр\.?|ма[йя]|июн[ья]|июн\.?|июл[ья]|июл\.?|августа?|авг\.?|сентябр[ья]|сент?\.?|октябр[ья]|окт\.?|ноябр[ья]|нояб?\.?|декабр[ья]|дек\.?)/i,
51827
51828        // копия предыдущего
51829        monthsShortRegex:
51830            /^(январ[ья]|янв\.?|феврал[ья]|февр?\.?|марта?|мар\.?|апрел[ья]|апр\.?|ма[йя]|июн[ья]|июн\.?|июл[ья]|июл\.?|августа?|авг\.?|сентябр[ья]|сент?\.?|октябр[ья]|окт\.?|ноябр[ья]|нояб?\.?|декабр[ья]|дек\.?)/i,
51831
51832        // полные названия с падежами
51833        monthsStrictRegex:
51834            /^(январ[яь]|феврал[яь]|марта?|апрел[яь]|ма[яй]|июн[яь]|июл[яь]|августа?|сентябр[яь]|октябр[яь]|ноябр[яь]|декабр[яь])/i,
51835
51836        // Выражение, которое соответствует только сокращённым формам
51837        monthsShortStrictRegex:
51838            /^(янв\.|февр?\.|мар[т.]|апр\.|ма[яй]|июн[ья.]|июл[ья.]|авг\.|сент?\.|окт\.|нояб?\.|дек\.)/i,
51839        longDateFormat: {
51840            LT: 'H:mm',
51841            LTS: 'H:mm:ss',
51842            L: 'DD.MM.YYYY',
51843            LL: 'D MMMM YYYY г.',
51844            LLL: 'D MMMM YYYY г., H:mm',
51845            LLLL: 'dddd, D MMMM YYYY г., H:mm',
51846        },
51847        calendar: {
51848            sameDay: '[Сегодня, в] LT',
51849            nextDay: '[Завтра, в] LT',
51850            lastDay: '[Вчера, в] LT',
51851            nextWeek: function (now) {
51852                if (now.week() !== this.week()) {
51853                    switch (this.day()) {
51854                        case 0:
51855                            return '[В следующее] dddd, [в] LT';
51856                        case 1:
51857                        case 2:
51858                        case 4:
51859                            return '[В следующий] dddd, [в] LT';
51860                        case 3:
51861                        case 5:
51862                        case 6:
51863                            return '[В следующую] dddd, [в] LT';
51864                    }
51865                } else {
51866                    if (this.day() === 2) {
51867                        return '[Во] dddd, [в] LT';
51868                    } else {
51869                        return '[В] dddd, [в] LT';
51870                    }
51871                }
51872            },
51873            lastWeek: function (now) {
51874                if (now.week() !== this.week()) {
51875                    switch (this.day()) {
51876                        case 0:
51877                            return '[В прошлое] dddd, [в] LT';
51878                        case 1:
51879                        case 2:
51880                        case 4:
51881                            return '[В прошлый] dddd, [в] LT';
51882                        case 3:
51883                        case 5:
51884                        case 6:
51885                            return '[В прошлую] dddd, [в] LT';
51886                    }
51887                } else {
51888                    if (this.day() === 2) {
51889                        return '[Во] dddd, [в] LT';
51890                    } else {
51891                        return '[В] dddd, [в] LT';
51892                    }
51893                }
51894            },
51895            sameElse: 'L',
51896        },
51897        relativeTime: {
51898            future: 'через %s',
51899            past: '%s назад',
51900            s: 'несколько секунд',
51901            ss: relativeTimeWithPlural,
51902            m: relativeTimeWithPlural,
51903            mm: relativeTimeWithPlural,
51904            h: 'час',
51905            hh: relativeTimeWithPlural,
51906            d: 'день',
51907            dd: relativeTimeWithPlural,
51908            w: 'неделя',
51909            ww: relativeTimeWithPlural,
51910            M: 'месяц',
51911            MM: relativeTimeWithPlural,
51912            y: 'год',
51913            yy: relativeTimeWithPlural,
51914        },
51915        meridiemParse: /ночи|утра|дня|вечера/i,
51916        isPM: function (input) {
51917            return /^(дня|вечера)$/.test(input);
51918        },
51919        meridiem: function (hour, minute, isLower) {
51920            if (hour < 4) {
51921                return 'ночи';
51922            } else if (hour < 12) {
51923                return 'утра';
51924            } else if (hour < 17) {
51925                return 'дня';
51926            } else {
51927                return 'вечера';
51928            }
51929        },
51930        dayOfMonthOrdinalParse: /\d{1,2}-(й|го|я)/,
51931        ordinal: function (number, period) {
51932            switch (period) {
51933                case 'M':
51934                case 'd':
51935                case 'DDD':
51936                    return number + '-й';
51937                case 'D':
51938                    return number + '-го';
51939                case 'w':
51940                case 'W':
51941                    return number + '-я';
51942                default:
51943                    return number;
51944            }
51945        },
51946        week: {
51947            dow: 1, // Monday is the first day of the week.
51948            doy: 4, // The week that contains Jan 4th is the first week of the year.
51949        },
51950    });
51951
51952    return ru;
51953
51954})));
51955
51956
51957/***/ }),
51958
vendor: 2,943 bytes, lines 51959-52059
51959/***/ "./node_modules/moment/locale/sd.js":
51960/*!******************************************!*\
51961  !*** ./node_modules/moment/locale/sd.js ***!
51962  \******************************************/
51963/*! no static exports found */
51964/***/ (function(module, exports, __webpack_require__) {
51965
51966//! moment.js locale configuration
51967//! locale : Sindhi [sd]
51968//! author : Narain Sagar : https://github.com/narainsagar
51969
51970;(function (global, factory) {
51971    true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/moment/moment.js")) :
51972   undefined
51973}(this, (function (moment) { 'use strict';
51974
51975    //! moment.js locale configuration
51976
51977    var months = [
51978            'جنوري',
51979            'فيبروري',
51980            'مارچ',
51981            'اپريل',
51982            'مئي',
51983            'جون',
51984            'جولاءِ',
51985            'آگسٽ',
51986            'سيپٽمبر',
51987            'آڪٽوبر',
51988            'نومبر',
51989            'ڊسمبر',
51990        ],
51991        days = ['آچر', 'سومر', 'اڱارو', 'اربع', 'خميس', 'جمع', 'ڇنڇر'];
51992
51993    var sd = moment.defineLocale('sd', {
51994        months: months,
51995        monthsShort: months,
51996        weekdays: days,
51997        weekdaysShort: days,
51998        weekdaysMin: days,
51999        longDateFormat: {
52000            LT: 'HH:mm',
52001            LTS: 'HH:mm:ss',
52002            L: 'DD/MM/YYYY',
52003            LL: 'D MMMM YYYY',
52004            LLL: 'D MMMM YYYY HH:mm',
52005            LLLL: 'dddd، D MMMM YYYY HH:mm',
52006        },
52007        meridiemParse: /صبح|شام/,
52008        isPM: function (input) {
52009            return 'شام' === input;
52010        },
52011        meridiem: function (hour, minute, isLower) {
52012            if (hour < 12) {
52013                return 'صبح';
52014            }
52015            return 'شام';
52016        },
52017        calendar: {
52018            sameDay: '[اڄ] LT',
52019            nextDay: '[سڀاڻي] LT',
52020            nextWeek: 'dddd [اڳين هفتي تي] LT',
52021            lastDay: '[ڪالهه] LT',
52022            lastWeek: '[گزريل هفتي] dddd [تي] LT',
52023            sameElse: 'L',
52024        },
52025        relativeTime: {
52026            future: '%s پوء',
52027            past: '%s اڳ',
52028            s: 'چند سيڪنڊ',
52029            ss: '%d سيڪنڊ',
52030            m: 'هڪ منٽ',
52031            mm: '%d منٽ',
52032            h: 'هڪ ڪلاڪ',
52033            hh: '%d ڪلاڪ',
52034            d: 'هڪ ڏينهن',
52035            dd: '%d ڏينهن',
52036            M: 'هڪ مهينو',
52037            MM: '%d مهينا',
52038            y: 'هڪ سال',
52039            yy: '%d سال',
52040        },
52041        preparse: function (string) {
52042            return string.replace(/،/g, ',');
52043        },
52044        postformat: function (string) {
52045            return string.replace(/,/g, '،');
52046        },
52047        week: {
52048            dow: 1, // Monday is the first day of the week.
52049            doy: 4, // The week that contains Jan 4th is the first week of the year.
52050        },
52051    });
52052
52053    return sd;
52054
52055})));
52056
52057
52058/***/ }),
52059
vendor: 2,547 bytes, lines 52060-52136
52060/***/ "./node_modules/moment/locale/se.js":
52061/*!******************************************!*\
52062  !*** ./node_modules/moment/locale/se.js ***!
52063  \******************************************/
52064/*! no static exports found */
52065/***/ (function(module, exports, __webpack_require__) {
52066
52067//! moment.js locale configuration
52068//! locale : Northern Sami [se]
52069//! authors : BÃ¥rd Rolstad Henriksen : https://github.com/karamell
52070
52071;(function (global, factory) {
52072    true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/moment/moment.js")) :
52073   undefined
52074}(this, (function (moment) { 'use strict';
52075
52076    //! moment.js locale configuration
52077
52078    var se = moment.defineLocale('se', {
52079        months: 'ođđajagemánnu_guovvamánnu_njukčamánnu_cuoŋománnu_miessemánnu_geassemánnu_suoidnemánnu_borgemánnu_čakčamánnu_golggotmánnu_skábmamánnu_juovlamánnu'.split(
52080            '_'
52081        ),
52082        monthsShort:
52083            'ođđj_guov_njuk_cuo_mies_geas_suoi_borg_čakč_golg_skáb_juov'.split('_'),
52084        weekdays:
52085            'sotnabeaivi_vuossárga_maŋŋebárga_gaskavahkku_duorastat_bearjadat_lávvardat'.split(
52086                '_'
52087            ),
52088        weekdaysShort: 'sotn_vuos_maŋ_gask_duor_bear_láv'.split('_'),
52089        weekdaysMin: 's_v_m_g_d_b_L'.split('_'),
52090        longDateFormat: {
52091            LT: 'HH:mm',
52092            LTS: 'HH:mm:ss',
52093            L: 'DD.MM.YYYY',
52094            LL: 'MMMM D. [b.] YYYY',
52095            LLL: 'MMMM D. [b.] YYYY [ti.] HH:mm',
52096            LLLL: 'dddd, MMMM D. [b.] YYYY [ti.] HH:mm',
52097        },
52098        calendar: {
52099            sameDay: '[otne ti] LT',
52100            nextDay: '[ihttin ti] LT',
52101            nextWeek: 'dddd [ti] LT',
52102            lastDay: '[ikte ti] LT',
52103            lastWeek: '[ovddit] dddd [ti] LT',
52104            sameElse: 'L',
52105        },
52106        relativeTime: {
52107            future: '%s geažes',
52108            past: 'maŋit %s',
52109            s: 'moadde sekunddat',
52110            ss: '%d sekunddat',
52111            m: 'okta minuhta',
52112            mm: '%d minuhtat',
52113            h: 'okta diimmu',
52114            hh: '%d diimmut',
52115            d: 'okta beaivi',
52116            dd: '%d beaivvit',
52117            M: 'okta mánnu',
52118            MM: '%d mánut',
52119            y: 'okta jahki',
52120            yy: '%d jagit',
52121        },
52122        dayOfMonthOrdinalParse: /\d{1,2}\./,
52123        ordinal: '%d.',
52124        week: {
52125            dow: 1, // Monday is the first day of the week.
52126            doy: 4, // The week that contains Jan 4th is the first week of the year.
52127        },
52128    });
52129
52130    return se;
52131
52132})));
52133
52134
52135/***/ }),
52136
vendor: 3,427 bytes, lines 52137-52225
52137/***/ "./node_modules/moment/locale/si.js":
52138/*!******************************************!*\
52139  !*** ./node_modules/moment/locale/si.js ***!
52140  \******************************************/
52141/*! no static exports found */
52142/***/ (function(module, exports, __webpack_require__) {
52143
52144//! moment.js locale configuration
52145//! locale : Sinhalese [si]
52146//! author : Sampath Sitinamaluwa : https://github.com/sampathsris
52147
52148;(function (global, factory) {
52149    true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/moment/moment.js")) :
52150   undefined
52151}(this, (function (moment) { 'use strict';
52152
52153    //! moment.js locale configuration
52154
52155    /*jshint -W100*/
52156    var si = moment.defineLocale('si', {
52157        months: 'ජනවාරි_පෙබරවාරි_මාර්තු_අප්‍රේල්_මැයි_ජූනි_ජූලි_අගෝස්තු_සැප්තැම්බර්_ඔක්තෝබර්_නොවැම්බර්_දෙසැම්බර්'.split(
52158            '_'
52159        ),
52160        monthsShort: 'ජන_පෙබ_මාර්_අප්_මැයි_ජූනි_ජූලි_අගෝ_සැප්_ඔක්_නොවැ_දෙසැ'.split(
52161            '_'
52162        ),
52163        weekdays:
52164            'ඉරිදා_සඳුදා_අඟහරුවාදා_බදාදා_බ්‍රහස්පතින්දා_සිකුරාදා_සෙනසුරාදා'.split(
52165                '_'
52166            ),
52167        weekdaysShort: 'ඉරි_සඳු_අඟ_බදා_බ්‍රහ_සිකු_සෙන'.split('_'),
52168        weekdaysMin: 'ඉ_ස_අ_බ_බ්‍ර_සි_සෙ'.split('_'),
52169        weekdaysParseExact: true,
52170        longDateFormat: {
52171            LT: 'a h:mm',
52172            LTS: 'a h:mm:ss',
52173            L: 'YYYY/MM/DD',
52174            LL: 'YYYY MMMM D',
52175            LLL: 'YYYY MMMM D, a h:mm',
52176            LLLL: 'YYYY MMMM D [වැනි] dddd, a h:mm:ss',
52177        },
52178        calendar: {
52179            sameDay: '[අද] LT[ට]',
52180            nextDay: '[හෙට] LT[ට]',
52181            nextWeek: 'dddd LT[à¶§]',
52182            lastDay: '[ඊයේ] LT[ට]',
52183            lastWeek: '[පසුගිය] dddd LT[ට]',
52184            sameElse: 'L',
52185        },
52186        relativeTime: {
52187            future: '%sකින්',
52188            past: '%sකට පෙර',
52189            s: 'තත්පර කිහිපය',
52190            ss: 'තත්පර %d',
52191            m: 'මිනිත්තුව',
52192            mm: 'මිනිත්තු %d',
52193            h: 'පැය',
52194            hh: 'පැය %d',
52195            d: 'දිනය',
52196            dd: 'දින %d',
52197            M: 'මාසය',
52198            MM: 'මාස %d',
52199            y: 'වසර',
52200            yy: 'වසර %d',
52201        },
52202        dayOfMonthOrdinalParse: /\d{1,2} වැනි/,
52203        ordinal: function (number) {
52204            return number + ' වැනි';
52205        },
52206        meridiemParse: /පෙර වරු|පස් වරු|පෙ.ව|ප.ව./,
52207        isPM: function (input) {
52208            return input === 'ප.ව.' || input === 'පස් වරු';
52209        },
52210        meridiem: function (hours, minutes, isLower) {
52211            if (hours > 11) {
52212                return isLower ? 'ප.ව.' : 'පස් වරු';
52213            } else {
52214                return isLower ? 'පෙ.ව.' : 'පෙර වරු';
52215            }
52216        },
52217    });
52218
52219    return si;
52220
52221})));
52222
52223
52224/***/ }),
52225
vendor: 6,215 bytes, lines 52226-52390
52226/***/ "./node_modules/moment/locale/sk.js":
52227/*!******************************************!*\
52228  !*** ./node_modules/moment/locale/sk.js ***!
52229  \******************************************/
52230/*! no static exports found */
52231/***/ (function(module, exports, __webpack_require__) {
52232
52233//! moment.js locale configuration
52234//! locale : Slovak [sk]
52235//! author : Martin Minka : https://github.com/k2s
52236//! based on work of petrbela : https://github.com/petrbela
52237
52238;(function (global, factory) {
52239    true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/moment/moment.js")) :
52240   undefined
52241}(this, (function (moment) { 'use strict';
52242
52243    //! moment.js locale configuration
52244
52245    var months =
52246            'január_február_marec_apríl_máj_jún_júl_august_september_október_november_december'.split(
52247                '_'
52248            ),
52249        monthsShort = 'jan_feb_mar_apr_máj_jún_júl_aug_sep_okt_nov_dec'.split('_');
52250    function plural(n) {
52251        return n > 1 && n < 5;
52252    }
52253    function translate(number, withoutSuffix, key, isFuture) {
52254        var result = number + ' ';
52255        switch (key) {
52256            case 's': // a few seconds / in a few seconds / a few seconds ago
52257                return withoutSuffix || isFuture ? 'pár sekúnd' : 'pár sekundami';
52258            case 'ss': // 9 seconds / in 9 seconds / 9 seconds ago
52259                if (withoutSuffix || isFuture) {
52260                    return result + (plural(number) ? 'sekundy' : 'sekúnd');
52261                } else {
52262                    return result + 'sekundami';
52263                }
52264            case 'm': // a minute / in a minute / a minute ago
52265                return withoutSuffix ? 'minúta' : isFuture ? 'minútu' : 'minútou';
52266            case 'mm': // 9 minutes / in 9 minutes / 9 minutes ago
52267                if (withoutSuffix || isFuture) {
52268                    return result + (plural(number) ? 'minúty' : 'minút');
52269                } else {
52270                    return result + 'minútami';
52271                }
52272            case 'h': // an hour / in an hour / an hour ago
52273                return withoutSuffix ? 'hodina' : isFuture ? 'hodinu' : 'hodinou';
52274            case 'hh': // 9 hours / in 9 hours / 9 hours ago
52275                if (withoutSuffix || isFuture) {
52276                    return result + (plural(number) ? 'hodiny' : 'hodín');
52277                } else {
52278                    return result + 'hodinami';
52279                }
52280            case 'd': // a day / in a day / a day ago
52281                return withoutSuffix || isFuture ? 'deň' : 'dňom';
52282            case 'dd': // 9 days / in 9 days / 9 days ago
52283                if (withoutSuffix || isFuture) {
52284                    return result + (plural(number) ? 'dni' : 'dní');
52285                } else {
52286                    return result + 'dňami';
52287                }
52288            case 'M': // a month / in a month / a month ago
52289                return withoutSuffix || isFuture ? 'mesiac' : 'mesiacom';
52290            case 'MM': // 9 months / in 9 months / 9 months ago
52291                if (withoutSuffix || isFuture) {
52292                    return result + (plural(number) ? 'mesiace' : 'mesiacov');
52293                } else {
52294                    return result + 'mesiacmi';
52295                }
52296            case 'y': // a year / in a year / a year ago
52297                return withoutSuffix || isFuture ? 'rok' : 'rokom';
52298            case 'yy': // 9 years / in 9 years / 9 years ago
52299                if (withoutSuffix || isFuture) {
52300                    return result + (plural(number) ? 'roky' : 'rokov');
52301                } else {
52302                    return result + 'rokmi';
52303                }
52304        }
52305    }
52306
52307    var sk = moment.defineLocale('sk', {
52308        months: months,
52309        monthsShort: monthsShort,
52310        weekdays: 'nedeľa_pondelok_utorok_streda_štvrtok_piatok_sobota'.split('_'),
52311        weekdaysShort: 'ne_po_ut_st_št_pi_so'.split('_'),
52312        weekdaysMin: 'ne_po_ut_st_št_pi_so'.split('_'),
52313        longDateFormat: {
52314            LT: 'H:mm',
52315            LTS: 'H:mm:ss',
52316            L: 'DD.MM.YYYY',
52317            LL: 'D. MMMM YYYY',
52318            LLL: 'D. MMMM YYYY H:mm',
52319            LLLL: 'dddd D. MMMM YYYY H:mm',
52320        },
52321        calendar: {
52322            sameDay: '[dnes o] LT',
52323            nextDay: '[zajtra o] LT',
52324            nextWeek: function () {
52325                switch (this.day()) {
52326                    case 0:
52327                        return '[v nedeľu o] LT';
52328                    case 1:
52329                    case 2:
52330                        return '[v] dddd [o] LT';
52331                    case 3:
52332                        return '[v stredu o] LT';
52333                    case 4:
52334                        return '[vo štvrtok o] LT';
52335                    case 5:
52336                        return '[v piatok o] LT';
52337                    case 6:
52338                        return '[v sobotu o] LT';
52339                }
52340            },
52341            lastDay: '[včera o] LT',
52342            lastWeek: function () {
52343                switch (this.day()) {
52344                    case 0:
52345                        return '[minulú nedeľu o] LT';
52346                    case 1:
52347                    case 2:
52348                        return '[minulý] dddd [o] LT';
52349                    case 3:
52350                        return '[minulú stredu o] LT';
52351                    case 4:
52352                    case 5:
52353                        return '[minulý] dddd [o] LT';
52354                    case 6:
52355                        return '[minulú sobotu o] LT';
52356                }
52357            },
52358            sameElse: 'L',
52359        },
52360        relativeTime: {
52361            future: 'za %s',
52362            past: 'pred %s',
52363            s: translate,
52364            ss: translate,
52365            m: translate,
52366            mm: translate,
52367            h: translate,
52368            hh: translate,
52369            d: translate,
52370            dd: translate,
52371            M: translate,
52372            MM: translate,
52373            y: translate,
52374            yy: translate,
52375        },
52376        dayOfMonthOrdinalParse: /\d{1,2}\./,
52377        ordinal: '%d.',
52378        week: {
52379            dow: 1, // Monday is the first day of the week.
52380            doy: 4, // The week that contains Jan 4th is the first week of the year.
52381        },
52382    });
52383
52384    return sk;
52385
52386})));
52387
52388
52389/***/ }),
52390
vendor: 7,261 bytes, lines 52391-52581
52391/***/ "./node_modules/moment/locale/sl.js":
52392/*!******************************************!*\
52393  !*** ./node_modules/moment/locale/sl.js ***!
52394  \******************************************/
52395/*! no static exports found */
52396/***/ (function(module, exports, __webpack_require__) {
52397
52398//! moment.js locale configuration
52399//! locale : Slovenian [sl]
52400//! author : Robert Sedovšek : https://github.com/sedovsek
52401
52402;(function (global, factory) {
52403    true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/moment/moment.js")) :
52404   undefined
52405}(this, (function (moment) { 'use strict';
52406
52407    //! moment.js locale configuration
52408
52409    function processRelativeTime(number, withoutSuffix, key, isFuture) {
52410        var result = number + ' ';
52411        switch (key) {
52412            case 's':
52413                return withoutSuffix || isFuture
52414                    ? 'nekaj sekund'
52415                    : 'nekaj sekundami';
52416            case 'ss':
52417                if (number === 1) {
52418                    result += withoutSuffix ? 'sekundo' : 'sekundi';
52419                } else if (number === 2) {
52420                    result += withoutSuffix || isFuture ? 'sekundi' : 'sekundah';
52421                } else if (number < 5) {
52422                    result += withoutSuffix || isFuture ? 'sekunde' : 'sekundah';
52423                } else {
52424                    result += 'sekund';
52425                }
52426                return result;
52427            case 'm':
52428                return withoutSuffix ? 'ena minuta' : 'eno minuto';
52429            case 'mm':
52430                if (number === 1) {
52431                    result += withoutSuffix ? 'minuta' : 'minuto';
52432                } else if (number === 2) {
52433                    result += withoutSuffix || isFuture ? 'minuti' : 'minutama';
52434                } else if (number < 5) {
52435                    result += withoutSuffix || isFuture ? 'minute' : 'minutami';
52436                } else {
52437                    result += withoutSuffix || isFuture ? 'minut' : 'minutami';
52438                }
52439                return result;
52440            case 'h':
52441                return withoutSuffix ? 'ena ura' : 'eno uro';
52442            case 'hh':
52443                if (number === 1) {
52444                    result += withoutSuffix ? 'ura' : 'uro';
52445                } else if (number === 2) {
52446                    result += withoutSuffix || isFuture ? 'uri' : 'urama';
52447                } else if (number < 5) {
52448                    result += withoutSuffix || isFuture ? 'ure' : 'urami';
52449                } else {
52450                    result += withoutSuffix || isFuture ? 'ur' : 'urami';
52451                }
52452                return result;
52453            case 'd':
52454                return withoutSuffix || isFuture ? 'en dan' : 'enim dnem';
52455            case 'dd':
52456                if (number === 1) {
52457                    result += withoutSuffix || isFuture ? 'dan' : 'dnem';
52458                } else if (number === 2) {
52459                    result += withoutSuffix || isFuture ? 'dni' : 'dnevoma';
52460                } else {
52461                    result += withoutSuffix || isFuture ? 'dni' : 'dnevi';
52462                }
52463                return result;
52464            case 'M':
52465                return withoutSuffix || isFuture ? 'en mesec' : 'enim mesecem';
52466            case 'MM':
52467                if (number === 1) {
52468                    result += withoutSuffix || isFuture ? 'mesec' : 'mesecem';
52469                } else if (number === 2) {
52470                    result += withoutSuffix || isFuture ? 'meseca' : 'mesecema';
52471                } else if (number < 5) {
52472                    result += withoutSuffix || isFuture ? 'mesece' : 'meseci';
52473                } else {
52474                    result += withoutSuffix || isFuture ? 'mesecev' : 'meseci';
52475                }
52476                return result;
52477            case 'y':
52478                return withoutSuffix || isFuture ? 'eno leto' : 'enim letom';
52479            case 'yy':
52480                if (number === 1) {
52481                    result += withoutSuffix || isFuture ? 'leto' : 'letom';
52482                } else if (number === 2) {
52483                    result += withoutSuffix || isFuture ? 'leti' : 'letoma';
52484                } else if (number < 5) {
52485                    result += withoutSuffix || isFuture ? 'leta' : 'leti';
52486                } else {
52487                    result += withoutSuffix || isFuture ? 'let' : 'leti';
52488                }
52489                return result;
52490        }
52491    }
52492
52493    var sl = moment.defineLocale('sl', {
52494        months: 'januar_februar_marec_april_maj_junij_julij_avgust_september_oktober_november_december'.split(
52495            '_'
52496        ),
52497        monthsShort:
52498            'jan._feb._mar._apr._maj._jun._jul._avg._sep._okt._nov._dec.'.split(
52499                '_'
52500            ),
52501        monthsParseExact: true,
52502        weekdays: 'nedelja_ponedeljek_torek_sreda_četrtek_petek_sobota'.split('_'),
52503        weekdaysShort: 'ned._pon._tor._sre._čet._pet._sob.'.split('_'),
52504        weekdaysMin: 'ne_po_to_sr_če_pe_so'.split('_'),
52505        weekdaysParseExact: true,
52506        longDateFormat: {
52507            LT: 'H:mm',
52508            LTS: 'H:mm:ss',
52509            L: 'DD. MM. YYYY',
52510            LL: 'D. MMMM YYYY',
52511            LLL: 'D. MMMM YYYY H:mm',
52512            LLLL: 'dddd, D. MMMM YYYY H:mm',
52513        },
52514        calendar: {
52515            sameDay: '[danes ob] LT',
52516            nextDay: '[jutri ob] LT',
52517
52518            nextWeek: function () {
52519                switch (this.day()) {
52520                    case 0:
52521                        return '[v] [nedeljo] [ob] LT';
52522                    case 3:
52523                        return '[v] [sredo] [ob] LT';
52524                    case 6:
52525                        return '[v] [soboto] [ob] LT';
52526                    case 1:
52527                    case 2:
52528                    case 4:
52529                    case 5:
52530                        return '[v] dddd [ob] LT';
52531                }
52532            },
52533            lastDay: '[včeraj ob] LT',
52534            lastWeek: function () {
52535                switch (this.day()) {
52536                    case 0:
52537                        return '[prejšnjo] [nedeljo] [ob] LT';
52538                    case 3:
52539                        return '[prejšnjo] [sredo] [ob] LT';
52540                    case 6:
52541                        return '[prejšnjo] [soboto] [ob] LT';
52542                    case 1:
52543                    case 2:
52544                    case 4:
52545                    case 5:
52546                        return '[prejšnji] dddd [ob] LT';
52547                }
52548            },
52549            sameElse: 'L',
52550        },
52551        relativeTime: {
52552            future: 'čez %s',
52553            past: 'pred %s',
52554            s: processRelativeTime,
52555            ss: processRelativeTime,
52556            m: processRelativeTime,
52557            mm: processRelativeTime,
52558            h: processRelativeTime,
52559            hh: processRelativeTime,
52560            d: processRelativeTime,
52561            dd: processRelativeTime,
52562            M: processRelativeTime,
52563            MM: processRelativeTime,
52564            y: processRelativeTime,
52565            yy: processRelativeTime,
52566        },
52567        dayOfMonthOrdinalParse: /\d{1,2}\./,
52568        ordinal: '%d.',
52569        week: {
52570            dow: 1, // Monday is the first day of the week.
52571            doy: 7, // The week that contains Jan 7th is the first week of the year.
52572        },
52573    });
52574
52575    return sl;
52576
52577})));
52578
52579
52580/***/ }),
52581
vendor: 2,709 bytes, lines 52582-52666
52582/***/ "./node_modules/moment/locale/sq.js":
52583/*!******************************************!*\
52584  !*** ./node_modules/moment/locale/sq.js ***!
52585  \******************************************/
52586/*! no static exports found */
52587/***/ (function(module, exports, __webpack_require__) {
52588
52589//! moment.js locale configuration
52590//! locale : Albanian [sq]
52591//! author : Flakërim Ismani : https://github.com/flakerimi
52592//! author : Menelion Elensúle : https://github.com/Oire
52593//! author : Oerd Cukalla : https://github.com/oerd
52594
52595;(function (global, factory) {
52596    true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/moment/moment.js")) :
52597   undefined
52598}(this, (function (moment) { 'use strict';
52599
52600    //! moment.js locale configuration
52601
52602    var sq = moment.defineLocale('sq', {
52603        months: 'Janar_Shkurt_Mars_Prill_Maj_Qershor_Korrik_Gusht_Shtator_Tetor_Nëntor_Dhjetor'.split(
52604            '_'
52605        ),
52606        monthsShort: 'Jan_Shk_Mar_Pri_Maj_Qer_Kor_Gus_Sht_Tet_Nën_Dhj'.split('_'),
52607        weekdays: 'E Diel_E Hënë_E Martë_E Mërkurë_E Enjte_E Premte_E Shtunë'.split(
52608            '_'
52609        ),
52610        weekdaysShort: 'Die_Hën_Mar_Mër_Enj_Pre_Sht'.split('_'),
52611        weekdaysMin: 'D_H_Ma_Më_E_P_Sh'.split('_'),
52612        weekdaysParseExact: true,
52613        meridiemParse: /PD|MD/,
52614        isPM: function (input) {
52615            return input.charAt(0) === 'M';
52616        },
52617        meridiem: function (hours, minutes, isLower) {
52618            return hours < 12 ? 'PD' : 'MD';
52619        },
52620        longDateFormat: {
52621            LT: 'HH:mm',
52622            LTS: 'HH:mm:ss',
52623            L: 'DD/MM/YYYY',
52624            LL: 'D MMMM YYYY',
52625            LLL: 'D MMMM YYYY HH:mm',
52626            LLLL: 'dddd, D MMMM YYYY HH:mm',
52627        },
52628        calendar: {
52629            sameDay: '[Sot në] LT',
52630            nextDay: '[Nesër në] LT',
52631            nextWeek: 'dddd [në] LT',
52632            lastDay: '[Dje në] LT',
52633            lastWeek: 'dddd [e kaluar në] LT',
52634            sameElse: 'L',
52635        },
52636        relativeTime: {
52637            future: 'në %s',
52638            past: '%s më parë',
52639            s: 'disa sekonda',
52640            ss: '%d sekonda',
52641            m: 'një minutë',
52642            mm: '%d minuta',
52643            h: 'një orë',
52644            hh: '%d orë',
52645            d: 'një ditë',
52646            dd: '%d ditë',
52647            M: 'një muaj',
52648            MM: '%d muaj',
52649            y: 'një vit',
52650            yy: '%d vite',
52651        },
52652        dayOfMonthOrdinalParse: /\d{1,2}\./,
52653        ordinal: '%d.',
52654        week: {
52655            dow: 1, // Monday is the first day of the week.
52656            doy: 4, // The week that contains Jan 4th is the first week of the year.
52657        },
52658    });
52659
52660    return sq;
52661
52662})));
52663
52664
52665/***/ }),
52666
vendor: 5,748 bytes, lines 52667-52813
52667/***/ "./node_modules/moment/locale/sr-cyrl.js":
52668/*!***********************************************!*\
52669  !*** ./node_modules/moment/locale/sr-cyrl.js ***!
52670  \***********************************************/
52671/*! no static exports found */
52672/***/ (function(module, exports, __webpack_require__) {
52673
52674//! moment.js locale configuration
52675//! locale : Serbian Cyrillic [sr-cyrl]
52676//! author : Milan Janačković<[email protected]> : https://github.com/milan-j
52677//! author : Stefan Crnjaković <[email protected]> : https://github.com/crnjakovic
52678
52679;(function (global, factory) {
52680    true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/moment/moment.js")) :
52681   undefined
52682}(this, (function (moment) { 'use strict';
52683
52684    //! moment.js locale configuration
52685
52686    var translator = {
52687        words: {
52688            //Different grammatical cases
52689            ss: ['секунда', 'секунде', 'секунди'],
52690            m: ['један минут', 'једног минута'],
52691            mm: ['минут', 'минута', 'минута'],
52692            h: ['један сат', 'једног сата'],
52693            hh: ['сат', 'сата', 'сати'],
52694            d: ['један дан', 'једног дана'],
52695            dd: ['дан', 'дана', 'дана'],
52696            M: ['један месец', 'једног месеца'],
52697            MM: ['месец', 'месеца', 'месеци'],
52698            y: ['једну годину', 'једне године'],
52699            yy: ['годину', 'године', 'година'],
52700        },
52701        correctGrammaticalCase: function (number, wordKey) {
52702            if (
52703                number % 10 >= 1 &&
52704                number % 10 <= 4 &&
52705                (number % 100 < 10 || number % 100 >= 20)
52706            ) {
52707                return number % 10 === 1 ? wordKey[0] : wordKey[1];
52708            }
52709            return wordKey[2];
52710        },
52711        translate: function (number, withoutSuffix, key, isFuture) {
52712            var wordKey = translator.words[key],
52713                word;
52714
52715            if (key.length === 1) {
52716                // Nominativ
52717                if (key === 'y' && withoutSuffix) return 'једна година';
52718                return isFuture || withoutSuffix ? wordKey[0] : wordKey[1];
52719            }
52720
52721            word = translator.correctGrammaticalCase(number, wordKey);
52722            // Nominativ
52723            if (key === 'yy' && withoutSuffix && word === 'годину') {
52724                return number + ' година';
52725            }
52726
52727            return number + ' ' + word;
52728        },
52729    };
52730
52731    var srCyrl = moment.defineLocale('sr-cyrl', {
52732        months: 'јануар_фебруар_март_април_мај_јун_јул_август_септембар_октобар_новембар_децембар'.split(
52733            '_'
52734        ),
52735        monthsShort:
52736            'јан._феб._мар._апр._мај_јун_јул_авг._сеп._окт._нов._дец.'.split('_'),
52737        monthsParseExact: true,
52738        weekdays: 'недеља_понедељак_уторак_среда_четвртак_петак_субота'.split('_'),
52739        weekdaysShort: 'нед._пон._уто._сре._чет._пет._суб.'.split('_'),
52740        weekdaysMin: 'не_по_ут_ср_че_пе_су'.split('_'),
52741        weekdaysParseExact: true,
52742        longDateFormat: {
52743            LT: 'H:mm',
52744            LTS: 'H:mm:ss',
52745            L: 'D. M. YYYY.',
52746            LL: 'D. MMMM YYYY.',
52747            LLL: 'D. MMMM YYYY. H:mm',
52748            LLLL: 'dddd, D. MMMM YYYY. H:mm',
52749        },
52750        calendar: {
52751            sameDay: '[данас у] LT',
52752            nextDay: '[сутра у] LT',
52753            nextWeek: function () {
52754                switch (this.day()) {
52755                    case 0:
52756                        return '[у] [недељу] [у] LT';
52757                    case 3:
52758                        return '[у] [среду] [у] LT';
52759                    case 6:
52760                        return '[у] [суботу] [у] LT';
52761                    case 1:
52762                    case 2:
52763                    case 4:
52764                    case 5:
52765                        return '[у] dddd [у] LT';
52766                }
52767            },
52768            lastDay: '[јуче у] LT',
52769            lastWeek: function () {
52770                var lastWeekDays = [
52771                    '[прошле] [недеље] [у] LT',
52772                    '[прошлог] [понедељка] [у] LT',
52773                    '[прошлог] [уторка] [у] LT',
52774                    '[прошле] [среде] [у] LT',
52775                    '[прошлог] [четвртка] [у] LT',
52776                    '[прошлог] [петка] [у] LT',
52777                    '[прошле] [суботе] [у] LT',
52778                ];
52779                return lastWeekDays[this.day()];
52780            },
52781            sameElse: 'L',
52782        },
52783        relativeTime: {
52784            future: 'за %s',
52785            past: 'пре %s',
52786            s: 'неколико секунди',
52787            ss: translator.translate,
52788            m: translator.translate,
52789            mm: translator.translate,
52790            h: translator.translate,
52791            hh: translator.translate,
52792            d: translator.translate,
52793            dd: translator.translate,
52794            M: translator.translate,
52795            MM: translator.translate,
52796            y: translator.translate,
52797            yy: translator.translate,
52798        },
52799        dayOfMonthOrdinalParse: /\d{1,2}\./,
52800        ordinal: '%d.',
52801        week: {
52802            dow: 1, // Monday is the first day of the week.
52803            doy: 7, // The week that contains Jan 1st is the first week of the year.
52804        },
52805    });
52806
52807    return srCyrl;
52808
52809})));
52810
52811
52812/***/ }),
52813
vendor: 5,175 bytes, lines 52814-52962
52814/***/ "./node_modules/moment/locale/sr.js":
52815/*!******************************************!*\
52816  !*** ./node_modules/moment/locale/sr.js ***!
52817  \******************************************/
52818/*! no static exports found */
52819/***/ (function(module, exports, __webpack_require__) {
52820
52821//! moment.js locale configuration
52822//! locale : Serbian [sr]
52823//! author : Milan Janačković<[email protected]> : https://github.com/milan-j
52824//! author : Stefan Crnjaković <[email protected]> : https://github.com/crnjakovic
52825
52826;(function (global, factory) {
52827    true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/moment/moment.js")) :
52828   undefined
52829}(this, (function (moment) { 'use strict';
52830
52831    //! moment.js locale configuration
52832
52833    var translator = {
52834        words: {
52835            //Different grammatical cases
52836            ss: ['sekunda', 'sekunde', 'sekundi'],
52837            m: ['jedan minut', 'jednog minuta'],
52838            mm: ['minut', 'minuta', 'minuta'],
52839            h: ['jedan sat', 'jednog sata'],
52840            hh: ['sat', 'sata', 'sati'],
52841            d: ['jedan dan', 'jednog dana'],
52842            dd: ['dan', 'dana', 'dana'],
52843            M: ['jedan mesec', 'jednog meseca'],
52844            MM: ['mesec', 'meseca', 'meseci'],
52845            y: ['jednu godinu', 'jedne godine'],
52846            yy: ['godinu', 'godine', 'godina'],
52847        },
52848        correctGrammaticalCase: function (number, wordKey) {
52849            if (
52850                number % 10 >= 1 &&
52851                number % 10 <= 4 &&
52852                (number % 100 < 10 || number % 100 >= 20)
52853            ) {
52854                return number % 10 === 1 ? wordKey[0] : wordKey[1];
52855            }
52856            return wordKey[2];
52857        },
52858        translate: function (number, withoutSuffix, key, isFuture) {
52859            var wordKey = translator.words[key],
52860                word;
52861
52862            if (key.length === 1) {
52863                // Nominativ
52864                if (key === 'y' && withoutSuffix) return 'jedna godina';
52865                return isFuture || withoutSuffix ? wordKey[0] : wordKey[1];
52866            }
52867
52868            word = translator.correctGrammaticalCase(number, wordKey);
52869            // Nominativ
52870            if (key === 'yy' && withoutSuffix && word === 'godinu') {
52871                return number + ' godina';
52872            }
52873
52874            return number + ' ' + word;
52875        },
52876    };
52877
52878    var sr = moment.defineLocale('sr', {
52879        months: 'januar_februar_mart_april_maj_jun_jul_avgust_septembar_oktobar_novembar_decembar'.split(
52880            '_'
52881        ),
52882        monthsShort:
52883            'jan._feb._mar._apr._maj_jun_jul_avg._sep._okt._nov._dec.'.split('_'),
52884        monthsParseExact: true,
52885        weekdays: 'nedelja_ponedeljak_utorak_sreda_četvrtak_petak_subota'.split(
52886            '_'
52887        ),
52888        weekdaysShort: 'ned._pon._uto._sre._čet._pet._sub.'.split('_'),
52889        weekdaysMin: 'ne_po_ut_sr_če_pe_su'.split('_'),
52890        weekdaysParseExact: true,
52891        longDateFormat: {
52892            LT: 'H:mm',
52893            LTS: 'H:mm:ss',
52894            L: 'D. M. YYYY.',
52895            LL: 'D. MMMM YYYY.',
52896            LLL: 'D. MMMM YYYY. H:mm',
52897            LLLL: 'dddd, D. MMMM YYYY. H:mm',
52898        },
52899        calendar: {
52900            sameDay: '[danas u] LT',
52901            nextDay: '[sutra u] LT',
52902            nextWeek: function () {
52903                switch (this.day()) {
52904                    case 0:
52905                        return '[u] [nedelju] [u] LT';
52906                    case 3:
52907                        return '[u] [sredu] [u] LT';
52908                    case 6:
52909                        return '[u] [subotu] [u] LT';
52910                    case 1:
52911                    case 2:
52912                    case 4:
52913                    case 5:
52914                        return '[u] dddd [u] LT';
52915                }
52916            },
52917            lastDay: '[juče u] LT',
52918            lastWeek: function () {
52919                var lastWeekDays = [
52920                    '[prošle] [nedelje] [u] LT',
52921                    '[prošlog] [ponedeljka] [u] LT',
52922                    '[prošlog] [utorka] [u] LT',
52923                    '[prošle] [srede] [u] LT',
52924                    '[prošlog] [četvrtka] [u] LT',
52925                    '[prošlog] [petka] [u] LT',
52926                    '[prošle] [subote] [u] LT',
52927                ];
52928                return lastWeekDays[this.day()];
52929            },
52930            sameElse: 'L',
52931        },
52932        relativeTime: {
52933            future: 'za %s',
52934            past: 'pre %s',
52935            s: 'nekoliko sekundi',
52936            ss: translator.translate,
52937            m: translator.translate,
52938            mm: translator.translate,
52939            h: translator.translate,
52940            hh: translator.translate,
52941            d: translator.translate,
52942            dd: translator.translate,
52943            M: translator.translate,
52944            MM: translator.translate,
52945            y: translator.translate,
52946            yy: translator.translate,
52947        },
52948        dayOfMonthOrdinalParse: /\d{1,2}\./,
52949        ordinal: '%d.',
52950        week: {
52951            dow: 1, // Monday is the first day of the week.
52952            doy: 7, // The week that contains Jan 7th is the first week of the year.
52953        },
52954    });
52955
52956    return sr;
52957
52958})));
52959
52960
52961/***/ }),
52962
vendor: 3,378 bytes, lines 52963-53066
52963/***/ "./node_modules/moment/locale/ss.js":
52964/*!******************************************!*\
52965  !*** ./node_modules/moment/locale/ss.js ***!
52966  \******************************************/
52967/*! no static exports found */
52968/***/ (function(module, exports, __webpack_require__) {
52969
52970//! moment.js locale configuration
52971//! locale : siSwati [ss]
52972//! author : Nicolai Davies<[email protected]> : https://github.com/nicolaidavies
52973
52974;(function (global, factory) {
52975    true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/moment/moment.js")) :
52976   undefined
52977}(this, (function (moment) { 'use strict';
52978
52979    //! moment.js locale configuration
52980
52981    var ss = moment.defineLocale('ss', {
52982        months: "Bhimbidvwane_Indlovana_Indlov'lenkhulu_Mabasa_Inkhwekhweti_Inhlaba_Kholwane_Ingci_Inyoni_Imphala_Lweti_Ingongoni".split(
52983            '_'
52984        ),
52985        monthsShort: 'Bhi_Ina_Inu_Mab_Ink_Inh_Kho_Igc_Iny_Imp_Lwe_Igo'.split('_'),
52986        weekdays:
52987            'Lisontfo_Umsombuluko_Lesibili_Lesitsatfu_Lesine_Lesihlanu_Umgcibelo'.split(
52988                '_'
52989            ),
52990        weekdaysShort: 'Lis_Umb_Lsb_Les_Lsi_Lsh_Umg'.split('_'),
52991        weekdaysMin: 'Li_Us_Lb_Lt_Ls_Lh_Ug'.split('_'),
52992        weekdaysParseExact: true,
52993        longDateFormat: {
52994            LT: 'h:mm A',
52995            LTS: 'h:mm:ss A',
52996            L: 'DD/MM/YYYY',
52997            LL: 'D MMMM YYYY',
52998            LLL: 'D MMMM YYYY h:mm A',
52999            LLLL: 'dddd, D MMMM YYYY h:mm A',
53000        },
53001        calendar: {
53002            sameDay: '[Namuhla nga] LT',
53003            nextDay: '[Kusasa nga] LT',
53004            nextWeek: 'dddd [nga] LT',
53005            lastDay: '[Itolo nga] LT',
53006            lastWeek: 'dddd [leliphelile] [nga] LT',
53007            sameElse: 'L',
53008        },
53009        relativeTime: {
53010            future: 'nga %s',
53011            past: 'wenteka nga %s',
53012            s: 'emizuzwana lomcane',
53013            ss: '%d mzuzwana',
53014            m: 'umzuzu',
53015            mm: '%d emizuzu',
53016            h: 'lihora',
53017            hh: '%d emahora',
53018            d: 'lilanga',
53019            dd: '%d emalanga',
53020            M: 'inyanga',
53021            MM: '%d tinyanga',
53022            y: 'umnyaka',
53023            yy: '%d iminyaka',
53024        },
53025        meridiemParse: /ekuseni|emini|entsambama|ebusuku/,
53026        meridiem: function (hours, minutes, isLower) {
53027            if (hours < 11) {
53028                return 'ekuseni';
53029            } else if (hours < 15) {
53030                return 'emini';
53031            } else if (hours < 19) {
53032                return 'entsambama';
53033            } else {
53034                return 'ebusuku';
53035            }
53036        },
53037        meridiemHour: function (hour, meridiem) {
53038            if (hour === 12) {
53039                hour = 0;
53040            }
53041            if (meridiem === 'ekuseni') {
53042                return hour;
53043            } else if (meridiem === 'emini') {
53044                return hour >= 11 ? hour : hour + 12;
53045            } else if (meridiem === 'entsambama' || meridiem === 'ebusuku') {
53046                if (hour === 0) {
53047                    return 0;
53048                }
53049                return hour + 12;
53050            }
53051        },
53052        dayOfMonthOrdinalParse: /\d{1,2}/,
53053        ordinal: '%d',
53054        week: {
53055            dow: 1, // Monday is the first day of the week.
53056            doy: 4, // The week that contains Jan 4th is the first week of the year.
53057        },
53058    });
53059
53060    return ss;
53061
53062})));
53063
53064
53065/***/ }),
53066
vendor: 2,832 bytes, lines 53067-53154
53067/***/ "./node_modules/moment/locale/sv.js":
53068/*!******************************************!*\
53069  !*** ./node_modules/moment/locale/sv.js ***!
53070  \******************************************/
53071/*! no static exports found */
53072/***/ (function(module, exports, __webpack_require__) {
53073
53074//! moment.js locale configuration
53075//! locale : Swedish [sv]
53076//! author : Jens Alm : https://github.com/ulmus
53077
53078;(function (global, factory) {
53079    true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/moment/moment.js")) :
53080   undefined
53081}(this, (function (moment) { 'use strict';
53082
53083    //! moment.js locale configuration
53084
53085    var sv = moment.defineLocale('sv', {
53086        months: 'januari_februari_mars_april_maj_juni_juli_augusti_september_oktober_november_december'.split(
53087            '_'
53088        ),
53089        monthsShort: 'jan_feb_mar_apr_maj_jun_jul_aug_sep_okt_nov_dec'.split('_'),
53090        weekdays: 'söndag_måndag_tisdag_onsdag_torsdag_fredag_lördag'.split('_'),
53091        weekdaysShort: 'sön_mån_tis_ons_tor_fre_lör'.split('_'),
53092        weekdaysMin: 'sö_må_ti_on_to_fr_lö'.split('_'),
53093        longDateFormat: {
53094            LT: 'HH:mm',
53095            LTS: 'HH:mm:ss',
53096            L: 'YYYY-MM-DD',
53097            LL: 'D MMMM YYYY',
53098            LLL: 'D MMMM YYYY [kl.] HH:mm',
53099            LLLL: 'dddd D MMMM YYYY [kl.] HH:mm',
53100            lll: 'D MMM YYYY HH:mm',
53101            llll: 'ddd D MMM YYYY HH:mm',
53102        },
53103        calendar: {
53104            sameDay: '[Idag] LT',
53105            nextDay: '[Imorgon] LT',
53106            lastDay: '[Igår] LT',
53107            nextWeek: '[PÃ¥] dddd LT',
53108            lastWeek: '[I] dddd[s] LT',
53109            sameElse: 'L',
53110        },
53111        relativeTime: {
53112            future: 'om %s',
53113            past: 'för %s sedan',
53114            s: 'några sekunder',
53115            ss: '%d sekunder',
53116            m: 'en minut',
53117            mm: '%d minuter',
53118            h: 'en timme',
53119            hh: '%d timmar',
53120            d: 'en dag',
53121            dd: '%d dagar',
53122            M: 'en månad',
53123            MM: '%d månader',
53124            y: 'ett år',
53125            yy: '%d år',
53126        },
53127        dayOfMonthOrdinalParse: /\d{1,2}(\:e|\:a)/,
53128        ordinal: function (number) {
53129            var b = number % 10,
53130                output =
53131                    ~~((number % 100) / 10) === 1
53132                        ? ':e'
53133                        : b === 1
53134                          ? ':a'
53135                          : b === 2
53136                            ? ':a'
53137                            : b === 3
53138                              ? ':e'
53139                              : ':e';
53140            return number + output;
53141        },
53142        week: {
53143            dow: 1, // Monday is the first day of the week.
53144            doy: 4, // The week that contains Jan 4th is the first week of the year.
53145        },
53146    });
53147
53148    return sv;
53149
53150})));
53151
53152
53153/***/ }),
53154
vendor: 2,341 bytes, lines 53155-53229
53155/***/ "./node_modules/moment/locale/sw.js":
53156/*!******************************************!*\
53157  !*** ./node_modules/moment/locale/sw.js ***!
53158  \******************************************/
53159/*! no static exports found */
53160/***/ (function(module, exports, __webpack_require__) {
53161
53162//! moment.js locale configuration
53163//! locale : Swahili [sw]
53164//! author : Fahad Kassim : https://github.com/fadsel
53165
53166;(function (global, factory) {
53167    true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/moment/moment.js")) :
53168   undefined
53169}(this, (function (moment) { 'use strict';
53170
53171    //! moment.js locale configuration
53172
53173    var sw = moment.defineLocale('sw', {
53174        months: 'Januari_Februari_Machi_Aprili_Mei_Juni_Julai_Agosti_Septemba_Oktoba_Novemba_Desemba'.split(
53175            '_'
53176        ),
53177        monthsShort: 'Jan_Feb_Mac_Apr_Mei_Jun_Jul_Ago_Sep_Okt_Nov_Des'.split('_'),
53178        weekdays:
53179            'Jumapili_Jumatatu_Jumanne_Jumatano_Alhamisi_Ijumaa_Jumamosi'.split(
53180                '_'
53181            ),
53182        weekdaysShort: 'Jpl_Jtat_Jnne_Jtan_Alh_Ijm_Jmos'.split('_'),
53183        weekdaysMin: 'J2_J3_J4_J5_Al_Ij_J1'.split('_'),
53184        weekdaysParseExact: true,
53185        longDateFormat: {
53186            LT: 'hh:mm A',
53187            LTS: 'HH:mm:ss',
53188            L: 'DD.MM.YYYY',
53189            LL: 'D MMMM YYYY',
53190            LLL: 'D MMMM YYYY HH:mm',
53191            LLLL: 'dddd, D MMMM YYYY HH:mm',
53192        },
53193        calendar: {
53194            sameDay: '[leo saa] LT',
53195            nextDay: '[kesho saa] LT',
53196            nextWeek: '[wiki ijayo] dddd [saat] LT',
53197            lastDay: '[jana] LT',
53198            lastWeek: '[wiki iliyopita] dddd [saat] LT',
53199            sameElse: 'L',
53200        },
53201        relativeTime: {
53202            future: '%s baadaye',
53203            past: 'tokea %s',
53204            s: 'hivi punde',
53205            ss: 'sekunde %d',
53206            m: 'dakika moja',
53207            mm: 'dakika %d',
53208            h: 'saa limoja',
53209            hh: 'masaa %d',
53210            d: 'siku moja',
53211            dd: 'siku %d',
53212            M: 'mwezi mmoja',
53213            MM: 'miezi %d',
53214            y: 'mwaka mmoja',
53215            yy: 'miaka %d',
53216        },
53217        week: {
53218            dow: 1, // Monday is the first day of the week.
53219            doy: 7, // The week that contains Jan 7th is the first week of the year.
53220        },
53221    });
53222
53223    return sw;
53224
53225})));
53226
53227
53228/***/ }),
53229
vendor: 5,790 bytes, lines 53230-53380
53230/***/ "./node_modules/moment/locale/ta.js":
53231/*!******************************************!*\
53232  !*** ./node_modules/moment/locale/ta.js ***!
53233  \******************************************/
53234/*! no static exports found */
53235/***/ (function(module, exports, __webpack_require__) {
53236
53237//! moment.js locale configuration
53238//! locale : Tamil [ta]
53239//! author : Arjunkumar Krishnamoorthy : https://github.com/tk120404
53240
53241;(function (global, factory) {
53242    true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/moment/moment.js")) :
53243   undefined
53244}(this, (function (moment) { 'use strict';
53245
53246    //! moment.js locale configuration
53247
53248    var symbolMap = {
53249            1: '௧',
53250            2: '௨',
53251            3: '௩',
53252            4: '௪',
53253            5: '௫',
53254            6: '௬',
53255            7: '௭',
53256            8: '௮',
53257            9: '௯',
53258            0: '௦',
53259        },
53260        numberMap = {
53261            '௧': '1',
53262            '௨': '2',
53263            '௩': '3',
53264            '௪': '4',
53265            '௫': '5',
53266            '௬': '6',
53267            '௭': '7',
53268            '௮': '8',
53269            '௯': '9',
53270            '௦': '0',
53271        };
53272
53273    var ta = moment.defineLocale('ta', {
53274        months: 'ஜனவரி_பிப்ரவரி_மார்ச்_ஏப்ரல்_மே_ஜூன்_ஜூலை_ஆகஸ்ட்_செப்டெம்பர்_அக்டோபர்_நவம்பர்_டிசம்பர்'.split(
53275            '_'
53276        ),
53277        monthsShort:
53278            'ஜனவரி_பிப்ரவரி_மார்ச்_ஏப்ரல்_மே_ஜூன்_ஜூலை_ஆகஸ்ட்_செப்டெம்பர்_அக்டோபர்_நவம்பர்_டிசம்பர்'.split(
53279                '_'
53280            ),
53281        weekdays:
53282            'ஞாயிற்றுக்கிழமை_திங்கட்கிழமை_செவ்வாய்கிழமை_புதன்கிழமை_வியாழக்கிழமை_வெள்ளிக்கிழமை_சனிக்கிழமை'.split(
53283                '_'
53284            ),
53285        weekdaysShort: 'ஞாயிறு_திங்கள்_செவ்வாய்_புதன்_வியாழன்_வெள்ளி_சனி'.split(
53286            '_'
53287        ),
53288        weekdaysMin: 'ஞா_தி_செ_பு_வி_வெ_ச'.split('_'),
53289        longDateFormat: {
53290            LT: 'HH:mm',
53291            LTS: 'HH:mm:ss',
53292            L: 'DD/MM/YYYY',
53293            LL: 'D MMMM YYYY',
53294            LLL: 'D MMMM YYYY, HH:mm',
53295            LLLL: 'dddd, D MMMM YYYY, HH:mm',
53296        },
53297        calendar: {
53298            sameDay: '[இன்று] LT',
53299            nextDay: '[நாளை] LT',
53300            nextWeek: 'dddd, LT',
53301            lastDay: '[நேற்று] LT',
53302            lastWeek: '[கடந்த வாரம்] dddd, LT',
53303            sameElse: 'L',
53304        },
53305        relativeTime: {
53306            future: '%s இல்',
53307            past: '%s முன்',
53308            s: 'ஒரு சில விநாடிகள்',
53309            ss: '%d விநாடிகள்',
53310            m: 'ஒரு நிமிடம்',
53311            mm: '%d நிமிடங்கள்',
53312            h: 'ஒரு மணி நேரம்',
53313            hh: '%d மணி நேரம்',
53314            d: 'ஒரு நாள்',
53315            dd: '%d நாட்கள்',
53316            M: 'ஒரு மாதம்',
53317            MM: '%d மாதங்கள்',
53318            y: 'ஒரு வருடம்',
53319            yy: '%d ஆண்டுகள்',
53320        },
53321        dayOfMonthOrdinalParse: /\d{1,2}வது/,
53322        ordinal: function (number) {
53323            return number + 'வது';
53324        },
53325        preparse: function (string) {
53326            return string.replace(/[௧௨௩௪௫௬௭௮௯௦]/g, function (match) {
53327                return numberMap[match];
53328            });
53329        },
53330        postformat: function (string) {
53331            return string.replace(/\d/g, function (match) {
53332                return symbolMap[match];
53333            });
53334        },
53335        // refer http://ta.wikipedia.org/s/1er1
53336        meridiemParse: /யாமம்|வைகறை|காலை|நண்பகல்|எற்பாடு|மாலை/,
53337        meridiem: function (hour, minute, isLower) {
53338            if (hour < 2) {
53339                return ' யாமம்';
53340            } else if (hour < 6) {
53341                return ' வைகறை'; // வைகறை
53342            } else if (hour < 10) {
53343                return ' காலை'; // காலை
53344            } else if (hour < 14) {
53345                return ' நண்பகல்'; // நண்பகல்
53346            } else if (hour < 18) {
53347                return ' எற்பாடு'; // எற்பாடு
53348            } else if (hour < 22) {
53349                return ' மாலை'; // மாலை
53350            } else {
53351                return ' யாமம்';
53352            }
53353        },
53354        meridiemHour: function (hour, meridiem) {
53355            if (hour === 12) {
53356                hour = 0;
53357            }
53358            if (meridiem === 'யாமம்') {
53359                return hour < 2 ? hour : hour + 12;
53360            } else if (meridiem === 'வைகறை' || meridiem === 'காலை') {
53361                return hour;
53362            } else if (meridiem === 'நண்பகல்') {
53363                return hour >= 10 ? hour : hour + 12;
53364            } else {
53365                return hour + 12;
53366            }
53367        },
53368        week: {
53369            dow: 0, // Sunday is the first day of the week.
53370            doy: 6, // The week that contains Jan 6th is the first week of the year.
53371        },
53372    });
53373
53374    return ta;
53375
53376})));
53377
53378
53379/***/ }),
53380
vendor: 4,214 bytes, lines 53381-53488
53381/***/ "./node_modules/moment/locale/te.js":
53382/*!******************************************!*\
53383  !*** ./node_modules/moment/locale/te.js ***!
53384  \******************************************/
53385/*! no static exports found */
53386/***/ (function(module, exports, __webpack_require__) {
53387
53388//! moment.js locale configuration
53389//! locale : Telugu [te]
53390//! author : Krishna Chaitanya Thota : https://github.com/kcthota
53391
53392;(function (global, factory) {
53393    true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/moment/moment.js")) :
53394   undefined
53395}(this, (function (moment) { 'use strict';
53396
53397    //! moment.js locale configuration
53398
53399    var te = moment.defineLocale('te', {
53400        months: 'జనవరి_ఫిబ్రవరి_మార్చి_ఏప్రిల్_మే_జూన్_జులై_ఆగస్టు_సెప్టెంబర్_అక్టోబర్_నవంబర్_డిసెంబర్'.split(
53401            '_'
53402        ),
53403        monthsShort:
53404            'జన._ఫిబ్ర._మార్చి_ఏప్రి._మే_జూన్_జులై_ఆగ._సెప్._అక్టో._నవ._డిసె.'.split(
53405                '_'
53406            ),
53407        monthsParseExact: true,
53408        weekdays:
53409            'ఆదివారం_సోమవారం_మంగళవారం_బుధవారం_గురువారం_శుక్రవారం_శనివారం'.split(
53410                '_'
53411            ),
53412        weekdaysShort: 'ఆది_సోమ_మంగళ_బుధ_గురు_శుక్ర_శని'.split('_'),
53413        weekdaysMin: 'ఆ_సో_మం_బు_గు_శు_శ'.split('_'),
53414        longDateFormat: {
53415            LT: 'A h:mm',
53416            LTS: 'A h:mm:ss',
53417            L: 'DD/MM/YYYY',
53418            LL: 'D MMMM YYYY',
53419            LLL: 'D MMMM YYYY, A h:mm',
53420            LLLL: 'dddd, D MMMM YYYY, A h:mm',
53421        },
53422        calendar: {
53423            sameDay: '[నేడు] LT',
53424            nextDay: '[రేపు] LT',
53425            nextWeek: 'dddd, LT',
53426            lastDay: '[నిన్న] LT',
53427            lastWeek: '[గత] dddd, LT',
53428            sameElse: 'L',
53429        },
53430        relativeTime: {
53431            future: '%s లో',
53432            past: '%s క్రితం',
53433            s: 'కొన్ని క్షణాలు',
53434            ss: '%d సెకన్లు',
53435            m: 'ఒక నిమిషం',
53436            mm: '%d నిమిషాలు',
53437            h: 'ఒక గంట',
53438            hh: '%d గంటలు',
53439            d: 'ఒక రోజు',
53440            dd: '%d రోజులు',
53441            M: 'ఒక నెల',
53442            MM: '%d నెలలు',
53443            y: 'ఒక సంవత్సరం',
53444            yy: '%d సంవత్సరాలు',
53445        },
53446        dayOfMonthOrdinalParse: /\d{1,2}à°µ/,
53447        ordinal: '%dà°µ',
53448        meridiemParse: /రాత్రి|ఉదయం|మధ్యాహ్నం|సాయంత్రం/,
53449        meridiemHour: function (hour, meridiem) {
53450            if (hour === 12) {
53451                hour = 0;
53452            }
53453            if (meridiem === 'రాత్రి') {
53454                return hour < 4 ? hour : hour + 12;
53455            } else if (meridiem === 'ఉదయం') {
53456                return hour;
53457            } else if (meridiem === 'మధ్యాహ్నం') {
53458                return hour >= 10 ? hour : hour + 12;
53459            } else if (meridiem === 'సాయంత్రం') {
53460                return hour + 12;
53461            }
53462        },
53463        meridiem: function (hour, minute, isLower) {
53464            if (hour < 4) {
53465                return 'రాత్రి';
53466            } else if (hour < 10) {
53467                return 'ఉదయం';
53468            } else if (hour < 17) {
53469                return 'మధ్యాహ్నం';
53470            } else if (hour < 20) {
53471                return 'సాయంత్రం';
53472            } else {
53473                return 'రాత్రి';
53474            }
53475        },
53476        week: {
53477            dow: 0, // Sunday is the first day of the week.
53478            doy: 6, // The week that contains Jan 6th is the first week of the year.
53479        },
53480    });
53481
53482    return te;
53483
53484})));
53485
53486
53487/***/ }),
53488
vendor: 2,919 bytes, lines 53489-53576
53489/***/ "./node_modules/moment/locale/tet.js":
53490/*!*******************************************!*\
53491  !*** ./node_modules/moment/locale/tet.js ***!
53492  \*******************************************/
53493/*! no static exports found */
53494/***/ (function(module, exports, __webpack_require__) {
53495
53496//! moment.js locale configuration
53497//! locale : Tetun Dili (East Timor) [tet]
53498//! author : Joshua Brooks : https://github.com/joshbrooks
53499//! author : Onorio De J. Afonso : https://github.com/marobo
53500//! author : Sonia Simoes : https://github.com/soniasimoes
53501
53502;(function (global, factory) {
53503    true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/moment/moment.js")) :
53504   undefined
53505}(this, (function (moment) { 'use strict';
53506
53507    //! moment.js locale configuration
53508
53509    var tet = moment.defineLocale('tet', {
53510        months: 'Janeiru_Fevereiru_Marsu_Abril_Maiu_Juñu_Jullu_Agustu_Setembru_Outubru_Novembru_Dezembru'.split(
53511            '_'
53512        ),
53513        monthsShort: 'Jan_Fev_Mar_Abr_Mai_Jun_Jul_Ago_Set_Out_Nov_Dez'.split('_'),
53514        weekdays: 'Domingu_Segunda_Tersa_Kuarta_Kinta_Sesta_Sabadu'.split('_'),
53515        weekdaysShort: 'Dom_Seg_Ters_Kua_Kint_Sest_Sab'.split('_'),
53516        weekdaysMin: 'Do_Seg_Te_Ku_Ki_Ses_Sa'.split('_'),
53517        longDateFormat: {
53518            LT: 'HH:mm',
53519            LTS: 'HH:mm:ss',
53520            L: 'DD/MM/YYYY',
53521            LL: 'D MMMM YYYY',
53522            LLL: 'D MMMM YYYY HH:mm',
53523            LLLL: 'dddd, D MMMM YYYY HH:mm',
53524        },
53525        calendar: {
53526            sameDay: '[Ohin iha] LT',
53527            nextDay: '[Aban iha] LT',
53528            nextWeek: 'dddd [iha] LT',
53529            lastDay: '[Horiseik iha] LT',
53530            lastWeek: 'dddd [semana kotuk] [iha] LT',
53531            sameElse: 'L',
53532        },
53533        relativeTime: {
53534            future: 'iha %s',
53535            past: '%s liuba',
53536            s: 'segundu balun',
53537            ss: 'segundu %d',
53538            m: 'minutu ida',
53539            mm: 'minutu %d',
53540            h: 'oras ida',
53541            hh: 'oras %d',
53542            d: 'loron ida',
53543            dd: 'loron %d',
53544            M: 'fulan ida',
53545            MM: 'fulan %d',
53546            y: 'tinan ida',
53547            yy: 'tinan %d',
53548        },
53549        dayOfMonthOrdinalParse: /\d{1,2}(st|nd|rd|th)/,
53550        ordinal: function (number) {
53551            var b = number % 10,
53552                output =
53553                    ~~((number % 100) / 10) === 1
53554                        ? 'th'
53555                        : b === 1
53556                          ? 'st'
53557                          : b === 2
53558                            ? 'nd'
53559                            : b === 3
53560                              ? 'rd'
53561                              : 'th';
53562            return number + output;
53563        },
53564        week: {
53565            dow: 1, // Monday is the first day of the week.
53566            doy: 4, // The week that contains Jan 4th is the first week of the year.
53567        },
53568    });
53569
53570    return tet;
53571
53572})));
53573
53574
53575/***/ }),
53576
vendor: 4,538 bytes, lines 53577-53713
53577/***/ "./node_modules/moment/locale/tg.js":
53578/*!******************************************!*\
53579  !*** ./node_modules/moment/locale/tg.js ***!
53580  \******************************************/
53581/*! no static exports found */
53582/***/ (function(module, exports, __webpack_require__) {
53583
53584//! moment.js locale configuration
53585//! locale : Tajik [tg]
53586//! author : Orif N. Jr. : https://github.com/orif-jr
53587
53588;(function (global, factory) {
53589    true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/moment/moment.js")) :
53590   undefined
53591}(this, (function (moment) { 'use strict';
53592
53593    //! moment.js locale configuration
53594
53595    var suffixes = {
53596        0: '-ум',
53597        1: '-ум',
53598        2: '-юм',
53599        3: '-юм',
53600        4: '-ум',
53601        5: '-ум',
53602        6: '-ум',
53603        7: '-ум',
53604        8: '-ум',
53605        9: '-ум',
53606        10: '-ум',
53607        12: '-ум',
53608        13: '-ум',
53609        20: '-ум',
53610        30: '-юм',
53611        40: '-ум',
53612        50: '-ум',
53613        60: '-ум',
53614        70: '-ум',
53615        80: '-ум',
53616        90: '-ум',
53617        100: '-ум',
53618    };
53619
53620    var tg = moment.defineLocale('tg', {
53621        months: {
53622            format: 'январи_феврали_марти_апрели_майи_июни_июли_августи_сентябри_октябри_ноябри_декабри'.split(
53623                '_'
53624            ),
53625            standalone:
53626                'январ_феврал_март_апрел_май_июн_июл_август_сентябр_октябр_ноябр_декабр'.split(
53627                    '_'
53628                ),
53629        },
53630        monthsShort: 'янв_фев_мар_апр_май_июн_июл_авг_сен_окт_ноя_дек'.split('_'),
53631        weekdays: 'якшанбе_душанбе_сешанбе_чоршанбе_панҷшанбе_ҷумъа_шанбе'.split(
53632            '_'
53633        ),
53634        weekdaysShort: 'яшб_дшб_сшб_чшб_пшб_ҷум_шнб'.split('_'),
53635        weekdaysMin: 'яш_дш_сш_чш_пш_ҷм_шб'.split('_'),
53636        longDateFormat: {
53637            LT: 'HH:mm',
53638            LTS: 'HH:mm:ss',
53639            L: 'DD.MM.YYYY',
53640            LL: 'D MMMM YYYY',
53641            LLL: 'D MMMM YYYY HH:mm',
53642            LLLL: 'dddd, D MMMM YYYY HH:mm',
53643        },
53644        calendar: {
53645            sameDay: '[Имрӯз соати] LT',
53646            nextDay: '[Фардо соати] LT',
53647            lastDay: '[Дирӯз соати] LT',
53648            nextWeek: 'dddd[и] [ҳафтаи оянда соати] LT',
53649            lastWeek: 'dddd[и] [ҳафтаи гузашта соати] LT',
53650            sameElse: 'L',
53651        },
53652        relativeTime: {
53653            future: 'баъди %s',
53654            past: '%s пеш',
53655            s: 'якчанд сония',
53656            m: 'як дақиқа',
53657            mm: '%d дақиқа',
53658            h: 'як соат',
53659            hh: '%d соат',
53660            d: 'як рӯз',
53661            dd: '%d рӯз',
53662            M: 'як моҳ',
53663            MM: '%d моҳ',
53664            y: 'як сол',
53665            yy: '%d сол',
53666        },
53667        meridiemParse: /шаб|субҳ|рӯз|бегоҳ/,
53668        meridiemHour: function (hour, meridiem) {
53669            if (hour === 12) {
53670                hour = 0;
53671            }
53672            if (meridiem === 'шаб') {
53673                return hour < 4 ? hour : hour + 12;
53674            } else if (meridiem === 'субҳ') {
53675                return hour;
53676            } else if (meridiem === 'рӯз') {
53677                return hour >= 11 ? hour : hour + 12;
53678            } else if (meridiem === 'бегоҳ') {
53679                return hour + 12;
53680            }
53681        },
53682        meridiem: function (hour, minute, isLower) {
53683            if (hour < 4) {
53684                return 'шаб';
53685            } else if (hour < 11) {
53686                return 'субҳ';
53687            } else if (hour < 16) {
53688                return 'рӯз';
53689            } else if (hour < 19) {
53690                return 'бегоҳ';
53691            } else {
53692                return 'шаб';
53693            }
53694        },
53695        dayOfMonthOrdinalParse: /\d{1,2}-(ум|юм)/,
53696        ordinal: function (number) {
53697            var a = number % 10,
53698                b = number >= 100 ? 100 : null;
53699            return number + (suffixes[number] || suffixes[a] || suffixes[b]);
53700        },
53701        week: {
53702            dow: 1, // Monday is the first day of the week.
53703            doy: 7, // The week that contains Jan 1th is the first week of the year.
53704        },
53705    });
53706
53707    return tg;
53708
53709})));
53710
53711
53712/***/ }),
53713
vendor: 3,466 bytes, lines 53714-53798
53714/***/ "./node_modules/moment/locale/th.js":
53715/*!******************************************!*\
53716  !*** ./node_modules/moment/locale/th.js ***!
53717  \******************************************/
53718/*! no static exports found */
53719/***/ (function(module, exports, __webpack_require__) {
53720
53721//! moment.js locale configuration
53722//! locale : Thai [th]
53723//! author : Kridsada Thanabulpong : https://github.com/sirn
53724
53725;(function (global, factory) {
53726    true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/moment/moment.js")) :
53727   undefined
53728}(this, (function (moment) { 'use strict';
53729
53730    //! moment.js locale configuration
53731
53732    var th = moment.defineLocale('th', {
53733        months: 'มกราคม_กุมภาพันธ์_มีนาคม_เมษายน_พฤษภาคม_มิถุนายน_กรกฎาคม_สิงหาคม_กันยายน_ตุลาคม_พฤศจิกายน_ธันวาคม'.split(
53734            '_'
53735        ),
53736        monthsShort:
53737            'ม.ค._ก.พ._มี.ค._เม.ย._พ.ค._มิ.ย._ก.ค._ส.ค._ก.ย._ต.ค._พ.ย._ธ.ค.'.split(
53738                '_'
53739            ),
53740        monthsParseExact: true,
53741        weekdays: 'อาทิตย์_จันทร์_อังคาร_พุธ_พฤหัสบดี_ศุกร์_เสาร์'.split('_'),
53742        weekdaysShort: 'อาทิตย์_จันทร์_อังคาร_พุธ_พฤหัส_ศุกร์_เสาร์'.split('_'), // yes, three characters difference
53743        weekdaysMin: 'อา._จ._อ._พ._พฤ._ศ._ส.'.split('_'),
53744        weekdaysParseExact: true,
53745        longDateFormat: {
53746            LT: 'H:mm',
53747            LTS: 'H:mm:ss',
53748            L: 'DD/MM/YYYY',
53749            LL: 'D MMMM YYYY',
53750            LLL: 'D MMMM YYYY เวลา H:mm',
53751            LLLL: 'วันddddที่ D MMMM YYYY เวลา H:mm',
53752        },
53753        meridiemParse: /ก่อนเที่ยง|หลังเที่ยง/,
53754        isPM: function (input) {
53755            return input === 'หลังเที่ยง';
53756        },
53757        meridiem: function (hour, minute, isLower) {
53758            if (hour < 12) {
53759                return 'ก่อนเที่ยง';
53760            } else {
53761                return 'หลังเที่ยง';
53762            }
53763        },
53764        calendar: {
53765            sameDay: '[วันนี้ เวลา] LT',
53766            nextDay: '[พรุ่งนี้ เวลา] LT',
53767            nextWeek: 'dddd[หน้า เวลา] LT',
53768            lastDay: '[เมื่อวานนี้ เวลา] LT',
53769            lastWeek: '[วัน]dddd[ที่แล้ว เวลา] LT',
53770            sameElse: 'L',
53771        },
53772        relativeTime: {
53773            future: 'อีก %s',
53774            past: '%sที่แล้ว',
53775            s: 'ไม่กี่วินาที',
53776            ss: '%d วินาที',
53777            m: '1 นาที',
53778            mm: '%d นาที',
53779            h: '1 ชั่วโมง',
53780            hh: '%d ชั่วโมง',
53781            d: '1 วัน',
53782            dd: '%d วัน',
53783            w: '1 สัปดาห์',
53784            ww: '%d สัปดาห์',
53785            M: '1 เดือน',
53786            MM: '%d เดือน',
53787            y: '1 ปี',
53788            yy: '%d ปี',
53789        },
53790    });
53791
53792    return th;
53793
53794})));
53795
53796
53797/***/ }),
53798
vendor: 3,318 bytes, lines 53799-53909
53799/***/ "./node_modules/moment/locale/tk.js":
53800/*!******************************************!*\
53801  !*** ./node_modules/moment/locale/tk.js ***!
53802  \******************************************/
53803/*! no static exports found */
53804/***/ (function(module, exports, __webpack_require__) {
53805
53806//! moment.js locale configuration
53807//! locale : Turkmen [tk]
53808//! author : Atamyrat Abdyrahmanov : https://github.com/atamyratabdy
53809
53810;(function (global, factory) {
53811    true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/moment/moment.js")) :
53812   undefined
53813}(this, (function (moment) { 'use strict';
53814
53815    //! moment.js locale configuration
53816
53817    var suffixes = {
53818        1: "'inji",
53819        5: "'inji",
53820        8: "'inji",
53821        70: "'inji",
53822        80: "'inji",
53823        2: "'nji",
53824        7: "'nji",
53825        20: "'nji",
53826        50: "'nji",
53827        3: "'ünji",
53828        4: "'ünji",
53829        100: "'ünji",
53830        6: "'njy",
53831        9: "'unjy",
53832        10: "'unjy",
53833        30: "'unjy",
53834        60: "'ynjy",
53835        90: "'ynjy",
53836    };
53837
53838    var tk = moment.defineLocale('tk', {
53839        months: 'Ýanwar_Fewral_Mart_Aprel_Maý_Iýun_Iýul_Awgust_Sentýabr_Oktýabr_Noýabr_Dekabr'.split(
53840            '_'
53841        ),
53842        monthsShort: 'Ýan_Few_Mar_Apr_Maý_Iýn_Iýl_Awg_Sen_Okt_Noý_Dek'.split('_'),
53843        weekdays: 'Ýekşenbe_Duşenbe_Sişenbe_Çarşenbe_Penşenbe_Anna_Şenbe'.split(
53844            '_'
53845        ),
53846        weekdaysShort: 'Ýek_Duş_Siş_Çar_Pen_Ann_Şen'.split('_'),
53847        weekdaysMin: 'Ýk_Dş_Sş_Çr_Pn_An_Şn'.split('_'),
53848        longDateFormat: {
53849            LT: 'HH:mm',
53850            LTS: 'HH:mm:ss',
53851            L: 'DD.MM.YYYY',
53852            LL: 'D MMMM YYYY',
53853            LLL: 'D MMMM YYYY HH:mm',
53854            LLLL: 'dddd, D MMMM YYYY HH:mm',
53855        },
53856        calendar: {
53857            sameDay: '[bugün sagat] LT',
53858            nextDay: '[ertir sagat] LT',
53859            nextWeek: '[indiki] dddd [sagat] LT',
53860            lastDay: '[düýn] LT',
53861            lastWeek: '[geçen] dddd [sagat] LT',
53862            sameElse: 'L',
53863        },
53864        relativeTime: {
53865            future: '%s soň',
53866            past: '%s öň',
53867            s: 'birnäçe sekunt',
53868            m: 'bir minut',
53869            mm: '%d minut',
53870            h: 'bir sagat',
53871            hh: '%d sagat',
53872            d: 'bir gün',
53873            dd: '%d gün',
53874            M: 'bir aý',
53875            MM: '%d aý',
53876            y: 'bir ýyl',
53877            yy: '%d ýyl',
53878        },
53879        ordinal: function (number, period) {
53880            switch (period) {
53881                case 'd':
53882                case 'D':
53883                case 'Do':
53884                case 'DD':
53885                    return number;
53886                default:
53887                    if (number === 0) {
53888                        // special case for zero
53889                        return number + "'unjy";
53890                    }
53891                    var a = number % 10,
53892                        b = (number % 100) - a,
53893                        c = number >= 100 ? 100 : null;
53894                    return number + (suffixes[a] || suffixes[b] || suffixes[c]);
53895            }
53896        },
53897        week: {
53898            dow: 1, // Monday is the first day of the week.
53899            doy: 7, // The week that contains Jan 7th is the first week of the year.
53900        },
53901    });
53902
53903    return tk;
53904
53905})));
53906
53907
53908/***/ }),
53909
vendor: 2,449 bytes, lines 53910-53986
53910/***/ "./node_modules/moment/locale/tl-ph.js":
53911/*!*********************************************!*\
53912  !*** ./node_modules/moment/locale/tl-ph.js ***!
53913  \*********************************************/
53914/*! no static exports found */
53915/***/ (function(module, exports, __webpack_require__) {
53916
53917//! moment.js locale configuration
53918//! locale : Tagalog (Philippines) [tl-ph]
53919//! author : Dan Hagman : https://github.com/hagmandan
53920
53921;(function (global, factory) {
53922    true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/moment/moment.js")) :
53923   undefined
53924}(this, (function (moment) { 'use strict';
53925
53926    //! moment.js locale configuration
53927
53928    var tlPh = moment.defineLocale('tl-ph', {
53929        months: 'Enero_Pebrero_Marso_Abril_Mayo_Hunyo_Hulyo_Agosto_Setyembre_Oktubre_Nobyembre_Disyembre'.split(
53930            '_'
53931        ),
53932        monthsShort: 'Ene_Peb_Mar_Abr_May_Hun_Hul_Ago_Set_Okt_Nob_Dis'.split('_'),
53933        weekdays: 'Linggo_Lunes_Martes_Miyerkules_Huwebes_Biyernes_Sabado'.split(
53934            '_'
53935        ),
53936        weekdaysShort: 'Lin_Lun_Mar_Miy_Huw_Biy_Sab'.split('_'),
53937        weekdaysMin: 'Li_Lu_Ma_Mi_Hu_Bi_Sab'.split('_'),
53938        longDateFormat: {
53939            LT: 'HH:mm',
53940            LTS: 'HH:mm:ss',
53941            L: 'MM/D/YYYY',
53942            LL: 'MMMM D, YYYY',
53943            LLL: 'MMMM D, YYYY HH:mm',
53944            LLLL: 'dddd, MMMM DD, YYYY HH:mm',
53945        },
53946        calendar: {
53947            sameDay: 'LT [ngayong araw]',
53948            nextDay: '[Bukas ng] LT',
53949            nextWeek: 'LT [sa susunod na] dddd',
53950            lastDay: 'LT [kahapon]',
53951            lastWeek: 'LT [noong nakaraang] dddd',
53952            sameElse: 'L',
53953        },
53954        relativeTime: {
53955            future: 'sa loob ng %s',
53956            past: '%s ang nakalipas',
53957            s: 'ilang segundo',
53958            ss: '%d segundo',
53959            m: 'isang minuto',
53960            mm: '%d minuto',
53961            h: 'isang oras',
53962            hh: '%d oras',
53963            d: 'isang araw',
53964            dd: '%d araw',
53965            M: 'isang buwan',
53966            MM: '%d buwan',
53967            y: 'isang taon',
53968            yy: '%d taon',
53969        },
53970        dayOfMonthOrdinalParse: /\d{1,2}/,
53971        ordinal: function (number) {
53972            return number;
53973        },
53974        week: {
53975            dow: 1, // Monday is the first day of the week.
53976            doy: 4, // The week that contains Jan 4th is the first week of the year.
53977        },
53978    });
53979
53980    return tlPh;
53981
53982})));
53983
53984
53985/***/ }),
53986
vendor: 4,731 bytes, lines 53987-54130
53987/***/ "./node_modules/moment/locale/tlh.js":
53988/*!*******************************************!*\
53989  !*** ./node_modules/moment/locale/tlh.js ***!
53990  \*******************************************/
53991/*! no static exports found */
53992/***/ (function(module, exports, __webpack_require__) {
53993
53994//! moment.js locale configuration
53995//! locale : Klingon [tlh]
53996//! author : Dominika Kruk : https://github.com/amaranthrose
53997
53998;(function (global, factory) {
53999    true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/moment/moment.js")) :
54000   undefined
54001}(this, (function (moment) { 'use strict';
54002
54003    //! moment.js locale configuration
54004
54005    var numbersNouns = 'pagh_wa’_cha’_wej_loS_vagh_jav_Soch_chorgh_Hut'.split('_');
54006
54007    function translateFuture(output) {
54008        var time = output;
54009        time =
54010            output.indexOf('jaj') !== -1
54011                ? time.slice(0, -3) + 'leS'
54012                : output.indexOf('jar') !== -1
54013                  ? time.slice(0, -3) + 'waQ'
54014                  : output.indexOf('DIS') !== -1
54015                    ? time.slice(0, -3) + 'nem'
54016                    : time + ' pIq';
54017        return time;
54018    }
54019
54020    function translatePast(output) {
54021        var time = output;
54022        time =
54023            output.indexOf('jaj') !== -1
54024                ? time.slice(0, -3) + 'Hu’'
54025                : output.indexOf('jar') !== -1
54026                  ? time.slice(0, -3) + 'wen'
54027                  : output.indexOf('DIS') !== -1
54028                    ? time.slice(0, -3) + 'ben'
54029                    : time + ' ret';
54030        return time;
54031    }
54032
54033    function translate(number, withoutSuffix, string, isFuture) {
54034        var numberNoun = numberAsNoun(number);
54035        switch (string) {
54036            case 'ss':
54037                return numberNoun + ' lup';
54038            case 'mm':
54039                return numberNoun + ' tup';
54040            case 'hh':
54041                return numberNoun + ' rep';
54042            case 'dd':
54043                return numberNoun + ' jaj';
54044            case 'MM':
54045                return numberNoun + ' jar';
54046            case 'yy':
54047                return numberNoun + ' DIS';
54048        }
54049    }
54050
54051    function numberAsNoun(number) {
54052        var hundred = Math.floor((number % 1000) / 100),
54053            ten = Math.floor((number % 100) / 10),
54054            one = number % 10,
54055            word = '';
54056        if (hundred > 0) {
54057            word += numbersNouns[hundred] + 'vatlh';
54058        }
54059        if (ten > 0) {
54060            word += (word !== '' ? ' ' : '') + numbersNouns[ten] + 'maH';
54061        }
54062        if (one > 0) {
54063            word += (word !== '' ? ' ' : '') + numbersNouns[one];
54064        }
54065        return word === '' ? 'pagh' : word;
54066    }
54067
54068    var tlh = moment.defineLocale('tlh', {
54069        months: 'tera’ jar wa’_tera’ jar cha’_tera’ jar wej_tera’ jar loS_tera’ jar vagh_tera’ jar jav_tera’ jar Soch_tera’ jar chorgh_tera’ jar Hut_tera’ jar wa’maH_tera’ jar wa’maH wa’_tera’ jar wa’maH cha’'.split(
54070            '_'
54071        ),
54072        monthsShort:
54073            'jar wa’_jar cha’_jar wej_jar loS_jar vagh_jar jav_jar Soch_jar chorgh_jar Hut_jar wa’maH_jar wa’maH wa’_jar wa’maH cha’'.split(
54074                '_'
54075            ),
54076        monthsParseExact: true,
54077        weekdays: 'lojmItjaj_DaSjaj_povjaj_ghItlhjaj_loghjaj_buqjaj_ghInjaj'.split(
54078            '_'
54079        ),
54080        weekdaysShort:
54081            'lojmItjaj_DaSjaj_povjaj_ghItlhjaj_loghjaj_buqjaj_ghInjaj'.split('_'),
54082        weekdaysMin:
54083            'lojmItjaj_DaSjaj_povjaj_ghItlhjaj_loghjaj_buqjaj_ghInjaj'.split('_'),
54084        longDateFormat: {
54085            LT: 'HH:mm',
54086            LTS: 'HH:mm:ss',
54087            L: 'DD.MM.YYYY',
54088            LL: 'D MMMM YYYY',
54089            LLL: 'D MMMM YYYY HH:mm',
54090            LLLL: 'dddd, D MMMM YYYY HH:mm',
54091        },
54092        calendar: {
54093            sameDay: '[DaHjaj] LT',
54094            nextDay: '[wa’leS] LT',
54095            nextWeek: 'LLL',
54096            lastDay: '[wa’Hu’] LT',
54097            lastWeek: 'LLL',
54098            sameElse: 'L',
54099        },
54100        relativeTime: {
54101            future: translateFuture,
54102            past: translatePast,
54103            s: 'puS lup',
54104            ss: translate,
54105            m: 'wa’ tup',
54106            mm: translate,
54107            h: 'wa’ rep',
54108            hh: translate,
54109            d: 'wa’ jaj',
54110            dd: translate,
54111            M: 'wa’ jar',
54112            MM: translate,
54113            y: 'wa’ DIS',
54114            yy: translate,
54115        },
54116        dayOfMonthOrdinalParse: /\d{1,2}\./,
54117        ordinal: '%d.',
54118        week: {
54119            dow: 1, // Monday is the first day of the week.
54120            doy: 4, // The week that contains Jan 4th is the first week of the year.
54121        },
54122    });
54123
54124    return tlh;
54125
54126})));
54127
54128
54129/***/ }),
54130
vendor: 3,813 bytes, lines 54131-54256
54131/***/ "./node_modules/moment/locale/tr.js":
54132/*!******************************************!*\
54133  !*** ./node_modules/moment/locale/tr.js ***!
54134  \******************************************/
54135/*! no static exports found */
54136/***/ (function(module, exports, __webpack_require__) {
54137
54138//! moment.js locale configuration
54139//! locale : Turkish [tr]
54140//! authors : Erhan Gundogan : https://github.com/erhangundogan,
54141//!           Burak Yiğit Kaya: https://github.com/BYK
54142
54143;(function (global, factory) {
54144    true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/moment/moment.js")) :
54145   undefined
54146}(this, (function (moment) { 'use strict';
54147
54148    //! moment.js locale configuration
54149
54150    var suffixes = {
54151        1: "'inci",
54152        5: "'inci",
54153        8: "'inci",
54154        70: "'inci",
54155        80: "'inci",
54156        2: "'nci",
54157        7: "'nci",
54158        20: "'nci",
54159        50: "'nci",
54160        3: "'üncü",
54161        4: "'üncü",
54162        100: "'üncü",
54163        6: "'ncı",
54164        9: "'uncu",
54165        10: "'uncu",
54166        30: "'uncu",
54167        60: "'ıncı",
54168        90: "'ıncı",
54169    };
54170
54171    var tr = moment.defineLocale('tr', {
54172        months: 'Ocak_Şubat_Mart_Nisan_Mayıs_Haziran_Temmuz_Ağustos_Eylül_Ekim_Kasım_Aralık'.split(
54173            '_'
54174        ),
54175        monthsShort: 'Oca_Şub_Mar_Nis_May_Haz_Tem_Ağu_Eyl_Eki_Kas_Ara'.split('_'),
54176        weekdays: 'Pazar_Pazartesi_Salı_Çarşamba_Perşembe_Cuma_Cumartesi'.split(
54177            '_'
54178        ),
54179        weekdaysShort: 'Paz_Pzt_Sal_Çar_Per_Cum_Cmt'.split('_'),
54180        weekdaysMin: 'Pz_Pt_Sa_Ça_Pe_Cu_Ct'.split('_'),
54181        meridiem: function (hours, minutes, isLower) {
54182            if (hours < 12) {
54183                return isLower ? 'öö' : 'ÖÖ';
54184            } else {
54185                return isLower ? 'ös' : 'ÖS';
54186            }
54187        },
54188        meridiemParse: /öö|ÖÖ|ös|ÖS/,
54189        isPM: function (input) {
54190            return input === 'ös' || input === 'ÖS';
54191        },
54192        longDateFormat: {
54193            LT: 'HH:mm',
54194            LTS: 'HH:mm:ss',
54195            L: 'DD.MM.YYYY',
54196            LL: 'D MMMM YYYY',
54197            LLL: 'D MMMM YYYY HH:mm',
54198            LLLL: 'dddd, D MMMM YYYY HH:mm',
54199        },
54200        calendar: {
54201            sameDay: '[bugün saat] LT',
54202            nextDay: '[yarın saat] LT',
54203            nextWeek: '[gelecek] dddd [saat] LT',
54204            lastDay: '[dün] LT',
54205            lastWeek: '[geçen] dddd [saat] LT',
54206            sameElse: 'L',
54207        },
54208        relativeTime: {
54209            future: '%s sonra',
54210            past: '%s önce',
54211            s: 'birkaç saniye',
54212            ss: '%d saniye',
54213            m: 'bir dakika',
54214            mm: '%d dakika',
54215            h: 'bir saat',
54216            hh: '%d saat',
54217            d: 'bir gün',
54218            dd: '%d gün',
54219            w: 'bir hafta',
54220            ww: '%d hafta',
54221            M: 'bir ay',
54222            MM: '%d ay',
54223            y: 'bir yıl',
54224            yy: '%d yıl',
54225        },
54226        ordinal: function (number, period) {
54227            switch (period) {
54228                case 'd':
54229                case 'D':
54230                case 'Do':
54231                case 'DD':
54232                    return number;
54233                default:
54234                    if (number === 0) {
54235                        // special case for zero
54236                        return number + "'ıncı";
54237                    }
54238                    var a = number % 10,
54239                        b = (number % 100) - a,
54240                        c = number >= 100 ? 100 : null;
54241                    return number + (suffixes[a] || suffixes[b] || suffixes[c]);
54242            }
54243        },
54244        week: {
54245            dow: 1, // Monday is the first day of the week.
54246            doy: 7, // The week that contains Jan 7th is the first week of the year.
54247        },
54248    });
54249
54250    return tr;
54251
54252})));
54253
54254
54255/***/ }),
54256
vendor: 3,937 bytes, lines 54257-54365
54257/***/ "./node_modules/moment/locale/tzl.js":
54258/*!*******************************************!*\
54259  !*** ./node_modules/moment/locale/tzl.js ***!
54260  \*******************************************/
54261/*! no static exports found */
54262/***/ (function(module, exports, __webpack_require__) {
54263
54264//! moment.js locale configuration
54265//! locale : Talossan [tzl]
54266//! author : Robin van der Vliet : https://github.com/robin0van0der0v
54267//! author : Iustì Canun
54268
54269;(function (global, factory) {
54270    true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/moment/moment.js")) :
54271   undefined
54272}(this, (function (moment) { 'use strict';
54273
54274    //! moment.js locale configuration
54275
54276    // After the year there should be a slash and the amount of years since December 26, 1979 in Roman numerals.
54277    // This is currently too difficult (maybe even impossible) to add.
54278    var tzl = moment.defineLocale('tzl', {
54279        months: 'Januar_Fevraglh_Març_Avrïu_Mai_Gün_Julia_Guscht_Setemvar_Listopäts_Noemvar_Zecemvar'.split(
54280            '_'
54281        ),
54282        monthsShort: 'Jan_Fev_Mar_Avr_Mai_Gün_Jul_Gus_Set_Lis_Noe_Zec'.split('_'),
54283        weekdays: 'Súladi_Lúneçi_Maitzi_Márcuri_Xhúadi_Viénerçi_Sáturi'.split('_'),
54284        weekdaysShort: 'Súl_Lún_Mai_Már_Xhú_Vié_Sát'.split('_'),
54285        weekdaysMin: 'Sú_Lú_Ma_Má_Xh_Vi_Sá'.split('_'),
54286        longDateFormat: {
54287            LT: 'HH.mm',
54288            LTS: 'HH.mm.ss',
54289            L: 'DD.MM.YYYY',
54290            LL: 'D. MMMM [dallas] YYYY',
54291            LLL: 'D. MMMM [dallas] YYYY HH.mm',
54292            LLLL: 'dddd, [li] D. MMMM [dallas] YYYY HH.mm',
54293        },
54294        meridiemParse: /d\'o|d\'a/i,
54295        isPM: function (input) {
54296            return "d'o" === input.toLowerCase();
54297        },
54298        meridiem: function (hours, minutes, isLower) {
54299            if (hours > 11) {
54300                return isLower ? "d'o" : "D'O";
54301            } else {
54302                return isLower ? "d'a" : "D'A";
54303            }
54304        },
54305        calendar: {
54306            sameDay: '[oxhi à] LT',
54307            nextDay: '[demà à] LT',
54308            nextWeek: 'dddd [à] LT',
54309            lastDay: '[ieiri à] LT',
54310            lastWeek: '[sür el] dddd [lasteu à] LT',
54311            sameElse: 'L',
54312        },
54313        relativeTime: {
54314            future: 'osprei %s',
54315            past: 'ja%s',
54316            s: processRelativeTime,
54317            ss: processRelativeTime,
54318            m: processRelativeTime,
54319            mm: processRelativeTime,
54320            h: processRelativeTime,
54321            hh: processRelativeTime,
54322            d: processRelativeTime,
54323            dd: processRelativeTime,
54324            M: processRelativeTime,
54325            MM: processRelativeTime,
54326            y: processRelativeTime,
54327            yy: processRelativeTime,
54328        },
54329        dayOfMonthOrdinalParse: /\d{1,2}\./,
54330        ordinal: '%d.',
54331        week: {
54332            dow: 1, // Monday is the first day of the week.
54333            doy: 4, // The week that contains Jan 4th is the first week of the year.
54334        },
54335    });
54336
54337    function processRelativeTime(number, withoutSuffix, key, isFuture) {
54338        var format = {
54339            s: ['viensas secunds', "'iensas secunds"],
54340            ss: [number + ' secunds', '' + number + ' secunds'],
54341            m: ["'n míut", "'iens míut"],
54342            mm: [number + ' míuts', '' + number + ' míuts'],
54343            h: ["'n þora", "'iensa þora"],
54344            hh: [number + ' þoras', '' + number + ' þoras'],
54345            d: ["'n ziua", "'iensa ziua"],
54346            dd: [number + ' ziuas', '' + number + ' ziuas'],
54347            M: ["'n mes", "'iens mes"],
54348            MM: [number + ' mesen', '' + number + ' mesen'],
54349            y: ["'n ar", "'iens ar"],
54350            yy: [number + ' ars', '' + number + ' ars'],
54351        };
54352        return isFuture
54353            ? format[key][0]
54354            : withoutSuffix
54355              ? format[key][0]
54356              : format[key][1];
54357    }
54358
54359    return tzl;
54360
54361})));
54362
54363
54364/***/ }),
54365
vendor: 2,411 bytes, lines 54366-54439
54366/***/ "./node_modules/moment/locale/tzm-latn.js":
54367/*!************************************************!*\
54368  !*** ./node_modules/moment/locale/tzm-latn.js ***!
54369  \************************************************/
54370/*! no static exports found */
54371/***/ (function(module, exports, __webpack_require__) {
54372
54373//! moment.js locale configuration
54374//! locale : Central Atlas Tamazight Latin [tzm-latn]
54375//! author : Abdel Said : https://github.com/abdelsaid
54376
54377;(function (global, factory) {
54378    true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/moment/moment.js")) :
54379   undefined
54380}(this, (function (moment) { 'use strict';
54381
54382    //! moment.js locale configuration
54383
54384    var tzmLatn = moment.defineLocale('tzm-latn', {
54385        months: 'innayr_brˤayrˤ_marˤsˤ_ibrir_mayyw_ywnyw_ywlywz_ɣwšt_šwtanbir_ktˤwbrˤ_nwwanbir_dwjnbir'.split(
54386            '_'
54387        ),
54388        monthsShort:
54389            'innayr_brˤayrˤ_marˤsˤ_ibrir_mayyw_ywnyw_ywlywz_ɣwšt_šwtanbir_ktˤwbrˤ_nwwanbir_dwjnbir'.split(
54390                '_'
54391            ),
54392        weekdays: 'asamas_aynas_asinas_akras_akwas_asimwas_asiḍyas'.split('_'),
54393        weekdaysShort: 'asamas_aynas_asinas_akras_akwas_asimwas_asiḍyas'.split('_'),
54394        weekdaysMin: 'asamas_aynas_asinas_akras_akwas_asimwas_asiḍyas'.split('_'),
54395        longDateFormat: {
54396            LT: 'HH:mm',
54397            LTS: 'HH:mm:ss',
54398            L: 'DD/MM/YYYY',
54399            LL: 'D MMMM YYYY',
54400            LLL: 'D MMMM YYYY HH:mm',
54401            LLLL: 'dddd D MMMM YYYY HH:mm',
54402        },
54403        calendar: {
54404            sameDay: '[asdkh g] LT',
54405            nextDay: '[aska g] LT',
54406            nextWeek: 'dddd [g] LT',
54407            lastDay: '[assant g] LT',
54408            lastWeek: 'dddd [g] LT',
54409            sameElse: 'L',
54410        },
54411        relativeTime: {
54412            future: 'dadkh s yan %s',
54413            past: 'yan %s',
54414            s: 'imik',
54415            ss: '%d imik',
54416            m: 'minuḍ',
54417            mm: '%d minuḍ',
54418            h: 'saɛa',
54419            hh: '%d tassaɛin',
54420            d: 'ass',
54421            dd: '%d ossan',
54422            M: 'ayowr',
54423            MM: '%d iyyirn',
54424            y: 'asgas',
54425            yy: '%d isgasn',
54426        },
54427        week: {
54428            dow: 6, // Saturday is the first day of the week.
54429            doy: 12, // The week that contains Jan 12th is the first week of the year.
54430        },
54431    });
54432
54433    return tzmLatn;
54434
54435})));
54436
54437
54438/***/ }),
54439
vendor: 3,014 bytes, lines 54440-54513
54440/***/ "./node_modules/moment/locale/tzm.js":
54441/*!*******************************************!*\
54442  !*** ./node_modules/moment/locale/tzm.js ***!
54443  \*******************************************/
54444/*! no static exports found */
54445/***/ (function(module, exports, __webpack_require__) {
54446
54447//! moment.js locale configuration
54448//! locale : Central Atlas Tamazight [tzm]
54449//! author : Abdel Said : https://github.com/abdelsaid
54450
54451;(function (global, factory) {
54452    true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/moment/moment.js")) :
54453   undefined
54454}(this, (function (moment) { 'use strict';
54455
54456    //! moment.js locale configuration
54457
54458    var tzm = moment.defineLocale('tzm', {
54459        months: 'ⵉⵏⵏⴰⵢⵔ_ⴱⵕⴰⵢⵕ_ⵎⴰⵕⵚ_ⵉⴱⵔⵉⵔ_ⵎⴰⵢⵢⵓ_ⵢⵓⵏⵢⵓ_ⵢⵓⵍⵢⵓⵣ_ⵖⵓⵛⵜ_ⵛⵓⵜⴰⵏⴱⵉⵔ_ⴽⵟⵓⴱⵕ_ⵏⵓⵡⴰⵏⴱⵉⵔ_ⴷⵓⵊⵏⴱⵉⵔ'.split(
54460            '_'
54461        ),
54462        monthsShort:
54463            'ⵉⵏⵏⴰⵢⵔ_ⴱⵕⴰⵢⵕ_ⵎⴰⵕⵚ_ⵉⴱⵔⵉⵔ_ⵎⴰⵢⵢⵓ_ⵢⵓⵏⵢⵓ_ⵢⵓⵍⵢⵓⵣ_ⵖⵓⵛⵜ_ⵛⵓⵜⴰⵏⴱⵉⵔ_ⴽⵟⵓⴱⵕ_ⵏⵓⵡⴰⵏⴱⵉⵔ_ⴷⵓⵊⵏⴱⵉⵔ'.split(
54464                '_'
54465            ),
54466        weekdays: 'ⴰⵙⴰⵎⴰⵙ_ⴰⵢⵏⴰⵙ_ⴰⵙⵉⵏⴰⵙ_ⴰⴽⵔⴰⵙ_ⴰⴽⵡⴰⵙ_ⴰⵙⵉⵎⵡⴰⵙ_ⴰⵙⵉⴹⵢⴰⵙ'.split('_'),
54467        weekdaysShort: 'ⴰⵙⴰⵎⴰⵙ_ⴰⵢⵏⴰⵙ_ⴰⵙⵉⵏⴰⵙ_ⴰⴽⵔⴰⵙ_ⴰⴽⵡⴰⵙ_ⴰⵙⵉⵎⵡⴰⵙ_ⴰⵙⵉⴹⵢⴰⵙ'.split('_'),
54468        weekdaysMin: 'ⴰⵙⴰⵎⴰⵙ_ⴰⵢⵏⴰⵙ_ⴰⵙⵉⵏⴰⵙ_ⴰⴽⵔⴰⵙ_ⴰⴽⵡⴰⵙ_ⴰⵙⵉⵎⵡⴰⵙ_ⴰⵙⵉⴹⵢⴰⵙ'.split('_'),
54469        longDateFormat: {
54470            LT: 'HH:mm',
54471            LTS: 'HH:mm:ss',
54472            L: 'DD/MM/YYYY',
54473            LL: 'D MMMM YYYY',
54474            LLL: 'D MMMM YYYY HH:mm',
54475            LLLL: 'dddd D MMMM YYYY HH:mm',
54476        },
54477        calendar: {
54478            sameDay: '[ⴰⵙⴷⵅ ⴴ] LT',
54479            nextDay: '[ⴰⵙⴽⴰ ⴴ] LT',
54480            nextWeek: 'dddd [â´´] LT',
54481            lastDay: '[ⴰⵚⴰⵏⵜ ⴴ] LT',
54482            lastWeek: 'dddd [â´´] LT',
54483            sameElse: 'L',
54484        },
54485        relativeTime: {
54486            future: 'ⴷⴰⴷⵅ ⵙ ⵢⴰⵏ %s',
54487            past: 'ⵢⴰⵏ %s',
54488            s: 'ⵉⵎⵉⴽ',
54489            ss: '%d ⵉⵎⵉⴽ',
54490            m: 'ⵎⵉⵏⵓⴺ',
54491            mm: '%d ⵎⵉⵏⵓⴺ',
54492            h: 'ⵙⴰⵄⴰ',
54493            hh: '%d ⵜⴰⵙⵙⴰⵄⵉⵏ',
54494            d: 'ⴰⵙⵙ',
54495            dd: '%d oⵙⵙⴰⵏ',
54496            M: 'ⴰⵢoⵓⵔ',
54497            MM: '%d ⵉⵢⵢⵉⵔⵏ',
54498            y: 'ⴰⵙⴳⴰⵙ',
54499            yy: '%d ⵉⵙⴳⴰⵙⵏ',
54500        },
54501        week: {
54502            dow: 6, // Saturday is the first day of the week.
54503            doy: 12, // The week that contains Jan 12th is the first week of the year.
54504        },
54505    });
54506
54507    return tzm;
54508
54509})));
54510
54511
54512/***/ }),
54513
vendor: 4,806 bytes, lines 54514-54644
54514/***/ "./node_modules/moment/locale/ug-cn.js":
54515/*!*********************************************!*\
54516  !*** ./node_modules/moment/locale/ug-cn.js ***!
54517  \*********************************************/
54518/*! no static exports found */
54519/***/ (function(module, exports, __webpack_require__) {
54520
54521//! moment.js locale configuration
54522//! locale : Uyghur (China) [ug-cn]
54523//! author: boyaq : https://github.com/boyaq
54524
54525;(function (global, factory) {
54526    true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/moment/moment.js")) :
54527   undefined
54528}(this, (function (moment) { 'use strict';
54529
54530    //! moment.js locale configuration
54531
54532    var ugCn = moment.defineLocale('ug-cn', {
54533        months: 'يانۋار_فېۋرال_مارت_ئاپرېل_ماي_ئىيۇن_ئىيۇل_ئاۋغۇست_سېنتەبىر_ئۆكتەبىر_نويابىر_دېكابىر'.split(
54534            '_'
54535        ),
54536        monthsShort:
54537            'يانۋار_فېۋرال_مارت_ئاپرېل_ماي_ئىيۇن_ئىيۇل_ئاۋغۇست_سېنتەبىر_ئۆكتەبىر_نويابىر_دېكابىر'.split(
54538                '_'
54539            ),
54540        weekdays: 'يەكشەنبە_دۈشەنبە_سەيشەنبە_چارشەنبە_پەيشەنبە_جۈمە_شەنبە'.split(
54541            '_'
54542        ),
54543        weekdaysShort: 'يە_دۈ_سە_چا_پە_جۈ_شە'.split('_'),
54544        weekdaysMin: 'يە_دۈ_سە_چا_پە_جۈ_شە'.split('_'),
54545        longDateFormat: {
54546            LT: 'HH:mm',
54547            LTS: 'HH:mm:ss',
54548            L: 'YYYY-MM-DD',
54549            LL: 'YYYY-يىلىM-ئاينىڭD-كۈنى',
54550            LLL: 'YYYY-يىلىM-ئاينىڭD-كۈنى، HH:mm',
54551            LLLL: 'dddd، YYYY-يىلىM-ئاينىڭD-كۈنى، HH:mm',
54552        },
54553        meridiemParse: /يېرىم كېچە|سەھەر|چۈشتىن بۇرۇن|چۈش|چۈشتىن كېيىن|كەچ/,
54554        meridiemHour: function (hour, meridiem) {
54555            if (hour === 12) {
54556                hour = 0;
54557            }
54558            if (
54559                meridiem === 'يېرىم كېچە' ||
54560                meridiem === 'سەھەر' ||
54561                meridiem === 'چۈشتىن بۇرۇن'
54562            ) {
54563                return hour;
54564            } else if (meridiem === 'چۈشتىن كېيىن' || meridiem === 'كەچ') {
54565                return hour + 12;
54566            } else {
54567                return hour >= 11 ? hour : hour + 12;
54568            }
54569        },
54570        meridiem: function (hour, minute, isLower) {
54571            var hm = hour * 100 + minute;
54572            if (hm < 600) {
54573                return 'يېرىم كېچە';
54574            } else if (hm < 900) {
54575                return 'سەھەر';
54576            } else if (hm < 1130) {
54577                return 'چۈشتىن بۇرۇن';
54578            } else if (hm < 1230) {
54579                return 'چۈش';
54580            } else if (hm < 1800) {
54581                return 'چۈشتىن كېيىن';
54582            } else {
54583                return 'كەچ';
54584            }
54585        },
54586        calendar: {
54587            sameDay: '[بۈگۈن سائەت] LT',
54588            nextDay: '[ئەتە سائەت] LT',
54589            nextWeek: '[كېلەركى] dddd [سائەت] LT',
54590            lastDay: '[تۆنۈگۈن] LT',
54591            lastWeek: '[ئالدىنقى] dddd [سائەت] LT',
54592            sameElse: 'L',
54593        },
54594        relativeTime: {
54595            future: '%s كېيىن',
54596            past: '%s بۇرۇن',
54597            s: 'نەچچە سېكونت',
54598            ss: '%d سېكونت',
54599            m: 'بىر مىنۇت',
54600            mm: '%d مىنۇت',
54601            h: 'بىر سائەت',
54602            hh: '%d سائەت',
54603            d: 'بىر كۈن',
54604            dd: '%d كۈن',
54605            M: 'بىر ئاي',
54606            MM: '%d ئاي',
54607            y: 'بىر يىل',
54608            yy: '%d يىل',
54609        },
54610
54611        dayOfMonthOrdinalParse: /\d{1,2}(-كۈنى|-ئاي|-ھەپتە)/,
54612        ordinal: function (number, period) {
54613            switch (period) {
54614                case 'd':
54615                case 'D':
54616                case 'DDD':
54617                    return number + '-كۈنى';
54618                case 'w':
54619                case 'W':
54620                    return number + '-ھەپتە';
54621                default:
54622                    return number;
54623            }
54624        },
54625        preparse: function (string) {
54626            return string.replace(/،/g, ',');
54627        },
54628        postformat: function (string) {
54629            return string.replace(/,/g, '،');
54630        },
54631        week: {
54632            // GB/T 7408-1994《数据元和交换格式·信息交换·日期和时间表示法》与ISO 8601:1988等效
54633            dow: 1, // Monday is the first day of the week.
54634            doy: 7, // The week that contains Jan 1st is the first week of the year.
54635        },
54636    });
54637
54638    return ugCn;
54639
54640})));
54641
54642
54643/***/ }),
54644
vendor: 7,085 bytes, lines 54645-54831
54645/***/ "./node_modules/moment/locale/uk.js":
54646/*!******************************************!*\
54647  !*** ./node_modules/moment/locale/uk.js ***!
54648  \******************************************/
54649/*! no static exports found */
54650/***/ (function(module, exports, __webpack_require__) {
54651
54652//! moment.js locale configuration
54653//! locale : Ukrainian [uk]
54654//! author : zemlanin : https://github.com/zemlanin
54655//! Author : Menelion Elensúle : https://github.com/Oire
54656
54657;(function (global, factory) {
54658    true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/moment/moment.js")) :
54659   undefined
54660}(this, (function (moment) { 'use strict';
54661
54662    //! moment.js locale configuration
54663
54664    function plural(word, num) {
54665        var forms = word.split('_');
54666        return num % 10 === 1 && num % 100 !== 11
54667            ? forms[0]
54668            : num % 10 >= 2 && num % 10 <= 4 && (num % 100 < 10 || num % 100 >= 20)
54669              ? forms[1]
54670              : forms[2];
54671    }
54672    function relativeTimeWithPlural(number, withoutSuffix, key) {
54673        var format = {
54674            ss: withoutSuffix ? 'секунда_секунди_секунд' : 'секунду_секунди_секунд',
54675            mm: withoutSuffix ? 'хвилина_хвилини_хвилин' : 'хвилину_хвилини_хвилин',
54676            hh: withoutSuffix ? 'година_години_годин' : 'годину_години_годин',
54677            dd: 'день_дні_днів',
54678            MM: 'місяць_місяці_місяців',
54679            yy: 'рік_роки_років',
54680        };
54681        if (key === 'm') {
54682            return withoutSuffix ? 'хвилина' : 'хвилину';
54683        } else if (key === 'h') {
54684            return withoutSuffix ? 'година' : 'годину';
54685        } else {
54686            return number + ' ' + plural(format[key], +number);
54687        }
54688    }
54689    function weekdaysCaseReplace(m, format) {
54690        var weekdays = {
54691                nominative:
54692                    'неділя_понеділок_вівторок_середа_четвер_п’ятниця_субота'.split(
54693                        '_'
54694                    ),
54695                accusative:
54696                    'неділю_понеділок_вівторок_середу_четвер_п’ятницю_суботу'.split(
54697                        '_'
54698                    ),
54699                genitive:
54700                    'неділі_понеділка_вівторка_середи_четверга_п’ятниці_суботи'.split(
54701                        '_'
54702                    ),
54703            },
54704            nounCase;
54705
54706        if (m === true) {
54707            return weekdays['nominative']
54708                .slice(1, 7)
54709                .concat(weekdays['nominative'].slice(0, 1));
54710        }
54711        if (!m) {
54712            return weekdays['nominative'];
54713        }
54714
54715        nounCase = /(\[[ВвУу]\]) ?dddd/.test(format)
54716            ? 'accusative'
54717            : /\[?(?:минулої|наступної)? ?\] ?dddd/.test(format)
54718              ? 'genitive'
54719              : 'nominative';
54720        return weekdays[nounCase][m.day()];
54721    }
54722    function processHoursFunction(str) {
54723        return function () {
54724            return str + 'о' + (this.hours() === 11 ? 'б' : '') + '] LT';
54725        };
54726    }
54727
54728    var uk = moment.defineLocale('uk', {
54729        months: {
54730            format: 'січня_лютого_березня_квітня_травня_червня_липня_серпня_вересня_жовтня_листопада_грудня'.split(
54731                '_'
54732            ),
54733            standalone:
54734                'січень_лютий_березень_квітень_травень_червень_липень_серпень_вересень_жовтень_листопад_грудень'.split(
54735                    '_'
54736                ),
54737        },
54738        monthsShort: 'січ_лют_бер_квіт_трав_черв_лип_серп_вер_жовт_лист_груд'.split(
54739            '_'
54740        ),
54741        weekdays: weekdaysCaseReplace,
54742        weekdaysShort: 'нд_пн_вт_ср_чт_пт_сб'.split('_'),
54743        weekdaysMin: 'нд_пн_вт_ср_чт_пт_сб'.split('_'),
54744        longDateFormat: {
54745            LT: 'HH:mm',
54746            LTS: 'HH:mm:ss',
54747            L: 'DD.MM.YYYY',
54748            LL: 'D MMMM YYYY р.',
54749            LLL: 'D MMMM YYYY р., HH:mm',
54750            LLLL: 'dddd, D MMMM YYYY р., HH:mm',
54751        },
54752        calendar: {
54753            sameDay: processHoursFunction('[Сьогодні '),
54754            nextDay: processHoursFunction('[Завтра '),
54755            lastDay: processHoursFunction('[Вчора '),
54756            nextWeek: processHoursFunction('[У] dddd ['),
54757            lastWeek: function () {
54758                switch (this.day()) {
54759                    case 0:
54760                    case 3:
54761                    case 5:
54762                    case 6:
54763                        return processHoursFunction('[Минулої] dddd [').call(this);
54764                    case 1:
54765                    case 2:
54766                    case 4:
54767                        return processHoursFunction('[Минулого] dddd [').call(this);
54768                }
54769            },
54770            sameElse: 'L',
54771        },
54772        relativeTime: {
54773            future: 'за %s',
54774            past: '%s тому',
54775            s: 'декілька секунд',
54776            ss: relativeTimeWithPlural,
54777            m: relativeTimeWithPlural,
54778            mm: relativeTimeWithPlural,
54779            h: 'годину',
54780            hh: relativeTimeWithPlural,
54781            d: 'день',
54782            dd: relativeTimeWithPlural,
54783            M: 'місяць',
54784            MM: relativeTimeWithPlural,
54785            y: 'рік',
54786            yy: relativeTimeWithPlural,
54787        },
54788        // M. E.: those two are virtually unused but a user might want to implement them for his/her website for some reason
54789        meridiemParse: /ночі|ранку|дня|вечора/,
54790        isPM: function (input) {
54791            return /^(дня|вечора)$/.test(input);
54792        },
54793        meridiem: function (hour, minute, isLower) {
54794            if (hour < 4) {
54795                return 'ночі';
54796            } else if (hour < 12) {
54797                return 'ранку';
54798            } else if (hour < 17) {
54799                return 'дня';
54800            } else {
54801                return 'вечора';
54802            }
54803        },
54804        dayOfMonthOrdinalParse: /\d{1,2}-(й|го)/,
54805        ordinal: function (number, period) {
54806            switch (period) {
54807                case 'M':
54808                case 'd':
54809                case 'DDD':
54810                case 'w':
54811                case 'W':
54812                    return number + '-й';
54813                case 'D':
54814                    return number + '-го';
54815                default:
54816                    return number;
54817            }
54818        },
54819        week: {
54820            dow: 1, // Monday is the first day of the week.
54821            doy: 7, // The week that contains Jan 7th is the first week of the year.
54822        },
54823    });
54824
54825    return uk;
54826
54827})));
54828
54829
54830/***/ }),
54831
vendor: 2,990 bytes, lines 54832-54933
54832/***/ "./node_modules/moment/locale/ur.js":
54833/*!******************************************!*\
54834  !*** ./node_modules/moment/locale/ur.js ***!
54835  \******************************************/
54836/*! no static exports found */
54837/***/ (function(module, exports, __webpack_require__) {
54838
54839//! moment.js locale configuration
54840//! locale : Urdu [ur]
54841//! author : Sawood Alam : https://github.com/ibnesayeed
54842//! author : Zack : https://github.com/ZackVision
54843
54844;(function (global, factory) {
54845    true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/moment/moment.js")) :
54846   undefined
54847}(this, (function (moment) { 'use strict';
54848
54849    //! moment.js locale configuration
54850
54851    var months = [
54852            'جنوری',
54853            'فروری',
54854            'مارچ',
54855            'اپریل',
54856            'مئی',
54857            'جون',
54858            'جولائی',
54859            'اگست',
54860            'ستمبر',
54861            'اکتوبر',
54862            'نومبر',
54863            'دسمبر',
54864        ],
54865        days = ['اتوار', 'پیر', 'منگل', 'بدھ', 'جمعرات', 'جمعہ', 'ہفتہ'];
54866
54867    var ur = moment.defineLocale('ur', {
54868        months: months,
54869        monthsShort: months,
54870        weekdays: days,
54871        weekdaysShort: days,
54872        weekdaysMin: days,
54873        longDateFormat: {
54874            LT: 'HH:mm',
54875            LTS: 'HH:mm:ss',
54876            L: 'DD/MM/YYYY',
54877            LL: 'D MMMM YYYY',
54878            LLL: 'D MMMM YYYY HH:mm',
54879            LLLL: 'dddd، D MMMM YYYY HH:mm',
54880        },
54881        meridiemParse: /صبح|شام/,
54882        isPM: function (input) {
54883            return 'شام' === input;
54884        },
54885        meridiem: function (hour, minute, isLower) {
54886            if (hour < 12) {
54887                return 'صبح';
54888            }
54889            return 'شام';
54890        },
54891        calendar: {
54892            sameDay: '[آج بوقت] LT',
54893            nextDay: '[کل بوقت] LT',
54894            nextWeek: 'dddd [بوقت] LT',
54895            lastDay: '[گذشتہ روز بوقت] LT',
54896            lastWeek: '[گذشتہ] dddd [بوقت] LT',
54897            sameElse: 'L',
54898        },
54899        relativeTime: {
54900            future: '%s بعد',
54901            past: '%s قبل',
54902            s: 'چند سیکنڈ',
54903            ss: '%d سیکنڈ',
54904            m: 'ایک منٹ',
54905            mm: '%d منٹ',
54906            h: 'ایک گھنٹہ',
54907            hh: '%d گھنٹے',
54908            d: 'ایک دن',
54909            dd: '%d دن',
54910            M: 'ایک ماہ',
54911            MM: '%d ماہ',
54912            y: 'ایک سال',
54913            yy: '%d سال',
54914        },
54915        preparse: function (string) {
54916            return string.replace(/،/g, ',');
54917        },
54918        postformat: function (string) {
54919            return string.replace(/,/g, '،');
54920        },
54921        week: {
54922            dow: 1, // Monday is the first day of the week.
54923            doy: 4, // The week that contains Jan 4th is the first week of the year.
54924        },
54925    });
54926
54927    return ur;
54928
54929})));
54930
54931
54932/***/ }),
54933
vendor: 2,353 bytes, lines 54934-55007
54934/***/ "./node_modules/moment/locale/uz-latn.js":
54935/*!***********************************************!*\
54936  !*** ./node_modules/moment/locale/uz-latn.js ***!
54937  \***********************************************/
54938/*! no static exports found */
54939/***/ (function(module, exports, __webpack_require__) {
54940
54941//! moment.js locale configuration
54942//! locale : Uzbek Latin [uz-latn]
54943//! author : Rasulbek Mirzayev : github.com/Rasulbeeek
54944
54945;(function (global, factory) {
54946    true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/moment/moment.js")) :
54947   undefined
54948}(this, (function (moment) { 'use strict';
54949
54950    //! moment.js locale configuration
54951
54952    var uzLatn = moment.defineLocale('uz-latn', {
54953        months: 'Yanvar_Fevral_Mart_Aprel_May_Iyun_Iyul_Avgust_Sentabr_Oktabr_Noyabr_Dekabr'.split(
54954            '_'
54955        ),
54956        monthsShort: 'Yan_Fev_Mar_Apr_May_Iyun_Iyul_Avg_Sen_Okt_Noy_Dek'.split('_'),
54957        weekdays:
54958            'Yakshanba_Dushanba_Seshanba_Chorshanba_Payshanba_Juma_Shanba'.split(
54959                '_'
54960            ),
54961        weekdaysShort: 'Yak_Dush_Sesh_Chor_Pay_Jum_Shan'.split('_'),
54962        weekdaysMin: 'Ya_Du_Se_Cho_Pa_Ju_Sha'.split('_'),
54963        longDateFormat: {
54964            LT: 'HH:mm',
54965            LTS: 'HH:mm:ss',
54966            L: 'DD/MM/YYYY',
54967            LL: 'D MMMM YYYY',
54968            LLL: 'D MMMM YYYY HH:mm',
54969            LLLL: 'D MMMM YYYY, dddd HH:mm',
54970        },
54971        calendar: {
54972            sameDay: '[Bugun soat] LT [da]',
54973            nextDay: '[Ertaga] LT [da]',
54974            nextWeek: 'dddd [kuni soat] LT [da]',
54975            lastDay: '[Kecha soat] LT [da]',
54976            lastWeek: "[O'tgan] dddd [kuni soat] LT [da]",
54977            sameElse: 'L',
54978        },
54979        relativeTime: {
54980            future: 'Yaqin %s ichida',
54981            past: 'Bir necha %s oldin',
54982            s: 'soniya',
54983            ss: '%d soniya',
54984            m: 'bir daqiqa',
54985            mm: '%d daqiqa',
54986            h: 'bir soat',
54987            hh: '%d soat',
54988            d: 'bir kun',
54989            dd: '%d kun',
54990            M: 'bir oy',
54991            MM: '%d oy',
54992            y: 'bir yil',
54993            yy: '%d yil',
54994        },
54995        week: {
54996            dow: 1, // Monday is the first day of the week.
54997            doy: 7, // The week that contains Jan 7th is the first week of the year.
54998        },
54999    });
55000
55001    return uzLatn;
55002
55003})));
55004
55005
55006/***/ }),
55007
vendor: 2,559 bytes, lines 55008-55078
55008/***/ "./node_modules/moment/locale/uz.js":
55009/*!******************************************!*\
55010  !*** ./node_modules/moment/locale/uz.js ***!
55011  \******************************************/
55012/*! no static exports found */
55013/***/ (function(module, exports, __webpack_require__) {
55014
55015//! moment.js locale configuration
55016//! locale : Uzbek [uz]
55017//! author : Sardor Muminov : https://github.com/muminoff
55018
55019;(function (global, factory) {
55020    true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/moment/moment.js")) :
55021   undefined
55022}(this, (function (moment) { 'use strict';
55023
55024    //! moment.js locale configuration
55025
55026    var uz = moment.defineLocale('uz', {
55027        months: 'январ_феврал_март_апрел_май_июн_июл_август_сентябр_октябр_ноябр_декабр'.split(
55028            '_'
55029        ),
55030        monthsShort: 'янв_фев_мар_апр_май_июн_июл_авг_сен_окт_ноя_дек'.split('_'),
55031        weekdays: 'Якшанба_Душанба_Сешанба_Чоршанба_Пайшанба_Жума_Шанба'.split('_'),
55032        weekdaysShort: 'Якш_Душ_Сеш_Чор_Пай_Жум_Шан'.split('_'),
55033        weekdaysMin: 'Як_Ду_Се_Чо_Па_Жу_Ша'.split('_'),
55034        longDateFormat: {
55035            LT: 'HH:mm',
55036            LTS: 'HH:mm:ss',
55037            L: 'DD/MM/YYYY',
55038            LL: 'D MMMM YYYY',
55039            LLL: 'D MMMM YYYY HH:mm',
55040            LLLL: 'D MMMM YYYY, dddd HH:mm',
55041        },
55042        calendar: {
55043            sameDay: '[Бугун соат] LT [да]',
55044            nextDay: '[Эртага] LT [да]',
55045            nextWeek: 'dddd [куни соат] LT [да]',
55046            lastDay: '[Кеча соат] LT [да]',
55047            lastWeek: '[Утган] dddd [куни соат] LT [да]',
55048            sameElse: 'L',
55049        },
55050        relativeTime: {
55051            future: 'Якин %s ичида',
55052            past: 'Бир неча %s олдин',
55053            s: 'фурсат',
55054            ss: '%d фурсат',
55055            m: 'бир дакика',
55056            mm: '%d дакика',
55057            h: 'бир соат',
55058            hh: '%d соат',
55059            d: 'бир кун',
55060            dd: '%d кун',
55061            M: 'бир ой',
55062            MM: '%d ой',
55063            y: 'бир йил',
55064            yy: '%d йил',
55065        },
55066        week: {
55067            dow: 1, // Monday is the first day of the week.
55068            doy: 7, // The week that contains Jan 4th is the first week of the year.
55069        },
55070    });
55071
55072    return uz;
55073
55074})));
55075
55076
55077/***/ }),
55078
vendor: 3,216 bytes, lines 55079-55178
55079/***/ "./node_modules/moment/locale/vi.js":
55080/*!******************************************!*\
55081  !*** ./node_modules/moment/locale/vi.js ***!
55082  \******************************************/
55083/*! no static exports found */
55084/***/ (function(module, exports, __webpack_require__) {
55085
55086//! moment.js locale configuration
55087//! locale : Vietnamese [vi]
55088//! author : Bang Nguyen : https://github.com/bangnk
55089//! author : Chien Kira : https://github.com/chienkira
55090
55091;(function (global, factory) {
55092    true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/moment/moment.js")) :
55093   undefined
55094}(this, (function (moment) { 'use strict';
55095
55096    //! moment.js locale configuration
55097
55098    var vi = moment.defineLocale('vi', {
55099        months: 'tháng 1_tháng 2_tháng 3_tháng 4_tháng 5_tháng 6_tháng 7_tháng 8_tháng 9_tháng 10_tháng 11_tháng 12'.split(
55100            '_'
55101        ),
55102        monthsShort:
55103            'Thg 01_Thg 02_Thg 03_Thg 04_Thg 05_Thg 06_Thg 07_Thg 08_Thg 09_Thg 10_Thg 11_Thg 12'.split(
55104                '_'
55105            ),
55106        monthsParseExact: true,
55107        weekdays: 'chủ nhật_thứ hai_thứ ba_thứ tư_thứ năm_thứ sáu_thứ bảy'.split(
55108            '_'
55109        ),
55110        weekdaysShort: 'CN_T2_T3_T4_T5_T6_T7'.split('_'),
55111        weekdaysMin: 'CN_T2_T3_T4_T5_T6_T7'.split('_'),
55112        weekdaysParseExact: true,
55113        meridiemParse: /sa|ch/i,
55114        isPM: function (input) {
55115            return /^ch$/i.test(input);
55116        },
55117        meridiem: function (hours, minutes, isLower) {
55118            if (hours < 12) {
55119                return isLower ? 'sa' : 'SA';
55120            } else {
55121                return isLower ? 'ch' : 'CH';
55122            }
55123        },
55124        longDateFormat: {
55125            LT: 'HH:mm',
55126            LTS: 'HH:mm:ss',
55127            L: 'DD/MM/YYYY',
55128            LL: 'D MMMM [năm] YYYY',
55129            LLL: 'D MMMM [năm] YYYY HH:mm',
55130            LLLL: 'dddd, D MMMM [năm] YYYY HH:mm',
55131            l: 'DD/M/YYYY',
55132            ll: 'D MMM YYYY',
55133            lll: 'D MMM YYYY HH:mm',
55134            llll: 'ddd, D MMM YYYY HH:mm',
55135        },
55136        calendar: {
55137            sameDay: '[Hôm nay lúc] LT',
55138            nextDay: '[Ngày mai lúc] LT',
55139            nextWeek: 'dddd [tuần tới lúc] LT',
55140            lastDay: '[Hôm qua lúc] LT',
55141            lastWeek: 'dddd [tuần trước lúc] LT',
55142            sameElse: 'L',
55143        },
55144        relativeTime: {
55145            future: '%s tới',
55146            past: '%s trước',
55147            s: 'vài giây',
55148            ss: '%d giây',
55149            m: 'một phút',
55150            mm: '%d phút',
55151            h: 'một giờ',
55152            hh: '%d giờ',
55153            d: 'một ngày',
55154            dd: '%d ngày',
55155            w: 'một tuần',
55156            ww: '%d tuần',
55157            M: 'một tháng',
55158            MM: '%d tháng',
55159            y: 'một năm',
55160            yy: '%d năm',
55161        },
55162        dayOfMonthOrdinalParse: /\d{1,2}/,
55163        ordinal: function (number) {
55164            return number;
55165        },
55166        week: {
55167            dow: 1, // Monday is the first day of the week.
55168            doy: 4, // The week that contains Jan 4th is the first week of the year.
55169        },
55170    });
55171
55172    return vi;
55173
55174})));
55175
55176
55177/***/ }),
55178
vendor: 3,168 bytes, lines 55179-55271
55179/***/ "./node_modules/moment/locale/x-pseudo.js":
55180/*!************************************************!*\
55181  !*** ./node_modules/moment/locale/x-pseudo.js ***!
55182  \************************************************/
55183/*! no static exports found */
55184/***/ (function(module, exports, __webpack_require__) {
55185
55186//! moment.js locale configuration
55187//! locale : Pseudo [x-pseudo]
55188//! author : Andrew Hood : https://github.com/andrewhood125
55189
55190;(function (global, factory) {
55191    true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/moment/moment.js")) :
55192   undefined
55193}(this, (function (moment) { 'use strict';
55194
55195    //! moment.js locale configuration
55196
55197    var xPseudo = moment.defineLocale('x-pseudo', {
55198        months: 'J~áñúá~rý_F~ébrú~árý_~Márc~h_Áp~ríl_~Máý_~Júñé~_Júl~ý_Áú~gúst~_Sép~témb~ér_Ó~ctób~ér_Ñ~óvém~bér_~Décé~mbér'.split(
55199            '_'
55200        ),
55201        monthsShort:
55202            'J~áñ_~Féb_~Már_~Ápr_~Máý_~Júñ_~Júl_~Áúg_~Sép_~Óct_~Ñóv_~Déc'.split(
55203                '_'
55204            ),
55205        monthsParseExact: true,
55206        weekdays:
55207            'S~úñdá~ý_Mó~ñdáý~_Túé~sdáý~_Wéd~ñésd~áý_T~húrs~dáý_~Fríd~áý_S~átúr~dáý'.split(
55208                '_'
55209            ),
55210        weekdaysShort: 'S~úñ_~Móñ_~Túé_~Wéd_~Thú_~Frí_~Sát'.split('_'),
55211        weekdaysMin: 'S~ú_Mó~_Tú_~Wé_T~h_Fr~_Sá'.split('_'),
55212        weekdaysParseExact: true,
55213        longDateFormat: {
55214            LT: 'HH:mm',
55215            L: 'DD/MM/YYYY',
55216            LL: 'D MMMM YYYY',
55217            LLL: 'D MMMM YYYY HH:mm',
55218            LLLL: 'dddd, D MMMM YYYY HH:mm',
55219        },
55220        calendar: {
55221            sameDay: '[T~ódá~ý át] LT',
55222            nextDay: '[T~ómó~rró~w át] LT',
55223            nextWeek: 'dddd [át] LT',
55224            lastDay: '[Ý~ést~érdá~ý át] LT',
55225            lastWeek: '[L~ást] dddd [át] LT',
55226            sameElse: 'L',
55227        },
55228        relativeTime: {
55229            future: 'í~ñ %s',
55230            past: '%s á~gó',
55231            s: 'á ~féw ~sécó~ñds',
55232            ss: '%d s~écóñ~ds',
55233            m: 'á ~míñ~úté',
55234            mm: '%d m~íñú~tés',
55235            h: 'á~ñ hó~úr',
55236            hh: '%d h~óúrs',
55237            d: 'á ~dáý',
55238            dd: '%d d~áýs',
55239            M: 'á ~móñ~th',
55240            MM: '%d m~óñt~hs',
55241            y: 'á ~ýéár',
55242            yy: '%d ý~éárs',
55243        },
55244        dayOfMonthOrdinalParse: /\d{1,2}(th|st|nd|rd)/,
55245        ordinal: function (number) {
55246            var b = number % 10,
55247                output =
55248                    ~~((number % 100) / 10) === 1
55249                        ? 'th'
55250                        : b === 1
55251                          ? 'st'
55252                          : b === 2
55253                            ? 'nd'
55254                            : b === 3
55255                              ? 'rd'
55256                              : 'th';
55257            return number + output;
55258        },
55259        week: {
55260            dow: 1, // Monday is the first day of the week.
55261            doy: 4, // The week that contains Jan 4th is the first week of the year.
55262        },
55263    });
55264
55265    return xPseudo;
55266
55267})));
55268
55269
55270/***/ }),
55271
vendor: 2,569 bytes, lines 55272-55344
55272/***/ "./node_modules/moment/locale/yo.js":
55273/*!******************************************!*\
55274  !*** ./node_modules/moment/locale/yo.js ***!
55275  \******************************************/
55276/*! no static exports found */
55277/***/ (function(module, exports, __webpack_require__) {
55278
55279//! moment.js locale configuration
55280//! locale : Yoruba Nigeria [yo]
55281//! author : Atolagbe Abisoye : https://github.com/andela-batolagbe
55282
55283;(function (global, factory) {
55284    true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/moment/moment.js")) :
55285   undefined
55286}(this, (function (moment) { 'use strict';
55287
55288    //! moment.js locale configuration
55289
55290    var yo = moment.defineLocale('yo', {
55291        months: 'Sẹ́rẹ́_Èrèlè_Ẹrẹ̀nà_Ìgbé_Èbibi_Òkùdu_Agẹmo_Ògún_Owewe_Ọ̀wàrà_Bélú_Ọ̀pẹ̀̀'.split(
55292            '_'
55293        ),
55294        monthsShort: 'Sẹ́r_Èrl_Ẹrn_Ìgb_Èbi_Òkù_Agẹ_Ògú_Owe_Ọ̀wà_Bél_Ọ̀pẹ̀̀'.split('_'),
55295        weekdays: 'Àìkú_Ajé_Ìsẹ́gun_Ọjọ́rú_Ọjọ́bọ_Ẹtì_Àbámẹ́ta'.split('_'),
55296        weekdaysShort: 'Àìk_Ajé_Ìsẹ́_Ọjr_Ọjb_Ẹtì_Àbá'.split('_'),
55297        weekdaysMin: 'Àì_Aj_Ìs_Ọr_Ọb_Ẹt_Àb'.split('_'),
55298        longDateFormat: {
55299            LT: 'h:mm A',
55300            LTS: 'h:mm:ss A',
55301            L: 'DD/MM/YYYY',
55302            LL: 'D MMMM YYYY',
55303            LLL: 'D MMMM YYYY h:mm A',
55304            LLLL: 'dddd, D MMMM YYYY h:mm A',
55305        },
55306        calendar: {
55307            sameDay: '[Ònì ni] LT',
55308            nextDay: '[Ọ̀la ni] LT',
55309            nextWeek: "dddd [Ọsẹ̀ tón'bọ] [ni] LT",
55310            lastDay: '[Àna ni] LT',
55311            lastWeek: 'dddd [Ọsẹ̀ tólọ́] [ni] LT',
55312            sameElse: 'L',
55313        },
55314        relativeTime: {
55315            future: 'ní %s',
55316            past: '%s kọjá',
55317            s: 'ìsẹjú aayá die',
55318            ss: 'aayá %d',
55319            m: 'ìsẹjú kan',
55320            mm: 'ìsẹjú %d',
55321            h: 'wákati kan',
55322            hh: 'wákati %d',
55323            d: 'ọjọ́ kan',
55324            dd: 'ọjọ́ %d',
55325            M: 'osù kan',
55326            MM: 'osù %d',
55327            y: 'ọdún kan',
55328            yy: 'ọdún %d',
55329        },
55330        dayOfMonthOrdinalParse: /ọjọ́\s\d{1,2}/,
55331        ordinal: 'ọjọ́ %d',
55332        week: {
55333            dow: 1, // Monday is the first day of the week.
55334            doy: 4, // The week that contains Jan 4th is the first week of the year.
55335        },
55336    });
55337
55338    return yo;
55339
55340})));
55341
55342
55343/***/ }),
55344
vendor: 4,669 bytes, lines 55345-55484
55345/***/ "./node_modules/moment/locale/zh-cn.js":
55346/*!*********************************************!*\
55347  !*** ./node_modules/moment/locale/zh-cn.js ***!
55348  \*********************************************/
55349/*! no static exports found */
55350/***/ (function(module, exports, __webpack_require__) {
55351
55352//! moment.js locale configuration
55353//! locale : Chinese (China) [zh-cn]
55354//! author : suupic : https://github.com/suupic
55355//! author : Zeno Zeng : https://github.com/zenozeng
55356//! author : uu109 : https://github.com/uu109
55357
55358;(function (global, factory) {
55359    true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/moment/moment.js")) :
55360   undefined
55361}(this, (function (moment) { 'use strict';
55362
55363    //! moment.js locale configuration
55364
55365    var zhCn = moment.defineLocale('zh-cn', {
55366        months: '一月_二月_三月_四月_五月_六月_七月_八月_九月_十月_十一月_十二月'.split(
55367            '_'
55368        ),
55369        monthsShort: '1月_2月_3月_4月_5月_6月_7月_8月_9月_10月_11月_12月'.split(
55370            '_'
55371        ),
55372        weekdays: '星期日_星期一_星期二_星期三_星期四_星期五_星期六'.split('_'),
55373        weekdaysShort: '周日_周一_周二_周三_周四_周五_周六'.split('_'),
55374        weekdaysMin: '日_一_二_三_四_五_六'.split('_'),
55375        longDateFormat: {
55376            LT: 'HH:mm',
55377            LTS: 'HH:mm:ss',
55378            L: 'YYYY/MM/DD',
55379            LL: 'YYYY年M月D日',
55380            LLL: 'YYYY年M月D日Ah点mm分',
55381            LLLL: 'YYYY年M月D日ddddAh点mm分',
55382            l: 'YYYY/M/D',
55383            ll: 'YYYY年M月D日',
55384            lll: 'YYYY年M月D日 HH:mm',
55385            llll: 'YYYY年M月D日dddd HH:mm',
55386        },
55387        meridiemParse: /凌晨|早上|上午|中午|下午|晚上/,
55388        meridiemHour: function (hour, meridiem) {
55389            if (hour === 12) {
55390                hour = 0;
55391            }
55392            if (meridiem === '凌晨' || meridiem === '早上' || meridiem === '上午') {
55393                return hour;
55394            } else if (meridiem === '下午' || meridiem === '晚上') {
55395                return hour + 12;
55396            } else {
55397                // '中午'
55398                return hour >= 11 ? hour : hour + 12;
55399            }
55400        },
55401        meridiem: function (hour, minute, isLower) {
55402            var hm = hour * 100 + minute;
55403            if (hm < 600) {
55404                return '凌晨';
55405            } else if (hm < 900) {
55406                return '早上';
55407            } else if (hm < 1130) {
55408                return '上午';
55409            } else if (hm < 1230) {
55410                return '中午';
55411            } else if (hm < 1800) {
55412                return '下午';
55413            } else {
55414                return '晚上';
55415            }
55416        },
55417        calendar: {
55418            sameDay: '[今天]LT',
55419            nextDay: '[明天]LT',
55420            nextWeek: function (now) {
55421                if (now.week() !== this.week()) {
55422                    return '[下]dddLT';
55423                } else {
55424                    return '[本]dddLT';
55425                }
55426            },
55427            lastDay: '[昨天]LT',
55428            lastWeek: function (now) {
55429                if (this.week() !== now.week()) {
55430                    return '[上]dddLT';
55431                } else {
55432                    return '[本]dddLT';
55433                }
55434            },
55435            sameElse: 'L',
55436        },
55437        dayOfMonthOrdinalParse: /\d{1,2}(日|月|周)/,
55438        ordinal: function (number, period) {
55439            switch (period) {
55440                case 'd':
55441                case 'D':
55442                case 'DDD':
55443                    return number + '日';
55444                case 'M':
55445                    return number + '月';
55446                case 'w':
55447                case 'W':
55448                    return number + '周';
55449                default:
55450                    return number;
55451            }
55452        },
55453        relativeTime: {
55454            future: '%s后',
55455            past: '%s前',
55456            s: '几秒',
55457            ss: '%d 秒',
55458            m: '1 分钟',
55459            mm: '%d 分钟',
55460            h: '1 小时',
55461            hh: '%d 小时',
55462            d: '1 天',
55463            dd: '%d 天',
55464            w: '1 周',
55465            ww: '%d 周',
55466            M: '1 个月',
55467            MM: '%d 个月',
55468            y: '1 å¹´',
55469            yy: '%d å¹´',
55470        },
55471        week: {
55472            // GB/T 7408-1994《数据元和交换格式·信息交换·日期和时间表示法》与ISO 8601:1988等效
55473            dow: 1, // Monday is the first day of the week.
55474            doy: 4, // The week that contains Jan 4th is the first week of the year.
55475        },
55476    });
55477
55478    return zhCn;
55479
55480})));
55481
55482
55483/***/ }),
55484
vendor: 3,994 bytes, lines 55485-55605
55485/***/ "./node_modules/moment/locale/zh-hk.js":
55486/*!*********************************************!*\
55487  !*** ./node_modules/moment/locale/zh-hk.js ***!
55488  \*********************************************/
55489/*! no static exports found */
55490/***/ (function(module, exports, __webpack_require__) {
55491
55492//! moment.js locale configuration
55493//! locale : Chinese (Hong Kong) [zh-hk]
55494//! author : Ben : https://github.com/ben-lin
55495//! author : Chris Lam : https://github.com/hehachris
55496//! author : Konstantin : https://github.com/skfd
55497//! author : Anthony : https://github.com/anthonylau
55498
55499;(function (global, factory) {
55500    true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/moment/moment.js")) :
55501   undefined
55502}(this, (function (moment) { 'use strict';
55503
55504    //! moment.js locale configuration
55505
55506    var zhHk = moment.defineLocale('zh-hk', {
55507        months: '一月_二月_三月_四月_五月_六月_七月_八月_九月_十月_十一月_十二月'.split(
55508            '_'
55509        ),
55510        monthsShort: '1月_2月_3月_4月_5月_6月_7月_8月_9月_10月_11月_12月'.split(
55511            '_'
55512        ),
55513        weekdays: '星期日_星期一_星期二_星期三_星期四_星期五_星期六'.split('_'),
55514        weekdaysShort: '週日_週一_週二_週三_週四_週五_週六'.split('_'),
55515        weekdaysMin: '日_一_二_三_四_五_六'.split('_'),
55516        longDateFormat: {
55517            LT: 'HH:mm',
55518            LTS: 'HH:mm:ss',
55519            L: 'YYYY/MM/DD',
55520            LL: 'YYYY年M月D日',
55521            LLL: 'YYYY年M月D日 HH:mm',
55522            LLLL: 'YYYY年M月D日dddd HH:mm',
55523            l: 'YYYY/M/D',
55524            ll: 'YYYY年M月D日',
55525            lll: 'YYYY年M月D日 HH:mm',
55526            llll: 'YYYY年M月D日dddd HH:mm',
55527        },
55528        meridiemParse: /凌晨|早上|上午|中午|下午|晚上/,
55529        meridiemHour: function (hour, meridiem) {
55530            if (hour === 12) {
55531                hour = 0;
55532            }
55533            if (meridiem === '凌晨' || meridiem === '早上' || meridiem === '上午') {
55534                return hour;
55535            } else if (meridiem === '中午') {
55536                return hour >= 11 ? hour : hour + 12;
55537            } else if (meridiem === '下午' || meridiem === '晚上') {
55538                return hour + 12;
55539            }
55540        },
55541        meridiem: function (hour, minute, isLower) {
55542            var hm = hour * 100 + minute;
55543            if (hm < 600) {
55544                return '凌晨';
55545            } else if (hm < 900) {
55546                return '早上';
55547            } else if (hm < 1200) {
55548                return '上午';
55549            } else if (hm === 1200) {
55550                return '中午';
55551            } else if (hm < 1800) {
55552                return '下午';
55553            } else {
55554                return '晚上';
55555            }
55556        },
55557        calendar: {
55558            sameDay: '[今天]LT',
55559            nextDay: '[明天]LT',
55560            nextWeek: '[下]ddddLT',
55561            lastDay: '[昨天]LT',
55562            lastWeek: '[上]ddddLT',
55563            sameElse: 'L',
55564        },
55565        dayOfMonthOrdinalParse: /\d{1,2}(日|月|週)/,
55566        ordinal: function (number, period) {
55567            switch (period) {
55568                case 'd':
55569                case 'D':
55570                case 'DDD':
55571                    return number + '日';
55572                case 'M':
55573                    return number + '月';
55574                case 'w':
55575                case 'W':
55576                    return number + '週';
55577                default:
55578                    return number;
55579            }
55580        },
55581        relativeTime: {
55582            future: '%s後',
55583            past: '%s前',
55584            s: '幾秒',
55585            ss: '%d 秒',
55586            m: '1 分鐘',
55587            mm: '%d 分鐘',
55588            h: '1 小時',
55589            hh: '%d 小時',
55590            d: '1 天',
55591            dd: '%d 天',
55592            M: '1 個月',
55593            MM: '%d 個月',
55594            y: '1 å¹´',
55595            yy: '%d å¹´',
55596        },
55597    });
55598
55599    return zhHk;
55600
55601})));
55602
55603
55604/***/ }),
55605
vendor: 3,944 bytes, lines 55606-55725
55606/***/ "./node_modules/moment/locale/zh-mo.js":
55607/*!*********************************************!*\
55608  !*** ./node_modules/moment/locale/zh-mo.js ***!
55609  \*********************************************/
55610/*! no static exports found */
55611/***/ (function(module, exports, __webpack_require__) {
55612
55613//! moment.js locale configuration
55614//! locale : Chinese (Macau) [zh-mo]
55615//! author : Ben : https://github.com/ben-lin
55616//! author : Chris Lam : https://github.com/hehachris
55617//! author : Tan Yuanhong : https://github.com/le0tan
55618
55619;(function (global, factory) {
55620    true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/moment/moment.js")) :
55621   undefined
55622}(this, (function (moment) { 'use strict';
55623
55624    //! moment.js locale configuration
55625
55626    var zhMo = moment.defineLocale('zh-mo', {
55627        months: '一月_二月_三月_四月_五月_六月_七月_八月_九月_十月_十一月_十二月'.split(
55628            '_'
55629        ),
55630        monthsShort: '1月_2月_3月_4月_5月_6月_7月_8月_9月_10月_11月_12月'.split(
55631            '_'
55632        ),
55633        weekdays: '星期日_星期一_星期二_星期三_星期四_星期五_星期六'.split('_'),
55634        weekdaysShort: '週日_週一_週二_週三_週四_週五_週六'.split('_'),
55635        weekdaysMin: '日_一_二_三_四_五_六'.split('_'),
55636        longDateFormat: {
55637            LT: 'HH:mm',
55638            LTS: 'HH:mm:ss',
55639            L: 'DD/MM/YYYY',
55640            LL: 'YYYY年M月D日',
55641            LLL: 'YYYY年M月D日 HH:mm',
55642            LLLL: 'YYYY年M月D日dddd HH:mm',
55643            l: 'D/M/YYYY',
55644            ll: 'YYYY年M月D日',
55645            lll: 'YYYY年M月D日 HH:mm',
55646            llll: 'YYYY年M月D日dddd HH:mm',
55647        },
55648        meridiemParse: /凌晨|早上|上午|中午|下午|晚上/,
55649        meridiemHour: function (hour, meridiem) {
55650            if (hour === 12) {
55651                hour = 0;
55652            }
55653            if (meridiem === '凌晨' || meridiem === '早上' || meridiem === '上午') {
55654                return hour;
55655            } else if (meridiem === '中午') {
55656                return hour >= 11 ? hour : hour + 12;
55657            } else if (meridiem === '下午' || meridiem === '晚上') {
55658                return hour + 12;
55659            }
55660        },
55661        meridiem: function (hour, minute, isLower) {
55662            var hm = hour * 100 + minute;
55663            if (hm < 600) {
55664                return '凌晨';
55665            } else if (hm < 900) {
55666                return '早上';
55667            } else if (hm < 1130) {
55668                return '上午';
55669            } else if (hm < 1230) {
55670                return '中午';
55671            } else if (hm < 1800) {
55672                return '下午';
55673            } else {
55674                return '晚上';
55675            }
55676        },
55677        calendar: {
55678            sameDay: '[今天] LT',
55679            nextDay: '[明天] LT',
55680            nextWeek: '[下]dddd LT',
55681            lastDay: '[昨天] LT',
55682            lastWeek: '[上]dddd LT',
55683            sameElse: 'L',
55684        },
55685        dayOfMonthOrdinalParse: /\d{1,2}(日|月|週)/,
55686        ordinal: function (number, period) {
55687            switch (period) {
55688                case 'd':
55689                case 'D':
55690                case 'DDD':
55691                    return number + '日';
55692                case 'M':
55693                    return number + '月';
55694                case 'w':
55695                case 'W':
55696                    return number + '週';
55697                default:
55698                    return number;
55699            }
55700        },
55701        relativeTime: {
55702            future: '%s內',
55703            past: '%s前',
55704            s: '幾秒',
55705            ss: '%d 秒',
55706            m: '1 分鐘',
55707            mm: '%d 分鐘',
55708            h: '1 小時',
55709            hh: '%d 小時',
55710            d: '1 天',
55711            dd: '%d 天',
55712            M: '1 個月',
55713            MM: '%d 個月',
55714            y: '1 å¹´',
55715            yy: '%d å¹´',
55716        },
55717    });
55718
55719    return zhMo;
55720
55721})));
55722
55723
55724/***/ }),
55725
vendor: 3,891 bytes, lines 55726-55844
55726/***/ "./node_modules/moment/locale/zh-tw.js":
55727/*!*********************************************!*\
55728  !*** ./node_modules/moment/locale/zh-tw.js ***!
55729  \*********************************************/
55730/*! no static exports found */
55731/***/ (function(module, exports, __webpack_require__) {
55732
55733//! moment.js locale configuration
55734//! locale : Chinese (Taiwan) [zh-tw]
55735//! author : Ben : https://github.com/ben-lin
55736//! author : Chris Lam : https://github.com/hehachris
55737
55738;(function (global, factory) {
55739    true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/moment/moment.js")) :
55740   undefined
55741}(this, (function (moment) { 'use strict';
55742
55743    //! moment.js locale configuration
55744
55745    var zhTw = moment.defineLocale('zh-tw', {
55746        months: '一月_二月_三月_四月_五月_六月_七月_八月_九月_十月_十一月_十二月'.split(
55747            '_'
55748        ),
55749        monthsShort: '1月_2月_3月_4月_5月_6月_7月_8月_9月_10月_11月_12月'.split(
55750            '_'
55751        ),
55752        weekdays: '星期日_星期一_星期二_星期三_星期四_星期五_星期六'.split('_'),
55753        weekdaysShort: '週日_週一_週二_週三_週四_週五_週六'.split('_'),
55754        weekdaysMin: '日_一_二_三_四_五_六'.split('_'),
55755        longDateFormat: {
55756            LT: 'HH:mm',
55757            LTS: 'HH:mm:ss',
55758            L: 'YYYY/MM/DD',
55759            LL: 'YYYY年M月D日',
55760            LLL: 'YYYY年M月D日 HH:mm',
55761            LLLL: 'YYYY年M月D日dddd HH:mm',
55762            l: 'YYYY/M/D',
55763            ll: 'YYYY年M月D日',
55764            lll: 'YYYY年M月D日 HH:mm',
55765            llll: 'YYYY年M月D日dddd HH:mm',
55766        },
55767        meridiemParse: /凌晨|早上|上午|中午|下午|晚上/,
55768        meridiemHour: function (hour, meridiem) {
55769            if (hour === 12) {
55770                hour = 0;
55771            }
55772            if (meridiem === '凌晨' || meridiem === '早上' || meridiem === '上午') {
55773                return hour;
55774            } else if (meridiem === '中午') {
55775                return hour >= 11 ? hour : hour + 12;
55776            } else if (meridiem === '下午' || meridiem === '晚上') {
55777                return hour + 12;
55778            }
55779        },
55780        meridiem: function (hour, minute, isLower) {
55781            var hm = hour * 100 + minute;
55782            if (hm < 600) {
55783                return '凌晨';
55784            } else if (hm < 900) {
55785                return '早上';
55786            } else if (hm < 1130) {
55787                return '上午';
55788            } else if (hm < 1230) {
55789                return '中午';
55790            } else if (hm < 1800) {
55791                return '下午';
55792            } else {
55793                return '晚上';
55794            }
55795        },
55796        calendar: {
55797            sameDay: '[今天] LT',
55798            nextDay: '[明天] LT',
55799            nextWeek: '[下]dddd LT',
55800            lastDay: '[昨天] LT',
55801            lastWeek: '[上]dddd LT',
55802            sameElse: 'L',
55803        },
55804        dayOfMonthOrdinalParse: /\d{1,2}(日|月|週)/,
55805        ordinal: function (number, period) {
55806            switch (period) {
55807                case 'd':
55808                case 'D':
55809                case 'DDD':
55810                    return number + '日';
55811                case 'M':
55812                    return number + '月';
55813                case 'w':
55814                case 'W':
55815                    return number + '週';
55816                default:
55817                    return number;
55818            }
55819        },
55820        relativeTime: {
55821            future: '%s後',
55822            past: '%s前',
55823            s: '幾秒',
55824            ss: '%d 秒',
55825            m: '1 分鐘',
55826            mm: '%d 分鐘',
55827            h: '1 小時',
55828            hh: '%d 小時',
55829            d: '1 天',
55830            dd: '%d 天',
55831            M: '1 個月',
55832            MM: '%d 個月',
55833            y: '1 å¹´',
55834            yy: '%d å¹´',
55835        },
55836    });
55837
55838    return zhTw;
55839
55840})));
55841
55842
55843/***/ }),
55844
vendor: 176,839 bytes, lines 55845-61543
55845/***/ "./node_modules/moment/moment.js":
55846/*!***************************************!*\
55847  !*** ./node_modules/moment/moment.js ***!
55848  \***************************************/
55849/*! no static exports found */
55850/***/ (function(module, exports, __webpack_require__) {
55851
55852/* WEBPACK VAR INJECTION */(function(module) {var require;//! moment.js
55853//! version : 2.30.1
55854//! authors : Tim Wood, Iskren Chernev, Moment.js contributors
55855//! license : MIT
55856//! momentjs.com
55857
55858;(function (global, factory) {
55859     true ? module.exports = factory() :
55860    undefined
55861}(this, (function () { 'use strict';
55862
55863    var hookCallback;
55864
55865    function hooks() {
55866        return hookCallback.apply(null, arguments);
55867    }
55868
55869    // This is done to register the method called with moment()
55870    // without creating circular dependencies.
55871    function setHookCallback(callback) {
55872        hookCallback = callback;
55873    }
55874
55875    function isArray(input) {
55876        return (
55877            input instanceof Array ||
55878            Object.prototype.toString.call(input) === '[object Array]'
55879        );
55880    }
55881
55882    function isObject(input) {
55883        // IE8 will treat undefined and null as object if it wasn't for
55884        // input != null
55885        return (
55886            input != null &&
55887            Object.prototype.toString.call(input) === '[object Object]'
55888        );
55889    }
55890
55891    function hasOwnProp(a, b) {
55892        return Object.prototype.hasOwnProperty.call(a, b);
55893    }
55894
55895    function isObjectEmpty(obj) {
55896        if (Object.getOwnPropertyNames) {
55897            return Object.getOwnPropertyNames(obj).length === 0;
55898        } else {
55899            var k;
55900            for (k in obj) {
55901                if (hasOwnProp(obj, k)) {
55902                    return false;
55903                }
55904            }
55905            return true;
55906        }
55907    }
55908
55909    function isUndefined(input) {
55910        return input === void 0;
55911    }
55912
55913    function isNumber(input) {
55914        return (
55915            typeof input === 'number' ||
55916            Object.prototype.toString.call(input) === '[object Number]'
55917        );
55918    }
55919
55920    function isDate(input) {
55921        return (
55922            input instanceof Date ||
55923            Object.prototype.toString.call(input) === '[object Date]'
55924        );
55925    }
55926
55927    function map(arr, fn) {
55928        var res = [],
55929            i,
55930            arrLen = arr.length;
55931        for (i = 0; i < arrLen; ++i) {
55932            res.push(fn(arr[i], i));
55933        }
55934        return res;
55935    }
55936
55937    function extend(a, b) {
55938        for (var i in b) {
55939            if (hasOwnProp(b, i)) {
55940                a[i] = b[i];
55941            }
55942        }
55943
55944        if (hasOwnProp(b, 'toString')) {
55945            a.toString = b.toString;
55946        }
55947
55948        if (hasOwnProp(b, 'valueOf')) {
55949            a.valueOf = b.valueOf;
55950        }
55951
55952        return a;
55953    }
55954
55955    function createUTC(input, format, locale, strict) {
55956        return createLocalOrUTC(input, format, locale, strict, true).utc();
55957    }
55958
55959    function defaultParsingFlags() {
55960        // We need to deep clone this object.
55961        return {
55962            empty: false,
55963            unusedTokens: [],
55964            unusedInput: [],
55965            overflow: -2,
55966            charsLeftOver: 0,
55967            nullInput: false,
55968            invalidEra: null,
55969            invalidMonth: null,
55970            invalidFormat: false,
55971            userInvalidated: false,
55972            iso: false,
55973            parsedDateParts: [],
55974            era: null,
55975            meridiem: null,
55976            rfc2822: false,
55977            weekdayMismatch: false,
55978        };
55979    }
55980
55981    function getParsingFlags(m) {
55982        if (m._pf == null) {
55983            m._pf = defaultParsingFlags();
55984        }
55985        return m._pf;
55986    }
55987
55988    var some;
55989    if (Array.prototype.some) {
55990        some = Array.prototype.some;
55991    } else {
55992        some = function (fun) {
55993            var t = Object(this),
55994                len = t.length >>> 0,
55995                i;
55996
55997            for (i = 0; i < len; i++) {
55998                if (i in t && fun.call(this, t[i], i, t)) {
55999                    return true;
56000                }
56001            }
56002
56003            return false;
56004        };
56005    }
56006
56007    function isValid(m) {
56008        var flags = null,
56009            parsedParts = false,
56010            isNowValid = m._d && !isNaN(m._d.getTime());
56011        if (isNowValid) {
56012            flags = getParsingFlags(m);
56013            parsedParts = some.call(flags.parsedDateParts, function (i) {
56014                return i != null;
56015            });
56016            isNowValid =
56017                flags.overflow < 0 &&
56018                !flags.empty &&
56019                !flags.invalidEra &&
56020                !flags.invalidMonth &&
56021                !flags.invalidWeekday &&
56022                !flags.weekdayMismatch &&
56023                !flags.nullInput &&
56024                !flags.invalidFormat &&
56025                !flags.userInvalidated &&
56026                (!flags.meridiem || (flags.meridiem && parsedParts));
56027            if (m._strict) {
56028                isNowValid =
56029                    isNowValid &&
56030                    flags.charsLeftOver === 0 &&
56031                    flags.unusedTokens.length === 0 &&
56032                    flags.bigHour === undefined;
56033            }
56034        }
56035        if (Object.isFrozen == null || !Object.isFrozen(m)) {
56036            m._isValid = isNowValid;
56037        } else {
56038            return isNowValid;
56039        }
56040        return m._isValid;
56041    }
56042
56043    function createInvalid(flags) {
56044        var m = createUTC(NaN);
56045        if (flags != null) {
56046            extend(getParsingFlags(m), flags);
56047        } else {
56048            getParsingFlags(m).userInvalidated = true;
56049        }
56050
56051        return m;
56052    }
56053
56054    // Plugins that add properties should also add the key here (null value),
56055    // so we can properly clone ourselves.
56056    var momentProperties = (hooks.momentProperties = []),
56057        updateInProgress = false;
56058
56059    function copyConfig(to, from) {
56060        var i,
56061            prop,
56062            val,
56063            momentPropertiesLen = momentProperties.length;
56064
56065        if (!isUndefined(from._isAMomentObject)) {
56066            to._isAMomentObject = from._isAMomentObject;
56067        }
56068        if (!isUndefined(from._i)) {
56069            to._i = from._i;
56070        }
56071        if (!isUndefined(from._f)) {
56072            to._f = from._f;
56073        }
56074        if (!isUndefined(from._l)) {
56075            to._l = from._l;
56076        }
56077        if (!isUndefined(from._strict)) {
56078            to._strict = from._strict;
56079        }
56080        if (!isUndefined(from._tzm)) {
56081            to._tzm = from._tzm;
56082        }
56083        if (!isUndefined(from._isUTC)) {
56084            to._isUTC = from._isUTC;
56085        }
56086        if (!isUndefined(from._offset)) {
56087            to._offset = from._offset;
56088        }
56089        if (!isUndefined(from._pf)) {
56090            to._pf = getParsingFlags(from);
56091        }
56092        if (!isUndefined(from._locale)) {
56093            to._locale = from._locale;
56094        }
56095
56096        if (momentPropertiesLen > 0) {
56097            for (i = 0; i < momentPropertiesLen; i++) {
56098                prop = momentProperties[i];
56099                val = from[prop];
56100                if (!isUndefined(val)) {
56101                    to[prop] = val;
56102                }
56103            }
56104        }
56105
56106        return to;
56107    }
56108
56109    // Moment prototype object
56110    function Moment(config) {
56111        copyConfig(this, config);
56112        this._d = new Date(config._d != null ? config._d.getTime() : NaN);
56113        if (!this.isValid()) {
56114            this._d = new Date(NaN);
56115        }
56116        // Prevent infinite loop in case updateOffset creates new moment
56117        // objects.
56118        if (updateInProgress === false) {
56119            updateInProgress = true;
56120            hooks.updateOffset(this);
56121            updateInProgress = false;
56122        }
56123    }
56124
56125    function isMoment(obj) {
56126        return (
56127            obj instanceof Moment || (obj != null && obj._isAMomentObject != null)
56128        );
56129    }
56130
56131    function warn(msg) {
56132        if (
56133            hooks.suppressDeprecationWarnings === false &&
56134            typeof console !== 'undefined' &&
56135            console.warn
56136        ) {
56137            console.warn('Deprecation warning: ' + msg);
56138        }
56139    }
56140
56141    function deprecate(msg, fn) {
56142        var firstTime = true;
56143
56144        return extend(function () {
56145            if (hooks.deprecationHandler != null) {
56146                hooks.deprecationHandler(null, msg);
56147            }
56148            if (firstTime) {
56149                var args = [],
56150                    arg,
56151                    i,
56152                    key,
56153                    argLen = arguments.length;
56154                for (i = 0; i < argLen; i++) {
56155                    arg = '';
56156                    if (typeof arguments[i] === 'object') {
56157                        arg += '\n[' + i + '] ';
56158                        for (key in arguments[0]) {
56159                            if (hasOwnProp(arguments[0], key)) {
56160                                arg += key + ': ' + arguments[0][key] + ', ';
56161                            }
56162                        }
56163                        arg = arg.slice(0, -2); // Remove trailing comma and space
56164                    } else {
56165                        arg = arguments[i];
56166                    }
56167                    args.push(arg);
56168                }
56169                warn(
56170                    msg +
56171                        '\nArguments: ' +
56172                        Array.prototype.slice.call(args).join('') +
56173                        '\n' +
56174                        new Error().stack
56175                );
56176                firstTime = false;
56177            }
56178            return fn.apply(this, arguments);
56179        }, fn);
56180    }
56181
56182    var deprecations = {};
56183
56184    function deprecateSimple(name, msg) {
56185        if (hooks.deprecationHandler != null) {
56186            hooks.deprecationHandler(name, msg);
56187        }
56188        if (!deprecations[name]) {
56189            warn(msg);
56190            deprecations[name] = true;
56191        }
56192    }
56193
56194    hooks.suppressDeprecationWarnings = false;
56195    hooks.deprecationHandler = null;
56196
56197    function isFunction(input) {
56198        return (
56199            (typeof Function !== 'undefined' && input instanceof Function) ||
56200            Object.prototype.toString.call(input) === '[object Function]'
56201        );
56202    }
56203
56204    function set(config) {
56205        var prop, i;
56206        for (i in config) {
56207            if (hasOwnProp(config, i)) {
56208                prop = config[i];
56209                if (isFunction(prop)) {
56210                    this[i] = prop;
56211                } else {
56212                    this['_' + i] = prop;
56213                }
56214            }
56215        }
56216        this._config = config;
56217        // Lenient ordinal parsing accepts just a number in addition to
56218        // number + (possibly) stuff coming from _dayOfMonthOrdinalParse.
56219        // TODO: Remove "ordinalParse" fallback in next major release.
56220        this._dayOfMonthOrdinalParseLenient = new RegExp(
56221            (this._dayOfMonthOrdinalParse.source || this._ordinalParse.source) +
56222                '|' +
56223                /\d{1,2}/.source
56224        );
56225    }
56226
56227    function mergeConfigs(parentConfig, childConfig) {
56228        var res = extend({}, parentConfig),
56229            prop;
56230        for (prop in childConfig) {
56231            if (hasOwnProp(childConfig, prop)) {
56232                if (isObject(parentConfig[prop]) && isObject(childConfig[prop])) {
56233                    res[prop] = {};
56234                    extend(res[prop], parentConfig[prop]);
56235                    extend(res[prop], childConfig[prop]);
56236                } else if (childConfig[prop] != null) {
56237                    res[prop] = childConfig[prop];
56238                } else {
56239                    delete res[prop];
56240                }
56241            }
56242        }
56243        for (prop in parentConfig) {
56244            if (
56245                hasOwnProp(parentConfig, prop) &&
56246                !hasOwnProp(childConfig, prop) &&
56247                isObject(parentConfig[prop])
56248            ) {
56249                // make sure changes to properties don't modify parent config
56250                res[prop] = extend({}, res[prop]);
56251            }
56252        }
56253        return res;
56254    }
56255
56256    function Locale(config) {
56257        if (config != null) {
56258            this.set(config);
56259        }
56260    }
56261
56262    var keys;
56263
56264    if (Object.keys) {
56265        keys = Object.keys;
56266    } else {
56267        keys = function (obj) {
56268            var i,
56269                res = [];
56270            for (i in obj) {
56271                if (hasOwnProp(obj, i)) {
56272                    res.push(i);
56273                }
56274            }
56275            return res;
56276        };
56277    }
56278
56279    var defaultCalendar = {
56280        sameDay: '[Today at] LT',
56281        nextDay: '[Tomorrow at] LT',
56282        nextWeek: 'dddd [at] LT',
56283        lastDay: '[Yesterday at] LT',
56284        lastWeek: '[Last] dddd [at] LT',
56285        sameElse: 'L',
56286    };
56287
56288    function calendar(key, mom, now) {
56289        var output = this._calendar[key] || this._calendar['sameElse'];
56290        return isFunction(output) ? output.call(mom, now) : output;
56291    }
56292
56293    function zeroFill(number, targetLength, forceSign) {
56294        var absNumber = '' + Math.abs(number),
56295            zerosToFill = targetLength - absNumber.length,
56296            sign = number >= 0;
56297        return (
56298            (sign ? (forceSign ? '+' : '') : '-') +
56299            Math.pow(10, Math.max(0, zerosToFill)).toString().substr(1) +
56300            absNumber
56301        );
56302    }
56303
56304    var formattingTokens =
56305            /(\[[^\[]*\])|(\\)?([Hh]mm(ss)?|Mo|MM?M?M?|Do|DDDo|DD?D?D?|ddd?d?|do?|w[o|w]?|W[o|W]?|Qo?|N{1,5}|YYYYYY|YYYYY|YYYY|YY|y{2,4}|yo?|gg(ggg?)?|GG(GGG?)?|e|E|a|A|hh?|HH?|kk?|mm?|ss?|S{1,9}|x|X|zz?|ZZ?|.)/g,
56306        localFormattingTokens = /(\[[^\[]*\])|(\\)?(LTS|LT|LL?L?L?|l{1,4})/g,
56307        formatFunctions = {},
56308        formatTokenFunctions = {};
56309
56310    // token:    'M'
56311    // padded:   ['MM', 2]
56312    // ordinal:  'Mo'
56313    // callback: function () { this.month() + 1 }
56314    function addFormatToken(token, padded, ordinal, callback) {
56315        var func = callback;
56316        if (typeof callback === 'string') {
56317            func = function () {
56318                return this[callback]();
56319            };
56320        }
56321        if (token) {
56322            formatTokenFunctions[token] = func;
56323        }
56324        if (padded) {
56325            formatTokenFunctions[padded[0]] = function () {
56326                return zeroFill(func.apply(this, arguments), padded[1], padded[2]);
56327            };
56328        }
56329        if (ordinal) {
56330            formatTokenFunctions[ordinal] = function () {
56331                return this.localeData().ordinal(
56332                    func.apply(this, arguments),
56333                    token
56334                );
56335            };
56336        }
56337    }
56338
56339    function removeFormattingTokens(input) {
56340        if (input.match(/\[[\s\S]/)) {
56341            return input.replace(/^\[|\]$/g, '');
56342        }
56343        return input.replace(/\\/g, '');
56344    }
56345
56346    function makeFormatFunction(format) {
56347        var array = format.match(formattingTokens),
56348            i,
56349            length;
56350
56351        for (i = 0, length = array.length; i < length; i++) {
56352            if (formatTokenFunctions[array[i]]) {
56353                array[i] = formatTokenFunctions[array[i]];
56354            } else {
56355                array[i] = removeFormattingTokens(array[i]);
56356            }
56357        }
56358
56359        return function (mom) {
56360            var output = '',
56361                i;
56362            for (i = 0; i < length; i++) {
56363                output += isFunction(array[i])
56364                    ? array[i].call(mom, format)
56365                    : array[i];
56366            }
56367            return output;
56368        };
56369    }
56370
56371    // format date using native date object
56372    function formatMoment(m, format) {
56373        if (!m.isValid()) {
56374            return m.localeData().invalidDate();
56375        }
56376
56377        format = expandFormat(format, m.localeData());
56378        formatFunctions[format] =
56379            formatFunctions[format] || makeFormatFunction(format);
56380
56381        return formatFunctions[format](m);
56382    }
56383
56384    function expandFormat(format, locale) {
56385        var i = 5;
56386
56387        function replaceLongDateFormatTokens(input) {
56388            return locale.longDateFormat(input) || input;
56389        }
56390
56391        localFormattingTokens.lastIndex = 0;
56392        while (i >= 0 && localFormattingTokens.test(format)) {
56393            format = format.replace(
56394                localFormattingTokens,
56395                replaceLongDateFormatTokens
56396            );
56397            localFormattingTokens.lastIndex = 0;
56398            i -= 1;
56399        }
56400
56401        return format;
56402    }
56403
56404    var defaultLongDateFormat = {
56405        LTS: 'h:mm:ss A',
56406        LT: 'h:mm A',
56407        L: 'MM/DD/YYYY',
56408        LL: 'MMMM D, YYYY',
56409        LLL: 'MMMM D, YYYY h:mm A',
56410        LLLL: 'dddd, MMMM D, YYYY h:mm A',
56411    };
56412
56413    function longDateFormat(key) {
56414        var format = this._longDateFormat[key],
56415            formatUpper = this._longDateFormat[key.toUpperCase()];
56416
56417        if (format || !formatUpper) {
56418            return format;
56419        }
56420
56421        this._longDateFormat[key] = formatUpper
56422            .match(formattingTokens)
56423            .map(function (tok) {
56424                if (
56425                    tok === 'MMMM' ||
56426                    tok === 'MM' ||
56427                    tok === 'DD' ||
56428                    tok === 'dddd'
56429                ) {
56430                    return tok.slice(1);
56431                }
56432                return tok;
56433            })
56434            .join('');
56435
56436        return this._longDateFormat[key];
56437    }
56438
56439    var defaultInvalidDate = 'Invalid date';
56440
56441    function invalidDate() {
56442        return this._invalidDate;
56443    }
56444
56445    var defaultOrdinal = '%d',
56446        defaultDayOfMonthOrdinalParse = /\d{1,2}/;
56447
56448    function ordinal(number) {
56449        return this._ordinal.replace('%d', number);
56450    }
56451
56452    var defaultRelativeTime = {
56453        future: 'in %s',
56454        past: '%s ago',
56455        s: 'a few seconds',
56456        ss: '%d seconds',
56457        m: 'a minute',
56458        mm: '%d minutes',
56459        h: 'an hour',
56460        hh: '%d hours',
56461        d: 'a day',
56462        dd: '%d days',
56463        w: 'a week',
56464        ww: '%d weeks',
56465        M: 'a month',
56466        MM: '%d months',
56467        y: 'a year',
56468        yy: '%d years',
56469    };
56470
56471    function relativeTime(number, withoutSuffix, string, isFuture) {
56472        var output = this._relativeTime[string];
56473        return isFunction(output)
56474            ? output(number, withoutSuffix, string, isFuture)
56475            : output.replace(/%d/i, number);
56476    }
56477
56478    function pastFuture(diff, output) {
56479        var format = this._relativeTime[diff > 0 ? 'future' : 'past'];
56480        return isFunction(format) ? format(output) : format.replace(/%s/i, output);
56481    }
56482
56483    var aliases = {
56484        D: 'date',
56485        dates: 'date',
56486        date: 'date',
56487        d: 'day',
56488        days: 'day',
56489        day: 'day',
56490        e: 'weekday',
56491        weekdays: 'weekday',
56492        weekday: 'weekday',
56493        E: 'isoWeekday',
56494        isoweekdays: 'isoWeekday',
56495        isoweekday: 'isoWeekday',
56496        DDD: 'dayOfYear',
56497        dayofyears: 'dayOfYear',
56498        dayofyear: 'dayOfYear',
56499        h: 'hour',
56500        hours: 'hour',
56501        hour: 'hour',
56502        ms: 'millisecond',
56503        milliseconds: 'millisecond',
56504        millisecond: 'millisecond',
56505        m: 'minute',
56506        minutes: 'minute',
56507        minute: 'minute',
56508        M: 'month',
56509        months: 'month',
56510        month: 'month',
56511        Q: 'quarter',
56512        quarters: 'quarter',
56513        quarter: 'quarter',
56514        s: 'second',
56515        seconds: 'second',
56516        second: 'second',
56517        gg: 'weekYear',
56518        weekyears: 'weekYear',
56519        weekyear: 'weekYear',
56520        GG: 'isoWeekYear',
56521        isoweekyears: 'isoWeekYear',
56522        isoweekyear: 'isoWeekYear',
56523        w: 'week',
56524        weeks: 'week',
56525        week: 'week',
56526        W: 'isoWeek',
56527        isoweeks: 'isoWeek',
56528        isoweek: 'isoWeek',
56529        y: 'year',
56530        years: 'year',
56531        year: 'year',
56532    };
56533
56534    function normalizeUnits(units) {
56535        return typeof units === 'string'
56536            ? aliases[units] || aliases[units.toLowerCase()]
56537            : undefined;
56538    }
56539
56540    function normalizeObjectUnits(inputObject) {
56541        var normalizedInput = {},
56542            normalizedProp,
56543            prop;
56544
56545        for (prop in inputObject) {
56546            if (hasOwnProp(inputObject, prop)) {
56547                normalizedProp = normalizeUnits(prop);
56548                if (normalizedProp) {
56549                    normalizedInput[normalizedProp] = inputObject[prop];
56550                }
56551            }
56552        }
56553
56554        return normalizedInput;
56555    }
56556
56557    var priorities = {
56558        date: 9,
56559        day: 11,
56560        weekday: 11,
56561        isoWeekday: 11,
56562        dayOfYear: 4,
56563        hour: 13,
56564        millisecond: 16,
56565        minute: 14,
56566        month: 8,
56567        quarter: 7,
56568        second: 15,
56569        weekYear: 1,
56570        isoWeekYear: 1,
56571        week: 5,
56572        isoWeek: 5,
56573        year: 1,
56574    };
56575
56576    function getPrioritizedUnits(unitsObj) {
56577        var units = [],
56578            u;
56579        for (u in unitsObj) {
56580            if (hasOwnProp(unitsObj, u)) {
56581                units.push({ unit: u, priority: priorities[u] });
56582            }
56583        }
56584        units.sort(function (a, b) {
56585            return a.priority - b.priority;
56586        });
56587        return units;
56588    }
56589
56590    var match1 = /\d/, //       0 - 9
56591        match2 = /\d\d/, //      00 - 99
56592        match3 = /\d{3}/, //     000 - 999
56593        match4 = /\d{4}/, //    0000 - 9999
56594        match6 = /[+-]?\d{6}/, // -999999 - 999999
56595        match1to2 = /\d\d?/, //       0 - 99
56596        match3to4 = /\d\d\d\d?/, //     999 - 9999
56597        match5to6 = /\d\d\d\d\d\d?/, //   99999 - 999999
56598        match1to3 = /\d{1,3}/, //       0 - 999
56599        match1to4 = /\d{1,4}/, //       0 - 9999
56600        match1to6 = /[+-]?\d{1,6}/, // -999999 - 999999
56601        matchUnsigned = /\d+/, //       0 - inf
56602        matchSigned = /[+-]?\d+/, //    -inf - inf
56603        matchOffset = /Z|[+-]\d\d:?\d\d/gi, // +00:00 -00:00 +0000 -0000 or Z
56604        matchShortOffset = /Z|[+-]\d\d(?::?\d\d)?/gi, // +00 -00 +00:00 -00:00 +0000 -0000 or Z
56605        matchTimestamp = /[+-]?\d+(\.\d{1,3})?/, // 123456789 123456789.123
56606        // any word (or two) characters or numbers including two/three word month in arabic.
56607        // includes scottish gaelic two word and hyphenated months
56608        matchWord =
56609            /[0-9]{0,256}['a-z\u00A0-\u05FF\u0700-\uD7FF\uF900-\uFDCF\uFDF0-\uFF07\uFF10-\uFFEF]{1,256}|[\u0600-\u06FF\/]{1,256}(\s*?[\u0600-\u06FF]{1,256}){1,2}/i,
56610        match1to2NoLeadingZero = /^[1-9]\d?/, //         1-99
56611        match1to2HasZero = /^([1-9]\d|\d)/, //           0-99
56612        regexes;
56613
56614    regexes = {};
56615
56616    function addRegexToken(token, regex, strictRegex) {
56617        regexes[token] = isFunction(regex)
56618            ? regex
56619            : function (isStrict, localeData) {
56620                  return isStrict && strictRegex ? strictRegex : regex;
56621              };
56622    }
56623
56624    function getParseRegexForToken(token, config) {
56625        if (!hasOwnProp(regexes, token)) {
56626            return new RegExp(unescapeFormat(token));
56627        }
56628
56629        return regexes[token](config._strict, config._locale);
56630    }
56631
56632    // Code from http://stackoverflow.com/questions/3561493/is-there-a-regexp-escape-function-in-javascript
56633    function unescapeFormat(s) {
56634        return regexEscape(
56635            s
56636                .replace('\\', '')
56637                .replace(
56638                    /\\(\[)|\\(\])|\[([^\]\[]*)\]|\\(.)/g,
56639                    function (matched, p1, p2, p3, p4) {
56640                        return p1 || p2 || p3 || p4;
56641                    }
56642                )
56643        );
56644    }
56645
56646    function regexEscape(s) {
56647        return s.replace(/[-\/\\^$*+?.()|[\]{}]/g, '\\$&');
56648    }
56649
56650    function absFloor(number) {
56651        if (number < 0) {
56652            // -0 -> 0
56653            return Math.ceil(number) || 0;
56654        } else {
56655            return Math.floor(number);
56656        }
56657    }
56658
56659    function toInt(argumentForCoercion) {
56660        var coercedNumber = +argumentForCoercion,
56661            value = 0;
56662
56663        if (coercedNumber !== 0 && isFinite(coercedNumber)) {
56664            value = absFloor(coercedNumber);
56665        }
56666
56667        return value;
56668    }
56669
56670    var tokens = {};
56671
56672    function addParseToken(token, callback) {
56673        var i,
56674            func = callback,
56675            tokenLen;
56676        if (typeof token === 'string') {
56677            token = [token];
56678        }
56679        if (isNumber(callback)) {
56680            func = function (input, array) {
56681                array[callback] = toInt(input);
56682            };
56683        }
56684        tokenLen = token.length;
56685        for (i = 0; i < tokenLen; i++) {
56686            tokens[token[i]] = func;
56687        }
56688    }
56689
56690    function addWeekParseToken(token, callback) {
56691        addParseToken(token, function (input, array, config, token) {
56692            config._w = config._w || {};
56693            callback(input, config._w, config, token);
56694        });
56695    }
56696
56697    function addTimeToArrayFromToken(token, input, config) {
56698        if (input != null && hasOwnProp(tokens, token)) {
56699            tokens[token](input, config._a, config, token);
56700        }
56701    }
56702
56703    function isLeapYear(year) {
56704        return (year % 4 === 0 && year % 100 !== 0) || year % 400 === 0;
56705    }
56706
56707    var YEAR = 0,
56708        MONTH = 1,
56709        DATE = 2,
56710        HOUR = 3,
56711        MINUTE = 4,
56712        SECOND = 5,
56713        MILLISECOND = 6,
56714        WEEK = 7,
56715        WEEKDAY = 8;
56716
56717    // FORMATTING
56718
56719    addFormatToken('Y', 0, 0, function () {
56720        var y = this.year();
56721        return y <= 9999 ? zeroFill(y, 4) : '+' + y;
56722    });
56723
56724    addFormatToken(0, ['YY', 2], 0, function () {
56725        return this.year() % 100;
56726    });
56727
56728    addFormatToken(0, ['YYYY', 4], 0, 'year');
56729    addFormatToken(0, ['YYYYY', 5], 0, 'year');
56730    addFormatToken(0, ['YYYYYY', 6, true], 0, 'year');
56731
56732    // PARSING
56733
56734    addRegexToken('Y', matchSigned);
56735    addRegexToken('YY', match1to2, match2);
56736    addRegexToken('YYYY', match1to4, match4);
56737    addRegexToken('YYYYY', match1to6, match6);
56738    addRegexToken('YYYYYY', match1to6, match6);
56739
56740    addParseToken(['YYYYY', 'YYYYYY'], YEAR);
56741    addParseToken('YYYY', function (input, array) {
56742        array[YEAR] =
56743            input.length === 2 ? hooks.parseTwoDigitYear(input) : toInt(input);
56744    });
56745    addParseToken('YY', function (input, array) {
56746        array[YEAR] = hooks.parseTwoDigitYear(input);
56747    });
56748    addParseToken('Y', function (input, array) {
56749        array[YEAR] = parseInt(input, 10);
56750    });
56751
56752    // HELPERS
56753
56754    function daysInYear(year) {
56755        return isLeapYear(year) ? 366 : 365;
56756    }
56757
56758    // HOOKS
56759
56760    hooks.parseTwoDigitYear = function (input) {
56761        return toInt(input) + (toInt(input) > 68 ? 1900 : 2000);
56762    };
56763
56764    // MOMENTS
56765
56766    var getSetYear = makeGetSet('FullYear', true);
56767
56768    function getIsLeapYear() {
56769        return isLeapYear(this.year());
56770    }
56771
56772    function makeGetSet(unit, keepTime) {
56773        return function (value) {
56774            if (value != null) {
56775                set$1(this, unit, value);
56776                hooks.updateOffset(this, keepTime);
56777                return this;
56778            } else {
56779                return get(this, unit);
56780            }
56781        };
56782    }
56783
56784    function get(mom, unit) {
56785        if (!mom.isValid()) {
56786            return NaN;
56787        }
56788
56789        var d = mom._d,
56790            isUTC = mom._isUTC;
56791
56792        switch (unit) {
56793            case 'Milliseconds':
56794                return isUTC ? d.getUTCMilliseconds() : d.getMilliseconds();
56795            case 'Seconds':
56796                return isUTC ? d.getUTCSeconds() : d.getSeconds();
56797            case 'Minutes':
56798                return isUTC ? d.getUTCMinutes() : d.getMinutes();
56799            case 'Hours':
56800                return isUTC ? d.getUTCHours() : d.getHours();
56801            case 'Date':
56802                return isUTC ? d.getUTCDate() : d.getDate();
56803            case 'Day':
56804                return isUTC ? d.getUTCDay() : d.getDay();
56805            case 'Month':
56806                return isUTC ? d.getUTCMonth() : d.getMonth();
56807            case 'FullYear':
56808                return isUTC ? d.getUTCFullYear() : d.getFullYear();
56809            default:
56810                return NaN; // Just in case
56811        }
56812    }
56813
56814    function set$1(mom, unit, value) {
56815        var d, isUTC, year, month, date;
56816
56817        if (!mom.isValid() || isNaN(value)) {
56818            return;
56819        }
56820
56821        d = mom._d;
56822        isUTC = mom._isUTC;
56823
56824        switch (unit) {
56825            case 'Milliseconds':
56826                return void (isUTC
56827                    ? d.setUTCMilliseconds(value)
56828                    : d.setMilliseconds(value));
56829            case 'Seconds':
56830                return void (isUTC ? d.setUTCSeconds(value) : d.setSeconds(value));
56831            case 'Minutes':
56832                return void (isUTC ? d.setUTCMinutes(value) : d.setMinutes(value));
56833            case 'Hours':
56834                return void (isUTC ? d.setUTCHours(value) : d.setHours(value));
56835            case 'Date':
56836                return void (isUTC ? d.setUTCDate(value) : d.setDate(value));
56837            // case 'Day': // Not real
56838            //    return void (isUTC ? d.setUTCDay(value) : d.setDay(value));
56839            // case 'Month': // Not used because we need to pass two variables
56840            //     return void (isUTC ? d.setUTCMonth(value) : d.setMonth(value));
56841            case 'FullYear':
56842                break; // See below ...
56843            default:
56844                return; // Just in case
56845        }
56846
56847        year = value;
56848        month = mom.month();
56849        date = mom.date();
56850        date = date === 29 && month === 1 && !isLeapYear(year) ? 28 : date;
56851        void (isUTC
56852            ? d.setUTCFullYear(year, month, date)
56853            : d.setFullYear(year, month, date));
56854    }
56855
56856    // MOMENTS
56857
56858    function stringGet(units) {
56859        units = normalizeUnits(units);
56860        if (isFunction(this[units])) {
56861            return this[units]();
56862        }
56863        return this;
56864    }
56865
56866    function stringSet(units, value) {
56867        if (typeof units === 'object') {
56868            units = normalizeObjectUnits(units);
56869            var prioritized = getPrioritizedUnits(units),
56870                i,
56871                prioritizedLen = prioritized.length;
56872            for (i = 0; i < prioritizedLen; i++) {
56873                this[prioritized[i].unit](units[prioritized[i].unit]);
56874            }
56875        } else {
56876            units = normalizeUnits(units);
56877            if (isFunction(this[units])) {
56878                return this[units](value);
56879            }
56880        }
56881        return this;
56882    }
56883
56884    function mod(n, x) {
56885        return ((n % x) + x) % x;
56886    }
56887
56888    var indexOf;
56889
56890    if (Array.prototype.indexOf) {
56891        indexOf = Array.prototype.indexOf;
56892    } else {
56893        indexOf = function (o) {
56894            // I know
56895            var i;
56896            for (i = 0; i < this.length; ++i) {
56897                if (this[i] === o) {
56898                    return i;
56899                }
56900            }
56901            return -1;
56902        };
56903    }
56904
56905    function daysInMonth(year, month) {
56906        if (isNaN(year) || isNaN(month)) {
56907            return NaN;
56908        }
56909        var modMonth = mod(month, 12);
56910        year += (month - modMonth) / 12;
56911        return modMonth === 1
56912            ? isLeapYear(year)
56913                ? 29
56914                : 28
56915            : 31 - ((modMonth % 7) % 2);
56916    }
56917
56918    // FORMATTING
56919
56920    addFormatToken('M', ['MM', 2], 'Mo', function () {
56921        return this.month() + 1;
56922    });
56923
56924    addFormatToken('MMM', 0, 0, function (format) {
56925        return this.localeData().monthsShort(this, format);
56926    });
56927
56928    addFormatToken('MMMM', 0, 0, function (format) {
56929        return this.localeData().months(this, format);
56930    });
56931
56932    // PARSING
56933
56934    addRegexToken('M', match1to2, match1to2NoLeadingZero);
56935    addRegexToken('MM', match1to2, match2);
56936    addRegexToken('MMM', function (isStrict, locale) {
56937        return locale.monthsShortRegex(isStrict);
56938    });
56939    addRegexToken('MMMM', function (isStrict, locale) {
56940        return locale.monthsRegex(isStrict);
56941    });
56942
56943    addParseToken(['M', 'MM'], function (input, array) {
56944        array[MONTH] = toInt(input) - 1;
56945    });
56946
56947    addParseToken(['MMM', 'MMMM'], function (input, array, config, token) {
56948        var month = config._locale.monthsParse(input, token, config._strict);
56949        // if we didn't find a month name, mark the date as invalid.
56950        if (month != null) {
56951            array[MONTH] = month;
56952        } else {
56953            getParsingFlags(config).invalidMonth = input;
56954        }
56955    });
56956
56957    // LOCALES
56958
56959    var defaultLocaleMonths =
56960            'January_February_March_April_May_June_July_August_September_October_November_December'.split(
56961                '_'
56962            ),
56963        defaultLocaleMonthsShort =
56964            'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_'),
56965        MONTHS_IN_FORMAT = /D[oD]?(\[[^\[\]]*\]|\s)+MMMM?/,
56966        defaultMonthsShortRegex = matchWord,
56967        defaultMonthsRegex = matchWord;
56968
56969    function localeMonths(m, format) {
56970        if (!m) {
56971            return isArray(this._months)
56972                ? this._months
56973                : this._months['standalone'];
56974        }
56975        return isArray(this._months)
56976            ? this._months[m.month()]
56977            : this._months[
56978                  (this._months.isFormat || MONTHS_IN_FORMAT).test(format)
56979                      ? 'format'
56980                      : 'standalone'
56981              ][m.month()];
56982    }
56983
56984    function localeMonthsShort(m, format) {
56985        if (!m) {
56986            return isArray(this._monthsShort)
56987                ? this._monthsShort
56988                : this._monthsShort['standalone'];
56989        }
56990        return isArray(this._monthsShort)
56991            ? this._monthsShort[m.month()]
56992            : this._monthsShort[
56993                  MONTHS_IN_FORMAT.test(format) ? 'format' : 'standalone'
56994              ][m.month()];
56995    }
56996
56997    function handleStrictParse(monthName, format, strict) {
56998        var i,
56999            ii,
57000            mom,
57001            llc = monthName.toLocaleLowerCase();
57002        if (!this._monthsParse) {
57003            // this is not used
57004            this._monthsParse = [];
57005            this._longMonthsParse = [];
57006            this._shortMonthsParse = [];
57007            for (i = 0; i < 12; ++i) {
57008                mom = createUTC([2000, i]);
57009                this._shortMonthsParse[i] = this.monthsShort(
57010                    mom,
57011                    ''
57012                ).toLocaleLowerCase();
57013                this._longMonthsParse[i] = this.months(mom, '').toLocaleLowerCase();
57014            }
57015        }
57016
57017        if (strict) {
57018            if (format === 'MMM') {
57019                ii = indexOf.call(this._shortMonthsParse, llc);
57020                return ii !== -1 ? ii : null;
57021            } else {
57022                ii = indexOf.call(this._longMonthsParse, llc);
57023                return ii !== -1 ? ii : null;
57024            }
57025        } else {
57026            if (format === 'MMM') {
57027                ii = indexOf.call(this._shortMonthsParse, llc);
57028                if (ii !== -1) {
57029                    return ii;
57030                }
57031                ii = indexOf.call(this._longMonthsParse, llc);
57032                return ii !== -1 ? ii : null;
57033            } else {
57034                ii = indexOf.call(this._longMonthsParse, llc);
57035                if (ii !== -1) {
57036                    return ii;
57037                }
57038                ii = indexOf.call(this._shortMonthsParse, llc);
57039                return ii !== -1 ? ii : null;
57040            }
57041        }
57042    }
57043
57044    function localeMonthsParse(monthName, format, strict) {
57045        var i, mom, regex;
57046
57047        if (this._monthsParseExact) {
57048            return handleStrictParse.call(this, monthName, format, strict);
57049        }
57050
57051        if (!this._monthsParse) {
57052            this._monthsParse = [];
57053            this._longMonthsParse = [];
57054            this._shortMonthsParse = [];
57055        }
57056
57057        // TODO: add sorting
57058        // Sorting makes sure if one month (or abbr) is a prefix of another
57059        // see sorting in computeMonthsParse
57060        for (i = 0; i < 12; i++) {
57061            // make the regex if we don't have it already
57062            mom = createUTC([2000, i]);
57063            if (strict && !this._longMonthsParse[i]) {
57064                this._longMonthsParse[i] = new RegExp(
57065                    '^' + this.months(mom, '').replace('.', '') + '$',
57066                    'i'
57067                );
57068                this._shortMonthsParse[i] = new RegExp(
57069                    '^' + this.monthsShort(mom, '').replace('.', '') + '$',
57070                    'i'
57071                );
57072            }
57073            if (!strict && !this._monthsParse[i]) {
57074                regex =
57075                    '^' + this.months(mom, '') + '|^' + this.monthsShort(mom, '');
57076                this._monthsParse[i] = new RegExp(regex.replace('.', ''), 'i');
57077            }
57078            // test the regex
57079            if (
57080                strict &&
57081                format === 'MMMM' &&
57082                this._longMonthsParse[i].test(monthName)
57083            ) {
57084                return i;
57085            } else if (
57086                strict &&
57087                format === 'MMM' &&
57088                this._shortMonthsParse[i].test(monthName)
57089            ) {
57090                return i;
57091            } else if (!strict && this._monthsParse[i].test(monthName)) {
57092                return i;
57093            }
57094        }
57095    }
57096
57097    // MOMENTS
57098
57099    function setMonth(mom, value) {
57100        if (!mom.isValid()) {
57101            // No op
57102            return mom;
57103        }
57104
57105        if (typeof value === 'string') {
57106            if (/^\d+$/.test(value)) {
57107                value = toInt(value);
57108            } else {
57109                value = mom.localeData().monthsParse(value);
57110                // TODO: Another silent failure?
57111                if (!isNumber(value)) {
57112                    return mom;
57113                }
57114            }
57115        }
57116
57117        var month = value,
57118            date = mom.date();
57119
57120        date = date < 29 ? date : Math.min(date, daysInMonth(mom.year(), month));
57121        void (mom._isUTC
57122            ? mom._d.setUTCMonth(month, date)
57123            : mom._d.setMonth(month, date));
57124        return mom;
57125    }
57126
57127    function getSetMonth(value) {
57128        if (value != null) {
57129            setMonth(this, value);
57130            hooks.updateOffset(this, true);
57131            return this;
57132        } else {
57133            return get(this, 'Month');
57134        }
57135    }
57136
57137    function getDaysInMonth() {
57138        return daysInMonth(this.year(), this.month());
57139    }
57140
57141    function monthsShortRegex(isStrict) {
57142        if (this._monthsParseExact) {
57143            if (!hasOwnProp(this, '_monthsRegex')) {
57144                computeMonthsParse.call(this);
57145            }
57146            if (isStrict) {
57147                return this._monthsShortStrictRegex;
57148            } else {
57149                return this._monthsShortRegex;
57150            }
57151        } else {
57152            if (!hasOwnProp(this, '_monthsShortRegex')) {
57153                this._monthsShortRegex = defaultMonthsShortRegex;
57154            }
57155            return this._monthsShortStrictRegex && isStrict
57156                ? this._monthsShortStrictRegex
57157                : this._monthsShortRegex;
57158        }
57159    }
57160
57161    function monthsRegex(isStrict) {
57162        if (this._monthsParseExact) {
57163            if (!hasOwnProp(this, '_monthsRegex')) {
57164                computeMonthsParse.call(this);
57165            }
57166            if (isStrict) {
57167                return this._monthsStrictRegex;
57168            } else {
57169                return this._monthsRegex;
57170            }
57171        } else {
57172            if (!hasOwnProp(this, '_monthsRegex')) {
57173                this._monthsRegex = defaultMonthsRegex;
57174            }
57175            return this._monthsStrictRegex && isStrict
57176                ? this._monthsStrictRegex
57177                : this._monthsRegex;
57178        }
57179    }
57180
57181    function computeMonthsParse() {
57182        function cmpLenRev(a, b) {
57183            return b.length - a.length;
57184        }
57185
57186        var shortPieces = [],
57187            longPieces = [],
57188            mixedPieces = [],
57189            i,
57190            mom,
57191            shortP,
57192            longP;
57193        for (i = 0; i < 12; i++) {
57194            // make the regex if we don't have it already
57195            mom = createUTC([2000, i]);
57196            shortP = regexEscape(this.monthsShort(mom, ''));
57197            longP = regexEscape(this.months(mom, ''));
57198            shortPieces.push(shortP);
57199            longPieces.push(longP);
57200            mixedPieces.push(longP);
57201            mixedPieces.push(shortP);
57202        }
57203        // Sorting makes sure if one month (or abbr) is a prefix of another it
57204        // will match the longer piece.
57205        shortPieces.sort(cmpLenRev);
57206        longPieces.sort(cmpLenRev);
57207        mixedPieces.sort(cmpLenRev);
57208
57209        this._monthsRegex = new RegExp('^(' + mixedPieces.join('|') + ')', 'i');
57210        this._monthsShortRegex = this._monthsRegex;
57211        this._monthsStrictRegex = new RegExp(
57212            '^(' + longPieces.join('|') + ')',
57213            'i'
57214        );
57215        this._monthsShortStrictRegex = new RegExp(
57216            '^(' + shortPieces.join('|') + ')',
57217            'i'
57218        );
57219    }
57220
57221    function createDate(y, m, d, h, M, s, ms) {
57222        // can't just apply() to create a date:
57223        // https://stackoverflow.com/q/181348
57224        var date;
57225        // the date constructor remaps years 0-99 to 1900-1999
57226        if (y < 100 && y >= 0) {
57227            // preserve leap years using a full 400 year cycle, then reset
57228            date = new Date(y + 400, m, d, h, M, s, ms);
57229            if (isFinite(date.getFullYear())) {
57230                date.setFullYear(y);
57231            }
57232        } else {
57233            date = new Date(y, m, d, h, M, s, ms);
57234        }
57235
57236        return date;
57237    }
57238
57239    function createUTCDate(y) {
57240        var date, args;
57241        // the Date.UTC function remaps years 0-99 to 1900-1999
57242        if (y < 100 && y >= 0) {
57243            args = Array.prototype.slice.call(arguments);
57244            // preserve leap years using a full 400 year cycle, then reset
57245            args[0] = y + 400;
57246            date = new Date(Date.UTC.apply(null, args));
57247            if (isFinite(date.getUTCFullYear())) {
57248                date.setUTCFullYear(y);
57249            }
57250        } else {
57251            date = new Date(Date.UTC.apply(null, arguments));
57252        }
57253
57254        return date;
57255    }
57256
57257    // start-of-first-week - start-of-year
57258    function firstWeekOffset(year, dow, doy) {
57259        var // first-week day -- which january is always in the first week (4 for iso, 1 for other)
57260            fwd = 7 + dow - doy,
57261            // first-week day local weekday -- which local weekday is fwd
57262            fwdlw = (7 + createUTCDate(year, 0, fwd).getUTCDay() - dow) % 7;
57263
57264        return -fwdlw + fwd - 1;
57265    }
57266
57267    // https://en.wikipedia.org/wiki/ISO_week_date#Calculating_a_date_given_the_year.2C_week_number_and_weekday
57268    function dayOfYearFromWeeks(year, week, weekday, dow, doy) {
57269        var localWeekday = (7 + weekday - dow) % 7,
57270            weekOffset = firstWeekOffset(year, dow, doy),
57271            dayOfYear = 1 + 7 * (week - 1) + localWeekday + weekOffset,
57272            resYear,
57273            resDayOfYear;
57274
57275        if (dayOfYear <= 0) {
57276            resYear = year - 1;
57277            resDayOfYear = daysInYear(resYear) + dayOfYear;
57278        } else if (dayOfYear > daysInYear(year)) {
57279            resYear = year + 1;
57280            resDayOfYear = dayOfYear - daysInYear(year);
57281        } else {
57282            resYear = year;
57283            resDayOfYear = dayOfYear;
57284        }
57285
57286        return {
57287            year: resYear,
57288            dayOfYear: resDayOfYear,
57289        };
57290    }
57291
57292    function weekOfYear(mom, dow, doy) {
57293        var weekOffset = firstWeekOffset(mom.year(), dow, doy),
57294            week = Math.floor((mom.dayOfYear() - weekOffset - 1) / 7) + 1,
57295            resWeek,
57296            resYear;
57297
57298        if (week < 1) {
57299            resYear = mom.year() - 1;
57300            resWeek = week + weeksInYear(resYear, dow, doy);
57301        } else if (week > weeksInYear(mom.year(), dow, doy)) {
57302            resWeek = week - weeksInYear(mom.year(), dow, doy);
57303            resYear = mom.year() + 1;
57304        } else {
57305            resYear = mom.year();
57306            resWeek = week;
57307        }
57308
57309        return {
57310            week: resWeek,
57311            year: resYear,
57312        };
57313    }
57314
57315    function weeksInYear(year, dow, doy) {
57316        var weekOffset = firstWeekOffset(year, dow, doy),
57317            weekOffsetNext = firstWeekOffset(year + 1, dow, doy);
57318        return (daysInYear(year) - weekOffset + weekOffsetNext) / 7;
57319    }
57320
57321    // FORMATTING
57322
57323    addFormatToken('w', ['ww', 2], 'wo', 'week');
57324    addFormatToken('W', ['WW', 2], 'Wo', 'isoWeek');
57325
57326    // PARSING
57327
57328    addRegexToken('w', match1to2, match1to2NoLeadingZero);
57329    addRegexToken('ww', match1to2, match2);
57330    addRegexToken('W', match1to2, match1to2NoLeadingZero);
57331    addRegexToken('WW', match1to2, match2);
57332
57333    addWeekParseToken(
57334        ['w', 'ww', 'W', 'WW'],
57335        function (input, week, config, token) {
57336            week[token.substr(0, 1)] = toInt(input);
57337        }
57338    );
57339
57340    // HELPERS
57341
57342    // LOCALES
57343
57344    function localeWeek(mom) {
57345        return weekOfYear(mom, this._week.dow, this._week.doy).week;
57346    }
57347
57348    var defaultLocaleWeek = {
57349        dow: 0, // Sunday is the first day of the week.
57350        doy: 6, // The week that contains Jan 6th is the first week of the year.
57351    };
57352
57353    function localeFirstDayOfWeek() {
57354        return this._week.dow;
57355    }
57356
57357    function localeFirstDayOfYear() {
57358        return this._week.doy;
57359    }
57360
57361    // MOMENTS
57362
57363    function getSetWeek(input) {
57364        var week = this.localeData().week(this);
57365        return input == null ? week : this.add((input - week) * 7, 'd');
57366    }
57367
57368    function getSetISOWeek(input) {
57369        var week = weekOfYear(this, 1, 4).week;
57370        return input == null ? week : this.add((input - week) * 7, 'd');
57371    }
57372
57373    // FORMATTING
57374
57375    addFormatToken('d', 0, 'do', 'day');
57376
57377    addFormatToken('dd', 0, 0, function (format) {
57378        return this.localeData().weekdaysMin(this, format);
57379    });
57380
57381    addFormatToken('ddd', 0, 0, function (format) {
57382        return this.localeData().weekdaysShort(this, format);
57383    });
57384
57385    addFormatToken('dddd', 0, 0, function (format) {
57386        return this.localeData().weekdays(this, format);
57387    });
57388
57389    addFormatToken('e', 0, 0, 'weekday');
57390    addFormatToken('E', 0, 0, 'isoWeekday');
57391
57392    // PARSING
57393
57394    addRegexToken('d', match1to2);
57395    addRegexToken('e', match1to2);
57396    addRegexToken('E', match1to2);
57397    addRegexToken('dd', function (isStrict, locale) {
57398        return locale.weekdaysMinRegex(isStrict);
57399    });
57400    addRegexToken('ddd', function (isStrict, locale) {
57401        return locale.weekdaysShortRegex(isStrict);
57402    });
57403    addRegexToken('dddd', function (isStrict, locale) {
57404        return locale.weekdaysRegex(isStrict);
57405    });
57406
57407    addWeekParseToken(['dd', 'ddd', 'dddd'], function (input, week, config, token) {
57408        var weekday = config._locale.weekdaysParse(input, token, config._strict);
57409        // if we didn't get a weekday name, mark the date as invalid
57410        if (weekday != null) {
57411            week.d = weekday;
57412        } else {
57413            getParsingFlags(config).invalidWeekday = input;
57414        }
57415    });
57416
57417    addWeekParseToken(['d', 'e', 'E'], function (input, week, config, token) {
57418        week[token] = toInt(input);
57419    });
57420
57421    // HELPERS
57422
57423    function parseWeekday(input, locale) {
57424        if (typeof input !== 'string') {
57425            return input;
57426        }
57427
57428        if (!isNaN(input)) {
57429            return parseInt(input, 10);
57430        }
57431
57432        input = locale.weekdaysParse(input);
57433        if (typeof input === 'number') {
57434            return input;
57435        }
57436
57437        return null;
57438    }
57439
57440    function parseIsoWeekday(input, locale) {
57441        if (typeof input === 'string') {
57442            return locale.weekdaysParse(input) % 7 || 7;
57443        }
57444        return isNaN(input) ? null : input;
57445    }
57446
57447    // LOCALES
57448    function shiftWeekdays(ws, n) {
57449        return ws.slice(n, 7).concat(ws.slice(0, n));
57450    }
57451
57452    var defaultLocaleWeekdays =
57453            'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split('_'),
57454        defaultLocaleWeekdaysShort = 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'),
57455        defaultLocaleWeekdaysMin = 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_'),
57456        defaultWeekdaysRegex = matchWord,
57457        defaultWeekdaysShortRegex = matchWord,
57458        defaultWeekdaysMinRegex = matchWord;
57459
57460    function localeWeekdays(m, format) {
57461        var weekdays = isArray(this._weekdays)
57462            ? this._weekdays
57463            : this._weekdays[
57464                  m && m !== true && this._weekdays.isFormat.test(format)
57465                      ? 'format'
57466                      : 'standalone'
57467              ];
57468        return m === true
57469            ? shiftWeekdays(weekdays, this._week.dow)
57470            : m
57471              ? weekdays[m.day()]
57472              : weekdays;
57473    }
57474
57475    function localeWeekdaysShort(m) {
57476        return m === true
57477            ? shiftWeekdays(this._weekdaysShort, this._week.dow)
57478            : m
57479              ? this._weekdaysShort[m.day()]
57480              : this._weekdaysShort;
57481    }
57482
57483    function localeWeekdaysMin(m) {
57484        return m === true
57485            ? shiftWeekdays(this._weekdaysMin, this._week.dow)
57486            : m
57487              ? this._weekdaysMin[m.day()]
57488              : this._weekdaysMin;
57489    }
57490
57491    function handleStrictParse$1(weekdayName, format, strict) {
57492        var i,
57493            ii,
57494            mom,
57495            llc = weekdayName.toLocaleLowerCase();
57496        if (!this._weekdaysParse) {
57497            this._weekdaysParse = [];
57498            this._shortWeekdaysParse = [];
57499            this._minWeekdaysParse = [];
57500
57501            for (i = 0; i < 7; ++i) {
57502                mom = createUTC([2000, 1]).day(i);
57503                this._minWeekdaysParse[i] = this.weekdaysMin(
57504                    mom,
57505                    ''
57506                ).toLocaleLowerCase();
57507                this._shortWeekdaysParse[i] = this.weekdaysShort(
57508                    mom,
57509                    ''
57510                ).toLocaleLowerCase();
57511                this._weekdaysParse[i] = this.weekdays(mom, '').toLocaleLowerCase();
57512            }
57513        }
57514
57515        if (strict) {
57516            if (format === 'dddd') {
57517                ii = indexOf.call(this._weekdaysParse, llc);
57518                return ii !== -1 ? ii : null;
57519            } else if (format === 'ddd') {
57520                ii = indexOf.call(this._shortWeekdaysParse, llc);
57521                return ii !== -1 ? ii : null;
57522            } else {
57523                ii = indexOf.call(this._minWeekdaysParse, llc);
57524                return ii !== -1 ? ii : null;
57525            }
57526        } else {
57527            if (format === 'dddd') {
57528                ii = indexOf.call(this._weekdaysParse, llc);
57529                if (ii !== -1) {
57530                    return ii;
57531                }
57532                ii = indexOf.call(this._shortWeekdaysParse, llc);
57533                if (ii !== -1) {
57534                    return ii;
57535                }
57536                ii = indexOf.call(this._minWeekdaysParse, llc);
57537                return ii !== -1 ? ii : null;
57538            } else if (format === 'ddd') {
57539                ii = indexOf.call(this._shortWeekdaysParse, llc);
57540                if (ii !== -1) {
57541                    return ii;
57542                }
57543                ii = indexOf.call(this._weekdaysParse, llc);
57544                if (ii !== -1) {
57545                    return ii;
57546                }
57547                ii = indexOf.call(this._minWeekdaysParse, llc);
57548                return ii !== -1 ? ii : null;
57549            } else {
57550                ii = indexOf.call(this._minWeekdaysParse, llc);
57551                if (ii !== -1) {
57552                    return ii;
57553                }
57554                ii = indexOf.call(this._weekdaysParse, llc);
57555                if (ii !== -1) {
57556                    return ii;
57557                }
57558                ii = indexOf.call(this._shortWeekdaysParse, llc);
57559                return ii !== -1 ? ii : null;
57560            }
57561        }
57562    }
57563
57564    function localeWeekdaysParse(weekdayName, format, strict) {
57565        var i, mom, regex;
57566
57567        if (this._weekdaysParseExact) {
57568            return handleStrictParse$1.call(this, weekdayName, format, strict);
57569        }
57570
57571        if (!this._weekdaysParse) {
57572            this._weekdaysParse = [];
57573            this._minWeekdaysParse = [];
57574            this._shortWeekdaysParse = [];
57575            this._fullWeekdaysParse = [];
57576        }
57577
57578        for (i = 0; i < 7; i++) {
57579            // make the regex if we don't have it already
57580
57581            mom = createUTC([2000, 1]).day(i);
57582            if (strict && !this._fullWeekdaysParse[i]) {
57583                this._fullWeekdaysParse[i] = new RegExp(
57584                    '^' + this.weekdays(mom, '').replace('.', '\\.?') + '$',
57585                    'i'
57586                );
57587                this._shortWeekdaysParse[i] = new RegExp(
57588                    '^' + this.weekdaysShort(mom, '').replace('.', '\\.?') + '$',
57589                    'i'
57590                );
57591                this._minWeekdaysParse[i] = new RegExp(
57592                    '^' + this.weekdaysMin(mom, '').replace('.', '\\.?') + '$',
57593                    'i'
57594                );
57595            }
57596            if (!this._weekdaysParse[i]) {
57597                regex =
57598                    '^' +
57599                    this.weekdays(mom, '') +
57600                    '|^' +
57601                    this.weekdaysShort(mom, '') +
57602                    '|^' +
57603                    this.weekdaysMin(mom, '');
57604                this._weekdaysParse[i] = new RegExp(regex.replace('.', ''), 'i');
57605            }
57606            // test the regex
57607            if (
57608                strict &&
57609                format === 'dddd' &&
57610                this._fullWeekdaysParse[i].test(weekdayName)
57611            ) {
57612                return i;
57613            } else if (
57614                strict &&
57615                format === 'ddd' &&
57616                this._shortWeekdaysParse[i].test(weekdayName)
57617            ) {
57618                return i;
57619            } else if (
57620                strict &&
57621                format === 'dd' &&
57622                this._minWeekdaysParse[i].test(weekdayName)
57623            ) {
57624                return i;
57625            } else if (!strict && this._weekdaysParse[i].test(weekdayName)) {
57626                return i;
57627            }
57628        }
57629    }
57630
57631    // MOMENTS
57632
57633    function getSetDayOfWeek(input) {
57634        if (!this.isValid()) {
57635            return input != null ? this : NaN;
57636        }
57637
57638        var day = get(this, 'Day');
57639        if (input != null) {
57640            input = parseWeekday(input, this.localeData());
57641            return this.add(input - day, 'd');
57642        } else {
57643            return day;
57644        }
57645    }
57646
57647    function getSetLocaleDayOfWeek(input) {
57648        if (!this.isValid()) {
57649            return input != null ? this : NaN;
57650        }
57651        var weekday = (this.day() + 7 - this.localeData()._week.dow) % 7;
57652        return input == null ? weekday : this.add(input - weekday, 'd');
57653    }
57654
57655    function getSetISODayOfWeek(input) {
57656        if (!this.isValid()) {
57657            return input != null ? this : NaN;
57658        }
57659
57660        // behaves the same as moment#day except
57661        // as a getter, returns 7 instead of 0 (1-7 range instead of 0-6)
57662        // as a setter, sunday should belong to the previous week.
57663
57664        if (input != null) {
57665            var weekday = parseIsoWeekday(input, this.localeData());
57666            return this.day(this.day() % 7 ? weekday : weekday - 7);
57667        } else {
57668            return this.day() || 7;
57669        }
57670    }
57671
57672    function weekdaysRegex(isStrict) {
57673        if (this._weekdaysParseExact) {
57674            if (!hasOwnProp(this, '_weekdaysRegex')) {
57675                computeWeekdaysParse.call(this);
57676            }
57677            if (isStrict) {
57678                return this._weekdaysStrictRegex;
57679            } else {
57680                return this._weekdaysRegex;
57681            }
57682        } else {
57683            if (!hasOwnProp(this, '_weekdaysRegex')) {
57684                this._weekdaysRegex = defaultWeekdaysRegex;
57685            }
57686            return this._weekdaysStrictRegex && isStrict
57687                ? this._weekdaysStrictRegex
57688                : this._weekdaysRegex;
57689        }
57690    }
57691
57692    function weekdaysShortRegex(isStrict) {
57693        if (this._weekdaysParseExact) {
57694            if (!hasOwnProp(this, '_weekdaysRegex')) {
57695                computeWeekdaysParse.call(this);
57696            }
57697            if (isStrict) {
57698                return this._weekdaysShortStrictRegex;
57699            } else {
57700                return this._weekdaysShortRegex;
57701            }
57702        } else {
57703            if (!hasOwnProp(this, '_weekdaysShortRegex')) {
57704                this._weekdaysShortRegex = defaultWeekdaysShortRegex;
57705            }
57706            return this._weekdaysShortStrictRegex && isStrict
57707                ? this._weekdaysShortStrictRegex
57708                : this._weekdaysShortRegex;
57709        }
57710    }
57711
57712    function weekdaysMinRegex(isStrict) {
57713        if (this._weekdaysParseExact) {
57714            if (!hasOwnProp(this, '_weekdaysRegex')) {
57715                computeWeekdaysParse.call(this);
57716            }
57717            if (isStrict) {
57718                return this._weekdaysMinStrictRegex;
57719            } else {
57720                return this._weekdaysMinRegex;
57721            }
57722        } else {
57723            if (!hasOwnProp(this, '_weekdaysMinRegex')) {
57724                this._weekdaysMinRegex = defaultWeekdaysMinRegex;
57725            }
57726            return this._weekdaysMinStrictRegex && isStrict
57727                ? this._weekdaysMinStrictRegex
57728                : this._weekdaysMinRegex;
57729        }
57730    }
57731
57732    function computeWeekdaysParse() {
57733        function cmpLenRev(a, b) {
57734            return b.length - a.length;
57735        }
57736
57737        var minPieces = [],
57738            shortPieces = [],
57739            longPieces = [],
57740            mixedPieces = [],
57741            i,
57742            mom,
57743            minp,
57744            shortp,
57745            longp;
57746        for (i = 0; i < 7; i++) {
57747            // make the regex if we don't have it already
57748            mom = createUTC([2000, 1]).day(i);
57749            minp = regexEscape(this.weekdaysMin(mom, ''));
57750            shortp = regexEscape(this.weekdaysShort(mom, ''));
57751            longp = regexEscape(this.weekdays(mom, ''));
57752            minPieces.push(minp);
57753            shortPieces.push(shortp);
57754            longPieces.push(longp);
57755            mixedPieces.push(minp);
57756            mixedPieces.push(shortp);
57757            mixedPieces.push(longp);
57758        }
57759        // Sorting makes sure if one weekday (or abbr) is a prefix of another it
57760        // will match the longer piece.
57761        minPieces.sort(cmpLenRev);
57762        shortPieces.sort(cmpLenRev);
57763        longPieces.sort(cmpLenRev);
57764        mixedPieces.sort(cmpLenRev);
57765
57766        this._weekdaysRegex = new RegExp('^(' + mixedPieces.join('|') + ')', 'i');
57767        this._weekdaysShortRegex = this._weekdaysRegex;
57768        this._weekdaysMinRegex = this._weekdaysRegex;
57769
57770        this._weekdaysStrictRegex = new RegExp(
57771            '^(' + longPieces.join('|') + ')',
57772            'i'
57773        );
57774        this._weekdaysShortStrictRegex = new RegExp(
57775            '^(' + shortPieces.join('|') + ')',
57776            'i'
57777        );
57778        this._weekdaysMinStrictRegex = new RegExp(
57779            '^(' + minPieces.join('|') + ')',
57780            'i'
57781        );
57782    }
57783
57784    // FORMATTING
57785
57786    function hFormat() {
57787        return this.hours() % 12 || 12;
57788    }
57789
57790    function kFormat() {
57791        return this.hours() || 24;
57792    }
57793
57794    addFormatToken('H', ['HH', 2], 0, 'hour');
57795    addFormatToken('h', ['hh', 2], 0, hFormat);
57796    addFormatToken('k', ['kk', 2], 0, kFormat);
57797
57798    addFormatToken('hmm', 0, 0, function () {
57799        return '' + hFormat.apply(this) + zeroFill(this.minutes(), 2);
57800    });
57801
57802    addFormatToken('hmmss', 0, 0, function () {
57803        return (
57804            '' +
57805            hFormat.apply(this) +
57806            zeroFill(this.minutes(), 2) +
57807            zeroFill(this.seconds(), 2)
57808        );
57809    });
57810
57811    addFormatToken('Hmm', 0, 0, function () {
57812        return '' + this.hours() + zeroFill(this.minutes(), 2);
57813    });
57814
57815    addFormatToken('Hmmss', 0, 0, function () {
57816        return (
57817            '' +
57818            this.hours() +
57819            zeroFill(this.minutes(), 2) +
57820            zeroFill(this.seconds(), 2)
57821        );
57822    });
57823
57824    function meridiem(token, lowercase) {
57825        addFormatToken(token, 0, 0, function () {
57826            return this.localeData().meridiem(
57827                this.hours(),
57828                this.minutes(),
57829                lowercase
57830            );
57831        });
57832    }
57833
57834    meridiem('a', true);
57835    meridiem('A', false);
57836
57837    // PARSING
57838
57839    function matchMeridiem(isStrict, locale) {
57840        return locale._meridiemParse;
57841    }
57842
57843    addRegexToken('a', matchMeridiem);
57844    addRegexToken('A', matchMeridiem);
57845    addRegexToken('H', match1to2, match1to2HasZero);
57846    addRegexToken('h', match1to2, match1to2NoLeadingZero);
57847    addRegexToken('k', match1to2, match1to2NoLeadingZero);
57848    addRegexToken('HH', match1to2, match2);
57849    addRegexToken('hh', match1to2, match2);
57850    addRegexToken('kk', match1to2, match2);
57851
57852    addRegexToken('hmm', match3to4);
57853    addRegexToken('hmmss', match5to6);
57854    addRegexToken('Hmm', match3to4);
57855    addRegexToken('Hmmss', match5to6);
57856
57857    addParseToken(['H', 'HH'], HOUR);
57858    addParseToken(['k', 'kk'], function (input, array, config) {
57859        var kInput = toInt(input);
57860        array[HOUR] = kInput === 24 ? 0 : kInput;
57861    });
57862    addParseToken(['a', 'A'], function (input, array, config) {
57863        config._isPm = config._locale.isPM(input);
57864        config._meridiem = input;
57865    });
57866    addParseToken(['h', 'hh'], function (input, array, config) {
57867        array[HOUR] = toInt(input);
57868        getParsingFlags(config).bigHour = true;
57869    });
57870    addParseToken('hmm', function (input, array, config) {
57871        var pos = input.length - 2;
57872        array[HOUR] = toInt(input.substr(0, pos));
57873        array[MINUTE] = toInt(input.substr(pos));
57874        getParsingFlags(config).bigHour = true;
57875    });
57876    addParseToken('hmmss', function (input, array, config) {
57877        var pos1 = input.length - 4,
57878            pos2 = input.length - 2;
57879        array[HOUR] = toInt(input.substr(0, pos1));
57880        array[MINUTE] = toInt(input.substr(pos1, 2));
57881        array[SECOND] = toInt(input.substr(pos2));
57882        getParsingFlags(config).bigHour = true;
57883    });
57884    addParseToken('Hmm', function (input, array, config) {
57885        var pos = input.length - 2;
57886        array[HOUR] = toInt(input.substr(0, pos));
57887        array[MINUTE] = toInt(input.substr(pos));
57888    });
57889    addParseToken('Hmmss', function (input, array, config) {
57890        var pos1 = input.length - 4,
57891            pos2 = input.length - 2;
57892        array[HOUR] = toInt(input.substr(0, pos1));
57893        array[MINUTE] = toInt(input.substr(pos1, 2));
57894        array[SECOND] = toInt(input.substr(pos2));
57895    });
57896
57897    // LOCALES
57898
57899    function localeIsPM(input) {
57900        // IE8 Quirks Mode & IE7 Standards Mode do not allow accessing strings like arrays
57901        // Using charAt should be more compatible.
57902        return (input + '').toLowerCase().charAt(0) === 'p';
57903    }
57904
57905    var defaultLocaleMeridiemParse = /[ap]\.?m?\.?/i,
57906        // Setting the hour should keep the time, because the user explicitly
57907        // specified which hour they want. So trying to maintain the same hour (in
57908        // a new timezone) makes sense. Adding/subtracting hours does not follow
57909        // this rule.
57910        getSetHour = makeGetSet('Hours', true);
57911
57912    function localeMeridiem(hours, minutes, isLower) {
57913        if (hours > 11) {
57914            return isLower ? 'pm' : 'PM';
57915        } else {
57916            return isLower ? 'am' : 'AM';
57917        }
57918    }
57919
57920    var baseConfig = {
57921        calendar: defaultCalendar,
57922        longDateFormat: defaultLongDateFormat,
57923        invalidDate: defaultInvalidDate,
57924        ordinal: defaultOrdinal,
57925        dayOfMonthOrdinalParse: defaultDayOfMonthOrdinalParse,
57926        relativeTime: defaultRelativeTime,
57927
57928        months: defaultLocaleMonths,
57929        monthsShort: defaultLocaleMonthsShort,
57930
57931        week: defaultLocaleWeek,
57932
57933        weekdays: defaultLocaleWeekdays,
57934        weekdaysMin: defaultLocaleWeekdaysMin,
57935        weekdaysShort: defaultLocaleWeekdaysShort,
57936
57937        meridiemParse: defaultLocaleMeridiemParse,
57938    };
57939
57940    // internal storage for locale config files
57941    var locales = {},
57942        localeFamilies = {},
57943        globalLocale;
57944
57945    function commonPrefix(arr1, arr2) {
57946        var i,
57947            minl = Math.min(arr1.length, arr2.length);
57948        for (i = 0; i < minl; i += 1) {
57949            if (arr1[i] !== arr2[i]) {
57950                return i;
57951            }
57952        }
57953        return minl;
57954    }
57955
57956    function normalizeLocale(key) {
57957        return key ? key.toLowerCase().replace('_', '-') : key;
57958    }
57959
57960    // pick the locale from the array
57961    // try ['en-au', 'en-gb'] as 'en-au', 'en-gb', 'en', as in move through the list trying each
57962    // substring from most specific to least, but move to the next array item if it's a more specific variant than the current root
57963    function chooseLocale(names) {
57964        var i = 0,
57965            j,
57966            next,
57967            locale,
57968            split;
57969
57970        while (i < names.length) {
57971            split = normalizeLocale(names[i]).split('-');
57972            j = split.length;
57973            next = normalizeLocale(names[i + 1]);
57974            next = next ? next.split('-') : null;
57975            while (j > 0) {
57976                locale = loadLocale(split.slice(0, j).join('-'));
57977                if (locale) {
57978                    return locale;
57979                }
57980                if (
57981                    next &&
57982                    next.length >= j &&
57983                    commonPrefix(split, next) >= j - 1
57984                ) {
57985                    //the next array item is better than a shallower substring of this one
57986                    break;
57987                }
57988                j--;
57989            }
57990            i++;
57991        }
57992        return globalLocale;
57993    }
57994
57995    function isLocaleNameSane(name) {
57996        // Prevent names that look like filesystem paths, i.e contain '/' or '\'
57997        // Ensure name is available and function returns boolean
57998        return !!(name && name.match('^[^/\\\\]*$'));
57999    }
58000
58001    function loadLocale(name) {
58002        var oldLocale = null,
58003            aliasedRequire;
58004        // TODO: Find a better way to register and load all the locales in Node
58005        if (
58006            locales[name] === undefined &&
58007            typeof module !== 'undefined' &&
58008            module &&
58009            module.exports &&
58010            isLocaleNameSane(name)
58011        ) {
58012            try {
58013                oldLocale = globalLocale._abbr;
58014                aliasedRequire = require;
58015                __webpack_require__("./node_modules/moment/locale sync recursive ^\\.\\/.*$")("./" + name);
58016                getSetGlobalLocale(oldLocale);
58017            } catch (e) {
58018                // mark as not found to avoid repeating expensive file require call causing high CPU
58019                // when trying to find en-US, en_US, en-us for every format call
58020                locales[name] = null; // null means not found
58021            }
58022        }
58023        return locales[name];
58024    }
58025
58026    // This function will load locale and then set the global locale.  If
58027    // no arguments are passed in, it will simply return the current global
58028    // locale key.
58029    function getSetGlobalLocale(key, values) {
58030        var data;
58031        if (key) {
58032            if (isUndefined(values)) {
58033                data = getLocale(key);
58034            } else {
58035                data = defineLocale(key, values);
58036            }
58037
58038            if (data) {
58039                // moment.duration._locale = moment._locale = data;
58040                globalLocale = data;
58041            } else {
58042                if (typeof console !== 'undefined' && console.warn) {
58043                    //warn user if arguments are passed but the locale could not be set
58044                    console.warn(
58045                        'Locale ' + key + ' not found. Did you forget to load it?'
58046                    );
58047                }
58048            }
58049        }
58050
58051        return globalLocale._abbr;
58052    }
58053
58054    function defineLocale(name, config) {
58055        if (config !== null) {
58056            var locale,
58057                parentConfig = baseConfig;
58058            config.abbr = name;
58059            if (locales[name] != null) {
58060                deprecateSimple(
58061                    'defineLocaleOverride',
58062                    'use moment.updateLocale(localeName, config) to change ' +
58063                        'an existing locale. moment.defineLocale(localeName, ' +
58064                        'config) should only be used for creating a new locale ' +
58065                        'See http://momentjs.com/guides/#/warnings/define-locale/ for more info.'
58066                );
58067                parentConfig = locales[name]._config;
58068            } else if (config.parentLocale != null) {
58069                if (locales[config.parentLocale] != null) {
58070                    parentConfig = locales[config.parentLocale]._config;
58071                } else {
58072                    locale = loadLocale(config.parentLocale);
58073                    if (locale != null) {
58074                        parentConfig = locale._config;
58075                    } else {
58076                        if (!localeFamilies[config.parentLocale]) {
58077                            localeFamilies[config.parentLocale] = [];
58078                        }
58079                        localeFamilies[config.parentLocale].push({
58080                            name: name,
58081                            config: config,
58082                        });
58083                        return null;
58084                    }
58085                }
58086            }
58087            locales[name] = new Locale(mergeConfigs(parentConfig, config));
58088
58089            if (localeFamilies[name]) {
58090                localeFamilies[name].forEach(function (x) {
58091                    defineLocale(x.name, x.config);
58092                });
58093            }
58094
58095            // backwards compat for now: also set the locale
58096            // make sure we set the locale AFTER all child locales have been
58097            // created, so we won't end up with the child locale set.
58098            getSetGlobalLocale(name);
58099
58100            return locales[name];
58101        } else {
58102            // useful for testing
58103            delete locales[name];
58104            return null;
58105        }
58106    }
58107
58108    function updateLocale(name, config) {
58109        if (config != null) {
58110            var locale,
58111                tmpLocale,
58112                parentConfig = baseConfig;
58113
58114            if (locales[name] != null && locales[name].parentLocale != null) {
58115                // Update existing child locale in-place to avoid memory-leaks
58116                locales[name].set(mergeConfigs(locales[name]._config, config));
58117            } else {
58118                // MERGE
58119                tmpLocale = loadLocale(name);
58120                if (tmpLocale != null) {
58121                    parentConfig = tmpLocale._config;
58122                }
58123                config = mergeConfigs(parentConfig, config);
58124                if (tmpLocale == null) {
58125                    // updateLocale is called for creating a new locale
58126                    // Set abbr so it will have a name (getters return
58127                    // undefined otherwise).
58128                    config.abbr = name;
58129                }
58130                locale = new Locale(config);
58131                locale.parentLocale = locales[name];
58132                locales[name] = locale;
58133            }
58134
58135            // backwards compat for now: also set the locale
58136            getSetGlobalLocale(name);
58137        } else {
58138            // pass null for config to unupdate, useful for tests
58139            if (locales[name] != null) {
58140                if (locales[name].parentLocale != null) {
58141                    locales[name] = locales[name].parentLocale;
58142                    if (name === getSetGlobalLocale()) {
58143                        getSetGlobalLocale(name);
58144                    }
58145                } else if (locales[name] != null) {
58146                    delete locales[name];
58147                }
58148            }
58149        }
58150        return locales[name];
58151    }
58152
58153    // returns locale data
58154    function getLocale(key) {
58155        var locale;
58156
58157        if (key && key._locale && key._locale._abbr) {
58158            key = key._locale._abbr;
58159        }
58160
58161        if (!key) {
58162            return globalLocale;
58163        }
58164
58165        if (!isArray(key)) {
58166            //short-circuit everything else
58167            locale = loadLocale(key);
58168            if (locale) {
58169                return locale;
58170            }
58171            key = [key];
58172        }
58173
58174        return chooseLocale(key);
58175    }
58176
58177    function listLocales() {
58178        return keys(locales);
58179    }
58180
58181    function checkOverflow(m) {
58182        var overflow,
58183            a = m._a;
58184
58185        if (a && getParsingFlags(m).overflow === -2) {
58186            overflow =
58187                a[MONTH] < 0 || a[MONTH] > 11
58188                    ? MONTH
58189                    : a[DATE] < 1 || a[DATE] > daysInMonth(a[YEAR], a[MONTH])
58190                      ? DATE
58191                      : a[HOUR] < 0 ||
58192                          a[HOUR] > 24 ||
58193                          (a[HOUR] === 24 &&
58194                              (a[MINUTE] !== 0 ||
58195                                  a[SECOND] !== 0 ||
58196                                  a[MILLISECOND] !== 0))
58197                        ? HOUR
58198                        : a[MINUTE] < 0 || a[MINUTE] > 59
58199                          ? MINUTE
58200                          : a[SECOND] < 0 || a[SECOND] > 59
58201                            ? SECOND
58202                            : a[MILLISECOND] < 0 || a[MILLISECOND] > 999
58203                              ? MILLISECOND
58204                              : -1;
58205
58206            if (
58207                getParsingFlags(m)._overflowDayOfYear &&
58208                (overflow < YEAR || overflow > DATE)
58209            ) {
58210                overflow = DATE;
58211            }
58212            if (getParsingFlags(m)._overflowWeeks && overflow === -1) {
58213                overflow = WEEK;
58214            }
58215            if (getParsingFlags(m)._overflowWeekday && overflow === -1) {
58216                overflow = WEEKDAY;
58217            }
58218
58219            getParsingFlags(m).overflow = overflow;
58220        }
58221
58222        return m;
58223    }
58224
58225    // iso 8601 regex
58226    // 0000-00-00 0000-W00 or 0000-W00-0 + T + 00 or 00:00 or 00:00:00 or 00:00:00.000 + +00:00 or +0000 or +00)
58227    var extendedIsoRegex =
58228            /^\s*((?:[+-]\d{6}|\d{4})-(?:\d\d-\d\d|W\d\d-\d|W\d\d|\d\d\d|\d\d))(?:(T| )(\d\d(?::\d\d(?::\d\d(?:[.,]\d+)?)?)?)([+-]\d\d(?::?\d\d)?|\s*Z)?)?$/,
58229        basicIsoRegex =
58230            /^\s*((?:[+-]\d{6}|\d{4})(?:\d\d\d\d|W\d\d\d|W\d\d|\d\d\d|\d\d|))(?:(T| )(\d\d(?:\d\d(?:\d\d(?:[.,]\d+)?)?)?)([+-]\d\d(?::?\d\d)?|\s*Z)?)?$/,
58231        tzRegex = /Z|[+-]\d\d(?::?\d\d)?/,
58232        isoDates = [
58233            ['YYYYYY-MM-DD', /[+-]\d{6}-\d\d-\d\d/],
58234            ['YYYY-MM-DD', /\d{4}-\d\d-\d\d/],
58235            ['GGGG-[W]WW-E', /\d{4}-W\d\d-\d/],
58236            ['GGGG-[W]WW', /\d{4}-W\d\d/, false],
58237            ['YYYY-DDD', /\d{4}-\d{3}/],
58238            ['YYYY-MM', /\d{4}-\d\d/, false],
58239            ['YYYYYYMMDD', /[+-]\d{10}/],
58240            ['YYYYMMDD', /\d{8}/],
58241            ['GGGG[W]WWE', /\d{4}W\d{3}/],
58242            ['GGGG[W]WW', /\d{4}W\d{2}/, false],
58243            ['YYYYDDD', /\d{7}/],
58244            ['YYYYMM', /\d{6}/, false],
58245            ['YYYY', /\d{4}/, false],
58246        ],
58247        // iso time formats and regexes
58248        isoTimes = [
58249            ['HH:mm:ss.SSSS', /\d\d:\d\d:\d\d\.\d+/],
58250            ['HH:mm:ss,SSSS', /\d\d:\d\d:\d\d,\d+/],
58251            ['HH:mm:ss', /\d\d:\d\d:\d\d/],
58252            ['HH:mm', /\d\d:\d\d/],
58253            ['HHmmss.SSSS', /\d\d\d\d\d\d\.\d+/],
58254            ['HHmmss,SSSS', /\d\d\d\d\d\d,\d+/],
58255            ['HHmmss', /\d\d\d\d\d\d/],
58256            ['HHmm', /\d\d\d\d/],
58257            ['HH', /\d\d/],
58258        ],
58259        aspNetJsonRegex = /^\/?Date\((-?\d+)/i,
58260        // RFC 2822 regex: For details see https://tools.ietf.org/html/rfc2822#section-3.3
58261        rfc2822 =
58262            /^(?:(Mon|Tue|Wed|Thu|Fri|Sat|Sun),?\s)?(\d{1,2})\s(Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)\s(\d{2,4})\s(\d\d):(\d\d)(?::(\d\d))?\s(?:(UT|GMT|[ECMP][SD]T)|([Zz])|([+-]\d{4}))$/,
58263        obsOffsets = {
58264            UT: 0,
58265            GMT: 0,
58266            EDT: -4 * 60,
58267            EST: -5 * 60,
58268            CDT: -5 * 60,
58269            CST: -6 * 60,
58270            MDT: -6 * 60,
58271            MST: -7 * 60,
58272            PDT: -7 * 60,
58273            PST: -8 * 60,
58274        };
58275
58276    // date from iso format
58277    function configFromISO(config) {
58278        var i,
58279            l,
58280            string = config._i,
58281            match = extendedIsoRegex.exec(string) || basicIsoRegex.exec(string),
58282            allowTime,
58283            dateFormat,
58284            timeFormat,
58285            tzFormat,
58286            isoDatesLen = isoDates.length,
58287            isoTimesLen = isoTimes.length;
58288
58289        if (match) {
58290            getParsingFlags(config).iso = true;
58291            for (i = 0, l = isoDatesLen; i < l; i++) {
58292                if (isoDates[i][1].exec(match[1])) {
58293                    dateFormat = isoDates[i][0];
58294                    allowTime = isoDates[i][2] !== false;
58295                    break;
58296                }
58297            }
58298            if (dateFormat == null) {
58299                config._isValid = false;
58300                return;
58301            }
58302            if (match[3]) {
58303                for (i = 0, l = isoTimesLen; i < l; i++) {
58304                    if (isoTimes[i][1].exec(match[3])) {
58305                        // match[2] should be 'T' or space
58306                        timeFormat = (match[2] || ' ') + isoTimes[i][0];
58307                        break;
58308                    }
58309                }
58310                if (timeFormat == null) {
58311                    config._isValid = false;
58312                    return;
58313                }
58314            }
58315            if (!allowTime && timeFormat != null) {
58316                config._isValid = false;
58317                return;
58318            }
58319            if (match[4]) {
58320                if (tzRegex.exec(match[4])) {
58321                    tzFormat = 'Z';
58322                } else {
58323                    config._isValid = false;
58324                    return;
58325                }
58326            }
58327            config._f = dateFormat + (timeFormat || '') + (tzFormat || '');
58328            configFromStringAndFormat(config);
58329        } else {
58330            config._isValid = false;
58331        }
58332    }
58333
58334    function extractFromRFC2822Strings(
58335        yearStr,
58336        monthStr,
58337        dayStr,
58338        hourStr,
58339        minuteStr,
58340        secondStr
58341    ) {
58342        var result = [
58343            untruncateYear(yearStr),
58344            defaultLocaleMonthsShort.indexOf(monthStr),
58345            parseInt(dayStr, 10),
58346            parseInt(hourStr, 10),
58347            parseInt(minuteStr, 10),
58348        ];
58349
58350        if (secondStr) {
58351            result.push(parseInt(secondStr, 10));
58352        }
58353
58354        return result;
58355    }
58356
58357    function untruncateYear(yearStr) {
58358        var year = parseInt(yearStr, 10);
58359        if (year <= 49) {
58360            return 2000 + year;
58361        } else if (year <= 999) {
58362            return 1900 + year;
58363        }
58364        return year;
58365    }
58366
58367    function preprocessRFC2822(s) {
58368        // Remove comments and folding whitespace and replace multiple-spaces with a single space
58369        return s
58370            .replace(/\([^()]*\)|[\n\t]/g, ' ')
58371            .replace(/(\s\s+)/g, ' ')
58372            .replace(/^\s\s*/, '')
58373            .replace(/\s\s*$/, '');
58374    }
58375
58376    function checkWeekday(weekdayStr, parsedInput, config) {
58377        if (weekdayStr) {
58378            // TODO: Replace the vanilla JS Date object with an independent day-of-week check.
58379            var weekdayProvided = defaultLocaleWeekdaysShort.indexOf(weekdayStr),
58380                weekdayActual = new Date(
58381                    parsedInput[0],
58382                    parsedInput[1],
58383                    parsedInput[2]
58384                ).getDay();
58385            if (weekdayProvided !== weekdayActual) {
58386                getParsingFlags(config).weekdayMismatch = true;
58387                config._isValid = false;
58388                return false;
58389            }
58390        }
58391        return true;
58392    }
58393
58394    function calculateOffset(obsOffset, militaryOffset, numOffset) {
58395        if (obsOffset) {
58396            return obsOffsets[obsOffset];
58397        } else if (militaryOffset) {
58398            // the only allowed military tz is Z
58399            return 0;
58400        } else {
58401            var hm = parseInt(numOffset, 10),
58402                m = hm % 100,
58403                h = (hm - m) / 100;
58404            return h * 60 + m;
58405        }
58406    }
58407
58408    // date and time from ref 2822 format
58409    function configFromRFC2822(config) {
58410        var match = rfc2822.exec(preprocessRFC2822(config._i)),
58411            parsedArray;
58412        if (match) {
58413            parsedArray = extractFromRFC2822Strings(
58414                match[4],
58415                match[3],
58416                match[2],
58417                match[5],
58418                match[6],
58419                match[7]
58420            );
58421            if (!checkWeekday(match[1], parsedArray, config)) {
58422                return;
58423            }
58424
58425            config._a = parsedArray;
58426            config._tzm = calculateOffset(match[8], match[9], match[10]);
58427
58428            config._d = createUTCDate.apply(null, config._a);
58429            config._d.setUTCMinutes(config._d.getUTCMinutes() - config._tzm);
58430
58431            getParsingFlags(config).rfc2822 = true;
58432        } else {
58433            config._isValid = false;
58434        }
58435    }
58436
58437    // date from 1) ASP.NET, 2) ISO, 3) RFC 2822 formats, or 4) optional fallback if parsing isn't strict
58438    function configFromString(config) {
58439        var matched = aspNetJsonRegex.exec(config._i);
58440        if (matched !== null) {
58441            config._d = new Date(+matched[1]);
58442            return;
58443        }
58444
58445        configFromISO(config);
58446        if (config._isValid === false) {
58447            delete config._isValid;
58448        } else {
58449            return;
58450        }
58451
58452        configFromRFC2822(config);
58453        if (config._isValid === false) {
58454            delete config._isValid;
58455        } else {
58456            return;
58457        }
58458
58459        if (config._strict) {
58460            config._isValid = false;
58461        } else {
58462            // Final attempt, use Input Fallback
58463            hooks.createFromInputFallback(config);
58464        }
58465    }
58466
58467    hooks.createFromInputFallback = deprecate(
58468        'value provided is not in a recognized RFC2822 or ISO format. moment construction falls back to js Date(), ' +
58469            'which is not reliable across all browsers and versions. Non RFC2822/ISO date formats are ' +
58470            'discouraged. Please refer to http://momentjs.com/guides/#/warnings/js-date/ for more info.',
58471        function (config) {
58472            config._d = new Date(config._i + (config._useUTC ? ' UTC' : ''));
58473        }
58474    );
58475
58476    // Pick the first defined of two or three arguments.
58477    function defaults(a, b, c) {
58478        if (a != null) {
58479            return a;
58480        }
58481        if (b != null) {
58482            return b;
58483        }
58484        return c;
58485    }
58486
58487    function currentDateArray(config) {
58488        // hooks is actually the exported moment object
58489        var nowValue = new Date(hooks.now());
58490        if (config._useUTC) {
58491            return [
58492                nowValue.getUTCFullYear(),
58493                nowValue.getUTCMonth(),
58494                nowValue.getUTCDate(),
58495            ];
58496        }
58497        return [nowValue.getFullYear(), nowValue.getMonth(), nowValue.getDate()];
58498    }
58499
58500    // convert an array to a date.
58501    // the array should mirror the parameters below
58502    // note: all values past the year are optional and will default to the lowest possible value.
58503    // [year, month, day , hour, minute, second, millisecond]
58504    function configFromArray(config) {
58505        var i,
58506            date,
58507            input = [],
58508            currentDate,
58509            expectedWeekday,
58510            yearToUse;
58511
58512        if (config._d) {
58513            return;
58514        }
58515
58516        currentDate = currentDateArray(config);
58517
58518        //compute day of the year from weeks and weekdays
58519        if (config._w && config._a[DATE] == null && config._a[MONTH] == null) {
58520            dayOfYearFromWeekInfo(config);
58521        }
58522
58523        //if the day of the year is set, figure out what it is
58524        if (config._dayOfYear != null) {
58525            yearToUse = defaults(config._a[YEAR], currentDate[YEAR]);
58526
58527            if (
58528                config._dayOfYear > daysInYear(yearToUse) ||
58529                config._dayOfYear === 0
58530            ) {
58531                getParsingFlags(config)._overflowDayOfYear = true;
58532            }
58533
58534            date = createUTCDate(yearToUse, 0, config._dayOfYear);
58535            config._a[MONTH] = date.getUTCMonth();
58536            config._a[DATE] = date.getUTCDate();
58537        }
58538
58539        // Default to current date.
58540        // * if no year, month, day of month are given, default to today
58541        // * if day of month is given, default month and year
58542        // * if month is given, default only year
58543        // * if year is given, don't default anything
58544        for (i = 0; i < 3 && config._a[i] == null; ++i) {
58545            config._a[i] = input[i] = currentDate[i];
58546        }
58547
58548        // Zero out whatever was not defaulted, including time
58549        for (; i < 7; i++) {
58550            config._a[i] = input[i] =
58551                config._a[i] == null ? (i === 2 ? 1 : 0) : config._a[i];
58552        }
58553
58554        // Check for 24:00:00.000
58555        if (
58556            config._a[HOUR] === 24 &&
58557            config._a[MINUTE] === 0 &&
58558            config._a[SECOND] === 0 &&
58559            config._a[MILLISECOND] === 0
58560        ) {
58561            config._nextDay = true;
58562            config._a[HOUR] = 0;
58563        }
58564
58565        config._d = (config._useUTC ? createUTCDate : createDate).apply(
58566            null,
58567            input
58568        );
58569        expectedWeekday = config._useUTC
58570            ? config._d.getUTCDay()
58571            : config._d.getDay();
58572
58573        // Apply timezone offset from input. The actual utcOffset can be changed
58574        // with parseZone.
58575        if (config._tzm != null) {
58576            config._d.setUTCMinutes(config._d.getUTCMinutes() - config._tzm);
58577        }
58578
58579        if (config._nextDay) {
58580            config._a[HOUR] = 24;
58581        }
58582
58583        // check for mismatching day of week
58584        if (
58585            config._w &&
58586            typeof config._w.d !== 'undefined' &&
58587            config._w.d !== expectedWeekday
58588        ) {
58589            getParsingFlags(config).weekdayMismatch = true;
58590        }
58591    }
58592
58593    function dayOfYearFromWeekInfo(config) {
58594        var w, weekYear, week, weekday, dow, doy, temp, weekdayOverflow, curWeek;
58595
58596        w = config._w;
58597        if (w.GG != null || w.W != null || w.E != null) {
58598            dow = 1;
58599            doy = 4;
58600
58601            // TODO: We need to take the current isoWeekYear, but that depends on
58602            // how we interpret now (local, utc, fixed offset). So create
58603            // a now version of current config (take local/utc/offset flags, and
58604            // create now).
58605            weekYear = defaults(
58606                w.GG,
58607                config._a[YEAR],
58608                weekOfYear(createLocal(), 1, 4).year
58609            );
58610            week = defaults(w.W, 1);
58611            weekday = defaults(w.E, 1);
58612            if (weekday < 1 || weekday > 7) {
58613                weekdayOverflow = true;
58614            }
58615        } else {
58616            dow = config._locale._week.dow;
58617            doy = config._locale._week.doy;
58618
58619            curWeek = weekOfYear(createLocal(), dow, doy);
58620
58621            weekYear = defaults(w.gg, config._a[YEAR], curWeek.year);
58622
58623            // Default to current week.
58624            week = defaults(w.w, curWeek.week);
58625
58626            if (w.d != null) {
58627                // weekday -- low day numbers are considered next week
58628                weekday = w.d;
58629                if (weekday < 0 || weekday > 6) {
58630                    weekdayOverflow = true;
58631                }
58632            } else if (w.e != null) {
58633                // local weekday -- counting starts from beginning of week
58634                weekday = w.e + dow;
58635                if (w.e < 0 || w.e > 6) {
58636                    weekdayOverflow = true;
58637                }
58638            } else {
58639                // default to beginning of week
58640                weekday = dow;
58641            }
58642        }
58643        if (week < 1 || week > weeksInYear(weekYear, dow, doy)) {
58644            getParsingFlags(config)._overflowWeeks = true;
58645        } else if (weekdayOverflow != null) {
58646            getParsingFlags(config)._overflowWeekday = true;
58647        } else {
58648            temp = dayOfYearFromWeeks(weekYear, week, weekday, dow, doy);
58649            config._a[YEAR] = temp.year;
58650            config._dayOfYear = temp.dayOfYear;
58651        }
58652    }
58653
58654    // constant that refers to the ISO standard
58655    hooks.ISO_8601 = function () {};
58656
58657    // constant that refers to the RFC 2822 form
58658    hooks.RFC_2822 = function () {};
58659
58660    // date from string and format string
58661    function configFromStringAndFormat(config) {
58662        // TODO: Move this to another part of the creation flow to prevent circular deps
58663        if (config._f === hooks.ISO_8601) {
58664            configFromISO(config);
58665            return;
58666        }
58667        if (config._f === hooks.RFC_2822) {
58668            configFromRFC2822(config);
58669            return;
58670        }
58671        config._a = [];
58672        getParsingFlags(config).empty = true;
58673
58674        // This array is used to make a Date, either with `new Date` or `Date.UTC`
58675        var string = '' + config._i,
58676            i,
58677            parsedInput,
58678            tokens,
58679            token,
58680            skipped,
58681            stringLength = string.length,
58682            totalParsedInputLength = 0,
58683            era,
58684            tokenLen;
58685
58686        tokens =
58687            expandFormat(config._f, config._locale).match(formattingTokens) || [];
58688        tokenLen = tokens.length;
58689        for (i = 0; i < tokenLen; i++) {
58690            token = tokens[i];
58691            parsedInput = (string.match(getParseRegexForToken(token, config)) ||
58692                [])[0];
58693            if (parsedInput) {
58694                skipped = string.substr(0, string.indexOf(parsedInput));
58695                if (skipped.length > 0) {
58696                    getParsingFlags(config).unusedInput.push(skipped);
58697                }
58698                string = string.slice(
58699                    string.indexOf(parsedInput) + parsedInput.length
58700                );
58701                totalParsedInputLength += parsedInput.length;
58702            }
58703            // don't parse if it's not a known token
58704            if (formatTokenFunctions[token]) {
58705                if (parsedInput) {
58706                    getParsingFlags(config).empty = false;
58707                } else {
58708                    getParsingFlags(config).unusedTokens.push(token);
58709                }
58710                addTimeToArrayFromToken(token, parsedInput, config);
58711            } else if (config._strict && !parsedInput) {
58712                getParsingFlags(config).unusedTokens.push(token);
58713            }
58714        }
58715
58716        // add remaining unparsed input length to the string
58717        getParsingFlags(config).charsLeftOver =
58718            stringLength - totalParsedInputLength;
58719        if (string.length > 0) {
58720            getParsingFlags(config).unusedInput.push(string);
58721        }
58722
58723        // clear _12h flag if hour is <= 12
58724        if (
58725            config._a[HOUR] <= 12 &&
58726            getParsingFlags(config).bigHour === true &&
58727            config._a[HOUR] > 0
58728        ) {
58729            getParsingFlags(config).bigHour = undefined;
58730        }
58731
58732        getParsingFlags(config).parsedDateParts = config._a.slice(0);
58733        getParsingFlags(config).meridiem = config._meridiem;
58734        // handle meridiem
58735        config._a[HOUR] = meridiemFixWrap(
58736            config._locale,
58737            config._a[HOUR],
58738            config._meridiem
58739        );
58740
58741        // handle era
58742        era = getParsingFlags(config).era;
58743        if (era !== null) {
58744            config._a[YEAR] = config._locale.erasConvertYear(era, config._a[YEAR]);
58745        }
58746
58747        configFromArray(config);
58748        checkOverflow(config);
58749    }
58750
58751    function meridiemFixWrap(locale, hour, meridiem) {
58752        var isPm;
58753
58754        if (meridiem == null) {
58755            // nothing to do
58756            return hour;
58757        }
58758        if (locale.meridiemHour != null) {
58759            return locale.meridiemHour(hour, meridiem);
58760        } else if (locale.isPM != null) {
58761            // Fallback
58762            isPm = locale.isPM(meridiem);
58763            if (isPm && hour < 12) {
58764                hour += 12;
58765            }
58766            if (!isPm && hour === 12) {
58767                hour = 0;
58768            }
58769            return hour;
58770        } else {
58771            // this is not supposed to happen
58772            return hour;
58773        }
58774    }
58775
58776    // date from string and array of format strings
58777    function configFromStringAndArray(config) {
58778        var tempConfig,
58779            bestMoment,
58780            scoreToBeat,
58781            i,
58782            currentScore,
58783            validFormatFound,
58784            bestFormatIsValid = false,
58785            configfLen = config._f.length;
58786
58787        if (configfLen === 0) {
58788            getParsingFlags(config).invalidFormat = true;
58789            config._d = new Date(NaN);
58790            return;
58791        }
58792
58793        for (i = 0; i < configfLen; i++) {
58794            currentScore = 0;
58795            validFormatFound = false;
58796            tempConfig = copyConfig({}, config);
58797            if (config._useUTC != null) {
58798                tempConfig._useUTC = config._useUTC;
58799            }
58800            tempConfig._f = config._f[i];
58801            configFromStringAndFormat(tempConfig);
58802
58803            if (isValid(tempConfig)) {
58804                validFormatFound = true;
58805            }
58806
58807            // if there is any input that was not parsed add a penalty for that format
58808            currentScore += getParsingFlags(tempConfig).charsLeftOver;
58809
58810            //or tokens
58811            currentScore += getParsingFlags(tempConfig).unusedTokens.length * 10;
58812
58813            getParsingFlags(tempConfig).score = currentScore;
58814
58815            if (!bestFormatIsValid) {
58816                if (
58817                    scoreToBeat == null ||
58818                    currentScore < scoreToBeat ||
58819                    validFormatFound
58820                ) {
58821                    scoreToBeat = currentScore;
58822                    bestMoment = tempConfig;
58823                    if (validFormatFound) {
58824                        bestFormatIsValid = true;
58825                    }
58826                }
58827            } else {
58828                if (currentScore < scoreToBeat) {
58829                    scoreToBeat = currentScore;
58830                    bestMoment = tempConfig;
58831                }
58832            }
58833        }
58834
58835        extend(config, bestMoment || tempConfig);
58836    }
58837
58838    function configFromObject(config) {
58839        if (config._d) {
58840            return;
58841        }
58842
58843        var i = normalizeObjectUnits(config._i),
58844            dayOrDate = i.day === undefined ? i.date : i.day;
58845        config._a = map(
58846            [i.year, i.month, dayOrDate, i.hour, i.minute, i.second, i.millisecond],
58847            function (obj) {
58848                return obj && parseInt(obj, 10);
58849            }
58850        );
58851
58852        configFromArray(config);
58853    }
58854
58855    function createFromConfig(config) {
58856        var res = new Moment(checkOverflow(prepareConfig(config)));
58857        if (res._nextDay) {
58858            // Adding is smart enough around DST
58859            res.add(1, 'd');
58860            res._nextDay = undefined;
58861        }
58862
58863        return res;
58864    }
58865
58866    function prepareConfig(config) {
58867        var input = config._i,
58868            format = config._f;
58869
58870        config._locale = config._locale || getLocale(config._l);
58871
58872        if (input === null || (format === undefined && input === '')) {
58873            return createInvalid({ nullInput: true });
58874        }
58875
58876        if (typeof input === 'string') {
58877            config._i = input = config._locale.preparse(input);
58878        }
58879
58880        if (isMoment(input)) {
58881            return new Moment(checkOverflow(input));
58882        } else if (isDate(input)) {
58883            config._d = input;
58884        } else if (isArray(format)) {
58885            configFromStringAndArray(config);
58886        } else if (format) {
58887            configFromStringAndFormat(config);
58888        } else {
58889            configFromInput(config);
58890        }
58891
58892        if (!isValid(config)) {
58893            config._d = null;
58894        }
58895
58896        return config;
58897    }
58898
58899    function configFromInput(config) {
58900        var input = config._i;
58901        if (isUndefined(input)) {
58902            config._d = new Date(hooks.now());
58903        } else if (isDate(input)) {
58904            config._d = new Date(input.valueOf());
58905        } else if (typeof input === 'string') {
58906            configFromString(config);
58907        } else if (isArray(input)) {
58908            config._a = map(input.slice(0), function (obj) {
58909                return parseInt(obj, 10);
58910            });
58911            configFromArray(config);
58912        } else if (isObject(input)) {
58913            configFromObject(config);
58914        } else if (isNumber(input)) {
58915            // from milliseconds
58916            config._d = new Date(input);
58917        } else {
58918            hooks.createFromInputFallback(config);
58919        }
58920    }
58921
58922    function createLocalOrUTC(input, format, locale, strict, isUTC) {
58923        var c = {};
58924
58925        if (format === true || format === false) {
58926            strict = format;
58927            format = undefined;
58928        }
58929
58930        if (locale === true || locale === false) {
58931            strict = locale;
58932            locale = undefined;
58933        }
58934
58935        if (
58936            (isObject(input) && isObjectEmpty(input)) ||
58937            (isArray(input) && input.length === 0)
58938        ) {
58939            input = undefined;
58940        }
58941        // object construction must be done this way.
58942        // https://github.com/moment/moment/issues/1423
58943        c._isAMomentObject = true;
58944        c._useUTC = c._isUTC = isUTC;
58945        c._l = locale;
58946        c._i = input;
58947        c._f = format;
58948        c._strict = strict;
58949
58950        return createFromConfig(c);
58951    }
58952
58953    function createLocal(input, format, locale, strict) {
58954        return createLocalOrUTC(input, format, locale, strict, false);
58955    }
58956
58957    var prototypeMin = deprecate(
58958            'moment().min is deprecated, use moment.max instead. http://momentjs.com/guides/#/warnings/min-max/',
58959            function () {
58960                var other = createLocal.apply(null, arguments);
58961                if (this.isValid() && other.isValid()) {
58962                    return other < this ? this : other;
58963                } else {
58964                    return createInvalid();
58965                }
58966            }
58967        ),
58968        prototypeMax = deprecate(
58969            'moment().max is deprecated, use moment.min instead. http://momentjs.com/guides/#/warnings/min-max/',
58970            function () {
58971                var other = createLocal.apply(null, arguments);
58972                if (this.isValid() && other.isValid()) {
58973                    return other > this ? this : other;
58974                } else {
58975                    return createInvalid();
58976                }
58977            }
58978        );
58979
58980    // Pick a moment m from moments so that m[fn](other) is true for all
58981    // other. This relies on the function fn to be transitive.
58982    //
58983    // moments should either be an array of moment objects or an array, whose
58984    // first element is an array of moment objects.
58985    function pickBy(fn, moments) {
58986        var res, i;
58987        if (moments.length === 1 && isArray(moments[0])) {
58988            moments = moments[0];
58989        }
58990        if (!moments.length) {
58991            return createLocal();
58992        }
58993        res = moments[0];
58994        for (i = 1; i < moments.length; ++i) {
58995            if (!moments[i].isValid() || moments[i][fn](res)) {
58996                res = moments[i];
58997            }
58998        }
58999        return res;
59000    }
59001
59002    // TODO: Use [].sort instead?
59003    function min() {
59004        var args = [].slice.call(arguments, 0);
59005
59006        return pickBy('isBefore', args);
59007    }
59008
59009    function max() {
59010        var args = [].slice.call(arguments, 0);
59011
59012        return pickBy('isAfter', args);
59013    }
59014
59015    var now = function () {
59016        return Date.now ? Date.now() : +new Date();
59017    };
59018
59019    var ordering = [
59020        'year',
59021        'quarter',
59022        'month',
59023        'week',
59024        'day',
59025        'hour',
59026        'minute',
59027        'second',
59028        'millisecond',
59029    ];
59030
59031    function isDurationValid(m) {
59032        var key,
59033            unitHasDecimal = false,
59034            i,
59035            orderLen = ordering.length;
59036        for (key in m) {
59037            if (
59038                hasOwnProp(m, key) &&
59039                !(
59040                    indexOf.call(ordering, key) !== -1 &&
59041                    (m[key] == null || !isNaN(m[key]))
59042                )
59043            ) {
59044                return false;
59045            }
59046        }
59047
59048        for (i = 0; i < orderLen; ++i) {
59049            if (m[ordering[i]]) {
59050                if (unitHasDecimal) {
59051                    return false; // only allow non-integers for smallest unit
59052                }
59053                if (parseFloat(m[ordering[i]]) !== toInt(m[ordering[i]])) {
59054                    unitHasDecimal = true;
59055                }
59056            }
59057        }
59058
59059        return true;
59060    }
59061
59062    function isValid$1() {
59063        return this._isValid;
59064    }
59065
59066    function createInvalid$1() {
59067        return createDuration(NaN);
59068    }
59069
59070    function Duration(duration) {
59071        var normalizedInput = normalizeObjectUnits(duration),
59072            years = normalizedInput.year || 0,
59073            quarters = normalizedInput.quarter || 0,
59074            months = normalizedInput.month || 0,
59075            weeks = normalizedInput.week || normalizedInput.isoWeek || 0,
59076            days = normalizedInput.day || 0,
59077            hours = normalizedInput.hour || 0,
59078            minutes = normalizedInput.minute || 0,
59079            seconds = normalizedInput.second || 0,
59080            milliseconds = normalizedInput.millisecond || 0;
59081
59082        this._isValid = isDurationValid(normalizedInput);
59083
59084        // representation for dateAddRemove
59085        this._milliseconds =
59086            +milliseconds +
59087            seconds * 1e3 + // 1000
59088            minutes * 6e4 + // 1000 * 60
59089            hours * 1000 * 60 * 60; //using 1000 * 60 * 60 instead of 36e5 to avoid floating point rounding errors https://github.com/moment/moment/issues/2978
59090        // Because of dateAddRemove treats 24 hours as different from a
59091        // day when working around DST, we need to store them separately
59092        this._days = +days + weeks * 7;
59093        // It is impossible to translate months into days without knowing
59094        // which months you are are talking about, so we have to store
59095        // it separately.
59096        this._months = +months + quarters * 3 + years * 12;
59097
59098        this._data = {};
59099
59100        this._locale = getLocale();
59101
59102        this._bubble();
59103    }
59104
59105    function isDuration(obj) {
59106        return obj instanceof Duration;
59107    }
59108
59109    function absRound(number) {
59110        if (number < 0) {
59111            return Math.round(-1 * number) * -1;
59112        } else {
59113            return Math.round(number);
59114        }
59115    }
59116
59117    // compare two arrays, return the number of differences
59118    function compareArrays(array1, array2, dontConvert) {
59119        var len = Math.min(array1.length, array2.length),
59120            lengthDiff = Math.abs(array1.length - array2.length),
59121            diffs = 0,
59122            i;
59123        for (i = 0; i < len; i++) {
59124            if (
59125                (dontConvert && array1[i] !== array2[i]) ||
59126                (!dontConvert && toInt(array1[i]) !== toInt(array2[i]))
59127            ) {
59128                diffs++;
59129            }
59130        }
59131        return diffs + lengthDiff;
59132    }
59133
59134    // FORMATTING
59135
59136    function offset(token, separator) {
59137        addFormatToken(token, 0, 0, function () {
59138            var offset = this.utcOffset(),
59139                sign = '+';
59140            if (offset < 0) {
59141                offset = -offset;
59142                sign = '-';
59143            }
59144            return (
59145                sign +
59146                zeroFill(~~(offset / 60), 2) +
59147                separator +
59148                zeroFill(~~offset % 60, 2)
59149            );
59150        });
59151    }
59152
59153    offset('Z', ':');
59154    offset('ZZ', '');
59155
59156    // PARSING
59157
59158    addRegexToken('Z', matchShortOffset);
59159    addRegexToken('ZZ', matchShortOffset);
59160    addParseToken(['Z', 'ZZ'], function (input, array, config) {
59161        config._useUTC = true;
59162        config._tzm = offsetFromString(matchShortOffset, input);
59163    });
59164
59165    // HELPERS
59166
59167    // timezone chunker
59168    // '+10:00' > ['10',  '00']
59169    // '-1530'  > ['-15', '30']
59170    var chunkOffset = /([\+\-]|\d\d)/gi;
59171
59172    function offsetFromString(matcher, string) {
59173        var matches = (string || '').match(matcher),
59174            chunk,
59175            parts,
59176            minutes;
59177
59178        if (matches === null) {
59179            return null;
59180        }
59181
59182        chunk = matches[matches.length - 1] || [];
59183        parts = (chunk + '').match(chunkOffset) || ['-', 0, 0];
59184        minutes = +(parts[1] * 60) + toInt(parts[2]);
59185
59186        return minutes === 0 ? 0 : parts[0] === '+' ? minutes : -minutes;
59187    }
59188
59189    // Return a moment from input, that is local/utc/zone equivalent to model.
59190    function cloneWithOffset(input, model) {
59191        var res, diff;
59192        if (model._isUTC) {
59193            res = model.clone();
59194            diff =
59195                (isMoment(input) || isDate(input)
59196                    ? input.valueOf()
59197                    : createLocal(input).valueOf()) - res.valueOf();
59198            // Use low-level api, because this fn is low-level api.
59199            res._d.setTime(res._d.valueOf() + diff);
59200            hooks.updateOffset(res, false);
59201            return res;
59202        } else {
59203            return createLocal(input).local();
59204        }
59205    }
59206
59207    function getDateOffset(m) {
59208        // On Firefox.24 Date#getTimezoneOffset returns a floating point.
59209        // https://github.com/moment/moment/pull/1871
59210        return -Math.round(m._d.getTimezoneOffset());
59211    }
59212
59213    // HOOKS
59214
59215    // This function will be called whenever a moment is mutated.
59216    // It is intended to keep the offset in sync with the timezone.
59217    hooks.updateOffset = function () {};
59218
59219    // MOMENTS
59220
59221    // keepLocalTime = true means only change the timezone, without
59222    // affecting the local hour. So 5:31:26 +0300 --[utcOffset(2, true)]-->
59223    // 5:31:26 +0200 It is possible that 5:31:26 doesn't exist with offset
59224    // +0200, so we adjust the time as needed, to be valid.
59225    //
59226    // Keeping the time actually adds/subtracts (one hour)
59227    // from the actual represented time. That is why we call updateOffset
59228    // a second time. In case it wants us to change the offset again
59229    // _changeInProgress == true case, then we have to adjust, because
59230    // there is no such time in the given timezone.
59231    function getSetOffset(input, keepLocalTime, keepMinutes) {
59232        var offset = this._offset || 0,
59233            localAdjust;
59234        if (!this.isValid()) {
59235            return input != null ? this : NaN;
59236        }
59237        if (input != null) {
59238            if (typeof input === 'string') {
59239                input = offsetFromString(matchShortOffset, input);
59240                if (input === null) {
59241                    return this;
59242                }
59243            } else if (Math.abs(input) < 16 && !keepMinutes) {
59244                input = input * 60;
59245            }
59246            if (!this._isUTC && keepLocalTime) {
59247                localAdjust = getDateOffset(this);
59248            }
59249            this._offset = input;
59250            this._isUTC = true;
59251            if (localAdjust != null) {
59252                this.add(localAdjust, 'm');
59253            }
59254            if (offset !== input) {
59255                if (!keepLocalTime || this._changeInProgress) {
59256                    addSubtract(
59257                        this,
59258                        createDuration(input - offset, 'm'),
59259                        1,
59260                        false
59261                    );
59262                } else if (!this._changeInProgress) {
59263                    this._changeInProgress = true;
59264                    hooks.updateOffset(this, true);
59265                    this._changeInProgress = null;
59266                }
59267            }
59268            return this;
59269        } else {
59270            return this._isUTC ? offset : getDateOffset(this);
59271        }
59272    }
59273
59274    function getSetZone(input, keepLocalTime) {
59275        if (input != null) {
59276            if (typeof input !== 'string') {
59277                input = -input;
59278            }
59279
59280            this.utcOffset(input, keepLocalTime);
59281
59282            return this;
59283        } else {
59284            return -this.utcOffset();
59285        }
59286    }
59287
59288    function setOffsetToUTC(keepLocalTime) {
59289        return this.utcOffset(0, keepLocalTime);
59290    }
59291
59292    function setOffsetToLocal(keepLocalTime) {
59293        if (this._isUTC) {
59294            this.utcOffset(0, keepLocalTime);
59295            this._isUTC = false;
59296
59297            if (keepLocalTime) {
59298                this.subtract(getDateOffset(this), 'm');
59299            }
59300        }
59301        return this;
59302    }
59303
59304    function setOffsetToParsedOffset() {
59305        if (this._tzm != null) {
59306            this.utcOffset(this._tzm, false, true);
59307        } else if (typeof this._i === 'string') {
59308            var tZone = offsetFromString(matchOffset, this._i);
59309            if (tZone != null) {
59310                this.utcOffset(tZone);
59311            } else {
59312                this.utcOffset(0, true);
59313            }
59314        }
59315        return this;
59316    }
59317
59318    function hasAlignedHourOffset(input) {
59319        if (!this.isValid()) {
59320            return false;
59321        }
59322        input = input ? createLocal(input).utcOffset() : 0;
59323
59324        return (this.utcOffset() - input) % 60 === 0;
59325    }
59326
59327    function isDaylightSavingTime() {
59328        return (
59329            this.utcOffset() > this.clone().month(0).utcOffset() ||
59330            this.utcOffset() > this.clone().month(5).utcOffset()
59331        );
59332    }
59333
59334    function isDaylightSavingTimeShifted() {
59335        if (!isUndefined(this._isDSTShifted)) {
59336            return this._isDSTShifted;
59337        }
59338
59339        var c = {},
59340            other;
59341
59342        copyConfig(c, this);
59343        c = prepareConfig(c);
59344
59345        if (c._a) {
59346            other = c._isUTC ? createUTC(c._a) : createLocal(c._a);
59347            this._isDSTShifted =
59348                this.isValid() && compareArrays(c._a, other.toArray()) > 0;
59349        } else {
59350            this._isDSTShifted = false;
59351        }
59352
59353        return this._isDSTShifted;
59354    }
59355
59356    function isLocal() {
59357        return this.isValid() ? !this._isUTC : false;
59358    }
59359
59360    function isUtcOffset() {
59361        return this.isValid() ? this._isUTC : false;
59362    }
59363
59364    function isUtc() {
59365        return this.isValid() ? this._isUTC && this._offset === 0 : false;
59366    }
59367
59368    // ASP.NET json date format regex
59369    var aspNetRegex = /^(-|\+)?(?:(\d*)[. ])?(\d+):(\d+)(?::(\d+)(\.\d*)?)?$/,
59370        // from http://docs.closure-library.googlecode.com/git/closure_goog_date_date.js.source.html
59371        // somewhat more in line with 4.4.3.2 2004 spec, but allows decimal anywhere
59372        // and further modified to allow for strings containing both week and day
59373        isoRegex =
59374            /^(-|\+)?P(?:([-+]?[0-9,.]*)Y)?(?:([-+]?[0-9,.]*)M)?(?:([-+]?[0-9,.]*)W)?(?:([-+]?[0-9,.]*)D)?(?:T(?:([-+]?[0-9,.]*)H)?(?:([-+]?[0-9,.]*)M)?(?:([-+]?[0-9,.]*)S)?)?$/;
59375
59376    function createDuration(input, key) {
59377        var duration = input,
59378            // matching against regexp is expensive, do it on demand
59379            match = null,
59380            sign,
59381            ret,
59382            diffRes;
59383
59384        if (isDuration(input)) {
59385            duration = {
59386                ms: input._milliseconds,
59387                d: input._days,
59388                M: input._months,
59389            };
59390        } else if (isNumber(input) || !isNaN(+input)) {
59391            duration = {};
59392            if (key) {
59393                duration[key] = +input;
59394            } else {
59395                duration.milliseconds = +input;
59396            }
59397        } else if ((match = aspNetRegex.exec(input))) {
59398            sign = match[1] === '-' ? -1 : 1;
59399            duration = {
59400                y: 0,
59401                d: toInt(match[DATE]) * sign,
59402                h: toInt(match[HOUR]) * sign,
59403                m: toInt(match[MINUTE]) * sign,
59404                s: toInt(match[SECOND]) * sign,
59405                ms: toInt(absRound(match[MILLISECOND] * 1000)) * sign, // the millisecond decimal point is included in the match
59406            };
59407        } else if ((match = isoRegex.exec(input))) {
59408            sign = match[1] === '-' ? -1 : 1;
59409            duration = {
59410                y: parseIso(match[2], sign),
59411                M: parseIso(match[3], sign),
59412                w: parseIso(match[4], sign),
59413                d: parseIso(match[5], sign),
59414                h: parseIso(match[6], sign),
59415                m: parseIso(match[7], sign),
59416                s: parseIso(match[8], sign),
59417            };
59418        } else if (duration == null) {
59419            // checks for null or undefined
59420            duration = {};
59421        } else if (
59422            typeof duration === 'object' &&
59423            ('from' in duration || 'to' in duration)
59424        ) {
59425            diffRes = momentsDifference(
59426                createLocal(duration.from),
59427                createLocal(duration.to)
59428            );
59429
59430            duration = {};
59431            duration.ms = diffRes.milliseconds;
59432            duration.M = diffRes.months;
59433        }
59434
59435        ret = new Duration(duration);
59436
59437        if (isDuration(input) && hasOwnProp(input, '_locale')) {
59438            ret._locale = input._locale;
59439        }
59440
59441        if (isDuration(input) && hasOwnProp(input, '_isValid')) {
59442            ret._isValid = input._isValid;
59443        }
59444
59445        return ret;
59446    }
59447
59448    createDuration.fn = Duration.prototype;
59449    createDuration.invalid = createInvalid$1;
59450
59451    function parseIso(inp, sign) {
59452        // We'd normally use ~~inp for this, but unfortunately it also
59453        // converts floats to ints.
59454        // inp may be undefined, so careful calling replace on it.
59455        var res = inp && parseFloat(inp.replace(',', '.'));
59456        // apply sign while we're at it
59457        return (isNaN(res) ? 0 : res) * sign;
59458    }
59459
59460    function positiveMomentsDifference(base, other) {
59461        var res = {};
59462
59463        res.months =
59464            other.month() - base.month() + (other.year() - base.year()) * 12;
59465        if (base.clone().add(res.months, 'M').isAfter(other)) {
59466            --res.months;
59467        }
59468
59469        res.milliseconds = +other - +base.clone().add(res.months, 'M');
59470
59471        return res;
59472    }
59473
59474    function momentsDifference(base, other) {
59475        var res;
59476        if (!(base.isValid() && other.isValid())) {
59477            return { milliseconds: 0, months: 0 };
59478        }
59479
59480        other = cloneWithOffset(other, base);
59481        if (base.isBefore(other)) {
59482            res = positiveMomentsDifference(base, other);
59483        } else {
59484            res = positiveMomentsDifference(other, base);
59485            res.milliseconds = -res.milliseconds;
59486            res.months = -res.months;
59487        }
59488
59489        return res;
59490    }
59491
59492    // TODO: remove 'name' arg after deprecation is removed
59493    function createAdder(direction, name) {
59494        return function (val, period) {
59495            var dur, tmp;
59496            //invert the arguments, but complain about it
59497            if (period !== null && !isNaN(+period)) {
59498                deprecateSimple(
59499                    name,
59500                    'moment().' +
59501                        name +
59502                        '(period, number) is deprecated. Please use moment().' +
59503                        name +
59504                        '(number, period). ' +
59505                        'See http://momentjs.com/guides/#/warnings/add-inverted-param/ for more info.'
59506                );
59507                tmp = val;
59508                val = period;
59509                period = tmp;
59510            }
59511
59512            dur = createDuration(val, period);
59513            addSubtract(this, dur, direction);
59514            return this;
59515        };
59516    }
59517
59518    function addSubtract(mom, duration, isAdding, updateOffset) {
59519        var milliseconds = duration._milliseconds,
59520            days = absRound(duration._days),
59521            months = absRound(duration._months);
59522
59523        if (!mom.isValid()) {
59524            // No op
59525            return;
59526        }
59527
59528        updateOffset = updateOffset == null ? true : updateOffset;
59529
59530        if (months) {
59531            setMonth(mom, get(mom, 'Month') + months * isAdding);
59532        }
59533        if (days) {
59534            set$1(mom, 'Date', get(mom, 'Date') + days * isAdding);
59535        }
59536        if (milliseconds) {
59537            mom._d.setTime(mom._d.valueOf() + milliseconds * isAdding);
59538        }
59539        if (updateOffset) {
59540            hooks.updateOffset(mom, days || months);
59541        }
59542    }
59543
59544    var add = createAdder(1, 'add'),
59545        subtract = createAdder(-1, 'subtract');
59546
59547    function isString(input) {
59548        return typeof input === 'string' || input instanceof String;
59549    }
59550
59551    // type MomentInput = Moment | Date | string | number | (number | string)[] | MomentInputObject | void; // null | undefined
59552    function isMomentInput(input) {
59553        return (
59554            isMoment(input) ||
59555            isDate(input) ||
59556            isString(input) ||
59557            isNumber(input) ||
59558            isNumberOrStringArray(input) ||
59559            isMomentInputObject(input) ||
59560            input === null ||
59561            input === undefined
59562        );
59563    }
59564
59565    function isMomentInputObject(input) {
59566        var objectTest = isObject(input) && !isObjectEmpty(input),
59567            propertyTest = false,
59568            properties = [
59569                'years',
59570                'year',
59571                'y',
59572                'months',
59573                'month',
59574                'M',
59575                'days',
59576                'day',
59577                'd',
59578                'dates',
59579                'date',
59580                'D',
59581                'hours',
59582                'hour',
59583                'h',
59584                'minutes',
59585                'minute',
59586                'm',
59587                'seconds',
59588                'second',
59589                's',
59590                'milliseconds',
59591                'millisecond',
59592                'ms',
59593            ],
59594            i,
59595            property,
59596            propertyLen = properties.length;
59597
59598        for (i = 0; i < propertyLen; i += 1) {
59599            property = properties[i];
59600            propertyTest = propertyTest || hasOwnProp(input, property);
59601        }
59602
59603        return objectTest && propertyTest;
59604    }
59605
59606    function isNumberOrStringArray(input) {
59607        var arrayTest = isArray(input),
59608            dataTypeTest = false;
59609        if (arrayTest) {
59610            dataTypeTest =
59611                input.filter(function (item) {
59612                    return !isNumber(item) && isString(input);
59613                }).length === 0;
59614        }
59615        return arrayTest && dataTypeTest;
59616    }
59617
59618    function isCalendarSpec(input) {
59619        var objectTest = isObject(input) && !isObjectEmpty(input),
59620            propertyTest = false,
59621            properties = [
59622                'sameDay',
59623                'nextDay',
59624                'lastDay',
59625                'nextWeek',
59626                'lastWeek',
59627                'sameElse',
59628            ],
59629            i,
59630            property;
59631
59632        for (i = 0; i < properties.length; i += 1) {
59633            property = properties[i];
59634            propertyTest = propertyTest || hasOwnProp(input, property);
59635        }
59636
59637        return objectTest && propertyTest;
59638    }
59639
59640    function getCalendarFormat(myMoment, now) {
59641        var diff = myMoment.diff(now, 'days', true);
59642        return diff < -6
59643            ? 'sameElse'
59644            : diff < -1
59645              ? 'lastWeek'
59646              : diff < 0
59647                ? 'lastDay'
59648                : diff < 1
59649                  ? 'sameDay'
59650                  : diff < 2
59651                    ? 'nextDay'
59652                    : diff < 7
59653                      ? 'nextWeek'
59654                      : 'sameElse';
59655    }
59656
59657    function calendar$1(time, formats) {
59658        // Support for single parameter, formats only overload to the calendar function
59659        if (arguments.length === 1) {
59660            if (!arguments[0]) {
59661                time = undefined;
59662                formats = undefined;
59663            } else if (isMomentInput(arguments[0])) {
59664                time = arguments[0];
59665                formats = undefined;
59666            } else if (isCalendarSpec(arguments[0])) {
59667                formats = arguments[0];
59668                time = undefined;
59669            }
59670        }
59671        // We want to compare the start of today, vs this.
59672        // Getting start-of-today depends on whether we're local/utc/offset or not.
59673        var now = time || createLocal(),
59674            sod = cloneWithOffset(now, this).startOf('day'),
59675            format = hooks.calendarFormat(this, sod) || 'sameElse',
59676            output =
59677                formats &&
59678                (isFunction(formats[format])
59679                    ? formats[format].call(this, now)
59680                    : formats[format]);
59681
59682        return this.format(
59683            output || this.localeData().calendar(format, this, createLocal(now))
59684        );
59685    }
59686
59687    function clone() {
59688        return new Moment(this);
59689    }
59690
59691    function isAfter(input, units) {
59692        var localInput = isMoment(input) ? input : createLocal(input);
59693        if (!(this.isValid() && localInput.isValid())) {
59694            return false;
59695        }
59696        units = normalizeUnits(units) || 'millisecond';
59697        if (units === 'millisecond') {
59698            return this.valueOf() > localInput.valueOf();
59699        } else {
59700            return localInput.valueOf() < this.clone().startOf(units).valueOf();
59701        }
59702    }
59703
59704    function isBefore(input, units) {
59705        var localInput = isMoment(input) ? input : createLocal(input);
59706        if (!(this.isValid() && localInput.isValid())) {
59707            return false;
59708        }
59709        units = normalizeUnits(units) || 'millisecond';
59710        if (units === 'millisecond') {
59711            return this.valueOf() < localInput.valueOf();
59712        } else {
59713            return this.clone().endOf(units).valueOf() < localInput.valueOf();
59714        }
59715    }
59716
59717    function isBetween(from, to, units, inclusivity) {
59718        var localFrom = isMoment(from) ? from : createLocal(from),
59719            localTo = isMoment(to) ? to : createLocal(to);
59720        if (!(this.isValid() && localFrom.isValid() && localTo.isValid())) {
59721            return false;
59722        }
59723        inclusivity = inclusivity || '()';
59724        return (
59725            (inclusivity[0] === '('
59726                ? this.isAfter(localFrom, units)
59727                : !this.isBefore(localFrom, units)) &&
59728            (inclusivity[1] === ')'
59729                ? this.isBefore(localTo, units)
59730                : !this.isAfter(localTo, units))
59731        );
59732    }
59733
59734    function isSame(input, units) {
59735        var localInput = isMoment(input) ? input : createLocal(input),
59736            inputMs;
59737        if (!(this.isValid() && localInput.isValid())) {
59738            return false;
59739        }
59740        units = normalizeUnits(units) || 'millisecond';
59741        if (units === 'millisecond') {
59742            return this.valueOf() === localInput.valueOf();
59743        } else {
59744            inputMs = localInput.valueOf();
59745            return (
59746                this.clone().startOf(units).valueOf() <= inputMs &&
59747                inputMs <= this.clone().endOf(units).valueOf()
59748            );
59749        }
59750    }
59751
59752    function isSameOrAfter(input, units) {
59753        return this.isSame(input, units) || this.isAfter(input, units);
59754    }
59755
59756    function isSameOrBefore(input, units) {
59757        return this.isSame(input, units) || this.isBefore(input, units);
59758    }
59759
59760    function diff(input, units, asFloat) {
59761        var that, zoneDelta, output;
59762
59763        if (!this.isValid()) {
59764            return NaN;
59765        }
59766
59767        that = cloneWithOffset(input, this);
59768
59769        if (!that.isValid()) {
59770            return NaN;
59771        }
59772
59773        zoneDelta = (that.utcOffset() - this.utcOffset()) * 6e4;
59774
59775        units = normalizeUnits(units);
59776
59777        switch (units) {
59778            case 'year':
59779                output = monthDiff(this, that) / 12;
59780                break;
59781            case 'month':
59782                output = monthDiff(this, that);
59783                break;
59784            case 'quarter':
59785                output = monthDiff(this, that) / 3;
59786                break;
59787            case 'second':
59788                output = (this - that) / 1e3;
59789                break; // 1000
59790            case 'minute':
59791                output = (this - that) / 6e4;
59792                break; // 1000 * 60
59793            case 'hour':
59794                output = (this - that) / 36e5;
59795                break; // 1000 * 60 * 60
59796            case 'day':
59797                output = (this - that - zoneDelta) / 864e5;
59798                break; // 1000 * 60 * 60 * 24, negate dst
59799            case 'week':
59800                output = (this - that - zoneDelta) / 6048e5;
59801                break; // 1000 * 60 * 60 * 24 * 7, negate dst
59802            default:
59803                output = this - that;
59804        }
59805
59806        return asFloat ? output : absFloor(output);
59807    }
59808
59809    function monthDiff(a, b) {
59810        if (a.date() < b.date()) {
59811            // end-of-month calculations work correct when the start month has more
59812            // days than the end month.
59813            return -monthDiff(b, a);
59814        }
59815        // difference in months
59816        var wholeMonthDiff = (b.year() - a.year()) * 12 + (b.month() - a.month()),
59817            // b is in (anchor - 1 month, anchor + 1 month)
59818            anchor = a.clone().add(wholeMonthDiff, 'months'),
59819            anchor2,
59820            adjust;
59821
59822        if (b - anchor < 0) {
59823            anchor2 = a.clone().add(wholeMonthDiff - 1, 'months');
59824            // linear across the month
59825            adjust = (b - anchor) / (anchor - anchor2);
59826        } else {
59827            anchor2 = a.clone().add(wholeMonthDiff + 1, 'months');
59828            // linear across the month
59829            adjust = (b - anchor) / (anchor2 - anchor);
59830        }
59831
59832        //check for negative zero, return zero if negative zero
59833        return -(wholeMonthDiff + adjust) || 0;
59834    }
59835
59836    hooks.defaultFormat = 'YYYY-MM-DDTHH:mm:ssZ';
59837    hooks.defaultFormatUtc = 'YYYY-MM-DDTHH:mm:ss[Z]';
59838
59839    function toString() {
59840        return this.clone().locale('en').format('ddd MMM DD YYYY HH:mm:ss [GMT]ZZ');
59841    }
59842
59843    function toISOString(keepOffset) {
59844        if (!this.isValid()) {
59845            return null;
59846        }
59847        var utc = keepOffset !== true,
59848            m = utc ? this.clone().utc() : this;
59849        if (m.year() < 0 || m.year() > 9999) {
59850            return formatMoment(
59851                m,
59852                utc
59853                    ? 'YYYYYY-MM-DD[T]HH:mm:ss.SSS[Z]'
59854                    : 'YYYYYY-MM-DD[T]HH:mm:ss.SSSZ'
59855            );
59856        }
59857        if (isFunction(Date.prototype.toISOString)) {
59858            // native implementation is ~50x faster, use it when we can
59859            if (utc) {
59860                return this.toDate().toISOString();
59861            } else {
59862                return new Date(this.valueOf() + this.utcOffset() * 60 * 1000)
59863                    .toISOString()
59864                    .replace('Z', formatMoment(m, 'Z'));
59865            }
59866        }
59867        return formatMoment(
59868            m,
59869            utc ? 'YYYY-MM-DD[T]HH:mm:ss.SSS[Z]' : 'YYYY-MM-DD[T]HH:mm:ss.SSSZ'
59870        );
59871    }
59872
59873    /**
59874     * Return a human readable representation of a moment that can
59875     * also be evaluated to get a new moment which is the same
59876     *
59877     * @link https://nodejs.org/dist/latest/docs/api/util.html#util_custom_inspect_function_on_objects
59878     */
59879    function inspect() {
59880        if (!this.isValid()) {
59881            return 'moment.invalid(/* ' + this._i + ' */)';
59882        }
59883        var func = 'moment',
59884            zone = '',
59885            prefix,
59886            year,
59887            datetime,
59888            suffix;
59889        if (!this.isLocal()) {
59890            func = this.utcOffset() === 0 ? 'moment.utc' : 'moment.parseZone';
59891            zone = 'Z';
59892        }
59893        prefix = '[' + func + '("]';
59894        year = 0 <= this.year() && this.year() <= 9999 ? 'YYYY' : 'YYYYYY';
59895        datetime = '-MM-DD[T]HH:mm:ss.SSS';
59896        suffix = zone + '[")]';
59897
59898        return this.format(prefix + year + datetime + suffix);
59899    }
59900
59901    function format(inputString) {
59902        if (!inputString) {
59903            inputString = this.isUtc()
59904                ? hooks.defaultFormatUtc
59905                : hooks.defaultFormat;
59906        }
59907        var output = formatMoment(this, inputString);
59908        return this.localeData().postformat(output);
59909    }
59910
59911    function from(time, withoutSuffix) {
59912        if (
59913            this.isValid() &&
59914            ((isMoment(time) && time.isValid()) || createLocal(time).isValid())
59915        ) {
59916            return createDuration({ to: this, from: time })
59917                .locale(this.locale())
59918                .humanize(!withoutSuffix);
59919        } else {
59920            return this.localeData().invalidDate();
59921        }
59922    }
59923
59924    function fromNow(withoutSuffix) {
59925        return this.from(createLocal(), withoutSuffix);
59926    }
59927
59928    function to(time, withoutSuffix) {
59929        if (
59930            this.isValid() &&
59931            ((isMoment(time) && time.isValid()) || createLocal(time).isValid())
59932        ) {
59933            return createDuration({ from: this, to: time })
59934                .locale(this.locale())
59935                .humanize(!withoutSuffix);
59936        } else {
59937            return this.localeData().invalidDate();
59938        }
59939    }
59940
59941    function toNow(withoutSuffix) {
59942        return this.to(createLocal(), withoutSuffix);
59943    }
59944
59945    // If passed a locale key, it will set the locale for this
59946    // instance.  Otherwise, it will return the locale configuration
59947    // variables for this instance.
59948    function locale(key) {
59949        var newLocaleData;
59950
59951        if (key === undefined) {
59952            return this._locale._abbr;
59953        } else {
59954            newLocaleData = getLocale(key);
59955            if (newLocaleData != null) {
59956                this._locale = newLocaleData;
59957            }
59958            return this;
59959        }
59960    }
59961
59962    var lang = deprecate(
59963        'moment().lang() is deprecated. Instead, use moment().localeData() to get the language configuration. Use moment().locale() to change languages.',
59964        function (key) {
59965            if (key === undefined) {
59966                return this.localeData();
59967            } else {
59968                return this.locale(key);
59969            }
59970        }
59971    );
59972
59973    function localeData() {
59974        return this._locale;
59975    }
59976
59977    var MS_PER_SECOND = 1000,
59978        MS_PER_MINUTE = 60 * MS_PER_SECOND,
59979        MS_PER_HOUR = 60 * MS_PER_MINUTE,
59980        MS_PER_400_YEARS = (365 * 400 + 97) * 24 * MS_PER_HOUR;
59981
59982    // actual modulo - handles negative numbers (for dates before 1970):
59983    function mod$1(dividend, divisor) {
59984        return ((dividend % divisor) + divisor) % divisor;
59985    }
59986
59987    function localStartOfDate(y, m, d) {
59988        // the date constructor remaps years 0-99 to 1900-1999
59989        if (y < 100 && y >= 0) {
59990            // preserve leap years using a full 400 year cycle, then reset
59991            return new Date(y + 400, m, d) - MS_PER_400_YEARS;
59992        } else {
59993            return new Date(y, m, d).valueOf();
59994        }
59995    }
59996
59997    function utcStartOfDate(y, m, d) {
59998        // Date.UTC remaps years 0-99 to 1900-1999
59999        if (y < 100 && y >= 0) {
60000            // preserve leap years using a full 400 year cycle, then reset
60001            return Date.UTC(y + 400, m, d) - MS_PER_400_YEARS;
60002        } else {
60003            return Date.UTC(y, m, d);
60004        }
60005    }
60006
60007    function startOf(units) {
60008        var time, startOfDate;
60009        units = normalizeUnits(units);
60010        if (units === undefined || units === 'millisecond' || !this.isValid()) {
60011            return this;
60012        }
60013
60014        startOfDate = this._isUTC ? utcStartOfDate : localStartOfDate;
60015
60016        switch (units) {
60017            case 'year':
60018                time = startOfDate(this.year(), 0, 1);
60019                break;
60020            case 'quarter':
60021                time = startOfDate(
60022                    this.year(),
60023                    this.month() - (this.month() % 3),
60024                    1
60025                );
60026                break;
60027            case 'month':
60028                time = startOfDate(this.year(), this.month(), 1);
60029                break;
60030            case 'week':
60031                time = startOfDate(
60032                    this.year(),
60033                    this.month(),
60034                    this.date() - this.weekday()
60035                );
60036                break;
60037            case 'isoWeek':
60038                time = startOfDate(
60039                    this.year(),
60040                    this.month(),
60041                    this.date() - (this.isoWeekday() - 1)
60042                );
60043                break;
60044            case 'day':
60045            case 'date':
60046                time = startOfDate(this.year(), this.month(), this.date());
60047                break;
60048            case 'hour':
60049                time = this._d.valueOf();
60050                time -= mod$1(
60051                    time + (this._isUTC ? 0 : this.utcOffset() * MS_PER_MINUTE),
60052                    MS_PER_HOUR
60053                );
60054                break;
60055            case 'minute':
60056                time = this._d.valueOf();
60057                time -= mod$1(time, MS_PER_MINUTE);
60058                break;
60059            case 'second':
60060                time = this._d.valueOf();
60061                time -= mod$1(time, MS_PER_SECOND);
60062                break;
60063        }
60064
60065        this._d.setTime(time);
60066        hooks.updateOffset(this, true);
60067        return this;
60068    }
60069
60070    function endOf(units) {
60071        var time, startOfDate;
60072        units = normalizeUnits(units);
60073        if (units === undefined || units === 'millisecond' || !this.isValid()) {
60074            return this;
60075        }
60076
60077        startOfDate = this._isUTC ? utcStartOfDate : localStartOfDate;
60078
60079        switch (units) {
60080            case 'year':
60081                time = startOfDate(this.year() + 1, 0, 1) - 1;
60082                break;
60083            case 'quarter':
60084                time =
60085                    startOfDate(
60086                        this.year(),
60087                        this.month() - (this.month() % 3) + 3,
60088                        1
60089                    ) - 1;
60090                break;
60091            case 'month':
60092                time = startOfDate(this.year(), this.month() + 1, 1) - 1;
60093                break;
60094            case 'week':
60095                time =
60096                    startOfDate(
60097                        this.year(),
60098                        this.month(),
60099                        this.date() - this.weekday() + 7
60100                    ) - 1;
60101                break;
60102            case 'isoWeek':
60103                time =
60104                    startOfDate(
60105                        this.year(),
60106                        this.month(),
60107                        this.date() - (this.isoWeekday() - 1) + 7
60108                    ) - 1;
60109                break;
60110            case 'day':
60111            case 'date':
60112                time = startOfDate(this.year(), this.month(), this.date() + 1) - 1;
60113                break;
60114            case 'hour':
60115                time = this._d.valueOf();
60116                time +=
60117                    MS_PER_HOUR -
60118                    mod$1(
60119                        time + (this._isUTC ? 0 : this.utcOffset() * MS_PER_MINUTE),
60120                        MS_PER_HOUR
60121                    ) -
60122                    1;
60123                break;
60124            case 'minute':
60125                time = this._d.valueOf();
60126                time += MS_PER_MINUTE - mod$1(time, MS_PER_MINUTE) - 1;
60127                break;
60128            case 'second':
60129                time = this._d.valueOf();
60130                time += MS_PER_SECOND - mod$1(time, MS_PER_SECOND) - 1;
60131                break;
60132        }
60133
60134        this._d.setTime(time);
60135        hooks.updateOffset(this, true);
60136        return this;
60137    }
60138
60139    function valueOf() {
60140        return this._d.valueOf() - (this._offset || 0) * 60000;
60141    }
60142
60143    function unix() {
60144        return Math.floor(this.valueOf() / 1000);
60145    }
60146
60147    function toDate() {
60148        return new Date(this.valueOf());
60149    }
60150
60151    function toArray() {
60152        var m = this;
60153        return [
60154            m.year(),
60155            m.month(),
60156            m.date(),
60157            m.hour(),
60158            m.minute(),
60159            m.second(),
60160            m.millisecond(),
60161        ];
60162    }
60163
60164    function toObject() {
60165        var m = this;
60166        return {
60167            years: m.year(),
60168            months: m.month(),
60169            date: m.date(),
60170            hours: m.hours(),
60171            minutes: m.minutes(),
60172            seconds: m.seconds(),
60173            milliseconds: m.milliseconds(),
60174        };
60175    }
60176
60177    function toJSON() {
60178        // new Date(NaN).toJSON() === null
60179        return this.isValid() ? this.toISOString() : null;
60180    }
60181
60182    function isValid$2() {
60183        return isValid(this);
60184    }
60185
60186    function parsingFlags() {
60187        return extend({}, getParsingFlags(this));
60188    }
60189
60190    function invalidAt() {
60191        return getParsingFlags(this).overflow;
60192    }
60193
60194    function creationData() {
60195        return {
60196            input: this._i,
60197            format: this._f,
60198            locale: this._locale,
60199            isUTC: this._isUTC,
60200            strict: this._strict,
60201        };
60202    }
60203
60204    addFormatToken('N', 0, 0, 'eraAbbr');
60205    addFormatToken('NN', 0, 0, 'eraAbbr');
60206    addFormatToken('NNN', 0, 0, 'eraAbbr');
60207    addFormatToken('NNNN', 0, 0, 'eraName');
60208    addFormatToken('NNNNN', 0, 0, 'eraNarrow');
60209
60210    addFormatToken('y', ['y', 1], 'yo', 'eraYear');
60211    addFormatToken('y', ['yy', 2], 0, 'eraYear');
60212    addFormatToken('y', ['yyy', 3], 0, 'eraYear');
60213    addFormatToken('y', ['yyyy', 4], 0, 'eraYear');
60214
60215    addRegexToken('N', matchEraAbbr);
60216    addRegexToken('NN', matchEraAbbr);
60217    addRegexToken('NNN', matchEraAbbr);
60218    addRegexToken('NNNN', matchEraName);
60219    addRegexToken('NNNNN', matchEraNarrow);
60220
60221    addParseToken(
60222        ['N', 'NN', 'NNN', 'NNNN', 'NNNNN'],
60223        function (input, array, config, token) {
60224            var era = config._locale.erasParse(input, token, config._strict);
60225            if (era) {
60226                getParsingFlags(config).era = era;
60227            } else {
60228                getParsingFlags(config).invalidEra = input;
60229            }
60230        }
60231    );
60232
60233    addRegexToken('y', matchUnsigned);
60234    addRegexToken('yy', matchUnsigned);
60235    addRegexToken('yyy', matchUnsigned);
60236    addRegexToken('yyyy', matchUnsigned);
60237    addRegexToken('yo', matchEraYearOrdinal);
60238
60239    addParseToken(['y', 'yy', 'yyy', 'yyyy'], YEAR);
60240    addParseToken(['yo'], function (input, array, config, token) {
60241        var match;
60242        if (config._locale._eraYearOrdinalRegex) {
60243            match = input.match(config._locale._eraYearOrdinalRegex);
60244        }
60245
60246        if (config._locale.eraYearOrdinalParse) {
60247            array[YEAR] = config._locale.eraYearOrdinalParse(input, match);
60248        } else {
60249            array[YEAR] = parseInt(input, 10);
60250        }
60251    });
60252
60253    function localeEras(m, format) {
60254        var i,
60255            l,
60256            date,
60257            eras = this._eras || getLocale('en')._eras;
60258        for (i = 0, l = eras.length; i < l; ++i) {
60259            switch (typeof eras[i].since) {
60260                case 'string':
60261                    // truncate time
60262                    date = hooks(eras[i].since).startOf('day');
60263                    eras[i].since = date.valueOf();
60264                    break;
60265            }
60266
60267            switch (typeof eras[i].until) {
60268                case 'undefined':
60269                    eras[i].until = +Infinity;
60270                    break;
60271                case 'string':
60272                    // truncate time
60273                    date = hooks(eras[i].until).startOf('day').valueOf();
60274                    eras[i].until = date.valueOf();
60275                    break;
60276            }
60277        }
60278        return eras;
60279    }
60280
60281    function localeErasParse(eraName, format, strict) {
60282        var i,
60283            l,
60284            eras = this.eras(),
60285            name,
60286            abbr,
60287            narrow;
60288        eraName = eraName.toUpperCase();
60289
60290        for (i = 0, l = eras.length; i < l; ++i) {
60291            name = eras[i].name.toUpperCase();
60292            abbr = eras[i].abbr.toUpperCase();
60293            narrow = eras[i].narrow.toUpperCase();
60294
60295            if (strict) {
60296                switch (format) {
60297                    case 'N':
60298                    case 'NN':
60299                    case 'NNN':
60300                        if (abbr === eraName) {
60301                            return eras[i];
60302                        }
60303                        break;
60304
60305                    case 'NNNN':
60306                        if (name === eraName) {
60307                            return eras[i];
60308                        }
60309                        break;
60310
60311                    case 'NNNNN':
60312                        if (narrow === eraName) {
60313                            return eras[i];
60314                        }
60315                        break;
60316                }
60317            } else if ([name, abbr, narrow].indexOf(eraName) >= 0) {
60318                return eras[i];
60319            }
60320        }
60321    }
60322
60323    function localeErasConvertYear(era, year) {
60324        var dir = era.since <= era.until ? +1 : -1;
60325        if (year === undefined) {
60326            return hooks(era.since).year();
60327        } else {
60328            return hooks(era.since).year() + (year - era.offset) * dir;
60329        }
60330    }
60331
60332    function getEraName() {
60333        var i,
60334            l,
60335            val,
60336            eras = this.localeData().eras();
60337        for (i = 0, l = eras.length; i < l; ++i) {
60338            // truncate time
60339            val = this.clone().startOf('day').valueOf();
60340
60341            if (eras[i].since <= val && val <= eras[i].until) {
60342                return eras[i].name;
60343            }
60344            if (eras[i].until <= val && val <= eras[i].since) {
60345                return eras[i].name;
60346            }
60347        }
60348
60349        return '';
60350    }
60351
60352    function getEraNarrow() {
60353        var i,
60354            l,
60355            val,
60356            eras = this.localeData().eras();
60357        for (i = 0, l = eras.length; i < l; ++i) {
60358            // truncate time
60359            val = this.clone().startOf('day').valueOf();
60360
60361            if (eras[i].since <= val && val <= eras[i].until) {
60362                return eras[i].narrow;
60363            }
60364            if (eras[i].until <= val && val <= eras[i].since) {
60365                return eras[i].narrow;
60366            }
60367        }
60368
60369        return '';
60370    }
60371
60372    function getEraAbbr() {
60373        var i,
60374            l,
60375            val,
60376            eras = this.localeData().eras();
60377        for (i = 0, l = eras.length; i < l; ++i) {
60378            // truncate time
60379            val = this.clone().startOf('day').valueOf();
60380
60381            if (eras[i].since <= val && val <= eras[i].until) {
60382                return eras[i].abbr;
60383            }
60384            if (eras[i].until <= val && val <= eras[i].since) {
60385                return eras[i].abbr;
60386            }
60387        }
60388
60389        return '';
60390    }
60391
60392    function getEraYear() {
60393        var i,
60394            l,
60395            dir,
60396            val,
60397            eras = this.localeData().eras();
60398        for (i = 0, l = eras.length; i < l; ++i) {
60399            dir = eras[i].since <= eras[i].until ? +1 : -1;
60400
60401            // truncate time
60402            val = this.clone().startOf('day').valueOf();
60403
60404            if (
60405                (eras[i].since <= val && val <= eras[i].until) ||
60406                (eras[i].until <= val && val <= eras[i].since)
60407            ) {
60408                return (
60409                    (this.year() - hooks(eras[i].since).year()) * dir +
60410                    eras[i].offset
60411                );
60412            }
60413        }
60414
60415        return this.year();
60416    }
60417
60418    function erasNameRegex(isStrict) {
60419        if (!hasOwnProp(this, '_erasNameRegex')) {
60420            computeErasParse.call(this);
60421        }
60422        return isStrict ? this._erasNameRegex : this._erasRegex;
60423    }
60424
60425    function erasAbbrRegex(isStrict) {
60426        if (!hasOwnProp(this, '_erasAbbrRegex')) {
60427            computeErasParse.call(this);
60428        }
60429        return isStrict ? this._erasAbbrRegex : this._erasRegex;
60430    }
60431
60432    function erasNarrowRegex(isStrict) {
60433        if (!hasOwnProp(this, '_erasNarrowRegex')) {
60434            computeErasParse.call(this);
60435        }
60436        return isStrict ? this._erasNarrowRegex : this._erasRegex;
60437    }
60438
60439    function matchEraAbbr(isStrict, locale) {
60440        return locale.erasAbbrRegex(isStrict);
60441    }
60442
60443    function matchEraName(isStrict, locale) {
60444        return locale.erasNameRegex(isStrict);
60445    }
60446
60447    function matchEraNarrow(isStrict, locale) {
60448        return locale.erasNarrowRegex(isStrict);
60449    }
60450
60451    function matchEraYearOrdinal(isStrict, locale) {
60452        return locale._eraYearOrdinalRegex || matchUnsigned;
60453    }
60454
60455    function computeErasParse() {
60456        var abbrPieces = [],
60457            namePieces = [],
60458            narrowPieces = [],
60459            mixedPieces = [],
60460            i,
60461            l,
60462            erasName,
60463            erasAbbr,
60464            erasNarrow,
60465            eras = this.eras();
60466
60467        for (i = 0, l = eras.length; i < l; ++i) {
60468            erasName = regexEscape(eras[i].name);
60469            erasAbbr = regexEscape(eras[i].abbr);
60470            erasNarrow = regexEscape(eras[i].narrow);
60471
60472            namePieces.push(erasName);
60473            abbrPieces.push(erasAbbr);
60474            narrowPieces.push(erasNarrow);
60475            mixedPieces.push(erasName);
60476            mixedPieces.push(erasAbbr);
60477            mixedPieces.push(erasNarrow);
60478        }
60479
60480        this._erasRegex = new RegExp('^(' + mixedPieces.join('|') + ')', 'i');
60481        this._erasNameRegex = new RegExp('^(' + namePieces.join('|') + ')', 'i');
60482        this._erasAbbrRegex = new RegExp('^(' + abbrPieces.join('|') + ')', 'i');
60483        this._erasNarrowRegex = new RegExp(
60484            '^(' + narrowPieces.join('|') + ')',
60485            'i'
60486        );
60487    }
60488
60489    // FORMATTING
60490
60491    addFormatToken(0, ['gg', 2], 0, function () {
60492        return this.weekYear() % 100;
60493    });
60494
60495    addFormatToken(0, ['GG', 2], 0, function () {
60496        return this.isoWeekYear() % 100;
60497    });
60498
60499    function addWeekYearFormatToken(token, getter) {
60500        addFormatToken(0, [token, token.length], 0, getter);
60501    }
60502
60503    addWeekYearFormatToken('gggg', 'weekYear');
60504    addWeekYearFormatToken('ggggg', 'weekYear');
60505    addWeekYearFormatToken('GGGG', 'isoWeekYear');
60506    addWeekYearFormatToken('GGGGG', 'isoWeekYear');
60507
60508    // ALIASES
60509
60510    // PARSING
60511
60512    addRegexToken('G', matchSigned);
60513    addRegexToken('g', matchSigned);
60514    addRegexToken('GG', match1to2, match2);
60515    addRegexToken('gg', match1to2, match2);
60516    addRegexToken('GGGG', match1to4, match4);
60517    addRegexToken('gggg', match1to4, match4);
60518    addRegexToken('GGGGG', match1to6, match6);
60519    addRegexToken('ggggg', match1to6, match6);
60520
60521    addWeekParseToken(
60522        ['gggg', 'ggggg', 'GGGG', 'GGGGG'],
60523        function (input, week, config, token) {
60524            week[token.substr(0, 2)] = toInt(input);
60525        }
60526    );
60527
60528    addWeekParseToken(['gg', 'GG'], function (input, week, config, token) {
60529        week[token] = hooks.parseTwoDigitYear(input);
60530    });
60531
60532    // MOMENTS
60533
60534    function getSetWeekYear(input) {
60535        return getSetWeekYearHelper.call(
60536            this,
60537            input,
60538            this.week(),
60539            this.weekday() + this.localeData()._week.dow,
60540            this.localeData()._week.dow,
60541            this.localeData()._week.doy
60542        );
60543    }
60544
60545    function getSetISOWeekYear(input) {
60546        return getSetWeekYearHelper.call(
60547            this,
60548            input,
60549            this.isoWeek(),
60550            this.isoWeekday(),
60551            1,
60552            4
60553        );
60554    }
60555
60556    function getISOWeeksInYear() {
60557        return weeksInYear(this.year(), 1, 4);
60558    }
60559
60560    function getISOWeeksInISOWeekYear() {
60561        return weeksInYear(this.isoWeekYear(), 1, 4);
60562    }
60563
60564    function getWeeksInYear() {
60565        var weekInfo = this.localeData()._week;
60566        return weeksInYear(this.year(), weekInfo.dow, weekInfo.doy);
60567    }
60568
60569    function getWeeksInWeekYear() {
60570        var weekInfo = this.localeData()._week;
60571        return weeksInYear(this.weekYear(), weekInfo.dow, weekInfo.doy);
60572    }
60573
60574    function getSetWeekYearHelper(input, week, weekday, dow, doy) {
60575        var weeksTarget;
60576        if (input == null) {
60577            return weekOfYear(this, dow, doy).year;
60578        } else {
60579            weeksTarget = weeksInYear(input, dow, doy);
60580            if (week > weeksTarget) {
60581                week = weeksTarget;
60582            }
60583            return setWeekAll.call(this, input, week, weekday, dow, doy);
60584        }
60585    }
60586
60587    function setWeekAll(weekYear, week, weekday, dow, doy) {
60588        var dayOfYearData = dayOfYearFromWeeks(weekYear, week, weekday, dow, doy),
60589            date = createUTCDate(dayOfYearData.year, 0, dayOfYearData.dayOfYear);
60590
60591        this.year(date.getUTCFullYear());
60592        this.month(date.getUTCMonth());
60593        this.date(date.getUTCDate());
60594        return this;
60595    }
60596
60597    // FORMATTING
60598
60599    addFormatToken('Q', 0, 'Qo', 'quarter');
60600
60601    // PARSING
60602
60603    addRegexToken('Q', match1);
60604    addParseToken('Q', function (input, array) {
60605        array[MONTH] = (toInt(input) - 1) * 3;
60606    });
60607
60608    // MOMENTS
60609
60610    function getSetQuarter(input) {
60611        return input == null
60612            ? Math.ceil((this.month() + 1) / 3)
60613            : this.month((input - 1) * 3 + (this.month() % 3));
60614    }
60615
60616    // FORMATTING
60617
60618    addFormatToken('D', ['DD', 2], 'Do', 'date');
60619
60620    // PARSING
60621
60622    addRegexToken('D', match1to2, match1to2NoLeadingZero);
60623    addRegexToken('DD', match1to2, match2);
60624    addRegexToken('Do', function (isStrict, locale) {
60625        // TODO: Remove "ordinalParse" fallback in next major release.
60626        return isStrict
60627            ? locale._dayOfMonthOrdinalParse || locale._ordinalParse
60628            : locale._dayOfMonthOrdinalParseLenient;
60629    });
60630
60631    addParseToken(['D', 'DD'], DATE);
60632    addParseToken('Do', function (input, array) {
60633        array[DATE] = toInt(input.match(match1to2)[0]);
60634    });
60635
60636    // MOMENTS
60637
60638    var getSetDayOfMonth = makeGetSet('Date', true);
60639
60640    // FORMATTING
60641
60642    addFormatToken('DDD', ['DDDD', 3], 'DDDo', 'dayOfYear');
60643
60644    // PARSING
60645
60646    addRegexToken('DDD', match1to3);
60647    addRegexToken('DDDD', match3);
60648    addParseToken(['DDD', 'DDDD'], function (input, array, config) {
60649        config._dayOfYear = toInt(input);
60650    });
60651
60652    // HELPERS
60653
60654    // MOMENTS
60655
60656    function getSetDayOfYear(input) {
60657        var dayOfYear =
60658            Math.round(
60659                (this.clone().startOf('day') - this.clone().startOf('year')) / 864e5
60660            ) + 1;
60661        return input == null ? dayOfYear : this.add(input - dayOfYear, 'd');
60662    }
60663
60664    // FORMATTING
60665
60666    addFormatToken('m', ['mm', 2], 0, 'minute');
60667
60668    // PARSING
60669
60670    addRegexToken('m', match1to2, match1to2HasZero);
60671    addRegexToken('mm', match1to2, match2);
60672    addParseToken(['m', 'mm'], MINUTE);
60673
60674    // MOMENTS
60675
60676    var getSetMinute = makeGetSet('Minutes', false);
60677
60678    // FORMATTING
60679
60680    addFormatToken('s', ['ss', 2], 0, 'second');
60681
60682    // PARSING
60683
60684    addRegexToken('s', match1to2, match1to2HasZero);
60685    addRegexToken('ss', match1to2, match2);
60686    addParseToken(['s', 'ss'], SECOND);
60687
60688    // MOMENTS
60689
60690    var getSetSecond = makeGetSet('Seconds', false);
60691
60692    // FORMATTING
60693
60694    addFormatToken('S', 0, 0, function () {
60695        return ~~(this.millisecond() / 100);
60696    });
60697
60698    addFormatToken(0, ['SS', 2], 0, function () {
60699        return ~~(this.millisecond() / 10);
60700    });
60701
60702    addFormatToken(0, ['SSS', 3], 0, 'millisecond');
60703    addFormatToken(0, ['SSSS', 4], 0, function () {
60704        return this.millisecond() * 10;
60705    });
60706    addFormatToken(0, ['SSSSS', 5], 0, function () {
60707        return this.millisecond() * 100;
60708    });
60709    addFormatToken(0, ['SSSSSS', 6], 0, function () {
60710        return this.millisecond() * 1000;
60711    });
60712    addFormatToken(0, ['SSSSSSS', 7], 0, function () {
60713        return this.millisecond() * 10000;
60714    });
60715    addFormatToken(0, ['SSSSSSSS', 8], 0, function () {
60716        return this.millisecond() * 100000;
60717    });
60718    addFormatToken(0, ['SSSSSSSSS', 9], 0, function () {
60719        return this.millisecond() * 1000000;
60720    });
60721
60722    // PARSING
60723
60724    addRegexToken('S', match1to3, match1);
60725    addRegexToken('SS', match1to3, match2);
60726    addRegexToken('SSS', match1to3, match3);
60727
60728    var token, getSetMillisecond;
60729    for (token = 'SSSS'; token.length <= 9; token += 'S') {
60730        addRegexToken(token, matchUnsigned);
60731    }
60732
60733    function parseMs(input, array) {
60734        array[MILLISECOND] = toInt(('0.' + input) * 1000);
60735    }
60736
60737    for (token = 'S'; token.length <= 9; token += 'S') {
60738        addParseToken(token, parseMs);
60739    }
60740
60741    getSetMillisecond = makeGetSet('Milliseconds', false);
60742
60743    // FORMATTING
60744
60745    addFormatToken('z', 0, 0, 'zoneAbbr');
60746    addFormatToken('zz', 0, 0, 'zoneName');
60747
60748    // MOMENTS
60749
60750    function getZoneAbbr() {
60751        return this._isUTC ? 'UTC' : '';
60752    }
60753
60754    function getZoneName() {
60755        return this._isUTC ? 'Coordinated Universal Time' : '';
60756    }
60757
60758    var proto = Moment.prototype;
60759
60760    proto.add = add;
60761    proto.calendar = calendar$1;
60762    proto.clone = clone;
60763    proto.diff = diff;
60764    proto.endOf = endOf;
60765    proto.format = format;
60766    proto.from = from;
60767    proto.fromNow = fromNow;
60768    proto.to = to;
60769    proto.toNow = toNow;
60770    proto.get = stringGet;
60771    proto.invalidAt = invalidAt;
60772    proto.isAfter = isAfter;
60773    proto.isBefore = isBefore;
60774    proto.isBetween = isBetween;
60775    proto.isSame = isSame;
60776    proto.isSameOrAfter = isSameOrAfter;
60777    proto.isSameOrBefore = isSameOrBefore;
60778    proto.isValid = isValid$2;
60779    proto.lang = lang;
60780    proto.locale = locale;
60781    proto.localeData = localeData;
60782    proto.max = prototypeMax;
60783    proto.min = prototypeMin;
60784    proto.parsingFlags = parsingFlags;
60785    proto.set = stringSet;
60786    proto.startOf = startOf;
60787    proto.subtract = subtract;
60788    proto.toArray = toArray;
60789    proto.toObject = toObject;
60790    proto.toDate = toDate;
60791    proto.toISOString = toISOString;
60792    proto.inspect = inspect;
60793    if (typeof Symbol !== 'undefined' && Symbol.for != null) {
60794        proto[Symbol.for('nodejs.util.inspect.custom')] = function () {
60795            return 'Moment<' + this.format() + '>';
60796        };
60797    }
60798    proto.toJSON = toJSON;
60799    proto.toString = toString;
60800    proto.unix = unix;
60801    proto.valueOf = valueOf;
60802    proto.creationData = creationData;
60803    proto.eraName = getEraName;
60804    proto.eraNarrow = getEraNarrow;
60805    proto.eraAbbr = getEraAbbr;
60806    proto.eraYear = getEraYear;
60807    proto.year = getSetYear;
60808    proto.isLeapYear = getIsLeapYear;
60809    proto.weekYear = getSetWeekYear;
60810    proto.isoWeekYear = getSetISOWeekYear;
60811    proto.quarter = proto.quarters = getSetQuarter;
60812    proto.month = getSetMonth;
60813    proto.daysInMonth = getDaysInMonth;
60814    proto.week = proto.weeks = getSetWeek;
60815    proto.isoWeek = proto.isoWeeks = getSetISOWeek;
60816    proto.weeksInYear = getWeeksInYear;
60817    proto.weeksInWeekYear = getWeeksInWeekYear;
60818    proto.isoWeeksInYear = getISOWeeksInYear;
60819    proto.isoWeeksInISOWeekYear = getISOWeeksInISOWeekYear;
60820    proto.date = getSetDayOfMonth;
60821    proto.day = proto.days = getSetDayOfWeek;
60822    proto.weekday = getSetLocaleDayOfWeek;
60823    proto.isoWeekday = getSetISODayOfWeek;
60824    proto.dayOfYear = getSetDayOfYear;
60825    proto.hour = proto.hours = getSetHour;
60826    proto.minute = proto.minutes = getSetMinute;
60827    proto.second = proto.seconds = getSetSecond;
60828    proto.millisecond = proto.milliseconds = getSetMillisecond;
60829    proto.utcOffset = getSetOffset;
60830    proto.utc = setOffsetToUTC;
60831    proto.local = setOffsetToLocal;
60832    proto.parseZone = setOffsetToParsedOffset;
60833    proto.hasAlignedHourOffset = hasAlignedHourOffset;
60834    proto.isDST = isDaylightSavingTime;
60835    proto.isLocal = isLocal;
60836    proto.isUtcOffset = isUtcOffset;
60837    proto.isUtc = isUtc;
60838    proto.isUTC = isUtc;
60839    proto.zoneAbbr = getZoneAbbr;
60840    proto.zoneName = getZoneName;
60841    proto.dates = deprecate(
60842        'dates accessor is deprecated. Use date instead.',
60843        getSetDayOfMonth
60844    );
60845    proto.months = deprecate(
60846        'months accessor is deprecated. Use month instead',
60847        getSetMonth
60848    );
60849    proto.years = deprecate(
60850        'years accessor is deprecated. Use year instead',
60851        getSetYear
60852    );
60853    proto.zone = deprecate(
60854        'moment().zone is deprecated, use moment().utcOffset instead. http://momentjs.com/guides/#/warnings/zone/',
60855        getSetZone
60856    );
60857    proto.isDSTShifted = deprecate(
60858        'isDSTShifted is deprecated. See http://momentjs.com/guides/#/warnings/dst-shifted/ for more information',
60859        isDaylightSavingTimeShifted
60860    );
60861
60862    function createUnix(input) {
60863        return createLocal(input * 1000);
60864    }
60865
60866    function createInZone() {
60867        return createLocal.apply(null, arguments).parseZone();
60868    }
60869
60870    function preParsePostFormat(string) {
60871        return string;
60872    }
60873
60874    var proto$1 = Locale.prototype;
60875
60876    proto$1.calendar = calendar;
60877    proto$1.longDateFormat = longDateFormat;
60878    proto$1.invalidDate = invalidDate;
60879    proto$1.ordinal = ordinal;
60880    proto$1.preparse = preParsePostFormat;
60881    proto$1.postformat = preParsePostFormat;
60882    proto$1.relativeTime = relativeTime;
60883    proto$1.pastFuture = pastFuture;
60884    proto$1.set = set;
60885    proto$1.eras = localeEras;
60886    proto$1.erasParse = localeErasParse;
60887    proto$1.erasConvertYear = localeErasConvertYear;
60888    proto$1.erasAbbrRegex = erasAbbrRegex;
60889    proto$1.erasNameRegex = erasNameRegex;
60890    proto$1.erasNarrowRegex = erasNarrowRegex;
60891
60892    proto$1.months = localeMonths;
60893    proto$1.monthsShort = localeMonthsShort;
60894    proto$1.monthsParse = localeMonthsParse;
60895    proto$1.monthsRegex = monthsRegex;
60896    proto$1.monthsShortRegex = monthsShortRegex;
60897    proto$1.week = localeWeek;
60898    proto$1.firstDayOfYear = localeFirstDayOfYear;
60899    proto$1.firstDayOfWeek = localeFirstDayOfWeek;
60900
60901    proto$1.weekdays = localeWeekdays;
60902    proto$1.weekdaysMin = localeWeekdaysMin;
60903    proto$1.weekdaysShort = localeWeekdaysShort;
60904    proto$1.weekdaysParse = localeWeekdaysParse;
60905
60906    proto$1.weekdaysRegex = weekdaysRegex;
60907    proto$1.weekdaysShortRegex = weekdaysShortRegex;
60908    proto$1.weekdaysMinRegex = weekdaysMinRegex;
60909
60910    proto$1.isPM = localeIsPM;
60911    proto$1.meridiem = localeMeridiem;
60912
60913    function get$1(format, index, field, setter) {
60914        var locale = getLocale(),
60915            utc = createUTC().set(setter, index);
60916        return locale[field](utc, format);
60917    }
60918
60919    function listMonthsImpl(format, index, field) {
60920        if (isNumber(format)) {
60921            index = format;
60922            format = undefined;
60923        }
60924
60925        format = format || '';
60926
60927        if (index != null) {
60928            return get$1(format, index, field, 'month');
60929        }
60930
60931        var i,
60932            out = [];
60933        for (i = 0; i < 12; i++) {
60934            out[i] = get$1(format, i, field, 'month');
60935        }
60936        return out;
60937    }
60938
60939    // ()
60940    // (5)
60941    // (fmt, 5)
60942    // (fmt)
60943    // (true)
60944    // (true, 5)
60945    // (true, fmt, 5)
60946    // (true, fmt)
60947    function listWeekdaysImpl(localeSorted, format, index, field) {
60948        if (typeof localeSorted === 'boolean') {
60949            if (isNumber(format)) {
60950                index = format;
60951                format = undefined;
60952            }
60953
60954            format = format || '';
60955        } else {
60956            format = localeSorted;
60957            index = format;
60958            localeSorted = false;
60959
60960            if (isNumber(format)) {
60961                index = format;
60962                format = undefined;
60963            }
60964
60965            format = format || '';
60966        }
60967
60968        var locale = getLocale(),
60969            shift = localeSorted ? locale._week.dow : 0,
60970            i,
60971            out = [];
60972
60973        if (index != null) {
60974            return get$1(format, (index + shift) % 7, field, 'day');
60975        }
60976
60977        for (i = 0; i < 7; i++) {
60978            out[i] = get$1(format, (i + shift) % 7, field, 'day');
60979        }
60980        return out;
60981    }
60982
60983    function listMonths(format, index) {
60984        return listMonthsImpl(format, index, 'months');
60985    }
60986
60987    function listMonthsShort(format, index) {
60988        return listMonthsImpl(format, index, 'monthsShort');
60989    }
60990
60991    function listWeekdays(localeSorted, format, index) {
60992        return listWeekdaysImpl(localeSorted, format, index, 'weekdays');
60993    }
60994
60995    function listWeekdaysShort(localeSorted, format, index) {
60996        return listWeekdaysImpl(localeSorted, format, index, 'weekdaysShort');
60997    }
60998
60999    function listWeekdaysMin(localeSorted, format, index) {
61000        return listWeekdaysImpl(localeSorted, format, index, 'weekdaysMin');
61001    }
61002
61003    getSetGlobalLocale('en', {
61004        eras: [
61005            {
61006                since: '0001-01-01',
61007                until: +Infinity,
61008                offset: 1,
61009                name: 'Anno Domini',
61010                narrow: 'AD',
61011                abbr: 'AD',
61012            },
61013            {
61014                since: '0000-12-31',
61015                until: -Infinity,
61016                offset: 1,
61017                name: 'Before Christ',
61018                narrow: 'BC',
61019                abbr: 'BC',
61020            },
61021        ],
61022        dayOfMonthOrdinalParse: /\d{1,2}(th|st|nd|rd)/,
61023        ordinal: function (number) {
61024            var b = number % 10,
61025                output =
61026                    toInt((number % 100) / 10) === 1
61027                        ? 'th'
61028                        : b === 1
61029                          ? 'st'
61030                          : b === 2
61031                            ? 'nd'
61032                            : b === 3
61033                              ? 'rd'
61034                              : 'th';
61035            return number + output;
61036        },
61037    });
61038
61039    // Side effect imports
61040
61041    hooks.lang = deprecate(
61042        'moment.lang is deprecated. Use moment.locale instead.',
61043        getSetGlobalLocale
61044    );
61045    hooks.langData = deprecate(
61046        'moment.langData is deprecated. Use moment.localeData instead.',
61047        getLocale
61048    );
61049
61050    var mathAbs = Math.abs;
61051
61052    function abs() {
61053        var data = this._data;
61054
61055        this._milliseconds = mathAbs(this._milliseconds);
61056        this._days = mathAbs(this._days);
61057        this._months = mathAbs(this._months);
61058
61059        data.milliseconds = mathAbs(data.milliseconds);
61060        data.seconds = mathAbs(data.seconds);
61061        data.minutes = mathAbs(data.minutes);
61062        data.hours = mathAbs(data.hours);
61063        data.months = mathAbs(data.months);
61064        data.years = mathAbs(data.years);
61065
61066        return this;
61067    }
61068
61069    function addSubtract$1(duration, input, value, direction) {
61070        var other = createDuration(input, value);
61071
61072        duration._milliseconds += direction * other._milliseconds;
61073        duration._days += direction * other._days;
61074        duration._months += direction * other._months;
61075
61076        return duration._bubble();
61077    }
61078
61079    // supports only 2.0-style add(1, 's') or add(duration)
61080    function add$1(input, value) {
61081        return addSubtract$1(this, input, value, 1);
61082    }
61083
61084    // supports only 2.0-style subtract(1, 's') or subtract(duration)
61085    function subtract$1(input, value) {
61086        return addSubtract$1(this, input, value, -1);
61087    }
61088
61089    function absCeil(number) {
61090        if (number < 0) {
61091            return Math.floor(number);
61092        } else {
61093            return Math.ceil(number);
61094        }
61095    }
61096
61097    function bubble() {
61098        var milliseconds = this._milliseconds,
61099            days = this._days,
61100            months = this._months,
61101            data = this._data,
61102            seconds,
61103            minutes,
61104            hours,
61105            years,
61106            monthsFromDays;
61107
61108        // if we have a mix of positive and negative values, bubble down first
61109        // check: https://github.com/moment/moment/issues/2166
61110        if (
61111            !(
61112                (milliseconds >= 0 && days >= 0 && months >= 0) ||
61113                (milliseconds <= 0 && days <= 0 && months <= 0)
61114            )
61115        ) {
61116            milliseconds += absCeil(monthsToDays(months) + days) * 864e5;
61117            days = 0;
61118            months = 0;
61119        }
61120
61121        // The following code bubbles up values, see the tests for
61122        // examples of what that means.
61123        data.milliseconds = milliseconds % 1000;
61124
61125        seconds = absFloor(milliseconds / 1000);
61126        data.seconds = seconds % 60;
61127
61128        minutes = absFloor(seconds / 60);
61129        data.minutes = minutes % 60;
61130
61131        hours = absFloor(minutes / 60);
61132        data.hours = hours % 24;
61133
61134        days += absFloor(hours / 24);
61135
61136        // convert days to months
61137        monthsFromDays = absFloor(daysToMonths(days));
61138        months += monthsFromDays;
61139        days -= absCeil(monthsToDays(monthsFromDays));
61140
61141        // 12 months -> 1 year
61142        years = absFloor(months / 12);
61143        months %= 12;
61144
61145        data.days = days;
61146        data.months = months;
61147        data.years = years;
61148
61149        return this;
61150    }
61151
61152    function daysToMonths(days) {
61153        // 400 years have 146097 days (taking into account leap year rules)
61154        // 400 years have 12 months === 4800
61155        return (days * 4800) / 146097;
61156    }
61157
61158    function monthsToDays(months) {
61159        // the reverse of daysToMonths
61160        return (months * 146097) / 4800;
61161    }
61162
61163    function as(units) {
61164        if (!this.isValid()) {
61165            return NaN;
61166        }
61167        var days,
61168            months,
61169            milliseconds = this._milliseconds;
61170
61171        units = normalizeUnits(units);
61172
61173        if (units === 'month' || units === 'quarter' || units === 'year') {
61174            days = this._days + milliseconds / 864e5;
61175            months = this._months + daysToMonths(days);
61176            switch (units) {
61177                case 'month':
61178                    return months;
61179                case 'quarter':
61180                    return months / 3;
61181                case 'year':
61182                    return months / 12;
61183            }
61184        } else {
61185            // handle milliseconds separately because of floating point math errors (issue #1867)
61186            days = this._days + Math.round(monthsToDays(this._months));
61187            switch (units) {
61188                case 'week':
61189                    return days / 7 + milliseconds / 6048e5;
61190                case 'day':
61191                    return days + milliseconds / 864e5;
61192                case 'hour':
61193                    return days * 24 + milliseconds / 36e5;
61194                case 'minute':
61195                    return days * 1440 + milliseconds / 6e4;
61196                case 'second':
61197                    return days * 86400 + milliseconds / 1000;
61198                // Math.floor prevents floating point math errors here
61199                case 'millisecond':
61200                    return Math.floor(days * 864e5) + milliseconds;
61201                default:
61202                    throw new Error('Unknown unit ' + units);
61203            }
61204        }
61205    }
61206
61207    function makeAs(alias) {
61208        return function () {
61209            return this.as(alias);
61210        };
61211    }
61212
61213    var asMilliseconds = makeAs('ms'),
61214        asSeconds = makeAs('s'),
61215        asMinutes = makeAs('m'),
61216        asHours = makeAs('h'),
61217        asDays = makeAs('d'),
61218        asWeeks = makeAs('w'),
61219        asMonths = makeAs('M'),
61220        asQuarters = makeAs('Q'),
61221        asYears = makeAs('y'),
61222        valueOf$1 = asMilliseconds;
61223
61224    function clone$1() {
61225        return createDuration(this);
61226    }
61227
61228    function get$2(units) {
61229        units = normalizeUnits(units);
61230        return this.isValid() ? this[units + 's']() : NaN;
61231    }
61232
61233    function makeGetter(name) {
61234        return function () {
61235            return this.isValid() ? this._data[name] : NaN;
61236        };
61237    }
61238
61239    var milliseconds = makeGetter('milliseconds'),
61240        seconds = makeGetter('seconds'),
61241        minutes = makeGetter('minutes'),
61242        hours = makeGetter('hours'),
61243        days = makeGetter('days'),
61244        months = makeGetter('months'),
61245        years = makeGetter('years');
61246
61247    function weeks() {
61248        return absFloor(this.days() / 7);
61249    }
61250
61251    var round = Math.round,
61252        thresholds = {
61253            ss: 44, // a few seconds to seconds
61254            s: 45, // seconds to minute
61255            m: 45, // minutes to hour
61256            h: 22, // hours to day
61257            d: 26, // days to month/week
61258            w: null, // weeks to month
61259            M: 11, // months to year
61260        };
61261
61262    // helper function for moment.fn.from, moment.fn.fromNow, and moment.duration.fn.humanize
61263    function substituteTimeAgo(string, number, withoutSuffix, isFuture, locale) {
61264        return locale.relativeTime(number || 1, !!withoutSuffix, string, isFuture);
61265    }
61266
61267    function relativeTime$1(posNegDuration, withoutSuffix, thresholds, locale) {
61268        var duration = createDuration(posNegDuration).abs(),
61269            seconds = round(duration.as('s')),
61270            minutes = round(duration.as('m')),
61271            hours = round(duration.as('h')),
61272            days = round(duration.as('d')),
61273            months = round(duration.as('M')),
61274            weeks = round(duration.as('w')),
61275            years = round(duration.as('y')),
61276            a =
61277                (seconds <= thresholds.ss && ['s', seconds]) ||
61278                (seconds < thresholds.s && ['ss', seconds]) ||
61279                (minutes <= 1 && ['m']) ||
61280                (minutes < thresholds.m && ['mm', minutes]) ||
61281                (hours <= 1 && ['h']) ||
61282                (hours < thresholds.h && ['hh', hours]) ||
61283                (days <= 1 && ['d']) ||
61284                (days < thresholds.d && ['dd', days]);
61285
61286        if (thresholds.w != null) {
61287            a =
61288                a ||
61289                (weeks <= 1 && ['w']) ||
61290                (weeks < thresholds.w && ['ww', weeks]);
61291        }
61292        a = a ||
61293            (months <= 1 && ['M']) ||
61294            (months < thresholds.M && ['MM', months]) ||
61295            (years <= 1 && ['y']) || ['yy', years];
61296
61297        a[2] = withoutSuffix;
61298        a[3] = +posNegDuration > 0;
61299        a[4] = locale;
61300        return substituteTimeAgo.apply(null, a);
61301    }
61302
61303    // This function allows you to set the rounding function for relative time strings
61304    function getSetRelativeTimeRounding(roundingFunction) {
61305        if (roundingFunction === undefined) {
61306            return round;
61307        }
61308        if (typeof roundingFunction === 'function') {
61309            round = roundingFunction;
61310            return true;
61311        }
61312        return false;
61313    }
61314
61315    // This function allows you to set a threshold for relative time strings
61316    function getSetRelativeTimeThreshold(threshold, limit) {
61317        if (thresholds[threshold] === undefined) {
61318            return false;
61319        }
61320        if (limit === undefined) {
61321            return thresholds[threshold];
61322        }
61323        thresholds[threshold] = limit;
61324        if (threshold === 's') {
61325            thresholds.ss = limit - 1;
61326        }
61327        return true;
61328    }
61329
61330    function humanize(argWithSuffix, argThresholds) {
61331        if (!this.isValid()) {
61332            return this.localeData().invalidDate();
61333        }
61334
61335        var withSuffix = false,
61336            th = thresholds,
61337            locale,
61338            output;
61339
61340        if (typeof argWithSuffix === 'object') {
61341            argThresholds = argWithSuffix;
61342            argWithSuffix = false;
61343        }
61344        if (typeof argWithSuffix === 'boolean') {
61345            withSuffix = argWithSuffix;
61346        }
61347        if (typeof argThresholds === 'object') {
61348            th = Object.assign({}, thresholds, argThresholds);
61349            if (argThresholds.s != null && argThresholds.ss == null) {
61350                th.ss = argThresholds.s - 1;
61351            }
61352        }
61353
61354        locale = this.localeData();
61355        output = relativeTime$1(this, !withSuffix, th, locale);
61356
61357        if (withSuffix) {
61358            output = locale.pastFuture(+this, output);
61359        }
61360
61361        return locale.postformat(output);
61362    }
61363
61364    var abs$1 = Math.abs;
61365
61366    function sign(x) {
61367        return (x > 0) - (x < 0) || +x;
61368    }
61369
61370    function toISOString$1() {
61371        // for ISO strings we do not use the normal bubbling rules:
61372        //  * milliseconds bubble up until they become hours
61373        //  * days do not bubble at all
61374        //  * months bubble up until they become years
61375        // This is because there is no context-free conversion between hours and days
61376        // (think of clock changes)
61377        // and also not between days and months (28-31 days per month)
61378        if (!this.isValid()) {
61379            return this.localeData().invalidDate();
61380        }
61381
61382        var seconds = abs$1(this._milliseconds) / 1000,
61383            days = abs$1(this._days),
61384            months = abs$1(this._months),
61385            minutes,
61386            hours,
61387            years,
61388            s,
61389            total = this.asSeconds(),
61390            totalSign,
61391            ymSign,
61392            daysSign,
61393            hmsSign;
61394
61395        if (!total) {
61396            // this is the same as C#'s (Noda) and python (isodate)...
61397            // but not other JS (goog.date)
61398            return 'P0D';
61399        }
61400
61401        // 3600 seconds -> 60 minutes -> 1 hour
61402        minutes = absFloor(seconds / 60);
61403        hours = absFloor(minutes / 60);
61404        seconds %= 60;
61405        minutes %= 60;
61406
61407        // 12 months -> 1 year
61408        years = absFloor(months / 12);
61409        months %= 12;
61410
61411        // inspired by https://github.com/dordille/moment-isoduration/blob/master/moment.isoduration.js
61412        s = seconds ? seconds.toFixed(3).replace(/\.?0+$/, '') : '';
61413
61414        totalSign = total < 0 ? '-' : '';
61415        ymSign = sign(this._months) !== sign(total) ? '-' : '';
61416        daysSign = sign(this._days) !== sign(total) ? '-' : '';
61417        hmsSign = sign(this._milliseconds) !== sign(total) ? '-' : '';
61418
61419        return (
61420            totalSign +
61421            'P' +
61422            (years ? ymSign + years + 'Y' : '') +
61423            (months ? ymSign + months + 'M' : '') +
61424            (days ? daysSign + days + 'D' : '') +
61425            (hours || minutes || seconds ? 'T' : '') +
61426            (hours ? hmsSign + hours + 'H' : '') +
61427            (minutes ? hmsSign + minutes + 'M' : '') +
61428            (seconds ? hmsSign + s + 'S' : '')
61429        );
61430    }
61431
61432    var proto$2 = Duration.prototype;
61433
61434    proto$2.isValid = isValid$1;
61435    proto$2.abs = abs;
61436    proto$2.add = add$1;
61437    proto$2.subtract = subtract$1;
61438    proto$2.as = as;
61439    proto$2.asMilliseconds = asMilliseconds;
61440    proto$2.asSeconds = asSeconds;
61441    proto$2.asMinutes = asMinutes;
61442    proto$2.asHours = asHours;
61443    proto$2.asDays = asDays;
61444    proto$2.asWeeks = asWeeks;
61445    proto$2.asMonths = asMonths;
61446    proto$2.asQuarters = asQuarters;
61447    proto$2.asYears = asYears;
61448    proto$2.valueOf = valueOf$1;
61449    proto$2._bubble = bubble;
61450    proto$2.clone = clone$1;
61451    proto$2.get = get$2;
61452    proto$2.milliseconds = milliseconds;
61453    proto$2.seconds = seconds;
61454    proto$2.minutes = minutes;
61455    proto$2.hours = hours;
61456    proto$2.days = days;
61457    proto$2.weeks = weeks;
61458    proto$2.months = months;
61459    proto$2.years = years;
61460    proto$2.humanize = humanize;
61461    proto$2.toISOString = toISOString$1;
61462    proto$2.toString = toISOString$1;
61463    proto$2.toJSON = toISOString$1;
61464    proto$2.locale = locale;
61465    proto$2.localeData = localeData;
61466
61467    proto$2.toIsoString = deprecate(
61468        'toIsoString() is deprecated. Please use toISOString() instead (notice the capitals)',
61469        toISOString$1
61470    );
61471    proto$2.lang = lang;
61472
61473    // FORMATTING
61474
61475    addFormatToken('X', 0, 0, 'unix');
61476    addFormatToken('x', 0, 0, 'valueOf');
61477
61478    // PARSING
61479
61480    addRegexToken('x', matchSigned);
61481    addRegexToken('X', matchTimestamp);
61482    addParseToken('X', function (input, array, config) {
61483        config._d = new Date(parseFloat(input) * 1000);
61484    });
61485    addParseToken('x', function (input, array, config) {
61486        config._d = new Date(toInt(input));
61487    });
61488
61489    //! moment.js
61490
61491    hooks.version = '2.30.1';
61492
61493    setHookCallback(createLocal);
61494
61495    hooks.fn = proto;
61496    hooks.min = min;
61497    hooks.max = max;
61498    hooks.now = now;
61499    hooks.utc = createUTC;
61500    hooks.unix = createUnix;
61501    hooks.months = listMonths;
61502    hooks.isDate = isDate;
61503    hooks.locale = getSetGlobalLocale;
61504    hooks.invalid = createInvalid;
61505    hooks.duration = createDuration;
61506    hooks.isMoment = isMoment;
61507    hooks.weekdays = listWeekdays;
61508    hooks.parseZone = createInZone;
61509    hooks.localeData = getLocale;
61510    hooks.isDuration = isDuration;
61511    hooks.monthsShort = listMonthsShort;
61512    hooks.weekdaysMin = listWeekdaysMin;
61513    hooks.defineLocale = defineLocale;
61514    hooks.updateLocale = updateLocale;
61515    hooks.locales = listLocales;
61516    hooks.weekdaysShort = listWeekdaysShort;
61517    hooks.normalizeUnits = normalizeUnits;
61518    hooks.relativeTimeRounding = getSetRelativeTimeRounding;
61519    hooks.relativeTimeThreshold = getSetRelativeTimeThreshold;
61520    hooks.calendarFormat = getCalendarFormat;
61521    hooks.prototype = proto;
61522
61523    // currently HTML5 input type only supports 24-hour formats
61524    hooks.HTML5_FMT = {
61525        DATETIME_LOCAL: 'YYYY-MM-DDTHH:mm', // <input type="datetime-local" />
61526        DATETIME_LOCAL_SECONDS: 'YYYY-MM-DDTHH:mm:ss', // <input type="datetime-local" step="1" />
61527        DATETIME_LOCAL_MS: 'YYYY-MM-DDTHH:mm:ss.SSS', // <input type="datetime-local" step="0.001" />
61528        DATE: 'YYYY-MM-DD', // <input type="date" />
61529        TIME: 'HH:mm', // <input type="time" />
61530        TIME_SECONDS: 'HH:mm:ss', // <input type="time" step="1" />
61531        TIME_MS: 'HH:mm:ss.SSS', // <input type="time" step="0.001" />
61532        WEEK: 'GGGG-[W]WW', // <input type="week" />
61533        MONTH: 'YYYY-MM', // <input type="month" />
61534    };
61535
61536    return hooks;
61537
61538})));
61539
61540/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./../webpack/buildin/module.js */ "./node_modules/webpack/buildin/module.js")(module)))
61541
61542/***/ }),
61543
vendor: 18,792 bytes, lines 61544-61620
61544/***/ "./node_modules/preact/compat/dist/compat.module.js":
61545/*!**********************************************************!*\
61546  !*** ./node_modules/preact/compat/dist/compat.module.js ***!
61547  \**********************************************************/
61548/*! exports provided: Component, Fragment, createContext, createElement, createRef, useCallback, useContext, useDebugValue, useEffect, useErrorBoundary, useId, useImperativeHandle, useLayoutEffect, useMemo, useReducer, useRef, useState, Children, PureComponent, StrictMode, Suspense, SuspenseList, __SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED, cloneElement, createFactory, createPortal, default, findDOMNode, flushSync, forwardRef, hydrate, isValidElement, lazy, memo, render, startTransition, unmountComponentAtNode, unstable_batchedUpdates, useDeferredValue, useInsertionEffect, useSyncExternalStore, useTransition, version */
61549/***/ (function(module, __webpack_exports__, __webpack_require__) {
61550
61551"use strict";
61552__webpack_require__.r(__webpack_exports__);
61553/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "Children", function() { return O; });
61554/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "PureComponent", function() { return w; });
61555/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "StrictMode", function() { return vn; });
61556/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "Suspense", function() { return D; });
61557/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "SuspenseList", function() { return V; });
61558/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED", function() { return rn; });
61559/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "cloneElement", function() { return cn; });
61560/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "createFactory", function() { return on; });
61561/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "createPortal", function() { return j; });
61562/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "default", function() { return bn; });
61563/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "findDOMNode", function() { return an; });
61564/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "flushSync", function() { return hn; });
61565/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "forwardRef", function() { return k; });
61566/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "hydrate", function() { return q; });
61567/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "isValidElement", function() { return ln; });
61568/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "lazy", function() { return M; });
61569/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "memo", function() { return R; });
61570/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "render", function() { return Y; });
61571/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "startTransition", function() { return dn; });
61572/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "unmountComponentAtNode", function() { return fn; });
61573/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "unstable_batchedUpdates", function() { return sn; });
61574/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "useDeferredValue", function() { return pn; });
61575/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "useInsertionEffect", function() { return yn; });
61576/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "useSyncExternalStore", function() { return _n; });
61577/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "useTransition", function() { return mn; });
61578/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "version", function() { return un; });
61579/* harmony import */ var preact__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! preact */ "./node_modules/preact/dist/preact.module.js");
61580/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "Component", function() { return preact__WEBPACK_IMPORTED_MODULE_0__["Component"]; });
61581
61582/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "Fragment", function() { return preact__WEBPACK_IMPORTED_MODULE_0__["Fragment"]; });
61583
61584/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "createContext", function() { return preact__WEBPACK_IMPORTED_MODULE_0__["createContext"]; });
61585
61586/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "createElement", function() { return preact__WEBPACK_IMPORTED_MODULE_0__["createElement"]; });
61587
61588/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "createRef", function() { return preact__WEBPACK_IMPORTED_MODULE_0__["createRef"]; });
61589
61590/* harmony import */ var preact_hooks__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! preact/hooks */ "./node_modules/preact/hooks/dist/hooks.module.js");
61591/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "useCallback", function() { return preact_hooks__WEBPACK_IMPORTED_MODULE_1__["useCallback"]; });
61592
61593/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "useContext", function() { return preact_hooks__WEBPACK_IMPORTED_MODULE_1__["useContext"]; });
61594
61595/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "useDebugValue", function() { return preact_hooks__WEBPACK_IMPORTED_MODULE_1__["useDebugValue"]; });
61596
61597/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "useEffect", function() { return preact_hooks__WEBPACK_IMPORTED_MODULE_1__["useEffect"]; });
61598
61599/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "useErrorBoundary", function() { return preact_hooks__WEBPACK_IMPORTED_MODULE_1__["useErrorBoundary"]; });
61600
61601/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "useId", function() { return preact_hooks__WEBPACK_IMPORTED_MODULE_1__["useId"]; });
61602
61603/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "useImperativeHandle", function() { return preact_hooks__WEBPACK_IMPORTED_MODULE_1__["useImperativeHandle"]; });
61604
61605/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "useLayoutEffect", function() { return preact_hooks__WEBPACK_IMPORTED_MODULE_1__["useLayoutEffect"]; });
61606
61607/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "useMemo", function() { return preact_hooks__WEBPACK_IMPORTED_MODULE_1__["useMemo"]; });
61608
61609/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "useReducer", function() { return preact_hooks__WEBPACK_IMPORTED_MODULE_1__["useReducer"]; });
61610
61611/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "useRef", function() { return preact_hooks__WEBPACK_IMPORTED_MODULE_1__["useRef"]; });
61612
61613/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "useState", function() { return preact_hooks__WEBPACK_IMPORTED_MODULE_1__["useState"]; });
61614
61615function g(n,t){for(var e in t)n[e]=t[e];return n}function C(n,t){for(var e in n)if("__source"!==e&&!(e in t))return!0;for(var r in t)if("__source"!==r&&n[r]!==t[r])return!0;return!1}function E(n,t){return n===t&&(0!==n||1/n==1/t)||n!=n&&t!=t}function w(n){this.props=n}function R(n,e){function r(n){var t=this.props.ref,r=t==n.ref;return!r&&t&&(t.call?t(null):t.current=null),e?!e(this.props,n)||!r:C(this.props,n)}function u(e){return this.shouldComponentUpdate=r,Object(preact__WEBPACK_IMPORTED_MODULE_0__["createElement"])(n,e)}return u.displayName="Memo("+(n.displayName||n.name)+")",u.prototype.isReactComponent=!0,u.__f=!0,u}(w.prototype=new preact__WEBPACK_IMPORTED_MODULE_0__["Component"]).isPureReactComponent=!0,w.prototype.shouldComponentUpdate=function(n,t){return C(this.props,n)||C(this.state,t)};var x=preact__WEBPACK_IMPORTED_MODULE_0__["options"].__b;preact__WEBPACK_IMPORTED_MODULE_0__["options"].__b=function(n){n.type&&n.type.__f&&n.ref&&(n.props.ref=n.ref,n.ref=null),x&&x(n)};var N="undefined"!=typeof Symbol&&Symbol.for&&Symbol.for("react.forward_ref")||3911;function k(n){function t(t){var e=g({},t);return delete e.ref,n(e,t.ref||null)}return t.$$typeof=N,t.render=t,t.prototype.isReactComponent=t.__f=!0,t.displayName="ForwardRef("+(n.displayName||n.name)+")",t}var A=function(n,t){return null==n?null:Object(preact__WEBPACK_IMPORTED_MODULE_0__["toChildArray"])(Object(preact__WEBPACK_IMPORTED_MODULE_0__["toChildArray"])(n).map(t))},O={map:A,forEach:A,count:function(n){return n?Object(preact__WEBPACK_IMPORTED_MODULE_0__["toChildArray"])(n).length:0},only:function(n){var t=Object(preact__WEBPACK_IMPORTED_MODULE_0__["toChildArray"])(n);if(1!==t.length)throw"Children.only";return t[0]},toArray:preact__WEBPACK_IMPORTED_MODULE_0__["toChildArray"]},T=preact__WEBPACK_IMPORTED_MODULE_0__["options"].__e;preact__WEBPACK_IMPORTED_MODULE_0__["options"].__e=function(n,t,e,r){if(n.then)for(var u,o=t;o=o.__;)if((u=o.__c)&&u.__c)return null==t.__e&&(t.__e=e.__e,t.__k=e.__k),u.__c(n,t);T(n,t,e,r)};var I=preact__WEBPACK_IMPORTED_MODULE_0__["options"].unmount;function L(n,t,e){return n&&(n.__c&&n.__c.__H&&(n.__c.__H.__.forEach(function(n){"function"==typeof n.__c&&n.__c()}),n.__c.__H=null),null!=(n=g({},n)).__c&&(n.__c.__P===e&&(n.__c.__P=t),n.__c=null),n.__k=n.__k&&n.__k.map(function(n){return L(n,t,e)})),n}function U(n,t,e){return n&&(n.__v=null,n.__k=n.__k&&n.__k.map(function(n){return U(n,t,e)}),n.__c&&n.__c.__P===t&&(n.__e&&e.insertBefore(n.__e,n.__d),n.__c.__e=!0,n.__c.__P=e)),n}function D(){this.__u=0,this.t=null,this.__b=null}function F(n){var t=n.__.__c;return t&&t.__a&&t.__a(n)}function M(n){var e,r,u;function o(o){if(e||(e=n()).then(function(n){r=n.default||n},function(n){u=n}),u)throw u;if(!r)throw e;return Object(preact__WEBPACK_IMPORTED_MODULE_0__["createElement"])(r,o)}return o.displayName="Lazy",o.__f=!0,o}function V(){this.u=null,this.o=null}preact__WEBPACK_IMPORTED_MODULE_0__["options"].unmount=function(n){var t=n.__c;t&&t.__R&&t.__R(),t&&!0===n.__h&&(n.type=null),I&&I(n)},(D.prototype=new preact__WEBPACK_IMPORTED_MODULE_0__["Component"]).__c=function(n,t){var e=t.__c,r=this;null==r.t&&(r.t=[]),r.t.push(e);var u=F(r.__v),o=!1,i=function(){o||(o=!0,e.__R=null,u?u(l):l())};e.__R=i;var l=function(){if(!--r.__u){if(r.state.__a){var n=r.state.__a;r.__v.__k[0]=U(n,n.__c.__P,n.__c.__O)}var t;for(r.setState({__a:r.__b=null});t=r.t.pop();)t.forceUpdate()}},c=!0===t.__h;r.__u++||c||r.setState({__a:r.__b=r.__v.__k[0]}),n.then(i,i)},D.prototype.componentWillUnmount=function(){this.t=[]},D.prototype.render=function(n,e){if(this.__b){if(this.__v.__k){var r=document.createElement("div"),o=this.__v.__k[0].__c;this.__v.__k[0]=L(this.__b,r,o.__O=o.__P)}this.__b=null}var i=e.__a&&Object(preact__WEBPACK_IMPORTED_MODULE_0__["createElement"])(preact__WEBPACK_IMPORTED_MODULE_0__["Fragment"],null,n.fallback);return i&&(i.__h=null),[Object(preact__WEBPACK_IMPORTED_MODULE_0__["createElement"])(preact__WEBPACK_IMPORTED_MODULE_0__["Fragment"],null,e.__a?null:n.children),i]};var W=function(n,t,e){if(++e[1]===e[0]&&n.o.delete(t),n.props.revealOrder&&("t"!==n.props.revealOrder[0]||!n.o.size))for(e=n.u;e;){for(;e.length>3;)e.pop()();if(e[1]<e[0])break;n.u=e=e[2]}};function P(n){return this.getChildContext=function(){return n.context},n.children}function $(n){var e=this,r=n.i;e.componentWillUnmount=function(){Object(preact__WEBPACK_IMPORTED_MODULE_0__["render"])(null,e.l),e.l=null,e.i=null},e.i&&e.i!==r&&e.componentWillUnmount(),n.__v?(e.l||(e.i=r,e.l={nodeType:1,parentNode:r,childNodes:[],appendChild:function(n){this.childNodes.push(n),e.i.appendChild(n)},insertBefore:function(n,t){this.childNodes.push(n),e.i.appendChild(n)},removeChild:function(n){this.childNodes.splice(this.childNodes.indexOf(n)>>>1,1),e.i.removeChild(n)}}),Object(preact__WEBPACK_IMPORTED_MODULE_0__["render"])(Object(preact__WEBPACK_IMPORTED_MODULE_0__["createElement"])(P,{context:e.context},n.__v),e.l)):e.l&&e.componentWillUnmount()}function j(n,e){var r=Object(preact__WEBPACK_IMPORTED_MODULE_0__["createElement"])($,{__v:n,i:e});return r.containerInfo=e,r}(V.prototype=new preact__WEBPACK_IMPORTED_MODULE_0__["Component"]).__a=function(n){var t=this,e=F(t.__v),r=t.o.get(n);return r[0]++,function(u){var o=function(){t.props.revealOrder?(r.push(u),W(t,n,r)):u()};e?e(o):o()}},V.prototype.render=function(n){this.u=null,this.o=new Map;var t=Object(preact__WEBPACK_IMPORTED_MODULE_0__["toChildArray"])(n.children);n.revealOrder&&"b"===n.revealOrder[0]&&t.reverse();for(var e=t.length;e--;)this.o.set(t[e],this.u=[1,0,this.u]);return n.children},V.prototype.componentDidUpdate=V.prototype.componentDidMount=function(){var n=this;this.o.forEach(function(t,e){W(n,e,t)})};var z="undefined"!=typeof Symbol&&Symbol.for&&Symbol.for("react.element")||60103,B=/^(?:accent|alignment|arabic|baseline|cap|clip(?!PathU)|color|dominant|fill|flood|font|glyph(?!R)|horiz|image|letter|lighting|marker(?!H|W|U)|overline|paint|pointer|shape|stop|strikethrough|stroke|text(?!L)|transform|underline|unicode|units|v|vector|vert|word|writing|x(?!C))[A-Z]/,H="undefined"!=typeof document,Z=function(n){return("undefined"!=typeof Symbol&&"symbol"==typeof Symbol()?/fil|che|rad/i:/fil|che|ra/i).test(n)};function Y(n,t,e){return null==t.__k&&(t.textContent=""),Object(preact__WEBPACK_IMPORTED_MODULE_0__["render"])(n,t),"function"==typeof e&&e(),n?n.__c:null}function q(n,t,e){return Object(preact__WEBPACK_IMPORTED_MODULE_0__["hydrate"])(n,t),"function"==typeof e&&e(),n?n.__c:null}preact__WEBPACK_IMPORTED_MODULE_0__["Component"].prototype.isReactComponent={},["componentWillMount","componentWillReceiveProps","componentWillUpdate"].forEach(function(t){Object.defineProperty(preact__WEBPACK_IMPORTED_MODULE_0__["Component"].prototype,t,{configurable:!0,get:function(){return this["UNSAFE_"+t]},set:function(n){Object.defineProperty(this,t,{configurable:!0,writable:!0,value:n})}})});var G=preact__WEBPACK_IMPORTED_MODULE_0__["options"].event;function J(){}function K(){return this.cancelBubble}function Q(){return this.defaultPrevented}preact__WEBPACK_IMPORTED_MODULE_0__["options"].event=function(n){return G&&(n=G(n)),n.persist=J,n.isPropagationStopped=K,n.isDefaultPrevented=Q,n.nativeEvent=n};var X,nn={configurable:!0,get:function(){return this.class}},tn=preact__WEBPACK_IMPORTED_MODULE_0__["options"].vnode;preact__WEBPACK_IMPORTED_MODULE_0__["options"].vnode=function(n){var t=n.type,e=n.props,u=e;if("string"==typeof t){var o=-1===t.indexOf("-");for(var i in u={},e){var l=e[i];H&&"children"===i&&"noscript"===t||"value"===i&&"defaultValue"in e&&null==l||("defaultValue"===i&&"value"in e&&null==e.value?i="value":"download"===i&&!0===l?l="":/ondoubleclick/i.test(i)?i="ondblclick":/^onchange(textarea|input)/i.test(i+t)&&!Z(e.type)?i="oninput":/^onfocus$/i.test(i)?i="onfocusin":/^onblur$/i.test(i)?i="onfocusout":/^on(Ani|Tra|Tou|BeforeInp|Compo)/.test(i)?i=i.toLowerCase():o&&B.test(i)?i=i.replace(/[A-Z0-9]/g,"-$&").toLowerCase():null===l&&(l=void 0),/^oninput$/i.test(i)&&(i=i.toLowerCase(),u[i]&&(i="oninputCapture")),u[i]=l)}"select"==t&&u.multiple&&Array.isArray(u.value)&&(u.value=Object(preact__WEBPACK_IMPORTED_MODULE_0__["toChildArray"])(e.children).forEach(function(n){n.props.selected=-1!=u.value.indexOf(n.props.value)})),"select"==t&&null!=u.defaultValue&&(u.value=Object(preact__WEBPACK_IMPORTED_MODULE_0__["toChildArray"])(e.children).forEach(function(n){n.props.selected=u.multiple?-1!=u.defaultValue.indexOf(n.props.value):u.defaultValue==n.props.value})),n.props=u,e.class!=e.className&&(nn.enumerable="className"in e,null!=e.className&&(u.class=e.className),Object.defineProperty(u,"className",nn))}n.$$typeof=z,tn&&tn(n)};var en=preact__WEBPACK_IMPORTED_MODULE_0__["options"].__r;preact__WEBPACK_IMPORTED_MODULE_0__["options"].__r=function(n){en&&en(n),X=n.__c};var rn={ReactCurrentDispatcher:{current:{readContext:function(n){return X.__n[n.__c].props.value}}}},un="17.0.2";function on(n){return preact__WEBPACK_IMPORTED_MODULE_0__["createElement"].bind(null,n)}function ln(n){return!!n&&n.$$typeof===z}function cn(n){return ln(n)?preact__WEBPACK_IMPORTED_MODULE_0__["cloneElement"].apply(null,arguments):n}function fn(n){return!!n.__k&&(Object(preact__WEBPACK_IMPORTED_MODULE_0__["render"])(null,n),!0)}function an(n){return n&&(n.base||1===n.nodeType&&n)||null}var sn=function(n,t){return n(t)},hn=function(n,t){return n(t)},vn=preact__WEBPACK_IMPORTED_MODULE_0__["Fragment"];function dn(n){n()}function pn(n){return n}function mn(){return[!1,dn]}var yn=preact_hooks__WEBPACK_IMPORTED_MODULE_1__["useLayoutEffect"];function _n(n,t){var e=t(),r=Object(preact_hooks__WEBPACK_IMPORTED_MODULE_1__["useState"])({h:{__:e,v:t}}),u=r[0].h,o=r[1];return Object(preact_hooks__WEBPACK_IMPORTED_MODULE_1__["useLayoutEffect"])(function(){u.__=e,u.v=t,E(u.__,t())||o({h:u})},[n,e,t]),Object(preact_hooks__WEBPACK_IMPORTED_MODULE_1__["useEffect"])(function(){return E(u.__,u.v())||o({h:u}),n(function(){E(u.__,u.v())||o({h:u})})},[n]),e}var bn={useState:preact_hooks__WEBPACK_IMPORTED_MODULE_1__["useState"],useId:preact_hooks__WEBPACK_IMPORTED_MODULE_1__["useId"],useReducer:preact_hooks__WEBPACK_IMPORTED_MODULE_1__["useReducer"],useEffect:preact_hooks__WEBPACK_IMPORTED_MODULE_1__["useEffect"],useLayoutEffect:preact_hooks__WEBPACK_IMPORTED_MODULE_1__["useLayoutEffect"],useInsertionEffect:yn,useTransition:mn,useDeferredValue:pn,useSyncExternalStore:_n,startTransition:dn,useRef:preact_hooks__WEBPACK_IMPORTED_MODULE_1__["useRef"],useImperativeHandle:preact_hooks__WEBPACK_IMPORTED_MODULE_1__["useImperativeHandle"],useMemo:preact_hooks__WEBPACK_IMPORTED_MODULE_1__["useMemo"],useCallback:preact_hooks__WEBPACK_IMPORTED_MODULE_1__["useCallback"],useContext:preact_hooks__WEBPACK_IMPORTED_MODULE_1__["useContext"],useDebugValue:preact_hooks__WEBPACK_IMPORTED_MODULE_1__["useDebugValue"],version:"17.0.2",Children:O,render:Y,hydrate:q,unmountComponentAtNode:fn,createPortal:j,createElement:preact__WEBPACK_IMPORTED_MODULE_0__["createElement"],createContext:preact__WEBPACK_IMPORTED_MODULE_0__["createContext"],createFactory:on,cloneElement:cn,createRef:preact__WEBPACK_IMPORTED_MODULE_0__["createRef"],Fragment:preact__WEBPACK_IMPORTED_MODULE_0__["Fragment"],isValidElement:ln,findDOMNode:an,Component:preact__WEBPACK_IMPORTED_MODULE_0__["Component"],PureComponent:w,memo:R,forwardRef:k,flushSync:hn,unstable_batchedUpdates:sn,StrictMode:vn,Suspense:D,SuspenseList:V,lazy:M,__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED:rn};
61616//# sourceMappingURL=compat.module.js.map
61617
61618
61619/***/ }),
61620
vendor: 12,428 bytes, lines 61621-61647
61621/***/ "./node_modules/preact/dist/preact.module.js":
61622/*!***************************************************!*\
61623  !*** ./node_modules/preact/dist/preact.module.js ***!
61624  \***************************************************/
61625/*! exports provided: Component, Fragment, cloneElement, createContext, createElement, createRef, h, hydrate, isValidElement, options, render, toChildArray */
61626/***/ (function(module, __webpack_exports__, __webpack_require__) {
61627
61628"use strict";
61629__webpack_require__.r(__webpack_exports__);
61630/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "Component", function() { return x; });
61631/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "Fragment", function() { return _; });
61632/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "cloneElement", function() { return F; });
61633/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "createContext", function() { return G; });
61634/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "createElement", function() { return y; });
61635/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "createRef", function() { return d; });
61636/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "h", function() { return y; });
61637/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "hydrate", function() { return E; });
61638/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "isValidElement", function() { return i; });
61639/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "options", function() { return l; });
61640/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "render", function() { return D; });
61641/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "toChildArray", function() { return j; });
61642var n,l,u,i,t,r,o,f,e,c={},s=[],a=/acit|ex(?:s|g|n|p|$)|rph|grid|ows|mnc|ntw|ine[ch]|zoo|^ord|itera/i;function h(n,l){for(var u in l)n[u]=l[u];return n}function v(n){var l=n.parentNode;l&&l.removeChild(n)}function y(l,u,i){var t,r,o,f={};for(o in u)"key"==o?t=u[o]:"ref"==o?r=u[o]:f[o]=u[o];if(arguments.length>2&&(f.children=arguments.length>3?n.call(arguments,2):i),"function"==typeof l&&null!=l.defaultProps)for(o in l.defaultProps)void 0===f[o]&&(f[o]=l.defaultProps[o]);return p(l,f,t,r,null)}function p(n,i,t,r,o){var f={type:n,props:i,key:t,ref:r,__k:null,__:null,__b:0,__e:null,__d:void 0,__c:null,__h:null,constructor:void 0,__v:null==o?++u:o};return null==o&&null!=l.vnode&&l.vnode(f),f}function d(){return{current:null}}function _(n){return n.children}function k(n,l,u,i,t){var r;for(r in u)"children"===r||"key"===r||r in l||g(n,r,null,u[r],i);for(r in l)t&&"function"!=typeof l[r]||"children"===r||"key"===r||"value"===r||"checked"===r||u[r]===l[r]||g(n,r,l[r],u[r],i)}function b(n,l,u){"-"===l[0]?n.setProperty(l,null==u?"":u):n[l]=null==u?"":"number"!=typeof u||a.test(l)?u:u+"px"}function g(n,l,u,i,t){var r;n:if("style"===l)if("string"==typeof u)n.style.cssText=u;else{if("string"==typeof i&&(n.style.cssText=i=""),i)for(l in i)u&&l in u||b(n.style,l,"");if(u)for(l in u)i&&u[l]===i[l]||b(n.style,l,u[l])}else if("o"===l[0]&&"n"===l[1])r=l!==(l=l.replace(/Capture$/,"")),l=l.toLowerCase()in n?l.toLowerCase().slice(2):l.slice(2),n.l||(n.l={}),n.l[l+r]=u,u?i||n.addEventListener(l,r?w:m,r):n.removeEventListener(l,r?w:m,r);else if("dangerouslySetInnerHTML"!==l){if(t)l=l.replace(/xlink(H|:h)/,"h").replace(/sName$/,"s");else if("width"!==l&&"height"!==l&&"href"!==l&&"list"!==l&&"form"!==l&&"tabIndex"!==l&&"download"!==l&&l in n)try{n[l]=null==u?"":u;break n}catch(n){}"function"==typeof u||(null==u||!1===u&&-1==l.indexOf("-")?n.removeAttribute(l):n.setAttribute(l,u))}}function m(n){t=!0;try{return this.l[n.type+!1](l.event?l.event(n):n)}finally{t=!1}}function w(n){t=!0;try{return this.l[n.type+!0](l.event?l.event(n):n)}finally{t=!1}}function x(n,l){this.props=n,this.context=l}function A(n,l){if(null==l)return n.__?A(n.__,n.__.__k.indexOf(n)+1):null;for(var u;l<n.__k.length;l++)if(null!=(u=n.__k[l])&&null!=u.__e)return u.__e;return"function"==typeof n.type?A(n):null}function P(n){var l,u;if(null!=(n=n.__)&&null!=n.__c){for(n.__e=n.__c.base=null,l=0;l<n.__k.length;l++)if(null!=(u=n.__k[l])&&null!=u.__e){n.__e=n.__c.base=u.__e;break}return P(n)}}function C(n){t?setTimeout(n):f(n)}function T(n){(!n.__d&&(n.__d=!0)&&r.push(n)&&!$.__r++||o!==l.debounceRendering)&&((o=l.debounceRendering)||C)($)}function $(){var n,l,u,i,t,o,f,e;for(r.sort(function(n,l){return n.__v.__b-l.__v.__b});n=r.shift();)n.__d&&(l=r.length,i=void 0,t=void 0,f=(o=(u=n).__v).__e,(e=u.__P)&&(i=[],(t=h({},o)).__v=o.__v+1,M(e,o,t,u.__n,void 0!==e.ownerSVGElement,null!=o.__h?[f]:null,i,null==f?A(o):f,o.__h),N(i,o),o.__e!=f&&P(o)),r.length>l&&r.sort(function(n,l){return n.__v.__b-l.__v.__b}));$.__r=0}function H(n,l,u,i,t,r,o,f,e,a){var h,v,y,d,k,b,g,m=i&&i.__k||s,w=m.length;for(u.__k=[],h=0;h<l.length;h++)if(null!=(d=u.__k[h]=null==(d=l[h])||"boolean"==typeof d?null:"string"==typeof d||"number"==typeof d||"bigint"==typeof d?p(null,d,null,null,d):Array.isArray(d)?p(_,{children:d},null,null,null):d.__b>0?p(d.type,d.props,d.key,d.ref?d.ref:null,d.__v):d)){if(d.__=u,d.__b=u.__b+1,null===(y=m[h])||y&&d.key==y.key&&d.type===y.type)m[h]=void 0;else for(v=0;v<w;v++){if((y=m[v])&&d.key==y.key&&d.type===y.type){m[v]=void 0;break}y=null}M(n,d,y=y||c,t,r,o,f,e,a),k=d.__e,(v=d.ref)&&y.ref!=v&&(g||(g=[]),y.ref&&g.push(y.ref,null,d),g.push(v,d.__c||k,d)),null!=k?(null==b&&(b=k),"function"==typeof d.type&&d.__k===y.__k?d.__d=e=I(d,e,n):e=z(n,d,y,m,k,e),"function"==typeof u.type&&(u.__d=e)):e&&y.__e==e&&e.parentNode!=n&&(e=A(y))}for(u.__e=b,h=w;h--;)null!=m[h]&&("function"==typeof u.type&&null!=m[h].__e&&m[h].__e==u.__d&&(u.__d=L(i).nextSibling),q(m[h],m[h]));if(g)for(h=0;h<g.length;h++)S(g[h],g[++h],g[++h])}function I(n,l,u){for(var i,t=n.__k,r=0;t&&r<t.length;r++)(i=t[r])&&(i.__=n,l="function"==typeof i.type?I(i,l,u):z(u,i,i,t,i.__e,l));return l}function j(n,l){return l=l||[],null==n||"boolean"==typeof n||(Array.isArray(n)?n.some(function(n){j(n,l)}):l.push(n)),l}function z(n,l,u,i,t,r){var o,f,e;if(void 0!==l.__d)o=l.__d,l.__d=void 0;else if(null==u||t!=r||null==t.parentNode)n:if(null==r||r.parentNode!==n)n.appendChild(t),o=null;else{for(f=r,e=0;(f=f.nextSibling)&&e<i.length;e+=1)if(f==t)break n;n.insertBefore(t,r),o=r}return void 0!==o?o:t.nextSibling}function L(n){var l,u,i;if(null==n.type||"string"==typeof n.type)return n.__e;if(n.__k)for(l=n.__k.length-1;l>=0;l--)if((u=n.__k[l])&&(i=L(u)))return i;return null}function M(n,u,i,t,r,o,f,e,c){var s,a,v,y,p,d,k,b,g,m,w,A,P,C,T,$=u.type;if(void 0!==u.constructor)return null;null!=i.__h&&(c=i.__h,e=u.__e=i.__e,u.__h=null,o=[e]),(s=l.__b)&&s(u);try{n:if("function"==typeof $){if(b=u.props,g=(s=$.contextType)&&t[s.__c],m=s?g?g.props.value:s.__:t,i.__c?k=(a=u.__c=i.__c).__=a.__E:("prototype"in $&&$.prototype.render?u.__c=a=new $(b,m):(u.__c=a=new x(b,m),a.constructor=$,a.render=B),g&&g.sub(a),a.props=b,a.state||(a.state={}),a.context=m,a.__n=t,v=a.__d=!0,a.__h=[],a._sb=[]),null==a.__s&&(a.__s=a.state),null!=$.getDerivedStateFromProps&&(a.__s==a.state&&(a.__s=h({},a.__s)),h(a.__s,$.getDerivedStateFromProps(b,a.__s))),y=a.props,p=a.state,a.__v=u,v)null==$.getDerivedStateFromProps&&null!=a.componentWillMount&&a.componentWillMount(),null!=a.componentDidMount&&a.__h.push(a.componentDidMount);else{if(null==$.getDerivedStateFromProps&&b!==y&&null!=a.componentWillReceiveProps&&a.componentWillReceiveProps(b,m),!a.__e&&null!=a.shouldComponentUpdate&&!1===a.shouldComponentUpdate(b,a.__s,m)||u.__v===i.__v){for(u.__v!==i.__v&&(a.props=b,a.state=a.__s,a.__d=!1),u.__e=i.__e,u.__k=i.__k,u.__k.forEach(function(n){n&&(n.__=u)}),w=0;w<a._sb.length;w++)a.__h.push(a._sb[w]);a._sb=[],a.__h.length&&f.push(a);break n}null!=a.componentWillUpdate&&a.componentWillUpdate(b,a.__s,m),null!=a.componentDidUpdate&&a.__h.push(function(){a.componentDidUpdate(y,p,d)})}if(a.context=m,a.props=b,a.__P=n,A=l.__r,P=0,"prototype"in $&&$.prototype.render){for(a.state=a.__s,a.__d=!1,A&&A(u),s=a.render(a.props,a.state,a.context),C=0;C<a._sb.length;C++)a.__h.push(a._sb[C]);a._sb=[]}else do{a.__d=!1,A&&A(u),s=a.render(a.props,a.state,a.context),a.state=a.__s}while(a.__d&&++P<25);a.state=a.__s,null!=a.getChildContext&&(t=h(h({},t),a.getChildContext())),v||null==a.getSnapshotBeforeUpdate||(d=a.getSnapshotBeforeUpdate(y,p)),T=null!=s&&s.type===_&&null==s.key?s.props.children:s,H(n,Array.isArray(T)?T:[T],u,i,t,r,o,f,e,c),a.base=u.__e,u.__h=null,a.__h.length&&f.push(a),k&&(a.__E=a.__=null),a.__e=!1}else null==o&&u.__v===i.__v?(u.__k=i.__k,u.__e=i.__e):u.__e=O(i.__e,u,i,t,r,o,f,c);(s=l.diffed)&&s(u)}catch(n){u.__v=null,(c||null!=o)&&(u.__e=e,u.__h=!!c,o[o.indexOf(e)]=null),l.__e(n,u,i)}}function N(n,u){l.__c&&l.__c(u,n),n.some(function(u){try{n=u.__h,u.__h=[],n.some(function(n){n.call(u)})}catch(n){l.__e(n,u.__v)}})}function O(l,u,i,t,r,o,f,e){var s,a,h,y=i.props,p=u.props,d=u.type,_=0;if("svg"===d&&(r=!0),null!=o)for(;_<o.length;_++)if((s=o[_])&&"setAttribute"in s==!!d&&(d?s.localName===d:3===s.nodeType)){l=s,o[_]=null;break}if(null==l){if(null===d)return document.createTextNode(p);l=r?document.createElementNS("http://www.w3.org/2000/svg",d):document.createElement(d,p.is&&p),o=null,e=!1}if(null===d)y===p||e&&l.data===p||(l.data=p);else{if(o=o&&n.call(l.childNodes),a=(y=i.props||c).dangerouslySetInnerHTML,h=p.dangerouslySetInnerHTML,!e){if(null!=o)for(y={},_=0;_<l.attributes.length;_++)y[l.attributes[_].name]=l.attributes[_].value;(h||a)&&(h&&(a&&h.__html==a.__html||h.__html===l.innerHTML)||(l.innerHTML=h&&h.__html||""))}if(k(l,p,y,r,e),h)u.__k=[];else if(_=u.props.children,H(l,Array.isArray(_)?_:[_],u,i,t,r&&"foreignObject"!==d,o,f,o?o[0]:i.__k&&A(i,0),e),null!=o)for(_=o.length;_--;)null!=o[_]&&v(o[_]);e||("value"in p&&void 0!==(_=p.value)&&(_!==l.value||"progress"===d&&!_||"option"===d&&_!==y.value)&&g(l,"value",_,y.value,!1),"checked"in p&&void 0!==(_=p.checked)&&_!==l.checked&&g(l,"checked",_,y.checked,!1))}return l}function S(n,u,i){try{"function"==typeof n?n(u):n.current=u}catch(n){l.__e(n,i)}}function q(n,u,i){var t,r;if(l.unmount&&l.unmount(n),(t=n.ref)&&(t.current&&t.current!==n.__e||S(t,null,u)),null!=(t=n.__c)){if(t.componentWillUnmount)try{t.componentWillUnmount()}catch(n){l.__e(n,u)}t.base=t.__P=null,n.__c=void 0}if(t=n.__k)for(r=0;r<t.length;r++)t[r]&&q(t[r],u,i||"function"!=typeof n.type);i||null==n.__e||v(n.__e),n.__=n.__e=n.__d=void 0}function B(n,l,u){return this.constructor(n,u)}function D(u,i,t){var r,o,f;l.__&&l.__(u,i),o=(r="function"==typeof t)?null:t&&t.__k||i.__k,f=[],M(i,u=(!r&&t||i).__k=y(_,null,[u]),o||c,c,void 0!==i.ownerSVGElement,!r&&t?[t]:o?null:i.firstChild?n.call(i.childNodes):null,f,!r&&t?t:o?o.__e:i.firstChild,r),N(f,u)}function E(n,l){D(n,l,E)}function F(l,u,i){var t,r,o,f=h({},l.props);for(o in u)"key"==o?t=u[o]:"ref"==o?r=u[o]:f[o]=u[o];return arguments.length>2&&(f.children=arguments.length>3?n.call(arguments,2):i),p(l.type,f,t||l.key,r||l.ref,null)}function G(n,l){var u={__c:l="__cC"+e++,__:n,Consumer:function(n,l){return n.children(l)},Provider:function(n){var u,i;return this.getChildContext||(u=[],(i={})[l]=this,this.getChildContext=function(){return i},this.shouldComponentUpdate=function(n){this.props.value!==n.value&&u.some(function(n){n.__e=!0,T(n)})},this.sub=function(n){u.push(n);var l=n.componentWillUnmount;n.componentWillUnmount=function(){u.splice(u.indexOf(n),1),l&&l.call(n)}}),n.children}};return u.Provider.__=u.Consumer.contextType=u}n=s.slice,l={__e:function(n,l,u,i){for(var t,r,o;l=l.__;)if((t=l.__c)&&!t.__)try{if((r=t.constructor)&&null!=r.getDerivedStateFromError&&(t.setState(r.getDerivedStateFromError(n)),o=t.__d),null!=t.componentDidCatch&&(t.componentDidCatch(n,i||{}),o=t.__d),o)return t.__E=t}catch(l){n=l}throw n}},u=0,i=function(n){return null!=n&&void 0===n.constructor},t=!1,x.prototype.setState=function(n,l){var u;u=null!=this.__s&&this.__s!==this.state?this.__s:this.__s=h({},this.state),"function"==typeof n&&(n=n(h({},u),this.props)),n&&h(u,n),null!=n&&this.__v&&(l&&this._sb.push(l),T(this))},x.prototype.forceUpdate=function(n){this.__v&&(this.__e=!0,n&&this.__h.push(n),T(this))},x.prototype.render=_,r=[],f="function"==typeof Promise?Promise.prototype.then.bind(Promise.resolve()):setTimeout,$.__r=0,e=0;
61643//# sourceMappingURL=preact.module.js.map
61644
61645
61646/***/ }),
61647
vendor: 6,359 bytes, lines 61648-61675
61648/***/ "./node_modules/preact/hooks/dist/hooks.module.js":
61649/*!********************************************************!*\
61650  !*** ./node_modules/preact/hooks/dist/hooks.module.js ***!
61651  \********************************************************/
61652/*! exports provided: useCallback, useContext, useDebugValue, useEffect, useErrorBoundary, useId, useImperativeHandle, useLayoutEffect, useMemo, useReducer, useRef, useState */
61653/***/ (function(module, __webpack_exports__, __webpack_require__) {
61654
61655"use strict";
61656__webpack_require__.r(__webpack_exports__);
61657/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "useCallback", function() { return T; });
61658/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "useContext", function() { return q; });
61659/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "useDebugValue", function() { return x; });
61660/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "useEffect", function() { return h; });
61661/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "useErrorBoundary", function() { return P; });
61662/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "useId", function() { return V; });
61663/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "useImperativeHandle", function() { return A; });
61664/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "useLayoutEffect", function() { return s; });
61665/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "useMemo", function() { return F; });
61666/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "useReducer", function() { return y; });
61667/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "useRef", function() { return _; });
61668/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "useState", function() { return p; });
61669/* harmony import */ var preact__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! preact */ "./node_modules/preact/dist/preact.module.js");
61670var t,r,u,i,o=0,f=[],c=[],e=preact__WEBPACK_IMPORTED_MODULE_0__["options"].__b,a=preact__WEBPACK_IMPORTED_MODULE_0__["options"].__r,v=preact__WEBPACK_IMPORTED_MODULE_0__["options"].diffed,l=preact__WEBPACK_IMPORTED_MODULE_0__["options"].__c,m=preact__WEBPACK_IMPORTED_MODULE_0__["options"].unmount;function d(t,u){preact__WEBPACK_IMPORTED_MODULE_0__["options"].__h&&preact__WEBPACK_IMPORTED_MODULE_0__["options"].__h(r,t,o||u),o=0;var i=r.__H||(r.__H={__:[],__h:[]});return t>=i.__.length&&i.__.push({__V:c}),i.__[t]}function p(n){return o=1,y(B,n)}function y(n,u,i){var o=d(t++,2);if(o.t=n,!o.__c&&(o.__=[i?i(u):B(void 0,u),function(n){var t=o.__N?o.__N[0]:o.__[0],r=o.t(t,n);t!==r&&(o.__N=[r,o.__[1]],o.__c.setState({}))}],o.__c=r,!r.u)){r.u=!0;var f=r.shouldComponentUpdate;r.shouldComponentUpdate=function(n,t,r){if(!o.__c.__H)return!0;var u=o.__c.__H.__.filter(function(n){return n.__c});if(u.every(function(n){return!n.__N}))return!f||f.call(this,n,t,r);var i=!1;return u.forEach(function(n){if(n.__N){var t=n.__[0];n.__=n.__N,n.__N=void 0,t!==n.__[0]&&(i=!0)}}),!(!i&&o.__c.props===n)&&(!f||f.call(this,n,t,r))}}return o.__N||o.__}function h(u,i){var o=d(t++,3);!preact__WEBPACK_IMPORTED_MODULE_0__["options"].__s&&z(o.__H,i)&&(o.__=u,o.i=i,r.__H.__h.push(o))}function s(u,i){var o=d(t++,4);!preact__WEBPACK_IMPORTED_MODULE_0__["options"].__s&&z(o.__H,i)&&(o.__=u,o.i=i,r.__h.push(o))}function _(n){return o=5,F(function(){return{current:n}},[])}function A(n,t,r){o=6,s(function(){return"function"==typeof n?(n(t()),function(){return n(null)}):n?(n.current=t(),function(){return n.current=null}):void 0},null==r?r:r.concat(n))}function F(n,r){var u=d(t++,7);return z(u.__H,r)?(u.__V=n(),u.i=r,u.__h=n,u.__V):u.__}function T(n,t){return o=8,F(function(){return n},t)}function q(n){var u=r.context[n.__c],i=d(t++,9);return i.c=n,u?(null==i.__&&(i.__=!0,u.sub(r)),u.props.value):n.__}function x(t,r){preact__WEBPACK_IMPORTED_MODULE_0__["options"].useDebugValue&&preact__WEBPACK_IMPORTED_MODULE_0__["options"].useDebugValue(r?r(t):t)}function P(n){var u=d(t++,10),i=p();return u.__=n,r.componentDidCatch||(r.componentDidCatch=function(n,t){u.__&&u.__(n,t),i[1](n)}),[i[0],function(){i[1](void 0)}]}function V(){var n=d(t++,11);if(!n.__){for(var u=r.__v;null!==u&&!u.__m&&null!==u.__;)u=u.__;var i=u.__m||(u.__m=[0,0]);n.__="P"+i[0]+"-"+i[1]++}return n.__}function b(){for(var t;t=f.shift();)if(t.__P&&t.__H)try{t.__H.__h.forEach(k),t.__H.__h.forEach(w),t.__H.__h=[]}catch(r){t.__H.__h=[],preact__WEBPACK_IMPORTED_MODULE_0__["options"].__e(r,t.__v)}}preact__WEBPACK_IMPORTED_MODULE_0__["options"].__b=function(n){r=null,e&&e(n)},preact__WEBPACK_IMPORTED_MODULE_0__["options"].__r=function(n){a&&a(n),t=0;var i=(r=n.__c).__H;i&&(u===r?(i.__h=[],r.__h=[],i.__.forEach(function(n){n.__N&&(n.__=n.__N),n.__V=c,n.__N=n.i=void 0})):(i.__h.forEach(k),i.__h.forEach(w),i.__h=[])),u=r},preact__WEBPACK_IMPORTED_MODULE_0__["options"].diffed=function(t){v&&v(t);var o=t.__c;o&&o.__H&&(o.__H.__h.length&&(1!==f.push(o)&&i===preact__WEBPACK_IMPORTED_MODULE_0__["options"].requestAnimationFrame||((i=preact__WEBPACK_IMPORTED_MODULE_0__["options"].requestAnimationFrame)||j)(b)),o.__H.__.forEach(function(n){n.i&&(n.__H=n.i),n.__V!==c&&(n.__=n.__V),n.i=void 0,n.__V=c})),u=r=null},preact__WEBPACK_IMPORTED_MODULE_0__["options"].__c=function(t,r){r.some(function(t){try{t.__h.forEach(k),t.__h=t.__h.filter(function(n){return!n.__||w(n)})}catch(u){r.some(function(n){n.__h&&(n.__h=[])}),r=[],preact__WEBPACK_IMPORTED_MODULE_0__["options"].__e(u,t.__v)}}),l&&l(t,r)},preact__WEBPACK_IMPORTED_MODULE_0__["options"].unmount=function(t){m&&m(t);var r,u=t.__c;u&&u.__H&&(u.__H.__.forEach(function(n){try{k(n)}catch(n){r=n}}),u.__H=void 0,r&&preact__WEBPACK_IMPORTED_MODULE_0__["options"].__e(r,u.__v))};var g="function"==typeof requestAnimationFrame;function j(n){var t,r=function(){clearTimeout(u),g&&cancelAnimationFrame(t),setTimeout(n)},u=setTimeout(r,100);g&&(t=requestAnimationFrame(r))}function k(n){var t=r,u=n.__c;"function"==typeof u&&(n.__c=void 0,u()),r=t}function w(n){var t=r;n.__c=n.__(),r=t}function z(n,t){return!n||n.length!==t.length||t.some(function(t,r){return t!==n[r]})}function B(n,t){return"function"==typeof t?t(n):t}
61671//# sourceMappingURL=hooks.module.js.map
61672
61673
61674/***/ }),
61675
vendor: 7,511 bytes, lines 61676-61687
61676/***/ "./node_modules/vue-a11y-dialog/dist/vue-a11y-dialog.umd.js":
61677/*!******************************************************************!*\
61678  !*** ./node_modules/vue-a11y-dialog/dist/vue-a11y-dialog.umd.js ***!
61679  \******************************************************************/
61680/*! no static exports found */
61681/***/ (function(module, exports, __webpack_require__) {
61682
61683(function(a,e){ true?e(exports,__webpack_require__(/*! vue */ "./node_modules/vue/dist/vue.esm-bundler.js")):undefined})(this,function(a,e){"use strict";var y=['a[href]:not([tabindex^="-"])','area[href]:not([tabindex^="-"])','input:not([type="hidden"]):not([type="radio"]):not([disabled]):not([tabindex^="-"])','input[type="radio"]:not([disabled]):not([tabindex^="-"])','select:not([disabled]):not([tabindex^="-"])','textarea:not([disabled]):not([tabindex^="-"])','button:not([disabled]):not([tabindex^="-"])','iframe:not([tabindex^="-"])','audio[controls]:not([tabindex^="-"])','video[controls]:not([tabindex^="-"])','[contenteditable]:not([tabindex^="-"])','[tabindex]:not([tabindex^="-"])'],m=9,b=27;function s(t){this._show=this.show.bind(this),this._hide=this.hide.bind(this),this._maintainFocus=this._maintainFocus.bind(this),this._bindKeypress=this._bindKeypress.bind(this),this.$el=t,this.shown=!1,this._id=this.$el.getAttribute("data-a11y-dialog")||this.$el.id,this._previouslyFocused=null,this._listeners={},this.create()}s.prototype.create=function(){return this.$el.setAttribute("aria-hidden",!0),this.$el.setAttribute("aria-modal",!0),this.$el.setAttribute("tabindex",-1),this.$el.hasAttribute("role")||this.$el.setAttribute("role","dialog"),this._openers=d('[data-a11y-dialog-show="'+this._id+'"]'),this._openers.forEach(function(t){t.addEventListener("click",this._show)}.bind(this)),this._closers=d("[data-a11y-dialog-hide]",this.$el).concat(d('[data-a11y-dialog-hide="'+this._id+'"]')),this._closers.forEach(function(t){t.addEventListener("click",this._hide)}.bind(this)),this._fire("create"),this},s.prototype.show=function(t){return this.shown?this:(this._previouslyFocused=document.activeElement,this.$el.removeAttribute("aria-hidden"),this.shown=!0,u(this.$el),document.body.addEventListener("focus",this._maintainFocus,!0),document.addEventListener("keydown",this._bindKeypress),this._fire("show",t),this)},s.prototype.hide=function(t){return this.shown?(this.shown=!1,this.$el.setAttribute("aria-hidden","true"),this._previouslyFocused&&this._previouslyFocused.focus&&this._previouslyFocused.focus(),document.body.removeEventListener("focus",this._maintainFocus,!0),document.removeEventListener("keydown",this._bindKeypress),this._fire("hide",t),this):this},s.prototype.destroy=function(){return this.hide(),this._openers.forEach(function(t){t.removeEventListener("click",this._show)}.bind(this)),this._closers.forEach(function(t){t.removeEventListener("click",this._hide)}.bind(this)),this._fire("destroy"),this._listeners={},this},s.prototype.on=function(t,o){return typeof this._listeners[t]=="undefined"&&(this._listeners[t]=[]),this._listeners[t].push(o),this},s.prototype.off=function(t,o){var i=(this._listeners[t]||[]).indexOf(o);return i>-1&&this._listeners[t].splice(i,1),this},s.prototype._fire=function(t,o){var i=this._listeners[t]||[],n=new CustomEvent(t,{detail:o});this.$el.dispatchEvent(n),i.forEach(function(l){l(this.$el,o)}.bind(this))},s.prototype._bindKeypress=function(t){!this.$el.contains(document.activeElement)||(this.shown&&t.which===b&&this.$el.getAttribute("role")!=="alertdialog"&&(t.preventDefault(),this.hide(t)),this.shown&&t.which===m&&p(this.$el,t))},s.prototype._maintainFocus=function(t){this.shown&&!t.target.closest('[aria-modal="true"]')&&!t.target.closest("[data-a11y-dialog-ignore-focus-trap]")&&u(this.$el)};function g(t){return Array.prototype.slice.call(t)}function d(t,o){return g((o||document).querySelectorAll(t))}function u(t){var o=t.querySelector("[autofocus]")||t;o.focus()}function _(t){return d(y.join(","),t).filter(function(o){return!!(o.offsetWidth||o.offsetHeight||o.getClientRects().length)})}function p(t,o){var i=_(t),n=i.indexOf(document.activeElement);o.shiftKey&&n===0?(i[i.length-1].focus(),o.preventDefault()):!o.shiftKey&&n===i.length-1&&(i[0].focus(),o.preventDefault())}function c(){d("[data-a11y-dialog]").forEach(function(t){new s(t)})}typeof document!="undefined"&&(document.readyState==="loading"?document.addEventListener("DOMContentLoaded",c):window.requestAnimationFrame?window.requestAnimationFrame(c):window.setTimeout(c,16));var E=(t,o)=>{const i=t.__vccOpts||t;for(const[n,l]of o)i[n]=l;return i};const w={name:"A11yDialog",props:{id:{type:String,required:!0},dialogRoot:{type:String,default:"body",required:!1},classNames:{type:Object,default(){return{container:"dialog-container",document:"dialog-content",overlay:"dialog-overlay",title:"dialog-title",closeButton:"dialog-close"}}},role:{type:String,required:!1,default:"dialog",validator(t){return["dialog","alertdialog"].includes(t)}},titleId:{type:String,default:""},closeButtonLabel:{type:String,default:"Close this dialog window"},closeButtonPosition:{type:String,required:!1,default:"first",validator(t){return["first","last","none"].includes(t)}}},emits:["dialog-ref"],setup(t,{emit:o}){let i;const n=e.ref(null),l=e.computed(()=>t.dialogRoot||"body"),f=e.computed(()=>t.titleId||`${t.id}-title`),r=e.computed(()=>["dialog","alertdialog"].includes(t.role)?t.role:"dialog"),N=async()=>{await e.nextTick(),i=new s(n.value),o("dialog-ref",i)};e.onMounted(()=>{N()});const F=()=>{i.hide()};return e.onUnmounted(()=>{i&&i.destroy(),o("dialog-ref")}),{dialog:i,close:F,portalTarget:l,fullTitleId:f,roleAttribute:r,rootElement:n}}},x=["id","role","aria-labelledby"],A=["data-a11y-dialog-hide"],C=["aria-label"],k=e.createTextVNode(e.toDisplayString("\xD7")),S=["id"],B=["aria-label"],v=e.createTextVNode(e.toDisplayString("\xD7"));function T(t,o,i,n,l,f){return e.openBlock(),e.createBlock(e.Teleport,{to:n.portalTarget},[e.createElementVNode("div",{ref:"rootElement",id:i.id,class:e.normalizeClass(i.classNames.container),role:n.roleAttribute,"aria-hidden":"true","aria-labelledby":n.fullTitleId},[e.createElementVNode("div",{"data-a11y-dialog-hide":i.role==="alertdialog"?void 0:!0,tabIndex:"-1",class:e.normalizeClass(i.classNames.overlay),onClick:o[0]||(o[0]=r=>i.role==="alertdialog"?void 0:n.close)},null,10,A),e.createElementVNode("div",{role:"document",class:e.normalizeClass(i.classNames.document)},[i.closeButtonPosition=="first"?(e.openBlock(),e.createElementBlock("button",{key:0,"data-a11y-dialog-hide":"",type:"button","aria-label":i.closeButtonLabel,class:e.normalizeClass(i.classNames.closeButton),onClick:o[1]||(o[1]=(...r)=>n.close&&n.close(...r))},[e.renderSlot(t.$slots,"closeButtonContent",{},()=>[k])],10,C)):e.createCommentVNode("",!0),e.createElementVNode("p",{id:n.fullTitleId,class:e.normalizeClass(i.classNames.title)},[e.renderSlot(t.$slots,"title")],10,S),e.renderSlot(t.$slots,"default"),i.closeButtonPosition=="last"?(e.openBlock(),e.createElementBlock("button",{key:1,"data-a11y-dialog-hide":"",type:"button","aria-label":i.closeButtonLabel,class:e.normalizeClass(i.classNames.closeButton),onClick:o[2]||(o[2]=(...r)=>n.close&&n.close(...r))},[e.renderSlot(t.$slots,"closeButtonContent",{},()=>[v])],10,B)):e.createCommentVNode("",!0)],2)],10,x)],8,["to"])}var h=E(w,[["render",T]]),D={install:t=>{t.component("a11y-dialog",h)}};a.A11yDialog=h,a.default=D,Object.defineProperty(a,"__esModule",{value:!0}),a[Symbol.toStringTag]="Module"});
61684
61685
61686/***/ }),
61687
vendor: 665 bytes, lines 61688-61710
61688/***/ "./node_modules/vue-loader/dist/exportHelper.js":
61689/*!******************************************************!*\
61690  !*** ./node_modules/vue-loader/dist/exportHelper.js ***!
61691  \******************************************************/
61692/*! no static exports found */
61693/***/ (function(module, exports, __webpack_require__) {
61694
61695"use strict";
61696
61697Object.defineProperty(exports, "__esModule", { value: true });
61698// runtime helper for setting properties on components
61699// in a tree-shakable way
61700exports.default = (sfc, props) => {
61701    const target = sfc.__vccOpts || sfc;
61702    for (const [key, val] of props) {
61703        target[key] = val;
61704    }
61705    return target;
61706};
61707
61708
61709/***/ }),
61710
vendor: 33,853 bytes, lines 61711-62123
61711/***/ "./node_modules/vue/dist/vue.esm-bundler.js":
61712/*!**************************************************!*\
61713  !*** ./node_modules/vue/dist/vue.esm-bundler.js ***!
61714  \**************************************************/
61715/*! exports provided: EffectScope, ReactiveEffect, TrackOpTypes, TriggerOpTypes, customRef, effect, effectScope, getCurrentScope, isProxy, isReactive, isReadonly, isRef, isShallow, markRaw, onScopeDispose, proxyRefs, reactive, readonly, ref, shallowReactive, shallowReadonly, shallowRef, stop, toRaw, toRef, toRefs, toValue, triggerRef, unref, camelize, capitalize, normalizeClass, normalizeProps, normalizeStyle, toDisplayString, toHandlerKey, BaseTransition, BaseTransitionPropsValidators, Comment, DeprecationTypes, ErrorCodes, ErrorTypeStrings, Fragment, KeepAlive, Static, Suspense, Teleport, Text, assertNumber, callWithAsyncErrorHandling, callWithErrorHandling, cloneVNode, compatUtils, computed, createBlock, createCommentVNode, createElementBlock, createElementVNode, createHydrationRenderer, createPropsRestProxy, createRenderer, createSlots, createStaticVNode, createTextVNode, createVNode, defineAsyncComponent, defineComponent, defineEmits, defineExpose, defineModel, defineOptions, defineProps, defineSlots, devtools, getCurrentInstance, getTransitionRawChildren, guardReactiveProps, h, handleError, hasInjectionContext, initCustomFormatter, inject, isMemoSame, isRuntimeOnly, isVNode, mergeDefaults, mergeModels, mergeProps, nextTick, onActivated, onBeforeMount, onBeforeUnmount, onBeforeUpdate, onDeactivated, onErrorCaptured, onMounted, onRenderTracked, onRenderTriggered, onServerPrefetch, onUnmounted, onUpdated, openBlock, popScopeId, provide, pushScopeId, queuePostFlushCb, registerRuntimeCompiler, renderList, renderSlot, resolveComponent, resolveDirective, resolveDynamicComponent, resolveFilter, resolveTransitionHooks, setBlockTracking, setDevtoolsHook, setTransitionHooks, ssrContextKey, ssrUtils, toHandlers, transformVNodeArgs, useAttrs, useModel, useSSRContext, useSlots, useTransitionState, version, warn, watch, watchEffect, watchPostEffect, watchSyncEffect, withAsyncContext, withCtx, withDefaults, withDirectives, withMemo, withScopeId, Transition, TransitionGroup, VueElement, createApp, createSSRApp, defineCustomElement, defineSSRCustomElement, hydrate, initDirectivesForSSR, render, useCssModule, useCssVars, vModelCheckbox, vModelDynamic, vModelRadio, vModelSelect, vModelText, vShow, withKeys, withModifiers, compile */
61716/***/ (function(module, __webpack_exports__, __webpack_require__) {
61717
61718"use strict";
61719__webpack_require__.r(__webpack_exports__);
61720/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "compile", function() { return compileToFunction; });
61721/* harmony import */ var _vue_runtime_dom__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @vue/runtime-dom */ "./node_modules/@vue/runtime-dom/dist/runtime-dom.esm-bundler.js");
61722/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "EffectScope", function() { return _vue_runtime_dom__WEBPACK_IMPORTED_MODULE_0__["EffectScope"]; });
61723
61724/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "ReactiveEffect", function() { return _vue_runtime_dom__WEBPACK_IMPORTED_MODULE_0__["ReactiveEffect"]; });
61725
61726/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "TrackOpTypes", function() { return _vue_runtime_dom__WEBPACK_IMPORTED_MODULE_0__["TrackOpTypes"]; });
61727
61728/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "TriggerOpTypes", function() { return _vue_runtime_dom__WEBPACK_IMPORTED_MODULE_0__["TriggerOpTypes"]; });
61729
61730/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "customRef", function() { return _vue_runtime_dom__WEBPACK_IMPORTED_MODULE_0__["customRef"]; });
61731
61732/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "effect", function() { return _vue_runtime_dom__WEBPACK_IMPORTED_MODULE_0__["effect"]; });
61733
61734/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "effectScope", function() { return _vue_runtime_dom__WEBPACK_IMPORTED_MODULE_0__["effectScope"]; });
61735
61736/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "getCurrentScope", function() { return _vue_runtime_dom__WEBPACK_IMPORTED_MODULE_0__["getCurrentScope"]; });
61737
61738/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "isProxy", function() { return _vue_runtime_dom__WEBPACK_IMPORTED_MODULE_0__["isProxy"]; });
61739
61740/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "isReactive", function() { return _vue_runtime_dom__WEBPACK_IMPORTED_MODULE_0__["isReactive"]; });
61741
61742/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "isReadonly", function() { return _vue_runtime_dom__WEBPACK_IMPORTED_MODULE_0__["isReadonly"]; });
61743
61744/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "isRef", function() { return _vue_runtime_dom__WEBPACK_IMPORTED_MODULE_0__["isRef"]; });
61745
61746/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "isShallow", function() { return _vue_runtime_dom__WEBPACK_IMPORTED_MODULE_0__["isShallow"]; });
61747
61748/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "markRaw", function() { return _vue_runtime_dom__WEBPACK_IMPORTED_MODULE_0__["markRaw"]; });
61749
61750/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "onScopeDispose", function() { return _vue_runtime_dom__WEBPACK_IMPORTED_MODULE_0__["onScopeDispose"]; });
61751
61752/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "proxyRefs", function() { return _vue_runtime_dom__WEBPACK_IMPORTED_MODULE_0__["proxyRefs"]; });
61753
61754/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "reactive", function() { return _vue_runtime_dom__WEBPACK_IMPORTED_MODULE_0__["reactive"]; });
61755
61756/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "readonly", function() { return _vue_runtime_dom__WEBPACK_IMPORTED_MODULE_0__["readonly"]; });
61757
61758/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "ref", function() { return _vue_runtime_dom__WEBPACK_IMPORTED_MODULE_0__["ref"]; });
61759
61760/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "shallowReactive", function() { return _vue_runtime_dom__WEBPACK_IMPORTED_MODULE_0__["shallowReactive"]; });
61761
61762/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "shallowReadonly", function() { return _vue_runtime_dom__WEBPACK_IMPORTED_MODULE_0__["shallowReadonly"]; });
61763
61764/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "shallowRef", function() { return _vue_runtime_dom__WEBPACK_IMPORTED_MODULE_0__["shallowRef"]; });
61765
61766/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "stop", function() { return _vue_runtime_dom__WEBPACK_IMPORTED_MODULE_0__["stop"]; });
61767
61768/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "toRaw", function() { return _vue_runtime_dom__WEBPACK_IMPORTED_MODULE_0__["toRaw"]; });
61769
61770/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "toRef", function() { return _vue_runtime_dom__WEBPACK_IMPORTED_MODULE_0__["toRef"]; });
61771
61772/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "toRefs", function() { return _vue_runtime_dom__WEBPACK_IMPORTED_MODULE_0__["toRefs"]; });
61773
61774/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "toValue", function() { return _vue_runtime_dom__WEBPACK_IMPORTED_MODULE_0__["toValue"]; });
61775
61776/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "triggerRef", function() { return _vue_runtime_dom__WEBPACK_IMPORTED_MODULE_0__["triggerRef"]; });
61777
61778/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "unref", function() { return _vue_runtime_dom__WEBPACK_IMPORTED_MODULE_0__["unref"]; });
61779
61780/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "camelize", function() { return _vue_runtime_dom__WEBPACK_IMPORTED_MODULE_0__["camelize"]; });
61781
61782/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "capitalize", function() { return _vue_runtime_dom__WEBPACK_IMPORTED_MODULE_0__["capitalize"]; });
61783
61784/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "normalizeClass", function() { return _vue_runtime_dom__WEBPACK_IMPORTED_MODULE_0__["normalizeClass"]; });
61785
61786/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "normalizeProps", function() { return _vue_runtime_dom__WEBPACK_IMPORTED_MODULE_0__["normalizeProps"]; });
61787
61788/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "normalizeStyle", function() { return _vue_runtime_dom__WEBPACK_IMPORTED_MODULE_0__["normalizeStyle"]; });
61789
61790/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "toDisplayString", function() { return _vue_runtime_dom__WEBPACK_IMPORTED_MODULE_0__["toDisplayString"]; });
61791
61792/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "toHandlerKey", function() { return _vue_runtime_dom__WEBPACK_IMPORTED_MODULE_0__["toHandlerKey"]; });
61793
61794/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "BaseTransition", function() { return _vue_runtime_dom__WEBPACK_IMPORTED_MODULE_0__["BaseTransition"]; });
61795
61796/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "BaseTransitionPropsValidators", function() { return _vue_runtime_dom__WEBPACK_IMPORTED_MODULE_0__["BaseTransitionPropsValidators"]; });
61797
61798/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "Comment", function() { return _vue_runtime_dom__WEBPACK_IMPORTED_MODULE_0__["Comment"]; });
61799
61800/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "DeprecationTypes", function() { return _vue_runtime_dom__WEBPACK_IMPORTED_MODULE_0__["DeprecationTypes"]; });
61801
61802/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "ErrorCodes", function() { return _vue_runtime_dom__WEBPACK_IMPORTED_MODULE_0__["ErrorCodes"]; });
61803
61804/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "ErrorTypeStrings", function() { return _vue_runtime_dom__WEBPACK_IMPORTED_MODULE_0__["ErrorTypeStrings"]; });
61805
61806/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "Fragment", function() { return _vue_runtime_dom__WEBPACK_IMPORTED_MODULE_0__["Fragment"]; });
61807
61808/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "KeepAlive", function() { return _vue_runtime_dom__WEBPACK_IMPORTED_MODULE_0__["KeepAlive"]; });
61809
61810/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "Static", function() { return _vue_runtime_dom__WEBPACK_IMPORTED_MODULE_0__["Static"]; });
61811
61812/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "Suspense", function() { return _vue_runtime_dom__WEBPACK_IMPORTED_MODULE_0__["Suspense"]; });
61813
61814/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "Teleport", function() { return _vue_runtime_dom__WEBPACK_IMPORTED_MODULE_0__["Teleport"]; });
61815
61816/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "Text", function() { return _vue_runtime_dom__WEBPACK_IMPORTED_MODULE_0__["Text"]; });
61817
61818/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "assertNumber", function() { return _vue_runtime_dom__WEBPACK_IMPORTED_MODULE_0__["assertNumber"]; });
61819
61820/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "callWithAsyncErrorHandling", function() { return _vue_runtime_dom__WEBPACK_IMPORTED_MODULE_0__["callWithAsyncErrorHandling"]; });
61821
61822/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "callWithErrorHandling", function() { return _vue_runtime_dom__WEBPACK_IMPORTED_MODULE_0__["callWithErrorHandling"]; });
61823
61824/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "cloneVNode", function() { return _vue_runtime_dom__WEBPACK_IMPORTED_MODULE_0__["cloneVNode"]; });
61825
61826/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "compatUtils", function() { return _vue_runtime_dom__WEBPACK_IMPORTED_MODULE_0__["compatUtils"]; });
61827
61828/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "computed", function() { return _vue_runtime_dom__WEBPACK_IMPORTED_MODULE_0__["computed"]; });
61829
61830/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "createBlock", function() { return _vue_runtime_dom__WEBPACK_IMPORTED_MODULE_0__["createBlock"]; });
61831
61832/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "createCommentVNode", function() { return _vue_runtime_dom__WEBPACK_IMPORTED_MODULE_0__["createCommentVNode"]; });
61833
61834/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "createElementBlock", function() { return _vue_runtime_dom__WEBPACK_IMPORTED_MODULE_0__["createElementBlock"]; });
61835
61836/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "createElementVNode", function() { return _vue_runtime_dom__WEBPACK_IMPORTED_MODULE_0__["createElementVNode"]; });
61837
61838/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "createHydrationRenderer", function() { return _vue_runtime_dom__WEBPACK_IMPORTED_MODULE_0__["createHydrationRenderer"]; });
61839
61840/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "createPropsRestProxy", function() { return _vue_runtime_dom__WEBPACK_IMPORTED_MODULE_0__["createPropsRestProxy"]; });
61841
61842/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "createRenderer", function() { return _vue_runtime_dom__WEBPACK_IMPORTED_MODULE_0__["createRenderer"]; });
61843
61844/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "createSlots", function() { return _vue_runtime_dom__WEBPACK_IMPORTED_MODULE_0__["createSlots"]; });
61845
61846/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "createStaticVNode", function() { return _vue_runtime_dom__WEBPACK_IMPORTED_MODULE_0__["createStaticVNode"]; });
61847
61848/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "createTextVNode", function() { return _vue_runtime_dom__WEBPACK_IMPORTED_MODULE_0__["createTextVNode"]; });
61849
61850/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "createVNode", function() { return _vue_runtime_dom__WEBPACK_IMPORTED_MODULE_0__["createVNode"]; });
61851
61852/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "defineAsyncComponent", function() { return _vue_runtime_dom__WEBPACK_IMPORTED_MODULE_0__["defineAsyncComponent"]; });
61853
61854/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "defineComponent", function() { return _vue_runtime_dom__WEBPACK_IMPORTED_MODULE_0__["defineComponent"]; });
61855
61856/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "defineEmits", function() { return _vue_runtime_dom__WEBPACK_IMPORTED_MODULE_0__["defineEmits"]; });
61857
61858/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "defineExpose", function() { return _vue_runtime_dom__WEBPACK_IMPORTED_MODULE_0__["defineExpose"]; });
61859
61860/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "defineModel", function() { return _vue_runtime_dom__WEBPACK_IMPORTED_MODULE_0__["defineModel"]; });
61861
61862/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "defineOptions", function() { return _vue_runtime_dom__WEBPACK_IMPORTED_MODULE_0__["defineOptions"]; });
61863
61864/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "defineProps", function() { return _vue_runtime_dom__WEBPACK_IMPORTED_MODULE_0__["defineProps"]; });
61865
61866/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "defineSlots", function() { return _vue_runtime_dom__WEBPACK_IMPORTED_MODULE_0__["defineSlots"]; });
61867
61868/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "devtools", function() { return _vue_runtime_dom__WEBPACK_IMPORTED_MODULE_0__["devtools"]; });
61869
61870/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "getCurrentInstance", function() { return _vue_runtime_dom__WEBPACK_IMPORTED_MODULE_0__["getCurrentInstance"]; });
61871
61872/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "getTransitionRawChildren", function() { return _vue_runtime_dom__WEBPACK_IMPORTED_MODULE_0__["getTransitionRawChildren"]; });
61873
61874/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "guardReactiveProps", function() { return _vue_runtime_dom__WEBPACK_IMPORTED_MODULE_0__["guardReactiveProps"]; });
61875
61876/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "h", function() { return _vue_runtime_dom__WEBPACK_IMPORTED_MODULE_0__["h"]; });
61877
61878/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "handleError", function() { return _vue_runtime_dom__WEBPACK_IMPORTED_MODULE_0__["handleError"]; });
61879
61880/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "hasInjectionContext", function() { return _vue_runtime_dom__WEBPACK_IMPORTED_MODULE_0__["hasInjectionContext"]; });
61881
61882/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "initCustomFormatter", function() { return _vue_runtime_dom__WEBPACK_IMPORTED_MODULE_0__["initCustomFormatter"]; });
61883
61884/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "inject", function() { return _vue_runtime_dom__WEBPACK_IMPORTED_MODULE_0__["inject"]; });
61885
61886/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "isMemoSame", function() { return _vue_runtime_dom__WEBPACK_IMPORTED_MODULE_0__["isMemoSame"]; });
61887
61888/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "isRuntimeOnly", function() { return _vue_runtime_dom__WEBPACK_IMPORTED_MODULE_0__["isRuntimeOnly"]; });
61889
61890/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "isVNode", function() { return _vue_runtime_dom__WEBPACK_IMPORTED_MODULE_0__["isVNode"]; });
61891
61892/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "mergeDefaults", function() { return _vue_runtime_dom__WEBPACK_IMPORTED_MODULE_0__["mergeDefaults"]; });
61893
61894/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "mergeModels", function() { return _vue_runtime_dom__WEBPACK_IMPORTED_MODULE_0__["mergeModels"]; });
61895
61896/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "mergeProps", function() { return _vue_runtime_dom__WEBPACK_IMPORTED_MODULE_0__["mergeProps"]; });
61897
61898/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "nextTick", function() { return _vue_runtime_dom__WEBPACK_IMPORTED_MODULE_0__["nextTick"]; });
61899
61900/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "onActivated", function() { return _vue_runtime_dom__WEBPACK_IMPORTED_MODULE_0__["onActivated"]; });
61901
61902/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "onBeforeMount", function() { return _vue_runtime_dom__WEBPACK_IMPORTED_MODULE_0__["onBeforeMount"]; });
61903
61904/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "onBeforeUnmount", function() { return _vue_runtime_dom__WEBPACK_IMPORTED_MODULE_0__["onBeforeUnmount"]; });
61905
61906/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "onBeforeUpdate", function() { return _vue_runtime_dom__WEBPACK_IMPORTED_MODULE_0__["onBeforeUpdate"]; });
61907
61908/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "onDeactivated", function() { return _vue_runtime_dom__WEBPACK_IMPORTED_MODULE_0__["onDeactivated"]; });
61909
61910/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "onErrorCaptured", function() { return _vue_runtime_dom__WEBPACK_IMPORTED_MODULE_0__["onErrorCaptured"]; });
61911
61912/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "onMounted", function() { return _vue_runtime_dom__WEBPACK_IMPORTED_MODULE_0__["onMounted"]; });
61913
61914/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "onRenderTracked", function() { return _vue_runtime_dom__WEBPACK_IMPORTED_MODULE_0__["onRenderTracked"]; });
61915
61916/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "onRenderTriggered", function() { return _vue_runtime_dom__WEBPACK_IMPORTED_MODULE_0__["onRenderTriggered"]; });
61917
61918/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "onServerPrefetch", function() { return _vue_runtime_dom__WEBPACK_IMPORTED_MODULE_0__["onServerPrefetch"]; });
61919
61920/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "onUnmounted", function() { return _vue_runtime_dom__WEBPACK_IMPORTED_MODULE_0__["onUnmounted"]; });
61921
61922/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "onUpdated", function() { return _vue_runtime_dom__WEBPACK_IMPORTED_MODULE_0__["onUpdated"]; });
61923
61924/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "openBlock", function() { return _vue_runtime_dom__WEBPACK_IMPORTED_MODULE_0__["openBlock"]; });
61925
61926/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "popScopeId", function() { return _vue_runtime_dom__WEBPACK_IMPORTED_MODULE_0__["popScopeId"]; });
61927
61928/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "provide", function() { return _vue_runtime_dom__WEBPACK_IMPORTED_MODULE_0__["provide"]; });
61929
61930/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "pushScopeId", function() { return _vue_runtime_dom__WEBPACK_IMPORTED_MODULE_0__["pushScopeId"]; });
61931
61932/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "queuePostFlushCb", function() { return _vue_runtime_dom__WEBPACK_IMPORTED_MODULE_0__["queuePostFlushCb"]; });
61933
61934/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "registerRuntimeCompiler", function() { return _vue_runtime_dom__WEBPACK_IMPORTED_MODULE_0__["registerRuntimeCompiler"]; });
61935
61936/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "renderList", function() { return _vue_runtime_dom__WEBPACK_IMPORTED_MODULE_0__["renderList"]; });
61937
61938/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "renderSlot", function() { return _vue_runtime_dom__WEBPACK_IMPORTED_MODULE_0__["renderSlot"]; });
61939
61940/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "resolveComponent", function() { return _vue_runtime_dom__WEBPACK_IMPORTED_MODULE_0__["resolveComponent"]; });
61941
61942/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "resolveDirective", function() { return _vue_runtime_dom__WEBPACK_IMPORTED_MODULE_0__["resolveDirective"]; });
61943
61944/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "resolveDynamicComponent", function() { return _vue_runtime_dom__WEBPACK_IMPORTED_MODULE_0__["resolveDynamicComponent"]; });
61945
61946/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "resolveFilter", function() { return _vue_runtime_dom__WEBPACK_IMPORTED_MODULE_0__["resolveFilter"]; });
61947
61948/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "resolveTransitionHooks", function() { return _vue_runtime_dom__WEBPACK_IMPORTED_MODULE_0__["resolveTransitionHooks"]; });
61949
61950/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "setBlockTracking", function() { return _vue_runtime_dom__WEBPACK_IMPORTED_MODULE_0__["setBlockTracking"]; });
61951
61952/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "setDevtoolsHook", function() { return _vue_runtime_dom__WEBPACK_IMPORTED_MODULE_0__["setDevtoolsHook"]; });
61953
61954/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "setTransitionHooks", function() { return _vue_runtime_dom__WEBPACK_IMPORTED_MODULE_0__["setTransitionHooks"]; });
61955
61956/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "ssrContextKey", function() { return _vue_runtime_dom__WEBPACK_IMPORTED_MODULE_0__["ssrContextKey"]; });
61957
61958/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "ssrUtils", function() { return _vue_runtime_dom__WEBPACK_IMPORTED_MODULE_0__["ssrUtils"]; });
61959
61960/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "toHandlers", function() { return _vue_runtime_dom__WEBPACK_IMPORTED_MODULE_0__["toHandlers"]; });
61961
61962/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "transformVNodeArgs", function() { return _vue_runtime_dom__WEBPACK_IMPORTED_MODULE_0__["transformVNodeArgs"]; });
61963
61964/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "useAttrs", function() { return _vue_runtime_dom__WEBPACK_IMPORTED_MODULE_0__["useAttrs"]; });
61965
61966/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "useModel", function() { return _vue_runtime_dom__WEBPACK_IMPORTED_MODULE_0__["useModel"]; });
61967
61968/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "useSSRContext", function() { return _vue_runtime_dom__WEBPACK_IMPORTED_MODULE_0__["useSSRContext"]; });
61969
61970/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "useSlots", function() { return _vue_runtime_dom__WEBPACK_IMPORTED_MODULE_0__["useSlots"]; });
61971
61972/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "useTransitionState", function() { return _vue_runtime_dom__WEBPACK_IMPORTED_MODULE_0__["useTransitionState"]; });
61973
61974/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "version", function() { return _vue_runtime_dom__WEBPACK_IMPORTED_MODULE_0__["version"]; });
61975
61976/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "warn", function() { return _vue_runtime_dom__WEBPACK_IMPORTED_MODULE_0__["warn"]; });
61977
61978/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "watch", function() { return _vue_runtime_dom__WEBPACK_IMPORTED_MODULE_0__["watch"]; });
61979
61980/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "watchEffect", function() { return _vue_runtime_dom__WEBPACK_IMPORTED_MODULE_0__["watchEffect"]; });
61981
61982/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "watchPostEffect", function() { return _vue_runtime_dom__WEBPACK_IMPORTED_MODULE_0__["watchPostEffect"]; });
61983
61984/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "watchSyncEffect", function() { return _vue_runtime_dom__WEBPACK_IMPORTED_MODULE_0__["watchSyncEffect"]; });
61985
61986/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "withAsyncContext", function() { return _vue_runtime_dom__WEBPACK_IMPORTED_MODULE_0__["withAsyncContext"]; });
61987
61988/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "withCtx", function() { return _vue_runtime_dom__WEBPACK_IMPORTED_MODULE_0__["withCtx"]; });
61989
61990/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "withDefaults", function() { return _vue_runtime_dom__WEBPACK_IMPORTED_MODULE_0__["withDefaults"]; });
61991
61992/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "withDirectives", function() { return _vue_runtime_dom__WEBPACK_IMPORTED_MODULE_0__["withDirectives"]; });
61993
61994/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "withMemo", function() { return _vue_runtime_dom__WEBPACK_IMPORTED_MODULE_0__["withMemo"]; });
61995
61996/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "withScopeId", function() { return _vue_runtime_dom__WEBPACK_IMPORTED_MODULE_0__["withScopeId"]; });
61997
61998/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "Transition", function() { return _vue_runtime_dom__WEBPACK_IMPORTED_MODULE_0__["Transition"]; });
61999
62000/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "TransitionGroup", function() { return _vue_runtime_dom__WEBPACK_IMPORTED_MODULE_0__["TransitionGroup"]; });
62001
62002/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "VueElement", function() { return _vue_runtime_dom__WEBPACK_IMPORTED_MODULE_0__["VueElement"]; });
62003
62004/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "createApp", function() { return _vue_runtime_dom__WEBPACK_IMPORTED_MODULE_0__["createApp"]; });
62005
62006/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "createSSRApp", function() { return _vue_runtime_dom__WEBPACK_IMPORTED_MODULE_0__["createSSRApp"]; });
62007
62008/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "defineCustomElement", function() { return _vue_runtime_dom__WEBPACK_IMPORTED_MODULE_0__["defineCustomElement"]; });
62009
62010/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "defineSSRCustomElement", function() { return _vue_runtime_dom__WEBPACK_IMPORTED_MODULE_0__["defineSSRCustomElement"]; });
62011
62012/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "hydrate", function() { return _vue_runtime_dom__WEBPACK_IMPORTED_MODULE_0__["hydrate"]; });
62013
62014/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "initDirectivesForSSR", function() { return _vue_runtime_dom__WEBPACK_IMPORTED_MODULE_0__["initDirectivesForSSR"]; });
62015
62016/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "render", function() { return _vue_runtime_dom__WEBPACK_IMPORTED_MODULE_0__["render"]; });
62017
62018/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "useCssModule", function() { return _vue_runtime_dom__WEBPACK_IMPORTED_MODULE_0__["useCssModule"]; });
62019
62020/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "useCssVars", function() { return _vue_runtime_dom__WEBPACK_IMPORTED_MODULE_0__["useCssVars"]; });
62021
62022/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "vModelCheckbox", function() { return _vue_runtime_dom__WEBPACK_IMPORTED_MODULE_0__["vModelCheckbox"]; });
62023
62024/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "vModelDynamic", function() { return _vue_runtime_dom__WEBPACK_IMPORTED_MODULE_0__["vModelDynamic"]; });
62025
62026/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "vModelRadio", function() { return _vue_runtime_dom__WEBPACK_IMPORTED_MODULE_0__["vModelRadio"]; });
62027
62028/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "vModelSelect", function() { return _vue_runtime_dom__WEBPACK_IMPORTED_MODULE_0__["vModelSelect"]; });
62029
62030/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "vModelText", function() { return _vue_runtime_dom__WEBPACK_IMPORTED_MODULE_0__["vModelText"]; });
62031
62032/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "vShow", function() { return _vue_runtime_dom__WEBPACK_IMPORTED_MODULE_0__["vShow"]; });
62033
62034/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "withKeys", function() { return _vue_runtime_dom__WEBPACK_IMPORTED_MODULE_0__["withKeys"]; });
62035
62036/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "withModifiers", function() { return _vue_runtime_dom__WEBPACK_IMPORTED_MODULE_0__["withModifiers"]; });
62037
62038/* harmony import */ var _vue_compiler_dom__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @vue/compiler-dom */ "./node_modules/@vue/compiler-dom/dist/compiler-dom.esm-bundler.js");
62039/* harmony import */ var _vue_shared__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @vue/shared */ "./node_modules/@vue/shared/dist/shared.esm-bundler.js");
62040/**
62041* vue v3.4.21
62042* (c) 2018-present Yuxi (Evan) You and Vue contributors
62043* @license MIT
62044**/
62045
62046
62047
62048
62049
62050
62051function initDev() {
62052  {
62053    Object(_vue_runtime_dom__WEBPACK_IMPORTED_MODULE_0__["initCustomFormatter"])();
62054  }
62055}
62056
62057if (true) {
62058  initDev();
62059}
62060const compileCache = /* @__PURE__ */ new WeakMap();
62061function getCache(options) {
62062  let c = compileCache.get(options != null ? options : _vue_shared__WEBPACK_IMPORTED_MODULE_2__["EMPTY_OBJ"]);
62063  if (!c) {
62064    c = /* @__PURE__ */ Object.create(null);
62065    compileCache.set(options != null ? options : _vue_shared__WEBPACK_IMPORTED_MODULE_2__["EMPTY_OBJ"], c);
62066  }
62067  return c;
62068}
62069function compileToFunction(template, options) {
62070  if (!Object(_vue_shared__WEBPACK_IMPORTED_MODULE_2__["isString"])(template)) {
62071    if (template.nodeType) {
62072      template = template.innerHTML;
62073    } else {
62074       true && Object(_vue_runtime_dom__WEBPACK_IMPORTED_MODULE_0__["warn"])(`invalid template option: `, template);
62075      return _vue_shared__WEBPACK_IMPORTED_MODULE_2__["NOOP"];
62076    }
62077  }
62078  const key = template;
62079  const cache = getCache(options);
62080  const cached = cache[key];
62081  if (cached) {
62082    return cached;
62083  }
62084  if (template[0] === "#") {
62085    const el = document.querySelector(template);
62086    if ( true && !el) {
62087      Object(_vue_runtime_dom__WEBPACK_IMPORTED_MODULE_0__["warn"])(`Template element not found or is empty: ${template}`);
62088    }
62089    template = el ? el.innerHTML : ``;
62090  }
62091  const opts = Object(_vue_shared__WEBPACK_IMPORTED_MODULE_2__["extend"])(
62092    {
62093      hoistStatic: true,
62094      onError:  true ? onError : undefined,
62095      onWarn:  true ? (e) => onError(e, true) : undefined
62096    },
62097    options
62098  );
62099  if (!opts.isCustomElement && typeof customElements !== "undefined") {
62100    opts.isCustomElement = (tag) => !!customElements.get(tag);
62101  }
62102  const { code } = Object(_vue_compiler_dom__WEBPACK_IMPORTED_MODULE_1__["compile"])(template, opts);
62103  function onError(err, asWarning = false) {
62104    const message = asWarning ? err.message : `Template compilation error: ${err.message}`;
62105    const codeFrame = err.loc && Object(_vue_shared__WEBPACK_IMPORTED_MODULE_2__["generateCodeFrame"])(
62106      template,
62107      err.loc.start.offset,
62108      err.loc.end.offset
62109    );
62110    Object(_vue_runtime_dom__WEBPACK_IMPORTED_MODULE_0__["warn"])(codeFrame ? `${message}
62111${codeFrame}` : message);
62112  }
62113  const render = new Function("Vue", code)(_vue_runtime_dom__WEBPACK_IMPORTED_MODULE_0__);
62114  render._rc = true;
62115  return cache[key] = render;
62116}
62117Object(_vue_runtime_dom__WEBPACK_IMPORTED_MODULE_0__["registerRuntimeCompiler"])(compileToFunction);
62118
62119
62120
62121
62122/***/ }),
62123
vendor: 724 bytes, lines 62124-62154
62124/***/ "./node_modules/webpack/buildin/global.js":
62125/*!***********************************!*\
62126  !*** (webpack)/buildin/global.js ***!
62127  \***********************************/
62128/*! no static exports found */
62129/***/ (function(module, exports) {
62130
62131var g;
62132
62133// This works in non-strict mode
62134g = (function() {
62135	return this;
62136})();
62137
62138try {
62139	// This works if eval is allowed (see CSP)
62140	g = g || new Function("return this")();
62141} catch (e) {
62142	// This works if the window reference is available
62143	if (typeof window === "object") g = window;
62144}
62145
62146// g can still be undefined, but nothing to do about it...
62147// We return undefined, instead of nothing here, so it's
62148// easier to handle this case. if(!global) { ...}
62149
62150module.exports = g;
62151
62152
62153/***/ }),
62154
vendor: 749 bytes, lines 62155-62187
62155/***/ "./node_modules/webpack/buildin/module.js":
62156/*!***********************************!*\
62157  !*** (webpack)/buildin/module.js ***!
62158  \***********************************/
62159/*! no static exports found */
62160/***/ (function(module, exports) {
62161
62162module.exports = function(module) {
62163	if (!module.webpackPolyfill) {
62164		module.deprecate = function() {};
62165		module.paths = [];
62166		// module.parent = undefined by default
62167		if (!module.children) module.children = [];
62168		Object.defineProperty(module, "loaded", {
62169			enumerable: true,
62170			get: function() {
62171				return module.l;
62172			}
62173		});
62174		Object.defineProperty(module, "id", {
62175			enumerable: true,
62176			get: function() {
62177				return module.i;
62178			}
62179		});
62180		module.webpackPolyfill = 1;
62181	}
62182	return module;
62183};
62184
62185
62186/***/ }),
62187
62188/***/ "./src/vue/admissions/App.vue":
62189/*!************************************!*\
62190  !*** ./src/vue/admissions/App.vue ***!
62191  \************************************/
62192/*! exports provided: default */
62193/***/ (function(module, __webpack_exports__, __webpack_require__) {
62194
62195"use strict";
62196__webpack_require__.r(__webpack_exports__);
62197/* harmony import */ var _App_vue_vue_type_template_id_04c4054e__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./App.vue?vue&type=template&id=04c4054e */ "./src/vue/admissions/App.vue?vue&type=template&id=04c4054e");
62198/* harmony import */ var _App_vue_vue_type_script_lang_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./App.vue?vue&type=script&lang=js */ "./src/vue/admissions/App.vue?vue&type=script&lang=js");
62199/* empty/unused harmony star reexport *//* harmony import */ var _node_modules_vue_loader_dist_exportHelper_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../../node_modules/vue-loader/dist/exportHelper.js */ "./node_modules/vue-loader/dist/exportHelper.js");
62200/* harmony import */ var _node_modules_vue_loader_dist_exportHelper_js__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_node_modules_vue_loader_dist_exportHelper_js__WEBPACK_IMPORTED_MODULE_2__);
62201
62202
62203
62204
62205
62206const __exports__ = /*#__PURE__*/_node_modules_vue_loader_dist_exportHelper_js__WEBPACK_IMPORTED_MODULE_2___default()(_App_vue_vue_type_script_lang_js__WEBPACK_IMPORTED_MODULE_1__["default"], [['render',_App_vue_vue_type_template_id_04c4054e__WEBPACK_IMPORTED_MODULE_0__["render"]]])
62207
62208/* harmony default export */ __webpack_exports__["default"] = (__exports__);
62209
62210/***/ }),
62211
62212/***/ "./src/vue/admissions/App.vue?vue&type=script&lang=js":
62213/*!************************************************************!*\
62214  !*** ./src/vue/admissions/App.vue?vue&type=script&lang=js ***!
62215  \************************************************************/
62216/*! exports provided: default */
62217/***/ (function(module, __webpack_exports__, __webpack_require__) {
62218
62219"use strict";
62220__webpack_require__.r(__webpack_exports__);
62221/* harmony import */ var _node_modules_babel_loader_lib_index_js_node_modules_vue_loader_dist_index_js_ref_14_0_App_vue_vue_type_script_lang_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../node_modules/babel-loader/lib!../../../node_modules/vue-loader/dist??ref--14-0!./App.vue?vue&type=script&lang=js */ "./node_modules/babel-loader/lib/index.js!./node_modules/vue-loader/dist/index.js?!./src/vue/admissions/App.vue?vue&type=script&lang=js");
62222/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "default", function() { return _node_modules_babel_loader_lib_index_js_node_modules_vue_loader_dist_index_js_ref_14_0_App_vue_vue_type_script_lang_js__WEBPACK_IMPORTED_MODULE_0__["default"]; });
62223
62224/* empty/unused harmony star reexport */ 
62225
62226/***/ }),
62227
62228/***/ "./src/vue/admissions/App.vue?vue&type=template&id=04c4054e":
62229/*!******************************************************************!*\
62230  !*** ./src/vue/admissions/App.vue?vue&type=template&id=04c4054e ***!
62231  \******************************************************************/
62232/*! exports provided: render */
62233/***/ (function(module, __webpack_exports__, __webpack_require__) {
62234
62235"use strict";
62236__webpack_require__.r(__webpack_exports__);
62237/* harmony import */ var _node_modules_babel_loader_lib_index_js_node_modules_vue_loader_dist_templateLoader_js_ref_6_node_modules_vue_loader_dist_index_js_ref_14_0_App_vue_vue_type_template_id_04c4054e__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../node_modules/babel-loader/lib!../../../node_modules/vue-loader/dist/templateLoader.js??ref--6!../../../node_modules/vue-loader/dist??ref--14-0!./App.vue?vue&type=template&id=04c4054e */ "./node_modules/babel-loader/lib/index.js!./node_modules/vue-loader/dist/templateLoader.js?!./node_modules/vue-loader/dist/index.js?!./src/vue/admissions/App.vue?vue&type=template&id=04c4054e");
62238/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "render", function() { return _node_modules_babel_loader_lib_index_js_node_modules_vue_loader_dist_templateLoader_js_ref_6_node_modules_vue_loader_dist_index_js_ref_14_0_App_vue_vue_type_template_id_04c4054e__WEBPACK_IMPORTED_MODULE_0__["render"]; });
62239
62240
62241
62242/***/ }),
62243
62244/***/ "./src/vue/admissions/components/AdmissionInstances.vue":
62245/*!**************************************************************!*\
62246  !*** ./src/vue/admissions/components/AdmissionInstances.vue ***!
62247  \**************************************************************/
62248/*! exports provided: default */
62249/***/ (function(module, __webpack_exports__, __webpack_require__) {
62250
62251"use strict";
62252__webpack_require__.r(__webpack_exports__);
62253/* harmony import */ var _AdmissionInstances_vue_vue_type_template_id_d40542b2__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./AdmissionInstances.vue?vue&type=template&id=d40542b2 */ "./src/vue/admissions/components/AdmissionInstances.vue?vue&type=template&id=d40542b2");
62254/* harmony import */ var _AdmissionInstances_vue_vue_type_script_lang_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./AdmissionInstances.vue?vue&type=script&lang=js */ "./src/vue/admissions/components/AdmissionInstances.vue?vue&type=script&lang=js");
62255/* empty/unused harmony star reexport *//* harmony import */ var _node_modules_vue_loader_dist_exportHelper_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../../../node_modules/vue-loader/dist/exportHelper.js */ "./node_modules/vue-loader/dist/exportHelper.js");
62256/* harmony import */ var _node_modules_vue_loader_dist_exportHelper_js__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_node_modules_vue_loader_dist_exportHelper_js__WEBPACK_IMPORTED_MODULE_2__);
62257
62258
62259
62260
62261
62262const __exports__ = /*#__PURE__*/_node_modules_vue_loader_dist_exportHelper_js__WEBPACK_IMPORTED_MODULE_2___default()(_AdmissionInstances_vue_vue_type_script_lang_js__WEBPACK_IMPORTED_MODULE_1__["default"], [['render',_AdmissionInstances_vue_vue_type_template_id_d40542b2__WEBPACK_IMPORTED_MODULE_0__["render"]]])
62263
62264/* harmony default export */ __webpack_exports__["default"] = (__exports__);
62265
62266/***/ }),
62267
62268/***/ "./src/vue/admissions/components/AdmissionInstances.vue?vue&type=script&lang=js":
62269/*!**************************************************************************************!*\
62270  !*** ./src/vue/admissions/components/AdmissionInstances.vue?vue&type=script&lang=js ***!
62271  \**************************************************************************************/
62272/*! exports provided: default */
62273/***/ (function(module, __webpack_exports__, __webpack_require__) {
62274
62275"use strict";
62276__webpack_require__.r(__webpack_exports__);
62277/* harmony import */ var _node_modules_babel_loader_lib_index_js_node_modules_vue_loader_dist_index_js_ref_14_0_AdmissionInstances_vue_vue_type_script_lang_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../node_modules/babel-loader/lib!../../../../node_modules/vue-loader/dist??ref--14-0!./AdmissionInstances.vue?vue&type=script&lang=js */ "./node_modules/babel-loader/lib/index.js!./node_modules/vue-loader/dist/index.js?!./src/vue/admissions/components/AdmissionInstances.vue?vue&type=script&lang=js");
62278/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "default", function() { return _node_modules_babel_loader_lib_index_js_node_modules_vue_loader_dist_index_js_ref_14_0_AdmissionInstances_vue_vue_type_script_lang_js__WEBPACK_IMPORTED_MODULE_0__["default"]; });
62279
62280/* empty/unused harmony star reexport */ 
62281
62282/***/ }),
62283
62284/***/ "./src/vue/admissions/components/AdmissionInstances.vue?vue&type=template&id=d40542b2":
62285/*!********************************************************************************************!*\
62286  !*** ./src/vue/admissions/components/AdmissionInstances.vue?vue&type=template&id=d40542b2 ***!
62287  \********************************************************************************************/
62288/*! exports provided: render */
62289/***/ (function(module, __webpack_exports__, __webpack_require__) {
62290
62291"use strict";
62292__webpack_require__.r(__webpack_exports__);
62293/* harmony import */ var _node_modules_babel_loader_lib_index_js_node_modules_vue_loader_dist_templateLoader_js_ref_6_node_modules_vue_loader_dist_index_js_ref_14_0_AdmissionInstances_vue_vue_type_template_id_d40542b2__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../node_modules/babel-loader/lib!../../../../node_modules/vue-loader/dist/templateLoader.js??ref--6!../../../../node_modules/vue-loader/dist??ref--14-0!./AdmissionInstances.vue?vue&type=template&id=d40542b2 */ "./node_modules/babel-loader/lib/index.js!./node_modules/vue-loader/dist/templateLoader.js?!./node_modules/vue-loader/dist/index.js?!./src/vue/admissions/components/AdmissionInstances.vue?vue&type=template&id=d40542b2");
62294/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "render", function() { return _node_modules_babel_loader_lib_index_js_node_modules_vue_loader_dist_templateLoader_js_ref_6_node_modules_vue_loader_dist_index_js_ref_14_0_AdmissionInstances_vue_vue_type_template_id_d40542b2__WEBPACK_IMPORTED_MODULE_0__["render"]; });
62295
62296
62297
62298/***/ }),
62299
62300/***/ "./src/vue/admissions/components/Admissions.vue":
62301/*!******************************************************!*\
62302  !*** ./src/vue/admissions/components/Admissions.vue ***!
62303  \******************************************************/
62304/*! exports provided: default */
62305/***/ (function(module, __webpack_exports__, __webpack_require__) {
62306
62307"use strict";
62308__webpack_require__.r(__webpack_exports__);
62309/* harmony import */ var _Admissions_vue_vue_type_template_id_e7fe7e76__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./Admissions.vue?vue&type=template&id=e7fe7e76 */ "./src/vue/admissions/components/Admissions.vue?vue&type=template&id=e7fe7e76");
62310/* harmony import */ var _Admissions_vue_vue_type_script_lang_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./Admissions.vue?vue&type=script&lang=js */ "./src/vue/admissions/components/Admissions.vue?vue&type=script&lang=js");
62311/* empty/unused harmony star reexport *//* harmony import */ var _node_modules_vue_loader_dist_exportHelper_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../../../node_modules/vue-loader/dist/exportHelper.js */ "./node_modules/vue-loader/dist/exportHelper.js");
62312/* harmony import */ var _node_modules_vue_loader_dist_exportHelper_js__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_node_modules_vue_loader_dist_exportHelper_js__WEBPACK_IMPORTED_MODULE_2__);
62313
62314
62315
62316
62317
62318const __exports__ = /*#__PURE__*/_node_modules_vue_loader_dist_exportHelper_js__WEBPACK_IMPORTED_MODULE_2___default()(_Admissions_vue_vue_type_script_lang_js__WEBPACK_IMPORTED_MODULE_1__["default"], [['render',_Admissions_vue_vue_type_template_id_e7fe7e76__WEBPACK_IMPORTED_MODULE_0__["render"]]])
62319
62320/* harmony default export */ __webpack_exports__["default"] = (__exports__);
62321
62322/***/ }),
62323
62324/***/ "./src/vue/admissions/components/Admissions.vue?vue&type=script&lang=js":
62325/*!******************************************************************************!*\
62326  !*** ./src/vue/admissions/components/Admissions.vue?vue&type=script&lang=js ***!
62327  \******************************************************************************/
62328/*! exports provided: default */
62329/***/ (function(module, __webpack_exports__, __webpack_require__) {
62330
62331"use strict";
62332__webpack_require__.r(__webpack_exports__);
62333/* harmony import */ var _node_modules_babel_loader_lib_index_js_node_modules_vue_loader_dist_index_js_ref_14_0_Admissions_vue_vue_type_script_lang_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../node_modules/babel-loader/lib!../../../../node_modules/vue-loader/dist??ref--14-0!./Admissions.vue?vue&type=script&lang=js */ "./node_modules/babel-loader/lib/index.js!./node_modules/vue-loader/dist/index.js?!./src/vue/admissions/components/Admissions.vue?vue&type=script&lang=js");
62334/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "default", function() { return _node_modules_babel_loader_lib_index_js_node_modules_vue_loader_dist_index_js_ref_14_0_Admissions_vue_vue_type_script_lang_js__WEBPACK_IMPORTED_MODULE_0__["default"]; });
62335
62336/* empty/unused harmony star reexport */ 
62337
62338/***/ }),
62339
62340/***/ "./src/vue/admissions/components/Admissions.vue?vue&type=template&id=e7fe7e76":
62341/*!************************************************************************************!*\
62342  !*** ./src/vue/admissions/components/Admissions.vue?vue&type=template&id=e7fe7e76 ***!
62343  \************************************************************************************/
62344/*! exports provided: render */
62345/***/ (function(module, __webpack_exports__, __webpack_require__) {
62346
62347"use strict";
62348__webpack_require__.r(__webpack_exports__);
62349/* harmony import */ var _node_modules_babel_loader_lib_index_js_node_modules_vue_loader_dist_templateLoader_js_ref_6_node_modules_vue_loader_dist_index_js_ref_14_0_Admissions_vue_vue_type_template_id_e7fe7e76__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../node_modules/babel-loader/lib!../../../../node_modules/vue-loader/dist/templateLoader.js??ref--6!../../../../node_modules/vue-loader/dist??ref--14-0!./Admissions.vue?vue&type=template&id=e7fe7e76 */ "./node_modules/babel-loader/lib/index.js!./node_modules/vue-loader/dist/templateLoader.js?!./node_modules/vue-loader/dist/index.js?!./src/vue/admissions/components/Admissions.vue?vue&type=template&id=e7fe7e76");
62350/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "render", function() { return _node_modules_babel_loader_lib_index_js_node_modules_vue_loader_dist_templateLoader_js_ref_6_node_modules_vue_loader_dist_index_js_ref_14_0_Admissions_vue_vue_type_template_id_e7fe7e76__WEBPACK_IMPORTED_MODULE_0__["render"]; });
62351
62352
62353
62354/***/ }),
62355
62356/***/ "./src/vue/admissions/components/AdmissionsModal.vue":
62357/*!***********************************************************!*\
62358  !*** ./src/vue/admissions/components/AdmissionsModal.vue ***!
62359  \***********************************************************/
62360/*! exports provided: default */
62361/***/ (function(module, __webpack_exports__, __webpack_require__) {
62362
62363"use strict";
62364__webpack_require__.r(__webpack_exports__);
62365/* harmony import */ var _AdmissionsModal_vue_vue_type_template_id_6dfafd1c__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./AdmissionsModal.vue?vue&type=template&id=6dfafd1c */ "./src/vue/admissions/components/AdmissionsModal.vue?vue&type=template&id=6dfafd1c");
62366/* harmony import */ var _AdmissionsModal_vue_vue_type_script_lang_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./AdmissionsModal.vue?vue&type=script&lang=js */ "./src/vue/admissions/components/AdmissionsModal.vue?vue&type=script&lang=js");
62367/* empty/unused harmony star reexport *//* harmony import */ var _node_modules_vue_loader_dist_exportHelper_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../../../node_modules/vue-loader/dist/exportHelper.js */ "./node_modules/vue-loader/dist/exportHelper.js");
62368/* harmony import */ var _node_modules_vue_loader_dist_exportHelper_js__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_node_modules_vue_loader_dist_exportHelper_js__WEBPACK_IMPORTED_MODULE_2__);
62369
62370
62371
62372
62373
62374const __exports__ = /*#__PURE__*/_node_modules_vue_loader_dist_exportHelper_js__WEBPACK_IMPORTED_MODULE_2___default()(_AdmissionsModal_vue_vue_type_script_lang_js__WEBPACK_IMPORTED_MODULE_1__["default"], [['render',_AdmissionsModal_vue_vue_type_template_id_6dfafd1c__WEBPACK_IMPORTED_MODULE_0__["render"]]])
62375
62376/* harmony default export */ __webpack_exports__["default"] = (__exports__);
62377
62378/***/ }),
62379
62380/***/ "./src/vue/admissions/components/AdmissionsModal.vue?vue&type=script&lang=js":
62381/*!***********************************************************************************!*\
62382  !*** ./src/vue/admissions/components/AdmissionsModal.vue?vue&type=script&lang=js ***!
62383  \***********************************************************************************/
62384/*! exports provided: default */
62385/***/ (function(module, __webpack_exports__, __webpack_require__) {
62386
62387"use strict";
62388__webpack_require__.r(__webpack_exports__);
62389/* harmony import */ var _node_modules_babel_loader_lib_index_js_node_modules_vue_loader_dist_index_js_ref_14_0_AdmissionsModal_vue_vue_type_script_lang_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../node_modules/babel-loader/lib!../../../../node_modules/vue-loader/dist??ref--14-0!./AdmissionsModal.vue?vue&type=script&lang=js */ "./node_modules/babel-loader/lib/index.js!./node_modules/vue-loader/dist/index.js?!./src/vue/admissions/components/AdmissionsModal.vue?vue&type=script&lang=js");
62390/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "default", function() { return _node_modules_babel_loader_lib_index_js_node_modules_vue_loader_dist_index_js_ref_14_0_AdmissionsModal_vue_vue_type_script_lang_js__WEBPACK_IMPORTED_MODULE_0__["default"]; });
62391
62392/* empty/unused harmony star reexport */ 
62393
62394/***/ }),
62395
62396/***/ "./src/vue/admissions/components/AdmissionsModal.vue?vue&type=template&id=6dfafd1c":
62397/*!*****************************************************************************************!*\
62398  !*** ./src/vue/admissions/components/AdmissionsModal.vue?vue&type=template&id=6dfafd1c ***!
62399  \*****************************************************************************************/
62400/*! exports provided: render */
62401/***/ (function(module, __webpack_exports__, __webpack_require__) {
62402
62403"use strict";
62404__webpack_require__.r(__webpack_exports__);
62405/* harmony import */ var _node_modules_babel_loader_lib_index_js_node_modules_vue_loader_dist_templateLoader_js_ref_6_node_modules_vue_loader_dist_index_js_ref_14_0_AdmissionsModal_vue_vue_type_template_id_6dfafd1c__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../node_modules/babel-loader/lib!../../../../node_modules/vue-loader/dist/templateLoader.js??ref--6!../../../../node_modules/vue-loader/dist??ref--14-0!./AdmissionsModal.vue?vue&type=template&id=6dfafd1c */ "./node_modules/babel-loader/lib/index.js!./node_modules/vue-loader/dist/templateLoader.js?!./node_modules/vue-loader/dist/index.js?!./src/vue/admissions/components/AdmissionsModal.vue?vue&type=template&id=6dfafd1c");
62406/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "render", function() { return _node_modules_babel_loader_lib_index_js_node_modules_vue_loader_dist_templateLoader_js_ref_6_node_modules_vue_loader_dist_index_js_ref_14_0_AdmissionsModal_vue_vue_type_template_id_6dfafd1c__WEBPACK_IMPORTED_MODULE_0__["render"]; });
62407
62408
62409
62410/***/ }),
62411
62412/***/ "./src/vue/admissions/components/Loader.vue":
62413/*!**************************************************!*\
62414  !*** ./src/vue/admissions/components/Loader.vue ***!
62415  \**************************************************/
62416/*! exports provided: default */
62417/***/ (function(module, __webpack_exports__, __webpack_require__) {
62418
62419"use strict";
62420__webpack_require__.r(__webpack_exports__);
62421/* harmony import */ var _Loader_vue_vue_type_template_id_36f07e48__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./Loader.vue?vue&type=template&id=36f07e48 */ "./src/vue/admissions/components/Loader.vue?vue&type=template&id=36f07e48");
62422/* harmony import */ var _Loader_vue_vue_type_script_lang_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./Loader.vue?vue&type=script&lang=js */ "./src/vue/admissions/components/Loader.vue?vue&type=script&lang=js");
62423/* empty/unused harmony star reexport *//* harmony import */ var _node_modules_vue_loader_dist_exportHelper_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../../../node_modules/vue-loader/dist/exportHelper.js */ "./node_modules/vue-loader/dist/exportHelper.js");
62424/* harmony import */ var _node_modules_vue_loader_dist_exportHelper_js__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_node_modules_vue_loader_dist_exportHelper_js__WEBPACK_IMPORTED_MODULE_2__);
62425
62426
62427
62428
62429
62430const __exports__ = /*#__PURE__*/_node_modules_vue_loader_dist_exportHelper_js__WEBPACK_IMPORTED_MODULE_2___default()(_Loader_vue_vue_type_script_lang_js__WEBPACK_IMPORTED_MODULE_1__["default"], [['render',_Loader_vue_vue_type_template_id_36f07e48__WEBPACK_IMPORTED_MODULE_0__["render"]]])
62431
62432/* harmony default export */ __webpack_exports__["default"] = (__exports__);
62433
62434/***/ }),
62435
62436/***/ "./src/vue/admissions/components/Loader.vue?vue&type=script&lang=js":
62437/*!**************************************************************************!*\
62438  !*** ./src/vue/admissions/components/Loader.vue?vue&type=script&lang=js ***!
62439  \**************************************************************************/
62440/*! exports provided: default */
62441/***/ (function(module, __webpack_exports__, __webpack_require__) {
62442
62443"use strict";
62444__webpack_require__.r(__webpack_exports__);
62445/* harmony import */ var _node_modules_babel_loader_lib_index_js_node_modules_vue_loader_dist_index_js_ref_14_0_Loader_vue_vue_type_script_lang_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../node_modules/babel-loader/lib!../../../../node_modules/vue-loader/dist??ref--14-0!./Loader.vue?vue&type=script&lang=js */ "./node_modules/babel-loader/lib/index.js!./node_modules/vue-loader/dist/index.js?!./src/vue/admissions/components/Loader.vue?vue&type=script&lang=js");
62446/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "default", function() { return _node_modules_babel_loader_lib_index_js_node_modules_vue_loader_dist_index_js_ref_14_0_Loader_vue_vue_type_script_lang_js__WEBPACK_IMPORTED_MODULE_0__["default"]; });
62447
62448/* empty/unused harmony star reexport */ 
62449
62450/***/ }),
62451
62452/***/ "./src/vue/admissions/components/Loader.vue?vue&type=template&id=36f07e48":
62453/*!********************************************************************************!*\
62454  !*** ./src/vue/admissions/components/Loader.vue?vue&type=template&id=36f07e48 ***!
62455  \********************************************************************************/
62456/*! exports provided: render */
62457/***/ (function(module, __webpack_exports__, __webpack_require__) {
62458
62459"use strict";
62460__webpack_require__.r(__webpack_exports__);
62461/* harmony import */ var _node_modules_babel_loader_lib_index_js_node_modules_vue_loader_dist_templateLoader_js_ref_6_node_modules_vue_loader_dist_index_js_ref_14_0_Loader_vue_vue_type_template_id_36f07e48__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../node_modules/babel-loader/lib!../../../../node_modules/vue-loader/dist/templateLoader.js??ref--6!../../../../node_modules/vue-loader/dist??ref--14-0!./Loader.vue?vue&type=template&id=36f07e48 */ "./node_modules/babel-loader/lib/index.js!./node_modules/vue-loader/dist/templateLoader.js?!./node_modules/vue-loader/dist/index.js?!./src/vue/admissions/components/Loader.vue?vue&type=template&id=36f07e48");
62462/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "render", function() { return _node_modules_babel_loader_lib_index_js_node_modules_vue_loader_dist_templateLoader_js_ref_6_node_modules_vue_loader_dist_index_js_ref_14_0_Loader_vue_vue_type_template_id_36f07e48__WEBPACK_IMPORTED_MODULE_0__["render"]; });
62463
62464
62465
62466/***/ }),
62467
62468/***/ "./src/vue/admissions/index.js":
62469/*!*************************************!*\
62470  !*** ./src/vue/admissions/index.js ***!
62471  \*************************************/
62472/*! no exports provided */
62473/***/ (function(module, __webpack_exports__, __webpack_require__) {
62474
62475"use strict";
62476__webpack_require__.r(__webpack_exports__);
62477/* harmony import */ var vue__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! vue */ "./node_modules/vue/dist/vue.esm-bundler.js");
62478/* harmony import */ var _App_vue__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./App.vue */ "./src/vue/admissions/App.vue");
62479/* harmony import */ var mitt__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! mitt */ "./node_modules/mitt/dist/mitt.mjs");
62480
62481
62482 // This a Vue 3 replacement for the EventBus
62483
62484var app = Object(vue__WEBPACK_IMPORTED_MODULE_0__["createApp"])({
62485  config: {
62486    productionTip: false
62487  }
62488});
62489app.config.globalProperties.$emitter = Object(mitt__WEBPACK_IMPORTED_MODULE_2__["default"])();
62490app.component('admissions-app', _App_vue__WEBPACK_IMPORTED_MODULE_1__["default"]);
62491app.mount('#general-admissions');
62492
62493/***/ }),
62494
62495/***/ "./src/vue/admissions/modules/OpeningTimes.js":
62496/*!****************************************************!*\
62497  !*** ./src/vue/admissions/modules/OpeningTimes.js ***!
62498  \****************************************************/
62499/*! exports provided: default */
62500/***/ (function(module, __webpack_exports__, __webpack_require__) {
62501
62502"use strict";
62503__webpack_require__.r(__webpack_exports__);
62504/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "default", function() { return OpeningTimes; });
62505/* harmony import */ var moment__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! moment */ "./node_modules/moment/moment.js");
62506/* harmony import */ var moment__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(moment__WEBPACK_IMPORTED_MODULE_0__);
62507
62508/**
62509 * The purpose of this class is to handle opening time details for a given date.
62510 */
62511
62512var OpeningTimes = /*#__PURE__*/function () {
62513  function OpeningTimes(days, overrides) {
62514    this.days = days;
62515    this.overrides = overrides;
62516  }
62517  /**
62518   * Retrieves opening time details for a given date.
62519   * @param {String} date - The date for which opening details are to be retrieved.
62520   * @returns {Object|boolean} - Opening time details or false if not found.
62521   */
62522
62523
62524  var _proto = OpeningTimes.prototype;
62525
62526  _proto.details = function details(date) {
62527    var details = this.getOpeningTimeDetails(date);
62528
62529    if (details) {
62530      var opening_time_start = details.opening_time_start,
62531          opening_time_end = details.opening_time_end,
62532          opening_time_closed = details.opening_time_closed,
62533          opening_time_note = details.opening_time_note;
62534      return {
62535        status: this.toString(opening_time_closed, opening_time_start, opening_time_end),
62536        note: opening_time_note
62537      };
62538    }
62539
62540    return false;
62541  }
62542  /**
62543   * Retrieves opening details for a given date.
62544   * @param {String} date - The date for which opening details are to be retrieved.
62545   * @returns {Object|boolean} - Opening details or false if not found.
62546   */
62547  ;
62548
62549  _proto.getOpeningTimeDetails = function getOpeningTimeDetails(date) {
62550    var dateKey = moment__WEBPACK_IMPORTED_MODULE_0___default.a.utc(date).format('DD/MM/YYYY');
62551    var override = this.overrides[dateKey];
62552
62553    if (override) {
62554      return override;
62555    }
62556
62557    var dayOfWeek = moment__WEBPACK_IMPORTED_MODULE_0___default.a.utc(date).format('dddd').toLowerCase();
62558    var day = this.days['opening_times_' + dayOfWeek];
62559    return day || false;
62560  }
62561  /**
62562   * Returns the opening times as a string.
62563   * @param {String} start - Opening time start.
62564   * @param {String} end - Opening time end.
62565   * @returns {String} - Opening times as a string.
62566   */
62567  ;
62568
62569  _proto.toString = function toString(closed, start, end) {
62570    if (closed || (start == null ? void 0 : start.length) === 0 && (end == null ? void 0 : end.length) === 0) {
62571      return 'Closed.';
62572    }
62573
62574    var startTime = start.replace(':00', '');
62575    var endTime = end === '12:00 am' ? 'Midnight' : end;
62576    endTime = endTime.replace(':00', '');
62577    return "Open " + startTime + " - " + endTime + ".";
62578  };
62579
62580  return OpeningTimes;
62581}();
62582
62583
62584
62585/***/ })
62585
62586
62587/******/ });
62588//# sourceMappingURL=admissions.js.map

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.