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 '<' 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, """)}">`; 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 = """; 32506 break; 32507 case 38: 32508 escaped = "&"; 32509 break; 32510 case 39: 32511 escaped = "'"; 32512 break; 32513 case 60: 32514 escaped = "<"; 32515 break; 32516 case 62: 32517 escaped = ">"; 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ẹÌ_EÌreÌleÌ_ẸrẹÌnaÌ_IÌgbeÌ_EÌbibi_OÌkuÌdu_Agẹmo_OÌguÌn_Owewe_á»ÌwaÌraÌ_BeÌluÌ_á»ÌpẹÌÌ'.split( 55292 '_' 55293 ), 55294 monthsShort: 'SẹÌr_EÌrl_Ẹrn_IÌgb_EÌbi_OÌkuÌ_Agẹ_OÌguÌ_Owe_á»ÌwaÌ_BeÌl_á»ÌpẹÌÌ'.split('_'), 55295 weekdays: 'AÌiÌkuÌ_AjeÌ_IÌsẹÌgun_á»já»ÌruÌ_á»já»Ìbá»_ẸtiÌ_AÌbaÌmẹÌta'.split('_'), 55296 weekdaysShort: 'AÌiÌk_AjeÌ_IÌsẹÌ_á»jr_á»jb_ẸtiÌ_AÌbaÌ'.split('_'), 55297 weekdaysMin: 'AÌiÌ_Aj_IÌs_á»r_á»b_Ẹt_AÌ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: '[OÌniÌ ni] LT', 55308 nextDay: '[á»Ìla ni] LT', 55309 nextWeek: "dddd [á»sáº¹Ì toÌn'bá»] [ni] LT", 55310 lastDay: '[AÌna ni] LT', 55311 lastWeek: 'dddd [á»sáº¹Ì toÌlá»Ì] [ni] LT', 55312 sameElse: 'L', 55313 }, 55314 relativeTime: { 55315 future: 'niÌ %s', 55316 past: '%s ká»jaÌ', 55317 s: 'iÌsẹjuÌ aayaÌ die', 55318 ss: 'aayaÌ %d', 55319 m: 'iÌsẹjuÌ kan', 55320 mm: 'iÌsẹjuÌ %d', 55321 h: 'waÌkati kan', 55322 hh: 'waÌkati %d', 55323 d: 'á»já»Ì kan', 55324 dd: 'á»já»Ì %d', 55325 M: 'osuÌ kan', 55326 MM: 'osuÌ %d', 55327 y: 'á»duÌn kan', 55328 yy: 'á»duÌ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.