{"version":3,"sources":["webpack://eventgallery/./node_modules/async/asyncify.js","webpack://eventgallery/./node_modules/async/internal/DoublyLinkedList.js","webpack://eventgallery/./node_modules/async/internal/initialParams.js","webpack://eventgallery/./node_modules/async/internal/onlyOnce.js","webpack://eventgallery/./node_modules/async/internal/queue.js","webpack://eventgallery/./node_modules/async/internal/setImmediate.js","webpack://eventgallery/./node_modules/async/internal/wrapAsync.js","webpack://eventgallery/./node_modules/async/queue.js","webpack://eventgallery/./backend/js/Albumselector.js","webpack://eventgallery/./backend/js/EventgalleryBehavior.js","webpack://eventgallery/./backend/js/EventgalleryGooglePhotos.js","webpack://eventgallery/./backend/js/EventgalleryInlineFormEdit.js","webpack://eventgallery/./backend/js/LocalizableText.js","webpack://eventgallery/./backend/vue/cacheclear/index.js","webpack://eventgallery/./backend/vue/filesync/index.js","webpack://eventgallery/./backend/vue/imagecontentpluginform/index.js","webpack://eventgallery/./backend/vue/scalepriceeditor/index.js","webpack://eventgallery/./backend/vue/thumbnailcreator/index.js","webpack://eventgallery/./backend/vue/uploader/index.js","webpack://eventgallery/./common/js/BatchCreator.js","webpack://eventgallery/./common/js/EventgalleryTools.js","webpack://eventgallery/./common/js/Helpers.js","webpack://eventgallery/./common/vue/helper/LocalizationMapper.js","webpack://eventgallery/./frontend/js/EventgalleryGooglePhotosProcessor.js","webpack://eventgallery/./frontend/js/URLHelper.js","webpack://eventgallery/backend/vue/cacheclear/Cacheclear.vue","webpack://eventgallery/backend/vue/cacheclear/Elements.vue","webpack://eventgallery/backend/vue/cacheclear/Groups.vue","webpack://eventgallery/backend/vue/components/ErrorPanel.vue","webpack://eventgallery/backend/vue/components/Folder.vue","webpack://eventgallery/backend/vue/components/Folders.vue","webpack://eventgallery/backend/vue/components/ProcessSteps.vue","webpack://eventgallery/backend/vue/components/Progress.vue","webpack://eventgallery/backend/vue/filesync/Filesync.vue","webpack://eventgallery/backend/vue/imagecontentpluginform/ImageContentPluginForm.vue","webpack://eventgallery/backend/vue/imagecontentpluginform/ImageSelector.vue","webpack://eventgallery/backend/vue/imagecontentpluginform/Input.vue","webpack://eventgallery/backend/vue/imagecontentpluginform/Label.vue","webpack://eventgallery/backend/vue/imagecontentpluginform/Radio.vue","webpack://eventgallery/backend/vue/imagecontentpluginform/Select.vue","webpack://eventgallery/backend/vue/scalepriceeditor/Scalepriceeditor.vue","webpack://eventgallery/backend/vue/thumbnailcreator/Thumbnailcreator.vue","webpack://eventgallery/backend/vue/uploader/Uploader.vue","webpack://eventgallery/./node_modules/list.js/src/add-async.js","webpack://eventgallery/./node_modules/list.js/src/filter.js","webpack://eventgallery/./node_modules/list.js/src/fuzzy-search.js","webpack://eventgallery/./node_modules/list.js/src/index.js","webpack://eventgallery/./node_modules/list.js/src/item.js","webpack://eventgallery/./node_modules/list.js/src/pagination.js","webpack://eventgallery/./node_modules/list.js/src/parse.js","webpack://eventgallery/./node_modules/list.js/src/search.js","webpack://eventgallery/./node_modules/list.js/src/sort.js","webpack://eventgallery/./node_modules/list.js/src/templater.js","webpack://eventgallery/./node_modules/list.js/src/utils/classes.js","webpack://eventgallery/./node_modules/list.js/src/utils/events.js","webpack://eventgallery/./node_modules/list.js/src/utils/extend.js","webpack://eventgallery/./node_modules/list.js/src/utils/fuzzy.js","webpack://eventgallery/./node_modules/list.js/src/utils/get-attribute.js","webpack://eventgallery/./node_modules/list.js/src/utils/get-by-class.js","webpack://eventgallery/./node_modules/list.js/src/utils/index-of.js","webpack://eventgallery/./node_modules/list.js/src/utils/to-array.js","webpack://eventgallery/./node_modules/list.js/src/utils/to-string.js","webpack://eventgallery/./node_modules/string-natural-compare/natural-compare.js","webpack://eventgallery/./backend/vue/cacheclear/Cacheclear.vue","webpack://eventgallery/./backend/vue/cacheclear/Elements.vue?ddea","webpack://eventgallery/./backend/vue/cacheclear/Groups.vue?4f4b","webpack://eventgallery/./backend/vue/components/ErrorPanel.vue?a570","webpack://eventgallery/./backend/vue/components/Folder.vue?d67c","webpack://eventgallery/./backend/vue/components/Folders.vue?3c78","webpack://eventgallery/./backend/vue/components/ProcessSteps.vue?7ca8","webpack://eventgallery/./backend/vue/components/Progress.vue?c7d1","webpack://eventgallery/./backend/vue/filesync/Filesync.vue","webpack://eventgallery/./backend/vue/imagecontentpluginform/ImageContentPluginForm.vue?8c7d","webpack://eventgallery/./backend/vue/imagecontentpluginform/ImageSelector.vue?f6c6","webpack://eventgallery/./backend/vue/imagecontentpluginform/Input.vue","webpack://eventgallery/./backend/vue/imagecontentpluginform/Label.vue?6514","webpack://eventgallery/./backend/vue/imagecontentpluginform/Radio.vue","webpack://eventgallery/./backend/vue/imagecontentpluginform/Select.vue","webpack://eventgallery/./backend/vue/scalepriceeditor/Scalepriceeditor.vue?b509","webpack://eventgallery/./backend/vue/thumbnailcreator/Thumbnailcreator.vue","webpack://eventgallery/./backend/vue/uploader/Uploader.vue","webpack://eventgallery/./backend/vue/cacheclear/Cacheclear.vue?52c8","webpack://eventgallery/./backend/vue/cacheclear/Elements.vue?e9cb","webpack://eventgallery/./backend/vue/cacheclear/Groups.vue?9ac1","webpack://eventgallery/./backend/vue/components/ErrorPanel.vue?ac81","webpack://eventgallery/./backend/vue/components/Folder.vue?1ff3","webpack://eventgallery/./backend/vue/components/Folders.vue?7597","webpack://eventgallery/./backend/vue/components/ProcessSteps.vue?80c2","webpack://eventgallery/./backend/vue/components/Progress.vue?2d9e","webpack://eventgallery/./backend/vue/filesync/Filesync.vue?1e07","webpack://eventgallery/./backend/vue/imagecontentpluginform/ImageContentPluginForm.vue?6f2e","webpack://eventgallery/./backend/vue/imagecontentpluginform/ImageSelector.vue?af47","webpack://eventgallery/./backend/vue/imagecontentpluginform/Input.vue?651c","webpack://eventgallery/./backend/vue/imagecontentpluginform/Label.vue?f09e","webpack://eventgallery/./backend/vue/imagecontentpluginform/Radio.vue?92e2","webpack://eventgallery/./backend/vue/imagecontentpluginform/Select.vue?7e02","webpack://eventgallery/./backend/vue/scalepriceeditor/Scalepriceeditor.vue?4783","webpack://eventgallery/./backend/vue/thumbnailcreator/Thumbnailcreator.vue?3509","webpack://eventgallery/./backend/vue/uploader/Uploader.vue?a6a9","webpack://eventgallery/./backend/vue/cacheclear/Cacheclear.vue?fb40","webpack://eventgallery/./backend/vue/cacheclear/Elements.vue?f4b5","webpack://eventgallery/./backend/vue/cacheclear/Groups.vue?4776","webpack://eventgallery/./backend/vue/components/ErrorPanel.vue?4cae","webpack://eventgallery/./backend/vue/components/Folder.vue?47a1","webpack://eventgallery/./backend/vue/components/Folders.vue?030f","webpack://eventgallery/./backend/vue/components/ProcessSteps.vue?1684","webpack://eventgallery/./backend/vue/components/Progress.vue?2232","webpack://eventgallery/./backend/vue/filesync/Filesync.vue?e5ce","webpack://eventgallery/./backend/vue/imagecontentpluginform/ImageContentPluginForm.vue?5a21","webpack://eventgallery/./backend/vue/imagecontentpluginform/ImageSelector.vue?e384","webpack://eventgallery/./backend/vue/imagecontentpluginform/Input.vue?14ed","webpack://eventgallery/./backend/vue/imagecontentpluginform/Label.vue?40b2","webpack://eventgallery/./backend/vue/imagecontentpluginform/Radio.vue?046f","webpack://eventgallery/./backend/vue/imagecontentpluginform/Select.vue?e27b","webpack://eventgallery/./backend/vue/scalepriceeditor/Scalepriceeditor.vue?9513","webpack://eventgallery/./backend/vue/thumbnailcreator/Thumbnailcreator.vue?761e","webpack://eventgallery/./backend/vue/uploader/Uploader.vue?84d8","webpack://eventgallery/./node_modules/vue-loader/lib/runtime/componentNormalizer.js","webpack://eventgallery/./node_modules/vue/dist/vue.runtime.esm.js","webpack://eventgallery/webpack/bootstrap","webpack://eventgallery/webpack/runtime/compat get default export","webpack://eventgallery/webpack/runtime/define property getters","webpack://eventgallery/webpack/runtime/global","webpack://eventgallery/webpack/runtime/hasOwnProperty shorthand","webpack://eventgallery/webpack/runtime/make namespace object","webpack://eventgallery/./eventgallery-backend.js"],"names":["Object","defineProperty","exports","value","default","func","_wrapAsync","isAsync","args","callback","pop","handlePromise","apply","this","_initialParams2","result","e","then","_interopRequireDefault","_setImmediate2","obj","__esModule","promise","invokeCallback","err","message","Error","error","module","DLL","head","tail","length","node","prev","next","shift","newNode","insertBefore","setInitial","insertAfter","removeLink","Symbol","iterator","cur","data","testFn","curr","dll","fn","call","callFn","worker","concurrency","payload","RangeError","_worker","_wrapAsync2","numRunning","workersList","events","drain","saturated","unsaturated","empty","off","event","handler","filter","ev","keys","forEach","trigger","processingScheduled","_insert","insertAtFront","rejectOnError","res","rej","promiseCallback","q","started","item","_tasks","unshift","push","process","Promise","resolve","reject","_createCB","tasks","i","l","task","index","indexOf","splice","buffer","idle","_maybeDrain","eventMethod","name","handleAndRemove","once","on","isProcessing","_DoublyLinkedList2","paused","Array","isArray","map","datum","remove","Math","min","cb","_onlyOnce2","running","defineProperties","writable","fallback","wrap","_defer","hasSetImmediate","setImmediate","hasNextTick","nextTick","setTimeout","defer","isAsyncIterable","isAsyncGenerator","undefined","_asyncify2","toStringTag","asyncFn","asyncIterator","_queue2","items","template","document","createElement","innerHTML","Albumselector","_shadowRoot","attachShadow","mode","appendChild","content","cloneNode","$loadingLabel","querySelector","$loading","$empty","$albumlist","element","parent","getElementById","xhr","XMLHttpRequest","onreadystatechange","readyState","JSON","parse","response","createTable","albums","open","url","accountid","send","values","album","previewThumbnail","coverPhotoBaseUrl","encodedTitle","encodeURI","title","mediaItemsCount","albumid","id","link","productUrl","myList","List","page","valueNames","attr","add","buttons","querySelectorAll","button","addEventListener","preventDefault","stopPropagation","getAttribute","decodeURI","postMessage","stringify","style","display","oldVal","newVal","label","label_empty","getData","HTMLElement","window","customElements","define","Eventgallery","GooglePhotosProcessor","processImages","dataStr","startsWith","replace","albumField","onchange","click","target","oauthWindow","closed","alert","fireDomLoadEvent","dispatchEvent","Event","bubbles","cancelable","assignClickEvents","assignClickEvent","openInlineForm","saveInlineForm","closeInlineForm","elements","removeEventListener","currentContainer","closest","xhttp","status","responseText","form","setRequestHeader","serializeForm","setAttribute","inputFields","getElementsByClassName","collectData","field","languageTag","trim","jsonData","rootId","Vue","el","mounted","$el","render","Cacheclear","props","cacheClearUrl","elementsJson","groupsJson","csrfToken","i18n","mapLocalizationData","Filesync","loadFoldersUrl","fileSyncUrl","folderSyncUrl","fileBatchSize","parseInt","maxParallelRequests","ImageContentPluginForm","editorName","loadFilesUrl","formId","formDefinitionJson","nodes","inputName","inputId","inputValue","Thumbnailcreator","require","Uploader","maxFileSize","uploadUrl","COM_EVENTGALLERY_EVENT_UPLOAD_FILES_TO_UPLOAD","COM_EVENTGALLERY_EVENT_UPLOAD_PENDING","COM_EVENTGALLERY_EVENT_UPLOAD_FINISHED","createBatches","max_items_per_batch","batches","currentBatch","eventgallery","jQuery","Tools","mergeObjects","calcBorderWidth","addUrlHashParameter","getUrlHashParameterValue","removeUrlHashParameter","addUrlParameter","removeUrlParameter","setCSSStyle","removeElement","array","elm","defaults","options","key","properties","sum","j","parseFloat","css","isNaN","initialUrl","fragments","split","urlpart","hashparts","encodeURIComponent","join","prefix","newHashParts","urlparts","pars","getParents","parents","parentElement","serialized","inputElements","disabled","type","n","selected","checked","dataI18n","hmltElement","_elements","attributes","attrib","toUpperCase","t","localizationKey","lookup","LOADING_MATCHER","MARKER_IMAGE_IS_IN_PROGRESS_ATTRIBUTE","albumUrl","albumsUrl","EventGalleryGooglePhotosConfiguration","imageAddedCallback","doReloadLightbox","detail","isOverlay","_groupByAlbum","_collectHTMLElements","_markImagesAsInProgress","_getMainImageDataFromServer","htmlCollection","getElementsByTagName","img","backgroundImage","dataSrc","src","foundLinkHTMLElements","concat","a","rel","href","parsedHTMLElement","getHTMLElement","htmlElements","Map","imageHTMLElement","_parseHTMLElement","updateParameters","folder","parameters","get","set","htmlElement","tagName","ParsedImageHTMLElement","ParsedLinkHTMLElement","foldername","_doAlbumRequest","fetch","json","_processAlbumResult","_replaceImages","albumsWithMainImagesOnly","_filterForAlbumsWithMainImageOnly","size","_doAlbumsRequest","_getAlbumDataFromServer","_processAlbumsResult","newAlbums","mainImages","image","isMainImage","serverResult","parsedImageHTMLElement","imageUrl","getFile","replaceElementLinks","lightbox","isOpen","getCurrentSlide","thumbnailContainer","_gallery","close","ParsedHTMLElement","attributeNames","Set","styleAttributeNames","parameterString","substring","URLHelper","updateParametersWithUrl","getImageUrl","getWidth","width","urlParameterString","pairs","pair","splittedPair","urlSring","parts","queryParts","parseURLParameter","urlString","list","addAsync","valuesToAdd","update","handlers","filterStart","filterComplete","filterFunction","reset","filtered","is","il","visibleItems","extend","toString","getByClass","fuzzy","location","distance","threshold","multiSearch","searchClass","fuzzySearch","search","searchString","columns","searchArguments","k","kl","found","foundArgument","jl","searchArgument","hasOwnProperty","text","toLowerCase","bind","listContainer","srcElement","str","naturalSort","classes","toArray","init","self","Item","initPagination","start","listClass","sortClass","matchingItems","searched","searchColumns","utils","templater","sort","pagination","reIndex","toJSON","added","notCreate","show","valueName","matchedItems","clear","matching","hide","initValues","_values","newValues","visible","parentNode","refresh","pagingList","pages","ceil","currentPage","innerWindow","left","outerWindow","right","className","number","dotted","addEvent","currentPageItem","dottedLeft","dottedRight","paginationClass","itemElements","parseAsync","itemsToIndex","parseComplete","childNodes","getChildren","indexAsync","customSearch","prepare","resetList","setOptions","setColumns","setSearchString","s","tmpColumn","column","searchMethod","arguments","searchStart","searchComplete","els","getOrder","btn","predefinedOrder","has","getInSensitive","insensitive","setOrder","order","currentTarget","sortFunction","customSortFunction","multi","itemA","itemB","alphabet","caseInsensitive","sortStart","sortComplete","Templater","itemSource","clearSourceItem","getItemSource","exec","tbody","firstChild","div","source","create","v","getValueName","newItem","removeAttribute","removeChild","hasChildNodes","re","ClassList","nodeType","classList","prototype","arr","toggle","force","contains","unbind","capture","object","slice","property","pattern","Match_Location","Match_Distance","Match_Threshold","loc","charAt","match_bitapScore_","x","accuracy","proximity","abs","score_threshold","best_loc","lastIndexOf","bin_min","bin_mid","matchmask","last_rd","bin_max","d","floor","max","finish","rd","charMatch","score","nodeName","nodeValue","container","single","test","classElements","elsLen","RegExp","polyfill","collection","Function","alphabetIndexMap","alphabetIndexMapLength","isNumberCode","code","naturalCompare","b","lengthA","lengthB","aIndex","bIndex","charCodeA","charCodeAt","charCodeB","numStartA","numStartB","numEndA","numEndB","difference","component","staticRenderFns","__file","_vm","_h","$createElement","_c","_self","attrs","_v","_s","staticClass","checkAll","uncheckAll","stopQueue","isReadyForCacheDeletion","clearCache","numberOfTasks","remaining","total","numberOfLastQueuePush","_e","groups","blocked","_withStripped","sortedElements","group","displayname","_l","$event","directives","rawName","expression","domProps","_i","change","$$a","$$el","$$c","$$i","$set","count","class","errorMessages","failedFolders","headline","reversedErrorMessages","failedFolder","backgroundColor","files","numberOfFilesLeft","i18n_labelNeedSync","sortedFolders","active","i18n_labelStep1","numberOfSelectedFolders","i18n_labelStep2","i18n_hintStep2","$emit","i18n_labelButtonStep2","i18n_labelItemsStep2","isReadyForSyncFiles","i18n_labelStep3","i18n_hintStep3","i18n_labelButtonStep3","numberOfSelectedFiles","i18n_labelItemsStep3","progress","numberOfSyncableFiles","selectedFolders","isSyncFilesProcessReadyToStart","syncFiles","syncFolders","folders","formDefinition","fieldset","description","model","$$v","option","tagContent","insertImageContentTag","showImageSelectorState","thumb","staticStyle","showImageSelector","hideImageSelector","folderFilter","input","composing","filteredFolders","myFolder","loadFiles","isLoading","file","setImage","Id","_q","for","currentOption","$$selectedVal","o","_value","multiple","currentInputValue","newQuantity","newPrice","addScalePrice","_m","sortedScalePrices","scalePrice","quantity","price","deleteQuantity","refreshetags","addFiles","pendingFiles","inProgressFiles","revertedPendingFiles","pendingFile","finishedFilesContent","failedFilesContent","inProgressFile","failedFileContent","revertedFinishedFilesContent","finishedFileContent","normalizeComponent","scriptExports","functionalTemplate","injectStyles","scopeId","moduleIdentifier","shadowMode","hook","_compiled","functional","_scopeId","context","$vnode","ssrContext","__VUE_SSR_CONTEXT__","_registeredComponents","_ssrRegister","$root","$options","shadowRoot","_injectStyles","originalRender","h","existing","beforeCreate","emptyObject","freeze","isUndef","isDef","isTrue","isPrimitive","isObject","_toString","toRawType","isPlainObject","isRegExp","isValidArrayIndex","val","String","isFinite","isPromise","catch","toNumber","makeMap","expectsLowerCase","isBuiltInTag","isReservedAttribute","hasOwn","cached","cache","camelizeRE","camelize","_","c","capitalize","hyphenateRE","hyphenate","ctx","boundFn","_length","ret","to","_from","toObject","noop","no","identity","looseEqual","isObjectA","isObjectB","isArrayA","isArrayB","every","Date","getTime","keysA","keysB","looseIndexOf","called","SSR_ATTR","ASSET_TYPES","LIFECYCLE_HOOKS","config","optionMergeStrategies","silent","productionTip","devtools","performance","errorHandler","warnHandler","ignoredElements","keyCodes","isReservedTag","isReservedAttr","isUnknownElement","getTagNamespace","parsePlatformTagName","mustUseProp","async","_lifecycleHooks","unicodeRegExp","isReserved","def","enumerable","configurable","_isServer","bailRE","hasProto","inBrowser","inWeex","WXEnvironment","platform","weexPlatform","UA","navigator","userAgent","isIE","isIE9","isEdge","isIOS","isFF","match","nativeWatch","watch","supportsPassive","opts","isServerRendering","g","env","VUE_ENV","__VUE_DEVTOOLS_GLOBAL_HOOK__","isNative","Ctor","_Set","hasSymbol","Reflect","ownKeys","warn","tip","formatComponentName","generateComponentTrace","hasConsole","console","classifyRE","msg","vm","trace","includeFile","cid","_isVue","constructor","_componentTag","$parent","tree","currentRecursiveSequence","last","repeat","uid","Dep","subs","addSub","sub","removeSub","depend","addDep","notify","targetStack","pushTarget","popTarget","VNode","tag","children","componentOptions","asyncFactory","ns","fnContext","fnOptions","fnScopeId","componentInstance","raw","isStatic","isRootInsert","isComment","isCloned","isOnce","asyncMeta","isAsyncPlaceholder","prototypeAccessors","child","createEmptyVNode","createTextVNode","cloneVNode","vnode","cloned","arrayProto","arrayMethods","method","original","len","inserted","ob","__ob__","observeArray","dep","arrayKeys","getOwnPropertyNames","shouldObserve","toggleObserving","Observer","vmCount","__proto__","protoAugment","copyAugment","walk","observe","asRootData","isExtensible","defineReactive$$1","customSetter","shallow","getOwnPropertyDescriptor","getter","setter","childOb","dependArray","del","strats","mergeData","from","toVal","fromVal","mergeDataOrFn","parentVal","childVal","instanceData","defaultData","mergeHook","hooks","dedupeHooks","mergeAssets","assertObjectType","propsData","defaultStrat","key$1","methods","inject","computed","provide","validateComponentName","mergeOptions","components","checkComponents","normalizeProps","normalized","normalizeInject","dirs","def$$1","normalizeDirectives","_base","extends","mixins","mergeField","strat","resolveAsset","warnMissing","assets","camelizedId","PascalCaseId","validateProp","propOptions","prop","absent","booleanIndex","getTypeIndex","Boolean","stringIndex","_props","getType","getPropDefaultValue","prevShouldObserve","required","valid","expectedTypes","assertedType","assertType","expectedType","validator","receivedType","expectedValue","styleValue","receivedValue","isExplicable","some","elem","isBoolean","getInvalidTypeMessage","assertProp","simpleCheckRE","isSameType","Number","handleError","info","errorCaptured","globalHandleError","invokeWithErrorHandling","_handled","logError","timerFunc","initProxy","isUsingMicroTask","callbacks","pending","flushCallbacks","copies","p","MutationObserver","counter","observer","textNode","createTextNode","characterData","_resolve","allowedGlobals","warnNonPresent","warnReservedPrefix","hasProxy","Proxy","isBuiltInModifier","hasHandler","isAllowed","$data","getHandler","_renderProxy","mark","measure","seenObjects","traverse","_traverse","seen","isA","isFrozen","depId","perf","clearMarks","clearMeasures","startTag","endTag","normalizeEvent","passive","once$$1","createFnInvoker","fns","invoker","arguments$1","updateListeners","oldOn","remove$$1","createOnceHandler","old","params","mergeVNodeHook","hookKey","oldHook","wrappedHook","merged","checkProp","hash","altKey","preserve","normalizeChildren","normalizeArrayChildren","isTextNode","nestedIndex","lastIndex","_isVList","resolveInject","provideKey","_provided","provideDefault","resolveSlots","slots","slot","name$1","isWhitespace","normalizeScopedSlots","normalSlots","prevSlots","hasNormalSlots","isStable","$stable","$key","_normalized","$hasNormal","normalizeScopedSlot","key$2","proxyNormalSlot","proxy","renderList","done","renderSlot","bindObject","scopedSlotFn","$scopedSlots","$slots","resolveFilter","isKeyNotMatch","expect","actual","checkKeyCodes","eventKeyCode","builtInKeyCode","eventKeyName","builtInKeyName","mappedKeyCode","bindObjectProps","asProp","isSync","loop","camelizedKey","hyphenatedKey","renderStatic","isInFor","_staticTrees","markStatic","markOnce","markStaticNode","bindObjectListeners","ours","resolveScopedSlots","hasDynamicKeys","contentHashKey","bindDynamicKeys","baseObj","prependModifier","symbol","installRenderHelpers","_o","_n","_t","_f","_k","_b","_u","_g","_d","_p","FunctionalRenderContext","contextVm","this$1","_original","isCompiled","needNormalization","listeners","injections","scopedSlots","cloneAndMarkFunctionalResult","renderContext","clone","devtoolsMeta","mergeProps","componentVNodeHooks","hydrating","_isDestroyed","keepAlive","mountedNode","prepatch","_isComponent","_parentVnode","inlineTemplate","createComponentInstanceForVnode","activeInstance","$mount","oldVnode","parentVnode","renderChildren","isUpdatingChildComponent","newScopedSlots","oldScopedSlots","hasDynamicScopedSlot","needsForceUpdate","_renderChildren","_vnode","$attrs","$listeners","propKeys","_propKeys","oldListeners","_parentListeners","updateComponentListeners","$forceUpdate","updateChildComponent","insert","_isMounted","callHook","_inactive","activatedChildren","activateChildComponent","destroy","deactivateChildComponent","$destroy","hooksToMerge","createComponent","baseCtor","factory","errorComp","resolved","owner","currentRenderingInstance","owners","loading","loadingComp","sync","timerLoading","timerTimeout","$on","forceRender","renderCompleted","clearTimeout","ensureCtor","reason","delay","timeout","resolveAsyncComponent","createAsyncPlaceholder","resolveConstructorOptions","transformModel","keyInLowerCase","extractPropsFromVNodeData","vnodes","createFunctionalComponent","nativeOn","abstract","toMerge","_merged","mergeHook$1","installComponentHooks","f1","f2","normalizationType","alwaysNormalize","simpleNormalizeChildren","pre","applyNS","registerDeepBindings","_createElement","comp","base","getFirstComponentChild","remove$1","$off","_target","onceHandler","setActiveInstance","prevActiveInstance","isInInactiveTree","direct","_directInactive","$children","_hasHookEvent","queue","circular","waiting","flushing","currentFlushTimestamp","getNow","now","createEvent","timeStamp","flushSchedulerQueue","watcher","before","run","user","activatedQueue","updatedQueue","callActivatedHooks","_watcher","callUpdatedHooks","emit","uid$2","Watcher","expOrFn","isRenderWatcher","_watchers","deep","lazy","dirty","deps","newDeps","depIds","newDepIds","path","segments","parsePath","cleanupDeps","tmp","queueWatcher","oldValue","evaluate","teardown","_isBeingDestroyed","sharedPropertyDefinition","sourceKey","computedWatcherOptions","defineComputed","userDef","shouldCache","createComputedGetter","createGetterInvoker","_computedWatchers","createWatcher","$watch","uid$3","super","superOptions","modifiedOptions","modified","latest","sealed","sealedOptions","resolveModifiedOptions","extendOptions","_init","getComponentName","matches","pruneCache","keepAliveInstance","cachedNode","pruneCacheEntry","current","cached$$1","_uid","vnodeComponentOptions","initInternalComponent","$refs","initLifecycle","_events","initEvents","parentData","initRender","initInjections","propsOptions","isRoot","initProps","initMethods","_data","initData","watchers","isSSR","initComputed","initWatch","initState","initProvide","_name","initMixin","dataDef","propsDef","$delete","immediate","stateMixin","hookRE","$once","i$1","cbs","lowerCaseEvent","eventsMixin","_update","prevEl","prevVnode","restoreActiveInstance","__patch__","__vue__","lifecycleMixin","$nextTick","_render","ref","renderError","renderMixin","patternTypes","builtInComponents","KeepAlive","include","exclude","created","destroyed","configDef","util","defineReactive","delete","observable","use","plugin","installedPlugins","_installedPlugins","install","initUse","mixin","initMixin$1","Super","SuperId","cachedCtors","_Ctor","Sub","Comp","initProps$1","initComputed$1","initExtend","definition","initAssetRegisters","initGlobalAPI","version","acceptValue","isEnumeratedAttr","isValidContentEditableValue","isBooleanAttr","xlinkNS","isXlink","getXlinkProp","isFalsyAttrValue","mergeClassData","stringifyClass","stringified","stringifyArray","stringifyObject","namespaceMap","svg","math","isHTMLTag","isSVG","unknownElementCache","isTextInputType","nodeOps","createElementNS","namespace","createComment","referenceNode","nextSibling","setTextContent","textContent","setStyleScope","registerRef","isRemoval","refs","refInFor","emptyNode","sameVnode","typeA","typeB","sameInputType","createKeyToOldIdx","beginIdx","endIdx","updateDirectives","oldDir","dir","isCreate","isDestroy","oldDirs","normalizeDirectives$1","newDirs","dirsWithInsert","dirsWithPostpatch","oldArg","arg","callHook$1","componentUpdated","callInsert","emptyModifiers","modifiers","getRawDirName","baseModules","updateAttrs","inheritAttrs","oldAttrs","setAttr","removeAttributeNS","baseSetAttr","convertEnumeratedValue","setAttributeNS","__ieph","blocker","stopImmediatePropagation","updateClass","oldData","cls","childNode","dynamicClass","genClassForVnode","transitionClass","_transitionClasses","_prevClass","target$1","klass","createOnceHandler$1","remove$2","useMicrotaskFix","add$1","attachedTimestamp","_wrapper","ownerDocument","updateDOMListeners","normalizeEvents","svgContainer","updateDOMProps","oldProps","strCur","shouldUpdateValue","checkVal","notInFocus","activeElement","isNotInFocusAndDirty","_vModifiers","isDirtyWithModifiers","parseStyleText","cssText","propertyDelimiter","normalizeStyleData","normalizeStyleBinding","bindingStyle","emptyStyle","cssVarRE","importantRE","setProp","setProperty","normalizedName","normalize","vendorNames","capName","updateStyle","oldStaticStyle","oldStyleBinding","normalizedStyle","oldStyle","newStyle","checkChild","styleData","getStyle","whitespaceRE","addClass","removeClass","tar","resolveTransition","autoCssTransition","enterClass","enterToClass","enterActiveClass","leaveClass","leaveToClass","leaveActiveClass","hasTransition","TRANSITION","ANIMATION","transitionProp","transitionEndEvent","animationProp","animationEndEvent","ontransitionend","onwebkittransitionend","onanimationend","onwebkitanimationend","raf","requestAnimationFrame","nextFrame","addTransitionClass","transitionClasses","removeTransitionClass","whenTransitionEnds","getTransitionInfo","propCount","ended","end","onEnd","transformRE","styles","getComputedStyle","transitionDelays","transitionDurations","transitionTimeout","getTimeout","animationDelays","animationDurations","animationTimeout","hasTransform","delays","durations","toMs","enter","toggleDisplay","_leaveCb","cancelled","transition","_enterCb","appearClass","appearToClass","appearActiveClass","beforeEnter","afterEnter","enterCancelled","beforeAppear","appear","afterAppear","appearCancelled","duration","transitionNode","isAppear","startClass","activeClass","toClass","beforeEnterHook","enterHook","afterEnterHook","enterCancelledHook","explicitEnterDuration","checkDuration","expectsCSS","userWantsControl","getHookArgumentsLength","pendingNode","_pending","isValidDuration","leave","rm","beforeLeave","afterLeave","leaveCancelled","delayLeave","explicitLeaveDuration","performLeave","invokerFns","_enter","patch","backend","modules","removeNode","isUnknownElement$$1","inVPre","ignore","creatingElmInVPre","createElm","insertedVnodeQueue","parentElm","refElm","nested","ownerArray","isReactivated","initComponent","innerNode","activate","reactivateComponent","setScope","createChildren","invokeCreateHooks","pendingInsert","isPatchable","ref$$1","checkDuplicateKeys","ancestor","addVnodes","startIdx","invokeDestroyHook","removeVnodes","ch","removeAndInvokeRemoveHook","childElm","createRmCb","seenKeys","findIdxInOld","oldCh","patchVnode","removeOnly","hydrate","newCh","oldKeyToIdx","idxInOld","vnodeToMove","oldStartIdx","newStartIdx","oldEndIdx","oldStartVnode","oldEndVnode","newEndIdx","newStartVnode","newEndVnode","canMove","updateChildren","postpatch","invokeInsertHook","initial","hydrationBailed","isRenderedModule","assertNodeMatch","childrenMatch","fullInvoke","isInitialPatch","isRealElement","hasAttribute","oldElm","patchable","i$2","createPatchFunction","vmodel","directive","binding","_vOptions","setSelected","getValue","onCompositionStart","onCompositionEnd","prevOptions","curOptions","hasNoMatchingOption","actuallySetSelected","isMultiple","selectedIndex","initEvent","locateNode","platformDirectives","transition$$1","originalDisplay","__vOriginalDisplay","transitionProps","getRealChild","compOptions","extractTransitionData","placeholder","rawChild","isNotTextNode","isVShowDirective","Transition","hasParentTransition","_leaving","oldRawChild","oldChild","isSameChild","delayedLeave","moveClass","callPendingCbs","_moveCb","recordPosition","newPos","getBoundingClientRect","applyTranslation","oldPos","pos","dx","dy","top","moved","transform","WebkitTransform","transitionDuration","platformComponents","TransitionGroup","beforeMount","kept","prevChildren","rawChildren","transitionData","removed","c$1","updated","hasMove","_reflow","body","offsetHeight","propertyName","_hasMove","HTMLUnknownElement","updateComponent","mountComponent","query","__webpack_module_cache__","__webpack_require__","moduleId","__webpack_modules__","globalThis","r"],"mappings":"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","file":"backend-debug.js","sourcesContent":["'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = asyncify;\n\nvar _initialParams = require('./internal/initialParams');\n\nvar _initialParams2 = _interopRequireDefault(_initialParams);\n\nvar _setImmediate = require('./internal/setImmediate');\n\nvar _setImmediate2 = _interopRequireDefault(_setImmediate);\n\nvar _wrapAsync = require('./internal/wrapAsync');\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * Take a sync function and make it async, passing its return value to a\n * callback. This is useful for plugging sync functions into a waterfall,\n * series, or other async functions. Any arguments passed to the generated\n * function will be passed to the wrapped function (except for the final\n * callback argument). Errors thrown will be passed to the callback.\n *\n * If the function passed to `asyncify` returns a Promise, that promises's\n * resolved/rejected state will be used to call the callback, rather than simply\n * the synchronous return value.\n *\n * This also means you can asyncify ES2017 `async` functions.\n *\n * @name asyncify\n * @static\n * @memberOf module:Utils\n * @method\n * @alias wrapSync\n * @category Util\n * @param {Function} func - The synchronous function, or Promise-returning\n * function to convert to an {@link AsyncFunction}.\n * @returns {AsyncFunction} An asynchronous wrapper of the `func`. To be\n * invoked with `(args..., callback)`.\n * @example\n *\n * // passing a regular synchronous function\n * async.waterfall([\n * async.apply(fs.readFile, filename, \"utf8\"),\n * async.asyncify(JSON.parse),\n * function (data, next) {\n * // data is the result of parsing the text.\n * // If there was a parsing error, it would have been caught.\n * }\n * ], callback);\n *\n * // passing a function returning a promise\n * async.waterfall([\n * async.apply(fs.readFile, filename, \"utf8\"),\n * async.asyncify(function (contents) {\n * return db.model.create(contents);\n * }),\n * function (model, next) {\n * // `model` is the instantiated model object.\n * // If there was an error, this function would be skipped.\n * }\n * ], callback);\n *\n * // es2017 example, though `asyncify` is not needed if your JS environment\n * // supports async functions out of the box\n * var q = async.queue(async.asyncify(async function(file) {\n * var intermediateStep = await processFile(file);\n * return await somePromise(intermediateStep)\n * }));\n *\n * q.push(files);\n */\nfunction asyncify(func) {\n if ((0, _wrapAsync.isAsync)(func)) {\n return function (...args /*, callback*/) {\n const callback = args.pop();\n const promise = func.apply(this, args);\n return handlePromise(promise, callback);\n };\n }\n\n return (0, _initialParams2.default)(function (args, callback) {\n var result;\n try {\n result = func.apply(this, args);\n } catch (e) {\n return callback(e);\n }\n // if result is Promise object\n if (result && typeof result.then === 'function') {\n return handlePromise(result, callback);\n } else {\n callback(null, result);\n }\n });\n}\n\nfunction handlePromise(promise, callback) {\n return promise.then(value => {\n invokeCallback(callback, null, value);\n }, err => {\n invokeCallback(callback, err && err.message ? err : new Error(err));\n });\n}\n\nfunction invokeCallback(callback, error, value) {\n try {\n callback(error, value);\n } catch (err) {\n (0, _setImmediate2.default)(e => {\n throw e;\n }, err);\n }\n}\nmodule.exports = exports['default'];","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n// Simple doubly linked list (https://en.wikipedia.org/wiki/Doubly_linked_list) implementation\n// used for queues. This implementation assumes that the node provided by the user can be modified\n// to adjust the next and last properties. We implement only the minimal functionality\n// for queue support.\nclass DLL {\n constructor() {\n this.head = this.tail = null;\n this.length = 0;\n }\n\n removeLink(node) {\n if (node.prev) node.prev.next = node.next;else this.head = node.next;\n if (node.next) node.next.prev = node.prev;else this.tail = node.prev;\n\n node.prev = node.next = null;\n this.length -= 1;\n return node;\n }\n\n empty() {\n while (this.head) this.shift();\n return this;\n }\n\n insertAfter(node, newNode) {\n newNode.prev = node;\n newNode.next = node.next;\n if (node.next) node.next.prev = newNode;else this.tail = newNode;\n node.next = newNode;\n this.length += 1;\n }\n\n insertBefore(node, newNode) {\n newNode.prev = node.prev;\n newNode.next = node;\n if (node.prev) node.prev.next = newNode;else this.head = newNode;\n node.prev = newNode;\n this.length += 1;\n }\n\n unshift(node) {\n if (this.head) this.insertBefore(this.head, node);else setInitial(this, node);\n }\n\n push(node) {\n if (this.tail) this.insertAfter(this.tail, node);else setInitial(this, node);\n }\n\n shift() {\n return this.head && this.removeLink(this.head);\n }\n\n pop() {\n return this.tail && this.removeLink(this.tail);\n }\n\n toArray() {\n return [...this];\n }\n\n *[Symbol.iterator]() {\n var cur = this.head;\n while (cur) {\n yield cur.data;\n cur = cur.next;\n }\n }\n\n remove(testFn) {\n var curr = this.head;\n while (curr) {\n var { next } = curr;\n if (testFn(curr)) {\n this.removeLink(curr);\n }\n curr = next;\n }\n return this;\n }\n}\n\nexports.default = DLL;\nfunction setInitial(dll, node) {\n dll.length = 1;\n dll.head = dll.tail = node;\n}\nmodule.exports = exports[\"default\"];","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nexports.default = function (fn) {\n return function (...args /*, callback*/) {\n var callback = args.pop();\n return fn.call(this, args, callback);\n };\n};\n\nmodule.exports = exports[\"default\"];","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = onlyOnce;\nfunction onlyOnce(fn) {\n return function (...args) {\n if (fn === null) throw new Error(\"Callback was already called.\");\n var callFn = fn;\n fn = null;\n callFn.apply(this, args);\n };\n}\nmodule.exports = exports[\"default\"];","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = queue;\n\nvar _onlyOnce = require('./onlyOnce');\n\nvar _onlyOnce2 = _interopRequireDefault(_onlyOnce);\n\nvar _setImmediate = require('./setImmediate');\n\nvar _setImmediate2 = _interopRequireDefault(_setImmediate);\n\nvar _DoublyLinkedList = require('./DoublyLinkedList');\n\nvar _DoublyLinkedList2 = _interopRequireDefault(_DoublyLinkedList);\n\nvar _wrapAsync = require('./wrapAsync');\n\nvar _wrapAsync2 = _interopRequireDefault(_wrapAsync);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction queue(worker, concurrency, payload) {\n if (concurrency == null) {\n concurrency = 1;\n } else if (concurrency === 0) {\n throw new RangeError('Concurrency must not be zero');\n }\n\n var _worker = (0, _wrapAsync2.default)(worker);\n var numRunning = 0;\n var workersList = [];\n const events = {\n error: [],\n drain: [],\n saturated: [],\n unsaturated: [],\n empty: []\n };\n\n function on(event, handler) {\n events[event].push(handler);\n }\n\n function once(event, handler) {\n const handleAndRemove = (...args) => {\n off(event, handleAndRemove);\n handler(...args);\n };\n events[event].push(handleAndRemove);\n }\n\n function off(event, handler) {\n if (!event) return Object.keys(events).forEach(ev => events[ev] = []);\n if (!handler) return events[event] = [];\n events[event] = events[event].filter(ev => ev !== handler);\n }\n\n function trigger(event, ...args) {\n events[event].forEach(handler => handler(...args));\n }\n\n var processingScheduled = false;\n function _insert(data, insertAtFront, rejectOnError, callback) {\n if (callback != null && typeof callback !== 'function') {\n throw new Error('task callback must be a function');\n }\n q.started = true;\n\n var res, rej;\n function promiseCallback(err, ...args) {\n // we don't care about the error, let the global error handler\n // deal with it\n if (err) return rejectOnError ? rej(err) : res();\n if (args.length <= 1) return res(args[0]);\n res(args);\n }\n\n var item = {\n data,\n callback: rejectOnError ? promiseCallback : callback || promiseCallback\n };\n\n if (insertAtFront) {\n q._tasks.unshift(item);\n } else {\n q._tasks.push(item);\n }\n\n if (!processingScheduled) {\n processingScheduled = true;\n (0, _setImmediate2.default)(() => {\n processingScheduled = false;\n q.process();\n });\n }\n\n if (rejectOnError || !callback) {\n return new Promise((resolve, reject) => {\n res = resolve;\n rej = reject;\n });\n }\n }\n\n function _createCB(tasks) {\n return function (err, ...args) {\n numRunning -= 1;\n\n for (var i = 0, l = tasks.length; i < l; i++) {\n var task = tasks[i];\n\n var index = workersList.indexOf(task);\n if (index === 0) {\n workersList.shift();\n } else if (index > 0) {\n workersList.splice(index, 1);\n }\n\n task.callback(err, ...args);\n\n if (err != null) {\n trigger('error', err, task.data);\n }\n }\n\n if (numRunning <= q.concurrency - q.buffer) {\n trigger('unsaturated');\n }\n\n if (q.idle()) {\n trigger('drain');\n }\n q.process();\n };\n }\n\n function _maybeDrain(data) {\n if (data.length === 0 && q.idle()) {\n // call drain immediately if there are no tasks\n (0, _setImmediate2.default)(() => trigger('drain'));\n return true;\n }\n return false;\n }\n\n const eventMethod = name => handler => {\n if (!handler) {\n return new Promise((resolve, reject) => {\n once(name, (err, data) => {\n if (err) return reject(err);\n resolve(data);\n });\n });\n }\n off(name);\n on(name, handler);\n };\n\n var isProcessing = false;\n var q = {\n _tasks: new _DoublyLinkedList2.default(),\n *[Symbol.iterator]() {\n yield* q._tasks[Symbol.iterator]();\n },\n concurrency,\n payload,\n buffer: concurrency / 4,\n started: false,\n paused: false,\n push(data, callback) {\n if (Array.isArray(data)) {\n if (_maybeDrain(data)) return;\n return data.map(datum => _insert(datum, false, false, callback));\n }\n return _insert(data, false, false, callback);\n },\n pushAsync(data, callback) {\n if (Array.isArray(data)) {\n if (_maybeDrain(data)) return;\n return data.map(datum => _insert(datum, false, true, callback));\n }\n return _insert(data, false, true, callback);\n },\n kill() {\n off();\n q._tasks.empty();\n },\n unshift(data, callback) {\n if (Array.isArray(data)) {\n if (_maybeDrain(data)) return;\n return data.map(datum => _insert(datum, true, false, callback));\n }\n return _insert(data, true, false, callback);\n },\n unshiftAsync(data, callback) {\n if (Array.isArray(data)) {\n if (_maybeDrain(data)) return;\n return data.map(datum => _insert(datum, true, true, callback));\n }\n return _insert(data, true, true, callback);\n },\n remove(testFn) {\n q._tasks.remove(testFn);\n },\n process() {\n // Avoid trying to start too many processing operations. This can occur\n // when callbacks resolve synchronously (#1267).\n if (isProcessing) {\n return;\n }\n isProcessing = true;\n while (!q.paused && numRunning < q.concurrency && q._tasks.length) {\n var tasks = [],\n data = [];\n var l = q._tasks.length;\n if (q.payload) l = Math.min(l, q.payload);\n for (var i = 0; i < l; i++) {\n var node = q._tasks.shift();\n tasks.push(node);\n workersList.push(node);\n data.push(node.data);\n }\n\n numRunning += 1;\n\n if (q._tasks.length === 0) {\n trigger('empty');\n }\n\n if (numRunning === q.concurrency) {\n trigger('saturated');\n }\n\n var cb = (0, _onlyOnce2.default)(_createCB(tasks));\n _worker(data, cb);\n }\n isProcessing = false;\n },\n length() {\n return q._tasks.length;\n },\n running() {\n return numRunning;\n },\n workersList() {\n return workersList;\n },\n idle() {\n return q._tasks.length + numRunning === 0;\n },\n pause() {\n q.paused = true;\n },\n resume() {\n if (q.paused === false) {\n return;\n }\n q.paused = false;\n (0, _setImmediate2.default)(q.process);\n }\n };\n // define these as fixed properties, so people get useful errors when updating\n Object.defineProperties(q, {\n saturated: {\n writable: false,\n value: eventMethod('saturated')\n },\n unsaturated: {\n writable: false,\n value: eventMethod('unsaturated')\n },\n empty: {\n writable: false,\n value: eventMethod('empty')\n },\n drain: {\n writable: false,\n value: eventMethod('drain')\n },\n error: {\n writable: false,\n value: eventMethod('error')\n }\n });\n return q;\n}\nmodule.exports = exports['default'];","'use strict';\n/* istanbul ignore file */\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.fallback = fallback;\nexports.wrap = wrap;\nvar hasSetImmediate = exports.hasSetImmediate = typeof setImmediate === 'function' && setImmediate;\nvar hasNextTick = exports.hasNextTick = typeof process === 'object' && typeof process.nextTick === 'function';\n\nfunction fallback(fn) {\n setTimeout(fn, 0);\n}\n\nfunction wrap(defer) {\n return (fn, ...args) => defer(() => fn(...args));\n}\n\nvar _defer;\n\nif (hasSetImmediate) {\n _defer = setImmediate;\n} else if (hasNextTick) {\n _defer = process.nextTick;\n} else {\n _defer = fallback;\n}\n\nexports.default = wrap(_defer);","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.isAsyncIterable = exports.isAsyncGenerator = exports.isAsync = undefined;\n\nvar _asyncify = require('../asyncify');\n\nvar _asyncify2 = _interopRequireDefault(_asyncify);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction isAsync(fn) {\n return fn[Symbol.toStringTag] === 'AsyncFunction';\n}\n\nfunction isAsyncGenerator(fn) {\n return fn[Symbol.toStringTag] === 'AsyncGenerator';\n}\n\nfunction isAsyncIterable(obj) {\n return typeof obj[Symbol.asyncIterator] === 'function';\n}\n\nfunction wrapAsync(asyncFn) {\n if (typeof asyncFn !== 'function') throw new Error('expected a function');\n return isAsync(asyncFn) ? (0, _asyncify2.default)(asyncFn) : asyncFn;\n}\n\nexports.default = wrapAsync;\nexports.isAsync = isAsync;\nexports.isAsyncGenerator = isAsyncGenerator;\nexports.isAsyncIterable = isAsyncIterable;","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nexports.default = function (worker, concurrency) {\n var _worker = (0, _wrapAsync2.default)(worker);\n return (0, _queue2.default)((items, cb) => {\n _worker(items[0], cb);\n }, concurrency, 1);\n};\n\nvar _queue = require('./internal/queue');\n\nvar _queue2 = _interopRequireDefault(_queue);\n\nvar _wrapAsync = require('./internal/wrapAsync');\n\nvar _wrapAsync2 = _interopRequireDefault(_wrapAsync);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nmodule.exports = exports['default'];\n\n/**\n * A queue of tasks for the worker function to complete.\n * @typedef {Iterable} QueueObject\n * @memberOf module:ControlFlow\n * @property {Function} length - a function returning the number of items\n * waiting to be processed. Invoke with `queue.length()`.\n * @property {boolean} started - a boolean indicating whether or not any\n * items have been pushed and processed by the queue.\n * @property {Function} running - a function returning the number of items\n * currently being processed. Invoke with `queue.running()`.\n * @property {Function} workersList - a function returning the array of items\n * currently being processed. Invoke with `queue.workersList()`.\n * @property {Function} idle - a function returning false if there are items\n * waiting or being processed, or true if not. Invoke with `queue.idle()`.\n * @property {number} concurrency - an integer for determining how many `worker`\n * functions should be run in parallel. This property can be changed after a\n * `queue` is created to alter the concurrency on-the-fly.\n * @property {number} payload - an integer that specifies how many items are\n * passed to the worker function at a time. only applies if this is a\n * [cargo]{@link module:ControlFlow.cargo} object\n * @property {AsyncFunction} push - add a new task to the `queue`. Calls `callback`\n * once the `worker` has finished processing the task. Instead of a single task,\n * a `tasks` array can be submitted. The respective callback is used for every\n * task in the list. Invoke with `queue.push(task, [callback])`,\n * @property {AsyncFunction} unshift - add a new task to the front of the `queue`.\n * Invoke with `queue.unshift(task, [callback])`.\n * @property {AsyncFunction} pushAsync - the same as `q.push`, except this returns\n * a promise that rejects if an error occurs.\n * @property {AsyncFunction} unshirtAsync - the same as `q.unshift`, except this returns\n * a promise that rejects if an error occurs.\n * @property {Function} remove - remove items from the queue that match a test\n * function. The test function will be passed an object with a `data` property,\n * and a `priority` property, if this is a\n * [priorityQueue]{@link module:ControlFlow.priorityQueue} object.\n * Invoked with `queue.remove(testFn)`, where `testFn` is of the form\n * `function ({data, priority}) {}` and returns a Boolean.\n * @property {Function} saturated - a function that sets a callback that is\n * called when the number of running workers hits the `concurrency` limit, and\n * further tasks will be queued. If the callback is omitted, `q.saturated()`\n * returns a promise for the next occurrence.\n * @property {Function} unsaturated - a function that sets a callback that is\n * called when the number of running workers is less than the `concurrency` &\n * `buffer` limits, and further tasks will not be queued. If the callback is\n * omitted, `q.unsaturated()` returns a promise for the next occurrence.\n * @property {number} buffer - A minimum threshold buffer in order to say that\n * the `queue` is `unsaturated`.\n * @property {Function} empty - a function that sets a callback that is called\n * when the last item from the `queue` is given to a `worker`. If the callback\n * is omitted, `q.empty()` returns a promise for the next occurrence.\n * @property {Function} drain - a function that sets a callback that is called\n * when the last item from the `queue` has returned from the `worker`. If the\n * callback is omitted, `q.drain()` returns a promise for the next occurrence.\n * @property {Function} error - a function that sets a callback that is called\n * when a task errors. Has the signature `function(error, task)`. If the\n * callback is omitted, `error()` returns a promise that rejects on the next\n * error.\n * @property {boolean} paused - a boolean for determining whether the queue is\n * in a paused state.\n * @property {Function} pause - a function that pauses the processing of tasks\n * until `resume()` is called. Invoke with `queue.pause()`.\n * @property {Function} resume - a function that resumes the processing of\n * queued tasks when the queue is paused. Invoke with `queue.resume()`.\n * @property {Function} kill - a function that removes the `drain` callback and\n * empties remaining tasks from the queue forcing it to go idle. No more tasks\n * should be pushed to the queue after calling this function. Invoke with `queue.kill()`.\n *\n * @example\n * const q = aync.queue(worker, 2)\n * q.push(item1)\n * q.push(item2)\n * q.push(item3)\n * // queues are iterable, spread into an array to inspect\n * const items = [...q] // [item1, item2, item3]\n * // or use for of\n * for (let item of q) {\n * console.log(item)\n * }\n *\n * q.drain(() => {\n * console.log('all done')\n * })\n * // or\n * await q.drain()\n */\n\n/**\n * Creates a `queue` object with the specified `concurrency`. Tasks added to the\n * `queue` are processed in parallel (up to the `concurrency` limit). If all\n * `worker`s are in progress, the task is queued until one becomes available.\n * Once a `worker` completes a `task`, that `task`'s callback is called.\n *\n * @name queue\n * @static\n * @memberOf module:ControlFlow\n * @method\n * @category Control Flow\n * @param {AsyncFunction} worker - An async function for processing a queued task.\n * If you want to handle errors from an individual task, pass a callback to\n * `q.push()`. Invoked with (task, callback).\n * @param {number} [concurrency=1] - An `integer` for determining how many\n * `worker` functions should be run in parallel. If omitted, the concurrency\n * defaults to `1`. If the concurrency is `0`, an error is thrown.\n * @returns {module:ControlFlow.QueueObject} A queue object to manage the tasks. Callbacks can be\n * attached as certain properties to listen for specific events during the\n * lifecycle of the queue.\n * @example\n *\n * // create a queue object with concurrency 2\n * var q = async.queue(function(task, callback) {\n * console.log('hello ' + task.name);\n * callback();\n * }, 2);\n *\n * // assign a callback\n * q.drain(function() {\n * console.log('all items have been processed');\n * });\n * // or await the end\n * await q.drain()\n *\n * // assign an error callback\n * q.error(function(err, task) {\n * console.error('task experienced an error');\n * });\n *\n * // add some items to the queue\n * q.push({name: 'foo'}, function(err) {\n * console.log('finished processing foo');\n * });\n * // callback is optional\n * q.push({name: 'bar'});\n *\n * // add some items to the queue (batch-wise)\n * q.push([{name: 'baz'},{name: 'bay'},{name: 'bax'}], function(err) {\n * console.log('finished processing item');\n * });\n *\n * // add some items to the front of the queue\n * q.unshift({name: 'bar'}, function (err) {\n * console.log('finished processing bar');\n * });\n */","const template = document.createElement('template');\r\ntemplate.innerHTML = `\r\n <style>\r\n .list {\r\n font-family:sans-serif;\r\n margin:0;\r\n padding:20px 0 0;\r\n }\r\n \r\n table {\r\n width: 100%;\r\n }\r\n \r\n tr:nth-child(even) {background: #EEE}\r\n tr:nth-child(odd) {}\r\n \r\n img {\r\n max-width: 100%;\r\n }\r\n input {\r\n border:solid 1px #ccc;\r\n border-radius: 5px;\r\n padding:7px 14px;\r\n margin-bottom:10px\r\n }\r\n input:focus {\r\n outline:none;\r\n border-color:#aaa;\r\n }\r\n .sort {\r\n padding:8px 30px;\r\n border-radius: 6px;\r\n border:none;\r\n display:inline-block;\r\n color:#fff;\r\n text-decoration: none;\r\n background-color: #28a8e0;\r\n }\r\n .sort:hover {\r\n text-decoration: none;\r\n background-color:#1b8aba;\r\n }\r\n .sort:focus {\r\n outline:none;\r\n }\r\n .sort:after {\r\n width: 0;\r\n height: 0;\r\n border-left: 5px solid transparent;\r\n border-right: 5px solid transparent;\r\n border-bottom: 5px solid transparent;\r\n content:\"\";\r\n position: relative;\r\n top:-10px;\r\n right:-5px;\r\n }\r\n .sort.asc:after {\r\n width: 0;\r\n height: 0;\r\n border-left: 5px solid transparent;\r\n border-right: 5px solid transparent;\r\n border-top: 5px solid #fff;\r\n content:\"\";\r\n position: relative;\r\n top:13px;\r\n right:-5px;\r\n }\r\n .sort.desc:after {\r\n width: 0;\r\n height: 0;\r\n border-left: 5px solid transparent;\r\n border-right: 5px solid transparent;\r\n border-bottom: 5px solid #fff;\r\n content:\"\";\r\n position: relative;\r\n top:-10px;\r\n right:-5px;\r\n }\r\n </style>\r\n \r\n <div id=\"albumlist\">\r\n \r\n <input class=\"search\" />\r\n <span class=\"sort\" data-sort=\"title\">Sort by title</span>\r\n <span class=\"sort\" data-sort=\"mediaItemsCount\">Sort by count</span>\r\n \r\n <table class=\"list\">\r\n </table>\r\n \r\n </div>\r\n\r\n <div id=\"loading\" class=\"well\">\r\n <p id=\"loading_label\"></p>\r\n </div>\r\n <div id=\"empty\" class=\"well\" style=\"display:none\"></div>\r\n \r\n`;\r\n\r\n\r\nimport List from 'list.js';\r\n\r\nclass Albumselector extends HTMLElement {\r\n constructor() {\r\n super();\r\n this._shadowRoot = this.attachShadow({mode: 'open'});\r\n this._shadowRoot.appendChild(template.content.cloneNode(true));\r\n this.$loadingLabel = this._shadowRoot.querySelector('#loading_label');\r\n this.$loading = this._shadowRoot.querySelector('#loading');\r\n this.$empty = this._shadowRoot.querySelector('#empty');\r\n this.$albumlist = this._shadowRoot.querySelector('#albumlist');\r\n\r\n this['accountid'] = 1;\r\n\r\n //the url for the iframe can't be changed dynamically, so we need to grab this from the parent.\r\n let element = parent.document.getElementById('foldertype_4_account');\r\n if (element) {\r\n this['accountid'] = element.value;\r\n }\r\n\r\n }\r\n\r\n getData() {\r\n\r\n var xhr = new XMLHttpRequest();\r\n\r\n xhr.onreadystatechange = () => {\r\n if (xhr.readyState === 4) {\r\n let data = JSON.parse(xhr.response);\r\n this.createTable(data.albums);\r\n }\r\n };\r\n\r\n xhr.open('GET', this.url +'&id=' + this.accountid, true);\r\n xhr.send('');\r\n }\r\n\r\n createTable(albums) {\r\n\r\n\r\n var options = {\r\n page: 5000,\r\n valueNames: [\r\n {name: 'previewThumbnail', attr: 'src'},\r\n {name: 'encodedTitle', attr: 'data-title'},\r\n {name: 'albumid', attr: 'data-albumid'},\r\n 'title',\r\n 'mediaItemsCount',\r\n {name: 'link', attr: 'href'}\r\n ],\r\n item: '<tr>' +\r\n '<td><button class=\"encodedTitle albumid\" data-title=\"\" data-albumid=\"\">Select</button></td>' +\r\n '<td><img class=\"previewThumbnail\" src=\"\"></td>' +\r\n '<td><span class=\"title\"></span></td>'+\r\n '<td><span class=\"mediaItemsCount\"></span></td>'+\r\n '<td><a class=\"link\" href=\"\" target=\"_blank\">Link</a></td>'+\r\n '</tr>'\r\n };\r\n\r\n let values = [];\r\n\r\n if (!!albums) {\r\n for (let i = 0; i < albums.length; i++) {\r\n let album = albums[i];\r\n\r\n values.push(\r\n {\r\n previewThumbnail: album.coverPhotoBaseUrl + '=w200-h200',\r\n encodedTitle: encodeURI(album.title),\r\n title: album.title,\r\n mediaItemsCount: album.mediaItemsCount,\r\n albumid: album.id,\r\n link: album.productUrl\r\n }\r\n );\r\n }\r\n }\r\n\r\n let myList = new List(this.$albumlist, options);\r\n\r\n myList.add(values, () => {\r\n let buttons = this._shadowRoot.querySelectorAll('button.albumid');\r\n for(let i=0; i<buttons.length;i++) {\r\n let button = buttons[i];\r\n button.addEventListener('click', (e)=> {\r\n e.preventDefault();\r\n e.stopPropagation();\r\n\r\n let data = {\r\n albumid: button.getAttribute(\"data-albumid\"),\r\n title: decodeURI(button.getAttribute(\"data-title\"))\r\n };\r\n\r\n parent.postMessage('eventgalleryGooglePhotosAlbum_' + JSON.stringify(data), '*');\r\n })\r\n }\r\n });\r\n\r\n this.$loading.style.display = 'none';\r\n\r\n if (myList.items.length === 0 ) {\r\n this.$empty.style.display = 'block';\r\n }\r\n }\r\n\r\n static get observedAttributes() {\r\n return ['label', 'url', 'label_empty'];\r\n }\r\n\r\n attributeChangedCallback(name, oldVal, newVal) {\r\n this[name] = newVal;\r\n }\r\n\r\n connectedCallback() {\r\n this.$loadingLabel.innerHTML = this.label;\r\n this.$empty.innerHTML = this.label_empty;\r\n this.getData();\r\n }\r\n\r\n}\r\n\r\n\r\nwindow.customElements.define('album-selector', Albumselector);","(function(Eventgallery){\r\n\r\n document.addEventListener('DOMContentLoaded', () =>{\r\n\r\n let googlePhotosProcessor = new Eventgallery.GooglePhotosProcessor();\r\n googlePhotosProcessor.processImages();\r\n\r\n });\r\n\r\n})(Eventgallery);\r\n","(function(){\r\n \"use strict\";\r\n\r\n /**\r\n * process selector input\r\n */\r\n window.addEventListener('message', function(e) {\r\n if (!e.data) return;\r\n\r\n let dataStr = e.data;\r\n\r\n if (typeof dataStr !== 'string') {\r\n return;\r\n }\r\n if (dataStr.startsWith('eventgalleryGooglePhotosAlbum_')) {\r\n var data = JSON.parse(dataStr.replace('eventgalleryGooglePhotosAlbum_',''));\r\n\r\n let albumField = document.getElementById('foldertype-4-album')\r\n albumField.value = data.albumid;\r\n\r\n let titleField = document.getElementById('foldertype-4-title');\r\n titleField.value = data.title;\r\n\r\n albumField.onchange();\r\n\r\n document.querySelector('#google-photos-album-selector-modal .modal-header button.close').click();\r\n }\r\n });\r\n\r\n document.addEventListener('DOMContentLoaded', () =>{\r\n\r\n let button = document.querySelector('.google-photos-api-oauth-trigger-button');\r\n if (button) {\r\n button.addEventListener('click', function (e) {\r\n e.preventDefault();\r\n var id = e.target.getAttribute('data-id');\r\n\r\n var oauthWindow = window.open(\"index.php?option=com_eventgallery&view=googlephotos&layout=getauthtoken&tmpl=component&id=\" + id, \"_blank\", \"width=700,height=400\");\r\n if (!oauthWindow || oauthWindow.closed || typeof oauthWindow.closed === 'undefined') {\r\n alert('Failed');\r\n }\r\n });\r\n }\r\n\r\n });\r\n\r\n})();\r\n","import {serializeForm} from \"../../common/js/Helpers\";\r\n\r\n(function(){\r\n \"use strict\";\r\n\r\n let fireDomLoadEvent = function() {\r\n window.document.dispatchEvent(new Event(\"eventgallery.localizableContentLoaded\", {\r\n bubbles: true,\r\n cancelable: true\r\n }));\r\n };\r\n\r\n document.addEventListener('DOMContentLoaded', () =>{\r\n assignClickEvents();\r\n });\r\n\r\n let assignClickEvents = function() {\r\n assignClickEvent('.openInlineForm', openInlineForm);\r\n assignClickEvent('.saveInlineForm', saveInlineForm);\r\n assignClickEvent('.closeInlineForm', closeInlineForm);\r\n };\r\n\r\n let assignClickEvent = function(querySelector, callback) {\r\n let elements = document.querySelectorAll(querySelector);\r\n for(let i=0; i<elements.length; i++) {\r\n let element = elements[i];\r\n element.removeEventListener('click', callback);\r\n element.addEventListener('click', callback);\r\n }\r\n };\r\n\r\n let openInlineForm = function(e) {\r\n e.preventDefault();\r\n let currentContainer = e.target.closest('div[data-id]');\r\n\r\n currentContainer.innerHTML='Loading...';\r\n\r\n let xhttp = new XMLHttpRequest();\r\n xhttp.onreadystatechange = function() {\r\n if (this.readyState === 4 && this.status === 200) {\r\n currentContainer.innerHTML = this.responseText;\r\n fireDomLoadEvent();\r\n assignClickEvents();\r\n }\r\n };\r\n xhttp.open(\"GET\", currentContainer.getAttribute('data-editlink'), true);\r\n xhttp.send();\r\n };\r\n\r\n let saveInlineForm = function(e) {\r\n e.preventDefault();\r\n\r\n let id = e.target.getAttribute('data-id');\r\n let form = e.target.closest('div[data-action]');\r\n let currentContainer = document.querySelector('div[data-id=\"' + id + '\"]');\r\n let url = form.getAttribute('data-action');\r\n form.querySelector('input[name=\"task\"]').value = e.target.getAttribute('data-task');\r\n\r\n currentContainer.innerHTML = 'Loading.. ';\r\n\r\n let xhttp = new XMLHttpRequest();\r\n xhttp.onreadystatechange = function() {\r\n if (this.readyState === 4 && this.status === 200) {\r\n currentContainer.innerHTML = this.responseText;\r\n fireDomLoadEvent();\r\n assignClickEvents();\r\n }\r\n };\r\n\r\n xhttp.open(\"POST\", url, true);\r\n xhttp.setRequestHeader(\"Content-Type\", \"application/x-www-form-urlencoded\");\r\n xhttp.send(serializeForm(form));\r\n };\r\n\r\n let closeInlineForm = function(e) {\r\n e.preventDefault();\r\n let id = e.target.getAttribute('data-id');\r\n let currentContainer = document.querySelector('div[data-id=\"' + id + '\"]');\r\n let url = e.target.getAttribute('data-href');\r\n\r\n currentContainer.innerHTML = 'Loading.. ';\r\n\r\n let xhttp = new XMLHttpRequest();\r\n xhttp.onreadystatechange = function() {\r\n if (this.readyState === 4 && this.status === 200) {\r\n currentContainer.innerHTML = this.responseText;\r\n assignClickEvents();\r\n }\r\n };\r\n\r\n xhttp.open(\"GET\", url, true);\r\n xhttp.send();\r\n };\r\n\r\n})();","(function(){\r\n \"use strict\";\r\n\r\n document.addEventListener(\"DOMContentLoaded\", (event) => {\r\n window.document.dispatchEvent(new Event(\"eventgallery.localizableContentLoaded\", {\r\n bubbles: true,\r\n cancelable: true\r\n }));\r\n }, {once: true});\r\n\r\n /**\r\n * the event eventgallery.localizableContentLoaded is fired and the editor will start\r\n * initializing.\r\n */\r\n document.addEventListener(\"eventgallery.localizableContentLoaded\", (event) => {\r\n\r\n let elements = document.querySelectorAll('input[data-localizabletext]');\r\n\r\n for (let i=0; i<elements.length; i++) {\r\n let element = elements[i];\r\n\r\n if (element.getAttribute('data-localizedtext-enabled')) {\r\n continue;\r\n }\r\n element.setAttribute('data-localizedtext-enabled', true);\r\n\r\n let container = element.closest(\".localizabletext\");\r\n let inputFields = container.getElementsByClassName('lc_' + element.id);\r\n\r\n for (let i=0; i<inputFields.length; i++) {\r\n inputFields[i].addEventListener('blur', () => collectData(element));\r\n }\r\n }\r\n });\r\n\r\n\r\n let collectData = function (element) {\r\n let data = {};\r\n let container = element.closest(\".localizabletext\");\r\n let inputFields = container.getElementsByClassName('lc_' + element.id);\r\n\r\n for (let i=0; i<inputFields.length; i++) {\r\n let field = inputFields[i];\r\n let value = field.value;\r\n let languageTag = field.getAttribute(\"data-tag\");\r\n\r\n if (value.trim().length > 0) {\r\n data[languageTag] = value;\r\n }\r\n }\r\n\r\n let jsonData = JSON.stringify(data);\r\n if (jsonData.length < 3) {\r\n jsonData = \"\";\r\n }\r\n\r\n element.value = jsonData;\r\n }\r\n\r\n})();","import Vue from 'vue';\r\nimport Cacheclear from './Cacheclear.vue';\r\nimport {mapLocalizationData} from '../../../common/vue/helper/LocalizationMapper'\r\n\r\ndocument.addEventListener('DOMContentLoaded', () =>{\r\n let rootId = 'cacheclear';\r\n\r\n if (document.getElementById(rootId)) {\r\n\r\n new Vue({\r\n el: '#' + rootId,\r\n mounted: function() {\r\n this.id = this.$el.getAttribute('data-id');\r\n },\r\n render: function (createElement) {\r\n return createElement(Cacheclear, {\r\n props: {\r\n cacheClearUrl: this.$el.getAttribute('data-cache-clear-url'),\r\n elementsJson: decodeURI(this.$el.getAttribute('data-elements-json')),\r\n groupsJson: decodeURI(this.$el.getAttribute('data-groups-json')),\r\n csrfToken: this.$el.getAttribute('data-csrf-token'),\r\n i18n: mapLocalizationData(this.$el),\r\n },\r\n })\r\n }\r\n });\r\n }\r\n\r\n});\r\n","import Vue from 'vue';\r\nimport Filesync from './Filesync.vue';\r\nimport {mapLocalizationData} from '../../../common/vue/helper/LocalizationMapper'\r\n\r\ndocument.addEventListener('DOMContentLoaded', () =>{\r\n let rootId = 'filesync';\r\n\r\n if (document.getElementById(rootId)) {\r\n new Vue({\r\n el: '#' + rootId,\r\n mounted: function() {\r\n this.id = this.$el.getAttribute('data-id');\r\n },\r\n render: function (createElement) {\r\n return createElement(Filesync, {\r\n props: {\r\n loadFoldersUrl: this.$el.getAttribute('data-load-folders-url'),\r\n fileSyncUrl: this.$el.getAttribute('data-file-sync-url'),\r\n folderSyncUrl: this.$el.getAttribute('data-folder-sync-url'),\r\n csrfToken: this.$el.getAttribute('data-csrf-token'),\r\n fileBatchSize: parseInt(this.$el.getAttribute('data-file-batch-size')),\r\n maxParallelRequests: 4,\r\n i18n: mapLocalizationData(this.$el),\r\n },\r\n })\r\n }\r\n });\r\n }\r\n\r\n});\r\n","import Vue from 'vue';\r\nimport {mapLocalizationData} from '../../../common/vue/helper/LocalizationMapper'\r\nimport ImageContentPluginForm from \"./ImageContentPluginForm.vue\";\r\n\r\ndocument.addEventListener('DOMContentLoaded', () =>{\r\n let rootId = 'imagecontentpluginform';\r\n\r\n if (document.getElementById(rootId)) {\r\n new Vue({\r\n el: '#' + rootId,\r\n mounted: function() {\r\n this.id = this.$el.getAttribute('data-id');\r\n },\r\n render: function (createElement) {\r\n return createElement(ImageContentPluginForm, {\r\n props: {\r\n editorName: this.$el.getAttribute('data-editor-name'),\r\n loadFoldersUrl: this.$el.getAttribute('data-load-folders-url'),\r\n loadFilesUrl: this.$el.getAttribute('data-load-files-url'),\r\n formId: this.$el.getAttribute('data-form-id'),\r\n formDefinitionJson: this.$el.getAttribute('data-form-definition-json'),\r\n csrfToken: this.$el.getAttribute('data-csrf-token'),\r\n i18n: mapLocalizationData(this.$el),\r\n },\r\n })\r\n }\r\n });\r\n }\r\n\r\n});\r\n","import Vue from 'vue';\r\nimport {mapLocalizationData} from '../../../common/vue/helper/LocalizationMapper'\r\nimport ImageContentPluginForm from \"./Scalepriceeditor.vue\";\r\n\r\ndocument.addEventListener('DOMContentLoaded', () =>{\r\n let rootSelector = '.scale-price-editor';\r\n\r\n let nodes = document.querySelectorAll(rootSelector);\r\n\r\n for (let i=0; i<nodes.length;i++) {\r\n let node = nodes[i];\r\n new Vue({\r\n el: node,\r\n mounted: function() {\r\n this.id = this.$el.getAttribute('data-id');\r\n },\r\n render: function (createElement) {\r\n return createElement(ImageContentPluginForm, {\r\n props: {\r\n inputName: this.$el.getAttribute('name'),\r\n inputId: this.$el.getAttribute('id'),\r\n inputValue: this.$el.getAttribute('value'),\r\n i18n: mapLocalizationData(this.$el),\r\n },\r\n })\r\n }\r\n });\r\n }\r\n\r\n\r\n\r\n\r\n});\r\n","import Vue from 'vue';\r\nimport Thumbnailcreator from \"./Thumbnailcreator.vue\";\r\nimport {mapLocalizationData} from \"../../../common/vue/helper/LocalizationMapper\";\r\n\r\ndocument.addEventListener('DOMContentLoaded', () =>{\r\n let rootId = 'thumbnailcreator';\r\n if (document.getElementById(rootId)) {\r\n new Vue({\r\n el: '#' + rootId,\r\n mounted: function() {\r\n this.id = this.$el.getAttribute('data-id');\r\n },\r\n render: function (createElement) {\r\n return createElement(Thumbnailcreator, {\r\n props: {\r\n loadFoldersUrl: this.$el.getAttribute('data-load-folders-url'),\r\n fileSyncUrl: this.$el.getAttribute('data-file-sync-url'),\r\n folderSyncUrl: this.$el.getAttribute('data-folder-sync-url'),\r\n csrfToken: this.$el.getAttribute('data-csrf-token'),\r\n fileBatchSize: parseInt(this.$el.getAttribute('data-file-batch-size')),\r\n maxParallelRequests: 4,\r\n i18n: mapLocalizationData(this.$el)\r\n }\r\n })\r\n }\r\n });\r\n }\r\n\r\n});\r\n","import Vue from 'vue';\r\nimport Uploader from './Uploader.vue';\r\nrequire('./_Uploader.less');\r\n\r\ndocument.addEventListener('DOMContentLoaded', () =>{\r\n let rootId = 'uploader';\r\n if (document.getElementById(rootId)) {\r\n new Vue({\r\n el: '#' + rootId,\r\n mounted: function() {\r\n this.id = this.$el.getAttribute('data-id');\r\n },\r\n render: function (createElement) {\r\n return createElement(Uploader, {\r\n props: {\r\n maxFileSize: this.$el.getAttribute('data-max-file-size'),\r\n uploadUrl: this.$el.getAttribute('data-upload-url'),\r\n i18n: {\r\n COM_EVENTGALLERY_EVENT_UPLOAD_FILES_TO_UPLOAD: this.$el.getAttribute('data-i18n-COM_EVENTGALLERY_EVENT_UPLOAD_FILES_TO_UPLOAD'),\r\n COM_EVENTGALLERY_EVENT_UPLOAD_PENDING: this.$el.getAttribute('data-i18n-COM_EVENTGALLERY_EVENT_UPLOAD_PENDING'),\r\n COM_EVENTGALLERY_EVENT_UPLOAD_FINISHED: this.$el.getAttribute('data-i18n-COM_EVENTGALLERY_EVENT_UPLOAD_FINISHED')\r\n }\r\n }\r\n })\r\n }\r\n });\r\n }\r\n\r\n});","export function createBatches(items, max_items_per_batch) {\r\n\r\n let batches = [],\r\n currentBatch = [],\r\n i;\r\n\r\n for(i = 0; i < items.length; i++) {\r\n if (currentBatch.length === max_items_per_batch) {\r\n batches.push(currentBatch);\r\n currentBatch = [];\r\n }\r\n\r\n currentBatch.push(items[i]);\r\n }\r\n\r\n batches.push(currentBatch);\r\n\r\n return batches;\r\n}","import { addUrlHashParameter,\r\n calcBorderWidth,\r\n mergeObjects,\r\n addUrlParameter,\r\n getUrlHashParameterValue,\r\n removeUrlHashParameter,\r\n removeUrlParameter,\r\n setCSSStyle\r\n} from './Helpers';\r\n\r\nwindow.Eventgallery = window.Eventgallery || {};\r\nif (typeof eventgallery !== 'undefined') {\r\n Eventgallery.jQuery = eventgallery.jQuery;\r\n}\r\n\r\nEventgallery.Tools = {};\r\nEventgallery.Tools.mergeObjects = mergeObjects;\r\nEventgallery.Tools.calcBorderWidth = calcBorderWidth;\r\nEventgallery.Tools.addUrlHashParameter = addUrlHashParameter;\r\nEventgallery.Tools.getUrlHashParameterValue = getUrlHashParameterValue;\r\nEventgallery.Tools.removeUrlHashParameter = removeUrlHashParameter;\r\nEventgallery.Tools.addUrlParameter = addUrlParameter;\r\nEventgallery.Tools.removeUrlParameter = removeUrlParameter;\r\nEventgallery.Tools.setCSSStyle = setCSSStyle;\r\n","function removeElement(array, elm) {\r\n const index = array.indexOf(elm);\r\n if (index > -1) {\r\n array.splice(index, 1);\r\n }\r\n}\r\n\r\nfunction mergeObjects(defaults, options) {\r\n if (options === null || defaults === null) {\r\n return defaults;\r\n }\r\n\r\n for (let key in options) {\r\n defaults[key] = options[key];\r\n }\r\n\r\n return defaults;\r\n}\r\n\r\n/**\r\n * calculates the border of the given elements with the given properties\r\n */\r\nfunction calcBorderWidth(elements, properties) {\r\n let sum = 0;\r\n\r\n for (let i=0; i<elements.length; i++) {\r\n for (let j=0; j<properties.length; j++) {\r\n let value = parseFloat( elements[i].css(properties[j]) );\r\n if (!isNaN(value)) {\r\n sum += value;\r\n }\r\n }\r\n }\r\n\r\n return sum;\r\n}\r\n\r\nfunction addUrlHashParameter(initialUrl, key, value) {\r\n let url = removeUrlHashParameter(initialUrl, key),\r\n fragments = url.split('#'),\r\n urlpart = fragments[0],\r\n hashparts = fragments.length>1? fragments[1].split(\"&\") : [],\r\n result;\r\n\r\n hashparts.push(encodeURIComponent(key) + \"=\" + encodeURIComponent(value));\r\n\r\n if (hashparts.length>0) {\r\n result = urlpart + '#' + hashparts.join('&');\r\n } else {\r\n result = urlpart;\r\n }\r\n\r\n return result;\r\n}\r\n\r\nfunction getUrlHashParameterValue(url, key) {\r\n let fragments=url.split('#'),\r\n hashparts = fragments.length>1? fragments[1].split(\"&\") : [],\r\n result;\r\n\r\n if (hashparts.length>0)\r\n {\r\n let prefix= encodeURIComponent(key)+'=';\r\n\r\n for (let i=0; i<hashparts.length; i++) {\r\n if (hashparts[i].indexOf(prefix, 0) === 0) {\r\n result = hashparts[i].replace(prefix, '');\r\n }\r\n }\r\n }\r\n\r\n return result;\r\n}\r\n\r\nfunction removeUrlHashParameter(url, key) {\r\n let fragments=url.split('#'),\r\n urlpart= fragments[0],\r\n hashparts = fragments.length>1? fragments[1].split(\"&\") : [],\r\n result;\r\n\r\n if (hashparts.length>0)\r\n {\r\n let prefix= encodeURIComponent(key)+'=',\r\n newHashParts = [];\r\n\r\n for (let i=0; i<hashparts.length; i++) {\r\n if (hashparts[i].indexOf(prefix, 0) === 0) {\r\n\r\n } else {\r\n newHashParts.push(hashparts[i]);\r\n }\r\n }\r\n hashparts = newHashParts;\r\n }\r\n\r\n if (hashparts.length>0) {\r\n result = urlpart + '#' + hashparts.join('&');\r\n } else {\r\n result = urlpart;\r\n }\r\n\r\n return result;\r\n}\r\n\r\nfunction addUrlParameter(initialUrl, key, value) {\r\n let url = removeUrlParameter(initialUrl, key),\r\n fragments = url.split('#'),\r\n urlparts= fragments[0].split('?'),\r\n result;\r\n\r\n if (urlparts.length === 1) {\r\n result = urlparts[0] + '?' + encodeURIComponent(key) + \"=\" + encodeURIComponent(value);\r\n } else {\r\n result = urlparts.join('?') + '&' + encodeURIComponent(key) + \"=\" + encodeURIComponent(value);\r\n }\r\n\r\n if (fragments.length>1) {\r\n return result + '#' + fragments[1];\r\n }\r\n\r\n return result;\r\n}\r\n\r\nfunction removeUrlParameter(url, key) {\r\n let fragments=url.split('#'),\r\n urlparts= fragments[0].split('?'),\r\n result;\r\n\r\n if (urlparts.length>1)\r\n {\r\n let prefix= encodeURIComponent(key)+'=';\r\n let pars= urlparts[1].split('&');\r\n\r\n for (let i=0; i<pars.length; i++) {\r\n if (pars[i].indexOf(prefix, 0) === 0) {\r\n pars.splice(i, 1);\r\n }\r\n }\r\n if (pars.length > 0) {\r\n result = urlparts[0] + '?' + pars.join('&');\r\n }\r\n else {\r\n result = urlparts[0];\r\n }\r\n }\r\n else {\r\n result = urlparts[0];\r\n }\r\n\r\n if (fragments.length>1) {\r\n return result + '#' + fragments[1];\r\n }\r\n\r\n return result;\r\n}\r\n\r\nfunction setCSSStyle (nodes, style, value) {\r\n for (let i=0; i<nodes.length; i++) {\r\n nodes[i].style[style] = value;\r\n }\r\n}\r\n\r\n/**\r\n *\r\n * @param node HTMLElement\r\n */\r\nfunction getParents(node) {\r\n let parents = [];\r\n\r\n if (node === null) {\r\n return parents;\r\n }\r\n\r\n while(node.parentElement != null) {\r\n let parent = node.parentElement;\r\n parents.push(parent);\r\n node = parent;\r\n }\r\n return parents;\r\n}\r\n\r\n/*!\r\n * Serialize all form data into a query string\r\n * (c) 2018 Chris Ferdinandi, MIT License, https://gomakethings.com\r\n * Modified to use any HTML element instead of a form element.\r\n * @param {Node} form The form container to serialize\r\n * @return {String} The serialized form data\r\n */\r\nvar serializeForm = function (form) {\r\n\r\n // Setup our serialized data\r\n var serialized = [];\r\n\r\n let inputElements = form.querySelectorAll('input,select,textarea');\r\n // Loop through each field in the form\r\n for (var i = 0; i < inputElements.length; i++) {\r\n\r\n var field = inputElements[i];\r\n\r\n // Don't serialize fields without a name, submits, buttons, file and reset inputs, and disabled fields\r\n if (!field.name || field.disabled || field.type === 'file' || field.type === 'reset' || field.type === 'submit' || field.type === 'button') continue;\r\n\r\n // If a multi-select, get all selections\r\n if (field.type === 'select-multiple') {\r\n for (var n = 0; n < field.options.length; n++) {\r\n if (!field.options[n].selected) continue;\r\n serialized.push(encodeURIComponent(field.name) + \"=\" + encodeURIComponent(field.options[n].value));\r\n }\r\n }\r\n\r\n // Convert field data to a query string\r\n else if ((field.type !== 'checkbox' && field.type !== 'radio') || field.checked) {\r\n serialized.push(encodeURIComponent(field.name) + \"=\" + encodeURIComponent(field.value));\r\n }\r\n }\r\n\r\n return serialized.join('&');\r\n\r\n};\r\n\r\nexport { removeElement, addUrlHashParameter, calcBorderWidth, mergeObjects, addUrlParameter, getUrlHashParameterValue, removeUrlHashParameter, removeUrlParameter, setCSSStyle, getParents, serializeForm };","/**\r\n * Prefix for the data attribute if we want to identify it as a localization key/value pair\r\n * @type {string}\r\n */\r\nconst dataI18n = 'data-i18n-';\r\n\r\n/**\r\n * Creates a class which can translate things.\r\n *\r\n * @param hmltElement\r\n * @returns {{t: (function(*): *)}}\r\n */\r\nexport let mapLocalizationData = function(hmltElement) {\r\n\r\n let _elements = [];\r\n\r\n for (var i = 0; i < hmltElement.attributes.length; i++) {\r\n var attrib = hmltElement.attributes[i];\r\n if (attrib.name.indexOf(dataI18n) === 0) {\r\n _elements[attrib.name.replace(dataI18n,'').toUpperCase()] = attrib.value;\r\n }\r\n }\r\n\r\n return {\r\n /**\r\n * Performs a translation using the given localization key\r\n *\r\n * @param localizationKey\r\n * @returns {*}\r\n */\r\n t: (localizationKey) => {\r\n let lookup = localizationKey.toUpperCase();\r\n return _elements[lookup] ? _elements[lookup] : localizationKey;\r\n }\r\n };\r\n};\r\n\r\n","import URLHelper from \"./URLHelper\";\r\n\r\n(function(Eventgallery){\r\n\r\n const LOADING_MATCHER = 'gp.svg';\r\n const MARKER_IMAGE_IS_IN_PROGRESS_ATTRIBUTE = 'data-eg-gp-processing';\r\n\r\nEventgallery.GooglePhotosProcessor = class {\r\n\r\n\r\n\r\n constructor() {\r\n\r\n this.albumUrl = \"\";\r\n this.albumsUrl = \"\";\r\n\r\n // noinspection JSUnresolvedVariable\r\n if (window.EventGalleryGooglePhotosConfiguration) {\r\n this.albumUrl = window.EventGalleryGooglePhotosConfiguration.albumUrl;\r\n this.albumsUrl = window.EventGalleryGooglePhotosConfiguration.albumsUrl;\r\n }\r\n\r\n this.imageAddedCallback = (e) => this.processImages(e);\r\n document.addEventListener(\"eventgallery-images-added\", this.imageAddedCallback, true);\r\n };\r\n\r\n destroy() {\r\n document.removeEventListener(\"eventgallery-images-added\", this.imageAddedCallback, true);\r\n }\r\n\r\n // noinspection JSUnusedGlobalSymbols\r\n processImages(e) {\r\n let doReloadLightbox = true;\r\n if (e?.detail?.isOverlay) {\r\n doReloadLightbox = false;\r\n }\r\n let albums = this._groupByAlbum(this._collectHTMLElements());\r\n this._markImagesAsInProgress(albums);\r\n this._getMainImageDataFromServer(albums, doReloadLightbox);\r\n }\r\n\r\n // noinspection JSMethodCanBeStatic\r\n /**\r\n * Grabs IMG tag items from the DOM for Google Photos image placeholder.\r\n *\r\n * @returns <Element>[]\r\n * @private\r\n */\r\n _collectHTMLElements() {\r\n let htmlCollection = document.getElementsByTagName('IMG');\r\n\r\n let foundImageHTMLElements = /** @type {HTMLElement} */[...htmlCollection];\r\n\r\n let result = foundImageHTMLElements.filter(img => {\r\n let backgroundImage = img.style.backgroundImage;\r\n let dataSrc = img.getAttribute('data-src');\r\n let src = img.src;\r\n\r\n if (img.getAttribute(MARKER_IMAGE_IS_IN_PROGRESS_ATTRIBUTE) === '1') {\r\n return false;\r\n }\r\n\r\n return (backgroundImage && backgroundImage.indexOf(LOADING_MATCHER)>0)\r\n || (dataSrc && dataSrc.indexOf(LOADING_MATCHER)>0)\r\n || (src && src.indexOf(LOADING_MATCHER)>0);\r\n });\r\n\r\n htmlCollection = document.getElementsByTagName('A');\r\n let foundLinkHTMLElements = /** @type {HTMLElement} */[...htmlCollection];\r\n result = result.concat(foundLinkHTMLElements.filter(a => {\r\n let dataSrc = a.getAttribute('data-src');\r\n let rel = a.getAttribute('rel');\r\n let href = a.getAttribute('href');\r\n\r\n if (a.getAttribute(MARKER_IMAGE_IS_IN_PROGRESS_ATTRIBUTE) === '1') {\r\n return false;\r\n }\r\n return (href && href.indexOf(LOADING_MATCHER)>0)\r\n || (dataSrc && dataSrc.indexOf(LOADING_MATCHER)>0)\r\n || (rel && rel.indexOf(LOADING_MATCHER)>0);\r\n }));\r\n\r\n return result;\r\n\r\n }\r\n\r\n /**\r\n *\r\n * @param albums {Map<any, any>}\r\n * @private\r\n */\r\n _markImagesAsInProgress(albums) {\r\n for (let [foldername, album] of albums) {\r\n /**\r\n * @var ParsedHTMLElement parsedHTMLElement\r\n */\r\n album.forEach(parsedHTMLElement => {\r\n parsedHTMLElement.getHTMLElement().setAttribute(MARKER_IMAGE_IS_IN_PROGRESS_ATTRIBUTE, 1);\r\n })\r\n }\r\n }\r\n\r\n /**\r\n * sorts all found images into a map: key=folder, value=array of\r\n *\r\n * @param htmlElements\r\n * @returns {Map<any, any>}\r\n * @private\r\n */\r\n _groupByAlbum(htmlElements) {\r\n let albums = new Map();\r\n htmlElements.forEach((imageHTMLElement) => {\r\n let parsedHTMLElement = this._parseHTMLElement(imageHTMLElement);\r\n parsedHTMLElement.updateParameters();\r\n let folder = parsedHTMLElement.parameters.get('folder');\r\n\r\n if (!albums.get(folder)) {\r\n albums.set(folder, []);\r\n }\r\n\r\n albums.get(folder).push(parsedHTMLElement);\r\n });\r\n\r\n return albums;\r\n }\r\n\r\n // noinspection JSMethodCanBeStatic\r\n /**\r\n *\r\n * @param htmlElement\r\n * @returns {ParsedHTMLElement}\r\n * @private\r\n */\r\n _parseHTMLElement(htmlElement) {\r\n if (htmlElement.tagName === 'IMG') {\r\n return new ParsedImageHTMLElement(htmlElement);\r\n }\r\n return new ParsedLinkHTMLElement(htmlElement);\r\n }\r\n\r\n\r\n /**\r\n * starts several requests to the server to determine\r\n *\r\n * @param albums\r\n * @private\r\n */\r\n _getAlbumDataFromServer(albums, doReloadLightbox) {\r\n for (let [foldername, album] of albums) {\r\n this._doAlbumRequest(foldername, album, doReloadLightbox);\r\n }\r\n }\r\n\r\n _doAlbumRequest(foldername, album, doReloadLightbox) {\r\n if (!this.albumUrl) return;\r\n fetch(this.albumUrl + '&folder=' + foldername)\r\n .then(response => response.json())\r\n .then(data => this._processAlbumResult(album, data, doReloadLightbox));\r\n }\r\n\r\n _processAlbumResult(album, data, doReloadLightbox) {\r\n this._replaceImages(album, data, doReloadLightbox);\r\n }\r\n\r\n _getMainImageDataFromServer(albums, doReloadLightbox) {\r\n let albumsWithMainImagesOnly = this._filterForAlbumsWithMainImageOnly(albums);\r\n\r\n if (albumsWithMainImagesOnly.size > 0) {\r\n this._doAlbumsRequest(albumsWithMainImagesOnly, albums, doReloadLightbox);\r\n for (let [foldername, album] of albumsWithMainImagesOnly) {\r\n albums.delete(foldername);\r\n }\r\n }\r\n\r\n this._getAlbumDataFromServer(albums, doReloadLightbox);\r\n }\r\n\r\n _doAlbumsRequest(albumsWithMainImagesOnly, albums, doReloadLightbox) {\r\n if (!this.albumsUrl) return;\r\n fetch(this.albumsUrl)\r\n .then(response => response.json())\r\n .then(data => this._processAlbumsResult(albumsWithMainImagesOnly, albums, data, doReloadLightbox));\r\n }\r\n\r\n _processAlbumsResult(albumsWithMainImagesOnly, albums, data, doReloadLightbox) {\r\n for (let [key, album] of albumsWithMainImagesOnly) {\r\n this._replaceImages(album, data[key], doReloadLightbox);\r\n }\r\n this._getAlbumDataFromServer(albums, doReloadLightbox);\r\n }\r\n\r\n // noinspection JSMethodCanBeStatic\r\n _filterForAlbumsWithMainImageOnly(albums) {\r\n let newAlbums = new Map();\r\n for(let [key, album] of albums) {\r\n let mainImages = album.filter(image => image.isMainImage());\r\n\r\n if (mainImages.length> 0 && mainImages.length === album.length) {\r\n newAlbums.set(key, album);\r\n }\r\n }\r\n return newAlbums;\r\n }\r\n\r\n _replaceImages(album, serverResult, doReloadLightbox) {\r\n if (album === undefined || serverResult === undefined) {\r\n return;\r\n }\r\n\r\n album.forEach(parsedImageHTMLElement => {\r\n let imageUrl = serverResult[parsedImageHTMLElement.getFile()];\r\n if (imageUrl === undefined) {\r\n return false;\r\n }\r\n\r\n parsedImageHTMLElement.updateParameters();\r\n parsedImageHTMLElement.replaceElementLinks(imageUrl);\r\n parsedImageHTMLElement.getHTMLElement().setAttribute(MARKER_IMAGE_IS_IN_PROGRESS_ATTRIBUTE, 0);\r\n\r\n });\r\n\r\n if (doReloadLightbox && Eventgallery.lightbox) {\r\n if (Eventgallery.lightbox.isOpen()) {\r\n let link = Eventgallery.lightbox.getCurrentSlide().thumbnailContainer;\r\n Eventgallery.lightbox._gallery.close();\r\n setTimeout(()=>link.click(),500);\r\n }\r\n }\r\n }\r\n};\r\n\r\nclass ParsedHTMLElement {\r\n constructor(htmlElement) {\r\n this.htmlElement = htmlElement;\r\n this.parameters = null;\r\n this.attributeNames = new Set();\r\n this.styleAttributeNames = new Set();\r\n }\r\n\r\n updateParametersWithUrl(url) {\r\n let parameterString = url.substring(url.indexOf('#')+1);\r\n this.parameters = URLHelper.parseURLParameter(parameterString);\r\n }\r\n\r\n updateParameters() {\r\n for(let n of this.attributeNames) {\r\n let url = this.getHTMLElement().getAttribute(n);\r\n if (url && url.indexOf(LOADING_MATCHER)>0) {\r\n this.updateParametersWithUrl(url);\r\n return;\r\n }\r\n }\r\n\r\n for(let n of this.styleAttributeNames) {\r\n let url = URLHelper.extractBackgroudUrl(this.getHTMLElement().style[n]);\r\n if (url && url.indexOf(LOADING_MATCHER)>0) {\r\n this.updateParametersWithUrl(url);\r\n return;\r\n }\r\n }\r\n }\r\n\r\n\r\n replaceElementLinks(imageUrl) {\r\n\r\n for(let n of this.attributeNames) {\r\n let url = this.getHTMLElement().getAttribute(n);\r\n if (url && url.indexOf(LOADING_MATCHER)>0) {\r\n this.getHTMLElement().setAttribute(n, this.getImageUrl(imageUrl, this.getWidth(url)));\r\n }\r\n }\r\n\r\n for(let n of this.styleAttributeNames) {\r\n let url = URLHelper.extractBackgroudUrl(this.getHTMLElement().style[n]);\r\n if (url && url.indexOf(LOADING_MATCHER)>0) {\r\n this.getHTMLElement().style[n] = 'url(' + this.getImageUrl(imageUrl, this.getWidth(url)) + ')';\r\n }\r\n }\r\n }\r\n\r\n getHTMLElement() {\r\n return this.htmlElement;\r\n }\r\n\r\n getFolder() {\r\n return this.parameters.get('folder');\r\n }\r\n\r\n getFile() {\r\n return this.parameters.get('file');\r\n }\r\n\r\n\r\n getWidth(url) {\r\n return URLHelper.parseURLParameter(url).get('width');\r\n }\r\n\r\n getImageUrl(imageUrl, width) {\r\n return imageUrl + '=w' + width;\r\n }\r\n\r\n isMainImage() {\r\n return this.parameters.get('m') === '1';\r\n }\r\n}\r\n\r\nclass ParsedLinkHTMLElement extends ParsedHTMLElement {\r\n\r\n constructor(htmlElement) {\r\n super(htmlElement);\r\n this.attributeNames = new Set(['href', 'data-src', 'rel']);\r\n }\r\n\r\n}\r\n\r\nclass ParsedImageHTMLElement extends ParsedHTMLElement{\r\n\r\n constructor(htmlElement) {\r\n super(htmlElement);\r\n this.attributeNames = new Set(['src', 'data-src']);\r\n this.styleAttributeNames = new Set(['backgroundImage']);\r\n }\r\n}\r\n\r\n\r\n})(Eventgallery);\r\n","export default class URLHelper {\r\n\r\n constructor() {\r\n }\r\n\r\n /**\r\n * splits a URL parameter like foo=bar&1=2 into a parameter map\r\n *\r\n * @param urlParameterString\r\n * @returns {Map<any, any>}\r\n */\r\n static parseURLParameter(urlParameterString) {\r\n let pairs = urlParameterString.split('&');\r\n let parameters = new Map();\r\n\r\n pairs.forEach(pair => {\r\n let splittedPair = pair.split('=');\r\n if (splittedPair.length === 2) {\r\n parameters.set(splittedPair[0], splittedPair[1]);\r\n }\r\n });\r\n\r\n return parameters;\r\n }\r\n\r\n /**\r\n * returns a map of the query string of an full url\r\n *\r\n * @param urlSring\r\n * @returns {URLSearchParams}\r\n */\r\n static getParameters(urlSring) {\r\n let parts = urlSring.split('?');\r\n if (parts.length < 2) {\r\n return new Map();\r\n }\r\n let queryParts = parts[1].split('#');\r\n return URLHelper.parseURLParameter(queryParts[0]);\r\n }\r\n\r\n /**\r\n * returns the url from strings like \"url ('foobar.jpg')\"\r\n *\r\n * @param urlString\r\n * @returns {*}\r\n */\r\n static extractBackgroudUrl(urlString) {\r\n return urlString.replace(/(url\\(|\\)|\"|')/g, '');\r\n }\r\n};\r\n\r\n\r\n","<style scoped lang=\"less\">\r\n</style>\r\n\r\n<template>\r\n <div id=\"Cacheclear\">\r\n\r\n <div>{{i18n.t('COM_EVENTGALLERY_CLEAR_CACHE_START_DESC')}}</div>\r\n\r\n <div class=\"control-group\">\r\n <div class=\"controls\">\r\n <div class=\"btn-group sync-buttons\">\r\n <button class=\"btn btn-light checkall\" v-on:click=\"checkAll\">{{i18n.t('COM_EVENTGALLERY_CLEAR_CACHE_CHECK_ALL')}}</button>\r\n <button class=\"btn btn-light\" v-on:click=\"uncheckAll\">{{i18n.t('COM_EVENTGALLERY_CLEAR_CACHE_CHECK_NONE')}}</button>\r\n <button class=\"btn btn-warning\" :disabled=\"!running\" v-on:click=\"stopQueue\">{{i18n.t('COM_EVENTGALLERY_CLEAR_CACHE_STOP_QUEUE')}}</button>\r\n <button class=\"btn btn-danger\" :disabled=\"running || !isReadyForCacheDeletion\" v-on:click=\"clearCache\">{{i18n.t('COM_EVENTGALLERY_CLEAR_CACHE_START')}}</button>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <Progress v-if=\"numberOfTasks>0\"\r\n :remaining=\"numberOfTasks\"\r\n :total=\"numberOfLastQueuePush\"></Progress>\r\n\r\n <Groups :groups=\"groups\" :elements=\"elements\" :blocked=\"running\"></Groups>\r\n\r\n </div>\r\n</template>\r\n\r\n<script>\r\n\r\n import queue from 'async/queue';\r\n import Groups from \"./Groups.vue\";\r\n import ProcessSteps from \"../components/ProcessSteps.vue\";\r\n import Progress from \"../components/Progress.vue\";\r\n import ErrorPanel from \"../components/ErrorPanel.vue\";\r\n\r\n export default {\r\n components: {\r\n Groups, Progress, ErrorPanel, ProcessSteps\r\n },\r\n props: {\r\n i18n: null,\r\n elementsJson: null,\r\n groupsJson: null,\r\n cacheClearUrl: null,\r\n csrfToken: null,\r\n },\r\n data() {\r\n return {\r\n elements: [],\r\n groups: [],\r\n failedElements: [],\r\n errorMessages: [],\r\n queue: null,\r\n numberOfRunningTasks: 0,\r\n numberOfTasks: 0,\r\n numberOfLastQueuePush: 0,\r\n running: false\r\n };\r\n },\r\n created: function() {\r\n this.queue = queue((task, callback) => {\r\n task(callback);\r\n }, 1);\r\n this.queue.drain(()=>{\r\n this.updateQueueStatus();\r\n this.running = false;\r\n });\r\n },\r\n mounted: function() {\r\n this.elements = JSON.parse(this.elementsJson);\r\n this.groups = JSON.parse(this.groupsJson);\r\n },\r\n computed: {\r\n selectedElements: function() {\r\n return this.elements.filter((element)=> {\r\n return element.checked;\r\n });\r\n },\r\n isReadyForCacheDeletion: function() {\r\n return this.selectedElements.filter(element => {\r\n return !element.removed;\r\n }).length > 0;\r\n }\r\n },\r\n methods: {\r\n checkAll: function() {\r\n this.elements.forEach(element=>{element.checked=true})\r\n },\r\n uncheckAll: function() {\r\n this.elements.forEach(element=>{element.checked=false})\r\n },\r\n stopQueue: function(){\r\n this.queue.remove(() => {return true});\r\n },\r\n updateQueueStatus: function() {\r\n this.numberOfRunningTasks = this.queue.running();\r\n this.numberOfTasks = this.queue.length() + this.numberOfRunningTasks;\r\n },\r\n clearCache: function() {\r\n this.running = true;\r\n this.selectedElements.forEach((element) => {\r\n this.queue.push((done) => { this.clearCacheForElement(element, () => {done(); this.updateQueueStatus(); })});\r\n });\r\n this.numberOfLastQueuePush = this.selectedElements.length;\r\n },\r\n clearCacheForElement: function(element, done) {\r\n\r\n let data = element.group + '=' + element.value + '&' + this.csrfToken + '=1';\r\n let xhr = new XMLHttpRequest();\r\n\r\n xhr.onreadystatechange = () => {\r\n if (xhr.readyState === 4) {\r\n if(xhr.status === 200) {\r\n try {\r\n this.$set(element, 'removed', true);\r\n } catch(e) {\r\n console.log(e);\r\n this.errorMessages.push(xhr.responseText);\r\n }\r\n }\r\n done();\r\n }\r\n };\r\n\r\n xhr.open(\"POST\", this.cacheClearUrl);\r\n xhr.setRequestHeader('Content-Type','application/x-www-form-urlencoded');\r\n xhr.send(data);\r\n },\r\n\r\n }\r\n };\r\n</script>\r\n","<style lang=\"less\" scoped>\n\n .elements {\n list-style: none;\n\n li {\n margin: 10px;\n }\n\n .checkbox {\n float:left;\n }\n }\n</style>\n\n<template>\n <div v-if=\"sortedElements.length>0\"><h2>{{group.displayname}}</h2>\n\n <ul class=\"elements\">\n <template v-for=\"element in sortedElements\">\n <li @click=\"element.checked = !element.checked\" v-bind:key=\"element.value\">\n <div class=\"checkbox\"><input type=\"checkbox\" v-model=\"element.checked\" ></div>\n <div class=\"description\">\n {{element.name}} <span class=\"filecount\">({{element.count}} / {{element.size}})</span>\n </div>\n </li>\n </template>\n </ul>\n </div>\n</template>\n\n<script>\n export default {\n props: {\n group: null,\n elements: null,\n },\n computed: {\n sortedElements: function(){\n return this.elements.slice().filter(a => {\n return !a.removed && a.group === this.group.name && a.count > 0;\n }).sort((a, b) => {\n return a.name.localeCompare(b.name);\n });\n }\n }\n };\n</script>\n","<style lang=\"less\" scoped>\n .blocked {\n opacity: 0.4;\n }\n</style>\n\n<template>\n <div class=\"groups\" v-bind:class=\"{blocked: blocked}\">\n <Elements v-for=\"group in groups\" v-bind:key=\"group.value\" :group=\"group\" :elements=\"elements\"></Elements>\n </div>\n</template>\n\n<script>\n import Elements from \"./Elements.vue\";\n\n export default {\n components: {\n Elements\n },\n props: {\n groups: null,\n elements: null,\n blocked: null\n },\n computed: {\n }\n\n };\n</script>\n","<style scoped lang=\"less\">\n #errorMessages {\n pre {\n max-height: 50vh;\n overflow-y: scroll;\n }\n div {\n color: #D8000C;\n background-color: #FFD2D2;\n padding: 12px;\n margin: 10px 0;\n }\n }\n</style>\n\n<template>\n <div id=\"errorMessages\" v-if=\"errorMessages.length>0 || failedFolders.length>0\">\n <h2>{{headline}}</h2>\n <pre v-if=\"errorMessages.length>0\"><template v-for=\"message in reversedErrorMessages\">{{message}}</template></pre>\n <div v-for=\"failedFolder in failedFolders\">\n {{failedFolder.error}}\n </div>\n </div>\n</template>\n\n<script>\n export default {\n props: {\n headline: null,\n errorMessages: null,\n failedFolders: null,\n },\n computed: {\n reversedErrorMessages: function() {\n return this.errorMessages.slice().reverse();\n }\n }\n\n };\n</script>\n","<style scoped>\n li {\n display: flex;\n align-items: center;\n }\n\n input[type=checkbox] {\n transform: scale(1.5);\n }\n\n .description {\n margin: 10px;\n }\n\n .filecount {\n width: 100%;\n text-align: center;\n font-size: 1.2em;\n padding: 5px;\n }\n\n</style>\n\n<template>\n <li @click=\"folder.checked = !folder.checked\" :style=\"{backgroundColor: backgroundColor}\">\n <div><input type=\"checkbox\" v-model=\"folder.checked\" ></div>\n <div class=\"description\">\n <div>{{folder.foldername}}</div>\n <div><strong>{{status}}</strong></div>\n <div class=\"filecount\" v-if=\"folder.files\">({{numberOfFilesLeft}} / {{folder.files.length}} {{i18n_labelNeedSync}})</div>\n </div>\n </li>\n</template>\n\n<script>\n export default {\n props: {\n folder: null,\n i18n_labelNeedSync: String\n },\n methods: {\n\n },\n computed: {\n folderid: function() {\n return 'folder_' + this.folder.foldername;\n },\n numberOfFilesLeft: function () {\n return this.folder.files.filter((file => {return file.status !== 'sync'})).length;\n },\n status: function() {\n return this.folder.status;\n },\n backgroundColor: function() {\n if (!this.folder || !this.folder.status) return \"\";\n\n if (this.folder.status === 'sync') {\n console.log(this.numberOfFilesLeft)\n if (this.numberOfFilesLeft === 0 ) {\n return \"lightgreen\";\n }\n return '#FAFAD2'\n }\n if (this.folder.status === 'nosync') {\n return \"#DDD\";\n }\n if (this.folder.status === 'deleted') {\n return 'orange';\n }\n\n }\n }\n\n };\n</script>\n","<style lang=\"less\" scoped>\n\n .folders {\n display: flex;\n flex-wrap: wrap;\n justify-content: space-between;\n list-style: none;\n\n li {\n padding: 10px;\n margin: 10px;\n border: 5px solid #EEE;\n }\n }\n\n .blocked {\n opacity: 0.5;\n }\n</style>\n\n<template>\n <ul class=\"folders\" v-bind:class=\"{blocked: blocked}\">\n <folder v-for=\"folder in sortedFolders\" v-bind:key=\"folder.foldername\" :folder=\"folder\" :i18n_label-need-sync=\"i18n_labelNeedSync\"></folder>\n </ul>\n</template>\n\n<script>\n\n import Folder from \"./Folder.vue\";\n\n export default {\n components: {\n Folder\n },\n props: {\n folders: null,\n blocked: null,\n i18n_labelNeedSync: String\n },\n computed: {\n sortedFolders: function(){\n return this.folders.slice().sort((a, b) => {\n return a.foldername.localeCompare(b.foldername);\n });\n }\n }\n\n };\n</script>\n","<style scoped>\n .container {\n width: 100%;\n margin: 20px auto;\n }\n .progressbar {\n counter-reset: step;\n display: flex;\n }\n .progressbar li {\n list-style-type: none;\n width: 33.333%;\n font-size: 12px;\n position: relative;\n text-align: center;\n color: #7d7d7d;\n }\n\n .progressbar li span.title {\n text-transform: uppercase;\n }\n\n .progressbar li:before {\n width: 30px;\n height: 30px;\n content: counter(step);\n counter-increment: step;\n line-height: 30px;\n border: 2px solid #7d7d7d;\n display: block;\n text-align: center;\n margin: 0 auto 10px auto;\n border-radius: 50%;\n background-color: white;\n }\n .progressbar li:after {\n width: 100%;\n height: 2px;\n content: '';\n position: absolute;\n background-color: #7d7d7d;\n top: 15px;\n left: -50%;\n z-index: -1;\n }\n .progressbar li:first-child:after {\n content: none;\n }\n .progressbar li.active {\n color: green;\n }\n .progressbar li.active:before {\n border-color: #55b776;\n }\n .progressbar li.active + li:after {\n background-color: #55b776;\n }\n\n .progressbar span {\n display: block;\n margin-bottom: 10px;\n }\n\n</style>\n\n<template>\n <div class=\"container\">\n <ul class=\"progressbar\">\n <li v-bind:class=\"{active: true}\">\n <span class=\"title\">{{i18n_labelStep1}}</span>\n </li>\n <li v-bind:class=\"{active: numberOfSelectedFolders > 0}\">\n <span class=\"title\">{{i18n_labelStep2}}</span>\n <span v-if=\"numberOfSelectedFolders === 0\">{{i18n_hintStep2}}</span>\n <button class=\"btn btn-primary sync-folders\" :disabled=\"running || numberOfSelectedFolders===0\" v-on:click=\"$emit('sync-folders')\">{{i18n_labelButtonStep2}} ({{numberOfSelectedFolders}} {{i18n_labelItemsStep2}})</button>\n </li>\n <li v-bind:class=\"{active: isReadyForSyncFiles > 0}\">\n <span class=\"title\">{{i18n_labelStep3}}</span>\n <span v-if=\"isReadyForSyncFiles\">{{i18n_hintStep3}}</span>\n <button class=\"btn btn-primary sync-files\" :disabled=\"running || !isReadyForSyncFiles\" v-on:click=\"$emit('sync-files')\">{{i18n_labelButtonStep3}} ({{numberOfSelectedFiles}} {{i18n_labelItemsStep3}})</button>\n </li>\n </ul>\n\n\n </div>\n</template>\n\n<script>\n export default {\n props: {\n running: null,\n isReadyForSyncFiles: null,\n numberOfSelectedFolders: null,\n numberOfSelectedFiles: null,\n i18n_labelStep1: String,\n i18n_labelStep2: String,\n i18n_hintStep2: String,\n i18n_labelButtonStep2: String,\n i18n_labelStep3: String,\n i18n_hintStep3: String,\n i18n_labelButtonStep3: String,\n i18n_labelItemsStep2: String,\n i18n_labelItemsStep3: String\n }\n };\n</script>\n","<style scoped>\n .eg-progressbar-state {\n height: 20px;\n text-align: center;\n }\n</style>\n\n<template>\n <div class=\"eg-progressbar\" >\n <div class=\"eg-progressbar-state\" v-bind:style=\"{width: progress + '%'}\">\n <template v-if=\"remaining>0\"></template>\n </div>\n </div>\n\n</template>\n\n<script>\n export default {\n props: {\n remaining: null,\n total: null,\n },\n computed: {\n progress: function() {\n return (this.total-this.remaining) / this.total * 100;\n }\n }\n\n };\n</script>\n","<style scoped lang=\"less\">\r\n</style>\r\n\r\n<template>\r\n <div id=\"Filesync\">\r\n\r\n <ErrorPanel :error-messages=\"errorMessages\" :failed-folders=\"failedFolders\" :headline=\"i18n.t('COM_EVENTGALLERY_SYNC_ERROR_HEADLINE')\"></ErrorPanel>\r\n\r\n <ProcessSteps :i18n=\"i18n\"\r\n :number-of-selected-files=\"numberOfSyncableFiles\"\r\n :number-of-selected-folders=\"selectedFolders.length\"\r\n :is-ready-for-sync-files=\"isSyncFilesProcessReadyToStart\"\r\n :running=\"running\"\r\n :i18n_label-step1=\"i18n.t('COM_EVENTGALLERY_SYNC_STEP1')\"\r\n :i18n_label-step2=\"i18n.t('COM_EVENTGALLERY_SYNC_STEP2')\"\r\n :i18n_label-items-step2=\"i18n.t('COM_EVENTGALLERY_SYNC_STEP2_ITEMS')\"\r\n :i18n_label-step3=\"i18n.t('COM_EVENTGALLERY_SYNC_STEP3')\"\r\n :i18n_label-items-step3=\"i18n.t('COM_EVENTGALLERY_SYNC_STEP3_ITEMS')\"\r\n :i18n_hint-step2=\"i18n.t('COM_EVENTGALLERY_SYNC_STEP2_HINT')\"\r\n :i18n_hint-step3=\"i18n.t('COM_EVENTGALLERY_SYNC_STEP3_HINT')\"\r\n :i18n_label-button-step2=\"i18n.t('COM_EVENTGALLERY_SYNC_STEP2_BUTTON_LABEL')\"\r\n :i18n_label-button-step3=\"i18n.t('COM_EVENTGALLERY_SYNC_STEP3_BUTTON_LABEL')\"\r\n v-on:sync-files=\"syncFiles\"\r\n v-on:sync-folders=\"syncFolders\">\r\n </ProcessSteps>\r\n\r\n <div class=\"control-group\">\r\n <div class=\"controls\">\r\n <div class=\"btn-group sync-buttons\">\r\n <button class=\"btn btn-light checkall\" v-on:click=\"checkAll\">{{i18n.t('COM_EVENTGALLERY_SYNC_CHECK_ALL')}}</button>\r\n <button class=\"btn btn-light\" v-on:click=\"uncheckAll\">{{i18n.t('COM_EVENTGALLERY_SYNC_CHECK_NONE')}}</button>\r\n <button class=\"btn btn-warning\" :disabled=\"!running\" v-on:click=\"stopQueue\">{{i18n.t('COM_EVENTGALLERY_SYNC_STOP_QUEUE')}}</button>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <Progress v-if=\"numberOfTasks>0\"\r\n :remaining=\"numberOfTasks\"\r\n :total=\"numberOfLastQueuePush\"></Progress>\r\n <Folders :folders=\"folders\" :blocked=\"running\" :i18n_label-need-sync=\"i18n.t('COM_EVENTGALLERY_SYNC_OPEN_IMAGES_NEEDS_SYNC')\"></Folders>\r\n\r\n </div>\r\n</template>\r\n\r\n<script>\r\n\r\n import queue from 'async/queue';\r\n import { createBatches } from \"../../../common/js/BatchCreator\";\r\n import Folders from \"../components/Folders.vue\";\r\n import ProcessSteps from \"../components/ProcessSteps.vue\";\r\n import Progress from \"../components/Progress.vue\";\r\n import ErrorPanel from \"../components/ErrorPanel.vue\";\r\n\r\n export default {\r\n components: {\r\n Folders, Progress, ErrorPanel, ProcessSteps\r\n },\r\n props: {\r\n i18n: null,\r\n loadFoldersUrl: null,\r\n fileSyncUrl: null,\r\n folderSyncUrl: null,\r\n csrfToken: null,\r\n fileBatchSize: null,\r\n maxParallelRequests: null,\r\n },\r\n data() {\r\n return {\r\n folders: [],\r\n failedFolders: [],\r\n errorMessages: [],\r\n queue: null,\r\n numberOfRunningTasks: 0,\r\n numberOfTasks: 0,\r\n numberOfLastQueuePush: 0,\r\n running: false\r\n\r\n };\r\n },\r\n created: function() {\r\n this.queue = queue((task, callback) => {\r\n task(callback);\r\n }, this.maxParallelRequests);\r\n this.queue.drain(()=>{\r\n this.updateQueueStatus();\r\n this.running = false;\r\n });\r\n },\r\n mounted: function() {\r\n this.loadFolders();\r\n },\r\n computed: {\r\n numberOfSyncableFiles: function() {\r\n let number = 0;\r\n this.selectedFolders.forEach((folder) => {\r\n if (folder.files) {\r\n number +=folder.files.length\r\n }\r\n });\r\n return number;\r\n },\r\n selectedFolders: function() {\r\n return this.folders.filter((folder)=> {\r\n return folder.checked;\r\n });\r\n },\r\n isSyncFilesProcessReadyToStart: function() {\r\n let isReady = this.selectedFolders.length>0;\r\n this.selectedFolders.forEach((folder) => {\r\n if (!folder.files) {\r\n isReady = false;\r\n }\r\n });\r\n return isReady;\r\n }\r\n },\r\n methods: {\r\n checkAll: function() {\r\n this.folders.forEach(folder=>{folder.checked=true})\r\n },\r\n uncheckAll: function() {\r\n this.folders.forEach(folder=>{folder.checked=false})\r\n },\r\n stopQueue: function(){\r\n this.queue.remove(() => {return true});\r\n },\r\n updateQueueStatus: function() {\r\n this.numberOfRunningTasks = this.queue.running();\r\n this.numberOfTasks = this.queue.length() + this.numberOfRunningTasks;\r\n },\r\n syncFolders: function() {\r\n this.running = true;\r\n this.selectedFolders.forEach((folder) => {\r\n this.queue.push((done) => { this.syncFolder(folder, () => {done(); this.updateQueueStatus(); })});\r\n });\r\n this.numberOfLastQueuePush = this.selectedFolders.length;\r\n },\r\n syncFolder: function(folder, done) {\r\n\r\n let data = 'folder=' + folder.foldername + \"&foldertype=\" + folder.foldertype + '&' + this.csrfToken + '=1';\r\n let xhr = new XMLHttpRequest();\r\n\r\n xhr.onreadystatechange = () => {\r\n if (xhr.readyState === 4) {\r\n if(xhr.status === 200) {\r\n try {\r\n let responseJSON = JSON.parse(xhr.responseText);\r\n let files = [];\r\n responseJSON.files.forEach(file => {\r\n files.push({foldername: folder.foldername, filename: file, status: 'new'})\r\n });\r\n\r\n this.$set(folder, 'files', files);\r\n this.$set(folder, 'status', responseJSON.status);\r\n } catch(e) {\r\n console.log(e);\r\n this.errorMessages.push(xhr.responseText);\r\n }\r\n }\r\n done();\r\n }\r\n };\r\n\r\n xhr.open(\"POST\", this.folderSyncUrl);\r\n xhr.setRequestHeader('Content-Type','application/x-www-form-urlencoded');\r\n xhr.send(data);\r\n },\r\n syncFiles: function() {\r\n this.running = true;\r\n\r\n let files = [];\r\n\r\n this.folders.forEach((folder) => {\r\n if (folder.checked) {\r\n folder.files.forEach((file)=>{\r\n files.push(file);\r\n })\r\n }\r\n });\r\n\r\n let batches = createBatches(files, this.fileBatchSize);\r\n batches.forEach((fileBatch) => {\r\n this.queue.push((done) => { this.syncFileBatch(fileBatch, () => {done(); this.updateQueueStatus();})});\r\n });\r\n this.numberOfLastQueuePush = files.length>0 ? batches.length : 0;\r\n },\r\n syncFileBatch: function(fileBatch, done) {\r\n let data = this.csrfToken + '=1';\r\n\r\n fileBatch.forEach(file => {\r\n data +='&folder[]=' + encodeURIComponent(file.foldername) + '&file[]=' + encodeURIComponent(file.filename)\r\n });\r\n\r\n let xhr = new XMLHttpRequest();\r\n xhr.onreadystatechange = () => {\r\n if (xhr.readyState === 4) {\r\n if (xhr.status === 200) {\r\n try {\r\n let resultFiles = JSON.parse(xhr.responseText);\r\n fileBatch.forEach(file => {\r\n resultFiles.forEach(resultFile => {\r\n if (file.foldername === resultFile.foldername && file.filename === resultFile.filename) {\r\n file.status = resultFile.sync;\r\n }\r\n });\r\n })\r\n } catch (e) {\r\n console.log(e);\r\n this.errorMessages.push(xhr.responseText);\r\n }\r\n }\r\n done();\r\n }\r\n };\r\n\r\n xhr.open(\"POST\", this.fileSyncUrl);\r\n xhr.setRequestHeader('Content-Type','application/x-www-form-urlencoded');\r\n xhr.send(data);\r\n },\r\n loadFolders: function() {\r\n let xhr = new XMLHttpRequest();\r\n let data = this.csrfToken + '=1';\r\n xhr.onreadystatechange = () => {\r\n if (xhr.readyState === 4 && xhr.status === 200) {\r\n try {\r\n let folders = JSON.parse(xhr.responseText);\r\n\r\n folders.forEach(folder => {\r\n if (folder.error != null) {\r\n this.failedFolders.push(folder);\r\n } else {\r\n folder.checked = folder.isNew;\r\n this.folders.push(folder);\r\n }\r\n });\r\n } catch(e) {\r\n console.log(e);\r\n this.errorMessages.push(xhr.responseText);\r\n } \r\n }\r\n };\r\n\r\n xhr.open(\"POST\", this.loadFoldersUrl);\r\n xhr.setRequestHeader('Content-Type','application/x-www-form-urlencoded');\r\n xhr.send(data);\r\n }\r\n }\r\n };\r\n</script>\r\n","<template>\r\n <div>\r\n <form>\r\n <div class=\"adminform form-horizontal\">\r\n <template v-for=\"field in formDefinition.form.fieldset.field\">\r\n <Input v-if=\"field.type==='text'\" v-model=\"data[field.name]\" :name=\"field.name\" :label=\"field.label\" :description=\"field.description\" :default-value=\"field.default\"></Input>\r\n <Select v-else-if=\"field.type==='list'\" v-model=\"data[field.name]\" :name=\"field.name\" :label=\"field.label\" :description=\"field.description\" :options=\"field.option\" :default-value=\"field.default\"></Select>\r\n <Radio v-else-if=\"field.type==='radio'\" v-model=\"data[field.name]\" :name=\"field.name\" :label=\"field.label\" :description=\"field.description\" :options=\"field.option\" :default-value=\"field.default\"></Radio>\r\n <ImageSelector v-else-if=\"field.type==='imageselector'\" v-model=\"data.image\" :load-folders-url=\"loadFoldersUrl\" :load-files-url=\"loadFilesUrl\" :name=\"field.name\" :label=\"field.label\" :description=\"field.description\"></ImageSelector>\r\n <div v-else>Unsupported form element {{field}}</div>\r\n </template>\r\n </div>\r\n\r\n <div id=\"imagetagfield\">{{tagContent}}</div>\r\n\r\n <button class=\"pull-right btn btn-primary\" v-on:click=\"insertImageContentTag\">{{i18n.t('COM_EVENTGALLERY_CONTENTPLUGINBUTTON_BUTTON_INSERT')}}</button>\r\n\r\n </form>\r\n\r\n </div>\r\n</template>\r\n<style>\r\n#imagetagfield {\r\n font-family: \"Courier New\", Courier, monospace;\r\n padding: 10px;\r\n border-radius: 5px;\r\n background-color: #DDDCDC;\r\n margin-bottom: 10px;\r\n}\r\n</style>\r\n<script>\r\n\r\n import ImageSelector from \"./ImageSelector.vue\";\r\n import Input from \"./Input.vue\";\r\n import Select from \"./Select.vue\";\r\n import Radio from \"./Radio.vue\";\r\n\r\n export default {\r\n components: {\r\n ImageSelector, Input, Select, Radio\r\n },\r\n props: {\r\n editorName: null,\r\n loadFoldersUrl: null,\r\n loadFilesUrl: null,\r\n formId: null,\r\n formDefinitionJson: null,\r\n i18n: null\r\n },\r\n data() {\r\n return {\r\n data: {\r\n attr: null,\r\n image_crop: null,\r\n image_mode: null,\r\n image_width: null,\r\n cssclass: null,\r\n use_cart: null,\r\n image: {\r\n file: null,\r\n folder: null,\r\n thumb: null\r\n },\r\n },\r\n formDefinition: JSON.parse(this.formDefinitionJson),\r\n };\r\n },\r\n computed: {\r\n tagContent: function() {\r\n let tag = \"{eventgallery-image \";\r\n\r\n tag = tag + \"event='\" + this.data.image.folder + \"' \";\r\n tag = tag + \"file='\" + this.data.image.file + \"' \";\r\n\r\n tag = tag + \"attr='\"+ this.data.attr +\"' \";\r\n\r\n if (this.data.attr === \"image\") {\r\n tag = tag + \"mode='\"+ this.data.image_mode +\"' \";\r\n tag = tag + \"crop='\"+ this.data.image_crop +\"' \";\r\n if (this.data.image_width) tag = tag + \"thumb_width='\"+ this.data.image_width + \"' \";\r\n if (this.data.cssclass) tag = tag + \"cssclass='\"+ this.data.cssclass + \"' \";\r\n if (this.data.use_cart) tag = tag + \"use_cart='\"+ this.data.use_cart + \"' \";\r\n }\r\n\r\n tag = tag + \"}\";\r\n\r\n return tag\r\n }\r\n },\r\n methods: {\r\n insertImageContentTag: function() {\r\n console.log(this.tagContent);\r\n // Joomla 3.x code\r\n if (window.parent.jInsertEditorText) {\r\n window.parent.jInsertEditorText(this.tagContent, this.editorName);\r\n window.parent.SqueezeBox.close();\r\n } else {\r\n // Joomla 4 code\r\n window.parent.Joomla.editors.instances[this.editorName].replaceSelection(this.tagContent);\r\n window.parent.Joomla.Modal.getCurrent().close();\r\n }\r\n return false;\r\n }\r\n }\r\n };\r\n</script>\r\n","<style scoped>\r\n .fullscreenOverlay {\r\n /* Height & width depends on how you want to reveal the overlay (see JS below) */\r\n height: 100%;\r\n width: 100%;\r\n position: absolute;\r\n z-index: 1; /* Sit on top */\r\n left: 0;\r\n top: 0;\r\n background-color: white;\r\n padding: 10px;\r\n box-sizing: border-box;\r\n }\r\n\r\n .ImageSelector {\r\n display: flex;\r\n width: 100%;\r\n }\r\n\r\n .folders {\r\n width: 250px;\r\n margin-right: 20px;\r\n flex: 1;\r\n }\r\n\r\n ul {\r\n margin: 0;\r\n }\r\n\r\n li {\r\n cursor: pointer;\r\n }\r\n\r\n li:hover{\r\n background-color: #eee;\r\n }\r\n\r\n li.active {\r\n background-color: orange;\r\n }\r\n\r\n .folders ul {\r\n list-style: none;\r\n }\r\n\r\n .folders li {\r\n margin: 5px 0;\r\n padding: 5px;\r\n }\r\n\r\n\r\n\r\n .files {\r\n flex: 3;\r\n width: 100%;\r\n display: flex;\r\n flex-flow: row wrap;\r\n list-style: none;\r\n padding: 0;\r\n }\r\n\r\n .files ul {\r\n display: flex;\r\n flex-flow: row wrap;\r\n }\r\n\r\n .files li {\r\n display: block;\r\n box-sizing: border-box;\r\n width: 25%;\r\n flex-grow: 0;\r\n padding: 10px;\r\n }\r\n\r\n .files li img {\r\n width: 100%;\r\n }\r\n\r\n label {\r\n word-break: break-all;\r\n }\r\n\r\n .lds-dual-ring {\r\n display: inline-block;\r\n width: 80px;\r\n height: 80px;\r\n }\r\n .lds-dual-ring:after {\r\n content: \" \";\r\n display: block;\r\n width: 64px;\r\n height: 64px;\r\n margin: 8px;\r\n border-radius: 50%;\r\n border: 6px solid #000;\r\n border-color: #000 transparent #000 transparent;\r\n animation: lds-dual-ring 1.2s linear infinite;\r\n }\r\n @keyframes lds-dual-ring {\r\n 0% {\r\n transform: rotate(0deg);\r\n }\r\n 100% {\r\n transform: rotate(360deg);\r\n }\r\n }\r\n</style>\r\n<template>\r\n <div>\r\n <div v-show=\"!showImageSelectorState\">\r\n <div class=\"control-group\">\r\n <div class=\"control-label\"><Label :description=\"description\" :label=\"label\"></Label></div>\r\n <div class=\"controls\">\r\n <p v-show=\"value.thumb\">\r\n <img :src=\"value.thumb\" style=\"max-height: 150px;\">\r\n </p>\r\n <button class=\"btn btn-secondary\" v-on:click.prevent=\"showImageSelector\">{{label}}</button>\r\n </div>\r\n </div>\r\n\r\n </div>\r\n <div v-show=\"showImageSelectorState\" class=\"fullscreenOverlay\">\r\n <div class=\"overlay-content\">\r\n <div class=\"ImageSelector\">\r\n <div class=\"folders\">\r\n <button v-on:click.prevent=\"hideImageSelector\"><<</button>\r\n <input type=\"text\" v-model=\"folderFilter\">\r\n <ul>\r\n <li v-for=\"myFolder in filteredFolders\" :key=\"myFolder.folder\" :class=\"{active: (myFolder.folder === folder)}\" v-on:click=\"loadFiles(myFolder.folder)\">{{myFolder.name}}</li>\r\n </ul>\r\n </div>\r\n <div class=\"files\">\r\n <div v-show=\"isLoading\"><div class=\"lds-dual-ring\"></div></div>\r\n <ul v-show=\"!isLoading\">\r\n <li v-for=\"file in files\" :key=\"file.id \" v-on:click=\"setImage(file)\">\r\n <label>{{file.file}}</label>\r\n <img :src=\"file.thumb\">\r\n </li>\r\n </ul>\r\n </div>\r\n </div>\r\n\r\n </div>\r\n </div>\r\n </div>\r\n</template>\r\n\r\n<script>\r\n import Label from \"./Label\";\r\n\r\n export default {\r\n components: {\r\n Label\r\n },\r\n props: {\r\n name: null,\r\n label: null,\r\n description: null,\r\n loadFoldersUrl: null,\r\n loadFilesUrl: null,\r\n value: null\r\n },\r\n data() {\r\n return {\r\n file: \"\",\r\n thumb: \"\",\r\n folder: \"\",\r\n folders: [],\r\n files: [],\r\n isLoading: false,\r\n folderFilter: \"\",\r\n showImageSelectorState: false\r\n };\r\n },\r\n computed: {\r\n filteredFolders: function() {\r\n if (this.folderFilter === \"\") return this.folders;\r\n let filter = this.folderFilter.toLowerCase();\r\n\r\n return this.folders.filter((folder)=>{\r\n if (folder.folder.toLowerCase().includes(filter)) {\r\n return true;\r\n }\r\n if (folder.name.toLowerCase().includes(filter)) {\r\n return true;\r\n }\r\n return false;\r\n })\r\n },\r\n image: function() {\r\n let imageObject = {\r\n file: this.file,\r\n folder: this.folder,\r\n thumb: this.thumb\r\n };\r\n return imageObject;\r\n }\r\n },\r\n created() {\r\n let xhr = new XMLHttpRequest();\r\n xhr.onreadystatechange = () => {\r\n if (xhr.readyState === 4) {\r\n if (xhr.status === 200) {\r\n try {\r\n this.folders = JSON.parse(xhr.responseText);\r\n } catch (e) {\r\n console.log(e);\r\n }\r\n }\r\n }\r\n };\r\n\r\n xhr.open(\"GET\", this.loadFoldersUrl);\r\n xhr.send();\r\n },\r\n methods: {\r\n loadFiles: function(folder) {\r\n if (this.isLoading) return;\r\n this.folder = folder;\r\n this.isLoading = true;\r\n let xhr = new XMLHttpRequest();\r\n xhr.onreadystatechange = () => {\r\n if (xhr.readyState === 4) {\r\n if (xhr.status === 200) {\r\n try {\r\n this.files = JSON.parse(xhr.responseText);\r\n setTimeout(this.sendCustomEvent,500);\r\n\r\n } catch (e) {\r\n console.log(e);\r\n }\r\n this.isLoading = false;\r\n }\r\n }\r\n };\r\n\r\n xhr.open(\"GET\", this.loadFilesUrl + '&folder=' + folder);\r\n xhr.send();\r\n },\r\n setImage: function(file) {\r\n if (file) {\r\n this.folder = file.folder;\r\n this.file = file.file;\r\n this.thumb = file.thumb;\r\n }\r\n this.$emit('input', this.image);\r\n if (this.callback) this.callback();\r\n this.hideImageSelector();\r\n setTimeout(this.sendCustomEvent, 500);\r\n\r\n },\r\n sendCustomEvent: function() {\r\n let event = new CustomEvent('eventgallery-images-added');\r\n document.dispatchEvent(event);\r\n },\r\n showImageSelector: function() {\r\n this.showImageSelectorState = true;\r\n },\r\n hideImageSelector: function() {\r\n this.showImageSelectorState = false;\r\n }\r\n }\r\n };\r\n</script>\r\n","<template>\r\n <div class=\"control-group\">\r\n <div class=\"control-label\"><Label :description=\"description\" :label=\"label\"></Label></div>\r\n <div class=\"controls\">\r\n <input class=\"form-control\"\r\n :name=\"name\"\r\n v-bind:value=\"value\"\r\n v-on:input=\"$emit('input', $event.target.value)\"\r\n >\r\n </div>\r\n </div>\r\n</template>\r\n\r\n<script>\r\n import Label from \"./Label\";\r\n\r\n export default {\r\n components: {\r\n Label\r\n },\r\n props: {\r\n name: null,\r\n label: null,\r\n description: null,\r\n value: null,\r\n defaultValue: null\r\n },\r\n data() {\r\n return {\r\n };\r\n },\r\n mounted() {\r\n this.$emit('input', this.defaultValue);\r\n },\r\n methods: {\r\n }\r\n };\r\n</script>\r\n","<style scoped>\n /* Tooltip container */\n .eg-tooltip {\n position: relative;\n display: inline-block;\n padding-right: 10px;\n }\n\n /* Tooltip text */\n .eg-tooltip .eg-tooltiptext {\n visibility: hidden;\n width: 170px;\n background-color: #EEE;\n color: #000;\n text-align: center;\n padding: 5px;\n border-radius: 6px;\n border: 1px solid #CCC;\n position: absolute;\n z-index: 1;\n }\n\n .eg-tooltip:hover .eg-tooltiptext,\n .eg-tooltip:active .eg-tooltiptext{\n visibility: visible;\n }\n\n .eg-tooltip-right {\n top: -50%;\n left: 100%;\n }\n</style>\n\n<template>\n <label class=\"eg-tooltip\"><span class=\"eg-tooltiptext eg-tooltip-right\">{{description}}</span>{{label}}</label>\n</template>\n\n<script>\n export default {\n props: {\n label: String,\n description: String\n }\n };\n</script>\n","<template>\n <div class=\"control-group\">\n <div class=\"control-label\"><Label :description=\"description\" :label=\"label\"></Label></div>\n <div class=\"controls\">\n\n <div class=\"form-check\" v-for=\"item in options\">\n <input type=\"radio\" class=\"pull-left form-check-input\" :id=\"item.name + item.value\"\n v-model=\"value\" :value=\"item.value\" :key=\"item.Id\" :selected=\"value === item.value\" @input=\"$emit('input', $event.target.value)\"></input>\n <label class=\"radio form-check-label\" :for=\"item.name + item.value\">\n {{item.text}}\n </label>\n </div>\n\n </div>\n </div>\n</template>\n\n<script>\n import Label from \"./Label\";\n\n export default {\n components: {\n Label\n },\n props: {\n name: null,\n label: null,\n description: null,\n value: null,\n options: null,\n defaultValue: null,\n },\n data() {\n return {\n currentOption: \"\"\n };\n },\n watch: {\n value: function(newValue){\n this.currentOption = newValue;\n }\n },\n mounted() {\n if (this.defaultValue) {\n this.currentOption = this.defaultValue;\n } else {\n this.currentOption = this.options[0].value;\n }\n\n this.$emit('input', this.currentOption);\n },\n methods: {\n\n }\n };\n</script>\n","<template>\n <div class=\"control-group\">\n <div class=\"control-label\"><Label :description=\"description\" :label=\"label\"></Label></div>\n <div class=\"controls\">\n <select class=\"form-control\" v-model=\"currentOption\" @input=\"$emit('input', $event.target.value)\">\n <option v-for=\"item in options\" :value=\"item.value\" :key=\"item.value\" :selected=\"value === item.value\">{{ item.text }}</option>\n </select>\n </div>\n\n </div>\n</template>\n\n<script>\n import Label from \"./Label\";\n\n export default {\n components: {\n Label\n },\n props: {\n name: null,\n label: null,\n description: null,\n value: null,\n options: null,\n defaultValue: null,\n },\n data() {\n return {\n currentOption: \"\"\n };\n },\n watch: {\n value: function(newValue){\n this.currentOption = newValue;\n }\n },\n mounted() {\n this.currentOption = this.defaultValue;\n this.$emit('input', this.currentOption);\n },\n methods: {\n\n }\n };\n</script>\n","<style scoped>\n table {\n min-width: 200px;\n margin-top: 20px;\n }\n\n th{\n text-align: left;\n }\n\n td {\n padding: 10px;\n }\n\n td.action {\n text-align: right;\n }\n\n input {\n width: 75px;\n }\n\n tr:nth-child(even) {\n background-color: #eee;\n }\n\n tr:hover {\n background-color: orange;\n }\n\n .form-control {\n display: inline-block;\n margin: 0 10px;\n }\n</style>\n<template>\n <div>\n <input type=\"hidden\" :name=\"inputName\" :value=\"currentInputValue\" :id=\"inputId\">\n\n <div class=\"input-append\">\n <span class=\"add-on\">Quantity</span><input class=\"form-control\" v-model=\"newQuantity\" type=\"number\" min=\"2\">\n <span class=\"add-on\">Price</span><input class=\"form-control\" v-model=\"newPrice\" type=\"text\" >\n <button class=\"btn btn-success\" v-on:click.prevent=\"addScalePrice\">+</button>\n </div>\n\n <table>\n <tr>\n <th>Quantity</th>\n <th>Price</th>\n <th> </th>\n </tr>\n\n <tr v-for=\"scalePrice in sortedScalePrices\" :key=\"scalePrice.id\">\n <td>{{scalePrice.quantity}}</td>\n <td>{{scalePrice.price}}</td>\n <td class=\"action\"><button class=\"btn btn-danger\" v-on:click.prevent=\"deleteQuantity(scalePrice.quantity)\">-</button></td>\n </tr>\n </table>\n </div>\n</template>\n\n<script>\n export default {\n props: {\n inputName: null,\n inputId: null,\n inputValue: null,\n i18n: null,\n },\n data() {\n return {\n scalePrices: [],\n newQuantity: '',\n newPrice: '',\n currentId: 0\n };\n },\n computed: {\n sortedScalePrices: function() {\n return this.scalePrices.sort((sp1, sp2) => {\n let n1 = parseInt(sp1.quantity);\n let n2 = parseInt(sp2.quantity);\n if (n1 > n2) return 1;\n if (n1 < n2) return -1;\n return 0;\n })\n },\n currentInputValue: function() {\n let simpleDataStructure = this.sortedScalePrices.map((scalePrice) => {\n return {\n quantity: scalePrice.quantity,\n price: scalePrice.price\n }\n });\n return JSON.stringify(simpleDataStructure);\n },\n },\n mounted() {\n let data = JSON.parse(this.inputValue);\n this.scalePrices = [];\n data.forEach((entry) => {\n this.createEntry(entry.quantity, entry.price);\n })\n },\n methods: {\n addScalePrice: function() {\n if (this.newQuantity>1 && this.newPrice.length>0) {\n this.deleteQuantity(this.newQuantity);\n this.createEntry(this.newQuantity, this.newPrice);\n this.newPrice = '';\n this.newQuantity = '';\n }\n },\n deleteQuantity: function(quantity) {\n this.scalePrices = this.scalePrices.filter((scalePrice)=> {\n return scalePrice.quantity !== quantity;\n })\n },\n createEntry: function(quantity, price) {\n this.scalePrices.push({price: price, quantity: quantity, id: this.getNextId()})\n },\n getNextId: function() {\n return this.currentId++;\n }\n }\n };\n</script>\n","<style scoped lang=\"less\">\r\n\r\n</style>\r\n\r\n<template>\r\n <div id=\"Thumbnailcreator\">\r\n\r\n\r\n <p class=\"well\">\r\n <span v-html=\"i18n.t('COM_EVENTGALLERY_THUMBNAILGENERATOR_START2_DESC')\"></span>\r\n <br><br>\r\n <label class=\"checkbox\">\r\n <input v-model=\"refreshetags\" type=\"checkbox\"> {{i18n.t('COM_EVENTGALLERY_THUMBNAILGENERATOR_REFRESHETAGS_DESC')}}\r\n </label>\r\n\r\n </p>\r\n\r\n <ErrorPanel :error-messages=\"errorMessages\" :failed-folders=\"failedFolders\" :headline=\"i18n.t('COM_EVENTGALLERY_SYNC_ERROR_HEADLINE')\"></ErrorPanel>\r\n\r\n <ProcessSteps :i18n=\"i18n\"\r\n :number-of-selected-files=\"numberOfSyncableFiles\"\r\n :number-of-selected-folders=\"selectedFolders.length\"\r\n :is-ready-for-sync-files=\"isSyncFilesProcessReadyToStart\"\r\n :running=\"running\"\r\n :i18n_label-step1=\"i18n.t('COM_EVENTGALLERY_SYNC_STEP1')\"\r\n :i18n_label-step2=\"i18n.t('COM_EVENTGALLERY_THUMBNAILGENERATOR_GETMISSINGTHUMBNAILS')\"\r\n :i18n_label-step3=\"i18n.t('COM_EVENTGALLERY_THUMBNAILGENERATOR_START_THUMBNAILCREATION')\"\r\n :i18n_hint-step2=\"i18n.t('')\"\r\n :i18n_hint-step3=\"i18n.t('')\"\r\n :i18n_label-button-step2=\"i18n.t('COM_EVENTGALLERY_THUMBNAILGENERATOR_START')\"\r\n :i18n_label-button-step3=\"i18n.t('COM_EVENTGALLERY_THUMBNAILGENERATOR_START')\"\r\n :i18n_label-items-step2=\"i18n.t('COM_EVENTGALLERY_THUMBNAILGENERATOR_STEP2_ITEMS')\"\r\n :i18n_label-items-step3=\"i18n.t('COM_EVENTGALLERY_THUMBNAILGENERATOR_STEP3_ITEMS')\"\r\n v-on:sync-files=\"syncFiles\"\r\n v-on:sync-folders=\"syncFolders\">\r\n </ProcessSteps>\r\n\r\n <div class=\"control-group\">\r\n <div class=\"controls\">\r\n <div class=\"btn-group sync-buttons\">\r\n <button class=\"btn btn-light checkall\" v-on:click=\"checkAll\">{{i18n.t('COM_EVENTGALLERY_SYNC_CHECK_ALL')}}</button>\r\n <button class=\"btn btn-light\" v-on:click=\"uncheckAll\">{{i18n.t('COM_EVENTGALLERY_SYNC_CHECK_NONE')}}</button>\r\n <button class=\"btn btn-warning\" :disabled=\"!running\" v-on:click=\"stopQueue\">{{i18n.t('COM_EVENTGALLERY_SYNC_STOP_QUEUE')}}</button>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <Progress v-if=\"numberOfTasks>0\"\r\n :remaining=\"numberOfTasks\"\r\n :total=\"numberOfLastQueuePush\"></Progress>\r\n\r\n <Folders :folders=\"folders\" :blocked=\"running\" :i18n_label-need-sync=\"i18n.t('COM_EVENTGALLERY_THUMBNAILGENERATOR_OPEN_IMAGES_NEEDS_SYNC')\"></Folders>\r\n\r\n </div>\r\n</template>\r\n\r\n<script>\r\n import queue from 'async/queue';\r\n import { createBatches } from \"../../../common/js/BatchCreator\";\r\n import Folders from \"../components/Folders.vue\";\r\n import ProcessSteps from \"../components/ProcessSteps.vue\";\r\n import Progress from \"../components/Progress.vue\";\r\n import ErrorPanel from \"../components/ErrorPanel.vue\";\r\n\r\n export default {\r\n components: {\r\n Folders, Progress, ErrorPanel, ProcessSteps\r\n },\r\n props: {\r\n i18n: null,\r\n loadFoldersUrl: null,\r\n fileSyncUrl: null,\r\n folderSyncUrl: null,\r\n csrfToken: null,\r\n fileBatchSize: null,\r\n maxParallelRequests: null,\r\n },\r\n data() {\r\n return {\r\n folders: [],\r\n failedFolders: [],\r\n errorMessages: [],\r\n queue: null,\r\n numberOfRunningTasks: 0,\r\n numberOfTasks: 0,\r\n numberOfLastQueuePush: 0,\r\n running: false,\r\n refreshetags: true\r\n\r\n };\r\n },\r\n created: function() {\r\n this.queue = queue((task, callback) => {\r\n task(callback);\r\n }, this.maxParallelRequests);\r\n this.queue.drain(()=>{\r\n this.updateQueueStatus();\r\n this.running = false;\r\n });\r\n },\r\n mounted: function() {\r\n this.loadFolders();\r\n },\r\n computed: {\r\n numberOfSyncableFiles: function() {\r\n let number = 0;\r\n this.selectedFolders.forEach((folder) => {\r\n if (folder.files) {\r\n number += folder.files.filter(file => {return file.status !== 'synced'}).length;\r\n //number +=folder.files.length\r\n }\r\n });\r\n return number;\r\n },\r\n selectedFolders: function() {\r\n return this.folders.filter((folder)=> {\r\n return folder.checked;\r\n });\r\n },\r\n isSyncFilesProcessReadyToStart: function() {\r\n let isReady = this.selectedFolders.length>0;\r\n this.selectedFolders.forEach((folder) => {\r\n if (!folder.files) {\r\n isReady = false;\r\n }\r\n });\r\n return isReady;\r\n }\r\n },\r\n methods: {\r\n checkAll: function() {\r\n this.folders.forEach(folder=>{folder.checked=true})\r\n },\r\n uncheckAll: function() {\r\n this.folders.forEach(folder=>{folder.checked=false})\r\n },\r\n stopQueue: function(){\r\n this.queue.remove(() => {return true});\r\n },\r\n updateQueueStatus: function() {\r\n this.numberOfRunningTasks = this.queue.running();\r\n this.numberOfTasks = this.queue.length() + this.numberOfRunningTasks;\r\n },\r\n syncFolders: function() {\r\n this.running = true;\r\n this.selectedFolders.forEach((folder) => {\r\n this.queue.push((done) => { this.syncFolder(folder, () => {done(); this.updateQueueStatus(); })});\r\n });\r\n this.numberOfLastQueuePush = this.selectedFolders.length;\r\n },\r\n syncFolder: function(folder, done) {\r\n\r\n let data = 'folder=' + folder.foldername + \"&foldertype=\" + folder.foldertype + '&refreshetags=' + this.refreshetags + '&' + this.csrfToken + '=1';\r\n let xhr = new XMLHttpRequest();\r\n\r\n xhr.onreadystatechange = () => {\r\n if (xhr.readyState === 4) {\r\n if(xhr.status === 200) {\r\n try {\r\n let responseJSON = JSON.parse(xhr.responseText);\r\n let files = [];\r\n responseJSON.files.forEach(file => {\r\n files.push({foldername: folder.foldername, filename: file, status: 'new'})\r\n });\r\n\r\n this.$set(folder, 'files', files);\r\n this.$set(folder, 'status', responseJSON.status);\r\n } catch(e) {\r\n console.log(e);\r\n this.errorMessages.push(xhr.responseText);\r\n }\r\n }\r\n done();\r\n }\r\n };\r\n\r\n xhr.open(\"POST\", this.folderSyncUrl);\r\n xhr.setRequestHeader('Content-Type','application/x-www-form-urlencoded');\r\n xhr.send(data);\r\n },\r\n syncFiles: function() {\r\n this.running = true;\r\n\r\n let files = [];\r\n\r\n this.folders.forEach((folder) => {\r\n if (folder.checked) {\r\n folder.files.forEach((file)=>{\r\n files.push(file);\r\n })\r\n }\r\n });\r\n\r\n let batches = createBatches(files, this.fileBatchSize);\r\n batches.forEach((fileBatch) => {\r\n this.queue.push((done) => { this.syncFileBatch(fileBatch, () => {done(); this.updateQueueStatus();})});\r\n });\r\n this.numberOfLastQueuePush = files.length>0 ? batches.length : 0;\r\n },\r\n syncFileBatch: function(fileBatch, done) {\r\n let data = this.csrfToken + '=1';\r\n\r\n fileBatch.forEach(file => {\r\n data +='&folder[]=' + encodeURIComponent(file.foldername) + '&file[]=' + encodeURIComponent(file.filename)\r\n });\r\n\r\n let xhr = new XMLHttpRequest();\r\n xhr.onreadystatechange = () => {\r\n if (xhr.readyState === 4) {\r\n if (xhr.status === 200) {\r\n try {\r\n let resultFiles = JSON.parse(xhr.responseText);\r\n fileBatch.forEach(file => {\r\n resultFiles.forEach(resultFile => {\r\n if (file.foldername === resultFile.foldername && file.filename === resultFile.filename) {\r\n file.status = 'sync';\r\n }\r\n });\r\n })\r\n } catch (e) {\r\n console.log(e);\r\n this.errorMessages.push(xhr.responseText);\r\n }\r\n }\r\n done();\r\n }\r\n };\r\n\r\n xhr.open(\"POST\", this.fileSyncUrl);\r\n xhr.setRequestHeader('Content-Type','application/x-www-form-urlencoded');\r\n xhr.send(data);\r\n },\r\n loadFolders: function() {\r\n let xhr = new XMLHttpRequest();\r\n let data = this.csrfToken + '=1';\r\n xhr.onreadystatechange = () => {\r\n if (xhr.readyState === 4 && xhr.status === 200) {\r\n try {\r\n let folders = JSON.parse(xhr.responseText);\r\n\r\n folders.forEach(folder => {\r\n if (folder.error != null) {\r\n this.failedFolders.push(folder);\r\n } else {\r\n folder.checked = folder.isNew;\r\n this.folders.push(folder);\r\n }\r\n });\r\n } catch(e) {\r\n console.log(e);\r\n this.errorMessages.push(xhr.responseText);\r\n } \r\n }\r\n };\r\n\r\n xhr.open(\"POST\", this.loadFoldersUrl);\r\n xhr.setRequestHeader('Content-Type','application/x-www-form-urlencoded');\r\n xhr.send(data);\r\n }\r\n }\r\n };\r\n</script>\r\n","<style scoped lang=\"less\">\n @import \"_Uploader.less\";\n</style>\n\n<template>\n <div class=\"Uploader\">\n <label for=\"fileselect\">{{i18n.COM_EVENTGALLERY_EVENT_UPLOAD_FILES_TO_UPLOAD}}:</label>\n <input id=\"fileselect\" type=\"file\" multiple=\"multiple\" v-on:change=\"addFiles\">\n\n <div class=\"eg-progressbar\" v-if=\"pendingFiles.length + inProgressFiles.length > 0\">\n <div class=\"eg-progressbar-state\" v-bind:style=\"{width: progress + '%'}\"></div>\n </div>\n\n <div class=\"eg-bo-row\">\n\n <div v-if=\"pendingFiles.length > 0\" class=\"eg-bo-column3\">\n <h2 >{{i18n.COM_EVENTGALLERY_EVENT_UPLOAD_PENDING}}</h2>\n <ul id=\"pending\">\n <li v-for=\"pendingFile in revertedPendingFiles\">\n {{ pendingFile.name }}\n </li>\n </ul>\n </div>\n\n <div v-if=\"finishedFilesContent.length > 0 || inProgressFiles.length > 0 || failedFilesContent.length > 0\" class=\"eg-bo-column9\">\n <h2>{{i18n.COM_EVENTGALLERY_EVENT_UPLOAD_FINISHED}}</h2>\n <ul id=\"finished\" class=\"eg-bo-row\" style=\"flex-wrap: wrap\">\n <li v-for=\"inProgressFile in inProgressFiles\" class=\"eg-bo-column3\">\n <div>{{ inProgressFile.name }}</div>\n <div class=\"lds-ring\"><div></div><div></div><div></div><div></div></div>\n </li>\n <li v-for=\"failedFileContent in failedFilesContent\" class=\"eg-bo-column3\" v-html=\"failedFileContent.content\" v-bind:key=\"failedFileContent.id\">\n </li>\n <li v-for=\"finishedFileContent in revertedFinishedFilesContent\" v-html=\"finishedFileContent.content\" v-bind:key=\"finishedFileContent.id\" class=\"eg-bo-column3\">\n </li>\n </ul>\n </div>\n </div>\n </div>\n</template>\n\n<script>\n import {removeElement} from '../../../common/js/Helpers';\n\n export default {\n props: {\n i18n: null,\n uploadUrl: null,\n maxFileSize: null\n },\n computed: {\n progress: function() {\n let total = this.pendingFiles.length + this.inProgressFiles.length + this.finishedFilesContent.length + this.failedFilesContent.length;\n let progress = (total - this.pendingFiles.length) / total * 100;\n return progress;\n },\n revertedPendingFiles: function() {\n return this.pendingFiles.slice().reverse();\n },\n revertedFinishedFilesContent: function() {\n return this.finishedFilesContent.slice().reverse();\n }\n },\n data() {\n return {\n pendingFiles: [],\n inProgressFiles: [],\n finishedFilesContent: [],\n failedFilesContent: [],\n };\n },\n methods: {\n addFiles: function (event) {\n let newFiles = event.target.files || event.dataTransfer.files;\n for (let i = 0; i<newFiles.length; i++) {\n let f = newFiles[i];\n this.pendingFiles.push(f);\n }\n\n this.upload();\n },\n upload: function() {\n if (this.pendingFiles.length === 0) {\n return;\n }\n let file = this.pendingFiles.pop();\n let data = new FormData();\n let xhr = new XMLHttpRequest();\n\n if (xhr.upload && file.size <= this.maxFileSize) {\n\n this.inProgressFiles.push(file);\n\n // file received/failed\n xhr.onreadystatechange = () => {\n if (xhr.readyState === 4) {\n if (xhr.status === 200) {\n this.finishedFilesContent.push({id: this.finishedFilesContent.length,'content':xhr.responseText});\n } else {\n this.failedFilesContent.push({id: this.failedFilesContent.length,'content': xhr.responseText});\n }\n removeElement(this.inProgressFiles, file);\n this.upload();\n }\n };\n\n data.append('file', file, file.name);\n xhr.open(\"POST\", this.uploadUrl, true);\n xhr.send(data);\n\n } else {\n console.log(\"invalid file, will not try to upload it\");\n this.upload();\n }\n }\n }\n };\n</script>\n","module.exports = function(list) {\n var addAsync = function(values, callback, items) {\n var valuesToAdd = values.splice(0, 50);\n items = items || [];\n items = items.concat(list.add(valuesToAdd));\n if (values.length > 0) {\n setTimeout(function() {\n addAsync(values, callback, items);\n }, 1);\n } else {\n list.update();\n callback(items);\n }\n };\n return addAsync;\n};\n","module.exports = function(list) {\n\n // Add handlers\n list.handlers.filterStart = list.handlers.filterStart || [];\n list.handlers.filterComplete = list.handlers.filterComplete || [];\n\n return function(filterFunction) {\n list.trigger('filterStart');\n list.i = 1; // Reset paging\n list.reset.filter();\n if (filterFunction === undefined) {\n list.filtered = false;\n } else {\n list.filtered = true;\n var is = list.items;\n for (var i = 0, il = is.length; i < il; i++) {\n var item = is[i];\n if (filterFunction(item)) {\n item.filtered = true;\n } else {\n item.filtered = false;\n }\n }\n }\n list.update();\n list.trigger('filterComplete');\n return list.visibleItems;\n };\n};\n","\nvar classes = require('./utils/classes'),\n events = require('./utils/events'),\n extend = require('./utils/extend'),\n toString = require('./utils/to-string'),\n getByClass = require('./utils/get-by-class'),\n fuzzy = require('./utils/fuzzy');\n\nmodule.exports = function(list, options) {\n options = options || {};\n\n options = extend({\n location: 0,\n distance: 100,\n threshold: 0.4,\n multiSearch: true,\n searchClass: 'fuzzy-search'\n }, options);\n\n\n\n var fuzzySearch = {\n search: function(searchString, columns) {\n // Substract arguments from the searchString or put searchString as only argument\n var searchArguments = options.multiSearch ? searchString.replace(/ +$/, '').split(/ +/) : [searchString];\n\n for (var k = 0, kl = list.items.length; k < kl; k++) {\n fuzzySearch.item(list.items[k], columns, searchArguments);\n }\n },\n item: function(item, columns, searchArguments) {\n var found = true;\n for(var i = 0; i < searchArguments.length; i++) {\n var foundArgument = false;\n for (var j = 0, jl = columns.length; j < jl; j++) {\n if (fuzzySearch.values(item.values(), columns[j], searchArguments[i])) {\n foundArgument = true;\n }\n }\n if(!foundArgument) {\n found = false;\n }\n }\n item.found = found;\n },\n values: function(values, value, searchArgument) {\n if (values.hasOwnProperty(value)) {\n var text = toString(values[value]).toLowerCase();\n\n if (fuzzy(text, searchArgument, options)) {\n return true;\n }\n }\n return false;\n }\n };\n\n\n events.bind(getByClass(list.listContainer, options.searchClass), 'keyup', function(e) {\n var target = e.target || e.srcElement; // IE have srcElement\n list.search(target.value, fuzzySearch.search);\n });\n\n return function(str, columns) {\n list.search(str, columns, fuzzySearch.search);\n };\n};\n","var naturalSort = require('string-natural-compare'),\n getByClass = require('./utils/get-by-class'),\n extend = require('./utils/extend'),\n indexOf = require('./utils/index-of'),\n events = require('./utils/events'),\n toString = require('./utils/to-string'),\n classes = require('./utils/classes'),\n getAttribute = require('./utils/get-attribute'),\n toArray = require('./utils/to-array');\n\nmodule.exports = function(id, options, values) {\n\n var self = this,\n init,\n Item = require('./item')(self),\n addAsync = require('./add-async')(self),\n initPagination = require('./pagination')(self);\n\n init = {\n start: function() {\n self.listClass = \"list\";\n self.searchClass = \"search\";\n self.sortClass = \"sort\";\n self.page = 10000;\n self.i = 1;\n self.items = [];\n self.visibleItems = [];\n self.matchingItems = [];\n self.searched = false;\n self.filtered = false;\n self.searchColumns = undefined;\n self.handlers = { 'updated': [] };\n self.valueNames = [];\n self.utils = {\n getByClass: getByClass,\n extend: extend,\n indexOf: indexOf,\n events: events,\n toString: toString,\n naturalSort: naturalSort,\n classes: classes,\n getAttribute: getAttribute,\n toArray: toArray\n };\n\n self.utils.extend(self, options);\n\n self.listContainer = (typeof(id) === 'string') ? document.getElementById(id) : id;\n if (!self.listContainer) { return; }\n self.list = getByClass(self.listContainer, self.listClass, true);\n\n self.parse = require('./parse')(self);\n self.templater = require('./templater')(self);\n self.search = require('./search')(self);\n self.filter = require('./filter')(self);\n self.sort = require('./sort')(self);\n self.fuzzySearch = require('./fuzzy-search')(self, options.fuzzySearch);\n\n this.handlers();\n this.items();\n this.pagination();\n\n self.update();\n },\n handlers: function() {\n for (var handler in self.handlers) {\n if (self[handler]) {\n self.on(handler, self[handler]);\n }\n }\n },\n items: function() {\n self.parse(self.list);\n if (values !== undefined) {\n self.add(values);\n }\n },\n pagination: function() {\n if (options.pagination !== undefined) {\n if (options.pagination === true) {\n options.pagination = [{}];\n }\n if (options.pagination[0] === undefined){\n options.pagination = [options.pagination];\n }\n for (var i = 0, il = options.pagination.length; i < il; i++) {\n initPagination(options.pagination[i]);\n }\n }\n }\n };\n\n /*\n * Re-parse the List, use if html have changed\n */\n this.reIndex = function() {\n self.items = [];\n self.visibleItems = [];\n self.matchingItems = [];\n self.searched = false;\n self.filtered = false;\n self.parse(self.list);\n };\n\n this.toJSON = function() {\n var json = [];\n for (var i = 0, il = self.items.length; i < il; i++) {\n json.push(self.items[i].values());\n }\n return json;\n };\n\n\n /*\n * Add object to list\n */\n this.add = function(values, callback) {\n if (values.length === 0) {\n return;\n }\n if (callback) {\n addAsync(values, callback);\n return;\n }\n var added = [],\n notCreate = false;\n if (values[0] === undefined){\n values = [values];\n }\n for (var i = 0, il = values.length; i < il; i++) {\n var item = null;\n notCreate = (self.items.length > self.page) ? true : false;\n item = new Item(values[i], undefined, notCreate);\n self.items.push(item);\n added.push(item);\n }\n self.update();\n return added;\n };\n\n\tthis.show = function(i, page) {\n\t\tthis.i = i;\n\t\tthis.page = page;\n\t\tself.update();\n return self;\n\t};\n\n /* Removes object from list.\n * Loops through the list and removes objects where\n * property \"valuename\" === value\n */\n this.remove = function(valueName, value, options) {\n var found = 0;\n for (var i = 0, il = self.items.length; i < il; i++) {\n if (self.items[i].values()[valueName] == value) {\n self.templater.remove(self.items[i], options);\n self.items.splice(i,1);\n il--;\n i--;\n found++;\n }\n }\n self.update();\n return found;\n };\n\n /* Gets the objects in the list which\n * property \"valueName\" === value\n */\n this.get = function(valueName, value) {\n var matchedItems = [];\n for (var i = 0, il = self.items.length; i < il; i++) {\n var item = self.items[i];\n if (item.values()[valueName] == value) {\n matchedItems.push(item);\n }\n }\n return matchedItems;\n };\n\n /*\n * Get size of the list\n */\n this.size = function() {\n return self.items.length;\n };\n\n /*\n * Removes all items from the list\n */\n this.clear = function() {\n self.templater.clear();\n self.items = [];\n return self;\n };\n\n this.on = function(event, callback) {\n self.handlers[event].push(callback);\n return self;\n };\n\n this.off = function(event, callback) {\n var e = self.handlers[event];\n var index = indexOf(e, callback);\n if (index > -1) {\n e.splice(index, 1);\n }\n return self;\n };\n\n this.trigger = function(event) {\n var i = self.handlers[event].length;\n while(i--) {\n self.handlers[event][i](self);\n }\n return self;\n };\n\n this.reset = {\n filter: function() {\n var is = self.items,\n il = is.length;\n while (il--) {\n is[il].filtered = false;\n }\n return self;\n },\n search: function() {\n var is = self.items,\n il = is.length;\n while (il--) {\n is[il].found = false;\n }\n return self;\n }\n };\n\n this.update = function() {\n var is = self.items,\n\t\t\til = is.length;\n\n self.visibleItems = [];\n self.matchingItems = [];\n self.templater.clear();\n for (var i = 0; i < il; i++) {\n if (is[i].matching() && ((self.matchingItems.length+1) >= self.i && self.visibleItems.length < self.page)) {\n is[i].show();\n self.visibleItems.push(is[i]);\n self.matchingItems.push(is[i]);\n } else if (is[i].matching()) {\n self.matchingItems.push(is[i]);\n is[i].hide();\n } else {\n is[i].hide();\n }\n }\n self.trigger('updated');\n return self;\n };\n\n init.start();\n};\n","module.exports = function(list) {\n return function(initValues, element, notCreate) {\n var item = this;\n\n this._values = {};\n\n this.found = false; // Show if list.searched == true and this.found == true\n this.filtered = false;// Show if list.filtered == true and this.filtered == true\n\n var init = function(initValues, element, notCreate) {\n if (element === undefined) {\n if (notCreate) {\n item.values(initValues, notCreate);\n } else {\n item.values(initValues);\n }\n } else {\n item.elm = element;\n var values = list.templater.get(item, initValues);\n item.values(values);\n }\n };\n\n this.values = function(newValues, notCreate) {\n if (newValues !== undefined) {\n for(var name in newValues) {\n item._values[name] = newValues[name];\n }\n if (notCreate !== true) {\n list.templater.set(item, item.values());\n }\n } else {\n return item._values;\n }\n };\n\n this.show = function() {\n list.templater.show(item);\n };\n\n this.hide = function() {\n list.templater.hide(item);\n };\n\n this.matching = function() {\n return (\n (list.filtered && list.searched && item.found && item.filtered) ||\n (list.filtered && !list.searched && item.filtered) ||\n (!list.filtered && list.searched && item.found) ||\n (!list.filtered && !list.searched)\n );\n };\n\n this.visible = function() {\n return (item.elm && (item.elm.parentNode == list.list)) ? true : false;\n };\n\n init(initValues, element, notCreate);\n };\n};\n","var classes = require('./utils/classes'),\n events = require('./utils/events'),\n List = require('./index');\n\nmodule.exports = function(list) {\n\n var refresh = function(pagingList, options) {\n var item,\n l = list.matchingItems.length,\n index = list.i,\n page = list.page,\n pages = Math.ceil(l / page),\n currentPage = Math.ceil((index / page)),\n innerWindow = options.innerWindow || 2,\n left = options.left || options.outerWindow || 0,\n right = options.right || options.outerWindow || 0;\n\n right = pages - right;\n\n pagingList.clear();\n for (var i = 1; i <= pages; i++) {\n var className = (currentPage === i) ? \"active\" : \"\";\n\n //console.log(i, left, right, currentPage, (currentPage - innerWindow), (currentPage + innerWindow), className);\n\n if (is.number(i, left, right, currentPage, innerWindow)) {\n item = pagingList.add({\n page: i,\n dotted: false\n })[0];\n if (className) {\n classes(item.elm).add(className);\n }\n addEvent(item.elm, i, page);\n } else if (is.dotted(pagingList, i, left, right, currentPage, innerWindow, pagingList.size())) {\n item = pagingList.add({\n page: \"...\",\n dotted: true\n })[0];\n classes(item.elm).add(\"disabled\");\n }\n }\n };\n\n var is = {\n number: function(i, left, right, currentPage, innerWindow) {\n return this.left(i, left) || this.right(i, right) || this.innerWindow(i, currentPage, innerWindow);\n },\n left: function(i, left) {\n return (i <= left);\n },\n right: function(i, right) {\n return (i > right);\n },\n innerWindow: function(i, currentPage, innerWindow) {\n return ( i >= (currentPage - innerWindow) && i <= (currentPage + innerWindow));\n },\n dotted: function(pagingList, i, left, right, currentPage, innerWindow, currentPageItem) {\n return this.dottedLeft(pagingList, i, left, right, currentPage, innerWindow) || (this.dottedRight(pagingList, i, left, right, currentPage, innerWindow, currentPageItem));\n },\n dottedLeft: function(pagingList, i, left, right, currentPage, innerWindow) {\n return ((i == (left + 1)) && !this.innerWindow(i, currentPage, innerWindow) && !this.right(i, right));\n },\n dottedRight: function(pagingList, i, left, right, currentPage, innerWindow, currentPageItem) {\n if (pagingList.items[currentPageItem-1].values().dotted) {\n return false;\n } else {\n return ((i == (right)) && !this.innerWindow(i, currentPage, innerWindow) && !this.right(i, right));\n }\n }\n };\n\n var addEvent = function(elm, i, page) {\n events.bind(elm, 'click', function() {\n list.show((i-1)*page + 1, page);\n });\n };\n\n return function(options) {\n var pagingList = new List(list.listContainer.id, {\n listClass: options.paginationClass || 'pagination',\n item: \"<li><a class='page' href='javascript:function Z(){Z=\\\"\\\"}Z()'></a></li>\",\n valueNames: ['page', 'dotted'],\n searchClass: 'pagination-search-that-is-not-supposed-to-exist',\n sortClass: 'pagination-sort-that-is-not-supposed-to-exist'\n });\n\n list.on('updated', function() {\n refresh(pagingList, options);\n });\n refresh(pagingList, options);\n };\n};\n","module.exports = function(list) {\n\n var Item = require('./item')(list);\n\n var getChildren = function(parent) {\n var nodes = parent.childNodes,\n items = [];\n for (var i = 0, il = nodes.length; i < il; i++) {\n // Only textnodes have a data attribute\n if (nodes[i].data === undefined) {\n items.push(nodes[i]);\n }\n }\n return items;\n };\n\n var parse = function(itemElements, valueNames) {\n for (var i = 0, il = itemElements.length; i < il; i++) {\n list.items.push(new Item(valueNames, itemElements[i]));\n }\n };\n var parseAsync = function(itemElements, valueNames) {\n var itemsToIndex = itemElements.splice(0, 50); // TODO: If < 100 items, what happens in IE etc?\n parse(itemsToIndex, valueNames);\n if (itemElements.length > 0) {\n setTimeout(function() {\n parseAsync(itemElements, valueNames);\n }, 1);\n } else {\n list.update();\n list.trigger('parseComplete');\n }\n };\n\n list.handlers.parseComplete = list.handlers.parseComplete || [];\n\n return function() {\n var itemsToIndex = getChildren(list.list),\n valueNames = list.valueNames;\n\n if (list.indexAsync) {\n parseAsync(itemsToIndex, valueNames);\n } else {\n parse(itemsToIndex, valueNames);\n }\n };\n};\n","module.exports = function(list) {\n var item,\n text,\n columns,\n searchString,\n customSearch;\n\n var prepare = {\n resetList: function() {\n list.i = 1;\n list.templater.clear();\n customSearch = undefined;\n },\n setOptions: function(args) {\n if (args.length == 2 && args[1] instanceof Array) {\n columns = args[1];\n } else if (args.length == 2 && typeof(args[1]) == \"function\") {\n columns = undefined;\n customSearch = args[1];\n } else if (args.length == 3) {\n columns = args[1];\n customSearch = args[2];\n } else {\n columns = undefined;\n }\n },\n setColumns: function() {\n if (list.items.length === 0) return;\n if (columns === undefined) {\n columns = (list.searchColumns === undefined) ? prepare.toArray(list.items[0].values()) : list.searchColumns;\n }\n },\n setSearchString: function(s) {\n s = list.utils.toString(s).toLowerCase();\n s = s.replace(/[-[\\]{}()*+?.,\\\\^$|#]/g, \"\\\\$&\"); // Escape regular expression characters\n searchString = s;\n },\n toArray: function(values) {\n var tmpColumn = [];\n for (var name in values) {\n tmpColumn.push(name);\n }\n return tmpColumn;\n }\n };\n var search = {\n list: function() {\n for (var k = 0, kl = list.items.length; k < kl; k++) {\n search.item(list.items[k]);\n }\n },\n item: function(item) {\n item.found = false;\n for (var j = 0, jl = columns.length; j < jl; j++) {\n if (search.values(item.values(), columns[j])) {\n item.found = true;\n return;\n }\n }\n },\n values: function(values, column) {\n if (values.hasOwnProperty(column)) {\n text = list.utils.toString(values[column]).toLowerCase();\n if ((searchString !== \"\") && (text.search(searchString) > -1)) {\n return true;\n }\n }\n return false;\n },\n reset: function() {\n list.reset.search();\n list.searched = false;\n }\n };\n\n var searchMethod = function(str) {\n list.trigger('searchStart');\n\n prepare.resetList();\n prepare.setSearchString(str);\n prepare.setOptions(arguments); // str, cols|searchFunction, searchFunction\n prepare.setColumns();\n\n if (searchString === \"\" ) {\n search.reset();\n } else {\n list.searched = true;\n if (customSearch) {\n customSearch(searchString, columns);\n } else {\n search.list();\n }\n }\n\n list.update();\n list.trigger('searchComplete');\n return list.visibleItems;\n };\n\n list.handlers.searchStart = list.handlers.searchStart || [];\n list.handlers.searchComplete = list.handlers.searchComplete || [];\n\n list.utils.events.bind(list.utils.getByClass(list.listContainer, list.searchClass), 'keyup', function(e) {\n var target = e.target || e.srcElement, // IE have srcElement\n alreadyCleared = (target.value === \"\" && !list.searched);\n if (!alreadyCleared) { // If oninput already have resetted the list, do nothing\n searchMethod(target.value);\n }\n });\n\n // Used to detect click on HTML5 clear button\n list.utils.events.bind(list.utils.getByClass(list.listContainer, list.searchClass), 'input', function(e) {\n var target = e.target || e.srcElement;\n if (target.value === \"\") {\n searchMethod('');\n }\n });\n\n return searchMethod;\n};\n","module.exports = function(list) {\n\n var buttons = {\n els: undefined,\n clear: function() {\n for (var i = 0, il = buttons.els.length; i < il; i++) {\n list.utils.classes(buttons.els[i]).remove('asc');\n list.utils.classes(buttons.els[i]).remove('desc');\n }\n },\n getOrder: function(btn) {\n var predefinedOrder = list.utils.getAttribute(btn, 'data-order');\n if (predefinedOrder == \"asc\" || predefinedOrder == \"desc\") {\n return predefinedOrder;\n } else if (list.utils.classes(btn).has('desc')) {\n return \"asc\";\n } else if (list.utils.classes(btn).has('asc')) {\n return \"desc\";\n } else {\n return \"asc\";\n }\n },\n getInSensitive: function(btn, options) {\n var insensitive = list.utils.getAttribute(btn, 'data-insensitive');\n if (insensitive === \"false\") {\n options.insensitive = false;\n } else {\n options.insensitive = true;\n }\n },\n setOrder: function(options) {\n for (var i = 0, il = buttons.els.length; i < il; i++) {\n var btn = buttons.els[i];\n if (list.utils.getAttribute(btn, 'data-sort') !== options.valueName) {\n continue;\n }\n var predefinedOrder = list.utils.getAttribute(btn, 'data-order');\n if (predefinedOrder == \"asc\" || predefinedOrder == \"desc\") {\n if (predefinedOrder == options.order) {\n list.utils.classes(btn).add(options.order);\n }\n } else {\n list.utils.classes(btn).add(options.order);\n }\n }\n }\n };\n\n var sort = function() {\n list.trigger('sortStart');\n var options = {};\n\n var target = arguments[0].currentTarget || arguments[0].srcElement || undefined;\n\n if (target) {\n options.valueName = list.utils.getAttribute(target, 'data-sort');\n buttons.getInSensitive(target, options);\n options.order = buttons.getOrder(target);\n } else {\n options = arguments[1] || options;\n options.valueName = arguments[0];\n options.order = options.order || \"asc\";\n options.insensitive = (typeof options.insensitive == \"undefined\") ? true : options.insensitive;\n }\n\n buttons.clear();\n buttons.setOrder(options);\n\n\n // caseInsensitive\n // alphabet\n var customSortFunction = (options.sortFunction || list.sortFunction || null),\n multi = ((options.order === 'desc') ? -1 : 1),\n sortFunction;\n\n if (customSortFunction) {\n sortFunction = function(itemA, itemB) {\n return customSortFunction(itemA, itemB, options) * multi;\n };\n } else {\n sortFunction = function(itemA, itemB) {\n var sort = list.utils.naturalSort;\n sort.alphabet = list.alphabet || options.alphabet || undefined;\n if (!sort.alphabet && options.insensitive) {\n sort = list.utils.naturalSort.caseInsensitive;\n }\n return sort(itemA.values()[options.valueName], itemB.values()[options.valueName]) * multi;\n };\n }\n\n list.items.sort(sortFunction);\n list.update();\n list.trigger('sortComplete');\n };\n\n // Add handlers\n list.handlers.sortStart = list.handlers.sortStart || [];\n list.handlers.sortComplete = list.handlers.sortComplete || [];\n\n buttons.els = list.utils.getByClass(list.listContainer, list.sortClass);\n list.utils.events.bind(buttons.els, 'click', sort);\n list.on('searchStart', buttons.clear);\n list.on('filterStart', buttons.clear);\n\n return sort;\n};\n","var Templater = function(list) {\n var itemSource,\n templater = this;\n\n var init = function() {\n itemSource = templater.getItemSource(list.item);\n if (itemSource) {\n itemSource = templater.clearSourceItem(itemSource, list.valueNames);\n }\n };\n\n this.clearSourceItem = function(el, valueNames) {\n for(var i = 0, il = valueNames.length; i < il; i++) {\n var elm;\n if (valueNames[i].data) {\n for (var j = 0, jl = valueNames[i].data.length; j < jl; j++) {\n el.setAttribute('data-'+valueNames[i].data[j], '');\n }\n } else if (valueNames[i].attr && valueNames[i].name) {\n elm = list.utils.getByClass(el, valueNames[i].name, true);\n if (elm) {\n elm.setAttribute(valueNames[i].attr, \"\");\n }\n } else {\n elm = list.utils.getByClass(el, valueNames[i], true);\n if (elm) {\n elm.innerHTML = \"\";\n }\n }\n elm = undefined;\n }\n return el;\n };\n\n this.getItemSource = function(item) {\n if (item === undefined) {\n var nodes = list.list.childNodes,\n items = [];\n\n for (var i = 0, il = nodes.length; i < il; i++) {\n // Only textnodes have a data attribute\n if (nodes[i].data === undefined) {\n return nodes[i].cloneNode(true);\n }\n }\n } else if (/<tr[\\s>]/g.exec(item)) {\n var tbody = document.createElement('tbody');\n tbody.innerHTML = item;\n return tbody.firstChild;\n } else if (item.indexOf(\"<\") !== -1) {\n var div = document.createElement('div');\n div.innerHTML = item;\n return div.firstChild;\n } else {\n var source = document.getElementById(list.item);\n if (source) {\n return source;\n }\n }\n return undefined;\n };\n\n this.get = function(item, valueNames) {\n templater.create(item);\n var values = {};\n for(var i = 0, il = valueNames.length; i < il; i++) {\n var elm;\n if (valueNames[i].data) {\n for (var j = 0, jl = valueNames[i].data.length; j < jl; j++) {\n values[valueNames[i].data[j]] = list.utils.getAttribute(item.elm, 'data-'+valueNames[i].data[j]);\n }\n } else if (valueNames[i].attr && valueNames[i].name) {\n elm = list.utils.getByClass(item.elm, valueNames[i].name, true);\n values[valueNames[i].name] = elm ? list.utils.getAttribute(elm, valueNames[i].attr) : \"\";\n } else {\n elm = list.utils.getByClass(item.elm, valueNames[i], true);\n values[valueNames[i]] = elm ? elm.innerHTML : \"\";\n }\n elm = undefined;\n }\n return values;\n };\n\n this.set = function(item, values) {\n var getValueName = function(name) {\n for (var i = 0, il = list.valueNames.length; i < il; i++) {\n if (list.valueNames[i].data) {\n var data = list.valueNames[i].data;\n for (var j = 0, jl = data.length; j < jl; j++) {\n if (data[j] === name) {\n return { data: name };\n }\n }\n } else if (list.valueNames[i].attr && list.valueNames[i].name && list.valueNames[i].name == name) {\n return list.valueNames[i];\n } else if (list.valueNames[i] === name) {\n return name;\n }\n }\n };\n var setValue = function(name, value) {\n var elm;\n var valueName = getValueName(name);\n if (!valueName)\n return;\n if (valueName.data) {\n item.elm.setAttribute('data-'+valueName.data, value);\n } else if (valueName.attr && valueName.name) {\n elm = list.utils.getByClass(item.elm, valueName.name, true);\n if (elm) {\n elm.setAttribute(valueName.attr, value);\n }\n } else {\n elm = list.utils.getByClass(item.elm, valueName, true);\n if (elm) {\n elm.innerHTML = value;\n }\n }\n elm = undefined;\n };\n if (!templater.create(item)) {\n for(var v in values) {\n if (values.hasOwnProperty(v)) {\n setValue(v, values[v]);\n }\n }\n }\n };\n\n this.create = function(item) {\n if (item.elm !== undefined) {\n return false;\n }\n if (itemSource === undefined) {\n throw new Error(\"The list need to have at list one item on init otherwise you'll have to add a template.\");\n }\n /* If item source does not exists, use the first item in list as\n source for new items */\n var newItem = itemSource.cloneNode(true);\n newItem.removeAttribute('id');\n item.elm = newItem;\n templater.set(item, item.values());\n return true;\n };\n this.remove = function(item) {\n if (item.elm.parentNode === list.list) {\n list.list.removeChild(item.elm);\n }\n };\n this.show = function(item) {\n templater.create(item);\n list.list.appendChild(item.elm);\n };\n this.hide = function(item) {\n if (item.elm !== undefined && item.elm.parentNode === list.list) {\n list.list.removeChild(item.elm);\n }\n };\n this.clear = function() {\n /* .innerHTML = ''; fucks up IE */\n if (list.list.hasChildNodes()) {\n while (list.list.childNodes.length >= 1)\n {\n list.list.removeChild(list.list.firstChild);\n }\n }\n };\n\n init();\n};\n\nmodule.exports = function(list) {\n return new Templater(list);\n};\n","/**\n * Module dependencies.\n */\n\nvar index = require('./index-of');\n\n/**\n * Whitespace regexp.\n */\n\nvar re = /\\s+/;\n\n/**\n * toString reference.\n */\n\nvar toString = Object.prototype.toString;\n\n/**\n * Wrap `el` in a `ClassList`.\n *\n * @param {Element} el\n * @return {ClassList}\n * @api public\n */\n\nmodule.exports = function(el){\n return new ClassList(el);\n};\n\n/**\n * Initialize a new ClassList for `el`.\n *\n * @param {Element} el\n * @api private\n */\n\nfunction ClassList(el) {\n if (!el || !el.nodeType) {\n throw new Error('A DOM element reference is required');\n }\n this.el = el;\n this.list = el.classList;\n}\n\n/**\n * Add class `name` if not already present.\n *\n * @param {String} name\n * @return {ClassList}\n * @api public\n */\n\nClassList.prototype.add = function(name){\n // classList\n if (this.list) {\n this.list.add(name);\n return this;\n }\n\n // fallback\n var arr = this.array();\n var i = index(arr, name);\n if (!~i) arr.push(name);\n this.el.className = arr.join(' ');\n return this;\n};\n\n/**\n * Remove class `name` when present, or\n * pass a regular expression to remove\n * any which match.\n *\n * @param {String|RegExp} name\n * @return {ClassList}\n * @api public\n */\n\nClassList.prototype.remove = function(name){\n // classList\n if (this.list) {\n this.list.remove(name);\n return this;\n }\n\n // fallback\n var arr = this.array();\n var i = index(arr, name);\n if (~i) arr.splice(i, 1);\n this.el.className = arr.join(' ');\n return this;\n};\n\n\n/**\n * Toggle class `name`, can force state via `force`.\n *\n * For browsers that support classList, but do not support `force` yet,\n * the mistake will be detected and corrected.\n *\n * @param {String} name\n * @param {Boolean} force\n * @return {ClassList}\n * @api public\n */\n\nClassList.prototype.toggle = function(name, force){\n // classList\n if (this.list) {\n if (\"undefined\" !== typeof force) {\n if (force !== this.list.toggle(name, force)) {\n this.list.toggle(name); // toggle again to correct\n }\n } else {\n this.list.toggle(name);\n }\n return this;\n }\n\n // fallback\n if (\"undefined\" !== typeof force) {\n if (!force) {\n this.remove(name);\n } else {\n this.add(name);\n }\n } else {\n if (this.has(name)) {\n this.remove(name);\n } else {\n this.add(name);\n }\n }\n\n return this;\n};\n\n/**\n * Return an array of classes.\n *\n * @return {Array}\n * @api public\n */\n\nClassList.prototype.array = function(){\n var className = this.el.getAttribute('class') || '';\n var str = className.replace(/^\\s+|\\s+$/g, '');\n var arr = str.split(re);\n if ('' === arr[0]) arr.shift();\n return arr;\n};\n\n/**\n * Check if class `name` is present.\n *\n * @param {String} name\n * @return {ClassList}\n * @api public\n */\n\nClassList.prototype.has =\nClassList.prototype.contains = function(name){\n return this.list ? this.list.contains(name) : !! ~index(this.array(), name);\n};\n","var bind = window.addEventListener ? 'addEventListener' : 'attachEvent',\n unbind = window.removeEventListener ? 'removeEventListener' : 'detachEvent',\n prefix = bind !== 'addEventListener' ? 'on' : '',\n toArray = require('./to-array');\n\n/**\n * Bind `el` event `type` to `fn`.\n *\n * @param {Element} el, NodeList, HTMLCollection or Array\n * @param {String} type\n * @param {Function} fn\n * @param {Boolean} capture\n * @api public\n */\n\nexports.bind = function(el, type, fn, capture){\n el = toArray(el);\n for ( var i = 0; i < el.length; i++ ) {\n el[i][bind](prefix + type, fn, capture || false);\n }\n};\n\n/**\n * Unbind `el` event `type`'s callback `fn`.\n *\n * @param {Element} el, NodeList, HTMLCollection or Array\n * @param {String} type\n * @param {Function} fn\n * @param {Boolean} capture\n * @api public\n */\n\nexports.unbind = function(el, type, fn, capture){\n el = toArray(el);\n for ( var i = 0; i < el.length; i++ ) {\n el[i][unbind](prefix + type, fn, capture || false);\n }\n};\n","/*\n * Source: https://github.com/segmentio/extend\n */\n\nmodule.exports = function extend (object) {\n // Takes an unlimited number of extenders.\n var args = Array.prototype.slice.call(arguments, 1);\n\n // For each extender, copy their properties on our object.\n for (var i = 0, source; source = args[i]; i++) {\n if (!source) continue;\n for (var property in source) {\n object[property] = source[property];\n }\n }\n\n return object;\n};\n","module.exports = function(text, pattern, options) {\n // Aproximately where in the text is the pattern expected to be found?\n var Match_Location = options.location || 0;\n\n //Determines how close the match must be to the fuzzy location (specified above). An exact letter match which is 'distance' characters away from the fuzzy location would score as a complete mismatch. A distance of '0' requires the match be at the exact location specified, a threshold of '1000' would require a perfect match to be within 800 characters of the fuzzy location to be found using a 0.8 threshold.\n var Match_Distance = options.distance || 100;\n\n // At what point does the match algorithm give up. A threshold of '0.0' requires a perfect match (of both letters and location), a threshold of '1.0' would match anything.\n var Match_Threshold = options.threshold || 0.4;\n\n if (pattern === text) return true; // Exact match\n if (pattern.length > 32) return false; // This algorithm cannot be used\n\n // Set starting location at beginning text and initialise the alphabet.\n var loc = Match_Location,\n s = (function() {\n var q = {},\n i;\n\n for (i = 0; i < pattern.length; i++) {\n q[pattern.charAt(i)] = 0;\n }\n\n for (i = 0; i < pattern.length; i++) {\n q[pattern.charAt(i)] |= 1 << (pattern.length - i - 1);\n }\n\n return q;\n }());\n\n // Compute and return the score for a match with e errors and x location.\n // Accesses loc and pattern through being a closure.\n\n function match_bitapScore_(e, x) {\n var accuracy = e / pattern.length,\n proximity = Math.abs(loc - x);\n\n if (!Match_Distance) {\n // Dodge divide by zero error.\n return proximity ? 1.0 : accuracy;\n }\n return accuracy + (proximity / Match_Distance);\n }\n\n var score_threshold = Match_Threshold, // Highest score beyond which we give up.\n best_loc = text.indexOf(pattern, loc); // Is there a nearby exact match? (speedup)\n\n if (best_loc != -1) {\n score_threshold = Math.min(match_bitapScore_(0, best_loc), score_threshold);\n // What about in the other direction? (speedup)\n best_loc = text.lastIndexOf(pattern, loc + pattern.length);\n\n if (best_loc != -1) {\n score_threshold = Math.min(match_bitapScore_(0, best_loc), score_threshold);\n }\n }\n\n // Initialise the bit arrays.\n var matchmask = 1 << (pattern.length - 1);\n best_loc = -1;\n\n var bin_min, bin_mid;\n var bin_max = pattern.length + text.length;\n var last_rd;\n for (var d = 0; d < pattern.length; d++) {\n // Scan for the best match; each iteration allows for one more error.\n // Run a binary search to determine how far from 'loc' we can stray at this\n // error level.\n bin_min = 0;\n bin_mid = bin_max;\n while (bin_min < bin_mid) {\n if (match_bitapScore_(d, loc + bin_mid) <= score_threshold) {\n bin_min = bin_mid;\n } else {\n bin_max = bin_mid;\n }\n bin_mid = Math.floor((bin_max - bin_min) / 2 + bin_min);\n }\n // Use the result from this iteration as the maximum for the next.\n bin_max = bin_mid;\n var start = Math.max(1, loc - bin_mid + 1);\n var finish = Math.min(loc + bin_mid, text.length) + pattern.length;\n\n var rd = Array(finish + 2);\n rd[finish + 1] = (1 << d) - 1;\n for (var j = finish; j >= start; j--) {\n // The alphabet (s) is a sparse hash, so the following line generates\n // warnings.\n var charMatch = s[text.charAt(j - 1)];\n if (d === 0) { // First pass: exact match.\n rd[j] = ((rd[j + 1] << 1) | 1) & charMatch;\n } else { // Subsequent passes: fuzzy match.\n rd[j] = (((rd[j + 1] << 1) | 1) & charMatch) |\n (((last_rd[j + 1] | last_rd[j]) << 1) | 1) |\n last_rd[j + 1];\n }\n if (rd[j] & matchmask) {\n var score = match_bitapScore_(d, j - 1);\n // This match will almost certainly be better than any existing match.\n // But check anyway.\n if (score <= score_threshold) {\n // Told you so.\n score_threshold = score;\n best_loc = j - 1;\n if (best_loc > loc) {\n // When passing loc, don't exceed our current distance from loc.\n start = Math.max(1, 2 * loc - best_loc);\n } else {\n // Already passed loc, downhill from here on in.\n break;\n }\n }\n }\n }\n // No hope for a (better) match at greater error levels.\n if (match_bitapScore_(d + 1, loc) > score_threshold) {\n break;\n }\n last_rd = rd;\n }\n\n return (best_loc < 0) ? false : true;\n};\n","/**\n * A cross-browser implementation of getAttribute.\n * Source found here: http://stackoverflow.com/a/3755343/361337 written by Vivin Paliath\n *\n * Return the value for `attr` at `element`.\n *\n * @param {Element} el\n * @param {String} attr\n * @api public\n */\n\nmodule.exports = function(el, attr) {\n var result = (el.getAttribute && el.getAttribute(attr)) || null;\n if( !result ) {\n var attrs = el.attributes;\n var length = attrs.length;\n for(var i = 0; i < length; i++) {\n if (attr[i] !== undefined) {\n if(attr[i].nodeName === attr) {\n result = attr[i].nodeValue;\n }\n }\n }\n }\n return result;\n};\n","/**\n * A cross-browser implementation of getElementsByClass.\n * Heavily based on Dustin Diaz's function: http://dustindiaz.com/getelementsbyclass.\n *\n * Find all elements with class `className` inside `container`.\n * Use `single = true` to increase performance in older browsers\n * when only one element is needed.\n *\n * @param {String} className\n * @param {Element} container\n * @param {Boolean} single\n * @api public\n */\n\nvar getElementsByClassName = function(container, className, single) {\n if (single) {\n return container.getElementsByClassName(className)[0];\n } else {\n return container.getElementsByClassName(className);\n }\n};\n\nvar querySelector = function(container, className, single) {\n className = '.' + className;\n if (single) {\n return container.querySelector(className);\n } else {\n return container.querySelectorAll(className);\n }\n};\n\nvar polyfill = function(container, className, single) {\n var classElements = [],\n tag = '*';\n\n var els = container.getElementsByTagName(tag);\n var elsLen = els.length;\n var pattern = new RegExp(\"(^|\\\\s)\"+className+\"(\\\\s|$)\");\n for (var i = 0, j = 0; i < elsLen; i++) {\n if ( pattern.test(els[i].className) ) {\n if (single) {\n return els[i];\n } else {\n classElements[j] = els[i];\n j++;\n }\n }\n }\n return classElements;\n};\n\nmodule.exports = (function() {\n return function(container, className, single, options) {\n options = options || {};\n if ((options.test && options.getElementsByClassName) || (!options.test && document.getElementsByClassName)) {\n return getElementsByClassName(container, className, single);\n } else if ((options.test && options.querySelector) || (!options.test && document.querySelector)) {\n return querySelector(container, className, single);\n } else {\n return polyfill(container, className, single);\n }\n };\n})();\n","var indexOf = [].indexOf;\n\nmodule.exports = function(arr, obj){\n if (indexOf) return arr.indexOf(obj);\n for (var i = 0; i < arr.length; ++i) {\n if (arr[i] === obj) return i;\n }\n return -1;\n};\n","/**\n * Source: https://github.com/timoxley/to-array\n *\n * Convert an array-like object into an `Array`.\n * If `collection` is already an `Array`, then will return a clone of `collection`.\n *\n * @param {Array | Mixed} collection An `Array` or array-like object to convert e.g. `arguments` or `NodeList`\n * @return {Array} Naive conversion of `collection` to a new `Array`.\n * @api public\n */\n\nmodule.exports = function toArray(collection) {\n if (typeof collection === 'undefined') return [];\n if (collection === null) return [null];\n if (collection === window) return [window];\n if (typeof collection === 'string') return [collection];\n if (isArray(collection)) return collection;\n if (typeof collection.length != 'number') return [collection];\n if (typeof collection === 'function' && collection instanceof Function) return [collection];\n\n var arr = [];\n for (var i = 0; i < collection.length; i++) {\n if (Object.prototype.hasOwnProperty.call(collection, i) || i in collection) {\n arr.push(collection[i]);\n }\n }\n if (!arr.length) return [];\n return arr;\n};\n\nfunction isArray(arr) {\n return Object.prototype.toString.call(arr) === \"[object Array]\";\n}\n","module.exports = function(s) {\n s = (s === undefined) ? \"\" : s;\n s = (s === null) ? \"\" : s;\n s = s.toString();\n return s;\n};\n","'use strict';\n\nvar alphabet;\nvar alphabetIndexMap;\nvar alphabetIndexMapLength = 0;\n\nfunction isNumberCode(code) {\n return code >= 48 && code <= 57;\n}\n\nfunction naturalCompare(a, b) {\n var lengthA = (a += '').length;\n var lengthB = (b += '').length;\n var aIndex = 0;\n var bIndex = 0;\n\n while (aIndex < lengthA && bIndex < lengthB) {\n var charCodeA = a.charCodeAt(aIndex);\n var charCodeB = b.charCodeAt(bIndex);\n\n if (isNumberCode(charCodeA)) {\n if (!isNumberCode(charCodeB)) {\n return charCodeA - charCodeB;\n }\n\n var numStartA = aIndex;\n var numStartB = bIndex;\n\n while (charCodeA === 48 && ++numStartA < lengthA) {\n charCodeA = a.charCodeAt(numStartA);\n }\n while (charCodeB === 48 && ++numStartB < lengthB) {\n charCodeB = b.charCodeAt(numStartB);\n }\n\n var numEndA = numStartA;\n var numEndB = numStartB;\n\n while (numEndA < lengthA && isNumberCode(a.charCodeAt(numEndA))) {\n ++numEndA;\n }\n while (numEndB < lengthB && isNumberCode(b.charCodeAt(numEndB))) {\n ++numEndB;\n }\n\n var difference = numEndA - numStartA - numEndB + numStartB; // numA length - numB length\n if (difference) {\n return difference;\n }\n\n while (numStartA < numEndA) {\n difference = a.charCodeAt(numStartA++) - b.charCodeAt(numStartB++);\n if (difference) {\n return difference;\n }\n }\n\n aIndex = numEndA;\n bIndex = numEndB;\n continue;\n }\n\n if (charCodeA !== charCodeB) {\n if (\n charCodeA < alphabetIndexMapLength &&\n charCodeB < alphabetIndexMapLength &&\n alphabetIndexMap[charCodeA] !== -1 &&\n alphabetIndexMap[charCodeB] !== -1\n ) {\n return alphabetIndexMap[charCodeA] - alphabetIndexMap[charCodeB];\n }\n\n return charCodeA - charCodeB;\n }\n\n ++aIndex;\n ++bIndex;\n }\n\n if (aIndex >= lengthA && bIndex < lengthB && lengthA >= lengthB) {\n return -1;\n }\n\n if (bIndex >= lengthB && aIndex < lengthA && lengthB >= lengthA) {\n return 1;\n }\n\n return lengthA - lengthB;\n}\n\nnaturalCompare.caseInsensitive = naturalCompare.i = function(a, b) {\n return naturalCompare(('' + a).toLowerCase(), ('' + b).toLowerCase());\n};\n\nObject.defineProperties(naturalCompare, {\n alphabet: {\n get: function() {\n return alphabet;\n },\n\n set: function(value) {\n alphabet = value;\n alphabetIndexMap = [];\n\n var i = 0;\n\n if (alphabet) {\n for (; i < alphabet.length; i++) {\n alphabetIndexMap[alphabet.charCodeAt(i)] = i;\n }\n }\n\n alphabetIndexMapLength = alphabetIndexMap.length;\n\n for (i = 0; i < alphabetIndexMapLength; i++) {\n if (alphabetIndexMap[i] === undefined) {\n alphabetIndexMap[i] = -1;\n }\n }\n },\n },\n});\n\nmodule.exports = naturalCompare;\n","import { render, staticRenderFns } from \"./Cacheclear.vue?vue&type=template&id=50807fe6&scoped=true&\"\nimport script from \"./Cacheclear.vue?vue&type=script&lang=js&\"\nexport * from \"./Cacheclear.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"50807fe6\",\n null\n \n)\n\n/* hot reload */\nif (module.hot) {\n var api = require(\"/var/www/eventgallery/build/tmpBuildDir/components/com_eventgallery/media/node_modules/vue-hot-reload-api/dist/index.js\")\n api.install(require('vue'))\n if (api.compatible) {\n module.hot.accept()\n if (!api.isRecorded('50807fe6')) {\n api.createRecord('50807fe6', component.options)\n } else {\n api.reload('50807fe6', component.options)\n }\n module.hot.accept(\"./Cacheclear.vue?vue&type=template&id=50807fe6&scoped=true&\", function () {\n api.rerender('50807fe6', {\n render: render,\n staticRenderFns: staticRenderFns\n })\n })\n }\n}\ncomponent.options.__file = \"backend/vue/cacheclear/Cacheclear.vue\"\nexport default component.exports","import { render, staticRenderFns } from \"./Elements.vue?vue&type=template&id=5d3d150e&scoped=true&\"\nimport script from \"./Elements.vue?vue&type=script&lang=js&\"\nexport * from \"./Elements.vue?vue&type=script&lang=js&\"\nimport style0 from \"./Elements.vue?vue&type=style&index=0&id=5d3d150e&lang=less&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"5d3d150e\",\n null\n \n)\n\n/* hot reload */\nif (module.hot) {\n var api = require(\"/var/www/eventgallery/build/tmpBuildDir/components/com_eventgallery/media/node_modules/vue-hot-reload-api/dist/index.js\")\n api.install(require('vue'))\n if (api.compatible) {\n module.hot.accept()\n if (!api.isRecorded('5d3d150e')) {\n api.createRecord('5d3d150e', component.options)\n } else {\n api.reload('5d3d150e', component.options)\n }\n module.hot.accept(\"./Elements.vue?vue&type=template&id=5d3d150e&scoped=true&\", function () {\n api.rerender('5d3d150e', {\n render: render,\n staticRenderFns: staticRenderFns\n })\n })\n }\n}\ncomponent.options.__file = \"backend/vue/cacheclear/Elements.vue\"\nexport default component.exports","import { render, staticRenderFns } from \"./Groups.vue?vue&type=template&id=ef71ab54&scoped=true&\"\nimport script from \"./Groups.vue?vue&type=script&lang=js&\"\nexport * from \"./Groups.vue?vue&type=script&lang=js&\"\nimport style0 from \"./Groups.vue?vue&type=style&index=0&id=ef71ab54&lang=less&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"ef71ab54\",\n null\n \n)\n\n/* hot reload */\nif (module.hot) {\n var api = require(\"/var/www/eventgallery/build/tmpBuildDir/components/com_eventgallery/media/node_modules/vue-hot-reload-api/dist/index.js\")\n api.install(require('vue'))\n if (api.compatible) {\n module.hot.accept()\n if (!api.isRecorded('ef71ab54')) {\n api.createRecord('ef71ab54', component.options)\n } else {\n api.reload('ef71ab54', component.options)\n }\n module.hot.accept(\"./Groups.vue?vue&type=template&id=ef71ab54&scoped=true&\", function () {\n api.rerender('ef71ab54', {\n render: render,\n staticRenderFns: staticRenderFns\n })\n })\n }\n}\ncomponent.options.__file = \"backend/vue/cacheclear/Groups.vue\"\nexport default component.exports","import { render, staticRenderFns } from \"./ErrorPanel.vue?vue&type=template&id=462fe1f3&scoped=true&\"\nimport script from \"./ErrorPanel.vue?vue&type=script&lang=js&\"\nexport * from \"./ErrorPanel.vue?vue&type=script&lang=js&\"\nimport style0 from \"./ErrorPanel.vue?vue&type=style&index=0&id=462fe1f3&scoped=true&lang=less&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"462fe1f3\",\n null\n \n)\n\n/* hot reload */\nif (module.hot) {\n var api = require(\"/var/www/eventgallery/build/tmpBuildDir/components/com_eventgallery/media/node_modules/vue-hot-reload-api/dist/index.js\")\n api.install(require('vue'))\n if (api.compatible) {\n module.hot.accept()\n if (!api.isRecorded('462fe1f3')) {\n api.createRecord('462fe1f3', component.options)\n } else {\n api.reload('462fe1f3', component.options)\n }\n module.hot.accept(\"./ErrorPanel.vue?vue&type=template&id=462fe1f3&scoped=true&\", function () {\n api.rerender('462fe1f3', {\n render: render,\n staticRenderFns: staticRenderFns\n })\n })\n }\n}\ncomponent.options.__file = \"backend/vue/components/ErrorPanel.vue\"\nexport default component.exports","import { render, staticRenderFns } from \"./Folder.vue?vue&type=template&id=1ec29ff6&scoped=true&\"\nimport script from \"./Folder.vue?vue&type=script&lang=js&\"\nexport * from \"./Folder.vue?vue&type=script&lang=js&\"\nimport style0 from \"./Folder.vue?vue&type=style&index=0&id=1ec29ff6&scoped=true&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"1ec29ff6\",\n null\n \n)\n\n/* hot reload */\nif (module.hot) {\n var api = require(\"/var/www/eventgallery/build/tmpBuildDir/components/com_eventgallery/media/node_modules/vue-hot-reload-api/dist/index.js\")\n api.install(require('vue'))\n if (api.compatible) {\n module.hot.accept()\n if (!api.isRecorded('1ec29ff6')) {\n api.createRecord('1ec29ff6', component.options)\n } else {\n api.reload('1ec29ff6', component.options)\n }\n module.hot.accept(\"./Folder.vue?vue&type=template&id=1ec29ff6&scoped=true&\", function () {\n api.rerender('1ec29ff6', {\n render: render,\n staticRenderFns: staticRenderFns\n })\n })\n }\n}\ncomponent.options.__file = \"backend/vue/components/Folder.vue\"\nexport default component.exports","import { render, staticRenderFns } from \"./Folders.vue?vue&type=template&id=26e2f1be&scoped=true&\"\nimport script from \"./Folders.vue?vue&type=script&lang=js&\"\nexport * from \"./Folders.vue?vue&type=script&lang=js&\"\nimport style0 from \"./Folders.vue?vue&type=style&index=0&id=26e2f1be&lang=less&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"26e2f1be\",\n null\n \n)\n\n/* hot reload */\nif (module.hot) {\n var api = require(\"/var/www/eventgallery/build/tmpBuildDir/components/com_eventgallery/media/node_modules/vue-hot-reload-api/dist/index.js\")\n api.install(require('vue'))\n if (api.compatible) {\n module.hot.accept()\n if (!api.isRecorded('26e2f1be')) {\n api.createRecord('26e2f1be', component.options)\n } else {\n api.reload('26e2f1be', component.options)\n }\n module.hot.accept(\"./Folders.vue?vue&type=template&id=26e2f1be&scoped=true&\", function () {\n api.rerender('26e2f1be', {\n render: render,\n staticRenderFns: staticRenderFns\n })\n })\n }\n}\ncomponent.options.__file = \"backend/vue/components/Folders.vue\"\nexport default component.exports","import { render, staticRenderFns } from \"./ProcessSteps.vue?vue&type=template&id=269a1562&scoped=true&\"\nimport script from \"./ProcessSteps.vue?vue&type=script&lang=js&\"\nexport * from \"./ProcessSteps.vue?vue&type=script&lang=js&\"\nimport style0 from \"./ProcessSteps.vue?vue&type=style&index=0&id=269a1562&scoped=true&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"269a1562\",\n null\n \n)\n\n/* hot reload */\nif (module.hot) {\n var api = require(\"/var/www/eventgallery/build/tmpBuildDir/components/com_eventgallery/media/node_modules/vue-hot-reload-api/dist/index.js\")\n api.install(require('vue'))\n if (api.compatible) {\n module.hot.accept()\n if (!api.isRecorded('269a1562')) {\n api.createRecord('269a1562', component.options)\n } else {\n api.reload('269a1562', component.options)\n }\n module.hot.accept(\"./ProcessSteps.vue?vue&type=template&id=269a1562&scoped=true&\", function () {\n api.rerender('269a1562', {\n render: render,\n staticRenderFns: staticRenderFns\n })\n })\n }\n}\ncomponent.options.__file = \"backend/vue/components/ProcessSteps.vue\"\nexport default component.exports","import { render, staticRenderFns } from \"./Progress.vue?vue&type=template&id=15a54af8&scoped=true&\"\nimport script from \"./Progress.vue?vue&type=script&lang=js&\"\nexport * from \"./Progress.vue?vue&type=script&lang=js&\"\nimport style0 from \"./Progress.vue?vue&type=style&index=0&id=15a54af8&scoped=true&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"15a54af8\",\n null\n \n)\n\n/* hot reload */\nif (module.hot) {\n var api = require(\"/var/www/eventgallery/build/tmpBuildDir/components/com_eventgallery/media/node_modules/vue-hot-reload-api/dist/index.js\")\n api.install(require('vue'))\n if (api.compatible) {\n module.hot.accept()\n if (!api.isRecorded('15a54af8')) {\n api.createRecord('15a54af8', component.options)\n } else {\n api.reload('15a54af8', component.options)\n }\n module.hot.accept(\"./Progress.vue?vue&type=template&id=15a54af8&scoped=true&\", function () {\n api.rerender('15a54af8', {\n render: render,\n staticRenderFns: staticRenderFns\n })\n })\n }\n}\ncomponent.options.__file = \"backend/vue/components/Progress.vue\"\nexport default component.exports","import { render, staticRenderFns } from \"./Filesync.vue?vue&type=template&id=c4440ce6&scoped=true&\"\nimport script from \"./Filesync.vue?vue&type=script&lang=js&\"\nexport * from \"./Filesync.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"c4440ce6\",\n null\n \n)\n\n/* hot reload */\nif (module.hot) {\n var api = require(\"/var/www/eventgallery/build/tmpBuildDir/components/com_eventgallery/media/node_modules/vue-hot-reload-api/dist/index.js\")\n api.install(require('vue'))\n if (api.compatible) {\n module.hot.accept()\n if (!api.isRecorded('c4440ce6')) {\n api.createRecord('c4440ce6', component.options)\n } else {\n api.reload('c4440ce6', component.options)\n }\n module.hot.accept(\"./Filesync.vue?vue&type=template&id=c4440ce6&scoped=true&\", function () {\n api.rerender('c4440ce6', {\n render: render,\n staticRenderFns: staticRenderFns\n })\n })\n }\n}\ncomponent.options.__file = \"backend/vue/filesync/Filesync.vue\"\nexport default component.exports","import { render, staticRenderFns } from \"./ImageContentPluginForm.vue?vue&type=template&id=4c7c98ed&\"\nimport script from \"./ImageContentPluginForm.vue?vue&type=script&lang=js&\"\nexport * from \"./ImageContentPluginForm.vue?vue&type=script&lang=js&\"\nimport style0 from \"./ImageContentPluginForm.vue?vue&type=style&index=0&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\n/* hot reload */\nif (module.hot) {\n var api = require(\"/var/www/eventgallery/build/tmpBuildDir/components/com_eventgallery/media/node_modules/vue-hot-reload-api/dist/index.js\")\n api.install(require('vue'))\n if (api.compatible) {\n module.hot.accept()\n if (!api.isRecorded('4c7c98ed')) {\n api.createRecord('4c7c98ed', component.options)\n } else {\n api.reload('4c7c98ed', component.options)\n }\n module.hot.accept(\"./ImageContentPluginForm.vue?vue&type=template&id=4c7c98ed&\", function () {\n api.rerender('4c7c98ed', {\n render: render,\n staticRenderFns: staticRenderFns\n })\n })\n }\n}\ncomponent.options.__file = \"backend/vue/imagecontentpluginform/ImageContentPluginForm.vue\"\nexport default component.exports","import { render, staticRenderFns } from \"./ImageSelector.vue?vue&type=template&id=f64e921c&scoped=true&\"\nimport script from \"./ImageSelector.vue?vue&type=script&lang=js&\"\nexport * from \"./ImageSelector.vue?vue&type=script&lang=js&\"\nimport style0 from \"./ImageSelector.vue?vue&type=style&index=0&id=f64e921c&scoped=true&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"f64e921c\",\n null\n \n)\n\n/* hot reload */\nif (module.hot) {\n var api = require(\"/var/www/eventgallery/build/tmpBuildDir/components/com_eventgallery/media/node_modules/vue-hot-reload-api/dist/index.js\")\n api.install(require('vue'))\n if (api.compatible) {\n module.hot.accept()\n if (!api.isRecorded('f64e921c')) {\n api.createRecord('f64e921c', component.options)\n } else {\n api.reload('f64e921c', component.options)\n }\n module.hot.accept(\"./ImageSelector.vue?vue&type=template&id=f64e921c&scoped=true&\", function () {\n api.rerender('f64e921c', {\n render: render,\n staticRenderFns: staticRenderFns\n })\n })\n }\n}\ncomponent.options.__file = \"backend/vue/imagecontentpluginform/ImageSelector.vue\"\nexport default component.exports","import { render, staticRenderFns } from \"./Input.vue?vue&type=template&id=622b6062&\"\nimport script from \"./Input.vue?vue&type=script&lang=js&\"\nexport * from \"./Input.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\n/* hot reload */\nif (module.hot) {\n var api = require(\"/var/www/eventgallery/build/tmpBuildDir/components/com_eventgallery/media/node_modules/vue-hot-reload-api/dist/index.js\")\n api.install(require('vue'))\n if (api.compatible) {\n module.hot.accept()\n if (!api.isRecorded('622b6062')) {\n api.createRecord('622b6062', component.options)\n } else {\n api.reload('622b6062', component.options)\n }\n module.hot.accept(\"./Input.vue?vue&type=template&id=622b6062&\", function () {\n api.rerender('622b6062', {\n render: render,\n staticRenderFns: staticRenderFns\n })\n })\n }\n}\ncomponent.options.__file = \"backend/vue/imagecontentpluginform/Input.vue\"\nexport default component.exports","import { render, staticRenderFns } from \"./Label.vue?vue&type=template&id=4f983ae8&scoped=true&\"\nimport script from \"./Label.vue?vue&type=script&lang=js&\"\nexport * from \"./Label.vue?vue&type=script&lang=js&\"\nimport style0 from \"./Label.vue?vue&type=style&index=0&id=4f983ae8&scoped=true&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"4f983ae8\",\n null\n \n)\n\n/* hot reload */\nif (module.hot) {\n var api = require(\"/var/www/eventgallery/build/tmpBuildDir/components/com_eventgallery/media/node_modules/vue-hot-reload-api/dist/index.js\")\n api.install(require('vue'))\n if (api.compatible) {\n module.hot.accept()\n if (!api.isRecorded('4f983ae8')) {\n api.createRecord('4f983ae8', component.options)\n } else {\n api.reload('4f983ae8', component.options)\n }\n module.hot.accept(\"./Label.vue?vue&type=template&id=4f983ae8&scoped=true&\", function () {\n api.rerender('4f983ae8', {\n render: render,\n staticRenderFns: staticRenderFns\n })\n })\n }\n}\ncomponent.options.__file = \"backend/vue/imagecontentpluginform/Label.vue\"\nexport default component.exports","import { render, staticRenderFns } from \"./Radio.vue?vue&type=template&id=7acec7da&\"\nimport script from \"./Radio.vue?vue&type=script&lang=js&\"\nexport * from \"./Radio.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\n/* hot reload */\nif (module.hot) {\n var api = require(\"/var/www/eventgallery/build/tmpBuildDir/components/com_eventgallery/media/node_modules/vue-hot-reload-api/dist/index.js\")\n api.install(require('vue'))\n if (api.compatible) {\n module.hot.accept()\n if (!api.isRecorded('7acec7da')) {\n api.createRecord('7acec7da', component.options)\n } else {\n api.reload('7acec7da', component.options)\n }\n module.hot.accept(\"./Radio.vue?vue&type=template&id=7acec7da&\", function () {\n api.rerender('7acec7da', {\n render: render,\n staticRenderFns: staticRenderFns\n })\n })\n }\n}\ncomponent.options.__file = \"backend/vue/imagecontentpluginform/Radio.vue\"\nexport default component.exports","import { render, staticRenderFns } from \"./Select.vue?vue&type=template&id=30861e94&\"\nimport script from \"./Select.vue?vue&type=script&lang=js&\"\nexport * from \"./Select.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\n/* hot reload */\nif (module.hot) {\n var api = require(\"/var/www/eventgallery/build/tmpBuildDir/components/com_eventgallery/media/node_modules/vue-hot-reload-api/dist/index.js\")\n api.install(require('vue'))\n if (api.compatible) {\n module.hot.accept()\n if (!api.isRecorded('30861e94')) {\n api.createRecord('30861e94', component.options)\n } else {\n api.reload('30861e94', component.options)\n }\n module.hot.accept(\"./Select.vue?vue&type=template&id=30861e94&\", function () {\n api.rerender('30861e94', {\n render: render,\n staticRenderFns: staticRenderFns\n })\n })\n }\n}\ncomponent.options.__file = \"backend/vue/imagecontentpluginform/Select.vue\"\nexport default component.exports","import { render, staticRenderFns } from \"./Scalepriceeditor.vue?vue&type=template&id=eacbcba6&scoped=true&\"\nimport script from \"./Scalepriceeditor.vue?vue&type=script&lang=js&\"\nexport * from \"./Scalepriceeditor.vue?vue&type=script&lang=js&\"\nimport style0 from \"./Scalepriceeditor.vue?vue&type=style&index=0&id=eacbcba6&scoped=true&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"eacbcba6\",\n null\n \n)\n\n/* hot reload */\nif (module.hot) {\n var api = require(\"/var/www/eventgallery/build/tmpBuildDir/components/com_eventgallery/media/node_modules/vue-hot-reload-api/dist/index.js\")\n api.install(require('vue'))\n if (api.compatible) {\n module.hot.accept()\n if (!api.isRecorded('eacbcba6')) {\n api.createRecord('eacbcba6', component.options)\n } else {\n api.reload('eacbcba6', component.options)\n }\n module.hot.accept(\"./Scalepriceeditor.vue?vue&type=template&id=eacbcba6&scoped=true&\", function () {\n api.rerender('eacbcba6', {\n render: render,\n staticRenderFns: staticRenderFns\n })\n })\n }\n}\ncomponent.options.__file = \"backend/vue/scalepriceeditor/Scalepriceeditor.vue\"\nexport default component.exports","import { render, staticRenderFns } from \"./Thumbnailcreator.vue?vue&type=template&id=9fc9a6a6&scoped=true&\"\nimport script from \"./Thumbnailcreator.vue?vue&type=script&lang=js&\"\nexport * from \"./Thumbnailcreator.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"9fc9a6a6\",\n null\n \n)\n\n/* hot reload */\nif (module.hot) {\n var api = require(\"/var/www/eventgallery/build/tmpBuildDir/components/com_eventgallery/media/node_modules/vue-hot-reload-api/dist/index.js\")\n api.install(require('vue'))\n if (api.compatible) {\n module.hot.accept()\n if (!api.isRecorded('9fc9a6a6')) {\n api.createRecord('9fc9a6a6', component.options)\n } else {\n api.reload('9fc9a6a6', component.options)\n }\n module.hot.accept(\"./Thumbnailcreator.vue?vue&type=template&id=9fc9a6a6&scoped=true&\", function () {\n api.rerender('9fc9a6a6', {\n render: render,\n staticRenderFns: staticRenderFns\n })\n })\n }\n}\ncomponent.options.__file = \"backend/vue/thumbnailcreator/Thumbnailcreator.vue\"\nexport default component.exports","import { render, staticRenderFns } from \"./Uploader.vue?vue&type=template&id=3d2e0926&scoped=true&\"\nimport script from \"./Uploader.vue?vue&type=script&lang=js&\"\nexport * from \"./Uploader.vue?vue&type=script&lang=js&\"\nimport style0 from \"./Uploader.vue?vue&type=style&index=0&id=3d2e0926&scoped=true&lang=less&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"3d2e0926\",\n null\n \n)\n\n/* hot reload */\nif (module.hot) {\n var api = require(\"/var/www/eventgallery/build/tmpBuildDir/components/com_eventgallery/media/node_modules/vue-hot-reload-api/dist/index.js\")\n api.install(require('vue'))\n if (api.compatible) {\n module.hot.accept()\n if (!api.isRecorded('3d2e0926')) {\n api.createRecord('3d2e0926', component.options)\n } else {\n api.reload('3d2e0926', component.options)\n }\n module.hot.accept(\"./Uploader.vue?vue&type=template&id=3d2e0926&scoped=true&\", function () {\n api.rerender('3d2e0926', {\n render: render,\n staticRenderFns: staticRenderFns\n })\n })\n }\n}\ncomponent.options.__file = \"backend/vue/uploader/Uploader.vue\"\nexport default component.exports","import mod from \"-!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Cacheclear.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Cacheclear.vue?vue&type=script&lang=js&\"","import mod from \"-!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Elements.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Elements.vue?vue&type=script&lang=js&\"","import mod from \"-!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Groups.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Groups.vue?vue&type=script&lang=js&\"","import mod from \"-!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ErrorPanel.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ErrorPanel.vue?vue&type=script&lang=js&\"","import mod from \"-!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Folder.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Folder.vue?vue&type=script&lang=js&\"","import mod from \"-!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Folders.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Folders.vue?vue&type=script&lang=js&\"","import mod from \"-!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ProcessSteps.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ProcessSteps.vue?vue&type=script&lang=js&\"","import mod from \"-!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Progress.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Progress.vue?vue&type=script&lang=js&\"","import mod from \"-!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Filesync.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Filesync.vue?vue&type=script&lang=js&\"","import mod from \"-!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ImageContentPluginForm.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ImageContentPluginForm.vue?vue&type=script&lang=js&\"","import mod from \"-!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ImageSelector.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ImageSelector.vue?vue&type=script&lang=js&\"","import mod from \"-!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Input.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Input.vue?vue&type=script&lang=js&\"","import mod from \"-!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Label.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Label.vue?vue&type=script&lang=js&\"","import mod from \"-!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Radio.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Radio.vue?vue&type=script&lang=js&\"","import mod from \"-!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Select.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Select.vue?vue&type=script&lang=js&\"","import mod from \"-!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Scalepriceeditor.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Scalepriceeditor.vue?vue&type=script&lang=js&\"","import mod from \"-!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Thumbnailcreator.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Thumbnailcreator.vue?vue&type=script&lang=js&\"","import mod from \"-!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Uploader.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Uploader.vue?vue&type=script&lang=js&\"","var render = function() {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _c(\n \"div\",\n { attrs: { id: \"Cacheclear\" } },\n [\n _c(\"div\", [\n _vm._v(_vm._s(_vm.i18n.t(\"COM_EVENTGALLERY_CLEAR_CACHE_START_DESC\")))\n ]),\n _vm._v(\" \"),\n _c(\"div\", { staticClass: \"control-group\" }, [\n _c(\"div\", { staticClass: \"controls\" }, [\n _c(\"div\", { staticClass: \"btn-group sync-buttons\" }, [\n _c(\n \"button\",\n {\n staticClass: \"btn btn-light checkall\",\n on: { click: _vm.checkAll }\n },\n [\n _vm._v(\n _vm._s(_vm.i18n.t(\"COM_EVENTGALLERY_CLEAR_CACHE_CHECK_ALL\"))\n )\n ]\n ),\n _vm._v(\" \"),\n _c(\n \"button\",\n { staticClass: \"btn btn-light\", on: { click: _vm.uncheckAll } },\n [\n _vm._v(\n _vm._s(_vm.i18n.t(\"COM_EVENTGALLERY_CLEAR_CACHE_CHECK_NONE\"))\n )\n ]\n ),\n _vm._v(\" \"),\n _c(\n \"button\",\n {\n staticClass: \"btn btn-warning\",\n attrs: { disabled: !_vm.running },\n on: { click: _vm.stopQueue }\n },\n [\n _vm._v(\n _vm._s(_vm.i18n.t(\"COM_EVENTGALLERY_CLEAR_CACHE_STOP_QUEUE\"))\n )\n ]\n ),\n _vm._v(\" \"),\n _c(\n \"button\",\n {\n staticClass: \"btn btn-danger\",\n attrs: {\n disabled: _vm.running || !_vm.isReadyForCacheDeletion\n },\n on: { click: _vm.clearCache }\n },\n [_vm._v(_vm._s(_vm.i18n.t(\"COM_EVENTGALLERY_CLEAR_CACHE_START\")))]\n )\n ])\n ])\n ]),\n _vm._v(\" \"),\n _vm.numberOfTasks > 0\n ? _c(\"Progress\", {\n attrs: {\n remaining: _vm.numberOfTasks,\n total: _vm.numberOfLastQueuePush\n }\n })\n : _vm._e(),\n _vm._v(\" \"),\n _c(\"Groups\", {\n attrs: {\n groups: _vm.groups,\n elements: _vm.elements,\n blocked: _vm.running\n }\n })\n ],\n 1\n )\n}\nvar staticRenderFns = []\nrender._withStripped = true\n\nexport { render, staticRenderFns }","var render = function() {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _vm.sortedElements.length > 0\n ? _c(\"div\", [\n _c(\"h2\", [_vm._v(_vm._s(_vm.group.displayname))]),\n _vm._v(\" \"),\n _c(\n \"ul\",\n { staticClass: \"elements\" },\n [\n _vm._l(_vm.sortedElements, function(element) {\n return [\n _c(\n \"li\",\n {\n key: element.value,\n on: {\n click: function($event) {\n element.checked = !element.checked\n }\n }\n },\n [\n _c(\"div\", { staticClass: \"checkbox\" }, [\n _c(\"input\", {\n directives: [\n {\n name: \"model\",\n rawName: \"v-model\",\n value: element.checked,\n expression: \"element.checked\"\n }\n ],\n attrs: { type: \"checkbox\" },\n domProps: {\n checked: Array.isArray(element.checked)\n ? _vm._i(element.checked, null) > -1\n : element.checked\n },\n on: {\n change: function($event) {\n var $$a = element.checked,\n $$el = $event.target,\n $$c = $$el.checked ? true : false\n if (Array.isArray($$a)) {\n var $$v = null,\n $$i = _vm._i($$a, $$v)\n if ($$el.checked) {\n $$i < 0 &&\n _vm.$set(\n element,\n \"checked\",\n $$a.concat([$$v])\n )\n } else {\n $$i > -1 &&\n _vm.$set(\n element,\n \"checked\",\n $$a.slice(0, $$i).concat($$a.slice($$i + 1))\n )\n }\n } else {\n _vm.$set(element, \"checked\", $$c)\n }\n }\n }\n })\n ]),\n _vm._v(\" \"),\n _c(\"div\", { staticClass: \"description\" }, [\n _vm._v(\"\\n \" + _vm._s(element.name) + \" \"),\n _c(\"span\", { staticClass: \"filecount\" }, [\n _vm._v(\n \"(\" +\n _vm._s(element.count) +\n \" / \" +\n _vm._s(element.size) +\n \")\"\n )\n ])\n ])\n ]\n )\n ]\n })\n ],\n 2\n )\n ])\n : _vm._e()\n}\nvar staticRenderFns = []\nrender._withStripped = true\n\nexport { render, staticRenderFns }","var render = function() {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _c(\n \"div\",\n { staticClass: \"groups\", class: { blocked: _vm.blocked } },\n _vm._l(_vm.groups, function(group) {\n return _c(\"Elements\", {\n key: group.value,\n attrs: { group: group, elements: _vm.elements }\n })\n }),\n 1\n )\n}\nvar staticRenderFns = []\nrender._withStripped = true\n\nexport { render, staticRenderFns }","var render = function() {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _vm.errorMessages.length > 0 || _vm.failedFolders.length > 0\n ? _c(\n \"div\",\n { attrs: { id: \"errorMessages\" } },\n [\n _c(\"h2\", [_vm._v(_vm._s(_vm.headline))]),\n _vm._v(\" \"),\n _vm.errorMessages.length > 0\n ? _c(\n \"pre\",\n [\n _vm._l(_vm.reversedErrorMessages, function(message) {\n return [_vm._v(_vm._s(message))]\n })\n ],\n 2\n )\n : _vm._e(),\n _vm._v(\" \"),\n _vm._l(_vm.failedFolders, function(failedFolder) {\n return _c(\"div\", [\n _vm._v(\"\\n \" + _vm._s(failedFolder.error) + \"\\n \")\n ])\n })\n ],\n 2\n )\n : _vm._e()\n}\nvar staticRenderFns = []\nrender._withStripped = true\n\nexport { render, staticRenderFns }","var render = function() {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _c(\n \"li\",\n {\n style: { backgroundColor: _vm.backgroundColor },\n on: {\n click: function($event) {\n _vm.folder.checked = !_vm.folder.checked\n }\n }\n },\n [\n _c(\"div\", [\n _c(\"input\", {\n directives: [\n {\n name: \"model\",\n rawName: \"v-model\",\n value: _vm.folder.checked,\n expression: \"folder.checked\"\n }\n ],\n attrs: { type: \"checkbox\" },\n domProps: {\n checked: Array.isArray(_vm.folder.checked)\n ? _vm._i(_vm.folder.checked, null) > -1\n : _vm.folder.checked\n },\n on: {\n change: function($event) {\n var $$a = _vm.folder.checked,\n $$el = $event.target,\n $$c = $$el.checked ? true : false\n if (Array.isArray($$a)) {\n var $$v = null,\n $$i = _vm._i($$a, $$v)\n if ($$el.checked) {\n $$i < 0 && _vm.$set(_vm.folder, \"checked\", $$a.concat([$$v]))\n } else {\n $$i > -1 &&\n _vm.$set(\n _vm.folder,\n \"checked\",\n $$a.slice(0, $$i).concat($$a.slice($$i + 1))\n )\n }\n } else {\n _vm.$set(_vm.folder, \"checked\", $$c)\n }\n }\n }\n })\n ]),\n _vm._v(\" \"),\n _c(\"div\", { staticClass: \"description\" }, [\n _c(\"div\", [_vm._v(_vm._s(_vm.folder.foldername))]),\n _vm._v(\" \"),\n _c(\"div\", [_c(\"strong\", [_vm._v(_vm._s(_vm.status))])]),\n _vm._v(\" \"),\n _vm.folder.files\n ? _c(\"div\", { staticClass: \"filecount\" }, [\n _vm._v(\n \"(\" +\n _vm._s(_vm.numberOfFilesLeft) +\n \" / \" +\n _vm._s(_vm.folder.files.length) +\n \" \" +\n _vm._s(_vm.i18n_labelNeedSync) +\n \")\"\n )\n ])\n : _vm._e()\n ])\n ]\n )\n}\nvar staticRenderFns = []\nrender._withStripped = true\n\nexport { render, staticRenderFns }","var render = function() {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _c(\n \"ul\",\n { staticClass: \"folders\", class: { blocked: _vm.blocked } },\n _vm._l(_vm.sortedFolders, function(folder) {\n return _c(\"folder\", {\n key: folder.foldername,\n attrs: {\n folder: folder,\n \"i18n_label-need-sync\": _vm.i18n_labelNeedSync\n }\n })\n }),\n 1\n )\n}\nvar staticRenderFns = []\nrender._withStripped = true\n\nexport { render, staticRenderFns }","var render = function() {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _c(\"div\", { staticClass: \"container\" }, [\n _c(\"ul\", { staticClass: \"progressbar\" }, [\n _c(\"li\", { class: { active: true } }, [\n _c(\"span\", { staticClass: \"title\" }, [\n _vm._v(_vm._s(_vm.i18n_labelStep1))\n ])\n ]),\n _vm._v(\" \"),\n _c(\"li\", { class: { active: _vm.numberOfSelectedFolders > 0 } }, [\n _c(\"span\", { staticClass: \"title\" }, [\n _vm._v(_vm._s(_vm.i18n_labelStep2))\n ]),\n _vm._v(\" \"),\n _vm.numberOfSelectedFolders === 0\n ? _c(\"span\", [_vm._v(_vm._s(_vm.i18n_hintStep2))])\n : _vm._e(),\n _vm._v(\" \"),\n _c(\n \"button\",\n {\n staticClass: \"btn btn-primary sync-folders\",\n attrs: {\n disabled: _vm.running || _vm.numberOfSelectedFolders === 0\n },\n on: {\n click: function($event) {\n return _vm.$emit(\"sync-folders\")\n }\n }\n },\n [\n _vm._v(\n _vm._s(_vm.i18n_labelButtonStep2) +\n \" (\" +\n _vm._s(_vm.numberOfSelectedFolders) +\n \" \" +\n _vm._s(_vm.i18n_labelItemsStep2) +\n \")\"\n )\n ]\n )\n ]),\n _vm._v(\" \"),\n _c(\"li\", { class: { active: _vm.isReadyForSyncFiles > 0 } }, [\n _c(\"span\", { staticClass: \"title\" }, [\n _vm._v(_vm._s(_vm.i18n_labelStep3))\n ]),\n _vm._v(\" \"),\n _vm.isReadyForSyncFiles\n ? _c(\"span\", [_vm._v(_vm._s(_vm.i18n_hintStep3))])\n : _vm._e(),\n _vm._v(\" \"),\n _c(\n \"button\",\n {\n staticClass: \"btn btn-primary sync-files\",\n attrs: { disabled: _vm.running || !_vm.isReadyForSyncFiles },\n on: {\n click: function($event) {\n return _vm.$emit(\"sync-files\")\n }\n }\n },\n [\n _vm._v(\n _vm._s(_vm.i18n_labelButtonStep3) +\n \" (\" +\n _vm._s(_vm.numberOfSelectedFiles) +\n \" \" +\n _vm._s(_vm.i18n_labelItemsStep3) +\n \")\"\n )\n ]\n )\n ])\n ])\n ])\n}\nvar staticRenderFns = []\nrender._withStripped = true\n\nexport { render, staticRenderFns }","var render = function() {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _c(\"div\", { staticClass: \"eg-progressbar\" }, [\n _c(\n \"div\",\n {\n staticClass: \"eg-progressbar-state\",\n style: { width: _vm.progress + \"%\" }\n },\n [_vm.remaining > 0 ? void 0 : _vm._e()],\n 2\n )\n ])\n}\nvar staticRenderFns = []\nrender._withStripped = true\n\nexport { render, staticRenderFns }","var render = function() {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _c(\n \"div\",\n { attrs: { id: \"Filesync\" } },\n [\n _c(\"ErrorPanel\", {\n attrs: {\n \"error-messages\": _vm.errorMessages,\n \"failed-folders\": _vm.failedFolders,\n headline: _vm.i18n.t(\"COM_EVENTGALLERY_SYNC_ERROR_HEADLINE\")\n }\n }),\n _vm._v(\" \"),\n _c(\"ProcessSteps\", {\n attrs: {\n i18n: _vm.i18n,\n \"number-of-selected-files\": _vm.numberOfSyncableFiles,\n \"number-of-selected-folders\": _vm.selectedFolders.length,\n \"is-ready-for-sync-files\": _vm.isSyncFilesProcessReadyToStart,\n running: _vm.running,\n \"i18n_label-step1\": _vm.i18n.t(\"COM_EVENTGALLERY_SYNC_STEP1\"),\n \"i18n_label-step2\": _vm.i18n.t(\"COM_EVENTGALLERY_SYNC_STEP2\"),\n \"i18n_label-items-step2\": _vm.i18n.t(\n \"COM_EVENTGALLERY_SYNC_STEP2_ITEMS\"\n ),\n \"i18n_label-step3\": _vm.i18n.t(\"COM_EVENTGALLERY_SYNC_STEP3\"),\n \"i18n_label-items-step3\": _vm.i18n.t(\n \"COM_EVENTGALLERY_SYNC_STEP3_ITEMS\"\n ),\n \"i18n_hint-step2\": _vm.i18n.t(\"COM_EVENTGALLERY_SYNC_STEP2_HINT\"),\n \"i18n_hint-step3\": _vm.i18n.t(\"COM_EVENTGALLERY_SYNC_STEP3_HINT\"),\n \"i18n_label-button-step2\": _vm.i18n.t(\n \"COM_EVENTGALLERY_SYNC_STEP2_BUTTON_LABEL\"\n ),\n \"i18n_label-button-step3\": _vm.i18n.t(\n \"COM_EVENTGALLERY_SYNC_STEP3_BUTTON_LABEL\"\n )\n },\n on: { \"sync-files\": _vm.syncFiles, \"sync-folders\": _vm.syncFolders }\n }),\n _vm._v(\" \"),\n _c(\"div\", { staticClass: \"control-group\" }, [\n _c(\"div\", { staticClass: \"controls\" }, [\n _c(\"div\", { staticClass: \"btn-group sync-buttons\" }, [\n _c(\n \"button\",\n {\n staticClass: \"btn btn-light checkall\",\n on: { click: _vm.checkAll }\n },\n [_vm._v(_vm._s(_vm.i18n.t(\"COM_EVENTGALLERY_SYNC_CHECK_ALL\")))]\n ),\n _vm._v(\" \"),\n _c(\n \"button\",\n { staticClass: \"btn btn-light\", on: { click: _vm.uncheckAll } },\n [_vm._v(_vm._s(_vm.i18n.t(\"COM_EVENTGALLERY_SYNC_CHECK_NONE\")))]\n ),\n _vm._v(\" \"),\n _c(\n \"button\",\n {\n staticClass: \"btn btn-warning\",\n attrs: { disabled: !_vm.running },\n on: { click: _vm.stopQueue }\n },\n [_vm._v(_vm._s(_vm.i18n.t(\"COM_EVENTGALLERY_SYNC_STOP_QUEUE\")))]\n )\n ])\n ])\n ]),\n _vm._v(\" \"),\n _vm.numberOfTasks > 0\n ? _c(\"Progress\", {\n attrs: {\n remaining: _vm.numberOfTasks,\n total: _vm.numberOfLastQueuePush\n }\n })\n : _vm._e(),\n _vm._v(\" \"),\n _c(\"Folders\", {\n attrs: {\n folders: _vm.folders,\n blocked: _vm.running,\n \"i18n_label-need-sync\": _vm.i18n.t(\n \"COM_EVENTGALLERY_SYNC_OPEN_IMAGES_NEEDS_SYNC\"\n )\n }\n })\n ],\n 1\n )\n}\nvar staticRenderFns = []\nrender._withStripped = true\n\nexport { render, staticRenderFns }","var render = function() {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _c(\"div\", [\n _c(\"form\", [\n _c(\n \"div\",\n { staticClass: \"adminform form-horizontal\" },\n [\n _vm._l(_vm.formDefinition.form.fieldset.field, function(field) {\n return [\n field.type === \"text\"\n ? _c(\"Input\", {\n attrs: {\n name: field.name,\n label: field.label,\n description: field.description,\n \"default-value\": field.default\n },\n model: {\n value: _vm.data[field.name],\n callback: function($$v) {\n _vm.$set(_vm.data, field.name, $$v)\n },\n expression: \"data[field.name]\"\n }\n })\n : field.type === \"list\"\n ? _c(\"Select\", {\n attrs: {\n name: field.name,\n label: field.label,\n description: field.description,\n options: field.option,\n \"default-value\": field.default\n },\n model: {\n value: _vm.data[field.name],\n callback: function($$v) {\n _vm.$set(_vm.data, field.name, $$v)\n },\n expression: \"data[field.name]\"\n }\n })\n : field.type === \"radio\"\n ? _c(\"Radio\", {\n attrs: {\n name: field.name,\n label: field.label,\n description: field.description,\n options: field.option,\n \"default-value\": field.default\n },\n model: {\n value: _vm.data[field.name],\n callback: function($$v) {\n _vm.$set(_vm.data, field.name, $$v)\n },\n expression: \"data[field.name]\"\n }\n })\n : field.type === \"imageselector\"\n ? _c(\"ImageSelector\", {\n attrs: {\n \"load-folders-url\": _vm.loadFoldersUrl,\n \"load-files-url\": _vm.loadFilesUrl,\n name: field.name,\n label: field.label,\n description: field.description\n },\n model: {\n value: _vm.data.image,\n callback: function($$v) {\n _vm.$set(_vm.data, \"image\", $$v)\n },\n expression: \"data.image\"\n }\n })\n : _c(\"div\", [\n _vm._v(\"Unsupported form element \" + _vm._s(field))\n ])\n ]\n })\n ],\n 2\n ),\n _vm._v(\" \"),\n _c(\"div\", { attrs: { id: \"imagetagfield\" } }, [\n _vm._v(_vm._s(_vm.tagContent))\n ]),\n _vm._v(\" \"),\n _c(\n \"button\",\n {\n staticClass: \"pull-right btn btn-primary\",\n on: { click: _vm.insertImageContentTag }\n },\n [\n _vm._v(\n _vm._s(\n _vm.i18n.t(\"COM_EVENTGALLERY_CONTENTPLUGINBUTTON_BUTTON_INSERT\")\n )\n )\n ]\n )\n ])\n ])\n}\nvar staticRenderFns = []\nrender._withStripped = true\n\nexport { render, staticRenderFns }","var render = function() {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _c(\"div\", [\n _c(\n \"div\",\n {\n directives: [\n {\n name: \"show\",\n rawName: \"v-show\",\n value: !_vm.showImageSelectorState,\n expression: \"!showImageSelectorState\"\n }\n ]\n },\n [\n _c(\"div\", { staticClass: \"control-group\" }, [\n _c(\n \"div\",\n { staticClass: \"control-label\" },\n [\n _c(\"Label\", {\n attrs: { description: _vm.description, label: _vm.label }\n })\n ],\n 1\n ),\n _vm._v(\" \"),\n _c(\"div\", { staticClass: \"controls\" }, [\n _c(\n \"p\",\n {\n directives: [\n {\n name: \"show\",\n rawName: \"v-show\",\n value: _vm.value.thumb,\n expression: \"value.thumb\"\n }\n ]\n },\n [\n _c(\"img\", {\n staticStyle: { \"max-height\": \"150px\" },\n attrs: { src: _vm.value.thumb }\n })\n ]\n ),\n _vm._v(\" \"),\n _c(\n \"button\",\n {\n staticClass: \"btn btn-secondary\",\n on: {\n click: function($event) {\n $event.preventDefault()\n return _vm.showImageSelector($event)\n }\n }\n },\n [_vm._v(_vm._s(_vm.label))]\n )\n ])\n ])\n ]\n ),\n _vm._v(\" \"),\n _c(\n \"div\",\n {\n directives: [\n {\n name: \"show\",\n rawName: \"v-show\",\n value: _vm.showImageSelectorState,\n expression: \"showImageSelectorState\"\n }\n ],\n staticClass: \"fullscreenOverlay\"\n },\n [\n _c(\"div\", { staticClass: \"overlay-content\" }, [\n _c(\"div\", { staticClass: \"ImageSelector\" }, [\n _c(\"div\", { staticClass: \"folders\" }, [\n _c(\n \"button\",\n {\n on: {\n click: function($event) {\n $event.preventDefault()\n return _vm.hideImageSelector($event)\n }\n }\n },\n [_vm._v(\"<<\")]\n ),\n _vm._v(\" \"),\n _c(\"input\", {\n directives: [\n {\n name: \"model\",\n rawName: \"v-model\",\n value: _vm.folderFilter,\n expression: \"folderFilter\"\n }\n ],\n attrs: { type: \"text\" },\n domProps: { value: _vm.folderFilter },\n on: {\n input: function($event) {\n if ($event.target.composing) {\n return\n }\n _vm.folderFilter = $event.target.value\n }\n }\n }),\n _vm._v(\" \"),\n _c(\n \"ul\",\n _vm._l(_vm.filteredFolders, function(myFolder) {\n return _c(\n \"li\",\n {\n key: myFolder.folder,\n class: { active: myFolder.folder === _vm.folder },\n on: {\n click: function($event) {\n return _vm.loadFiles(myFolder.folder)\n }\n }\n },\n [_vm._v(_vm._s(myFolder.name))]\n )\n }),\n 0\n )\n ]),\n _vm._v(\" \"),\n _c(\"div\", { staticClass: \"files\" }, [\n _c(\n \"div\",\n {\n directives: [\n {\n name: \"show\",\n rawName: \"v-show\",\n value: _vm.isLoading,\n expression: \"isLoading\"\n }\n ]\n },\n [_c(\"div\", { staticClass: \"lds-dual-ring\" })]\n ),\n _vm._v(\" \"),\n _c(\n \"ul\",\n {\n directives: [\n {\n name: \"show\",\n rawName: \"v-show\",\n value: !_vm.isLoading,\n expression: \"!isLoading\"\n }\n ]\n },\n _vm._l(_vm.files, function(file) {\n return _c(\n \"li\",\n {\n key: file.id,\n on: {\n click: function($event) {\n return _vm.setImage(file)\n }\n }\n },\n [\n _c(\"label\", [_vm._v(_vm._s(file.file))]),\n _vm._v(\" \"),\n _c(\"img\", { attrs: { src: file.thumb } })\n ]\n )\n }),\n 0\n )\n ])\n ])\n ])\n ]\n )\n ])\n}\nvar staticRenderFns = []\nrender._withStripped = true\n\nexport { render, staticRenderFns }","var render = function() {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _c(\"div\", { staticClass: \"control-group\" }, [\n _c(\n \"div\",\n { staticClass: \"control-label\" },\n [\n _c(\"Label\", {\n attrs: { description: _vm.description, label: _vm.label }\n })\n ],\n 1\n ),\n _vm._v(\" \"),\n _c(\"div\", { staticClass: \"controls\" }, [\n _c(\"input\", {\n staticClass: \"form-control\",\n attrs: { name: _vm.name },\n domProps: { value: _vm.value },\n on: {\n input: function($event) {\n return _vm.$emit(\"input\", $event.target.value)\n }\n }\n })\n ])\n ])\n}\nvar staticRenderFns = []\nrender._withStripped = true\n\nexport { render, staticRenderFns }","var render = function() {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _c(\"label\", { staticClass: \"eg-tooltip\" }, [\n _c(\"span\", { staticClass: \"eg-tooltiptext eg-tooltip-right\" }, [\n _vm._v(_vm._s(_vm.description))\n ]),\n _vm._v(_vm._s(_vm.label))\n ])\n}\nvar staticRenderFns = []\nrender._withStripped = true\n\nexport { render, staticRenderFns }","var render = function() {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _c(\"div\", { staticClass: \"control-group\" }, [\n _c(\n \"div\",\n { staticClass: \"control-label\" },\n [\n _c(\"Label\", {\n attrs: { description: _vm.description, label: _vm.label }\n })\n ],\n 1\n ),\n _vm._v(\" \"),\n _c(\n \"div\",\n { staticClass: \"controls\" },\n _vm._l(_vm.options, function(item) {\n return _c(\"div\", { staticClass: \"form-check\" }, [\n _c(\"input\", {\n directives: [\n {\n name: \"model\",\n rawName: \"v-model\",\n value: _vm.value,\n expression: \"value\"\n }\n ],\n key: item.Id,\n staticClass: \"pull-left form-check-input\",\n attrs: {\n type: \"radio\",\n id: item.name + item.value,\n selected: _vm.value === item.value\n },\n domProps: {\n value: item.value,\n checked: _vm._q(_vm.value, item.value)\n },\n on: {\n input: function($event) {\n return _vm.$emit(\"input\", $event.target.value)\n },\n change: function($event) {\n _vm.value = item.value\n }\n }\n }),\n _vm._v(\" \"),\n _c(\n \"label\",\n {\n staticClass: \"radio form-check-label\",\n attrs: { for: item.name + item.value }\n },\n [\n _vm._v(\n \"\\n \" + _vm._s(item.text) + \"\\n \"\n )\n ]\n )\n ])\n }),\n 0\n )\n ])\n}\nvar staticRenderFns = []\nrender._withStripped = true\n\nexport { render, staticRenderFns }","var render = function() {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _c(\"div\", { staticClass: \"control-group\" }, [\n _c(\n \"div\",\n { staticClass: \"control-label\" },\n [\n _c(\"Label\", {\n attrs: { description: _vm.description, label: _vm.label }\n })\n ],\n 1\n ),\n _vm._v(\" \"),\n _c(\"div\", { staticClass: \"controls\" }, [\n _c(\n \"select\",\n {\n directives: [\n {\n name: \"model\",\n rawName: \"v-model\",\n value: _vm.currentOption,\n expression: \"currentOption\"\n }\n ],\n staticClass: \"form-control\",\n on: {\n input: function($event) {\n return _vm.$emit(\"input\", $event.target.value)\n },\n change: function($event) {\n var $$selectedVal = Array.prototype.filter\n .call($event.target.options, function(o) {\n return o.selected\n })\n .map(function(o) {\n var val = \"_value\" in o ? o._value : o.value\n return val\n })\n _vm.currentOption = $event.target.multiple\n ? $$selectedVal\n : $$selectedVal[0]\n }\n }\n },\n _vm._l(_vm.options, function(item) {\n return _c(\n \"option\",\n {\n key: item.value,\n domProps: {\n value: item.value,\n selected: _vm.value === item.value\n }\n },\n [_vm._v(_vm._s(item.text))]\n )\n }),\n 0\n )\n ])\n ])\n}\nvar staticRenderFns = []\nrender._withStripped = true\n\nexport { render, staticRenderFns }","var render = function() {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _c(\"div\", [\n _c(\"input\", {\n attrs: { type: \"hidden\", name: _vm.inputName, id: _vm.inputId },\n domProps: { value: _vm.currentInputValue }\n }),\n _vm._v(\" \"),\n _c(\"div\", { staticClass: \"input-append\" }, [\n _c(\"span\", { staticClass: \"add-on\" }, [_vm._v(\"Quantity\")]),\n _c(\"input\", {\n directives: [\n {\n name: \"model\",\n rawName: \"v-model\",\n value: _vm.newQuantity,\n expression: \"newQuantity\"\n }\n ],\n staticClass: \"form-control\",\n attrs: { type: \"number\", min: \"2\" },\n domProps: { value: _vm.newQuantity },\n on: {\n input: function($event) {\n if ($event.target.composing) {\n return\n }\n _vm.newQuantity = $event.target.value\n }\n }\n }),\n _vm._v(\" \"),\n _c(\"span\", { staticClass: \"add-on\" }, [_vm._v(\"Price\")]),\n _c(\"input\", {\n directives: [\n {\n name: \"model\",\n rawName: \"v-model\",\n value: _vm.newPrice,\n expression: \"newPrice\"\n }\n ],\n staticClass: \"form-control\",\n attrs: { type: \"text\" },\n domProps: { value: _vm.newPrice },\n on: {\n input: function($event) {\n if ($event.target.composing) {\n return\n }\n _vm.newPrice = $event.target.value\n }\n }\n }),\n _vm._v(\" \"),\n _c(\n \"button\",\n {\n staticClass: \"btn btn-success\",\n on: {\n click: function($event) {\n $event.preventDefault()\n return _vm.addScalePrice($event)\n }\n }\n },\n [_vm._v(\"+\")]\n )\n ]),\n _vm._v(\" \"),\n _c(\n \"table\",\n [\n _vm._m(0),\n _vm._v(\" \"),\n _vm._l(_vm.sortedScalePrices, function(scalePrice) {\n return _c(\"tr\", { key: scalePrice.id }, [\n _c(\"td\", [_vm._v(_vm._s(scalePrice.quantity))]),\n _vm._v(\" \"),\n _c(\"td\", [_vm._v(_vm._s(scalePrice.price))]),\n _vm._v(\" \"),\n _c(\"td\", { staticClass: \"action\" }, [\n _c(\n \"button\",\n {\n staticClass: \"btn btn-danger\",\n on: {\n click: function($event) {\n $event.preventDefault()\n return _vm.deleteQuantity(scalePrice.quantity)\n }\n }\n },\n [_vm._v(\"-\")]\n )\n ])\n ])\n })\n ],\n 2\n )\n ])\n}\nvar staticRenderFns = [\n function() {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _c(\"tr\", [\n _c(\"th\", [_vm._v(\"Quantity\")]),\n _vm._v(\" \"),\n _c(\"th\", [_vm._v(\"Price\")]),\n _vm._v(\" \"),\n _c(\"th\", [_vm._v(\"Â \")])\n ])\n }\n]\nrender._withStripped = true\n\nexport { render, staticRenderFns }","var render = function() {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _c(\n \"div\",\n { attrs: { id: \"Thumbnailcreator\" } },\n [\n _c(\"p\", { staticClass: \"well\" }, [\n _c(\"span\", {\n domProps: {\n innerHTML: _vm._s(\n _vm.i18n.t(\"COM_EVENTGALLERY_THUMBNAILGENERATOR_START2_DESC\")\n )\n }\n }),\n _vm._v(\" \"),\n _c(\"br\"),\n _c(\"br\"),\n _vm._v(\" \"),\n _c(\"label\", { staticClass: \"checkbox\" }, [\n _c(\"input\", {\n directives: [\n {\n name: \"model\",\n rawName: \"v-model\",\n value: _vm.refreshetags,\n expression: \"refreshetags\"\n }\n ],\n attrs: { type: \"checkbox\" },\n domProps: {\n checked: Array.isArray(_vm.refreshetags)\n ? _vm._i(_vm.refreshetags, null) > -1\n : _vm.refreshetags\n },\n on: {\n change: function($event) {\n var $$a = _vm.refreshetags,\n $$el = $event.target,\n $$c = $$el.checked ? true : false\n if (Array.isArray($$a)) {\n var $$v = null,\n $$i = _vm._i($$a, $$v)\n if ($$el.checked) {\n $$i < 0 && (_vm.refreshetags = $$a.concat([$$v]))\n } else {\n $$i > -1 &&\n (_vm.refreshetags = $$a\n .slice(0, $$i)\n .concat($$a.slice($$i + 1)))\n }\n } else {\n _vm.refreshetags = $$c\n }\n }\n }\n }),\n _vm._v(\n \" \" +\n _vm._s(\n _vm.i18n.t(\n \"COM_EVENTGALLERY_THUMBNAILGENERATOR_REFRESHETAGS_DESC\"\n )\n ) +\n \"\\n \"\n )\n ])\n ]),\n _vm._v(\" \"),\n _c(\"ErrorPanel\", {\n attrs: {\n \"error-messages\": _vm.errorMessages,\n \"failed-folders\": _vm.failedFolders,\n headline: _vm.i18n.t(\"COM_EVENTGALLERY_SYNC_ERROR_HEADLINE\")\n }\n }),\n _vm._v(\" \"),\n _c(\"ProcessSteps\", {\n attrs: {\n i18n: _vm.i18n,\n \"number-of-selected-files\": _vm.numberOfSyncableFiles,\n \"number-of-selected-folders\": _vm.selectedFolders.length,\n \"is-ready-for-sync-files\": _vm.isSyncFilesProcessReadyToStart,\n running: _vm.running,\n \"i18n_label-step1\": _vm.i18n.t(\"COM_EVENTGALLERY_SYNC_STEP1\"),\n \"i18n_label-step2\": _vm.i18n.t(\n \"COM_EVENTGALLERY_THUMBNAILGENERATOR_GETMISSINGTHUMBNAILS\"\n ),\n \"i18n_label-step3\": _vm.i18n.t(\n \"COM_EVENTGALLERY_THUMBNAILGENERATOR_START_THUMBNAILCREATION\"\n ),\n \"i18n_hint-step2\": _vm.i18n.t(\"\"),\n \"i18n_hint-step3\": _vm.i18n.t(\"\"),\n \"i18n_label-button-step2\": _vm.i18n.t(\n \"COM_EVENTGALLERY_THUMBNAILGENERATOR_START\"\n ),\n \"i18n_label-button-step3\": _vm.i18n.t(\n \"COM_EVENTGALLERY_THUMBNAILGENERATOR_START\"\n ),\n \"i18n_label-items-step2\": _vm.i18n.t(\n \"COM_EVENTGALLERY_THUMBNAILGENERATOR_STEP2_ITEMS\"\n ),\n \"i18n_label-items-step3\": _vm.i18n.t(\n \"COM_EVENTGALLERY_THUMBNAILGENERATOR_STEP3_ITEMS\"\n )\n },\n on: { \"sync-files\": _vm.syncFiles, \"sync-folders\": _vm.syncFolders }\n }),\n _vm._v(\" \"),\n _c(\"div\", { staticClass: \"control-group\" }, [\n _c(\"div\", { staticClass: \"controls\" }, [\n _c(\"div\", { staticClass: \"btn-group sync-buttons\" }, [\n _c(\n \"button\",\n {\n staticClass: \"btn btn-light checkall\",\n on: { click: _vm.checkAll }\n },\n [_vm._v(_vm._s(_vm.i18n.t(\"COM_EVENTGALLERY_SYNC_CHECK_ALL\")))]\n ),\n _vm._v(\" \"),\n _c(\n \"button\",\n { staticClass: \"btn btn-light\", on: { click: _vm.uncheckAll } },\n [_vm._v(_vm._s(_vm.i18n.t(\"COM_EVENTGALLERY_SYNC_CHECK_NONE\")))]\n ),\n _vm._v(\" \"),\n _c(\n \"button\",\n {\n staticClass: \"btn btn-warning\",\n attrs: { disabled: !_vm.running },\n on: { click: _vm.stopQueue }\n },\n [_vm._v(_vm._s(_vm.i18n.t(\"COM_EVENTGALLERY_SYNC_STOP_QUEUE\")))]\n )\n ])\n ])\n ]),\n _vm._v(\" \"),\n _vm.numberOfTasks > 0\n ? _c(\"Progress\", {\n attrs: {\n remaining: _vm.numberOfTasks,\n total: _vm.numberOfLastQueuePush\n }\n })\n : _vm._e(),\n _vm._v(\" \"),\n _c(\"Folders\", {\n attrs: {\n folders: _vm.folders,\n blocked: _vm.running,\n \"i18n_label-need-sync\": _vm.i18n.t(\n \"COM_EVENTGALLERY_THUMBNAILGENERATOR_OPEN_IMAGES_NEEDS_SYNC\"\n )\n }\n })\n ],\n 1\n )\n}\nvar staticRenderFns = []\nrender._withStripped = true\n\nexport { render, staticRenderFns }","var render = function() {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _c(\"div\", { staticClass: \"Uploader\" }, [\n _c(\"label\", { attrs: { for: \"fileselect\" } }, [\n _vm._v(\n _vm._s(_vm.i18n.COM_EVENTGALLERY_EVENT_UPLOAD_FILES_TO_UPLOAD) + \":\"\n )\n ]),\n _vm._v(\" \"),\n _c(\"input\", {\n attrs: { id: \"fileselect\", type: \"file\", multiple: \"multiple\" },\n on: { change: _vm.addFiles }\n }),\n _vm._v(\" \"),\n _vm.pendingFiles.length + _vm.inProgressFiles.length > 0\n ? _c(\"div\", { staticClass: \"eg-progressbar\" }, [\n _c(\"div\", {\n staticClass: \"eg-progressbar-state\",\n style: { width: _vm.progress + \"%\" }\n })\n ])\n : _vm._e(),\n _vm._v(\" \"),\n _c(\"div\", { staticClass: \"eg-bo-row\" }, [\n _vm.pendingFiles.length > 0\n ? _c(\"div\", { staticClass: \"eg-bo-column3\" }, [\n _c(\"h2\", [\n _vm._v(_vm._s(_vm.i18n.COM_EVENTGALLERY_EVENT_UPLOAD_PENDING))\n ]),\n _vm._v(\" \"),\n _c(\n \"ul\",\n { attrs: { id: \"pending\" } },\n _vm._l(_vm.revertedPendingFiles, function(pendingFile) {\n return _c(\"li\", [\n _vm._v(\n \"\\n \" +\n _vm._s(pendingFile.name) +\n \"\\n \"\n )\n ])\n }),\n 0\n )\n ])\n : _vm._e(),\n _vm._v(\" \"),\n _vm.finishedFilesContent.length > 0 ||\n _vm.inProgressFiles.length > 0 ||\n _vm.failedFilesContent.length > 0\n ? _c(\"div\", { staticClass: \"eg-bo-column9\" }, [\n _c(\"h2\", [\n _vm._v(_vm._s(_vm.i18n.COM_EVENTGALLERY_EVENT_UPLOAD_FINISHED))\n ]),\n _vm._v(\" \"),\n _c(\n \"ul\",\n {\n staticClass: \"eg-bo-row\",\n staticStyle: { \"flex-wrap\": \"wrap\" },\n attrs: { id: \"finished\" }\n },\n [\n _vm._l(_vm.inProgressFiles, function(inProgressFile) {\n return _c(\"li\", { staticClass: \"eg-bo-column3\" }, [\n _c(\"div\", [_vm._v(_vm._s(inProgressFile.name))]),\n _vm._v(\" \"),\n _vm._m(0, true)\n ])\n }),\n _vm._v(\" \"),\n _vm._l(_vm.failedFilesContent, function(failedFileContent) {\n return _c(\"li\", {\n key: failedFileContent.id,\n staticClass: \"eg-bo-column3\",\n domProps: { innerHTML: _vm._s(failedFileContent.content) }\n })\n }),\n _vm._v(\" \"),\n _vm._l(_vm.revertedFinishedFilesContent, function(\n finishedFileContent\n ) {\n return _c(\"li\", {\n key: finishedFileContent.id,\n staticClass: \"eg-bo-column3\",\n domProps: { innerHTML: _vm._s(finishedFileContent.content) }\n })\n })\n ],\n 2\n )\n ])\n : _vm._e()\n ])\n ])\n}\nvar staticRenderFns = [\n function() {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _c(\"div\", { staticClass: \"lds-ring\" }, [\n _c(\"div\"),\n _c(\"div\"),\n _c(\"div\"),\n _c(\"div\")\n ])\n }\n]\nrender._withStripped = true\n\nexport { render, staticRenderFns }","/* globals __VUE_SSR_CONTEXT__ */\n\n// IMPORTANT: Do NOT use ES2015 features in this file (except for modules).\n// This module is a runtime utility for cleaner component module output and will\n// be included in the final webpack user bundle.\n\nexport default function normalizeComponent (\n scriptExports,\n render,\n staticRenderFns,\n functionalTemplate,\n injectStyles,\n scopeId,\n moduleIdentifier, /* server only */\n shadowMode /* vue-cli only */\n) {\n // Vue.extend constructor export interop\n var options = typeof scriptExports === 'function'\n ? scriptExports.options\n : scriptExports\n\n // render functions\n if (render) {\n options.render = render\n options.staticRenderFns = staticRenderFns\n options._compiled = true\n }\n\n // functional template\n if (functionalTemplate) {\n options.functional = true\n }\n\n // scopedId\n if (scopeId) {\n options._scopeId = 'data-v-' + scopeId\n }\n\n var hook\n if (moduleIdentifier) { // server build\n hook = function (context) {\n // 2.3 injection\n context =\n context || // cached call\n (this.$vnode && this.$vnode.ssrContext) || // stateful\n (this.parent && this.parent.$vnode && this.parent.$vnode.ssrContext) // functional\n // 2.2 with runInNewContext: true\n if (!context && typeof __VUE_SSR_CONTEXT__ !== 'undefined') {\n context = __VUE_SSR_CONTEXT__\n }\n // inject component styles\n if (injectStyles) {\n injectStyles.call(this, context)\n }\n // register component module identifier for async chunk inferrence\n if (context && context._registeredComponents) {\n context._registeredComponents.add(moduleIdentifier)\n }\n }\n // used by ssr in case component is cached and beforeCreate\n // never gets called\n options._ssrRegister = hook\n } else if (injectStyles) {\n hook = shadowMode\n ? function () {\n injectStyles.call(\n this,\n (options.functional ? this.parent : this).$root.$options.shadowRoot\n )\n }\n : injectStyles\n }\n\n if (hook) {\n if (options.functional) {\n // for template-only hot-reload because in that case the render fn doesn't\n // go through the normalizer\n options._injectStyles = hook\n // register for functional component in vue file\n var originalRender = options.render\n options.render = function renderWithStyleInjection (h, context) {\n hook.call(context)\n return originalRender(h, context)\n }\n } else {\n // inject component registration as beforeCreate hook\n var existing = options.beforeCreate\n options.beforeCreate = existing\n ? [].concat(existing, hook)\n : [hook]\n }\n }\n\n return {\n exports: scriptExports,\n options: options\n }\n}\n","/*!\n * Vue.js v2.6.12\n * (c) 2014-2020 Evan You\n * Released under the MIT License.\n */\n/* */\n\nvar emptyObject = Object.freeze({});\n\n// These helpers produce better VM code in JS engines due to their\n// explicitness and function inlining.\nfunction isUndef (v) {\n return v === undefined || v === null\n}\n\nfunction isDef (v) {\n return v !== undefined && v !== null\n}\n\nfunction isTrue (v) {\n return v === true\n}\n\nfunction isFalse (v) {\n return v === false\n}\n\n/**\n * Check if value is primitive.\n */\nfunction isPrimitive (value) {\n return (\n typeof value === 'string' ||\n typeof value === 'number' ||\n // $flow-disable-line\n typeof value === 'symbol' ||\n typeof value === 'boolean'\n )\n}\n\n/**\n * Quick object check - this is primarily used to tell\n * Objects from primitive values when we know the value\n * is a JSON-compliant type.\n */\nfunction isObject (obj) {\n return obj !== null && typeof obj === 'object'\n}\n\n/**\n * Get the raw type string of a value, e.g., [object Object].\n */\nvar _toString = Object.prototype.toString;\n\nfunction toRawType (value) {\n return _toString.call(value).slice(8, -1)\n}\n\n/**\n * Strict object type check. Only returns true\n * for plain JavaScript objects.\n */\nfunction isPlainObject (obj) {\n return _toString.call(obj) === '[object Object]'\n}\n\nfunction isRegExp (v) {\n return _toString.call(v) === '[object RegExp]'\n}\n\n/**\n * Check if val is a valid array index.\n */\nfunction isValidArrayIndex (val) {\n var n = parseFloat(String(val));\n return n >= 0 && Math.floor(n) === n && isFinite(val)\n}\n\nfunction isPromise (val) {\n return (\n isDef(val) &&\n typeof val.then === 'function' &&\n typeof val.catch === 'function'\n )\n}\n\n/**\n * Convert a value to a string that is actually rendered.\n */\nfunction toString (val) {\n return val == null\n ? ''\n : Array.isArray(val) || (isPlainObject(val) && val.toString === _toString)\n ? JSON.stringify(val, null, 2)\n : String(val)\n}\n\n/**\n * Convert an input value to a number for persistence.\n * If the conversion fails, return original string.\n */\nfunction toNumber (val) {\n var n = parseFloat(val);\n return isNaN(n) ? val : n\n}\n\n/**\n * Make a map and return a function for checking if a key\n * is in that map.\n */\nfunction makeMap (\n str,\n expectsLowerCase\n) {\n var map = Object.create(null);\n var list = str.split(',');\n for (var i = 0; i < list.length; i++) {\n map[list[i]] = true;\n }\n return expectsLowerCase\n ? function (val) { return map[val.toLowerCase()]; }\n : function (val) { return map[val]; }\n}\n\n/**\n * Check if a tag is a built-in tag.\n */\nvar isBuiltInTag = makeMap('slot,component', true);\n\n/**\n * Check if an attribute is a reserved attribute.\n */\nvar isReservedAttribute = makeMap('key,ref,slot,slot-scope,is');\n\n/**\n * Remove an item from an array.\n */\nfunction remove (arr, item) {\n if (arr.length) {\n var index = arr.indexOf(item);\n if (index > -1) {\n return arr.splice(index, 1)\n }\n }\n}\n\n/**\n * Check whether an object has the property.\n */\nvar hasOwnProperty = Object.prototype.hasOwnProperty;\nfunction hasOwn (obj, key) {\n return hasOwnProperty.call(obj, key)\n}\n\n/**\n * Create a cached version of a pure function.\n */\nfunction cached (fn) {\n var cache = Object.create(null);\n return (function cachedFn (str) {\n var hit = cache[str];\n return hit || (cache[str] = fn(str))\n })\n}\n\n/**\n * Camelize a hyphen-delimited string.\n */\nvar camelizeRE = /-(\\w)/g;\nvar camelize = cached(function (str) {\n return str.replace(camelizeRE, function (_, c) { return c ? c.toUpperCase() : ''; })\n});\n\n/**\n * Capitalize a string.\n */\nvar capitalize = cached(function (str) {\n return str.charAt(0).toUpperCase() + str.slice(1)\n});\n\n/**\n * Hyphenate a camelCase string.\n */\nvar hyphenateRE = /\\B([A-Z])/g;\nvar hyphenate = cached(function (str) {\n return str.replace(hyphenateRE, '-$1').toLowerCase()\n});\n\n/**\n * Simple bind polyfill for environments that do not support it,\n * e.g., PhantomJS 1.x. Technically, we don't need this anymore\n * since native bind is now performant enough in most browsers.\n * But removing it would mean breaking code that was able to run in\n * PhantomJS 1.x, so this must be kept for backward compatibility.\n */\n\n/* istanbul ignore next */\nfunction polyfillBind (fn, ctx) {\n function boundFn (a) {\n var l = arguments.length;\n return l\n ? l > 1\n ? fn.apply(ctx, arguments)\n : fn.call(ctx, a)\n : fn.call(ctx)\n }\n\n boundFn._length = fn.length;\n return boundFn\n}\n\nfunction nativeBind (fn, ctx) {\n return fn.bind(ctx)\n}\n\nvar bind = Function.prototype.bind\n ? nativeBind\n : polyfillBind;\n\n/**\n * Convert an Array-like object to a real Array.\n */\nfunction toArray (list, start) {\n start = start || 0;\n var i = list.length - start;\n var ret = new Array(i);\n while (i--) {\n ret[i] = list[i + start];\n }\n return ret\n}\n\n/**\n * Mix properties into target object.\n */\nfunction extend (to, _from) {\n for (var key in _from) {\n to[key] = _from[key];\n }\n return to\n}\n\n/**\n * Merge an Array of Objects into a single Object.\n */\nfunction toObject (arr) {\n var res = {};\n for (var i = 0; i < arr.length; i++) {\n if (arr[i]) {\n extend(res, arr[i]);\n }\n }\n return res\n}\n\n/* eslint-disable no-unused-vars */\n\n/**\n * Perform no operation.\n * Stubbing args to make Flow happy without leaving useless transpiled code\n * with ...rest (https://flow.org/blog/2017/05/07/Strict-Function-Call-Arity/).\n */\nfunction noop (a, b, c) {}\n\n/**\n * Always return false.\n */\nvar no = function (a, b, c) { return false; };\n\n/* eslint-enable no-unused-vars */\n\n/**\n * Return the same value.\n */\nvar identity = function (_) { return _; };\n\n/**\n * Check if two values are loosely equal - that is,\n * if they are plain objects, do they have the same shape?\n */\nfunction looseEqual (a, b) {\n if (a === b) { return true }\n var isObjectA = isObject(a);\n var isObjectB = isObject(b);\n if (isObjectA && isObjectB) {\n try {\n var isArrayA = Array.isArray(a);\n var isArrayB = Array.isArray(b);\n if (isArrayA && isArrayB) {\n return a.length === b.length && a.every(function (e, i) {\n return looseEqual(e, b[i])\n })\n } else if (a instanceof Date && b instanceof Date) {\n return a.getTime() === b.getTime()\n } else if (!isArrayA && !isArrayB) {\n var keysA = Object.keys(a);\n var keysB = Object.keys(b);\n return keysA.length === keysB.length && keysA.every(function (key) {\n return looseEqual(a[key], b[key])\n })\n } else {\n /* istanbul ignore next */\n return false\n }\n } catch (e) {\n /* istanbul ignore next */\n return false\n }\n } else if (!isObjectA && !isObjectB) {\n return String(a) === String(b)\n } else {\n return false\n }\n}\n\n/**\n * Return the first index at which a loosely equal value can be\n * found in the array (if value is a plain object, the array must\n * contain an object of the same shape), or -1 if it is not present.\n */\nfunction looseIndexOf (arr, val) {\n for (var i = 0; i < arr.length; i++) {\n if (looseEqual(arr[i], val)) { return i }\n }\n return -1\n}\n\n/**\n * Ensure a function is called only once.\n */\nfunction once (fn) {\n var called = false;\n return function () {\n if (!called) {\n called = true;\n fn.apply(this, arguments);\n }\n }\n}\n\nvar SSR_ATTR = 'data-server-rendered';\n\nvar ASSET_TYPES = [\n 'component',\n 'directive',\n 'filter'\n];\n\nvar LIFECYCLE_HOOKS = [\n 'beforeCreate',\n 'created',\n 'beforeMount',\n 'mounted',\n 'beforeUpdate',\n 'updated',\n 'beforeDestroy',\n 'destroyed',\n 'activated',\n 'deactivated',\n 'errorCaptured',\n 'serverPrefetch'\n];\n\n/* */\n\n\n\nvar config = ({\n /**\n * Option merge strategies (used in core/util/options)\n */\n // $flow-disable-line\n optionMergeStrategies: Object.create(null),\n\n /**\n * Whether to suppress warnings.\n */\n silent: false,\n\n /**\n * Show production mode tip message on boot?\n */\n productionTip: process.env.NODE_ENV !== 'production',\n\n /**\n * Whether to enable devtools\n */\n devtools: process.env.NODE_ENV !== 'production',\n\n /**\n * Whether to record perf\n */\n performance: false,\n\n /**\n * Error handler for watcher errors\n */\n errorHandler: null,\n\n /**\n * Warn handler for watcher warns\n */\n warnHandler: null,\n\n /**\n * Ignore certain custom elements\n */\n ignoredElements: [],\n\n /**\n * Custom user key aliases for v-on\n */\n // $flow-disable-line\n keyCodes: Object.create(null),\n\n /**\n * Check if a tag is reserved so that it cannot be registered as a\n * component. This is platform-dependent and may be overwritten.\n */\n isReservedTag: no,\n\n /**\n * Check if an attribute is reserved so that it cannot be used as a component\n * prop. This is platform-dependent and may be overwritten.\n */\n isReservedAttr: no,\n\n /**\n * Check if a tag is an unknown element.\n * Platform-dependent.\n */\n isUnknownElement: no,\n\n /**\n * Get the namespace of an element\n */\n getTagNamespace: noop,\n\n /**\n * Parse the real tag name for the specific platform.\n */\n parsePlatformTagName: identity,\n\n /**\n * Check if an attribute must be bound using property, e.g. value\n * Platform-dependent.\n */\n mustUseProp: no,\n\n /**\n * Perform updates asynchronously. Intended to be used by Vue Test Utils\n * This will significantly reduce performance if set to false.\n */\n async: true,\n\n /**\n * Exposed for legacy reasons\n */\n _lifecycleHooks: LIFECYCLE_HOOKS\n});\n\n/* */\n\n/**\n * unicode letters used for parsing html tags, component names and property paths.\n * using https://www.w3.org/TR/html53/semantics-scripting.html#potentialcustomelementname\n * skipping \\u10000-\\uEFFFF due to it freezing up PhantomJS\n */\nvar unicodeRegExp = /a-zA-Z\\u00B7\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u037D\\u037F-\\u1FFF\\u200C-\\u200D\\u203F-\\u2040\\u2070-\\u218F\\u2C00-\\u2FEF\\u3001-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFFD/;\n\n/**\n * Check if a string starts with $ or _\n */\nfunction isReserved (str) {\n var c = (str + '').charCodeAt(0);\n return c === 0x24 || c === 0x5F\n}\n\n/**\n * Define a property.\n */\nfunction def (obj, key, val, enumerable) {\n Object.defineProperty(obj, key, {\n value: val,\n enumerable: !!enumerable,\n writable: true,\n configurable: true\n });\n}\n\n/**\n * Parse simple path.\n */\nvar bailRE = new RegExp((\"[^\" + (unicodeRegExp.source) + \".$_\\\\d]\"));\nfunction parsePath (path) {\n if (bailRE.test(path)) {\n return\n }\n var segments = path.split('.');\n return function (obj) {\n for (var i = 0; i < segments.length; i++) {\n if (!obj) { return }\n obj = obj[segments[i]];\n }\n return obj\n }\n}\n\n/* */\n\n// can we use __proto__?\nvar hasProto = '__proto__' in {};\n\n// Browser environment sniffing\nvar inBrowser = typeof window !== 'undefined';\nvar inWeex = typeof WXEnvironment !== 'undefined' && !!WXEnvironment.platform;\nvar weexPlatform = inWeex && WXEnvironment.platform.toLowerCase();\nvar UA = inBrowser && window.navigator.userAgent.toLowerCase();\nvar isIE = UA && /msie|trident/.test(UA);\nvar isIE9 = UA && UA.indexOf('msie 9.0') > 0;\nvar isEdge = UA && UA.indexOf('edge/') > 0;\nvar isAndroid = (UA && UA.indexOf('android') > 0) || (weexPlatform === 'android');\nvar isIOS = (UA && /iphone|ipad|ipod|ios/.test(UA)) || (weexPlatform === 'ios');\nvar isChrome = UA && /chrome\\/\\d+/.test(UA) && !isEdge;\nvar isPhantomJS = UA && /phantomjs/.test(UA);\nvar isFF = UA && UA.match(/firefox\\/(\\d+)/);\n\n// Firefox has a \"watch\" function on Object.prototype...\nvar nativeWatch = ({}).watch;\n\nvar supportsPassive = false;\nif (inBrowser) {\n try {\n var opts = {};\n Object.defineProperty(opts, 'passive', ({\n get: function get () {\n /* istanbul ignore next */\n supportsPassive = true;\n }\n })); // https://github.com/facebook/flow/issues/285\n window.addEventListener('test-passive', null, opts);\n } catch (e) {}\n}\n\n// this needs to be lazy-evaled because vue may be required before\n// vue-server-renderer can set VUE_ENV\nvar _isServer;\nvar isServerRendering = function () {\n if (_isServer === undefined) {\n /* istanbul ignore if */\n if (!inBrowser && !inWeex && typeof global !== 'undefined') {\n // detect presence of vue-server-renderer and avoid\n // Webpack shimming the process\n _isServer = global['process'] && global['process'].env.VUE_ENV === 'server';\n } else {\n _isServer = false;\n }\n }\n return _isServer\n};\n\n// detect devtools\nvar devtools = inBrowser && window.__VUE_DEVTOOLS_GLOBAL_HOOK__;\n\n/* istanbul ignore next */\nfunction isNative (Ctor) {\n return typeof Ctor === 'function' && /native code/.test(Ctor.toString())\n}\n\nvar hasSymbol =\n typeof Symbol !== 'undefined' && isNative(Symbol) &&\n typeof Reflect !== 'undefined' && isNative(Reflect.ownKeys);\n\nvar _Set;\n/* istanbul ignore if */ // $flow-disable-line\nif (typeof Set !== 'undefined' && isNative(Set)) {\n // use native Set when available.\n _Set = Set;\n} else {\n // a non-standard Set polyfill that only works with primitive keys.\n _Set = /*@__PURE__*/(function () {\n function Set () {\n this.set = Object.create(null);\n }\n Set.prototype.has = function has (key) {\n return this.set[key] === true\n };\n Set.prototype.add = function add (key) {\n this.set[key] = true;\n };\n Set.prototype.clear = function clear () {\n this.set = Object.create(null);\n };\n\n return Set;\n }());\n}\n\n/* */\n\nvar warn = noop;\nvar tip = noop;\nvar generateComponentTrace = (noop); // work around flow check\nvar formatComponentName = (noop);\n\nif (process.env.NODE_ENV !== 'production') {\n var hasConsole = typeof console !== 'undefined';\n var classifyRE = /(?:^|[-_])(\\w)/g;\n var classify = function (str) { return str\n .replace(classifyRE, function (c) { return c.toUpperCase(); })\n .replace(/[-_]/g, ''); };\n\n warn = function (msg, vm) {\n var trace = vm ? generateComponentTrace(vm) : '';\n\n if (config.warnHandler) {\n config.warnHandler.call(null, msg, vm, trace);\n } else if (hasConsole && (!config.silent)) {\n console.error((\"[Vue warn]: \" + msg + trace));\n }\n };\n\n tip = function (msg, vm) {\n if (hasConsole && (!config.silent)) {\n console.warn(\"[Vue tip]: \" + msg + (\n vm ? generateComponentTrace(vm) : ''\n ));\n }\n };\n\n formatComponentName = function (vm, includeFile) {\n if (vm.$root === vm) {\n return '<Root>'\n }\n var options = typeof vm === 'function' && vm.cid != null\n ? vm.options\n : vm._isVue\n ? vm.$options || vm.constructor.options\n : vm;\n var name = options.name || options._componentTag;\n var file = options.__file;\n if (!name && file) {\n var match = file.match(/([^/\\\\]+)\\.vue$/);\n name = match && match[1];\n }\n\n return (\n (name ? (\"<\" + (classify(name)) + \">\") : \"<Anonymous>\") +\n (file && includeFile !== false ? (\" at \" + file) : '')\n )\n };\n\n var repeat = function (str, n) {\n var res = '';\n while (n) {\n if (n % 2 === 1) { res += str; }\n if (n > 1) { str += str; }\n n >>= 1;\n }\n return res\n };\n\n generateComponentTrace = function (vm) {\n if (vm._isVue && vm.$parent) {\n var tree = [];\n var currentRecursiveSequence = 0;\n while (vm) {\n if (tree.length > 0) {\n var last = tree[tree.length - 1];\n if (last.constructor === vm.constructor) {\n currentRecursiveSequence++;\n vm = vm.$parent;\n continue\n } else if (currentRecursiveSequence > 0) {\n tree[tree.length - 1] = [last, currentRecursiveSequence];\n currentRecursiveSequence = 0;\n }\n }\n tree.push(vm);\n vm = vm.$parent;\n }\n return '\\n\\nfound in\\n\\n' + tree\n .map(function (vm, i) { return (\"\" + (i === 0 ? '---> ' : repeat(' ', 5 + i * 2)) + (Array.isArray(vm)\n ? ((formatComponentName(vm[0])) + \"... (\" + (vm[1]) + \" recursive calls)\")\n : formatComponentName(vm))); })\n .join('\\n')\n } else {\n return (\"\\n\\n(found in \" + (formatComponentName(vm)) + \")\")\n }\n };\n}\n\n/* */\n\nvar uid = 0;\n\n/**\n * A dep is an observable that can have multiple\n * directives subscribing to it.\n */\nvar Dep = function Dep () {\n this.id = uid++;\n this.subs = [];\n};\n\nDep.prototype.addSub = function addSub (sub) {\n this.subs.push(sub);\n};\n\nDep.prototype.removeSub = function removeSub (sub) {\n remove(this.subs, sub);\n};\n\nDep.prototype.depend = function depend () {\n if (Dep.target) {\n Dep.target.addDep(this);\n }\n};\n\nDep.prototype.notify = function notify () {\n // stabilize the subscriber list first\n var subs = this.subs.slice();\n if (process.env.NODE_ENV !== 'production' && !config.async) {\n // subs aren't sorted in scheduler if not running async\n // we need to sort them now to make sure they fire in correct\n // order\n subs.sort(function (a, b) { return a.id - b.id; });\n }\n for (var i = 0, l = subs.length; i < l; i++) {\n subs[i].update();\n }\n};\n\n// The current target watcher being evaluated.\n// This is globally unique because only one watcher\n// can be evaluated at a time.\nDep.target = null;\nvar targetStack = [];\n\nfunction pushTarget (target) {\n targetStack.push(target);\n Dep.target = target;\n}\n\nfunction popTarget () {\n targetStack.pop();\n Dep.target = targetStack[targetStack.length - 1];\n}\n\n/* */\n\nvar VNode = function VNode (\n tag,\n data,\n children,\n text,\n elm,\n context,\n componentOptions,\n asyncFactory\n) {\n this.tag = tag;\n this.data = data;\n this.children = children;\n this.text = text;\n this.elm = elm;\n this.ns = undefined;\n this.context = context;\n this.fnContext = undefined;\n this.fnOptions = undefined;\n this.fnScopeId = undefined;\n this.key = data && data.key;\n this.componentOptions = componentOptions;\n this.componentInstance = undefined;\n this.parent = undefined;\n this.raw = false;\n this.isStatic = false;\n this.isRootInsert = true;\n this.isComment = false;\n this.isCloned = false;\n this.isOnce = false;\n this.asyncFactory = asyncFactory;\n this.asyncMeta = undefined;\n this.isAsyncPlaceholder = false;\n};\n\nvar prototypeAccessors = { child: { configurable: true } };\n\n// DEPRECATED: alias for componentInstance for backwards compat.\n/* istanbul ignore next */\nprototypeAccessors.child.get = function () {\n return this.componentInstance\n};\n\nObject.defineProperties( VNode.prototype, prototypeAccessors );\n\nvar createEmptyVNode = function (text) {\n if ( text === void 0 ) text = '';\n\n var node = new VNode();\n node.text = text;\n node.isComment = true;\n return node\n};\n\nfunction createTextVNode (val) {\n return new VNode(undefined, undefined, undefined, String(val))\n}\n\n// optimized shallow clone\n// used for static nodes and slot nodes because they may be reused across\n// multiple renders, cloning them avoids errors when DOM manipulations rely\n// on their elm reference.\nfunction cloneVNode (vnode) {\n var cloned = new VNode(\n vnode.tag,\n vnode.data,\n // #7975\n // clone children array to avoid mutating original in case of cloning\n // a child.\n vnode.children && vnode.children.slice(),\n vnode.text,\n vnode.elm,\n vnode.context,\n vnode.componentOptions,\n vnode.asyncFactory\n );\n cloned.ns = vnode.ns;\n cloned.isStatic = vnode.isStatic;\n cloned.key = vnode.key;\n cloned.isComment = vnode.isComment;\n cloned.fnContext = vnode.fnContext;\n cloned.fnOptions = vnode.fnOptions;\n cloned.fnScopeId = vnode.fnScopeId;\n cloned.asyncMeta = vnode.asyncMeta;\n cloned.isCloned = true;\n return cloned\n}\n\n/*\n * not type checking this file because flow doesn't play well with\n * dynamically accessing methods on Array prototype\n */\n\nvar arrayProto = Array.prototype;\nvar arrayMethods = Object.create(arrayProto);\n\nvar methodsToPatch = [\n 'push',\n 'pop',\n 'shift',\n 'unshift',\n 'splice',\n 'sort',\n 'reverse'\n];\n\n/**\n * Intercept mutating methods and emit events\n */\nmethodsToPatch.forEach(function (method) {\n // cache original method\n var original = arrayProto[method];\n def(arrayMethods, method, function mutator () {\n var args = [], len = arguments.length;\n while ( len-- ) args[ len ] = arguments[ len ];\n\n var result = original.apply(this, args);\n var ob = this.__ob__;\n var inserted;\n switch (method) {\n case 'push':\n case 'unshift':\n inserted = args;\n break\n case 'splice':\n inserted = args.slice(2);\n break\n }\n if (inserted) { ob.observeArray(inserted); }\n // notify change\n ob.dep.notify();\n return result\n });\n});\n\n/* */\n\nvar arrayKeys = Object.getOwnPropertyNames(arrayMethods);\n\n/**\n * In some cases we may want to disable observation inside a component's\n * update computation.\n */\nvar shouldObserve = true;\n\nfunction toggleObserving (value) {\n shouldObserve = value;\n}\n\n/**\n * Observer class that is attached to each observed\n * object. Once attached, the observer converts the target\n * object's property keys into getter/setters that\n * collect dependencies and dispatch updates.\n */\nvar Observer = function Observer (value) {\n this.value = value;\n this.dep = new Dep();\n this.vmCount = 0;\n def(value, '__ob__', this);\n if (Array.isArray(value)) {\n if (hasProto) {\n protoAugment(value, arrayMethods);\n } else {\n copyAugment(value, arrayMethods, arrayKeys);\n }\n this.observeArray(value);\n } else {\n this.walk(value);\n }\n};\n\n/**\n * Walk through all properties and convert them into\n * getter/setters. This method should only be called when\n * value type is Object.\n */\nObserver.prototype.walk = function walk (obj) {\n var keys = Object.keys(obj);\n for (var i = 0; i < keys.length; i++) {\n defineReactive$$1(obj, keys[i]);\n }\n};\n\n/**\n * Observe a list of Array items.\n */\nObserver.prototype.observeArray = function observeArray (items) {\n for (var i = 0, l = items.length; i < l; i++) {\n observe(items[i]);\n }\n};\n\n// helpers\n\n/**\n * Augment a target Object or Array by intercepting\n * the prototype chain using __proto__\n */\nfunction protoAugment (target, src) {\n /* eslint-disable no-proto */\n target.__proto__ = src;\n /* eslint-enable no-proto */\n}\n\n/**\n * Augment a target Object or Array by defining\n * hidden properties.\n */\n/* istanbul ignore next */\nfunction copyAugment (target, src, keys) {\n for (var i = 0, l = keys.length; i < l; i++) {\n var key = keys[i];\n def(target, key, src[key]);\n }\n}\n\n/**\n * Attempt to create an observer instance for a value,\n * returns the new observer if successfully observed,\n * or the existing observer if the value already has one.\n */\nfunction observe (value, asRootData) {\n if (!isObject(value) || value instanceof VNode) {\n return\n }\n var ob;\n if (hasOwn(value, '__ob__') && value.__ob__ instanceof Observer) {\n ob = value.__ob__;\n } else if (\n shouldObserve &&\n !isServerRendering() &&\n (Array.isArray(value) || isPlainObject(value)) &&\n Object.isExtensible(value) &&\n !value._isVue\n ) {\n ob = new Observer(value);\n }\n if (asRootData && ob) {\n ob.vmCount++;\n }\n return ob\n}\n\n/**\n * Define a reactive property on an Object.\n */\nfunction defineReactive$$1 (\n obj,\n key,\n val,\n customSetter,\n shallow\n) {\n var dep = new Dep();\n\n var property = Object.getOwnPropertyDescriptor(obj, key);\n if (property && property.configurable === false) {\n return\n }\n\n // cater for pre-defined getter/setters\n var getter = property && property.get;\n var setter = property && property.set;\n if ((!getter || setter) && arguments.length === 2) {\n val = obj[key];\n }\n\n var childOb = !shallow && observe(val);\n Object.defineProperty(obj, key, {\n enumerable: true,\n configurable: true,\n get: function reactiveGetter () {\n var value = getter ? getter.call(obj) : val;\n if (Dep.target) {\n dep.depend();\n if (childOb) {\n childOb.dep.depend();\n if (Array.isArray(value)) {\n dependArray(value);\n }\n }\n }\n return value\n },\n set: function reactiveSetter (newVal) {\n var value = getter ? getter.call(obj) : val;\n /* eslint-disable no-self-compare */\n if (newVal === value || (newVal !== newVal && value !== value)) {\n return\n }\n /* eslint-enable no-self-compare */\n if (process.env.NODE_ENV !== 'production' && customSetter) {\n customSetter();\n }\n // #7981: for accessor properties without setter\n if (getter && !setter) { return }\n if (setter) {\n setter.call(obj, newVal);\n } else {\n val = newVal;\n }\n childOb = !shallow && observe(newVal);\n dep.notify();\n }\n });\n}\n\n/**\n * Set a property on an object. Adds the new property and\n * triggers change notification if the property doesn't\n * already exist.\n */\nfunction set (target, key, val) {\n if (process.env.NODE_ENV !== 'production' &&\n (isUndef(target) || isPrimitive(target))\n ) {\n warn((\"Cannot set reactive property on undefined, null, or primitive value: \" + ((target))));\n }\n if (Array.isArray(target) && isValidArrayIndex(key)) {\n target.length = Math.max(target.length, key);\n target.splice(key, 1, val);\n return val\n }\n if (key in target && !(key in Object.prototype)) {\n target[key] = val;\n return val\n }\n var ob = (target).__ob__;\n if (target._isVue || (ob && ob.vmCount)) {\n process.env.NODE_ENV !== 'production' && warn(\n 'Avoid adding reactive properties to a Vue instance or its root $data ' +\n 'at runtime - declare it upfront in the data option.'\n );\n return val\n }\n if (!ob) {\n target[key] = val;\n return val\n }\n defineReactive$$1(ob.value, key, val);\n ob.dep.notify();\n return val\n}\n\n/**\n * Delete a property and trigger change if necessary.\n */\nfunction del (target, key) {\n if (process.env.NODE_ENV !== 'production' &&\n (isUndef(target) || isPrimitive(target))\n ) {\n warn((\"Cannot delete reactive property on undefined, null, or primitive value: \" + ((target))));\n }\n if (Array.isArray(target) && isValidArrayIndex(key)) {\n target.splice(key, 1);\n return\n }\n var ob = (target).__ob__;\n if (target._isVue || (ob && ob.vmCount)) {\n process.env.NODE_ENV !== 'production' && warn(\n 'Avoid deleting properties on a Vue instance or its root $data ' +\n '- just set it to null.'\n );\n return\n }\n if (!hasOwn(target, key)) {\n return\n }\n delete target[key];\n if (!ob) {\n return\n }\n ob.dep.notify();\n}\n\n/**\n * Collect dependencies on array elements when the array is touched, since\n * we cannot intercept array element access like property getters.\n */\nfunction dependArray (value) {\n for (var e = (void 0), i = 0, l = value.length; i < l; i++) {\n e = value[i];\n e && e.__ob__ && e.__ob__.dep.depend();\n if (Array.isArray(e)) {\n dependArray(e);\n }\n }\n}\n\n/* */\n\n/**\n * Option overwriting strategies are functions that handle\n * how to merge a parent option value and a child option\n * value into the final value.\n */\nvar strats = config.optionMergeStrategies;\n\n/**\n * Options with restrictions\n */\nif (process.env.NODE_ENV !== 'production') {\n strats.el = strats.propsData = function (parent, child, vm, key) {\n if (!vm) {\n warn(\n \"option \\\"\" + key + \"\\\" can only be used during instance \" +\n 'creation with the `new` keyword.'\n );\n }\n return defaultStrat(parent, child)\n };\n}\n\n/**\n * Helper that recursively merges two data objects together.\n */\nfunction mergeData (to, from) {\n if (!from) { return to }\n var key, toVal, fromVal;\n\n var keys = hasSymbol\n ? Reflect.ownKeys(from)\n : Object.keys(from);\n\n for (var i = 0; i < keys.length; i++) {\n key = keys[i];\n // in case the object is already observed...\n if (key === '__ob__') { continue }\n toVal = to[key];\n fromVal = from[key];\n if (!hasOwn(to, key)) {\n set(to, key, fromVal);\n } else if (\n toVal !== fromVal &&\n isPlainObject(toVal) &&\n isPlainObject(fromVal)\n ) {\n mergeData(toVal, fromVal);\n }\n }\n return to\n}\n\n/**\n * Data\n */\nfunction mergeDataOrFn (\n parentVal,\n childVal,\n vm\n) {\n if (!vm) {\n // in a Vue.extend merge, both should be functions\n if (!childVal) {\n return parentVal\n }\n if (!parentVal) {\n return childVal\n }\n // when parentVal & childVal are both present,\n // we need to return a function that returns the\n // merged result of both functions... no need to\n // check if parentVal is a function here because\n // it has to be a function to pass previous merges.\n return function mergedDataFn () {\n return mergeData(\n typeof childVal === 'function' ? childVal.call(this, this) : childVal,\n typeof parentVal === 'function' ? parentVal.call(this, this) : parentVal\n )\n }\n } else {\n return function mergedInstanceDataFn () {\n // instance merge\n var instanceData = typeof childVal === 'function'\n ? childVal.call(vm, vm)\n : childVal;\n var defaultData = typeof parentVal === 'function'\n ? parentVal.call(vm, vm)\n : parentVal;\n if (instanceData) {\n return mergeData(instanceData, defaultData)\n } else {\n return defaultData\n }\n }\n }\n}\n\nstrats.data = function (\n parentVal,\n childVal,\n vm\n) {\n if (!vm) {\n if (childVal && typeof childVal !== 'function') {\n process.env.NODE_ENV !== 'production' && warn(\n 'The \"data\" option should be a function ' +\n 'that returns a per-instance value in component ' +\n 'definitions.',\n vm\n );\n\n return parentVal\n }\n return mergeDataOrFn(parentVal, childVal)\n }\n\n return mergeDataOrFn(parentVal, childVal, vm)\n};\n\n/**\n * Hooks and props are merged as arrays.\n */\nfunction mergeHook (\n parentVal,\n childVal\n) {\n var res = childVal\n ? parentVal\n ? parentVal.concat(childVal)\n : Array.isArray(childVal)\n ? childVal\n : [childVal]\n : parentVal;\n return res\n ? dedupeHooks(res)\n : res\n}\n\nfunction dedupeHooks (hooks) {\n var res = [];\n for (var i = 0; i < hooks.length; i++) {\n if (res.indexOf(hooks[i]) === -1) {\n res.push(hooks[i]);\n }\n }\n return res\n}\n\nLIFECYCLE_HOOKS.forEach(function (hook) {\n strats[hook] = mergeHook;\n});\n\n/**\n * Assets\n *\n * When a vm is present (instance creation), we need to do\n * a three-way merge between constructor options, instance\n * options and parent options.\n */\nfunction mergeAssets (\n parentVal,\n childVal,\n vm,\n key\n) {\n var res = Object.create(parentVal || null);\n if (childVal) {\n process.env.NODE_ENV !== 'production' && assertObjectType(key, childVal, vm);\n return extend(res, childVal)\n } else {\n return res\n }\n}\n\nASSET_TYPES.forEach(function (type) {\n strats[type + 's'] = mergeAssets;\n});\n\n/**\n * Watchers.\n *\n * Watchers hashes should not overwrite one\n * another, so we merge them as arrays.\n */\nstrats.watch = function (\n parentVal,\n childVal,\n vm,\n key\n) {\n // work around Firefox's Object.prototype.watch...\n if (parentVal === nativeWatch) { parentVal = undefined; }\n if (childVal === nativeWatch) { childVal = undefined; }\n /* istanbul ignore if */\n if (!childVal) { return Object.create(parentVal || null) }\n if (process.env.NODE_ENV !== 'production') {\n assertObjectType(key, childVal, vm);\n }\n if (!parentVal) { return childVal }\n var ret = {};\n extend(ret, parentVal);\n for (var key$1 in childVal) {\n var parent = ret[key$1];\n var child = childVal[key$1];\n if (parent && !Array.isArray(parent)) {\n parent = [parent];\n }\n ret[key$1] = parent\n ? parent.concat(child)\n : Array.isArray(child) ? child : [child];\n }\n return ret\n};\n\n/**\n * Other object hashes.\n */\nstrats.props =\nstrats.methods =\nstrats.inject =\nstrats.computed = function (\n parentVal,\n childVal,\n vm,\n key\n) {\n if (childVal && process.env.NODE_ENV !== 'production') {\n assertObjectType(key, childVal, vm);\n }\n if (!parentVal) { return childVal }\n var ret = Object.create(null);\n extend(ret, parentVal);\n if (childVal) { extend(ret, childVal); }\n return ret\n};\nstrats.provide = mergeDataOrFn;\n\n/**\n * Default strategy.\n */\nvar defaultStrat = function (parentVal, childVal) {\n return childVal === undefined\n ? parentVal\n : childVal\n};\n\n/**\n * Validate component names\n */\nfunction checkComponents (options) {\n for (var key in options.components) {\n validateComponentName(key);\n }\n}\n\nfunction validateComponentName (name) {\n if (!new RegExp((\"^[a-zA-Z][\\\\-\\\\.0-9_\" + (unicodeRegExp.source) + \"]*$\")).test(name)) {\n warn(\n 'Invalid component name: \"' + name + '\". Component names ' +\n 'should conform to valid custom element name in html5 specification.'\n );\n }\n if (isBuiltInTag(name) || config.isReservedTag(name)) {\n warn(\n 'Do not use built-in or reserved HTML elements as component ' +\n 'id: ' + name\n );\n }\n}\n\n/**\n * Ensure all props option syntax are normalized into the\n * Object-based format.\n */\nfunction normalizeProps (options, vm) {\n var props = options.props;\n if (!props) { return }\n var res = {};\n var i, val, name;\n if (Array.isArray(props)) {\n i = props.length;\n while (i--) {\n val = props[i];\n if (typeof val === 'string') {\n name = camelize(val);\n res[name] = { type: null };\n } else if (process.env.NODE_ENV !== 'production') {\n warn('props must be strings when using array syntax.');\n }\n }\n } else if (isPlainObject(props)) {\n for (var key in props) {\n val = props[key];\n name = camelize(key);\n res[name] = isPlainObject(val)\n ? val\n : { type: val };\n }\n } else if (process.env.NODE_ENV !== 'production') {\n warn(\n \"Invalid value for option \\\"props\\\": expected an Array or an Object, \" +\n \"but got \" + (toRawType(props)) + \".\",\n vm\n );\n }\n options.props = res;\n}\n\n/**\n * Normalize all injections into Object-based format\n */\nfunction normalizeInject (options, vm) {\n var inject = options.inject;\n if (!inject) { return }\n var normalized = options.inject = {};\n if (Array.isArray(inject)) {\n for (var i = 0; i < inject.length; i++) {\n normalized[inject[i]] = { from: inject[i] };\n }\n } else if (isPlainObject(inject)) {\n for (var key in inject) {\n var val = inject[key];\n normalized[key] = isPlainObject(val)\n ? extend({ from: key }, val)\n : { from: val };\n }\n } else if (process.env.NODE_ENV !== 'production') {\n warn(\n \"Invalid value for option \\\"inject\\\": expected an Array or an Object, \" +\n \"but got \" + (toRawType(inject)) + \".\",\n vm\n );\n }\n}\n\n/**\n * Normalize raw function directives into object format.\n */\nfunction normalizeDirectives (options) {\n var dirs = options.directives;\n if (dirs) {\n for (var key in dirs) {\n var def$$1 = dirs[key];\n if (typeof def$$1 === 'function') {\n dirs[key] = { bind: def$$1, update: def$$1 };\n }\n }\n }\n}\n\nfunction assertObjectType (name, value, vm) {\n if (!isPlainObject(value)) {\n warn(\n \"Invalid value for option \\\"\" + name + \"\\\": expected an Object, \" +\n \"but got \" + (toRawType(value)) + \".\",\n vm\n );\n }\n}\n\n/**\n * Merge two option objects into a new one.\n * Core utility used in both instantiation and inheritance.\n */\nfunction mergeOptions (\n parent,\n child,\n vm\n) {\n if (process.env.NODE_ENV !== 'production') {\n checkComponents(child);\n }\n\n if (typeof child === 'function') {\n child = child.options;\n }\n\n normalizeProps(child, vm);\n normalizeInject(child, vm);\n normalizeDirectives(child);\n\n // Apply extends and mixins on the child options,\n // but only if it is a raw options object that isn't\n // the result of another mergeOptions call.\n // Only merged options has the _base property.\n if (!child._base) {\n if (child.extends) {\n parent = mergeOptions(parent, child.extends, vm);\n }\n if (child.mixins) {\n for (var i = 0, l = child.mixins.length; i < l; i++) {\n parent = mergeOptions(parent, child.mixins[i], vm);\n }\n }\n }\n\n var options = {};\n var key;\n for (key in parent) {\n mergeField(key);\n }\n for (key in child) {\n if (!hasOwn(parent, key)) {\n mergeField(key);\n }\n }\n function mergeField (key) {\n var strat = strats[key] || defaultStrat;\n options[key] = strat(parent[key], child[key], vm, key);\n }\n return options\n}\n\n/**\n * Resolve an asset.\n * This function is used because child instances need access\n * to assets defined in its ancestor chain.\n */\nfunction resolveAsset (\n options,\n type,\n id,\n warnMissing\n) {\n /* istanbul ignore if */\n if (typeof id !== 'string') {\n return\n }\n var assets = options[type];\n // check local registration variations first\n if (hasOwn(assets, id)) { return assets[id] }\n var camelizedId = camelize(id);\n if (hasOwn(assets, camelizedId)) { return assets[camelizedId] }\n var PascalCaseId = capitalize(camelizedId);\n if (hasOwn(assets, PascalCaseId)) { return assets[PascalCaseId] }\n // fallback to prototype chain\n var res = assets[id] || assets[camelizedId] || assets[PascalCaseId];\n if (process.env.NODE_ENV !== 'production' && warnMissing && !res) {\n warn(\n 'Failed to resolve ' + type.slice(0, -1) + ': ' + id,\n options\n );\n }\n return res\n}\n\n/* */\n\n\n\nfunction validateProp (\n key,\n propOptions,\n propsData,\n vm\n) {\n var prop = propOptions[key];\n var absent = !hasOwn(propsData, key);\n var value = propsData[key];\n // boolean casting\n var booleanIndex = getTypeIndex(Boolean, prop.type);\n if (booleanIndex > -1) {\n if (absent && !hasOwn(prop, 'default')) {\n value = false;\n } else if (value === '' || value === hyphenate(key)) {\n // only cast empty string / same name to boolean if\n // boolean has higher priority\n var stringIndex = getTypeIndex(String, prop.type);\n if (stringIndex < 0 || booleanIndex < stringIndex) {\n value = true;\n }\n }\n }\n // check default value\n if (value === undefined) {\n value = getPropDefaultValue(vm, prop, key);\n // since the default value is a fresh copy,\n // make sure to observe it.\n var prevShouldObserve = shouldObserve;\n toggleObserving(true);\n observe(value);\n toggleObserving(prevShouldObserve);\n }\n if (\n process.env.NODE_ENV !== 'production' &&\n // skip validation for weex recycle-list child component props\n !(false)\n ) {\n assertProp(prop, key, value, vm, absent);\n }\n return value\n}\n\n/**\n * Get the default value of a prop.\n */\nfunction getPropDefaultValue (vm, prop, key) {\n // no default, return undefined\n if (!hasOwn(prop, 'default')) {\n return undefined\n }\n var def = prop.default;\n // warn against non-factory defaults for Object & Array\n if (process.env.NODE_ENV !== 'production' && isObject(def)) {\n warn(\n 'Invalid default value for prop \"' + key + '\": ' +\n 'Props with type Object/Array must use a factory function ' +\n 'to return the default value.',\n vm\n );\n }\n // the raw prop value was also undefined from previous render,\n // return previous default value to avoid unnecessary watcher trigger\n if (vm && vm.$options.propsData &&\n vm.$options.propsData[key] === undefined &&\n vm._props[key] !== undefined\n ) {\n return vm._props[key]\n }\n // call factory function for non-Function types\n // a value is Function if its prototype is function even across different execution context\n return typeof def === 'function' && getType(prop.type) !== 'Function'\n ? def.call(vm)\n : def\n}\n\n/**\n * Assert whether a prop is valid.\n */\nfunction assertProp (\n prop,\n name,\n value,\n vm,\n absent\n) {\n if (prop.required && absent) {\n warn(\n 'Missing required prop: \"' + name + '\"',\n vm\n );\n return\n }\n if (value == null && !prop.required) {\n return\n }\n var type = prop.type;\n var valid = !type || type === true;\n var expectedTypes = [];\n if (type) {\n if (!Array.isArray(type)) {\n type = [type];\n }\n for (var i = 0; i < type.length && !valid; i++) {\n var assertedType = assertType(value, type[i]);\n expectedTypes.push(assertedType.expectedType || '');\n valid = assertedType.valid;\n }\n }\n\n if (!valid) {\n warn(\n getInvalidTypeMessage(name, value, expectedTypes),\n vm\n );\n return\n }\n var validator = prop.validator;\n if (validator) {\n if (!validator(value)) {\n warn(\n 'Invalid prop: custom validator check failed for prop \"' + name + '\".',\n vm\n );\n }\n }\n}\n\nvar simpleCheckRE = /^(String|Number|Boolean|Function|Symbol)$/;\n\nfunction assertType (value, type) {\n var valid;\n var expectedType = getType(type);\n if (simpleCheckRE.test(expectedType)) {\n var t = typeof value;\n valid = t === expectedType.toLowerCase();\n // for primitive wrapper objects\n if (!valid && t === 'object') {\n valid = value instanceof type;\n }\n } else if (expectedType === 'Object') {\n valid = isPlainObject(value);\n } else if (expectedType === 'Array') {\n valid = Array.isArray(value);\n } else {\n valid = value instanceof type;\n }\n return {\n valid: valid,\n expectedType: expectedType\n }\n}\n\n/**\n * Use function string name to check built-in types,\n * because a simple equality check will fail when running\n * across different vms / iframes.\n */\nfunction getType (fn) {\n var match = fn && fn.toString().match(/^\\s*function (\\w+)/);\n return match ? match[1] : ''\n}\n\nfunction isSameType (a, b) {\n return getType(a) === getType(b)\n}\n\nfunction getTypeIndex (type, expectedTypes) {\n if (!Array.isArray(expectedTypes)) {\n return isSameType(expectedTypes, type) ? 0 : -1\n }\n for (var i = 0, len = expectedTypes.length; i < len; i++) {\n if (isSameType(expectedTypes[i], type)) {\n return i\n }\n }\n return -1\n}\n\nfunction getInvalidTypeMessage (name, value, expectedTypes) {\n var message = \"Invalid prop: type check failed for prop \\\"\" + name + \"\\\".\" +\n \" Expected \" + (expectedTypes.map(capitalize).join(', '));\n var expectedType = expectedTypes[0];\n var receivedType = toRawType(value);\n var expectedValue = styleValue(value, expectedType);\n var receivedValue = styleValue(value, receivedType);\n // check if we need to specify expected value\n if (expectedTypes.length === 1 &&\n isExplicable(expectedType) &&\n !isBoolean(expectedType, receivedType)) {\n message += \" with value \" + expectedValue;\n }\n message += \", got \" + receivedType + \" \";\n // check if we need to specify received value\n if (isExplicable(receivedType)) {\n message += \"with value \" + receivedValue + \".\";\n }\n return message\n}\n\nfunction styleValue (value, type) {\n if (type === 'String') {\n return (\"\\\"\" + value + \"\\\"\")\n } else if (type === 'Number') {\n return (\"\" + (Number(value)))\n } else {\n return (\"\" + value)\n }\n}\n\nfunction isExplicable (value) {\n var explicitTypes = ['string', 'number', 'boolean'];\n return explicitTypes.some(function (elem) { return value.toLowerCase() === elem; })\n}\n\nfunction isBoolean () {\n var args = [], len = arguments.length;\n while ( len-- ) args[ len ] = arguments[ len ];\n\n return args.some(function (elem) { return elem.toLowerCase() === 'boolean'; })\n}\n\n/* */\n\nfunction handleError (err, vm, info) {\n // Deactivate deps tracking while processing error handler to avoid possible infinite rendering.\n // See: https://github.com/vuejs/vuex/issues/1505\n pushTarget();\n try {\n if (vm) {\n var cur = vm;\n while ((cur = cur.$parent)) {\n var hooks = cur.$options.errorCaptured;\n if (hooks) {\n for (var i = 0; i < hooks.length; i++) {\n try {\n var capture = hooks[i].call(cur, err, vm, info) === false;\n if (capture) { return }\n } catch (e) {\n globalHandleError(e, cur, 'errorCaptured hook');\n }\n }\n }\n }\n }\n globalHandleError(err, vm, info);\n } finally {\n popTarget();\n }\n}\n\nfunction invokeWithErrorHandling (\n handler,\n context,\n args,\n vm,\n info\n) {\n var res;\n try {\n res = args ? handler.apply(context, args) : handler.call(context);\n if (res && !res._isVue && isPromise(res) && !res._handled) {\n res.catch(function (e) { return handleError(e, vm, info + \" (Promise/async)\"); });\n // issue #9511\n // avoid catch triggering multiple times when nested calls\n res._handled = true;\n }\n } catch (e) {\n handleError(e, vm, info);\n }\n return res\n}\n\nfunction globalHandleError (err, vm, info) {\n if (config.errorHandler) {\n try {\n return config.errorHandler.call(null, err, vm, info)\n } catch (e) {\n // if the user intentionally throws the original error in the handler,\n // do not log it twice\n if (e !== err) {\n logError(e, null, 'config.errorHandler');\n }\n }\n }\n logError(err, vm, info);\n}\n\nfunction logError (err, vm, info) {\n if (process.env.NODE_ENV !== 'production') {\n warn((\"Error in \" + info + \": \\\"\" + (err.toString()) + \"\\\"\"), vm);\n }\n /* istanbul ignore else */\n if ((inBrowser || inWeex) && typeof console !== 'undefined') {\n console.error(err);\n } else {\n throw err\n }\n}\n\n/* */\n\nvar isUsingMicroTask = false;\n\nvar callbacks = [];\nvar pending = false;\n\nfunction flushCallbacks () {\n pending = false;\n var copies = callbacks.slice(0);\n callbacks.length = 0;\n for (var i = 0; i < copies.length; i++) {\n copies[i]();\n }\n}\n\n// Here we have async deferring wrappers using microtasks.\n// In 2.5 we used (macro) tasks (in combination with microtasks).\n// However, it has subtle problems when state is changed right before repaint\n// (e.g. #6813, out-in transitions).\n// Also, using (macro) tasks in event handler would cause some weird behaviors\n// that cannot be circumvented (e.g. #7109, #7153, #7546, #7834, #8109).\n// So we now use microtasks everywhere, again.\n// A major drawback of this tradeoff is that there are some scenarios\n// where microtasks have too high a priority and fire in between supposedly\n// sequential events (e.g. #4521, #6690, which have workarounds)\n// or even between bubbling of the same event (#6566).\nvar timerFunc;\n\n// The nextTick behavior leverages the microtask queue, which can be accessed\n// via either native Promise.then or MutationObserver.\n// MutationObserver has wider support, however it is seriously bugged in\n// UIWebView in iOS >= 9.3.3 when triggered in touch event handlers. It\n// completely stops working after triggering a few times... so, if native\n// Promise is available, we will use it:\n/* istanbul ignore next, $flow-disable-line */\nif (typeof Promise !== 'undefined' && isNative(Promise)) {\n var p = Promise.resolve();\n timerFunc = function () {\n p.then(flushCallbacks);\n // In problematic UIWebViews, Promise.then doesn't completely break, but\n // it can get stuck in a weird state where callbacks are pushed into the\n // microtask queue but the queue isn't being flushed, until the browser\n // needs to do some other work, e.g. handle a timer. Therefore we can\n // \"force\" the microtask queue to be flushed by adding an empty timer.\n if (isIOS) { setTimeout(noop); }\n };\n isUsingMicroTask = true;\n} else if (!isIE && typeof MutationObserver !== 'undefined' && (\n isNative(MutationObserver) ||\n // PhantomJS and iOS 7.x\n MutationObserver.toString() === '[object MutationObserverConstructor]'\n)) {\n // Use MutationObserver where native Promise is not available,\n // e.g. PhantomJS, iOS7, Android 4.4\n // (#6466 MutationObserver is unreliable in IE11)\n var counter = 1;\n var observer = new MutationObserver(flushCallbacks);\n var textNode = document.createTextNode(String(counter));\n observer.observe(textNode, {\n characterData: true\n });\n timerFunc = function () {\n counter = (counter + 1) % 2;\n textNode.data = String(counter);\n };\n isUsingMicroTask = true;\n} else if (typeof setImmediate !== 'undefined' && isNative(setImmediate)) {\n // Fallback to setImmediate.\n // Technically it leverages the (macro) task queue,\n // but it is still a better choice than setTimeout.\n timerFunc = function () {\n setImmediate(flushCallbacks);\n };\n} else {\n // Fallback to setTimeout.\n timerFunc = function () {\n setTimeout(flushCallbacks, 0);\n };\n}\n\nfunction nextTick (cb, ctx) {\n var _resolve;\n callbacks.push(function () {\n if (cb) {\n try {\n cb.call(ctx);\n } catch (e) {\n handleError(e, ctx, 'nextTick');\n }\n } else if (_resolve) {\n _resolve(ctx);\n }\n });\n if (!pending) {\n pending = true;\n timerFunc();\n }\n // $flow-disable-line\n if (!cb && typeof Promise !== 'undefined') {\n return new Promise(function (resolve) {\n _resolve = resolve;\n })\n }\n}\n\n/* */\n\n/* not type checking this file because flow doesn't play well with Proxy */\n\nvar initProxy;\n\nif (process.env.NODE_ENV !== 'production') {\n var allowedGlobals = makeMap(\n 'Infinity,undefined,NaN,isFinite,isNaN,' +\n 'parseFloat,parseInt,decodeURI,decodeURIComponent,encodeURI,encodeURIComponent,' +\n 'Math,Number,Date,Array,Object,Boolean,String,RegExp,Map,Set,JSON,Intl,' +\n 'require' // for Webpack/Browserify\n );\n\n var warnNonPresent = function (target, key) {\n warn(\n \"Property or method \\\"\" + key + \"\\\" is not defined on the instance but \" +\n 'referenced during render. Make sure that this property is reactive, ' +\n 'either in the data option, or for class-based components, by ' +\n 'initializing the property. ' +\n 'See: https://vuejs.org/v2/guide/reactivity.html#Declaring-Reactive-Properties.',\n target\n );\n };\n\n var warnReservedPrefix = function (target, key) {\n warn(\n \"Property \\\"\" + key + \"\\\" must be accessed with \\\"$data.\" + key + \"\\\" because \" +\n 'properties starting with \"$\" or \"_\" are not proxied in the Vue instance to ' +\n 'prevent conflicts with Vue internals. ' +\n 'See: https://vuejs.org/v2/api/#data',\n target\n );\n };\n\n var hasProxy =\n typeof Proxy !== 'undefined' && isNative(Proxy);\n\n if (hasProxy) {\n var isBuiltInModifier = makeMap('stop,prevent,self,ctrl,shift,alt,meta,exact');\n config.keyCodes = new Proxy(config.keyCodes, {\n set: function set (target, key, value) {\n if (isBuiltInModifier(key)) {\n warn((\"Avoid overwriting built-in modifier in config.keyCodes: .\" + key));\n return false\n } else {\n target[key] = value;\n return true\n }\n }\n });\n }\n\n var hasHandler = {\n has: function has (target, key) {\n var has = key in target;\n var isAllowed = allowedGlobals(key) ||\n (typeof key === 'string' && key.charAt(0) === '_' && !(key in target.$data));\n if (!has && !isAllowed) {\n if (key in target.$data) { warnReservedPrefix(target, key); }\n else { warnNonPresent(target, key); }\n }\n return has || !isAllowed\n }\n };\n\n var getHandler = {\n get: function get (target, key) {\n if (typeof key === 'string' && !(key in target)) {\n if (key in target.$data) { warnReservedPrefix(target, key); }\n else { warnNonPresent(target, key); }\n }\n return target[key]\n }\n };\n\n initProxy = function initProxy (vm) {\n if (hasProxy) {\n // determine which proxy handler to use\n var options = vm.$options;\n var handlers = options.render && options.render._withStripped\n ? getHandler\n : hasHandler;\n vm._renderProxy = new Proxy(vm, handlers);\n } else {\n vm._renderProxy = vm;\n }\n };\n}\n\n/* */\n\nvar seenObjects = new _Set();\n\n/**\n * Recursively traverse an object to evoke all converted\n * getters, so that every nested property inside the object\n * is collected as a \"deep\" dependency.\n */\nfunction traverse (val) {\n _traverse(val, seenObjects);\n seenObjects.clear();\n}\n\nfunction _traverse (val, seen) {\n var i, keys;\n var isA = Array.isArray(val);\n if ((!isA && !isObject(val)) || Object.isFrozen(val) || val instanceof VNode) {\n return\n }\n if (val.__ob__) {\n var depId = val.__ob__.dep.id;\n if (seen.has(depId)) {\n return\n }\n seen.add(depId);\n }\n if (isA) {\n i = val.length;\n while (i--) { _traverse(val[i], seen); }\n } else {\n keys = Object.keys(val);\n i = keys.length;\n while (i--) { _traverse(val[keys[i]], seen); }\n }\n}\n\nvar mark;\nvar measure;\n\nif (process.env.NODE_ENV !== 'production') {\n var perf = inBrowser && window.performance;\n /* istanbul ignore if */\n if (\n perf &&\n perf.mark &&\n perf.measure &&\n perf.clearMarks &&\n perf.clearMeasures\n ) {\n mark = function (tag) { return perf.mark(tag); };\n measure = function (name, startTag, endTag) {\n perf.measure(name, startTag, endTag);\n perf.clearMarks(startTag);\n perf.clearMarks(endTag);\n // perf.clearMeasures(name)\n };\n }\n}\n\n/* */\n\nvar normalizeEvent = cached(function (name) {\n var passive = name.charAt(0) === '&';\n name = passive ? name.slice(1) : name;\n var once$$1 = name.charAt(0) === '~'; // Prefixed last, checked first\n name = once$$1 ? name.slice(1) : name;\n var capture = name.charAt(0) === '!';\n name = capture ? name.slice(1) : name;\n return {\n name: name,\n once: once$$1,\n capture: capture,\n passive: passive\n }\n});\n\nfunction createFnInvoker (fns, vm) {\n function invoker () {\n var arguments$1 = arguments;\n\n var fns = invoker.fns;\n if (Array.isArray(fns)) {\n var cloned = fns.slice();\n for (var i = 0; i < cloned.length; i++) {\n invokeWithErrorHandling(cloned[i], null, arguments$1, vm, \"v-on handler\");\n }\n } else {\n // return handler return value for single handlers\n return invokeWithErrorHandling(fns, null, arguments, vm, \"v-on handler\")\n }\n }\n invoker.fns = fns;\n return invoker\n}\n\nfunction updateListeners (\n on,\n oldOn,\n add,\n remove$$1,\n createOnceHandler,\n vm\n) {\n var name, def$$1, cur, old, event;\n for (name in on) {\n def$$1 = cur = on[name];\n old = oldOn[name];\n event = normalizeEvent(name);\n if (isUndef(cur)) {\n process.env.NODE_ENV !== 'production' && warn(\n \"Invalid handler for event \\\"\" + (event.name) + \"\\\": got \" + String(cur),\n vm\n );\n } else if (isUndef(old)) {\n if (isUndef(cur.fns)) {\n cur = on[name] = createFnInvoker(cur, vm);\n }\n if (isTrue(event.once)) {\n cur = on[name] = createOnceHandler(event.name, cur, event.capture);\n }\n add(event.name, cur, event.capture, event.passive, event.params);\n } else if (cur !== old) {\n old.fns = cur;\n on[name] = old;\n }\n }\n for (name in oldOn) {\n if (isUndef(on[name])) {\n event = normalizeEvent(name);\n remove$$1(event.name, oldOn[name], event.capture);\n }\n }\n}\n\n/* */\n\nfunction mergeVNodeHook (def, hookKey, hook) {\n if (def instanceof VNode) {\n def = def.data.hook || (def.data.hook = {});\n }\n var invoker;\n var oldHook = def[hookKey];\n\n function wrappedHook () {\n hook.apply(this, arguments);\n // important: remove merged hook to ensure it's called only once\n // and prevent memory leak\n remove(invoker.fns, wrappedHook);\n }\n\n if (isUndef(oldHook)) {\n // no existing hook\n invoker = createFnInvoker([wrappedHook]);\n } else {\n /* istanbul ignore if */\n if (isDef(oldHook.fns) && isTrue(oldHook.merged)) {\n // already a merged invoker\n invoker = oldHook;\n invoker.fns.push(wrappedHook);\n } else {\n // existing plain hook\n invoker = createFnInvoker([oldHook, wrappedHook]);\n }\n }\n\n invoker.merged = true;\n def[hookKey] = invoker;\n}\n\n/* */\n\nfunction extractPropsFromVNodeData (\n data,\n Ctor,\n tag\n) {\n // we are only extracting raw values here.\n // validation and default values are handled in the child\n // component itself.\n var propOptions = Ctor.options.props;\n if (isUndef(propOptions)) {\n return\n }\n var res = {};\n var attrs = data.attrs;\n var props = data.props;\n if (isDef(attrs) || isDef(props)) {\n for (var key in propOptions) {\n var altKey = hyphenate(key);\n if (process.env.NODE_ENV !== 'production') {\n var keyInLowerCase = key.toLowerCase();\n if (\n key !== keyInLowerCase &&\n attrs && hasOwn(attrs, keyInLowerCase)\n ) {\n tip(\n \"Prop \\\"\" + keyInLowerCase + \"\\\" is passed to component \" +\n (formatComponentName(tag || Ctor)) + \", but the declared prop name is\" +\n \" \\\"\" + key + \"\\\". \" +\n \"Note that HTML attributes are case-insensitive and camelCased \" +\n \"props need to use their kebab-case equivalents when using in-DOM \" +\n \"templates. You should probably use \\\"\" + altKey + \"\\\" instead of \\\"\" + key + \"\\\".\"\n );\n }\n }\n checkProp(res, props, key, altKey, true) ||\n checkProp(res, attrs, key, altKey, false);\n }\n }\n return res\n}\n\nfunction checkProp (\n res,\n hash,\n key,\n altKey,\n preserve\n) {\n if (isDef(hash)) {\n if (hasOwn(hash, key)) {\n res[key] = hash[key];\n if (!preserve) {\n delete hash[key];\n }\n return true\n } else if (hasOwn(hash, altKey)) {\n res[key] = hash[altKey];\n if (!preserve) {\n delete hash[altKey];\n }\n return true\n }\n }\n return false\n}\n\n/* */\n\n// The template compiler attempts to minimize the need for normalization by\n// statically analyzing the template at compile time.\n//\n// For plain HTML markup, normalization can be completely skipped because the\n// generated render function is guaranteed to return Array<VNode>. There are\n// two cases where extra normalization is needed:\n\n// 1. When the children contains components - because a functional component\n// may return an Array instead of a single root. In this case, just a simple\n// normalization is needed - if any child is an Array, we flatten the whole\n// thing with Array.prototype.concat. It is guaranteed to be only 1-level deep\n// because functional components already normalize their own children.\nfunction simpleNormalizeChildren (children) {\n for (var i = 0; i < children.length; i++) {\n if (Array.isArray(children[i])) {\n return Array.prototype.concat.apply([], children)\n }\n }\n return children\n}\n\n// 2. When the children contains constructs that always generated nested Arrays,\n// e.g. <template>, <slot>, v-for, or when the children is provided by user\n// with hand-written render functions / JSX. In such cases a full normalization\n// is needed to cater to all possible types of children values.\nfunction normalizeChildren (children) {\n return isPrimitive(children)\n ? [createTextVNode(children)]\n : Array.isArray(children)\n ? normalizeArrayChildren(children)\n : undefined\n}\n\nfunction isTextNode (node) {\n return isDef(node) && isDef(node.text) && isFalse(node.isComment)\n}\n\nfunction normalizeArrayChildren (children, nestedIndex) {\n var res = [];\n var i, c, lastIndex, last;\n for (i = 0; i < children.length; i++) {\n c = children[i];\n if (isUndef(c) || typeof c === 'boolean') { continue }\n lastIndex = res.length - 1;\n last = res[lastIndex];\n // nested\n if (Array.isArray(c)) {\n if (c.length > 0) {\n c = normalizeArrayChildren(c, ((nestedIndex || '') + \"_\" + i));\n // merge adjacent text nodes\n if (isTextNode(c[0]) && isTextNode(last)) {\n res[lastIndex] = createTextVNode(last.text + (c[0]).text);\n c.shift();\n }\n res.push.apply(res, c);\n }\n } else if (isPrimitive(c)) {\n if (isTextNode(last)) {\n // merge adjacent text nodes\n // this is necessary for SSR hydration because text nodes are\n // essentially merged when rendered to HTML strings\n res[lastIndex] = createTextVNode(last.text + c);\n } else if (c !== '') {\n // convert primitive to vnode\n res.push(createTextVNode(c));\n }\n } else {\n if (isTextNode(c) && isTextNode(last)) {\n // merge adjacent text nodes\n res[lastIndex] = createTextVNode(last.text + c.text);\n } else {\n // default key for nested array children (likely generated by v-for)\n if (isTrue(children._isVList) &&\n isDef(c.tag) &&\n isUndef(c.key) &&\n isDef(nestedIndex)) {\n c.key = \"__vlist\" + nestedIndex + \"_\" + i + \"__\";\n }\n res.push(c);\n }\n }\n }\n return res\n}\n\n/* */\n\nfunction initProvide (vm) {\n var provide = vm.$options.provide;\n if (provide) {\n vm._provided = typeof provide === 'function'\n ? provide.call(vm)\n : provide;\n }\n}\n\nfunction initInjections (vm) {\n var result = resolveInject(vm.$options.inject, vm);\n if (result) {\n toggleObserving(false);\n Object.keys(result).forEach(function (key) {\n /* istanbul ignore else */\n if (process.env.NODE_ENV !== 'production') {\n defineReactive$$1(vm, key, result[key], function () {\n warn(\n \"Avoid mutating an injected value directly since the changes will be \" +\n \"overwritten whenever the provided component re-renders. \" +\n \"injection being mutated: \\\"\" + key + \"\\\"\",\n vm\n );\n });\n } else {\n defineReactive$$1(vm, key, result[key]);\n }\n });\n toggleObserving(true);\n }\n}\n\nfunction resolveInject (inject, vm) {\n if (inject) {\n // inject is :any because flow is not smart enough to figure out cached\n var result = Object.create(null);\n var keys = hasSymbol\n ? Reflect.ownKeys(inject)\n : Object.keys(inject);\n\n for (var i = 0; i < keys.length; i++) {\n var key = keys[i];\n // #6574 in case the inject object is observed...\n if (key === '__ob__') { continue }\n var provideKey = inject[key].from;\n var source = vm;\n while (source) {\n if (source._provided && hasOwn(source._provided, provideKey)) {\n result[key] = source._provided[provideKey];\n break\n }\n source = source.$parent;\n }\n if (!source) {\n if ('default' in inject[key]) {\n var provideDefault = inject[key].default;\n result[key] = typeof provideDefault === 'function'\n ? provideDefault.call(vm)\n : provideDefault;\n } else if (process.env.NODE_ENV !== 'production') {\n warn((\"Injection \\\"\" + key + \"\\\" not found\"), vm);\n }\n }\n }\n return result\n }\n}\n\n/* */\n\n\n\n/**\n * Runtime helper for resolving raw children VNodes into a slot object.\n */\nfunction resolveSlots (\n children,\n context\n) {\n if (!children || !children.length) {\n return {}\n }\n var slots = {};\n for (var i = 0, l = children.length; i < l; i++) {\n var child = children[i];\n var data = child.data;\n // remove slot attribute if the node is resolved as a Vue slot node\n if (data && data.attrs && data.attrs.slot) {\n delete data.attrs.slot;\n }\n // named slots should only be respected if the vnode was rendered in the\n // same context.\n if ((child.context === context || child.fnContext === context) &&\n data && data.slot != null\n ) {\n var name = data.slot;\n var slot = (slots[name] || (slots[name] = []));\n if (child.tag === 'template') {\n slot.push.apply(slot, child.children || []);\n } else {\n slot.push(child);\n }\n } else {\n (slots.default || (slots.default = [])).push(child);\n }\n }\n // ignore slots that contains only whitespace\n for (var name$1 in slots) {\n if (slots[name$1].every(isWhitespace)) {\n delete slots[name$1];\n }\n }\n return slots\n}\n\nfunction isWhitespace (node) {\n return (node.isComment && !node.asyncFactory) || node.text === ' '\n}\n\n/* */\n\nfunction normalizeScopedSlots (\n slots,\n normalSlots,\n prevSlots\n) {\n var res;\n var hasNormalSlots = Object.keys(normalSlots).length > 0;\n var isStable = slots ? !!slots.$stable : !hasNormalSlots;\n var key = slots && slots.$key;\n if (!slots) {\n res = {};\n } else if (slots._normalized) {\n // fast path 1: child component re-render only, parent did not change\n return slots._normalized\n } else if (\n isStable &&\n prevSlots &&\n prevSlots !== emptyObject &&\n key === prevSlots.$key &&\n !hasNormalSlots &&\n !prevSlots.$hasNormal\n ) {\n // fast path 2: stable scoped slots w/ no normal slots to proxy,\n // only need to normalize once\n return prevSlots\n } else {\n res = {};\n for (var key$1 in slots) {\n if (slots[key$1] && key$1[0] !== '$') {\n res[key$1] = normalizeScopedSlot(normalSlots, key$1, slots[key$1]);\n }\n }\n }\n // expose normal slots on scopedSlots\n for (var key$2 in normalSlots) {\n if (!(key$2 in res)) {\n res[key$2] = proxyNormalSlot(normalSlots, key$2);\n }\n }\n // avoriaz seems to mock a non-extensible $scopedSlots object\n // and when that is passed down this would cause an error\n if (slots && Object.isExtensible(slots)) {\n (slots)._normalized = res;\n }\n def(res, '$stable', isStable);\n def(res, '$key', key);\n def(res, '$hasNormal', hasNormalSlots);\n return res\n}\n\nfunction normalizeScopedSlot(normalSlots, key, fn) {\n var normalized = function () {\n var res = arguments.length ? fn.apply(null, arguments) : fn({});\n res = res && typeof res === 'object' && !Array.isArray(res)\n ? [res] // single vnode\n : normalizeChildren(res);\n return res && (\n res.length === 0 ||\n (res.length === 1 && res[0].isComment) // #9658\n ) ? undefined\n : res\n };\n // this is a slot using the new v-slot syntax without scope. although it is\n // compiled as a scoped slot, render fn users would expect it to be present\n // on this.$slots because the usage is semantically a normal slot.\n if (fn.proxy) {\n Object.defineProperty(normalSlots, key, {\n get: normalized,\n enumerable: true,\n configurable: true\n });\n }\n return normalized\n}\n\nfunction proxyNormalSlot(slots, key) {\n return function () { return slots[key]; }\n}\n\n/* */\n\n/**\n * Runtime helper for rendering v-for lists.\n */\nfunction renderList (\n val,\n render\n) {\n var ret, i, l, keys, key;\n if (Array.isArray(val) || typeof val === 'string') {\n ret = new Array(val.length);\n for (i = 0, l = val.length; i < l; i++) {\n ret[i] = render(val[i], i);\n }\n } else if (typeof val === 'number') {\n ret = new Array(val);\n for (i = 0; i < val; i++) {\n ret[i] = render(i + 1, i);\n }\n } else if (isObject(val)) {\n if (hasSymbol && val[Symbol.iterator]) {\n ret = [];\n var iterator = val[Symbol.iterator]();\n var result = iterator.next();\n while (!result.done) {\n ret.push(render(result.value, ret.length));\n result = iterator.next();\n }\n } else {\n keys = Object.keys(val);\n ret = new Array(keys.length);\n for (i = 0, l = keys.length; i < l; i++) {\n key = keys[i];\n ret[i] = render(val[key], key, i);\n }\n }\n }\n if (!isDef(ret)) {\n ret = [];\n }\n (ret)._isVList = true;\n return ret\n}\n\n/* */\n\n/**\n * Runtime helper for rendering <slot>\n */\nfunction renderSlot (\n name,\n fallback,\n props,\n bindObject\n) {\n var scopedSlotFn = this.$scopedSlots[name];\n var nodes;\n if (scopedSlotFn) { // scoped slot\n props = props || {};\n if (bindObject) {\n if (process.env.NODE_ENV !== 'production' && !isObject(bindObject)) {\n warn(\n 'slot v-bind without argument expects an Object',\n this\n );\n }\n props = extend(extend({}, bindObject), props);\n }\n nodes = scopedSlotFn(props) || fallback;\n } else {\n nodes = this.$slots[name] || fallback;\n }\n\n var target = props && props.slot;\n if (target) {\n return this.$createElement('template', { slot: target }, nodes)\n } else {\n return nodes\n }\n}\n\n/* */\n\n/**\n * Runtime helper for resolving filters\n */\nfunction resolveFilter (id) {\n return resolveAsset(this.$options, 'filters', id, true) || identity\n}\n\n/* */\n\nfunction isKeyNotMatch (expect, actual) {\n if (Array.isArray(expect)) {\n return expect.indexOf(actual) === -1\n } else {\n return expect !== actual\n }\n}\n\n/**\n * Runtime helper for checking keyCodes from config.\n * exposed as Vue.prototype._k\n * passing in eventKeyName as last argument separately for backwards compat\n */\nfunction checkKeyCodes (\n eventKeyCode,\n key,\n builtInKeyCode,\n eventKeyName,\n builtInKeyName\n) {\n var mappedKeyCode = config.keyCodes[key] || builtInKeyCode;\n if (builtInKeyName && eventKeyName && !config.keyCodes[key]) {\n return isKeyNotMatch(builtInKeyName, eventKeyName)\n } else if (mappedKeyCode) {\n return isKeyNotMatch(mappedKeyCode, eventKeyCode)\n } else if (eventKeyName) {\n return hyphenate(eventKeyName) !== key\n }\n}\n\n/* */\n\n/**\n * Runtime helper for merging v-bind=\"object\" into a VNode's data.\n */\nfunction bindObjectProps (\n data,\n tag,\n value,\n asProp,\n isSync\n) {\n if (value) {\n if (!isObject(value)) {\n process.env.NODE_ENV !== 'production' && warn(\n 'v-bind without argument expects an Object or Array value',\n this\n );\n } else {\n if (Array.isArray(value)) {\n value = toObject(value);\n }\n var hash;\n var loop = function ( key ) {\n if (\n key === 'class' ||\n key === 'style' ||\n isReservedAttribute(key)\n ) {\n hash = data;\n } else {\n var type = data.attrs && data.attrs.type;\n hash = asProp || config.mustUseProp(tag, type, key)\n ? data.domProps || (data.domProps = {})\n : data.attrs || (data.attrs = {});\n }\n var camelizedKey = camelize(key);\n var hyphenatedKey = hyphenate(key);\n if (!(camelizedKey in hash) && !(hyphenatedKey in hash)) {\n hash[key] = value[key];\n\n if (isSync) {\n var on = data.on || (data.on = {});\n on[(\"update:\" + key)] = function ($event) {\n value[key] = $event;\n };\n }\n }\n };\n\n for (var key in value) loop( key );\n }\n }\n return data\n}\n\n/* */\n\n/**\n * Runtime helper for rendering static trees.\n */\nfunction renderStatic (\n index,\n isInFor\n) {\n var cached = this._staticTrees || (this._staticTrees = []);\n var tree = cached[index];\n // if has already-rendered static tree and not inside v-for,\n // we can reuse the same tree.\n if (tree && !isInFor) {\n return tree\n }\n // otherwise, render a fresh tree.\n tree = cached[index] = this.$options.staticRenderFns[index].call(\n this._renderProxy,\n null,\n this // for render fns generated for functional component templates\n );\n markStatic(tree, (\"__static__\" + index), false);\n return tree\n}\n\n/**\n * Runtime helper for v-once.\n * Effectively it means marking the node as static with a unique key.\n */\nfunction markOnce (\n tree,\n index,\n key\n) {\n markStatic(tree, (\"__once__\" + index + (key ? (\"_\" + key) : \"\")), true);\n return tree\n}\n\nfunction markStatic (\n tree,\n key,\n isOnce\n) {\n if (Array.isArray(tree)) {\n for (var i = 0; i < tree.length; i++) {\n if (tree[i] && typeof tree[i] !== 'string') {\n markStaticNode(tree[i], (key + \"_\" + i), isOnce);\n }\n }\n } else {\n markStaticNode(tree, key, isOnce);\n }\n}\n\nfunction markStaticNode (node, key, isOnce) {\n node.isStatic = true;\n node.key = key;\n node.isOnce = isOnce;\n}\n\n/* */\n\nfunction bindObjectListeners (data, value) {\n if (value) {\n if (!isPlainObject(value)) {\n process.env.NODE_ENV !== 'production' && warn(\n 'v-on without argument expects an Object value',\n this\n );\n } else {\n var on = data.on = data.on ? extend({}, data.on) : {};\n for (var key in value) {\n var existing = on[key];\n var ours = value[key];\n on[key] = existing ? [].concat(existing, ours) : ours;\n }\n }\n }\n return data\n}\n\n/* */\n\nfunction resolveScopedSlots (\n fns, // see flow/vnode\n res,\n // the following are added in 2.6\n hasDynamicKeys,\n contentHashKey\n) {\n res = res || { $stable: !hasDynamicKeys };\n for (var i = 0; i < fns.length; i++) {\n var slot = fns[i];\n if (Array.isArray(slot)) {\n resolveScopedSlots(slot, res, hasDynamicKeys);\n } else if (slot) {\n // marker for reverse proxying v-slot without scope on this.$slots\n if (slot.proxy) {\n slot.fn.proxy = true;\n }\n res[slot.key] = slot.fn;\n }\n }\n if (contentHashKey) {\n (res).$key = contentHashKey;\n }\n return res\n}\n\n/* */\n\nfunction bindDynamicKeys (baseObj, values) {\n for (var i = 0; i < values.length; i += 2) {\n var key = values[i];\n if (typeof key === 'string' && key) {\n baseObj[values[i]] = values[i + 1];\n } else if (process.env.NODE_ENV !== 'production' && key !== '' && key !== null) {\n // null is a special value for explicitly removing a binding\n warn(\n (\"Invalid value for dynamic directive argument (expected string or null): \" + key),\n this\n );\n }\n }\n return baseObj\n}\n\n// helper to dynamically append modifier runtime markers to event names.\n// ensure only append when value is already string, otherwise it will be cast\n// to string and cause the type check to miss.\nfunction prependModifier (value, symbol) {\n return typeof value === 'string' ? symbol + value : value\n}\n\n/* */\n\nfunction installRenderHelpers (target) {\n target._o = markOnce;\n target._n = toNumber;\n target._s = toString;\n target._l = renderList;\n target._t = renderSlot;\n target._q = looseEqual;\n target._i = looseIndexOf;\n target._m = renderStatic;\n target._f = resolveFilter;\n target._k = checkKeyCodes;\n target._b = bindObjectProps;\n target._v = createTextVNode;\n target._e = createEmptyVNode;\n target._u = resolveScopedSlots;\n target._g = bindObjectListeners;\n target._d = bindDynamicKeys;\n target._p = prependModifier;\n}\n\n/* */\n\nfunction FunctionalRenderContext (\n data,\n props,\n children,\n parent,\n Ctor\n) {\n var this$1 = this;\n\n var options = Ctor.options;\n // ensure the createElement function in functional components\n // gets a unique context - this is necessary for correct named slot check\n var contextVm;\n if (hasOwn(parent, '_uid')) {\n contextVm = Object.create(parent);\n // $flow-disable-line\n contextVm._original = parent;\n } else {\n // the context vm passed in is a functional context as well.\n // in this case we want to make sure we are able to get a hold to the\n // real context instance.\n contextVm = parent;\n // $flow-disable-line\n parent = parent._original;\n }\n var isCompiled = isTrue(options._compiled);\n var needNormalization = !isCompiled;\n\n this.data = data;\n this.props = props;\n this.children = children;\n this.parent = parent;\n this.listeners = data.on || emptyObject;\n this.injections = resolveInject(options.inject, parent);\n this.slots = function () {\n if (!this$1.$slots) {\n normalizeScopedSlots(\n data.scopedSlots,\n this$1.$slots = resolveSlots(children, parent)\n );\n }\n return this$1.$slots\n };\n\n Object.defineProperty(this, 'scopedSlots', ({\n enumerable: true,\n get: function get () {\n return normalizeScopedSlots(data.scopedSlots, this.slots())\n }\n }));\n\n // support for compiled functional template\n if (isCompiled) {\n // exposing $options for renderStatic()\n this.$options = options;\n // pre-resolve slots for renderSlot()\n this.$slots = this.slots();\n this.$scopedSlots = normalizeScopedSlots(data.scopedSlots, this.$slots);\n }\n\n if (options._scopeId) {\n this._c = function (a, b, c, d) {\n var vnode = createElement(contextVm, a, b, c, d, needNormalization);\n if (vnode && !Array.isArray(vnode)) {\n vnode.fnScopeId = options._scopeId;\n vnode.fnContext = parent;\n }\n return vnode\n };\n } else {\n this._c = function (a, b, c, d) { return createElement(contextVm, a, b, c, d, needNormalization); };\n }\n}\n\ninstallRenderHelpers(FunctionalRenderContext.prototype);\n\nfunction createFunctionalComponent (\n Ctor,\n propsData,\n data,\n contextVm,\n children\n) {\n var options = Ctor.options;\n var props = {};\n var propOptions = options.props;\n if (isDef(propOptions)) {\n for (var key in propOptions) {\n props[key] = validateProp(key, propOptions, propsData || emptyObject);\n }\n } else {\n if (isDef(data.attrs)) { mergeProps(props, data.attrs); }\n if (isDef(data.props)) { mergeProps(props, data.props); }\n }\n\n var renderContext = new FunctionalRenderContext(\n data,\n props,\n children,\n contextVm,\n Ctor\n );\n\n var vnode = options.render.call(null, renderContext._c, renderContext);\n\n if (vnode instanceof VNode) {\n return cloneAndMarkFunctionalResult(vnode, data, renderContext.parent, options, renderContext)\n } else if (Array.isArray(vnode)) {\n var vnodes = normalizeChildren(vnode) || [];\n var res = new Array(vnodes.length);\n for (var i = 0; i < vnodes.length; i++) {\n res[i] = cloneAndMarkFunctionalResult(vnodes[i], data, renderContext.parent, options, renderContext);\n }\n return res\n }\n}\n\nfunction cloneAndMarkFunctionalResult (vnode, data, contextVm, options, renderContext) {\n // #7817 clone node before setting fnContext, otherwise if the node is reused\n // (e.g. it was from a cached normal slot) the fnContext causes named slots\n // that should not be matched to match.\n var clone = cloneVNode(vnode);\n clone.fnContext = contextVm;\n clone.fnOptions = options;\n if (process.env.NODE_ENV !== 'production') {\n (clone.devtoolsMeta = clone.devtoolsMeta || {}).renderContext = renderContext;\n }\n if (data.slot) {\n (clone.data || (clone.data = {})).slot = data.slot;\n }\n return clone\n}\n\nfunction mergeProps (to, from) {\n for (var key in from) {\n to[camelize(key)] = from[key];\n }\n}\n\n/* */\n\n/* */\n\n/* */\n\n/* */\n\n// inline hooks to be invoked on component VNodes during patch\nvar componentVNodeHooks = {\n init: function init (vnode, hydrating) {\n if (\n vnode.componentInstance &&\n !vnode.componentInstance._isDestroyed &&\n vnode.data.keepAlive\n ) {\n // kept-alive components, treat as a patch\n var mountedNode = vnode; // work around flow\n componentVNodeHooks.prepatch(mountedNode, mountedNode);\n } else {\n var child = vnode.componentInstance = createComponentInstanceForVnode(\n vnode,\n activeInstance\n );\n child.$mount(hydrating ? vnode.elm : undefined, hydrating);\n }\n },\n\n prepatch: function prepatch (oldVnode, vnode) {\n var options = vnode.componentOptions;\n var child = vnode.componentInstance = oldVnode.componentInstance;\n updateChildComponent(\n child,\n options.propsData, // updated props\n options.listeners, // updated listeners\n vnode, // new parent vnode\n options.children // new children\n );\n },\n\n insert: function insert (vnode) {\n var context = vnode.context;\n var componentInstance = vnode.componentInstance;\n if (!componentInstance._isMounted) {\n componentInstance._isMounted = true;\n callHook(componentInstance, 'mounted');\n }\n if (vnode.data.keepAlive) {\n if (context._isMounted) {\n // vue-router#1212\n // During updates, a kept-alive component's child components may\n // change, so directly walking the tree here may call activated hooks\n // on incorrect children. Instead we push them into a queue which will\n // be processed after the whole patch process ended.\n queueActivatedComponent(componentInstance);\n } else {\n activateChildComponent(componentInstance, true /* direct */);\n }\n }\n },\n\n destroy: function destroy (vnode) {\n var componentInstance = vnode.componentInstance;\n if (!componentInstance._isDestroyed) {\n if (!vnode.data.keepAlive) {\n componentInstance.$destroy();\n } else {\n deactivateChildComponent(componentInstance, true /* direct */);\n }\n }\n }\n};\n\nvar hooksToMerge = Object.keys(componentVNodeHooks);\n\nfunction createComponent (\n Ctor,\n data,\n context,\n children,\n tag\n) {\n if (isUndef(Ctor)) {\n return\n }\n\n var baseCtor = context.$options._base;\n\n // plain options object: turn it into a constructor\n if (isObject(Ctor)) {\n Ctor = baseCtor.extend(Ctor);\n }\n\n // if at this stage it's not a constructor or an async component factory,\n // reject.\n if (typeof Ctor !== 'function') {\n if (process.env.NODE_ENV !== 'production') {\n warn((\"Invalid Component definition: \" + (String(Ctor))), context);\n }\n return\n }\n\n // async component\n var asyncFactory;\n if (isUndef(Ctor.cid)) {\n asyncFactory = Ctor;\n Ctor = resolveAsyncComponent(asyncFactory, baseCtor);\n if (Ctor === undefined) {\n // return a placeholder node for async component, which is rendered\n // as a comment node but preserves all the raw information for the node.\n // the information will be used for async server-rendering and hydration.\n return createAsyncPlaceholder(\n asyncFactory,\n data,\n context,\n children,\n tag\n )\n }\n }\n\n data = data || {};\n\n // resolve constructor options in case global mixins are applied after\n // component constructor creation\n resolveConstructorOptions(Ctor);\n\n // transform component v-model data into props & events\n if (isDef(data.model)) {\n transformModel(Ctor.options, data);\n }\n\n // extract props\n var propsData = extractPropsFromVNodeData(data, Ctor, tag);\n\n // functional component\n if (isTrue(Ctor.options.functional)) {\n return createFunctionalComponent(Ctor, propsData, data, context, children)\n }\n\n // extract listeners, since these needs to be treated as\n // child component listeners instead of DOM listeners\n var listeners = data.on;\n // replace with listeners with .native modifier\n // so it gets processed during parent component patch.\n data.on = data.nativeOn;\n\n if (isTrue(Ctor.options.abstract)) {\n // abstract components do not keep anything\n // other than props & listeners & slot\n\n // work around flow\n var slot = data.slot;\n data = {};\n if (slot) {\n data.slot = slot;\n }\n }\n\n // install component management hooks onto the placeholder node\n installComponentHooks(data);\n\n // return a placeholder vnode\n var name = Ctor.options.name || tag;\n var vnode = new VNode(\n (\"vue-component-\" + (Ctor.cid) + (name ? (\"-\" + name) : '')),\n data, undefined, undefined, undefined, context,\n { Ctor: Ctor, propsData: propsData, listeners: listeners, tag: tag, children: children },\n asyncFactory\n );\n\n return vnode\n}\n\nfunction createComponentInstanceForVnode (\n vnode, // we know it's MountedComponentVNode but flow doesn't\n parent // activeInstance in lifecycle state\n) {\n var options = {\n _isComponent: true,\n _parentVnode: vnode,\n parent: parent\n };\n // check inline-template render functions\n var inlineTemplate = vnode.data.inlineTemplate;\n if (isDef(inlineTemplate)) {\n options.render = inlineTemplate.render;\n options.staticRenderFns = inlineTemplate.staticRenderFns;\n }\n return new vnode.componentOptions.Ctor(options)\n}\n\nfunction installComponentHooks (data) {\n var hooks = data.hook || (data.hook = {});\n for (var i = 0; i < hooksToMerge.length; i++) {\n var key = hooksToMerge[i];\n var existing = hooks[key];\n var toMerge = componentVNodeHooks[key];\n if (existing !== toMerge && !(existing && existing._merged)) {\n hooks[key] = existing ? mergeHook$1(toMerge, existing) : toMerge;\n }\n }\n}\n\nfunction mergeHook$1 (f1, f2) {\n var merged = function (a, b) {\n // flow complains about extra args which is why we use any\n f1(a, b);\n f2(a, b);\n };\n merged._merged = true;\n return merged\n}\n\n// transform component v-model info (value and callback) into\n// prop and event handler respectively.\nfunction transformModel (options, data) {\n var prop = (options.model && options.model.prop) || 'value';\n var event = (options.model && options.model.event) || 'input'\n ;(data.attrs || (data.attrs = {}))[prop] = data.model.value;\n var on = data.on || (data.on = {});\n var existing = on[event];\n var callback = data.model.callback;\n if (isDef(existing)) {\n if (\n Array.isArray(existing)\n ? existing.indexOf(callback) === -1\n : existing !== callback\n ) {\n on[event] = [callback].concat(existing);\n }\n } else {\n on[event] = callback;\n }\n}\n\n/* */\n\nvar SIMPLE_NORMALIZE = 1;\nvar ALWAYS_NORMALIZE = 2;\n\n// wrapper function for providing a more flexible interface\n// without getting yelled at by flow\nfunction createElement (\n context,\n tag,\n data,\n children,\n normalizationType,\n alwaysNormalize\n) {\n if (Array.isArray(data) || isPrimitive(data)) {\n normalizationType = children;\n children = data;\n data = undefined;\n }\n if (isTrue(alwaysNormalize)) {\n normalizationType = ALWAYS_NORMALIZE;\n }\n return _createElement(context, tag, data, children, normalizationType)\n}\n\nfunction _createElement (\n context,\n tag,\n data,\n children,\n normalizationType\n) {\n if (isDef(data) && isDef((data).__ob__)) {\n process.env.NODE_ENV !== 'production' && warn(\n \"Avoid using observed data object as vnode data: \" + (JSON.stringify(data)) + \"\\n\" +\n 'Always create fresh vnode data objects in each render!',\n context\n );\n return createEmptyVNode()\n }\n // object syntax in v-bind\n if (isDef(data) && isDef(data.is)) {\n tag = data.is;\n }\n if (!tag) {\n // in case of component :is set to falsy value\n return createEmptyVNode()\n }\n // warn against non-primitive key\n if (process.env.NODE_ENV !== 'production' &&\n isDef(data) && isDef(data.key) && !isPrimitive(data.key)\n ) {\n {\n warn(\n 'Avoid using non-primitive value as key, ' +\n 'use string/number value instead.',\n context\n );\n }\n }\n // support single function children as default scoped slot\n if (Array.isArray(children) &&\n typeof children[0] === 'function'\n ) {\n data = data || {};\n data.scopedSlots = { default: children[0] };\n children.length = 0;\n }\n if (normalizationType === ALWAYS_NORMALIZE) {\n children = normalizeChildren(children);\n } else if (normalizationType === SIMPLE_NORMALIZE) {\n children = simpleNormalizeChildren(children);\n }\n var vnode, ns;\n if (typeof tag === 'string') {\n var Ctor;\n ns = (context.$vnode && context.$vnode.ns) || config.getTagNamespace(tag);\n if (config.isReservedTag(tag)) {\n // platform built-in elements\n if (process.env.NODE_ENV !== 'production' && isDef(data) && isDef(data.nativeOn)) {\n warn(\n (\"The .native modifier for v-on is only valid on components but it was used on <\" + tag + \">.\"),\n context\n );\n }\n vnode = new VNode(\n config.parsePlatformTagName(tag), data, children,\n undefined, undefined, context\n );\n } else if ((!data || !data.pre) && isDef(Ctor = resolveAsset(context.$options, 'components', tag))) {\n // component\n vnode = createComponent(Ctor, data, context, children, tag);\n } else {\n // unknown or unlisted namespaced elements\n // check at runtime because it may get assigned a namespace when its\n // parent normalizes children\n vnode = new VNode(\n tag, data, children,\n undefined, undefined, context\n );\n }\n } else {\n // direct component options / constructor\n vnode = createComponent(tag, data, context, children);\n }\n if (Array.isArray(vnode)) {\n return vnode\n } else if (isDef(vnode)) {\n if (isDef(ns)) { applyNS(vnode, ns); }\n if (isDef(data)) { registerDeepBindings(data); }\n return vnode\n } else {\n return createEmptyVNode()\n }\n}\n\nfunction applyNS (vnode, ns, force) {\n vnode.ns = ns;\n if (vnode.tag === 'foreignObject') {\n // use default namespace inside foreignObject\n ns = undefined;\n force = true;\n }\n if (isDef(vnode.children)) {\n for (var i = 0, l = vnode.children.length; i < l; i++) {\n var child = vnode.children[i];\n if (isDef(child.tag) && (\n isUndef(child.ns) || (isTrue(force) && child.tag !== 'svg'))) {\n applyNS(child, ns, force);\n }\n }\n }\n}\n\n// ref #5318\n// necessary to ensure parent re-render when deep bindings like :style and\n// :class are used on slot nodes\nfunction registerDeepBindings (data) {\n if (isObject(data.style)) {\n traverse(data.style);\n }\n if (isObject(data.class)) {\n traverse(data.class);\n }\n}\n\n/* */\n\nfunction initRender (vm) {\n vm._vnode = null; // the root of the child tree\n vm._staticTrees = null; // v-once cached trees\n var options = vm.$options;\n var parentVnode = vm.$vnode = options._parentVnode; // the placeholder node in parent tree\n var renderContext = parentVnode && parentVnode.context;\n vm.$slots = resolveSlots(options._renderChildren, renderContext);\n vm.$scopedSlots = emptyObject;\n // bind the createElement fn to this instance\n // so that we get proper render context inside it.\n // args order: tag, data, children, normalizationType, alwaysNormalize\n // internal version is used by render functions compiled from templates\n vm._c = function (a, b, c, d) { return createElement(vm, a, b, c, d, false); };\n // normalization is always applied for the public version, used in\n // user-written render functions.\n vm.$createElement = function (a, b, c, d) { return createElement(vm, a, b, c, d, true); };\n\n // $attrs & $listeners are exposed for easier HOC creation.\n // they need to be reactive so that HOCs using them are always updated\n var parentData = parentVnode && parentVnode.data;\n\n /* istanbul ignore else */\n if (process.env.NODE_ENV !== 'production') {\n defineReactive$$1(vm, '$attrs', parentData && parentData.attrs || emptyObject, function () {\n !isUpdatingChildComponent && warn(\"$attrs is readonly.\", vm);\n }, true);\n defineReactive$$1(vm, '$listeners', options._parentListeners || emptyObject, function () {\n !isUpdatingChildComponent && warn(\"$listeners is readonly.\", vm);\n }, true);\n } else {\n defineReactive$$1(vm, '$attrs', parentData && parentData.attrs || emptyObject, null, true);\n defineReactive$$1(vm, '$listeners', options._parentListeners || emptyObject, null, true);\n }\n}\n\nvar currentRenderingInstance = null;\n\nfunction renderMixin (Vue) {\n // install runtime convenience helpers\n installRenderHelpers(Vue.prototype);\n\n Vue.prototype.$nextTick = function (fn) {\n return nextTick(fn, this)\n };\n\n Vue.prototype._render = function () {\n var vm = this;\n var ref = vm.$options;\n var render = ref.render;\n var _parentVnode = ref._parentVnode;\n\n if (_parentVnode) {\n vm.$scopedSlots = normalizeScopedSlots(\n _parentVnode.data.scopedSlots,\n vm.$slots,\n vm.$scopedSlots\n );\n }\n\n // set parent vnode. this allows render functions to have access\n // to the data on the placeholder node.\n vm.$vnode = _parentVnode;\n // render self\n var vnode;\n try {\n // There's no need to maintain a stack because all render fns are called\n // separately from one another. Nested component's render fns are called\n // when parent component is patched.\n currentRenderingInstance = vm;\n vnode = render.call(vm._renderProxy, vm.$createElement);\n } catch (e) {\n handleError(e, vm, \"render\");\n // return error render result,\n // or previous vnode to prevent render error causing blank component\n /* istanbul ignore else */\n if (process.env.NODE_ENV !== 'production' && vm.$options.renderError) {\n try {\n vnode = vm.$options.renderError.call(vm._renderProxy, vm.$createElement, e);\n } catch (e) {\n handleError(e, vm, \"renderError\");\n vnode = vm._vnode;\n }\n } else {\n vnode = vm._vnode;\n }\n } finally {\n currentRenderingInstance = null;\n }\n // if the returned array contains only a single node, allow it\n if (Array.isArray(vnode) && vnode.length === 1) {\n vnode = vnode[0];\n }\n // return empty vnode in case the render function errored out\n if (!(vnode instanceof VNode)) {\n if (process.env.NODE_ENV !== 'production' && Array.isArray(vnode)) {\n warn(\n 'Multiple root nodes returned from render function. Render function ' +\n 'should return a single root node.',\n vm\n );\n }\n vnode = createEmptyVNode();\n }\n // set parent\n vnode.parent = _parentVnode;\n return vnode\n };\n}\n\n/* */\n\nfunction ensureCtor (comp, base) {\n if (\n comp.__esModule ||\n (hasSymbol && comp[Symbol.toStringTag] === 'Module')\n ) {\n comp = comp.default;\n }\n return isObject(comp)\n ? base.extend(comp)\n : comp\n}\n\nfunction createAsyncPlaceholder (\n factory,\n data,\n context,\n children,\n tag\n) {\n var node = createEmptyVNode();\n node.asyncFactory = factory;\n node.asyncMeta = { data: data, context: context, children: children, tag: tag };\n return node\n}\n\nfunction resolveAsyncComponent (\n factory,\n baseCtor\n) {\n if (isTrue(factory.error) && isDef(factory.errorComp)) {\n return factory.errorComp\n }\n\n if (isDef(factory.resolved)) {\n return factory.resolved\n }\n\n var owner = currentRenderingInstance;\n if (owner && isDef(factory.owners) && factory.owners.indexOf(owner) === -1) {\n // already pending\n factory.owners.push(owner);\n }\n\n if (isTrue(factory.loading) && isDef(factory.loadingComp)) {\n return factory.loadingComp\n }\n\n if (owner && !isDef(factory.owners)) {\n var owners = factory.owners = [owner];\n var sync = true;\n var timerLoading = null;\n var timerTimeout = null\n\n ;(owner).$on('hook:destroyed', function () { return remove(owners, owner); });\n\n var forceRender = function (renderCompleted) {\n for (var i = 0, l = owners.length; i < l; i++) {\n (owners[i]).$forceUpdate();\n }\n\n if (renderCompleted) {\n owners.length = 0;\n if (timerLoading !== null) {\n clearTimeout(timerLoading);\n timerLoading = null;\n }\n if (timerTimeout !== null) {\n clearTimeout(timerTimeout);\n timerTimeout = null;\n }\n }\n };\n\n var resolve = once(function (res) {\n // cache resolved\n factory.resolved = ensureCtor(res, baseCtor);\n // invoke callbacks only if this is not a synchronous resolve\n // (async resolves are shimmed as synchronous during SSR)\n if (!sync) {\n forceRender(true);\n } else {\n owners.length = 0;\n }\n });\n\n var reject = once(function (reason) {\n process.env.NODE_ENV !== 'production' && warn(\n \"Failed to resolve async component: \" + (String(factory)) +\n (reason ? (\"\\nReason: \" + reason) : '')\n );\n if (isDef(factory.errorComp)) {\n factory.error = true;\n forceRender(true);\n }\n });\n\n var res = factory(resolve, reject);\n\n if (isObject(res)) {\n if (isPromise(res)) {\n // () => Promise\n if (isUndef(factory.resolved)) {\n res.then(resolve, reject);\n }\n } else if (isPromise(res.component)) {\n res.component.then(resolve, reject);\n\n if (isDef(res.error)) {\n factory.errorComp = ensureCtor(res.error, baseCtor);\n }\n\n if (isDef(res.loading)) {\n factory.loadingComp = ensureCtor(res.loading, baseCtor);\n if (res.delay === 0) {\n factory.loading = true;\n } else {\n timerLoading = setTimeout(function () {\n timerLoading = null;\n if (isUndef(factory.resolved) && isUndef(factory.error)) {\n factory.loading = true;\n forceRender(false);\n }\n }, res.delay || 200);\n }\n }\n\n if (isDef(res.timeout)) {\n timerTimeout = setTimeout(function () {\n timerTimeout = null;\n if (isUndef(factory.resolved)) {\n reject(\n process.env.NODE_ENV !== 'production'\n ? (\"timeout (\" + (res.timeout) + \"ms)\")\n : null\n );\n }\n }, res.timeout);\n }\n }\n }\n\n sync = false;\n // return in case resolved synchronously\n return factory.loading\n ? factory.loadingComp\n : factory.resolved\n }\n}\n\n/* */\n\nfunction isAsyncPlaceholder (node) {\n return node.isComment && node.asyncFactory\n}\n\n/* */\n\nfunction getFirstComponentChild (children) {\n if (Array.isArray(children)) {\n for (var i = 0; i < children.length; i++) {\n var c = children[i];\n if (isDef(c) && (isDef(c.componentOptions) || isAsyncPlaceholder(c))) {\n return c\n }\n }\n }\n}\n\n/* */\n\n/* */\n\nfunction initEvents (vm) {\n vm._events = Object.create(null);\n vm._hasHookEvent = false;\n // init parent attached events\n var listeners = vm.$options._parentListeners;\n if (listeners) {\n updateComponentListeners(vm, listeners);\n }\n}\n\nvar target;\n\nfunction add (event, fn) {\n target.$on(event, fn);\n}\n\nfunction remove$1 (event, fn) {\n target.$off(event, fn);\n}\n\nfunction createOnceHandler (event, fn) {\n var _target = target;\n return function onceHandler () {\n var res = fn.apply(null, arguments);\n if (res !== null) {\n _target.$off(event, onceHandler);\n }\n }\n}\n\nfunction updateComponentListeners (\n vm,\n listeners,\n oldListeners\n) {\n target = vm;\n updateListeners(listeners, oldListeners || {}, add, remove$1, createOnceHandler, vm);\n target = undefined;\n}\n\nfunction eventsMixin (Vue) {\n var hookRE = /^hook:/;\n Vue.prototype.$on = function (event, fn) {\n var vm = this;\n if (Array.isArray(event)) {\n for (var i = 0, l = event.length; i < l; i++) {\n vm.$on(event[i], fn);\n }\n } else {\n (vm._events[event] || (vm._events[event] = [])).push(fn);\n // optimize hook:event cost by using a boolean flag marked at registration\n // instead of a hash lookup\n if (hookRE.test(event)) {\n vm._hasHookEvent = true;\n }\n }\n return vm\n };\n\n Vue.prototype.$once = function (event, fn) {\n var vm = this;\n function on () {\n vm.$off(event, on);\n fn.apply(vm, arguments);\n }\n on.fn = fn;\n vm.$on(event, on);\n return vm\n };\n\n Vue.prototype.$off = function (event, fn) {\n var vm = this;\n // all\n if (!arguments.length) {\n vm._events = Object.create(null);\n return vm\n }\n // array of events\n if (Array.isArray(event)) {\n for (var i$1 = 0, l = event.length; i$1 < l; i$1++) {\n vm.$off(event[i$1], fn);\n }\n return vm\n }\n // specific event\n var cbs = vm._events[event];\n if (!cbs) {\n return vm\n }\n if (!fn) {\n vm._events[event] = null;\n return vm\n }\n // specific handler\n var cb;\n var i = cbs.length;\n while (i--) {\n cb = cbs[i];\n if (cb === fn || cb.fn === fn) {\n cbs.splice(i, 1);\n break\n }\n }\n return vm\n };\n\n Vue.prototype.$emit = function (event) {\n var vm = this;\n if (process.env.NODE_ENV !== 'production') {\n var lowerCaseEvent = event.toLowerCase();\n if (lowerCaseEvent !== event && vm._events[lowerCaseEvent]) {\n tip(\n \"Event \\\"\" + lowerCaseEvent + \"\\\" is emitted in component \" +\n (formatComponentName(vm)) + \" but the handler is registered for \\\"\" + event + \"\\\". \" +\n \"Note that HTML attributes are case-insensitive and you cannot use \" +\n \"v-on to listen to camelCase events when using in-DOM templates. \" +\n \"You should probably use \\\"\" + (hyphenate(event)) + \"\\\" instead of \\\"\" + event + \"\\\".\"\n );\n }\n }\n var cbs = vm._events[event];\n if (cbs) {\n cbs = cbs.length > 1 ? toArray(cbs) : cbs;\n var args = toArray(arguments, 1);\n var info = \"event handler for \\\"\" + event + \"\\\"\";\n for (var i = 0, l = cbs.length; i < l; i++) {\n invokeWithErrorHandling(cbs[i], vm, args, vm, info);\n }\n }\n return vm\n };\n}\n\n/* */\n\nvar activeInstance = null;\nvar isUpdatingChildComponent = false;\n\nfunction setActiveInstance(vm) {\n var prevActiveInstance = activeInstance;\n activeInstance = vm;\n return function () {\n activeInstance = prevActiveInstance;\n }\n}\n\nfunction initLifecycle (vm) {\n var options = vm.$options;\n\n // locate first non-abstract parent\n var parent = options.parent;\n if (parent && !options.abstract) {\n while (parent.$options.abstract && parent.$parent) {\n parent = parent.$parent;\n }\n parent.$children.push(vm);\n }\n\n vm.$parent = parent;\n vm.$root = parent ? parent.$root : vm;\n\n vm.$children = [];\n vm.$refs = {};\n\n vm._watcher = null;\n vm._inactive = null;\n vm._directInactive = false;\n vm._isMounted = false;\n vm._isDestroyed = false;\n vm._isBeingDestroyed = false;\n}\n\nfunction lifecycleMixin (Vue) {\n Vue.prototype._update = function (vnode, hydrating) {\n var vm = this;\n var prevEl = vm.$el;\n var prevVnode = vm._vnode;\n var restoreActiveInstance = setActiveInstance(vm);\n vm._vnode = vnode;\n // Vue.prototype.__patch__ is injected in entry points\n // based on the rendering backend used.\n if (!prevVnode) {\n // initial render\n vm.$el = vm.__patch__(vm.$el, vnode, hydrating, false /* removeOnly */);\n } else {\n // updates\n vm.$el = vm.__patch__(prevVnode, vnode);\n }\n restoreActiveInstance();\n // update __vue__ reference\n if (prevEl) {\n prevEl.__vue__ = null;\n }\n if (vm.$el) {\n vm.$el.__vue__ = vm;\n }\n // if parent is an HOC, update its $el as well\n if (vm.$vnode && vm.$parent && vm.$vnode === vm.$parent._vnode) {\n vm.$parent.$el = vm.$el;\n }\n // updated hook is called by the scheduler to ensure that children are\n // updated in a parent's updated hook.\n };\n\n Vue.prototype.$forceUpdate = function () {\n var vm = this;\n if (vm._watcher) {\n vm._watcher.update();\n }\n };\n\n Vue.prototype.$destroy = function () {\n var vm = this;\n if (vm._isBeingDestroyed) {\n return\n }\n callHook(vm, 'beforeDestroy');\n vm._isBeingDestroyed = true;\n // remove self from parent\n var parent = vm.$parent;\n if (parent && !parent._isBeingDestroyed && !vm.$options.abstract) {\n remove(parent.$children, vm);\n }\n // teardown watchers\n if (vm._watcher) {\n vm._watcher.teardown();\n }\n var i = vm._watchers.length;\n while (i--) {\n vm._watchers[i].teardown();\n }\n // remove reference from data ob\n // frozen object may not have observer.\n if (vm._data.__ob__) {\n vm._data.__ob__.vmCount--;\n }\n // call the last hook...\n vm._isDestroyed = true;\n // invoke destroy hooks on current rendered tree\n vm.__patch__(vm._vnode, null);\n // fire destroyed hook\n callHook(vm, 'destroyed');\n // turn off all instance listeners.\n vm.$off();\n // remove __vue__ reference\n if (vm.$el) {\n vm.$el.__vue__ = null;\n }\n // release circular reference (#6759)\n if (vm.$vnode) {\n vm.$vnode.parent = null;\n }\n };\n}\n\nfunction mountComponent (\n vm,\n el,\n hydrating\n) {\n vm.$el = el;\n if (!vm.$options.render) {\n vm.$options.render = createEmptyVNode;\n if (process.env.NODE_ENV !== 'production') {\n /* istanbul ignore if */\n if ((vm.$options.template && vm.$options.template.charAt(0) !== '#') ||\n vm.$options.el || el) {\n warn(\n 'You are using the runtime-only build of Vue where the template ' +\n 'compiler is not available. Either pre-compile the templates into ' +\n 'render functions, or use the compiler-included build.',\n vm\n );\n } else {\n warn(\n 'Failed to mount component: template or render function not defined.',\n vm\n );\n }\n }\n }\n callHook(vm, 'beforeMount');\n\n var updateComponent;\n /* istanbul ignore if */\n if (process.env.NODE_ENV !== 'production' && config.performance && mark) {\n updateComponent = function () {\n var name = vm._name;\n var id = vm._uid;\n var startTag = \"vue-perf-start:\" + id;\n var endTag = \"vue-perf-end:\" + id;\n\n mark(startTag);\n var vnode = vm._render();\n mark(endTag);\n measure((\"vue \" + name + \" render\"), startTag, endTag);\n\n mark(startTag);\n vm._update(vnode, hydrating);\n mark(endTag);\n measure((\"vue \" + name + \" patch\"), startTag, endTag);\n };\n } else {\n updateComponent = function () {\n vm._update(vm._render(), hydrating);\n };\n }\n\n // we set this to vm._watcher inside the watcher's constructor\n // since the watcher's initial patch may call $forceUpdate (e.g. inside child\n // component's mounted hook), which relies on vm._watcher being already defined\n new Watcher(vm, updateComponent, noop, {\n before: function before () {\n if (vm._isMounted && !vm._isDestroyed) {\n callHook(vm, 'beforeUpdate');\n }\n }\n }, true /* isRenderWatcher */);\n hydrating = false;\n\n // manually mounted instance, call mounted on self\n // mounted is called for render-created child components in its inserted hook\n if (vm.$vnode == null) {\n vm._isMounted = true;\n callHook(vm, 'mounted');\n }\n return vm\n}\n\nfunction updateChildComponent (\n vm,\n propsData,\n listeners,\n parentVnode,\n renderChildren\n) {\n if (process.env.NODE_ENV !== 'production') {\n isUpdatingChildComponent = true;\n }\n\n // determine whether component has slot children\n // we need to do this before overwriting $options._renderChildren.\n\n // check if there are dynamic scopedSlots (hand-written or compiled but with\n // dynamic slot names). Static scoped slots compiled from template has the\n // \"$stable\" marker.\n var newScopedSlots = parentVnode.data.scopedSlots;\n var oldScopedSlots = vm.$scopedSlots;\n var hasDynamicScopedSlot = !!(\n (newScopedSlots && !newScopedSlots.$stable) ||\n (oldScopedSlots !== emptyObject && !oldScopedSlots.$stable) ||\n (newScopedSlots && vm.$scopedSlots.$key !== newScopedSlots.$key)\n );\n\n // Any static slot children from the parent may have changed during parent's\n // update. Dynamic scoped slots may also have changed. In such cases, a forced\n // update is necessary to ensure correctness.\n var needsForceUpdate = !!(\n renderChildren || // has new static slots\n vm.$options._renderChildren || // has old static slots\n hasDynamicScopedSlot\n );\n\n vm.$options._parentVnode = parentVnode;\n vm.$vnode = parentVnode; // update vm's placeholder node without re-render\n\n if (vm._vnode) { // update child tree's parent\n vm._vnode.parent = parentVnode;\n }\n vm.$options._renderChildren = renderChildren;\n\n // update $attrs and $listeners hash\n // these are also reactive so they may trigger child update if the child\n // used them during render\n vm.$attrs = parentVnode.data.attrs || emptyObject;\n vm.$listeners = listeners || emptyObject;\n\n // update props\n if (propsData && vm.$options.props) {\n toggleObserving(false);\n var props = vm._props;\n var propKeys = vm.$options._propKeys || [];\n for (var i = 0; i < propKeys.length; i++) {\n var key = propKeys[i];\n var propOptions = vm.$options.props; // wtf flow?\n props[key] = validateProp(key, propOptions, propsData, vm);\n }\n toggleObserving(true);\n // keep a copy of raw propsData\n vm.$options.propsData = propsData;\n }\n\n // update listeners\n listeners = listeners || emptyObject;\n var oldListeners = vm.$options._parentListeners;\n vm.$options._parentListeners = listeners;\n updateComponentListeners(vm, listeners, oldListeners);\n\n // resolve slots + force update if has children\n if (needsForceUpdate) {\n vm.$slots = resolveSlots(renderChildren, parentVnode.context);\n vm.$forceUpdate();\n }\n\n if (process.env.NODE_ENV !== 'production') {\n isUpdatingChildComponent = false;\n }\n}\n\nfunction isInInactiveTree (vm) {\n while (vm && (vm = vm.$parent)) {\n if (vm._inactive) { return true }\n }\n return false\n}\n\nfunction activateChildComponent (vm, direct) {\n if (direct) {\n vm._directInactive = false;\n if (isInInactiveTree(vm)) {\n return\n }\n } else if (vm._directInactive) {\n return\n }\n if (vm._inactive || vm._inactive === null) {\n vm._inactive = false;\n for (var i = 0; i < vm.$children.length; i++) {\n activateChildComponent(vm.$children[i]);\n }\n callHook(vm, 'activated');\n }\n}\n\nfunction deactivateChildComponent (vm, direct) {\n if (direct) {\n vm._directInactive = true;\n if (isInInactiveTree(vm)) {\n return\n }\n }\n if (!vm._inactive) {\n vm._inactive = true;\n for (var i = 0; i < vm.$children.length; i++) {\n deactivateChildComponent(vm.$children[i]);\n }\n callHook(vm, 'deactivated');\n }\n}\n\nfunction callHook (vm, hook) {\n // #7573 disable dep collection when invoking lifecycle hooks\n pushTarget();\n var handlers = vm.$options[hook];\n var info = hook + \" hook\";\n if (handlers) {\n for (var i = 0, j = handlers.length; i < j; i++) {\n invokeWithErrorHandling(handlers[i], vm, null, vm, info);\n }\n }\n if (vm._hasHookEvent) {\n vm.$emit('hook:' + hook);\n }\n popTarget();\n}\n\n/* */\n\nvar MAX_UPDATE_COUNT = 100;\n\nvar queue = [];\nvar activatedChildren = [];\nvar has = {};\nvar circular = {};\nvar waiting = false;\nvar flushing = false;\nvar index = 0;\n\n/**\n * Reset the scheduler's state.\n */\nfunction resetSchedulerState () {\n index = queue.length = activatedChildren.length = 0;\n has = {};\n if (process.env.NODE_ENV !== 'production') {\n circular = {};\n }\n waiting = flushing = false;\n}\n\n// Async edge case #6566 requires saving the timestamp when event listeners are\n// attached. However, calling performance.now() has a perf overhead especially\n// if the page has thousands of event listeners. Instead, we take a timestamp\n// every time the scheduler flushes and use that for all event listeners\n// attached during that flush.\nvar currentFlushTimestamp = 0;\n\n// Async edge case fix requires storing an event listener's attach timestamp.\nvar getNow = Date.now;\n\n// Determine what event timestamp the browser is using. Annoyingly, the\n// timestamp can either be hi-res (relative to page load) or low-res\n// (relative to UNIX epoch), so in order to compare time we have to use the\n// same timestamp type when saving the flush timestamp.\n// All IE versions use low-res event timestamps, and have problematic clock\n// implementations (#9632)\nif (inBrowser && !isIE) {\n var performance = window.performance;\n if (\n performance &&\n typeof performance.now === 'function' &&\n getNow() > document.createEvent('Event').timeStamp\n ) {\n // if the event timestamp, although evaluated AFTER the Date.now(), is\n // smaller than it, it means the event is using a hi-res timestamp,\n // and we need to use the hi-res version for event listener timestamps as\n // well.\n getNow = function () { return performance.now(); };\n }\n}\n\n/**\n * Flush both queues and run the watchers.\n */\nfunction flushSchedulerQueue () {\n currentFlushTimestamp = getNow();\n flushing = true;\n var watcher, id;\n\n // Sort queue before flush.\n // This ensures that:\n // 1. Components are updated from parent to child. (because parent is always\n // created before the child)\n // 2. A component's user watchers are run before its render watcher (because\n // user watchers are created before the render watcher)\n // 3. If a component is destroyed during a parent component's watcher run,\n // its watchers can be skipped.\n queue.sort(function (a, b) { return a.id - b.id; });\n\n // do not cache length because more watchers might be pushed\n // as we run existing watchers\n for (index = 0; index < queue.length; index++) {\n watcher = queue[index];\n if (watcher.before) {\n watcher.before();\n }\n id = watcher.id;\n has[id] = null;\n watcher.run();\n // in dev build, check and stop circular updates.\n if (process.env.NODE_ENV !== 'production' && has[id] != null) {\n circular[id] = (circular[id] || 0) + 1;\n if (circular[id] > MAX_UPDATE_COUNT) {\n warn(\n 'You may have an infinite update loop ' + (\n watcher.user\n ? (\"in watcher with expression \\\"\" + (watcher.expression) + \"\\\"\")\n : \"in a component render function.\"\n ),\n watcher.vm\n );\n break\n }\n }\n }\n\n // keep copies of post queues before resetting state\n var activatedQueue = activatedChildren.slice();\n var updatedQueue = queue.slice();\n\n resetSchedulerState();\n\n // call component updated and activated hooks\n callActivatedHooks(activatedQueue);\n callUpdatedHooks(updatedQueue);\n\n // devtool hook\n /* istanbul ignore if */\n if (devtools && config.devtools) {\n devtools.emit('flush');\n }\n}\n\nfunction callUpdatedHooks (queue) {\n var i = queue.length;\n while (i--) {\n var watcher = queue[i];\n var vm = watcher.vm;\n if (vm._watcher === watcher && vm._isMounted && !vm._isDestroyed) {\n callHook(vm, 'updated');\n }\n }\n}\n\n/**\n * Queue a kept-alive component that was activated during patch.\n * The queue will be processed after the entire tree has been patched.\n */\nfunction queueActivatedComponent (vm) {\n // setting _inactive to false here so that a render function can\n // rely on checking whether it's in an inactive tree (e.g. router-view)\n vm._inactive = false;\n activatedChildren.push(vm);\n}\n\nfunction callActivatedHooks (queue) {\n for (var i = 0; i < queue.length; i++) {\n queue[i]._inactive = true;\n activateChildComponent(queue[i], true /* true */);\n }\n}\n\n/**\n * Push a watcher into the watcher queue.\n * Jobs with duplicate IDs will be skipped unless it's\n * pushed when the queue is being flushed.\n */\nfunction queueWatcher (watcher) {\n var id = watcher.id;\n if (has[id] == null) {\n has[id] = true;\n if (!flushing) {\n queue.push(watcher);\n } else {\n // if already flushing, splice the watcher based on its id\n // if already past its id, it will be run next immediately.\n var i = queue.length - 1;\n while (i > index && queue[i].id > watcher.id) {\n i--;\n }\n queue.splice(i + 1, 0, watcher);\n }\n // queue the flush\n if (!waiting) {\n waiting = true;\n\n if (process.env.NODE_ENV !== 'production' && !config.async) {\n flushSchedulerQueue();\n return\n }\n nextTick(flushSchedulerQueue);\n }\n }\n}\n\n/* */\n\n\n\nvar uid$2 = 0;\n\n/**\n * A watcher parses an expression, collects dependencies,\n * and fires callback when the expression value changes.\n * This is used for both the $watch() api and directives.\n */\nvar Watcher = function Watcher (\n vm,\n expOrFn,\n cb,\n options,\n isRenderWatcher\n) {\n this.vm = vm;\n if (isRenderWatcher) {\n vm._watcher = this;\n }\n vm._watchers.push(this);\n // options\n if (options) {\n this.deep = !!options.deep;\n this.user = !!options.user;\n this.lazy = !!options.lazy;\n this.sync = !!options.sync;\n this.before = options.before;\n } else {\n this.deep = this.user = this.lazy = this.sync = false;\n }\n this.cb = cb;\n this.id = ++uid$2; // uid for batching\n this.active = true;\n this.dirty = this.lazy; // for lazy watchers\n this.deps = [];\n this.newDeps = [];\n this.depIds = new _Set();\n this.newDepIds = new _Set();\n this.expression = process.env.NODE_ENV !== 'production'\n ? expOrFn.toString()\n : '';\n // parse expression for getter\n if (typeof expOrFn === 'function') {\n this.getter = expOrFn;\n } else {\n this.getter = parsePath(expOrFn);\n if (!this.getter) {\n this.getter = noop;\n process.env.NODE_ENV !== 'production' && warn(\n \"Failed watching path: \\\"\" + expOrFn + \"\\\" \" +\n 'Watcher only accepts simple dot-delimited paths. ' +\n 'For full control, use a function instead.',\n vm\n );\n }\n }\n this.value = this.lazy\n ? undefined\n : this.get();\n};\n\n/**\n * Evaluate the getter, and re-collect dependencies.\n */\nWatcher.prototype.get = function get () {\n pushTarget(this);\n var value;\n var vm = this.vm;\n try {\n value = this.getter.call(vm, vm);\n } catch (e) {\n if (this.user) {\n handleError(e, vm, (\"getter for watcher \\\"\" + (this.expression) + \"\\\"\"));\n } else {\n throw e\n }\n } finally {\n // \"touch\" every property so they are all tracked as\n // dependencies for deep watching\n if (this.deep) {\n traverse(value);\n }\n popTarget();\n this.cleanupDeps();\n }\n return value\n};\n\n/**\n * Add a dependency to this directive.\n */\nWatcher.prototype.addDep = function addDep (dep) {\n var id = dep.id;\n if (!this.newDepIds.has(id)) {\n this.newDepIds.add(id);\n this.newDeps.push(dep);\n if (!this.depIds.has(id)) {\n dep.addSub(this);\n }\n }\n};\n\n/**\n * Clean up for dependency collection.\n */\nWatcher.prototype.cleanupDeps = function cleanupDeps () {\n var i = this.deps.length;\n while (i--) {\n var dep = this.deps[i];\n if (!this.newDepIds.has(dep.id)) {\n dep.removeSub(this);\n }\n }\n var tmp = this.depIds;\n this.depIds = this.newDepIds;\n this.newDepIds = tmp;\n this.newDepIds.clear();\n tmp = this.deps;\n this.deps = this.newDeps;\n this.newDeps = tmp;\n this.newDeps.length = 0;\n};\n\n/**\n * Subscriber interface.\n * Will be called when a dependency changes.\n */\nWatcher.prototype.update = function update () {\n /* istanbul ignore else */\n if (this.lazy) {\n this.dirty = true;\n } else if (this.sync) {\n this.run();\n } else {\n queueWatcher(this);\n }\n};\n\n/**\n * Scheduler job interface.\n * Will be called by the scheduler.\n */\nWatcher.prototype.run = function run () {\n if (this.active) {\n var value = this.get();\n if (\n value !== this.value ||\n // Deep watchers and watchers on Object/Arrays should fire even\n // when the value is the same, because the value may\n // have mutated.\n isObject(value) ||\n this.deep\n ) {\n // set new value\n var oldValue = this.value;\n this.value = value;\n if (this.user) {\n try {\n this.cb.call(this.vm, value, oldValue);\n } catch (e) {\n handleError(e, this.vm, (\"callback for watcher \\\"\" + (this.expression) + \"\\\"\"));\n }\n } else {\n this.cb.call(this.vm, value, oldValue);\n }\n }\n }\n};\n\n/**\n * Evaluate the value of the watcher.\n * This only gets called for lazy watchers.\n */\nWatcher.prototype.evaluate = function evaluate () {\n this.value = this.get();\n this.dirty = false;\n};\n\n/**\n * Depend on all deps collected by this watcher.\n */\nWatcher.prototype.depend = function depend () {\n var i = this.deps.length;\n while (i--) {\n this.deps[i].depend();\n }\n};\n\n/**\n * Remove self from all dependencies' subscriber list.\n */\nWatcher.prototype.teardown = function teardown () {\n if (this.active) {\n // remove self from vm's watcher list\n // this is a somewhat expensive operation so we skip it\n // if the vm is being destroyed.\n if (!this.vm._isBeingDestroyed) {\n remove(this.vm._watchers, this);\n }\n var i = this.deps.length;\n while (i--) {\n this.deps[i].removeSub(this);\n }\n this.active = false;\n }\n};\n\n/* */\n\nvar sharedPropertyDefinition = {\n enumerable: true,\n configurable: true,\n get: noop,\n set: noop\n};\n\nfunction proxy (target, sourceKey, key) {\n sharedPropertyDefinition.get = function proxyGetter () {\n return this[sourceKey][key]\n };\n sharedPropertyDefinition.set = function proxySetter (val) {\n this[sourceKey][key] = val;\n };\n Object.defineProperty(target, key, sharedPropertyDefinition);\n}\n\nfunction initState (vm) {\n vm._watchers = [];\n var opts = vm.$options;\n if (opts.props) { initProps(vm, opts.props); }\n if (opts.methods) { initMethods(vm, opts.methods); }\n if (opts.data) {\n initData(vm);\n } else {\n observe(vm._data = {}, true /* asRootData */);\n }\n if (opts.computed) { initComputed(vm, opts.computed); }\n if (opts.watch && opts.watch !== nativeWatch) {\n initWatch(vm, opts.watch);\n }\n}\n\nfunction initProps (vm, propsOptions) {\n var propsData = vm.$options.propsData || {};\n var props = vm._props = {};\n // cache prop keys so that future props updates can iterate using Array\n // instead of dynamic object key enumeration.\n var keys = vm.$options._propKeys = [];\n var isRoot = !vm.$parent;\n // root instance props should be converted\n if (!isRoot) {\n toggleObserving(false);\n }\n var loop = function ( key ) {\n keys.push(key);\n var value = validateProp(key, propsOptions, propsData, vm);\n /* istanbul ignore else */\n if (process.env.NODE_ENV !== 'production') {\n var hyphenatedKey = hyphenate(key);\n if (isReservedAttribute(hyphenatedKey) ||\n config.isReservedAttr(hyphenatedKey)) {\n warn(\n (\"\\\"\" + hyphenatedKey + \"\\\" is a reserved attribute and cannot be used as component prop.\"),\n vm\n );\n }\n defineReactive$$1(props, key, value, function () {\n if (!isRoot && !isUpdatingChildComponent) {\n warn(\n \"Avoid mutating a prop directly since the value will be \" +\n \"overwritten whenever the parent component re-renders. \" +\n \"Instead, use a data or computed property based on the prop's \" +\n \"value. Prop being mutated: \\\"\" + key + \"\\\"\",\n vm\n );\n }\n });\n } else {\n defineReactive$$1(props, key, value);\n }\n // static props are already proxied on the component's prototype\n // during Vue.extend(). We only need to proxy props defined at\n // instantiation here.\n if (!(key in vm)) {\n proxy(vm, \"_props\", key);\n }\n };\n\n for (var key in propsOptions) loop( key );\n toggleObserving(true);\n}\n\nfunction initData (vm) {\n var data = vm.$options.data;\n data = vm._data = typeof data === 'function'\n ? getData(data, vm)\n : data || {};\n if (!isPlainObject(data)) {\n data = {};\n process.env.NODE_ENV !== 'production' && warn(\n 'data functions should return an object:\\n' +\n 'https://vuejs.org/v2/guide/components.html#data-Must-Be-a-Function',\n vm\n );\n }\n // proxy data on instance\n var keys = Object.keys(data);\n var props = vm.$options.props;\n var methods = vm.$options.methods;\n var i = keys.length;\n while (i--) {\n var key = keys[i];\n if (process.env.NODE_ENV !== 'production') {\n if (methods && hasOwn(methods, key)) {\n warn(\n (\"Method \\\"\" + key + \"\\\" has already been defined as a data property.\"),\n vm\n );\n }\n }\n if (props && hasOwn(props, key)) {\n process.env.NODE_ENV !== 'production' && warn(\n \"The data property \\\"\" + key + \"\\\" is already declared as a prop. \" +\n \"Use prop default value instead.\",\n vm\n );\n } else if (!isReserved(key)) {\n proxy(vm, \"_data\", key);\n }\n }\n // observe data\n observe(data, true /* asRootData */);\n}\n\nfunction getData (data, vm) {\n // #7573 disable dep collection when invoking data getters\n pushTarget();\n try {\n return data.call(vm, vm)\n } catch (e) {\n handleError(e, vm, \"data()\");\n return {}\n } finally {\n popTarget();\n }\n}\n\nvar computedWatcherOptions = { lazy: true };\n\nfunction initComputed (vm, computed) {\n // $flow-disable-line\n var watchers = vm._computedWatchers = Object.create(null);\n // computed properties are just getters during SSR\n var isSSR = isServerRendering();\n\n for (var key in computed) {\n var userDef = computed[key];\n var getter = typeof userDef === 'function' ? userDef : userDef.get;\n if (process.env.NODE_ENV !== 'production' && getter == null) {\n warn(\n (\"Getter is missing for computed property \\\"\" + key + \"\\\".\"),\n vm\n );\n }\n\n if (!isSSR) {\n // create internal watcher for the computed property.\n watchers[key] = new Watcher(\n vm,\n getter || noop,\n noop,\n computedWatcherOptions\n );\n }\n\n // component-defined computed properties are already defined on the\n // component prototype. We only need to define computed properties defined\n // at instantiation here.\n if (!(key in vm)) {\n defineComputed(vm, key, userDef);\n } else if (process.env.NODE_ENV !== 'production') {\n if (key in vm.$data) {\n warn((\"The computed property \\\"\" + key + \"\\\" is already defined in data.\"), vm);\n } else if (vm.$options.props && key in vm.$options.props) {\n warn((\"The computed property \\\"\" + key + \"\\\" is already defined as a prop.\"), vm);\n }\n }\n }\n}\n\nfunction defineComputed (\n target,\n key,\n userDef\n) {\n var shouldCache = !isServerRendering();\n if (typeof userDef === 'function') {\n sharedPropertyDefinition.get = shouldCache\n ? createComputedGetter(key)\n : createGetterInvoker(userDef);\n sharedPropertyDefinition.set = noop;\n } else {\n sharedPropertyDefinition.get = userDef.get\n ? shouldCache && userDef.cache !== false\n ? createComputedGetter(key)\n : createGetterInvoker(userDef.get)\n : noop;\n sharedPropertyDefinition.set = userDef.set || noop;\n }\n if (process.env.NODE_ENV !== 'production' &&\n sharedPropertyDefinition.set === noop) {\n sharedPropertyDefinition.set = function () {\n warn(\n (\"Computed property \\\"\" + key + \"\\\" was assigned to but it has no setter.\"),\n this\n );\n };\n }\n Object.defineProperty(target, key, sharedPropertyDefinition);\n}\n\nfunction createComputedGetter (key) {\n return function computedGetter () {\n var watcher = this._computedWatchers && this._computedWatchers[key];\n if (watcher) {\n if (watcher.dirty) {\n watcher.evaluate();\n }\n if (Dep.target) {\n watcher.depend();\n }\n return watcher.value\n }\n }\n}\n\nfunction createGetterInvoker(fn) {\n return function computedGetter () {\n return fn.call(this, this)\n }\n}\n\nfunction initMethods (vm, methods) {\n var props = vm.$options.props;\n for (var key in methods) {\n if (process.env.NODE_ENV !== 'production') {\n if (typeof methods[key] !== 'function') {\n warn(\n \"Method \\\"\" + key + \"\\\" has type \\\"\" + (typeof methods[key]) + \"\\\" in the component definition. \" +\n \"Did you reference the function correctly?\",\n vm\n );\n }\n if (props && hasOwn(props, key)) {\n warn(\n (\"Method \\\"\" + key + \"\\\" has already been defined as a prop.\"),\n vm\n );\n }\n if ((key in vm) && isReserved(key)) {\n warn(\n \"Method \\\"\" + key + \"\\\" conflicts with an existing Vue instance method. \" +\n \"Avoid defining component methods that start with _ or $.\"\n );\n }\n }\n vm[key] = typeof methods[key] !== 'function' ? noop : bind(methods[key], vm);\n }\n}\n\nfunction initWatch (vm, watch) {\n for (var key in watch) {\n var handler = watch[key];\n if (Array.isArray(handler)) {\n for (var i = 0; i < handler.length; i++) {\n createWatcher(vm, key, handler[i]);\n }\n } else {\n createWatcher(vm, key, handler);\n }\n }\n}\n\nfunction createWatcher (\n vm,\n expOrFn,\n handler,\n options\n) {\n if (isPlainObject(handler)) {\n options = handler;\n handler = handler.handler;\n }\n if (typeof handler === 'string') {\n handler = vm[handler];\n }\n return vm.$watch(expOrFn, handler, options)\n}\n\nfunction stateMixin (Vue) {\n // flow somehow has problems with directly declared definition object\n // when using Object.defineProperty, so we have to procedurally build up\n // the object here.\n var dataDef = {};\n dataDef.get = function () { return this._data };\n var propsDef = {};\n propsDef.get = function () { return this._props };\n if (process.env.NODE_ENV !== 'production') {\n dataDef.set = function () {\n warn(\n 'Avoid replacing instance root $data. ' +\n 'Use nested data properties instead.',\n this\n );\n };\n propsDef.set = function () {\n warn(\"$props is readonly.\", this);\n };\n }\n Object.defineProperty(Vue.prototype, '$data', dataDef);\n Object.defineProperty(Vue.prototype, '$props', propsDef);\n\n Vue.prototype.$set = set;\n Vue.prototype.$delete = del;\n\n Vue.prototype.$watch = function (\n expOrFn,\n cb,\n options\n ) {\n var vm = this;\n if (isPlainObject(cb)) {\n return createWatcher(vm, expOrFn, cb, options)\n }\n options = options || {};\n options.user = true;\n var watcher = new Watcher(vm, expOrFn, cb, options);\n if (options.immediate) {\n try {\n cb.call(vm, watcher.value);\n } catch (error) {\n handleError(error, vm, (\"callback for immediate watcher \\\"\" + (watcher.expression) + \"\\\"\"));\n }\n }\n return function unwatchFn () {\n watcher.teardown();\n }\n };\n}\n\n/* */\n\nvar uid$3 = 0;\n\nfunction initMixin (Vue) {\n Vue.prototype._init = function (options) {\n var vm = this;\n // a uid\n vm._uid = uid$3++;\n\n var startTag, endTag;\n /* istanbul ignore if */\n if (process.env.NODE_ENV !== 'production' && config.performance && mark) {\n startTag = \"vue-perf-start:\" + (vm._uid);\n endTag = \"vue-perf-end:\" + (vm._uid);\n mark(startTag);\n }\n\n // a flag to avoid this being observed\n vm._isVue = true;\n // merge options\n if (options && options._isComponent) {\n // optimize internal component instantiation\n // since dynamic options merging is pretty slow, and none of the\n // internal component options needs special treatment.\n initInternalComponent(vm, options);\n } else {\n vm.$options = mergeOptions(\n resolveConstructorOptions(vm.constructor),\n options || {},\n vm\n );\n }\n /* istanbul ignore else */\n if (process.env.NODE_ENV !== 'production') {\n initProxy(vm);\n } else {\n vm._renderProxy = vm;\n }\n // expose real self\n vm._self = vm;\n initLifecycle(vm);\n initEvents(vm);\n initRender(vm);\n callHook(vm, 'beforeCreate');\n initInjections(vm); // resolve injections before data/props\n initState(vm);\n initProvide(vm); // resolve provide after data/props\n callHook(vm, 'created');\n\n /* istanbul ignore if */\n if (process.env.NODE_ENV !== 'production' && config.performance && mark) {\n vm._name = formatComponentName(vm, false);\n mark(endTag);\n measure((\"vue \" + (vm._name) + \" init\"), startTag, endTag);\n }\n\n if (vm.$options.el) {\n vm.$mount(vm.$options.el);\n }\n };\n}\n\nfunction initInternalComponent (vm, options) {\n var opts = vm.$options = Object.create(vm.constructor.options);\n // doing this because it's faster than dynamic enumeration.\n var parentVnode = options._parentVnode;\n opts.parent = options.parent;\n opts._parentVnode = parentVnode;\n\n var vnodeComponentOptions = parentVnode.componentOptions;\n opts.propsData = vnodeComponentOptions.propsData;\n opts._parentListeners = vnodeComponentOptions.listeners;\n opts._renderChildren = vnodeComponentOptions.children;\n opts._componentTag = vnodeComponentOptions.tag;\n\n if (options.render) {\n opts.render = options.render;\n opts.staticRenderFns = options.staticRenderFns;\n }\n}\n\nfunction resolveConstructorOptions (Ctor) {\n var options = Ctor.options;\n if (Ctor.super) {\n var superOptions = resolveConstructorOptions(Ctor.super);\n var cachedSuperOptions = Ctor.superOptions;\n if (superOptions !== cachedSuperOptions) {\n // super option changed,\n // need to resolve new options.\n Ctor.superOptions = superOptions;\n // check if there are any late-modified/attached options (#4976)\n var modifiedOptions = resolveModifiedOptions(Ctor);\n // update base extend options\n if (modifiedOptions) {\n extend(Ctor.extendOptions, modifiedOptions);\n }\n options = Ctor.options = mergeOptions(superOptions, Ctor.extendOptions);\n if (options.name) {\n options.components[options.name] = Ctor;\n }\n }\n }\n return options\n}\n\nfunction resolveModifiedOptions (Ctor) {\n var modified;\n var latest = Ctor.options;\n var sealed = Ctor.sealedOptions;\n for (var key in latest) {\n if (latest[key] !== sealed[key]) {\n if (!modified) { modified = {}; }\n modified[key] = latest[key];\n }\n }\n return modified\n}\n\nfunction Vue (options) {\n if (process.env.NODE_ENV !== 'production' &&\n !(this instanceof Vue)\n ) {\n warn('Vue is a constructor and should be called with the `new` keyword');\n }\n this._init(options);\n}\n\ninitMixin(Vue);\nstateMixin(Vue);\neventsMixin(Vue);\nlifecycleMixin(Vue);\nrenderMixin(Vue);\n\n/* */\n\nfunction initUse (Vue) {\n Vue.use = function (plugin) {\n var installedPlugins = (this._installedPlugins || (this._installedPlugins = []));\n if (installedPlugins.indexOf(plugin) > -1) {\n return this\n }\n\n // additional parameters\n var args = toArray(arguments, 1);\n args.unshift(this);\n if (typeof plugin.install === 'function') {\n plugin.install.apply(plugin, args);\n } else if (typeof plugin === 'function') {\n plugin.apply(null, args);\n }\n installedPlugins.push(plugin);\n return this\n };\n}\n\n/* */\n\nfunction initMixin$1 (Vue) {\n Vue.mixin = function (mixin) {\n this.options = mergeOptions(this.options, mixin);\n return this\n };\n}\n\n/* */\n\nfunction initExtend (Vue) {\n /**\n * Each instance constructor, including Vue, has a unique\n * cid. This enables us to create wrapped \"child\n * constructors\" for prototypal inheritance and cache them.\n */\n Vue.cid = 0;\n var cid = 1;\n\n /**\n * Class inheritance\n */\n Vue.extend = function (extendOptions) {\n extendOptions = extendOptions || {};\n var Super = this;\n var SuperId = Super.cid;\n var cachedCtors = extendOptions._Ctor || (extendOptions._Ctor = {});\n if (cachedCtors[SuperId]) {\n return cachedCtors[SuperId]\n }\n\n var name = extendOptions.name || Super.options.name;\n if (process.env.NODE_ENV !== 'production' && name) {\n validateComponentName(name);\n }\n\n var Sub = function VueComponent (options) {\n this._init(options);\n };\n Sub.prototype = Object.create(Super.prototype);\n Sub.prototype.constructor = Sub;\n Sub.cid = cid++;\n Sub.options = mergeOptions(\n Super.options,\n extendOptions\n );\n Sub['super'] = Super;\n\n // For props and computed properties, we define the proxy getters on\n // the Vue instances at extension time, on the extended prototype. This\n // avoids Object.defineProperty calls for each instance created.\n if (Sub.options.props) {\n initProps$1(Sub);\n }\n if (Sub.options.computed) {\n initComputed$1(Sub);\n }\n\n // allow further extension/mixin/plugin usage\n Sub.extend = Super.extend;\n Sub.mixin = Super.mixin;\n Sub.use = Super.use;\n\n // create asset registers, so extended classes\n // can have their private assets too.\n ASSET_TYPES.forEach(function (type) {\n Sub[type] = Super[type];\n });\n // enable recursive self-lookup\n if (name) {\n Sub.options.components[name] = Sub;\n }\n\n // keep a reference to the super options at extension time.\n // later at instantiation we can check if Super's options have\n // been updated.\n Sub.superOptions = Super.options;\n Sub.extendOptions = extendOptions;\n Sub.sealedOptions = extend({}, Sub.options);\n\n // cache constructor\n cachedCtors[SuperId] = Sub;\n return Sub\n };\n}\n\nfunction initProps$1 (Comp) {\n var props = Comp.options.props;\n for (var key in props) {\n proxy(Comp.prototype, \"_props\", key);\n }\n}\n\nfunction initComputed$1 (Comp) {\n var computed = Comp.options.computed;\n for (var key in computed) {\n defineComputed(Comp.prototype, key, computed[key]);\n }\n}\n\n/* */\n\nfunction initAssetRegisters (Vue) {\n /**\n * Create asset registration methods.\n */\n ASSET_TYPES.forEach(function (type) {\n Vue[type] = function (\n id,\n definition\n ) {\n if (!definition) {\n return this.options[type + 's'][id]\n } else {\n /* istanbul ignore if */\n if (process.env.NODE_ENV !== 'production' && type === 'component') {\n validateComponentName(id);\n }\n if (type === 'component' && isPlainObject(definition)) {\n definition.name = definition.name || id;\n definition = this.options._base.extend(definition);\n }\n if (type === 'directive' && typeof definition === 'function') {\n definition = { bind: definition, update: definition };\n }\n this.options[type + 's'][id] = definition;\n return definition\n }\n };\n });\n}\n\n/* */\n\n\n\nfunction getComponentName (opts) {\n return opts && (opts.Ctor.options.name || opts.tag)\n}\n\nfunction matches (pattern, name) {\n if (Array.isArray(pattern)) {\n return pattern.indexOf(name) > -1\n } else if (typeof pattern === 'string') {\n return pattern.split(',').indexOf(name) > -1\n } else if (isRegExp(pattern)) {\n return pattern.test(name)\n }\n /* istanbul ignore next */\n return false\n}\n\nfunction pruneCache (keepAliveInstance, filter) {\n var cache = keepAliveInstance.cache;\n var keys = keepAliveInstance.keys;\n var _vnode = keepAliveInstance._vnode;\n for (var key in cache) {\n var cachedNode = cache[key];\n if (cachedNode) {\n var name = getComponentName(cachedNode.componentOptions);\n if (name && !filter(name)) {\n pruneCacheEntry(cache, key, keys, _vnode);\n }\n }\n }\n}\n\nfunction pruneCacheEntry (\n cache,\n key,\n keys,\n current\n) {\n var cached$$1 = cache[key];\n if (cached$$1 && (!current || cached$$1.tag !== current.tag)) {\n cached$$1.componentInstance.$destroy();\n }\n cache[key] = null;\n remove(keys, key);\n}\n\nvar patternTypes = [String, RegExp, Array];\n\nvar KeepAlive = {\n name: 'keep-alive',\n abstract: true,\n\n props: {\n include: patternTypes,\n exclude: patternTypes,\n max: [String, Number]\n },\n\n created: function created () {\n this.cache = Object.create(null);\n this.keys = [];\n },\n\n destroyed: function destroyed () {\n for (var key in this.cache) {\n pruneCacheEntry(this.cache, key, this.keys);\n }\n },\n\n mounted: function mounted () {\n var this$1 = this;\n\n this.$watch('include', function (val) {\n pruneCache(this$1, function (name) { return matches(val, name); });\n });\n this.$watch('exclude', function (val) {\n pruneCache(this$1, function (name) { return !matches(val, name); });\n });\n },\n\n render: function render () {\n var slot = this.$slots.default;\n var vnode = getFirstComponentChild(slot);\n var componentOptions = vnode && vnode.componentOptions;\n if (componentOptions) {\n // check pattern\n var name = getComponentName(componentOptions);\n var ref = this;\n var include = ref.include;\n var exclude = ref.exclude;\n if (\n // not included\n (include && (!name || !matches(include, name))) ||\n // excluded\n (exclude && name && matches(exclude, name))\n ) {\n return vnode\n }\n\n var ref$1 = this;\n var cache = ref$1.cache;\n var keys = ref$1.keys;\n var key = vnode.key == null\n // same constructor may get registered as different local components\n // so cid alone is not enough (#3269)\n ? componentOptions.Ctor.cid + (componentOptions.tag ? (\"::\" + (componentOptions.tag)) : '')\n : vnode.key;\n if (cache[key]) {\n vnode.componentInstance = cache[key].componentInstance;\n // make current key freshest\n remove(keys, key);\n keys.push(key);\n } else {\n cache[key] = vnode;\n keys.push(key);\n // prune oldest entry\n if (this.max && keys.length > parseInt(this.max)) {\n pruneCacheEntry(cache, keys[0], keys, this._vnode);\n }\n }\n\n vnode.data.keepAlive = true;\n }\n return vnode || (slot && slot[0])\n }\n};\n\nvar builtInComponents = {\n KeepAlive: KeepAlive\n};\n\n/* */\n\nfunction initGlobalAPI (Vue) {\n // config\n var configDef = {};\n configDef.get = function () { return config; };\n if (process.env.NODE_ENV !== 'production') {\n configDef.set = function () {\n warn(\n 'Do not replace the Vue.config object, set individual fields instead.'\n );\n };\n }\n Object.defineProperty(Vue, 'config', configDef);\n\n // exposed util methods.\n // NOTE: these are not considered part of the public API - avoid relying on\n // them unless you are aware of the risk.\n Vue.util = {\n warn: warn,\n extend: extend,\n mergeOptions: mergeOptions,\n defineReactive: defineReactive$$1\n };\n\n Vue.set = set;\n Vue.delete = del;\n Vue.nextTick = nextTick;\n\n // 2.6 explicit observable API\n Vue.observable = function (obj) {\n observe(obj);\n return obj\n };\n\n Vue.options = Object.create(null);\n ASSET_TYPES.forEach(function (type) {\n Vue.options[type + 's'] = Object.create(null);\n });\n\n // this is used to identify the \"base\" constructor to extend all plain-object\n // components with in Weex's multi-instance scenarios.\n Vue.options._base = Vue;\n\n extend(Vue.options.components, builtInComponents);\n\n initUse(Vue);\n initMixin$1(Vue);\n initExtend(Vue);\n initAssetRegisters(Vue);\n}\n\ninitGlobalAPI(Vue);\n\nObject.defineProperty(Vue.prototype, '$isServer', {\n get: isServerRendering\n});\n\nObject.defineProperty(Vue.prototype, '$ssrContext', {\n get: function get () {\n /* istanbul ignore next */\n return this.$vnode && this.$vnode.ssrContext\n }\n});\n\n// expose FunctionalRenderContext for ssr runtime helper installation\nObject.defineProperty(Vue, 'FunctionalRenderContext', {\n value: FunctionalRenderContext\n});\n\nVue.version = '2.6.12';\n\n/* */\n\n// these are reserved for web because they are directly compiled away\n// during template compilation\nvar isReservedAttr = makeMap('style,class');\n\n// attributes that should be using props for binding\nvar acceptValue = makeMap('input,textarea,option,select,progress');\nvar mustUseProp = function (tag, type, attr) {\n return (\n (attr === 'value' && acceptValue(tag)) && type !== 'button' ||\n (attr === 'selected' && tag === 'option') ||\n (attr === 'checked' && tag === 'input') ||\n (attr === 'muted' && tag === 'video')\n )\n};\n\nvar isEnumeratedAttr = makeMap('contenteditable,draggable,spellcheck');\n\nvar isValidContentEditableValue = makeMap('events,caret,typing,plaintext-only');\n\nvar convertEnumeratedValue = function (key, value) {\n return isFalsyAttrValue(value) || value === 'false'\n ? 'false'\n // allow arbitrary string value for contenteditable\n : key === 'contenteditable' && isValidContentEditableValue(value)\n ? value\n : 'true'\n};\n\nvar isBooleanAttr = makeMap(\n 'allowfullscreen,async,autofocus,autoplay,checked,compact,controls,declare,' +\n 'default,defaultchecked,defaultmuted,defaultselected,defer,disabled,' +\n 'enabled,formnovalidate,hidden,indeterminate,inert,ismap,itemscope,loop,multiple,' +\n 'muted,nohref,noresize,noshade,novalidate,nowrap,open,pauseonexit,readonly,' +\n 'required,reversed,scoped,seamless,selected,sortable,translate,' +\n 'truespeed,typemustmatch,visible'\n);\n\nvar xlinkNS = 'http://www.w3.org/1999/xlink';\n\nvar isXlink = function (name) {\n return name.charAt(5) === ':' && name.slice(0, 5) === 'xlink'\n};\n\nvar getXlinkProp = function (name) {\n return isXlink(name) ? name.slice(6, name.length) : ''\n};\n\nvar isFalsyAttrValue = function (val) {\n return val == null || val === false\n};\n\n/* */\n\nfunction genClassForVnode (vnode) {\n var data = vnode.data;\n var parentNode = vnode;\n var childNode = vnode;\n while (isDef(childNode.componentInstance)) {\n childNode = childNode.componentInstance._vnode;\n if (childNode && childNode.data) {\n data = mergeClassData(childNode.data, data);\n }\n }\n while (isDef(parentNode = parentNode.parent)) {\n if (parentNode && parentNode.data) {\n data = mergeClassData(data, parentNode.data);\n }\n }\n return renderClass(data.staticClass, data.class)\n}\n\nfunction mergeClassData (child, parent) {\n return {\n staticClass: concat(child.staticClass, parent.staticClass),\n class: isDef(child.class)\n ? [child.class, parent.class]\n : parent.class\n }\n}\n\nfunction renderClass (\n staticClass,\n dynamicClass\n) {\n if (isDef(staticClass) || isDef(dynamicClass)) {\n return concat(staticClass, stringifyClass(dynamicClass))\n }\n /* istanbul ignore next */\n return ''\n}\n\nfunction concat (a, b) {\n return a ? b ? (a + ' ' + b) : a : (b || '')\n}\n\nfunction stringifyClass (value) {\n if (Array.isArray(value)) {\n return stringifyArray(value)\n }\n if (isObject(value)) {\n return stringifyObject(value)\n }\n if (typeof value === 'string') {\n return value\n }\n /* istanbul ignore next */\n return ''\n}\n\nfunction stringifyArray (value) {\n var res = '';\n var stringified;\n for (var i = 0, l = value.length; i < l; i++) {\n if (isDef(stringified = stringifyClass(value[i])) && stringified !== '') {\n if (res) { res += ' '; }\n res += stringified;\n }\n }\n return res\n}\n\nfunction stringifyObject (value) {\n var res = '';\n for (var key in value) {\n if (value[key]) {\n if (res) { res += ' '; }\n res += key;\n }\n }\n return res\n}\n\n/* */\n\nvar namespaceMap = {\n svg: 'http://www.w3.org/2000/svg',\n math: 'http://www.w3.org/1998/Math/MathML'\n};\n\nvar isHTMLTag = makeMap(\n 'html,body,base,head,link,meta,style,title,' +\n 'address,article,aside,footer,header,h1,h2,h3,h4,h5,h6,hgroup,nav,section,' +\n 'div,dd,dl,dt,figcaption,figure,picture,hr,img,li,main,ol,p,pre,ul,' +\n 'a,b,abbr,bdi,bdo,br,cite,code,data,dfn,em,i,kbd,mark,q,rp,rt,rtc,ruby,' +\n 's,samp,small,span,strong,sub,sup,time,u,var,wbr,area,audio,map,track,video,' +\n 'embed,object,param,source,canvas,script,noscript,del,ins,' +\n 'caption,col,colgroup,table,thead,tbody,td,th,tr,' +\n 'button,datalist,fieldset,form,input,label,legend,meter,optgroup,option,' +\n 'output,progress,select,textarea,' +\n 'details,dialog,menu,menuitem,summary,' +\n 'content,element,shadow,template,blockquote,iframe,tfoot'\n);\n\n// this map is intentionally selective, only covering SVG elements that may\n// contain child elements.\nvar isSVG = makeMap(\n 'svg,animate,circle,clippath,cursor,defs,desc,ellipse,filter,font-face,' +\n 'foreignObject,g,glyph,image,line,marker,mask,missing-glyph,path,pattern,' +\n 'polygon,polyline,rect,switch,symbol,text,textpath,tspan,use,view',\n true\n);\n\nvar isReservedTag = function (tag) {\n return isHTMLTag(tag) || isSVG(tag)\n};\n\nfunction getTagNamespace (tag) {\n if (isSVG(tag)) {\n return 'svg'\n }\n // basic support for MathML\n // note it doesn't support other MathML elements being component roots\n if (tag === 'math') {\n return 'math'\n }\n}\n\nvar unknownElementCache = Object.create(null);\nfunction isUnknownElement (tag) {\n /* istanbul ignore if */\n if (!inBrowser) {\n return true\n }\n if (isReservedTag(tag)) {\n return false\n }\n tag = tag.toLowerCase();\n /* istanbul ignore if */\n if (unknownElementCache[tag] != null) {\n return unknownElementCache[tag]\n }\n var el = document.createElement(tag);\n if (tag.indexOf('-') > -1) {\n // http://stackoverflow.com/a/28210364/1070244\n return (unknownElementCache[tag] = (\n el.constructor === window.HTMLUnknownElement ||\n el.constructor === window.HTMLElement\n ))\n } else {\n return (unknownElementCache[tag] = /HTMLUnknownElement/.test(el.toString()))\n }\n}\n\nvar isTextInputType = makeMap('text,number,password,search,email,tel,url');\n\n/* */\n\n/**\n * Query an element selector if it's not an element already.\n */\nfunction query (el) {\n if (typeof el === 'string') {\n var selected = document.querySelector(el);\n if (!selected) {\n process.env.NODE_ENV !== 'production' && warn(\n 'Cannot find element: ' + el\n );\n return document.createElement('div')\n }\n return selected\n } else {\n return el\n }\n}\n\n/* */\n\nfunction createElement$1 (tagName, vnode) {\n var elm = document.createElement(tagName);\n if (tagName !== 'select') {\n return elm\n }\n // false or null will remove the attribute but undefined will not\n if (vnode.data && vnode.data.attrs && vnode.data.attrs.multiple !== undefined) {\n elm.setAttribute('multiple', 'multiple');\n }\n return elm\n}\n\nfunction createElementNS (namespace, tagName) {\n return document.createElementNS(namespaceMap[namespace], tagName)\n}\n\nfunction createTextNode (text) {\n return document.createTextNode(text)\n}\n\nfunction createComment (text) {\n return document.createComment(text)\n}\n\nfunction insertBefore (parentNode, newNode, referenceNode) {\n parentNode.insertBefore(newNode, referenceNode);\n}\n\nfunction removeChild (node, child) {\n node.removeChild(child);\n}\n\nfunction appendChild (node, child) {\n node.appendChild(child);\n}\n\nfunction parentNode (node) {\n return node.parentNode\n}\n\nfunction nextSibling (node) {\n return node.nextSibling\n}\n\nfunction tagName (node) {\n return node.tagName\n}\n\nfunction setTextContent (node, text) {\n node.textContent = text;\n}\n\nfunction setStyleScope (node, scopeId) {\n node.setAttribute(scopeId, '');\n}\n\nvar nodeOps = /*#__PURE__*/Object.freeze({\n createElement: createElement$1,\n createElementNS: createElementNS,\n createTextNode: createTextNode,\n createComment: createComment,\n insertBefore: insertBefore,\n removeChild: removeChild,\n appendChild: appendChild,\n parentNode: parentNode,\n nextSibling: nextSibling,\n tagName: tagName,\n setTextContent: setTextContent,\n setStyleScope: setStyleScope\n});\n\n/* */\n\nvar ref = {\n create: function create (_, vnode) {\n registerRef(vnode);\n },\n update: function update (oldVnode, vnode) {\n if (oldVnode.data.ref !== vnode.data.ref) {\n registerRef(oldVnode, true);\n registerRef(vnode);\n }\n },\n destroy: function destroy (vnode) {\n registerRef(vnode, true);\n }\n};\n\nfunction registerRef (vnode, isRemoval) {\n var key = vnode.data.ref;\n if (!isDef(key)) { return }\n\n var vm = vnode.context;\n var ref = vnode.componentInstance || vnode.elm;\n var refs = vm.$refs;\n if (isRemoval) {\n if (Array.isArray(refs[key])) {\n remove(refs[key], ref);\n } else if (refs[key] === ref) {\n refs[key] = undefined;\n }\n } else {\n if (vnode.data.refInFor) {\n if (!Array.isArray(refs[key])) {\n refs[key] = [ref];\n } else if (refs[key].indexOf(ref) < 0) {\n // $flow-disable-line\n refs[key].push(ref);\n }\n } else {\n refs[key] = ref;\n }\n }\n}\n\n/**\n * Virtual DOM patching algorithm based on Snabbdom by\n * Simon Friis Vindum (@paldepind)\n * Licensed under the MIT License\n * https://github.com/paldepind/snabbdom/blob/master/LICENSE\n *\n * modified by Evan You (@yyx990803)\n *\n * Not type-checking this because this file is perf-critical and the cost\n * of making flow understand it is not worth it.\n */\n\nvar emptyNode = new VNode('', {}, []);\n\nvar hooks = ['create', 'activate', 'update', 'remove', 'destroy'];\n\nfunction sameVnode (a, b) {\n return (\n a.key === b.key && (\n (\n a.tag === b.tag &&\n a.isComment === b.isComment &&\n isDef(a.data) === isDef(b.data) &&\n sameInputType(a, b)\n ) || (\n isTrue(a.isAsyncPlaceholder) &&\n a.asyncFactory === b.asyncFactory &&\n isUndef(b.asyncFactory.error)\n )\n )\n )\n}\n\nfunction sameInputType (a, b) {\n if (a.tag !== 'input') { return true }\n var i;\n var typeA = isDef(i = a.data) && isDef(i = i.attrs) && i.type;\n var typeB = isDef(i = b.data) && isDef(i = i.attrs) && i.type;\n return typeA === typeB || isTextInputType(typeA) && isTextInputType(typeB)\n}\n\nfunction createKeyToOldIdx (children, beginIdx, endIdx) {\n var i, key;\n var map = {};\n for (i = beginIdx; i <= endIdx; ++i) {\n key = children[i].key;\n if (isDef(key)) { map[key] = i; }\n }\n return map\n}\n\nfunction createPatchFunction (backend) {\n var i, j;\n var cbs = {};\n\n var modules = backend.modules;\n var nodeOps = backend.nodeOps;\n\n for (i = 0; i < hooks.length; ++i) {\n cbs[hooks[i]] = [];\n for (j = 0; j < modules.length; ++j) {\n if (isDef(modules[j][hooks[i]])) {\n cbs[hooks[i]].push(modules[j][hooks[i]]);\n }\n }\n }\n\n function emptyNodeAt (elm) {\n return new VNode(nodeOps.tagName(elm).toLowerCase(), {}, [], undefined, elm)\n }\n\n function createRmCb (childElm, listeners) {\n function remove$$1 () {\n if (--remove$$1.listeners === 0) {\n removeNode(childElm);\n }\n }\n remove$$1.listeners = listeners;\n return remove$$1\n }\n\n function removeNode (el) {\n var parent = nodeOps.parentNode(el);\n // element may have already been removed due to v-html / v-text\n if (isDef(parent)) {\n nodeOps.removeChild(parent, el);\n }\n }\n\n function isUnknownElement$$1 (vnode, inVPre) {\n return (\n !inVPre &&\n !vnode.ns &&\n !(\n config.ignoredElements.length &&\n config.ignoredElements.some(function (ignore) {\n return isRegExp(ignore)\n ? ignore.test(vnode.tag)\n : ignore === vnode.tag\n })\n ) &&\n config.isUnknownElement(vnode.tag)\n )\n }\n\n var creatingElmInVPre = 0;\n\n function createElm (\n vnode,\n insertedVnodeQueue,\n parentElm,\n refElm,\n nested,\n ownerArray,\n index\n ) {\n if (isDef(vnode.elm) && isDef(ownerArray)) {\n // This vnode was used in a previous render!\n // now it's used as a new node, overwriting its elm would cause\n // potential patch errors down the road when it's used as an insertion\n // reference node. Instead, we clone the node on-demand before creating\n // associated DOM element for it.\n vnode = ownerArray[index] = cloneVNode(vnode);\n }\n\n vnode.isRootInsert = !nested; // for transition enter check\n if (createComponent(vnode, insertedVnodeQueue, parentElm, refElm)) {\n return\n }\n\n var data = vnode.data;\n var children = vnode.children;\n var tag = vnode.tag;\n if (isDef(tag)) {\n if (process.env.NODE_ENV !== 'production') {\n if (data && data.pre) {\n creatingElmInVPre++;\n }\n if (isUnknownElement$$1(vnode, creatingElmInVPre)) {\n warn(\n 'Unknown custom element: <' + tag + '> - did you ' +\n 'register the component correctly? For recursive components, ' +\n 'make sure to provide the \"name\" option.',\n vnode.context\n );\n }\n }\n\n vnode.elm = vnode.ns\n ? nodeOps.createElementNS(vnode.ns, tag)\n : nodeOps.createElement(tag, vnode);\n setScope(vnode);\n\n /* istanbul ignore if */\n {\n createChildren(vnode, children, insertedVnodeQueue);\n if (isDef(data)) {\n invokeCreateHooks(vnode, insertedVnodeQueue);\n }\n insert(parentElm, vnode.elm, refElm);\n }\n\n if (process.env.NODE_ENV !== 'production' && data && data.pre) {\n creatingElmInVPre--;\n }\n } else if (isTrue(vnode.isComment)) {\n vnode.elm = nodeOps.createComment(vnode.text);\n insert(parentElm, vnode.elm, refElm);\n } else {\n vnode.elm = nodeOps.createTextNode(vnode.text);\n insert(parentElm, vnode.elm, refElm);\n }\n }\n\n function createComponent (vnode, insertedVnodeQueue, parentElm, refElm) {\n var i = vnode.data;\n if (isDef(i)) {\n var isReactivated = isDef(vnode.componentInstance) && i.keepAlive;\n if (isDef(i = i.hook) && isDef(i = i.init)) {\n i(vnode, false /* hydrating */);\n }\n // after calling the init hook, if the vnode is a child component\n // it should've created a child instance and mounted it. the child\n // component also has set the placeholder vnode's elm.\n // in that case we can just return the element and be done.\n if (isDef(vnode.componentInstance)) {\n initComponent(vnode, insertedVnodeQueue);\n insert(parentElm, vnode.elm, refElm);\n if (isTrue(isReactivated)) {\n reactivateComponent(vnode, insertedVnodeQueue, parentElm, refElm);\n }\n return true\n }\n }\n }\n\n function initComponent (vnode, insertedVnodeQueue) {\n if (isDef(vnode.data.pendingInsert)) {\n insertedVnodeQueue.push.apply(insertedVnodeQueue, vnode.data.pendingInsert);\n vnode.data.pendingInsert = null;\n }\n vnode.elm = vnode.componentInstance.$el;\n if (isPatchable(vnode)) {\n invokeCreateHooks(vnode, insertedVnodeQueue);\n setScope(vnode);\n } else {\n // empty component root.\n // skip all element-related modules except for ref (#3455)\n registerRef(vnode);\n // make sure to invoke the insert hook\n insertedVnodeQueue.push(vnode);\n }\n }\n\n function reactivateComponent (vnode, insertedVnodeQueue, parentElm, refElm) {\n var i;\n // hack for #4339: a reactivated component with inner transition\n // does not trigger because the inner node's created hooks are not called\n // again. It's not ideal to involve module-specific logic in here but\n // there doesn't seem to be a better way to do it.\n var innerNode = vnode;\n while (innerNode.componentInstance) {\n innerNode = innerNode.componentInstance._vnode;\n if (isDef(i = innerNode.data) && isDef(i = i.transition)) {\n for (i = 0; i < cbs.activate.length; ++i) {\n cbs.activate[i](emptyNode, innerNode);\n }\n insertedVnodeQueue.push(innerNode);\n break\n }\n }\n // unlike a newly created component,\n // a reactivated keep-alive component doesn't insert itself\n insert(parentElm, vnode.elm, refElm);\n }\n\n function insert (parent, elm, ref$$1) {\n if (isDef(parent)) {\n if (isDef(ref$$1)) {\n if (nodeOps.parentNode(ref$$1) === parent) {\n nodeOps.insertBefore(parent, elm, ref$$1);\n }\n } else {\n nodeOps.appendChild(parent, elm);\n }\n }\n }\n\n function createChildren (vnode, children, insertedVnodeQueue) {\n if (Array.isArray(children)) {\n if (process.env.NODE_ENV !== 'production') {\n checkDuplicateKeys(children);\n }\n for (var i = 0; i < children.length; ++i) {\n createElm(children[i], insertedVnodeQueue, vnode.elm, null, true, children, i);\n }\n } else if (isPrimitive(vnode.text)) {\n nodeOps.appendChild(vnode.elm, nodeOps.createTextNode(String(vnode.text)));\n }\n }\n\n function isPatchable (vnode) {\n while (vnode.componentInstance) {\n vnode = vnode.componentInstance._vnode;\n }\n return isDef(vnode.tag)\n }\n\n function invokeCreateHooks (vnode, insertedVnodeQueue) {\n for (var i$1 = 0; i$1 < cbs.create.length; ++i$1) {\n cbs.create[i$1](emptyNode, vnode);\n }\n i = vnode.data.hook; // Reuse variable\n if (isDef(i)) {\n if (isDef(i.create)) { i.create(emptyNode, vnode); }\n if (isDef(i.insert)) { insertedVnodeQueue.push(vnode); }\n }\n }\n\n // set scope id attribute for scoped CSS.\n // this is implemented as a special case to avoid the overhead\n // of going through the normal attribute patching process.\n function setScope (vnode) {\n var i;\n if (isDef(i = vnode.fnScopeId)) {\n nodeOps.setStyleScope(vnode.elm, i);\n } else {\n var ancestor = vnode;\n while (ancestor) {\n if (isDef(i = ancestor.context) && isDef(i = i.$options._scopeId)) {\n nodeOps.setStyleScope(vnode.elm, i);\n }\n ancestor = ancestor.parent;\n }\n }\n // for slot content they should also get the scopeId from the host instance.\n if (isDef(i = activeInstance) &&\n i !== vnode.context &&\n i !== vnode.fnContext &&\n isDef(i = i.$options._scopeId)\n ) {\n nodeOps.setStyleScope(vnode.elm, i);\n }\n }\n\n function addVnodes (parentElm, refElm, vnodes, startIdx, endIdx, insertedVnodeQueue) {\n for (; startIdx <= endIdx; ++startIdx) {\n createElm(vnodes[startIdx], insertedVnodeQueue, parentElm, refElm, false, vnodes, startIdx);\n }\n }\n\n function invokeDestroyHook (vnode) {\n var i, j;\n var data = vnode.data;\n if (isDef(data)) {\n if (isDef(i = data.hook) && isDef(i = i.destroy)) { i(vnode); }\n for (i = 0; i < cbs.destroy.length; ++i) { cbs.destroy[i](vnode); }\n }\n if (isDef(i = vnode.children)) {\n for (j = 0; j < vnode.children.length; ++j) {\n invokeDestroyHook(vnode.children[j]);\n }\n }\n }\n\n function removeVnodes (vnodes, startIdx, endIdx) {\n for (; startIdx <= endIdx; ++startIdx) {\n var ch = vnodes[startIdx];\n if (isDef(ch)) {\n if (isDef(ch.tag)) {\n removeAndInvokeRemoveHook(ch);\n invokeDestroyHook(ch);\n } else { // Text node\n removeNode(ch.elm);\n }\n }\n }\n }\n\n function removeAndInvokeRemoveHook (vnode, rm) {\n if (isDef(rm) || isDef(vnode.data)) {\n var i;\n var listeners = cbs.remove.length + 1;\n if (isDef(rm)) {\n // we have a recursively passed down rm callback\n // increase the listeners count\n rm.listeners += listeners;\n } else {\n // directly removing\n rm = createRmCb(vnode.elm, listeners);\n }\n // recursively invoke hooks on child component root node\n if (isDef(i = vnode.componentInstance) && isDef(i = i._vnode) && isDef(i.data)) {\n removeAndInvokeRemoveHook(i, rm);\n }\n for (i = 0; i < cbs.remove.length; ++i) {\n cbs.remove[i](vnode, rm);\n }\n if (isDef(i = vnode.data.hook) && isDef(i = i.remove)) {\n i(vnode, rm);\n } else {\n rm();\n }\n } else {\n removeNode(vnode.elm);\n }\n }\n\n function updateChildren (parentElm, oldCh, newCh, insertedVnodeQueue, removeOnly) {\n var oldStartIdx = 0;\n var newStartIdx = 0;\n var oldEndIdx = oldCh.length - 1;\n var oldStartVnode = oldCh[0];\n var oldEndVnode = oldCh[oldEndIdx];\n var newEndIdx = newCh.length - 1;\n var newStartVnode = newCh[0];\n var newEndVnode = newCh[newEndIdx];\n var oldKeyToIdx, idxInOld, vnodeToMove, refElm;\n\n // removeOnly is a special flag used only by <transition-group>\n // to ensure removed elements stay in correct relative positions\n // during leaving transitions\n var canMove = !removeOnly;\n\n if (process.env.NODE_ENV !== 'production') {\n checkDuplicateKeys(newCh);\n }\n\n while (oldStartIdx <= oldEndIdx && newStartIdx <= newEndIdx) {\n if (isUndef(oldStartVnode)) {\n oldStartVnode = oldCh[++oldStartIdx]; // Vnode has been moved left\n } else if (isUndef(oldEndVnode)) {\n oldEndVnode = oldCh[--oldEndIdx];\n } else if (sameVnode(oldStartVnode, newStartVnode)) {\n patchVnode(oldStartVnode, newStartVnode, insertedVnodeQueue, newCh, newStartIdx);\n oldStartVnode = oldCh[++oldStartIdx];\n newStartVnode = newCh[++newStartIdx];\n } else if (sameVnode(oldEndVnode, newEndVnode)) {\n patchVnode(oldEndVnode, newEndVnode, insertedVnodeQueue, newCh, newEndIdx);\n oldEndVnode = oldCh[--oldEndIdx];\n newEndVnode = newCh[--newEndIdx];\n } else if (sameVnode(oldStartVnode, newEndVnode)) { // Vnode moved right\n patchVnode(oldStartVnode, newEndVnode, insertedVnodeQueue, newCh, newEndIdx);\n canMove && nodeOps.insertBefore(parentElm, oldStartVnode.elm, nodeOps.nextSibling(oldEndVnode.elm));\n oldStartVnode = oldCh[++oldStartIdx];\n newEndVnode = newCh[--newEndIdx];\n } else if (sameVnode(oldEndVnode, newStartVnode)) { // Vnode moved left\n patchVnode(oldEndVnode, newStartVnode, insertedVnodeQueue, newCh, newStartIdx);\n canMove && nodeOps.insertBefore(parentElm, oldEndVnode.elm, oldStartVnode.elm);\n oldEndVnode = oldCh[--oldEndIdx];\n newStartVnode = newCh[++newStartIdx];\n } else {\n if (isUndef(oldKeyToIdx)) { oldKeyToIdx = createKeyToOldIdx(oldCh, oldStartIdx, oldEndIdx); }\n idxInOld = isDef(newStartVnode.key)\n ? oldKeyToIdx[newStartVnode.key]\n : findIdxInOld(newStartVnode, oldCh, oldStartIdx, oldEndIdx);\n if (isUndef(idxInOld)) { // New element\n createElm(newStartVnode, insertedVnodeQueue, parentElm, oldStartVnode.elm, false, newCh, newStartIdx);\n } else {\n vnodeToMove = oldCh[idxInOld];\n if (sameVnode(vnodeToMove, newStartVnode)) {\n patchVnode(vnodeToMove, newStartVnode, insertedVnodeQueue, newCh, newStartIdx);\n oldCh[idxInOld] = undefined;\n canMove && nodeOps.insertBefore(parentElm, vnodeToMove.elm, oldStartVnode.elm);\n } else {\n // same key but different element. treat as new element\n createElm(newStartVnode, insertedVnodeQueue, parentElm, oldStartVnode.elm, false, newCh, newStartIdx);\n }\n }\n newStartVnode = newCh[++newStartIdx];\n }\n }\n if (oldStartIdx > oldEndIdx) {\n refElm = isUndef(newCh[newEndIdx + 1]) ? null : newCh[newEndIdx + 1].elm;\n addVnodes(parentElm, refElm, newCh, newStartIdx, newEndIdx, insertedVnodeQueue);\n } else if (newStartIdx > newEndIdx) {\n removeVnodes(oldCh, oldStartIdx, oldEndIdx);\n }\n }\n\n function checkDuplicateKeys (children) {\n var seenKeys = {};\n for (var i = 0; i < children.length; i++) {\n var vnode = children[i];\n var key = vnode.key;\n if (isDef(key)) {\n if (seenKeys[key]) {\n warn(\n (\"Duplicate keys detected: '\" + key + \"'. This may cause an update error.\"),\n vnode.context\n );\n } else {\n seenKeys[key] = true;\n }\n }\n }\n }\n\n function findIdxInOld (node, oldCh, start, end) {\n for (var i = start; i < end; i++) {\n var c = oldCh[i];\n if (isDef(c) && sameVnode(node, c)) { return i }\n }\n }\n\n function patchVnode (\n oldVnode,\n vnode,\n insertedVnodeQueue,\n ownerArray,\n index,\n removeOnly\n ) {\n if (oldVnode === vnode) {\n return\n }\n\n if (isDef(vnode.elm) && isDef(ownerArray)) {\n // clone reused vnode\n vnode = ownerArray[index] = cloneVNode(vnode);\n }\n\n var elm = vnode.elm = oldVnode.elm;\n\n if (isTrue(oldVnode.isAsyncPlaceholder)) {\n if (isDef(vnode.asyncFactory.resolved)) {\n hydrate(oldVnode.elm, vnode, insertedVnodeQueue);\n } else {\n vnode.isAsyncPlaceholder = true;\n }\n return\n }\n\n // reuse element for static trees.\n // note we only do this if the vnode is cloned -\n // if the new node is not cloned it means the render functions have been\n // reset by the hot-reload-api and we need to do a proper re-render.\n if (isTrue(vnode.isStatic) &&\n isTrue(oldVnode.isStatic) &&\n vnode.key === oldVnode.key &&\n (isTrue(vnode.isCloned) || isTrue(vnode.isOnce))\n ) {\n vnode.componentInstance = oldVnode.componentInstance;\n return\n }\n\n var i;\n var data = vnode.data;\n if (isDef(data) && isDef(i = data.hook) && isDef(i = i.prepatch)) {\n i(oldVnode, vnode);\n }\n\n var oldCh = oldVnode.children;\n var ch = vnode.children;\n if (isDef(data) && isPatchable(vnode)) {\n for (i = 0; i < cbs.update.length; ++i) { cbs.update[i](oldVnode, vnode); }\n if (isDef(i = data.hook) && isDef(i = i.update)) { i(oldVnode, vnode); }\n }\n if (isUndef(vnode.text)) {\n if (isDef(oldCh) && isDef(ch)) {\n if (oldCh !== ch) { updateChildren(elm, oldCh, ch, insertedVnodeQueue, removeOnly); }\n } else if (isDef(ch)) {\n if (process.env.NODE_ENV !== 'production') {\n checkDuplicateKeys(ch);\n }\n if (isDef(oldVnode.text)) { nodeOps.setTextContent(elm, ''); }\n addVnodes(elm, null, ch, 0, ch.length - 1, insertedVnodeQueue);\n } else if (isDef(oldCh)) {\n removeVnodes(oldCh, 0, oldCh.length - 1);\n } else if (isDef(oldVnode.text)) {\n nodeOps.setTextContent(elm, '');\n }\n } else if (oldVnode.text !== vnode.text) {\n nodeOps.setTextContent(elm, vnode.text);\n }\n if (isDef(data)) {\n if (isDef(i = data.hook) && isDef(i = i.postpatch)) { i(oldVnode, vnode); }\n }\n }\n\n function invokeInsertHook (vnode, queue, initial) {\n // delay insert hooks for component root nodes, invoke them after the\n // element is really inserted\n if (isTrue(initial) && isDef(vnode.parent)) {\n vnode.parent.data.pendingInsert = queue;\n } else {\n for (var i = 0; i < queue.length; ++i) {\n queue[i].data.hook.insert(queue[i]);\n }\n }\n }\n\n var hydrationBailed = false;\n // list of modules that can skip create hook during hydration because they\n // are already rendered on the client or has no need for initialization\n // Note: style is excluded because it relies on initial clone for future\n // deep updates (#7063).\n var isRenderedModule = makeMap('attrs,class,staticClass,staticStyle,key');\n\n // Note: this is a browser-only function so we can assume elms are DOM nodes.\n function hydrate (elm, vnode, insertedVnodeQueue, inVPre) {\n var i;\n var tag = vnode.tag;\n var data = vnode.data;\n var children = vnode.children;\n inVPre = inVPre || (data && data.pre);\n vnode.elm = elm;\n\n if (isTrue(vnode.isComment) && isDef(vnode.asyncFactory)) {\n vnode.isAsyncPlaceholder = true;\n return true\n }\n // assert node match\n if (process.env.NODE_ENV !== 'production') {\n if (!assertNodeMatch(elm, vnode, inVPre)) {\n return false\n }\n }\n if (isDef(data)) {\n if (isDef(i = data.hook) && isDef(i = i.init)) { i(vnode, true /* hydrating */); }\n if (isDef(i = vnode.componentInstance)) {\n // child component. it should have hydrated its own tree.\n initComponent(vnode, insertedVnodeQueue);\n return true\n }\n }\n if (isDef(tag)) {\n if (isDef(children)) {\n // empty element, allow client to pick up and populate children\n if (!elm.hasChildNodes()) {\n createChildren(vnode, children, insertedVnodeQueue);\n } else {\n // v-html and domProps: innerHTML\n if (isDef(i = data) && isDef(i = i.domProps) && isDef(i = i.innerHTML)) {\n if (i !== elm.innerHTML) {\n /* istanbul ignore if */\n if (process.env.NODE_ENV !== 'production' &&\n typeof console !== 'undefined' &&\n !hydrationBailed\n ) {\n hydrationBailed = true;\n console.warn('Parent: ', elm);\n console.warn('server innerHTML: ', i);\n console.warn('client innerHTML: ', elm.innerHTML);\n }\n return false\n }\n } else {\n // iterate and compare children lists\n var childrenMatch = true;\n var childNode = elm.firstChild;\n for (var i$1 = 0; i$1 < children.length; i$1++) {\n if (!childNode || !hydrate(childNode, children[i$1], insertedVnodeQueue, inVPre)) {\n childrenMatch = false;\n break\n }\n childNode = childNode.nextSibling;\n }\n // if childNode is not null, it means the actual childNodes list is\n // longer than the virtual children list.\n if (!childrenMatch || childNode) {\n /* istanbul ignore if */\n if (process.env.NODE_ENV !== 'production' &&\n typeof console !== 'undefined' &&\n !hydrationBailed\n ) {\n hydrationBailed = true;\n console.warn('Parent: ', elm);\n console.warn('Mismatching childNodes vs. VNodes: ', elm.childNodes, children);\n }\n return false\n }\n }\n }\n }\n if (isDef(data)) {\n var fullInvoke = false;\n for (var key in data) {\n if (!isRenderedModule(key)) {\n fullInvoke = true;\n invokeCreateHooks(vnode, insertedVnodeQueue);\n break\n }\n }\n if (!fullInvoke && data['class']) {\n // ensure collecting deps for deep class bindings for future updates\n traverse(data['class']);\n }\n }\n } else if (elm.data !== vnode.text) {\n elm.data = vnode.text;\n }\n return true\n }\n\n function assertNodeMatch (node, vnode, inVPre) {\n if (isDef(vnode.tag)) {\n return vnode.tag.indexOf('vue-component') === 0 || (\n !isUnknownElement$$1(vnode, inVPre) &&\n vnode.tag.toLowerCase() === (node.tagName && node.tagName.toLowerCase())\n )\n } else {\n return node.nodeType === (vnode.isComment ? 8 : 3)\n }\n }\n\n return function patch (oldVnode, vnode, hydrating, removeOnly) {\n if (isUndef(vnode)) {\n if (isDef(oldVnode)) { invokeDestroyHook(oldVnode); }\n return\n }\n\n var isInitialPatch = false;\n var insertedVnodeQueue = [];\n\n if (isUndef(oldVnode)) {\n // empty mount (likely as component), create new root element\n isInitialPatch = true;\n createElm(vnode, insertedVnodeQueue);\n } else {\n var isRealElement = isDef(oldVnode.nodeType);\n if (!isRealElement && sameVnode(oldVnode, vnode)) {\n // patch existing root node\n patchVnode(oldVnode, vnode, insertedVnodeQueue, null, null, removeOnly);\n } else {\n if (isRealElement) {\n // mounting to a real element\n // check if this is server-rendered content and if we can perform\n // a successful hydration.\n if (oldVnode.nodeType === 1 && oldVnode.hasAttribute(SSR_ATTR)) {\n oldVnode.removeAttribute(SSR_ATTR);\n hydrating = true;\n }\n if (isTrue(hydrating)) {\n if (hydrate(oldVnode, vnode, insertedVnodeQueue)) {\n invokeInsertHook(vnode, insertedVnodeQueue, true);\n return oldVnode\n } else if (process.env.NODE_ENV !== 'production') {\n warn(\n 'The client-side rendered virtual DOM tree is not matching ' +\n 'server-rendered content. This is likely caused by incorrect ' +\n 'HTML markup, for example nesting block-level elements inside ' +\n '<p>, or missing <tbody>. Bailing hydration and performing ' +\n 'full client-side render.'\n );\n }\n }\n // either not server-rendered, or hydration failed.\n // create an empty node and replace it\n oldVnode = emptyNodeAt(oldVnode);\n }\n\n // replacing existing element\n var oldElm = oldVnode.elm;\n var parentElm = nodeOps.parentNode(oldElm);\n\n // create new node\n createElm(\n vnode,\n insertedVnodeQueue,\n // extremely rare edge case: do not insert if old element is in a\n // leaving transition. Only happens when combining transition +\n // keep-alive + HOCs. (#4590)\n oldElm._leaveCb ? null : parentElm,\n nodeOps.nextSibling(oldElm)\n );\n\n // update parent placeholder node element, recursively\n if (isDef(vnode.parent)) {\n var ancestor = vnode.parent;\n var patchable = isPatchable(vnode);\n while (ancestor) {\n for (var i = 0; i < cbs.destroy.length; ++i) {\n cbs.destroy[i](ancestor);\n }\n ancestor.elm = vnode.elm;\n if (patchable) {\n for (var i$1 = 0; i$1 < cbs.create.length; ++i$1) {\n cbs.create[i$1](emptyNode, ancestor);\n }\n // #6513\n // invoke insert hooks that may have been merged by create hooks.\n // e.g. for directives that uses the \"inserted\" hook.\n var insert = ancestor.data.hook.insert;\n if (insert.merged) {\n // start at index 1 to avoid re-invoking component mounted hook\n for (var i$2 = 1; i$2 < insert.fns.length; i$2++) {\n insert.fns[i$2]();\n }\n }\n } else {\n registerRef(ancestor);\n }\n ancestor = ancestor.parent;\n }\n }\n\n // destroy old node\n if (isDef(parentElm)) {\n removeVnodes([oldVnode], 0, 0);\n } else if (isDef(oldVnode.tag)) {\n invokeDestroyHook(oldVnode);\n }\n }\n }\n\n invokeInsertHook(vnode, insertedVnodeQueue, isInitialPatch);\n return vnode.elm\n }\n}\n\n/* */\n\nvar directives = {\n create: updateDirectives,\n update: updateDirectives,\n destroy: function unbindDirectives (vnode) {\n updateDirectives(vnode, emptyNode);\n }\n};\n\nfunction updateDirectives (oldVnode, vnode) {\n if (oldVnode.data.directives || vnode.data.directives) {\n _update(oldVnode, vnode);\n }\n}\n\nfunction _update (oldVnode, vnode) {\n var isCreate = oldVnode === emptyNode;\n var isDestroy = vnode === emptyNode;\n var oldDirs = normalizeDirectives$1(oldVnode.data.directives, oldVnode.context);\n var newDirs = normalizeDirectives$1(vnode.data.directives, vnode.context);\n\n var dirsWithInsert = [];\n var dirsWithPostpatch = [];\n\n var key, oldDir, dir;\n for (key in newDirs) {\n oldDir = oldDirs[key];\n dir = newDirs[key];\n if (!oldDir) {\n // new directive, bind\n callHook$1(dir, 'bind', vnode, oldVnode);\n if (dir.def && dir.def.inserted) {\n dirsWithInsert.push(dir);\n }\n } else {\n // existing directive, update\n dir.oldValue = oldDir.value;\n dir.oldArg = oldDir.arg;\n callHook$1(dir, 'update', vnode, oldVnode);\n if (dir.def && dir.def.componentUpdated) {\n dirsWithPostpatch.push(dir);\n }\n }\n }\n\n if (dirsWithInsert.length) {\n var callInsert = function () {\n for (var i = 0; i < dirsWithInsert.length; i++) {\n callHook$1(dirsWithInsert[i], 'inserted', vnode, oldVnode);\n }\n };\n if (isCreate) {\n mergeVNodeHook(vnode, 'insert', callInsert);\n } else {\n callInsert();\n }\n }\n\n if (dirsWithPostpatch.length) {\n mergeVNodeHook(vnode, 'postpatch', function () {\n for (var i = 0; i < dirsWithPostpatch.length; i++) {\n callHook$1(dirsWithPostpatch[i], 'componentUpdated', vnode, oldVnode);\n }\n });\n }\n\n if (!isCreate) {\n for (key in oldDirs) {\n if (!newDirs[key]) {\n // no longer present, unbind\n callHook$1(oldDirs[key], 'unbind', oldVnode, oldVnode, isDestroy);\n }\n }\n }\n}\n\nvar emptyModifiers = Object.create(null);\n\nfunction normalizeDirectives$1 (\n dirs,\n vm\n) {\n var res = Object.create(null);\n if (!dirs) {\n // $flow-disable-line\n return res\n }\n var i, dir;\n for (i = 0; i < dirs.length; i++) {\n dir = dirs[i];\n if (!dir.modifiers) {\n // $flow-disable-line\n dir.modifiers = emptyModifiers;\n }\n res[getRawDirName(dir)] = dir;\n dir.def = resolveAsset(vm.$options, 'directives', dir.name, true);\n }\n // $flow-disable-line\n return res\n}\n\nfunction getRawDirName (dir) {\n return dir.rawName || ((dir.name) + \".\" + (Object.keys(dir.modifiers || {}).join('.')))\n}\n\nfunction callHook$1 (dir, hook, vnode, oldVnode, isDestroy) {\n var fn = dir.def && dir.def[hook];\n if (fn) {\n try {\n fn(vnode.elm, dir, vnode, oldVnode, isDestroy);\n } catch (e) {\n handleError(e, vnode.context, (\"directive \" + (dir.name) + \" \" + hook + \" hook\"));\n }\n }\n}\n\nvar baseModules = [\n ref,\n directives\n];\n\n/* */\n\nfunction updateAttrs (oldVnode, vnode) {\n var opts = vnode.componentOptions;\n if (isDef(opts) && opts.Ctor.options.inheritAttrs === false) {\n return\n }\n if (isUndef(oldVnode.data.attrs) && isUndef(vnode.data.attrs)) {\n return\n }\n var key, cur, old;\n var elm = vnode.elm;\n var oldAttrs = oldVnode.data.attrs || {};\n var attrs = vnode.data.attrs || {};\n // clone observed objects, as the user probably wants to mutate it\n if (isDef(attrs.__ob__)) {\n attrs = vnode.data.attrs = extend({}, attrs);\n }\n\n for (key in attrs) {\n cur = attrs[key];\n old = oldAttrs[key];\n if (old !== cur) {\n setAttr(elm, key, cur);\n }\n }\n // #4391: in IE9, setting type can reset value for input[type=radio]\n // #6666: IE/Edge forces progress value down to 1 before setting a max\n /* istanbul ignore if */\n if ((isIE || isEdge) && attrs.value !== oldAttrs.value) {\n setAttr(elm, 'value', attrs.value);\n }\n for (key in oldAttrs) {\n if (isUndef(attrs[key])) {\n if (isXlink(key)) {\n elm.removeAttributeNS(xlinkNS, getXlinkProp(key));\n } else if (!isEnumeratedAttr(key)) {\n elm.removeAttribute(key);\n }\n }\n }\n}\n\nfunction setAttr (el, key, value) {\n if (el.tagName.indexOf('-') > -1) {\n baseSetAttr(el, key, value);\n } else if (isBooleanAttr(key)) {\n // set attribute for blank value\n // e.g. <option disabled>Select one</option>\n if (isFalsyAttrValue(value)) {\n el.removeAttribute(key);\n } else {\n // technically allowfullscreen is a boolean attribute for <iframe>,\n // but Flash expects a value of \"true\" when used on <embed> tag\n value = key === 'allowfullscreen' && el.tagName === 'EMBED'\n ? 'true'\n : key;\n el.setAttribute(key, value);\n }\n } else if (isEnumeratedAttr(key)) {\n el.setAttribute(key, convertEnumeratedValue(key, value));\n } else if (isXlink(key)) {\n if (isFalsyAttrValue(value)) {\n el.removeAttributeNS(xlinkNS, getXlinkProp(key));\n } else {\n el.setAttributeNS(xlinkNS, key, value);\n }\n } else {\n baseSetAttr(el, key, value);\n }\n}\n\nfunction baseSetAttr (el, key, value) {\n if (isFalsyAttrValue(value)) {\n el.removeAttribute(key);\n } else {\n // #7138: IE10 & 11 fires input event when setting placeholder on\n // <textarea>... block the first input event and remove the blocker\n // immediately.\n /* istanbul ignore if */\n if (\n isIE && !isIE9 &&\n el.tagName === 'TEXTAREA' &&\n key === 'placeholder' && value !== '' && !el.__ieph\n ) {\n var blocker = function (e) {\n e.stopImmediatePropagation();\n el.removeEventListener('input', blocker);\n };\n el.addEventListener('input', blocker);\n // $flow-disable-line\n el.__ieph = true; /* IE placeholder patched */\n }\n el.setAttribute(key, value);\n }\n}\n\nvar attrs = {\n create: updateAttrs,\n update: updateAttrs\n};\n\n/* */\n\nfunction updateClass (oldVnode, vnode) {\n var el = vnode.elm;\n var data = vnode.data;\n var oldData = oldVnode.data;\n if (\n isUndef(data.staticClass) &&\n isUndef(data.class) && (\n isUndef(oldData) || (\n isUndef(oldData.staticClass) &&\n isUndef(oldData.class)\n )\n )\n ) {\n return\n }\n\n var cls = genClassForVnode(vnode);\n\n // handle transition classes\n var transitionClass = el._transitionClasses;\n if (isDef(transitionClass)) {\n cls = concat(cls, stringifyClass(transitionClass));\n }\n\n // set the class\n if (cls !== el._prevClass) {\n el.setAttribute('class', cls);\n el._prevClass = cls;\n }\n}\n\nvar klass = {\n create: updateClass,\n update: updateClass\n};\n\n/* */\n\n/* */\n\n/* */\n\n/* */\n\n// in some cases, the event used has to be determined at runtime\n// so we used some reserved tokens during compile.\nvar RANGE_TOKEN = '__r';\nvar CHECKBOX_RADIO_TOKEN = '__c';\n\n/* */\n\n// normalize v-model event tokens that can only be determined at runtime.\n// it's important to place the event as the first in the array because\n// the whole point is ensuring the v-model callback gets called before\n// user-attached handlers.\nfunction normalizeEvents (on) {\n /* istanbul ignore if */\n if (isDef(on[RANGE_TOKEN])) {\n // IE input[type=range] only supports `change` event\n var event = isIE ? 'change' : 'input';\n on[event] = [].concat(on[RANGE_TOKEN], on[event] || []);\n delete on[RANGE_TOKEN];\n }\n // This was originally intended to fix #4521 but no longer necessary\n // after 2.5. Keeping it for backwards compat with generated code from < 2.4\n /* istanbul ignore if */\n if (isDef(on[CHECKBOX_RADIO_TOKEN])) {\n on.change = [].concat(on[CHECKBOX_RADIO_TOKEN], on.change || []);\n delete on[CHECKBOX_RADIO_TOKEN];\n }\n}\n\nvar target$1;\n\nfunction createOnceHandler$1 (event, handler, capture) {\n var _target = target$1; // save current target element in closure\n return function onceHandler () {\n var res = handler.apply(null, arguments);\n if (res !== null) {\n remove$2(event, onceHandler, capture, _target);\n }\n }\n}\n\n// #9446: Firefox <= 53 (in particular, ESR 52) has incorrect Event.timeStamp\n// implementation and does not fire microtasks in between event propagation, so\n// safe to exclude.\nvar useMicrotaskFix = isUsingMicroTask && !(isFF && Number(isFF[1]) <= 53);\n\nfunction add$1 (\n name,\n handler,\n capture,\n passive\n) {\n // async edge case #6566: inner click event triggers patch, event handler\n // attached to outer element during patch, and triggered again. This\n // happens because browsers fire microtask ticks between event propagation.\n // the solution is simple: we save the timestamp when a handler is attached,\n // and the handler would only fire if the event passed to it was fired\n // AFTER it was attached.\n if (useMicrotaskFix) {\n var attachedTimestamp = currentFlushTimestamp;\n var original = handler;\n handler = original._wrapper = function (e) {\n if (\n // no bubbling, should always fire.\n // this is just a safety net in case event.timeStamp is unreliable in\n // certain weird environments...\n e.target === e.currentTarget ||\n // event is fired after handler attachment\n e.timeStamp >= attachedTimestamp ||\n // bail for environments that have buggy event.timeStamp implementations\n // #9462 iOS 9 bug: event.timeStamp is 0 after history.pushState\n // #9681 QtWebEngine event.timeStamp is negative value\n e.timeStamp <= 0 ||\n // #9448 bail if event is fired in another document in a multi-page\n // electron/nw.js app, since event.timeStamp will be using a different\n // starting reference\n e.target.ownerDocument !== document\n ) {\n return original.apply(this, arguments)\n }\n };\n }\n target$1.addEventListener(\n name,\n handler,\n supportsPassive\n ? { capture: capture, passive: passive }\n : capture\n );\n}\n\nfunction remove$2 (\n name,\n handler,\n capture,\n _target\n) {\n (_target || target$1).removeEventListener(\n name,\n handler._wrapper || handler,\n capture\n );\n}\n\nfunction updateDOMListeners (oldVnode, vnode) {\n if (isUndef(oldVnode.data.on) && isUndef(vnode.data.on)) {\n return\n }\n var on = vnode.data.on || {};\n var oldOn = oldVnode.data.on || {};\n target$1 = vnode.elm;\n normalizeEvents(on);\n updateListeners(on, oldOn, add$1, remove$2, createOnceHandler$1, vnode.context);\n target$1 = undefined;\n}\n\nvar events = {\n create: updateDOMListeners,\n update: updateDOMListeners\n};\n\n/* */\n\nvar svgContainer;\n\nfunction updateDOMProps (oldVnode, vnode) {\n if (isUndef(oldVnode.data.domProps) && isUndef(vnode.data.domProps)) {\n return\n }\n var key, cur;\n var elm = vnode.elm;\n var oldProps = oldVnode.data.domProps || {};\n var props = vnode.data.domProps || {};\n // clone observed objects, as the user probably wants to mutate it\n if (isDef(props.__ob__)) {\n props = vnode.data.domProps = extend({}, props);\n }\n\n for (key in oldProps) {\n if (!(key in props)) {\n elm[key] = '';\n }\n }\n\n for (key in props) {\n cur = props[key];\n // ignore children if the node has textContent or innerHTML,\n // as these will throw away existing DOM nodes and cause removal errors\n // on subsequent patches (#3360)\n if (key === 'textContent' || key === 'innerHTML') {\n if (vnode.children) { vnode.children.length = 0; }\n if (cur === oldProps[key]) { continue }\n // #6601 work around Chrome version <= 55 bug where single textNode\n // replaced by innerHTML/textContent retains its parentNode property\n if (elm.childNodes.length === 1) {\n elm.removeChild(elm.childNodes[0]);\n }\n }\n\n if (key === 'value' && elm.tagName !== 'PROGRESS') {\n // store value as _value as well since\n // non-string values will be stringified\n elm._value = cur;\n // avoid resetting cursor position when value is the same\n var strCur = isUndef(cur) ? '' : String(cur);\n if (shouldUpdateValue(elm, strCur)) {\n elm.value = strCur;\n }\n } else if (key === 'innerHTML' && isSVG(elm.tagName) && isUndef(elm.innerHTML)) {\n // IE doesn't support innerHTML for SVG elements\n svgContainer = svgContainer || document.createElement('div');\n svgContainer.innerHTML = \"<svg>\" + cur + \"</svg>\";\n var svg = svgContainer.firstChild;\n while (elm.firstChild) {\n elm.removeChild(elm.firstChild);\n }\n while (svg.firstChild) {\n elm.appendChild(svg.firstChild);\n }\n } else if (\n // skip the update if old and new VDOM state is the same.\n // `value` is handled separately because the DOM value may be temporarily\n // out of sync with VDOM state due to focus, composition and modifiers.\n // This #4521 by skipping the unnecessary `checked` update.\n cur !== oldProps[key]\n ) {\n // some property updates can throw\n // e.g. `value` on <progress> w/ non-finite value\n try {\n elm[key] = cur;\n } catch (e) {}\n }\n }\n}\n\n// check platforms/web/util/attrs.js acceptValue\n\n\nfunction shouldUpdateValue (elm, checkVal) {\n return (!elm.composing && (\n elm.tagName === 'OPTION' ||\n isNotInFocusAndDirty(elm, checkVal) ||\n isDirtyWithModifiers(elm, checkVal)\n ))\n}\n\nfunction isNotInFocusAndDirty (elm, checkVal) {\n // return true when textbox (.number and .trim) loses focus and its value is\n // not equal to the updated value\n var notInFocus = true;\n // #6157\n // work around IE bug when accessing document.activeElement in an iframe\n try { notInFocus = document.activeElement !== elm; } catch (e) {}\n return notInFocus && elm.value !== checkVal\n}\n\nfunction isDirtyWithModifiers (elm, newVal) {\n var value = elm.value;\n var modifiers = elm._vModifiers; // injected by v-model runtime\n if (isDef(modifiers)) {\n if (modifiers.number) {\n return toNumber(value) !== toNumber(newVal)\n }\n if (modifiers.trim) {\n return value.trim() !== newVal.trim()\n }\n }\n return value !== newVal\n}\n\nvar domProps = {\n create: updateDOMProps,\n update: updateDOMProps\n};\n\n/* */\n\nvar parseStyleText = cached(function (cssText) {\n var res = {};\n var listDelimiter = /;(?![^(]*\\))/g;\n var propertyDelimiter = /:(.+)/;\n cssText.split(listDelimiter).forEach(function (item) {\n if (item) {\n var tmp = item.split(propertyDelimiter);\n tmp.length > 1 && (res[tmp[0].trim()] = tmp[1].trim());\n }\n });\n return res\n});\n\n// merge static and dynamic style data on the same vnode\nfunction normalizeStyleData (data) {\n var style = normalizeStyleBinding(data.style);\n // static style is pre-processed into an object during compilation\n // and is always a fresh object, so it's safe to merge into it\n return data.staticStyle\n ? extend(data.staticStyle, style)\n : style\n}\n\n// normalize possible array / string values into Object\nfunction normalizeStyleBinding (bindingStyle) {\n if (Array.isArray(bindingStyle)) {\n return toObject(bindingStyle)\n }\n if (typeof bindingStyle === 'string') {\n return parseStyleText(bindingStyle)\n }\n return bindingStyle\n}\n\n/**\n * parent component style should be after child's\n * so that parent component's style could override it\n */\nfunction getStyle (vnode, checkChild) {\n var res = {};\n var styleData;\n\n if (checkChild) {\n var childNode = vnode;\n while (childNode.componentInstance) {\n childNode = childNode.componentInstance._vnode;\n if (\n childNode && childNode.data &&\n (styleData = normalizeStyleData(childNode.data))\n ) {\n extend(res, styleData);\n }\n }\n }\n\n if ((styleData = normalizeStyleData(vnode.data))) {\n extend(res, styleData);\n }\n\n var parentNode = vnode;\n while ((parentNode = parentNode.parent)) {\n if (parentNode.data && (styleData = normalizeStyleData(parentNode.data))) {\n extend(res, styleData);\n }\n }\n return res\n}\n\n/* */\n\nvar cssVarRE = /^--/;\nvar importantRE = /\\s*!important$/;\nvar setProp = function (el, name, val) {\n /* istanbul ignore if */\n if (cssVarRE.test(name)) {\n el.style.setProperty(name, val);\n } else if (importantRE.test(val)) {\n el.style.setProperty(hyphenate(name), val.replace(importantRE, ''), 'important');\n } else {\n var normalizedName = normalize(name);\n if (Array.isArray(val)) {\n // Support values array created by autoprefixer, e.g.\n // {display: [\"-webkit-box\", \"-ms-flexbox\", \"flex\"]}\n // Set them one by one, and the browser will only set those it can recognize\n for (var i = 0, len = val.length; i < len; i++) {\n el.style[normalizedName] = val[i];\n }\n } else {\n el.style[normalizedName] = val;\n }\n }\n};\n\nvar vendorNames = ['Webkit', 'Moz', 'ms'];\n\nvar emptyStyle;\nvar normalize = cached(function (prop) {\n emptyStyle = emptyStyle || document.createElement('div').style;\n prop = camelize(prop);\n if (prop !== 'filter' && (prop in emptyStyle)) {\n return prop\n }\n var capName = prop.charAt(0).toUpperCase() + prop.slice(1);\n for (var i = 0; i < vendorNames.length; i++) {\n var name = vendorNames[i] + capName;\n if (name in emptyStyle) {\n return name\n }\n }\n});\n\nfunction updateStyle (oldVnode, vnode) {\n var data = vnode.data;\n var oldData = oldVnode.data;\n\n if (isUndef(data.staticStyle) && isUndef(data.style) &&\n isUndef(oldData.staticStyle) && isUndef(oldData.style)\n ) {\n return\n }\n\n var cur, name;\n var el = vnode.elm;\n var oldStaticStyle = oldData.staticStyle;\n var oldStyleBinding = oldData.normalizedStyle || oldData.style || {};\n\n // if static style exists, stylebinding already merged into it when doing normalizeStyleData\n var oldStyle = oldStaticStyle || oldStyleBinding;\n\n var style = normalizeStyleBinding(vnode.data.style) || {};\n\n // store normalized style under a different key for next diff\n // make sure to clone it if it's reactive, since the user likely wants\n // to mutate it.\n vnode.data.normalizedStyle = isDef(style.__ob__)\n ? extend({}, style)\n : style;\n\n var newStyle = getStyle(vnode, true);\n\n for (name in oldStyle) {\n if (isUndef(newStyle[name])) {\n setProp(el, name, '');\n }\n }\n for (name in newStyle) {\n cur = newStyle[name];\n if (cur !== oldStyle[name]) {\n // ie9 setting to null has no effect, must use empty string\n setProp(el, name, cur == null ? '' : cur);\n }\n }\n}\n\nvar style = {\n create: updateStyle,\n update: updateStyle\n};\n\n/* */\n\nvar whitespaceRE = /\\s+/;\n\n/**\n * Add class with compatibility for SVG since classList is not supported on\n * SVG elements in IE\n */\nfunction addClass (el, cls) {\n /* istanbul ignore if */\n if (!cls || !(cls = cls.trim())) {\n return\n }\n\n /* istanbul ignore else */\n if (el.classList) {\n if (cls.indexOf(' ') > -1) {\n cls.split(whitespaceRE).forEach(function (c) { return el.classList.add(c); });\n } else {\n el.classList.add(cls);\n }\n } else {\n var cur = \" \" + (el.getAttribute('class') || '') + \" \";\n if (cur.indexOf(' ' + cls + ' ') < 0) {\n el.setAttribute('class', (cur + cls).trim());\n }\n }\n}\n\n/**\n * Remove class with compatibility for SVG since classList is not supported on\n * SVG elements in IE\n */\nfunction removeClass (el, cls) {\n /* istanbul ignore if */\n if (!cls || !(cls = cls.trim())) {\n return\n }\n\n /* istanbul ignore else */\n if (el.classList) {\n if (cls.indexOf(' ') > -1) {\n cls.split(whitespaceRE).forEach(function (c) { return el.classList.remove(c); });\n } else {\n el.classList.remove(cls);\n }\n if (!el.classList.length) {\n el.removeAttribute('class');\n }\n } else {\n var cur = \" \" + (el.getAttribute('class') || '') + \" \";\n var tar = ' ' + cls + ' ';\n while (cur.indexOf(tar) >= 0) {\n cur = cur.replace(tar, ' ');\n }\n cur = cur.trim();\n if (cur) {\n el.setAttribute('class', cur);\n } else {\n el.removeAttribute('class');\n }\n }\n}\n\n/* */\n\nfunction resolveTransition (def$$1) {\n if (!def$$1) {\n return\n }\n /* istanbul ignore else */\n if (typeof def$$1 === 'object') {\n var res = {};\n if (def$$1.css !== false) {\n extend(res, autoCssTransition(def$$1.name || 'v'));\n }\n extend(res, def$$1);\n return res\n } else if (typeof def$$1 === 'string') {\n return autoCssTransition(def$$1)\n }\n}\n\nvar autoCssTransition = cached(function (name) {\n return {\n enterClass: (name + \"-enter\"),\n enterToClass: (name + \"-enter-to\"),\n enterActiveClass: (name + \"-enter-active\"),\n leaveClass: (name + \"-leave\"),\n leaveToClass: (name + \"-leave-to\"),\n leaveActiveClass: (name + \"-leave-active\")\n }\n});\n\nvar hasTransition = inBrowser && !isIE9;\nvar TRANSITION = 'transition';\nvar ANIMATION = 'animation';\n\n// Transition property/event sniffing\nvar transitionProp = 'transition';\nvar transitionEndEvent = 'transitionend';\nvar animationProp = 'animation';\nvar animationEndEvent = 'animationend';\nif (hasTransition) {\n /* istanbul ignore if */\n if (window.ontransitionend === undefined &&\n window.onwebkittransitionend !== undefined\n ) {\n transitionProp = 'WebkitTransition';\n transitionEndEvent = 'webkitTransitionEnd';\n }\n if (window.onanimationend === undefined &&\n window.onwebkitanimationend !== undefined\n ) {\n animationProp = 'WebkitAnimation';\n animationEndEvent = 'webkitAnimationEnd';\n }\n}\n\n// binding to window is necessary to make hot reload work in IE in strict mode\nvar raf = inBrowser\n ? window.requestAnimationFrame\n ? window.requestAnimationFrame.bind(window)\n : setTimeout\n : /* istanbul ignore next */ function (fn) { return fn(); };\n\nfunction nextFrame (fn) {\n raf(function () {\n raf(fn);\n });\n}\n\nfunction addTransitionClass (el, cls) {\n var transitionClasses = el._transitionClasses || (el._transitionClasses = []);\n if (transitionClasses.indexOf(cls) < 0) {\n transitionClasses.push(cls);\n addClass(el, cls);\n }\n}\n\nfunction removeTransitionClass (el, cls) {\n if (el._transitionClasses) {\n remove(el._transitionClasses, cls);\n }\n removeClass(el, cls);\n}\n\nfunction whenTransitionEnds (\n el,\n expectedType,\n cb\n) {\n var ref = getTransitionInfo(el, expectedType);\n var type = ref.type;\n var timeout = ref.timeout;\n var propCount = ref.propCount;\n if (!type) { return cb() }\n var event = type === TRANSITION ? transitionEndEvent : animationEndEvent;\n var ended = 0;\n var end = function () {\n el.removeEventListener(event, onEnd);\n cb();\n };\n var onEnd = function (e) {\n if (e.target === el) {\n if (++ended >= propCount) {\n end();\n }\n }\n };\n setTimeout(function () {\n if (ended < propCount) {\n end();\n }\n }, timeout + 1);\n el.addEventListener(event, onEnd);\n}\n\nvar transformRE = /\\b(transform|all)(,|$)/;\n\nfunction getTransitionInfo (el, expectedType) {\n var styles = window.getComputedStyle(el);\n // JSDOM may return undefined for transition properties\n var transitionDelays = (styles[transitionProp + 'Delay'] || '').split(', ');\n var transitionDurations = (styles[transitionProp + 'Duration'] || '').split(', ');\n var transitionTimeout = getTimeout(transitionDelays, transitionDurations);\n var animationDelays = (styles[animationProp + 'Delay'] || '').split(', ');\n var animationDurations = (styles[animationProp + 'Duration'] || '').split(', ');\n var animationTimeout = getTimeout(animationDelays, animationDurations);\n\n var type;\n var timeout = 0;\n var propCount = 0;\n /* istanbul ignore if */\n if (expectedType === TRANSITION) {\n if (transitionTimeout > 0) {\n type = TRANSITION;\n timeout = transitionTimeout;\n propCount = transitionDurations.length;\n }\n } else if (expectedType === ANIMATION) {\n if (animationTimeout > 0) {\n type = ANIMATION;\n timeout = animationTimeout;\n propCount = animationDurations.length;\n }\n } else {\n timeout = Math.max(transitionTimeout, animationTimeout);\n type = timeout > 0\n ? transitionTimeout > animationTimeout\n ? TRANSITION\n : ANIMATION\n : null;\n propCount = type\n ? type === TRANSITION\n ? transitionDurations.length\n : animationDurations.length\n : 0;\n }\n var hasTransform =\n type === TRANSITION &&\n transformRE.test(styles[transitionProp + 'Property']);\n return {\n type: type,\n timeout: timeout,\n propCount: propCount,\n hasTransform: hasTransform\n }\n}\n\nfunction getTimeout (delays, durations) {\n /* istanbul ignore next */\n while (delays.length < durations.length) {\n delays = delays.concat(delays);\n }\n\n return Math.max.apply(null, durations.map(function (d, i) {\n return toMs(d) + toMs(delays[i])\n }))\n}\n\n// Old versions of Chromium (below 61.0.3163.100) formats floating pointer numbers\n// in a locale-dependent way, using a comma instead of a dot.\n// If comma is not replaced with a dot, the input will be rounded down (i.e. acting\n// as a floor function) causing unexpected behaviors\nfunction toMs (s) {\n return Number(s.slice(0, -1).replace(',', '.')) * 1000\n}\n\n/* */\n\nfunction enter (vnode, toggleDisplay) {\n var el = vnode.elm;\n\n // call leave callback now\n if (isDef(el._leaveCb)) {\n el._leaveCb.cancelled = true;\n el._leaveCb();\n }\n\n var data = resolveTransition(vnode.data.transition);\n if (isUndef(data)) {\n return\n }\n\n /* istanbul ignore if */\n if (isDef(el._enterCb) || el.nodeType !== 1) {\n return\n }\n\n var css = data.css;\n var type = data.type;\n var enterClass = data.enterClass;\n var enterToClass = data.enterToClass;\n var enterActiveClass = data.enterActiveClass;\n var appearClass = data.appearClass;\n var appearToClass = data.appearToClass;\n var appearActiveClass = data.appearActiveClass;\n var beforeEnter = data.beforeEnter;\n var enter = data.enter;\n var afterEnter = data.afterEnter;\n var enterCancelled = data.enterCancelled;\n var beforeAppear = data.beforeAppear;\n var appear = data.appear;\n var afterAppear = data.afterAppear;\n var appearCancelled = data.appearCancelled;\n var duration = data.duration;\n\n // activeInstance will always be the <transition> component managing this\n // transition. One edge case to check is when the <transition> is placed\n // as the root node of a child component. In that case we need to check\n // <transition>'s parent for appear check.\n var context = activeInstance;\n var transitionNode = activeInstance.$vnode;\n while (transitionNode && transitionNode.parent) {\n context = transitionNode.context;\n transitionNode = transitionNode.parent;\n }\n\n var isAppear = !context._isMounted || !vnode.isRootInsert;\n\n if (isAppear && !appear && appear !== '') {\n return\n }\n\n var startClass = isAppear && appearClass\n ? appearClass\n : enterClass;\n var activeClass = isAppear && appearActiveClass\n ? appearActiveClass\n : enterActiveClass;\n var toClass = isAppear && appearToClass\n ? appearToClass\n : enterToClass;\n\n var beforeEnterHook = isAppear\n ? (beforeAppear || beforeEnter)\n : beforeEnter;\n var enterHook = isAppear\n ? (typeof appear === 'function' ? appear : enter)\n : enter;\n var afterEnterHook = isAppear\n ? (afterAppear || afterEnter)\n : afterEnter;\n var enterCancelledHook = isAppear\n ? (appearCancelled || enterCancelled)\n : enterCancelled;\n\n var explicitEnterDuration = toNumber(\n isObject(duration)\n ? duration.enter\n : duration\n );\n\n if (process.env.NODE_ENV !== 'production' && explicitEnterDuration != null) {\n checkDuration(explicitEnterDuration, 'enter', vnode);\n }\n\n var expectsCSS = css !== false && !isIE9;\n var userWantsControl = getHookArgumentsLength(enterHook);\n\n var cb = el._enterCb = once(function () {\n if (expectsCSS) {\n removeTransitionClass(el, toClass);\n removeTransitionClass(el, activeClass);\n }\n if (cb.cancelled) {\n if (expectsCSS) {\n removeTransitionClass(el, startClass);\n }\n enterCancelledHook && enterCancelledHook(el);\n } else {\n afterEnterHook && afterEnterHook(el);\n }\n el._enterCb = null;\n });\n\n if (!vnode.data.show) {\n // remove pending leave element on enter by injecting an insert hook\n mergeVNodeHook(vnode, 'insert', function () {\n var parent = el.parentNode;\n var pendingNode = parent && parent._pending && parent._pending[vnode.key];\n if (pendingNode &&\n pendingNode.tag === vnode.tag &&\n pendingNode.elm._leaveCb\n ) {\n pendingNode.elm._leaveCb();\n }\n enterHook && enterHook(el, cb);\n });\n }\n\n // start enter transition\n beforeEnterHook && beforeEnterHook(el);\n if (expectsCSS) {\n addTransitionClass(el, startClass);\n addTransitionClass(el, activeClass);\n nextFrame(function () {\n removeTransitionClass(el, startClass);\n if (!cb.cancelled) {\n addTransitionClass(el, toClass);\n if (!userWantsControl) {\n if (isValidDuration(explicitEnterDuration)) {\n setTimeout(cb, explicitEnterDuration);\n } else {\n whenTransitionEnds(el, type, cb);\n }\n }\n }\n });\n }\n\n if (vnode.data.show) {\n toggleDisplay && toggleDisplay();\n enterHook && enterHook(el, cb);\n }\n\n if (!expectsCSS && !userWantsControl) {\n cb();\n }\n}\n\nfunction leave (vnode, rm) {\n var el = vnode.elm;\n\n // call enter callback now\n if (isDef(el._enterCb)) {\n el._enterCb.cancelled = true;\n el._enterCb();\n }\n\n var data = resolveTransition(vnode.data.transition);\n if (isUndef(data) || el.nodeType !== 1) {\n return rm()\n }\n\n /* istanbul ignore if */\n if (isDef(el._leaveCb)) {\n return\n }\n\n var css = data.css;\n var type = data.type;\n var leaveClass = data.leaveClass;\n var leaveToClass = data.leaveToClass;\n var leaveActiveClass = data.leaveActiveClass;\n var beforeLeave = data.beforeLeave;\n var leave = data.leave;\n var afterLeave = data.afterLeave;\n var leaveCancelled = data.leaveCancelled;\n var delayLeave = data.delayLeave;\n var duration = data.duration;\n\n var expectsCSS = css !== false && !isIE9;\n var userWantsControl = getHookArgumentsLength(leave);\n\n var explicitLeaveDuration = toNumber(\n isObject(duration)\n ? duration.leave\n : duration\n );\n\n if (process.env.NODE_ENV !== 'production' && isDef(explicitLeaveDuration)) {\n checkDuration(explicitLeaveDuration, 'leave', vnode);\n }\n\n var cb = el._leaveCb = once(function () {\n if (el.parentNode && el.parentNode._pending) {\n el.parentNode._pending[vnode.key] = null;\n }\n if (expectsCSS) {\n removeTransitionClass(el, leaveToClass);\n removeTransitionClass(el, leaveActiveClass);\n }\n if (cb.cancelled) {\n if (expectsCSS) {\n removeTransitionClass(el, leaveClass);\n }\n leaveCancelled && leaveCancelled(el);\n } else {\n rm();\n afterLeave && afterLeave(el);\n }\n el._leaveCb = null;\n });\n\n if (delayLeave) {\n delayLeave(performLeave);\n } else {\n performLeave();\n }\n\n function performLeave () {\n // the delayed leave may have already been cancelled\n if (cb.cancelled) {\n return\n }\n // record leaving element\n if (!vnode.data.show && el.parentNode) {\n (el.parentNode._pending || (el.parentNode._pending = {}))[(vnode.key)] = vnode;\n }\n beforeLeave && beforeLeave(el);\n if (expectsCSS) {\n addTransitionClass(el, leaveClass);\n addTransitionClass(el, leaveActiveClass);\n nextFrame(function () {\n removeTransitionClass(el, leaveClass);\n if (!cb.cancelled) {\n addTransitionClass(el, leaveToClass);\n if (!userWantsControl) {\n if (isValidDuration(explicitLeaveDuration)) {\n setTimeout(cb, explicitLeaveDuration);\n } else {\n whenTransitionEnds(el, type, cb);\n }\n }\n }\n });\n }\n leave && leave(el, cb);\n if (!expectsCSS && !userWantsControl) {\n cb();\n }\n }\n}\n\n// only used in dev mode\nfunction checkDuration (val, name, vnode) {\n if (typeof val !== 'number') {\n warn(\n \"<transition> explicit \" + name + \" duration is not a valid number - \" +\n \"got \" + (JSON.stringify(val)) + \".\",\n vnode.context\n );\n } else if (isNaN(val)) {\n warn(\n \"<transition> explicit \" + name + \" duration is NaN - \" +\n 'the duration expression might be incorrect.',\n vnode.context\n );\n }\n}\n\nfunction isValidDuration (val) {\n return typeof val === 'number' && !isNaN(val)\n}\n\n/**\n * Normalize a transition hook's argument length. The hook may be:\n * - a merged hook (invoker) with the original in .fns\n * - a wrapped component method (check ._length)\n * - a plain function (.length)\n */\nfunction getHookArgumentsLength (fn) {\n if (isUndef(fn)) {\n return false\n }\n var invokerFns = fn.fns;\n if (isDef(invokerFns)) {\n // invoker\n return getHookArgumentsLength(\n Array.isArray(invokerFns)\n ? invokerFns[0]\n : invokerFns\n )\n } else {\n return (fn._length || fn.length) > 1\n }\n}\n\nfunction _enter (_, vnode) {\n if (vnode.data.show !== true) {\n enter(vnode);\n }\n}\n\nvar transition = inBrowser ? {\n create: _enter,\n activate: _enter,\n remove: function remove$$1 (vnode, rm) {\n /* istanbul ignore else */\n if (vnode.data.show !== true) {\n leave(vnode, rm);\n } else {\n rm();\n }\n }\n} : {};\n\nvar platformModules = [\n attrs,\n klass,\n events,\n domProps,\n style,\n transition\n];\n\n/* */\n\n// the directive module should be applied last, after all\n// built-in modules have been applied.\nvar modules = platformModules.concat(baseModules);\n\nvar patch = createPatchFunction({ nodeOps: nodeOps, modules: modules });\n\n/**\n * Not type checking this file because flow doesn't like attaching\n * properties to Elements.\n */\n\n/* istanbul ignore if */\nif (isIE9) {\n // http://www.matts411.com/post/internet-explorer-9-oninput/\n document.addEventListener('selectionchange', function () {\n var el = document.activeElement;\n if (el && el.vmodel) {\n trigger(el, 'input');\n }\n });\n}\n\nvar directive = {\n inserted: function inserted (el, binding, vnode, oldVnode) {\n if (vnode.tag === 'select') {\n // #6903\n if (oldVnode.elm && !oldVnode.elm._vOptions) {\n mergeVNodeHook(vnode, 'postpatch', function () {\n directive.componentUpdated(el, binding, vnode);\n });\n } else {\n setSelected(el, binding, vnode.context);\n }\n el._vOptions = [].map.call(el.options, getValue);\n } else if (vnode.tag === 'textarea' || isTextInputType(el.type)) {\n el._vModifiers = binding.modifiers;\n if (!binding.modifiers.lazy) {\n el.addEventListener('compositionstart', onCompositionStart);\n el.addEventListener('compositionend', onCompositionEnd);\n // Safari < 10.2 & UIWebView doesn't fire compositionend when\n // switching focus before confirming composition choice\n // this also fixes the issue where some browsers e.g. iOS Chrome\n // fires \"change\" instead of \"input\" on autocomplete.\n el.addEventListener('change', onCompositionEnd);\n /* istanbul ignore if */\n if (isIE9) {\n el.vmodel = true;\n }\n }\n }\n },\n\n componentUpdated: function componentUpdated (el, binding, vnode) {\n if (vnode.tag === 'select') {\n setSelected(el, binding, vnode.context);\n // in case the options rendered by v-for have changed,\n // it's possible that the value is out-of-sync with the rendered options.\n // detect such cases and filter out values that no longer has a matching\n // option in the DOM.\n var prevOptions = el._vOptions;\n var curOptions = el._vOptions = [].map.call(el.options, getValue);\n if (curOptions.some(function (o, i) { return !looseEqual(o, prevOptions[i]); })) {\n // trigger change event if\n // no matching option found for at least one value\n var needReset = el.multiple\n ? binding.value.some(function (v) { return hasNoMatchingOption(v, curOptions); })\n : binding.value !== binding.oldValue && hasNoMatchingOption(binding.value, curOptions);\n if (needReset) {\n trigger(el, 'change');\n }\n }\n }\n }\n};\n\nfunction setSelected (el, binding, vm) {\n actuallySetSelected(el, binding, vm);\n /* istanbul ignore if */\n if (isIE || isEdge) {\n setTimeout(function () {\n actuallySetSelected(el, binding, vm);\n }, 0);\n }\n}\n\nfunction actuallySetSelected (el, binding, vm) {\n var value = binding.value;\n var isMultiple = el.multiple;\n if (isMultiple && !Array.isArray(value)) {\n process.env.NODE_ENV !== 'production' && warn(\n \"<select multiple v-model=\\\"\" + (binding.expression) + \"\\\"> \" +\n \"expects an Array value for its binding, but got \" + (Object.prototype.toString.call(value).slice(8, -1)),\n vm\n );\n return\n }\n var selected, option;\n for (var i = 0, l = el.options.length; i < l; i++) {\n option = el.options[i];\n if (isMultiple) {\n selected = looseIndexOf(value, getValue(option)) > -1;\n if (option.selected !== selected) {\n option.selected = selected;\n }\n } else {\n if (looseEqual(getValue(option), value)) {\n if (el.selectedIndex !== i) {\n el.selectedIndex = i;\n }\n return\n }\n }\n }\n if (!isMultiple) {\n el.selectedIndex = -1;\n }\n}\n\nfunction hasNoMatchingOption (value, options) {\n return options.every(function (o) { return !looseEqual(o, value); })\n}\n\nfunction getValue (option) {\n return '_value' in option\n ? option._value\n : option.value\n}\n\nfunction onCompositionStart (e) {\n e.target.composing = true;\n}\n\nfunction onCompositionEnd (e) {\n // prevent triggering an input event for no reason\n if (!e.target.composing) { return }\n e.target.composing = false;\n trigger(e.target, 'input');\n}\n\nfunction trigger (el, type) {\n var e = document.createEvent('HTMLEvents');\n e.initEvent(type, true, true);\n el.dispatchEvent(e);\n}\n\n/* */\n\n// recursively search for possible transition defined inside the component root\nfunction locateNode (vnode) {\n return vnode.componentInstance && (!vnode.data || !vnode.data.transition)\n ? locateNode(vnode.componentInstance._vnode)\n : vnode\n}\n\nvar show = {\n bind: function bind (el, ref, vnode) {\n var value = ref.value;\n\n vnode = locateNode(vnode);\n var transition$$1 = vnode.data && vnode.data.transition;\n var originalDisplay = el.__vOriginalDisplay =\n el.style.display === 'none' ? '' : el.style.display;\n if (value && transition$$1) {\n vnode.data.show = true;\n enter(vnode, function () {\n el.style.display = originalDisplay;\n });\n } else {\n el.style.display = value ? originalDisplay : 'none';\n }\n },\n\n update: function update (el, ref, vnode) {\n var value = ref.value;\n var oldValue = ref.oldValue;\n\n /* istanbul ignore if */\n if (!value === !oldValue) { return }\n vnode = locateNode(vnode);\n var transition$$1 = vnode.data && vnode.data.transition;\n if (transition$$1) {\n vnode.data.show = true;\n if (value) {\n enter(vnode, function () {\n el.style.display = el.__vOriginalDisplay;\n });\n } else {\n leave(vnode, function () {\n el.style.display = 'none';\n });\n }\n } else {\n el.style.display = value ? el.__vOriginalDisplay : 'none';\n }\n },\n\n unbind: function unbind (\n el,\n binding,\n vnode,\n oldVnode,\n isDestroy\n ) {\n if (!isDestroy) {\n el.style.display = el.__vOriginalDisplay;\n }\n }\n};\n\nvar platformDirectives = {\n model: directive,\n show: show\n};\n\n/* */\n\nvar transitionProps = {\n name: String,\n appear: Boolean,\n css: Boolean,\n mode: String,\n type: String,\n enterClass: String,\n leaveClass: String,\n enterToClass: String,\n leaveToClass: String,\n enterActiveClass: String,\n leaveActiveClass: String,\n appearClass: String,\n appearActiveClass: String,\n appearToClass: String,\n duration: [Number, String, Object]\n};\n\n// in case the child is also an abstract component, e.g. <keep-alive>\n// we want to recursively retrieve the real component to be rendered\nfunction getRealChild (vnode) {\n var compOptions = vnode && vnode.componentOptions;\n if (compOptions && compOptions.Ctor.options.abstract) {\n return getRealChild(getFirstComponentChild(compOptions.children))\n } else {\n return vnode\n }\n}\n\nfunction extractTransitionData (comp) {\n var data = {};\n var options = comp.$options;\n // props\n for (var key in options.propsData) {\n data[key] = comp[key];\n }\n // events.\n // extract listeners and pass them directly to the transition methods\n var listeners = options._parentListeners;\n for (var key$1 in listeners) {\n data[camelize(key$1)] = listeners[key$1];\n }\n return data\n}\n\nfunction placeholder (h, rawChild) {\n if (/\\d-keep-alive$/.test(rawChild.tag)) {\n return h('keep-alive', {\n props: rawChild.componentOptions.propsData\n })\n }\n}\n\nfunction hasParentTransition (vnode) {\n while ((vnode = vnode.parent)) {\n if (vnode.data.transition) {\n return true\n }\n }\n}\n\nfunction isSameChild (child, oldChild) {\n return oldChild.key === child.key && oldChild.tag === child.tag\n}\n\nvar isNotTextNode = function (c) { return c.tag || isAsyncPlaceholder(c); };\n\nvar isVShowDirective = function (d) { return d.name === 'show'; };\n\nvar Transition = {\n name: 'transition',\n props: transitionProps,\n abstract: true,\n\n render: function render (h) {\n var this$1 = this;\n\n var children = this.$slots.default;\n if (!children) {\n return\n }\n\n // filter out text nodes (possible whitespaces)\n children = children.filter(isNotTextNode);\n /* istanbul ignore if */\n if (!children.length) {\n return\n }\n\n // warn multiple elements\n if (process.env.NODE_ENV !== 'production' && children.length > 1) {\n warn(\n '<transition> can only be used on a single element. Use ' +\n '<transition-group> for lists.',\n this.$parent\n );\n }\n\n var mode = this.mode;\n\n // warn invalid mode\n if (process.env.NODE_ENV !== 'production' &&\n mode && mode !== 'in-out' && mode !== 'out-in'\n ) {\n warn(\n 'invalid <transition> mode: ' + mode,\n this.$parent\n );\n }\n\n var rawChild = children[0];\n\n // if this is a component root node and the component's\n // parent container node also has transition, skip.\n if (hasParentTransition(this.$vnode)) {\n return rawChild\n }\n\n // apply transition data to child\n // use getRealChild() to ignore abstract components e.g. keep-alive\n var child = getRealChild(rawChild);\n /* istanbul ignore if */\n if (!child) {\n return rawChild\n }\n\n if (this._leaving) {\n return placeholder(h, rawChild)\n }\n\n // ensure a key that is unique to the vnode type and to this transition\n // component instance. This key will be used to remove pending leaving nodes\n // during entering.\n var id = \"__transition-\" + (this._uid) + \"-\";\n child.key = child.key == null\n ? child.isComment\n ? id + 'comment'\n : id + child.tag\n : isPrimitive(child.key)\n ? (String(child.key).indexOf(id) === 0 ? child.key : id + child.key)\n : child.key;\n\n var data = (child.data || (child.data = {})).transition = extractTransitionData(this);\n var oldRawChild = this._vnode;\n var oldChild = getRealChild(oldRawChild);\n\n // mark v-show\n // so that the transition module can hand over the control to the directive\n if (child.data.directives && child.data.directives.some(isVShowDirective)) {\n child.data.show = true;\n }\n\n if (\n oldChild &&\n oldChild.data &&\n !isSameChild(child, oldChild) &&\n !isAsyncPlaceholder(oldChild) &&\n // #6687 component root is a comment node\n !(oldChild.componentInstance && oldChild.componentInstance._vnode.isComment)\n ) {\n // replace old child transition data with fresh one\n // important for dynamic transitions!\n var oldData = oldChild.data.transition = extend({}, data);\n // handle transition mode\n if (mode === 'out-in') {\n // return placeholder node and queue update when leave finishes\n this._leaving = true;\n mergeVNodeHook(oldData, 'afterLeave', function () {\n this$1._leaving = false;\n this$1.$forceUpdate();\n });\n return placeholder(h, rawChild)\n } else if (mode === 'in-out') {\n if (isAsyncPlaceholder(child)) {\n return oldRawChild\n }\n var delayedLeave;\n var performLeave = function () { delayedLeave(); };\n mergeVNodeHook(data, 'afterEnter', performLeave);\n mergeVNodeHook(data, 'enterCancelled', performLeave);\n mergeVNodeHook(oldData, 'delayLeave', function (leave) { delayedLeave = leave; });\n }\n }\n\n return rawChild\n }\n};\n\n/* */\n\nvar props = extend({\n tag: String,\n moveClass: String\n}, transitionProps);\n\ndelete props.mode;\n\nvar TransitionGroup = {\n props: props,\n\n beforeMount: function beforeMount () {\n var this$1 = this;\n\n var update = this._update;\n this._update = function (vnode, hydrating) {\n var restoreActiveInstance = setActiveInstance(this$1);\n // force removing pass\n this$1.__patch__(\n this$1._vnode,\n this$1.kept,\n false, // hydrating\n true // removeOnly (!important, avoids unnecessary moves)\n );\n this$1._vnode = this$1.kept;\n restoreActiveInstance();\n update.call(this$1, vnode, hydrating);\n };\n },\n\n render: function render (h) {\n var tag = this.tag || this.$vnode.data.tag || 'span';\n var map = Object.create(null);\n var prevChildren = this.prevChildren = this.children;\n var rawChildren = this.$slots.default || [];\n var children = this.children = [];\n var transitionData = extractTransitionData(this);\n\n for (var i = 0; i < rawChildren.length; i++) {\n var c = rawChildren[i];\n if (c.tag) {\n if (c.key != null && String(c.key).indexOf('__vlist') !== 0) {\n children.push(c);\n map[c.key] = c\n ;(c.data || (c.data = {})).transition = transitionData;\n } else if (process.env.NODE_ENV !== 'production') {\n var opts = c.componentOptions;\n var name = opts ? (opts.Ctor.options.name || opts.tag || '') : c.tag;\n warn((\"<transition-group> children must be keyed: <\" + name + \">\"));\n }\n }\n }\n\n if (prevChildren) {\n var kept = [];\n var removed = [];\n for (var i$1 = 0; i$1 < prevChildren.length; i$1++) {\n var c$1 = prevChildren[i$1];\n c$1.data.transition = transitionData;\n c$1.data.pos = c$1.elm.getBoundingClientRect();\n if (map[c$1.key]) {\n kept.push(c$1);\n } else {\n removed.push(c$1);\n }\n }\n this.kept = h(tag, null, kept);\n this.removed = removed;\n }\n\n return h(tag, null, children)\n },\n\n updated: function updated () {\n var children = this.prevChildren;\n var moveClass = this.moveClass || ((this.name || 'v') + '-move');\n if (!children.length || !this.hasMove(children[0].elm, moveClass)) {\n return\n }\n\n // we divide the work into three loops to avoid mixing DOM reads and writes\n // in each iteration - which helps prevent layout thrashing.\n children.forEach(callPendingCbs);\n children.forEach(recordPosition);\n children.forEach(applyTranslation);\n\n // force reflow to put everything in position\n // assign to this to avoid being removed in tree-shaking\n // $flow-disable-line\n this._reflow = document.body.offsetHeight;\n\n children.forEach(function (c) {\n if (c.data.moved) {\n var el = c.elm;\n var s = el.style;\n addTransitionClass(el, moveClass);\n s.transform = s.WebkitTransform = s.transitionDuration = '';\n el.addEventListener(transitionEndEvent, el._moveCb = function cb (e) {\n if (e && e.target !== el) {\n return\n }\n if (!e || /transform$/.test(e.propertyName)) {\n el.removeEventListener(transitionEndEvent, cb);\n el._moveCb = null;\n removeTransitionClass(el, moveClass);\n }\n });\n }\n });\n },\n\n methods: {\n hasMove: function hasMove (el, moveClass) {\n /* istanbul ignore if */\n if (!hasTransition) {\n return false\n }\n /* istanbul ignore if */\n if (this._hasMove) {\n return this._hasMove\n }\n // Detect whether an element with the move class applied has\n // CSS transitions. Since the element may be inside an entering\n // transition at this very moment, we make a clone of it and remove\n // all other transition classes applied to ensure only the move class\n // is applied.\n var clone = el.cloneNode();\n if (el._transitionClasses) {\n el._transitionClasses.forEach(function (cls) { removeClass(clone, cls); });\n }\n addClass(clone, moveClass);\n clone.style.display = 'none';\n this.$el.appendChild(clone);\n var info = getTransitionInfo(clone);\n this.$el.removeChild(clone);\n return (this._hasMove = info.hasTransform)\n }\n }\n};\n\nfunction callPendingCbs (c) {\n /* istanbul ignore if */\n if (c.elm._moveCb) {\n c.elm._moveCb();\n }\n /* istanbul ignore if */\n if (c.elm._enterCb) {\n c.elm._enterCb();\n }\n}\n\nfunction recordPosition (c) {\n c.data.newPos = c.elm.getBoundingClientRect();\n}\n\nfunction applyTranslation (c) {\n var oldPos = c.data.pos;\n var newPos = c.data.newPos;\n var dx = oldPos.left - newPos.left;\n var dy = oldPos.top - newPos.top;\n if (dx || dy) {\n c.data.moved = true;\n var s = c.elm.style;\n s.transform = s.WebkitTransform = \"translate(\" + dx + \"px,\" + dy + \"px)\";\n s.transitionDuration = '0s';\n }\n}\n\nvar platformComponents = {\n Transition: Transition,\n TransitionGroup: TransitionGroup\n};\n\n/* */\n\n// install platform specific utils\nVue.config.mustUseProp = mustUseProp;\nVue.config.isReservedTag = isReservedTag;\nVue.config.isReservedAttr = isReservedAttr;\nVue.config.getTagNamespace = getTagNamespace;\nVue.config.isUnknownElement = isUnknownElement;\n\n// install platform runtime directives & components\nextend(Vue.options.directives, platformDirectives);\nextend(Vue.options.components, platformComponents);\n\n// install platform patch function\nVue.prototype.__patch__ = inBrowser ? patch : noop;\n\n// public mount method\nVue.prototype.$mount = function (\n el,\n hydrating\n) {\n el = el && inBrowser ? query(el) : undefined;\n return mountComponent(this, el, hydrating)\n};\n\n// devtools global hook\n/* istanbul ignore next */\nif (inBrowser) {\n setTimeout(function () {\n if (config.devtools) {\n if (devtools) {\n devtools.emit('init', Vue);\n } else if (\n process.env.NODE_ENV !== 'production' &&\n process.env.NODE_ENV !== 'test'\n ) {\n console[console.info ? 'info' : 'log'](\n 'Download the Vue Devtools extension for a better development experience:\\n' +\n 'https://github.com/vuejs/vue-devtools'\n );\n }\n }\n if (process.env.NODE_ENV !== 'production' &&\n process.env.NODE_ENV !== 'test' &&\n config.productionTip !== false &&\n typeof console !== 'undefined'\n ) {\n console[console.info ? 'info' : 'log'](\n \"You are running Vue in development mode.\\n\" +\n \"Make sure to turn on production mode when deploying for production.\\n\" +\n \"See more tips at https://vuejs.org/guide/deployment.html\"\n );\n }\n }, 0);\n}\n\n/* */\n\nexport default Vue;\n","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tif(__webpack_module_cache__[moduleId]) {\n\t\treturn __webpack_module_cache__[moduleId].exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\t// no module.id needed\n\t\t// no module.loaded needed\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId](module, module.exports, __webpack_require__);\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n","// getDefaultExport function for compatibility with non-harmony modules\n__webpack_require__.n = function(module) {\n\tvar getter = module && module.__esModule ?\n\t\tfunction() { return module['default']; } :\n\t\tfunction() { return module; };\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","// define getter functions for harmony exports\n__webpack_require__.d = function(exports, definition) {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.g = (function() {\n\tif (typeof globalThis === 'object') return globalThis;\n\ttry {\n\t\treturn this || new Function('return this')();\n\t} catch (e) {\n\t\tif (typeof window === 'object') return window;\n\t}\n})();","__webpack_require__.o = function(obj, prop) { return Object.prototype.hasOwnProperty.call(obj, prop); }","// define __esModule on exports\n__webpack_require__.r = function(exports) {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","/**\r\n * Created by sven.bluege on 04.04.2017.\r\n */\r\n\r\n\r\n\r\nrequire('./common/js/EventgalleryTools.js');\r\n\r\nrequire('./backend/vue/uploader/index.js');\r\nrequire('./backend/vue/filesync/index.js');\r\nrequire('./backend/vue/thumbnailcreator/index.js');\r\nrequire('./backend/vue/cacheclear/index.js');\r\nrequire('./backend/vue/imagecontentpluginform/index.js');\r\nrequire('./backend/vue/scalepriceeditor/index.js');\r\n\r\n\r\nrequire('./backend/js/EventgalleryBehavior.js');\r\nrequire('./backend/js/EventgalleryInlineFormEdit.js');\r\nrequire('./backend/js/EventgalleryGooglePhotos.js');\r\nrequire('./frontend/js/EventgalleryGooglePhotosProcessor.js');\r\nrequire('./backend/js/Albumselector.js');\r\nrequire('./backend/js/LocalizableText.js');\r\n\r\nrequire('./backend/css/eventgallery.css');\r\nrequire('./frontend/less/font-awesome/font-awesome.less');\r\n\r\n"],"sourceRoot":""}